Shell's Home

Jun 19, 2009 - 1 minute read

IT市场统计分析

最近在看简历,根据简历和自己的经验总结一些东西出来。管窥蠡测一家之言,权给新手做个参考吧。 1.行业分类 从统计上看,web开发是人数最多的行业,占大约56%。其次是嵌入式市场,大约占18%。erp市场也差不多,18%。剩余的不足8%。 2.性别分布 众所周知,程序员是男性的职业,但是出乎大家意料的,程序员中有14%是女性(纯程序员,不包括美工)。不过根据贝壳的人工观察,其中只有一人的工作时间超过5年,多数都是3年不到的新人。看来女性程序员怀孕后转业的情况非常严重啊。 3.年龄分布 以大学毕业为基准水准计算,当前程序员的最低出生日期应当是1987。贝壳按照这个进行了统计,得出结果如下。 1983年17%,1984年8%,1985年14%,1986年16%,是人数最多的4年。低于1987年的占11%,1980到1982年间的人数占20%,高于1979年的占14%。 4.水准分类 水准是一个很难界定的指标,贝壳采用五级分类法,简单对其分类。大多数情况下,级和级之间没有明确的定界。 0.是完全没有任何技术背景和资历的人士,说白了就根本不是IT人。大约占8%。 1.初步具备IT行业人员的背景知识,能够做一些简单的软件产品,有跟随1-2个项目的经验。但是无法承担独立的项目,无法解决比较复杂的问题。在这个层次上,程序员大多数时候根本不知道怎么做,以及该做什么,始终处于知识缺乏的状态。业界俗称,小白。大约占50%。 2.具有标准职业从业人员所需要的知识(当然,具体是什么知识视行业和语言而定),跟随过多个项目,其中有2-3个大型项目。可能领导过1-2个项目,但是不清楚项目管理的概念和专业知识。这个级别的人在总体人数中最多,大多数人在工作1-3年后都可以达到这个水准。可以独立的解决问题,和客户交流,完成软件生产的整个流程。在这个层次上,程序员大多数时候都知道怎么做。主要的问题在于多数人还不知道如何将这个过程简约成自己的标准过程。一般来说,这就是标准程序员的典范。大约占32%。 3.精通C++,熟悉windows和linux系统管理和系统底层,掌握至少一门高级语言。熟悉项目流程和项目管理的概念和专业知识,能够带领团队协作完成大型项目。能够独立建模,抽象问题,并通过算法解决问题。具备独立和客户沟通,协调解决问题的能力。一般有多个项目经验,曾经领导团队完成2-3个大型项目。如果你天分不错,运气不错,又够勤奋,大概在工作3-5年后会达到这个水准。在这个层面上,算法和标准化过程这些书本上的东西首次超过了如何做,做什么,成为程序员的首要问题。这个层级的人数也比较多,能够胜任项目经理的职位。大约占8%。 4.精通专属领域的多项核心技术,有广泛的业界联系,专属领域有一定的知名度。研发过一项或几项领域中的关键技术,对领域的发展做出过一定贡献。要到到这个层次无法依靠时间的积累,很大程度是天分,运气。在这个层次上,解决问题已经不是一个问题。由于基本能解决领域内的多数问题,因此发现需要解决什么,和创造性的解决这些问题成为这个层次最主要的问题。这个层次的人基本很少,一个子领域中全国不会超过百人。大约占2%。 5.曾经研发过改变世界的技术。这种人多数你听过,运气好这辈子能见到一个。大约占1%不到。贝壳当前的水准在3上下浮动,估计奋斗一下,这辈子能够达到4的层次。至于5,这辈子不指望了。 5.工资分布 大多数情况下,工资和工龄都是挂钩的。根据贝壳的统计,工资和年龄线性拟合后得到的一阶近似方程为:y=-1.089*(x-1990.50)。带入贝壳的年龄,y=8.16。恩,贝壳当前的工资还是不错的,比平均值高。 6.语言分类 由于简历是python的职位,因此python的比例异乎寻常的高,无法作为可用结果。贝壳按照经验比例适当缩小了python所占比重,得到一个估计值。作为统计数据的修正,并列于下。根据贝壳的统计,使用java的人人数最多,占了38%,修正大约是40%。使用微软系列开发语言/工具的人其次,28%上下,修正大约是30%。使用php的人再次之,12%,修正大约15%。最后是使用C++的,8%,修正10%。真正使用python和其他动态语言的人,修正后大约是5%。由于职位不涉及前台,因此前台语言/技能不计入统计。 最后谈几个感想。 1.队伍水准不成比例 根据贝壳的经验,在多数的项目团队中,推荐的岗位配比是:1位项目经理,2位程序员,1位前台工程师,1位DBA,2位测试。如果可以,最好还有一个专门的文档和行政。这个人数配置适用于6-12人的团队管理,如果人数不足,可以减少文档和程序员。如果人数有多,可以增加2位程序员,1位前台工程师,1位测试。其中程序员、前台工程师的配比要基本保持2:1不变,程序员、前台加DBA对测试的比例要基本保持2:1不变。这可以说是项目团队的黄金比例,比例失调往往容易造成窝工或工作不完整,质量有瑕疵。 但是需要看到,这样的话要求2位达到3这个层级的程序员(PM和DBA),但是最高只能带4名2这个层级的程序员。这个和当前的2,3层次的程序员的比例4:1严重不匹配。因此造成一个现象,3这个级别的程序员不足,1这个级别的程序员太多。 根据孟岩的blog,07-08年的IT从业人员大约是500-600万人,其中程序员大约100-130万。每年的IT行业毕业生大约是70-100万,其中能进入程序员领域工作的大约20万人。当然,他的blog是一年多前的,而且说的是毕业生就业问题。但是根据全球IT形势,我估计这几年里面程序员队伍规模即使增长也有限,不会超过150万人。也就是说,大约一年之内就要淘汰10%-20%的从业人员。根据上面的分布,贝壳猜想多数人都是倒在了2到3的路上。 2.小白丛生,项目倒霉 上面一个问题带来的麻烦是,由于小白的人数太高,因此价格太低。其中不免一些人有非常好的测试表现。这要一分为二的看,部分人是真有这个水准的,以小白的价格雇用到这些人是非常合算的(当然最多一年,不会太久)。但是多数人仅仅是表现不错而已,这些人工资低测试表现高,很容易进入项目。而进入项目后,一旦担任关键职务,后患无穷。实际上,整个团队中,水准1的小白可以担任的职位只有测试(而且必须至少要有一个是真的专业测试)和文档。但是仅这两个职位而言,远远达不到培养新人的目地。这也是很多小白倒在了达到普通程序员水准路上的原因。 更麻烦的是,如果突然招聘,很容易发生招到的程序员价格都偏高,而且很多都没定下来就先和其他公司签约了。这时候往往只有小白可以用,项目情况可想而知。 理论上可以开放一些职位旁观项目,实际上也有人这么做的。但是旁观项目是一个非常麻烦的事情。首先项目的旁观者不但对项目没有正面贡献,反而会拖慢进度(因为要占用其他人时间进行沟通),因此旁观职位的工资应当是负数。而且多数公司项目第一,赶都来不及的时候谁会开放旁观职位。更不说光在项目中旁观是很难确实体会到那个职位上要面对的问题的。 3.项目经理的条件就是要做过项目 项目经理是一个非常专业的角色,这个职位和技术总监(或者叫核心程序员,高级程序员)、DBA并称是一个团队的三大核心。核心程序员和DBA可以慢慢学,但是项目经理是学不出来的。实际上,合格项目经理的必要条件就是带过一两个大型项目。问题是,如果想成为项目经理,你找谁让你带项目呢? 一种方法是跟随一两个项目,带一两个小项目,学整套的项目管理方法论,最后由一个成熟的项目经理指导你完成首个项目。但是实话说,这种方法只有对大公司有效,而且还的看你的运气。小公司里面哪里弄那么多人开两个团队?(原本的项目经理一个,你一个,这要35人以上的公司规模呢)大公司则是牛人太多,轮也不一定轮到你头上。 另一种方法是赶鸭子上架,等你毁过一两个项目后,也就学的差不多了。 实际上,国内由于PM(真正的PM,而不是挂这个名头的程序员或者其他捣浆糊人士)不足,而公司规模又不足,足了也没有培养人才的兴趣。因此大部分PM都是通过后一个途径培养出来的—— 4.语言生态扎堆 我们开放的职位叫做python程序员,可我的邮箱里面有一半上下的人都是java和C#的资历(我不看他会的语言,而是看他资历的),其中真正有python资历的人十不足一。实际上国内大部分的人都在学java和C#,做web和erp程序开发,大部分的小白其实扎堆在这里。真正成为3,4这个层级人才的,java/C#/C++/python的比例其实差不多,很接近。 实际上这和当前的语言生态有关。到也不是说这个生态有问题,而是这是当前现状市场化配置的必然结果。大量的小白(6成以上)集中到6成上下的低端web、erp和嵌入市场。这些市场的目标需求不复杂,没有重大的技术问题,服务器压力不大,因此小白足以应付。既然是小白,那就需要选择一种使用人数最多的语言(因为最好找人)。于是两大语言集团,java和ms系列的asp,asp.net就成为必然选择。 web行业和erp行业的几乎全是ms系列和java系列的语言,而嵌入式里面则大多数是C++(当然,也有j2me,不过那不完全输入嵌入式开发的领域,很多应当属于游戏领域),这个是受限于嵌入式本身的技术特点。C++本身也有写的好和写的差之分,但是由于程序员要控制更多的东西,因此差的程序员很容易被识别出来,也更难在行业中生存。因此嵌入式行业的总体开发成本比web行业要高。 在我的行业中,缺少游戏行业的分析。这主要是因为我的简历里面几乎没有游戏行业的从业人员。我无法解释这个现象的成因,也许游戏正在从软件行业中独立出去,成为一门独立的体系。

Jun 10, 2009 - 1 minute read

你要哪种钱?

今天和几个人坐在一起的时候,突然听到对面的人叫我。 贝壳,快借我点钱。 贝壳刚刚有点瞌睡,有点迷糊。往左看看,星际。往右看看,魔兽。张嘴―― ――你要哪种钱? 人民币。

Jun 1, 2009 - 1 minute read

电脑操作与人机工程学

贝壳大学念的是工业工程,毕业导师就是人机工程学方向的,贝壳的人机工程论文就是按钮的大小和操作效率。因此,今天贝壳罕见的回归本专业,谈谈电脑操作的速度问题。 首先一点就是,无节制的优化速度是万恶之源。为什么?道理和优化程序一样。你实施一个优化必定有一定成本和代价,为了一个一个月进行一次,一次三秒钟的操 作,进行一次优化。假定你搞定优化用了半个小时——一些情况下的却需要这么长时间。这样你需要100年才能收回你的投资,显然,这很愚蠢。 那么,什么是优化,为什么要优化? 操作优化,指的是你利用一些专业和非专业的方法,将日常最常用的操作简化。减少操作次数,减少操作时间,减少精力集中的负担等等。最常见的方法是“按键精 灵”或者是快捷键。而之所以要进行优化,则是因为——我懒——俗话说,只有懒人才是好程序员。也许有人会想,那设计者为什么不设计的效率高一些?拜托朋 友,你也讲讲道理。设计者怎么知道你是要经常复制还是要经常剪切?于是他只能假定你经常剪切(或者复制)。如果不幸,你恰恰相反。也许你就需要优化,也许 贝壳的文章就能给你的工作提供非常大的便利。 那么贝壳下面逐个讲解贝壳碰到的一些优化方法和范例,具体的运行则要靠大家的发挥,没有一定的模式。如果你觉得你的电脑操作工作平淡无聊,那就说明你需要 优化了。每种优化方法需要一定的专业知识配合,贝壳会给出评价。评价有三种,适合普通人,就是说一般稍微会一些电脑的人,可以根据网络上的讲解来使用。适 合专业用户,指用电脑3年上下,电脑比较熟练的人,可以经过试验配置成功。还有疯子专用,指这个方法基本就和您无缘,除非您正好是程序员或者疯子。 首先我们从最基本的开始,鼠标,按键,快捷键,快捷键排位。这个方法适用于普通人,但是下面一段是比较专业的论述,不感兴趣的可以跳过。 鼠标和键盘是我们最常用的输入工具,而根据贝壳的人机工程论文,鼠标的输入效率低于按键。但是要注意,这个结论并不永远成立。对于某些图形操作,尤其是高 精度操作来说,键盘上可以操控的方法变成上下左右四个键,效率大大降低。如果使用其他键来辅助,这不是人类能接受的方法,疯子也不行。此时使用鼠标比键盘 效率高多了。键盘输入快的根本原因在于一般人精神集中后,一秒可以按三个键——至少也有两个。而无论精神怎集中,区域怎么大,要输入一个点击至少要一秒。 按照信息量计算,键盘的可用信息量要比鼠标大一个量级。然而,除了输入文字,键盘并不好用。根本原因在于鼠标的模式是阅读-选择,而键盘是记忆。因此,键 盘操作是用户不友好的。 通常来说,我们可以用键来定义一些常用功能,这样会加速操作。通常而言,这个被称为快捷键。例如,Atl+Tab是切换窗口,相信大多数人都知道这个热 键。这个热键好用的根本原因在于快速的在两个窗口见切换——如果用鼠标会累到死。我们可以记忆一些常用热键来加速,毕竟之所以定义常用热键是有意义的。例 如Atl+F4的关闭程序,结合windows使用可以以<win>,Atl+F4,U的顺序来关机。整个操作只要一秒,单手就可以,真是酷 到不行。Atl+Space可以唤出系统菜单,因此Atl+Space,X可以最大化,Atl+Space,N可以最小化,这两个也可以单手操作。 单手操作热键的意义在于免去频繁的键盘/鼠标切换。当你需要双手执行热键的时候,你需要半秒将右手从鼠标上移动到键盘上,再花半秒移动回去。这样就平白多 了一秒的时间——这还是高手的时间,普通人更长。对于加速操作来说,这么移来移去很没有意义。而键盘/鼠标的配合才是操作电脑的理想境界。你可以在资源管 理器里面试试一个操作,在一个文件夹内选择一些文件复制到另外一个文件夹。这是贝壳最熟悉的配合动作——因为太频繁了。首先点中头一个文件,按下 Shift点最后一个。放开键盘鼠标,按下Ctrl+C。点击目标目录,按下Ctrl+V。速度快的原因在于,Shift放开后,按下Ctrl+C的动作 基本是下意识的。这样鼠标可以轻松的去找目标——同步的。按下Ctrl+V也是下意识的,所以整个动作的时间序列是——点头一个文件,点最后一个文件,点 目标。当然,拖曳选中区域,拖曳到目标目录一样可以,而且是单手鼠标操作。只是这样一来,首先你无法添加选择零散目录——用Ctrl键就可以做到。其次如 果不小心在移动的时候松开左键,就会触发麻烦的同文件夹文件复制。因此上述方法兼顾了稳定性和速度。 也许你觉得无聊,不就是文件复制么?我点右键也可以啊。问题是,如果点击右键,再点选菜单,至少需要1.5秒的时间。比这个方法至少慢了1秒。如果你每天的工作需要整理大量的文件,我想你不会高兴遇到这个问题的。当然,如果你基本不复制文件,好吧,当我没说过。 更多的时候,我们需要定位目录中的某个文件或者文件夹。对此,你可以输入文件的头两个字母。这时候光标会被带到符合这两个字母的头个文件——我想离你的目标不会太远了吧。这个同样是双手配合操作。

May 26, 2009 - 1 minute read

用简体还是繁体

作为一个使用了24年以上简体(不要怀疑,贝壳三岁开始学写字的),并且暂时还要继续用下去的人来说,这几乎是一个不用问的问题。但是,最近,贝壳考虑是 否应当改用繁体,否则真有成为文盲的可能。何为文盲呢?中国规范常用字无法写出80%以上的,我觉得就应该算做文盲了。也许这些新时代的文盲可能具有非常 高的学历,甚至会是博士。但是5个字里就有一个字写不出,不是文盲是什么? 不过最近的汉字简化修改方案,似乎有把贝壳往文盲上推的嫌疑。凡能读这篇文章的人应当都知道,所谓的汉字简正之争。简正之争,由一个汉字方案的学术争议, 有逐渐演变为一个中国,谁是中国的国家和民族之争的现象。但是,无论谁是最终标准,应当都具备一个国际语言的基础特性,即一致性。例如汉字就应该是汉字, 不能今年是汉,明年就变成了�,再下去又是不知道别的什么。中文固然因为语言使用区域非常广泛有非常多的别字别音,而且在某些地区还是主流,但在规范上应 当兼容扩充,而非来回修改。例如山东地区,打车叫打个的(de1,一声)。打的这个词按照贝壳所见到人的叙述,应当来自南方,香港和广州(当然,也可能因 为和贝壳讲的人本人就是香港人的关系)。原来是打的士(di1shi4),的士的读音在广东话中非常类似taxi,后者在英文中是滑行的意思,比拟出租在 街上四处溜达,寻找乘客。中国在改革开放后才有了taxi,因此叫法上都学香港,才有了的士,打的,的说法。这个不在规范之内,应当考虑统一的问题。否则 若是一个香港老板跑到山东,当地人秉承圣人之乡的理念,非常热情好客的说:我给您拦个的(de1)吧。岂不笑掉人家的大牙? 汉字规范之争其实涉及到非常多的政治和经济层面的问题,但是和小老百姓关系最大的是一致性。诸位可以想想,若是您学了30多年字,一朝之间2成的字突然被 人宣布不会是这么写了。您从一个正常人就猛的变成了文盲,换您您干么?为什么台湾反对简体字?因为一旦简体字推行,社会上多数人比文盲更加文盲——他们连 读都不会,要重上六年小学。您想想,换您您干么?现在和台湾还没较上劲,咱们自己先和自己较上了。文字要改,大改还是小改?如果是小改还好,如果大修,无 疑是直接宣判了贝壳的文盲。这种情况下,还不如直接学繁体字的好。 说到学繁体字,到也不是贝壳信口开河。而是当下,会电脑的人学繁体字的成本真的不高。你仔细想想,你到现在总共用笔写过多少字呢?反正今年过年到现在,贝 壳拿笔就写过三个字,自己的名字。凡是吃饭刷卡签合同,必定要写这三个字,其他都不会写了。贝壳又长期挂在网络上看各种资料,外加高中时期还特别研究了前 秦散文,三国志(不是三国演义!)。因此简体繁体都能看。现在换用繁体,无法就是输入法切换一下,把输出简体的转换为输出繁体。对于开源输入法而言,简单 到只是码表转换。而后学会写自己的名字,学会1000常用字。基本贝壳就能冒充会繁体字拉。 其实诸多字形的修改只是小事,问题是有很多讲法的统一和规范的推行落实才是当务之急。例如,以前贝壳小学时候还有专门的课程还分辨的地得。现在出了社会发现,有多少人管你的地得?很多人一些基础的文法都有问题,在这基础上还谈什么修改规范呢。

May 24, 2009 - 1 minute read

AMD64下的Google Gears

到http://dev.laptop.org/~joel/gears/下载了用吧,debian testing下正常。当然,离线还没有测试过——

May 10, 2009 - 1 minute read

关于杭州飙车事件

写在前面的话。 在德國,起初他們追殺共產主義者,我沒有說話–因為我不是共產主義者;接著他們追殺猶太人,我沒有說話–因為我不是猶太人;後來他們追殺工會成員,我沒有說話–因為我不是工會成員;此後他們追殺天主教徒,我沒有說話– 因為我是新教教徒;最後他們奔我而來,卻再也沒有人站起來為我說話了。 ————Martin Niemoller 贝壳一直是个胆小且懦弱的人,虽然看了形形色色的事情,但是从来没有发表一点评论,连路过都没有一句。也许因为从事技术工作,贝壳清楚当今网管能够做到什么程度。然而针对这次的杭州飙车事件,实在无法闭口不言。事情发生的地方离贝壳的宿舍不足1公里,贝壳还到那里吃过饭。想像一下,如果当时过街的是贝壳…… 首先,按照新闻原则,确认事件是否发生。gg一下,发现以下链接(http://tupian.zjol.com.cn/05tupian/system/2009/05/08/015492581.shtml),来源是浙江在线(搜狐也是转载这里)。就贝壳所知,这个是浙江日报的运营网站。贝壳 whois了一下,根据cnnic的结果显示,这个域名的DNS服务器地址是zjdaily.com.cn,而这一服务器正是浙江日报的官方服务器。更直接的证据来自浙江在线的联系方式,新闻中心0571-85310961,8531正是浙江日报的局号。 根据上面的原则,我们可以认为这个事件应当是真实的。贝壳进一步跟踪了新闻来源(互联网抄袭现象阿…,过程显示浙江在线转载杭州网,杭州网转载都市快报),结果在这里找到了源头(http://hzdaily.hangzhou.com.cn/dskb/html/2009-05/08/content_666555.htm)。 杭州日报的记者们,我为你们骄傲。整整三个版的报道(http://hzdaily.hangzhou.com.cn/dskb/html/2009-05/08/content_666488.htm),经过清晰明了。而且注意贝壳使用的网址,这是实体报纸的电子版,和实际报纸基本严格对应(这个应当是方正飞旋系统)。换句话说,这不是个网络报道,而是有记者参与的,见报的真实新闻。 OK,我们认定了事件的真实性,那么整个事情还有什么好说的呢?注意下面的消息,来源是中新网,其运营商是中新社。(http://www.chinanews.com.cn/sh/news/2009/05-08/1683856.shtml)这次问题到不在记者这里,而在交警认定这里。我不知道交警是如何认定和下结论的。但是我来简单计算一下,如果被撞起5米高,撞出20米外,到底是什么一个状态。 假定g=9.8,整个计算过程其实就是高一物理。撞起5米高,其向上的初始速度假定为v。整个过程满足v^2=2gs=2*9.8*5,求得向上的初始速度约9.9m/s(我没算错,你也没看错,贝壳中学物理竞赛拿二等奖的)。向上的单程时间为v1-v0=gt,带入数值为9.9-0=9.8t,上下总时间约2秒。2秒内横向行进20米,横向速度也为10m/s。根据速度合成公式,整个人初始的速度方向为斜向上45度,速度为14.14m/s。如果我们假定整个人体重65公斤(我没看具体体型,不过这个是一个常规中国男性的平均体重,资料来源http://ask.koubei.com/question/1306122623215.html)。当时转换的瞬时冲量达到65kg * 14.14m/s = 919.1kg.m/s。假定冲击在0.3秒内完成,那么当时的力量就达到3063.7牛顿。什么概念呢?就是在瞬间,一个能够对你产生300多公斤压力的锤子(自身大概有1000多公斤)向你以14米以上的速度砸过来,你们接触了至少0.3秒。漫画中打飞人的原型重现阿…… 而且根据碰撞原理,人重量远远小于车,因此人飞出去的时候的速度应当是车速的两倍。(高中碰撞公式,难为贝壳还记得)当时的车横向车速不会低于 5m/s,否则人根本不可能以10m/s的速度飞出去,更何况还没算空气阻力。即,在刹车后,碰撞发生的瞬间,该车的车速不会低于18公里/小时。不知道当时有没有人能够测量刹车过程的刹车痕长度,以及当时刹车的时间?根据这个长度和时间,贝壳可以反向算出在刹车前,这个车到底跑了多快。不过贝壳可以透露找到一个基础数据,如果在撞车的瞬间,您在车里忘记系安全带。那么车速达到30公里/小时的时候(折合8.3m/s),您就可能发生严重危险甚至危害生命。至于您在车外,以18KM/H的速度和车接吻。无论您带了什么东西,基本都可以领便当了—— PS.补充于5月10日: 曾经风传媒体关于此事闭嘴的传言,估计不完全属实。10日的都市快报(向他们的主编致敬)发表了三版的后续报道 (http://hzdaily.hangzhou.com.cn/dskb/html/2009-05/10/content_667288.htm)。可能是曾经封口过,但是又解禁了。

Apr 21, 2009 - 1 minute read

Linux的环境

很多专业人士的Linux是万年不换的,贝壳没有这么专业,电脑最近老换来换去的。所以列一下有什么东西是一个Linux必装的,以免忘记。其他东西就算 了,需要了再说。另外说明一下,以下列表是针对日常使用,而不是专业开发。例如python环境中的一些组件,还有一些太基础的系统组件都没有列。贝壳认 为会到这里看这些东西的人这些基础常识都应该有了。 1.firefox + thunderbird。这两个是万年组件,好用跨系统。不多说了,列一下插件。 1.1.Flash Player,adobe的能用就用那个,不能就用swfdec。 1.2.CustomizeGoogle。 1.3.Firebug,要用debian提供的包,否则无法用。 1.4.FoxyProxy,移动系统要修改about:config。 1.5.GMarks。 1.6.Google Gears,x64有定制的安装包 1.7.Google Reader Notifier,Google的产品好多。 1.8.Greasemonkey。 1.9.NoScript。 1.10.Tree Style Tab。 1.11.TwitterFox。 1.12.Update Scanner。 1.13.Session manager。 1.14.QuickText,TB插件,能够使用模板定制信件。 1.15.WebMail,TB插件,能接收Hotmail邮件。 1.16.SendFilter,能够使用发送过滤。 1.17.Enigmail,邮件加密系统。 2.Gnome-do,快速启动程序,很方便。 3.pidgin,万用IM,很强大,最好加上两个插件 3.1.msn-pecan,msn的另类插件,功能比标准的多一些。 3.2.fetion,飞信 for pidgin的插件。 4.mplayer + audacious,经典电影播放器加还不错的音乐播放器。 5.amule,emule的Linux替代品,电驴软件。 6.ibus,很爽的输入法,不过比scim的系统结合程度要差一些,也还在发展中。 7.OpenOffice,想开.doc .docx文件么?装OO3以上。 8.eclipse,很强大的编辑器,唯一问题就是太大太强了。 9.emacs + vim,推荐emacs23,自编译。比22好用太多了。 10.apache2 + mysql,啥都不用说了,日常保存一些东西,共享文件,运行一些网页程序很方便。不过对已有的人是不需要的。 11.mercurial,这恐怕是今天最专业的一个组件了。这个组件的目的是分布式的管理文件版本。对于大多人来说,最大的好处是可以本地化的管理自己的一堆文件,以及处理各个版本。 12.comix,漫画浏览器,也是不错的图片浏览器。 13.cryptkeeper,这个是文件加密软件,内部使用encfs作为加密基础。很不错的。 14.Wine,只要想运行Windows程序,就非装不可。记得字体反虚化,否则会难看死。 15.revelation,密码管理器。 16.tsclient,远程到windows下。 17.dictd + gnome-dictionary,方便的词典系统,比stardict差点,但是不那么让人恶心。

Apr 8, 2009 - 1 minute read

debian testing下的ibus安装

贝壳经过N个人的宣传,决定试用一下传说中的Ibus,下面是试用安装手记。文章参考了后面的参考1,特此鸣谢。 apt-get install git-core python-gtk2-dev cvs libtool automake python-enchant libgtk2.0-dev libdbus-1-dev libdbus-glib-1-dev python-xdg 在安装以上依赖后,运行。 # 安装ibus git clone git://github.com/phuang/ibus.git ibus cd ibus ./autogen.sh chmod +x debian/rules dpkg-buildpackage # 安装ibus-pinyin git clone git://github.com/phuang/ibus-pinyin.git ibus-pinyin cd ibus-pinyin ./autogen.sh chmod +x debian/rules dpkg-buildpackage 而后,在根目录会生成两个文件。贝壳的是ibus_0.1.1.20080908-1_amd64.deb ibus-pinyin_0.1.1.20080901-1_amd64.deb。名字比较旧,但是查看git log的话,是2009年4月8日的版本。先安装前者,再安装后者(顺序不要弄错)。而后就是设定部分。 设定的话,请不要按照参考文去设定。这是贝壳血的教训,足足弄了4个小时。正确的做法是用root用户im-switch -c。而后选择ibus作为输入法。 而后,稍等,先不要着急重启。在两个包里面还有个bug?? 在ibus包中,有这么一个文件。 /usr/etc/xdg/autostart/ibus.desktop在debian testing中,这个位置的自启动是无效的! 正确的做法是,cp /usr/etc/xdg/autostart/ibus.desktop /etc/xdg/autostart/ibus.desktop 如果不按照上文修正,结果就是ibus会正确启动,但是没有托盘区和输入条,全凭感觉选字(汗-_-|||)。 其实这应当是一个bug,scim可以在/etc/X11/xinit/xinput.d/scim中设定好守护进程,而后在系统界面出现后自动出现(这也是为什么每次启动的时候scim总是先看到的原因)。而ibus尚不支持界面出现后再去注册托盘区,因此必须试用autostart来启动守护进程。 总体感觉而言,ibus比scim更加漂亮干净,据说对kde的支持也更好。不过试用过程中还是有点问题,主要是以下几个(2009年04月08日列表): 1.�字没有!我相信,其实是很多字没有! 2.firefox就在贝壳写这篇文章的时候,崩溃了一次。以前贝壳的firefox很稳定的,从来没有崩溃过—— 参考: [1].debian 5.0 安装 ibus中文输入法.http://hi.baidu.com/cvwolf/blog/item/3d812b4e8c4fe201b3de0591.html

Apr 5, 2009 - 1 minute read

移动时代的一个应用预测

贝壳今天在晚libfetion for pidgin的时候,突然灵光一闪,想出一个移动时代的应用。 应该说,这是一种融合了IM,语音,高速网络,移动设备后的应用。本身看起来像IM一样,可以方便的和别人聊天。但是,由于移动的垄断,目前除了飞信,谁 也无法保证客户的长期在线。虽然MSN等等可以借助GPRS上网,但是GPRS毕竟是要断线的。如果借助移动和设备的结合,就可以让每个客户端长期在线。 当然,这个思路就是移动飞信正在弄的思路,本身并不新鲜。 和别人聊天,多数是用文字吧?那如果能够附加语音,视频呢?我们可以想象这么一个场景。某人A给B打电话,B在开会,不能接。如果在现在,只有发送短信。 价格贵不说,打字也很麻烦。如果借助这种业务,A可以给B发送一个语音邮件。选中B,选择语音邮件,说两句话,关闭,点击发送。B在收到信件后,可以当场 看,也可以等有空了看。甚至,更进一步的,如果计算技术达到一定水平了。B可以选择识别A的语音邮件,将内容转换为文字(当然,这个由A做更合适。他具有 自己的语音库,传输量也小了很多。)。或者选择A的文字邮件,将内容阅读出来。这样实际上可以保证任何人的随时随地在线,而且语音和邮件互通。 当然,这个技术的实现太过依赖于移动运营商的开发和开放,也依赖于语音技术(语音识别和TTS)。如果是美国,估计在3-4年内会出现这类产品,4-5年内会普及。如果是中国——上帝保佑你吧,中国移动。

Apr 4, 2009 - 1 minute read

手机病毒的真相

转载自http://blog.wangyingqi.com/2009/04/03/137/,以下为内容。 **** 防止被骗,帮我宣传,随便转载,不用署我的名字都行。 作为一个软件从业者,我有很多其他领域的知识盲点,当我看到有人揭露私人豆腐坊的生产过程之后,我就再也不敢到小市场买豆腐吃了。当我了解到药品销 售者和医生勾结向病人推销过量药品这个事实后,到医院买药我都要仔细查看药品的名字和功效。没有人是全能的专家,我很有自信不会在计算机和软件上受骗,但 是难保 其他人不被骗。写这个文章应该算是社会责任,于是,我这次充当内部人士揭秘,来看看手机病毒的真相。 普通用户对手机的了解还是太少,能分清智能手机和非智能手机的人就更少了。能知道所谓Symbian和Windows Mobile系统的区别,知道iPhone和RIM这些单词的人算是很高端用户了。不单单普通用户不知道这些概念,连同样是作软件但是不做手机软件的技术 人员,也都不清楚这些操作系统的最基本的知识。于是,目前大家能见到铺天盖地的手机病毒爆发,3G来了要装手机杀毒软件,手机中毒后隐私外泄等等如此骇人 的广告和说辞。那手机病毒很多嘛?我的手机很慢是中毒了嘛?到哪里装手机杀毒软件?哪个手机杀毒软件最好?一个月多少钱?如果你心中有以上那些问题,那么 很荣幸的告诉你,你已经被骗了,你忽略了一个最重要的问题。 手机病毒真的有嘛? 首先我们来区别一下智能手机和非智能手机,目前的数据是国内已售的智能手机占整体手机市场20%,虽然我坚信这个数据会越来越高,但是就目前来看, 如果你 的手机不是诺基亚,三星,摩托罗拉,苹果iPhone,黑莓,Palm,多普达,HTC等这些稍高端品牌的话,就基本不用担心手机中毒的事了,也许有人说 手机品牌不就是这些嘛,其实能看到这篇文章的人也算是互联网信息圈内的人了,外面有大把的普通用户在用着低端手机,而他们才是最容易受惊吓,最容易以讹传 讹的不明真相的群众,传播正确的理念都靠我们了。如果问具体哪个型号的手机是不是智能手机怎么办呢?很简单的方法是到淘宝上搜索该手机,然后找一个信誉最 高的商家,产品介绍里面就有是否智能手机这一栏。在知道自己的手机是否是智能手机后,一个最浅显的结论是,如果你的手机不是智能手机,那么手机病毒和你无 缘。放心睡大觉吧,别为这事儿烦心了。 糟了,我的是智能手机哦。 别怕,继续往下看。软件病毒实际上是一种对系统有害,更改用户数据,给用户造成经济或名誉损失并能够自我复制自动传播的软 件。这个定义里面的一个很关键的词是”自我复制自动传播”,也就是我们常说的感染。智能手机都可以安装很多软件的,看起来就像普通的电脑一样,智能手机好 像具备了被感染的能力,也就有中毒的风险。那怎么才会被感染呢?又一个重要的概念出现了,一种智能手机操作系统的软件不可能安装在另外一种智能手机操作系 统上(这个说法有一个小漏洞,后面再补上)。如果不理解这句话的话,我来举个例子:棉铃虫是是棉花种植中的一种很严重的病虫灾害,在棉花的主产区很容易传 播和互相感染。但是,人是不会长棉铃虫的。我们不用担心去收棉花的时候染上棉铃虫。智能手机操作系统也是一样,塞班(Symbian,诺基亚智能手机的主 打操作系统)的软件只能在塞班的手机上运行,绝不可能在用微软移动操作系统(Windows Mobile)的手机上运行。拿iPhone的软件跑到诺基亚的手机上运行也是天方夜谭。结论就是,你只能被使用同样智能手机操作系统的手机感染。目前能 找到的智能手机平台大概是Symbian,Windows Mobile,Blackberry,iPhone,Andriod,Linux,Palm,还是一样,到淘宝上搜索自己的手机,查一下看看自己属于哪个 帮派?接下来我挨个介绍。 我知道我的系统是什么了,那哪个系统最容易中毒呢? 先说iPhone吧,这个最容易讲,一个正常的iPhone想要装软件只能到苹果官方的软件店上找,而苹果对软件的功能和安全性审查的极其严格,虽然有人 对这种封闭垄断行为很是不满,但是对最广大的普通用户来说,至少在安全这个问题上,用iPhone的根本不用操心。Google推出的Andriod智能手机操作系统,目前也是沿用这个策略,你只能装官方的软件店上的软件。用这个系统的朋友也可以放心大胆的用了。 Symbian是一个比较复杂的系统,市面上能见到的有Symbian s40,s60第一,二,三,五版,UIQ等。先找个简单的来说,Symbian s60 的第三版以及之后的所有版本,包括UIQ,在上面正常安装的所有软件都必须通过Symbian官方进行安全认证。或是用户自己给软件打数字签名作认证(这 个不讲了,普通用户不会这么干的)。Symbian虽然没有官方的软件店限制,但是签名认证这一点就已经给s60高端智能机一个很好的安全保证。不用 说做一个病毒传播出去,就连作一个正常的软件想要发布都会有很多门槛,必须买一个$200一年的开发者资格,每次发行一个版本都要付给官方$20认证后才 能大范围的安装使用。要想写一个恶意软件很容易,但是要装到很多手机上用并传播,基本上不可能。至于s60的第一,二版本,诺基亚在2005年的机型 N90以后就再也没出过这两个版本的智能手机了。他们的安全认证等级确实比较低,但是市面上已经没有这些产品卖了。大家也不用为古人担忧了。 Palm大家可以忽略了,已经很久没有Palm系统的新机出现了,近来要推出的Palm Pre会搭载新的操作系统WebOS。目前没有真机,但我相信这种现代的操作系统,都会十分注重安全性的。也先不用为未来担心。 至于Linux,其实手机上用的很少,摩托罗拉的A系列一直在折腾,单从血统来看,Linux的手机安全性肯定不必担心。另外,像这种比较偏门的机型,现在占有率不高,未来发展方向也不好。不用说病毒,就是正常的软件开发商都不想为他作软件。所以用这一系列的商务人士们也可以无忧了。 Balckberry的软件安装目前未见到安全认证机制,同上面未说完的Symbian s40一样,是市场上占有率较高且有中毒风险的系统。但是很有意思的是,基本上没有病毒爆发的迹象。**而Windows Mobile也继承了Windows一贯的光荣传统,安全认证机制基本为零**, 属于高危范围。而为什么目前没有很多手机病毒呢?其实,目前在电脑上,单纯 的病毒已经无利可图了,写病毒已经不再是一种技术炫耀,病毒作者已是无利不起早的经济利益偷窃者,电脑上的网游盗号,网银盗号才是他们要关心 的。手机上没有他们想要的,我们的认为重要的亲密短信,隐私图片,对犯罪者是没有吸引力的。这也是目前在这些相对危险的操作系统上也没有手机病毒爆发的重 要原因。 如果说要窃取利益,装了软件后在后台偷偷的发订阅服务的短信应该是最常见的方式了。但是为什么目前也不泛滥呢?这个和几年来整治SP提供商有关系,短信特 服号和厂商直接关联,SP资质非常的难拿到,敢作坏事就再别想作SP了。他们想赚钱倒是真的,但是没必要作这个犯罪风险这么高的事情。这也就是大环境好, 立法好会很好的杜绝犯罪,也会很好的杜绝软件病毒。电脑上也是一样,如果能有好的立法保护每个人的虚拟财产,目前的盗号木马绝对不会这么猖狂,说远了,不 要跑题。 差不多都说完了,再补一下刚才的那个漏洞,实际上一些Java的程序是有可能在各种不同的智能手机平台上传播的。但是有一个前提要说的是,Java的程序 能作的事情很有限,访问网络,访问手机上的文件,发送短信这些都会有十分明显的提示,让用户确认后才会进行。这个安全限制是在Java这一层次就已经解决 了。所以基本不会对大家造成什么风险。 可是手机病毒这么多人在说,他们都是骗人的嘛?为啥你说没有就没有阿?有人说有阿?到底有还是没有阿? 其实是真的有过手机病毒,当然目前都是恶作剧形式的,我看到的都是s40,s60第一,二版本,和Windows Mobile的早期版本的几个样本,为什么会中毒的原因,想必大家也有概念了,就是操作系统的安全性差造成的,但是大家不用担心,目前这些样本都不再活 跃,也基本没有啥传播能力了。算是一些待在实验室里面的样本而已。和广大普通用户没关系。就当前的流行手机操作系统看,我没见到任何可以称作病毒的东西。 那现在手机杀毒软件都是骗人的? 关于这个问题,我来分析一下目前国内一个卖的比较好的手机杀毒产品,网X。他在官方网站上放出了所有他可以查杀的病毒名, 一共216种。里面大部分的病毒样本是没有标明可运行的平台的,看了我上面写过的都应该知道。平台不吻合根本没法运行,还谈什么病毒行为?另外,他的产品 承诺每月升级4次病毒库,每次升级2块,或是8块钱包月,包年98(您没看错,就是比按月买还贵),两年的卡188元。从第一个有时间标注的病毒2008 年4月17日到2009年4月2日,一共有病毒53个,想起来也还不错。刚好平均每月4到5个,有这么巧嘛?接下来我们再看一下所谓的病毒是什么,最近的 一个病毒样本是一个Python脚本,我来解释一下这个东西要怎么才能运行,首先你要在诺基亚的s60手机上装一个目前只有程序员才关心的Python脚 本解释器,然后又碰巧别人传了这个脚本给你,而且你还要跑到系统中找到这个脚本并手动运行,OK,病毒爆发了,不断发短信了。听不明白吧?不知道