<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>纯爷们的小生活</title>
	<atom:link href="http://chunyemen.org/feed" rel="self" type="application/rss+xml" />
	<link>http://chunyemen.org</link>
	<description>下一个奇迹</description>
	<lastBuildDate>Sun, 06 May 2012 07:17:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>clojure学习——常用函数对比</title>
		<link>http://chunyemen.org/archives/647</link>
		<comments>http://chunyemen.org/archives/647#comments</comments>
		<pubDate>Sun, 06 May 2012 07:15:27 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=647</guid>
		<description><![CDATA[如果说函数是clojure世界的一等公民，那么在剩下的二等公民中，list就是出类拔萃的了。在作为lisp方言的clojure，list不仅仅是一种数据结构，某种程度上，更是语言本身。clojure.core中提供的的函数绝大部分都是在操作list，操作其他数据结构的函数很少，甚至于被封装到了别的namespace中，比如clojure.set里。 这里对比一下常用的几个操作list的函数，解除一些困惑和不清楚的地方。 map v.s. mapcat 1 2 &#40;map f c1 c2 c3 &#38; colls&#41; &#40;mapcat f &#38; colls&#41; 如果需要从一个或多个sequence产生新的list，就使用map，这也是map最常见的使用方式。如果你的sequence的元素包含list或者vector，你可能需要把他们展平，这个时候可以使用mapcat。mapcat相当于(apply concat (map f coll)) reduce v.s. apply v.s. iterate 1 2 3 &#40;apply f args* argseq&#41; &#40;reduce f coll&#41; &#40;iterate f x&#41; reduce和apply貌似都是输入一个sequence，输出一个结果，看起来挺相似。 其实，apply的作用基本上可以理解为把argseq这个sequence拆解掉，作为f的参数，至于f返回的是sequence还是别的，就是另外一回事儿。这既是apply的作用。 reduce才是实质上的“规约”：从coll去除头两个元素，比如a1和a2，然后把(f a1 a2)放回coll的头部，如此往复。 iterate跟reduce就是相反的了，它用一个函数和一个初始值生成一个lazy的sequence：(x, (f x), (f (f x))&#8230;) conj v.s. concat [...]]]></description>
			<content:encoded><![CDATA[<p>如果说函数是clojure世界的一等公民，那么在剩下的二等公民中，list就是出类拔萃的了。在作为lisp方言的clojure，list不仅仅是一种数据结构，某种程度上，更是语言本身。clojure.core中提供的的函数绝大部分都是在操作list，操作其他数据结构的函数很少，甚至于被封装到了别的namespace中，比如clojure.set里。</p>
<p>这里对比一下常用的几个操作list的函数，解除一些困惑和不清楚的地方。</p>
<h4>map v.s. mapcat</h4>

<div class="wp_codebox"><table><tr id="p6477"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p647code7"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>map f c1 c2 c3 <span style="color: #66cc66;">&amp;</span> colls<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>mapcat f <span style="color: #66cc66;">&amp;</span> colls<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>如果需要从一个或多个sequence产生新的list，就使用map，这也是map最常见的使用方式。如果你的sequence的元素包含list或者vector，你可能需要把他们展平，这个时候可以使用mapcat。mapcat相当于(apply concat (map f coll))</p>
<h4>reduce v.s. apply v.s. iterate</h4>

<div class="wp_codebox"><table><tr id="p6478"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p647code8"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">apply</span> f args* argseq<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>reduce f coll<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>iterate f x<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>reduce和apply貌似都是输入一个sequence，输出一个结果，看起来挺相似。<br />
其实，<strong>apply的作用基本上可以理解为把argseq这个sequence拆解掉，作为f的参数</strong>，至于f返回的是sequence还是别的，就是另外一回事儿。这既是apply的作用。<br />
reduce才是实质上的<strong>“规约”</strong>：从coll去除头两个元素，比如a1和a2，然后把(f a1 a2)放回coll的头部，如此往复。<br />
iterate跟reduce就是相反的了，它用一个函数和一个初始值生成一个lazy的sequence：(x, (f x), (f (f x))&#8230;)</p>
<h4>conj v.s. concat</h4>

<div class="wp_codebox"><table><tr id="p6479"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p647code9"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>conj coll x <span style="color: #66cc66;">&amp;</span>amp<span style="color: #808080; font-style: italic;">; xs)</span>
<span style="color: #66cc66;">&#40;</span>concat x y <span style="color: #66cc66;">&amp;</span>amp<span style="color: #808080; font-style: italic;">; zs)</span></pre></td></tr></table></div>

<p>表面上看，conj和concat都是把几个sequence或者元素聚合成新的sequence，但两者的语义明显不同。<br />
conj是conjoin的缩写，执行的是<strong>“添加”</strong>的语义，conj的第一个参数是原始的sequence，其他参数都是一个个要添加元素，如果元素是sequence，那么整个sequence作为一个元素添加到原来的sequence中。(准确的说是产生新的sequence，因为一切皆是immutable)比如，</p>

<div class="wp_codebox"><table><tr id="p64710"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p647code10"><pre class="lisp" style="font-family:monospace;">user<span style="color: #66cc66;">=&gt;</span> <span style="color: #66cc66;">&#40;</span>conj <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span></pre></td></tr></table></div>

<p>需要注意的是，如果原始sequence是vector，则是在尾部增加；如果是list，则是在头部增加，这是效率上的考虑。如果是map，每个参数必须是长度为2的vector。<br />
concat是<strong>“连接”</strong>的意思(C里头的strcat还记得吧)。它很简单，就是把参数连起来，组成新的sequence。参数可以是vector。</p>
<h4>vec v.s. vector</h4>

<div class="wp_codebox"><table><tr id="p64711"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p647code11"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>vec coll<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>vector a b c d <span style="color: #66cc66;">&amp;</span> args<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>两者都是创建新的vector，唯一的区别在于：vec接受一个sequence，vector接受一个个元素产生新的vector。</p>
<h4>partition v.s. partition-all v.s. partition-by</h4>

<div class="wp_codebox"><table><tr id="p64712"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p647code12"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>partition n coll<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>partition-all n coll<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>partition-by f coll<span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>这一组函数都用于把sequence切分。前两个按切成每份n个，如果最后一份不足n个，partition会将其丢弃，partition-all会保留。<br />
partition-by使用函数f作为切分方法，每当相邻两个元素在f的作用下返回不同值的时候，就切分。</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/647/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>clojure学习资源</title>
		<link>http://chunyemen.org/archives/642</link>
		<comments>http://chunyemen.org/archives/642#comments</comments>
		<pubDate>Sun, 15 Apr 2012 15:46:52 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[资源]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=642</guid>
		<description><![CDATA[昨晚在闲逛的时候，看到一位牛讲他的clojure学习历程，看了之后已经同意的不能再同意了，也写写我正在进行的学习历程： 入门 clojure(或者list)的入门应该是蛮简单，只要熟悉了基本的规则，就能walk around了。但也正是入门简单，跨入门槛后初学者看到一大堆库函数不知道如何开始。所以，我强烈推荐Blackstag的教程，我正是从这个教程开始的！这篇教程从如何搭建学习环境开始，一步步由浅入深，基本涉及到了语言的各个方面。用户只要一边阅读教程，一边在REPL中试试里头的sample即可。 然后是，Clojure &#8211; Functional Programming for the JVM，这算是Clojure in a Single Page，属于提纲挈领的类型。 提升 学习编程语言最重要的是练习，一定要上手写程序，做项目。上一篇文章已经推荐了4clojure，不再多言。再推荐一下Clojure Koans，也是解题类型的，不过是本地的~ 另外，需要了解一下Leiningen的基本用法哦。 学语言总得有两本书看看的。Clojure的书挺多，最近刚读完Programming Clojure 1st Edition，算是一本不错的入门书，最开始提到的牛的博客也推荐了这本书。虽然是英文的，但语言还算简单，例子也很多。貌似最近2nd Edition也出了，看目录是加入了一些工程相关的。另外，1st Edition是09年出版的，3年中语言的进化也不少，应该是值得期待的一本书，呵呵$22一本。此外，还有Clojure Programming, Practical Clojure, Clojure in Practice, The Joy of Clojure等。 当然，不能少了文档，虽然你可以用doc命令查阅文档，但那个毕竟弱爆了。推荐ClojureDocs——社区维护的clojure文档，文档很全面，包括core和contrib都有，而且有大量的例子。额，还有一个GUI版本的文档：clj-ns-browser。 即使有文档，cheat sheet还是很必须的，有一个官方的cheat sheet，还有一个apple提供的。 clojure邮件组也很活跃，在google groups中，墙内用户可以email到clojure+subscribe@googlegroups.com即可参与讨论。 &#160; 我也还在学习中，多多交流~~]]></description>
			<content:encoded><![CDATA[<p>昨晚在闲逛的时候，看到<a href="http://www.elangocheran.com/blog/2012/03/the-newbies-guide-learning-clojure/">一位牛讲他的clojure学习历程</a>，看了之后已经同意的不能再同意了，也写写我正在进行的学习历程：</p>
<h2>入门</h2>
<p>clojure(或者list)的入门应该是蛮简单，只要熟悉了基本的规则，就能walk around了。但也正是入门简单，跨入门槛后初学者看到一大堆库函数不知道如何开始。所以，我强烈推荐<a href="http://blackstag.com/blog.posting?id=5">Blackstag的教程</a>，我正是从这个教程开始的！这篇教程从如何搭建学习环境开始，一步步由浅入深，基本涉及到了语言的各个方面。用户只要一边阅读教程，一边在REPL中试试里头的sample即可。</p>
<p>然后是，<a href="http://java.ociweb.com/mark/clojure/article.html">Clojure &#8211; Functional Programming for the JVM</a>，这算是Clojure in a Single Page，属于提纲挈领的类型。</p>
<h2>提升</h2>
<p>学习编程语言最重要的是练习，一定要上手写程序，做项目。<a href="http://chunyemen.org/archives/637">上一篇文章</a>已经推荐了<a href="http://4clojure.com">4clojure</a>，不再多言。再推荐一下<a href="https://github.com/functional-koans/clojure-koans">Clojure Koans</a>，也是解题类型的，不过是本地的~ 另外，需要了解一下Leiningen的基本用法哦。</p>
<p>学语言总得有两本书看看的。Clojure的书挺多，最近刚读完Programming Clojure 1st Edition，算是一本不错的入门书，最开始提到的牛的博客也推荐了这本书。虽然是英文的，但语言还算简单，例子也很多。貌似最近2nd Edition也出了，看目录是加入了一些工程相关的。另外，1st Edition是09年出版的，3年中语言的进化也不少，应该是值得期待的一本书，呵呵$22一本。此外，还有Clojure Programming, Practical Clojure, Clojure in Practice, The Joy of Clojure等。</p>
<p>当然，不能少了文档，虽然你可以用doc命令查阅文档，但那个毕竟弱爆了。推荐<a href="http://clojuredocs.org/">ClojureDocs</a>——社区维护的clojure文档，文档很全面，包括core和contrib都有，而且有大量的例子。额，还有一个GUI版本的文档：<a href="https://github.com/franks42/clj-ns-browser">clj-ns-browser</a>。</p>
<p>即使有文档，cheat sheet还是很必须的，有一个<a href="http://www.clojure.org/cheatsheet">官方的cheat sheet</a>，还有一个<a href="http://homepage.mac.com/jafingerhut/files/cheatsheet-clj-1.3.0-v1.4-tooltips/cheatsheet-full.html">apple提供的</a>。</p>
<p>clojure邮件组也很活跃，在google groups中，墙内用户可以email到clojure+subscribe@googlegroups.com即可参与讨论。</p>
<p>&nbsp;</p>
<p>我也还在学习中，多多交流~~</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/642/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的4clojure答案</title>
		<link>http://chunyemen.org/archives/637</link>
		<comments>http://chunyemen.org/archives/637#comments</comments>
		<pubDate>Sat, 07 Apr 2012 13:23:43 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[4clojure]]></category>
		<category><![CDATA[answer]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[pythonchallenge]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=637</guid>
		<description><![CDATA[最近在看clojure这门神奇的语言。中间发现一个很有意思的网站：http://4clojure.com 。 这个网站上有一百多道clojure题目，做完这些题目，你对clojure的了解也会慢慢深入。我把我的答案放到了github上：https://github.com/qiuxiafei/4clojure，希望跟大家多多交流！之后也会写一些零零散散的心得发出来。 为啥我特别喜欢这个网站呢，因为这跟acm太相似了，好久没有这种读题-coding-提交的感觉了。 关于解题： 说到解题，还有一个叫http://www.pythonchallenge.com/的网站。你需要用python来一步步破解题目，并且找到下一题的入口。可惜智商不够，当年做了没几个题就不行了。 虽然都是做题，这个网站跟4clojure的区别其实挺大。python challenge侧重于在网页中寻找蛛丝马迹，然后用python这一强大的工具解决问题。而4clojure则侧重于加强你对语言本身的理解。这也是两种语言的定位决定的。毕竟lisp的思维方式对很多人来时太过于陌生。 关于神奇的语言： 之前觉得perl够神奇了，各种让人眼花缭乱的符号，寥寥几行，便搞定一个任务。但有一次还是一不小心写出了一个几百行的perl，深感思维方式不变，代码还是精简不了。那什么是思维方式呢？说面向过程也好，说面向对象也好，总之，最值得学习的语言是那些能够改变你思维方式的语言。这些天看clojure深受震撼啊！ 还有些学clojure的有用的资料，随后整理释出~ &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>最近在看clojure这门<strong>神奇</strong>的语言。中间发现一个很有意思的网站：<a href="http://4clojure.com">http://4clojure.com</a> 。</p>
<p>这个网站上有一百多道clojure题目，做完这些题目，你对clojure的了解也会慢慢深入。我把我的答案放到了github上：<a href="https://github.com/qiuxiafei/4clojure">https://github.com/qiuxiafei/4clojure</a>，希望跟大家多多交流！之后也会写一些零零散散的心得发出来。</p>
<p>为啥我特别喜欢这个网站呢，因为这跟acm太相似了，好久没有这种读题-coding-提交的感觉了。</p>
<h3>关于解题：</h3>
<p>说到解题，还有一个叫<a href="http://www.pythonchallenge.com/">http://www.pythonchallenge.com/</a>的网站。你需要用python来一步步破解题目，并且找到下一题的入口。可惜智商不够，当年做了没几个题就不行了。</p>
<p>虽然都是做题，这个网站跟4clojure的区别其实挺大。python challenge侧重于在网页中寻找蛛丝马迹，然后用python这一强大的工具解决问题。而4clojure则侧重于加强你对语言本身的理解。这也是两种语言的定位决定的。毕竟lisp的思维方式对很多人来时太过于陌生。</p>
<h3>关于神奇的语言：</h3>
<p>之前觉得perl够神奇了，各种让人眼花缭乱的符号，寥寥几行，便搞定一个任务。但有一次还是一不小心写出了一个几百行的perl，深感思维方式不变，代码还是精简不了。那什么是思维方式呢？说面向过程也好，说面向对象也好，总之，最值得学习的语言是那些能够改变你思维方式的语言。这些天看clojure深受震撼啊！</p>
<p>还有些学clojure的有用的资料，随后整理释出~</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/637/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>哎</title>
		<link>http://chunyemen.org/archives/634</link>
		<comments>http://chunyemen.org/archives/634#comments</comments>
		<pubDate>Sat, 10 Mar 2012 15:34:17 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=634</guid>
		<description><![CDATA[其实很想写东西，看着草稿箱里头一篇篇只有题目的文章，真的不知道该说些什么。 今天是很忙的一年，虽然心里有好多东西想做，想学，想体验。 都没时间，没时间。 &#160; 希望这段时间是以后值得骄傲的回忆，希望如此。 2012.3.10 23：23 于阿里巴巴]]></description>
			<content:encoded><![CDATA[<p>其实很想写东西，看着草稿箱里头一篇篇只有题目的文章，真的不知道该说些什么。</p>
<p>今天是很忙的一年，虽然心里有好多东西想做，想学，想体验。</p>
<p>都没时间，没时间。</p>
<p>&nbsp;</p>
<p>希望这段时间是以后值得骄傲的回忆，希望如此。</p>
<p>2012.3.10 23：23</p>
<p>于阿里巴巴</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/634/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2012的愿望</title>
		<link>http://chunyemen.org/archives/627</link>
		<comments>http://chunyemen.org/archives/627#comments</comments>
		<pubDate>Fri, 20 Jan 2012 17:34:17 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[新年计划]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=627</guid>
		<description><![CDATA[不管这是不是世界末日，该咋活就得咋活不是么？ 之前的几年每年都会写一个“拜拜20xx”的博客来给旧的一年划上句号，从今年开始，也在每年年初写下一些愿望，希望写“拜拜2012”的时候，以下都能够地都实现。 家人平安快乐，包括某猪 工作上能够承担更大的事情，把现在的事情做好，做大 努力学习电吉他，要脱离当前弱到爆的水平 回趟天津，而且得是上半年，不然真就见不到人了 最后的，也是最难的，希望年底地时候能够毫不犹豫地说出”what can make me CRAZY?”这个问题的答案 2012，哥来了！ p.s. 原文地址：http://chunyemen.org/archives/627， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>不管这是不是世界末日，该咋活就得咋活不是么？</p>
<p>之前的几年每年都会写一个“拜拜20xx”的博客来给旧的一年划上句号，从今年开始，也在每年年初写下一些愿望，希望写“拜拜2012”的时候，以下都能够地都实现。</p>
<blockquote>
<ol>
<li>家人平安快乐，包括某猪</li>
<li>工作上能够承担更大的事情，把现在的事情做好，做大</li>
<li>努力学习电吉他，要脱离当前弱到爆的水平</li>
<li>回趟天津，而且得是上半年，不然真就见不到人了</li>
<li>最后的，也是最难的，希望年底地时候能够毫不犹豫地说出”what can make me CRAZY?”这个问题的答案</li>
</ol>
</blockquote>
<p>2012，哥来了！</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/627">http://chunyemen.org/archives/627</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/627/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>拜拜2011</title>
		<link>http://chunyemen.org/archives/619</link>
		<comments>http://chunyemen.org/archives/619#comments</comments>
		<pubDate>Sun, 01 Jan 2012 17:24:15 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=619</guid>
		<description><![CDATA[每年都有这么一篇，逃不掉的&#8230; 1月 那时还住在长江西苑，元旦三天啥也没干，就把《三体3》看完了。按照一位同学的建议，听梁静茹的《情歌》把宇宙二维化的那段重新看了一遍，不得不哭啊！ 在维护那坨java的web代码，感觉java太痛苦了，很想回终端下写c++。 杭州继续大雪，觉得走路上班都烦 过年回家，边看春晚边在校内上吐槽 2月 过年，各种吃喝玩乐，有遗憾就是没跟老盆友们多聚聚 去老婆家，老婆家人到我家&#8230;功德圆满了&#8230; 回杭州上班，奶奶的，走的时候下雪，回来了还在下 元宵节，果然没有买到元宵，三个男人吃水饺 拿到了M9，算是第一份自己赚钱买来的东西吧，奖励一下自己 某些国家闹革命闹的很厉害，直接导致公司上不了国外网站了，技术男们不干了，特别临时网络通道开通了，情况得到缓解 3月 日本核泄漏了，天朝抢盐了，小区门口的超市里都没有盐&#8230;.把老妹给骗了，还真买盐去了，soooooooory&#8230;. 自行车丢掉，房间灯坏了，电脑蓝屏，各种点儿背，各种倒霉 firefox 4正式发布，谁知到这货成了2011的版本帝，到现在已经正式版出到9了&#8230; 4月 顿时觉得生活好无趣，于是就整了个猥琐大叔版本的《小手拉大手》 杭州的天气真bt，才4月就大太阳暴晒，外加狂风暴雨 5月 五一某兜兜来杭州了，四处转了转&#8230;转哪儿忘了，倒是吃了不少垃圾食品&#8230; 老婆来杭州面试，月底拿到实习offer。从此，每天走路上班，走路下班，每天下雨，雨伞，拖鞋 6月 运气不错，不过都花在“再来一瓶”上了，连中了好几个 淘宝账户被盗，索性没啥损失，于是各种改密码，绑手机 老婆回学校考试，搬家这种体力活还是由我来干吧 看完了《灌篮高手》，迷上了里头的音乐，哎，逝去的童年！ 7月 老婆从学校回来，老妹也一起过来，到处赚，拍照片 outing去张家界，风景很赞，张家界的猴子和妹子也很赞，你们懂的 入职一年了，感觉到了强烈的瓶颈感，想找突破口，弄得心情有些郁闷 8月 杭州步入每天都下暴雨的季节，某天在街上转，走着走着一转身，已经瓢泼大雨了 去上海，到各种传说中的地方路过 卸载ubuntu，切回windows，我只想专心工作，不去折腾那些乱七八糟的玩意儿 新项目的预言开始，各种看论文，写ppt，这期间收获不少，真的！ 9月 买了把yy很久的电吉他，作为自己半年的奖励，不过发现这玩意儿一个人玩真没劲 新项目的语言继续进行，了解各种其他系统，真是大开眼界 晚上下班回来，听见楼下琴行在排练《直到世界的尽头》，一连好几天这样，每次都忍不住驻足聆听 慢慢的开始喜欢周末跟老婆在家做饭吃，比厨艺。做自己吃的东西真的是一种莫大的享受 10月 国庆没怎么出去玩，貌似还跟老婆吵架了，对不起啦亲。 开始看各种烧脑子的电影《穆赫兰道》《记忆碎片》之类的 好吧，新项目的预言一直在进行，现在看来战线真是够长。不过最后一个星期完成编码也算是厚积薄发了 11月 冰冰来杭州，历尽各种纠结总算见了一面，聊了一晚，丫风骚依旧，挺好！ 老婆23岁生日，感谢你陪我这些年！ 需要运动啊，老婆买了块羽毛球拍，偶尔在公司打打羽毛球 挺忙的，不想讨论工作和生活的关系，现在忙些好，值得的。忙的时候容易迷失，于是就利用下班坐班车的时间写了好多思考，这样就能找到方向了。 12月 尝试了好多新菜，做出了自己最满意的水煮牛肉和鲫鱼豆腐汤 感冒一次、坏肚子若干次&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>每年都有这么一篇，逃不掉的&#8230;<br />
1月</p>
<ul>
<li>那时还住在长江西苑，元旦三天啥也没干，就把《三体3》看完了。按照一位同学的建议，听梁静茹的《情歌》把宇宙二维化的那段重新看了一遍，不得不哭啊！</li>
<li>在维护那坨java的web代码，感觉java太痛苦了，很想回终端下写c++。</li>
<li>杭州继续大雪，觉得走路上班都烦</li>
<li>过年回家，边看春晚边在校内上吐槽</li>
</ul>
<p>2月</p>
<ul>
<li>过年，各种吃喝玩乐，有遗憾就是没跟老盆友们多聚聚</li>
<li>去老婆家，老婆家人到我家&#8230;功德圆满了&#8230;</li>
<li>回杭州上班，奶奶的，走的时候下雪，回来了还在下</li>
<li>元宵节，果然没有买到元宵，三个男人吃水饺</li>
<li>拿到了M9，算是第一份自己赚钱买来的东西吧，奖励一下自己</li>
<li>某些国家闹革命闹的很厉害，直接导致公司上不了国外网站了，技术男们不干了，特别临时网络通道开通了，情况得到缓解</li>
</ul>
<p>3月</p>
<ul>
<li>日本核泄漏了，天朝抢盐了，小区门口的超市里都没有盐&#8230;.把老妹给骗了，还真买盐去了，soooooooory&#8230;.</li>
<li>自行车丢掉，房间灯坏了，电脑蓝屏，各种点儿背，各种倒霉</li>
<li>firefox 4正式发布，谁知到这货成了2011的版本帝，到现在已经正式版出到9了&#8230;</li>
</ul>
<p>4月</p>
<ul>
<li>顿时觉得生活好无趣，于是就整了个<a href="http://chunyemen.org/archives/547" target="_blank">猥琐大叔版本的《小手拉大手》</a></li>
<li>杭州的天气真bt，才4月就大太阳暴晒，外加狂风暴雨</li>
</ul>
<p>5月</p>
<ul>
<li>五一某兜兜来杭州了，四处转了转&#8230;转哪儿忘了，倒是吃了不少垃圾食品&#8230;</li>
<li>老婆来杭州面试，月底拿到实习offer。从此，每天走路上班，走路下班，每天下雨，雨伞，拖鞋</li>
</ul>
<p>6月</p>
<ul>
<li>运气不错，不过都花在“再来一瓶”上了，连中了好几个</li>
<li>淘宝账户被盗，索性没啥损失，于是各种改密码，绑手机</li>
<li>老婆回学校考试，搬家这种体力活还是由我来干吧</li>
<li>看完了《灌篮高手》，迷上了里头的音乐，哎，逝去的童年！</li>
</ul>
<p>7月</p>
<ul>
<li>老婆从学校回来，老妹也一起过来，到处赚，拍照片</li>
<li>outing去张家界，风景很赞，张家界的猴子和妹子也很赞，你们懂的</li>
<li>入职一年了，感觉到了强烈的瓶颈感，想找突破口，弄得心情有些郁闷</li>
</ul>
<p>8月</p>
<ul>
<li>杭州步入每天都下暴雨的季节，某天在街上转，走着走着一转身，已经瓢泼大雨了</li>
<li>去上海，到各种传说中的地方路过</li>
<li>卸载ubuntu，切回windows，我只想专心工作，不去折腾那些乱七八糟的玩意儿</li>
<li>新项目的预言开始，各种看论文，写ppt，这期间收获不少，真的！</li>
</ul>
<p>9月</p>
<ul>
<li>买了把yy很久的电吉他，作为自己半年的奖励，不过发现这玩意儿一个人玩真没劲</li>
<li>新项目的语言继续进行，了解各种其他系统，真是大开眼界</li>
<li>晚上下班回来，听见楼下琴行在排练《直到世界的尽头》，一连好几天这样，每次都忍不住驻足聆听</li>
<li>慢慢的开始喜欢周末跟老婆在家做饭吃，比厨艺。做自己吃的东西真的是一种莫大的享受</li>
</ul>
<p>10月</p>
<ul>
<li>国庆没怎么出去玩，貌似还跟老婆吵架了，对不起啦亲。</li>
<li>开始看各种烧脑子的电影《穆赫兰道》《记忆碎片》之类的</li>
<li>好吧，新项目的预言一直在进行，现在看来战线真是够长。不过最后一个星期完成编码也算是厚积薄发了</li>
<li>11月</li>
<li>冰冰来杭州，历尽各种纠结总算见了一面，聊了一晚，丫风骚依旧，挺好！</li>
<li>老婆23岁生日，感谢你陪我这些年！</li>
<li>需要运动啊，老婆买了块羽毛球拍，偶尔在公司打打羽毛球</li>
<li>挺忙的，不想讨论工作和生活的关系，现在忙些好，值得的。忙的时候容易迷失，于是就利用下班坐班车的时间写了好多思考，这样就能找到方向了。</li>
</ul>
<p>12月</p>
<ul>
<li>尝试了好多新菜，做出了自己<a href="http://www.xiachufang.com/dish/21554/" target="_blank">最满意的水煮牛肉</a>和<a href="http://www.xiachufang.com/dish/21255/" target="_blank">鲫鱼豆腐汤</a></li>
<li>感冒一次、坏肚子若干次&#8230;</li>
</ul>
<p>&nbsp;</p>
<p>就这些吧&#8230;总结一下:</p>
<p>工作是工作、生活是生活。工作的时候就要玩命地工作，生活的时候就要尽情地生活。</p>
<p>要成长，就要跳出自己的“舒适圈”。</p>
<p>出了做饭，还有什么会让我感到痴迷？我觉得还需要一种爱好，让自己痴狂才对！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/619/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>我不是文青，我是码农</title>
		<link>http://chunyemen.org/archives/612</link>
		<comments>http://chunyemen.org/archives/612#comments</comments>
		<pubDate>Tue, 11 Oct 2011 15:02:47 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=612</guid>
		<description><![CDATA[我不是文青，我是码农。 我已经写不出什么诗了，我只会敲这#include &#60;iostream&#62;。 我隐约记着被烧焦的孙悟空还攥着紫霞送的纱巾。 不是什么复杂的隐喻，这是这一刻的事实。 &#160; p.s. 原文地址：http://chunyemen.org/archives/612， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>我不是文青，我是码农。</p>
<p>我已经写不出什么诗了，我只会敲这#include &lt;iostream&gt;。</p>
<p>我隐约记着被烧焦的孙悟空还攥着紫霞送的纱巾。</p>
<p>不是什么复杂的隐喻，这是这一刻的事实。</p>
<p>&nbsp;</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/612">http://chunyemen.org/archives/612</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/612/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>apache pig的map reduce执行</title>
		<link>http://chunyemen.org/archives/608</link>
		<comments>http://chunyemen.org/archives/608#comments</comments>
		<pubDate>Mon, 10 Oct 2011 01:34:10 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[pig]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=608</guid>
		<description><![CDATA[Apache Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。 Pig将pig-latin脚本翻译成map-reduce job，交由hadoop执行。最近浏览了一下pig的代码，探究了一下pig将脚本翻译成map-reduce job的过程，以及map和reduce的执行框架，在ppt里进行了相关介绍。 Pig Source Code 思维导图，是阅读代码时候的笔记，有兴趣的同学也可以看看。有空了争取写一个源码解析，因为网上现在关于pig的资料还是太少了！ p.s. 原文地址：http://chunyemen.org/archives/608， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>Apache Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。<br />
Pig将pig-latin脚本翻译成map-reduce job，交由hadoop执行。最近浏览了一下pig的代码，探究了一下pig将脚本翻译成map-reduce job的过程，以及map和reduce的执行框架，在ppt里进行了相关介绍。</p>
<p><a href="http://chunyemen.org/blog/wp-content/uploads/2011/10/Pig-Source-Code.zip">Pig Source Code 思维导图</a>，是阅读代码时候的笔记，有兴趣的同学也可以看看。有空了争取写一个源码解析，因为网上现在关于pig的资料还是太少了！</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/9622827" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/608">http://chunyemen.org/archives/608</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/608/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>真的爱你前奏</title>
		<link>http://chunyemen.org/archives/601</link>
		<comments>http://chunyemen.org/archives/601#comments</comments>
		<pubDate>Tue, 04 Oct 2011 12:38:36 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[beyond]]></category>
		<category><![CDATA[吉他]]></category>
		<category><![CDATA[真的爱你]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=601</guid>
		<description><![CDATA[终于能够不带停的把一段曲子弹完了！！虽然各种跑调各种没节奏各种不出声，但还是连着弹完了！ 不容易啊，泪奔&#8230;. p.s. 原文地址：http://chunyemen.org/archives/601， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>终于能够不带停的把一段曲子弹完了！！虽然各种跑调各种没节奏各种不出声，但还是连着弹完了！<br />
不容易啊，泪奔&#8230;.</p>
<p><object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.tudou.com/v/6P0wQolYE_c/&amp;rpid=2382609/v.swf" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://www.tudou.com/v/6P0wQolYE_c/&amp;rpid=2382609/v.swf" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" /></object></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/601">http://chunyemen.org/archives/601</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/601/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>介绍pig的ppt</title>
		<link>http://chunyemen.org/archives/596</link>
		<comments>http://chunyemen.org/archives/596#comments</comments>
		<pubDate>Mon, 26 Sep 2011 01:27:12 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[pig]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=596</guid>
		<description><![CDATA[Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。这是最近介绍pig-latin的ppt。 p.s. 原文地址：http://chunyemen.org/archives/596， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。这是最近介绍pig-latin的ppt。</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/9418060?rel=0" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="595" height="497"></iframe></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/596">http://chunyemen.org/archives/596</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/596/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

