shitou's blog 

  • Home
  • About
  • Feed
  • 十人族
  • MIX BOY
  • 塌客

Tags "Erlang"

23
Dec

Erlang OOP

近两个月没有更新博客了,为了证明shitou还活着,需要动动了..


前段时间刚换了工作,一直在忙,还有在和两个朋友业余时间开发一款SNS的WEB Game, 纸牌类的,架构就是JavaScript + Flash Socket + Erlang + MongoDB, 更多关于游戏的内容这里就不多透露了,上线时shitou会专门开贴广告宣传的,哈哈..

 

其实这半年时间除了在忙工作的事情之外shitou一直在关注web game方面的资料,之前尝试的C2C, SNS,感觉这块在国内独立开发者是很难做起来的,尤其是国内环境的影响....(省略2万字)

 

好了,下面开始正题,关于Erlang OOP(面向对象)特性

 

其实Erlang本身就是Function Language, 所谓OOP特性什么的都不是Erlang所强调的重点,Erlang帮主Joe在Erlang程序设计 一书中也一字未提Erlang的OOP内容,最近在用Erlang开发游戏的Socket Server时遇到其中一个模块设计如果用OOP的概念来做的话会更合适,想起了之前在mochiweb的源码中关于http request的解析module就是用的OOP的设计思路,回头再次查看mochiweb的源码,又google一翻,终于得到了解决办法,下面show一个简单的例子:

%oo.erl
-module(oo, [QS]).
-export([get_qs/0]).

new(Qs) ->
       instance(Qs).
get_qs() ->
       QS.

>A = oo:new("hello").
>A:get_qs().

Erlang的OOP功能算是Erlang的一个隐藏特性了,毕竟Erlang是一个函数编程语言,可能老乔(Joe)也不想提这方面的东西吧,关于更多的OOP特性,可以参考这篇文章PDF, 还可以看下mochiweb的源码.

Tags: Erlang,MongoDB

2010-12-23 21:31:37, 784 reviews, comment

send to mailbox

Your email:

18
Jan

Ruby和Erlang的交互

Ruby的速度慢是公认的(虽然我并不想面对这一点),所以在遇到一些需要大量运算的业务时就会遇到瓶颈,这时可以把这部分的逻辑运算交給其他相对运算较快的语言来做,ruby只用得到返回结果就行了,

 

可以使用Rubyinline在ruby代码种嵌入C, 也可以使用Erlectricity来实现与Erlang的对接,

 

除了这种办法之外还可以使用后台运行来处理消耗资源的任务,当然这只能针对于及时性不高的业务。

 

参考:

http://www.infoq.com/cn/news/2009/09/haskell-ruby-hubris

http://github.com/mojombo/erlectricity

Tags: ruby,Erlang

2010-01-18 15:47:57, 925 reviews, comment

send to mailbox

Your email:

09
Dec

Erlang在CentOS5.2中的安装

一直都在忙别的东西,还没怎么认真的开始学erlang, 最近正好工作中要用到AMQP了, 用的broker就是RabbitMQ, RabbitMQ正是用erlang写的, 所以安装RabbitMQ的前提肯定要先安装erlang了,

 

在Debian中的安装是预想中的顺利apt-get install erlang 就搞定了, RabbbitMQ的安装要去官方下载专门的deb包, 也是一条命令就OK了, 不过我还是对CentOS有爱,就在CentOS中也安装了一遍,不过过程真的是不顺利, 

 

首先下载Erlang的源程序包,我用的是最近的R12B-4, 然后看了README就是标准的编译方式,先

./configure

报缺少java, 于是还得先安装JDK, 安装完JDK后记得要export JDK的bin路径到系统PATH中, (记得还缺少一个什么忘了,应该容易安装的)

 

然后make

 

经过大约10分钟的编译, 出现了可怕的Error,

collect2: ld returned 1 exit status

make[4]: *** [../priv/bin/x86_64-unknown-linux-gnu/ssl_esock] Error 1

 

google了好长时间才发现原来这是CentOS5的一个bug, 编辑erlang源目录中的文件lib/ssl/c_src/Makefile.in, 将

LIBS = @LIBS@(我这里是第41行)

修改为

LIBS = @LIBS@ -lkeyutils -lselinux

 

然后重新./configure, make, 最后make install 就行了

 

RabbitMQ的安装也采用源码包的方式, 安装比较简单, 看下源目录中的README就OK了

 

 

Tags: Erlang

2008-12-09 17:44:46, 2179 reviews, comment

send to mailbox

Your email:

Tags

json Impactjs Canvas fun gen_server superfly PS3 Webgame HTML5 jquery SSH tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • HTML5[3]
  • iPhone[17]
  • Erlang[11]
  • google[13]
  • 生活[45]
  • 音乐[13]
  • 电影[11]
  • linux[29]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[9]
  • ruby[20]
  • ruby on rails[28]
  • 开源[4]

Episode

  • MongoDB
  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache


Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • Ruby遍历MemCached的key
  • 服务器监控小脚本
  • MySQL Innodb备份
  • [转载]5个有用的ruby gems

Recommended Posts

  • Tri-survive - HTML5 Game
  • Cut the rope - HTML5版
  • json_formatter
  • 在gen_server中spawn新的进程
  • Superfly - Wildflowers
  • 继续凸墙 for Mac OS
  • MongoDB Beijing 2011
  • MongoDB删除map_reduce生成的tmp collection
  • Mai Kuraki - Future Kiss
  • Erlang OOP
  • 用SSH tunnel凸墙
  • Google的语法高亮工具包
  • 大量数据的批量操作
  • 再次被和谐-_-
  • 十人族: 上线了

Friends' blogs

  • levy
  • sphance
  • andreas
  • yangkunlun
  • {:dev=>:wxianfeng}
  • bheye
  • joeydarko

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 316271
  • 今天访问: 66
  • 日志: 213
  • 评论: 4967
  • 音乐: 9
  • 用户: 1759


少女,不点下广告吗!

 

all by shitou

blog comments powered by Disqus

close