Maple's Blog.

Maple's Blog.

keep coding and having fun

使用 Unixbench 测试 CPU 性能
Unixbench 是 Linux 用来测试 CPU 综合性能的工具。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#! /bin/bash#==============================================================## Description: Unixbench script ## Author: Teddysun <i@ted...
oh-my-zsh 安装 zsh-autosuggestions 插件
zsh-autosuggestions 是 oh-my-zsh 的一个试用插件,可以实现动态显示历史输入记录的效果。 和 oh-my-zsh 一般的内置插件不一样,不能通过光改动~/.zshrc来启动,需要额外配置。 树莓派上安装这个插件,bash 输入变得十分卡顿,因此对于性能较差的机子(尤其是硬盘速度),不建议使用这个插件。 安装插件从 GitHub 上 clone 插件。 1git clone git://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions 启动插件1source ~/....
五种开源协议(GPL,LGPL,BSD,MIT,Apache)(转载)
什么是许可协议?什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限。 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作 者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。 而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你 至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。 G...
生成 SAN 证书并自签
生成 SAN 证书。因为群晖的证书生成有个 BUG, 创造多域名证书居然不能输入*。只好网上找资料手动创建多域名证书 SAN certificater(SubjectAltName Certificater)。 工作文件夹12345678910├── ca.srl├── certs│   ├── ca.cer # ca 证书│   └── server.cer # server 证书├── private│   ├── ca.csr # ca csr 文件│   ├── ca.pem # ca 私钥│   ├── server.pem # server 私钥 │   └── server...
使用 Expect 自动登录 OpenVPN
公司使用 OpenVPN 作为外网办公网络,本来只设置了用户名密码,但是为了安全,公司的网(yun)管(wei)同事升级了安全配置,添加了谷歌验证的输入需求。 谷歌验证是一种将预先生成秘钥和时间戳,通过一种开源算法计算出若干位的数字的安全方案。在 VPN 配置界面,会提供一个二维码(即为秘钥),然后在手机上安装 APP,扫码二维码并保存,可以获得一个动态刷新的验证码。然后在登录界面输入账号密码和动态验证码即可登录 VPN。 作为一个电脑党,每次登录 VPN 都需要满世界找手机,真的让人觉得麻烦。因为谷歌验证是开源的,所以 gayhub 上到处都有各个编程语言支持的包。如果可以运行一套程序...
Ubuntu 安装 Node.js 环境
官方编译版本安装使用官方预先编译好的二进制安装包进行安装。 从https://nodejs.org/en/download/选择对应的版本的二进制包,下载到 Linux 上。 123456789101112# 下载wget https://nodejs.org/dist/{version}/node-{version}-linux-x64.tar.xz# 解压tar -xvf node-{version}-linux-x64.tar.xz# 进入文件夹cd node-{version}-linux-x64/#...
Shell 自动重启进程
将 OpenVPN 搭建在一台服务器上,因为服务器设置了会话过期,所以服务每天都会在 24 小时后自动断开,因此需要一个类似守护进程的脚本来进行自动重启。 网上找到了一个简单的脚本: 12345678910#!/bin/bashwhile truedo procnum=` ps -ef|grep "openvpn"|grep -v grep|wc -l` if [ $procnum -eq 0 ]; then ./openvpn fi sleep 30done 其方式是每 30 秒通过 ps 命令来检查对应名称的进程是否存在,如果不存在...
树莓派用机械硬盘当系统盘
全程参考一个大佬的文章 https://mynook.info/blog/post/boot-raspberrypi-from-external-hdd 方案一直对树莓派的读写速度十分不能接受,也曾想去某宝上找 EMMC 转 SD 的套件,但是听那个老板说 EMMC 芯片一百+,觉得有点贵,毕竟树莓派也仅仅支持 USB2.0。于是乎,在某家库存店找了一个 80G 的库存的机械硬盘(¥60),又买了一根双 USB 的易驱线(树莓派的 USB 供电支持不了机械硬盘)。 简单搜索了一下发现直接从硬盘启动是不行的,因为树莓派启动的时候固定是从 SD 卡的第一个分区(/bo...
深度剖析:如何实现一个 Virtual DOM 算法(转)
作者:戴嘉华 转载请注明出处并保留原文链接(#13)和作者信息。 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM树 4.2 步骤二:比较两棵虚拟DOM树的差异 4.3 步骤三:把差异应用到真正的DOM树上 5 结语 6 References 1 前言本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量把 Virtual DOM 的算法思路阐述清楚。希望在阅读本文后,能让你深入理解 Virtual DOM 算法,给你现有前端的编程提供一些新的思考。 本文...
git merge --no-ff
--no-ff 指的是强行关闭fast-forward方式。 fast-forward方式就是当条件允许的时候,git 直接把 HEAD 指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建 commit。 git merge --squash 是用来把一些不必要 commit 进行压缩,比如说,你的 feature 在开发的时候写的 commit 很乱,那么我们合并的时候不希望把这些历史 commit 带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动 HEAD,不提交。需要进行一次额外的 c...
avatar
Maple
coding & have fun