解决Windows 8 的一些使用问题

终于受不了Ubuntu 没完没了的死机, 果断装上Win8. 但是装好之后发现几个问题比较悲剧:

  1. Intel 3845ABG 无线网卡用不了, 系统显示wifi 关闭;
  2. ATI MOBILITY RADEON X1300 显卡被认成Microsoft Basic Display Adapter, 显示分辨率很低;
  3. 微软拼音简捷输入法很难用, 而且删不掉;
  4. 没有开始菜单, 关机不便;
  5. Metro 界面与传统界面差别过大, 不协调;
  6. 关掉UAC 后无法启动Metro App;
  7. 没有Aero Glass.

这些不便让我很怀念Win7, 如果你也像我一样无法忍受以上问题的话, 建议你还是继续用Win7 吧, 这是微软迄今为止最好用的桌面操作系统.

继续阅读解决Windows 8 的一些使用问题

在Debian Squeeze 上编译 node.js

OpenGG.Clean.Player 服务器目前用的是apache2. 在9 月11 号之前, 服务器虽然压力比较大, 但主要是静态文件, 速度尚能接受. 但优酷对api 增加了crossdomain.xml 限制之后. 我不得不设置一个反向代理, 这样一来所有的视频api 请求全部通过我的服务器, 压力骤然增大.

流量的压力是一方面, 另一方面则是网络IO 和apache2 进程数限制: 服务器与优酷api 之间的延迟比较大(查询一次约1s), 大量请求被网络IO 所阻塞, 挂起等待优酷api 响应, 导致新的请求被apache2 的并发进程数限制阻塞(在高峰期, 新请求要等老请求完成, 然后才能被apache2 处理, 整个排队时间约10s). 所以现在各位用户在看优酷视频前加载的时间比较长, 因为浏览器既要下载播放器, 又要等待服务器响应, 整个过程加起来约13s, 这已经跟广告差不多长了!

优酷对此要负主要责任. 从OpenGG.Clean.Player 项目开始到现在, 优酷有所求, 用户有所求, 双方在广告和去广告上反复较量, 唯一不求回报任劳任怨的活雷锋是我.

继续阅读在Debian Squeeze 上编译 node.js

Xunlei.Any.Player 0.44

update 2012.09.12: 升级到0.44, 修复种子播放
update 2012.09.11 晚21点40分: 下班前忙得, 搞错了, 现在升级到0.43

之前vod.xunlei.com 会每10 分钟302, 现在Xunlei.Any.Player 升级到0.43, 可以在xlpan.com 上看了.

可以在右下角框框输入视频下载地址, 或拖入.torrent 文件.

视频下载地址和.torrent 文件, 请到yyets.com , 或者caoliu 上找.

对 jQuery tiny PubSub 的改进

最近在做一个项目的时候, 需要用到同事写的一个js 模块, 为了让我写的新模块与之通信, 我一开始用的是旧模块里的一个全局变量. 但是由于历史原因, 这个全局变量不知道啥时候就会被旧模块所修改, 因此遇到了不少Bug. 最后我放弃了共享全局变量的做法, 改用PubSub. 使用PubSub 的好处是减少了对全局变量的依赖, 降低了模块之间的耦合程度, 从而减少了模块高耦合带来的风险.

我之前使用的PubSub 是 jQuery Tiny Pub/Sub, 这几行代码利用了jQuery 的事件api, 实现了相当简练PubSub, 但我遇到了一个缺陷: 在传递数组时有Bug.

$.publish('test',1);       //1
$.publish('test',{a:1});   //{a:1}
$.publish('test',[2,3,4]); //2, it should be [2,3,4] instead
$.publish('test',{arr:[2,3,4]})  //{arr:[2,3,4]}

这个问题让我很头疼, 又无法绕开, 因为这是jQuery 事件api 的写法所致. 随后我决定自己写一个PubSub.

继续阅读对 jQuery tiny PubSub 的改进