让GoAgent重生

因为斯巴达来了,功夫王之功力又修炼一重,居然连GoAgent也封杀。好在魔高一尺道高一丈,经过简短10分钟修炼,GoAgent浴火重生,击败功夫王。

方法一,可以从UI“为GoAgnet配置AppID”进入,重新来一遍配置,重点在编辑proxy.ini时,修改appspot=cn为appspot=hk,修改hosts=cn为hosts=hk,即可。替换cn下的ip都是没用的,功夫王已将可能的cn ip一网打尽。所幸还有一国两制是个口子。

方法二,更简单,进入GoAgent路径之local文件夹,直接编辑proxy.ini,修改appspot=cn为appspot=hk,修改hosts=cn为hosts=hk,即可。

—————-华丽分割线—————–

百度百科之斯巴达 – 斯巴达以其严酷纪律、独裁统治和军国主义而闻名。斯巴达的政体是寡头政治。在伯罗奔尼撒战争中,斯巴达及其同盟者战胜雅典军队并霸权整个希腊。但斯巴达在称霸希腊不久便被新兴的底比斯打败,在北方的马其顿崛起后,斯巴达失去了在希腊的影响力。

马其顿,亚历山大啊。。。

回归博客

漫天飞雪后,终见云开日。纷繁微博间,寻回博客时。

2012,9月25,偶然发现我的博客可以访问了。难道GFW出现漏洞,抑或天朝大发慈悲?试探facebook, twitter, toutube, imdb依然墙外,看来这慈悲也仅是对我的小慈悲。更有可能是我高兴过早,兴许明天就又被打回墙内。拭目以待。

重见博客好比重见多年不见的老友,唏嘘感概。上一则博客已是几乎四个月前的那个仲夏夜所写。回顾近期,少有写博,除却被墙之原因,客观地说,更多还是因为自身的懒惰和时间被微博所蚕食。去年六月写过一篇批判微博,对微博粉碎并蚕食时间做过批判,没想到一年多后自己都无法摆脱,虽然还是常常做些无用的思想斗争。如今博客回来了,我没有理由继续在微博上消磨时光了。有些思考,不立即写下来就会遗忘。而写作的过程,恰好是提炼和升华思想的过程。我需要更多的、成块的时间来读书、思考和写作。

昨天的微博

下面这几句是昨天(2012年6月3日)晚上躺床上时写到新浪微博去的。今天知道被新浪屏蔽了。而且屏蔽得很有技巧:我自己能看到,别人看不到。这就好比让你对着真空说话,你说了,别人却听不到,你还以为一切正常。还好我有这个墙外的自留地可以随便撒野,留此存照。

“很快就到明天了。一转眼已二十又三年。德先生在那日转身离去后周游世界,却再没回来,也没人知道他还能否回来。细细算来德先生也该九十三岁高龄了,却从没真正受到过历任村长们的喜欢。所以我越发觉得德先生是不大可能回来了。写下几句算是为了忘却的记念罢。”

纠结的四毛一

其实没有人能记得自己出生时的状况,但人人都记得自己的生日,尽管都是长大后被父母或别人告知。

但所有的长辈和依稀的记忆都告诉我,我小时候的天空确实很蓝,也确实可以在院子里支个簸箕就轻易盖到麻雀。水确实很清,小沟和大河都可以跳下去游泳。上学放学确实可以自己走路,不用担心撞上汽车或者坏人。没有冰箱空调,但夏天确实没有现在闷热。棉衣衣袖一接再接,但从没觉得害臊因为勤俭节约还是美德。没有彩电音响,但电子管猫眼收音机和黑白电视一样带给我们欢乐。没有形形色色的综艺节目和五花八门的电视剧,但铁臂阿童木和森林大帝就足够让我们充满期待。吃的喝的是真正的绿色生态,从没听过更没见过化工行业和食品行业的杂交。住的是简陋的平房,但不用付高昂贷款。就近上学顺理成章,不用择校、天价和奥数。看病是很简单的事情,更不能想象病人追砍医生。做好事真的不留名,也不用担心被倒打一耙。

那些都是所谓的“改革开放”以前的记忆了。失去的总是美丽的,所以回忆中有许多美好。我们选择性遗忘,也选择性记忆。可是我还是禁不住问自己,我们这个社会到底是在进步还是在退步?

每当我企图回答这个问题,我就发现我不得不套用标准的官方排比句式:我们在……取得了长足进步,但在……仍存在一些问题。还得加上中国人口多、地域广、负担重、发展不平衡bla bla 做前提条件。然后一切就都是发展中的问题了。一切就都正常了。领导们换了一拨又一拨,这排比句却没有丝毫改变。除了实现了设计师说的“让少部分人先富起来”,那大部分人却是离富裕越来越远。设计师还说过“摸着石头过河”和“不管黑猫白猫抓住耗子就是好猫”。细细品味这两句,不禁让人怀疑设计师是否真的做过设计。

从王局陈律前后脚进入美领馆,到党报权媒左右飘忽的声音,后听说京城成立了个中国科学家自由民主党,似乎这一切都预示着什么。或许,中国近几十年最重要的变革就会呼之欲出了。又或许,一切都不会发生,一切都不会改变。再或许,几十年后,我们还会怀念今天的时光——那时,我们在用互联网!

领导经常教育我,光抱怨是没有用的,要么做点什么,要么丫闭嘴。我就想啊,不管三毛还是四毛,其实每天都可以是一个全新的开始,每天都可能做出一个或许能改变一生轨迹的决定。唯一不能确定的是,这个决定到底是什么?

核磁共振记

很久不到医院,对医院的人多虽早有准备,但还是被这黑压压的人头吓了一跳。闪躲着穿行于人群中,终于办完前面的手续,恭候在核磁共振室门口。说是恭候,其实是“弓候”,因为寥寥几张椅子上早坐着超员超载的人们。超员超载是我们的特色。本来就是腰有问题才来核磁共振,当然不能久站,所以就以一种弓形靠在墙边候着。

旁边的大叔大姐拉着家常,从陌生人到开始互相真诚地让坐。我咽着口水装没看见。厚重的MR金属房门上贴满了各种代表放射性、请勿靠近之类的告示,警告着病员们没事不要去敲门、探头。房间里时不时传来各种频率的报警音——救护车、救火车、警车,让我怀疑那房间里到底发生了什么。有一大妈出来了,衣冠不整,扶着墙,摇摇欲坠,脸色苍白,直说“头晕、头晕”。我继续咽着口水。

白大褂拿着圣旨终于叫到我的名字了,一边应着一边直起腰,痛。双眼还有点发黑。大门已经敞开了,里面的女士半边身子还坐在那个庞然大物上。那就是著名的核磁共振仪了,见诸于许多医疗猛片中,比如Doctor House。白大褂言简意赅:“脱掉所有金属”。我掏出手机放到旁边,脱下外套和皮带放到旁边,这才发现今天穿了牛仔裤,口袋边上几颗亮晃晃的金属纽扣向我挤眉弄眼。我犹豫着对白大褂说:“这个,咋办?”白大褂毫不留情:“脱掉!”我说,“就一条。”白大褂一愣(难道将近二十度的气温穿一条裤子很奇怪?),顺手从旁边抓过一张轻飘飘的蓝色似纸非纸、似布非布的织物,说,“盖上”。我心领神会,立即爬上平台,在那织物的掩护下褪下牛仔裤至膝盖。忽然发现大门还敞开着,好心地提醒白大褂,“门还开着呢”。白大褂似乎没听见,只说了句“一定不要动!”平台就开始缓缓移动,像电影中的镜头一样,我被推送入那个洞。

洞里并无异味,灯光也柔和。洞顶离我还有二十公分,挺宽敞的,就算一大胖子也能轻松装下。不知道大门关上没有。想起别人说要十几分钟,我就开始怀疑我能否一直坚持这姿势一动不动。突然间,头顶警笛大作,正是刚刚在门外听到的一种报警音之一,不过这次音量巨大,震耳欲聋,感觉音源就在头顶。要不是白大褂坚定的嘱咐,我一定惊慌失措了。我只能稍稍咧着嘴,忍受着这巨大噪音,努力保持身体僵直。大约一分钟后,警笛终于消失,这个世界终于清静了!我长出一口气。猛然间,另一种警笛发作,频率明显不同,音量仍然巨大。我只能继续咧嘴,坚挺在案板上。然后慢慢地,感觉腰部开始发热,大概就是核磁共振的作用了。我想起了微波炉内的烤红肠。

在忍受了断断续续、各种频率、各种花样但都音量巨大的警报音折磨十几分钟后,我终于被缓缓送出洞口。还好我又听到白大褂的声音,说明听力还算正常。大门依旧敞开着。旁边已站立一女子等待上案板。我忐忑着伸手到蓝色织物下拉上牛仔裤,跳下案板,在门口众人围观中拉上拉链,扎上皮带,穿上外套,这隐私才算有了保障。一边出门,一边听到那女子问“要不要脱下胸罩?”我赶紧逃了。

深刻体会:在资源紧缺的社会,人是难有尊严的。

皮皮四岁

皮皮四岁了,好快。一到周末,若不外出,家里就变成幼儿园。小朋友们也一起长大,可以非常准确地用语言进行交流,可以任意进行角色扮演,虽然还时不时因为争执而变成嚎啕。大人们都清楚地计算着离孩子们步入填鸭式中国教育还剩下的日子。在这之前,我们能做的只是尽量让孩子们欢乐。%e7%9a%ae%e7%9a%ae4%e5%b2%81%e7%94%9f%e6%97%a5专注:%e4%b8%93%e6%b3%a8

软件有效生产率与代码行关系之迷思

首先声明,本文非严谨学术论文,无数据分析,无实例支撑,基本只有假设,尤其后半段,包括那张图。目的只是素描一个粗糙的想法,因为,人老了,不记下来就会忘掉。

言归正传。通常生产率(Productivity)可以定义为单位时间内生产的产品数量。在软件开发领域“产品数量”难以找到像螺钉、纽扣一般明确的计件单位,所以软件生产率多以代码行或功能点的数量进行计算。而功能点的定义通常又比较含糊,不同软件产品、不同团队对于功能点的定义都不尽相同。所以代码行几乎是大部分软件企业衡量生产率的唯一标准:Productivity=LOC(Line of Code)/Effort。对这个定义,有两种解读:一,相同时间内(让我们暂且归一化resource,所以时间就是Effort)写的代码行越多则生产率越高;二,完成相同代码行花的时间越少则生产率越高。第二种解读可以理解为编程高手、熟手,基本没错。第一种解读却隐含了另外一个没有明说的假设条件:相同的代码质量。而这个假设条件非常重要,否则,哪怕能够实现同样的功能,我也可以堆砌出一大堆没用的代码。注意这些代码并不是“废品”(“废品”就是bug了),而是“低效”的代码。

这又不得不谈到代码的“效率”问题。那么是否完成相同功能、没有bug的代码,行数越多就“效率”越高呢?让我们先分解一下这个“效率”。我理解代码的“效率”应该包含三个方面:一,代码的片段运行效率,比如算法的选择,内存利用,I/O操作等等;二,代码的整体结构效率,比如函数的定义,头文件的选取,软件架构设计,设计模式的运用等等;三,代码的维护效率,主要指代码的可读性,别人是否很容易接手你的代码。

代码的片段运行效率,事实上跟代码行的多少没有太直接的关系。因为算法的优劣并不等价于代码的多寡。代码的多寡也不能决定内存、寄存器、堆栈、I/O是否有效利用。有时候过于精简的代码反而耗费更长的机器时间。当然过于冗长的代码是一定会降低运行效率的。我无法找到一个准确的曲线来表示代码行和运行效率的关系,也许每个软件都有不同的曲线,也许压根就无法用简单单变量函数表示出来。但大体上,应该还是个概率分布如泊松分布之类的。对于代码的整体结构效率,大体还是有原则可循的,过于精简的结构和过于冗长的结构都会降低程序效率,所以,这是否意味着它还是一个类似泊松分布呢?而对于代码的可维护性,相信大多数程序员都深有体会,一行代码完成过多功能只能让读者不解,而为了某些目的弃简就繁的写法也会让读者头晕。呃,所以,貌似这还是一个类似泊松分布。我当然还是无法确定这三个分解因素在构成“有效”代码时的权重,所以,那就还是假设一条综合泊松曲线得了,如下图黑线所示:productivity_vs_loc1这就明显了,随着代码行的增加,总会有那么个时候软件的效率开始降低从而我们所希望衡量的有效生产率开始降低。其实想个极端的例子:A同学完成一个功能用了一整天,但他这一整天中其实只写了50行代码,但算法恰当,逻辑清晰,结构合理,可读性强;B同学也用一天时间完成同样功能,但洋洋洒洒写了500行——因为重复了若干遍本可以抽象出来的函数。B同学的生产率是A同学的10倍,但B同学写的却是烂程序(当然,也许B同学也不是故意的)。如果简单以这样的生产率作为激励标准,那么显然对于A同学是不公平的。而我们希望更多的像A同学这样的程序员。

可惜的是,那个代表最佳代码行的G点真的很难找到啊。

节能灯回收,刻不容缓

%e8%8a%82%e8%83%bd%e7%81%af不知道电池危害的人已经很少了,很多人也懂得把废电池扔进专门的电池回收箱。但废旧节能灯的危害恐怕还是有很多人不清楚。

一只节能灯平均含汞0.5毫克,如果这点汞浸入地下,就会造成大约90-180吨水的污染。汞污染的水被饮用后会产生慢性中毒,严重影响人类健康,那就是让日本在60年代深受其害的水俣病。

2008年中国开始在全国范围内大力推广节能灯,而一般节能灯就是两年多寿命。我自己数了下,2007年装修的家里,共64只灯泡,只有4只是传统白炽灯,节能灯达到60只。这几年也坏掉了十来只吧,以前都是随手扔进垃圾桶。据估算中国节能灯用量在14亿只左右,仅2006年国内报废的含汞照明电器折合40瓦标准荧光灯就达10亿只,由于处置不当而释放到环境中的汞量达70-80吨。这个数字随着国家节能战略的推进还会加速上升。

可悲的是,在国家推广节能灯的战略文件里根本找不到对其危害的描述,更没有提及如何建立完善的回收机制。不顾环境的发展,最终将摧毁我们自己脚下的土壤和地下水。美、日、欧都有非常完善的节能灯回收渠道和机制。

在网上找寻良久,终于发现有厂家在西区花园设立了一个节能灯回收箱,改天可以将家里收集的废旧节能灯拿到西区花园一并处理了。

强烈呼吁国家重视这个问题,立即着手解决。也希望了解到这种危害的朋友们不要随意丢弃废旧节能灯,收集起来,等待正规的回收渠道和机会。

从蒙牛事件看网络民运

如果没有网络、没有微博,蒙牛毒牛奶事件不会升温如此之快。针对蒙牛每一次官方发言,网民都能一针见血直指其要害。在这系列蒙牛同网民的博弈中,蒙牛已经完全处于下风。有网友已经不完全总结了蒙牛之前8次出问题,以及蒙牛在每次问题面前的抵赖、推脱、拒绝和打压之事实。更多人加入到拒买蒙牛的活动中。而这个活动,几乎是没有个别发起人的网络集体自发行动。这是我观察互联网在中国普及以来非常重大的一个事件。

互联网的应用,从被动式看新闻,到互动式购物、网游,再到主动式社交,让普通人的声音能够通过网络传播。博客和微博的流行,尤其是微博因为其消息发布的及时性和大量用户对特定主题的粘性,使得民众更容易获知信息和发表意见,尤其是获知对等个体的独立意见而非官方喉舌。个体被认同,思想与言论的独立和交流,正是民主的前提。在这个意义上,微博的如此流行恰恰是因为我们太渴望民主,而微博这个平台在一定程度上提供了类民主环境。当然这种民主还是相当的脆弱,很容易被那只掌控一切的大手轻易掐断。

当越来越多人在微博评论中声称拒买蒙牛,这其实意味着民运已经产生。我们期盼已久的民主化运动,戏剧性地由一家牛奶企业引发了,而且是以和平的方式,不散步、不打砸、不自焚开始了,且不需政府动用维稳资源。现实中我们当然可以选择其它品牌的牛奶,尽管谁也无法保证其它牛奶没有问题,但你为什么一定要买有问题的牛奶呢?所以这场民运的成功是有现实可能的。虽然可以想象蒙牛作为强势的代表,仍然会借助对传统媒体的影响力进行公关、影响舆论,但至少,以我善意的猜测它暂时还无法影响微博的蔓延和微博评论的自由。对最终结果,我们拭目以待,但我已正告家人,从此不买蒙牛。

本月初统计中国微博用户已突破三亿,这是否意味着绝大部分中国家庭都有人用微博?那么当微博上的舆论形成一种合力,是否意味着这种合力就是一场全民共识?当因全民共识而产生的全民行动,不就是民运了吗?民运,需要的正是无数微力量的汇集。

当韩寒悲观地发表“谈革命”、“说民主”、“要自由”时,我真希望这场由蒙牛引发的网络民运能够成为中国民主化进程的一个里程碑。至少可以先从非政治领域开始。在这个意义上,我们还要感谢蒙牛杀身成仁呢——如果,它真的死去。

大道至简还是垄断?

这两天关注Follow5,今天上去居然看到这个:follow5-is-dead事实上m.follow5.com还是无法登录,显示”502 Bad Gateway”。昨天还收到Follow5发给我的邮件,称API服务已经关闭,没有任何原因。难怪不能通过它同步其它微博了。

对于Follow5暂停运营一事,有分析人士认为,微博市场逐渐只剩下少数几家运营商,用户也越来越选择某一两家微博服务使用,这使得Follow5失去了赖以生存的土壤,转型或关闭成为必然。顺手到Alexa查了下,不出所料,最大的两家正是新浪和腾讯,而新浪几乎一家独大:%e5%be%ae%e5%8d%9a%e7%bd%91%e7%ab%99%e8%a6%86%e7%9b%96%e6%95%b0去年7月我构建自己的微博同步网时,还是微博网站百花齐放、欣欣向荣的姿态:%e5%8d%9a%e5%ae%a2%e5%90%8c%e6%ad%a5%e5%85%b3%e7%b3%bb%e5%9b%be1时隔一年多,垄断就已形成。其实这一年多,自己除了新浪微博,很少使用“做啥”,“嘀咕”等其它微博,包括Follow5。偶尔上去看看也是人烟稀少,语者寥寥。微博网站的生存依赖大量的用户,失去用户的微博网站的确是死路一条。可惜了Follow5作为中转的技术优势。再次说明,技术再牛,没有用户,还是死。

于是大刀阔斧精简自己的同步网,重新定义如下:%e5%8d%9a%e5%ae%a2%e5%90%8c%e6%ad%a5%e5%85%b3%e7%b3%bb%e5%9b%be2