迅雷云点播破解版

update 2012.07.23: 迅雷云点播api 升级, 导致 http://player.opengg.me/xl/ 失效, 请关注Xunlei.Any.Player
update 2012.07.03: 增加了对/fx api 的支持, 应该不会再出现302 错误了.

之前有读者建议我研究一下迅雷云点播, 但是互联网上已经出现无数个山寨版迅雷云点播, 这个世界需要我弄另一个山寨版吗? 很遗憾, 如同之前的OpenGG.Clean.Player 一样, 因为没有人来做, 或者做得不够完美, 我这种懒人才会动手去弄一个更好的.

市面上已有的山寨版迅雷云点播各有特色, 如oabt.org 与人人影视合作, 提供丰富的索引. 尽管如此, 它们却有着共同的缺点: 会触发迅雷的收费跳转规则(与jsonp 的原理有关). vod.apbest.info 用浏览器扩展/插件来修改referer, 可以降低收费跳转的概率, 但也不够完美, 而且浏览器扩展毕竟不通用.

于是我辛苦一晚上弄了个破解版. 这个版本用我服务器的api 转发, 不会出现收费跳转. 目前功能比较单一, 有空可能会增加对.torrent 文件的支持.

老实说我比较不喜欢掺和这种事情, 毕竟比较危险, 虽然明眼人都知道迅雷这种公司专靠靠盗版赚黑心钱, 但如果发生什么纠纷也是麻烦事一桩. 不过, whatever.
继续阅读迅雷云点播破解

如何排查网络问题

最近我收到很多关于OpenGG.Clean.Player 的问题反馈, 说播放器不能载入, 最后经过排查都是网络问题. 这一类问题的特点就是用户反馈语焉不详而内里的病因又多种多样, 因此排查起来十分困难.

在这里我就网络问题的排查说一点自己的看法.

如何判断一个问题是网络问题

要建立一个网络连接需要两头的节点(客户端/服务器), 和连接这些节点的 “线路” (包括物理的和非物理的); 如果在建立连接和连接过程中出现了问题, 而这个问题又不是由于两头的节点导致的, 那么这个问题有可能是网络问题.

就这个例子来说, 如果某用户(客户端) 不能正常访问player.opengg.me , 却能正常浏览其他网站, 而服务器(player.opengg.me ) 又能为其他用户所访问, 则这个用户与服务器之间发生的问题属于网络问题.

要用户判断自己能访问什么网站, 不能访问什么网站, 这很容易. 要判断服务器能否能为其他用户所访问则不那么直接, 我推荐各位使用webkaka.com 的网站测速功能进行测试:

继续阅读如何排查网络问题

去除飞信2012 的广告

飞信2012 用C++ 重写之后, 就很不好反编译了. 我一直期待qqext 的作者能研究一下飞信, 可惜一直没盼来, 只好自己勉强来试试.
还好飞信把皮肤打包在Common.rds 里, 我们用木鱼的”通用包处理工具 v3” 打开这个文件, 改吧改吧就把广告隐藏了, 顺带去掉那些多余的图标和菜单.
如果需要完全禁止飞信在后台加载广告, 需要反编译和修改飞信主程序. 要禁止每次启动飞信跳出来的新闻弹窗, 需要用户自己设置一下, 或者需要反编译和修改飞信主程序. 反正我是无能为力了.

fetion-2012-without-ads
去除飞信2012 的广告

继续阅读去除飞信2012 的广告

我不只是你人脉里可资利用的一节

筋疲力竭地从实验室里出来, 接到一个电话, 手机传来一个陌生的女声, 原来是遥远的你. 你很着急地询问XP 系统分享文件的问题, 说公司着急着用. 可我握着手机, 突然间觉得很无力, 仿佛心里一种无法抓住的东西, 在风中渐渐飘散了.

在接到来自久别的朋友的电话时, 我更希望我们能讨论一下 “你在哪, 做什么, 开不开心” 这样的问题, 而不是 “同一局域网下的几台XP 系统如何分享文件”. 我能理解你, 一个人在遇到困难的时候总是希望有人相帮, 但这样开门见山总让我觉得自己只是你纷繁复杂的人脉关系里不轻不重的一节, 这样工具化的关系让我非常难受. 所以在挂掉电话的一刻, 我既为帮不上你而隐隐高兴, 又为失去一个可以说话的人而暗暗失落.

我不是一个小气的人, 我不会对任何求助轻易说不, 但我不希望我与他人的关系仅止于利用和利益关系, 希望你能理解.

浅论php5.4 的一些不足

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

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

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

高效的山寨版DOMNodeInserted 事件

本文内容冗长而繁琐, 总结起来就是几句话:

  1. OpenGG.Clean.Player 的版本号从1.12 开始计算, 因为我觉得5.7 这个版本号跳得太快而功能没有改进, 感情上难以接受.
  2. OpenGG.Clean.Player 现在可以在新浪微博上生效了, 而且性能比之前的版本提高很多, 请及时跟进.
    注: Firefox 12/Chrome 18/Opera 12/搜狗浏览器3.2 测试通过, 而Opera 11及以下的版本无法使用新的工作原理, 性能和功能维持在之前版本的水平.
  3. 改进的技术细节与本文标题有关.

继续阅读高效的山寨版DOMNodeInserted 事件

Echofon 最全攻略

我做起事情来粗枝大叶丢三落四, 写博也如此, 因此一篇文章要改很多遍, 比如上一篇很短很短的文章也占用了整整8 个revision. 所以尽管我是个非常懒的人, 但wp 的revision 还是来到了769 (而所有的文章包括草稿加起来只有不到70篇).

现在我们来说一说Echofon, 按照惯例是一段血肉模糊的警示:

注意: 以下行为有可能触犯当地的法律条款, Echofon for Windows 的最终用户协议 或 UberMedia 的隐私条款, 也可能会影响Echofon for Windows 的稳定性, 安全性或性能; 任何用户在实施这些行为前都应先自行评估其可能造成的后果; 如果选择实施这些行为, 则该用户必须对自己的选择负全责.

关于Echofon

Echofon 是优秀的Twitter 客户端, 它支持iPhone, iPad, Firefox, Mac OS, 和Windows 等平台, 其中Twitter for Firefox 又可以在Linux, Mac OS 和Windows 等操作系统里工作.
注: 为了 偷懒 可移植性, Twitter for Windows 和Twitter for Firefox 实际上都基于XUL , 它们大部分代码都是共用的.
继续阅读Echofon 最全攻略