I, Java [2]

1 Comment

三十年河东三十年河西,无论什么新鲜事物都有变陈变旧的时候,而人们似乎对陈旧的事物有天生的厌恶感,也许正因此,这个社会在很多领域也是呈一种螺旋上升的态势:以往新鲜的事物渐渐变得陈旧,最后被遗忘在角落,人们开始接纳了另外一个看起来似乎更好的新鲜事物,然后这一新鲜事物也仍有变得陈旧的一天,很可能最终臃肿不堪,而取代它的另一新鲜事物,有时也可能自上一个被人们遗忘的事物那里有所传承。闪烁着新思想的事物最初问世的时候都是那么的精巧凝练,不带一丝芜杂,当人们开始采纳它的时候,大概是因为人的需求总是多种多样的,总是有更多的人开始向它附加各种各样为了满足自己需求的负累,也许仅仅是为了方便。当时间流逝,它不再像以前那么新颖的时候,大家看到的它是一副臃肿不堪的德行,我需要这部分,你需要那部分,但无论怎样似乎都永远有裁剪不掉的不需要的部分,没有人需要那硕大无朋的整体,好像有无穷多的无聊的东西被强加给自己。如果恰巧某个时候又有人发现了新的解决办法,看起来是那么的精炼,大家审视一番后通常又会欣喜地接受这个新的东西,开始新一轮的你添我加。不过好在聪明人总是有的,虽然思想上可能类似,但是后来者几乎总是更全面地超越了先辈。

单说设计模式,并非是种发明创造,而更多的是从工程方面总结出一些经典的有效的实践。如何有效地让程序开发工程化一直以来都是业界一个不小的问题,而一旦程序开发被当作(简单)工程化的过程,参与这个过程中的程序员都难免要面临泯灭个性而化身螺丝钉的不快,就好像我们从来都很反感自己被某些不长进的人力资源部门的同僚们抽象为“资源”。牛人们自然不屑于一辈子当个螺丝钉,计算机这行也不缺牛人以及自以为牛人的人们,所以软件开发工程化大多数时候是被憎恨的,至少在我们国家,十几年前,一边说印度的IT行业如何强大如何赚钱一边又蔑视阿三那些螺丝钉程序员的同胞们是不在少数的。

而Java其实也很类似。任何一个写过一段时间Java程序的人应该都有体会,这门语言几乎就是照顾脑残的一门语言,无论什么地方都是啰嗦得不行,什么东西都是显式声明出来写在那里的,除了些奇技淫巧以外,所有的东西自编译起就固定了,而所有的可以操作的类都是继承自同一个根源,没有多重继承,设计一个框架和类库时就可以少考虑一些类型系统可能带来的问题;而说到类,这门号称面向对象的编程语言,实则就是面向类嘛;又因为语言允许的灵活性很低,所以IDE就可以干很多很多事情,于是开发效率似乎还不错。找个有计算机操作基础的人来稍微培训培训就能来编码干活,再找些有经验的熟手设计一个框架和相应的开发规范和流程出来,菜鸟们在自家的框架、类库的圈子内很难搞出太不容易收拾的破坏,hmmmm,这样一个容易工程化推广的语言和平台,简直是老板们的梦想照进现实。

当然,任何不屑于做螺丝钉的牛人,任何觉得自己不脑残的自封牛人,任何屁股决定脑袋的站在某些特殊立场的人,都会讨厌这样的语言和平台。

开篇说到几个月之前我的惆怅和惭愧,其实也多半是因为受这些人的影响所致。

惆怅,因为我们平时打交道的事情距离真实的OS和机器来说,真是太远。除了无聊地调各种API,现成的也好,不现成的也罢,稍微“底层”一些的事情确实不常见,不过有虚拟机这个平台横亘始终,我们也会看java字节码、javap的反汇编代码,会用ASM库操着java的“汇编”在运行期修改掉一个个的java方法,也会在少数没有办法的情况下劳烦JNI做本地调用,甚至在后来出现了android平台的时候,去看dalvik opcode,可是这又能怎么样呢?就算出现了一种机器可以让java字节码直接运行在CPU上,仍然有内存、I/O、网络这方面的细节被虚拟机妥善地封装掉了;即使无数次操着tcpdump和wireshark排查网络问题,挂着各种*trace观察JVM行为调查问题,

好在现在也算想开了。

I, Java [1]

No Comments

后来在大三暑假前机缘巧合被高中同学海子推荐去了北京实习,在一家国资背景的通信公司的子公司里做一些SP的行当。那个公司比一般的SP要强不少,要外包一些活计给稍微弱一些的SP和CP(内容提供商)。当时那家公司要做一个CMS系统给下游的这些SP和CP用,都是些输入短信息之类的破事儿,我过去实习就是做这个CMS,80%的时间里是自己一个人做,这才算开始用Java做一个稍微正式一些的程序。负责带我的组长给我介绍了Velocity,而不是扔给我那个当时看起来牛B得让我很担心自己学不会的Struts,让我有了一个还算不错的开始,可以接触一个设计得不错又比较轻量的东西,所以没有被现实世界中的Java开发一下子吓倒。

对于那个时候的我来说,那个CMS我做得还算凑合。当时也不知道什么单元测试,好在运行起来基本没有什么问题。不过整体来说,几乎没有太多设计方面的考虑,也不太懂得Java的接口要怎么用才好,于是抽象也都是基于Java抽象类做的,当然也无意中悟出了模板方法这个东西,直到N年以后才知道这也算是个模式。

虽然80%的时间里都是我自己在做,但是组长会时不时地看一遍我的代码,指出里面一些设计方面不太合适合理的地方,告诉我如果继续这么做的话,过几天你就会编码到很郁闷,不得不停下来大幅调整的。这是我第一次有意识地注意设计。从这个CMS开始,我了解到设计是很重要的,也不断看书看文章、读其他框架的源代码,不断对比自己那个很简陋的CMS的代码,一点点看到它的代码是多么的不方便扩展又暴露了那么多不必要的细节,这大概是我第一次被震撼了——事关设计。

其实实习之前还有个插曲。大概是大三的计算机网络课,老师布置了一个作业要做一个HTTP服务器用来传输静态文件。因为暑假里为了实现一个FTP客户端,我就已经自学了些Java的网络编程,所以这个HTTP服务器我也自然选用Java来做。用Java完成这么个小需求可以说太简单了,即使后来发觉没有多线程支持而自学了Java多线程并加入了这个功能,也没觉得特别困难,不过后来老师检查测试我们的作业的时候,也没考察多线程这块,所以都“奈何明月照沟渠”了。交完作业以后,我像以往一样得意洋洋地扫视自己的代码,忽然觉得似乎可以在这里这里做一层抽象,把HTTP I/O方面的逻辑提取出来,这样就可以用这个类处理静态文件,再用另外的类负责做PHP页面一样的动态输出了!就这样,我就动手开始整理现有的代码,开始向这个方向努力,做了个超简单的原型,也算麻雀虽小五脏俱全,还给这程序起了个J开头的名字——看,这就是个学了Java半年不到的大三小屁孩第一次意识到应该有个Servlet容器。后来这学年完事儿以后就去实习来着,也接触到J2EE的那些规范和Web/Servlet容器,才知道自己鸡血了半天做的东西早就有规范和N多臭遍街的实现了,可是看完人家再看看自己那设计… 唉,于是就把很久以来敝帚自珍的代码直接Shift+Del掉了。惋惜了不到5分钟。

因为当时还在上学,大三而已,所以平时还是会时不时地打开Visual Studio鼓捣些C++和C#。其实除了C++自身造成的boilerplate以外,我还算比较在意代码整洁和性能的,算法虽然不算当时所追求的第一要务,但是还是经常会注意的,再怎么说1秒能做好的事情拖个5秒也纯粹是有病;虽然用着128M SDRAM的机器,也还是可以看到内存会越来越不值钱的,所以空间换时间的小伎俩也是懂得的。当然可以说当时我在算法方面所有的追求都是属于一种很…可以说是纯朴的层次,能省则省,能优化就优化,即使是用Java时也一样,察觉到某些用起来很“舒服”的Java核心类库的调用可能带来很多额外开销的话,肯定会选择不那么折腾的做法,以及不滥用容器类之类的。除此以外,我知道用Java就会有虚拟机带来的额外开销,但是具体怎么优化呢?受当时能力所限,我一无所知。

大概直到近几年了吧,我才真的不忌讳说自己大学时留过级的这件事情。现在回想起来,也不是完全没有后悔当初的所作所为,如果当时“听话”,好好学习,没有逃那么多课去学那些自己感兴趣的“技术”,单凭着对计算机的兴趣,在校期间把基础夯实不是问题,即使老师讲得再少再没水平,上学期间的学习也不会比日后完全没有指导的自学更困难,更别提天大的老师不可能没水平,只是当初心思太活了,觉得他们讲的东西太圡了太没有时代感了。今天看来,实际上自己对底层和基础方面的知识、技术的兴趣一直强过对纯粹的应用方面的兴趣。学了C和C++,还是想看看各种vcrtXX.dll里是什么,glibc在整个系统里是什么地位,libstdc++怎么就显得没它那样“关键”?学了PHP做了个简单的留言板,还是想不通session和cookie有什么关系,X-Powered-By这个设置开不开区别大么?为什么用header()做跳转有时就“headers already sent”,但是meta refresh就没事?Java的虚拟机是怎么做GC的,类装载器干什么用的?异常桟这么神奇,一下子就知道是哪里出错了,是怎么做的?为什么有时又会看不到异常桟里的行号?——这些问题现在看起来都不算什么了,可是在当时那种情况下,对一个上大学前没接触过多少计算机教育的我来说,一边上着学校那些感觉完全和现实生活不搭界的课程,一边在脑袋里琢磨着这些问题,也算得上是往底层钻研了吧,无非是和一般的自底向上的经典路线相反,当年是因为兴趣而一路自顶向下钻研的,所以现在看来自己学到的东西多少都不是那么地系统和全面,而多是兴趣和视野驱动的,很实用主义。而现在,虽然用的语言和平台是Java,但是对底层和计算机基础方面的兴趣丝毫不减,在这方面如果遇到了些问题的话,相比之下要明显比关心公司的产品更让我兴奋得摩拳擦掌。

我想这应该不是偶然吧。作为一个还算说的过去的程序员,好奇心必不可少,了解事物运作方式的好奇心尤其重要,即使是作为平台的Java也完全不能禁锢这样的好奇心——从这个角度来说,Java并没有错。

我刚接触Java的时候,详细讲解Java底层方面的书籍和资料少之又少。当时我虽然明明白白知道世界上有Sun以外的很多组织实现了Java虚拟机,也知道这是因为Java虚拟机是有规范的,于是乎可以有很多种实现,但是常见常用的还是Sun家的,其他的如IBM和BEA的Java虚拟机基本是没办法接触到的,所以还是没什么选择,只能看Sun家的。核心类库的实现倒是可以参考src.zip,但是sun.*和com.sun.*下的内容基本上是不要想了;虚拟机方面可以看Java虚拟机规范和一本《深入Java虚拟机》,虽然过瘾,但是没有任何途径去窥探这跑着Tomcat的Sun家虚拟机到底是怎么样实现虚拟机规范的,又是不是真的如《深入》一书中那样运作的;散落在java.sun.com网站上的一些参考资料可以覆盖到不少Java相关的知识,可是看过也仍觉是隔靴搔痒,都是片段。诸如此类,诸多暗箱和黑盒,至少从我自己的经历来说,直到有OpenJDK之前,想了解些Java平台的底层知识的话基本都是无奈收场。

虽然当时我是个没毕业的学生,弱的不行,不过Java平台相关的资料比较欠缺的事实应该大家都有体会,这种情况下,用Java这样一种封装掉运行时细节的语言去描述一下应用方面常见的设计问题,甚至都可以算是Java在“学术”方面一个很不错的用途了——反正它的运行细节大部分时间里都是和黑盒一样,而在那个动态语言还没有集结发力的年代里,Java语言还算是主流语言里相对简单的一种。至今为止,Java都可以算是各种设计模式的最忠实的拥趸,所有的设计模式都有Java实现,而“得益”于J2EE/Java EE,Java阵营经常有达人总结出很多企业应用方面的模式,比如Enterprise Integration Patterns中的一大票都带着股Java味。在设计模式风头很盛的年代,Java似乎是最带感的语言和平台了。

就像当年我的同班同学里很多人不喜欢C++带来的大批boilerplate代码一样,应用设计模式时的一些繁复编码也逐渐让很多追求简单的程序员感到越来越不可容忍,而随着设计模式被鼓吹到大江南北,每个人身边也更是有很多言必谈设计模式、编码必套用设计模式的人时不时地让大家恶心一下,于是乎设计模式变得不再是那么可爱的东西了,甚至让人讨厌。紧接着恰巧Ruby on Rails也几乎在同期着实火了一把,让一群对Ruby、Python少说十几年的存在都毫无知觉的人一下子找到了新的G点,绝口不提以前常常拿来揶揄Java的运行时效率问题,个个变得喜欢上了这些更加动态的语言,因而更加厌恶语法啰嗦、沉重感十足又早已投靠设计模式的Java、C++,又以Java尤甚,毕竟C++在系统编程方面还算有一席之地,敢骂C++的也只有C程序员,以最坏的恶意揣测的话,这两“害”相权取其轻,Java真是不骂白不骂。可想以前设计模式风头正盛的时候,可是什么语言阵营都有人跳出来用自家语言实现些许模式的,只不过这些当初的设计模式达人现在大概也被当为家贼难防了吧。

I, Java [0]

No Comments

我是个Java程序员。

然而几个月之前,我一直在因为这个身份,或者说标签,感觉到那样沉重的惆怅和惭愧。

从第一次接触Java到现在,已经9年。

大学时,我一直认为C++才是我的归宿,而且也是如很多人一样,看不起Java、PHP、Python等等一切依赖于虚拟机、解释器的语言,觉得C++的复杂多变是锻炼程序员才能的手段,这门语言就是程序员的hard模式,必须足够优秀才能过这一关,过不了的全是业余票友,顶多做个ASP的级别的人。以《C++ Primer》第三版入门,Visual Studio .NET 2003是用的时间最久的IDE,自娱自乐了很久,收获也还不错。很多大学课程的作业都是可以用C或者C++做的,班上大部分人都选择用C,我还是那样沾沾自喜地用一大堆C++类搞定。如果当初看出某些端倪的话,也许现在的生活会大不相同吧,但是当时只是固执地认为,不懂C++这样复杂的语言的人只可能是不适合做程序员的人。

当然,并不是想说Java比C++简单很多。

其实接触Java是个很偶然的事情。记得似乎是大二期末后的暑假前夕,@远路高山 和班上几个对计算机应用方面比较感兴趣的人提议成立一个兴趣小组,大家也都赞同。这个小组的第一个课题就是找一门上学期间已经“学过”的C、C++以外的语言,自学一个暑假,大家下学期开学时交换学习心得。当时微软的.NET框架刚刚崭露头角,我也是自C# 1.0开始就关注了这门语言,又因为平时用的几乎都是Visual Studio,所以也自然和大家推荐C#这个触手可及的语言,不过@远路高山 觉得应该学Java。现在我只大概记得可能是因为J2EE当时风头很盛,而.NET框架刚刚摆脱Next Generation Windows Services这么个让人担心没有前途的名字,核心类库乏善可陈,看名字就很像是Win32 API的简单包装,企业应用方面更是毫无建树,C#看上去顶多是个比MFC做Win32 GUI应用程序更方便的玩具。于是虽然我能体验到C# 1.0那已经比Java更舒服的语法(糖),还是同意了@远路高山 和大家的想法,Java就Java吧。因为当时大家都很喜欢用IBM中心的一个很强悍的FTP服务器(xxx.yyy.12.21),我的目标就是一个暑假做一个简单的FTP客户端。

现在想想,@远路高山 可能是我遇到的第一个*nix爱好者,而我当年还是不折不扣的微软控,乐此不疲地钻研自己机器上装的Windows 2000 Server,自学了很多Win32编程,还有MCSE 2000那种东西,啃了那本巨厚的书以后就觉得不要从众去背题库考认证了,直到今天还觉得自己管理Windows服务器的能力不在一般IT人员之下 :)

很无趣吧?用Google搜索但是不知道Google背后的技术,骂百度搜索结果太垃圾但是不了解百度的技术在国内也是很牛的,用着腾讯QQ但是觉得不就是个破聊天工具嘛,不知道Amazon推荐系统,看到初生的淘宝的第一反应是“这什么破烂儿啊”;没有《浪潮之巅》,满目之中没有任何一家仰仗算法打天下的公司让我憧憬;没有Web 2.0,更没有Twitter、Facebook。每天上网去CSDN、VC知识库、大富翁论坛时,只觉得囊括世间最强大开发技术的领域就是企业应用,那些做网站的都是小打小闹,比个人主页强不了多少,而企业应用好像冰山一样,平时身居500强企业的实验室一般的机房,偶尔对大众露出一个角来也能撑起一个电子商务网站;看到有网站的URL里面有.jsp、.do就觉得这家网站一定在技术上很牛很牛,竟然用了企业应用的技术。看了《Borland传奇》也热血沸腾,觉得那些IT大鳄企业们争夺的也都是企业应用的市场;看到JBoss后起之秀挑战BEA WebLogic也是摩拳擦掌,觉得这才是未来。当时总是认为,算法当然重要无疑,参加ACM光耀门楣,但是请看,我们折腾了半天的那些算法都是最基本的,所有的企业应用涉及的语言和平台都已经把它们封装好了可以拿来就用,你自己还纠结个什么O(N)还是O(logN)啊,但是你要是不懂架构设计,你的算法再好也是散沙一片,你也还是做不了企业应用的啊!

这些想法虽然幼稚,不过现在来看也还是说对了一些的,比如说架构设计在一个应用中还是很重要。

于是开始了我的Java生涯。最初只是玩票性的,真的不觉得以后是会用Java实习和找工作的,因为当时也仅仅是觉得,这么个跑起来慢吞吞的语言,别的优势没看出来,反正是省了析构、delete什么的了,可是… 随便一个IDE怎么都这么慢呢?好不容易做了个GUI的应用,怎么能这么难看呢?这UI上容器一层套一层最后还要个Layout Manager才到真正干活的控件上到底烦不烦啊?不说IDE,就是自己做了个比“Hello, World!”麻烦点儿的应用程序,跑起来怎么还这么慢呢?怎么还时不时就僵死没响应只能等一会儿了呢?这玩意儿真能做牛气的企业应用么?

我还是会时不时关掉刚用熟的盗版IntelliJ IDEA,调出Visual Studio .NET 2003做几个win32的小程序,心里却很是焦急:人家用Delphi的圈圈点点就一个MIS出来了,用VC++要怎么做啊?我离企业应用到底是有多远?

——————–

本来没想写太多的,后来发现差不多能拆成3段了……干脆就别写到一起了,这个wp也没做静态化。

LMAX

No Comments

忘了是谁在微博上赞叹了一句LMAX,于是乎去看了看Martin Fowler老爷子的这篇“The LMAX Architecture”。

看过以后实际上觉得也很坦然,不管是谁赞叹的LMAX,终归是一个做Java很久的人。为了找到这位的原话,我也特意又去微博搜了搜,看到了很多做Java的人在同样赞叹LMAX。实际上只要看看Martin的这文章就能明白,核心实际和Java关系不大,倒是吸收了web界一直以来的很多做法、算法和架构,最终用Java实现了一套而已。我几乎能看到Martin老爷子星星眼的样子… 当然老爷子自己也还是很有自知之明的,比如这句:

Many programmers, and I confess I fall into this camp, don’t have much mechanical sympathy for how programming interacts with hardware.

还有之前一句以脚注出现的:

I rarely think about which collection implementation to use. This is perfectly reasonable when you’re not in performance critical code. Different contexts suggest different behavior.

哎,两句话就暴露出做(Java)企业应用以及企业应用架构设计的人一直以来的问题了吧。在现在web开发技术这样一日千里的发展的情况下,企业应用那套,虽然在设计和工程上仍旧有些许价值,但也真是有点儿明日黄花了,尤其涉及到性能、吞吐量这些。

算了,没太多吐槽的想法。Java作为一个平台也有些苦涩,特别讲求高性能的场合下只要有牛人加持的话几乎都不会选Java,但是JVM作为Java平台最重要的一个组件,又积蓄着很多力量多年的成果,尤其JIT和GC方面,而且Java语言又是那么地没有门槛,感觉长期看来在必须考虑人力开销的项目和产品里,Java也还是一直会是个不错的备选。

P.S.,LMAX开源出来的disruptor,各位看那个logo熟悉不 :D

说说“碰撞”

No Comments

都是基于我自己的理解,有错误的话请不吝赐教。

  1. Hash碰撞:参考 http://en.wikipedia.org/wiki/Collision_%28computer_science%29 ,只不过是说不同的数据凑巧有相同的hash值而已,这是数学上就已经有了定论的肯定会出现的问题,参见Pigeonhole principle
  2. CSDN etc.密码门:事件中网络上大量充斥的“碰撞”——比如这篇里 http://www.enet.com.cn/article/2011/1228/A20111228952093.shtml (其实微博上更多,懒得搜了,省得好像针对谁一样),其实就是“撞大运”的撞,“撞衫”的撞,可是和“明文”、“加密”这种话题扯到一起,很容易让人觉得是和前面提到的hash碰撞有关,实际上远没有那么高科技啦,rainbow table随随便便就拿去破解百万级别用户的密码?呃,反正我很难想象,也说不好地下组织已经不难具备这个能力了,但说起来还是拖库加社工库要划算得多吧。这个实际上是很无聊的话题,不过也算是我写这篇很短的东西的起因,因为各方面的说辞都要把我搞晕了,虽然我有很入门很基础的网络安全修养,不过也不是专门搞安全和加密的,大家你也碰撞我也碰撞的,搞的我以为中国加密和密码学一下子已经超越美帝来着了。
  3. 更最近的影响范围很大的web服务器Hash碰撞攻击:参见Ars Technica的Huge portions of the Web vulnerable to hashing denial-of-service attack。这个更直白(直白但没有那么简单),就是针对各种语言平台和应用服务器的常见实现,提交一些预先制造的很容易在特定条件(比如文中提到的随机化不太好)下发生(multi-)hash碰撞的数据,导致HTTP服务器的一些常见的hashtable的操作异常耗费计算资源——O(n**2)哦。

好了,其实真没什么可说的。

我的饭 [2]

1 Comment

又到了充数时间…

  1. 好多情况下只要诱导某企业的员工把一封收到的内部email——空白的都可以——另存成.msg格式就能拿到好多内网信息,比如各种服务器地址神马的。作为有个大概其就算是入门级安全素养的人来说,我对某些明目张胆自觉主动不用别人诱导就把内网IP这样的事情公布于众的事儿真是无话可说。2011-11-04 14:25
  2. 想提高productivity也不至于就去被洗脑吧?我是想换换脑子换换想法,可是这种玩意儿,一上来就要求我全身心去信任他,改变我的想法,我艹,你要不说你是方法论的话我还以为你是邪教了。有点儿越来越恶心了…2011-11-04 19:03
  3. 而且吧,对信任的要求有点儿过高。照我的理解,这个方法论敢于正视很多以往人们不愿正视的东西,可就不能正视一下人跟人很难完全互相信任的么?我要信任你这个方法论,管理层要信任团队,团队成员之间也要互相信任… 不得不说这样的话我怀疑整个系统太脆弱了。2011-11-04 19:06
  4. 我看着种种偏执狂一样的人的说法和做法,就不抱什么希望了。但愿这东西别最后跟ERP似的,“不上是等死,上是找死”。直觉上稍微有些不兼容的文化沉积的公司,最好慎重接受这个玩意儿。2011-11-04 19:08
  5. 每次老外一莅临我分厂做敏捷培训的时候,那感觉就跟我厂开人大一样。2011-11-08 10:49
  6. 这个sprint可是真的sprint了。不开笔记本了。2011-11-09 13:09
  7. 哎,需要有街旁、饭否、微博之外的娱乐项目啊… mIRC,乃的注册用户召唤你~2011-11-09 13:32
  8. 这是多少年了……debian和ubuntu总是盘踞Freenode在线人数最高屋子的头两把交椅。2011-11-09 13:59
  9. 好像Google就永远是正确的一样。除了这个粉就那个粉的,不粉点儿啥就跟找不着组织一样。没安全感么?2011-11-10 11:59
  10. “过了少年,失去青年,踏向中年,机灵,勤奋,困苦,无望,想活得更好,活得更不好,有理想,不敢想,想创业,怕失败,盼真爱,却已婚,恨特权,又敬畏,怨体制,但想做公务员,要买房房价涨,要买车油价涨,吃饱了勇敢,饿着了懦弱,遵纪守法,但眼看着胡作非为的一个个发家,想胡作非为,上路…2011-11-10 12:41
  11. 哎,力争做个差不多的REST风格API,挑挑拣拣了半天状态值。2011-11-10 19:15
  12. 哎,我可没干过文档截图里的某高亮的文本框里的输入和文档其他部分说明要输入的东西对不上的情况,顶多整个文档太过时了没更新。而且也没捧铁饭碗干这个。2011-11-11 02:13
  13. 下午的时候让某小朋友同事看他的ff版本号,然后让他猜最新版的大版本号是多少。结果这小朋友用的还是3.x… 虽然现在ff不是主力浏览器了,不过这5、6、7我都是装上还没捂热乎了下一个大版本更新就来了,真是太刺激了。2011-11-12 00:56
  14. Jxxxxx your YYYYY domain PASSWORD will expire in 9 day(s)! – 哎,总看着跟促销广告一样。早改域密码能来个邮箱quota大优惠么?2011-11-13 01:44
  15. 我去,O’Reilly这回是干啥嘛,看意思 Node: Up and Running 中英文版同步发布很有戏?看oreilly.com上Early release版本的评价不咋地么,都说太basic。哎,也不是门语言神马的,太basic确实没意义嘛。2011-11-13 22:00
  16. 我在环球置地广场:破地方,这个点儿了还堵成这样。然后两个车位都过窄打不开门,悻悻地下地库去了。 http://jie.pn/p_IE0–9IB 2011-11-14 11:20
  17. 好多不错的歌大抵最后都是因为让别人当了手机铃声完后还总不接电话而毁的。2011-11-14 16:02
  18. 看来这次迭代按时完成是没啥问题的,提前个3天左右也很可能,而且完成了比较麻烦的搭新架子阶段,还保证了主要逻辑都有单元测试。2011-11-15 18:56
  19. 哗!小饭盒儿有固件更新了!大姑娘上轿头一遭啊!可别给我升级出问题来…现在无线完全指望它了…2011-11-15 22:21
  20. 简直是… 算了算了,你们决定吧,决定好了告诉我。我是coder。2011-11-22 23:31
  21. 哟,公司HQ新地址,430 North Mary Avenue, Sunnyvale, CA,看起来还挺牛叉的,地图上还瞅见NASA Ames研究中心。刚还跟人说起Ames这个词,完全是看动漫认识的。2011-11-29 10:02
  22. 我觉着有些人也许还是离职换个地方的好,不是逃避,而是没有必要和一些偏见浪费时间。通常发生在某个在厂工作时间很长的人身上,可能因为种种原因,被些偏见阻挡,没法做到自己想做到的那一步。当然前提是自己主观上真想做好,光是想做做样子骗人的话就洗洗睡吧。2011-11-30 15:58
  23. 我在环球置地广场:去尼玛,不伺候了。挤兑死我就得了。 http://jie.pn/p_IE3vvPAB2011-12-01 16:39
  24. 总算搞定了……… 准备得可能太多了,哎,但是Web Worker、Web Socket的东西都没涉及。还是觉得Device Orientation API的例子最好玩 :-) 2011-12-02 19:09
  25. 买了本儿Sheldon写的书。2011-12-08 10:23
  26. 神马逻辑,预估得准是因为估的日子多,尼玛的。是不是都他妈党员然后又不好意思说出来?2011-12-08 12:18
  27. IconFactory坑爹啊… 以前买的Twitterrific Premium怪不得这么久不升级呢……!我都已经当丫是一先烈了结果丫赚钱赚得正high呢!2011-12-08 23:55
  28. 我在盈江西里:作为一名普通青年,不删掉iPod Touch里面装的musée du Louvre是有苦衷的。 http://jie.pn/p_IE0xCv4B2011-12-09 00:10
  29. @webto 我能回忆起来的是,某个或者某些冬天的10点来钟,刚睡醒,宿舍里没人,或者有几个货仍旧死死地睡着,反正很安静,然后阳光照进来,能看见空中的灰尘,外面刮着大风,树影都晃着。2011-12-13 22:56
  30. 哎,真懒得说,也不查查iTunes gift card的使用条款。2011-12-14 18:40
  31. 算了,本来也不是多social的人,装这networking的节点干啥哩。2011-12-16 01:23
  32. 好久不来聒噪了,今儿上来骂一句GFW。某小朋友调查bug,调查完了颇有心得地和我描述,我听完问,您了介不会就是撞墙了吧?一试验,果然,唉,耽误多少人的青春。以后同学们都再碰见这个都上网扎针去吧。2011-12-16 10:51
  33. 没coffeescript真是要没法活了。2011-12-17 01:43
  34. 我在盈江西里:总算看到了result=”success”,多线程也不用自己操心了。困扰了一天的问题是某size值少算了一个8bytes大的header… http://jie.pn/p_IE3vEQ8C2011-12-18 22:38
  35. 我厂的问题就在此。原有团队的人几乎都在原地踏步,似乎觉得新人来了可以直接拿来使唤。 转@qinyf 可以想像,一个企业或者团队经过几年发展,规模逐渐扩大。吸引的人才的 level 也会要求越来越高,对原有团队的人的 level 要求也水涨船高。每一个人都要不断成长才有戏。2011-12-19 11:36
  36. Want WorkFlowy on your iPhone, iPad or Android device? Just open workflowy.com in the browser. ——赞啊!厚道。虽然我觉得以后肯定有人做web版神马神马store,最起码现在是不要钱。2011-12-22 00:39
  37. 说到web版store的话,想必支付宝和paypal稍微做做就可以搞一个控制欲不太大的原型出来。2011-12-22 00:40
  38. 看到一个gem叫rubypython…真蛋疼…2011-12-22 22:20
  39. 这都是…神马啊!搜个“红旗路”三个字想查个邮编都TM能撞墙,MB的浑身G点啊?!2011-12-24 22:07
  40. 平安夜,爸妈还在海南happy,我跟媳妇儿宅了一天:她加班给自己和班组写总结,我在改个不知道以后能不能如愿以偿用上的程序。虽然听起来挺苦逼的,也还算是生活。2011-12-25 00:55
  41. 我在盈江西里。某个东西尘埃落定,好像也没激起什么反响,就不说什么超前、落伍的话了,太臭。好处是至少可以看本儿轻松一些的书然后早睡几天了。 http://t.cn/SMcA2v 2011-12-27 00:18
  42. del.icio.us总算不再那么萌化下去啦!近期唯一一处常用web服务方面的惊喜啊,除了github改了改导航和布局神马的以外。 2011-12-27 01:09
  43. 要命啊,推荐列表上第一个是Let Over Lambda,靠,这书就算真舍得那银子买回来,一礼拜能看明白2页就是胜利啊。2011-12-27 18:32
  44. 墙头草,360°倒。总有一天有那么几度上你会碰见所谓的行业壁垒吧,我倒希望是您现在抛弃的IT业。放着高附加值前景的不干,哎,不是我情何以堪的问题,就算我活到敲不动键盘的时候,能看见这个行业的腾飞,也能瞑目了。2011-12-28 10:14
  45. 行行出状元,干好了都不容易,所以不是我不尊敬其他行业,而是不理解,为什么上这么多年学、读这么多书,那么多个日夜守着枚56k猫挣扎着以一小时1MB的速度下载资料学习,那么多小时焦头烂额的除错、重构,才能安身立命的行业,就能让其他人这么不尊敬,甚至同行也觉得这行是坨屎的。 2011-12-28 10:12
  46. 总有些人一说话就跟让人传了-vv 一样。2011-12-28 18:28
  47. 哎,有啥可说的。这国家就是充斥着各种不知道锅是铁打的人,兴冲冲地跑国外去了,或移民或长期停留,然后郁闷了,回来说三道四。一句话:白长这么大。2011-12-28 18:46
  48. 哎,欧洲的书一本儿一本儿地买了看,看了买,反正不知道下次得啥时候了。屎一样的工作也得做,要不然就饿死。 1月4日15:44
  49. 好!一年为期!!! 1月4日20:56
  50. 哎哟,看意思星巴克跟我是真不对乎。母亲的。 1月5日12:22
  51. 一咬牙一跺脚,我把这电视节目戒了。 1月5日17:43
  52. IT这行儿是真强大,plot y=|sin(x)|, x=-pi/2 to pi/2 ,x轴是能力值,y轴是薪水。我姑且表示作为一个一瓶子不满半瓶子咣当的人压力真大。 1月5日18:28
  53. 说到底其实也就是政治而已,而我在那几个小时里还真就当真了,还难过了一个晚上。真尼玛该自己抽自己啊。2012-01-09 10:16
  54. 艹,看到jcp.org下面刺眼的Oracle大红标以及左边的“© 2012, Oracle Corporation and/or its affiliates.”,我是真不想再看什么Terms of Use和Privacy Policy了。2012-01-09 10:58
  55. 昨天team meeting后的内部技术研讨会上是我这辈子头一次想正面提一次微软的企业应用技术和产品线,后来想了想还是作罢了,差不多都给洗脑了,我要提微软的东西,估计能研讨到晚上7点钟去。我还得回家哩。  1月10日10:46

———————————————————–

嘿,其实里面夹杂着微博的链接,因为某神嫌我乱同步,所以不得不把街旁的饭否同步给关了,以后再想写“我的饭”系列估计就麻烦了…

反正也没人看 :D

Murphy’s Law的一天

No Comments

2012年工作日头一天,结果悲剧收场,活生生验证了Murphy’s Law:Anything that can go wrong will go wrong. ——好像说法很多,不过大抵就是这个意思吧,凡是可能出错的事情都会出错。

这次是以前就标记成TODO的两个地方,其实也不是那么容易发生的,而且我也确实不想武断地找一个解决方法就干掉,于是就标个TODO,结果就是这两处我觉得不太可能发生的事情,就让QA MM一击必杀了…… 所以像今天这种处于sprint之交应该会比较闲的日子反倒过得很应接不暇。

诶,不像是啥好兆头哇~

就是某X人今天正式宣布去留了。

2012

No Comments

<EOB>

我的饭 [1]

No Comments

哇嘞,离上一篇 我的饭 [0] 距离2年多…
其实微博上互动更多一些了,因为熟人基本都不在饭否,不过也因此,饭否上面更纯净,也更适合集中发到blog里面。

  1. 避免再次被问,抢先贴出来。不是什么东西都可以拿价格比较的,何况两个分属不同子类型的东西,所以不能非觉得由于一个全自动的DeLonghi的价格能买将近3个Rancilio Silvia所以Silvia肯定不如这台Delonghi。上网搜DeLonghi vs Rancilio吧!2011-09-29 14:38
  2. 再说了,Rancilio Silvia可是专家@momotestversion 推荐的,要是Delonghi能争气点儿的话估计我都不会有机会知道Silvia了。2011-09-29 14:49
  3. 查了查地图,从爸妈家走沿海高速去北戴河也就259公里,多的那90公里在高速上真是屁都不算,看起来自驾一趟的可行性还是很高的啊。2011-10-02 21:22
  4. CEO又跟收件箱里面刷屏了…2011-10-05 21:11
  5. 看了《中国政治随想录》,解决了不少疑问。以前的某些想法确实分裂 :D  http://t.cn/adeawJ 2011-10-07 23:11
  6. 微博真是好东西啊。以前你觉得很不错的人,在微博上fo了一看,好像从来不认识过一样,又重新认识了一次,而且只有惊愕,没有惊喜。2011-10-08 14:18
  7. 10年的时间里有很多次机会可以改变很多事情,最后都因为太懒惰,忙着学习以后不知道用不用的上的东西,最后错过了,到了今天只剩下惊愕。当然我也从来不相信如果时光倒退回去现在就能更好,或者更坏,反正现状是很不赖,这就很幸运了。2011-10-08 14:23
  8. 昨天回家的路上,翻腾出初中时买的Aqua和高中时买的Backstreet Boys。虽然媳妇儿抗议不想听这种,也还是放了一路 :D 2011-10-08 16:48
  9. 神人今天显了一次灵,用一种在我看来非常暴力的方式把VPS的系统从9.10升到10.04,给我留下了大批的作业… 今天晚上估计要以啃这些收场了 T___T2011-10-08 18:23
  10. 哎,还有scponly这种玩意儿。虽然不是特别适合,也还可以凑合了,先上上。2011-10-08 20:53
  11. 哎,虽然神人力挺,还是没办法习惯cherokee-admin… 本想趁机往高层次走走,结果点来点去把自己点崩溃了…2011-10-08 22:51
  12. 我嘞个去,欲哭无泪… 折腾了2个多小时的rule,敢情人家Cherokee直接可以加一个wordpress用途的虚拟主机,然后rule就都建好了,不管后端到底是php-cgi还是php-fpm,我去,虽然很傻瓜化吧,可还是不爽哩……2011-10-09 01:32
  13. 强烈怀疑IT为了不让大家觉得套上VPN反而比他们自己精心打造出来的网络还快而禁了VPN。2011-10-09 11:13
  14. 总有人说过度设计的事情。过度了当然不是好事儿,最起码可以说是不经济的。不过太快了没设计也不是啥好事儿,比如我想改的这个东西,现在完全是狗啃刺猬无处下嘴,想改就是硬改。而且十分不好做mock来支援unit test。2011-10-10 23:32
  15. 以前朋友想全职炒股,我总说中国这股市太不透明了,最好别把宝都押它上面。其实现在想想,股市还算不错了,虽然XX总是有些下三烂的招数,不过一来有数据和数字的支持,有据可查,二来这帮也快黔驴技穷了。其他的路子也是各种的不透明,但是最后也不会摆到台面上,始终无迹可寻,只能心知肚明。2011-10-12 17:05
  16. term上站,发现Java版的备忘录还是当初折腾半天做的Java杯logo的ASCII art,真怀旧啊。还有当时得到了隐身权限的时候是迫不及待地隐了,现在是上站立刻取消隐身,生怕熟人没看到我…2011-10-12 21:14
  17. 娘的,怕啥来啥,就今天请假了,结果4单快递全TM今天送到,哪个快递公司都不看我留的备忘说别今天送货的… MLGBD…2011-10-13 16:03
  18. 不错,我遗忘某些破事儿的速度比我预料的要快很多,今天想起来查看的时候已经完全跟不上那破事儿的进度了。好,就这么忘了吧~2011-10-14 23:22
  19. 闹了半天还是这个mDNSResponder的问题。以前是无故占满一个核,换Lion之后蔫巴了,不去霍霍CPU,直接搞个所有DNS都不解析的症状。今天查了查资料才知道这个mDNSResponder不光是负责mDNS了,而是似乎所有的DNS都管,于是launchctl重启了丫的…2011-10-15 21:08
  20. 车停外面了。一旦不用抢小区里的车位的时候,我总有种强烈的想半夜出去飙车的冲动。要不然就挺到5点来钟去趟赵师傅?2011-10-16 01:07
  21. 臭不要脸的连win32 openssl都封。2011-10-17 14:01
  22. 最近八成是上凳次了,外面的咖啡完全喝不惯了,从麦当劳鲜煮到SB、Costa,加糖加奶也难受了,除了在家的时候冲SB的速溶。不知道真是凳次品味升级了,还是岁数大了不爱吃甜的了。2011-10-17 15:59
  23. 每次沟通最后都是无话可说,找机会quit吧。我们都是很实际的人,没法浪费这个时间。谁不想做个全知全能的人?谁不想一上来就高瞻远瞩掌握所有的设计和细节?可事实证明这经常是不可能的,尤其这么大一坨产品。从实际出发最后变成我们好像一群傻逼,天下唯一的一个全知全能的人在我们team。2011-10-17 18:31
  24. 我都懒得说有多少次编码时能推翻不少当初的设想了,只不过因为设想已经commit了,推翻的话很多人脸上会不好看。我承认不指出来是我的问题,当然看不出来也是更大的智力问题,甚至说如果看得出来但是因为当初自以为全知全能做了设想而不方便推翻,这就有点儿职业道德问题了。2011-10-17 18:36
  25. 某产品线强势而另外一条相比却弱势,这种情形不可能没理由的。早就听腻了各种胡扯解释了,就看当初的人员配置就够了。以往认为从头到尾都太被动,所以才会出现这种现状;现在感觉被动得已经深入这产品的基因了,所有为这产品工作的人都被动。2011-10-17 18:43
  26. 我真不知道这情形怎么形成的,可能是起主导作用的人们都太强大了,完全可以被派去竞争对手那里从内部瓦解敌人,因为搞破坏方面的属性值远大于建设。2011-10-17 18:44
  27. 临走补充一句:找台不错的机器,java开发可以体会不到那种沉重感,最起码IDE的重构功能都很便利,很方便在开发过程中迅速修改小设计和大设计。谁爱骂IDE谁骂,IDE和其他替代品都有各自的优势和适用性,总是有些牛人跳出来聒噪一通,力图让IDE用户总是有种智商上的屈辱感。2011-10-17 18:55
  28. 牛人都不需要重构,牛人都是画画UML图念念咒语就能生成一个跑个10年不出异常的系统。所谓可执行UML初级阶段。2011-10-17 19:00
  29. LinkedIn厚道诶,做了它的调查还真给奖励啊。选了“¥175 CNY Amazon.cn ® E-certificate”,不知道怎么个意思,应该最终会到卓越帐号里面吧,哇哈哈~2011-10-18 16:55
  30. 买早点回家时发现我住的那栋楼里款款走出口罩萌娘一枚。2011-10-19 12:46
  31. 怀疑俺们外教今天擦的是Six Gods,回头问问伊。2011-10-19 13:37
  32. 抽时间修炼下TeX,反正公司的活计也不涉及CJK的问题,刚入门也不怕涉及CJK玩不转。看能不能逼疯几位…2011-10-19 13:52
  33. 台北的机场/是一个分手的老地方/你的心情也和我一样/难过却无法去抵挡2011-10-19 22:44
  34. 买了4本书,其中3本是Objective-C和iOS开发的,一本儿是心仪但不急需的Debug Hacks,最终花费:人民币8元1角。哇哈哈!!!2011-10-20 16:50
  35. 麻痹的一到下午这网络就跟他妈要死一样。还TM软件公司了,一边儿软去吧。2011-10-21 15:34
  36. 预览.app,全屏模式,双页屏幕,看电子书真是享受哇。O-C的书还没到货,先来本儿pdf解馋。2011-10-21 22:25
  37. 我好像看出来了。似乎某人之所以回复了是因为另一个某人的这些问题都问在他的comfort zone里面?我觉得完全是扯皮的问题…这么主观的东西就这么来回扯皮,email穿梭不停,大家SB惜SB地惺惺相惜,好像做了很多事情一样。最后只留得在下一拍键盘,骂道:你们丫到底解决个屁问…2011-10-23 02:36
  38. 换了是我,如果这些破事儿每次都要发自内心地真诚地提一遍出来的话,日久天长,我就该有祥林嫂的本事了。可惜这似乎叫做proactive啊,妈的。2011-10-23 02:39
  39. 看看看看,你们圡了没:OWA的UI可以改theme…2011-10-23 02:41
  40. 书有明笔、暗笔、伏笔、顺笔、倒笔、忿笔、惊人笔。2011-10-23 16:47
  41. 哎,嘛都不说了,说了也多余。自己管好自己就完了,继续恪守我自己这么多年来不劝任何人的规矩。虽说不破不立,然而发现新立的快要变成被破除的了。2011-10-24 22:25
  42. http://is.gd/Izl8tf 明确说的是iTunes Store上买的礼品卡和cert只能是哪个国家的人买的就由哪个国家的人消费掉。所以,某大叔 :D 2011-10-25 16:52
  43. 这个行业真不该是这样一个可以让个小屁孩笑话的状态啊,残念。2011-10-25 17:57
  44. 看着O-C又让我想起来当年上学的时光,还想着要一辈子干C++(没有C…),绝对不碰Java这种让人鄙视的带垃圾回收的语言,程序员应该永远不嫌麻烦,云云。2011-10-26 22:20
  45. 不过眼下看的这本O-C的书,买它又重蹈了上次买PL/SQL书的覆辙,书评说太简单了有C基础的人不要买,我又本着从〇开始的初学者心态把它一并买了回来。确实讲C太多了,因为前一阵又恶补了C,所以基本上到目前还是一目十行这么看的,看到中括号才停顿一下。2011-10-26 22:23
  46. 水果家的开发者网站还挺玄乎,一会儿.php,一会儿web objects,一会儿疑似WebWork的带着jsessionid的链接。2011-10-26 23:14
  47. 立场不一样的人互相争吵是很正常不过的事,只有部分人真的是从内心觉得另外阵营的不同声音的存在不是没有意义的,更少的人能做到自己占优势地位的时候不会对其他阵营的人赶尽杀绝。2011-10-26 23:22
  48. 观有关敏捷的争吵有感。很多网上看似话语权很足的人,其实也都是普通人,普通人容易落进的俗套他们也免不了。还是自己力挺自己吧。2011-10-26 23:23
  49. 曾经对XCode最大的不适应就是……长的也忒像iTunes了啊……2011-10-26 23:29
  50. 我真是服了。好吧,我们都是偷懒的傻逼,你们都是三八红旗手一样的存在。2011-10-27 11:39
  51. 噢~敢情我没给layoff啊,只是椅子临时让人拿走了而已啊。白偷着乐了。2011-10-27 11:55
  52. 哎,国外这么多管理专家和过程专家都强调要正视的东西,我们一小同志都觉得可以忽略。潜台词都要呼之欲出了。不入党真是浪费了。2011-10-27 12:16
  53. 切,给人打tag是多容易的事情啊,从来都不屑于做。2011-10-27 13:35
  54. 不得不说,虽然QIM评价挺高的,可真是买完mac后买的比较失败的一个软件。刚开始用着确实挺好,大概2个月后开始,出现候选字浮动条消失的问题,没法选字…升级后解决了这个问题。然后最近3个月频频出现启动困难的问题,切换输入法切换到QIM的时候总是卡住一会儿,没法输入,编辑框所在…2011-10-27 16:10
  55. 正当我觉着差不多都可以忍了吧,最近出现词频和自定义词似乎被重置的现象,白训练丫这么久了,打开“用户词库”还能看见的词就是输入时不会出来了。我就不提刚付费完这东西就变成免费的这种丧气事儿了。哎,换Sun Pinyin吧。2011-10-27 16:12
  56. “Currently, no features of Objective-C 2 work with GCC.”,哎,可惜了,还真想操持操持,比C方便,又不像C++那么… 结果正宗GCC上的支持还是不到位。据说还是因为水果不回馈给FSF GCC。2011-10-28 00:32
  57. XD 外教来了,发现椅子也没了,they stole my chair?!2011-10-28 11:15
  58. 有日子没看GR了,先扫一下煎蛋吧!2011-10-28 12:48
  59. 真惊悚……都什么年代了,点个链接看门店列表,直接返回一张excel表格下载。2011-10-28 21:38
  60. 老了,老了。总觉得坐火箭一样成长的不光是计算机行业,可能还有伴着它的从业人员。行业也许可以一直这么疯长下去,人可能还是受不了的吧,尤其是不处于制定规则的那集团的人,总是疲于奔命的感觉。2011-10-29 02:04
  61. 介大爷还说以前自己是干开发的……………… 一点儿都没发觉像个做开发的人的样子………………2011-10-31 11:55
  62. 刚跟人说,2杯SB外带,晃悠着一路拿回来分赃,打开盖子,顶着一坨屎一样的是他的玛其朵,晃得跟稀屎一样的是我的拿铁………………………………2011-10-31 13:24
  63. resauce, sauce code, view sauce.2011-10-31 15:34
  64. 哟,不错,N年以前用的UrlRewriteFilter的license也彻底变成BSD了,以前还GPL加商业用途的双license了。行,这下好办多了。我厂的圡鳖律师们……2011-11-01 14:18
  65. 我在环球置地广场:签。阿娇大爷走人了,哎,让你看我头像不爽……………… http://jie.pn/p_IE1CybsB2011-11-01 14:23
  66. 从外面往家走,后面有个MM也回来,手机铃声刚好响起,是永远的超级玛丽那个音乐,我一听这个音乐就不由自主地一溜小跑起来…2011-11-01 23:31
  67. 这就是为啥越来越多的人都去创业型小公司。尼玛扯淡货。2011-11-02 15:50
  68. 嗬,公司介会议室配置太不够了,必须补贴我下午贡献出来笔记本然后大家才得以坐大厅里开会。话说以后可不能轻易拿出去了,回来一看上面喷的净是口水的痕迹,唇枪舌战啥的对防炫目屏幕太具杀伤力了,因为… 没法贴膜…2011-11-02 22:37
  69. Hmmmmmm….
哎,充数的好方法,回头再考古9月份的去…

Lion经验两则

No Comments

最近经历的Lion下比较想记一笔的经验,凑个数吧。

  1. 无厘头的DNS无法解析问题。

    不知道为什么我总是碰见这个问题… 网上搜了搜似乎也不是很常见。

    症状很简单:DNS无法解析,重设DNS服务器地址、DHCP的话重新续租等等都没法解决。

    解决方法:重启mDNSResponder服务。

    似乎有些简单粗暴了,不过确实没找到其他方法。记得Lion之前,这个mDNSResponder服务就总给我找事儿,不过那时的症状很明显,一般是从休眠唤醒之后,mDNSResponder进程的CPU使用率异常高,占满一个CPU核心;升级到Lion之后就再也没遇到这个问题,当时还觉得这个升级的钱花的值得。结果,后来就时不时地遇见DNS无法解析的问题了,无论怎么修改DNS相关设置都没法解决,syslog、dmesg输出也没有任何异常信息。后来想起来mDNSResponder最近很是消停,就上网搜了搜,才知道原来这个服务不像名字暗示的那样只负责mDNS,而是负责所有解析了。也许咱家接触Mac太晚了,不知道这个服务的渊源,我只记得Ubuntu下关掉Avahi是不影响其他DNS解析的。

    于是老方法重启了mDNSResponder服务,问题解决。

    
    launchctl stop com.apple.mDNSResponder
    launchctl start com.apple.mDNSResponder
    

    果然咬人的狗不叫。

  2. 把用户追加到其他组。

    各种userxxx命令在Lion下都是没有地,只有万能的dscl。简短截说,一个例子:

    
    dscl localhost -append /Local/Default/Groups/wheel GroupMembership iusr
    

    其实刚开始也就是知道dscl这么个东西而已,不过好在有-list命令可以去遍历“/”下的各个节点,然后就比较简单了。需要注意的也就是不同版本的Mac OS X的本地目录(此目录非彼目录哇~)下的用户组的路径不太相同,本地目录作为数据源的名称也不同,这些不同之处基本上不带参数跑一下dscl也就看出来了,就不废话了。

    哦,网上有人说用水果官方的Server Admin Tools来做这个事儿,不过我试验了一下,类似wheel这种组是看不到的,dscl下反正是可以看见,命令行也简单直白,所以就不纠结Server Admin Tools了。

以上~自行su/sudo。

Older Entries