<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>agentzh's home</title>
<link>http://agentzh.org/</link>
<description>yet another idiot who loves programming</description>
<language>en</language>
<copyright>Copyright 2011 ZhangYichun</copyright>
<pubDate>Tue, 06 Dec 2011 07:46:57 GMT</pubDate>
<lastBuildDate>Tue, 06 Dec 2011 07:46:57 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>TiddlyWiki 2.6.2</generator>
<item>
<title>Blogs</title>
<description>&lt;a tiddler=&quot;Blogs&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'm posting nginx related stuffs and other things to my blog site on Blogger: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.blogspot.com/&quot; href=&quot;http://agentzh.blogspot.com/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.blogspot.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'm also posting Nginx tutorials for both users and developers in Chinese at Sina Blog here: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://blog.sina.com.cn/openresty&quot; href=&quot;http://blog.sina.com.cn/openresty&quot; class=&quot;externalLink&quot;&gt;http://blog.sina.com.cn/openresty&lt;/a&gt;</description>
<link>http://agentzh.org/#Blogs</link>
<pubDate>Tue, 06 Dec 2011 07:46:54 GMT</pubDate>

</item>
<item>
<title>Presentations</title>
<description>&lt;a tiddler=&quot;Presentations&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;Here goes a list of slides that I used in various opensource events and school lectures.&lt;br&gt;&lt;br&gt;These slides are powered by the &lt;a target=&quot;_blank&quot; title=&quot;External link to https://github.com/kindy61/slides.htm&quot; href=&quot;https://github.com/kindy61/slides.htm&quot; class=&quot;externalLink&quot;&gt;slides.htm&lt;/a&gt; slide-making engine based on AJAX.&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;em&gt;Note: Please use the arrow keys or pageup/pagedown keys on your keyboard to switch pages.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;h1&gt; Year 2011&lt;/h1&gt;&lt;h2&gt; Applications of ngx_openresty and perl in lz.taobao.com&lt;/h2&gt;&lt;br&gt;This talk was given at &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org/bjpw2011/talks&quot; href=&quot;http://conference.perlchina.org/bjpw2011/talks&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop 2011&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Watch the video online: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://v.ku6.com/show/TY8Vre59guTE_C8o.html&quot; href=&quot;http://v.ku6.com/show/TY8Vre59guTE_C8o.html&quot; class=&quot;externalLink&quot;&gt;http://v.ku6.com/show/TY8Vre59guTE_C8o.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;View in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/perl-lz-apps/&quot; href=&quot;http://agentzh.org/misc/slides/perl-lz-apps/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/perl-lz-apps/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Download the slides: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/perl-lz-apps.tar.gz&quot; href=&quot;http://agentzh.org/misc/slides/perl-lz-apps.tar.gz&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/perl-lz-apps.tar.gz&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Year 2010&lt;/h1&gt;&lt;h2&gt; Introduction to nginx.conf scripting&lt;/h2&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org&quot; href=&quot;http://conference.perlchina.org&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop&lt;/a&gt; 2010 April meeting and the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.beijing-open-party.org/event/2&quot; href=&quot;http://www.beijing-open-party.org/event/2&quot; class=&quot;externalLink&quot;&gt;Beijing OpenParty 2010 June event&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/nginx-conf-scripting/&quot; href=&quot;http://agentzh.org/misc/slides/nginx-conf-scripting/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/nginx-conf-scripting/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Download the slides: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/nginx-conf-scripting.tar.gz&quot; href=&quot;http://agentzh.org/misc/slides/nginx-conf-scripting.tar.gz&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/nginx-conf-scripting.tar.gz&lt;/a&gt;&lt;br&gt;&lt;br&gt;Please note that ngx_eval module is no longer recommended because we're in more favor of ngx_lua nowadays.&lt;br&gt;&lt;br&gt;&lt;h2&gt; Recent developments in nginx.conf scripting&lt;/h2&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.beijing-open-party.org/event/2&quot; href=&quot;http://www.beijing-open-party.org/event/2&quot; class=&quot;externalLink&quot;&gt;Beijing OpenParty 2010 June event&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/recent-dev-nginx-conf/&quot; href=&quot;http://agentzh.org/misc/slides/recent-dev-nginx-conf/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/recent-dev-nginx-conf/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Download the slides: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/recent-dev-nginx-conf.tar.gz&quot; href=&quot;http://agentzh.org/misc/slides/recent-dev-nginx-conf.tar.gz&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/recent-dev-nginx-conf.tar.gz&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; The state of the art of nginx.conf scripting&lt;/h2&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/nginx-state-of-the-art/&quot; href=&quot;http://agentzh.org/misc/slides/nginx-state-of-the-art/&quot; class=&quot;externalLink&quot;&gt;ECUG 2010 event&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Watch the (Chinese-speech) video online: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://v.ku6.com/show/D00rqtnRwKzJdIsB.html&quot; href=&quot;http://v.ku6.com/show/D00rqtnRwKzJdIsB.html&quot; class=&quot;externalLink&quot;&gt;http://v.ku6.com/show/D00rqtnRwKzJdIsB.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;View the (English) slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/nginx-state-of-the-art/&quot; href=&quot;http://agentzh.org/misc/slides/nginx-state-of-the-art/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/nginx-state-of-the-art/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Download the slides: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/nginx-state-of-the-art.tar.gz&quot; href=&quot;http://agentzh.org/misc/slides/nginx-state-of-the-art.tar.gz&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/nginx-state-of-the-art.tar.gz&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Year 2009&lt;/h1&gt;&lt;h2&gt; A Firefox cluster driven by JavaScript, Perl, &amp;amp; PL/PgSQL&lt;/h2&gt;This talk was given at the Beijing Perl Workshop 2009 Feb Meetup and &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.beijing-open-party.org/post/beijing-open-party-2009-02-fox-event-begin&quot; href=&quot;http://www.beijing-open-party.org/post/beijing-open-party-2009-02-fox-event-begin&quot; class=&quot;externalLink&quot;&gt;Beijing OpenParty 2009 Feb event&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View the slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/BJPW200902/ffcluster.html&quot; href=&quot;http://agentzh.org/misc/slides/BJPW200902/ffcluster.html&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/BJPW200902/ffcluster.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; Introduction to our VDOM.pm &amp;amp; vdom-webkit cluster&lt;/h2&gt;Use vision information to do intelligent web scraping by rendering pages via a WebKit &amp;amp; VDOM cluster.&lt;br&gt;&lt;br&gt;This talk was given at &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org/bjpw2009/talks&quot; href=&quot;http://conference.perlchina.org/bjpw2009/talks&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop 2009&lt;/a&gt; and a meetup with Taobao.com's front-end engineers in the Hangzhou city.&lt;br&gt;&lt;br&gt;View the slides in your browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/taobao-fe/vdomwebkit.html&quot; href=&quot;http://agentzh.org/misc/slides/taobao-fe/vdomwebkit.html&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/taobao-fe/vdomwebkit.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; A Tour of Perl Testing&lt;/h2&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org/bjpw2009/talks&quot; href=&quot;http://conference.perlchina.org/bjpw2009/talks&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop 2009&lt;/a&gt; event.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/BJPW2009/perl-testing.html&quot; href=&quot;http://agentzh.org/misc/slides/BJPW2009/perl-testing.html&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/BJPW2009/perl-testing.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Year 2008&lt;/h1&gt;&lt;h2&gt; Nifty web apps on an OpenResty&lt;/h2&gt;This talk was given at the D2 Frontend Technology event organized by Yahoo! China.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/openresty-d2/&quot; href=&quot;http://agentzh.org/misc/slides/openresty-d2/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/openresty-d2/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; OpenResty: Your Relational Cloud&lt;/h2&gt;OpenResty.pm is a general-purpose RESTful web service platform. In this talk I explained its origin, REST API, and its unusual applications.&lt;br&gt;&lt;br&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org/bjpw2008/talks&quot; href=&quot;http://conference.perlchina.org/bjpw2008/talks&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop 2008&lt;/a&gt; event and the Yahoo! China Engineer Tech. Salon.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/openresty-yes/&quot; href=&quot;http://agentzh.org/misc/slides/openresty-yes/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/openresty-yes/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Year 2007&lt;/h1&gt;&lt;h2&gt; XUL::App - Jifty way of doing XUL&lt;/h2&gt;XUL::App is a nifty Firefox extension development framework based on Perl. It has a lot of parallels with Jifty. In particular, this framework allows you to build real-world modern Firefox extensions using Perl.&lt;br&gt;&lt;br&gt;In this talk, I demonstrated how to use this framework to write a &quot;hello, world&quot; Firefox extension with I18N support in lines. &lt;br&gt;&lt;br&gt;This talk was given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://conference.perlchina.org/bjpw2008/talks&quot; href=&quot;http://conference.perlchina.org/bjpw2008/talks&quot; class=&quot;externalLink&quot;&gt;Beijing Perl Workshop 2008&lt;/a&gt; event.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/xulapp/&quot; href=&quot;http://agentzh.org/misc/slides/xulapp/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/xulapp/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; Contribute to Pugs&lt;/h2&gt;Pugs is a Perl 6 compiler written in Haskell. In this talk, I introduced the Pugs project as well as my involvement in the automated testing work of the Perl 6 language to the PerlChina folks and encouraged people to contribute Pugs.&lt;br&gt;&lt;br&gt;This talk was given at the Beijing Perl Workshop 2007 event.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/contr_pugs/&quot; href=&quot;http://agentzh.org/misc/slides/contr_pugs/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/contr_pugs/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; Use UML::Class::Simple to generate simple UML class diagrams&lt;/h2&gt;UML::Class::Simple is my Perl CPAN module that can generate UML class diagrams automatically from arbitrary real-world Perl OO libraries.&lt;br&gt;&lt;br&gt;This talk was given at the Beijing Perl Workshop 2007 event.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/umlclass/&quot; href=&quot;http://agentzh.org/misc/slides/umlclass/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/umlclass/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt; Year 2006&lt;/h1&gt;&lt;h2&gt; Introduction to XClips&lt;/h2&gt;XClips is an expert system development language designed by myself, which is implemented atop NASA's &lt;a target=&quot;_blank&quot; title=&quot;External link to http://clipsrules.sourceforge.net/&quot; href=&quot;http://clipsrules.sourceforge.net/&quot; class=&quot;externalLink&quot;&gt;CLIPS&lt;/a&gt;. This talk explains the appearance of the language and some details of its implementation and applications.&lt;br&gt;&lt;br&gt;This talk was given as a lecture at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.ujs.edu.cn/&quot; href=&quot;http://www.ujs.edu.cn/&quot; class=&quot;externalLink&quot;&gt;Jiangsu University&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/xclips/&quot; href=&quot;http://agentzh.org/misc/slides/xclips/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/xclips/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; The Art of Naming&lt;/h2&gt;This talk teaches the art of naming for programmers, using lots of examples from Perl 6, C/C++, Java, and other programming languages.&lt;br&gt;&lt;br&gt;This talk was given as a lecture at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.ujs.edu.cn/&quot; href=&quot;http://www.ujs.edu.cn/&quot; class=&quot;externalLink&quot;&gt;Jiangsu University&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View slides in your web browser:&lt;br&gt;&lt;ul&gt;&lt;li&gt; &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/naming/&quot; href=&quot;http://agentzh.org/misc/slides/naming/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/naming/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/naming/naming_recap.html&quot; href=&quot;http://agentzh.org/misc/slides/naming/naming_recap.html&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/naming/naming_recap.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt; XML in the real world&lt;/h2&gt;This talk shows various interesting applications of XML in the real world. It also introduces some of my web scraping tools based on Perl 5.&lt;br&gt;&lt;br&gt;This talk was given as a lecture at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.ujs.edu.cn/&quot; href=&quot;http://www.ujs.edu.cn/&quot; class=&quot;externalLink&quot;&gt;Jiangsu University&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/xmlapp/&quot; href=&quot;http://agentzh.org/misc/slides/xmlapp/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/xmlapp/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; Functions and Methods&lt;/h2&gt;This lecture discusses functions and methods in Object-Oriented Programming (OOP). This is one of my series of lectures on OOP given at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.ujs.edu.cn/&quot; href=&quot;http://www.ujs.edu.cn/&quot; class=&quot;externalLink&quot;&gt;Jiangsu University&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/func/&quot; href=&quot;http://agentzh.org/misc/slides/func/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/func/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt; Design Patterns - Using FAST&lt;/h2&gt;This talk explains the design patterns used in the construction process of the FAST (Flowchart Abstract Syntax Tree transformer) program, which can convert a program described by a flowchart into a structural program.&lt;br&gt;&lt;br&gt;This talk was given as a lecture at the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.ujs.edu.cn/&quot; href=&quot;http://www.ujs.edu.cn/&quot; class=&quot;externalLink&quot;&gt;Jiangsu University&lt;/a&gt;.&lt;br&gt;&lt;br&gt;View slides in your web browser: &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/patterns/&quot; href=&quot;http://agentzh.org/misc/slides/patterns/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/misc/slides/patterns/&lt;/a&gt;&lt;br&gt;</description>
<link>http://agentzh.org/#Presentations</link>
<pubDate>Tue, 29 Nov 2011 12:56:00 GMT</pubDate>

</item>
<item>
<title>FollowMe</title>
<description>&lt;a tiddler=&quot;FollowMe&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'm quite active in Sina Weibo (A twitter clone very popular in China): &lt;a target=&quot;_blank&quot; title=&quot;External link to http://weibo.com/agentzh&quot; href=&quot;http://weibo.com/agentzh&quot; class=&quot;externalLink&quot;&gt;http://weibo.com/agentzh&lt;/a&gt;&lt;br&gt;&lt;br&gt;I do own a twitter account, &lt;a target=&quot;_blank&quot; title=&quot;External link to http://twitter.com/agentzh&quot; href=&quot;http://twitter.com/agentzh&quot; class=&quot;externalLink&quot;&gt;@agentzh&lt;/a&gt;.&lt;br&gt;&lt;br&gt;If you're interested in my opensource development work, go follow me on GitHub! &lt;a target=&quot;_blank&quot; title=&quot;External link to http://github.com/agentzh/&quot; href=&quot;http://github.com/agentzh/&quot; class=&quot;externalLink&quot;&gt;http://github.com/agentzh/&lt;/a&gt;</description>
<link>http://agentzh.org/#FollowMe</link>
<pubDate>Wed, 16 Nov 2011 07:42:00 GMT</pubDate>

</item>
<item>
<title>MarkupPostBody</title>
<description>&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br&gt;&lt;br&gt;  var _gaq = _gaq || [];&lt;br&gt;  _gaq.push(['_setAccount', '&lt;a tiddlylink=&quot;UA-24724974-1&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#UA-24724974-1&quot; href=&quot;http://agentzh.org/#UA-24724974-1&quot; class=&quot;externalLink null&quot;&gt;UA-24724974-1&lt;/a&gt;']);&lt;br&gt;  _gaq.push(['_trackPageview']);&lt;br&gt;&lt;br&gt;  var ga_f = function() {&lt;br&gt;    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br&gt;    ga.src = ('https:' == document.location.protocol ? '&lt;a target=&quot;_blank&quot; title=&quot;External link to https://ssl&quot; href=&quot;https://ssl&quot; class=&quot;externalLink&quot;&gt;https://ssl&lt;/a&gt;' : '&lt;a target=&quot;_blank&quot; title=&quot;External link to http://www&quot; href=&quot;http://www&quot; class=&quot;externalLink&quot;&gt;http://www&lt;/a&gt;') + '.google-analytics.com/ga.js';&lt;br&gt;    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br&gt;  };&lt;br&gt;  setTimeout(ga_f, 200);&lt;br&gt;&lt;br&gt;&amp;lt;/script&amp;gt;</description>
<link>http://agentzh.org/#MarkupPostBody</link>
<pubDate>Mon, 25 Jul 2011 15:37:00 GMT</pubDate>

</item>
<item>
<title>MarkupPostHead</title>
<description></description>
<link>http://agentzh.org/#MarkupPostHead</link>
<pubDate>Mon, 25 Jul 2011 15:37:00 GMT</pubDate>

</item>
<item>
<title>ErlangFileReadLineBenchmark</title>
<description>&lt;a tiddler=&quot;ErlangFileReadLineBenchmark&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;h1&gt; Source listing&lt;/h1&gt;&lt;h2&gt; reader.erl&lt;/h2&gt;Here's the Erlang implementation A, not using Erlang binaries:&lt;br&gt;&lt;pre&gt;-module(reader).
-export([main/0]).

main() -&amp;gt;
    {ok, File} = file:open(&quot;data.log&quot;, [read]),
    Lines = count_lines(File, 0),
    io:format(&quot;Found ~w lines.~n&quot;, [Lines]),
    halt().

count_lines(File, Count) -&amp;gt;
    case file:read_line(File) of
        {ok, _Line} -&amp;gt;
            count_lines(File, Count + 1);
        eof -&amp;gt;
            Count
    end.
&lt;/pre&gt;&lt;h2&gt; reader-bin.erl&lt;/h2&gt;Here's the Erlang implementation B, using Erlang binaries:&lt;br&gt;&lt;pre&gt;-module(reader).
-export([main/0]).

main() -&amp;gt;
    {ok, File} = file:open(&quot;data.log&quot;, [read, binary]),
    Lines = count_lines(File, 0),
    io:format(&quot;Found ~w lines.~n&quot;, [Lines]),
    halt().

count_lines(File, Count) -&amp;gt;
    case file:read_line(File) of
        {ok, _Line} -&amp;gt;
            count_lines(File, Count + 1);
        eof -&amp;gt;
            Count
    end.
&lt;/pre&gt;&lt;h2&gt; reader-bin-raw.erl&lt;/h2&gt;Here's the Erlang implementation C, using Erlang binaries, raw file mode, and big read_ahead:&lt;br&gt;&lt;pre&gt;-module(reader).
-export([main/0]).

main() -&amp;gt;
    {ok, File} = file:open(&quot;data.log&quot;, [read, binary, raw, {read_ahead, 1024 * 1024}]),
    Lines = count_lines(File, 0),
    io:format(&quot;Found ~w lines.~n&quot;, [Lines]),
    halt().

count_lines(File, Count) -&amp;gt;
    case file:read_line(File) of
        {ok, _Line} -&amp;gt;
            count_lines(File, Count + 1);
        eof -&amp;gt;
            Count
    end.
&lt;/pre&gt;&lt;h1&gt; reader.pl&lt;/h1&gt;Here's the Perl 5 implementation:&lt;br&gt;&lt;pre&gt;open my $in, &quot;data.log&quot; or die;
my $n;
while (&amp;lt;$in&amp;gt;) {
    $n++;
}
print &quot;Found $n lines.\n&quot;;
&lt;/pre&gt;&lt;h1&gt; Test data file&lt;/h1&gt;The data file is from a real nginx error.log file snapshot in our production environment. Here's its basic information:&lt;br&gt;&lt;pre&gt;$ wc data.log
    412003  12957676 197733977 data.log
$ ls -lh data.log
-rw-r--r-- 1 agentz users 189M 2011-06-28 15:08 data.log
&lt;/pre&gt;&lt;h1&gt; Benchmark&lt;/h1&gt;To help OS cache the disk data, we only take the time of the programs' second runs.&lt;br&gt;&lt;h2&gt; Results on Slackware Linux x86_64&lt;/h2&gt;Linux Kernel: 2.6.33.1&lt;br&gt;CPU: Intel Core2Duo T9600&lt;br&gt;Hard disk: SATA 7200'&lt;br&gt;Erlang OTP: R14B01 (erts-5.8.2)&lt;br&gt;Perl: 5.12.1&lt;br&gt;&lt;br&gt;&lt;h3&gt; The Erlang program A compiled in bytecode&lt;/h3&gt;&lt;pre&gt;$ erlc reader.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m14.023s
user	0m13.237s
sys	0m0.742s
&lt;/pre&gt;&lt;h3&gt; The Erlang program A compiled in native code&lt;/h3&gt;&lt;pre&gt;$ erlc +native reader.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m14.007s
user	0m13.233s
sys	0m0.739s
&lt;/pre&gt;&lt;h3&gt; The Erlang program B compiled in bytecode&lt;/h3&gt;&lt;pre&gt;$ erlc reader-bin.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m4.451s
user	0m4.322s
sys	0m0.104s
&lt;/pre&gt;&lt;h3&gt; The Erlang program B compiled in native code&lt;/h3&gt;&lt;pre&gt;$ erlc +native reader-bin.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m4.531s
user	0m4.417s
sys	0m0.095s
&lt;/pre&gt;&lt;h3&gt; The Erlang program C compiled in bytecode&lt;/h3&gt;&lt;pre&gt;$ erlc reader-bin-raw.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m10.001s
user	0m8.520s
sys	0m1.386s
&lt;/pre&gt;&lt;h3&gt; The Erlang program C compiled in native code&lt;/h3&gt;&lt;pre&gt;$ erlc +native reader-bin-raw.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m10.398s
user	0m8.673s
sys	0m1.359s
&lt;/pre&gt;&lt;h3&gt; The Perl 5 program&lt;/h3&gt;&lt;pre&gt;$ time perl reader.pl
Found 412003 lines.

real	0m0.332s
user	0m0.271s
sys	0m0.061s
&lt;/pre&gt;&lt;h2&gt; Results on Mac OS X 10.6.7&lt;/h2&gt;CPU: Intel Core2Duo 1.86GHz&lt;br&gt;Hard disk: SSD&lt;br&gt;Erlang OTP: R14B02 (erts-5.8.3)&lt;br&gt;Perl: 5.12.3&lt;br&gt;&lt;h3&gt; The Erlang program A compiled in bytecode&lt;/h3&gt;&lt;pre&gt;$ erlc reader.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m32.254s
user	0m27.532s
sys	0m4.681s
&lt;/pre&gt;&lt;h3&gt; The Erlang program A compiled in native code&lt;/h3&gt;&lt;pre&gt;$ erlc +native reader.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m32.043s
user	0m27.356s
sys	0m4.646s
&lt;/pre&gt;&lt;h3&gt; The Erlang program B compiled in bytecode&lt;/h3&gt;&lt;pre&gt;$ erlc reader-bin.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m6.700s
user	0m6.447s
sys	0m0.212s
&lt;/pre&gt;&lt;h3&gt; The Erlang program B compiled in native code&lt;/h3&gt;&lt;pre&gt;$ erlc +native reader-bin.erl
$ time erl -noshell -s reader main
Found 412003 lines.

real	0m6.721s
user	0m6.461s
sys	0m0.218s
&lt;/pre&gt;&lt;h3&gt; The Perl 5 program&lt;/h3&gt;&lt;pre&gt;$ time perl reader.pl
Found 412003 lines.

real	0m0.677s
user	0m0.480s
sys	0m0.182s
&lt;/pre&gt;&lt;h1&gt; Conclusion&lt;/h1&gt;Erlang's &lt;code&gt;file:read_line/1&lt;/code&gt; is painfully slow on both Linux and Mac OS X, as of the latest version R14. It's more than one order of magnitude slower than plain Perl 5. Enabling native code generation can make the Erlang version a little faster.&lt;br&gt;&lt;br&gt;Update: Excluding the time involved in beam startup and quit only makes the result &amp;lt;100ms faster according to my tests on the Linux box.&lt;br&gt;</description>
<link>http://agentzh.org/#ErlangFileReadLineBenchmark</link>
<pubDate>Tue, 28 Jun 2011 09:28:00 GMT</pubDate>

</item>
<item>
<title>AboutThisSite</title>
<description>This is site is powered by the excellent &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.tiddlywiki.com/&quot; href=&quot;http://www.tiddlywiki.com/&quot; class=&quot;externalLink&quot;&gt;TiddlyWiki&lt;/a&gt;.&lt;br&gt;&lt;br&gt;The site's source is hosted on GitHub: &lt;a target=&quot;_blank&quot; title=&quot;External link to https://github.com/agentzh/agentzh.org&quot; href=&quot;https://github.com/agentzh/agentzh.org&quot; class=&quot;externalLink&quot;&gt;https://github.com/agentzh/agentzh.org&lt;/a&gt;&lt;br&gt;</description>
<link>http://agentzh.org/#AboutThisSite</link>
<pubDate>Fri, 24 Jun 2011 03:01:00 GMT</pubDate>

</item>
<item>
<title>MainMenu</title>
<description>&lt;a tiddlylink=&quot;AboutMe&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#AboutMe&quot; href=&quot;http://agentzh.org/#AboutMe&quot; class=&quot;externalLink null&quot;&gt;About me&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;Blogs&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#Blogs&quot; href=&quot;http://agentzh.org/#Blogs&quot; class=&quot;externalLink null&quot;&gt;Blogs&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;FollowMe&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#FollowMe&quot; href=&quot;http://agentzh.org/#FollowMe&quot; class=&quot;externalLink null&quot;&gt;Follow me&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;Presentations&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#Presentations&quot; href=&quot;http://agentzh.org/#Presentations&quot; class=&quot;externalLink null&quot;&gt;Presentations&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;Projects&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#Projects&quot; href=&quot;http://agentzh.org/#Projects&quot; class=&quot;externalLink null&quot;&gt;Projects&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;ContactMe&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#ContactMe&quot; href=&quot;http://agentzh.org/#ContactMe&quot; class=&quot;externalLink null&quot;&gt;Contact me&lt;/a&gt;&lt;br&gt;&lt;a tiddlylink=&quot;AboutThisSite&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#AboutThisSite&quot; href=&quot;http://agentzh.org/#AboutThisSite&quot; class=&quot;externalLink null&quot;&gt;About this site&lt;/a&gt;&lt;br&gt;&lt;img src=&quot;feed-icon-14x14.png&quot;&gt; &lt;a tiddlylink=&quot;RSSFeed&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#RSSFeed&quot; href=&quot;http://agentzh.org/#RSSFeed&quot; class=&quot;externalLink null&quot;&gt;RSS feed&lt;/a&gt;</description>
<category>admin</category>
<link>http://agentzh.org/#MainMenu</link>
<pubDate>Fri, 24 Jun 2011 02:59:00 GMT</pubDate>

</item>
<item>
<title>Projects</title>
<description>&lt;a tiddler=&quot;Projects&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;The most important opensource project that I've been working on for years is &lt;a target=&quot;_blank&quot; title=&quot;External link to http://openresty.org&quot; href=&quot;http://openresty.org&quot; class=&quot;externalLink&quot;&gt;OpenResty&lt;/a&gt;.&lt;br&gt;&lt;br&gt;You can find most of my opensource projects on my GitHub homepage:&lt;br&gt;&lt;br&gt;    &lt;a target=&quot;_blank&quot; title=&quot;External link to https://github.com/agentzh&quot; href=&quot;https://github.com/agentzh&quot; class=&quot;externalLink&quot;&gt;https://github.com/agentzh&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Nginx&lt;/h1&gt;&lt;br&gt;I've started or participated in the development of a bunch of nginx modules:&lt;br&gt;&lt;br&gt;    &lt;a target=&quot;_blank&quot; title=&quot;External link to http://wiki.nginx.org/3rdPartyModules&quot; href=&quot;http://wiki.nginx.org/3rdPartyModules&quot; class=&quot;externalLink&quot;&gt;http://wiki.nginx.org/3rdPartyModules&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Perl&lt;/h1&gt;&lt;br&gt;I'm a Perl programmer that writes dozens of &lt;a target=&quot;_blank&quot; title=&quot;External link to http://search.cpan.org/~agent/&quot; href=&quot;http://search.cpan.org/%7Eagent/&quot; class=&quot;externalLink&quot;&gt;CPAN modules&lt;/a&gt;.</description>
<link>http://agentzh.org/#Projects</link>
<pubDate>Tue, 21 Jun 2011 08:04:00 GMT</pubDate>

</item>
<item>
<title>AboutMe</title>
<description>&lt;a tiddler=&quot;AboutMe&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;img src=&quot;agentzh.jpg&quot; align=&quot;right&quot;&gt; I'm a happy programmer living in Beijing, China. My real name is Zhang Yichun, or 章亦春 in Chinese.&lt;br&gt;&lt;br&gt;I'm currently working as a Technical Expert for the Quantum Team in &lt;a target=&quot;_blank&quot; title=&quot;External link to http://www.taobao.com&quot; href=&quot;http://www.taobao.com&quot; class=&quot;externalLink&quot;&gt;Taobao.com&lt;/a&gt;'s Data Product &amp;amp; Platform department. I designed and implemented the underlying architecture of the front-end and middle-layer of the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://lz.taobao.com&quot; href=&quot;http://lz.taobao.com&quot; class=&quot;externalLink&quot;&gt;LineZing&lt;/a&gt; analytic application for Taobao.com's sellers.&lt;br&gt;&lt;br&gt;The front-end application of &lt;a target=&quot;_blank&quot; title=&quot;External link to http://lz.taobao.com&quot; href=&quot;http://lz.taobao.com&quot; class=&quot;externalLink&quot;&gt;LineZing&lt;/a&gt; is written completely in JavaScript and running in end user's web browser just like Gmail. The middle-layer is powered by &lt;a target=&quot;_blank&quot; title=&quot;External link to http://openresty.org/&quot; href=&quot;http://openresty.org/&quot; class=&quot;externalLink&quot;&gt;ngx_openresty&lt;/a&gt; developed by ourselves, a massively enhanced version of nginx that serves as a full-fledged web app stack.&lt;br&gt;&lt;br&gt;We've developed dozens of nginx C modules including &lt;a target=&quot;_blank&quot; title=&quot;External link to http://wiki.nginx.org/NginxHttpEchoModule&quot; href=&quot;http://wiki.nginx.org/NginxHttpEchoModule&quot; class=&quot;externalLink&quot;&gt;ngx_echo&lt;/a&gt;, &lt;a target=&quot;_blank&quot; title=&quot;External link to http://wiki.nginx.org/NginxHttpHeadersMoreModule&quot; href=&quot;http://wiki.nginx.org/NginxHttpHeadersMoreModule&quot; class=&quot;externalLink&quot;&gt;ngx_headers_more&lt;/a&gt;, &lt;a target=&quot;_blank&quot; title=&quot;External link to http://github.com/chaoslawful/lua-nginx-module&quot; href=&quot;http://github.com/chaoslawful/lua-nginx-module&quot; class=&quot;externalLink&quot;&gt;ngx_lua&lt;/a&gt;, &lt;a target=&quot;_blank&quot; title=&quot;External link to http://github.com/chaoslawful/drizzle-nginx-module&quot; href=&quot;http://github.com/chaoslawful/drizzle-nginx-module&quot; class=&quot;externalLink&quot;&gt;ngx_drizzle&lt;/a&gt;, and &lt;a target=&quot;_blank&quot; title=&quot;External link to https://github.com/agentzh/redis2-nginx-module&quot; href=&quot;https://github.com/agentzh/redis2-nginx-module&quot; class=&quot;externalLink&quot;&gt;ngx_redis2&lt;/a&gt;, and opensourced them with the permission from the company. We do have users worldwide, including Taobao, Facebook, and Qunar.com.&lt;br&gt;&lt;br&gt;I'm also leading the automated testing practices within the team, mainly with Perl 5.&lt;br&gt;&lt;br&gt;In Taobao, I've created the (proprietary) &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/nginx/lzsql-manual.html&quot; href=&quot;http://agentzh.org/misc/nginx/lzsql-manual.html&quot; class=&quot;externalLink&quot;&gt;LZSQL&lt;/a&gt; domain-spefic language to simplify the business logic coding involved in developing web services for data products. The LZSQL compiler is written in Perl 5 and emits compact Lua code. It has built-in capabilities to abstract distributed mysql cluster details and to perform complex SQL query optimizations that cannot be done by MySQL.&lt;br&gt;&lt;br&gt;Prior to joining Taobao.com, I was working as a Senior Software Developer in &lt;a target=&quot;_blank&quot; title=&quot;External link to http://cn.yahoo.com&quot; href=&quot;http://cn.yahoo.com&quot; class=&quot;externalLink&quot;&gt;Yahoo! China&lt;/a&gt;'s Search Tech. Department.&lt;br&gt;&lt;br&gt;While in Yahoo! China, I created &lt;a target=&quot;_blank&quot; title=&quot;External link to http://search.cpan.org/perldoc?OpenResty&quot; href=&quot;http://search.cpan.org/perldoc?OpenResty&quot; class=&quot;externalLink&quot;&gt;OpenResty.pm&lt;/a&gt; to provide a generic service-oriented platform for the relavance search business, mainly written in Perl 5 &amp;amp; Haskell.&lt;br&gt;&lt;br&gt;I designed and implemented Gecko/WebKit-powered intelligent webpage crawlers and extractors based on our own vision analysis and expert systems, main written in Perl 5 &amp;amp; C++. See &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/misc/slides/taobao-fe/vdomwebkit.html&quot; href=&quot;http://agentzh.org/misc/slides/taobao-fe/vdomwebkit.html&quot; class=&quot;externalLink&quot;&gt;my slides&lt;/a&gt; for details (use the arrow keys on your keyboard to switch pages).&lt;br&gt;&lt;br&gt;As my first $work project, I created the &lt;a target=&quot;_blank&quot; title=&quot;External link to https://addons.mozilla.org/en-us/firefox/addon/searchall/&quot; href=&quot;https://addons.mozilla.org/en-us/firefox/addon/searchall/&quot; class=&quot;externalLink&quot;&gt;SearchAll&lt;/a&gt; Firefox extension that does side-by-side search engine comparison, mainly written in JavaScript, which is also approved by Mozilla.&lt;br&gt;</description>
<link>http://agentzh.org/#AboutMe</link>
<pubDate>Tue, 21 Jun 2011 08:03:00 GMT</pubDate>

</item>
<item>
<title>RSSFeed</title>
<description>&lt;a tiddler=&quot;RSSFeed&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;This site's RSS  feed is available at &lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/index.xml&quot; href=&quot;http://agentzh.org/index.xml&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/index.xml&lt;/a&gt; &lt;img src=&quot;feed-icon-28x28.png&quot;&gt;.</description>
<link>http://agentzh.org/#RSSFeed</link>
<pubDate>Tue, 21 Jun 2011 07:42:00 GMT</pubDate>

</item>
<item>
<title>DefaultTiddlers</title>
<description>&lt;a tiddlylink=&quot;AboutMe&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#AboutMe&quot; href=&quot;http://agentzh.org/#AboutMe&quot; class=&quot;externalLink null&quot;&gt;AboutMe&lt;/a&gt; &lt;a tiddlylink=&quot;ContactMe&quot; refresh=&quot;link&quot; target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/#ContactMe&quot; href=&quot;http://agentzh.org/#ContactMe&quot; class=&quot;externalLink null&quot;&gt;ContactMe&lt;/a&gt;</description>
<link>http://agentzh.org/#DefaultTiddlers</link>
<pubDate>Mon, 20 Jun 2011 09:29:00 GMT</pubDate>

</item>
<item>
<title>ContactMe</title>
<description>&lt;a tiddler=&quot;ContactMe&quot; commandname=&quot;permalink&quot; class=&quot;button command_permalink&quot; title=&quot;Permalink for this tiddler&quot; href=&quot;javascript:;&quot;&gt;permalink&lt;/a&gt;&lt;br&gt;&lt;br&gt;You're welcome to mail me via agentzh at gmail dot com. This mail address is also my MSN account.&lt;br&gt;&lt;br&gt;You can usually find me via IRC on #nginx, #redis, #perl6, or #openresty at irc.freenode.net.&lt;br&gt;&lt;br&gt;I'm quite active in the &lt;a target=&quot;_blank&quot; title=&quot;External link to http://nginx.org/mailman/listinfo/nginx&quot; href=&quot;http://nginx.org/mailman/listinfo/nginx&quot; class=&quot;externalLink&quot;&gt;nginx&lt;/a&gt; and &lt;a target=&quot;_blank&quot; title=&quot;External link to http://nginx.org/mailman/listinfo/nginx-devel&quot; href=&quot;http://nginx.org/mailman/listinfo/nginx-devel&quot; class=&quot;externalLink&quot;&gt;nginx-devel&lt;/a&gt; mailing lists. I'm also keeping an eye on the PerlChina, lua-l and erlang-questions mailing lists as well ;)&lt;br&gt;</description>
<link>http://agentzh.org/#ContactMe</link>
<pubDate>Mon, 20 Jun 2011 09:22:00 GMT</pubDate>

</item>
<item>
<title>SiteUrl</title>
<description>&lt;a target=&quot;_blank&quot; title=&quot;External link to http://agentzh.org/&quot; href=&quot;http://agentzh.org/&quot; class=&quot;externalLink&quot;&gt;http://agentzh.org/&lt;/a&gt;</description>
<category>admin</category>
<link>http://agentzh.org/#SiteUrl</link>
<pubDate>Mon, 20 Jun 2011 09:19:00 GMT</pubDate>

</item>
<item>
<title>SiteTitle</title>
<description>agentzh's home</description>
<category>admin</category>
<link>http://agentzh.org/#SiteTitle</link>
<pubDate>Fri, 17 Jun 2011 08:12:00 GMT</pubDate>

</item>
<item>
<title>SiteSubtitle</title>
<description>yet another idiot who loves programming</description>
<category>admin</category>
<link>http://agentzh.org/#SiteSubtitle</link>
<pubDate>Fri, 17 Jun 2011 03:33:00 GMT</pubDate>

</item>
<item>
<title>ZhangYichun</title>
<description>The owner of this site. He loves the nick agentzh though. But please do &lt;em&gt;not&lt;/em&gt; capitalize the nick!</description>
<link>http://agentzh.org/#ZhangYichun</link>
<pubDate>Tue, 14 Jun 2011 04:39:00 GMT</pubDate>

</item>
</channel>
</rss>
