貌似我的寒假终于开始了,昨晚11点多的时候终于把程序编译成功,发给了素未谋面的赵博士。 这次的程序颇有威客的感觉,一个老师找到我问能不能帮他朋友做个程序,那还是10月的时候,当时正想找些东西来做做,就答应了,接到“任务书”,哇,眼花缭乱,是一个模拟蛋白酶剪切蛋白序列的程序,其实也就是字符串处理,稍想了一下,就接下来了。 字符串处理本来是python阿perl阿这些的强项,无奈太不熟悉,只好操起还算顺手的C++和STL。记得写主算法的引擎大概用了两天来琢磨(也不是全部两天阿,要上课),一个星期就把命令行版本做出来了,然后跟赵博士通了几趟email,也算通过测试了,接下来搞定封装。 当时有点痴迷Linux,想趁这个机会学一下GTK这个“跨平台”的框架,结果接下来一个多月都是在看gtk的文档和捣腾例子程序,为了赶潮流,用最新的glade3啊GtkBuild啊来实现(最新常常意味着资料的不详细和奇怪问题比较多),博客之前的几篇笔记就是那时候的产物。逐渐地,构建界面的程序已经过千行了,而之前C++写的算法不到500行,虽然这个比例还不算悬殊,但也明白到为什么程序员干的是体力活,程序员就是民工。 由于还需要移植到Win平台,交叉编译是在太折腾人了,最后屈服,在vbox里面装了个精简xp用mingw来编,最后程序只有几百K,却要挎着一堆8M多的运行库,全部用rar压缩了还接近3M。(自——我安慰一下,.net框架的运行时库好几百M、java也好几十M……不过大概如果用MFC的话,200多K的文件就搞定了)
前天在电影院看赤壁下,诸葛亮测天象时很认真的说:“以我多年种田的经验来看……”,在几要喷血之际,我想起的是这个学期教《操作系统》的金老师。 老金给我的第一印象真的很民工,颇黑的肤色加上圆钝的脸型,还有工作服样的黯蓝色的衬衫,完全通过ISO2008的民工标准,不过一节课下来,对其敬仰十分,至少他在课堂电脑上一番演示下来,说“你们没几个人真正会用Windows”的话没人敢不同意,比之前有着一堆名涵的xx教授xx优秀教师,一边教着C++,却在课堂上连一段小程序都编译不过去的老师有quality得多…… 《操作系统》本来是挺枯燥的课程,太多抽象的理论了,但在金老师这里,很多理论变得生动和真实,然后回过头去看课本,你真的得怀疑书本的作者是不是在故弄玄虚,为了宣示自己而把书写得腾云驾雾。 数据传送的控制方式——幼儿园老师要给每个小朋友发三颗糖。 程序控制方式:老师叫1号小朋友上来,给一颗糖,问吃完没,没,吃吧,吃完没,吃吧,循环直到吃完,然后给第二颗,继续问到其吃完,再第三颗,完了后叫2号小朋友,如此循环到全班吃完。 中断控制方式:老师说:“需要吃糖的小朋友举手。”给举手的小朋友发糖,吃完了再举手。 DMA控制方式:老师:“班长过来,把糖拿下去发给大家,每人三颗,不准多不准少。” 管道控制方式:老师:“班长过来,把糖拿去,给要吃糖的人发糖,他要多少或者你爱给多少就多少。”
什么是代码?什么是程序? 上了两年多的大学计算机专业,现在看这问题,实在感慨。 代码也许是书上的一段文字,程序也许是磁盘上的一个文件,老师们在给你讲述它的原理,它的结构,却从未提及它的本质。程序怎么出来的?从代码编译出来的。代码怎么出来的?人写出来的。人怎么会写代码?想出来的。思想是怎么出来的?这...... 程序的本质,是人的创造力,也就是那所谓1%的灵感。这里有个很哲学的问题,貌似课本的说法是,量变会引起质变,而我得提醒,“引起”的意思是“可能会,可能不会,并不一定会”。“程序 = 算法 + 数据结构”这个说法,很明显地低估了等号左边的重量。 然而反观我们的高等教育,从一段代码里面挖掉几行,让你填空,瞧一瞧上下文,哦,有些地方差不多的,把语句抄过来,好,编译通过,实验课完了,回去写实验报告吧,下星期交。 原来现在的大学教育就是低能儿童智力开发。 我想,即使让学生们自己去开发个人品计算器、人名打架器,学生们的收获也要比啃上那几本砖头书多,至少他们知道自己能够创造东西,而不是只会学东西。 PS:《偷天换日》(The Italian Job)电影里有这么一个人,他抢了别人的金子,却不知道如何去构造自己的梦想,买到了别人想要的一切,却不知道自己想要什么,我想,这是一个人最大的悲剧。不是说,知识也是财富么,如果缺乏创造能力,即使占有再多的知识,又有何用呢?
Here's an article I wrote several days before, posted in seo-dic.com.cn, and now posted here as the first writings. 作者:PT SWing from pentie#gmail.com 近年来Linux逐渐流行,不论是IT职场要求,还是前沿IT新闻,都逐渐把Linux作为关键词。N多在自己电脑上尝试过Linux系统的小白们 很郁 闷,这么复杂这么难用的操作系统何以热得起来?易用性、可用性拍马都比不上Windows……都说外行看热闹,内行看门道。 Linux热起来的原因?开源。 2008年数码产品市场的焦点,是MID。NetBook、Tablet这些的流行,甚至是Intel这样的厂商都始料不及的,华硕的Eee系列产 品因此 大赚一翻,N多别的厂商下半年才开始屁颠屁颠的跟着来分一杯羹。而微软的Vista因为对硬件要求过高,大失NetBook市场而成为最失败的产品 (Vista的改进很多是好的,可惜在市场上输给了XP,反遭娘家的遗弃)。相反,Eee PC中预装的Ubuntu Linux火热起来。 在 这一切的背后,是“开源”。开源不意味着劳动成果拱手让人,这是小农思想,相反,开源意味着更大的利润,更大的市场。07年以来,MID的市场打开,新概 念的硬件层出不穷,面对巨大市场的需求,硬件市场的潜力就像无底洞。然而硬件的变化意味着软件必须要跟随,如果软件跟不上,硬件的发展会受到非常尴的束 缚。 微软凭着Windows在个人PC上的绝对地位,对这些似乎不为所动,虽然有Win CE,但由于所依赖的硬件方案缺乏灵活性,市场占有率多年来一直有限。与其说微软不屑于MID市场,不如说他太笨重,为了保持兼容性,一系列的庞大的产品 线使他难以动弹,没法迅速开发出产品来适应瞬间万变的硬件需求。 果然,市场也没有选择微软。 苹果iPhone从07年6 月上市至今,凭着多点触摸的概念席卷全球,在一年的时间内把在手机操作系统市场把混了多年的Win CE踢了下去。我们可以看到微软在Windows产品线上是多么的走投无路了。从长远的眼光来看,微软的选择只有两个,一是开源,二是死去。现在来看两个 选择似乎都不可能,虽然很多10年前看来不可能的事情今天都发生了。所有这些有待时间去考证了。 而Linux则钻了这个空档,因为开源, 硬件厂商完全掌握自主开发权,不论硬件怎么变,只需要组织一个团队来开发,就可以适时推出适应市场需求的产品。Google更是开了这个头,通过自己的网 络服务,开发出的Android的前端服务,并开源出去,厂商只需构建好硬件虚拟层,将Android装入自己的硬件,便可借Google的大牌子去销售 了。 另外一个例子就是,Nokia花了4亿美元收购Symbian。难道就是为了把开发权把握在自己手中?那Nokia花的钱也可够冤枉 的,Nokia作为老客户,Psion对Nokia一直都千依百顺,哪用多掏钱。而Nokia心里则精着,在今后强烈的硬件需求下,操作系统的开发如果依 然掌握在一两家公司手里,只会阻挡硬件行业的发展,挡住自己发展的路线,趁早把Symbian平台买回来,待时机成熟,一码放出去,开源,让兴高采烈的追 随者跟着自己的屁股走,自己就搭上硬件发展的趋势,继续当老大。 操作系统作为联系硬件和软件的关键纽带,IT业界内,谁得了操作系统,谁就得到市场。10多年以来,在个人电脑上微软为我们充分演绎了这个结论。然而,如今市场显示,个人电脑市场早已饱和,甚至开始萎缩,而微软,成也桌面,败也桌面,即使技术再宏厚,失了市场就得死去。 把Linux看作一个操作系统,一般桌面用户对其“一大堆杂乱的发行版”颇为诟病,但如果把Linux看成一堆等着各个厂商来做开发的代码,那它有 [...]
本文章最后一次修订/更新时间:2008-10-28 22:41 引子 古今之成大事业、大学问者,必经过三种之境界。“昨夜西风凋碧树,独上高楼,望尽天涯路”,此第一境也。“衣带渐宽终不悔,为伊消得人憔悴”,此第二境也。“众里寻他千百度,回头蓦见,那人正在灯火阑珊处”,此第三境也。 ——王国维《人间词话》 关于Linux,笔者绝不敢自认“大事业者”、“大学问家”,仅乃Ubuntu的一位小小用户。自Ubuntu Gutsy Gibbon (7.10)发布至今,笔者断断续续地接触了Linux一年,到后半年才真正在“使用”,期间几多波折,还真非“三境”所不能诉述啊! “独上高楼,望尽天涯路” 笔者”脑龄“已近十载,从Win95、98到当今的XP、Vista,无不捉摸了透了每个角落。当然,“捉摸”指的只是随兴漫游,而非MCSE那样的专业级学习,要知道,刚刚接触Windows时,笔者还是10多岁的小孩子。 明 察秋毫从来都是小孩子的强项,通过这样的乱碰乱撞,很多知识如文件树、文件格式等也就无师自通了,再经过《电脑报》、《电脑爱好者》里面一些“旁门左道” 的点拨,俨然一副“高手”模样。后来渐渐认识到,依靠一些“xx优化“的软件不可能对水平有什么提高。于是研读注册表,搞了好半天,才发现不可能记住微软 定下的这么多奇怪键值,一转头,全忘光了。更有段时间收集《电脑报》的“专家坐堂“栏目,可渐渐发现专家常常是忽悠人的代名词,很多情况不是他们说的解决 就解决的,有时突然来个蓝屏,上面的提示信息估计只有神仙才看得懂,最后得出结论,Windows出问题了,重装是最好的解决办法。 随着 “番茄花园”之类的白痴级系统安装碟流行开来,“高手”已经没有多少价值了,自己也想到该学些什么东西。大学里面进了计算机专业,一开学就C语言,数组指 针指针数组、结构链表递归霎时让我晕头转向,接窘而来更有C++的类模板继承重载,捣腾了一年,好像除了会在VC6的窗口里面敲一些鬼画符,就没多少别的 进展了。 看着在宿舍里沉迷在花花碌碌的网游当中的同学们,自己虽然无意同流,但常常迷惘自己该做些什么。虽然参与了学校的ACM编程小 组,半年里也拿下了几十题,但始终觉得在很多实际应用面前依然束手无策,比如说,在学校里面盛流行的U盘autorun病毒,刚开始时候还可以操起 ntsd之流搞定,07年以来注入技术开始泛滥,病毒常常在系统里面有影无形,更感染所有文件,重装系统也难以避免,甚至修改锁定硬盘引导,让你想重装都 没门。曾经期待一个好的杀毒软件,然而看到的都是“被毒杀的软件”,在病毒面前瞬间灰飞烟灭的降低系统效能的垃圾程序。虽然自己“有良好的电脑使用习惯 “,类似的情况甚少发生,但如果要解决这些问题,除了重装,也就想不出其他法子,唉,XP。 尝试过新出的Vista,据说增强了安全性,我甚至专门为此升级了CPU和内存,然而它始终保持老态龙钟的慢吞吞让我颇为光火,一下子格掉换回XP……这下真的要迷惘了…… “衣带渐宽终不悔,为伊消得人憔悴” Ubuntu 这个名词逐进入视野,同时看了偶像Nelson Mandela对Ubuntu的哲学级解释,激动地下载了Gutsy Gibbon,分区、安装,接下来的不是想象中的一片光明,而是一个花屏死机的大便一样颜色的桌面。把捣腾Windows的本事拿出来,格式化,再重装, 依然死机花屏,几天内如此反复数次,一怒之下把刻录的安装盘往阳台外飞了出去。 不知道隔了多久,继续受到UB新闻的感染,再次尝试 Ubuntu,几番折腾下来,原来是主板的设计问题,需要关闭CPU的C&Q支持才不花屏。进入UB桌面时候那个激动阿,开了N多浏览器窗口,同 时对着n个配置文章,一步一步地跟着别人的指导走,虽然不多懂得其意思,不过常常也有豁然开朗的感受。也偶有恼火的地方,比如对用apt同时只能安装一个 软件很不解。 Ub的路注定是崎岖的,Gutsy Gibbon在笔者的机器上脾气甚大,用着用着,可能突然点击某个地方整个屏幕就定住了。刚开始的时候还不在意,如此几次后就郁闷了,都说Linux稳 定,怎么这么容易死机!后来看到可以按Ctrl+Alt+BackSapce重启X,有时倒凑效,但是刚才做的工作全没了,而更多的时候按了之后直接黑 屏,没任何反应,只得重启。使用Eva上QQ,上着上着程序就黑了,进程僵死;Wine个QQ,满是乱码,打不了字,同样很自动化地不定时退出;连输入法 scim,经常出错,遍地开花,打哪里错哪里;用OOo打开个文档,格式一塌糊涂;看个电影,说要下载解码器,然后告诉我下载失败……好不容易学会换源下 载好了,打开的Mp3全是乱码……为了搞定这些,逃了n多课折腾了一个星期,终于忍受不住那个莫名其妙的死机而把Ubuntu抛弃在一边。 后来在新闻看到,Nvidia的Linux显卡驱动更新到了169,几番波折后学会gdm stop,在控制台下安装了显卡驱动的Module,死机的问题才好了一些,此时,距离Hardy Heron(8.04)的发布不远了。 “众里寻他千百度,回头蓦见,那人正在灯火阑珊处” 用上Hardy Heron后,整个平台开始稳定下来,渐渐地,学会安装deb,学会make,懂得了用户文件权限,熟悉了编辑配置文件,把wine配置得稳稳当当地开着 QQ看着网页……深入后发现,Linux世界其实是很广阔的一片天地,很多东西可以自己来DIY,按着自己的意愿来支配,而且系统响应极快,也许这就是自 己想要的操作系统…… 习惯自己动手动脑之后,开始明白一些操作系统的概念,认识到其实Windows没有自己想的那么差,只是自己——还有大多数的人并不会使用。Linux也 并非如谣传中那么安全,如果所有人都使用root账户,一个脚本里面一句rm -r /就可以破坏整个系统。从这个层面看,Linux比Windows还脆弱。 尝试使用Linux里面的理念在虚拟机里面配置了一下XP,使用受限账户user,停用administrator,另外建一管理员,配置各个盘符里面的 NTFS权限。找来几个病毒样本,任你怎么按仅提示权限不足,这下我乐了,看吧,XP安全裸奔,而丝毫不影响一般使用,唯一的麻烦只是安装某些软件同样报 [...]
Page optimized by WP Minify WordPress Plugin