frontend

前端

基础

  • 网络:《计算机网络》TCP/IP,DNS,域名。HTTP概述, 响应码, 请求响应头

  • HTML:w3runoob。重点 表单。

  • CSS:w3 or runoob。重点 浮动布局,grid 布局,flex 布局;display, position; 盒模型。

HTML,CSS 过一遍,常用的记住就行了,其他的随时查。还是得多写。

  • JavaScript:w3 或者直接看ES6。重点基础,学习语法,DOM 操作,Fetch API/XMLHttpRequest(XHR),

  • Node.js:《Node.js 实战(第二版)》, npm/yarn 包管理器, js 的服务器运行环境,现在搭前端项目都需要用到。

Read more
遇到的面试题01

part1

1. http header method 有哪些
MDN

通用首部 (General header): 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。

  • Connection: 决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。
  • Date: 通用首部,其中包含了报文创建的日期和时间。
  • Cache-Control: 通过指定指令来实现缓存机制。详细参考链接

请求头(Request headers): 包含更多有关要获取的资源或客户端本身信息的消息头。某些请求头如 AcceptAccept-*If-* 允许执行条件请求。

Read more
Node.js笔记

Module

CommonJS

1
2
3
4
5
6
7
8
9
10
11
// file.js
const fs = require("fs"); // 导入
function myFunc() {}
exports.func = myFunc; // 导出
exports.valueOne = 123; // 导出
// 其他地方能用
const { func, valueOne } = require("./file");
// 文件只导出一个
class Fox {}
module.exports = new Fox();
// 这是导出一个新的实例 也可导出class再在导入的地方

ECMAScript 6

1
2
3
4
// index.js
import { func, valueOne } from "./file";
export const Text = "aaa";
export default new Fox();
Read more
Git学习记录

0x0 前言

没系统学过git,老是有一些问题就谷歌,解决完问题又没时间记,感觉不是个办法。正好看到一篇敲详细的文章(感谢作者整理),所以决定重头学习一遍并且把难点记录下来。第一次写文章🔰,如果文章有错或者有其它问题欢迎评论指正


0x1 Git概述

Git的四个组成部分

详情见来源
// stash区域应该算是一个独立的部分,不受这些命令干扰。

Read more
backup

Some config file from digitalocean sever.

Read more
WebDAV with apache

WebDAV

先添加dav的subdomain, 见这篇文章.

server side

  1. 新建用户:

    1
    2
    sudo adduser davuser # 用户名自己起
    mkdir /var/www/webdav
  2. 添加读写权限

    1
    2
    3
    chown -R www-data:www-data /var/www/webdav 
    usermod -a -G www-data davuer
    chmod g+w /var/www/webdav # 否则后面进去了没法写入

开启apachewebdav mod.

1
2
3
sudo a2enmod dav
sudo a2enmod dav_fs
nano /etc/apache2/sites-available/dav.hinataa.tk.conf

1
2
3
4
5
6
7
8
DavLockDB /var/www/DavLock
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/webdav
<Directory "/var/www/webdav">
DAV ON
</Directory>
</VirtualHost>
Read more
h5ai & apache添加子域名

添加subdomain

首先要去域名提供商添加域名的一个新的A类record, 如:

1
2
3
4
Type  Hostname          Address       TTL(seconds)
A h5ai.HINATAA.TK 142.xxx.xxx.xx 1800(default)

# h5ai是输入的, 后面的主域名提供商会自己识别(不然你指向google.com怎么办), 不需要自己输入.

生效需要一定的时间, 期间还是会显示找不到 h5ai.hinataa.tk 的服务器 IP 地址.

h5ai

https://larsjung.de/h5ai/ # 项目主页

https://larsjung.de/h5ai/demo/ # 实现demo

Read more
hexo-theme-melody v1.5 supports slides & iframeSlides

proxy-> SS+BBR 科学上网

前言:

因为github student pack有优惠码, 遂上DigitalOcean租了个服务器(送的100刀居然只有两个月有效期), 于是就顺便搭个梯子方便上网, 对了别租DO的新加披节点, 要连接它得跳到美国西部再到服务器, 延迟高网速慢. 上了San Francisco节点速度才上去, 但也很慢, 搜了下发现有个技术可以显著提速, 那就是BBR了(需要linux kernel>4.9).

安装SS, 用systemd启动

1
2
sudo apt update
sudo apt install shadowsocks-libev

有好几种, python go libev(binary) 等版本, 这里选这个纯粹图个方便, 可以自己选择, 不过本教程只做libev的, 其他版本也差不多可以去看ss官网.

1
sudo nano /etc/shadowsocks-libev/config.json
Read more
hexo到github以及给自有域名github-page上HTTPS

把hexo博客的生成主工作目录(包含.md文件)上传到github的分支hexo,
并将生成的public文件(使用’hexo g’生成的静态文件)deploy到master分支.
通过Cloudflare给自有域名的github-page加上https

以下部分来自教程:

https://molunerfinn.com/hexo-travisci-https/

之前在自己的主机上写博客的时候,写完执行一下hexo g就可以了。不过后来想想其实还是不太安全。这个方式万一在主机dang掉之后,数据就有可能找不回来了。如果每次写完既要hexo g又要hexo d的话又过于麻烦,而且只能推送构建后的页面而不能保存文章源(markdown)文件。于是趁此机会来改造一下,也是一件快意之事。

Read more