- 浏览: 36130 次
- 性别:
- 来自: 北京
-
最近访客 更多访客>>
最新评论
-
derlang:
mryufeng 写道方向很好哦多谢鼓励,共同进步
Erlang学习告一段落 -
mryufeng:
方向很好哦
Erlang学习告一段落 -
crackcell:
一起进步……
Erlang学习告一段落
文章列表
from <<Programming in scala>>
Actors should not block
Communicate with actors only via messages
Prefer immutable messages
Make messages self-contained
引用
A balanced attitude for Scala programmers
Prefer vals, immutable objects, and methods without side effects.
Reach for them fir ...
欲掌握OTP,可以多读读Erlang标准库代码,rpc, os_mon,lists等,比仅仅看文档好多了。
温昱先生的关于软件架构设计的两本书,值得一读:
软件架构设计
一线架构师实践指南
当然,读这类书,要结合自己的项目经历对照着来看,是为历史的读书法,还要能逻辑地形成自己的方法体系,做到历史和逻辑的统一,理论,实践,再理论,再实践,循环往复,螺旋上升。
以图论解读UML,这个基本的思路,前一段时间也曾经浮现过,图论,PetriNet表现了世界二元性的本质属性, 状态机表现了事物的演化机制, 动力和方向。这三方面的理论,很可以作为理解软件开发的基础。
协作决定接口
关键功能决定软件架构,非关键功能验证软件架构。
等等,整理了不少很不错的观点。
其组织,与易经之阴阳,八卦,五行,九宫很可对 ...
首先要掌握标准SQL,各个厂商实现有差别。要很好的掌握SQL,离不开对关系模型的深刻理解,核心是集合论的知识,(FPL的list comprehension语法,同出一源,更具体的说,tuple关系演算)。何为关系?关系操作?关系是一个代数结构R(D,Op),所以叫关系代数学。适合进行几个Case study,解剖麻雀,以往都是靠直觉,没有理论指导。schema design的理论基础就是规范化理论,这个很有意思,多思考,还是比较直观的。
开发
其它编程接口,用到时可以很容易把握,ODBC/JDB啦。流行的数据库,都提供了很多语言的API,这个不是重点。
设计
需求分析
概念设计(ER, ...
erlang节点之间的文件传输
# file:read_file/write_file
XML解析
# xmerl
Erlang中字符串的处理
# string
# io_lib
# re
# lists
when I start erl in the terminal as root, there is a warning:
'no display name and no $DISPLAY environment variable'.
# export DISPLAY=:0.0
1> tv:start().
<0.34.0>
2> No protocol ...
学习了一个多月的Erlang,很开阔眼界。最近在公司里建议用Erlang写一集群管理系统,开始进行中,采用通信平台加插件的结构,还是非常合适的,类似于Erlang里面的回调模块。细节的东西,只有在项目中才能加深体会。
想在一个方向深入下去,就是分布式数据库系统,希望自己能够坚持下去,建立个很好的根据地,不能再漂来漂去了。想想这几年以来,开始做三年CAD二次开发,后来做了一段时间的SIP协议,现在主力搞分布式文件系统,到现在竟然还觉得有很大的学习压力,基础不牢,用心不专一之故也。古贤云,不恒其德,或承之羞,二三其德者凶。从正面来说就是唯精唯一,允厥其中;一门深入,长时熏修。各行各业都有一些通用的 ...
space and time
c/s and p2p
sync and async
blocking and unblocking
lock, timeout and lease
replication and partition
replication and multiversion
case study
bigtable PK dynamo
DHT
map and reduce
http://linux.chinaunix.net/techdoc/system/2008/12/21/1054028.shtml
GFS/BigTable/App Engine
HDFS/HBase/
Dynamo/S3/SimpleDB/EC2
比较Google和Amazon各自的存储模型,是很有趣的事情,他们的这些工作是目前云计算圈子里技术灵感的源泉,也是几十年来分布式系统理论研究应用的一个集大成之作。
存储虚拟化
文件系统抽象
数据库系统抽象
分布式存储系统
分布式文件系统
分布式数据库系统
key-value存储是更抽象的接口,或者叫对象存储系统,对象OID索引到对象
比较BigTable/HBase/Dynamo???
问题的关键在于:
功能性要求
性能要求(high throughput, lo ...
http://www.trapexit.org/forum/viewtopic.php?p=44427
fuserlsrv采用gen_server behaviour,它是open_port的控制进程。
对从port来的消息,由fuserlsrv的回调函数handle_info处理,这里没有一个explicit request operation, 而是有gen_server自己进行消息派遣。
fuserldrv ----> port ----> fuserlsrv ----> Module:handle_info
handle_call处理显式调用gen_ser ...
在http://projects.trapexit.org/web/#/web/index/all/name/asc/225发现了一个开源项目egfshttp://code.google.com/p/egfs/,与俺的efs目的类似,同时发现了fuserl和fuserldrv,完成了fuse的erlang port驱动(support port+linkedin port),可以试试。
安装完毕后,在.erlang下面加入fuserl的代码路径:
引用
code:add_patha("...").
include_lib is similar to include ...
问题:
EFS是我最近学习Erlang的过程中写的一个mini分布式文件系统,仿Google File System。希望给它提供一套C API,以方便利用现有的C库,如与NFSv3,或Fuse的整合。用Erl_interface库可以很easy的做到这一点,这是否从C调用Erlang的唯一方法?Port或linked-in Port是Erlang调C实现的功能,Port是在Erlang一方启动外部程序的,反过来行吗?(由port所启动的外部程序作为server,提供c api,也是可行的,按面向对象的理解,进程作为对象,提供服务作为接口)。
本质上,不管Port,还是Erl_interfa ...
在HTML文档的 doc/tutorial下有文件(新添Makefile):
inter
|-- Makefile
|-- cnode_c.c
|-- cnode_s.c
|-- cnode_s2.c
|-- complex.c
|-- complex1.erl
|-- complex2.erl
|-- complex3.erl
|-- complex4.erl
|-- complex5.erl
|-- ei.c
|-- erl_comm.c
|-- port.c
`-- port_driver.c
CFLAGS=-I/usr/local/lib/er ...
on startup:
./.erlang
$HOME/.erlang
From http://mryufeng.iteye.com/blog/pdf
引用io:format("~s~n", [binary_to_list(erlang:system_info(info))]).
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ethtool -S eth0
inet:i().
ets:i().
erts_debug:set_internal_state(available_inte ...