存档

作者存档

说说一个新的老概念coroutine

2008年8月18日 4 条评论

因为最近的工作当中频繁地用到了异步的IO编程模型,对于异步模型的难于维护性深感切肤之痛。工作之余便在考虑有没有什么方法可以使这种模型变得更加的易读易写和易维护,有一个想法很自然的产生了,就是用我们熟悉的流程化的方法来做写处理流程,然后在一些IO触发点上异步化,也就是触发一个异步IO请求,将当前的执行状态换出,换入另一个执行状态,直到IO请求结束,该执行状态被再次换入,则继续执行。

后来去搜索相关的问题,发现其实这个是一个很老的想法了。在计算机科学当中,这个术语叫做Coroutine,最早提出是在1969年,而在早期的高级语言lisp和schema当中就有实现。如果把Coroutine和函数进行比较的话,函数只有一个入口点,而Coroutine可以有多个入口点。当Coroutine被第一次调用到的时候,它将从起始处开始执行,一旦遇到具有yield语义的语句的时候,就是返回给另外一个Coroutine或者调用者,而在接下来被调用的时候,就从yield语句下面的一条语句继续执行直到遇到新的yield语句或者Coroutine的结束。

如果了解Python,其实Python当中的Generator就是一种Coroutine。比如

def xrange(start, end):
    val = start;
    while ( val < start ):
       yield val
       val += 1

除了Python,Stackless-Python和.NET也有相应的实现,而C/C++虽然有一些实现,但是通用性都不太好,因为实现难度相对比较大,毕竟Coroutine完全颠覆了C/C++基于stack的函数调用模型。

下面大体上看一下Coroutine的几个C实现,下次再写。

标签: ,

[转载] 菜园子里的道理

2008年8月12日 1 条评论

转自老茂的blog.
http://savycm.spaces.live.com/blog/cns!1AF201418B02D448!649.entry

菜园子里面的道理

 
不管怎么样, 首先,我必须把自己当根葱。没有人会把自己都不把自己当回事的人当回事(这个句子稍微有点长)。
其次,就算我把自己当根葱,也不能在外面太显摆。因为现在的季节可能芹菜比葱更贵。
最后,对于那些把自己太当回事的葱们,我必须学会在他们面前装成一颗蒜。

最后加一句:就算周围都是洋葱,到头来我还是一棵葱。

标签: ,

HONDA的机器人ASIMO

2008年7月30日 4 条评论

今天偶尔在电视上看到的,HONDA(本田)的工程师带着他们的类人形机器人ASIMO到四川灾区给孩子们表演。电视上只有很短的一些片断,但是仍然展示了ASIMO的一些很强大的特性,比如奔跑。

随即Google了一下这款机器人的资料,发现这个机器人还真是不简单:
根据wikipedia上面的介绍,这款机器人高130公分,重54公斤,Airborne time(这是什么,反应时间?)0.03秒,具有34个自由度(可以理解成34个关节么……)。可以识别移动的物体、姿势、手势、环境、10张运动中的人脸、以及不同的声音。

几段Youtube上面的视频:
CES 2007上面的demo
http://www.youtube.com/watch?v=cfaAiujrX_Y

 

以及在HONDA实验室里面的demo:
http://www.youtube.com/watch?v=Q3C5sc8b3xM

 

相当的强大。

这款机器人不仅具有类人的外观、自主行走、上楼梯的能力,而且可以以时速6公里奔跑,以时速5公里转弯。从demo里面看,还可以感受到人对其手臂的作用力而跟人一起转弯。不仅如此,看demo上面推一个推车的部分,启动时多加的一点力道,以及转弯时两只手不同的力道都相当的好。

另外就是精度。看机器人体操表演的一段,明显能够看出其手臂在快速的运动之后仍然可以快速的停在正确的位置上。这个看起来很cool,而且我相信也是有相当难度的。

看它推推车的那一段,真想弄个回来帮我去超市买东西……

不过据说,制造一个需要106,710,325日元,折合人民币6829460.8元。

HONDA的网站上面还有更多的视频。

最后用HONDA的ASIMO墙纸上面的一句话来描述:The power of Dreams。翻译过来就是:梦想的力量。

标签: , ,

缅怀一下 Randy Pausch

2008年7月27日 没有评论

Randy Pausch是卡耐基梅隆大学的教授,2008年7月25日因胰腺癌去世,享年47岁。
虽然只是卡耐基梅隆大学的教授,其实他的学生已经遍布了全球各地,因为他著名的最后一次演讲,关于儿时的梦想的演讲。

 

标签:

最近看到的两个东西

2008年7月13日 1 条评论

福珑盒子2F(使用龙芯2F处理器)出货,去年开始预定的时候登记了一下,于是上个星期龙梦公司的人问我现在要不要确认预定。我是很想搞一个过来玩玩的,但是,买回来还不见得有空折腾,而且暂时龙梦盒子断货,暂时就放一放了。

另一个话题是有人折腾出来的Android在Nokia N810上面的成功安装,只是Nokia N810也有些小贵。

所以……

就是这样。

标签: ,

也来说说校内开发的卖身许可

2008年7月8日 没有评论

毕竟校内不是Facebook,在学来Facebook开发API之形的时候,却没有沿用平台的核心部件之一:开发许可。

为什么一个平台的开发许可如此重要呢?因为开发许可是平台供应者和开发者之间的法律协议。一个设计良好的协议可以让以这个平台为核心的众多应用形成一个良性的、相互促进的庞大的社区甚至是产业。典型的例子就是Mozilla Firefox以及围绕着Mozilla通用许可证形成的庞大的Mozilla社区,包括数以万计的插件程序、扩展、皮肤等等。还有GNU通用许可,以及围绕在GNU Linux周围的庞大的GNU社区。

所有的这些成功的许可都有一个共同特点:在保留部分权利的同时,不剥夺作者本身对于该作品的知识产权和他人利用该作品赚钱的权利。Mozilla就不用说了,它既不要求插件开源,也要求插件必须把知识产权让渡给Mozilla,你爱怎么搞怎么搞。严格如GPL者,虽然不允许通过封闭源代码赚钱,但是并没有剥夺他人出售GPL软件的权利,更没有限制使用GPL软件提供服务赚钱,而且GPL唯一保留的权利便是作者的知识产权。正因为有利可图,资本才会聚集过来,你自己才能变成一个平台。

但是在校内的开发许可当中,有下面的一些规定:

2.4
如因其提供给校内网的开发作品存在权利瑕疵或侵犯了第三方的合法权益(包括但不限于专利权、商标权、著作权及著作权邻接权、肖像权、隐私权、名誉权等)而
导致校内网或与校内网合作的其他单位面临任何索赔、诉讼;或者使校内网或者与校内网合作的其他单位因此遭受任何名誉、声誉或者财产上的损失,开发者将积极
地采取一切可能采取的措施,以保证校内网及与校内网合作的其他单位免受上述索赔、诉讼的影响。同时开发者对校内网及与校内网合作的其他单位因此遭受的直接
或间接经济损失负有全部的赔偿责任;

六、插件应用程序的权利归属


1.
开发者在活动校内网插件应用程序开发许可证、且将其开发的作品提供给校内网,即视为其已经将基于作品的全部权利,包括但不限于所有权及知识产权永久性、不可撤销的、独家让渡给校内网。

2.
经开发者创作完成并提交给校内网的应用程序,校内网在全世界范围内享有免费的、永久性的、不可撤销的权利和许可,以使用、复制、出版、发行、以原有或其他
形式进行改编、转载、翻译、传播、表演和展示此等内容(整体或部分)。同时开发者承诺,不就上述作品以及上述作品的改编作品对任何第三方进行任何形式的许
可或授权使用。
3. 经开发者创作而产生的文本、图片、图形、音频和/
或视频等资料的所有权及知识产权归属于校内网,未经校内网同意,开发者保证不以任何形式直接或间接发布、播放、出于播放或发布目的而改编或再发行,或者用于其他任何商业目的。同时保证不许可任何第三方从事上述行为。

[….]

八、免责声明


1、校内网有权在提前通知或不通知的情况下以任何理由随时修改、限制、暂停或停止全部或部分开发者服务,而且对于任何此类修改、限制、暂停或停止行为,校内网对开发者或任何第三方不负任何责任。

简单的说:做插件的开发者,你不拥有对于该插件的知识产权,你的知识产权已经让渡给了校内;但是,出了问题你要负责,需要赔偿你也要负责。

这样只会吓走开发者,平台不是这么做的。

但是反过来说,校内有做成平台的打算么?恐怕没有。Facebook做API目的很大程度上是为了把自己平台化,让更多的网站可以通过自己的用户基础来推广,然后大家一起赚钱,寻求的是一种Win-Win的可能性。校内则走了几乎完全相反的一条路,看起来校内想要通过这种方式来弥补自己创新匮乏的问题,但是方式错了——想要世界上的聪明人为你服务,你必须给他们点什么,而不是从他们那里抢过来。

标签: , ,

校内API

2008年7月7日 1 条评论

校内秉承着它一贯的风格,紧随老大哥Facebook的脚步,今天也公布了其API:
http://app.xiaonei.com/developers/home.do

简单看了一下,果然是一贯的校内风格:基本上完全是Facebook API的翻版。
当前的版本当中,还没有Facebook的FQL(Facebook Query Language)和FBJS(Facebook Javascript),但是已经有了REST-like API和FBML(Facebook Markup Language)的翻版XNML(Xiaonei Markup Language)。

尽管是新公开,但是据朋友那里得来的资料,两个礼拜前就已经对一些合作伙伴公开了,所以虽然官方的API发布定在明天,今天已经有了很多的应用在上面了。大多数应用都仍然以将人们联系在一起为目的,还有一些小游戏的排行榜等等,还有就是为自己的网站做推广的stub page。

总之还不错。

标签: ,

说起来为什么Mozilla要寄T恤

2008年6月22日 4 条评论

既然有人问,我就再把以前Mozilla发给我的信重新贴一下。其实就是以前写过的一个小插件,在Firefox 3.0 Beta1出来的时候,在第一时间跑了一遍回归测试发现没问题就把Firefox的支持版本改成了3.0b1而已,也没做什么太多的工作。

Dear Add-on Developer,

Thank you and congratulations for updating your add-on with Firefox 3!
Since you have already updated your add-on to the latest Firefox 3
beta, it is time to claim your Mozilla Add-ons Developer T-shirt. If
you would like to receive the shirt, please fill out the following form
by March 18th:

 https://addons.mozilla.org/en-US/firefox/developers/tshirtrequest

Additionally, if your add-on is one of the top 50 most used add-ons by
Firefox 3 users on the Firefox 3 release day, Mozilla will offer to
sponsor a party (for an amount Mozilla will determine) for you and your
friends. That is, Mozilla will chip in for you and your friends to
celebrate your tools success! Mozilla will be in contact with the top
add-ons shortly after the Firefox 3 release.

Thank you for keeping your extension up to date as we get close to the Firefox 3 release!

Regards,

-Add-ons Admins

上两张pp。知道我的size的,可以估计出来这个衣服有多大了。

正面:

背面:

最后再作个广告,虽然Firefox 3发布了,但是让每个标签页具有自己的输入法状态的功能还是没有加上。所以,大家继续用TabIMSwitch吧。 🙂

标签: ,

Mozilla T恤

2008年6月19日 3 条评论

今天下午公司的保安拿着一包东西到我那里问我是不是我的邮件,上书T恤,发件地是美国山景城。原来T恤寄到了,终于寄到了……

打开看了一下,发现犯了一个严重的错误:我忘了Mozilla是在美国的公司,所以T恤也是按照美国尺码来的,然后我却按照中国T恤的尺码来定的,一件XL,打开发现如同一件巨大的睡衣,老美的size真的很大很大……

Anyway,衣服还不错。

Made in Nicaragua.

标签: ,

被Google吓到了

2008年6月13日 2 条评论

本来如果不说“您的帐户”云云,我还不担心。

标签: ,