木匣子

Web/Game/Programming/Life etc.

最近流行歪着手机看图

今天在推特上看到一张图,觉得挺有意思:

xmas.jpg

看起来杂乱无章,但是里面却隐藏着两句话。于是我就琢磨着是不是可以自己做一个送给妹子。

粗略分析了一下,大概需要做两件事:一是需要找一个细长的字体;二是把两句话横竖拉伸放在画布上。既然如此,那就开工吧。

初试 Erlang

今天翻看了一下 Erlang 程序设计 这真是一本相当有趣的书,这也是我第一次接触 COP(面向并发编程)和函数式编程,不禁被它的设计理念所打动。

函数式编程可以很直白的用数学语言来描述算法,例如经典的 qsort 在 erlang 里简单得只需要用几句话就可以写出来:

qsort([]) -> [];
qsort([Pivot|T] ->
    qsort([X||X<-T, X<Pivot])
    ++ [Pivot] ++
    qsort([X||X<-T, X>=Pivot]).

撇开效率来说,这种写代码的感觉真是酷毙了。

curl 无法访问 https 协议

自从一个月前给公司电脑升级了 Mac OS 10.9 后 gitbrew 就出现了无法正常工作的现象,Orz.

$ git clone https://github.com/mutoo/.user.js
Cloning into '.user.js'...
fatal: unable to access 'https://github.com/mutoo/.user.js/': Server aborted the SSL handshake

然而使用 ssh 协议则可以正常使用,所以初步怀疑是 https 协议的问题。

$ curl -v https://github.com
* Adding handle: conn: 0x7faef9004400
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7faef9004400) send_pipe: 1, recv_pipe: 0
* About to connect() to github.com port 443 (#0)
*   Trying 192.30.252.128...
* Connected to github.com (192.30.252.128) port 443 (#0)
curl: (35) Server aborted the SSL handshake

不仅是 github.com 所有的 https 网站都无法请求成功,全部超时。
连使用 brew 安装一些软件包碰到 https 协议的链接都失败。

Array.map() 与 parseInt()

最近经常看到黑 Javascript 的人引用这样一个例子:

["1", "2", "3"].map(parseInt);
// 预期 [1, 2, 3]
// 结果 [1, NaN, NaN]

由于预期不一样,然后他们就各种炮轰 js。实际上这是一个误用,而这些人往往不愿深究其因,看客也把它当成一个笑柄,以讹转讹。但是只要用点心,就会发现其中的问题。

酷炫的 MathJax 公式解析器

今天在查找圆形均匀分布的推导公式时,发现一个神奇的数学公式解析器,MathJax.

MathJax 是一款开源的 Javascript 数学公式解析引擎,可以运行在所有浏览器上!对于读者而言,无须安装任何插件或字体即可工作。

MathJax is an open source JavaScript display engine for mathematics that works in all browsers.

No more setup for readers. No more browser plugins. No more font installations… It just works.

MathJax 支持在网页上使用 MathML(一种用于数学的标记语言)、AsciiMath 或者 LaTex 来描述公式。然后通过嵌入 MathJax 的解析器脚本进行格式化。

Xcode 5 不更新外部引用资源

自从更新至 Xcode5 后,运行 iOS 模拟器测试 cocos2d-x 项目总是不更新脚本文件,让人十分恼火。经过一番研究之后,得知这是 Xcode5 所谓的优化,Orz。

当你使用 group 方式组织项目结构而引用了外部文件夹的话,在项目 build 的时候,Xcode5 通过判断文件夹的更新日期决定是否重新复制里面的内容。这导致当你在文件夹内增加或修改文件,这些修改直接被 Xcode5 忽略——因为文件夹本身没有变化。

既然知道了问题所在,那就好办了。我们可以使用 unix 的 touch 命令,在项目 build 之前更新外部资源文件夹的时间戳即可。

Graphviz 与绘图语言 Dot

在博客描述数学公式可以用 LaTex 语言,那么是否有一种简单的语言可以用来描述(graph)?

是的,有一个神奇的工具叫做 Graphviz

Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。Graphviz是一个自由软件,其授权为Eclipse Public License。其Mac版本曾经获得2004年的苹果设计奖。
widipedia

通用非即插即用监视器

前阵子投影仪突然罢工了,驱动正常,VGA 线正常,设备管理器也正常检测到设备。可是投影仪就是检测不到信号。

最后想到可能是分辨率的问题,于是将第二屏幕设置到最低分辨率,果不其然,问题解决。

很久没用 windows 了,鼓捣了好久才弄好。

vga.png