代码改变世界

Cowboy 源码分析(十五)

2012-06-06 00:29 by rhinovirus, 1604 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,无意间发现 CodeMirror,挺不错的,在线代码编辑器,支持erlang,go等等语言,官方介绍如下: CodeMirror is a JavaScript component that provides a code editor in the browser. When a mode is available for the language you are coding in, it will color your code, and optionally help with indentation. A rich programming API and a CSS ... 阅读全文

Cowboy 源码分析(十四)

2012-06-05 00:58 by rhinovirus, 1493 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,今天接着做几个测试,把上一篇理解并不透彻的几个方法再加强下: 第一个,测试 cowboy_http:whitespace/2 方法的作用,测试代码以及结果如下,左边是测试代码,右边是测试结果: 这样就能很明白的看出这个这个函数的作用了,注意:测试结果第二行,\s 变成空格了。 第二个,测试 cowboy_http:list/3 以及 cowboy_http:token_ci/2 方法,增加打印log,测试代码如下:-module(main).-export([start/0, stop/0]).start() -> io:format("test 1 ~n") 阅读全文

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-06-03 14:17 by rhinovirus, 1852 阅读, 2 推荐, 收藏, 编辑
摘要:这两天花了些时间搭建了下Go的开发环境,看了些基本的语法,感觉有类c语言基础的朋友们,学起来会容易些,学习Go语言的障碍会比erlang来的少的多。以后有机会跟大家分享Go吧,这边给大家截个图,分享下: 怎么样,看起来是不是跟C好像,呵呵,好了,回到Cowboy,上一篇,我们知道通过 cowboy_http_protocol:header/3 函数和 cowboy_http_protocol:parse_header/2之间的递归调用,来解析头部的每一行,我在上一篇提到 Headers最后一行的为 Connection,那么我们看下,cowboy_http_protocol:head... 阅读全文

Cowboy 源码分析(十二)

2012-05-31 00:11 by rhinovirus, 3107 阅读, 1 推荐, 收藏, 编辑
摘要:今天,又是按时下班,吃饱饭,继续跟大家分享Cowboy,昨天有件高兴的事,我尝试用闪存给@博客园团队发了一条闪存,问是否能在博客园首页中的编程语言分类中添加 Erlang 这一种编程语言,很快,@博客园团队就给我回信,很爽快的答应了,并且帮我把以前的文章也导入这个分类,省去了我手动倒的麻烦,这边谢谢@博客园团队的热心,希望博客园越来越好,越来越多的朋友来学 Erlang。 好了,继续我们上一篇讲到的cowboy_http_protocol:request/2 方法: parse_header(#http_req{socket=Socket, transport=Transport, c... 阅读全文

Cowboy 源码分析(十一)

2012-05-29 23:52 by rhinovirus, 2318 阅读, 1 推荐, 收藏, 编辑
摘要:上一篇,我们使用debugger和HttpFox很方便了,查看了方法中的变量,不得不说,debugger 断点调试还是比较好用的。这一篇,我们仍将使用这些工具来帮助我们了解代码,好了,接着上一篇继续来看 cowboy_http_protocol:request/2 方法: 上面两张图,是我们上一篇文章,我们看到的函数,以及变量的值,这一篇,我们继续来看下这个函数: URLDecode = fun(Bin) -> URLDecFun(Bin, URLDecArg) end,定义了一个匿名函数,Bin是匿名函数定义的变量,我们看下URLDecFun 这个变量, urldecode... 阅读全文

Cowboy 源码分析(十)

2012-05-28 13:10 by rhinovirus, 2319 阅读, 3 推荐, 收藏, 编辑
摘要:在上一篇中,由于我对 erlang:decode_packet/3 方法的不理解,所以造成了对 cowboy_http_protocol:request/2 方法的困惑,这一篇,我将结合 erlang Debugger 工具 和 HttpFox 工具来看看,究竟是怎么回事。Debugger 我就不多说了,了解erlang的朋友,应该都知道这个工具,如果你是初学,没用过这个工具,可以参考我之前的一篇文章,使用 debugger 简单调试 erlang 简单介绍了这个工具。HttpFox An HTTP analyzer addon for Firefox,HttpFox monitors a.. 阅读全文

Cowboy 源码分析(九)

2012-05-27 23:37 by rhinovirus, 2626 阅读, 1 推荐, 收藏, 编辑
摘要:大家好,今天是周日,继续为大家带来这个系列的第九篇,昨天参加同事的婚礼,今年已经好几个同事结婚了,时间过的真是快啊。转眼也是奔三的人了,得再加把劲学习了。 好了,进入今天的主题,上一篇中,我们讲到了 cowboy_http_protocol:wait_request/1 和 cowboy_listener:add_pid/4 这两个方法,今天,我们继续。 我们先看下调用 cowboy_http_protocol:wait_request/1 这个方法cowboy_http_protocol:init/1的代码: %% @private-spec init(pid(), inet:so... 阅读全文

Cowboy 源码分析(八)

2012-05-24 00:48 by rhinovirus, 4173 阅读, 2 推荐, 收藏, 编辑
摘要:大家好,这篇文章又晚了几天,这几天公司的事情比较多,每天晚上都3点多才到家,今天终于稍微不忙,回到家吃个饭,继续为大家带来这个系列的第八篇。 上一篇中,我们讲到了 cowboy_acceptor:acceptor/7 方法里的这一行代码: cowboy_listener:add_connection(ListenerPid, default, Pid, OptsVsn), 我们来看下这个方法的这个参数分别是什么: ListenerPid 是cowboy_listener工作进程的进程标识; Pid 则是cowboy_requests_sup督程的子进程标识符; OptsVsn ... 阅读全文

Cowboy 源码分析(七)

2012-05-22 00:18 by rhinovirus, 2694 阅读, 1 推荐, 收藏, 编辑
摘要:上一篇我们讲到了cowboy_requests_sup这个模块,这一篇继续往下走,看下 cowboy_acceptor 这个模块:%% @private-module(cowboy_acceptor).-export([start_link/6]). %% API.-export([acceptor/7]). %% Internal.%% API.-spec start_link(inet:socket(), module(), module(), any(), pid(), pid()) -> {ok, pid()}.start_link(LSocket, Transport, P.. 阅读全文