好吧,又瞎折腾

昨天把dns服务器从dnspod迁走,结果在新dns服务商那里填错了配置……

现在我还绑着hosts写的这篇博客……

现在配置已经正确修改了,我想很快就会生效了。

这一天多访问带来的不便十分抱歉。

后记:奇怪,nginx偶尔会返回400,粗略看了一下,后台没日志,回头细看。

半年

很久没有更新博客了。

随着工作的深入,可以追寻的技术也越来越模糊,技术类的文章越写越来越少,也越怕误导人。

干脆出了一趟远门,看看外面的路,也看看前面的路。

离职时朋友说:“相信我,你想也想不出什么结果。”

时光慢慢流淌,从嫩绿深绿变枯黄,秋天也快过完了。

路依旧,人也依旧这样。

还好,生活也是这样。

IMG_1066IMG_6530IMG_7408IMG_0006IMG_0500IMG_9484

离别


只是一个短篇
一则故事
一篇寓言

我放开牵马的缰
走向高处的光
看着稀薄的天
深邃的湖水

回首光芒四射的城市
抱着太阳神的雕像
惆怅

停停走走,纷纷繁繁。

去年的状态一直如此,一直持续到现在,又一次提出离职申请。

大千世界,有太多停留下来的理由,懒惰从细胞深处向外招手,使你寻找一处沙滩休憩。

纷扰的乌云遮住太阳,不漏一丝缝隙。

空旷的田野一片金黄,一袭红衣随风,一丝金色光芒。

睡在地下的阴沉岩床,睡在树下的厚厚阴凉。

海洋蔚蓝。

漫步原野的风,吹动风浪,擦肩而走。

停留下来,看风的颜色,看影的碎片,看光的琉璃。

停止思考,留在原地。

mail core2编译脚本执行失败的问题

今天编译mail core2的时候发现curl一直下不回文件,导致编译失败,错误如下:

应该是curl下载失败了。

自己手动执行了一下curl命令,或许是我的curl版本有问题,下回来的文件大小为0。

用curl -I 拿回来的头Content-Length并没有什么问题,状态码也是200。

或许是网络问题,或许是curl的bug,curl版本 7.43.0。

既然没查出原因,就先绕条路,把curl下载改为wget(mac需要额外安装,使用brew就可以),把mailcore2项目scripts/include.sh目录下的build-dep.sh(约325行):

替换为

再编译,就通过了。

至于curl无法通过的原因,待查。

2016年了

时间转着转着就又一年了,很多事情时常自己翻涌出来,仿佛昨天刚刚发生。似乎一觉醒来,已经过了多年。

想起写的第一个程序。高中时发现某同学的文曲星居然可以写basic程序,经班上某大神指点,写了个简单的文字游戏,其内容大概是输入名字和一些地名来代入一些情节,最后故事结局自然是一个恶作剧。写出来后就拿着恶搞同学,还觉得挺欢乐。

那时候只知道ascii码、变量、输入和打印函数,却觉得有意思的很。

现在呢,写个网站要考虑数据库、缓存、容错、负载等等等等,要分析站点特色和结构,考虑语言,写框架,弄lib、写调度,风风火火。蓦然回首,觉得疲惫不堪。

日复一日,星辰变幻。昨日的人或事,成为今日的梦,触不可及,又时常在脑海里映现。

两个PHP代码片段

最近有同事碰到两个问题:

这段代码输出什么?

这段呢?

第一个代码输出true,原因在于in_array使用了==的逻辑(如果第三个参数为true则为===的逻辑),不知道这样是否合理。源码中php将字符串转成了数字,转不了则返回0。(以上测试版本为5.5.30和7.0.0)

第二个代码输出:

因为第一次使用了引用,引用计数不释放,引用的地址是数组中c的地址。第二次循环对$m赋值的时候,不停的修改了$m指向的地址,数组中的地址也就发生了变化。赋值的源码位在于zend_execute.c/zend_assign_to_variable方法中。

红黑树

红黑树是一种很常用的自平衡二叉树。之前写过二叉搜索树,我们知道二叉搜索树查找速度是由树的高度决定的,但是因为二叉搜索树对树的平衡没什么限制,如果所有节点都在一个叉上,就变成了链表了。红黑树作为二叉搜索树的同时,用以下五个性质保证了树的平衡:

  1. 节点是红色或黑色。
  2. 根是黑色。
  3. 所有叶子都是黑色(叶子是NIL节点)。
  4. 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
  5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

因为这些性质,一棵红黑树尽量保持每个路径上节点数差距不大,从来保证了树的查找速度。

红黑树

红黑树是一颗二叉搜索树,其查找方法自然也就是二叉搜索树的查找方法。因为给二叉搜索树节点涂了颜色,树上面的修改操作(如插入、删除)会影响红黑树的某些性质,恢复其性质需要需要O(log n) 次操作。

继续阅读