代码改变世界

[置顶]mochiweb 源码阅读(一)

2012-07-09 23:51 by rhinovirus, 9072 阅读, 7 推荐, 收藏, 编辑
摘要:博客园的朋友们,这次又有个机会让你们了解Erlang这门不错的语言,赶紧跟随我的步伐吧,抛开你现在拥有的,买本Erlang书,或者下本电子书,开始Erlang的世界吧。这次又是新的征程,让我们来了解mochiweb这个不错的http服务器。 这次的标题修改为源码阅读,而不是源码分析,感觉自己还没到源码分析的那个水平吧,所以称做源码阅读更合适一些。这次我希望自己不再是单纯的看代码,还是那句话,多动手吧,看会了,自己写未必写的出来,所以多尝试写一些实例代码。 好了,回到今天的正题吧,之所以选择 mochiweb,个人感觉是这个项目还是Erlang入门必看的项目吧,许多大牛也推荐新手去看看,... 阅读全文

[置顶]Ubuntu下使用Sublime Text 2搭建Go开发环境

2012-06-04 00:17 by rhinovirus, 21317 阅读, 6 推荐, 收藏, 编辑
摘要:大家好,这几天捣鼓了下 golang 的环境,今天跟大家分享下心得。 Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software. 摘自 golang.org 首页的介绍。 Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,Go语言是基于Infe 阅读全文

[置顶]Cowboy 源码分析(一)

2012-05-15 00:35 by rhinovirus, 13838 阅读, 4 推荐, 收藏, 编辑
摘要:首先,今天0点《暗黑破坏神3》就要正式开服了,但是我把晚上献给了erlang,经过前几天的努力,我已经看完了 Erlang OTP设计原则,在这里非常感谢,翻译成中文的作者 ShiningRay,没有你无私的奉献,也就没有我们这些菜鸟的幸福,废话不多说,进入今天的正题,我在今后这一段时间,跟大家一起来分享 Cowboy 这个开源的 erlang http 服务器。 我们看下官方的简介: Cowboy is a small, fast and modular HTTP server written in Erlang. Cowboy is also a socket acceptor ... 阅读全文

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

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

2013年新的开始,博客搬家了

2013-01-06 12:53 by rhinovirus, 669 阅读, 0 推荐, 收藏, 编辑
摘要:新地址:http://golanger.cn 阅读全文

使用SublimeGDB调试Go程序

2012-11-12 18:32 by rhinovirus, 16425 阅读, 4 推荐, 收藏, 编辑
摘要:大家好,好久没有跟新博客了,今天给大家带来一篇Sublime Text 2的插件SublimeGDB的使用教程。 在很早之前,写过一篇关于Sublime Text 2配置Go语言开发环境的文章,如果您还没有看过,可以先看看这一篇文章,地址:http://www.cnblogs.com/yourihua/archive/2012/06/04/2529333.html,还写过一篇关于Go使用GDB断点调试的文章,大家也可以看下,地址:http://www.cnblogs.com/yourihua/archive/2012/06/15/2541745.html。 接下来我们看下Sublime... 阅读全文

mochiweb 源码阅读(二十)

2012-08-25 00:42 by rhinovirus, 1972 阅读, 2 推荐, 收藏, 编辑
摘要:大家好,今天继续上一篇没讲完的mochiweb_request:not_found/1函数:%% @spec not_found(ExtraHeaders) -> response()%% @doc Alias for <code>respond({404, [{"Content-Type", "text/plain"}%% | ExtraHeaders], &lt;&lt;"Not found."&gt;&gt;})</code>.not_found(ExtraHeade 阅读全文

mochiweb 源码阅读(十九)

2012-08-23 00:10 by rhinovirus, 1796 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,好几天没跟新了,今天继续来和大家分享mochiweb源码,上一篇,我们看到了mochiweb_request:get(path)分支,这一篇我们依然回到mochiweb_example_web:loop/2继续往下:loop(Req, DocRoot) -> "/" ++ Path = Req:get(path), try case Req:get(method) of Method when Method =:= 'GET'; Method =:= 'HEAD' -> case Path of ... 阅读全文

mochiweb 源码阅读(十八)

2012-08-14 00:07 by rhinovirus, 2111 阅读, 3 推荐, 收藏, 编辑
摘要:大家好,这两天简单测试了下 erlang-mysql-driver,erlang-mysql-driver 是 MySQL 的 Erlang 语言驱动程序。代码可通过 SVN 获取: svn checkout http://erlang-mysql-driver.googlecode.com/svn/trunk/ erlang-mysql-driver-read-only 以后再分享给大家,今天继续来看mochiweb源码,依然是看下面几行: {Protocol, _, http_eoh} when Protocol == http orelse Protocol == ... 阅读全文

mochiweb 源码阅读(十七)

2012-08-11 02:37 by rhinovirus, 2040 阅读, 2 推荐, 收藏, 编辑
摘要:大家好,今天周五,继续来和大家一起分享mochiweb源码。最近我也是在看百度连城翻译的《Erlang/OTP并发编程实战》,其中第11章:为缓存添加HTTP接口,有这本书的朋友可以翻看下,这里介绍的内容,有助于大家理解mochiweb源码。 上一篇,我们讲到了mochiweb_http:headers/5函数,当所有协议头解析完毕后会有一个空行,它标志着报文头部的结束,剩下的便是消息正文。 {Protocol, _, http_eoh} when Protocol == http orelse Protocol == ssl -> Req = new... 阅读全文

mochiweb 源码阅读(十六)

2012-08-06 23:57 by rhinovirus, 1753 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,几天没跟新这个系列了,忙着考驾照,今天继续来跟大家分享mochiweb源码,上一篇我们讲到了mochiweb_http:handle_invalid_request/1函数,这一篇,我们来看下,正确的逻辑处理,再讲这之前,还有个地方跟大家提下,就是如果mochiweb_http:request/2函数,在使用receive读取消息时,如果发生超时,则是简单的关闭套接字以及退出进程,代码如下: after ?REQUEST_RECV_TIMEOUT -> mochiweb_socket:close(Socket), exit(normal) e... 阅读全文

Ubuntu 下 libev编译安装

2012-08-06 21:04 by rhinovirus, 6213 阅读, 0 推荐, 收藏, 编辑
摘要:下载源码,以及编译安装: cvs -z3 -d :pserver:anonymous@cvs.schmorp.de/schmorpforge co libev sh autogen.sh ./configure && make sudo make install 阅读全文

mochiweb 源码阅读(十五)

2012-08-03 00:54 by rhinovirus, 1993 阅读, 2 推荐, 收藏, 编辑
摘要:大家好,这一篇我们接着上一篇最后提到的mochiweb_http:request/2继续来和大家分享mochiweb源码:request(Socket, Body) -> ok = mochiweb_socket:setopts(Socket, [{active, once}]), receive {Protocol, _, {http_request, Method, Path, Version}} when Protocol == http orelse Protocol == ssl -> ok = mochiweb_socket:se... 阅读全文

mochiweb 源码阅读(十四)

2012-08-01 00:43 by rhinovirus, 1736 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,下了一天雨,十分凉爽,继续来看mochiweb源码,这一篇,我们来消化下上一篇留下的问题。 首先是mochiweb_socket_server:handle_cast/2关于{accepted, Pid, Timing}消息的处理:handle_cast({accepted, Pid, Timing}, State=#mochiweb_socket_server{active_sockets=ActiveSockets}) -> State1 = State#mochiweb_socket_server{active_sockets=1 + Activ... 阅读全文