2017-11-10
【读书笔记】思考,快与慢(一)

这本书断断续续读了三遍,大部分都是用“听”的方式完成的。“听书”(具体方法详见 时间都去哪儿了?——善用工具形成高效习惯)可以充分利用随便时间来进行阅读,是个不错的读书方法。当把 TTS 引擎的读音调到正常语速偏快时,速度也远远小于“看”。也正是因为慢,在“看”的时候可能跳过的细节就会巨细无遗地提现出来。“慢”也给了我一个思考的时间。在听到简单论述的时候,大脑会想到作者后面会如何行文,然后比较作者后面的行文和我的思考之异同,这是一大乐趣。在听到较为复杂的论述时,语音并不会因为我需要思考的时间而停下来,为了能跟上节奏,我必须强迫自己加快思考的效率。当然,碰到重要的内容,我还是必须停下 TTS 进行思考。

听书的过程,我都是在做着其它事(步行、开车等等),当需要回顾重要内容的时候,不太可能像“看”书一样把页面翻到前面继续回味(最近我就有一次因为回味内容而在地下车库撞到头的经历),这就造成了阅读不连贯的问题。书中的插图也是没有办法语音化的,当听到有关插图的描述内容时,由于在做其他事,也不可能去翻看插图。语音并不会等待,当继续到后面的章节时,前面关于插图的内容就会被大脑错过。即使后面有了翻看插图的机会,多半也不太可能翻到前面去看了。

解决听书弊端的问题是复习。每天抽出时间来,把“听过”的章节再“看”一遍。这样可以用较少的时间获得牢固的知识印象。

阅读此文

2017-11-04
在 Flask-SQLAlchemy 中联表查询

SQLAlchemy 是一个功能强大的 ORMFlask-SQLAlchemy 是一个 Flask 插件,它让我们在 Flask 框架中使用 SQLAlchemy 变得更容易。

本篇介绍我在使用 Flask-SQLAlchemy 2.1 时进行联表查询的一些经验。 阅读此文

2017-10-15
Windows10 下安装 PyCrypto 以及迁移到 PyCryptodome

在 Windows 10 上安装 PyCtypto

PyCrypto 是一个 Python 加密库,核心使用 C 实现,因此在安装的过程中需要编译。

最简单的按照方法莫过于寻找编译好的 exe 版本进行安装。但由于这个库已经 3 年多没有维护了,目前能找到的编译好的版本基本上都针对较老的 Python 版本,例如 Python 3.3/3.5 等等,这些 exe 版本都无法在我需要的环境中安装成功。

我的环境:

  • Windows 10 x64
  • Python 3.6.2

要成功安装,首先必须安装 Microsoft 的编译工具。如果已经安装了 Visual Studio ,则可以跳过这一步。若还没有,而且后续也没有使用 VS 的需求,可以下载独立的编译工具 Visual C++ 2015 Build Tools

使用 pip 安装:

1
pip install pycrypto

在安装过程中会出现编译失败。这是由于新的 python 源码 include\pyport.h 不再包含 #include < stdint.h > ,导致 intmax_t 未定义。

我们需要在编译环境中设置 CL 参数才能成功编译。 阅读此文

2017-10-08
lftp [FEAT negotiation...]

lftp 是我一直在使用的 ftp 客户端。今天将其更新到 4.8.2 之后,出现了下面的错误: 阅读此文

2017-08-18
mitmproxy 应用(二)可编程代理

系列文章


mitmproxy 是可编程的,而且非常容易使用。先来看一个简单的例子: 阅读此文

2017-08-09
mitmproxy 应用(一)基础代理

系列文章

mitmproxy 是一个开源的代理工具,我曾经在 手机抓包工具汇总 中提到过它。本系列会把我使用 mitmproxy 时碰到的一些经验列出来。

透明代理

我们经常会在系统中设置代理,但有些软件并不理会系统代理,坚持使用直接连接。要解决这个问题,我们可以使用透明代理。详细的说明可以看 Transparent Proxying

下面以 Android(客户端)+macOS(开发宿主机)为例说一下透明代理的实现。我的步骤和 mitmproxy 的文档 略有出入,可对比查看。 阅读此文

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-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-06-27
手机抓包工具汇总

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


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

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

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