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

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 热门话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Project Zero
Project Zero
V
Vulnerabilities – Threatpost
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
C
Cisco Blogs
A
Arctic Wolf
月光博客
月光博客
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
量子位
小众软件
小众软件
Latest news
Latest news
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
N
Netflix TechBlog - Medium
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Y
Y Combinator Blog
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
S
Schneier on Security
D
Docker
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
GbyAI
GbyAI
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
H
Help Net Security
Simon Willison's Weblog
Simon Willison's Weblog
J
Java Code Geeks
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tenable Blog
B
Blog
Know Your Adversary
Know Your Adversary
IT之家
IT之家

博客园 - 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。