From Sharp to Erlang
[Erlang 0112] Elixir Protocols
摘要:C#中的Extension Methods,Clojure的Protocol,以及Elixir Protocols
阅读全文
[Erlang 0111] Erlang Abstract Format , Part 2
摘要:上回书,我们说到飞天玉虎蒋伯芳来到蜈蚣岭,不是,不是,上回咱们说到可以在Erlang Shell里面手工构造,加载并调用一个模块.在那个demo里面,我把多个Form单独生成出来,最后放在一起做compile:forms,是不是可以简单点?我们先看完整的module代码,erl_scan:string之后是什么样子的:
阅读全文
[Erlang 0110] Erlang Abstract Format , Part 1
摘要:Erlang Abstract Format并不难懂,只是枯燥一点罢了,如果把Abstract Format的文档翻译出来,其实就是Erlang教科书中语法入门的部分. Erlang Abstract Format实际上是用Erlang代码的AST,下面通过一些真切的实例代码了解一下它的一些细节.本文略长.
阅读全文
[Erlang 0109] From Elixir to Erlang Code
摘要:Elixir代码最终编译成为erlang代码,这个过程是怎样的?本文通过一个小测试做下探索.
阅读全文
[Erlang 0108] Elixir 入门
摘要:如果你想用Erlang但是不喜欢它的语法,Elixir可能是一个新的机会.
阅读全文
[Erlang 0107] Erlang实现文本截断
摘要:文本截断很简单,但是要是文本中有中文呢? 前段时间有网友 @稻草人 问字符串截断的问题"各位大侠erlang截取字符串一般用哪个函数啊",有人支招用string:substr/3,紧接着他补充了一下"大侠们 一个字符串有汉字和字母组合我想截取 但是不管用什么方法每个汉字的长度都是3 字母是1 截取出来总是有乱码 还望高手们赐教",我们一步步看看这个问题.
阅读全文
[Erlang 0106] Erlang实现Apple Push Notifications消息推送
摘要:我们的IOS移动应用要实现消息推送,告诉用户有多少条消息未读,类似下图的效果(笑果),特把APNS和Erlang相关解决方案笔记于此备忘.
阅读全文
[Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集
摘要:很多事情要做,一件一件来;
Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.
阅读全文
[Erlang 0104] 当Erlang遇到Solr
摘要:Joe Armstrong的访谈中有一段关于"打开黑盒子"的阐述,给我留下很深的印象:Joe Armstrong在做XWindows开发时没有使用对应的类库,而是在了解XWindows底层实现后选择了直接和套接字通信,"把这20条消息映射到Erlang术语上,变个小魔术,然后可以向窗口直接发送消息,它们就开始执行动作了". [访谈全文] 回到今天的任务:Erlang使用Solr服务?当问题落实到数据通信协议的时候,就豁然开朗了,转换为我们熟悉的技术方案组合.
阅读全文
[Erlang 0103] Erlang Resources 资讯小站
摘要:好久没有写博客,是懒了吗?不是;前面两个月在紧张地推进一个项目,中间积累了一些RabbitMQ和Erlang的东西;本打算在项目结束之后赶紧总结一下,结果老婆怀孕之后生活节奏大乱:早起做饭,晚上回去做饭,洗刷碗筷,衣服,等忙完了也就精疲力尽了...
阅读全文
[Erlang 0102] 愚人节消息 too_big_to_fail_process
摘要:Joe Armstrong 在愚人节介绍了too_big_to_fail flag,这个东西真是好多疑问啊,希望不是愚人节的一个玩笑.
阅读全文
[Erlang 0101] Gproc:扩展进程注册机制
摘要:Erlang 进程字典(process dictionary)目前的限制是:names只能是atom,一个进程只能注册一个name,不能进行高效的搜索和遍历,进程信息的检索是通过遍历检查进程的元数据完成的.
Ulf T. Wiger的开源项目 Gproc 就是解决上面问题的,难得的是这个项目的文档,范例,测试代码相当完整,还有专门的论文讲述整个项目的来龙去脉,设计取舍.
阅读全文
[Erlang 0100] make_ref 与 Selective Receive
摘要:春节前后出于对STM和Lisp宏的好奇一直在关注Clojure,新年过后对于Erlang开发者还是有不少好消息,有两本Erlang的新书出版:第一本是O'Reilly公司的小册子"Introducing Erlang";一本是著名的LYSE,这本书终于从有了正式出版的版本,在此之前有热心的网友编译成电子书,印刷版排版精美保持了原站图文并茂的风格.目前这两本电子书都很容易下载到电子版,请自行搜索.
阅读全文
[Erlang 0099] Reduction 一点细节
摘要:公平调度实际上有3部分:
erlang函数调用,由于erlang的代码翻译成opcode,由虚拟机执行,所以一次完整的函数调用为一个reduction. 因为erlang的函数通常都是递归执行的,所以函数体一般很小。
bif的trap机制。简单的说就是bif会执行到大概几个reduction这样的时间片后放弃执行,把当前的执行情况记录下来,然后退出。等下次调度再执行的时候,会继续之前的位置往下。
IO的调度。 IO也是公平调度的,把IO的处理量换算成reduction,算在宿主进程的时间片里面。
阅读全文
[Erlang 0098] net_kernel与节点互连,断开,监控
摘要:之前记录过 net_kernel:monitor_nodes订阅node连接\断开消息,魔鬼在于细节(Devils are in the details),这个模块还是有一些细节要注意,特别是官方文档上语焉不详的问题.本文关注net_kernel在节点互连,断开,状态监控的一些功能细节.
阅读全文
[Erlang 0097] TCP半开的几个小测试
摘要:TCP半开的几个测试,比较简单都在Erlang Shell中完成.立此存照,备忘.
阅读全文
我的2012
摘要:这是今年的第91篇博文,又到岁末年初,总结一下过去一年,赶在所谓"末日"之前发出去.这一年,仿佛又只是隔了几篇随笔.
阅读全文
[Erlang 0096] RabbitMQ Boot Step
摘要:RabbitMQ启动过程中复杂的依赖关系,以及灵活扩展的要求,不可能随机顺序启动或者硬编码启动顺序. 之前提到RabbitMQ会把启动过程分成若干阶段,按照依赖关系进行启动.rabbit_boot_step里面的requires 和 enables配置节是描述这种依赖关系的关键.require约定了该项目启动所依赖的前置条件,enables 表示当前项目启动之后可以启动什么;如果有多个项目enable一个项目(比如:external_infrastructure),要等这些项目都启动了external_infrastructure 才可以启动.
阅读全文
[Erlang 0095] 善用 Erlang module_info
摘要:在.net里面我们可以使用Attribute和反射在运行时完成对程序集元数据的解析; 在Erlang中,也可以做类似的事情,我们可以通过module_info获取模块的元数据;RabbitMQ的启动过程就是一个绝佳的范例.
阅读全文
[Erlang 0094] Erlang 杂记 VI
摘要:最近一直忙Storm相关的东西,今天抽时间整理一下Erlang笔记,这一次的内容主要是一些开源项目:Mock ,worker pool......
阅读全文
|
|