惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
S
Securelist
MyScale Blog
MyScale Blog
Jina AI
Jina AI
罗磊的独立博客
The Cloudflare Blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
雷峰网
雷峰网
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
博客园 - 聂微东
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
T
Tailwind CSS Blog
Attack and Defense Labs
Attack and Defense Labs
博客园_首页
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Hacker News
The Hacker News
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
D
Docker
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog
Recent Announcements
Recent Announcements
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Security Latest
Security Latest
V2EX - 技术
V2EX - 技术
N
News | PayPal Newsroom
Microsoft Security Blog
Microsoft Security Blog

博客园 - yushih

Django杂记: super与metaclass,locmem有害 一直没弄明白的事--为什么招聘要求会有“面向对象分析与设计”这一项 用Linux的iptables和Python模拟广域网 Python programming with goto 实用主义之过--Pragmatic Version Control using Subersion, 2nd Ed.的书评 Python把C语言打得满地找牙 信春哥!Python递归原地满状态变显式堆栈!入教即送尾递归优化! STL的binary search算法正确性的初步说明 关于文档标准之争的一点旁注 有关Ruby eval的一点编程风格 Design pattern一来,动态语言就笑了 - yushih - 博客园 完全没有领会“电子商务”的真谛 超级奇怪的F#格式错误 JAOO的魅力所在 一个Ruby idiom F#的一点糖 C++ hack:将C++编译器的类型检查转化为SLR(1)解析器 Quotes The Ruby Programming Language第一版非官方修正
初学Erlang,写两个程序玩玩
yushih · 2011-09-23 · via 博客园 - yushih

我的第一个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。