Jan 28
IUSR补充两句 disruptor, java
忘了是谁在微博上赞叹了一句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平台最重要的一个组件,又积蓄着很多力量多年的成果,尤其GC方面,而且Java语言又是那么地没有门槛,感觉长期看来在必须考虑人力开销的项目和产品里,Java也还是一直会是个不错的备选。
P.S.,LMAX开源出来的disruptor,各位看那个logo熟悉不
Jan 16
IUSR补充两句
都是基于我自己的理解,有错误的话请不吝赐教。
- Hash碰撞:参考 http://en.wikipedia.org/wiki/Collision_%28computer_science%29 ,只不过是说不同的数据凑巧有相同的hash值而已,这是数学上就已经有了定论的肯定会出现的问题,参见Pigeonhole principle。
- CSDN etc.密码门:事件中网络上大量充斥的“碰撞”——比如这篇里 http://www.enet.com.cn/article/2011/1228/A20111228952093.shtml (其实微博上更多,懒得搜了,省得好像针对谁一样),其实就是“撞大运”的撞,“撞衫”的撞,可是和“明文”、“加密”这种话题扯到一起,很容易让人觉得是和前面提到的hash碰撞有关,实际上远没有那么高科技啦,rainbow table随随便便就拿去破解百万级别用户的密码?呃,反正我很难想象,也说不好地下组织已经不难具备这个能力了,但说起来还是拖库加社工库要划算得多吧。这个实际上是很无聊的话题,不过也算是我写这篇很短的东西的起因,因为各方面的说辞都要把我搞晕了,虽然我有很入门很基础的网络安全修养,不过也不是专门搞安全和加密的,大家你也碰撞我也碰撞的,搞的我以为中国加密和密码学一下子已经超越美帝来着了。
- 更最近的影响范围很大的web服务器Hash碰撞攻击:参见Ars Technica的Huge portions of the Web vulnerable to hashing denial-of-service attack。这个更直白(直白但没有那么简单),就是针对各种语言平台和应用服务器的常见实现,提交一些预先制造的很容易在特定条件(比如文中提到的随机化不太好)下发生(multi-)hash碰撞的数据,导致HTTP服务器的一些常见的hashtable的操作异常耗费计算资源——O(n**2)哦。
好了,其实真没什么可说的。
Apr 10
IUSR咿咿呀呀, 技术文章, 补充两句 qcon
继续。对今天的讲座多少有些失望,同去的同事们也这么说。也算说明一个问题:别以为站在台上的就都是无比牛气的。我看着失望还无所谓,一牛人同事也觉得今天的session比较失望,那就是问题了。
今天的选择:
想去而没法去的是:淘宝网线上线下性能跟踪体系和容量规划(幻灯片下载) ,讲师:吴毓雄;基于Spring 3.1的现代组件设计(幻灯片下载),讲师:Juergen Hoeller;艺龙旅行网架构案例分享(幻灯片下载),讲师:贾志峰;企业级软件的组件化和动态化开发实践(幻灯片下载) ,讲师:池建强。
今天的内容感觉没啥意思,所以也不想太多点评了,诶。
- 2011年的企业级Java和超越:从JavaEE 6到云计算:本来人家名字是Jürgen Höller,结果被替成了Juergen Hoeller,怪不得一直没认出来这是谁是干啥的呢(呃,我承认没仔细看QCon的讲师介绍材料)。直到幻灯片一开始,看到了名字,才想起来,SpringSource的。这个session整体来说,比昨天Oracle的Chuk Munn的演讲要“亲切”得多。都是讨论Java EE和云计算,Oracle一副一家独大不容置疑的样子,发明出来那一堆乱七八糟的东西(虽然Chuk Munn强调过那些小发明只是目前的状态,以后完全可能改变),而这位出身SpringSource的大叔对各种业界已经在用的云计算平台起码表示一种承认和尊重,虽然也没忘了给Spring框架做广告。总的来说是对现有很多和话题相关的技术的一个不错的覆盖和介绍。哦,让我比较高兴的是老大预料太依靠状态的范式应该会逐渐减少直至消失,至于JSF这种强烈依赖状态的东西八成就要消失——但愿,一直觉得JSF麻烦得要命,IDE支持又比不了ASP.NET,真白搭。
值得一说的是幻灯片里特别提到了新的ForkJoinPool,也就是执行fork-join风格任务的线程池。这应该是Java 7会装备的特性,看上去是并发的map/filter & reduce,诶,Java总算也有这么个东西了。不过就像java.util.concurrent第一次引入一样,不涉及任何语言变化,纯粹是为了提升开发效率。不知道新的ParallelArray类能不能解决好诸如locality的问题——诶,跟神人习得的词汇,现趸现卖了 
还提了一个问题:假如在服务的低谷时段,在线用户数量比CPU核心数量还少得时候,应用该怎么办?噻,我从来没想过这个问题,总之服务器是不会因为买卖儿不好就想不开自尽的吧。
- 百度离线集群整合之道:这个算是今天觉得比较不错的一个session。内容讲的是BVC——Baidu Volunteer Computing——这一系统,试图利用现有服务器的剩余计算能力为其他应用服务。Volunteer Computing不是啥新鲜事物了,我也是SETI@home和BOINC项目的N多年的资深计算节点老板了。BVC挺有想法的,不过不怎么明白的是怎么会有那么多剩余资源,多到需要建这么一个系统来统一管理?没规划好么?会后和公司的牛人讨论这个话题,还是觉得,涉及到分布式解决方案的设计的时候,明显感觉很多系统有同质化的趋势,听多了就没什么惊喜了。也没办法,就那些算法和范式。
- 基于云计算架构构建Netflix:见到了Adrian Crockcroft,所以很激动来着,然后发现这个session基本是Amazon的云计算产品展示会… 好在下午的内容没让人失望。此处省略好几百字。
- “稳定压倒一切”——银行应用中的稳定性考量:呃,这个吧,听上去还是以前企业应用的那些东西呃,顺便说了说ESB和SOA神马的。整体来说没什么感觉。
- 淘宝前台系统优化实践:说实话抱着很大希望来听的!结果好像此前台非彼前台啊。想必淘宝整体架构太庞大了,所以前台就是他们的web页面服务,不是折腾浏览器这头儿的东西。总的来说,这个session是多半场Java培训,至少我表示没有压力啊没有压力。后面的性能对比部分里的经验分享算是比较多的,不过很多背景、配置、步骤什么的都没有说,我觉着这些都不提,直接上来就做对比,有点儿不太严谨。至少,列一下JVM参数,做没做适当的预热,etc.,都要介绍一下吧,结果是都没有说。感觉做这个session的淘宝的小朋友可能是个比较嫩的孩纸
换做JavaEye上的某些资深牛人来做,应该会很严谨的吧。
幻灯片刚讲到前几张执行时间对比的饼图里,我眼还算比较尖,看到了Velocity的身影,所以在微博上感慨淘宝还算有眼光。Velocity我自己因为实习的关系接触得比较早,也还算比较深刻,喜欢它的简单,所以当时火爆的FreeMarker我根本一点都看不进去。我想淘宝的Java团队之所以能顺利地把Velocity的模板引擎从解释性改造为编译性,Velocity本身的简单应该也有些好处的吧——不过说这个编译化改动做了2、3个月,有点儿吓人呢,回来研究一下以现在的可用工具能用多久改造完毕。不太喜欢JSP。
- 在云中操控Netflix:这次Adrian Crockcroft总是讲到了些经验分享的东西。一上来还是些Amazon WS的产品展示… 然后逐渐有了些和开发相关的经验分享,比如很多anti-patterns,还有一些比较详细的中间层的设计——感觉这一点有些想东家的企业产品线里的设计和实现:由专门的team以库的方式提供这个封装好的中间层,然后底层服务是轻易不会被允许直接访问的。
Netflix服务器的部署和升级,都是用一些自动化工具去完成,用版本控制工具管理的,而且基本没有针对机器上老版本服务器应用的升级,而是直接创建新的AWS节点部署新版本的应用,逐渐使其上线,测试OK以后直接把运行老版本的节点摘下线,最终完全销毁——比较灵活和经济的方法,而且借助了AWS的一些API,也减轻了很多重复的人力劳动,避免因为重复导致人为失误。这个幻灯片一定要再看一次,里面有不少Java开发方面的内容。
- 网游服务器性能优化:这个还是因为公司牛人想听这个我才后来改变主意的。感觉讲师应该有很多想要和大家分享的,不过一是时间不够,二是…有些优化和问题听上去有些…弱了… 演讲做的还是很真诚的,容量很大,不过也许我真该按原计划去池建强的业级软件的组件化和动态化开发实践,毕竟这是今天“设计优良的架构”系列的主持人啊!
今天主要的感受就是对大部分sessions比较失望,而且似乎其他来参加QCon的人也是这样的感觉,很多人频繁地来回穿梭,我就当作是在找好session听吧。一个session讲好了能让人坐下听完不走,真是不易。很多做技术出身的人都缺乏这个能力。有时我会觉得听讲座的人不该坐下后听5分钟就觉得无聊走人,也许后面的很精彩呢;另一方面也觉得做讲演的人开篇5分钟没法吸引到别人的话,水平还真的有待提高,毕竟一共就只有1个小时而已,大家都不想耽误不想花冤枉钱来听些讲的不太好的内容。
明天最后一天了,感觉大会故意安排了几个不错的来压轴吧,诶。下次中国再有QCon的话就要斟酌一下了,都是这样的session的话真不如去JavaONE了。
Apr 09
IUSR咿咿呀呀, 技术文章, 补充两句 qcon
标题显得很NB吧?哇哈哈…
难得这次东家能应允让我这么个打杂的来参加这么高端的集会啊,感谢感谢。
结果今天的选择是:
09:00
10:00
13:00
Web开发的新势力——服务端JavaScript开发(幻灯片下载)
讲师:廖恺
第七会议室
14:20
MongoDB开发应用实践(幻灯片下载)
第一会议室
15:50
Remote Object、SOA和REST(幻灯片下载)
讲师:徐昊
第七会议室
17:10
淘宝商品库优化实践解析(幻灯片下载)
讲师:余锋
大宴会厅
其实还有几个很想去的但是因为安排没办法只好放弃掉:为速度而生——百姓网如何优化网速 (幻灯片下载),讲师:潘晓良;QQ邮箱存储平台(幻灯片下载),讲师:胡戊;构建高性能的微博系统——再谈新浪微博架构(幻灯片下载),讲师:杨卫华;BeansDB的设计与实现(幻灯片下载),讲师:刘洪清;一种基于服务器,集群存储和虚拟机的实现(幻灯片下载),讲师:王劲凯。Gavin King折腾了下他session的安排也比较让人不爽。
简单出于个人主观评论一下今天参加的内容:
- 支撑Facebook消息处理的HBase存储系统:太in-a-nutshell了,一看幻灯风格就能估计出来大概是要照本宣科了。很多事情去HBase老家和Facebook的haystack什么的地方看看就大概知道了;私以为不用太诧异于Facebook不用自己发明的Cassandara;同声传译很扯,后面不知道是不是有人把传译的耳机放了很大的音量,搞的我基本上是左耳英语右耳隐约地听中文,左耳是男声右耳隐约地听女声,真ft。私以为这种级别的演讲混外企的应该不用别人给翻译才对,旁边几个XXX公司的员工人手一个传译终端,诶,还没活明白呢。
- Java EE 7平台:走进云计算:这就是一个纯粹的传统商业公司能看到的云计算了。不想多说什么。module-info.java、jmod什么的真是弱爆了…新浪微博的#QCon#话题里也都有人说为什么不直接纳了OSGi什么的。没办法,看着jigsaw吧。我觉着无论基于Maven还是OSGi,基本都能自己搭一个出来了。JEE 7,掺和进来云计算,诶,不定整出来一个多复杂的规范了;有本地代码依赖的就找msi、deb、rpm,太扯了,用source tarball的可以去死了么?Oracle要自己提供一些apt、yum源神马的来定义这些deb、rpm之间的依赖不?
- Web开发的新势力——服务端JavaScript开发:光看标题就知道Node.js肯定占绝大部分份额了。整体来说比较充实,但是还是介绍性质的居多,真共享性质的内容偏少。没办法,这东西兴起也没多久,现在基本还不算太成熟的东西,虽然npm都出来了。后来碰见了@qinyf小朋友,也说了说寥恺,因为他以前也在饭否和海内团队呆过一段时间。这老大给我的第一印象就是绝对的脑子快反应也快,好像确实是这样,说话连珠炮一样很是痛快。我本身对Node.js这个东西也很感兴趣,真稍微突破些皮毛搞过javascript的人应该都多多少少觉得这个语言有些可把玩的地方,愿意用它干点什么。最后被广告了cnodejs.org ,回来逛逛。
- MongoDB开发应用实践:这个一上来以为也会是很水的介绍性质的session,结果真是比较出乎我的意料,看到了很多真实案例,感觉比较痛快,经验之谈真的是很宝贵。演讲的潘凡不紧不慢地聊着以往的经验,听起来也挺有意思的。幻灯片值得以后借鉴一下,至少很多教训知道了可以少走些弯路吧。等这个session开始的时候在场外被@qinyf小朋友当场揪了出来,我嘞个去,我还以为我一直是站在暗处的只有我认识他他不会认识我的。总上各种SNS真的很容易暴露自己啊。然后这个session是和@qinyf还有@hill两位年轻有为型牛人听的,噻,小激动了一把,都不会坐着了。期间@qinyf不动声色地考察了我对一些技术名词、项目名字的了解程度。我忐忑了。好像还称赞我算是我这个年纪的人群里面比较刻苦学习的,擦,顿时有种半截入了土的感觉。
- Remote Object、SOA和REST:最大的感触就是专业讲师/咨询师就是不一样啊,连续一个小时,期间几秒钟都没有停嘴啊真的。不过有些观点在我看来有些主观。最起码,简单是好事没错,不过也并不见得说一个东西复杂了就一定不好的,比如SOA。没错,WS-*、WSS-*家族太不讲求计划生育了,协议规范跟OO类型爆炸一样,我以前曾经打了一大摞协议文档只为了了解一个很简单的和T-Mobile Germany的系统对接的任务,但是实际上T-Mobile Germany也算是SOA实施比较成功的范例了,小公司上SOA实在是找死,但是很大规模的有很多员工很多需要彼此协调的部门的公司里,SOA为各个部门之间的自治和业务设计师/架构师的统一设计提供了一个可行的架构,否则还真的难以协调起那么多个部门的已经存在了的服务资源。而且,CORBA臃肿收场,EJB2臃肿收场,SOAP、Web Service、SOA臃肿收场,说不定哪天REST也是一个下场,反正看看各种为了REST而REST的应用和人们我觉得就心里没底。另外语义和ATOM(以及APP/AtomPub),我还是觉得有些摇摆不定,不知道它们以后究竟会不会得到广泛的应用。
- 淘宝商品库优化实践解析:某神人建议我去听的,我就不抱怨这神人太揠苗助长了
这个session涉及到的领域是我一直超级感兴趣的,不过无奈实际经验和知识实在欠缺得不少。之前也遇到过很多相关的文章和话题神马的,神人都和我念叨过,我也顺藤摸瓜看了些资料,知道些皮毛不过内里显然还是不明。收获是那一大堆各种参数…sysctl的,mysql的,innodb的,天,当时场上闪光灯此起彼伏的估计也都是想记下来那些参数的吧?不知道QCon每次都会发布这些幻灯片么?此外描述的一些方法论也还不错。照例,下载幻灯片留作参考。这个我不评论了,等那神人逐个地点批吧,哇哈哈!
睡~明天第一个session就是JEE 6和云计算(之于强扭的瓜、强迫的幸福),我主观上都有些不安了…
Dec 31
IUSR补充两句 books
等了一年多,刘慈欣总算写完了这第三部;又在卓越排了18天的队——12月8号付款,27号送到,终于拿到了书——虽然跟很多人一样觉得装订得怎么这么像盗版书;然后在昨天,也就是12月30号,看完了整本书,512页。大概我只有看这种不务正业的书才能达到这种速度了。
不做过多的评论,豆瓣的条目上面有不少评论和回复。我天生闷葫芦一个,东西都憋在心里倒不出来。
只有一点,是我重复过无数次的,那就是我实在是不太情愿读很多人文相关的东西(而且以下内容多少有些剧透)。
人文的东西,从高中开始——我觉得高中是我从懵懂开始清醒一些的发端——稀稀拉拉地也读过不少,震撼有余,受教有余,然而更多的时候是觉得一种无奈,觉得整个人类和社会就像摆脱不了螺旋上升——如果真有任何上升的话——这么一个模式一样。之所以会螺旋着,是因为即便有那么多振聋发聩的言论也好,作品也好,人无论作为个体还是作为整体看来,都是不可救药地重复、重复、再重复,只不过——如果还是承认有上升的话——每次这样的重复都或多或少会比上一次提升一些,同时也站在了上一次提升的基础之上,所以看起来似乎前途还挺光明的。
打个比方,说到个体,有多少人奔三以后——甚至更早——会逐渐意识到父母以前的嘱咐唠叨其实有很多都很有道理?说到整体,经济危机——全球的也好,区域的也好——这是第几次了?
回到这书上来,程心似乎真是很成心,每每面临重大决定的时候总是情感战胜一切——几乎所有人看完这书都会说程心只不过替人类整体(结合这本书就得说“太阳系人类”)唱个唯一的一票并宣布个结果而已,错不在她,换一个被太阳系人类认同的人来做那些决定也是大同小异,实质上不过还是群体选择而已,云云。书里也写了,我们知道应该怎么样,也知道不该怎么样,但就是做不到——多么矫情,是不是让你想到某些言情小说里,那些唧唧歪歪的男女,或哭天抹泪或嘶声咆哮地说,“我做不到!我就是做不到!”?
也有很多人反问,假如程心不那么选择,结果就一定会不一样了么?假如她第一时间启动了广播,吓跑了三体人,太阳系就一定不会跌入二维了?假如她支持维德去继续开发曲率光速飞船,他们就一定能发现光幕/慢雾从而一定躲过打击么?这我不知道,我还跳不出三维呢,只不过她这么做的结果,书里已经明明白白地写了,在书的世界里,这些就是事实:从整个人类延续的意义上说,程心的决定确实都够失败的,换句话说,照自己情感喜好做决定有时是很危险的。
又比如有关道德,这个人们没事儿就掏出来的舆论核武。也许作为个体,一个人会选择背叛啊,黑暗啊之类的做法,苟且一下,来换来最大的利益,但是把一帮人扔在那儿,每天安安生生舒舒服服地过日子,衣来伸手饭来张口,好像太阳系地球人在拥有了威慑三体人的能力的时候一样,没事儿的时候问他们一句,你们觉得有朝一日你们会不会背叛啊,会不会黑暗啊?他们肯定一个个儿板起脸回答你说,放屁!那还是人吗?!所以他们可以审判“青铜时代”号上面的人,说他们谋杀、反人类;所以他们在生活最舒适的时候,觉得和三体人已经和解了,罗辑这样苦大仇深的持剑人可以不必了——甚至面目可憎——的时候,选择了程心这个所有持剑人候选人中最柔弱的一位;所以他们在所有的引力波天线被三体人秒杀了以后被全部圈到澳大利亚生存的时候,为了生存可以不择手段,极权,死刑,政教合一;所以他们在听到打击传言的时候可以不顾其他人还在周围就自顾自启动自家飞船的聚变发动机,任由发动机的尾焰一瞬间杀死很多人;所以他们在太阳系跌入二维的时候,看到程心的飞船已经可以做曲率驱动的光速飞行来逃脱的时候,还招呼着要撞毁它,谁都别活。
何等装逼,却又何等无能。
我不知道刘慈欣到底对人类是个什么看法,这应该是个很复杂的问题,没人能下什么定论。也许正因为这个问题的复杂性,或许为了突出这个问题的复杂性,在描写了这么多件人类作为一个群体所做的逼事儿之后,最后的最后,还能让程心和关一帆因为责任心而去冒险响应那帮不知道谁提出的回归运动,从舒舒服服(?)的小宇宙返回了生死未卜的大宇宙——看,这就是人类精英,即使所有宇宙里也许就剩他们两个人类个体了,这俩人还是能出这么个决定。我真不知道这是好还是坏。
除了感觉书里的人类很事儿逼很让我压抑以外,我总算还能领略到一些不错的地方,也许只有很少的人会觉得不错。想想有些上了年纪的人们,回想半个世纪前的那场大运动,还会觉得很浪漫。是啊,他们不在斗争漩涡的正中心,他们不会体会血雨腥风下的巨变,而是那样被指挥棒拨到或近或远的地方,和同样热血澎湃精力过剩的同龄人一起,燃烧着无悔的青春,做着自己认为无比正确的事情,并从中得到了坚实的友情和爱情,事后回想起来,在那全国性的波澜壮阔中,自己也许确实找到了属于自己的那份浪漫吧。而程心的经历,以及其他几个公元纪人的经历,也是很类似的吧。他们总是在人类面临转折点的时候现身,与所有的人同进退,而当一切重大选择都已被决定的时候去冬眠,这让他们的一生总是那么波澜壮阔,与全人类的命运一起跌宕起伏着。也许这样,到了晚年,或者没那么走运,到了需要面对一个结束的时候,他们回想起自己的一生,也确实会觉得多少有那么些浪漫吧——这浪漫当然与什么男男女女无关。至少我这么觉得,也这么梦想。虽然说时代成就了无数的个人,无数的个人也造就了时代,但是我总不想等自己到了老年,回想起年轻的时候,鼻子里总要隐约闻到那样的铜臭。
Dec 27
IUSR补充两句
没错,就是那本卓越最近难得这么迅速就引进的原版书,而且,其实,就是http://diveintohtml5.org/,比起网站来说甚至还做了节略。因为我一直以来看电子书都太容易分心了,总时不时地看一眼Gmail,Google Reader什么的(万恶的Google…产品都这么强大得让我依赖…),所以至今为止,纸版书还是我唯一靠谱的选择。类似《HTML5: Up and Running》这种出版形式——虽然也不是什么新鲜的形式了——说起来还是不错的,有纸版书可以让人专心阅读,又有电子版可供阅后方便检索。话说想起公司还有Safari的账号可以利用…
言归正传,这里只打算列举一些看这本书时记录的一些自己比较在意的地方,以便以后回忆复习。
- X还是不X,不算什么问题。这是HTML,最明显的,AJAX的那个X还有多少地方贯彻?谁不是JSON顶替了XML呢?不过吧,我个人还是习惯XML,至少有well formed和wellness检查,一元元素的结束标记和大小写方面也更习惯XML一些。XML Schema什么的就算了,没个IDE或者支持N多模板的文本编辑器的话我还真不敢随便编辑,但是很多HTML源文件一样让人头疼…
- 到底是不是在用NB哄哄的XHTML呢?检查检查服务器返回的MIME吧,只有application/xhtml+xml的内容,浏览器才会严格当XHTML解析,否则即使声明了半天XHTML,浏览器还是会扔给更为宽容的HTML解析器。
- 政治是坨屎,但似乎又无法避免。
- HTML5工作组名叫WHAT WG,Web Hypertext Applications Technology Working Group。
- HTML5规范还不算最终定稿,规范本身对有些内容要求得也不是很严格,而且目前各浏览器的支持也是参差不齐,加上手持设备上的浏览器就更乱了。(您说啥?UC?!呃……)
- <!DOCTYPE html>,yay~
- <html lang=”xx” manifest=”yyyyyy”><meta charset=”zzzzz”>…
- UTF-7真悲催。
- 检测一些常见的HTML5特性是否支持的最简便的方法是:Modernizr。具体检测方法参加http://diveintohtml5.org/里和各种特性相关的章节,或者直接看Modernizr的代码。
- rel=”author”, rel=”first|prev|next|last”, rel=”nofollow”, rel=”noreferrer”, rel=”pingback”, rel=”prefetch”,
- 新的语义标签:section,nav,article,aside,hgroup,header,footer,time,mark。
- 注意文档大纲,最好把每篇文字内容比较充足的HTML5页面差不多当作一篇论文来做,文档大纲最好不要乱。语义这个事情,外加microdata,对机器的意义大过对人,但是机器是来帮忙的,所以要善待不那么“智能”的机器。最后,新加的这些语义标签对页面布局没有任何贡献,别指望用nav瞬间做个导航栏,或者用footer瞬间做个页脚。
- Canvas,画画靠context,目前规范里的context还是2D only,有状态,基本图形的具体绘制靠style控制——包括颜色、渐变色(linear和radical),此外还能直接贴图(同时裁剪和缩放)以及渲染文字。这个得多研究研究,琢磨琢磨。大学时那几本儿图形学的书卖废纸了没?
- excanvas.js拿来给IE来条件引用一下,然后就可以在IE上使用canvas的部分API了——由于IE原生支持的VML自身的限制。反正excanvas.js给IE做VML的翻译也很慢,有得选择的话还是抛弃IE吧…(强调一下——“有得选择的话”)
- 视频很可怕:容器有自己的格式,外加真正意义上的视频编码格式,最后是音频编码格式。浏览器表示压力很大,连video元素的canPlay(String)方法返回的都不是布尔值了,而是“probably”,“maybe”以及空字符串。
- 常见视频文件格式:mp4 [ H.264 (Baseline/Main/High profile) + AAC (Low/High complexity) ],ogg [ Theora + Vorbis],WebM [ VP8 (质量上类似H.264 Baseline) + Vorbis]
- iPhone和大部分Android手机支持mp4 [ H.264 Baseline + AAC Low Complexity ]。
- Flash 9以上强悍地支持H.264全部profile以及AAC全部complexity——于mp4文件格式。
- 视频工具:Firefogg,ffmpeg2theroa,HandBrake;WebM需要patch ffmpeg。
- <video preload>可以让浏览器在页面装载后就开始下载视频;<video preload=”none”>反之。
- 图省事还是用Video for Everybody!吧…
- Geolocation API严格来说是和HTML5并行的,而且早就有浏览器支持这个API。所以某些网站做些HTML4+Geolocation API的勾当然后声称自己是HTML5先行者也太扯了,还不如把导航栏从div变nav了。
- 图省事可以用geo.js实现跨浏览器,不过没有原生Geolocation API支持的平台上需要用户安装Google Gears,而且watchPosition() + clearWatch()就可能会没法用了。呃,又一次,有得选择的话还是抛弃IE吧…
- HTML5 localStorage只能存key-value pairs,而且都是按字符串存的。默认存储空间都是5MB,大部分浏览器都这么设置,用光了就没了,目前只有Opera允许用户指定存储空间的大小,其他浏览器上,准备接异常吧。
- Offline乍一看挺简单:<html manifest>来指定离线使用时的资源清单文件,里面包括需要缓存的资源,禁止缓存的资源(或者说只能online使用的资源),以及没有被缓存的资源在被离线请求时的替代(fallback)资源;然而实际使用过程中,受HTTP协议的影响比较大(Cache-Control啊,Expires啊什么的),很容易出现一些所谓的灵异现象或者人品问题,其实只要熟悉HTTP协议就好办——不用精通,别跟写简历时似的。
- 表单被极大地丰富了一笔:
- 添加了人见人爱的placeholder属性,但是只支持纯文本,不能用HTML,好在webkit支持给placeholder加CSS;
- autofocus属性我觉得比较无所谓;
- email和url输入类型想必iOS用户已经第一时间实地体会到了,确实便于提供虚拟键盘的手持设备提供更方便的输入;
- 我最喜欢的是number输入类型,原因保密,乜哈哈!
- range输入类型很科幻,以前都要第三方js才可以的,不过对于iOS用户来说这个类型目前在Safari Mobile的实现还很渣,干脆就是一个text;
- 时间日期输入类型一下子加进来一个家族,包括6种:date,month,week,time,datetime,datetime-local,这些更科幻,浏览器支持也更惨:目前只有Opera 9.0+支持,但我有个疑问就是week那个输入类型会不会有问题乜?就是那个一周是从周一还是周日开始的问题。
- search输入类型,呃,目前看来似乎就是加了一个用于清除输入的内嵌于输入框的小“x”按钮,聊胜于无吧;
- 最惨的是color类型,目前没浏览器支持;
- 按理说加了这么些类型了,要求浏览器做表单验证了,但是目前还是只有Opera支持…所以这方面还是scripting加server端双重验证吧——不用说也知道server端验证是必做的了。
- Microdata对于语义web的建设意义重大,只不过现在看来应用范围还不是太广泛,毕竟都是浏览器渲染后不可见的一堆数据,不像文档里的其他文本,而且改造起来感觉也很不舒服——比如Mark的添加<span>大法……有一天机器会明白某个页面的某些乱七八糟内容到底是想说些啥的,不过是不是靠microdata就不知道了。
- 没有细说的:WebWorkers,<datalist>,<details>,<device>,<iframe sandbox>,<iframe srcdoc>,<meter>,<output>,<progress>,<video poster>,<span contentEditable>,跨文档消息服务(Cross-document messaging),拖拽,File API,更好的浏览器历史记录操作(History),Server-sent events,Session storage(window.sessionStorage),SVG和HTML嵌入SVG,Web Sockets,Web SQL数据库,Undo。还真多…不过好多都还是单独的规范,支持程度比HTML5规范里的内容还要更参差不齐,基本上除了可以100%确定浏览器版本的情况以外都可以视为没法用了。
总体来说,5分制的话这本书可以打个4分了,行文也比较轻快诙谐,我是抽了两个周六的大块时间每次读100页这么读完的,这本书的干货部分也正好是200页左右,没什么压力。
Aug 06
IUSR补充两句
刚小A发来Robbin的这篇《去跨国公司还是去创业公司》,本想回复,然后发现越写越多,干脆,反正最近也没啥主题写,充个数吧。看的出来,Robbin也许也是写的很快,随便拿“跨国公司”和“创业公司”这两个名词出来讲讲道理,后文里基本上“创业公司”不见了,说的都是“小公司”。说起来“跨国公司”和“创业公司”这两种公司形态也不是完全对立的,所以我也就顺着我的理解说,您就别责问“创业型小公司就不能跨国吗”或者“跨国公司就一定不能是小公司吗”之类的了。
小公司呆过,没创业过,这方面没有多少发言权。可是外企也绝对没那么差,至少不能一概而论。发发email做做report也许可以混好,不过不代表这招儿在所有跨国公司都吃得开,更不要提发发email做做report既不是什么没有技术含量的事也不是没有任何实际功效的事。发个email,收件人和Cc列表加起来是个范围很广大的群体,怎么撰写才能清楚地表达自己的意思,语气也要合适,真做到D说的不卑不亢,不引起误会甚至口水战,绝对不是容易的事,更别提很多时候这封email的效果如何根本无从得到反馈,拿自己的Chinglish头脑看自己写的信觉得还不错,但说不定大洋彼岸的人已经摔键盘了,或者一帮人在那儿密谋怎么回个email干掉你,即使你初衷没有什么恶意。做report就更不用提了,无论数据报表还是slides,都有无数种方式可以做烂。
事实上我的经历是,很多美国同事干什么都是把好手,技术很强,基础扎实,对新鲜事物有兴趣,但是并不一定有时间深入研究或者干脆没研究过(是不是会有不少国内同行们鄙视这一点?),这个没办法;email清晰有条理,有时会长篇大论一下轰炸别人,有时语气也会比较不和善;report因为公司统一模板,所以漂亮谈不上,但是做图表什么的很认真仔细,做slides也不会跟ppt初哥一样搞的每页都乱七八糟,讲的时候也绝不是照本宣科,信息量不小;最重要的还是工作态度,虽然每天的工作压力很大,也还是会义务帮忙做做bug分析和code review。
为啥放到中国就都认为email发好了report做好了就没啥问题了?做技术的人呆久了技术就废了?这不是老国企么?现在很多国企背景的公司都好一些了。
说白了,在大一点儿的公司干活,人多了,你当然得花比在创业小公司里更多的时间来build up(某boss语)自己,让更多人建立起对你的信任。好多人吧,就像Robbin说的那些脾气大挑剔难伺候的人一样,必须得是别人求着他他才爽,才有干活的劲头。这在创业公司和小公司里当然爽了,本来就没多少人,你说点儿什么老板保不齐就当救命稻草了。大公司里,你跳将出来,想说点儿什么,其他人为什么要买你的账?大前提是他们首先要信任你,然后才有可能考虑你说的话。除非空降(其实空降都不好干),否则还是应该从身边的事情做起,如果连身边同一个组里的人都很难信任你的话,那情况真是不太乐观了。有了信任和建立信任过程中积累的威望,发出的声音就会逐渐有机会传递得更远,也会慢慢爽起来了。
跨国公司大部分都是规模稍微大一些的公司,一个人混好了的话在里面能发挥的作用和能调动的资源是小公司里的人们没法想象的,没有这种经历的话,可能很多的成功人士们——带或者不带引号的——讲的经历和方法论都是没法体会的,当然,很多人对此也不屑一顾,这当然也没问题,自己去体会的话印象肯定会更深刻,虽然很多时候可能撞墙之后会私下后悔自己当初没听别人说话吧。别人的话当然不能尽信,因为得出那些结论所依赖的那些经历都是他们的,而且,如果我们都那么听话,世界还哪有什么多样性而言?只不过参考还是需要的,毕竟很多时候自己不是第一个到达这个级别这个境界这个情景的人,有前人的经历作为参考,心里也稍微有谱一些。
声明一下吧,我也没有太多的从业经验,算上实习的话呆过3家公司,实习是的经历就从略了,据说是一家原国企分拆出来的公司,开发和市场都是混着坐在一起的,毕业后第一家公司是个本土小公司,倒是勉勉强强也可以算创业公司,呆了1年多,然后进到这家外资企业,至今呆了3年半将近4年。不知道这个企业性质能不能算“跨国公司”,很多时候同事之间开玩笑就说这是一家美国乡镇企业,只不过近两年发展的还可以,在全世界N个城市都有或大或小的办公室。在之前第一家本土小公司的工作的时候,虽然成长很快,但是很多时候确实有些疲于奔命的感觉——也许因为我不是创业吧,平时工作上对技术接触面很广,最终在项目里应用一些技术解决了问题就是胜利,“深入”研究也做过,但是应用层的居多,很多基础性质的东西还是后来跳槽到目前这家公司以后才有机会(时间,还有心情)慢慢提高。
之所以敢冒被拍的风险在只有个位数工作年限的时候写这些出来,也是因为当初某A离开的时候,我也综合了一下另外一些在500强工作过几年的牛人朋友们的说法做了些猜测和决定,后来发现这些猜测和决定还算准确,不完全是撞大运。至于我在目前的这个公司,不爽的情况嘛,当然也会有,尽量整理整理和直接上司沟通就是了,不能等到影响了工作情绪才行动,否则以前的积累也会因为情绪化的工作表现分崩离析的。比如前一段时间因为各种因素,干活比较情绪化,和头儿一说,其实种种因素也都不算个事儿,当个P一样放了就是了,有些也是因为时机未到,自己提前就开始郁闷实在是没有必要。
至于什么办公室政治,我一直认为,有人的地方就有政治,就像传说中的那句话,“有人的地方就有恩怨,有恩怨就有江湖”。就今天,吃午饭的时候还听两个前辈同事津津有味地谈论以前他们经历过的内斗。即使少到两个人,想合作做一个事情都会存在政治,关系再铁也一样,就更别提一个公司里了。小公司里只不过因为办公室政治可以引发的问题一般都没有环境和条件暴露出来而已,并不是没有。
Jul 07
IUSR补充两句
这篇blog在草稿箱里躺了几天了,本来是要写出来骂china-pub的,现在看来没这个必要了,china-pub的主动联系让我对这个网站多出一些好感来。
事情的起因是因为最近一单里的《代码整洁之道》——就是那本Code Clean——送来的时候封皮是撕了的,本身我是个懒人,书拿到手了就想读起来,而且看了看china-pub的申请退换货的流程,感觉太麻烦(后来事实证明不是这样),就想作罢。最近不知道是不是因为china-pub站庆,连续几单的配货消耗的时间都长的让我发指,所以在做满意度问卷的时候都给了“一般”,然后就被询问有啥不满的,就随手把书皮撕了的事儿写了进去:
外包装很完好,但是里面的《代码整洁之道》一书的书皮上部被撕开3厘米左右。不打算换了,当然如果china-pub主动送来新书来换的话我自然乐意换,否则就算了,不想把书先退回去再拿到新书,太耽误时间。
按照china-pub网站上目前的退/换货方法,http://www.china-pub.com/temporary/faq/2007FAQ/shouhou.asp?yoururlname=shouhou_1.htm#shouhou05:
流程:
请进入”我的china-pub“→”退换货申请” 进行相关操作 → china-pub受理申请反馈确认 → china-pub24小时内处理(节假日顺延)
1、款到发货订单:
请您在提交退换货申请得到处理反馈后,将需要退换的商品以平邮的方式退还给我们,包裹中请附发货单(或其复印件)注明退/换货原因(如果该订单开过发票,请同时附上发票)。请在寄回时使用简易并且正确的包装以保证货物在运输途中保持原状。我们在收到货物检验后,为您做商品的退款、换货处理。您支付的退、换货邮寄费china-pub将以余额的方式存入您的个人帐户,以便您下次消费时使用。 特别提示:如果您急需拿到退款或急需使用更换后的图书,您可在发货后把邮局发货凭证(请附上订单号)传真至010-63970506,核实后,我们将及时给您支付退款、发出换货。缩短您等待的时间。
2、货到付款订单:
1)、青海省、宁夏省、贵州省、甘肃省、海南省、广东省(深圳市除外)、浙江省、江苏省(南京市除外)的订单及宅急送送货上门的订单不支持上门退款服务。属于以上区域的订单具体操作如下:若要退货,在您提交申请后china-pub会安排快递3个工作日内上门取书,快递公司确认取到书后,china-pub收到图书后会将您的货款通过存余额、银行汇款、邮局汇款等方式支付给您;若要换货,在您提交申请后china-pub会尽快先将您的新书发货,在您收到新书后3日内再安排快递上门取回旧书,若因换货产生退款,china-pub确认快递取走旧书后会通过存余额、银行汇款、邮局汇款等方式支付给您。
2)、其它区域货到付款订单china-pub均提供上门退换货同时退款的服务。上门退款退货,我们在收到您的申请后3个工作日内完成;上门换货的完成时间同正常订单送货时间一致(查询订单送货时间)。
如此看来,在china-pub眼里,我认为最“听话”的款到发货的顾客反而在退换货流程上比较吃亏,就我这次的情况来看,假如我是通过“货到付款”买的这书,至少还可以(最多)多看3天书,而现在我如果想换一本的话,还要自己先邮寄给china-pub。当然,我这种情况对自己而言也是无伤大雅,毕竟只是封面撕了一小块,但是即使是最倒霉的关键章节缺页了,如果是货到付款买的书至少也能(最多)看3天这书的其余部分,如果这书是比较急用的话相比款到发货购买方式还是占了一点点便宜。诚然,哪种情况我都不希望碰见,而且我拿到书后很少快速翻一下页码检查是不是有缺页,所以除非这书的第一章就缺页,否则我还是不会很快发现的。
然而,最后事实证明,换个书没这么麻烦,而且正是我所期待的那种最自然的退换方式…
昨天中午,我正趴在桌子上眯瞪来着,突然接到一个010区号的电话,接听,对方竟然是china-pub的客服MM。原来是我写的那个问卷人家看到了(竟然真有人看!!!),打电话来询问要不要退换,并且说以后遇到这种问题就可以直接点击订单后面的退换货申请的链接就可以了,客服能更及时收到,像我这样写在问卷里面,很可能过了很久才会被人发现。我就问了,我当然也想退换,可是网站上的帮助说款到发货的订单只能自己先邮寄回去才能换的啊,太耽误我看书了;客服MM赶紧说不是,只要是选的china-pub自己的“送货上门”的送货方式都可以申请退换后让送货员拿新书换掉,同时把客户手里的书拿回去,不耽误时间。呃,客服MM似乎倾向于说服我让我觉得是我理解错了,可是我觉得按china-pub的帮助来说的话这个是和付款方式挂钩而不是和送货方式挂钩的…
不管怎么样吧,那本新的Code Clean现在应该已经在路上了,预计明后天差不多就能送到我手里了吧。
知道china-pub大概9年多了,最早的时候还在上学,实在是买不起那么多当时感觉很昂贵的计算机书籍,注册了个帐号结果一分钱都没花过;然后刚工作的时候工资很低,也只好蹭朋友的5星级会员的帐号以求省几块钱;再后来买书不当什么开销了,断断续续地也买了不少,现在帐号也还差一点就5星级了,说起来这么些年了对china-pub还是有一些好感的,但最近的配货速度实在是太慢,当然也可能是因为我最近总在京东上买东西,习惯了京东那种变态级别的发货&&送货速度,遇到这事儿搞的我很郁闷,送来的就够慢了,结果书皮还撕了,也想要放弃china-pub,转去卓越亚马逊之类的地方。
还好,现在坏书可以及时被替换掉了,心情也好了很多。China-pub嘛,虽然我一直看不上asp的破网站,而且事实也证明人多的时候china-pub经常无法访问,需要多次刷新,UI也不是很人性化,中间换过一两次第三方支付平台也搞的我几次支付都很郁闷,但是就计算机书籍来说,china-pub还是很有优势的——举个例子,每每在豆瓣上攒个购书单出来以后,计算机类书籍最全的都是china-pub,而卓越似乎更文艺一些而且也便宜一些。
最后希望china-pub一是要改进一下自己的网站程序,也许改进已经没希望了,只能重写了吧——现在的china-pub.com的访问很不稳定,快的时候飕飕的,慢的时候直接超时,稳定性差得一塌糊涂,跟卓越比起来不是一个级别的;二是配货速度和发货速度方面能加快一些,记得没错的话老家应该是北京的吧,最近几次从订单支付完毕到最终把书发到天津这么近的地方竟然还都要3天左右——相比之下在京东买东西基本是白天下单转天就能送到了,看来自己做物流就是不一样啊。
Jun 12
IUSR补充两句
先说好了,要说的是地面交通,地铁不算,从塘沽出港的船什么的不算,愿意划船顺着海河、津河上下班的也不算。
天津是我的家乡,自从出生以后除了出差我就没离开过这地界儿,土生土长,所以我骂天津这破烂交通的时候,应该没哪个天津人能冲着我说“不愿意来别来,没人求着你”或者让我“从哪儿来滚回哪儿去”吧?
一提起交通,就好像这事情是交管局该操心的事儿,今儿我也五毛一把,我偏不提交管局哪儿做的不好。交管局之类的有关部门确实有做的不到位的地方,这点不假,最不到位的就是执法不严,整天就是法不责众那一套,逮着谁违法人家一通唯唯诺诺点头哈腰低声下气的就都当成屁一样给放了,就贴条时痛快,不知道是不是当面执法怕打起来。我也知道很多地方交通混乱也有因为管理不当造成的,这些都不假,不过我不想说这个,那只是一方面,而且很好改进,但人性是不好改的,咱就说说路上这些人和车,交管局再牛X也不可能1v1盯着这些路上的人,天天赚TM多少钱啊,养得起这么多警察么。可只要一没人盯着,这路上是要多乱就能有多乱,很多刚开始还是很超越人们想像力的行为,过些日子就成了普遍现象了。
再提前打个招呼,别说什么“你就不违法吗”、“就你高尚”,有那时间闲得蛋疼的非不信我这邪的话,我带你在市区兜一天,你说去哪儿咱就去哪儿,只要别当免费的出租您到了地方抬屁股下车走人办事儿了就行,让你看看我怎么开车。要是守法成本能低一些的话,我也不至于天天着这急生这气。
先说机动车。每天往这路边儿一站,眼不瞎的能看见,眼瞎的听也能听见,这交通绝对饱和,饱和能赖谁?能赖那占地不到1平米的非机动车么?现在大伙生活水平都好了,富裕钱也都多了,再加上诸如比亚迪这种低价无极限的山寨日本车品牌,对于大部分家庭大部分人来说买车不成问题。也因为买车不成问题了,有些人没了责任感——您应该能听出来这是给某些人找台阶下,其实人家是天生的,胎里带。车真是个好东西,想去多远的地方也不用自己腿儿过去,遇到个刮风下雨的恶劣天气,只要别太邪门,还是可以坐在车里不用风吹雨打。好,爽吧,爽死了吧?可这车一跑上马路,开车的人就要对自己的行为负责吧?说个最直白的,你要是骑一自行车,万一一不留神给失控了,顶多撞4、5个人,更多的时候可能也就是自己孤单地来个一次狗啃泥。可现在你开车了,外面包了一圈铁皮,发动机不停车轮没掉的话您能一口气撞十来个人,不小心跟人刮蹭或者追尾了最多能堵住2米左右宽的车道,要真保养不好停在路边自燃了的话,是吧,那还不定啥伤亡了。说的有点儿邪乎,谁也都不希望开车出事故,可不想出事故那就得规规矩矩地开吧?我就举几个比较常见的例子,咱看看天津路面上这帮有才的司机的才华都放哪儿用了吧:有闯红灯的——好像闯个红灯现在都不算啥了似的,有逆行的,有路口不让拐弯人家楞拐、不让调头楞调个头堵马路的,有立交桥下明明写着禁止一切车辆驶入人家还当没看见一样开过去的,有看不懂地上的行驶方向指示标志自己还很生气地冲前车按喇叭的;有些人看见直行车道排队了,转弯车道没排队,就大模大样地开到转弯车道,然后腆着个屌脸再打灯并道——有些人是真的一不留神开错了,尤其那些有两条左转道的地方,有些人是成心的,绝对能看出来;路再不好走一些,所有车道都在排队,人家能开到非机动车道上,还牛B哄哄地按喇叭赶人家骑车的人;再不好走一些,人家能走便道,一样,鸣笛开道;哪个路段路口什么的设计的让人家开起来不爽了,不想走远一些或者调头,人家也能走便道,还是逆行;立交桥拐弯大多比较乱乎,有些人的眼睛不够使,提前不做功课,到地方也没看清楚该怎么拐,结果走错了,人家能立马一个急刹然后在立交桥上倒车,更厉害的能调头,还冲正常行驶的按喇叭;晚上开车,不知道是得了青光眼了还是白内障了,人家能远光常开一路,用远光闪丫几下,也没反应,有可能是真瞎吧;我还碰见过几个牛人,绿灯亮了我往前开,大哥闯了个红灯过来,估计是嫌我挡了道了,侧着身子对我怒目而视扬长而去,不知道现在报考驾照体检时是不是连红绿色盲都不检查了,搞的我还得看看我这方向是不是真是绿灯。归根结底,一是没责任心,活这么大不给社会做贡献也就算了,还总添乱,二是从来不觉得自己是犯错了,开着汽车能有骑自行车的风格,不知道自己开车时的一个小错误能给别人带来多大的麻烦,更不知道试图去“纠正”这个错误的时候又犯了更严重的错误,好比那些立交桥上走错路然后倒车的牛人们,走错路了没办法,怪自己,可人家偏不觉得是自己的错,非要倒车回去重来一次好“纠正”这个错误。也不知道有些人是不是打小长起来一直受委屈了,现在开起车来别人就都得让着,以前骑车还好,顶多撞个老头儿老太太,现在有个车了,这杀伤力就翻番往上走,直到什么时候因为开车把自己开挂了:也许开车太不规矩出了个事故,也许别人被惹急了把丫弄死了。很多时候,即使是交通高峰时间,我相信如果机动车都能守规矩的话,也不至于堵的那么瓷实,话说回来,我也只能“相信”一下了,因为我就没见过什么时候机动车真都守规矩的,有交警指挥的时候还有些姐姐开起车来太忙活最后没看见交警站那儿的了。我就见过好几次一个十字路口能堵出一个华容道出来,交警来了也得解半天,建议以后碰见这情况的话干脆劳烦军队出几架大力神把挑事儿的车吊起来扔旁边河沟里算了,为民除害,那种烂人走路都比不上条好狗。
这是车开在路上的时候,任谁的车也不可能7×24这么开着,其他时间里,我们宝贝一样的车是要停的。就像路面一样,天津市这停车的地方也是饱和,想在和平路、滨江道附近停个车就是遭罪,4块钱一小时都找不着地方。在其他地方虽说不会这么困难,但是能安安生生把车停到一个合法的车位里也不是件容易的事。有困难的地方就有彪悍的XX人民,所以我能有幸看见:有的车停在消防通道前,有的车停在路口附近,有的车停在路边的草坪、绿化带上(SUV居多)。最闹心的就是那些把车停在路口的人,麻烦回家赶紧翻翻交法,看看路口附近多少米以内是禁止停车的,然后自己有机会也试试拐弯时因为有一辆破车停在那儿能造成多大的麻烦。我在小区里还碰见过有牛人停车挡了半拉路口的,以后赚钱了绝对入手一辆SUV,以便从丫车顶开过去——要说这事儿吊车也合适,不过能干这活的吊车太贵了。
我一直觉得,市内这公路就是一个江湖,机动车、非机动车和行人之间的恩恩怨怨那都是世仇,解不开。机动车车主会说非机动车和行人不守法乱穿马路,非机动车和行人就憎恨机动车的霸道无礼。无论哪方的个人,即使天性善良天真淳朴,只要经常碰见其他两方那些被人骂了十八辈祖宗的人,最后也都会变成一个点火就炸的人。有咱同胞的地方,就有江湖,就有一个大酱缸。扯远了。再说说非机动车和行人,这两个群体毕竟杀伤力不如机动车,有些行为特征也比较一致,尤其在路口的时候,放一起说应该不会不合适吧。非机动车和行人最吓人的地方有两个,一是横穿马路,二是在路口时基本上是忽略交通灯的。横穿马路这事儿,不止行人会干,非机动车也一样会干,总有人推着自行车电动车艰难地横穿马路,我还见过举着电动车跨护栏的,也算力气活,不是谁都能干得了的。我估计这么干不是因为真不怕死,是不明白这世界上真有马路杀手这个东西。有些司机,在驾校学车的时候,要么自己愿意混,要么是驾校不负责帮混,反正在咱国家ZF主持的考试都是一个德行,最后拿到驾照的时候相比没有驾照的时候就是知道了钥匙眼儿刹车油门离合器在哪儿,能把车鼓捣得动地儿了,别的一概不知,上了马路连红绿都忙的没工夫看,更别提考虑一下会不会给别人找麻烦了。这种水平的司机,就算你不找ta,ta还备不住撞你一下了,更别提直接过去干扰ta。假如这些横穿马路的人们,能屈尊去驾校亲自学学车,或者参观一下,应该就能明白这路上暗藏了多少杀机,下一次再过马路的时候也可以更爱惜一下自己的命,就算有人拿枪顶着后腰咱也不能往快速路上跑着横穿马路是吧?更别提就那破速度,跑百米能比我多跑个两三倍的时间,建议回家先锻炼锻炼,先让百米成绩能进8秒,再把抗击打能力提到WBA那些重量级肉盾的级别,然后再说去快速路试试身手吧。过路口时不看信号灯也是,都是拿自己的命开玩笑,至今我就没看见有多少行人在同方向机动车道是绿灯但是人行道是红灯的时候能主动停下来不过马路的。这种情况下交管局为啥把人行道的灯挂成红色的?因为对面车道要左转了啊,您说您也不是车,抢得过人家么,抢的过也撞不过吧?真赶上哪个刹车门的日本车,直接就下去报到了。有N次我左转的时候,人行横道上的行人都像夹道欢迎一样迎接我,而且两边的人八成靠目测都觉得可以靠近一些、再靠近一些,我在车里坐着都不安稳,就怕轧了谁的脚面,唉,在这左转道上的车等个绿灯容易么。
人真是自私得不行的一种动物,是,凡是生物基本都自私,不过只有人类白瞎了高等生物这“高”“等”两个字儿——还有哪种生物能算高等的么?这自私自利的劲儿,从天津交通台那个交管局长热线的节目就能听出来,打进热线就开始抱怨,有说自己出入小区因为某个路口或者交通灯设置搞的很不方便,有闯了红灯挨了罚款反过来说那红灯放的不是地方,要么就是啥手续忘了办了想跟局长们求情行个方便走个后门,等等等等。每次听这节目我都想乐。大伙都觉得这个不方便那个不方便的,然后跑到马路上来图个方便,最后发现谁都别想走了。
Update: 走了趟快速路,又想起一个让人火大的开车行为:从匝道进入快速路的车,还没起来速度就实线并道开到了快速车道。据我观察,有些司机是习惯了,从匝道进来就并道,看不见实线一样;有些司机是嫌前面车太慢,想超车,可惜,您那车再牛,您从限速40的匝道上来,地板油也不太可能瞬间到快速的80kmph限速吧?有N次为了躲这种车都要一个急刹车,更有那种王八蛋并2、3条道的。
再Update: 昨天下午天降暴雨,雨量最大的时候我得把雨刷开到最高速才能看清楚路面,就这天气和路况,还一帮傻叉在路上瞎TM开,我就不说啥了,反正昨儿我挑着走了那条号称天津中关村的破烂儿鞍山西道也真该自己抽自己,真活该。
Feb 20
IUSR补充两句 linux, mac
已经犹豫了很久要不要买个Mac Book Pro来用,恰好今天又看到了tinyfool的这篇《为什么我认为每个程序员都应该用Mac OS X?》,索性让纠结来的更猛烈一些吧~
tiny的这篇文章,给我的感觉是阐述Mac OS X对于一个独立开发者的重要性,牵扯了很多为Mac、iPhone及iPad*用户*开发软件的“愿景”,基于浏览器的也好,客户端软件也好。也因为tiny和我的经历和从业背景相差太多,使得我倒不认为Mac OS X真的就是程序员的不二之选。对于我来说,选择一个OS,首要目的不是为了在它上面开发然后卖软件养活自己,而是为了使用,提高自己的工作效率。首先需要把自己定位成它的小白用户,考察它的界面外观和易用性;然后需要摇身一变成一个Power User,看看这个OS是否让我方便地定制、配置它以便适合我的需要,考察这个OS周边的生态环境,它之上是否存在很多不错的软件厂商提供了很多能提升我自己工作效率的软件;最后,需要自命不凡一些,把自己作为一个得道了的开发人员,检查这个系统是否提供了让我继续开发的底层基础设施,以便在我做Power User做的不爽的时候可以自己动手干或者憋出一个程序来方便自己。
作为一个(服务器端)Java开发人员,我更多的时候还是作为一个Power User在使用OS。Windows XP我用的时间最长(公司需要),也积攒了一些在它之上构建一个提升工作效率的工具集,可是很多时候还是觉得Explorer这么个shell限制了很多,如果切换到blackbox及其fork或者SharpEnvironment,又会出现一些形形色色的小问题。非服务器版Windows作为通用OS虽然不必提供一个很完善的工作环境,可我不得不说在它之上配置出一个高可用的有效率的环境并非易事。Windows 7似乎也注意到一些易用性和友好性的问题,至少这段时间在家用Windows 7的时候我的体验没XP那么糟。反观Linux,实际上我也算一个时间很久的Linux用户,资深算不上,只是比一般用户更了解一些东西,也明白怎么配置它从而让自己的开发效率能更高一些。Linux之上的黑客氛围应该是最最浓厚的,此外就是各种用户社区和开源项目提供的便利。作为一个开发人员,能够和众多黑客使用同一种内核的OS真是一种幸事,不仅因为黑客们都是高超的开发人员,通过各种开源项目为这个OS贡献真正有意义的软件,也因为可以向这些黑客学习而提升自己的功力。举个小例子,X下的窗口管理器可以说是洋洋大观了,可以说每一种窗口管理器都有不同的诉求,我最喜欢的窗口管理器,awesome,就是一个可以大幅度提升自己工作效率的平铺式wm,绝大部分功能都可以全靠键盘操作来完成,配置文件也是直接采用lua脚本,极大程度满足个性化要求。至今在XP下束手束脚地干活的时候,总是会回想起年前用awesome开发另外一套服务器端产品时的畅快淋漓。不过黑客们开发的随意性也比较高,所以追git HEAD拿来做日常用途的话还是有一定风险的;好在有社区作为补偿,偌大一个社区里总会有能人来满足其他人的日常用途。至于Java开发方面的工具集,好在很多还都是很注重跨平台工作的java程序,又有eclipse这么一个IDE作为核心,加上vim、P4V这种有N多不同OS版本支持的软件,开发工具方面倒是很少会操心。
作为一个服务器端(Java)开发人员,我又不得不必须熟悉常见的服务器OS,最常见的就是各种Linux了。我不敢认同tiny所说的“学习Linux是为了学习服务器管理的人们,真玩转了Mac OS X,Linux有什么区别?” 常见的一些操作、管理和概念等等可能绝大部分都是可以在常见的诸多发行版中通用的,可是为了严谨起见,那一小撮不通用的东西也是绝对不能忽视的。身在一个(曾经的)美国乡镇企业工作多年,我对老外的严谨的工作和开发态度印象深刻,而且也确实被一些我自己开发机器的Ubuntu和公司跑服务用的做过一些裁剪和配置的Linux服务器之间的差异着实折腾过几次,于是乎我是万万不敢因为都是Linux就觉得可以无痛运行所有的应用。Java是compile once run anywhere不错,不过有些时候为了更好地发挥服务器性能也会基于服务器运行环境来做一些hack,忽视这些hack有些时候是真能死人的。更何况如果我没记错的话,Mac OS X怎么说也是基于一版BSD做的fork,作为一个伪Linux用户我还是不敢忽视Linux和BSD之间的差异。
而说到Mac OS X以及iPhone、iPad,tiny似乎也非常欣赏以App Store为核心的这套苹果平台上的生态系统。不过我还是觉得一个过于封闭和独裁的平台是无法长远发展下去的,即使App Store刚出现的时候给人感觉似乎是独立开发者的救世主降临了。苹果的App Store绝对是个创举,但是它建立在一系列苹果家的封闭平台和渠道之上,我觉得长远看来Android App Store应该更有未来,至少不会再有一个苹果Inc.禁止你发布一些和它利益冲突的应用程序。
再者就是大家都很看中的用户体验了。这方面大家都承认Mac——以及iPhone/iPod Touch/iPad——及其之上的很多应用程序,历来都是优秀用户体验的代名词,无论外观还是操作都是一流的。不过我还是认为,这么一个东西,只不过是一个适合人类的OS,不是适合*我*的OS。很多时候我还是希望能折腾出来一个最适合自己的OS——也许这些不能算是OS的功能,在linux下尤甚,基本上就是OS和运行在其上的各种应用程序的一个综合。这样一个*我*的OS,虽然不敢保证随便谁都能拿来就无障碍使用,但对我来说却能在一定程度上保障自己保持一个合理的工作效率。没有使用过Mac OS X,不知道在它下面能不能像在linux下一样地自由折腾,不过,Linux即使不是最能让用户折腾的OS,也肯定是能让用户使劲儿折腾的OS之一。
聒噪这许多,发现似乎自己的犹豫也渐渐解开了,还是买台ThinkPad好了,继续走Linux的路子,也许外加一个Windows 7方便VPN干活。只不过说到笔记本硬件的话,17寸Mac Book Pro的性价比感觉还是很高的,更何况还有那么好的外观,买完了ThinkPad我想我也还是会继续惦记着Mac Book Pro…
More
Older Entries
Recent Comments