Every man dies but not every man really lives.

2017-08-08
如何写出难看的代码(一)

这段代码用来生成 URI 中的查询字符串。

例如,有一个 object 的内容如下:

1
2
3
var obj = {a:'1',b:'2'};
console.log(makeParamsString(obj, true) === '?a=1&b=2');
// true

好看的代码应该是怎么样的: 阅读此文

2017-08-02
使用 Let's Encrypt 加入全站 HTTPS 支持

  • 2017-10-11 更新: renew 错误
  • 2017-10-12 更新: 使用 –webroot 更新证书
  • 2018-03-23 更新: 使用通配符

去年我写了一个太监系列 HTTPS 小白知识(一) ,其中提到使用 Let’s Encrypt 来实现 HTTPS 支持。现在是时候了。

昨天我花了半小时把我的所有网站和博客全部加入了 HTTPS 支持。整个过程非常顺利,下面拣要点说一说。 阅读此文

2017-08-01
Primary script unknown 错误解决

错误解决

在 macOS 中配置 nginx+php-fpm 出错,访问 http://localhost/phpinfo.php ,浏览器中的显示是:

File not found.

在 nginx 的 log 中,完整的错误为: 阅读此文

2017-07-18
gitlab 配置要点

gitlab 是个不错的开源套件,它提供了一套自建私有的类 github 服务的一站式解决方案。

和我之前介绍过的 gitolite 不同, gitlab 提供了清晰完善的前后台操作界面,管理上更加容易。

另外,如果有更进一步的 Code Review 需求,应该尝试 gerrit

阅读此文

2017-07-16
WordPress to Hexo(2)

一个多月前,我第二次开始了 WordPress to Hexo 的工作。拖拖拉拉的,现在总算弄完了。记在这里,做个汇报。 阅读此文

2017-06-27
手机抓包工具汇总

2017-08-26 更新: 加入 mitm 相关介绍。


做移动开发,抓包是基本功。现在的开发者当真是非常幸福,因为抓包工具已经非常成熟了。

在移动设备上抓包,需要下面几个方面的配合:

  1. 移动设备支持;
  2. 代理服务器;
  3. 分析工具。 阅读此文

2017-06-14
解包 APK

出于研究的目的,我们可能需要反编译 APK 并得到源码。这件事相当简单,因为先行者们已经做好了所有的工作,我们要做的就是下载,使用他们开发出的工具而已。

如果只是需要反编译之后的 JAVA 源码,最简单的方案是这样: 阅读此文

2017-06-08
ofo 智能锁的小思考

(本文所有图片来自互联网,侵删)

这几天的通勤完全使用共享单车+地铁,今天骑到一辆使用智能锁的 ofo,长这样儿:

ofo智能锁

这个据说 与北斗导航合作 的智能锁用起来很奇怪:

  1. 扫码后依然出现4个数字,需要手动解锁;
  2. 关锁后不会立即停止计费,而是需要等待1分钟才能结束行程。虽然可以强行结束,但提醒却在恐吓影响信用云云。

既然是智能锁,为什么还要设计按键?为什么关锁后需要等待1分钟?

我想应该和锁的功能定位和用户习惯有关。和摩拜一开始就考虑极致的用户体验(大规模瘫痪这不算好么)不同。ofo 已经培养了 “手动解锁” 这个用户习惯,它的智能锁也需要保持这个习惯,然后进一步简化习惯。新的智能锁因为可以动态更新密码,仅保留了4个数字,这就是简化。或许 ofo 的下一代会取消按键也未可知。

至于为何上锁后要1分钟才能结束行程,或许是考虑到用户开锁时间损耗。因为 ofo 本来就是开锁后 1 分钟才开始计费的。

阅读此文

2017-05-28
系统化健身三个月感受

这是一篇鸡汤文,不喜欢看鸡汤的可以退出了。

2016年11月开始,我就一直在以996的方式工作,工作结束的时间经常会超过12点。2017年2月的某一天,我站在体重秤上,发现体重没变化,但拎起腹部和腰部的赘肉,能感受到皮下脂肪的分量。我的肌肉正在萎缩,并逐渐被脂肪替代,该健身了。

阅读此文

2017-05-24
WordPress to Hexo(1)

大约两年多前,我写过一篇 博客静态化工作 ,当时是准备使用 Pelican 来做静态化。但由于静态化有一些工作量,就写了 WPCMD 来作为过渡工具。

现在终于有时间来做静态化了,但我选择的工具变成了 Hexo

在上次的静态化准备工作中,我的所有博客文章已经完全使用 Markdown 来撰写了,所以这次的静态化工作就会简单一些。下面是主要的工作: 阅读此文