| alienbat's profile编程 汽车 高清gadgetsPhotosBlogLists | Help |
|
May 28 业余汽车评论之:缩水传奇以下是在德国发行的限量版SUZUKI Swift: Black and White Edition,1.3L VVT发动机,标配中控液晶屏和导航系统。尾部多了一个被动反光灯,配备特别设计的16寸合金轮毂,选配限量版空气动力学套件。那合金轮特别让我眼馋,不知道有没有的零售。 以下是澳洲发行的运动版:SUZUKI Swift Sport。1.6L VVT发动机(最大功率输出92KW),ESP,赛车座椅,双合金排气管,赛车空气动力学套件和悬挂。只有手动版 以下是中国发行的农民企业家版:铃木雨燕。老旧1.3L羚羊发动机(后升级为1.5 VVT),恶俗金属条进气栅,丑陋廉价合金轮(图中未能显示),便宜含铅乡村大红喜庆金属漆(请自行涂装车顶以冒充Mini Cooper)。另外,天线怎么跑车头去了? 以下是印度发行的终极阿三糟蹋版:三厢Swift。极度丑陋突兀第三箱,山寨级做工(参考后门那条大裂缝)。其他配置不同程度缩水。唯一值得称道的是本地化做的不错:14寸厚实超小轮毂,适应印度国内唯有SUV才能胜任的路面。 以此可以总结一下不同地区对汽车的需求 欧洲:精巧,舒适,环保省油 澳洲:运动(即使是supermini也一样. 澳洲和美国比较接近,都崇尚V6以上的大马力车。不过美国更崇尚,所以Swift这样的车型在美洲都不卖。) 中国:脸面是最重要的,所以就算是经济型轿车也得装饰得和HONDA Accord一样才能卖。万一实在窘迫只能买得起“没屁股”的小型掀背车,也得镶嵌金属条再加个假车标才开得出去。 印度:90%的人口是全家坐在一辆助动车上出行的,一切带4个轮子的都算奢侈品。所以不能要求印度人民在汽车上有什么审美。 May 22 现在流行Hybrid: C++ Mixin And CarsPreviously on Jay's blog: Sensational drive to Sydney, Top Gear, C++ Mixin... =========== 好的。现在来谈谈在C++中使用duck typing和Mixin的问题。 传说自Lisp/Scheme之后就没有新语言了。不谈那些只能用来显摆的冷门学术语言,我认为该断言在C++上也有效。所谓Java,其实就是个简易缩水堆栈only版C++外加一个垃圾收集器。本人在JAVA5之后已经不怎么关注,不过最近回顾Java6和Java7,发现Java——通过改头换面地重新拾回Java设计之初抛弃的C++特色——开始变得越来越难看。 言归正传。Mixin在C++中可以如此实现: #include <iostream> template<class T> } class Sayer int main(char** args) C++的“模板”之所以强大,是因为它更多的被称之为“模板”而不是“泛型”。实现原理出奇的简单。C++ template的实质相当于关键字替换,所以相比Java那种受监管的擦除式伪泛型,C++ template可以实现手写代码能实现的所有功能——并且完全保留编译期检查。 类似动态语言只有在运行期切实执行到语句的时候才进行检查,C++ template在specialization之前也是不受检查的,不妨认为这是一种“编译期动态”。同样的,也不妨认为C++ template是一种“编译期duck typing”。 这整个玩意算不得什么高科技。后来在网上搜寻关于C++ Policy Based Programming的时候发现居然有人就C++ Mixin的问题写了一篇14页的论文(http://www.cs.uoregon.edu/~yannis/practical-fmtd.pdf, 不过不推荐阅读,因为存在大量常识性错误),有故弄玄虚骗学位的嫌疑。谈到故弄玄虚,我们又得拿传说中的JavaEye论坛作例子:比如Java版有“超级大牛”写了篇帖子,用Java6又是反射的又是泛型又用上annotation,还要调用apache的ConvertBean,目的在于——把一些存在hashmap中的字符串转化为对象;当然此帖随后精华。又比如,咳咳,“企业级软件开发”,“领域模型”的讨论,大家知道的,充血呀贫血呀之类;后来俺把坛子给掀翻了,因为GLY设计论坛系统身份验证的时候忘了检查用户密码。再后来俺又把坛子给掀翻了,因为帐号激活的验证码实在是太呆。所以大家要记住,除非是写论文骗学位值得原谅,否则莫装B,装B被雷劈亚。 ====== 一篇帖子才那么点技术内容,没劲。我们来谈谈别的,比如:油价。打着过现在油价贵到杀人的地步,即使在最便宜的星期二也要$1.44/L,还是打过折的(即时更新:Woolworth今日打折油价:$1.55/L。W~T~F !!!);这让人怀念油价不到1块钱之前的美好生活。在遥远的美利坚,传说汽油跟水一样便宜,所以人人都买SUV和Pickup truck,出门买小菜没个V8增压发动机你都不好意思和人打招呼。看看美国汽车制造商都弄出什么怪物:Hammer H2,每加仑行程9英里,所以悍马唯一趟不过去的东西就是加油站。当然现在形势变了,高油价逼得美国人考虑Prius. SUV呢?全卖到中国了(当然考虑到中国的路面状况SUV确实很适用)。今日原油价已经超过了每桶125美元,不是大款还真开不起四轮驱动。Holden Commodore加一箱油100多块,那些喜欢大油门的皮卡punk都吃不住了。今天加油我刚把油枪插进Swift的加油口,就看到隔壁几个开大车的老外用一种直勾勾的羡慕眼神盯着我油泵的计价表;不过开小车的在无敌的混合动力面前是没有资格自豪的:悄无声息地开过来一辆白色Prius,司机探头看了下油价牌,又开走了! 小车中Mitsubishi Colt是最省油的,6L/100KM,因为它有CVT(无级变速传动系统)。不过去看车的时候觉得这车太“傻瓜”了点,因为是CVT所以连一般自动档汽车的排挡杆都省了,该是排挡的地方是空荡荡的地板(当然可以选配一个杂物箱放那里,看上去不至于太空虚像个电瓶车),只在方向盘上装了一个操作杆控制前进/倒车。 我并不是很相信工业技术水平并不高的意大利能做出真正高科技的汽车。要车开的快很简单:F = ma. 用碳纤维制造尽可能扁平和轻量的车身,再塞进一个每秒钟耗油1L的V12双涡轮增压发动机,然后放2个座椅只允许2个人坐,没有行李仓。大F小m,这车不快都不行。但是相反的方向:Ferrari或者Lamborghini能不能做出一辆在市区百公里耗油3升的汽车?熵总是增加,所以浪费能量很简单,节约能源很难。混合动力汽车比如Prius,需要苦心收集一般汽车刹车时转化为热量的动能储存进电池;意大利跑车只需关心巨大的陶瓷刹车盘就行了。又比如,VolksWagen可以做出1.4L的柴油发动机却具备2.0L的动力装在Golf上面;BMW的特殊7系可以加注氢气;意大利跑车们却只能加注高标号汽油,超高标号汽油,航空煤油... 当然,跑车的标价放在那里,说它们“不节能”未免有葡萄酸的嫌疑:毕竟浪费能量也是有钱的象征。想想北京车展上买走Bugatti Veyron的那位:为何在国内的那种路面状况下有人需要一台407km/h的怪物跑车?在加油的时候可以显摆。(一帮营业员围上来“哎呀X先生您又来加油呀”参考《满汉全席》)。TOP GEAR剧组在杜拜找Bugatti Veyron,结果大路上一下子发现红白蓝三辆;想想那帮人加油的时候咋就下的了手捏?后来听说杜拜1加仑汽油不到1美元,就解释了;那也用不着开407km/h那么快呀?因为中东有美军的M1A2,于是又解释了。 最后再阿Q精神一把:周末开车回Canberra的时候在M5高速上我超了一辆Ferrari Spider F430。啊哈哈哈~~当然谁都没超速,是Ferrari开得慢了,毕竟开快了AFP会给你拍照。谈到超速拍照有个tip:万一超速了,就干脆超到底,据Top Gear测定时速超过270km测速照相机就反应不过来了,没法拍你。 下篇预告:“都是SUZUKI Swift差距咋就那么大捏?!” (贴个AUDI R8的广告,看过《God Father》的就看得懂) May 16 Drive to Sydney在清冷的早晨 驾驶我的SUZUKI Swift S 穿越秋日的落叶和山间的晨雾 在《第五交响曲》、GPS和巡航控制的伴随下奔赴悉尼——大洋洲东岸最大的人类城市... 真是一种享受呀,像卖车广告。 And some says he believes Star Wars is a documentary, all we know is he's called The Stig...(不好意思Top Gear串台) ==== 好久没写技术贴了,预告:下帖阐述为何C++也能实现duck typing和Mixin这种动态语言的技巧并且同时保证编译期强类型安全。 May 13 记在JavaEye论坛的新玩乐, 以及见证一个由恶俗彻底堕落为糟糕的群体
在欣赏这篇文章之前,先复习一下本人在近2年前所做出的准确预言和评价: 抱着娱乐但是严肃的的精神,我们对2年前的JavaEye论坛作出了以下的评价和预测: 1. 是一个恶俗但尚未糟糕的论坛;但迟早会变成那个样子 2. 有着超恶俗的版主(庄表伟同学,不好意思你被点名了,哈哈),但他们还强忍着没变成铁血版主那样的混子;但迟早会变成那个样子 近2年过去了,恶俗的论坛以及在恶俗论坛活跃的、自认为是“很高级程序员”的人们,又有什么变化了呢?本人化身为星球大战中的传奇机器人C3PO,以及以其他著名机器人命名的马甲包括:C3PO的兄弟C4PO,垃圾处理机器人WALL.E,传说中的汽车人头领Optimus.Prime。顺便提一下,在2年前以自杀式攻击给庄表伟同学留下极大心灵创伤的JavaEye ID:B1-66-ER,是Animatrix系列:The Second Renaissance中第一个反叛人类的型号。这些英勇的机器人潜入JavaEye,为您作出第一手追踪现场报道。在最后的高潮中,这些机器人更是勇战JavaEye的最终BOSS:管理员(观赏以下技术部分)。 首先从技术角度来评价一下JavaEye的论坛系统(无责任评论,因为博客公开,等诸位看见的时候JE可能已经改了)。号称是“最好的技术社区”(至少是努力的方向),而论坛系统又由一群整天讨论很NB的“企业级架构”的同学们构筑,用的还是最前卫最NB的Ruby on Rails,该系统一定是能反映最先进生产力——in theory。导火索是这样的:可能GLY的那张大脸很容易受伤害(有兴趣者可以去JE观赏其尊荣,2年前我们已经预测过了,恶俗之人必然使用真照片),某次直接或间接受了伤害之后偷鸡摸狗地把本人帐号密码的MD5给改了。没法登录咋办捏?我花了半个小时exploit了一下,发现居然可以不用不用密码登录JE。漏洞很简单:JE的cookie只纪录与用户名相对应的uuid而不管什么密码,只要预先记下用户名对应的uuid便可绕过密码检查。想想看,一帮人在JE论坛唾沫飞溅地讨论什么“企业级软件开发”,结果他们所崇拜的GLY开发出引以为豪的论坛系统居然没有像样的权限检测机制,是不是很糟糕呢?当然,他们有可能光顾着讨论什么“领域模型”是“充血”还是“贫血”了(此论题数年不变且每次出现必精华,就跟周期性出现的抵制日货的帖子一样搞笑)。 事情还没完。当GLY发觉了居然有人破解他骄傲的论坛,被改了密码还大模大样地在坛子发帖的时候,自尊被严重伤害了:他操起了SQL(again?)直接删除了我的ID。不过寻找第二个漏洞并不难,我又花了半小时exploit,可用来无限地注册JE的ID。同样很简单。JE要求一个全数据库唯一的真实email地址,通过“激活”方式来保证email地址正确,供其卖给垃圾邮件发布商之类。初级破解便是利用Internet上到处都有的临时email服务器,可以用来取得无数个仅仅几分钟有效的email地址用来激活。不过暴怒的GLY后来可能加了个人工黑名单,可用来屏蔽临时email地址的域名,所以每个临时email服务如果不能变更域名的话,就只能用一两次了。但是还有办法。JE的帐号激活机制极其粗陋,其密钥由两部分组成:去掉最后一位的uuid,以及逐号递增的帐号数据库主键。前者在注册完毕之后就告诉你了,后者有点复杂,唯有在帐号激活之后才会在浏览器地址栏显示。所以我们可以用如下方法激活大量使用无效email的帐号:使用临时email注册一个帐号,激活,记下该帐号数据库主键为id_start;然后注册想要的帐号,想来多少弄多少,email随便起,什么robbin@homosexual.club.org啦,记下uuid;最后再用临时email注册一个帐号并激活,记下数据库主键id_end。所有无效email帐号的主键必然在id_start和id_end之间,配上已知的uuid,尝试有限次就能猜出激活URL组合,让这堆帐号全部激活。挑半夜动手(没有其他用户申请帐号)的话,纯手工就能搞定。 当然,1小时内找出2个漏洞,GLY是彻底崩溃了。我可以想象得到那天晚上他疯狂查询数据库一条一条地比对帐号用户名和密码,删除一切看起来可疑的ID。之所以这么猜想,是因为我的马甲是在一段时间内逐个消失的,如果是SQL自动操作未免太慢了点。不能不说,I've got a great fun. 我想,我们可以得出结论:JE的系统糟糕透顶,与2年前的“恶俗状态”相比,堕落了。顺便说一句,2年前JE用的是phpBB系统。唉,造轮子,造了个破轮子... 现在让我们转移目光,来看几个典型的人。 来通过庄表伟同学的博客,旁观一下他这2年的发展历程。听说庄同学的公司,因为请不起一个过4级的英语翻译而崩溃了,而那很先进很先进的点对点视频传输软件估计也无人问津。没人知道他流落到了何处;但我所知道的是:本人如果和他提起往事,他喃喃地说:“幸亏我当年没有雇你,啊,啊...”,考虑到如果我当年要是被雇佣而那公司又倒闭了,我现在也就是一无业小青年;所以庄同学说这样的话应该是出于一种愧疚。能够自省并替他人着想,应该还算很不错的。最近庄同学跑到著名的“槽边往事”,想如同在JE一样论道;结果被博主和菜头当场贬为“装B犯”,连带着回帖都给删了。如此不堪,我们可以认为庄同学终究没有保住“恶俗”的位置,掉到“糟糕”的级别了。 但是庄同学显然不是今天的主角。让我们再来观察一下JavaEye的神秘“管理员”(以下简称GLY)。 没人知道GLY的真实身份,只知道GLY会用root帐号和一个实名恶俗马甲轮番上阵;没人知道GLY的社交圈,只知道他在JE一手建立了精英“装B元老院”,并给每个元老以天文数字的积分;没人知道GLY的权限有多大,只知道你如果让他很没面子,他会查你IP、翻你的马甲游街最后满门抄斩。据说GLY一直在创业,一直创到现在,而公司主要的玩意,同上海的其他那些窝在廉价住宅小区的公司一样,是搞“WEB 2.0”的。不过GLY的情趣有点奇怪,每天主要的业务是扒在他的坛子上按F5刷新;有点像“五毛帖”那种。与某太祖一样,GLY也是宣扬“民--主”,以获得一点档次,使得自己可以维持在“恶俗”的边缘,为此不惜时间专门实现了“投票”系统来决定帖子算是精华还是隐藏。如果你查询JE的用户列表,GLY每天的乐趣就是刷新论坛,看看他自个的帖子有没有被粉丝投为精华;以及让他不那么爽快的帖子有没有被隐藏。如果非和谐贴没有及时消失,他就自个上马投个隐藏;如果还不够而那帖子很快就要坏他的大脸皮,GLY就要操起SQL语句把帖子和人家的ID直接喀嚓了,这叫“群众评论和GLY管理相结合”,又称为民主集中制。不过后来GLY高级了点,不再像军政府那么赤裸裸了:他把自己的投票权重调到超高的程度,这样他只需投一次票那帖基本就直接精华或者隐藏鸟~ 看到这里,再参考一系列遗憾的“偷改密码不成删ID"行径,我们终于可以把GLY同铁血论坛的那些愤青版主放在同一个级别了。 说点严肃的。某些人的视野和学识,有时候就真的小得可怜。就比如:好端端的SUZUKI Swift和Mazda 2,到了国内就得变3厢还得镶嵌金属条才卖的出去;又比如,常在国内技术杂志露脸的“技术大牛”居然开发出了不要密码就可以登录的论坛并称之为“最好的社区”、还喜欢偷偷摸摸地改用户的密码。就像再怎么镶金镶银加真皮座椅和GPS,1.5升的小发动机还是拖不动3厢的车身;心眼跟针尖般小的“创业者”,再怎么“创”也只能是个开QQ窝在上海廉价住宅区混饭吃的三流货色。
最后呢,还有一件憾事。JE某ID称之为MyJavaRoad提出丰厚条件请我悉尼吃饭,我也是答应了,连饭店都找好了(Lone Star Steaks)。只可惜红了眼的GLY不成人之美,两个FB帖都让给喀嚓了;其实最关键的问题还在于吃饭拍照留念,在JE显摆一下;现在呢,GLY的大脸皮给撕破了,本人要以真实身份登录JE是不可能,显摆的事情自然也告吹了。所以,在此遗憾地告知MyJavaRoad:本公子没法赴约了;C3PO系列已经满门抄斩,咱俩谁都显摆不了了。 |
|
|