<?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>Here comes the Sun &#187; Life</title>
	<atom:link href="http://sunng.info/blog/tag/life/feed/" rel="self" type="application/rss+xml" />
	<link>http://sunng.info/blog</link>
	<description>Homemade Clojure Geek</description>
	<lastBuildDate>Fri, 11 May 2012 02:24:46 +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>爬山！</title>
		<link>http://sunng.info/blog/2012/02/%e7%88%ac%e5%b1%b1%ef%bc%81/</link>
		<comments>http://sunng.info/blog/2012/02/%e7%88%ac%e5%b1%b1%ef%bc%81/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 14:36:41 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[自话]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=1151</guid>
		<description><![CDATA[今天是2月1号，本人决定从今天开始到月底的每个工作日中午去爬山锻炼身体，以摆脱目前体重极速增长的困局。口说无凭，立此为据。]]></description>
			<content:encoded><![CDATA[<p>今天是2月1号，本人决定从今天开始到月底的每个工作日中午去爬山锻炼身体，以摆脱目前体重极速增长的困局。口说无凭，立此为据。</p>
<p>CuiPing_Hill<br/><a href="http://sunng.info/blog/wp-content/plugins/leaflet-maps-marker/leaflet-fullscreen.php?marker=2"><img src="http://sunng.info/blog/wp-content/plugins/leaflet-maps-marker/img/map-rss-feed.png"/><br/>Show embedded map in full-screen mode</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2012/02/%e7%88%ac%e5%b1%b1%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Code 2011</title>
		<link>http://sunng.info/blog/2011/12/code-2011/</link>
		<comments>http://sunng.info/blog/2011/12/code-2011/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 15:21:29 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[当时]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=1129</guid>
		<description><![CDATA[成功人士是不写总结的，所以我来写个总结。 今年的coding从ABAP开始，这个很多人现在不知道以后也不用知道最好永远也不要知道的语言和他的平台，是一个脱胎于Pascal，在发展过程里又杂糅了SQL和C++的怪物，最后几乎变成了满屏幕关键字。再加上缺乏文档，实在是一段不堪回首的记忆。 3月份开始，我又重新开始了一个python项目叫做jip，他兼容maven，可以与virtualenv和setuptools集成，帮助你解决jython项目的java依赖，简化jython项目的发布，提高工作效率。这个小工具倾注了我不少时间，如果你某一天要和jython打交道的话，可以试试看。 今年还尝试了coffeescript，它恰到好处地消除了javascript里一些ugly的部分，大大提高了编码速度。我用它改写了网站首页的js。 6月份我又重拾起1年前的javascript库heatcanvas，和lbt05协作完善了程序。通过HTML5的Web worker API改善了渲染canvas时的用户体验，增加了对Google Maps，OpenLayers,Baidu Map以及Leaflet的支持。这个项目的介绍被顶到hackernews的首页，这是一种前所未有的感觉。 7月份开始迎来了一个重大的转折。断断续续学习了一年半的clojure，终于开始写第一个库，reddit.clj，用clojure封装reddit网站的API。通过这个入口算是真正走进了clojure的世界，七月底reddit.clj基本完成之后我开始写他的第一个应用，rageviewer。这是个clojure的web项目，借着这个契机又接触了compojure和ring。而且写rageviewer的时候恰逢clojurescript公开，一不做二不休，于是这个项目就成了一个full stack的clojure项目：前后端都是clojure。最后rageviewer部署在当时刚刚开始邀请测试的cloudfoundry上。 8月参加了在上海的cn-clojure列表第一次聚会后，我开始用clojure克隆一个已有的并不复杂的程序，当时选择了beanstalkd，一个轻量级的task queue。这个项目取名为clojalk。最后它成功地支持了beanstalkd协议的所有命令，支持了通过Write-ahead log做持久化和恢复。这个项目用到了aleph，见识了一把clojure思维下的网络编程。 另外我还帮clojure-control写了一个leiningen的插件，现在这个插件已经合并到clojure-control项目里了。clojure能有这么快的发展，leiningen作为构建工具也有很大的帮助。就好比上半年做jip时，感受到jython的小世界里就没有一个好的方案来同时解决java和python的项目管理问题，而且人们也不重视这个问题。 年底还有一个clojure RPC框架的诞生，这个项目叫做slacker。项目还没有到总结的时候，我的org file列表上还有一长串的TODO。 总得来说，我觉得今年学习clojure的这个过程很有借鉴价值。对于一个新语言新平台新生态系统，如何入门并且getting real。你可以从一个功能简单的库开始，比如包装一个网站的API，或者（对于clojure来说），包装一个已有的java的库。在完成之后，利用这个库，写一个web应用，进而去了解这个平台上的web开发。再下一步，可以去克隆一个其他平台上的项目，规模不要太大。如此循序渐进，学习的效果很不错。另外，无论做了什么，只要是有用的，就应该说出来，这不仅是自我鼓励，有时候也能找到志同道合的朋友一起参与。 最后除了clojure之外，今年还接着gnome-shell的发布和更新，接触了gnome-shell的gjs扩展开发。又是一个不堪回首的平台，也许是还没有finalize吧，没有任何文档，而且一个平台上的库连变量拼写的风格都不一样！我是不会再浪费时间了，当然，以后的这个豆瓣电台的control还是会继续跟着gnome-shell的发布一直维护的。 除了上面提到的，今年还尝了一些groovy，common-lisp，甚至octave，不管怎么说都算是一个big year了。但愿明年能把这种状态保持下去，享受这种愉悦。]]></description>
			<content:encoded><![CDATA[<p>成功人士是不写总结的，所以我来写个总结。</p>
<p>今年的coding从ABAP开始，这个很多人现在不知道以后也不用知道最好永远也不要知道的语言和他的平台，是一个脱胎于Pascal，在发展过程里又杂糅了SQL和C++的怪物，最后几乎变成了满屏幕关键字。再加上缺乏文档，实在是一段不堪回首的记忆。</p>
<p>3月份开始，我又重新开始了一个python项目叫做<a href="https://github.com/sunng87/jip" target="_blank">jip</a>，他兼容maven，可以与virtualenv和setuptools集成，帮助你解决jython项目的java依赖，简化jython项目的发布，提高工作效率。这个小工具倾注了我不少时间，如果你某一天要和jython打交道的话，可以试试看。</p>
<p>今年还尝试了coffeescript，它恰到好处地消除了javascript里一些ugly的部分，大大提高了编码速度。我用它改写了网站<a href="http://sunng.info/scripts/action.coffee" target="_blank">首页的js</a>。</p>
<p>6月份我又重拾起1年前的javascript库heatcanvas，和<a href="http://nihuajie.com/" target="_blank">lbt05</a>协作完善了程序。通过HTML5的Web worker API改善了渲染canvas时的用户体验，增加了对Google Maps，OpenLayers,Baidu Map以及Leaflet的支持。这个项目的介绍被顶到hackernews的首页，这是一种前所未有的感觉。</p>
<p>7月份开始迎来了一个重大的转折。断断续续学习了一年半的clojure，终于开始写第一个库，<a href="https://github.com/sunng87/reddit.clj" target="_blank">reddit.clj</a>，用clojure封装reddit网站的API。通过这个入口算是真正走进了clojure的世界，七月底reddit.clj基本完成之后我开始写他的第一个应用，<a href="https://github.com/sunng87/rageviewer" target="_blank">rageviewer</a>。这是个clojure的web项目，借着这个契机又接触了compojure和ring。而且写rageviewer的时候恰逢clojurescript公开，一不做二不休，于是这个项目就成了一个full stack的clojure项目：前后端都是clojure。最后rageviewer部署在当时刚刚开始邀请测试的cloudfoundry上。</p>
<p>8月参加了在上海的cn-clojure列表第一次聚会后，我开始用clojure克隆一个已有的并不复杂的程序，当时选择了beanstalkd，一个轻量级的task queue。这个项目取名为<a href="https://github.com/sunng87/clojalk" target="_blank">clojalk</a>。最后它成功地支持了beanstalkd协议的所有命令，支持了通过Write-ahead log做持久化和恢复。这个项目用到了aleph，见识了一把clojure思维下的网络编程。</p>
<p>另外我还帮clojure-control写了一个leiningen的插件，现在这个插件已经合并到clojure-control项目里了。clojure能有这么快的发展，leiningen作为构建工具也有很大的帮助。就好比上半年做jip时，感受到jython的小世界里就没有一个好的方案来同时解决java和python的项目管理问题，而且人们也不重视这个问题。</p>
<p>年底还有一个clojure RPC框架的诞生，这个项目叫做<a href="https://github.com/sunng87/slacker" target="_blank">slacker</a>。项目还没有到总结的时候，我的org file列表上还有一长串的TODO。</p>
<p>总得来说，我觉得今年学习clojure的这个过程很有借鉴价值。对于一个新语言新平台新生态系统，如何入门并且getting real。你可以从一个功能简单的库开始，比如包装一个网站的API，或者（对于clojure来说），包装一个已有的java的库。在完成之后，利用这个库，写一个web应用，进而去了解这个平台上的web开发。再下一步，可以去克隆一个其他平台上的项目，规模不要太大。如此循序渐进，学习的效果很不错。另外，无论做了什么，只要是有用的，就应该说出来，这不仅是自我鼓励，有时候也能找到志同道合的朋友一起参与。</p>
<p>最后除了clojure之外，今年还接着gnome-shell的发布和更新，接触了gnome-shell的gjs扩展开发。又是一个不堪回首的平台，也许是还没有finalize吧，没有任何文档，而且一个平台上的库连变量拼写的风格都不一样！我是不会再浪费时间了，当然，以后的这个<a href="https://extensions.gnome.org/extension/24/exaile-doubanfm-control/" target="_blank">豆瓣电台的control</a>还是会继续跟着gnome-shell的发布一直维护的。</p>
<p>除了上面提到的，今年还尝了一些groovy，common-lisp，甚至octave，不管怎么说都算是一个big year了。但愿明年能把这种状态保持下去，享受这种愉悦。</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/12/code-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>流水帐</title>
		<link>http://sunng.info/blog/2011/09/%e6%b5%81%e6%b0%b4%e5%b8%90/</link>
		<comments>http://sunng.info/blog/2011/09/%e6%b5%81%e6%b0%b4%e5%b8%90/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 08:35:37 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[自话]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=997</guid>
		<description><![CDATA[最近没有什么特别值得一提的事情，或者说都还在进行中还没有到值得一提的时候。 中秋节休息之后的第一天清早去驾校考交规理论，这个事没什么可说的，除了在4sq上又拓展了一点疆土，后来我又后悔没把GPS带着错过了一些还没有数据的道路。倒是那天去和回分别坐错了车，想十年前本人对城市交通网络了然于胸，除了视力不好把48路看成46路就没有坐错过车走错过路。结果现在公交线路的数量翻了一番，城市的交通网络也更复杂了。人脑则不具备scalability，活地图的时代一去不复返了。 第二件值得一说的是我在VirtualBox里成功安装了ArchLinux和GNOME Shell桌面。我工作的机器是有点古老的Dell OptiPlex 760，显卡还是ATI的Radeon HD 3420。为了开发的方便，我们装的都是CentOS 5，没错是5！！这周上班后升到了8G内存我就开始琢磨开个虚拟机体会一下现代生活。多余的不说了，几个注意事项： Host要装ATI的fglrx驱动，xorg-x11-drv-ati直接也能用，但是性能非常差 VirtualBox要在4.0.4以上，我看网上说的，具体能个版本也不知道，但是用最新的就可以 3D加速要开，在虚拟机的设置里 最最重要的一点！不要从虚拟机的菜单里安装Guest Addon，那个对Arch不管用。要用pacman安装仓库里，包名我忘了，请自行-Ss 别忘了把rc.vboxadd加入rc.conf的Deamons里 这周最诡异的问题是在配Netty的Pipeline时，我用了： Channels.pipeline&#40;new HttpMessageDecoder&#40;&#41;, new HttpMessageEncoder&#40;&#41;, myhandler&#41;; 结果稍微上一点压力居然出现了很多decoder异常，什么包不全、头不全、空指针什么的。不明真相最后改用例子里的： ChannelPipeline cp = Channels.pipeline&#40;&#41;; cp.addLast&#40;&#34;decoder&#34;, new HttpMessageDecoder&#40;&#41;&#41;; cp.addLast&#40;&#34;encoder&#34;, new HttpMessageEncoder&#40;&#41;&#41;; cp.addLast&#40;&#34;handler&#34;, myhandler&#41;; 就成功了。也许是顺序的原因也许是名字的原因，可如果这个名字真的具有意义的话为什么没有常量可用呢？不去追究具体原因了，记住就好。 此外遇到的bug还包括clojure中transient数据结构的问题，我有一个transient的map，但是persistent之后发现只有前9（依稀好像是）次assoc!的内容保存了，后面却都丢失了。1.2里的transient都被标记了alpha，不过印象1.3的changes里好像也没提transient。 另一件与clojure有关的诡异事件是一个test case的failure report： FAIL &#8230; <a href="http://sunng.info/blog/2011/09/%e6%b5%81%e6%b0%b4%e5%b8%90/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>最近没有什么特别值得一提的事情，或者说都还在进行中还没有到值得一提的时候。</p>
<p>中秋节休息之后的第一天清早去驾校考交规理论，这个事没什么可说的，除了在4sq上又拓展了一点疆土，后来我又后悔没把GPS带着错过了一些还没有数据的道路。倒是那天去和回分别坐错了车，想十年前本人对城市交通网络了然于胸，除了视力不好把48路看成46路就没有坐错过车走错过路。结果现在公交线路的数量翻了一番，城市的交通网络也更复杂了。人脑则不具备scalability，活地图的时代一去不复返了。</p>
<p>第二件值得一说的是我在VirtualBox里成功安装了ArchLinux和GNOME Shell桌面。我工作的机器是有点古老的Dell OptiPlex 760，显卡还是ATI的Radeon HD 3420。为了开发的方便，我们装的都是CentOS 5，没错是5！！这周上班后升到了8G内存我就开始琢磨开个虚拟机体会一下现代生活。多余的不说了，几个注意事项：</p>
<ul>
<li>Host要装ATI的fglrx驱动，xorg-x11-drv-ati直接也能用，但是性能非常差</li>
<li>VirtualBox要在4.0.4以上，我看网上说的，具体能个版本也不知道，但是用最新的就可以</li>
<li>3D加速要开，在虚拟机的设置里</li>
<li>最最重要的一点！不要从虚拟机的菜单里安装Guest Addon，那个对Arch不管用。要用pacman安装仓库里，包名我忘了，请自行-Ss</li>
<li>别忘了把rc.vboxadd加入rc.conf的Deamons里</li>
</ul>
<p>这周最诡异的问题是在配Netty的Pipeline时，我用了：</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Channels.<span style="color: #006633;">pipeline</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> HttpMessageDecoder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> HttpMessageEncoder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, myhandler<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>结果稍微上一点压力居然出现了很多decoder异常，什么包不全、头不全、空指针什么的。不明真相最后改用例子里的：</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ChannelPipeline cp <span style="color: #339933;">=</span> Channels.<span style="color: #006633;">pipeline</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
cp.<span style="color: #006633;">addLast</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;decoder&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> HttpMessageDecoder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
cp.<span style="color: #006633;">addLast</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;encoder&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> HttpMessageEncoder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
cp.<span style="color: #006633;">addLast</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;handler&quot;</span>, myhandler<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>就成功了。也许是顺序的原因也许是名字的原因，可如果这个名字真的具有意义的话为什么没有常量可用呢？不去追究具体原因了，记住就好。</p>
<p>此外遇到的bug还包括clojure中transient数据结构的问题，我有一个transient的map，但是persistent之后发现只有前9（依稀好像是）次assoc!的内容保存了，后面却都丢失了。1.2里的transient都被标记了alpha，不过印象1.3的changes里好像也没提transient。</p>
<p>另一件与clojure有关的诡异事件是一个test case的failure report：</p>
<blockquote><p>FAIL in (test-read-job) (wal.clj:61)<br />
expected: (= (job k) (rjob k))<br />
actual: (not (= &#8220;tomcat&#8221; &#8220;tomcat&#8221;))</p></blockquote>
<p>不过最后好在是冤有头债有主，睁着眼有时也要说下滑。在从stream中读字节流多读了一个byte，后来用这一组byte去new String的时候，就变成了一个不可见字符。结果在命令行里的输出就是这么骇人听闻，还是在IDEA里跑这个测试才发现错误的那个字符串后面跟了一个方块。至于为什么多读了一个byte，copy/paste害死人啊。</p>
<p>以上这些牢骚是关于clojure的，但是这篇就不加clojure的tag了，否则被planet clojure收录去我又给中文世界丢脸了。</p>
<p>周五晚上我又更新了sunng.info的首页，以后也许我会定期的放一些得意的照片（或者照片上有得意的东西）上去做背景，以免被人看到后发现太单调乏味。</p>
<p>最后还要感谢一下twitter网友Kymair这周将Rage Viewer<a href="http://rageviewer.herokuapp.com/index.html">部署到了Heroku</a>上。</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/09/%e6%b5%81%e6%b0%b4%e5%b8%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>工作第二年</title>
		<link>http://sunng.info/blog/2011/07/%e5%b7%a5%e4%bd%9c%e7%ac%ac%e4%ba%8c%e5%b9%b4/</link>
		<comments>http://sunng.info/blog/2011/07/%e5%b7%a5%e4%bd%9c%e7%ac%ac%e4%ba%8c%e5%b9%b4/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 16:10:02 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[当时]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2011/07/%e5%b7%a5%e4%bd%9c%e7%ac%ac%e4%ba%8c%e5%b9%b4/</guid>
		<description><![CDATA[这个周末就是我正式工作两年的日子了，第二年过得稍微有些起伏，晚上写了一点总结。但是刚才读了一下觉得不太满意，也不太合适发出来。这样，即将跨入三年级的时候，我就改改风格谈谈愿望吧。 1. 把日常工作做好，积累技术，流程，项目管理的经验 2. 业余时间拓展周边领域的知识：数据挖掘，数据分析，可视化方面 3. 希望能主导去做成一点有始有终的事情 4. 希望不久的将来能参与一个志同道合齐心协力（self-motivated）的团队一起做好一个产品]]></description>
			<content:encoded><![CDATA[<p>这个周末就是我正式工作两年的日子了，第二年过得稍微有些起伏，晚上写了一点总结。但是刚才读了一下觉得不太满意，也不太合适发出来。这样，即将跨入三年级的时候，我就改改风格谈谈愿望吧。</p>
<p>1. 把日常工作做好，积累技术，流程，项目管理的经验<br />
2. 业余时间拓展周边领域的知识：数据挖掘，数据分析，可视化方面<br />
3. 希望能主导去做成一点有始有终的事情<br />
4. 希望不久的将来能参与一个志同道合齐心协力（self-motivated）的团队一起做好一个产品</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/07/%e5%b7%a5%e4%bd%9c%e7%ac%ac%e4%ba%8c%e5%b9%b4/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>自制山寨摩卡</title>
		<link>http://sunng.info/blog/2011/07/%e8%87%aa%e5%88%b6%e5%b1%b1%e5%af%a8%e6%91%a9%e5%8d%a1/</link>
		<comments>http://sunng.info/blog/2011/07/%e8%87%aa%e5%88%b6%e5%b1%b1%e5%af%a8%e6%91%a9%e5%8d%a1/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 03:28:11 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[留影]]></category>
		<category><![CDATA[coffee]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2011/07/%e8%87%aa%e5%88%b6%e5%b1%b1%e5%af%a8%e6%91%a9%e5%8d%a1/</guid>
		<description><![CDATA[一共也没去过几次咖啡店，但是几乎每次要的都是摩卡，感情特深。所谓摩卡就是不明颗粒+奶油(optional)+牛奶+咖啡+巧克力（排名分先后）。我晕，扯这些没用的干啥，先上图： 这是自制摩卡，奶油暂时还做不来，所以放弃了。不明颗粒太麻烦，就拿巧克力代替了。 值得一提的是这次的巧克力是从可可粉熬过来的。先拿一个小的奶锅装一点牛奶，待烧开以后加两勺可可粉和一定量的白糖，然后就在小火上搅拌即可。有点类似过去搅咖哩，你不搅它它必然糊掉。等到液体粘稠到一定程度以后出锅就可以了。在实际操作里，我的牛奶加多了，以至于最后也没有真正的粘稠，这个过程有待优化。如果觉得这个过程麻烦的同学，可以直接买巧克力酱，或者拿现成的巧克力熬。当然如果你从可可粉开始熬的话，可定制性更强一些。这个直接JDBC，或是用Hibernate类似。 出锅的巧克力放一边，凉了也不太要紧，我还滴了一点香草糖浆，不过似乎那味道只有在一开始，后来就消失了。 拿一个大一些的杯子，把巧克力倒进去垫底。继续做咖啡，打牛奶。完成以后依次把咖啡和牛奶倒进杯子。摩卡好像不需要太多泡沫，打牛奶的时候可以收敛一些，不过看个人爱好了。我现在还处在杯子里没有泡沫就没有成就感的阶段，so 这个山寨版本还是很简单的，连我都可以轻松搞定。如果你觉得太山寨了，实在看不下去，千万不要人身攻击我。。。 味道？还行吧。 Edit(20100711)：老师指点说你没有可可脂是永远熬不出粘稠的感觉的。我明白真相了。]]></description>
			<content:encoded><![CDATA[<p>一共也没去过几次咖啡店，但是几乎每次要的都是摩卡，感情特深。所谓摩卡就是不明颗粒+奶油(optional)+牛奶+咖啡+巧克力（排名分先后）。我晕，扯这些没用的干啥，先上图：<br />
<a href="http://www.flickr.com/photos/40741608@N08/5921438312/" title="39171a47e65850f64ab50b4188e3c1846d177c05_wmeg_00001 by 贝小塔, on Flickr"><img src="http://farm7.static.flickr.com/6141/5921438312_459e4d874d.jpg" width="300" height="500" alt="39171a47e65850f64ab50b4188e3c1846d177c05_wmeg_00001"></a></p>
<p>这是自制摩卡，奶油暂时还做不来，所以放弃了。不明颗粒太麻烦，就拿巧克力代替了。</p>
<p>值得一提的是这次的巧克力是从可可粉熬过来的。先拿一个小的奶锅装一点牛奶，待烧开以后加两勺可可粉和一定量的白糖，然后就在小火上搅拌即可。有点类似过去搅咖哩，你不搅它它必然糊掉。等到液体粘稠到一定程度以后出锅就可以了。在实际操作里，我的牛奶加多了，以至于最后也没有真正的粘稠，这个过程有待优化。如果觉得这个过程麻烦的同学，可以直接买巧克力酱，或者拿现成的巧克力熬。当然如果你从可可粉开始熬的话，可定制性更强一些。这个直接JDBC，或是用Hibernate类似。</p>
<p>出锅的巧克力放一边，凉了也不太要紧，我还滴了一点香草糖浆，不过似乎那味道只有在一开始，后来就消失了。</p>
<p>拿一个大一些的杯子，把巧克力倒进去垫底。继续做咖啡，打牛奶。完成以后依次把咖啡和牛奶倒进杯子。摩卡好像不需要太多泡沫，打牛奶的时候可以收敛一些，不过看个人爱好了。我现在还处在杯子里没有泡沫就没有成就感的阶段，so</p>
<p>这个山寨版本还是很简单的，连我都可以轻松搞定。如果你觉得太山寨了，实在看不下去，千万不要人身攻击我。。。</p>
<p>味道？还行吧。</p>
<p>Edit(20100711)：老师指点说你没有可可脂是永远熬不出粘稠的感觉的。我明白真相了。</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/07/%e8%87%aa%e5%88%b6%e5%b1%b1%e5%af%a8%e6%91%a9%e5%8d%a1/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Take my coffee</title>
		<link>http://sunng.info/blog/2011/06/take-my-coffee/</link>
		<comments>http://sunng.info/blog/2011/06/take-my-coffee/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 06:10:03 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[当时]]></category>
		<category><![CDATA[留影]]></category>
		<category><![CDATA[coffee]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2011/06/take-my-coffee/</guid>
		<description><![CDATA[是coffee不是Java也不是CoffeeScript。买了两个月的咖啡机，到今天才终于把磨豆机和拉花杯都制备齐了。我上周用搪瓷缸打牛奶场面真是残不忍睹。不过我发现其实设备区别不大，蒸汽的掌握还是很重要的；牛奶的选择也很重要，鉴于家里没有其他牛奶可选，这部分跳过。蒸汽喷嘴与牛奶的举例很重要，我的咖啡机上还有个橡胶嘴我今天把它彻底扔掉了，直接用金属的喷嘴即可。按照某视频介绍，蒸汽嘴距离牛奶表面3毫米。这个距离如果太大就会导致牛奶乱喷，如果直接把喷嘴伸进牛奶我还没有尝试。 打好的牛奶就是这个样子，对不住大家的是，焦点跑了。 加上我们刚喷好的咖啡 就变成了这个样子 （我晕，焦点又跑了） 这个算是cappuccino吗。。。 最后还有一点咖啡，不要浪费了，搞点艺术创作： 焦点你最后终于来了。]]></description>
			<content:encoded><![CDATA[<p>是coffee不是Java也不是CoffeeScript。买了两个月的咖啡机，到今天才终于把磨豆机和拉花杯都制备齐了。我上周用搪瓷缸打牛奶场面真是残不忍睹。不过我发现其实设备区别不大，蒸汽的掌握还是很重要的；牛奶的选择也很重要，鉴于家里没有其他牛奶可选，这部分跳过。蒸汽喷嘴与牛奶的举例很重要，我的咖啡机上还有个橡胶嘴我今天把它彻底扔掉了，直接用金属的喷嘴即可。按照某视频介绍，蒸汽嘴距离牛奶表面3毫米。这个距离如果太大就会导致牛奶乱喷，如果直接把喷嘴伸进牛奶我还没有尝试。</p>
<p>打好的牛奶就是这个样子，对不住大家的是，焦点跑了。<br />
<a href="http://www.flickr.com/photos/40741608@N08/5795245711/" title="IMG_0647 by 贝小塔, on Flickr"><img src="http://farm3.static.flickr.com/2368/5795245711_d40c2afed9.jpg" alt="IMG_0647" height="500" width="375" /></a></p>
<p>加上我们刚喷好的咖啡<br />
<a href="http://www.flickr.com/photos/40741608@N08/5795806680/" title="IMG_0650 by 贝小塔, on Flickr"><img src="http://farm4.static.flickr.com/3622/5795806680_6bcb9c4cab.jpg" alt="IMG_0650" height="375" width="500" /></a></p>
<p>就变成了这个样子<br />
<a href="http://www.flickr.com/photos/40741608@N08/5795248727/" title="IMG_0651 by 贝小塔, on Flickr"><img src="http://farm4.static.flickr.com/3647/5795248727_8d7a99fd7d.jpg" alt="IMG_0651" height="375" width="500" /></a><br />
（我晕，焦点又跑了）</p>
<p>这个算是cappuccino吗。。。</p>
<p>最后还有一点咖啡，不要浪费了，搞点艺术创作：<br />
<a href="http://www.flickr.com/photos/40741608@N08/5795810074/" title="IMG_0652 by 贝小塔, on Flickr"><img src="http://farm4.static.flickr.com/3608/5795810074_a7061ca08e.jpg" alt="IMG_0652" height="375" width="500" /></a><br />
焦点你最后终于来了。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=5c368ad7-7cee-8bbf-a47f-4c2001f11dd1" /></div>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/06/take-my-coffee/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>南京的第一个周末</title>
		<link>http://sunng.info/blog/2011/04/%e5%8d%97%e4%ba%ac%e7%9a%84%e7%ac%ac%e4%b8%80%e4%b8%aa%e5%91%a8%e6%9c%ab/</link>
		<comments>http://sunng.info/blog/2011/04/%e5%8d%97%e4%ba%ac%e7%9a%84%e7%ac%ac%e4%b8%80%e4%b8%aa%e5%91%a8%e6%9c%ab/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 03:01:48 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[自话]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[LilyStudio]]></category>
		<category><![CDATA[Nanjing]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=821</guid>
		<description><![CDATA[回了南京，最大的变化就是心里踏实多了，从上大学以后几乎就没有再在家里好好呆过。虽然年纪轻轻就告老还乡有点不太给力，但是这样实在是比在外乡遥遥无期地飘着感觉要好（飘着好，遥遥无期地飘着不好）。 上班的地方在江宁，你可以从sunng.info页面的location标签上找到我。那个园区应该是聚集了一些软件公司，不过规模比显然比不上浦东软件园（还一二三期）。当然啦，规模大有个毛用，稍微晚几分钟食堂还要排队，快算了吧。 交通比想象的要方便，换一次公交车就从家门口到园区门口了。即使是早高峰时间，也只有在市区的一条路上稍微堵一下，大部分时间都是飞驰的专车，夫复何求！！换车的地方在未来的京沪高铁附近，将来南京南站也建在那一带，施工的时候还是尘土飞扬的，这点比张江要差点。（嗯，也就跟张江比比吧） 小公司有小公司的好处，新人去了没有繁文缛节的洗脑。开发岗位的直接用linux桌面，我把它看作一种福利，虽然是个rhel5，但好歹有自己配置的余地。当然即使这样，Windows还是少不了，Office是主要的原因，不过现在虚拟机是它永恒的家了。其他嘛，印象深刻的是公司的OpenDNS规则配得很厉害，好在firefox有个配置项叫做network.proxy.socks_remote_dns，你懂的。 周末在南京就可以随心所欲了。今天是新赛季中超联赛第一轮，下午3点半奥体又要热闹了。去年舜天队不给力，在盛大又特别忙，全年我就看了第一个主场的比赛，结果还输了（十年来第一次在现场输球）！！初中高中的时候要忙学习，大学的时候工作室周六开会，所以这么多年都没有条件保持看球的出勤率。现在时候到了，这是一种怎样的情怀了。 除去安逸的事情以外，我最近在看UEAP，再和@rlove的Linux System Programming对照看比较有感觉，不过我好像动手偏少了。另外还要看一下一个python的wsgi server叫做meinheld它为什么这么快呢。。 最后还要恭喜工作室战友、某著名互联网企业优秀员工、抢了04地理（我几乎忘了我是地理学院的了）第一婚的成功人士tiger新婚愉快！（除了The connection was reset以外就是成功人士的定义了）]]></description>
			<content:encoded><![CDATA[<p>回了南京，最大的变化就是心里踏实多了，从上大学以后几乎就没有再在家里好好呆过。虽然年纪轻轻就告老还乡有点不太给力，但是这样实在是比在外乡遥遥无期地飘着感觉要好（飘着好，遥遥无期地飘着不好）。</p>
<p>上班的地方在江宁，你可以从sunng.info页面的location标签上找到我。那个园区应该是聚集了一些软件公司，不过规模比显然比不上浦东软件园（还一二三期）。当然啦，规模大有个毛用，稍微晚几分钟食堂还要排队，快算了吧。</p>
<p>交通比想象的要方便，换一次公交车就从家门口到园区门口了。即使是早高峰时间，也只有在市区的一条路上稍微堵一下，大部分时间都是飞驰的专车，夫复何求！！换车的地方在未来的京沪高铁附近，将来南京南站也建在那一带，施工的时候还是尘土飞扬的，这点比张江要差点。（嗯，也就跟张江比比吧）</p>
<p>小公司有小公司的好处，新人去了没有繁文缛节的洗脑。开发岗位的直接用linux桌面，我把它看作一种福利，虽然是个rhel5，但好歹有自己配置的余地。当然即使这样，Windows还是少不了，Office是主要的原因，不过现在虚拟机是它永恒的家了。其他嘛，印象深刻的是公司的OpenDNS规则配得很厉害，好在firefox有个配置项叫做network.proxy.socks_remote_dns，你懂的。</p>
<p>周末在南京就可以随心所欲了。今天是新赛季中超联赛第一轮，下午3点半奥体又要热闹了。去年舜天队不给力，在盛大又特别忙，全年我就看了第一个主场的比赛，结果还输了（十年来第一次在现场输球）！！初中高中的时候要忙学习，大学的时候工作室周六开会，所以这么多年都没有条件保持看球的出勤率。现在时候到了，这是一种怎样的情怀了。</p>
<p>除去安逸的事情以外，我最近在看UEAP，再和@rlove的Linux System Programming对照看比较有感觉，不过我好像动手偏少了。另外还要看一下一个python的wsgi server叫做meinheld它为什么这么快呢。。</p>
<p>最后还要恭喜工作室战友、某著名互联网企业优秀员工、抢了04地理（我几乎忘了我是地理学院的了）第一婚的成功人士<a href="http://goodtiger.net">tiger</a>新婚愉快！（除了The connection was reset以外就是成功人士的定义了）</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/04/%e5%8d%97%e4%ba%ac%e7%9a%84%e7%ac%ac%e4%b8%80%e4%b8%aa%e5%91%a8%e6%9c%ab/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&quot;Update ${new Random().nextInt()}&quot;</title>
		<link>http://sunng.info/blog/2011/03/update-new-random-nextint/</link>
		<comments>http://sunng.info/blog/2011/03/update-new-random-nextint/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 13:06:58 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[当时]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Shanghai]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=809</guid>
		<description><![CDATA[多少年没写Update体了，看Samson的Update Series都到了53了，咱就只好来这么个标题了。 头等大事，officially announce 一下艰难决定，经过慎重考虑我决定离开上海了。从09年3月第一次到上海到张江，现在整好两年的时间。一方面是获得了大城市的工作机会，另一方面也被在这里边缘的生活闹够了。于是这个悲喜交加的本命年春天决定告老还乡卸甲归田，过没有追求没有房东的土著生活。 雁过留声踏雪留痕，我在晨晖路1001号半年最大的影响就是让这里又多了两个kindle用户，其他嘛，惭愧了。。。 要说在上海有什么舍不得的话，就是这里的朋友了，同学同事真不少。有一起干活的，有一起吃饭的，有一起听歌的，各种都有，回了南京就没有这种条件了。不过其实大家在上海很忙一个月也聚不上一回，这么想的话没什么区别，赶上什么RubyConf之类的就又过来了，给沪宁线作贡献是咱的宿命。（话说今年的这些会什么时候开啊，我夏天的衣服还没有攒够呢） 新赛季中超3号就揭幕了，今年舜天队的比赛可能连电视转播都没有了，你说不回南京能行吗！！能行吗！！从96年开始，今年就是第16年了。 本来想说最近一两个月荒废得厉害，我回家以后要怎么怎么的，在这还是改为此处省去多少多少字吧。。。]]></description>
			<content:encoded><![CDATA[<p>多少年没写Update体了，看Samson的Update Series都到了53了，咱就只好来这么个标题了。</p>
<ol>
<li>头等大事，officially announce 一下艰难决定，经过慎重考虑我决定离开上海了。从09年3月第一次到上海到张江，现在整好两年的时间。一方面是获得了大城市的工作机会，另一方面也被在这里边缘的生活闹够了。于是这个悲喜交加的本命年春天决定告老还乡卸甲归田，过没有追求没有房东的土著生活。</li>
<li>雁过留声踏雪留痕，我在晨晖路1001号半年最大的影响就是让这里又多了两个kindle用户，其他嘛，惭愧了。。。</li>
<li>要说在上海有什么舍不得的话，就是这里的朋友了，同学同事真不少。有一起干活的，有一起吃饭的，有一起听歌的，各种都有，回了南京就没有这种条件了。不过其实大家在上海很忙一个月也聚不上一回，这么想的话没什么区别，赶上什么RubyConf之类的就又过来了，给沪宁线作贡献是咱的宿命。（话说今年的这些会什么时候开啊，我夏天的衣服还没有攒够呢）</li>
<li>新赛季中超3号就揭幕了，今年舜天队的比赛可能连电视转播都没有了，你说不回南京能行吗！！能行吗！！从96年开始，今年就是第16年了。</li>
<li>本来想说最近一两个月荒废得厉害，我回家以后要怎么怎么的，在这还是改为此处省去多少多少字吧。。。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2011/03/update-new-random-nextint/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>When I am 64</title>
		<link>http://sunng.info/blog/2010/10/when-i-am-64/</link>
		<comments>http://sunng.info/blog/2010/10/when-i-am-64/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 06:34:51 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[留影]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/10/when-i-am-64/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/40741608@N08/5106315535/" title="DSC_0007 by 贝小塔, on Flickr"><img src="http://farm2.static.flickr.com/1237/5106315535_07df2a88bc.jpg" width="500" height="335" alt="DSC_0007" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/10/when-i-am-64/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A fine day</title>
		<link>http://sunng.info/blog/2010/10/a-fine-day/</link>
		<comments>http://sunng.info/blog/2010/10/a-fine-day/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:24:40 +0000</pubDate>
		<dc:creator>sunng</dc:creator>
				<category><![CDATA[当时]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/10/a-fine-day/</guid>
		<description><![CDATA[好久没有聊生活了，最近心绪比较杂乱，虽说不像以前那么忙，不过也没像以前那样有时间来贫一下。好在今天倒是这么多年难得的一个顺风日，一切顺利。 上周体检今天出了结果，全部PASS。虽然有一点点心动过速，不过没有大碍。我一直担心的谷丙转氨酶这次终于没有出乱子。其实这半年加班加上压力比较大，有的时候能明显感觉到胸闷，体检之前心里还真没底。不过好在是还年轻，还能顶一顶。尽管是有紧张的因素，但是心动过速也算是个预警吧，以后要加强锻炼。这话不知道说了多少遍了。 另一件事，Kindle终于毫无征兆的到了。9月6号我们kindle三人组（1，2）通过comgateway订了kindle3，到了9月17号Amazon发货，9月23号从comgateway发货。之后就杳无音信，从comgateway上的跟踪系统看根本就是绝望。结果到了9月28号正在跟samson闲聊的时候，突然收到一条莫名奇妙的短信，说您的货物已经到了北京库到家，要交税，真是又喜又悲。这还没完，花了一天confirm短信的真实性，直到30号中午才把税款打出去。接着就是无尽的国庆假期，漫漫7天过后，迫不及待打电话到库到家，结果8号一天占线，9号好不容易接通了，对方电话却坏了全是杂音跟不听不见说话。说实在的要不是有pipitu先前购物的经验，我这时候就觉得被骗了。好在，好在，今天上午顺丰快递总算是把东西送来了！ 有关kindle的细节，过两天再和大家慢慢唠。 今天正好还是妈妈的生日，晚上我们找了一家山西饭馆饱餐一顿，感觉好极了！]]></description>
			<content:encoded><![CDATA[<p>好久没有聊生活了，最近心绪比较杂乱，虽说不像以前那么忙，不过也没像以前那样有时间来贫一下。好在今天倒是这么多年难得的一个顺风日，一切顺利。</p>
<p>上周体检今天出了结果，全部PASS。虽然有一点点心动过速，不过没有大碍。我一直担心的谷丙转氨酶这次终于没有出乱子。其实这半年加班加上压力比较大，有的时候能明显感觉到胸闷，体检之前心里还真没底。不过好在是还年轻，还能顶一顶。尽管是有紧张的因素，但是心动过速也算是个预警吧，以后要加强锻炼。这话不知道说了多少遍了。</p>
<p>另一件事，Kindle终于毫无征兆的到了。9月6号我们kindle三人组（<a href="http://blog.samsonis.me">1</a>，<a href="http://blog.goodtiger.net/">2</a>）通过comgateway订了kindle3，到了9月17号Amazon发货，9月23号从comgateway发货。之后就杳无音信，从comgateway上的跟踪系统看根本就是绝望。结果到了9月28号正在跟samson闲聊的时候，突然收到一条莫名奇妙的短信，说您的货物已经到了北京库到家，要交税，真是又喜又悲。这还没完，花了一天confirm短信的真实性，直到30号中午才把税款打出去。接着就是无尽的国庆假期，漫漫7天过后，迫不及待打电话到库到家，结果8号一天占线，9号好不容易接通了，对方电话却坏了全是杂音跟不听不见说话。说实在的要不是有pipitu先前购物的经验，我这时候就觉得被骗了。好在，好在，今天上午顺丰快递总算是把东西送来了！</p>
<p>有关kindle的细节，过两天再和大家慢慢唠。</p>
<p>今天正好还是妈妈的生日，晚上我们找了一家山西饭馆饱餐一顿，感觉好极了！</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/10/a-fine-day/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

