跳至主要內容
泰山游记

  泰山上山有多条路线,官方公众号上写的步行登山线路适合年轻人。作为来爬山的年轻人当人是选择这个线路了🐶。

  坐晚上十点多从丰台站出发的火车第二天3点半到泰山站,晚上9点多就从家里出发了。到了泰山站之后坐车就直接到红门路。 早上路边有个早餐车,听老板说他们早上两点之后就开始出摊了,过了十一之后人就开始变少了,冬天人就更少了。 吃了点早餐就开始向景区大门出发。4点50景区就已经开始让游客进入了。

地铁站
早餐车

YueHui...大约 4 分钟
我在北京送快递
我在北京送快递

本书名称为《我在北京送快递》,但是全书读完作者在北京的生活轨迹只占很少的一部分。 总体上构成是作者在全国各个地方工作的经历。

如今我到达每个地方的时间都和原来墨守成规的不一样, 看到和感受到的也因此不同。事实上我发现自己正用一种全新的眼光看待这份工作——这不仅是习惯的改变, 或者时间和空间的对应变化,而是不带目的性地、 从一种我从前因为焦虑和急躁而从没尝试过的角度去观看事物——我不再把自己看作一个时薪30元的送货机器,一旦达不到额定产出值就恼羞成怒、气急败坏。


YueHui...大约 2 分钟
基础的js树的遍历

可直接复制代码到浏览器查看效果

const dataList = [
    {
        name:"a",
        children:[
            {
                name:"a-1",
                children:[
                    { name:"a-1-1" },
                    { name:"a-1-2" },
                ]
            },
            {
                name:"a-2",
                children:[
                    {name:"a-2-1"},
                    {name:"a-2-2"}
                ]
            }
        ]
    },{
        name:"b",
        children:[
            {
                name:"b-1",
                children:[
                    { name:"b-1-1" },
                    { name:"b-1-2" },
                ]
            },
            {
                name:"b-2",
                children:[
                    {name:"b-2-1"},
                    {name:"b-2-2"}
                ]
            }
        ]
    }
];

/**
 *深度优先递归
 */
(function deepFirst(list){
    list.forEach(item=>{
        console.log(item.name);
        if(item.children) deepFirst(item.children)
    })
})(dataList);

/**
 * 深度优先非递归
 */
(function(list){
    let queue = list;
    while (queue.length >0){
        const item = list.shift();
        console.log(item.name);
        if(item.children){
            item.children.reverse();
            item.children.forEach(child=>{
                queue.unshift(child);
            })
        }

    }
})(JSON.parse(JSON.stringify(dataList)));

/**
 * 广度优先递归
 */
(function wideFirst(list){
    let children = [];
    list.forEach(item=>{
        console.log(item.name);
        if(item.children){
            children = children.concat(item.children);
        }
    })
    if(children.length>0) wideFirst(children);
})(dataList);

/**
 * 广度优先非递归
 */
(function(list){
    const queue = list;
    while (queue.length){
        const item = queue.shift();
        console.log(item.name);
        if(item.children){
            item.children.forEach(child=>{
                queue.push(child)
            })
        }
    }
})(JSON.parse(JSON.stringify(dataList)));


YueHui...小于 1 分钟javascriptjavascript
canvas 画圆弧

我这画彩色过度圆环采用的是画一个圆弧,然后画笔样式是一个渐变色。、

全部代码:


YueHui...小于 1 分钟Democanvas
express 代理

如果express或者你的其它的程序的服务被nginx这样的代理服务器代理过后,在程序里拿hostname这样的信息的时候通常会得到一个ip地址,比如这样

req.get('hostname')		//127.0.0.1

YueHui...小于 1 分钟expressexpressnginx
javascript Symbols

Symbols 是最新的js原始类型,它带来了一些好处,尤其上司当做对象属性时特别有用。但是它提供的什么是String做不到的呢?

在我们开始深入了解Symbols之前让我们先来看看有哪些细节是开发者们不太容易注意到的。

背景

在js中有两种数据类型,原始类型和引用数据类型(原文这里用的objects); 原始类型包括numbers(包括整数,浮点数,Infinity,NaN),布尔值,字符串,undefined,还有null(虽然 typeof null === 'object'null仍然是一个原始类型)


YueHui...大约 9 分钟javascriptjavascriptsymbol
linux 安全配置

修改ssh端口

找到配置文件

vi /etc/ssh/sshd_config

修改端口配置 #Port 22

修改防火墙开放相应端口。

新开窗口验证,避免配置错误登录不上

配置ssh登录

首先生成秘钥:

 ssh-keygen -t rsa

YueHui...小于 1 分钟LinuxLinuxssh