其实上周刚去过高师傅那里做常规保养,换机油和三滤。看见嫂子(高夫人)我还说呢,
“老想来,可这车没啥可修的”,嫂子笑答,“那还不好,老来修你才不乐意呢”。
最近俩仨月是停平静的,没有挂蹭,没有罚单,没有修理。
才没几天工夫,发现一开玻璃水风档玻璃前就起了喷泉,中间一个大喷泉,喷水高度
超过车顶,两边俩小的,就是原来喷玻璃的那俩,因为没有压力已经喷不到玻璃上了。55555
其实早就有这毛病,不过那会中间那股还很小,我没当回事。现在不行了,两天过去
风档玻璃就一层腻呼呼的东西,没水在上边雨刷整个一个干擦。我估计是橡胶管老化
了,老琢磨着自己应该就能换,等支起引擎盖儿发现管一直引到里头,算了,自己不鼓捣了。
跟LP说,这周末得去修车了,LP奇怪“上周不是刚去过吗?”
周六,先去方庄办事,天闷热,就把空调打开了,结果直吹热风。5555
到了高师傅那儿,小张师傅问哪毛病,我演示了一下喷泉效果,他3下5除2就把雨刷卸
了下来,原来是三通裂了。小小的3通,两公分长白色硬塑料,看来这个毛病实在是太小了。
正高兴着并试修好的效果,发现只要通电雨刷就转着,也没有了延时,仔细一查,
原来是雨刷延时继电器坏了,换吧,结果库房里还没有,先找了一个旧的没有延时的继电器
换上。没有延时,就是雨刷只有ON和OFF俩状态,而且要找好OFF的时机,要不然雨刷
会停在玻璃正中,哈哈,先对付着吧
再查空调,缺氟了,加!加好氟,我又提出一个问题,就是我的车里后排座感受不到空调的
凉意,往往我在前排开着空调,后排的老泰山热的把车窗摇下来了。高师傅拿手试试出风口的风量,
嗯?风量有点小嘛,比正常至少差着一档,正好这两天网上也在讨论空调的事,最后大家
都觉得蒸发器被灰尘堵了的可能性最大,拆掉挡着蒸发器的玻璃水水壶,拿手一摸,里面是
厚厚的土,拿水一冲,直接就和泥了。洗!
洗是洗,当天已经来不及了,据高哥说,这个活要俩人整整洗一天才能洗出来。
咋办?还要把LP和她的货送回去呢。干脆周一再说吧
周一晚下班,顺5环直奔修理厂,撂下车坐公交就回家了,周二只好坐地铁上班。
唉,大热天,地铁上的MM穿啥的都有。。。不开车也不错,真饱眼福啊 
周二下午给高哥打电话,问空调好了没。“空调没问题了,你的离合怎么回事?踩下去摘不了
档啊?!吓我一跳,赶紧把车灭了,这要是正跟车。。。”,说起这离合,早几个月就已经吓
过我了,堵车路上,突然就摘不下档,回家停车场上也是,然后突突突的就熄火了。
那个周末为她着急上火担心后怕来着,又不敢开了,只好电话高师傅来拖车,等高师傅晚上
来了这离合居然奇迹般的好了,我还很不好意思让人家跑来一趟,这回好,高师傅自己碰上了
接着整吧,哪坏了修哪,没啥说的
提前跟领导打个招呼,坐地铁去修理厂,地铁上的MM。。。呵呵
到了修理厂,高师傅说换了一个离合总泵,还有雨刷电机也换了。555,不好跟LP交代了
嫂子还说呢,“上周刚说完没啥可修的就修了这么多,不能念叨啊!”
自己开车回家,靠,换了离合总泵就是不一样,居然有轿车的感觉了,原来的离合
一二档不好挂,踩下去一半的时候没有反应,现在完全好了,搞的我都不适应了。
上京沈高速前,赶紧找个没人的地方调整了座椅后视镜,再踩几脚离合熟悉熟悉感觉。
回家路上接上避雨中的LP,说起离合好使了,LP说“那还用说,这车除了一个壳都快
换一圈了吧?”
曾有人在网上数落切诺基的缺点,小毛病多老得修等等,一个切诺基的FANS反驳:
“我的车是有不少毛病,可是同一个毛病修好了没犯过第二次呀。。。”
主题:我心目中的编程高手(ZT)
[八阕】 MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI的主要作者之一。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein, 然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡” ,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈F-word不离口。他面试秘书时必问:"what do you think of the word '[censored]‘?” ,让无数美女刹羽而归。终于有一天,一个同样火爆的女面对这个问题脱口而出:”That’s my favorite word”。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别人时收一两千美元,那些公司拿了 code,加工一下卖出去就是上万上十万。不过也没见高爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他捐献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主要作者(另一个是大牛人Rob Pike, 前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话:装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix Programming Environment 和 The Practice of Programming 的作者之一。如果初学者想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写出了Unix下第一个基于位图的窗口系统,并且是著名的blit 终端的作者。当然了,罗伯伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不遗余力地把系统开发推向极致的话,也就是google乐。随便看看 google的成果就知道了。具有超强容错和负载平衡能力的分布式文件系统GFS (现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的说),更不用说处理海量并行计算的各式google服务了。Rob在System Software Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。想必Rob Pike在google很幸福。愿他做出更棒的系统。
Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M. Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前身是B,而B是Ken Thompson一手做出来的)。J 两人1983年分享图灵奖,是有史以来少数几个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,所以就成了唯二的乐) 。一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛不衰近30年,至今生机勃勃,DMR此生可以无憾的说。
D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D
不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。Alef的语法和C相似,但数据类型和执行方式都和 C大大不同。说到语言,D爷爷对后来人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来领导自己的团队在1995年和 1996分别推出了Plan9和Inferno操作系统,又用多少人知道呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意识奠定了C广为流传的基础。
最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也就长留你我心中乐。
P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写得最少;但说到编程,Ken爷爷才是当之无愧的老大。
Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,无非是戴爷爷在1956年为了展示新计算机 ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表在Numerische Mathematik的创刊号上,权为捧场。:-) EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。
戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博士论文,顺利戴上博士帽。
让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日没夜地工作了8个月,就搞出了Algo60,也因此获得了 1972年的图灵奖。因为Algo60,戴爷爷发表了一篇石破天惊的文章:Recursive Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。
说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系统,并培养计算机科学家。几年后,THE Multiprogramming System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。
EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。
Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当如Anders的说。李维的里已详细讲述了 Anders的传奇故事,我就不用费舌了:http: //java.mblogger.cn/iexploiter/posts/1505.aspx 。Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看看牛人的丰采。
——————————————————————————–
阅读次数:436
所有跟贴:
顶哈~~ 毛衣大豆 (38字节) 06/24 09:34 (584978)
you must be kidding ucmeb4 (137字节) 06/24 08:11 (584967)
牛!!! 宜安 (6字节) 06/24 05:06 (584944)
编程最需要的不是石门高手 淘气? (422字节) 06/24 05:06 (584943)
this’s at least controvercial. ucmeb4 (311字节) 06/24 08:05 (584966)
嘿嘿,你没干过吧? 淘气? (41字节) 06/24 08:14 (584968)
这话对于一般工程项目来说是对的 hazmat (174字节) 06/24 05:11 (584945)
对。软件的设计需要天分 淘气? (183字节) 06/24 05:21 (584946
很强的现场感
Frequently Asked Questions about udev
Q: What’s this udev thing, and what is it trying to do?
A: Read the OLS 2003 paper about udev, available in the docs/ directory,
and at:
There is also a udev presentation given at OLS 2003 available at:
Q: How is udev related to devfs?
A: udev works entirely in userspace, using /sbin/hotplug calls that the
kernel makes whenever a device is added or removed from the kernel. All
naming policy, and permission control is done in userspace. devfs
operated from within the kernel.
Q: Why was devfs marked OBSOLETE if udev is not finished yet?
A: To quote Al Viro (Linux VFS kernel maintainer):
- it was determined that the same thing could be done in userspace
- devfs had been shoved into the tree in hope that its quality will
catch up
- devfs was found to have fixable and unfixable bugs
- the former had stayed around for many months with maintainer
claiming that everything works fine
- the latter had stayed, period.
- the devfs maintainer/author disappeared and stoped maintaining
the code.
Q: But udev will not automatically load a driver if a /dev node is opened
when it is not present like devfs will do.
A: If you really require this functionality, then use devfs. It is still
present in the kernel.
Q: But wait, I really want udev to automatically load drivers when they
are not present but the device node is opened. It’s the only reason I
like using devfs. Please make udev do this.
A: No. udev is for managing /dev, not loading kernel drivers.
Q: Oh come on, pretty please. It can’t be that hard to do.
A: Such a functionality isn’t needed on a properly configured system. All
devices present on the system should generate hotplug events, loading
the appropriate driver, and udev will notice and create the
appropriate device node. If you don’t want to keep all drivers for your
hardware in memory, then use something else to manage your modules
(scripts, modules.conf, etc.) This is not a task for udev.
Q: But I love that feature of devfs, please?
A: The devfs approach caused a lot of spurious modprobe attempts as
programs probed to see if devices were present or not. Every probe
attempt created a process to run modprobe, almost all of which were
spurious.
Q: I really like the devfs naming scheme, will udev do that?
A: Yes, udev can create /dev nodes using the devfs naming policy. A
configuration file needs to be created to map the kernel default names
to the devfs names. See the initial udev.rules.devfs file in the udev
release. It is the start of such a configuration file. If there are
any things missing, please let the udev authors know.
Q: What kinds of devices does udev create nodes for?
A: All devices that are shown in sysfs will work with udev. If more
support is added for devices to the kernel, udev will automatically
start working for them. All block devices are currently supported, and
almost all major char devices are supported. Kernel developers are
working on adding support for all char devices at this time. See the
linux-kernel mailing list for patches and status of these patches.
Q: Will udev remove the limit on the number of anonymous devices?
A: udev is entirely in userspace. If the kernel supports a greater number
of anonymous devices, udev will support it.
Q: Will udev support symlinks?
A: Yes, It now does. Multiple symlinks per device node too.
Q: How will udev support changes to device permissions?
A: On shutdown, udev will save the state of existing device permissions to
its database, and then used the on the next boot time.
Q: How will udev handle the /dev filesystem?
A: /dev can be a ramfs, or a backing filesystem. udev does not care what
kind of filesystem it runs on.
Q: How will udev handle devices found before init runs?
A: udev will be placed in initramfs and run for every device that is found.
Work to get this implemented is still underway.
Q: Can I use udev to automount a USB device when I connect it?
A: Technically, yes, but udev is not intended for this. Projects that do
automount hotplugged storage devices are:
* Usb-mount http://users.actrix.co.nz/michael/usbmount.html
* devlabel http://linux.dell.com/projects.shtml#devlabel
Alternatively, it is easy to add the following to fstab:
/udev/pendrive /pendrive vfat user,noauto 0 0
This means that users can access the device with:
$ mount /pendrive
And don’t have to be root but will get full permissions on /pendrive.
This works even without udev if /udev/pendrive is replaced by /dev/sda1
Q: I have other questions about udev, where do I ask them?
A: The linux-hotplug-devel mailing list is the proper place for it. The
address for it is linux-hotplug-devel@lists.sourceforge.net
Information on joining can be found at
Archives of the mailing list can be found at:
(18:24:34) Love will Keep US Alive: hi
(18:24:42) Zhang Yining – Do you leave dents where you sit?: hi
(18:24:50) Love will Keep US Alive: http://clunkjay.net/blog/index.php?p=53 这个地址你能访问吗?
(18:25:31) Zhang Yining – Do you leave dents where you sit?: no 
(18:25:39) Love will Keep US Alive: 靠,忘了,你也在国内
(18:25:40) Zhang Yining – Do you leave dents where you sit?: 域名不对吧、
(18:25:43) Zhang Yining – Do you leave dents where you sit?: 哈哈
(18:26:02) Love will Keep US Alive: google cache你也用不了吧?
(18:26:10) Zhang Yining – Do you leave dents where you sit?: 嗯
(18:26:18) Zhang Yining – Do you leave dents where you sit?: 要下载东西么?
(18:26:25) Love will Keep US Alive: 查一个东西
(18:26:29) Zhang Yining – Do you leave dents where you sit?: 我让朋友看看?
(18:26:38) Love will Keep US Alive: 明明这个里有重要内容,就是进不去
(18:26:43) Love will Keep US Alive: 好哇,太谢谢了
(18:27:29) Love will Keep US Alive: This problem was solved after adding the following flags in the /etc/make.conf …后面这句
(18:27:48) Zhang Yining – Do you leave dents where you sit?: ?
(18:28:05) Zhang Yining – Do you leave dents where you sit?: 你要什么?
(18:29:01) Love will Keep US Alive: 告诉我 This problem was solved after adding the following flags in the /etc/make.conf … 这句是什么就行了
(18:29:08) Zhang Yining – Do you leave dents where you sit?: yining_zhang: can you visit this page? vikasdeep: it gives me a pop up to save the page. vikasdeep: on firefox.
(18:29:38) Love will Keep US Alive: google, gentoo start-stop-daemon X11R6 xfs no such file
(18:29:39) Zhang Yining – Do you leave dents where you sit?: vikasdeep: i have a pop up to save it in IE also btw.
(18:29:50) Zhang Yining – Do you leave dents where you sit?: 好像这个页面有问题哦
(18:29:56) Love will Keep US Alive: 第二个网站,看看cache能不能看到
(18:30:50) Zhang Yining – Do you leave dents where you sit?: google 搜索的第二个结果?
(18:30:57) Zhang Yining – Do you leave dents where you sit?: 只要看cache?
(18:31:28) Love will Keep US Alive: 就是这个网站,看看cache有没有This problem was solved after adding the following flags in the /etc/make.conf这句话后面的东西
(18:32:45) Zhang Yining – Do you leave dents where you sit?: 能看到cache里的东西
(18:32:47) Zhang Yining – Do you leave dents where you sit?: 等等
(18:32:54) Love will Keep US Alive: 太好了
(18:33:12) Zhang Yining – Do you leave dents where you sit?: 你怎么知道有这么句话?
(18:33:34) Love will Keep US Alive: google出来的会有一段啊
(18:33:38) Zhang Yining – Do you leave dents where you sit?: The X Font Server failed to start when I updated xorg-x11 package to x11-base/xorg-x11-6.8.1.901 as follows : wulf / # /etc/init.d/xfs start * Scanning font directories ¡ [ ok ] * Starting X Font Server ¡ start-stop-daemon: stat /usr/X11R6/bin/xfs: No such file or directory [ !! ] Supprisingly when I do a stat /usr/X11R6/bin/xfs the file is not to be found. This problem was solved after adding the following flags in the /etc/make.conf USE= line and re-emerging Xorg-X11 : font-server truetype-fonts type1-fonts
(18:33:41) Love will Keep US Alive: 但是最关键的在…后
(18:33:52) Zhang Yining – Do you leave dents where you sit?: In the new Xorg-X11 package, XFS support will not be compiled unless font-server is included in the USE flags as follows : wulf / # emerge xorg-x11 -pv These are the packages that I would merge, in order: Calculating dependencies ¡done! [ebuild R ] x11-base/xorg-x11-6.8.1.901 -3dfx -3dnow +bitmap-fonts +cjk -debug -dlloader -dmx -doc +font-server* -hardened -insecure-drivers +ipv6 -minimal -mmx +nls +opengl +pam -sdk -sse -static +truetype-fonts* +type1-fonts* (-uclibc) -xprint +xv 0 kB
(18:34:05) Love will Keep US Alive: 好了
(18:34:12) Love will Keep US Alive: 知道了,多谢多谢
(18:34:45) Zhang Yining – Do you leave dents where you sit?: 不客气 
(18:35:14) Zhang Yining – Do you leave dents where you sit?: GFW can’t break the Social Network… yet.
(18:35:16) Love will Keep US Alive: great firewall害死人啊
(18:35:21) Love will Keep US Alive:
看看/etc/passwd里的ftp用户home目录是不是不一致。。。
如果出telnetd: All network ports in use.
那可能是
/etc/fstab中的devpts没有mount
none /dev/pts devpts noauto,gid=5,mode=620 0 0
身份证号码15位升18位
身份证18位验证
18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称”社会保障号码”更名为”公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如下:
一、范围
该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。
二、编码对象
公民身份号码的编码对象是具有中华人民共和国国籍的公民。
三、号码的结构和表示形式
1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5、校验码
(1)十七位数字本体码加权求和公式
S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
广东省汕头市: 440524188001010014
15位升18的方法
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。下面举例说明该计算方法。
15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于1900年出生的人不使用(这样的寿星不多了)
某男性公民身份号码本体码为34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1)
公式(1)中:
i—-表示号码字符从由至左包括校验码在内的位置序号;
ai—-表示第i位置上的号码字符值;
Wi—-示第i位置上的加权因子,其数值依据公式Wi=2(n-1)(mod 11)计算得出。
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根据公式(1)进行计算:
∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189
189 ÷ 11 = 17 + 2/11
∑(ai×Wi)(mod 11) = 2
然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结果为10:
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为 34052419800101001X。
每日里总在为正则表达式伤脑筋
正则表达式当然是好东西,就是每次都记不住规则,然后再试呀试
望着含糊不清的提示发呆
今天下午再次陷入这种状况
其实很简单,就是把一句话的(后面的一串去掉
可是我写出来的怎么都不对
要么停在)
要么doesn’t work
只好再次向35F2老兄求援
我就琢磨着,要不干脆花点时间写一个辅助程序,定义一些规则
来帮忙写。。。?
马上就想到我能想到的事别人肯定早就想到了
于是emerge -s regular,没查到什么有价值的
再跑到freshmeat.net上搜
果然搜出txt2regex!!!
用人类语言问问题然后生成正则表达式
哈哈
真是得来全不费工夫
花了10秒钟找到了答案
。。。可惜了我的一下午
哈哈,用proz代替wget了
# These settings were set by the catalyst build script that automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example
CFLAGS=”-O3 -march=i686 -fomit-frame-pointer”
CHOST=”i686-pc-linux-gnu”
CXXFLAGS=”${CFLAGS}”
USE=”MONO wxwindows”
FETCHCOMMAND=”/usr/local/bin/proz -f -r –no-getch \${URI} && mv \${FILE} \${DISTDIR}”
GENTOO_MIRRORS=”http://10.180.0.25
http://ftp.linuxforum.net/gentoo/
http://www.zentek-international.com/mirrors/gentoo/
http://ftp.gentoo.or.kr/
http://mirror.gentoo.gr.jp http://gentoo.gg3.net/”