- 浏览: 113324 次
最新评论
-
norain2050:
AvinDev 写道@ccppasm2
触发一次后,队列长度依 ...
对Socket的{active, true}参数进行一些测试 -
cypherpunks:
$ javac *.java$ java LinkedList ...
Java 和 Erlang 的列表元素添加测试 -
langzhe:
“这样节点bar@192.168.0.3加载的模块都通过网络, ...
Boot Server 启动 -
mryufeng:
我重新做了测试http://mryufeng.iteye.co ...
一个简单的列表操作性能测试 -
mryufeng:
pg2狂依赖于global模块!
erlang module pg2
文章列表
应ZDNet的邀请,《Erlang程序设计》的译者赵东炜老师和这本书的策划编辑刘江老师针对《Erlang程序设计》这本书和Erlang技术做了一期视频访谈节目。
- 2008-11-07 21:43
- 浏览 2532
- 评论(0)
这是火星旧闻了,在若干天之前,有位大佬在maillist宣告了一个新的Erlang Web Framwork - Nitrogen,代码尚在整理中,未开源,只有一个演示视频。
视频被gfw了,我将它上传到Youtube,因为刚上传,稍后才可以访问。
比较有意思的是这个框架并不是ROR的跟风,与Erlyweb不一样,它是仿ASP.NET的,属于事件驱动模型,看了下视频,比较有意思
p.s. 视频质量相当糟糕,童鞋们可以到 http://stitcho.com/nitrogen_erlang/FlickrOnNitrogen.html 下载,24MB的mov视频。
- 2008-10-27 22:52
- 浏览 1686
- 评论(1)
Manning 出版社发布了最新的Erlang书籍《Concurrent Programming with Erlang/OTP》,目前是Early Access Edition,售价如下:
引用 MEAP + Ebook only - $27.50
MEAP + Print book + Ebook Combo - $49.99
Print book only - $44.99 (Not yet available for order)
目录:
引用Table of Contents Resources
Part I
1. Why Erlang
...
- 2008-08-21 13:00
- 浏览 2076
- 评论(1)
09.3.18更新:
随着R13A release,我也重新查了一下这个问题,首先这份代码在编译的时候,会提示
引用Warning: NOT OPTIMIZED: different control paths use different positions in the binary
litaocheng同学提醒,只要将代码修改为
dame_shit(Bin) ->
dame_shit(Bin, <<"\r\n">>, not_found).
dame_shit(<<Tag:2/bytes, T/binary>&g ...
- 2008-06-28 13:20
- 浏览 2302
- 评论(0)
在Erlang的 DOC erl5.6.3/doc/efficiency_guide/binaryhandling.html#4 中,第四章提到了Binary的优化。由于虚拟机经过了改良,一些在R11B使用的Binary优化技巧,在R12B就不推荐使用了。
特别注意的是sub binary的使用。举个例子,从一个大的Binary中取出以某个字节结束的一句:
extract_str_end_with_tag(Data, Tag) ->
extract_str_end_with_tag2(Data, <<>>, Tag).
extract_str_e ...
- 2008-06-28 11:29
- 浏览 1759
- 评论(0)
maillist有人提供了一种简单的UUID生成方法:
引用1> crypto:start().
ok
2> <<I:160/integer>> = crypto:sha(term_to_binary({make_ref(), now()})).
<<41,73,124,217,87,62,82,238,224,153,122,195,244,246,157,
142,88,71,76,61>>
3> lists:flatten(io_lib:fwrite("~40..0s", [erlang:integ ...
- 2008-06-07 00:53
- 浏览 4391
- 评论(0)
最近有些空,继续捣鼓consisten hash的简单实现。先前修改gb_trees,加入了lookup_nearest(Key, Tree) 函数,通过二叉查找和回朔,来查找最接近Key的项。昨天看了下xbaytable的DHT实现,发觉其实用ets会更快捷:
ets:prev(Table, Key) 和 ets:next(Table, Key) 函数,可以返回Table中Key的上一个或下一个存在的键,无论这个Key是否存在于Table中。再加上 ets:first/1、ets:last/1、ets:lookup/2,就可以实现了。
实践过程中发现了个问题,需要定义这个哈希范围的最大值, ...
- 2008-04-01 23:39
- 浏览 3184
- 评论(1)
突然想做IP库的解析,用Erlang,自然就碰到了Big Endian & Little Endian的事
IP在DB文件中是以little endian存储的,跟搜索的IP比较时需要转换为一个Int值,Python代码可以这样:
ip = unpack('I', buf)[0]
将一个IP串转换为Int值,则是
ip = unpack('!I', socket.inet_aton(ip))[0]
两者都转换为int之后就可以直接比较了
Erlang里面可以用Binary进行匹配,非常方便。
Little Endian 存储的Binary转Int:
1> << ...
- 2008-03-13 22:43
- 浏览 2948
- 评论(0)
先推荐两篇文章:
http://www.wagerlabs.com/blog/2008/02/parsing-text-an.html
http://ppolv.wordpress.com/2008/02/25/parsing-csv-in-erlang/
(都需要爬墙访问,该死的‘功夫网’)
Erlang中解析文本协议,使用Binary无疑是高效的选择,但是我发现,文章中,对Binary中各个字节组合为字符串,都是使用list的:
NewList = lists:reverse([Char|OldList])
而不是
NewList = binary_to_list(<<OldB ...
- 2008-03-05 23:30
- 浏览 2861
- 评论(0)
以前不是很了解Erlang网络编程中流量控制,现在做一下笔记。
Erlang中Socket设置了{active, true}之后,接收到的网络消息会通过{tcp, Socket, Data}的格式主动发送给进程,这样做有个弊处就是没有做流量控制。要是有个客户端疯狂发包过来,服务器不做处理就等着堆溢出。
在《Programming Erlang》的14.2里面,介绍可以使用 {active, once} 来做控制。
{ok, Listen} = gen_tcp:listen(Port, [..,{active, once}...]),
{ok, Socket} = gen_tcp:acc ...
- 2008-03-02 22:39
- 浏览 6085
- 评论(4)
一直一来没有留意到这个问题,今天偶尔在blog上看到,就标记一下,别让自己忘记了。
文章在 http://easyerl.blogspot.com/2007/10/high-order-functions-must-be-tested.html
测试代码如下:
1> Filter = fun(Elem) -> fun({Elem, _, _}) -> true; (_) -> false end end.
#Fun<erl_eval.6.49591080>
2> C = Filter(cpu).
#Fun<erl_eval.6.4959 ...
- 2007-10-07 14:40
- 浏览 1804
- 评论(0)
maillist上面对 “VM & BEAM Specs : idea for improving, the lists support”的争论很有意思,我也随手测一把看看
JDK 1.5.0_11
Erlang/OTP R11B-5
$ javac ListAppend.java
$ /home/jdk/bin/java -server ListAppend
Total time:3439ms
$ erlc list_append.erl
$ erl -noshell -noinput -s list_append main -s init stop
Total time:4408 ...
- 2007-08-07 12:09
- 浏览 2786
- 评论(2)
http://www.trapexit.org/index.php/Distributed_erlang_using_ssl_through_firewalls
这篇文章提供了一种使用ssl连接来实现Erlang各节点间通信的方法。
但是我的同事经过试验,两个节点是ping不同的,这几天有人在网上提供了一个patch来解决这事情,但是patch有点问题,需要对源文件进行修改之后才能使用patch,这里提供一下patch后的文件和源文件。
- 2007-07-20 20:41
- 浏览 2256
- 评论(0)
《Programming Erlang》Joe的新书,买了个电子版,在花了一些时间读了一下之后,发发牢骚,写写读后感。
书不太厚,也不薄,500多页,但是单纯附录就占了100+,Appendix F
Module and Function Reference,有凑页面的嫌疑。有仁兄打印了整本书,叠起来转头那么厚,其实后面那一部分没有什么必要去打印。
此书中规中矩,跟n年前的《Concurrent Programming in ERLANG》的构造比较相像,先是顺序化编程,然后异常处理,并发编程,分布式编程。新内容有文件编程,网络编程,ETS,DETS,Mnesia,OTP,外部接口(Port ...
- 2007-07-17 12:21
- 浏览 3477
- 评论(0)
拿到了Programming Erlang的电子书,研究一下Potian先前跟俺说的“Socket Base Distribution”部分代码,结果发现chat_client.erl(对应书上的Chapter 11 IRC Lite),运行出错,提示
引用lib_chan_mm: protocol error:{login,"general","joe"}
查看lib_chan_mm.erl,可见如下代码:
loop1(Socket, Pid, Trace) ->
receive
{tcp, Socket, Bin} -> ...
- 2007-07-14 01:27
- 浏览 3124
- 评论(0)