Archive for the ‘戏言’ Category
Can’t help writing this down: is it really so hard to find a buzheteng Linux distro?
It’s SUNDAY! Time for ranting!
It may seem weired that I rant in English — anyway I’m not a native English speaker and the best rant always comes from one’s mother tongue. BUT there is no Chinese input method on this system, so I have to writing this down in English.
You can bet I’m on Linux now, yes, you’re right. I’m playing with Fedora 16 in a live USB key. The default desktop is Gnome 3 — another disaster for a long time Gnome 2 user. It seems that the Unity-like UI is getting more and more popular. Well, I can adapt myself to new UI. However, PLEASE do better design. The new UI is driving both ordinary users and developers (who use Linux as developing platform) away IMHO.
For new users / Linux noobs: Configuration ability is very weak — look at those few icons in the control panel. What’s worse, the default style of the desktop sucks — large portion of my screen is occupied by useless window frame and menu (take firefox as an example). I wish I could tweak font size to make it not so ugly, but I just can’t find a tool to do that. This will eventually lead to comments like “Linux is ugly and difficult to use”.
For developers: How can I tweak this system? I need my menu back! Those visual effects are good, but they don’t add up productivity. Grouping appications is a good move, but the big icons scattering all over the screen makes me feel bad. Searching applications? That works on the basis that your application shows up in the groups. In a word, they are not helping at all. My observation is that few of my friend (low level) developers will use either Unity or Gnome 3.
Well, some other suggestions include switching to Arch or Gentoo. But I’m not very into those two distros. My principle is “buzheteng”. I would rather focus on my job. I’m really tired of writing configurations line by line with my bare hands. I need a out-of-the-box distro.
How about switching to other desktop environment? KDE? No, I had very bad experience long time ago which effectively shadows me nowadays. LXDE and XFCE? They are just too light-weighted, I need full featured desktop.
Linux desktop is evolving, that’s good. I’m just too out-dated to catch up with its pace. I can not appreciate the new changes due to my out-dated tastes. I’m considering buying a Macbook now, seriously.
UPDATED:
To my surprise, KDE works much better than Gnome 3 for me. The UI is smoother than I expected. But (well, there is always a “but”) the concept of “activity” is driving me mad (What? I need to switch “desktop icons” activity to view my icons? Then switch back to “desktop” activity to see my applications?). Grouping applications is one thing, grouping activities is another. I don’t like the idea of switching among different activities just to separate what you’re doing, I would rather use different workspaces to achieve the same goal.
吐槽一下Google Group
本来这个时候我应该在写论文,但是我还是忍不住吐槽一下:我觉得Google Group真是挺奇葩的一个产品。
好话先说在前头:Google大公无私,给大家免费做论坛,免费做邮件列表,让大家在互联网上的每一个错别字,每一句吐槽都(有可能)永世长存,真是了不得。这个精神我是很赞许的。
但是,我不爽的地方就是,Google Group是一个论坛和邮件列表结合的怪胎。我相信国内很多技术人员都是从论坛起步的,所以基本上都是把Group当成论坛用(即是在网页上回复),但是这样对于我这种把Group当成邮件列表来用的人来说就比较痛苦了。
这不是大家的问题,而是Group这个产品具有双重的定位。你说是应该使用邮件列表的标准管理还是论坛的标准管理?这是一个众口难调的问题。
要是按照邮件列表的标准管理,那么就有一些基本要求:
- 限制主题。这个自然不用多说。一些话题比较泛的Group,至少也要有对应的前缀要求(如OT)。
- 减少无意义的发言(比如说“多谢”、“顶”之类的在论坛中的习惯)。因为每一封邮件都是实实在在发到订阅者的邮箱中的,是会占用空间的。假如一个列表订阅人数众多的话,这些邮件就会占用很多空间,不够低碳。
- 注重线索化。只回复想要回复的邮件,而不是每次都在最后回复。随意回复造成邮件客户端线索是乱的,没办法看。这个问题在Gmail和Group的Web界面中不明显,但是对客户端是一个灾难。
就我看过的比较有限的几个中文技术相关Group来看,管理上还是比较“随意”的。当然这些Group的话题都是比较广泛的,要是以一些开源软件的development列表的要求去管理也不合适,我相信管理员也是很努力去管理。但是由于Group产品的先天定位,管理起来着实费力吧。
我每次看到一些邮件就觉得心里拔凉拔凉的,比如说:
- “收集了XXX资料”——用论坛模式看,有sticky操作,但是邮件是不行的。
- 带图或者其他一些不小的附件的邮件——再次强调不低碳啊。
- “谢谢”“顶”——前面解释了。
- 用html格式发出的邮件——个人爱好问题,但是就我经验来看,这种邮件基本上会把格式搞得乱七八糟。
- “XXX想邀请你聊天”等等的有意无意的SPAM。
好吧,那我用论坛模式玩不就没有问题了吗?不好意思,不是我死板,而是我实在没有精力每天都去开这么多网页慢慢找有什么更新,以及这些更新中有什么是我感兴趣的内容。邮件可以用filter分类,排除不少干扰。
Group的论坛模式降低了大家交流的门槛,还是很好的。但是鱼与熊掌不可兼得。人微言轻,我想我还是老老实实潜水吧。
给Linux kernel写patch有多难?
Good question!
答案是:一点也不难。随便打开一个文件,然后找出comment里面的拼写及语法错误,再然后按照使用Git发送patch提到的方法发送出去就ok了。一般都可以被ack然后进仓库的。
这是一个很严肃的事情哦,为社区做贡献。门槛也不高,值得一试。:-)
当然,前提是要会用Git以及有一本好词典,呵呵。
魔都行纪
长这么大第一次来魔都。交通很便捷,我从武昌火车站到目的地,大部分时间都是在轨道交通工具中度过。先是火车,然后是地铁。这近一千公里的行程,就在逼仄的车厢中消磨过去了。从我自己的感觉来说,这样的旅程少了很多乐趣。在地铁没有这么发达的城市,公共汽车是市内交通的首选,城市的形象随着公交车外的风景而丰满,更加活色生香,期间更穿插着担心搭错车、坐过站的刺激感,而路人对问讯的回应,也是这个城市的一个缩影。
自己出门在外,这也不是第一次了,其实也没什么这么多感慨的。上初中一年级的时候,曾经自己从南宁坐车回家,感慨也没这么多。反正就是上车下车的事,照着行程走就是了。反而是长大之后就喜欢发起感慨来。每个城市都不一样,都有自己的特色。从我仅有的上海地表之行来看,上海的城市环境很不错,有蓝天,有绿地,很合我的心意。不过上海话确实是一句都听不明白。
扯远了。这次上海之行的真正目的,其实是拜访一家创业公司(至于到底是干啥的,暂时保密,哈哈)。这是一家真真正正处在startup阶段的startup,不像我以前参观拜访的另外一家,已经到扩张阶段了,所以看到的东西确实也很不一样。这段时间,对于选择什么样的工作,我想了很多,也尝试去学习和了解一些我原来不清楚的事实。
创业公司谈的是对时势的判断,对未来的判断。从历史的角度来看,每个时代都必然会产生一定的成功者。我们现在艳羡的大公司,只是成功在那个时代做大做强了而已,而其他的一些公司则如大浪淘沙一般,消失在历史的长河中了。假如现在还有人谈用微软模式打败微软、用腾讯的模式打败腾讯,我会觉得这是一件很可笑的事情。只有用新模式,才有可能颠覆旧模式;用旧模式去挑战旧模式的强者,必死无疑。
新模式在哪里?大家都知道,大家又都不知道。就像现在大家都知道移动互联网会火,但是谁也不清楚到底一个什么样的模式会让自己成为这个时代的王者。大方向谁都会吹,但是实在地践行自己的想法,又是另外一回事了。在思考实践的过程中,其实也是险阻重重。
创业公司的最开始的团队,必须都有比较高的技术水平,这个是毋庸置疑的。但是,创业公司最根本的财富,是整个团队有着同样的目标,对于自己所做的事业保持信心,甚至说转化成为一种信仰。创业是很艰辛的,艰辛之处除了技术上的问题之外,更多的还是未来的不确定性。
关于创业公司和大公司的对比,网上已经有太多的论调,我想我已经不必再赘述。哪一个更加合适,应该是因人而异的。
以上为上海之行的收获,晚上的车回武汉,等车的时候写点东西排解一下无聊。
参加开源项目的一些经验和收获
现在算是正儿八经地参与到开源项目来了。一个多月的适应、学习,现在已经渐渐了解和习惯开源项目的开发模式。
在实验室写代码,是不用考虑太多的,写出的代码能用,能解决问题就好。这样做的原因很多,一是工期有限,二是知识不到位,三是没有支持,种种的限制让人很难写出满意的东西来。代码基本都是不能反馈给上游的。
而真正参加到项目中来,有明确的实现目标,一开始就做好设计——必须要反馈给上游,邮件列表的支持和讨论也很到位,所以做起事情虽然很累,反而还觉得舒服点。
过硬的代码能力是基本的要求,这个自不必多讲。但是编码没有想像中的那么重要,反而是一些设计上的取舍要花费大量的时间讨论。一段代码为什么要这样写不那样写,一个功能为什么要这样设计不那样设计,一个接口为什么要接受这个参数而不接受另外一个,这些讨论上花费的时间是很多的。最后编码的时间相对来说反而占的比例不是很高。一般来说key developer的见解都非常到位,他们可以指出代码和设计中的种种问题,还会考虑到兼容性、扩展性等等问题,和他们进行一番讨论会获益良多。不得不提的是,虽然key developer的意见比较重要,但是他们也不一定都是对的。作为开发者来说,大家完全是平等的,也不需要对他们完全盲从。
要引发高质量的讨论,首先要拿出来的就是patch。开源项目的geek们更喜欢用代码说话。连原型都没有就空谈,一般大家都不会理睬的。Linus说过“Talk is cheap. Show me the code.”大抵就是这个意思。一个patch,可能要根据讨论的结果改好多次。幸运的话,大家表示没意见了,不想再拍砖了,就有机会进仓库了。这个时候应该最有成就感了。
所以总结一下,开源项目的发展就是靠大量的代码加上大量的讨论来推动的。当然,真正趟过这滩水和只看不做,感受还是有所不同的。
再来聊聊工具。
一是版本控制工具。这个是软件开发中的必备品了。现在开源项目越来越流行分布式的版本控制工具了,像Xen就提供了Mercurial和Git的仓库。分布式的好处不言而喻,大家都可以专心于自己的代码,不用受限于中心仓库。我个人比较偏好Git,用熟悉了基本的命令就不会有什么大问题,高级的用法可玩性也很强。
二是编辑器。这个是个人喜好的问题,搞*NIX的人,无非就是Emacs或者Vim。我个人喜欢Emacs,因为它的缩进控制更加智能,多buffer支持也很方便;虽然一直被诟病体积大速度慢,但是这些问题在现在的机器上都不再是问题。Vim来写内核代码还是可以的,但是写Xen的代码有点难受。
三是邮件客户端。收发大量邮件的话,一个趁手的email client必不可少。Gmail的Web GUI用起来方便,但是不合适提交patch。现在我用Evolution和Mutt,其他的一些客户端可以看看Linux内核文档的email-clients.txt。
很久没有写过像样的文章了,凑出这篇防止blog长草。
(完)
想法与执行力
今天翻了一下邮件的草稿箱,发现一封很久之前没有发送出去的邮件。
手持终端越来越强大,人们对资讯有着更高的要求,LBS服务我觉得以后会热。
现在的LBS服务(比如街旁)对于使用者是有一定的实惠(如拿折扣),但是实时性不够好。也许街旁这样的服务,完全可以成为一个广告平台,比如说商家在上面发布*当天的*优惠信息。
假如做这样的平台的话,我觉得对各个方面都是有好处的:
1. 服务提供商,信息处理成本不高,可以成为盈利途径;
2. 商家,以低廉的广告费用命中最有可能的客户;
3. 消费者,快速获取最有用的消费信息。不知道街旁为什么没有这样做,也许他们是有想法,但是觉得用户群体还不够大,不急着收网;还有可能就是他们的销售推广实力有限(技术人员为主的创业型公司)。
当然在国内做这样的产品,风险其实也是很大的。一旦提升到“平台”二字,很难不被各位大佬盯上。
这邮件原来是准备发送到WIYA(全称就不写了)列表的,但是当时觉得自己调研得还不是特别的充分,所以最后没有发出去,后来就不了了之了。而我邮件里面提到的想法,现在已经是普遍实现了。
又想起了朋友之间想做的一个小项目,想法很多很不错。刚开始大家时间投入比较多,讨论也活跃,但是最终由于大家时间精力上的种种原因,没有能继续下去。
没有执行力,一切都是扯淡罢了!
只想不做,那只是在意淫罢了。大家都不是笨蛋,想法一定很多;世界上这么多人,好的想法也一定不少。但是为什么能把东西做好、把产品做成功、让人眼前一亮的公司不算很多呢?排除各种外部因素之外,团队执行力是很大的一个因素。有太多的好想法、好创意停留在纸上,最终要不就是不了了之,要不就是被人抢先一步。
我认为,纯粹的没有外界压力的技术创业,除非团队对于整个项目抱有近乎狂热的态度,否则是不会成功的。这样说来,要创业要不就是做一个自己很喜欢的东西,要不就是破釜沉舟净身出家不成功便成仁,这样执行力上才有相应的保证。
为什么我不看好基于SMM模式的安全措施
Intel处理器提供了几种模式,一般人们所熟知的是v8086、Real以及Protected三种,SMM估计是知道得比较少的了。SMM全称是System Management Mode,以前一般用于电源管理等工作。
搞安全的最基本手段,无非就是如何在得到更高的权限,把自己的程序放置于系统中更加关键的位置从而控制上层应用。在常见的三种模式早就被榨得差不多的情况下,新近流行的虚拟机监视器又为安全研究人员提供了一定的机会,大家不用那么快愁没饭吃。
但是现在,虚拟机下的东西也不好搞了,玩的人多了,最有一天也会榨干。于是大家又开始找新玩意。估计最初提出用SMM做安全的人,大概是把Intel的几本手册都翻了个透了吧,LOL。学界要求就是要“新”,于是SMM的文章好像也比较走俏,CCS 10′上有一篇,中国科学应该今年也会出一篇。
但是就我本人来说,我对于这个SMM不是特别感冒。我比较重视实际应用,学界很多事情都是为了paper而研究,我觉得没什么意思。当然,为了避免自己有乱泼脏水的嫌疑,我还是列一下自己的理由吧,为什么我不看好基于SMM模式的安全措施。
- 这样的工作没有什么本质上的创新和突破,只是把剩下的硬件机能榨干而已。
- 这样的工作移植性差。
- SMM模式是高度ICH-dependent的,在06年的针对SMM的攻击出现之后,很多BIOS默认已经把SMM模式锁定了。CCS 10′上的paper解决这个问题的办法是:改写BIOS代码。
- 即使SMM模式没有被锁定,也不能保证SMM模式能用——hardware/firmware dependent——这是我在数台机器实验后的结果。
我也和师兄提过这个问题了,但是他说学界就好这口,也没办法。好吧,大家混口饭吃而已,这么认真干什么呢,LOL。
Blog的功能应该再纯粹点
翻了一下自己的blog,大部分的话题都是和技术有关的,小部分是以前的无病呻吟等等等等。
而这很大的一部分技术相关的post,又有相当一部分只是纯粹的笔记性质的东西,只是方便自己查找而记下来的一些小东西。近来越发觉得这样的管理方式不妥当,所以决心还是做点改变吧。
第一,建一个Wiki,去管理一些知识性的东西。Wiki这方面是强项,有目共睹。
第二,blog也不是完全和知识相隔离。blog在记知识的同时,重在自己的一些想法、评价。有原创当时是最好。
第三,blog的功能还要再细分。生活琐事、无病呻吟一类的文章,应该另有去处。技术blog管技术、工作,生活blog管生活、扯淡。
这一篇还算带点自己的思考,所以放这里。
(完)
太平生意
在校内上看到@crackcell上传的一张照片,TX的两个人离职去开串串香小吃店,心里也不清楚什么滋味。
这样的事情也不是一件两件了。细想一下,这个方向也是正确的,衣食住行是每个人都必不可少的。一天不上网不用QQ没啥大事,一天不吃不喝那就受不了了。再极端点,打仗了、饥荒了,大家想到的首先当然是实物性的物资,而不是管自己的QQ号会不会被回收,是吧。
其他行业不清楚,搞IT的就是在做太平生意。世道好了,大家可以安心做,不说有暴富的可能,混个饱饭还是可以的。世道不好,IT那还是靠边站吧,人们更关心是否能吃饱穿暧保证安全。以前多少有点抵触传统行业,因为它们不够“高尖精”,但是现在想到这种想法真是觉得幼稚之极,哈哈。
(完)
扯淡
笑谈说,十个技术男九个想创业。在我看来这话不假。我自己也有一些这方面的想法。几个朋友一起建了一个Google group,有大家有什么想法都向上面发发,保不定哪天就可以拿来用了。
技术男们想法单纯,多怀着“技术改变世界”的理想。技术是能改变世界。但是在技术有机会改变世界之前,它还有很多艰难的关卡要过。资本、人事、市场,都是不得不考虑的问题。过完五关斩完六将之后,保不定有人先出来了,或者后起之秀做得更好。要改变世界,也不是那么容易的。
难怪乎美国很多startup的CEO,不一定很懂技术。以前我看来这样的问题还是觉得挺奇怪的,但是现在对于CEO的理解,更多是good at selling company。所以苹果会请一个非技术出身的卖汽水的去当CEO(虽然干得不好)。Founder和CEO的角色有异,没必要说Founder一定要成为CEO。
说到底,做公司是一个技术、资本、市场的协调。做大之后,少不得一个good at negotiation的人去斡旋、平衡。而很多技术男,少的恰恰就是negotiate的能力。
当然,要是能一直拿high paid的薪水、做着喜欢的工作以及看着创立的公司成长,我想很多技术男也不介意不做CxO这样的事情。很多时候,还是得摆正心态。社会中各有分工。理想与现实总是有差距的,虽然国内的氛围还是太浮躁,但是我想现在也应该在慢慢改善。