gossiping –comments on nobody

January 21st, 2012 No comments

以铜为镜,可以正衣冠。

昨天晚上,同寝室的7个人被分成了6份,发配到其他寝室去,大家都很不愿意,但没办法,须知上早就写明了这一条。
搬到新寝室,我发现分配给我的那个插座基本不能用(基本就是那几根线固定的),看见旁边铺位的插座空着,就问可不可以暂时借用一下,那人竟说“
不行,你正好提醒了我,我马上就要充电”。我也就狠下心来,插上笔记本电源插座,心想,大不了一直不拔,走的时候再拔。

他奶奶的,这刺耳的话我好像以前也听过。你说”你暂时用吧,不过我好像马上就要给手机充电“,或者说”这样吧,我们轮流用吧“,总那么恶心的话好听吧。不跟这样的垃圾计较了,何必,疯狗一条而已,免得被咬了还得自己花钱打狂犬疫苗。哎,我还是以为这个世界很善良,遇到这种情形知道怎么保护自己就行。

这些天一直在听讲座,薛兆丰《自由市场经济》,何帆《透过律政剧看美国司法文化》,李子旸《市场的力量》,还有一场北美留学讲座。最大的印象大概是市场与民主的关系,民主并不能保证有最好的结果,而市场很多时候又是没有人性的。
后面还有姬十三,柴静,土摩托等要过来,拭目以待。明天还有免费饺子什么的啊,晚上机房也免费~

Categories: Appreciation Tags:

marvelous — at the tail of 2011

January 21st, 2012 No comments

这篇算是补上的,因为自己对自己许诺说至少每个月总结一下–或者说牢骚一下。

11-12/13 周六找房子,还算顺利,当天下午就入住了。周日 办了招行的一卡通,在知春路那边转。
11-19/20 周六去沃尔玛买自行车,周日在清华:http://linuxtoy.org/archives/ubuntu-11-10-release-party-empire-capital.html
12-1-4 周四就请了假(后来发现没必要,因为晚上十点多的火车,基本白天就是在屋子里宅),周五到的威海,准备第二天软件工程课程设计验收,周六验收,平生第一次被冠上“不诚信”的帽子,不解释,MFC你自己摸一下自己的良心还在不?验收完就去买票,买了个中铺,不是很爽,周日回到帝都,上午跟@yutao(这个@是我伪造的,因为该同学好像没用过敌国产品)同学去了天安门,西单,还有什么西单图书大厦,当时两个人都饿得不行了,就去旁边吃了米粉,那真叫狼狈啊。后来好像很早就回去了。
12-10/11 周六好像没出去,下午买了围巾和耳机(那个amazon原装的耳机不知道在哪儿丢了,估计在半路上骑车听完VOA往兜里没有全部塞进去掉了)。周日没干什么,好像去公司干了会儿活。
12-17/18 周六上午紧急修复了N多bug,一直干到中午两点,下午跟同学去圆明园了,傍晚时去了一趟北大,好像不让进了,然而我跟同学就趁那门卫在阻拦其他人时装作本校的混了进去,没怎么逛,当时觉得好小啊。 周日好像又去公司织毛衣了,因为发现惟一的痕迹是手机里一条来自过公司短信网关的短信。
12-24/25 周六跟@le284同学去了一趟秀水街,开始我在speak2me上听见,以为是一条街,去了之后才知道就是一个商厦,不过里面倒有不少国际友人,看见那些硬拽别人过去购物的那些sellers,我都觉得浑身鸡皮疙瘩。不过看见一黑人兄弟,推着个婴儿车,里面的黑人小朋友好像睡的很香。周日跟@yutao 同学去了北大,还有北海公园。北大上周跟同学去过,但没走多远,这次,什么博雅塔,未名湖都看了,觉得好冷清,未名湖上还可以溜冰,后来见到Aron Xu也有那湖面结冰的照片。北海呢,还比较大,买了通票,同学就想着把票上的景点都逛,才不吃亏。我就跟着走了,唯一可留念之处是那个坡度极高却没有扶梯的木楼梯,其他就是卡迪拉克在下面搞了个冰雕,说是什么破解巨冰密码,问了一遭,都不知道是什么个意图–就“破解巨冰密码”几个字加上logo,没有任何提示,难道是大家都智商不够?
1-1-3 31号调休,上班。1号跟同学去了天坛,比北海大,游人好像也很多,帮忙给一对国外青年友人拍了张合影。
下午去西单苹果店,人山人海,好不容易找到个机器,说坏了。不过那通往地下一楼的玻璃阶梯倒很别致。
2号本来要去沃尔玛那那自行车的说明书(我打算把自行车拆了,托运回去,但不知道具体型号,车声也只是标了厂家),
但去了得知那自行车的师傅要下午两点才上班,之后就去跟@le284 那帮人去了鸟巢,地坛,还有国家图书馆。鸟巢大冬天没什么好看的,地坛更是冷清要命,大伙都说冷啊,国家图书馆就悲剧了,到那里就16:40多了,那天国图因为节假日17:00闭馆,我进去的话还得存包,还有就是我那时饿得不行了,他们在里面休息了十多分钟出来后,我就狼狈的买了个地瓜充饥–饥不择食。
3号没出去,在家迁移VPS,但是新的VPS基本也没怎么整,就把只博客弄了起来。
1-7/8 周六没有出去,好像中午打了半个小时篮球,剩下估计就是织毛衣去了。周日在淘宝上买了个行李箱,还买了剩下的剑678。
1-14/15 周六去体检,然后中午去参加公司年会,晚上跟同学,还有@xiaolei去知春路附近吃了顿饭。
周日上午去邮寄了被子,感觉服务态度不像是国企,那么多人,还很贴切,临走时还送了个新年贺卡,赞一个,@上地邮局(在上地环岛南路附近)。中午在大厦旁边的超市吃饭饭,就奔赴中关村。接下来,两个悲剧:一个是我在中关村大厦旁边找新中关村大厦找了很久,最后发现出站口上那个新中关村商城就是,第二个就是我找了很久都没有找到去12层的电梯,找到的电梯都知道商场的那几层。不过期间我发现有传说中的免费WIFI,直接就可以上去,不像KFC那样还要手机验证,不过估计给记录的还是要记录的,天朝会对每一个公民负责的。下午就到了这儿。

以上基本是流水帐,我倒蛮喜欢的,比写周报爽,这些本来打算元旦前写的,但却拖了这么久啊~

Categories: Life Tags:

self’s hardcore fan

January 21st, 2012 No comments

vps无故响应巨慢无比,一看rsyslogd竟然吃了98%的CPU。参看
1,rsyslogd stuck at eating 100% (or more) CPU after upgrading to Ubuntu Natty Narwhal
2,rsyslogd spins CPU on some kernels
本来重新安装了一个oneric带的高版本rsyslog,但是不奏效。看见1中说natty(2.6.38)左右内核更改了API,果断下载了maverick带的低版本rsyslog ,问题解决。

for i in `dpkg --get-selections|grep deinstall|cut -f1`; do sudo apt-get purge $i ; done;如果apt-get purge不顶用(在我的vps 11.04 natty上就不管用),那就用dpkg -P.

首先安装了个pigfish(后来觉得也没必要装,root后自己直接去看/proc/iomap就行),想看看是gen1还是gen2,没想到竟是“Mr Pigfish says you have an unknown model”。
然后发现U880和这个V880根本不是同一个型号,尽管是什么“联通定制V880,电信定制N880,移动定制U880”。
想在Ubuntu下用adb,查看型号信息:

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0402:5602 ALi Corp. M5602 Video Camera Controller
Bus 003 Device 002: ID 08ff:1600 AuthenTec, Inc. AES1600
Bus 005 Device 002: ID 03eb:0902 Atmel Corp. 4-Port Hub
Bus 005 Device 003: ID 15d9:0a37 Trust International B.V. Mouse
Bus 005 Device 004: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 002 Device 004: ID 19d2:0250 ONDA Communication S.p.A.

按着http://developer.android.com/guide/developing/device.html 的方法添加了如下规则,参考到了 Udev Cyanogenmod Wiki

#SUBSYSTEM==”usb”, ATTR{idVendor}==”19D2″, MODE=”0666″, GROUP=”plugdev”
SUBSYSTEMS==”usb”, ATTRS{idVendor}==”19d2″, ATTRS{idProduct}==”0250″, MODE=”0666″, OWNER=”lele”
SUBSYSTEMS==”usb_device”, ATTRS{idVendor}==”19d2″, ATTRS{idProduct}==”0250″, MODE=”0666″, OWNER=”lele”

插拔几次都不行,我就觉得希望不大了,毕竟那个Windows驱动当时安装时就有点脑残了。然后看了下面这些链接后,就是绝望了。
1,求一个B10能用的usb驱动程序
2,ubuntu下android手机的识别问题
3,必须在Windows 下连接的Android设备

这个题目是2012-01-21号补上去的,原题是next, 自己一时没想到什么好想法,突然想起鱼苗(苗瑜)在课堂说到这个词就起了这样一个题目,自己的脑残粉丝,够狠的吧。

Categories: Linux Tags:

Kindle 3 review and development

November 4th, 2011 No comments

Kindle是7月份买的,到现在也有三个多月了,除了这两个月外出,基本使用也有1个多月吧。
觉得还是挺方便的,不用再担心书包背带什么时候会断了,看书还是极佳的,附带的上网功能在俺外出时收收邮件,看看新闻什么的还是相当给力的。

网上 Reversing Everything 里说到的private command竟然说是“`help”,以反引号开头,跟什么“;debugOn”,”~changeLocale zh-CN”都不同,我就试了半天,才发现其实就是“~help”。

具体更多什么private command自己捣腾吧。
1,jailbreak
一个是mobileread论坛,还有一个地方就是yifang.lu,也不错.我用的是Serge A. Levin的,他这个是基于Yifan Lu 3.2.1的破解,文件按照自己型号选就行,我选的是update_jailbreak_0.5.1_k3gb_install.bin,把这个文件拷贝到根目录下,再到kindle的setting页面下选择Update My Kindle就行,安装过程会显示进度(这个就是调用update_progressbar <百分进度>),完成后会重启,如果没有成功,那再试试,或换其他jailbreak。
2,usbNetwork
安装过程如上,这样你的Kindle就可以SSH登录了。当然主要是开发传文件和tethering用。安装完后用”;debugOn”和“~usbNetwork”启用usbNetwork。
ubuntu中直接新建一个静态IP的链接,IP指定为192.168.2.X,X不能为2,子网掩码为255.255.255.0,网关为Kindle的IP:192.168.2.2。

$ssh root@192.168.2.2 #telnet 192.168.2.2

Welcome to Kindle!

#################################################
# N O T I C E * N O T I C E * N O T I C E #
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################

如果需要写文件系统,就mntroot rw就行。

[root@kindle root]# mntroot rw
system: I mntroot:def:Making root filesystem writeable

1)在Kindle上做一个逆向端口转发吧,

#fints-g7g.amazon.com 72.21.210.242
amazon_ip=72.21.210.242
user_name=lele
host_ip=192.168.2.10

ssh -R 2345:$amazon_ip:80 $user_name@$host_ip

72.21.210.242就是proxy的IP地址了,192.168.2.10就是笔记本IP地址,2345就是笔记本HTTP代理端口,代理地址是127.0.0.1哦,而不是192.168.2.2。建立好了之后最好在笔记本上再运行ping 192.168.2.2以保持SSH链接。
2)amazon将代理所有HTTP/HTTPS请求,再每个请求头中包含特定的两个:x-fsn和x-kn-appId,x-fsn应该是每台机器都不一样的。我们用tcpdump弄一个请求看就很容易知道。
下载tcpdump-arm,scp拷贝到Kindle,然后捕包”./tcpdump-arm -nAi ppp0 -s0″,这个时候运行Kindle浏览器,你很快就会找到下面类似的两个HTTP头,注意如果当前为WIFI,吧WIFI热点forget掉,不然你就别捕获ppp0,改成wlan0吧,不过你可能没法得到amazon proxy的地址。

x-fsn: kBQBIwGnM615oeZi1vKyQIiE9Cp2Vt0OiFVSbHTXc+VxY/5lgJqPTXlNhPKYp0+8
x-kn-appId: BBookletV3

3)再给firefox安装上一个modify header的插件将这两个值加入到每次请求中,这样的话就可以通过amazon的验证了。否则你就等着访问每个网页都返回“There is a problem with your Kindle account. Please call Customer Service at 1-866-321-8851 or 1-206-266-0927. For UK customers, please call +44(0)800 496 2449.”。Chrome没有类似扩展,所以如果谁能修改kindle源码,让每个请求自动发送这两个HTTP头就更好,更多程序可以越过长城,走向世界了。
当然现在只能是HTTP啊,HTTPS现在还不行。
3,dev
这个自然是开发,我主要参考了Hacking the Kindle ,关键是开发密钥的生成。将生成的密钥上传到Kindel上(当然也可以按照文中所列生成一个安装包,其实无非就是备份旧的开发密钥/var/local/java/keystore/developer.keystore,,然后上传新的开发密钥,然后每个jar都用生成的密钥签名(amazon估计以后要想苹果那样审核应用?),将文件后缀名改成azw2,放到documents目录下。在kindle上呆开刚才上传的azw2就运行起来了。

看见没,程序右上角有一个dev的标识,而不是什么’new‘或’pdf‘噢。
参考链接:
1,Reversing Everything
2,kindle 3用作modem共享3G上网
3,Hacking the Kindle

Categories: Linux Tags:

update in this week 2011/11/01

November 4th, 2011 No comments

升级到11.10后不知道什么时候本子插上耳机就没声音了,我之前倒是看到过插上耳机后电脑声卡还是有声音。硬件支持一直是开源软件的软肋。最后参考 https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/874880 #12的建议解决了。如果还是不行,那就请参考http://ceeji.net/blog/fix-ubuntu-sound/zh-hans/ 。修复之后声音也不像以前那样,声音太小了,调到很大才能有声音,最后变化范围太小了。

说到11.10的变化,把菜单集成到面板上,显然是从MAC中学来的,一开始不是很习惯,现在慢慢觉得舒服多了。还有就是快捷键使用更加频繁了,比如Meta+N可以启动Launcher上对应的程序,Alt+F4关闭窗口,Alt+Shift+V/C在终端上粘贴/复制等等。关于这些使用还得多用,熟能生巧嘛。最近把Vimperator给禁用了,对输入框太不友好了,以后再看看吧。

写了两篇关于这两个月东奔西走的事后,回来就是实验和考试,好像也没再发生什么”大事“。

Categories: Life Tags:

All is up to you

September 15th, 2011 No comments

昨晚开始忙活工作的事,那么多地方,好像要找一个清净的地方的地方并不容易。跟一个新浪的员工聊了聊,才知道他们
公司技术研发基本没有什么校园招聘,只是内部推荐,让我很是愕然。还有就是新浪好像特别爱好PHP,难怪他们模仿Google Appengine也只支持PHP,当时本准备注册一个,但竟然要填电话号码,就作罢–你要我电话号码干啥,再说,如果
你能信守“不作恶”的原则,我也不会在乎电话号码什么的。不过好像,新浪微博部门现在应该是急剧扩张吧,毕竟朝内首家嘛。

大前天想起了一个朋友,想只有到去校内才有可能找到她,就注册了一个校内帐号。一开始我看有一个用MSN帐号登录,就选了,没想到第二天登录提示才明白,人人把我MSN联系信息里的邮件地址(一个我已经多年未使用的QQ邮箱,已忘记了密码无法登录–至于我为什么不用那个又响了,这又是一段很长很长的故事),而不是链接时的Hotmail邮箱。重新注册个hotmail,不设置联系信息邮箱地址,这次就好了。但是我已经用那个邮箱给那个朋友发了站内信,最后几经周则,包括打电话给客服,最后感觉人人这儿有两处设计问题:
1,用MSN帐号链接时,创建人人帐号时应该将登录MSN的Hotmail邮箱作为人人的登录邮箱。
2,客服竟然直接发送一个让我更改密码的链接(权利有点大吧),我用新密码登录进去,直接把登录邮箱改了,验证信息竟然是发送到更改后的新邮箱–今天试用了一下heroku,别人的设计就是把验证信息发送到原来的邮箱。仅从安全性讲,后者更合理,那样我的邮箱就不可能更改了–这又得牵连到第一个设计问题。

还是说说我决定找回那个多年未联系的朋友吧,站内信如下:

今天给朋友写中秋祝福的邮件时突然想起了你–源自那首英文儿歌BINGO,记得一个周末的晚上你在教室里放的。
记得最近一次见面也是高中毕业时在B栋二楼的教室(257)你慌忙地到处找寻你的毕业证,最后一次联系是08年初了,
给你写了封邮件。你的联系信息后来在一次事故中丢了(还有一个朋友的也是那次丢的),就这样一直到今天。

我刚才注册了一个人人帐号–我想没有其他方式能够找到你。搜索了好几次,都把你名字拼写错了,请原谅。

自从高中毕业后,自从周老师离开后,发生了许多事情,很多时候感觉上帝关了一扇门好像也忘了开一扇窗,
但不管怎么,自己还是跌跌撞撞一路奔走着。周遭不断改变,而我却发现儿时的玩伴,青春的同路人,还有
不多不少的朋友是那么真实。在高中的三年,除了周老师之外的另一个朋友就是你了,记得你从楼下草坪上捉来蚂蚱
到教室,记得分班后我说很少见到你了之后每次碰见都会说“XXX,我又看见你了,记着…”,记得高考后给你打了一次电话…当时并不觉得是把你当朋友–因为在我的世界里,从半个朋友到一个朋友都会经历很长时间–而后来却觉得
那个不是朋友的朋友已经成了那段时光里唯一的风景。

我不知道现在把你当朋友看,是否让你觉得很不舒服,毕竟我只是一位很多年都没联系过的高中同学。
如果你愿意的话,能否给我你的邮箱地址或者其他什么联系方式,我的邮箱是schemacs@gmail.com,
QQ邮箱为schemacs@qq.com,校内这个帐号估计不会怎么用,所以方便的话还是发邮件吧。

如果你觉得不怎么认识上面说话的这个人,或者没有什么可以跟来自尘封历史的他可说的,那我也
衷心感谢曾经出现过的你,你曾积极影响过一个人,也祝福你能开开心心,还是我曾经见到的那副笑脸,打扰了。

2011/09/12 XXX

真希望她还能记得自己,不过如果没有,也没关系,还是希望她一切都好。

update:Thu Sep 15 17:08:46 CST 2011
我竟然收到了回信,抱歉我才收到这个信息,我现在电脑没带着,我会尽快给你回邮件。嘻嘻。
终于听到了你的声音,内心满是喜悦,我也想跟你说,“XXX,我又看见你了,记着啊…”。

Categories: Life Tags:

Feel so relieved

August 16th, 2011 No comments

感到前所未有的轻松自在,算是一次重生?

昨晚听到那个代班主持说在下面的一首歌是她在新浪微博上发的一条只有七个字的微博,我马上就猜出来是那首《想把我唱给你听》,暑假开始的时候我就接触到了那首歌,旋律和歌词都堪称完美,特别是那句”趁现在年少如花,花儿尽情地开吧,装点你的岁月我的枝芽,最最亲爱的人啊,路途遥远我们在一起吧“。 如果所有的,都能抛开那些物质的前提,都能尽情的爱,那多美好呢。总是想不明白为什么简简单单的情感,许多人要附加那么多甚至可以说得上是肮脏的东西呢?

整理大一笔记时,发现那时真天真,连TPC(事务处理Council)都记上了,当时肯定只是当单词记着。还发现上面写这很多网址,
记得当时不知道Google什么的,怕忘记,什么都记着,竟然看到有ACDSee软件的官网下载地址!那是真是只把自己当字典了。
还看见了下面一句,“什么人最重要?什么事最重要?什么时间做事最重要? 眼下需要你帮助的人最重要。马上去做最重要。当下,一点也不拖延最重要。”可以得出,现在自己的智商肯定不如当时了。 “眼下需要你帮助的人”,这不一定是别人,也有可能是你自己。你自己活好了,才可以帮助别人嘛。“马上去做“,这个不是说那种hot shot,有勇有谋才行。“当下”,还是要合理计划,否则是“不预则废”。

VIM那套教程基础部分看完了,VIM还是那句,越用越觉得其强大。LLVM的Kaleiscope就剩下最后一节总结了,下面就是动手琢磨了。Software Engineering的课程设计还没想好,不过应该是实现以前的一些想法。


amazing grace, how sweet the sound
that saved a wretch like me.
i once was lost but now i’m found,
was blind but now i see.

t’was grace that taught my heart to fear.
and grace my fear relieved
how precious did that grace appear,
the hour i first believed.

through many dangers, toils and snares
we have already come
t’was grace that brought us safe thus far
and grace will lead us home.

when we’ve been there ten thousand years
bright shining as the sun;
we’ve no less days to sing god’s praise
than when we first begun.

Categories: Life Tags:

Happy Birthday 2011

August 14th, 2011 No comments

终于在适当的时候记起自己的生日了,不过还是早过了一天,因为昨天晚上用手机查农历时,却忘了当时已经过了零点。
之所以会记起,是应为妈妈和奶奶这些天都提起了,说家里有有三个人七月生日……

昨天晚上终于把几年前看过的一部电视剧《天下第一》剩下的几集看完了,看到海棠死了,就哭了。这部电视剧是几年前在家里
跟爸妈一起看的,当时要回学校,爸妈也要南下,就都没看完。剧中其他主角基本都忘了,但海棠却刻在脑海里。聪明伶俐,从来不失风度,无论是男扮女装,还是后来大家都知道是女儿身。最恨飘絮,天涯对她那么好,尤其是那么信任她(都一直没有发现飘絮没有像她和神候所说的那样自废武功)为什么还不知醒悟,竟然忍心向海棠下手-海棠在揭穿她前还希望她能及时知错能改…“真,比真金还真”,海棠一生何不是真性情,正直无邪。为了一刀,她竟然可以违心嫁给万三千,记得婚礼前一天晚上,在院子里对一刀说的那句“你可能觉得自己什么都没有了,但是有一样东西,你从来没失去过,你知道吗? 就是我的心,从来都没有离开过你.“ 何等专注,何等真性情!海棠死后,张进酒说了一句:世上真正称得上好人的人不多,海棠姑娘却是其中之一。

如果能回到剧中时代,结识海棠这样的性情中人,何等人生之快事啊!

还是低头看看天朝吧。

突然想起HTTP的重定向,想如果出现循环会这么样?我尝试了一下,客户端重定向(其实应该叫跳转)浏览器不管,即使CPU飙升;
服务器端就插手了。HTTP规范里,曾经建议过最大次数为5次,后来又删掉了,说由具体实现去定,见
我测试了一下,Firefox和Chrome都最大允许10次,如下(Chrome直接加载了本地data,所以Developer Tools没能显示网络重定向请求的过程:

其中脚本里如何写,可以参照 维基百科,注意:

Even for CGI scripts, the web server usually generates the status code automatically and allows custom headers to be added by the script. To produce HTTP status codes with cgi-scripts, one needs to enable non-parsed-headers.

我在脚本里直接输出状态码print "HTTP/1.1 301 Moved Permanently"反而得到了个服务器端错误,说malformed header from script. Bad header=HTTP/1.1 301 Moved Permanently: redirect_loop.py
,维基百科中有

Sometimes, it is sufficient to print the “Location: ‘url’” header line from a normal CGI script. Many web servers choose one of the 3xx status codes for such replies.

,所以改成print "Status: 301 Moved Permanently"就好了,估计这是没有启用non-parsed-headers造成的。
P.S. 如果你有兴趣可以试一下增加循环中的URL个数,比如三个页面之间跳转,看看会有什么结果,比如Firefox在提示存在循环前循环的次数是不是还是10次。

Categories: Life Tags:

update in this week(2011/07/15)

July 15th, 2011 No comments

最后一门考试结束了,CIMS与ERP概论课程的作业也交了,想起某位老师竟然让学生把Spring做的Web应用打包成EXE就觉得
国内无论是商业和教育界,很多问题就是缺乏竞争。昨天看见一个关于全球网速的调查报告,韩国达到了十几M,而中国才刚一百来K,这个差距,究其根底,也是,南北电信和联通垄断。

想起上面提到的老师,自己就打算给他送个自己定制过的Firefox(Mozilla有Build Your Own Browser,但是好像还是3.6的,还要审核),主页就改成部署的地址,想先在服务器上把Linux版本弄出来,无奈小小服务器,512M内存很快就说“virtual memory exhausted: Cannot allocate memory”,而通过hg clone下来,那个速度,十几KB,要知道整个工程1.2G啊,一算连续得下三十多个小时才行,只好先在服务器上下载(当让用不了几分钟),然后用bzip2压缩,组后用迅雷再拖下来,考试回来就下完了,花了三个小时左右。

解压后,hg pull更新一下,顺便在tinderboxpushlog查看了最近的提交和官方编译结果,还行,只有一个失败,还是android平台的,那就开始make -f client.mk,一开始说C++编译器无法创建可执行文件,最后发现是拖下来解压后目录竟然是只读的,修正后,编译估计花了两个小时,反正回来时已经编译好了,在obj目录(我的是obj-i686-pc-mingw32)执行make installer就在obj-i686-pc-mingw32/dist/install/sea目录下有了firefox-8.0a1.en-US.win32.installer.exe,果然Mozilla下载学Chrome的,版本号更新得真快,现在正式版还是4.0。

还有就是开始注意对编码风格密切关注,早知道就有PEP8和PEP7,但是没想到竟然还有个pep8.py专门来检查代码是否符合PEP8风格要求,Ubuntu自带那个版本太低,对行字符计数就有问题,多字节编码时就不对,
旧版:

    length = len(physical_line.rstrip())
    if length > 79:
        return 79, "E501 line too long (%d characters)" % length

新版:

    line = physical_line.rstrip()
    length = len(line)
    if length > MAX_LINE_LENGTH:
        try:
            # The line could contain multi-byte characters
            if not hasattr(line, 'decode'):   # Python 3
                line = line.encode('latin-1')
            length = len(line.decode('utf-8'))
        except UnicodeDecodeError:
            pass
    if length > MAX_LINE_LENGTH:
        return MAX_LINE_LENGTH, "E501 line too long (%d characters)" % length

一看就明白了,新版显然要健壮多了,其实在其主页也提到:

0.6.0 (2010-09-19)
Fix E501 for lines containing multibyte encoded characters. (Issue #7)

There’s also a package for Debian/Ubuntu, but it’s not always the latest version:

用了pip后,想Ubuntu里肯定还有其他包也是有些老了,就像如何能像系统升级那样把那些包全给升级了,最后在http://stackoverflow.com/questions/2720014/upgrading-all-packages-with-pip 找到了,但自己系统上某些依赖无法满足,只好作罢。

在翻译Django应用时,我需要单独翻译站点(也就是Project)的模板文件,却发现在Project根目录下运行django-admin makemessages -l zh_CN却包含了全部应用的字符串,最后在http://stackoverflow.com/questions/4566312/django-i18n-makemessages-only-on-site-level-possible找到了django-admin还有 -i 选项,这样就可以了:django-admin makemessages -i "appa/*" -i "appb/*" -i "appc/*" -l zh_CN

编译firefox参考链接
Simple Firefox build
Windows build prerequisites
Latest Source Passing Tests
tinderboxpushlog

Categories: OpenSource, Python Tags:

不虚此行

June 18th, 2011 No comments

一位好朋友毕业了,要我留两句话,看她那般盛情邀请,而一直以来跟自己算得上是某种《同类》,就借此机会好好谢谢人家一番,这么久。

本文题目完整应该是此生不虚此行,以下为全文。

同样,我的英文也只是小打小闹,不足以对付如此盛情之邀.

认识你,不仅是缘分,更是奇迹–在我最初的极力阻扰下,我们之间的友谊到如今已如此茂盛.

仍记得第一次见面不到一个小时你那句”我24小时开机,你今晚什么时候打过来都行,我在阳台上放一盆水,到时候我用水冲一下脸,然后就听你说”,仍记得在那些发霉的日子里你不厌其烦地听我叙述着同一个故事,仍记得你去鸟巢时还不忘那位喜欢风筝的朋友……

《一个像夏天,一个像秋天》里有一句歌词“遇见你,生命全改变”,感谢一直以来你那么耐心的聆听–不是所有的朋友都会随时借你一双耳朵。就连刚才那句“对我很重要”,我也满心感动,让我觉得不虚此行。

一棵树不可以代表整片森林,你一直这么告诉我,我也希望自己在未来的某个时间能明白这一点,Time will tell it。

以前你有一次开玩笑说“你不是要说给我写信了吧?”,没想到这次倒似一封信了,以后还是邮件联系吧–谁让俺是挨踢民工呢?

最近在读亦舒,本来有一大堆她的“妙语连珠”要同你分享,看来暂时就只能附上下面两句了:
若是生活愉快非得自己先踩成一块地毯不可,否则总有人来替天行道,挫你的锐气,与其待别人动手,不如自己先打自己嘴巴,总之将本身毁得一钱不值,别人的气也就平了,也不妒忌了。 –《我的前半生》
不骄,不矜,勤工,好学,才是好女子。 –《特首小姐你早》
Ok,that’s it.Keep in touch.

Categories: Life Tags: