代码改变世界

随笔分类 -  Erlang

rebar 使用有感

2012-05-01 18:50 by rhinovirus, 3133 阅读, 收藏, 编辑
摘要: Rebar是一个独立的erlang脚本,所以使用Rebar发布程序非常简单,甚至可以直接集成在项目文件夹中。默认的情况下,Rebar会按照 Erlang/OTP来组织项目的结构,这样一来,构建时的配置工作量就会大大减少。Rebar同时提供了依赖库(包)管理机制,方便程序员重用已存在的 模块。Rebar的依赖管理机制支持的方式非常多,甚至包括Git, Hg等少见的方式。下载地址:https://github.com/basho/rebar官方介绍:https://github.com/basho/rebar/wikimochiweb 这个开源项目,也是使用 rebar 来构建的。 期望的是... 阅读全文

ubuntu 11.10 使用 emacs-23.4 开发 erlang 整理 之 auto-complete 插件的安装

2012-04-25 16:30 by rhinovirus, 2578 阅读, 收藏, 编辑
摘要: 大家好,欢迎大家继续关注 使用 emacs 开发 erlang的系列文章,今天给大家带来 auto-complete 插件的安装教程。 关于这个插件究竟能给 emacs 带来,或者增强什么样的功能,大家可以看下官方给的介绍 具体地址是: http://cx4a.org/software/auto-complete/ http://cx4a.org/software/auto-complete/manual.html 我大概的介绍一些,比较重要的应该是代码补全,因为我本身接触这个才几天。并不是很了解,欢迎大牛留言介绍,呵呵。 安装我也是参看了别的朋友的文章,应该是不少,... 阅读全文

ubuntu 11.10 使用 emacs-23.4 开发 erlang 整理 (新手推荐)

2012-04-25 12:24 by rhinovirus, 2783 阅读, 收藏, 编辑
摘要: erlang IDE 一直是 erlang界有新手到来时讨论的话题,最近一直在折腾这个闹心的IDE,对于没有使用过emacs的新手来说,emacs环境的搭建十分困难,如果你英文不错,那还是能通过自己的摸索,最后修成正果的,但是如果你E文烂,那接下来就是痛不欲生了。网上关于 emacs 搭建erlang开发的文章并不是很多,而且版本各不一样,所以写下此文,希望能帮助想通过 emacs开发erlang的朋友,废话不多说,步入正题。 系统环境 Ubuntu 11.10,下载地址:http://www.verycd.com/topics/2907723/ 这里我下载的是:[乌班图].ubuntu... 阅读全文

尾递归和内存泄漏

2012-04-23 23:47 by rhinovirus, 804 阅读, 收藏, 编辑
摘要: 尾递归在并发编程中的重要性在这里变得很明显。因为你不知道将会调用多少次这个函数,你必须确保它在常量的内存空间内执行,当每次处理一个消息的时候不会增加递归调用堆栈。每分钟处理数千次以上的消息,且持续数小时,数天,数月或者数年都是很常见的!使用尾递归,接受/计算函数的最后一件事是调用自己,这样你就可以确保没有内存泄漏地不间断运行了。 当一个消息和receive声明中的所有语句都不匹配的时候会发生什么呢?它会无限制地停留在信箱中,这就造成了内存泄漏,随着时间的推移这还可能导致运行时系统内存溢出和崩溃。因此不处理未知消息应视为一个错误。要么刚开始就不应该发送这些消息到这个进程,要么处理它们,可能... 阅读全文

erlang垃圾收集器不会收集基元是erlang到一个内存管理特性

2012-04-23 22:48 by rhinovirus, 655 阅读, 收藏, 编辑
摘要: erlang垃圾收集器不会收集基元是erlang到一个内存管理特性。一旦你生成了一个基元,那么不管代码中是否被引用它都会停留在基元表里。如果决定在一个瞬时的进程注册别名,而该别名是通过内置函数 list_to_atom把一个字符串转换为一个基元而得到的,这就可能是一个潜在的问题。如果每天有数以百万计的用户登录系统,而你为他们到每一个会话都建立一个已注册的进程,那么请不要惊讶最终将耗尽内存。 把用户到进程标识符的映射保存到一个会话表(session table)中对于你可能会更好些。最好是只注册生命周期长到进程,如果你真到必须将字符串转换为一个别名,请使用 list_to_existing... 阅读全文

自动化安装 erlang

2012-04-23 12:01 by rhinovirus, 426 阅读, 收藏, 编辑
摘要: 考虑到将来部署服务器时,需要自动化一些,想想window 下都时bat脚本实现,初学linux,ubuntu下应该时用sh脚本实现。新建文件,命名为 install_erlang.sh粘帖下面内容到文件中#!/bin/bash -eecho -e "please waiting...\n"sudo apt-get install -y build-essential sudo apt-get install -y libncurses5-dev sudo apt-get install -y libssl-dev sudo apt-get install -y m4 sud 阅读全文

emacs 使用 distel nodedown 问题解决办法

2012-04-21 21:13 by rhinovirus, 386 阅读, 收藏, 编辑
摘要: 首先感谢 网友广州-ll 和 深圳-燕尘 的帮助之前我下载到版本是 从http://code.google.com/p/distel/ 这里下载到。这个版本应该是有问题的。详细可以看https://github.com/massemanet/distel 作者已经修正了这个bug。 阅读全文

Ubuntu使用root管理员帐号登陆及在右键增加‘以管理员身份打开’ (转)

2012-04-18 11:12 by rhinovirus, 1742 阅读, 收藏, 编辑
摘要: 1、打开文本编辑器在里面输入:#!/bin/bash gksu nautilus $@ & exit 0保存在~/.gnome2/nautilus-scripts 文件夹下面,可以命名为“以root打开”之类的文件名2、找到这个文件右键点击修改权限为可执行3、重启X之后可以看到右键菜单多了:脚本->用 root 打开在要打开的文件夹上点上面的菜单,就可以在新窗口中,用 root 权限打开那个文件夹了 阅读全文

ubuntu下安装jdk7的简单步骤 (转)

2012-04-18 11:11 by rhinovirus, 5501 阅读, 收藏, 编辑
摘要: 地址:http://www.allopopo.cn/?p=347至今任然在继续使用ubuntu 10.04版,自认为是到目前为止ubuntu最稳定的版本。新的11.04有做尝试,但是实在是无法习惯unity,故放弃。 ubuntu默认自带的是openjdk,一般的使用已经足够,但是有的人出于莫名的理由,还是习惯使用sun jdk,也就是现在的oracle jdk。这篇文章简单地记录了在ubuntu下安装新版jdk7的几个步骤。原文出处在:Intalling Java 7 on Ubuntu Natty (11.04),经测试,该方法在10.04.3中也可以使用。首先自然是去java的官网下载j 阅读全文

Linux 常用命令

2012-04-16 20:11 by rhinovirus, 324 阅读, 收藏, 编辑
摘要: 创建一个目录sudo mkdir /usr/lib/java解压到目录下sudo tar zxvf ./jdk-7u1-linux-i586.tar.gz -C /usr/lib/java修改文件夹名sudo mv/usr/lib/java/jdk1.7.0_01/ /usr/lib/java/jdk7 阅读全文

ubuntu 11.10 下为Firefox安装Adobe Flash Player 插件的问题 (转载)

2012-04-16 17:06 by rhinovirus, 1022 阅读, 收藏, 编辑
摘要: 要是搜索百度或是Google就会发现各种方法,yum, rpm 等各种包安装的问题,其实最简单的方法就是直接通过源码安装;到adobe官网上下载相应版本的源码包;例如:install_flash_player_11_linux.x86_64.tar.gz ; 解压: tar -zxvf里面有一个动态链接库文件: libflashplayer.so把该文件移动到Mozilla firefox 的插件目录下: mv libflashplayer.so /usr/lib/mozilla/plugins/重启浏览器即可。 阅读全文

ubuntu 11.10 搭建erlang环境 (转载)

2012-04-16 00:59 by rhinovirus, 537 阅读, 收藏, 编辑
摘要: 地址:http://blog.csdn.net/lqg1122/article/details/7434310搜索了很多资料都说到,如果库不全的话,编译安装的时候会报各种错误,所以我们站在巨人的肩膀上。首先,打好库:[plain] view plaincopysudoapt-getinstallbuild-essentialsudoapt-getinstalllibncurses5-devsudoapt-getinstalllibssl-devsudoapt-getinstallm4sudoapt-getinstallunixodbcunixodbc-devsudoapt-getinstall 阅读全文

Erlang 中文问题

2011-10-21 09:37 by rhinovirus, 1422 阅读, 收藏, 编辑
摘要: 具体做法:1、外部文件使用utf8保存2、erlang代码使用utf8保存3、使用xmerl_ucs:from_utf8(Data)转换成unicode编码4、使用io:format("~ts~n",[Data])在shell中打印这样既能在erlang中知道有中文的字数,又能打印显示中文,一举两得注:utf8编码是变长字节码,所以中文编码之后字数就不一样了。 阅读全文