文章
全部技术笔记,按发布时间排序。
Node.js 常见错误解决方式
Unexpected end of JSON input while parsing near npm install 出现 ”Unexpected end of JSON input while parsing near” 的错误。 运行 npm cache clean --force 国内网络慢?node-sass
比特币中交易延展性问题
交易延展性 (Transaction Malleability) 当交易被签名时,签名并没有覆盖交易中所有的数据 (比如位于 txin 中的 scriptSig,由于 scriptSig 中包含公钥和签名数据,不可能对自身自签名),而交易中所有的数据又会被用来生成交易的哈希值来作为该交易的唯一标示。如此,尽管不常见的,
node.js 中的 process.env 遇到的坑
有这么一段代码,是否会有打印输出 “hello,world” ? 答案是会。 因为 process.env 给任何属性赋值都会先转化为字符串,而字符串在强制转化成布尔值是 true,所以回打印输出。 来自官方文档,值得注意的是,以后不可以再给process.env的属性赋值为非字符串类型,否则会再将来的版本中报错。 A
BitcoinCore 安装清单
ITerm2 技巧
ITerm2 设置 option 键为 Alt 键 保持 SSH 连接不自动断开 使用 ITerm2 经常遇到 SSH 服务自动休眠断开,提示下面的信息。 修改自动断开可以修改配置配置即可。 这里的发送一个 ASCII 码,可以使用 127,也就是发送一个 del 删除键,这样不会影响当前命令行。
理解ES6中的字符串和数值解构赋值
ES6 允许从数组和对象中提取值,然后对变量进行赋值,这种“模式匹配”被称为解构。 当等号右边不是数组或者对象,类如字符串、数值、布尔值会被转换成了一个类似数组的对象,这些对象都有一个length属性,因此还可以对这个属性解构赋值。 上面的字符串hello会先转化为new String('he')包装对象,所以会有le
AngularJS Git 提交信息规范
目标 - 允许通过脚本自动生成变更日志 - 允许通过命令过滤某些提交信息(例如不重要的格式变动信息) - 提供更多的历史记录信息 快速生成变更日志 我们在变更日志中使用这三个部分:新特性、问题修复(bug fix)、不兼容变更(breaking change)。 这些列表可以在发布更新的时候通过脚本生成,并链接到相关的
说说 XSRF 防范
这是我在知乎的一个回答。原提问是如何在单页应用下进行 XSRF 防护。 XSRF(CSRF) 攻击的原理是什么?就是攻击者能猜测出所有的需要提交的内容以及类型,所以所有的解决方案共同出发点就是加一个攻击者也不知道随机值发送给后端验证就可以防范。 有很多解决方案,cookie-session,很不友好的所有表单都得填写验
理解 JS 中的装饰器
本文为 JS 装饰器旧版,待更新 --- 什么是装饰器?曾经看过一个说明比较好的比喻,秋天的时候穿秋裤可以保暖,一旦变冷了我们再穿上毛裤,穿毛裤不影响我们穿秋裤,这里的毛裤就是装饰器。 在JS中,装饰器可以为对象属性添加添加新的配置,而不会影响原有对象的基本功能,这个其实是语法糖。 举个简单的例子就是 这里的装饰器函数
使用 Docker 安装 gitlab
以前在 8 中留了一个坑,用 Docker 来安装 gitlab-ce,今天正好想起来。 用 Docker 安装因为国内镜像的原因会更快,而且就一条命令就解决了,在官方文档上详细说明了如何使用 docker 安装 gitlab。 首先查看 GitlabCE Dockerfile 里面有端口和数据卷的说明,如下所示。 另