Oracle BEA Merger update

上次是4月底的时候时候,合并通过了美国和欧盟的(主要是反垄断吧,不过有IBM在,肯定没事)审查,BEA就正式成为Oracle的一部分了。这个事件,称为CIC,即Change In Control。这一天起,BEA的股票就不再交易了。 6月1号美国公司的法律手续正式完成,称为LEC(Legal Entity Combination),BEA美国作为法人就不存在了。BEA美国的员工,layoff的除外,都变成了Oracle的员工。香港的员工也在同一天成为Oracle的员工,但是中国还有日本等国家比较晚。我们组正好有一个香港雇佣的员工,所以他是打入我们BEA内部的Oracle人 😉 中国这边比美国要晚一点,不过也还好,现在已经进入到发Offer的阶段了。在发Offer之前,居然在我们研发部门有一个小规模的裁员。去Deliver一个裁员的消息总是不那么容易的,所以我觉得我比被layoff的员工还紧张。不过也好,人员流动一下对team也是有好处的,我们这里的attrition rate实在是很低。只是,什么时候给我们head count呢?这点可能是所有外企的比较讨厌的一点,所有的head count都被国外的老板们控制着…… 我也再次认识到人们的虚伪,可能,适当的虚伪是有必要的,要是都讲大实话,还要面子干嘛? 估计很快我们就是oracle的员工了吧……对了,oracle这个公司卖的产品,大概接近一万种了。 本文仅代表个人观点,不代表我的雇主,不管是BEA还是Oracle的观点。(这里有观点么?)

六月 19, 2008 · Shawn Ma

DKIM技术

前段时间看gmail的时候,发现邮件头上都有一个mailed by的字段,比如mailed by: yahoo.com,不知道这个东西是怎么来的,于是查看了一下整个header,发现有一个DKIM-Signature的字段,于是又去google了一下,了解到这个原来是一个新的标准,叫DKIM,定义在RFC4871里。它的功能是:让企业可通过密码对进出站的电子邮件进行签名,证实所发送邮件的真实性。 DKIM的全称是Domain Key Identified Mail(域名密钥识别邮件)。简单的说,就是发送邮件的服务器对邮件做签名,表示这个邮件的确是该服务器发送出去的。如果一个接收端能够验证这个签名,一定程度上表明这个邮件可能不是垃圾或者钓鱼邮件——原因是现在大多数的垃圾和钓鱼邮件都使用伪造的email地址。当然,这个技术不能单独解决问题,因为一个垃圾邮件发送者也可以自己做一个服务器来对发出的所有垃圾邮件签名。但是,由于邮件是签名的,我们就可以通过黑名单和白名单来进一步了解某个域名发出的邮件是否为垃圾邮件,甚至可以在网上维护一个域名的积分系统。 签名另外一个好处就是,DKIM提供一定的完整性(integrity)的保护,保证这个邮件在发送过程中没有收到篡改。 那么这个签名是怎么做的呢?基于公私钥的签名系统。发送者在服务器上生成一对RSA的key,私钥自己保存好,公钥放在DNS的TXT记录中,比如一个站点叫example.org,那么其DKIM的公钥通过_domainkey.example.org的TXT记录就可以查询到,这样接收方就很容易知道发送方的公钥了,也就可以验证这个签名。这个方案好的一点是,不需要一个第三方认证的CA——毕竟,每年通过CA签名一个证书也要好多钱。这也是DKIM跟以前的签名技术如S/MIME, PGP等不同的一个地方。当然,通过DNS的TXT记录也有其安全性问题,完全有人可以hack掉DNS,或者通过类似GFW的方法改变DNS查询的结果,但是DKIM只是一个辅助技术,是用来防范垃圾邮件的,并不是一个strong authentication system,如果真的对安全性要求那么高,就应该使用PGP之类的其他安全系统。 接下来的问题是,签名是如何加入邮件的呢?通过DKIM-Signature邮件头。这是符合邮件协议(RFC2822)规定的。这是跟其他签名方法又一个大不同之处,避免了任何不理解S/MIME的客户端把签名当成一个附件(比如gmail),或者把签名显示为一段跟内容没有关系的base64编码。接收方则根据DKIM-Signature头的内容来验证该签名。 一些签名的具体细节: 算法,必须支持rsa-sha256,可选支持rsa-sha1。key size建议1024。王小云老师在这里贡献不小。 标准化(Canonicalization). 有的邮件服务器可能会少量修改文件内容,比如换行或者移除一些空格等等。因此DKIM定义了两种标准化方法,simple和relaxed。simple最简单,就是一个字节也不能改,改了就错。relaxed就是可以少量的修改一些空格等等。邮件头和内容这两部分的标准化可以选择不同的方法,表示起来用/隔开,比如simple/relaxed表示头部用simple方式,内容用relaxed方式来标准化。 过程。签名是先对内容(body)部分hash,然后把这个body hash放在header里面,再对头部做签名。头部也不是所有字段都签名的,只有一些常用的字段,或者比较有意义的,会被签名。像Received和Return-Path这样的字段一般不被签名。而From则必须被签名。 差不多啦,来看个真实的DKIM头吧: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; bh=LKY45ARqaaOMfM6XOs6BBkYA44a4+H26qQdm9oC55X0=; b=QhTXCrvIhk......XQbXhFl4Xk575ACw= 可以看到一个DKIM-Signature由一系列name=value的tag组成。其中: v=1表示版本1,将来要有新的版本,就扩展之。 a=rsa-sha256,表示算法(algorithm)。这里用了rsa-sha256的算法。 c=relaxed/relaxed,表示标准化方法(Canonicalization),头部和内容都用的relaxed方法。 d=gmail.com,发送者的域名。 s=gamma,表示域名的selector,通过这个selector,可以允许一个域名有多个public key,这样不同的server可以有不同的key。 h=…,表示后面这些header是签名的一部分。 bh=…,是body hash。也就是内容的hash。 b=…,是header的签名。也就是把h=那个里面所有的字段及其值都取出来,外加DKIM-signature这个头(除了b=这个值,因为还不存在),一起hash一下,然后用rsa加密。 最后看一下如何获得上面这个例子的public key。对于s=gamma, 这个gmail服务器的public key存在gamma._domainkey.gmail.com的TXT字段里。在Linux上dig一下: $ dig gamma._domainkey.gmail.com TXT ;; QUESTION SECTION: ;gamma._domainkey.gmail.com. IN TXT ;; ANSWER SECTION: gamma._domainkey.gmail.com. 300 IN TXT "k=rsa\; t=y\; p=MIGfMA0GCSqGSIb3...DAQAB" nslookup也是一样的: C:\>nslookup > set q=txt > gamma._domainkey.gmail.com Non-authoritative answer: gamma._domainkey.gmail.com text = "k=rsa; t=y; p=MIGfMA0GCSqGSIb3.....AB" 其中的p=那一段就是public key了。 ...

六月 11, 2008 · Shawn Ma

live space到wordpress的搬家工具

想把MSN space上面的文章都搬过来,不知google之,还真找到了broom同学用python写的迁移工具,只用两个py脚本就完成了。 我的用法大概就是标准的用法: python live-space-mover.py -s http://themouse.spaces.live.com/ 然后它会把space的所有文章都输出到一个xml里面,这个xml是wordpress的”export”格式,所以只要在wordpress里面import一下,就ok了。 不过我还是遇到了一点小问题,import的时候在一个叫”无题”的文章那里总是导致php达到最多执行时间,60s。我以为文章太多了,手动把xml分成两个,结果还是一样的,最好发现wordpress导入的时候如果有两个标题一样的话,在某个地方会出现死循环!碰巧我有两个文章都叫无题。 从live space export的速度比较慢,本来还想看一下有没有办法改成多线程执行,顺便学习一下python,但是一想,由于其工作原理是一个一个浏览过去的,而不是先获取一个index再去fetch的,所以改成多线程不太可行,而且这个也是只运行一次,就放弃了。 另外有个问题,feed们不会更新,有什么办法呢?

六月 10, 2008 · Shawn Ma

智化寺

智化寺是明朝大太监王振同志以前的家庙,香火一度很旺,清朝乾隆年间,被沈廷芳大人发现还有人祭拜这么一个坏人,上奏皇帝并废弃之。后来命运就很悲惨了,连屋顶的藻井都被美国人偷偷弄走了,现在流落海外。老北京网有个比较详细的历史介绍。 这个庙现在在禄米仓胡同里头,是比较保留的还算不错的明朝建筑。不过在庙里看到民国时间的一张照片,那可真是一个衰败啊,钟楼上面长了一尺高的草,大殿的屋顶都是歪歪斜斜的,感觉很快就要塌下来了。 今天去溜达了溜达。在找到智化寺之前,在金宝街上看到了另外一个庙样建筑,仔细一看,原来是另外一个如雷贯耳的大太监的家庙:刘瑾。他的家庙叫“法兴寺”。这个庙似乎只有一个大殿了,对着金宝街,有一帮带着红袖章的老头老太在那里休息,也不见开放的样子,没啥意思,就继续深入到禄米仓胡同里寻找智化寺。 路上,经过一个老北京养鸽子的笼子,如今越来越少见了,北京的鸽哨的声音也很少听到了。 很容易就找到了智化寺,老远就能看到钟鼓楼上面的黑色琉璃瓦。黑色据说是“降伏万恶”的意思,倒是不常见。(不过钟楼一楼的那个人工的祥云真是恶俗啊。。) 他们家的山门,上书“勒敕智化寺”。 下午3点,赶上了一个“明朝京音乐”的表演,据说是当年王振从宫里带出来的,并一直保留至今。乐器大概有5、6种,倒也是鼓瑟齐鸣,挺入耳的,只是不知道是不是真的当年的遗留?另外,演奏者似乎厌倦了每天四次演奏的日子,鼓手尤其看起来没精打采。(抱歉,没有更好的角度) 其他的地方就没怎么照相了。这个演奏在第一个大殿,后面两个殿一个供奉的都是佛像。值得一提的是,这两个后殿的藻井都在民国时期被老外给弄走了。这还有两个版本的故事,一个说,老外看上了这个藻井,就买通商人伙计方丈等等将其买下,另外一个说,是方丈本来就将其拆下打算做卖给什么人做棺材老外看了心疼所以才买下的。不管哪个是真的,这个藻井的确不在了。其中一个殿盖了一个木板,木板上印了一个盘龙藻井的的图像,看起来的确令人叹为观止,如果要是当年这个东西刚落成的时候,一定是很雍容华贵的吧。另外旁边的殿里有一个藏经阁,里面有一个个的小抽屉,一共八面,每面45个,共计360个抽屉。智化寺还有可能因此保留下来的许多明朝的佛经。这个殿的屋顶内,就有该庙现存的的唯一一个藻井,做工已经是相当的复杂了,虽然看不懂太多的门道,但是我们还是啧啧称赞的……Orz 庙里游客相当的少,好像一天也就40个左右的人去参观。只是居然要20块的门票,有点夸张了。 最后送两张庙的猫,很好看,很懒,躺下睡觉的时候拨弄他都不理。

六月 7, 2008 · Shawn Ma

碳排放和补脑

这是两个不相关的事情。 今天去港龙航空去查看老婆大人的航班信息,发现他们的网站左测有一个抵消碳排放的logo,就点进去看了一看。原来他们有这样的条款,如果你自愿的捐款若干元,那么他们就会用你的捐款去购买碳排放量,来抵消你这一程旅行中二氧化碳的排放。上面还有一个排放计算器,从香港到北京的经济舱换算出来的排放量大概是180公斤,头等舱就要370公斤了!180公斤二氧化碳只需要捐款13.9港币,就可以在市场上买到相应的二氧化碳排放量。 BP的网站上以前有一个个人CO2排放计算器,不过现在那个flash版本已经坏掉了,只有一个文字版的,粗略计算一下,我们家一年排放6吨。美国人大概一年20吨,而中国平均每人一年2.7吨。不过,这是一个全球的事情,不能因为我们人均排放少就不负责任啊。 补脑是科学松鼠会的一片文章。先说说这科学松鼠会。这是一个科普blog站点。我是一个”科学”的fans,甚至有点原教旨主义,所以我爱看他们的文章。不过科学松鼠会这个名字听起来有点像达芬奇密码里面的峋山隐修会,都是为了某个反宗教反迷信的purpose而成立的小组织:PP 这篇文章说,补脑的药物看来已经离我们不远了——真正的有效的药物,而不是脑白金这样的垃圾保健品。通过对大脑里一些神经递质活性的调节,一些药物比如利他林、莫达非尼可以增强人的记忆力、提高计划力、执行力。更多的药物正在研发当中。作者说,有如此好事,谁不去补呢? 不过我看来却不是很舒服,首先这看起来有点像体育运动中兴奋剂的感觉,岂不是对高考的考生很不公平?不过貌似没有办法,这个社会本来就不公平,有信息的,有资源的,将会继续占据有利地位,马太效应恒久存在。难怪中国历史总要过二三百年重来一次,客观上也起到一点重新分配的作用。还有,似乎有点可悲,人类的压力真的到了这么大,需要通过药物改变大脑提高自己的竞争力么?想想有种药物,在我脑子里发回作用,帮我提高记忆力,就觉得不舒服,虽然我的记忆力也不是很好,在who has the biggest brain里面这个项目得分总是很低。

五月 31, 2008 · Shawn Ma

加速windows xp的软件: eboostr

知道这个软件很久了,今天在CNBETA上看到,又搞了一个来玩玩,加速程序启动的效果还是不错的。 Vista的两个功能让我很感兴趣,一个是super prefetch,一个是ready boost。基本原理就是,1,把常用的文件缓存在内存里。2,使用U盘这种读取速度比硬盘快的设备来缓存常用文件。这样,启动一个程序的时候,如果能够从内存中或者速度比硬盘快的闪存中读取到需要的DLL,那么程序启动会快很多。 对于XP,有个公司做了一个程序eboostr,做类似的事情。他也可以把缓存放在内存,或者U盘(SD,MMC或者一切读速度比较快的设备)。搞了一个绿色版本,在这里。安装的要两步:第一,选择里面的inf文件,右键,选安装。第二,运行installservice.bat。然后重启就好了。运行eboostrCP.exe开始配置吧!不过这个软件正版只有39美元,条件合适的情况下还是应该买一下的。 我看,随着内存价格越来越大白菜化,将来我们应该可以直接把操作系统安装到内存,这样这些什么fetch都不需要了,再将来,我们要把OS装到CPU的L2 cache里面去……yeah… Linux似乎不需要这样的东西,因为linux内核会把不用的内存用来做文件的缓存,这样,当第二次启动某个程序的时候,速度也是很快的。

五月 28, 2008 · Shawn Ma

ThoughtWorks在招人

前两天用了mingle,觉得这个软件写的不错。结果后来收到了一个猎头的电话,发现这个ThoughtWorks在中国招人。跑去他们的网站看了一眼,原来Martin Fowler是他们的Chief Scientist。不过他们是一个Consulting公司,而且完全使用agile的方法学,所以最大的一个要求就是:Travel。他们的员工据说一年几乎全部在出差。对于我这样的恋家的人来说,是不行的。要是他们的studio招人倒是有点意思——也就是development部门了。 我看了一下他们的招聘流程,觉得他们对要求interviewee写一段代码挺有意思的,以后我们要招聘也得让人好好写写,毕竟,对于软件公司来说,写出来高质量的代码是对一个员工很重要的评价,也能看出来一个人对待软件的态度和真正的功底。而且,我是一个完美主义者…… 最后,比较搞笑的是,他们的中文命叫思特沃克,跟毕益辉有的一拼了,都很土。

五月 24, 2008 · Shawn Ma

推荐一下德国之声

用Google Reader subscribe了一些feed,觉得德国之声中文版的政治时事文章写的不错,不像某些国外新闻媒体写的那么偏颇。 Feed的地址是:http://feeds.feedburner.com/dw-world 应该是阮一峰小伙burn的feed。 也可以用我在google reader shared的RSS来阅读:http://www.google.com/reader/shared/12925153103454687975 几篇喜欢的文章: “叔叔,我想喝可乐。要冰镇的!” 关于这次地震灾害中人性的一面。 警惕以行善的名义施暴… 关于南充麦当劳冲击的思考 几乎自由:地震以来中国论坛管理空前的松 还有一个是路透社的: 〔新闻稿〕人民奋起,台湾新生–马英九总统就职演说全文 (马英九周二宣誓就任中华民国第12任总统,以「人民奋起,台湾新生」为题发表就职演说,以下为演说全文。

五月 23, 2008 · Shawn Ma

Scrum project management tool: Mingle

最近打算练习一下scrum,就在网上找一些scrum的管理工具。找了很多免费的工具,比如xplanner, agile42什么的,都不是很好用。xplanner看起来就令人生厌。有一个Project Dune的,利用Google GWT做的一个应用,看起来还不错,但是安装了之后有好多问题,比如什么deadlock的问题,mysql无法访问的问题,而且我看他们对scrum的支持的screenshot也很简单,就放弃了。 收费的软件貌似很多,很容易搜索到,有versionone,mingle等等。mingle好像网上用的比较多,有一些中文网站推荐,去看了一下,5个人一下可以Evaluate一年,而且支持unix/linux,就试用了一把,感觉的确很不错。 Mingle的核心是卡片,所有的东西都是卡片,比如feature, story, task等等。卡片可以通过树状结构组织起来,就形成了需求分析阶段的features树,也可以是计划阶段的planning树。最后,树上的节点,对于mingle来说主要是story,会被投入到sprint当中去。team member可以自主的选择一个个的story去实现。我们用的时候觉得story有点大,把story又分了很多的task,这样一个人可以负责一个task。 它的强大在于,卡片是可以扩展的。它使用了一些类似BPM的概念。一个卡片本身不代表任何意思。然后我们通过给他添加property来指定他的属性。比如类型,开始日期,结束日期,工作量预计等等——可以理解为面向对象里面的属性。接下来还可以给卡片增加Transition,可以理解为方法。比如一个task在new状态的时候,加一个Take Task的transition,那么就可以把这个task的owner设为当前用户,把task的start date设为今天,把状态改为In Progress。 接下来mingle可以用不同的view来显示这些卡片,并且可以加上一些filter。只有满足某些条件的卡片才被显示。对于Product Backlog,其实就是一个针对Featurs树做的filter。Sprint Backlog则是针对planning树。 最后,他还支持一种MQL语言,一个简单的统计报表语言,用这个可以画出各种各样的breakdown图。另外,还内置了wiki的功能,每个卡片的描述都可以是一个wiki,可以详细的描述一个需求和实现细节等等。 总得来说,这是一个很不错的软件。当然,估计用ALBPM也可以实现,只是有点杀鸡用牛刀的感觉。我倒是觉得要是用GWT做这么一个东西,应该挺有意思的。 有一个简单的突破5个用户的方法,设定卡片的owner属性不是member list,而是指定的另外一个list,就可以了。这样所有人用一个用户登录,但是通过手动改动owner属性来做task的分配。

五月 21, 2008 · Shawn Ma

地震的发现

四川地震,举国悲痛,所以昨天被定位国难日,下午12点28分第一次听到真实的防空警报的时候,心里还是有种不一样的感觉的,联想起今年中国所受到雪灾、西藏和奥运事件,难免感叹一声,中国,太不容易了。不过,这也不正是一个成长中的大国所应该经历的么?一个负责任的,透明的政府就应该有像汶川地震中的表现啊。 发现我是讨厌形式主义的,所以我没有在msn上挂红心,也没有挂彩虹,在电视台铺天盖地的地震报道中,有一些我也觉得有作秀的成分。谁能解释一下这是一种什么心理? 还喜欢发现阴暗面。大概是长期被灌输用一种思维方式之思考后的之后的反叛吧。最近就看到四川的某些人,不是灾民,却哄抢一些志愿者组织的救灾物资。 台湾人和日本人在这次救灾中表现也很好,台湾政府目前还是陈水扁政府,却一下子捐了近1亿人民币。但是在铁血论坛上,却有台湾人和大陆的一些对骂,看了之后真是寒心,在这样的时刻,怎么还有人会去计较什么青天白日旗之类的东西呢? 这回欧美的媒体似乎好一点了,but still,他们用他们一贯的有色眼镜看待中国和中国政府。水木有一篇关于Times如何报道地震的文章,可以看出万恶的帝国主义忘我之心不死啊!另外,我认识的一个在中国工作的知名老美说,有美国记者采访他的时候,问道关于地震的问题,就牵着你往说中国坏话的方向去走。这点西方媒体的确也需要反省,因为至少我以前也憧憬他们所谓公正公平的报道,但是现在,他们连在国外的华人的信任都要丢失了,将来,他们必定要为此付出代价。 地震给我,personally,带来的一个好处是,不用每天在电视里看到奥运的“圣火”传递了。说实在的,我对那个一点兴趣也没有。我不反对奥运,但是我讨厌把奥运搞得全民奥运,好像中国除了奥运就没别的事情了。现在也是,除了地震就没有其他的节目了,过多也容易疲劳啊!另外,还可以看出的是,我们还是习惯于把东西都弄成一个声音,一个思想。什么时候中国,中国人民能够真正的独立思考,能够尊重每一个人的利益,能够容忍不同的声音,那么我们伟大的祖国,就真的伟大了,也就完全不需要一个什么劳什子奥运来表示我们的强大了。

五月 19, 2008 · Shawn Ma