跳至主要內容
我在北京送快递
我在北京送快递

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

如今我到达每个地方的时间都和原来墨守成规的不一样, 看到和感受到的也因此不同。事实上我发现自己正用一种全新的眼光看待这份工作——这不仅是习惯的改变, 或者时间和空间的对应变化,而是不带目的性地、 从一种我从前因为焦虑和急躁而从没尝试过的角度去观看事物——我不再把自己看作一个时薪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
linux ftp

查看是否已经安装

rpm -qa |grep vsftpd

没安装的话用yum安装下


YueHui...小于 1 分钟LinuxLinuxftp
swaggerUI

一款swaggerui显示+部分前端代码生成的客户端软件

项目地址: https://github.com/YueHui/codeGenerator

软件界面

软件界面
  • 根据swagger文档显示信息
  • 支持按 名称/url 模糊查找并高亮显示
  • 可点击代码直接复制到系统剪贴板
  • 按批量/单个接口生成代码

YueHui...小于 1 分钟worksswaggerUIelectron