浅论php5.4 的一些不足

在刚接触php 的时候, 我十分喜欢这种脚本语言, 因为它学习成本很低, hosting 也很方便. 但是我渐渐发觉, php 作为一种低端的脚本语言, 性能也不是很突出, 过程化的设计存在诸多缺陷, 而且在oop 之路上跌跌撞撞多年无甚建树. 与javascript 比较起来, php 至少在以下方面让我感到很不爽:

  1. 在设计之初就把”.” 号用于连接字符串, 导致对象成员只能用”->” 来调用.
  2. 变量要以”$” 开头, 使用不便而易出错.
  3. 不彻底的oop 设计, 导致众多内置函数名杂乱无章, 离开了手册就没法写东西.
  4. 不能省略句末”;” .
  5. 不能使用”[]” 和”{}” 等字面量来定义数组和对象 (php5.4 起可以使用[]).
  6. 函数不是一种数据类型 (php5.4 起函数可以作为数据类型).
  7. 函数与变量的命名过度割裂.

继续阅读浅论php5.4 的一些不足

在utorrent里屏蔽cernet的非免费ip

2011-12-17: 修正loopback地址,感谢wswj指出
2011-09-29: 合并相邻ip段,感谢sparkcat指出bug所在
2011-09-12: 感谢sparkcat,修正了私有地址ip
2011-09-10: 找到了一个合适的服务器作为跳板,现在本站已经可以提供实时的ip列表 ^.^

我们知道,教育网(cernet)不仅国内出口慢,而且国际出口是收费的,这样校园网的用户们在使用国际出口时有可能需要支付国际流量费。最为常见的情况,就是用utorrent挂bt/pt超出国际流量配额,导致不能浏览国际网站。为此,葡萄上还有人给出了在utorrent里屏蔽cernet非免费ip的方法,不过他用的是matlab,而且人工介入的步骤太多,使用不便。

于是我用php实现了这个功能,首先从cernet管理部门的网页中得到免费ip列表,加入保留的ip地址,再取补集。 继续阅读utorrent里屏蔽cernet的非免费ip