Category Archives: 小说

调 bug 的小女孩

富兰克林大楼的七楼一直是个神秘的存在。每天晚上十点钟之后,每一层楼的灯光都将逐渐消失,唯有这一层还在深深夜幕里独自释放着光芒,远远望去,就像空中楼阁一样。“那一层楼是做什么的啊?”有时,三五成群奔向夜生活的路人会这样问。“那里是程序员们工作的地方。”懂行的人会这样解释,“干这行的,bug 波谲云诡,需求变幻莫测,常覆三军。是故此地往往鬼哭,天阴则闻!”

今晚的七层楼却有些反常。平时充斥着键盘声与机箱风扇声的工作间,此刻却异常安静。几乎所有人都回家了,因为他们的新产品刚刚上线,也因为今天是平安夜——虽然没有人过圣诞节,但节日本来不就是一个公认的偷懒的借口么?

但是,角落处窗户边还有一个小女孩留在这里。一双洁白而纤细的手搭在键盘上,左手小指放在 caps lock 的位置,食指与中指看似摆得漫不经心,却笼罩了 f, b, n 三个按键——那是 Emacs 的战斗姿态。键盘的左边杂乱地堆着一摞 Intel 手册,右边是已经半凉了的咖啡,几滴咖啡沿着杯子滴在了曾经洁白的桌子上,但小女孩没有注意到,因为她双眼正紧紧地盯着屏幕,一动不动。如果不是偶尔的眨眼,人们或许会以为是入定的高僧。“调完这个 bug 我就回去。”当十二点的钟声响起时,小女孩这样告诉自己——而那已经是一个半小时之前的事情了。

这着实是个狡猾的 bug!顾之在前,忽焉在后。每当你以为接近真相时,事情却开始变得更加扑朔迷离。在一个小时前,小女孩忽然发现一处嵌套的循环语句写错了顺序时,她以为终于找到了祸根。但是对那处错误的修正,却似乎对程序正确性没有丝毫影响。“这不可能。”在无数次 make clean 依然无果后,小女孩陷入了迷惘。她呆呆地盯着屏幕上的那段代码,仿佛看久了,bug 就会自己跳出来举手投降一般。但最后投降的是小女孩,她觉得那块屏幕都在嘲笑自己。“再看一遍代码吧。”小女孩决定,“一定是哪处传参数时把指针的类型搞错了。每次都是这样。”

念念不忘,必有回响。就在刚才,小女孩终于锁定了一处错误——在一个本该传递指针的地方,她传进了一个指针的指针。“Gotcha!” 小女孩原本静止的手指忽地在键盘上跃动,犹如“银瓶乍破水浆迸”;寂静的工作间忽然被此起彼伏的按键声占领,好似“铁骑突出刀枪鸣”。但见小女孩“嘈嘈切切错杂弹”,工作间里”大珠小珠落玉盘“,转瞬间错误已被修复,测试程序已经运行。当第一组测试程序终于通过时,小女孩从座椅上飞跃而起,好像一个三十年不曾离开沙发的宅男,突然看到了自己心仪球队四十年来的第一个进球。

也许在外界看来,小女孩只是在电脑前静静地呆坐了许久,然后敲了几下键盘。然而只有小女孩自己知道她刚刚经历了怎样艰苦卓绝的斗争,只有她自己知道她刚刚如何用尽所有的智慧与力量击败了一个不可战胜的敌人。”果然是个关于指针的 bug!“小女孩说,神情就像战胜了阿瑞斯的雅典娜。啊呀!公孙龙说:“物莫非指,而指非指。“佛曰:”如人以手,指月示人。彼人因指,当因看月。“说的不就是这个 bug 么?此刻的小女孩,仿佛站在人类智慧的巅峰上高呼,跨越时空与人类先贤们遥相呼应。

但比起战神阿瑞斯,程序的 bug 更像九头蛇——砍下它一个头,又会有两个在它原来的地方长出来。小女孩的兴奋没能持续多久,因为很快她就发现,一个原本能够通过的测试,现在却失败了。看到这一幕的小女孩回到座位上,低下头,把脸埋在长发间许久,往漆黑一片的窗外望了望,起身冲了一杯新的咖啡。”既然已经这么晚了,就干脆再把这个 bug 调出来再回家吧。”小女孩想,“也许只要几分钟就能解决了呢。”

然而当小女孩再次回过神来时,已经是凌晨三点了。如果不是某路人声嘶力竭的歌声撕破了寂静的夜,小女孩不知道自己还会在代码中沉浸多久。“雨纷纷,旧代码 bug 深。我听闻,你还在码论文……” 一定又是哪个毕不了业的博士吧,听着那人唱歌的小女孩心想。由于这附近有所大学,这种故事总会在同事们的闲谈间出现。”博士易老,教授难封……“窗外歌唱的声音越来越沙哑,但此刻听来,却有种说不出的动人。

小女孩的思绪随着歌声飞扬,不知道为什么,想起了她的前男友。”封侯非我意,但愿海波平。”这是他们刚结识时他的 QQ 签名。在她的记忆里,他一直是一个浅薄,鲁莽,明明一无所长却对自己的伟大有着无与伦比的自信,明明一身毛病却喜欢处处指摘他人的人。无论从哪方面看,他都与她,或者她想象中的他天差地别,但当时的她却无可救药地迷恋上了他。也许是因为他的热情,也许是因为他的自信,也许还有些许原因是他长得挺帅,但那绝对不是主要原因。绝对不是。

她还记得曾有一次他对她说:“技术没什么用。技术学得再好,也不过是做一颗螺丝钉罢了。世界需要的是能够敏锐地洞察其走向,引领潮流的人,就像史蒂夫·乔布斯。最重要的是 vision!Vision, you know?” 上一次她听说他的消息,是来自朋友们的八卦,他似乎跟随他所谓的 vision,去做大家都在做的共享单车去了。

为什么想起了他?小女孩问自己。难道是后悔自己选择的道路了么?不会的。小女孩摇了摇头。也许在外人看来,小女孩所做的世界上最单调无聊的工作——每日对着同一张屏幕,望着天书般的代码。但小女孩知道,她所做的是也许世界上最执着于消灭单调的工作。在那方寸代码间的世界里,每天面临的都是一场全新的挑战,而每场挑战都如一次华美的旅行——数据与函数层层抽象,有若蒙德里安的风格画;多线程任务交相辉映,好似巴赫的赋格曲。

虽然程序中偶有 bug……或者说常有 bug……总有 bug,但那对线索条分缕析、对现象抽丝剥茧,逐渐还原真相的过程又何尝不是一种有趣的体验?小女孩深夜还留在公司,执着于那上万行代码间一个细微的 bug,除了有些许工作上的压力,以及或许她也没什么别的事情好做之外,也不正是因为她对这份工作的喜爱么?这世界上喜欢夸夸其谈的人何其之多,但小女孩知道,她才是在改变这个世界的人物……但,真的是这样么?还是说,她只是又一个一边固守在自己的舒适区,一边为自己辩解的平常人罢了?

“不,不要再胡思乱想了。”小女孩告诉自己。毕竟,她还有一个 bug 需要处理。可是它在哪里呢?小女孩的眼睛从程序的开头,扫到结尾,从一个文件,跳到另一个文件,但那 bug 始终温柔不肯,藏得太深。是哪处字符串操作出现了失误么?是某个对象初始化出现了问题么?还是某个资源忘了加锁了?小女孩望了望窗外,稀疏的夜空里织女星闪亮。小女孩捋起了袖子。可能性很多,但她有的是时间。

可是,渐渐地,小女孩发现自己迷失在了那循环语句间。她朝自以为正确的方向走去,却仿佛在递归调用里越陷越深。她伸出手来想要抓住什么,却发现自己的手握着铅笔在画另一只手,而那另一只手也握着铅笔画着她的这只手。远处,一个被咬了一口的苹果从树上落下来,落在翻开的一本书上。一阵风吹过把书本合上,再翻开时里面却只剩下了一只飞虫。小女孩的大学同学们忽然出现在她面前,其中也有她的前男友。他们一个个都成了百万富翁,并大声嘲笑程序员们开发出了人工智能后,首先被人工智能取代的就是程序员。小女孩知道这一切都不是真的,所以她掏出笔记本来想要从代码间找出 bug 来。她疯狂地修改代码,于是天变成了紫色的,山变成了粉色的,草变成了红色的,但她却怎么也无法把那些笑声消除掉……直到她按下了关机键,世界才慢慢沉寂下来。

第二天早上,程序员们陆续来上班时,他们发现了睡倒在办公桌上的小女孩,右手边还放着一杯已经凉透了的咖啡。当她的同事打开代码的提交记录后,会发现几处巧妙的修改,修复了许多产品中已知的顽固 bug. “好一个聪明的小女孩。”有些同事会这样想。但没有人会去叫醒她,也没有人太过在意,毕竟这样的事,在公司里,天天都会发生。

码踪侠影(0-2)

(本文是之前我在人人网上写的一系列小说,尚未完成,先把目前写的贴到这里吧)

 

 

“你知道吗?我的孩子,我们对主宰这个世界的神秘法则几乎一无所知。” ——教皇儒略三世

(本故事纯属胡扯,如有雷同纯属巧合)

雷哥站在软院一楼的圆厅中,腰沉三寸,足踏两仪,双手自然地搭在身体两侧,不知情的会以为他要跳骑马舞,实际上这是一种极其高深的架势。《五轮书》 里管它叫“无构之构”,《笑傲江湖》里说这是“无招胜有招”,我却知道,这乃是雷哥从C++的虚函数里悟出来的架势,就叫做“虚函数之阵”。

雷哥左面的人身长八尺,着西装革履,戴玄色墨镜,望之若雨果・维文,只是右手拿着一杆长枪,看来与他的一身装束极不协调。雷哥右面的人则是后面弯腰 驼背,前面大腹便便,头上的大胡子和长发散乱地纠结在一起,看来似乎想要模仿Richard Stallman的打扮,却整得神形两不似,只像是屌丝;更蛋疼的是,现在明明是大冬天,这家伙还是穿着一身油迹斑斑的T恤和短裤,让人不禁怀疑他没别的 衣服了。而在雷哥的正前方,则站着一个老头子,一头白发,一袭白袍,无风自动,像极了《魔戒》里的白袍甘道夫。

只听“hello world”的一声大喝,雷哥左侧的雨果・维文忽然出手,一杆长枪以迅雷不及掩耳之势刺向雷哥。只见雷哥不慌不忙,觑准了一个时机,转身移动到枪杆的侧 面,右手轻轻一带,枪尖便朝另一侧刚刚冲过来的Richard Stallman冲了过去,后者一个“冲”字诀刚刚发了出来,见状马上一个驴打滚才堪堪避开,其状狼狈不堪。不过这二人也不相互埋怨,四目一个交会,立马 又一齐冲向了雷哥。

我站在雷哥后方的位置观察着战局,与白袍甘道夫相对而立。只见雷哥虽然以一敌二,却丝毫不落下风。原来“天下武功,唯快不破”,雷哥的武功全都领悟 自C/C++,后者本就在现代编程语言中堪称速度上的无双王者;再加上雷哥这人平时写程序对效率的追求极其苛刻,数据能放在栈里的就不放在堆里,如果带上 汇编优化的三元表达式比if语句更快那就绝不用后者,这种追求在他修炼了传说中的神功秘笈CSAPP后更是进入了一种化境。

反观他的两个对手,速度上明显已经输了一筹。

那雨果・维文的功夫显然来自Java——Java本是为兼容多种平台设计的“一次编译,处处运行”的编程语言,所以从中领悟的功夫自然也是老少咸 宜,即使身着西装革履,也一点不影响招式的发挥;但另一方面来讲,即使施招者穿运动服,也提升不了多少速度——它的速度只能是这么慢了。更重要的是,由于 Java这东西号称“完全面向对象”,所以雨果・维文的每一招——即使是一个“hello world”——都不得不先封装成一个对象,然后出招;这样的后果就是,由于每一招招式都封装了起来,招式与招式之间相互承接的部分就会显得相当生硬,唯 一的办法就是使用各种设计模式来补足——这些设计模式虽然圆滑了招式之间的承接,却进一步降低了其速度。再加上这位雨果・维文似乎对设计模式的掌握还不够 充分,在应付雷哥凌厉的出招时便显得左支右绌。

而那位模仿Richard Stallman装扮的仁兄招式被我观察了许久,才发现并非来自Emacs Lisp,而是Perl。因此他的一招一式都让人搞不明白他到底想干什么,但有时候突然之间那些像疯人跳舞的比划就变成了妙不可言的一击,这着实给雷哥造 成了几次险境。幸而这位Richard Stallman似乎经常稍后自己也理解不了自己的比划是什么意思了,有时前面刚刚一招逼得雷哥暴露出五六个破绽,下面他却忘了该用哪一招;更多时候干脆 比划着比划着,他自己就看不懂自己在比划什么了。幸而如此,即使险象环生,雷哥也能很快从防守之势夺回攻击的主动权,以一敌二而不落下风。

Continue reading

多情码农无情码注(1)

一个喜欢读小说的人很容易萌生写小说的想法。自小学拿着钢笔在笔记本上胡写,到大学拍打键盘在另一种笔记本上乱侃,期间我曾萌生过写小说冲动的 次数早已难以计数,然而真正动笔下的并不多,写完的几乎没有,而写完了如今自己觉得还能看的则是完全没有。那些故纸堆里的故事大约全是历史或者武侠,而最 近写小说的冲动再度出现以后,却忽然想写一点新鲜的东西。我构思过一个发生在交大的武侠故事,想到过一个关于程序员和2012的科幻故事,但是毕竟少经历 练,下笔总觉得生涩,结果也远无法使自己满意;直到后来忽然想到一个新方法,即借助古龙的小说《多情剑客无情剑》(即“小李飞刀”的故事)。

《多情码农无情码》借用了古龙的小说《多情剑客无情剑》里的人物,在一定程度上参考了他们的性格,但却把他们安插在了一个完全不同的时代——“飞刀 与快剑”变成了“鼠标与键盘”。然而,《多情码农无情码》的故事发生在《多情剑客无情剑》以前——这么说可能会让人困扰,因为明显古龙的故事里计算机还没 有被发明,不过我指的是关于李寻欢、林诗音、龙啸云三个人的情感纠葛发生在古龙的故事以前。选择这个故事是因为一方面它既是古龙讲述过的一个故事,同时又 没有讲得太细,这就意味着它给了我一个故事的框架,同时还留给我许多自由发挥的余地。

写这部小说显然无意出书之类的事情,可能更多的是个人兴趣,也希望能对自己还很拙劣的写作水平(虽然得过不少夸奖,但幸好我有时候很能找回一些自知之明)进行一些探索和锻炼。而这篇注,不妨说是让自娱自乐的high更high一点。

第一章注

这一章的第一段我试图给整个小说奠定一个世界观的基调——用理工科的思维来讲述一个故事。所以采用了维度这样一种世界观来起头。李寻欢、林诗音和林啸云都是程序员——或多或少,我希望在我在描写不同的人物视角时能写出不同的感觉。

第三段花了那么长的句子描述李家庄园里的各种高科技设备也是为了交待时代背景。

虞世南的介绍可以参看这里。我之所以在这篇注里也不怎么介绍他是因为其实我也不了解他,他是我写这一段的时候从书法家中胡乱揪出来的一个。

男性在看到美女后智商会下降的研究不是我编出来的,我原本阅读的那篇文章一时找不到了,但是这里有一篇似乎差不多文章可供参考。

对林诗音的描写花费了很大的篇幅,因为我想要营造出一种龙啸云在见到林诗音以后时间几乎停滞的感觉,就好像电影中在看到一个美女后镜头忽然放慢了一 样。因为如他所说他似乎所有的脑细胞都用来捕捉她的每一个动作每一个细节了。描写林诗音的几个简单动作的篇幅大约相当于前文的篇幅,这一安排其实照应了文 章最开头的龙啸云自己人生的轨迹(前二十多年可以一笔带过,此时此刻忽然具有其意义)。当然这些是我试图取得的效果,如果读者是通过阅读这一段产生的这种 体会(或者阅读完这一段还没产生这种体会),那么显然我并没有成功。另外对于林诗音的描写其实大量抄袭了曹植的《洛神赋》和曹雪芹的《警幻仙子赋》。

JavaScript不止可以用于写网页的一个典型例子便是GNOME3,这款自由软件的很多代码都是使用JavaScript写就的。你可以在这里查看详情。

Continue reading

多情码农无情码(2)

(本故事纯属虚构,如有雷同纯属巧合)

第三章 龙啸云

寒冷是个可疑的朋友。刚刚和寻欢一起踏出他的庄园,走在夕阳下的一片草丛上时,我还暗自庆幸寒冷为我带来了些清醒。但是很快,冷风如刀,一刀又一刀 划在我迎风的脸上,一刀又一刀地夺回了它曾为我带来的那些理智。我不得不把全身一半的精力放在走路上,然后拿另一半来忘却刀锋划过面颊的痛苦。

“今天这样的温度,恐怕空气都要凝固了吧。”当我提出要上山拜谒寻欢的父亲与大哥的坟墓的时候,寻欢这样评论。他还开玩笑地说:“这样的天气上山, 我想我可以想象我的老爸和大哥在奈何桥头看见我们俩的情形。‘寻欢,你怎么也死了?还是冻死的?难道是2012吗?’‘哦,不,老爸,大哥,我只是来看望 下你们。来,我给你们介绍下,旁边这位是我的结拜大哥。’”

但无论他怎么说,我还是坚持要在这一天前去拜谒。在我看来,寒冷的朔风与颠簸的山路更能帮助我表达心中的敬意。当然,坐在沙发上、端着热咖啡、听着 古典音乐谈受苦是一回事,屁股离开沙发走向寒冷的国度却是另一回事。此时的我正一边走着一边在内心里咒骂着当初的我为什么要这样自讨苦吃,但无论如何我可 不愿意现在告诉李寻欢:“天气真的好冷啊,我们还是改天吧。”

幸好寻欢终于停了下来,而我也不禁感激上帝,至少他给这条道路都安排了一个终点。我还以为他会火上浇油地送给我一个栈溢出或者死循环。不过话说回来这时候的我还真希望能有人冲我来个真的“火上浇油”。

“我们到了。”寻欢的宣判把我从迷乱的意识里拉回。“一门七进士,父子三探花”,这样一副对联贴在墓园的门口,似乎在向世界宣告,也许上帝可以夺走 他们的生命,却别想夺走他们的骄傲。每个坟墓的样式还能怎样,一抔土,一方碑,大致无二,但站在这片墓园中,你不可能不从心里生出一种敬意来,尽管那些人 只能躺着,而你却可以站着。

但是显然我这位兄弟对这一景观的理解大不相同。“我早就想把门口的对联给换掉了。什么‘一门七进士,父子三探花’,贴在这里就好像我们李家已经灭绝了似的。可惜我老爸是从来听不进别人的意见的。”寻欢这样评价。

“我大哥死后,老爸总是半夜跑到这座山上来喝酒。”李寻欢带着我走到他父亲的坟墓旁。我在墓前深深地鞠了几躬,趁机活动了下几乎冻僵的身子骨。而李 寻欢则一边直直地看着与墓碑毫不着边的远方,一边这样对我说,“这件事是诗音发现的,她告诉我,然后我就到山上去找他。他不肯走,也不肯说话,我就陪他喝 闷酒。我还记得那天喝的是先帝御赐的特贡茅台,老爸他珍藏了多年的,却在那一晚上被我们两人喝了个精光。喝到最后一杯,他终于对我说:‘你知道吗?人生最 痛苦的事情便是,即使你做出了每一个可能做出的正确选择,你也无法留住他的生命。’”

“‘他’就是你的哥哥,‘大李探花’,是吗?”我直起身子,有些艰难地转头看向李寻欢。

“没错。他也是我们家的第一位黑客。是他从如何打开电脑开始教我,教我C++,教我Python,教给了我几乎一切如今我引以为傲的东西。在十岁以前,我就已经拿到了三个国家级的程序设计大赛的一等奖。”说到这里,寻欢忽然低下头来,“而他却拿到了三张病危通知书。”

寻欢的哥哥“大李探花”自小体弱多病,后来英年早逝,这是让江湖中无数黑客都为之扼腕叹息的事情;更悲伤的是,没过多久,他和寻欢的父亲‘老李探 花’也因为伤心过度而去世。如今这一曾在江湖中如神话般存在的家族,只剩下一人,便是我身边的这位结义兄弟李寻欢——他也是黑客界中公认的李家最牛的一 人,在百晓生搜索引擎制作的黑客谱里排行第三名。谁会不把拥有这样一个兄弟当作一件荣幸的事情呢?于是我拍了拍他的肩膀,他也对我一笑,然后我们又一起乘 着寒风原路返回。

幸运的是返回的时候风向没有恶作剧般地发生变化,所以我终于可以轻松地看着李家的庄园在我的视网膜上渐渐变大。由于不再需要把一半的精力花在脸上, 我终于恢复了一些意识。我开始意识到早些时候我在李家的失态。哦,不,李家那些让geek们感到无比兴奋的近乎科幻世界的场景虽然让我有些恍入隔世的感 觉,却还不至于让我变得像进了大观园的刘姥姥;而是在看到她的时候——对了,寻欢叫她“诗音”,她的名字一定就是门上镌刻的那三个楷体小字“林诗音”—— 我竟变得像宋玉笔下的登徒子。

不,不能这样,我是李寻欢的大哥,也是在江湖中颇有名望的黑客,我可不是没见过女人的工科猥琐男。就这么看上一眼我竟然就呆掉了,我竟然就相信自己 爱上她了,天哪,我是有多么的愚蠢呢!而这个女人——林诗音,多么优雅的名字——一直住在李家的庄园里,更毋庸说她和寻欢有什么样的关系了,我又怎么可以 去有什么非分之想呢?想到这里,我觉得我已经清醒了过来。我觉得我应该为自己的理智感到骄傲。

但这些都是我们回到李家庄园,那个轻盈的身影再度闯入我的视野以前的事情。不到一秒钟的时间内,我忘记了我之前所持有的一切推理,它们在她的美丽面前根本不堪一击。不到一秒钟的时间内,我所有的理智再度臣服于她的石榴裙下。

Continue reading

多情码农无情码(1)

(本故事纯属虚构,如有雷同纯属巧合)

第一章 龙啸云

有人说,时间是这个世界的第四维。如果按照这个说法来看,时间只是一样永恒不变的事物,而我们在其中一个个流逝。我知道我前半生的二十多年岁月,就像是一场无目的的驾驶旅程;直到那一天。

因为在那一天,我看到了她。

那天是在李寻欢的庄园里,我和他一起踏过用电子墨水显示着欢迎和指引信息的珍珠屏幕铺成的地面,穿过一面又一面闪烁着或奇幻、或写实、或抽象、或黑 客风格的壁纸的玻璃墙壁,走过一个使用全息投影技术把全球各地的卫星发来的实时信息拼接在一起显示出来的地球仪。我以一个码农的身份感叹着这一切的美妙, 直到寻欢带我走进一扇门。

那扇门与其他的用玻璃屏幕做成的门都不大相同,因为上面用手工雕刻着“林诗音”三个楷体小字,字体清秀,婉雅,隐约间似乎能看到一些虞世南的风格。那扇门后面的世界,超越了我以前所经历的所有世界。

但是请原谅我在这里无法描写这个房间内的景色布局。这并不是因为那其中太美或者太丑,让我无法找到言语,而是因为事实上在我第一次进入这间房间的时 候,那些景色我全都没有看到——因为我看到了她。在我看到她的那一刻,似乎我的所有的脑细胞都用来处理、生成,并试图捕捉她的一姿一容了;除此以外的世界 的一切,都被忽略了,或者,即使没被忽略,也只是被用来装点的她的美丽而已。据说有科学研究表明,男性在看到美女后智商会下降,我相信就是这个道理。

所以在进入这个房间的那一刻,我看到的只是她,用一种让人词穷的优雅坐在一台电脑前面。她的手指轻轻地敲打着键盘,翩若惊鸿;她的长发慢慢随风抚过 她的肩膀,宛若游龙。我仿佛从来没有看见过女人一般贪婪地看着她。忽然间她停了下来,世界也仿佛在那一刹那静止了。然后,她的头轻轻划过一个美妙的弧线, 于是一双若月射寒江般清澈的眼睛,和两颊如春梅绽雪般素洁的脸庞出现在了我的眼前,她丹唇微启,霞映澄塘,一段如诗般朦胧的声音激活了我的双耳:“你回来 了。”

似乎李寻欢也回答了什么,但我没有听到,也许我听到了,但它在还没有被记忆的一刻就已经被遗忘了。然后我看见那个曼妙的身影忽然站了起来,她身上穿 着的白色长裙也随之飘舞,和背后的显示着一种月景的玻璃屏幕一起印在我的视网膜上,看来似流风回雪,转瞬间轻云蔽月。望之在侧,皎若太阳升朝霞;忽焉在 前,灼若芙蕖出渌波。我傻傻地站在那里,遗忘了一切表情,她却忽然巧笑倩兮:“我给你前几天写的验证码识别程序做了一个GUI,是用JavaScript 写的哦!”

虽然当时我的智商似乎已经下降为0,但我确信在那一瞬间我至少知道了两件事情:一,原来JavaScript不止可以用来做网页;二,我爱上了面前的这位少女。

Continue reading