Modest opinions  
by a humble autodidact
我的第一个erlang/otp程序,虽然弱爆了,还是上线了。

功能:记录gtalk签名档

使用方法:在gtalk里面邀请tpol@takuneering.com为好友。以后每次改签名都会被tpol记录。向tpol发送任意信息,tpol会把签名档历史记录发回来。

实现方式:用Erlang和其标准库实现,没有使用第三方库。整个程序由application/supervisor/gen_server构成,用gen_tcp读写socket,用xmerl_sax_parser解析XMPP协议中的xml,用dets储存数据。

 


第二个程序,虽然只有几百行,但SoLoMo都有了。
有一次我们几个同事去昭觉寺玩,有一个同事晚一点来,然后因为大家都不熟悉,所以怎么也聚不到一块,电话不停的打,短信也发了很多,都是这样:
喂,你们在哪里啊?
我们在门口啊,你呢?
我也到门口了,怎么没看见你们呢?
哦,原来不是同一个门。所以我就写了一个程序解决这个问题:http://rendezvous.takuneering.com/
很简单,用手机上这个网址,打开GPS,然后建一个组,然后把组的地址短信发给同伙,同伙上去以后大家就可以在google maps上互相看到了。然后还可以发信息,照片(仅限android,iphone不支持),在地图上做标记让大家看见之类的辅助功能。虽然简单,但是我觉得也可以算SoLoMo唉--一群人(So了吧),有手机GPS在g maps上定位(LoMo有木有)。
写这个程序的另一个目的是体验Erlang。选Erlang是因为本来是用websocket通讯的,写了一大半才发现android不支持websocket(js websocket标准的撰写人是google的啊,android你種么了),所以可耻的改成xhr轮询了。写这个程序让我发现了Erlang的一个重大优点(比起Python),Erlang程序里面大量使用模式匹配,其实和类型检查是一样的,可以第一时间让错误把程序crash掉,比动态类型的语言不容易隐藏bug。

 

posted on 2011-09-23 11:33  yushih  阅读(450)  评论(0编辑  收藏  举报