Archive for 2009
2010,我们继续翻墙
年关将近,吾等将送别“不折腾”元年,迎来2010年。各类网络服务,关的关,封的封,互联网上了无生机,几乎已经回到了“莫谈国事”的年代,如果鲁迅活在当代,也许只能在墙外发发牢骚,也许会在机场住上几个月看各国游客来来往往,也许被判个11年…
这里分享一些翻墙方法,对于耐不住寂寞的朋友,或者不明真相的群众或许有些帮助。

Google Docs:
- 访问Google Docs,在hosts文件里加入:209.85.225.101 docs.google.com,然后使用https协议访问。
All:
- 手机浏览器:http://get.skyfire.com/
- Tor+Firefox:Google “Tor+Firefox”,找一个可以下载的站点下载(你总会找到一个的),有时候不能登陆,设置一下Bridge就可以了,具体方法可以Google一下
Twitter:
- Twitter:http://twitter.fishnote.net/login.php
- 添加twitonmsn@live.com为你的MSN好友,之后“Help”一下绑定你的账号
- http://fanfou.es
- http://nc.alwaysdata.net/index.php
更多方法:
发送任意内容邮件到 bypassgfw+subscribe@googlegroups.com 并回复(Reply)收到的系统邮件即可加入翻墙互助小组邮件列表,加入后每天可收到一封附件包含有效翻墙软件的邮件。每周发送周报,介绍最新翻墙技巧
总结:上个网,够折腾的,想起的CNBeta上一网友的留言:“都怪蒋委员当年剿匪不力啊!”
本贴持续更新中…
[ad]
Math 24 on M8
My first M8 App – Math 24
对于M8,总的来说感觉不错,有一点不好的是:每天都得充电,可能和我用的多有关。
至于M8的SDK,还不错,就是模拟器的CPU占用率太高,50%左右,每次调试都要FTP到手机上(手机上装了个FTP Server,FTPCE)。对于MZFC(MeiZu Foundation Class Library)我纳闷的是:魅族的开发人员既然已经重载了很多CE的类,为什么不好事做到底,把CMzString这个类搞的容易用些,用起来还不如CString方便,索性我放弃它了,用C++ Standard Library的wstring代替。
还有一个问题是:用模拟器+VS2005,怎么也进不了断点,至今无解。
[ad]
无法使用POP3/SMTP收发GMail的问题
昨天去买个魅族SE版的手机,把之前的S60给淘汰了。由于它对Java的支持不好,只能使用系统自带的email客户端,结果怎么配置都不成功。
报错:密码错误或用户名无效。所有配置我已经检查了N遍,没有任何毛病,就是不行。起初,我怀疑密码中有特殊字符导致登录有问题,就把email的密码改为最简单的几个字母,问题依旧。一直搞到凌晨2点,依然无果,罢了。
早晨起来,终于Google到一篇文章,说是登录验证的问题,到https://www.google.com/accounts/DisplayUnlockCaptcha 设置一下即可。
成功后提示:
unlock后就可以收发Gmail了,Google的返回码不够友好,太折腾人了。
[ad]
东拉西扯
只是流水账:
c:/>工作上遇到一个case,折腾了2天,觉也没睡,连续40个小时左右。上次这么连续奋战还是在大学的时候,这次权当给自己做个压力测试,测试结果:PASS
c:/>周末去看了场Michael Jackson的THIS IS IT纪录片,原来Miachel工作起来蛮认真的。
c:/>终于拿到Google Wave账号了,真服了Google的推广策略,又是提名、又是邀请的,把人胃口吊的真没的说。FriendFeed、cnbeta上天天看到有人在求Wave邀请。Wave里面没有好友,还没体会到它的好处。
c:/>明天去独墅湖续借两本书,借了很久了,几天才看一次。
[ad]
Wild China
推荐一部影片《Wild China》,中文名:《美丽中国》,由BBC和CCTV合作拍摄。不同于我们常看到的官方版本的、从大处着眼的纪录片,本片从细微处出发,用细腻的画面(高清)和优美的音乐描绘出一个普通人所熟悉的人与自然间的和谐社会…
http://www.bbc.co.uk/sn/tvradio/programmes/wildchina/
http://www.imdb.com/title/tt0884762/
[ad]
西单女孩
89年出生的她
来北京唱歌已经有四年的时间
上天给了她一副好嗓子
但也给了她一个不幸的家庭
让她经历了不同寻常的心酸
娱乐一下
一个搞笑的小孩,到处都是国庆报道,看看下面的视频,放松一下
[ad]
使用PHProxy访问受限网站
PHProxy(http://sourceforge.net/projects/poxy/),是一款PHP代理程序,它的好处是:让你在受限网络环境下,访问被禁止的网站,它的典型使用情况如下:
- 如果你的公司禁止员工在上班时间上一些SNS、财经网站等,通过这个程序,可以让你绕过限制
- 如果你想访问墙外的网站,比如Twitter、Facebook等一些人不想让你看的网站,请用PHProxy(这个是本文存在的目的)
当然不是每个人都可以使用它的,前提是:
- 你必须有自己的web站点
- 你的空间提供商允许你做proxy服务,坏消息是大部分空间提供商都禁止用户安装代理程序,比如我的空间商,明确规定:
Anonymous Proxies. HostMonster.Com does not allow the use of anonymous proxy scripts on its servers. They can be very abusive to the server resources, affecting all users on that server.
- 如果你想访问墙外的网站,即使你符合上面两点也是不行的,你的网站必须位于墙外,且你必须修改一下这个程序的代码,请看下面的介绍:
安装PHProxy后,我发现,用它来访问普通网站,是没有问题的,你无需修改它的代码,但是如果你用来访问被GFW墙掉的网站,就不行了。比如:http://www.twitter.com
为什么呢?因为PHProxy首先会将你访问的网站URL,缺省进行一次Base64编码,所以twitter的URL就变成了aHR0cDovL3d3dy50d2l0dGVyLmNvbQ==,然后才进行一次URLEncode编码,变成了aHR0cDovL3d3dy50d2l0dGVyLmNvbQ%3D%3D,而这个字符串大概已经上了GFW的黑名单,不信的话,你用Google搜索下:aHR0cDovL3d3dy50d2l0dGVyLmNvbQ%3D%3D,你的浏览器立刻被重置。
知道原因就简单了,我们只要修改PHProxy,在URL->Base64 Encoder->URL Encoder这个过程后,再加上一道自己定义的编码即可,比如,你把每个字符都加1,解码的时候,再反过来做即可。GFW只会把这些知名站点的URL的用缺省编码加入黑名单,不可能把你新方法加工后的字符串也加入黑名单,因为太多了。
下面做个实际的例子,比如我们可以在编码URL后,将前2位调换到尾部,解码的时候做相反的操作:
else if ($_flags['base64_encode'])
{
function encode_url($url)
{
$tmp = rawurlencode(base64_encode($url));
$head = substr($tmp, 0, 2);
$tail = substr($tmp, 2);
return $tail.$head;
// return rawurlencode(base64_encode($url)); }
function decode_url($url)
{
$head = substr($url, -2);
$tail = substr($url, 0, strlen($url) -2);
$url = $head.$tail;
return str_replace(array(‘&’, ‘&’), ‘&’, base64_decode(rawurldecode($url)));
}
}
上面的代码,我已经验证,可以逃过GFW的封锁。你可以用你自己的喜欢的方式,替换绿色的部分。
注:PHProxy还可以使用ROT13编码,但同样也被屏蔽了,请做同样的Hack。
[ad]
Benchmarking Metrics for MySQL Data Purge
MySQL是个非常优秀的免费数据库,下面是我周末做Data Purge的部分记录,可以用做将来的参考之用:
硬件:AMD Opteron 265 1.8G(Cache 1M), RAM:1G, HD: 350G,算是配置比较差的一台服务器。请注意,下面所提到的数据和您的服务器性能有很大的关系。
// Delete Data
2009-09-03 19:45:45 Start…
Row Count: 46500394(46M)
DELETE FROM atedata WHERE DATE < ’2009-06-01 00:00:00′
Row Count: 22699749(22M)
2009-09-03 21:18:06 End…
从上面可以看出,删除数据是比较慢的操作,46M条的数据,删除到22M条,总共用了大概93分钟,大概255,921rows/min。删除操作所需时间主要和将要删除的数据量是成正比的,删除的记录数越多,所用的时间也越多。
// Optimize Table
2009-09-04 21:33:54 Start…
Row Count: 23051455(23M) – 7.1GiB
optimize table atedata
Row Count: 23051455(23M) – 3.4GiB
2009-09-04 22:15:37 End…
对于数据量比较大的表,比如超过1G,如果只是简单的用DELETE删除了数据,这些数据所占据的磁盘空间并没有被释放,在MySQL里我们称之为:Overhead。只有对表做了OPTIMIZE操作,才能真正的释放它。
从上面的数据可以看出,优化前,表大小是7.1G,优化后表大小为3.4G,表的记录数没有变化,用时42分钟,平均88MiB每分钟。该操作耗时大致和(Table Size – Overhead)的差成正比。对于那种比较大的表,千万不要删除了几百条记录就做Optimize操作,因为它太耗费时间了,我们可以累积到一定数量再做。
Optimize命令执行后,MySQL会生产一个临时的.TMD文件,MySQL的状态显示Repair by sorting,它其实就是优化后的表。这个过程很漫长,做完后,还有一步是重建索引,MySQL状态显示Repair with Keycache,结束的时候会有个.TMM的临时文件生成,它可能就是.MYI文件的拷贝,不过官方文档没有说明,只是猜测。
在创建索引文件的过程中(Repair with Keycache),它的耗时和表的索引多少有很大的关系,我没有验证,但我们可以猜测:索引越多,这个过程就越长。
由于在表很大的情况下,做类似DELETE、OPTIMIZE、ALTER等操作,都是非常的耗时间,所以我们在设计系统的时候就需要提前考虑到:
- 保存数据的时间长度
- 做Data Purge的周期、方法策略
- 数据备份的策略
- Data Purge的过程中,系统该如何应对(以上操作都会造成MySQL被锁定,数据库无法使用)
- 等等
如果数据量不大的话,另当别论。
[ad]