Saturday, December 27, 2008

登陆 宇航飞船 追踪圣诞老人

从标题就可以看出,是随便凑几件有趣的事情来扯一扯。

所谓「登陆」的话题。源于在豆瓣9点里看到的一则來自白鸦同学的blog文章,其中提到了一篇脑残的sina新闻。整个事件都很有喜感——白鸦同学是在本年年末的北京晚报上看到的差点就恨不得署名「解专家」的「狗屁不通的」评论,而引用的sina新闻是來自2007年5月1日,众所周知的劳动节。想必是新浪某位编辑记错了时间,将5.1认作了愚人节。

「解专家」勤于思考,敢于挑战各大院士和芙蓉姐姐的「语不惊人誓不休」,愣是可以拿「登录」和「登陆」来说事,提出「登录某站点」这个搭配不准确,咱们今后都应该说「登陆某站点」。很无语。建议解某去找他孙子或者孙女问一问 login 和 go to (或者是visit)的差别。不过白鸦同学也很有喜感,可能是发泄情绪过重,将登陆解释成了 landing (「诺曼底登陆」滴登陆 -_-)。

至于「宇宙飞船」的话题,是由于这个新浪视频(就是由于「登陆」那则报告不小心链接过去的 -_-),美国原女教师在太空向地面的学生们授课。当某位同学向她提问说,做一名老师和担任一名宇航员有什么区别时,她的回答让我印象深刻,我记录了一下——
Astronauts and teachers actually do the same thing. We explore, we discover and we share. And the great thing about being a teacher is you get to do that with students, and the great thing about being an astronaut is you get to do it in space, and those are absolutely wonderful jobs.

如果一名老师,永远只是简单重复的灌输,那么还不如安排一个机器人来上课。不要神圣化一个职业,所有的职业都是一种人生实现的方式(当然也是一种生存的方式,如何在「生存」和「人生实现」中做均衡,就是更复杂的问题了),也都是为了让这个社会向更好的方向发展。某些国家喜欢夸大化某种情结,某种背景,试图以此坚定继续发展的信心,只可惜这么做往往效果不会好,而且会让人产生一种「表面的盛世之下 实则隐患重重」的担忧。我国「确确实实」就是一例。 -_-

至于追踪圣诞老人服务(Santa tracking)。推荐大家伙看一看这种服务的灵感的由来。我摘录在下面——
早在1955年,北美防空司令部就开始执行“追踪圣诞老人”这个一年一度的必行任务。据军方透露,当年一个小男孩偶然打电话到防空司令部,要求获知圣诞老 人的位置。当时是哈里·舒普上校接到的电话。听到男孩的要求时他惊愕不已,随即为了不让男孩失望,他利用雷达追踪到了圣诞老人的确切位置,并告诉了小男 孩。随后又有很多孩子打电话来问候圣诞老人,于是他决定指派一个办公室专门负责这项工作。舒普和同事都认为这个做法不错,决定坚持下去。

这个小男孩之所以会打错电话,貌似是由于当时的一家百货商店在报纸上刊登了一则「圣诞老人的电话」的消息,可惜报纸上印错了电话号码,电话没有打到百货商店,却打到了北美防空司令部 囧。

有时候真的觉得,所谓娱乐精神,是「娱乐」自己,敢于放低自己的姿态。如果总是摆出一副专家的模样说三说四(而且很可悲的是试图批判的声音总是难以成为主流,而很多此类专家不敢于承认错误,于是淹没了很多青年学者和真正有见识的人),总是夸大一个职业的神圣之处云云,总是对一个国家的未来——小孩子——抱着无所谓的态度,那么这个国家很难说有什么远大长久稳定河蟹的发展。

Thursday, December 18, 2008

趣事一则

前几天收到了来自 Rensselaer 的一封提醒类型的邮件「Application Reminders」,其中说
Please make sure that you have taken all required tests for your program.

 Communicate with faculty in your department of choice; let them know the
areas of research that interest you along with your educational and research
achievements.

 Develop a Statement of Background and Goals that matches your academic goals, and
the focus of the program to which you are applying.


Submit your application and all supporting credentials to Rensselaer no later than
January 1, 2008, to be fully considered for admission, fellowships, and assistantships.

 FEE WAIVED - Complete this form and we will waive the $75 graduate application fee.
Please respond to the last question on the form by selecting "GRE".

 Please do not hesitate to contact us if we can assist you with the application process
or help you to connect with faculty in an area of interest.

那天还看得云里雾里,而且一方面是我根本就没有申请这学校(考 GRE 的时候也没有填这学校),另一方面通过 google 得知此校还并非「骗子集合体」,而是全美排名较为靠前的老牌学校。那么,他们是怎么搞到我的 email 地址的呢?不过既然没申请,也就罢了。谁知今天又来了一封邮件,说是「不好意思,发错了」,真是囧囧有神哪。

不禁让我想到之前订购 Intel 的 Developer's Manual 时,UPS 就把我的地址写成了 ZTE Shanghai R&D Center(中兴上海研发中心),最后几经辗转,才确认了我的正确地址,送到了我手上。这世上有些事情就是这么巧,如果我这次去找工作,恰好去了中兴,更有甚者恰好还去了他们的上海研发机构,那就真是巧上加巧了。 :D

Tuesday, November 25, 2008

拜Mathematica

昨天遇到一个不定积分的求解(是大一的时候写在微积分课本上的,但是没有标注如何解答)—— ∫ Sec[x]^3 * Tan[x]^4 dx。这应该是一种普遍形式 Sec[x]^m * Tan[x]^n 的特殊例子。

对于m与n分别是偶偶、偶奇、奇奇的情况都比较容易求解,唯独奇偶不知如何处理。刚才突然看到微积分课本后的Mathematica 简介,发现其符号运算强大到仅需一行命令就可以做很牛逼很复杂很强悍的不定积分(例如 Sin[x^2] 这种原函数并非初等函数的函数也可以做)!于是打开 Mathematica ,输入如下表达式
f[x_] = Sec[x]^3 * Tan[x]^4;
Integrate[f[x], x]

额滴神啊,瞬间就给出了如下的答案
1/768 Sec[x]^6 (96 ArcTanh[Tan[x/2]] Cos[x]^6+78 Sin[x]-47 Sin[3 x]+3 Sin[5 x])

真的是五体投地!没太被主攻数值计算类型的科学计算软件(例如 Matlab Octave Scilab 等等)震撼过,这下子真的是被强大牛逼无敌滴符号运算震撼了!拜 Mathematica!不过俺真滴是很想知道这玩意的 kernel 是咋演算如此复杂的不定积分的。

没有安装 Mathematica 滴童鞋们可以去这里玩耍一把不定积分——http://integrals.wolfram.com/index.jsp

ps.

这里大致列举了 integrator 的两种实现方式(俺猜测肯定不止这两种,老陶如果看见了此日志,可以稍微详细滴描述下)。第一种很好理解,套用现成的 general form for an integral,然后微分之,继而和被积函数对比,确定未知参数。第二种所谓 generalized hypergeometric functions 俺没看明白,不过估计有可能是俺的那个积分表达式所采取的方式,因为如果我输入如下表达式
f[x_] = Sec[x]^m * Tan[x]^n;
Integrate[f[x],x]

就会得到如下答案
(1/(-1+m+n))Hypergeometric2F1[1/2 (1-m-n),(1-n)/2,1/2 (3-m-n),Cos[x]^2] Sec[x]^m (Sin[x]^2)^(1/2-n/2) Tan[x]^(-1+n)

查看了 Hypergeometric2F1 的帮助文档,可惜没看明白到底是啥分布函数 囧。等有时间了再仔细阅读之

Saturday, November 22, 2008

google用户自己主导自己的搜索结果(SearchWiki)

以前在blog里写过一则《强大好玩滴VPN》,不料今天用这个VPN服务上网居然有了一个非常令人欣喜的发现——來自google的searchwiki!具体的截图看这里(点击图片进入 picassa_web_albums 查看更多)——








From google

不仅仅可以promote,还可以进行抹掉某条result的操作。尚不清楚这种人为的操作是否会影响到其他人的搜索结果(排名情况等等),不过俺估计肯定是不会影响的(已经搜索证实,确实是不会影响的,具体查看來自google官方博客的通告),但是自身的搜索体验确实就棒了不少了!

ps.  找到了一些资源,粘贴在此——
來自google官方博客滴消息youtube上滴演示(不想设置VPN或者代理的可以看下体验体验);techcrunch上滴文章(描述成digg-like似乎有些欠妥)

update:现在可以直接访问了。 :-)

--jtuki

图像拼接 share autostitch

这几天做数字图像处理课程的一个presentation(图像拼接),查阅了一些资料,在这里share一下。

图像拼接中的方法主要是直接拼接法(Direct Method)和基于特征点的拼接(Feature-Based Method)。

前者有一篇很好的论文,需要界定详细的镜头物理参数等等,比较复杂。

后者有一些比较著名的特征点检测算法。例如Harris算子, 也叫做角点检测子(Corner Detector),一般情况下效果不错,对旋转、灰度值统一线性变化都不敏感(也就是哪怕被检测对象旋转了或者是亮度均匀改变了,同样还是能够检测到相 同的特征点),但是对图像缩放(image scale)过于敏感。于是有了现在用的比较普遍的SIFT算法(Scale Invariant Feature Transform),主要参考的论文是David Lowe(SIFT算法的提出者)自己写滴一文, 行文流畅,很值得一读,特别是使用热扩散方程类比证明连续高斯滤波之差(DoG)在某种条件下等效于高斯滤波的拉普拉斯变换(LoG),尺度空间 (scale space)和特征点定位(Keypoint localization),以及后面的一些关于特征点描述子(Keypoint Descriptor)的说明都很值得一读(不过俺自己只是匆匆瞟了下,后面都没读完就直接翻看Conclusions了 囧)。

比较简单的实现可以直接使用matlab中的IPT里的一些函数来做,因为David Lowe的已经给出了SIFT的二进制实现和matlab的调用,简单情况下的图像变换(变换矩阵的确定)和联结相对来说就容易许多了。

如果需要开源的SIFT算法的实现,可以去这个链接里翻。(有灰常多种类滴实现,包括 C_&_matlab 的,C# 的等等)

这里给大家再share一个很强悍的全景图拼接软件 autostitch,是上文中提到的SIFT的提出者 David Lowe 和他的一个博士生 Brown 写的,他们所写的论文 Automatic Panoramic Image Stitching using Invariant Features 也确实堪称经典。如果想要把自己在海边度假的照片拼接起来、成为一副全景图的话,那么这款软件(尽管只免费提供 demo)绝对是首选!(起码现在看起来是如此 囧)

还有一些拼接实现,例如 pano-tools Hugin autopano-sift 等等都没有能够做到上述的 autostitch 的自动化识别和处理的效果(包括自动化识别大量图像的配对关系、自动确定配对图像间的空间关系、图像初步拼接后的多通道渲染处理等等)。关于其使用和体验分析可以看这里:AutoStitch 自動接圖軟體-全景圖(Panorama). 不过最好滴方式自然是下载来尝试一把。

--jtuki

Tuesday, November 11, 2008

排队排队排长队

开机后不自觉的输入了豆瓣的网址,看到几个好友推荐的一文——《被毒奶喂大的我们 该唱怎样的赞歌赞美你?》。很是无奈,不过在这里还是不说什么了吧。

这里要随便扯扯的,是另外一个事情。关于考研报名的长队。

今天上午一童鞋跑去考研报名现场确认报名(也就是照相等工作),回来后大呼幸亏去得早。咱们问他排在多远的地方,他说大约是100m处。我大惊失色(俺承认自己确实没有意识到“人多”啥含义),结果才得知居然总长度大约400m左右 囧。国内的本科生以及研究生教育体系和无奈滴研究生选拔机制不是本文的讨论的主题,而是另外一点——如何改进这个排队机制——俺倒是愿意八卦一下谈一谈。

研究生报名的排队和银行取款等的排队很类似,从本质上看,被处理时间的先后对最终结果影响不大——总不会说你先取款就可以奖给你100块钱。与此不同的是另一种排队,例如托福考试报名,例如奥运开幕式门票网上订票,在这一种排队中,被处理时间的先后对最终结果的影响是明显的——你可能晚了一天就没得考位(俺当时就是个悲惨的例子)或者门票了!咱们姑且将前者称作时间无关性排队,后者称作时间有关性排队。

咱们当前大多数的考研报名自然是长龙式——一条人站在那里无所事事,慢慢等待自己成为队伍中的头一个。工作人员尽管不止一人,但是也都还挺清闲,还能够聊聊天讲讲笑话。但是整个排队系统中被处理的客体——学生群体——的时间就被白白浪费了。(不要说 Iphone 或者是 G1-Android 首发的时候排长龙的现象,甚至是印有 Obama 大选胜利的报纸被人们排长龙热卖的现象,性质不一样 囧)

如何改进?参考下银行吧。对,就是象征排队顺序先后的号码!每个人去了之后都可以领一张号码纸,将这个号码减去当前正在被处理的号码,就得到了一个数字——表示自己被排在了多少位(往往是看到数字后就直接晕掉了 囧)。后面怎么办就很自然了,当然是估算下时间,例如排在第1000位,前面每位被处理的时间大约是1分钟,那么你只要保证在1000分钟后左右的时间再过来就行了(这里的数字纯属理论值,如有雷同,纯属故意)。

当然,在实际运作过程中还会有一些麻烦。比如很自然的很可能就会出现号码造假,号码领取票贩子,走后门不公正,领取号码后却长时间没来,发放号码的唯一性问题(例如根据学号或者身份证等等,但是无疑会增加发放号码的工作人员的工作负荷),等候室中最佳等待人数大小的确定(例如排队缓冲区大小是10个人,那么当200号在被处理时,201-210号就进入等候室排队等待,当轮到210号开始被处理时,211-220就开始接着上面10个人进入等候室,这个数字主要是根据处理方的工作人员速度决定),等等。这些问题都有一些相应的解决办法,就看付出的代价(学校需要在号码纸的制作和号码纸的发派等方面做更多的工作)和能够被回收的成本(学生的时间)之间的博弈了。

ps.

当年奥运开幕式门票网上订票系统就是因为没有做好人数限制工作,导致系统崩溃。如果能够做好服务器间的分流、排队等待和最大被处理人数的限制(但是依然可以通过 IP 和浏览器 cookie 等记录排队顺序)等工作,想必也不至于直接崩溃掉。Firefox 3.0 首发当日的下载系统也是如此。

update1(2008年11月11日 19点14分)

吃饭的时候突然想到忘记考虑了报名人数的问题。例如此次武汉大学考研报名现场确认的限定时间是5天,那么如果5天时间搞不定怎么办?俺相信这时间长度应该是个经验值,应该没啥问题。可是如果搞不定呢?咱们也不能排除这可能。号码计数就可以解决这个问题,统计和估算下网上报名的人数、每个人被处理的速度、每天工作人员的工作时间和相应工作人员的数量,就可以得到一个时间上的估计值,以及每天理论上能够被处理的人数——例如每天只能够处理2000人,那么每天发放号码到2100人的时候就开始停止发放(因为可能有人会领了号码不来,所以给出一定的冗余)。

update2(2008年11月13日)

纠正一个隐晦滴错误,上文中暗示了报名的速度慢。其实今天俺去报名了,觉得速度还成。一次性进去20个,然后在里面进行处理,根据内部人数的多少选择是否继续放人进去,工作人员滴效率也还算是挺不错的其实。 囧

--jtuki

Monday, November 10, 2008

给BBer们唠叨下由于google天气预报造成滴相关事宜

(俺首先承认自己是越来越不会起标题了,本想直接取名叫无题,最终还是罢了,以一长句话作为标题貌似也不错)

使用黑莓滴朋友可能都知道这个软件 BBer_SMS_Manager(某个爱好者开发的免费软件),可以将你的数千条短信附带电话簿一起导出,还可以保存成为文本或者 Excel 表格的形式,非常实用。(如果你还没尝试过,就赶紧去尝试一把吧。)

可惜今天俺着实是不太运气。本是一门公选课的倒数第二次课,俺弄错了日期,以为是最后一次,于是风风火火滴从一个校区坐车到另一个校区去上课,谁知居然被老师放了鸽子,座位前方还坐着一对小两口赌气闹别扭。晚上回来想备份下短信,谁知这 BBer_SMS_Manager 也不怎么给面子,出现了大致如下的错误——

Access violation at address XXXXXXXX in module 'BBerSMSManager.exe'. Read of address XXXXXXXX.

定位了一下错误,发现了错误的根源所在。记录在此,供已经碰到此问题正困扰不已滴朋友,或者是尚未碰到但有可能在未来某个时间碰到此问题滴朋友们参考,顺便为貌似比较晦气滴俺积攒点RP。

由于我使用了google天气预报,可能是运营商网络拥塞的缘故,我常常会收到类似如下的预报——



下方的 [some text missing] 可不是预报的文本内容,而可能是信息中丢失了某些帧,导致手机自动用此类语句作为提醒——换句话说,这是一个非常规的、难以被一般软件识别的文本内容(因为是手机自动替换相关信息所产生的嘛)。平时无所谓,但是用 BBer_SMS_Manager 就出现问题了,因为它也没办法识别这段消息!

同理,如果你也碰到了此类问题,就定位一下,看 BBer_SMS_Manager 是在哪里卡壳了,寻找到出错点,删除出错点所在的短信就OK咯。

如何删除呢?不要一个个去肉眼定位寻找,那就太枉费黑莓手机良好的操作系统设计了。(我使用的是8700系列,其他系列类似操作便可)打开主界面选择 Search 搜索(或者是直接按 S 便可快捷进入搜索界面),输入 keyword 例如“湖北 武汉”,选择范围是 messages,自动搜索便可以了——



搜索到了再如何?当然是 Delete 咯(直接按快捷键 D 便可删除)。但是依旧得益于Blackberry的完美操作设置——定位到某个日期,按下滑轮,选择 Delete Prior 便可删除在此日期前的被搜索到的全部短信了。 :D



--jtuki

Sunday, November 9, 2008

Lightbot 跳跳牌点灯机器人

Lightbot 这个游戏做滴挺有创意,但是恐怕不喜欢数学滴童鞋不会喜欢。

总共是12关,前面滴关卡教学为主(友情提醒——没有编程经历的童鞋可能需要多花点时间去适应一下前面滴指导关卡才能继续玩后面的几关)!针对那些有些编程经验滴童鞋来讲,思路其实也就特别简单了。俺总结一下(佛祖可以证明,这段总结不是大放厥词,或多或少还是有些道理的。因为俺就是根据这种思路玩通的,而且每一关的思路形成过程都非常滴顺利 :-D )——观察游戏地形,分成若干区域,在每个区域间寻找共性;完成某个区域后,回溯到某个可以重复使用一系列步骤的阶段,将这些相同滴步骤提取出来,函数实现之

最后三关(10-12)滴通关图片如下(点击链接地址查看全部)。








From lightbot 编程点灯机器人游戏

在豆瓣上找到了这个活动,上面提到了一段youtube上滴视频(真是牛人啊,仅仅用了132个commands,俺用了181个 囧)。此人滴解法中步骤的重复率很高,可谓是步步珠玑,但也因此造成很多滴步骤被白白的浪费。

-- jtuki

Saturday, November 8, 2008

嘿 哥们儿 要手电筒么?不要?那要weapon否?

大家都知道,美国是个不太安全的国家。(啥?珠海撞人事件?我可没听说过。中国可是世界上最安全的国家了,国民素质也是最高尚最文明最开化的,怎么可能会有人被逼得成了神经病、去开车撞中学生呢?)之所以这么说,最主要的原因当然还是多次校园枪击案件给人带来的心理包袱(可怜了CS和半条命这样的FPS游戏,在每次校园惨剧发生后,都难逃被严厉批判的厄运)。隐藏在多起青少年枪击事件背后的,当然也就是美国人人家中不仅藏着一副骷髅、还都藏着一杆枪的文化。

但是说真的,这样的事情还真是挺酷的。开始是在有意思吧看到了这个视频,后来输入视频中的链接找到了一些好资源!同大家伙share一下。视频在这里——



是不是想起了《国产零零漆》中滴精彩对白?表面上看这就是一手电筒,其实,这玩意可是把好家伙!

这把枪是一把 concept weapon ,咱们有了所谓概念车概念房概念电影,怎么能少了概念武器呢?这段视频出自这个站点,属于武器买卖公司,online-store 在这里。生产厂家是这家公司,当然咯,在国内自然是买不到啦 囧(强烈推荐其站点上方的随机logo 真是酷毙了)。

ps.
(个人观点)枪支不在于禁止与否。诚然,不禁止枪支所带来的问题固然是很多的,但很多问题并非不禁止枪支所造成的,而且其所占的比重远远超过了允许枪支流通所带来的问题。拿把菜刀还能乱捅呢,总不能全国都不让用菜刀切菜了吧?关键还是整个社会制度是否完善,社会风气是否良好,这才是问题的关键所在。(但是,特此声明——这样的论调绝对远远不足以构成允许枪支流通的理由。)

-- jtuki

Wednesday, November 5, 2008

黑人兄弟上台 - 平方数列求和 - 组合数学 - xarchiver

黑人兄弟奥巴马当选美国总统,算是今日滴最大新闻了。此人长着一副给人好印象的面孔,拥有算作离奇的身世(甚至自爆青少年时期迷茫滴吸毒历史),演说鼓噪人心。貌似对国人来说,奥巴马当选算是众望所归了。这里有來自Economist的一个flash实时演示,很有趣。

今天看题碰到了一个平方数列求和(1^2 + 2^2 + 3^2 + ...),我依然清楚的记得公式。可兴致大发的想要证明一把此公式滴俺却以失败告终。google到了答案,有多种方式。其中最典型的两种就是——三角形旋转叠加(这方法还真是挺形象 ;-) 不过解释中的“60度”应该改成“120度”);公式演算:
(n+1)^3 = n^3 + 3n^2 + 3n + 1  → (n+1)^3 - n^3 = 3n^2 + 3n + 1 然后叠加就OK了

还有一种提到了组合数学,看了半天没看明白 囧,觉得可能是某些式子写错了。不了了之。查了一把,觉得Brualdi教授的《Introductory Combinatorics》是本好书。可惜rapidshare上没找到4th edition的链接,仅有的一个3rd editon还是个死链接。emule上倒是可以搜索到,可惜这种资料用emule下载真是比白云天上飘还慢,完全没法和某些热门电影的无敌水上飘相比。倒是找到这么一本《Foundations of Combinatorics with Applications》,preface中有这么一段——
Advice to Students

This book does not assume any previous knowledge of combinatorics or discrete mathematics. Except for a few items which can easily be skipped over and some of the material on "generating functions"
in Part IV, calculus is not required. What is required is a certain level of ability or "sophistication" in dealing with mathematical concepts. The level of mathematical sophistication that is needed is about the same as that required in a solid beginning calculus course.

You may have noticed similarities and differences in how you think about various fields of mathematics such as algebra and geometry. In fact, you may have found some areas more interesting or more difficult than others partially because of the different thought patterns required.

The field of combinatorics will also require you to develop some new thought patterns. This can sometimes be a difficult and frustrating process. Here is where patience, mathematical sophistication and a willingness to ask "stupid questions" can all be helpful. Combinatorics differs as much from mathematics you are likely to have studied previously as algebra differs from geometry. Some people find this disorienting and others find it fascinating. The introductions to the parts and to the chapters can help you orient yourself as you learn about combinatorics. Don't skip them.

Because of the newness of much of combinatorics, a significant portion of the material in this text was only discovered in this generation. Some of the material is closely related to current research. In contrast, the other mathematics courses you have had so far probably contained little if anything that was not known in the Nineteenth Century.(这句话俺太喜欢了! :D 譬如Calculus就是19世纪滴东西,而现在国内大学里,哪怕是专业课程和Calculus几乎毫不沾边的学生都得学习之,的确比较无奈。对于我们这种数学功底还不错的学生来说,C不算困难。特别是(俺个人觉得)其可谓是高中数学内容的一种思考方式上的延伸,不需要太多思维转换即可轻松接受。可那些数学功底不好的学生咋办?君不见某些人连挂几次依旧不得不补考?真不知道那些白痴curriculum制定者是怎么想问题的。为啥不改成选修课程?) Welcome to the frontiers!

顺便推荐一个gnome下的好东西,xarchiver,比gnome自带的压缩包管理工具好用,界面也很整洁。其他linux桌面下应该也没问题,毕竟是x打头的软件嘛。

ps. 刚才在emule上已经下载完《Introductory Combinatorics》全书了(速度比俺想象的快不少啊),是机械工业的影印版,扫描得不清晰。不过看起来印刷质量还不错,字体也漂亮。还是买书看吧。不过近来开始准备考研,肯定是不能买得看了。也不知两个月时间可否顺利搞定考研和4门专业课以及若干门公选课。真是愤恨自己前三年都没啥明确的努力目标,不然保研出国起码也得搞定一个了!吾悲愤啊! :( 如果搞不定,明年3月份就准备和众童鞋一起找工作去咯! :D

Saturday, November 1, 2008

强大好玩滴VPN!

接着上次的说。总是听说VPN(Virtual Private Network 虚拟私人网络),但是一直都没有尝试。直到昨日在solrex的博客上看到了此文,兴致大增——居然还有免费的VPN服务!于是搬出google搜索,发现了另外一个更佳的VPN服务,Relakks.

Solrex介绍的香港Prairie Dog VPN服务对于免费用户滴限制挺多,具体可参看他们的FAQ,摘录如下:
Free account will be disconnected automatically once the download exceeds 30M or upload exceeds 15M, even though users may reconnect again.
This limitation is to discourage users from hogging the bandwidth. They should move to paid account instead.
There is no limit on the number of concurrent users on the free account server. As a result, a free account user is more likely to experience network congestion, including inability to connect to the VPN server and slow connection.
VIP/Premium/Paid account do not have such limitation. We will also limit the number of VIP accounts hosted per VPN server to ensure there is adequate network bandwidth for each VIP account user.

简单点说就是每次连接之后的通信流量有限(下载30M 上传15M),但是你可以reconnect重新连接;免费用户相比付费用户而言,速度更慢(因为双方服务器的待遇大不相同)。

而Relakks就好得多。流量上任你用,待遇也一样,不过有一点不同,就是每个注册用户只能用30天。(画外音——这还不简单,注册多个用户不就得了?回答——不行,他们是根据网卡的物理地址MAC来定位每个注册用户的。画外音——那就换一个MAC不就行了?回答——有违法律内容咯,这里就不说了,大家有兴趣自己研究.)

Relakks上有如何在WindowsXP下配置VPN的说明,也有针对Vista和Apple Mac的,就是没有Linux的! :(

不过没有也无所谓啦,自己动手,丰衣足食嘛。Solrex的文章其实已经说得挺清楚的了,不出意外的话,配置起来应该没啥问题。可偏偏俺多灾多难的系统就有问题——压根找不到VPN的选项。按道理,安装如下软件后(sudo apt-get install pptp-linux network-manager-pptp network-manager-vpnc)就应该可以在nm-applet(网络管理插件)上找到VPN配置的选项,可是估计还是俺升级不规范的原因,怎么都找不到。

在Preferences - Main Menu - Applications - Internet下找到两个控制台软件——



也就是刚才安装的network-manager-pptp和network-manager-vpnc了,尝试着运行,却提示找不到nm-vpn-properties,google后发现这nm-vpn-properties还真是挺怪!首先是搜索之后,发现大家对此小东西是叫苦不迭,看得我心中真是深感安慰(瓦哈哈哈,大家居然都是苦难人啊 囧)!最后终于在这里找到了问题所在,摘录这位Debian开发者的一段话——
On Mon, 01 Sep 2008 12:30:19 +0200, Michael Biebl <...@debian.org

No, you are right, the network-manager package has no GNOME dependencies
although it ships nm-vpn-properties, a GNOME application.


This is actually a bit of a hack.
The monolithic NetworkManager source tarball was split into a core part
and GUI/GNOME part in version 0.6.5. Unfortunately nm-vpn-properties
remained in the core network-manager package.

We had the option to split nm-vpn-properties into yet another package,
make the network-manager binary package depend on GNOME libs, or cheat a
little and exclude the GNOME dependencies from network-manager.

We chose the last option. We assumed, that anyone using
nm-vpn-properties will also use nm-applet from network-manager-gnome,
which will pull in all the necessary dependencies.
Another reason was, that in the upcoming 0.7 release, nm-vpn-properties
will be dropped from the network-manager core package, so a separate
binary package seemed like a bit of overkill.

And making the network-manager binary depend on GNOME libs was also not
an option, given that it is used by KDE only desktops.

Hope this clarifies the situation a bit.

Cheers,
Michael
--
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth? (这段签名很有意思 :D )

可见,由于nm-vpn-properties的在多个版本中依赖关系的不确定性,导致俺机器上压根没了这小东西。所以nm-applet就没法检测出VPN配置的存在了。
-------------------------------------------

So,怎么解决?推荐kvpnc!这个KDE下的基于Qt library的软件,功能异常丰富,可谓豪华级别的配置!安装就不说了,大家apt-get install自己搞定。这里就说一说配置Relakks的VPN服务时要注意的问题——

1. 协议要选择M$的PPTP点对点通信协议。

2.在PPTP的设置页面上,切记务必做出如下设置——(具体信息参考 /etc/ppp/options.pptp 文件或者是 man pptp 查阅


3. 网络设置上,做出如下设置——(不要自定义MTU,同时网络设备选择default,ADSL用户一般会自动选择到宽带链接,如ppp0)


4. 服务器选择 pptp.relakks.com

连接就OK咯。你将会使用來自瑞典的VPN服务,通过瑞典的IP,穿越伟大的“超大”防火墙访问internet! :D

ps. 如果你不想安装kvpnc,想直接通过命令行连接,那也是可以的。因为毕竟kvpnc只是帮助你配置了一下pon的文件和chap-secrets中的用户和密码罢了,而pptp的设置在options.pptp中可以方便设置。只是这里就不罗嗦了。大家自己研究探索啦! :)

-- jtuki

network-admin无法启动的解决办法

还是接着上次的说。对于我等广大滴ADSL用户来说,在linux下只需要运行pppoeconf便可配置ADSL用户名密码等来上网了。但是有时候遇到更加advanced滴事情,例如配置VPN,就需要network-manager-gnome来帮帮忙了。毕竟,对于网络配置而言,在图形界面下配置比在命令行下配置要更加令人愉悦。 :)

可惜有时候network-admin就是打不开!例如launchpad上报告的这个bug,我不太清楚他是否和我碰到了一样的问题,不过我昨天也是一样,同样没法打开网络配置页面。后来通过错误消息定位,发现有如下错误提示[Liboobs:ERROR:(utils.c:114):utils_get_basic: code should not be reached.]。

google了一把(居然只搜索到一个结果,哪怕去掉114这个数字依然如此,可见这问题还没被人怎么关注啊 囧),原来liboobs是用来给system-tools-backends提供基于GObject的接口的轻量级library。打开synaptic搜索,发现我本地机器上的liboobs果然是一个陈旧的版本(liboobs-1-3),而且liboobs-1-3和liboobs-1-4版本居然没有dependency升级关系!直接删除liboobs-1-3,安装liboobs-1-4,问题解决。

可以很明确的说,这个问题是由于Ubuntu发行版本升级造成的。由于Ubuntu开源社区开发软件的松散性,上千种软件的打包有时候并未完美的解决掉依赖性问题。由于我每次都是直接修改sources.list文件中的版本号来升级更新系统,而且并非一次性统统更新、而是有选择性的,例如只升级nautilus、gnome-themes、gnome-session和一些常用library等等(更新内核与否要看情况),这样就容易造成一些版本冲突。 :(

强烈建议各位每次升级后,如果出现问题,及时查看terminal终端上给出的信息,google解决之。如果google都找不到,那就去launchpad上报告这个bug或者是去irc上问一问吧。

--jtuki

有关SCIM输入法的tip一则

接着上一篇说。用了SCIM这么久,要不是前天想要将搜狗细胞词库导入,意外发现了这个小tip,还真是不知道SCIM中滴一个隐藏功能——特殊符号输入

打开SCIM帮助,可以看到如下一段:



还需要多加解释么?俺看到这个简直是兴奋异常,打开special_table文件后从头到尾研究了一把(是不是觉着俺确实很有聊啊 囧)。
这里挑选若干有趣的说一说,其他的大家自己观摩文档咯——
imath 输入数学符号:(例如) ± ∀ ∈ ∝
idate 输入当前日期: 2008年11月2日
itime 输入当前时间: 15点45分
ifuhao 输入各种标点符号: § ‖ ‰ ’ “
ijiantou 输入各类箭头图案: ← ↗ ↘ ↔
ilatin 输入各种拉丁字母(ixila 是输入希腊字母): à ê ò
isanjiao 和 ifangkuai 输入各种三角和方块: △ ▼ ■ □
ishuzi 输入各类数字序号: Ⅳ ⅳ ① ⑴ ㈠
idaxieshuzi 输入中文大写数字: 叁 壹
imale ifemale 输入男女性别符号: ♂ ♀

最强大的当然不是系统内部的这些,而是可以和搜狗一样,自定义快捷方式!例如,你可以搜索到心形(heart symbol)的16进制格式的Unicode编码是0x2665(更多搜索参考Unicode Chart官方站点),于是你可以在special_table文件后输入如下一行——

love = 0x2665


然后重启scim(使用 sudo pkill -9 scim* 杀死scim进程,接着 scim -d 将scim做为精灵守护daemon后台程序启动),输入ilove,便可以看到心形符号了 ♥.

同理,你可以继续添加,例如个人通信地址等等。例如俺所添加的——
580 #user-defined
581 love = 0x2665
582 email = jerome.rivest.long # gmail.com
583 emaildisguised = jerome@rivest@long#gmail.com
584 name = jtuki

最后给大家献上俺用如此方式编辑的一条语句: ♂ ♥ ♀ ∧ ♀ ♥ ♂ → another or more ♀ ♂ :D

--jtuki

SCIM输入法 VPN连接 network-admin启动 @ Ubuntu

这一天半整标题上的这些东西,花去了大量时间,于心不忍,于是blog一则记录之。

------------------------------------------------------

首先是觉得SCIM的词库实在是不太理想,于是想将搜狗拼音输入法的众多基于用户分享的、txt格式的细胞词库转换过来为我所用。得到google反馈,在~/.scim下找到了两个文件夹,pinyin 和 sys-tables,顾名思义,前者是拼音输入法相关数据,后者是基于码表的输入法的相关数据,要对其展开工作的就是前者了。

pinyin文件夹中有5个文件(tar打包文件是我临时做的备份,并非系统所有,标号1-5是vim中的行计数)
1 phrase_lib
2 pinyin_backup.tar
3 pinyin_phrase_index
4 pinyin_phrase_lib
5 pinyin_table

其中phrase_lib内容大致如下(提取前面一小段,标号1-5是vim中的行计数)
1 SCIM_Phrase_Library_TEXT
2 VERSION_0_6
3 26468
4 121732
5 2212
6 代理    4965
7 服务器  8329
8 韩国    5901
9 运行    9074

可以发现,如果phrase_lib中只有前面的汉字部分,例如“代理”,而没有后面的数字部分,例如“4965”,那么咱们就爽了——直接将细胞词库中无数的词组复制粘贴到这个文件中就万事大吉了!可惜事实并非如此。
google搜索到了SCIM中有关phrase_lib文件的源代码,其中定义了phrase_lib相关的多个类(classes)。可以看出,后面的数字是offset偏移量,是为了方便输入时的即时搜索。查看另外的两个文件pinyin_phrase_lib和pinyin_phrase_index也可以印证这一点。

事到如今,直接将细胞词库导入的办法基本上行不通了,于是继续google,看是否有人已经做好了更棒的输入法,结果找到了一个scim-python,居然是直接将搜狗中主要的细胞词库作为其默认词库!大喜!
直接编译scim-python需要安装若干dev开发包,俺为了节省一点硬盘空间,继续google看是否有已编译好的deb文件下载。结果发现还真有不少,继续大喜!从中挑选了一个看起来比较靠谱的,下载之,使用dpkg安装,没有dependencies依赖问题。
直到这里,我都是处于轻松惬意的状态。谁知安装完毕后结束X-window,重新登录,居然花掉了大约半分钟才进入桌面!而且还擅作主张滴给俺直接启动了一个gnome-terminal,不带标题栏的!急忙关闭gnome-terminal,却发现所有打开的窗口都没了标题栏,而且我给系统自定义的快捷键全部失效。最可怕的是整个系统速度慢如蜗牛,卡得让人无法忍受。 :(
于是赶紧去确认下俺刚才到底安装滴啥宝贝,咋这么大威力,一下子把俺系统弄这模样了。一看,原来是一个svn临时开发版本,既非stable版本,也非rc版本,甚至beta都够不上!额滴神,怪只怪自己没看清。由此可见,各位朋友今后安装非官方deb包时,务必注意看清版本号。

卸载掉(使用purge,将配置文件也一并删除)scim-python,却发现系统依然如此。甚是不爽,于是重新配置可能出现问题的gnome主要部分:
sudo dpkg-reconfigure gnome-session
sudo dpkg-reconfigure gnome-icon-theme
sudo dpkg-reconfigure gnome-applets
sudo dpkg-reconfigure gnome-applets-data
sudo dpkg-reconfigure gnome-desktop-data
sudo dpkg-reconfigure gnome-themes

熟料无效,顿时抓狂。

幸亏俺做事情不怕野蛮,也不怕辛苦。<Ctrl>+<Alt>+<F1>进入黑色的命令行世界,进行极具风险但成功率很高的purge+install工作(风险很高,如果愿意尝试,后果自己负责咯 囧)。
将可能出现问题的软件包删除——
sudo aptitude purge gnome-session gnome-icon-theme gnome-applets gnome-applets-data gnome-desktop-data gnome-themes
当提示你是否决定彻底删除这些软件包和 configuration 配置文件时,别手软,敲入Y继续。一下删除掉了180M的东西,当我看到屏幕上冒出 rhythmbox 的时候,泪奔了,大量的 playlist 文件还没来得及备份呢!

删除完毕后,重新安装。需要多增加一个 gdm ( gnome 的登录管理器)——
sudo aptitude install gnome-session gnome-icon-theme gnome-applets gnome-applets-data gnome-desktop-data gnome-themes gdm

重新登录,一切OK咯。 :D
就先写这么多,吃完饭后有时间了再接着写剩下的部分。

--------

update1: 后续文章在这里——
有关SCIM输入法的tip一则
network-admin无法启动的解决办法
强大好玩滴VPN!

update2(2008年11月6日)
进行上述的 purge+install 之后,系统会同时删除 gdebi (本地 deb 包安装管理工具),下载的 deb 包会无法找到关联。简单情况直接 dpkg -i file.deb 就可解决。如果遇到 dependencies 比较复杂的情况,可以重新安装 gdebi 工具(推荐)!同时,如果你希望找到 rhythmxbox 的替代软件,这里推荐 Amarok (有更加强大的 playlist 管理功能,界面和 foobar2000 类似)或者是 Audacious (界面很清新,有 winamp 的风范,支持的 plugins 范围很广泛)。

update3(2008年11月8日)
插入mp3提示 Cannot mount volume. Invalid mount option when attempting to mount the volume.
估计是由于 gnome-volume-manager 在 purge 中同样被删除的缘故。但是无需重新安装之,仅仅升级 gnome-mount 和 mount 便可解决问题。

--jtuki

Tuesday, October 28, 2008

OpenDNS服务!

现在才用这个开放DNS服务(OpenDNS)似乎有些火星了。但是这服务确实是好用,不得不赞一个!

用这个服务滴好处挺多——
例如对于家庭用户而言:

* Parental Controls 可严格控制家中网络能够访问的站点类型(啥?今后想要浏览成人站点?先弄到路由器密码或者是你老爸的OpenDNS帐户密码再说吧!)
Keeping your family safe online has never been easier. OpenDNS gives you more than 50 filtering categories to choose from. Simply check the boxes of the categories you want to block and watch your filtering take effect within minutes.

* Faster, More Reliable Internet 这一优势在大陆并不明显,但是有一个很大的好处——电信网通如果想继续简简单单滴没啥技术水准滴霸道滴DNS劫持、以此来向咱们弹出广告,那就直接睡觉做梦去吧!
Rid your household of annoying, intermittent Internet outages. Switch to OpenDNS and immediately notice a faster, more reliable Internet experience. Join the millions who've already unbundled their DNS service from their ISP's Internet connection.

* Phishing Protection 避免被phishing站点欺骗!OpenDNS专门成立了phishtank这个站点,利用群众滴智慧抗击钓鱼欺骗。
Take the guesswork out of identifying phishing Web sites with OpenDNS's industry-leading anti-phishing service. We'll tell you when the site you're trying to visit is fraudulent.

* OpenDNS Guide 这就是OpenDNS滴一条主要赚钱渠道!所有无法被解析的词汇(如在浏览栏直接输入jtuki,然后回车,就会到达这个页面)都会被导向到opendns_guide页面(其实是对yahoo搜索的简单UI封装,试一试其他搜索类型,例如image就知道了),可见yahoo是OpenDNS的主要合作商!
Search results get you back on track when you mistype a URL or try to visit a site that's down. Our smart "did you mean?" spelling suggestions help point you in the right direction, instead of showing you a hard-to-understand error page.

* Customization
Add your favorite image and a custom message to the OpenDNS Guide and blocked pages to personalize the feel of OpenDNS for your household. Use different messages for different pages.

* Shortcuts 这一功能很不错!例如建立ge到www.google.com的映射、g到www.google.cn的映射。可以代替delicious的keyword功能(今后如果到了一个没有delicious插件滴机器上,倘若没法安装插件、但是可以修改DNS服务器,那么也凑活凑活可以玩shortcut方便方便了)。
Map short and easy-to-remember terms to your favorite Web sites with OpenDNS Shortcuts. Set up personal Shortcuts that work just for you, or Network Shortcuts that work for everyone in your household.

* Typo Correction 输入错误自动更正,例如输入www.googel.cm会将你直接导向www.google.com。
Don't let typos slow you down. We correct the most common ones automatically for you in the address bar. Using OpenDNS typo-correction will have everyone in your household zipping around the Internet.

* Top-Notch Support 如果啥地方不会设置,就翻forum和发email询问experts吧!
OpenDNS provides free email support. Get help setting up OpenDNS from the DNS experts.

简单来说,对咱们而言最重要的几点好处就是,站点控制和过滤(例如家中有小孩要上网的),防止钓鱼站点欺骗,防止BT的垄断ISP进行DNS劫持。

如果只是想防止一把DNS劫持,修改你的DNS服务器为OpenDNS的开放DNS服务器“208.67.222.222”(primary)和“208.67.220.220”(secondary)就OK了。至于如何使用站点过滤和anti-phishing,大家去OpenDNS上注册一个账号、顺着guiding一步步来就行了。

ps1.
这里多发两个链接:有童鞋对OpenDNS仅仅和yahoo联盟滴做法表示不满、希望能够自定义搜索引擎如果你访问某个成人站点(请群众相信俺!俺绝对是好同志,这里仅为实验要求!)、phishing-site、任何被选择block的站点,会返回类似这样滴页面

ps2.
针对ADSL用户,IP地址是每次连接自动分配一个(dynamic IP),针对dynamic IP滴openDNS设置请参考这里
对于使用“tor”+“firefox”+“firefox滴插件foxyproxy”的用户——如果使用openDNS服务,那么请务必将foxyproxy滴“Global Setting”中滴“Use SOCKS proxy for DNS lookups”选项勾除,不然没法使用tor进行访问!

Sunday, October 26, 2008

战栗的乐谱

柯南剧场版《战栗的乐谱》,感觉情节进展上比较一般,案情发展也算不上扑朔迷离,但是看完后会有一个很深刻的体会,就是此片非常滴geeky!侦探的味道没体现出来,geek的味道倒是体现了不少。这里就稍微总结下:


拥有绝对音高(Absolute Pitch)的人。这种特质貌似是由于这类人群的大脑能够针对特定的频率进行足够精确的分析所致,大家可以参看wikipedia页面,最有意思的两点是——


linguistic层面上的语言和AP之间的关系(汉语等具有音高的语言更容易诞生具有AP特质滴人):
Absolute pitch is more common among speakers of tonal languages such as most dialects of Chinese or Vietnamese, which depend heavily on pitch variation across single words for lexical meaning (Mandarin with 4 possible pitch variations, Cantonese with 9, Minnan with 8, and Vietnamese with 6).
具有AP特质滴童鞋可能会面对的潜在问题(对不和谐音色的极度敏感和排斥):
Persons who have absolute pitch may feel irritated when a piece is transposed to a different key or played at a nonstandard pitch.


DTMF人肉拨号!这一点出现在动画里实在是太神奇了。俺好歹也是学习通信的,看到这里还是羞愤了——柯南一个侦探居然能够把DTMF中对0和1的编码频率记忆滴如此准确,真是让我等汗颜 囧!似乎当年苹果的沃兹也就是利用DTMF拨号编码规则中的一个bug,发明了打电话不要钱滴设备,还因为这事情被警察逮着训话。不过似乎北美和不少地方的电话交换设备都已经digitization了,这一套针对模拟电话交换机的小把戏应该就不管用了吧。难道日本还没有digitization交换设备么?(似乎国内还没换,所以大家如果人肉拨号应该可以成功!囧)


这一点应该不算是geeky了,但还是要推荐下,就是奇异恩典这首基督教圣歌!这里有audio samples,网上可以找到人声版本,推荐Harley Westenra的版本,灰常滴完美!

Saturday, October 25, 2008

你的窗户准时么?

前段时间主板CMOS电池没电了,操作系统显示的时间总是会出错。所幸在Ubuntu下进行Time Synchronization非常的容易,任何时候想要同步时间,只用运行一把ntpdate便可(也可以设置cron定时运行之)。


但是在Windows下滴童鞋就不那么幸运了,每次在Win下想要同步时间似乎都会出错,所以很多人也就直接放弃了。比如学校某位仁兄的电脑便是如此,时间“误差”已经达到了一天多之巨(请各位看此文滴资深物理老师莫提醒俺“误差”和“错误”的区别)。



  • 此文就是针对这个问题,提出解决方案——
    通过修改时间服务器(Time Server)和同步频率(Frequency of Synchronization),以达到CMOS电池没电后、依旧保持时间准确无误滴目的!


首先引入NTP(Network Time Protocol)协议,关于此协议较为详细的介绍可以参见NTP的wikipedia页面


The Network Time Protocol (NTP) is a protocol for distributing the Coordinated Universal Time (UTC) by means of synchronizing the clocks of computer systems over packet-switched, variable-latency data networks. NTP uses UDP port 123 as its transport layer. It is designed particularly to resist the effects of variable latency by using a jitter buffer.


可见NTP的目的是使得在基于分组交换的、不同延时环境的计算机网络中,各个clients能够和某些准确的time servers同步时间。也正是由于不同延时环境的存在,NTP的同步不可能达到完全准确,也不能保证每次同步都是高质量,但是已经相当不错了(依旧在不断发展中,比如当前正在开发过程中的NTPv5)——


NTP uses Marzullo's algorithm with the UTC time scale, including support for features such as leap seconds. NTPv4 can usually maintain time to within 10 milliseconds (1/100 s) over the public Internet, and can achieve accuracies of 200 microseconds (1/5000 s) or better in local area networks under ideal conditions.


如何?是不是很精确?误差控制在1秒内,咱们普通的个人家庭电脑用户也都可以承受了。好,理论部分的科普到此结束,其他的,例如clock stratum结构*nix平台的Y2038 problem(有图示在此)、NTP的当前发展方向,这里就不说了,有兴趣滴童鞋自己去翻wikipedia浏览一下吧。


进入针对Windows平台的实战部分(*nix用户参考此文档便可)。针对Vista平台的情况没有尝试,看官自行根据情况斟酌下咯。


|---------------------------------------------------------|
|---------------------------------------------------------|


Windows已经实现了NTP协议(应该是NTPv4),所以只需要选择一个速度较快的基于NTP的时间服务器更新便可。三种主要类型的时间同步服务器list链接:



我们选择第一个链接便可以了,要求更高精确度的童鞋可选择Secondary甚至是Primary时间服务器。作为亚洲用户,选择asia.pool.ntp.org便可。



  • 打开regedit,定位到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers”,删除其中的两个几乎从来就连不上的时间服务器,新建一个字符串值,命名为“1”,数据为纯文本的“asia.pool.ntp.org”。“(默认)”的值修改成“1”,也就是表示在默认情况下使用你建立的这个服务器作为同步服务器。


OK,搞定了。试一试更新看看!成功了吧?



Windows默认的同步时间频率是7天,对于CMOS电池没电滴童鞋来说,这个时间可是太长了些,如何改短一点?



  • 定位到“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\TimeProviders\NtpClient”,有一个双字DWORD数据SpecialPollInterval,十进制数值是604800,也就是7天所对应的秒数。将其修改成为7200、也就是2小时的同步更新频率了。


ps.
NTP协议是最古老、也是生命力最强的互联网协议之一。整个协议层很复杂,有兴趣的同学可以下载代码研究之。

Thursday, October 23, 2008

雅虎口碑和阿里巴巴

之所以把这两个扯到一块,是由于他俩在各自的2009年校园招聘宣传页面上,居然出现了惊人的相似性!废话少说,看图为先:(点击链接观看)
雅虎口碑的“事业橙风破浪” 阿里巴巴的“事业橙风破浪”
雅虎口碑的 “生活精彩纷橙” 阿里巴巴的“生活精彩纷橙”

其中,只有阿里巴巴特意提到了“阿里橙”是其特殊的企业文化符号。所以,俺觉得,极有可能是口碑网抄袭了阿里巴巴的宣传动画和创意。而阿里巴巴的这宣传动画想必不是基于CC协议的吧,咋能随便就给盗版掉了。汗哪 囧。每个企业的招聘宣传应是独具匠心,不管是页面UI呈现,还是文字表述,如果都能给人眼前一亮的感觉当然最好,要是做不到,那么起码在某一个方面应该下点功夫。但这功夫,必然不是满internet搜索他人企业的创意,然后盗版之。

Monday, October 20, 2008

话说阿里巴巴笔试

形式如下——
考卷分成卷一(Java研发工程师)、卷二(搜索研发和C++工程师)、卷三(公共题)。

俺申请的是需求分析师(RA),阿里巴巴2009校园招聘的页面说明如下——
岗位描述:
作为需求分析师,你将会有机会和研发工程师一起参与阿里巴巴核心产品的开发与技术实现,探索影响深远的互联网应用,实现最佳的用户体验,提升全球电子商务应用水平。
岗位要求:
1、本科及以上学历
2、有良好的需求挖掘能力、敏锐的商业意识、和优秀的沟通能力
3、熟悉产品设计和软件工程、了解面向对象的系统分析思想
4、熟悉UML设计和相关工具使用者优先考虑

熟料RA在笔试中同样不得不选择卷一和卷二中的一个来答题。卷一的Java俺没学过;卷二的搜索除了robot.txt(还真的考了这个问题,问你如何让搜索引擎的爬虫不抓取页面)之外、其他啥都不明白了,而对于俺还算有所了解的C++差不多就考了4题左右(包括读程序、基本知识等)、总共是25题。但是对于俺而言,相比卷一,卷二看上去更美,于是选择了卷二做为蒙答案的对象。

卷三相对容易,请注意措辞,是“相对”容易。原本以为公共题应该是简单的逻辑题等等,谁知居然偏重软件测试!(如黑盒白盒、软件测试bug处理过程)俺又蒙了。公共题部分详细结构如下——
* 逻辑题。比如文字描述的逻辑题(俺觉得这类题目最简单,只要思考仔细,一般不会出错),数字找规律题(有一道,4 2 2 3 6 15,问下一个数字,俺没做出来 囧,google到答案后觉得很BT。毕竟不搞小学奥数多年,如今再次碰面,竟觉如此生疏、不知如何落笔,发现直接加减乘除貌似都不行后,第一反应居然是坐标系,瀑布汗。)

* Windows和linux基础。

这类题目最tmd变态!不是说俺不会做,而是俺不知道为何要考这个!?比如Windows中打开注册表需要在“运行”中敲入哪个命令、linux下普通权限用户的user-id大约是多少、linux中的syslog放在哪个文件中、如何取消linux中某个文件的suid权限。幸亏俺Windows和linux都用、彼此也都还算熟悉,不然真是只能大眼瞪小眼了。只是俺还是不明白,在公共题部分里,考这玩意儿究竟是为何?

* 软件测试部分。

俺不懂,看着顺眼就直接蒙答案了。不过这方面题目也不太多,大约3道左右(总共是17道)。

* 主观题部分。

两个问题。第一是连接两个链表并排序后返回结果,第二个是问你C可否实现OOP、为何可以实现、如何实现。俺做这两个题是在最后5分钟左右 囧。

第一个用的是C语言的格式,可惜几乎没写具体程序,只抛了两个函数调用,一个函数用来combine两个链表、另一个函数用来插值排序,然后就匆忙写第二题了。第二题写了估计100字左右,讲了下OOP的本质设计思想binding和mapping(似乎也就是dispatch分配),然后脑袋一昏,居然还写了如下的句子——“请参考《OOP in C》一书,可下载pdf文档” 囧。想要回头再写第一题中的程序时,阿里巴巴的家伙们就收卷子了。 :-(

总体感觉阿里巴巴对于笔试的态度并不认真,各个职位的需求和笔试内容明显不符、甚至还有冲突(俺RA管软件测试干嘛?!把UML Sketch设计和Java联系起来倒是understandable,可惜俺没学java!泪奔啊),如果收到了面试通知就是万幸了。

ps.

说实在的,阿里的这种态度让我觉得这企业很让人不放心 囧。莫非是因为阿里巴巴进来受到投资者质疑,从而不打算招太多人、只是想借机宣传一把?不过或许只是和宣传部门以及HR部门有关,具体也不好说。

不过既然要举办笔试,那就好好安排笔试内容(这次笔试的地点也是很无语,延期了将近50分钟举行,而且还临时更换了地点。不过联想到武大教务部低下的效率,倒也情有可原),不然让人觉得真的只是忽悠一下、意思意思一把就算了。而且貌似对参加笔试的人也没怎么筛选,看这里的意思,似乎是投递了简历就差不多都可以笔试?(甚至是参与了宣讲会就可以!如果此消息属实,那就真是太无语了)

-- jtuki

--------------

补记一下:卷三公共部分还有一题很搞笑的题。“请问,下列哪种并非linux的shell——ksh,ssh,bash,csh”。俺看到这题后的第一反应是周星驰的《百变金刚》中的问答题,或者是问周星驰和周润发啥关系的题。 :-D

Saturday, October 18, 2008

张五常这个小老头

连俺自己都觉着这title确有标题党的嫌疑,只是往往随意定下博客标题后就不愿再改,毕竟张童鞋这个备受争议的学者的年龄也足以称谓“小老头”了。

本人乃是经济学白痴一名,未读过一本经济学书籍,甚至宏观微观也只是字面上划分、究竟本质含义是啥也无法区分。现如今居然开通“曼妙经济学”一个catalogue,也算是表明一个态度——啥时候也要研究把经济学。

今晚在张的新浪blog上逛了一晚(说来惭愧,知道有张五常这么个经济学家时间也不短了,可今日还是第一次知道张的blog),觉得此人的确了得。尽管有美国逃税通缉犯这么一个够伤大雅的事件,但是咱们也的确不太清楚到底孰对孰错、事情究竟,就不要妄加评论了。这里就针对几个依据俺的管见觉着还不错的言论分享如下,有可能以偏概全、一叶障目,毕竟,谁能确保一个经济学白痴不会犯错呢? :-)

---- 张的新浪blog ----

浮沙指数:金融浮沙要向下面看

这是我今晚看到的第一篇,也是截止到目前为止最新的一篇blog。针对此次席卷发达国家的次贷危机,张写了数文,这是最新的一文。

北京要重视经济解释学

把10个经济学家拉到一块,如若不考虑各种实际因素,单纯针对某个问题各抒己见,恐怕一个月下来也难以达成共识。但是,有道理而且明事理的人聚到一块,终究还是会互相同意的。
说真话,我再不知道今天众说纷纭的经济学是些什么学问了。懂也好,不懂也好,没有谁不同意化学、物理、生物学等是关于什么的。经济学呢?我这个专家再也摸不准。有搞数的,称数学经济,其实就是数,可惜数学家一般认为是不到位的数学。有搞统计的,称计量经济,其实就是统计,运情好一点,因为统计专家不敢说是低档的统计技术。有说故事的,用方程式说,称博弈理论,名副其实,从事者是搞博弈游戏,无从验证,与真实世界是扯不上关系的。有为改进社会的,称福利经济,其实是自我陶醉,或希望有政府招手。有搞预测的,其实是看风水,而风水先生这个行业盘古初开有之,懂得怎样说生意滔滔也。何止十八般武艺,也难怪今天的「经济学家」多如天上星,屈指难算矣。

张说他越来越不知经济学究竟为何物,而是“经济解释学”此类有着较为明确规范的门类更令人赏心悦目、也更加应该得到重视。

beijing要立刻撤销宏观调控

我不太清楚此文中对于beijing的政策提出的批评意见是否真的合理,但是敢于讲话、提出一种不同的voice,就值得欢迎——只要行业内占据政界要位的专业人士的确是“有道理而且明事理的人”。

从刘翔弃赛说黄龙觅士

从此文很容易看出张老的性格,伴随着嚣张与狂妄的,也有笔下流露的真性情。 :D
自一九六二赢得洛杉矶加州大学的乒乓球单、双打冠军后,我没有再染指这项玩意了。要尝试就尝试,话停就停,是我平生的简单传记。这次北京奥运,我细看今天的乒乓球,吓破了胆。没有半个世纪之前那么好看:短距离互攻只两三板就是一分,没有当年那种攻攻守守要数十板才拿得一分来得好看。我想,要是我这个老人家再尝试,拿一分也不容易!

想当年--是五十多年前吧--我对阿团说,横板早晚会淘汰直板,因为直板的反手抽击见不得光,拿不出来。阿团天才绝顶,想出了以推替挡,发明了左推右扫,大幅地增加了反手力度,一九五九在匈牙利拿得世界冠军。

比我年轻两岁,要不是文革今天阿团还会活着。要是阿团还在,见到今天不知是谁发明的持直板以板背反手抽击,当会叹为观止吧。阿团聪明,我也聪明,但当年我们怎样也想不到可以用板背。

----

除了其blog之外,还有一处评论张五常也很有趣。也链接并摘要两文在此。

读书求学脑子用得过尽是大忌
读书求学,或做学问,需要付出的读书或做功课时间不是那么多,主要是脑子运作要多花时间,而这运作要有点安排才见效果。脑子用得过尽是大忌,可以有反效 果。我的处理是久不久要「分心」一下,让脑子休息,或想到其它与学问无关的事项去。尝试些与读书无关的玩意,是分心的重要法门。当然,志在学问,你不要让这些其它玩意弄得无心向学。意在短暂分心,对玩意着了迷或上了瘾也是大忌。

此文以及此文我颇为赞同。现在的成年人都越来越缺乏想象力。社会提供的想象空间越来越少,Institutionalization和Normalization本身就压制了太多年轻人的想象力,而Standard-Based-Test又给这样的状况雪上加霜。对此有体会的人不用多言亦易共鸣,没体会的人说得再多也不易共鸣。而没体会又不讲道理的人最可悲,因为说得再多也没用。

今天的大学制度使经济学日渐式微
今天的经济学发展一般对解释世事没有兴趣,内容空洞,其推断力令人尴尬。不否认有些能以方程式把模型砌得很可观的后起之秀。但他们不能解释或推断世事,除 了可观还有什么用场呢?是理论天才吗?可能是,但衷心说,他们的理论天赋远不及我当年。然而,当年我的老师坚持,不能解释世事的理论,等同废物。当年我也 同意高斯说的,要解释世事,我们要先知世事究竟是怎样的。走这一步是艰巨的工程,今天的大学制度是不再容许这种重要的知识争取了。

在这篇探讨“经济学”教学的文章中,也提及到了张的老师Ronald Coase的一篇文章《The Federal Communications Commission》。从wikipedia对于此文的解释可看出,居然原来RC此人与俺所专的行业还颇有些渊源:
Coase is also often referred to as the "father" of reform in the policy for allocation of the electromagnetic spectrum, based on his article "The Federal Communications Commission" (1959) where he criticizes spectrum licensing, suggesting property rights as a more efficient method of allocating spectrum to users.

只可惜Ronald Coase全名Ronald Harry Coase,如果将其改成Ronald Larry Coase,那就可以缩写成RLC,正好是RLC电路——射频领域的基础了。 :D

-- jtuki

Friday, October 17, 2008

训练神经细胞

午休时不注意姿势,导致脖子现在动一动就疼。幸好敲击键盘的身体部位(各位怪叔叔怪阿姨敬请放心,俺敲击键盘的部位很正常)还不至于牵一发而动全身,进而敲下如此文字尚还无需忍痛著文边写边潸然泪下。



脖子疼的比较有创意,左边丝毫没有痛觉,右边却很疼,而且还牵涉到了右边的后脑勺,让人不禁怀疑是否是颈椎的问题(pls不要向俺解释“颈是颈,椎是椎”)。没有专业按摩师,也没有专业护理人员,所以就这么忍着,进入本文主题——

由于右边脖子外加右边后脑勺疼,平时吃东西都是左边的口腔做咀嚼运动的俺,这次不得不换到了右边的口腔。熟料右边的口腔由于长期不运动,对食物竟过于敏感,一点点的辣味和咸味甚至稍高的温度都令俺的神经感到备受刺激。可惜倘若换到左边咀嚼会让人更加痛苦,因而就一直这么用口腔右部咀嚼着、忍受着味觉上的刺激。谁知道就这么嚼着嚼着,居然开始慢慢习惯,试着换到了下左边,竟觉着有些别扭!囧

也不知道是否因为口腔右部受到左脑控制,平时吃饭很少思考喜欢深刻问题的俺居然也开始思考“神经细胞”、“基因工程”等问题。
假若说味觉是由于舌头上的味觉感知单元将进食时受到的刺激信号传递给大脑、大脑经过分析后反馈回一个味觉体验,那么我短短一顿饭就可以让我对于味觉的体验发生某种程度上的变化不得不说是种神奇。俺相信俺的神经传递通路没发生啥变化(不然也忒快了些),而是舌头上的味觉感知单元发生了某种微妙的变化。但是在生物科技如此发达的今天,如果我们可以直接改变反馈过程——比如加强或者削弱大脑对于辣味的体验,岂不很神奇?

貌似是搞笑的怪谈(其实也确实是怪谈 --),但是如果真的能够开发这么一种针剂,一针下去,人立马对辣味不那么敏感了,那么一旦给俺来一针,俺去四川吃火锅也可以一边吼着“俺不怕不怕辣俺不怕不怕辣”一边狂吃辣粉了!当然,这只是一种很拙劣的假设,如果真这么做,估计这发明可以申请角逐搞笑诺贝尔奖了。
但是如果真是能够开发一种药剂,能够让胃口不好、吃啥都没味道的人立马产生很special的味觉体验——比如一种让人食欲大增的体验。岂不美哉!

至于如何改变,可能会涉及到神经传递通路中多种化学物质的含量,而这种药物就是加强或者削弱这些物质的含量、使其按照某种比例存在。不过这就是药物制剂研究者、生物化学领域的master或者Ph.D们研究滴问题了,俺还是想想怎么把脖子给整舒服点先。

-- jtuki

Sunday, September 21, 2008

视频时代的阵阵盲流

当互联网上充斥着形形色色而又略显单调的文字时,通过超文本传输协议传输的图像惹得人们阵阵欢呼。而当图片渐渐开始泛滥、图片质量和含金量越来越低、传播信息的能力越来越差劲的时候,秉着“用户创造内容”理念的视频分享站点的出现让人为之振奋。

当然,这种所谓的变更对于很多根本性的内容没有任何改变、仅仅是换了身马甲而已。好比一个喜好追逐八卦消息的人,如果不出意外的话,任何时候都还是喜好追逐八卦消息——不管是噱头文字还是惹火图片还是喷血视频,唯一的区别就是在于哪种形式能够提供更多的看八卦消息时的偷窥滴愉悦感。(咳咳,貌似说的比较邪恶了。感觉不像是看八卦而是看H内容了。 囧)换个角度,对于“正儿八经”的使用互联网的用户(当然,这要看“正儿八经”究竟如何定义了),哪种方式更能够为我所用、更能够方便快捷的吸收和找到相关讯息,就仁者见仁智者见智了。毕竟,多一种选择,总比没得选择要好。



在视频逐渐开始弥漫于我们生活的每个角落的过程中,Youtube自然不得不被提到(令人羞愤的是Youtube在大陆没有任何镜像站点、仅仅在tw和hongkong存在镜像,就好比sourceforge在大陆也没有镜像一般、让人觉得不舒服)。良好的分级制度、大量用户的追捧(包括时刻抱着我型我show观念的年轻人、渴望找到一段完美浪漫爱情的宅男宅女、爆笑的教授如何做减法的new-math节目 :D 、科普宣传热衷人士、为无神论和有神论争论不休的人、真人或者动画短片制作者、素食者、最高级的食肉动物、宣传某个产品或技术标准的A公司、攻击或嘲笑A公司的B公司,等等等等)、方便的rating和评价系统、良好的用户体验——这些都是Youtube成功的地方。尽管版权问题曾让Youtube尴尬不已,但是这一直都没有威胁到Youtube的良好口碑和成本收益。

那么除了“用户创造内容”之外呢?很明显,传统的电视节目是另外一块巨大的蛋糕。可是如果电视剧都能够通过互联网唾手可得呢?那就要看这两个乍一看貌似井水不犯河水的阵营中,内容提供商们提供的内容的获取方便程度如何、节目观感体验的差异大小、用户对这种差异的忍耐力如何了。最后,在方便程度上,互联网占了绝对的上风;而忍耐力相对于观感质量的差异大小也占了上风。于是PPLive和PPStream之类的网络电视软件就有了那么大的用户群。

可是这只是早期的传统电视节目搬上互联网时的状况,毕竟,Copyright可不是被素食主义者养大的(尽管他的兄弟Copyleft是被半荤半素人士养大的)。于是,能够同传统电视行业分享经营收益提成、搞好关系(这样才能长久发展),又能够提供较为清晰的互联网电视视频(这样才能吸引用户,毕竟用户是不会管你的视频来源合法与否的,用户真正在乎的只有节目清晰度和丰富程度之类的用户体验)的服务就迫在眉睫了。于是,土豆推出了黑豆,Skype的两个创始人推出了Joost。(当然,两者的技术很不同,不可混在一起谈,但是经营理念倒是很相似、也就混在一起说罢了 囧。)说到这里,当时土豆删掉无数视频的原因各位朋友脑袋里也差不多清晰了(和奥运盛事有关、但也绝对不尽然)。相比起来,优酷就令人看着担心得多(幸亏优酷是生在版权法依旧不太严格的中国,不然恐怕早已尽了阳寿、乘风而去了)——尽管无数明目张胆的违反版权法的视频让人心生爽感,尽管这种仍然处于婴儿发展期的资本积累和技术积累阶段也能够让人理解,然而毕竟难以持久。

不管怎么说,视频编码技术的发展提出了更小的带宽要求、提供了更好的视频质量,服务器端技术的发展提供了更好的服务稳定性(ps. 今天下午delicious暂时不可访问、估计是服务器端宕机了 囧),这些对于我们用户来说都是好消息。毕竟,Youtube推出了使用H.264编码的更加清晰的“用户创造”的视频,Joost和未来全部的P2P网络电视软件(在此也祝愿PPlive和PPStream一把)也都将给我们提供比以往清晰得多的(得益于更先进的编码技术和不断发展的带宽容量)、内容更加丰富(得益于盈利模式的逐渐清晰、同传统电视行业的良好合作)的视频观看体验。

剩下的,就是广大“生活的导演”和电视节目内容提供商如何能够创造出更好的内容了,毕竟,这个才是本质内容所在,也是我们这些用户最为关心的问题。前者的创造力我们不必担心,后者就事关各种体制问题了。但还是那句话,多一种选择,总比没得选择好。咱们都拭目以待吧。 :-)

ps1. 我去年接触到Joost的时候,唯一的感觉就是视频效果很棒,但是缓冲速度简直没法忍受。今年前不久看到Tom集团同Joost联手抢占中国网络电视的份额后,重新下载Joost试用,发现速度几乎已经可以流畅观看了、而且还增加了很多中文节目。对Joost感兴趣的朋友们(不管是对于它使用XULRunner造出的幻影UI富体验效果感兴趣、还是冲着Skype创始人的名气想去凑个热闹瞅一眼),点这里就OK咯。

ps2. 不太清楚Joost之类能够提供五花八门的国外电视节目的互联网软件是否最后能够被ZF接纳(这得看Tom公司的公关能力以及和政府相关部门的关系铁不铁),或许等到大家都冲着国外的电视节目而去瞅一瞅Joost、然而还没过瘾的时候,这个服务咱们就没法享受了 囧。不过那时候Tom公司宣传的目的想必也达到了,反正从Joost简体中文版就可以明显看出、Tom一开始就是注重着手节目本地化的工作,大不了到时候响应ZF号召、撑到市场份额达到一定程度的时候再一举取消国外节目的播放。这就要看PPlive等等对手是否能够抓紧机会开发更好的产品、提供更好的服务了。

ps3. 有人提到Joost是Youtube-Killer的说法,个人觉得很明显是不能成立的,因为曾经所谓的最主要的论据(清晰度的问题)本身就站不住脚。毕竟一个开放的技术被所有人都采用是完全可能的,不存在所谓的壁垒问题,而且两者用户区分度还算明晰。尽管两者的确存在竞争关系,而且两者今后的发展方向都不好说、毕竟都是有投资有技术又都能公关的公司,但是个人觉得龙争虎斗非死即残的情况并不会很快出现,两者共存甚至是最终彼此融合的可能性倒还是蛮大。

ps4. 关于Youtube的High Quality Video,这里提供几个链接——Youtube早期测试高清晰度视频时的消息(需要代理访问、推荐Codeen代理)H.264的wikipedia简介页面如何下载Youtube高清视频这里还有视频讲解)、一个跨平台的能够极下载Youtube普通质量视频的开源软件xVideoServiceThief寻找视频网站中视频真实链接地址的网站KeepVid

--jtuki 2008.9.21

Sunday, August 31, 2008

逻辑的引擎

标题和《逻辑的引擎》同名,可想而知,应该就是一则读书笔记了。

三天时间,伴随着奥运会的进展逐步读完了此书,不得不表示某种程度上的惊叹。不仅仅是对作者娓娓道来的叙事风格表示惊叹(作者Matin Davis本身就是一个知名的数理逻辑学家),而且对电子计算机发展过程中所暗藏的逻辑的力量表示惊叹。刚才下去散步时头脑里将整本书串了一遍,这里就顺着刚才串联起来的一幕幕计算逻辑发展史做一个读书笔记似的记录吧。

-----------------------

莱布尼兹在他十岁那年受到了来自他家庭教师的关于亚里士多德逻辑系统的熏陶,并从此对寻求一种具有概念内涵的符号表极为热衷(从这里我们也不难理解 为何牛顿创建的微积分的符号体系远远落后于莱布尼兹)。莱布尼兹眼中的符号表应该具备这么一种能力——每个符号自身就代表了相应的概念(而并非如ABC等 等仅仅代表一个简单的标记),符号之间能够进行演算、从而能够推导出世间万物(包括数学、自然科学等等)。换句话说,莱布尼兹理想境界中的符号体系不仅能够展示人类当前的全部科学成果和理智的文化内涵,而且符号之间能够按照一定的规则不断演化、从而进一步扩充人类理智的知识领域!这是一个很诱人的设想,与莱布尼兹的乐天派性格密不可分,同时与当时落后的科技成果也有关。现在看来这个理念就显得不免有些幼稚而过于乐观了,但是"莱布尼兹的梦"最终还是激励了无数人,包括20世纪最为顶尖的数学家和逻辑学家哥德尔

尽管莱布尼兹始终对这个设想如此的热衷,但由于受到英皇乔治一世家族谱事件的牵连,他并没有能够对这个设想展开多少实际的努力,而仅仅是依据亚里士多德简单的逻辑体系创建了一个很简陋的、很不完善的符号表,之后就去世了。

-----------------------

布尔的出现或多或少给本书增添了不少熟悉的氛围,毕竟"布尔代数"就连所有高中生都耳熟能详。布尔并不知道莱布尼兹关于符号逻辑体系的设想,而是在两百年后独立创建了布尔代数体系。但布尔依旧没有能够脱离代数的框架,而是在很大程度上模仿了初等代数的规则、从而建立了自己的体系。

关于布尔的叙述中最为有趣的一个部分是关于上帝存在性的证明。布尔给出了五个用自然语言描述的前提,然后使用自己创建的布尔代数体系将其翻译成为严谨的逻辑语句,最后通过符号演算得出结论——上帝是存在的。另外一个有趣的部分则是有关于布尔的小女儿,或许很多人都不知道《牛牤》的作者是谁(正是布尔的小女儿),更少的人知道《牛牤》背后隐藏着一个怎么样的凄惨而浪漫的爱情故事,所以这部分八卦内容读起来格外有趣(尽管只有短短一段话)。

-----------------------

如果说布尔针对莱布尼兹之梦给出了一个不太让人满意的饭前开胃品,那么弗雷格(19世纪最重要的逻辑学家之一)便给出了一顿丰盛的符号逻辑大餐!弗雷格一开始就确信逻辑应该是凌驾于那个时代的所有数学之上,换句话说,弗雷格一开始就决定创建出一个不依靠任何已知的代数学结论的符号逻辑体系(弗雷格心中一直将代数和几何严格的区分开来,尽管后来解析几何的发展模糊了几何同代数的沟壑),并依据这个符号逻辑体系推导出全部的代数学!

弗雷格基本上做到了这一点,不仅仅弥补了亚里士多德布尔等人的逻辑体系的几项重要缺陷,而且第一次将逻辑学自身与其他数学领域区分开来、使逻辑学研究提高到了一个前所未有的高度。他早期开创性的《概念文字》一书也成为了逻辑学发展史上的经典之作。

然而就当弗雷格晚年想要出版他的符号逻辑体系的著作时,却收到了一封来自叫做罗素的年轻人的信,信中提到了一个在弗雷格体系下将会导致的悖论——那个著名的异常集合悖论(俗称"理发师悖论")。这个悖论的出现就好比是一个晴空霹雳——既然结论出错了,那么整个体系所假定的前提必然有误。弗雷格受到这个打击之后几乎是一蹶不振。(话说哥德尔后来提出"不完备性定理"的过程和图灵关于希尔伯特"判定问题"不成立的研究似乎都有些此类形式的悖论的影子,感 觉很奇特。而且罗素提出这个悖论似乎还和哥德尔有些关系,记忆不是太清晰了 囧)

-----------------------

整本书中最为突兀的部分似乎就是康托尔的出现。康托尔关于超限数的研究对数学自身的发展起到了很大的作用,而且在希尔伯特的数学纲领中也占有一席之地,但在本书中似乎并不是那么重要。Davis真正想要借康托尔说明的,正是康托尔在进行超限数研究过程中引入的"对角线方法"(尽管这个方法并非康托尔的首创,但正如纳什将拓扑学中的"不动点原理"引入经济学研究所导致的拓扑学的名声大振一样,康托尔对"对角线方法"的使用同样如此)。这个方法很简洁,但是却是一种极为有效的构造具备新属性的集合的重要手段,后文很多地方都需要利用这种方法(哥德尔那篇终结了希尔伯特纲领的划时代的"形式逻辑系统中不可判定命题"论文就用到了对角线方法,书后面的注释有一长段简化的证明,很有趣;图灵关于"判定问题"不成立的证明也用到了对角线方法,而且还涉及到了图灵机和停机集合等重要的概念)。

康托尔尽管在数学发展史上绝对占有一席之地、家庭生活也很美满,然而,康托尔生前在学术界是备受排挤。克罗内克作为他的老师,最后却成了他的劲敌——由于克罗内克的威望和对康托尔超限数研究的不满,很多大学都不收留康托尔,这个情况间接导致了康托尔晚年显得比较凄惨和落寞(更加直接的原因来自于第一次世界大战对他内心造成的冲击和克罗内克持久的敌意)。而且也正是因为克罗内克的影响,整个德国和欧洲甚至全世界的数学发展都停滞不前,直到他去世为止,这也算是对这个著名数学家和逻辑学家的莫大讽刺了。

-----------------------

希尔伯特是一个幸运而天才的数学家和逻辑学家。他早期的成就来自于对"果尔丹猜想"的证明上,而果尔丹本人也因为对希尔伯特证明的反应而被世人牢记——"哇靠,这不是数学,这是神学!"(前两个字的感叹词是我加上去的 囧)。尽管希尔伯特那时已经具备了一流数学家的能力,然而由于克罗内克的存在(希尔伯特本人对于康托尔所做出的工作是极为赞赏和惊叹的),他早期的生活一直不好过。直到他30岁那年,克罗内克去世了,德国封闭古板的数学环境开始苏醒,希尔伯特本人的生活也逐渐好转、甚至还在同一年找到了一位一生的伴侣并在第二年生了个儿子。

希尔伯特在他事业的巅峰时期提出了23个有待解决的数学问题(这些数学问题中康托尔的超限数得到了明确的肯定,而且明确的将康托尔晚年想要解决的实数连续统问题作为23个问题之一提出),作为20世纪数学家们的挑战。这可以算作是希尔伯特一生中最为辉煌的时刻了,对这些问题的逐步解决也推动了数学和众多学科的发展。

就在希尔伯特的影响力将全世界范围内的数学家和数学学子们逐渐聚集到欧洲的同时,他最心爱的学生外尔却同另外一个叫做布劳威尔的年轻人站在了一起, 试图去建立一个同希尔伯特的数学纲领相左的直觉主义数学体系(具体过程这里就不多所说了,直觉主义是一种更加贴近哲学范畴的数学,因此也被纯粹理性的希尔波特斥为"步克罗内克刻板迂腐的后尘")。但也正是由于直觉主义的影响,使希尔伯特提出了元数学(也叫"证明论")的理念。元数学主张接受布劳威尔的批判,但是声称仅仅使用布劳威尔所能够接受的数学方法推导出整个希尔伯特数学纲领中的全部问题——即著名的"有限性方法推理"!也正是元数学的推行,为哥德尔那篇划时代的论文创造了契机。

-----------------------

提到这里,就不得不说到罗素和怀特海的工作——著名的《数学原理》,一个使用严格的规定和技巧、利用形式逻辑推导出整个数学体系的著作。希尔伯特元数学体系中基本的"有限方法"主要就是基于弗雷格的《概念文字》和这本《数学原理》,特别是《数学原理》一书中所建立的绝对严谨的PM体系,更是让希尔伯特信心十足。

但是,这里却存在一个问题——尽管PM体系的推理是严谨的,但是这个体系的前提是完备的么?换句话说,任何PM体系下的语句是否都可以在PM体系所规定的若干前提下进行推导、从而被证明是真命题或者是假命题?哥德尔这个才华横溢的年轻人对此发起了挑战。几乎没有多长时间,哥德尔就得到了希尔伯特想要的结论——PM体系是完备的。然而,哥德尔却使用了"非有限性方法"——一种被布劳威尔所不齿的、最终被希尔伯特抛弃的方法。正是在这样的情形下,哥德尔 开始思考如何在"有限性方法"、那屈指可数的若干严格的数学方法下一步步得到完备性的证明。

然而令哥德尔自己都感到意外的是,最终的研究却将他引入了一个相反的命题——如果非要使用有限性方法,那么系统的完备性将无法得到证明!换句话说,必然有一个命题,从系统的外部看来是真命题,然而在系统内部却无法得到证明。再换句话说,任何形式逻辑系统(严格来讲是基于自然数的形式逻辑系统,因为哥德尔的证明过程所利用到的编码技术和对角线方法就是基于此)都存在一个不可判定命题——不论是这个命题自身还是这个命题的否命题都无法在此形式逻辑系统内部得到证明。书中有关于简化的PA系统的不可判定命题的证明,主要是利用了自然数编码和对角线方法,叙述逻辑很清晰,非常值得一看。同样值得一提的是,哥德尔为了论文中叙述的方便,特意构造了一种特殊的"算法",能够将自然语言中的推导转换成基本的自然数序列、以此来更加贴近元数学的理念,而这种"算法"几乎就可以被称作人类最早的"解释程序"、而哥德尔所采用的叙述风格也非常贴近现代函数编程的风格!(哥德尔后来还引入了一般递归的概念,是不是感觉很熟悉呢 囧)

哥德尔所做的工作几乎就等于是终结了希尔伯特的元数学梦想。那篇"论《数学原理》及其有关系统的形式不可判定命题"的论文也成了整个20世纪最为经典的论文之一。但是根据作者附注中的说法,元数学当前依然非常活跃,因为虽然哥德尔的论文所针对的形式逻辑系统是普遍的,人们却可以不断构建出更加完备而强壮的系统。哥德尔的理论介绍完毕后,书中关于哥德尔晚年思想(包括灵魂存在性和二元本质论的思想)和生活(妄想症和对医学与现代工程科技的极端不信任)的介绍简直让人动容。这种传记叙事和理论探究相结合的方式也使得本书格外的生动。

-----------------------

其实全书的前六章对形式逻辑的发展演绎的描述,都是为第七章图灵的出现做铺垫。第七章也成了全书名副其实的核心章节(尽管从字数上来看并不是如此 囧)。图灵机很多人都已经有所耳闻了,停机问题与停机集合也是如此。但是恐怕很少有人知道图灵机背后的故事。而此书,就提供了很好的一个供我们来了解图灵其人和他的理论的媒介。

图灵机的出现其实是由于图灵希尔伯特"判定问题"的思考。"判定问题"是力求寻找一种算法,在这个算法下,任何命题都可以在简单的符号逻辑体系下通过有限的方法给推导出来;换句话说,这是一种万能的算法(也可以说是部分满足了"莱布尼兹之梦"的算法)!然而,哥德尔的不完备性定理对希尔伯特纲领造成的强烈冲击使得人们难以再去相信这么一种万能的灵丹妙药般的算法存在,外界的怀疑观点也占了上风。显然,图灵也是持有怀疑态度的,然而同其他激愤而排斥的怀疑论者不同的是,图灵试图利用数学的方法来从根本上严格证明——这个算法不可能存在!

正是基于这种背景,图灵机和停机集合的概念被创建。在此理论基础上,一个特殊的、不属于任何图灵机停机集合的集合被构建出来(构建方式依然是前面已经提到多次的"对角线方法"),而一种"寻求某个自然数是否包含于这个特殊集合之中"的算法则被证明是不存在的!如是,整个"判定问题"便被证明是不可解、不成立的。

然而,这并非咱们所关注的重点,抑或是说这并不是能够引起我们兴奋的最重要因素——最重要的部分是图灵为他所构建的图灵机规划的能力蓝图上!图灵一开始所关注的是某些特殊算法的图灵机实现(即在数学上论证——任何一种算法都可以被构建成一个图灵机),然而渐渐的,他就开始思考——是否存在那么一种通用的图灵机,只要将通用算法分解为更多的简单步骤,这台图灵机就能够处理所有的通用算法呢?最后他成功了,不仅说明了这是绝对可行的,而且还提出了程序和数据不加以分割的设计理念。这也为后来通用计算机的研制铺平了理论上的道路。

冯诺依曼的计算机结构其实便是基于图灵通用机的模型,而冯诺依曼这个虚荣心十足的数学天才只不过是利用了一些手段使得他的名字最终名闻遐迩,尽管当前对于他的实际贡献大小已经有了普遍的观点——他只不过是基于图灵的模型构建了EDVAC这台变种的通用图灵机而已。

-----------------------

最后两章几乎就没有涉及到技术层面上较为细致的讨论了,更多的是关于第二次世界大战期间世界范围内通用计算机研究的进展。包括第一台ENIAC(实际上,ENIAC仅仅是一台逻辑理念模糊的计算机器而已,然而由于18000根真空管同时工作的工程奇迹,这台计算机获得了无比崇高的名誉)、冯诺依曼参与的EDVAC(基于图灵通用机模型构造的一个变种)、图灵自己规划的ACE机器图纸(图灵的能力在第二次世界大战中完全体现了出来,包括密码破译机器的建造和ACE的规划等)、图灵通用机的物理忠实体现Pilot ACE等等。

最后一章涉及到了人工智能领域,主要是针对"机器是否能够拥有智能"的反对声音提出了异议——对塞尔的"机器的绝对无意识论"的怀疑,和对彭罗斯 (对霍金比较熟悉的人一定不会对彭罗斯这个名字感到陌生,也应该不会对《皇帝新脑》这本书感到陌生,这是一本彭罗斯在自己并非很擅长的非物理学领域的一本论著,但是观点很具有蛊惑力)引入哥德尔的不完备性定理来论证"机器智能不能存在"的否定(主要还是图灵一开始就指明了的观点——机器自身也会犯错,而歌 德尔的不完备定理是针对一个充斥着真理的形式体系)。

-----------------------

"我们必须知道,我们终将知道"。这是希尔伯特的墓志铭,也是在他得知哥德尔毁灭性的不完备性定理前、在一次数学大会上的演讲结束辞。我想,这句话用在此书末尾必定是合适的。而当我们看到莱布尼兹的头脑被用在了编辑家族谱、了解到康托尔由于克罗内克的排挤最终郁郁而终、知道哥德尔在纳粹德国占领地奥地利遭到激进学生的殴打而不得不决定迁居美国、发现图灵最后竟然是在一个自己为之做出了无数贡献然而却得不到承认的国家因为同性恋问题被发现而服毒自杀时,我们又能够明白些什么呢?

-- by jtuki