<?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>Share 4 More</title>
	<atom:link href="http://web2.0coder.com/feed" rel="self" type="application/rss+xml" />
	<link>http://web2.0coder.com</link>
	<description>the programmer</description>
	<lastBuildDate>Sun, 19 Feb 2012 05:37:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>web.py重写gdicts</title>
		<link>http://web2.0coder.com/archives/509</link>
		<comments>http://web2.0coder.com/archives/509#comments</comments>
		<pubDate>Sun, 19 Feb 2012 05:37:56 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[gdicts]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=509</guid>
		<description><![CDATA[urh，人生在于折腾。用flask重写了gdicts之后，因为不满意flask的url route机制和规则，也觉得用sqlalchemy的那套东西有点臃肿，（感觉sqlalchemy只能作为orm届的标准，却很少投入到实际的开发环境中）。于是看了web.py，非常简洁，url route和db操作的语句很很棒，还可以方便的搭配使用jinja的模板系统。 用web.py官网下的评论讲，真是恰到好处： &#8220;Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.&#8221; 所以现在这版的gdicts.com又是跑在web.py框架下了。经历了从django到flask到web.py的三重折腾，不过之后应该会关注于加功能了，不会再折腾框架了。]]></description>
			<content:encoded><![CDATA[<p>urh，人生在于折腾。用flask重写了gdicts之后，因为不满意flask的url route机制和规则，也觉得用sqlalchemy的那套东西有点臃肿，（感觉sqlalchemy只能作为orm届的标准，却很少投入到实际的开发环境中）。于是看了<a href="http://webpy.org" target="_blank">web.py</a>，非常简洁，url route和db操作的语句很很棒，还可以方便的搭配使用jinja的模板系统。</p>
<p>用web.py官网下的评论讲，真是恰到好处：</p>
<blockquote><p>
&#8220;Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.&#8221;
</p></blockquote>
<p>所以现在这版的gdicts.com又是跑在web.py框架下了。经历了从django到flask到web.py的三重折腾，不过之后应该会关注于加功能了，不会再折腾框架了。</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/509/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flask重写gdicts</title>
		<link>http://web2.0coder.com/archives/506</link>
		<comments>http://web2.0coder.com/archives/506#comments</comments>
		<pubDate>Tue, 14 Feb 2012 13:39:46 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[gdicts]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=506</guid>
		<description><![CDATA[之前的版本是用的django，一直觉得django太笨重了，很多东西做起来绑手绑脚。 于是这两天用了轻量级的框架flask，重写了gdicts, flask + sqlalchemy + jinja2 ，用起来还是相当顺手的。现在线上的这个版本已经是flask的了。]]></description>
			<content:encoded><![CDATA[<p>之前的版本是用的<a href="http://djangoproject.com/" target="_blank">django</a>，一直觉得django太笨重了，很多东西做起来绑手绑脚。</p>
<p>于是这两天用了轻量级的框架<a href="http://flask.pocoo.org/" target="_blank">flask</a>，重写了gdicts, flask + sqlalchemy + jinja2 ，用起来还是相当顺手的。现在线上的这个版本已经是flask的了。</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/506/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iBooks Author</title>
		<link>http://web2.0coder.com/archives/487</link>
		<comments>http://web2.0coder.com/archives/487#comments</comments>
		<pubDate>Mon, 23 Jan 2012 04:09:15 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[ibooks]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=487</guid>
		<description><![CDATA[之前我在Twitter上说，在stanford做了这期online course之后，硅谷可能会诞生一个做在线教育的企业。虽然在stanford的online course之前udemy.com已经出来，但是一直推广不够，也没有配套的工具，一直是不愠不火。 一直以来都觉得在互联网上，在线教育是一片蓝海，也相当看好这一块的市场。但apple出app store的时候就象这块如果和在线教育结合起来，也有个edu store什么的，象任何人都可以做app一样，任何人也可以教学视频，然后用户去购买。 虽然想到可能会诞生伟大的网站推广在线教育（当时想或许youtube比较有可能，手里有大量的视频技术和资源，都是现成的），到了12年1月，没想到苹果倒现行一步了，做了这个iBooks Author。Norvig定律说，“当一个产品的市场占有率超过50%，就不要在想让这个产品翻番了。” 听起来象废话，但是很多公司会忽略这点，还在原来的领域深耕细作，期望有很高的提升。对苹果来讲，之前和教育产业的合作不过是以学生价卖几台电脑或者直接提供电脑供科研使用，几乎都是硬件层面的合作，现在出了iAuthor，已经是染指“教科书”层面上的软件了，已经是打算开辟这块新的蓝海了，任何人都可以发表，这是用了平民大众的智慧，跟当时web2.0一样。以前出版本书要各种步骤，现在只要写好了点&#8221;Publish&#8221;就行了（所以这也可能会导致iBooks store将很快在国内被墙不可用）。 下了这个试用了一下： 1，新建一本书，编辑Book Title，Intro Media（可以插入介绍这本书的视频） 2，orientation，可以以横版的方式或者竖版的方式编辑书 3，media，编辑书时可以插入各种media，包括keynote，video这种。 4，全部编辑完后可以点Preview预览和Publish到iBooks Store，其中Preview需要让iPad连接上电脑。Preview时可以看到在iBooks的书架上看到自己编辑的这本书。 整个工具还是很好用的。若国内有公司也要走在线教育这条路，可以先仿udemy。豆瓣或许可以，本来就是靠小清新的文化起家的，比做阿尔法城什么的强多了；优酷可能也行，如果要做，也会行动比较快，毕竟已有的视频服务器资源；或者有风投投我也行。 &#160; &#8211; EOF &#8211;]]></description>
			<content:encoded><![CDATA[<p>之前我在Twitter上说，在stanford做了这期online course之后，硅谷可能会诞生一个做在线教育的企业。虽然在stanford的online course之前udemy.com已经出来，但是一直推广不够，也没有配套的工具，一直是不愠不火。<span id="more-487"></span></p>
<p>一直以来都觉得在互联网上，在线教育是一片蓝海，也相当看好这一块的市场。但apple出app store的时候就象这块如果和在线教育结合起来，也有个edu store什么的，象任何人都可以做app一样，任何人也可以教学视频，然后用户去购买。</p>
<p>虽然想到可能会诞生伟大的网站推广在线教育（当时想或许youtube比较有可能，手里有大量的视频技术和资源，都是现成的），到了12年1月，没想到苹果倒现行一步了，做了这个iBooks Author。Norvig定律说，“当一个产品的市场占有率超过50%，就不要在想让这个产品翻番了。” 听起来象废话，但是很多公司会忽略这点，还在原来的领域深耕细作，期望有很高的提升。对苹果来讲，之前和教育产业的合作不过是以学生价卖几台电脑或者直接提供电脑供科研使用，几乎都是硬件层面的合作，现在出了iAuthor，已经是染指“教科书”层面上的软件了，已经是打算开辟这块新的蓝海了，任何人都可以发表，这是用了平民大众的智慧，跟当时web2.0一样。以前出版本书要各种步骤，现在只要写好了点&#8221;Publish&#8221;就行了（所以这也可能会导致iBooks store将很快在国内被墙不可用）。</p>
<p>下了这个试用了一下：</p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/iauthor_1.jpg"><img class="alignnone size-full wp-image-499" title="iauthor_1" src="http://web2.0coder.com/wp-content/uploads/2012/01/iauthor_1.jpg" alt="" width="797" height="558" /></a></p>
<p>1，新建一本书，编辑Book Title，Intro Media（可以插入介绍这本书的视频）</p>
<p>2，orientation，可以以横版的方式或者竖版的方式编辑书</p>
<p>3，media，编辑书时可以插入各种media，包括keynote，video这种。</p>
<p>4，全部编辑完后可以点Preview预览和Publish到iBooks Store，其中Preview需要让iPad连接上电脑。Preview时可以看到在iBooks的书架上看到自己编辑的这本书。</p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/ipad-ibooks1.png"><img class="alignnone size-full wp-image-494" title="ipad-ibooks" src="http://web2.0coder.com/wp-content/uploads/2012/01/ipad-ibooks1.png" alt="" width="624" height="436" /></a></p>
<p>整个工具还是很好用的。若国内有公司也要走在线教育这条路，可以先仿udemy。豆瓣或许可以，本来就是靠小清新的文化起家的，比做阿尔法城什么的强多了；优酷可能也行，如果要做，也会行动比较快，毕竟已有的视频服务器资源；或者有风投投我也行。</p>
<p>&nbsp;</p>
<p>&#8211; EOF &#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/487/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gdicts chrome extension</title>
		<link>http://web2.0coder.com/archives/479</link>
		<comments>http://web2.0coder.com/archives/479#comments</comments>
		<pubDate>Wed, 18 Jan 2012 14:21:58 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[app]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[gdicts]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=479</guid>
		<description><![CDATA[这两天做了个gdicts.com的chrome浏览器插件，点击这里下载。 截图如下：]]></description>
			<content:encoded><![CDATA[<p>这两天做了个<a title="gdicts.com" href="http://gdicts.com" target="_blank">gdicts.com</a>的chrome浏览器插件，<a title="gdicts.crx" href="http://download.0coder.com/chromext/gdicts.crx" target="_blank">点击这里下载</a>。</p>
<p>截图如下：</p>
<p><span id="more-479"></span></p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-18-at-下午10.09.05.png"><img class="alignnone size-full wp-image-480" style="border-image: initial; margin-top: 10px; margin-bottom: 10px; margin-left: 5px; margin-right: 5px; border-width: 1px; border-color: #cccccc; border-style: solid;" title="Screen Shot 2012-01-18 at 下午10.09.05" src="http://web2.0coder.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-18-at-下午10.09.05.png" alt="" width="725" height="96" /></a></p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-18-at-下午10.11.19.png"><img class="alignnone size-full wp-image-481" style="border-image: initial; margin-top: 10px; margin-bottom: 10px; margin-left: 5px; margin-right: 5px; border-width: 1px; border-color: #CCC; border-style: solid;" title="Screen Shot 2012-01-18 at 下午10.11.19" src="http://web2.0coder.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-18-at-下午10.11.19.png" alt="" width="696" height="464" /></a></p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/333.png"><img class="alignnone size-full wp-image-483" style="border-image: initial; margin-top: 10px; margin-bottom: 10px; margin-left: 5px; margin-right: 5px; border-width: 1px; border-color: #ccc; border-style: solid;" title="333" src="http://web2.0coder.com/wp-content/uploads/2012/01/333.png" alt="" width="742" height="529" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/479/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>xDouRec chrome extension</title>
		<link>http://web2.0coder.com/archives/473</link>
		<comments>http://web2.0coder.com/archives/473#comments</comments>
		<pubDate>Sun, 15 Jan 2012 09:45:18 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[ext]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chromeext]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=473</guid>
		<description><![CDATA[豆瓣从改版首页之后，登录完发现“你可能喜欢”的条目，推荐精准度太差，对我来说大都是八竿子打不着的东西。 于是做了这个chrome 插件，安装之后再刷新下首页会发现精准度立刻上去了！！！ 下载这个chrome插件：xDouRec.crx &#160;]]></description>
			<content:encoded><![CDATA[<p>豆瓣从改版首页之后，登录完发现“你可能喜欢”的条目，推荐精准度太差，对我来说大都是八竿子打不着的东西。</p>
<p>于是做了这个<a title="xDouRec" href="http://download.0coder.com/chromext/xDouRec.crx" target="_blank">chrome 插件</a>，安装之后再刷新下首页会发现精准度立刻上去了！！！</p>
<p><a title="xDouRec" href="http://download.0coder.com/chromext/xDouRec.crx" target="_blank">下载这个chrome插件：xDouRec.crx</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/473/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>gdicts开发历史</title>
		<link>http://web2.0coder.com/archives/459</link>
		<comments>http://web2.0coder.com/archives/459#comments</comments>
		<pubDate>Tue, 03 Jan 2012 15:18:57 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[gdicts]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=459</guid>
		<description><![CDATA[2012年元旦这三天，零零碎碎拾起了之前做的gdicts.com，新build一次。（新的一年从lean startup开始） 去年8月google关停了google dictionary，我注册了这个域名，并且使用unofficial api基本实现了当时google dictionary的功能，当时的unofficial api还是很全的，提供原dictionary各语言之间的翻译。当时build这个网站只要使用jsonp调用接口，写好callback函数就行。不需要任何后台动态程序，基本就是个前台网站，整个架在我的破linode机器(512MB内存)上。 这是version 1.x 时的样子，图标是使用某可以在线生成google logo样式的网站做的： &#160; 后来读了《数据之美》(Beautiful Data)，里面有一章是Peter Norvig （是的，就是Google研究院大名鼎鼎的院长老师）写的使用概率来做单词纠错的文章，使用里面的思想，加上python 的tornado web，做了一个单词纠错服务，于是有了第二版，powered by django （整个还没有用到数据库，纠错服务程序daemon只需要初始化时读单词的文本）： 想到既然是使用的google 的 unofficial api，可能就会某天关停，然后就抓下来了常用的6w多个英文单词的中文释义。果然到11年12月，我再去用现在的网站查的时候，发现已经不能搜出英文的中文释义了，所以这时我用回了之前抓好的6w+的中文释义，load into mysql，add memcache（用了我之前写的libmemcache的python包），加了sitemap，重新做了UI（包括下载了catull字体，用fireworks做了logo效果），重做了favicon.ico（btw，mac上brew可以直接install png2ico）使用html5的audio完整支持了iPad发音，于是有了现在的第三版，btw，我相当喜欢这版的Georgia字体，看起来非常舒服： &#160; &#160; &#160; 还没做的是解析返回的web definition和用户收藏功能，以后可能会考虑加进去。 &#160;]]></description>
			<content:encoded><![CDATA[<p>2012年元旦这三天，零零碎碎拾起了之前做的gdicts.com，新build一次。（新的一年从lean startup开始）</p>
<p><span id="more-459"></span></p>
<p>去年8月google关停了google dictionary，我注册了这个域名，并且使用unofficial api基本实现了当时google dictionary的功能，当时的unofficial api还是很全的，提供原dictionary各语言之间的翻译。当时build这个网站只要使用jsonp调用接口，写好callback函数就行。不需要任何后台动态程序，基本就是个前台网站，整个架在我的破linode机器(512MB内存)上。</p>
<p>这是version 1.x 时的样子，图标是使用某可以在线生成google logo样式的网站做的：</p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/version1.x1.png"><img class="alignnone size-full wp-image-461" title="version1.x" src="http://web2.0coder.com/wp-content/uploads/2012/01/version1.x1.png" alt="" width="708" height="187" /></a></p>
<p>&nbsp;</p>
<p>后来读了《数据之美》(Beautiful Data)，里面有一章是Peter Norvig （是的，就是Google研究院大名鼎鼎的院长老师）写的使用概率来做<a href="norvig.com/ngrams/" target="_blank">单词纠错的文章</a>，使用里面的思想，加上python 的tornado web，做了一个单词纠错服务，于是有了第二版，powered by django （整个还没有用到数据库，纠错服务程序daemon只需要初始化时读单词的文本）：</p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/version2.x.png"><img class="alignnone size-full wp-image-462" title="version2.x" src="http://web2.0coder.com/wp-content/uploads/2012/01/version2.x.png" alt="" width="720" height="296" /></a></p>
<p>想到既然是使用的google 的 unofficial api，可能就会某天关停，然后就抓下来了常用的6w多个英文单词的中文释义。果然到11年12月，我再去用现在的网站查的时候，发现已经不能搜出英文的中文释义了，所以这时我用回了之前抓好的6w+的中文释义，load into mysql，add memcache（用了我之前写的libmemcache的python包），加了sitemap，重新做了UI（包括下载了catull字体，用fireworks做了logo效果），重做了favicon.ico（btw，mac上brew可以直接install png2ico）使用html5的audio完整支持了iPad发音，于是有了现在的第三版，btw，我相当喜欢这版的Georgia字体，看起来非常舒服：</p>
<p><a href="http://web2.0coder.com/wp-content/uploads/2012/01/version3.x.png"><img class="alignnone size-full wp-image-463" title="version3.x" src="http://web2.0coder.com/wp-content/uploads/2012/01/version3.x.png" alt="" width="744" height="318" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>还没做的是解析返回的web definition和用户收藏功能，以后可能会考虑加进去。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/459/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>提升protobuf-python的解包/封包性能</title>
		<link>http://web2.0coder.com/archives/454</link>
		<comments>http://web2.0coder.com/archives/454#comments</comments>
		<pubDate>Wed, 16 Nov 2011 10:27:28 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[protobuf]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=454</guid>
		<description><![CDATA[今天一台跑数据中转的服务器cpu满了，这个服务器的主要任务是接收网络数据包，用protobuf解包，取出数据做xxoo的事后，封成一个新的包发给后端服务器。 这个中转服务器是python做的，cpu的主要耗时在对网络数据包频繁的解包封包。也就是protobuf里的ParseFromString（解包）和SerializeToString（封包）函数。因为这两个函数均是python实现的，所以效率比较低。 既然是cpu问题，想到的就是把这块改成调用c函数，直接python调用c实现的so。然后就去找有没有可以生成.so的包，搜到一个：protocyt (http://evgenus.github.com/protocyt/) ，这个包是基于cython做的。 正当要试用的时候，关爷来告诉了一个更快的方法： 进protobuf源包的python目录： cd protobuf-2.4.1/python/ 增加一个环境变量： export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp 重新build protobuf的python包： python setup.py build 可以看到输出中多了一个_net_proto2___python.so ，这个也就是proto python的c实现 然后安装这个so python setup.py install 接下来，在你的处理脚本中也增加这个环境变量，例如之前跑python处理protobuf的脚本名称叫python a.py，现在在跑这行命令之前，同样先增加环境变量： export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp 然后 python a.py 此时查看你的python a.py进程所加载的so，就多了一个_net_proto2___python.so，这表示现在的解包封包函数已经用了这个cpp版的实现了，效果很明显，大概可以提升5倍。以我们服务器为例，cpu的负载从60%降到了12%。 关爷说他们之前还用了psyco（http://psyco.sourceforge.net/）来提升效率，大概是2倍，所以两种方法结合可以提升效率大概10倍。psyco之前我们在hi系统中对便签的解析也用过，也是很方便，貌似只要两行代码就行了。可惜的是它不支持64位系统，只好罢了。 至于protocyt的表现就没再测试了，因为还依赖于cython和jinja2，比较麻烦，还是这种原始protobuf包里就支持的好用。]]></description>
			<content:encoded><![CDATA[<p>今天一台跑数据中转的服务器cpu满了，这个服务器的主要任务是接收网络数据包，用protobuf解包，取出数据做xxoo的事后，封成一个新的包发给后端服务器。</p>
<p>这个中转服务器是python做的，cpu的主要耗时在对网络数据包频繁的解包封包。也就是protobuf里的ParseFromString（解包）和SerializeToString（封包）函数。因为这两个函数均是python实现的，所以效率比较低。<span id="more-454"></span></p>
<p>既然是cpu问题，想到的就是把这块改成调用c函数，直接python调用c实现的so。然后就去找有没有可以生成.so的包，搜到一个：protocyt (<a href="http://evgenus.github.com/protocyt/" target="_blank">http://evgenus.github.com/protocyt/</a>) ，这个包是基于cython做的。</p>
<p>正当要试用的时候，关爷来告诉了一个更快的方法：</p>
<p>进protobuf源包的python目录：<br />
<code>cd protobuf-2.4.1/python/</code><br />
增加一个环境变量：<br />
<code>export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp</code><br />
重新build protobuf的python包：<br />
<code>python setup.py build</code><br />
可以看到输出中多了一个_net_proto2___python.so ，这个也就是proto python的c实现<br />
然后安装这个so<br />
<code>python setup.py install</code></p>
<p>接下来，在你的处理脚本中也增加这个环境变量，例如之前跑python处理protobuf的脚本名称叫python a.py，现在在跑这行命令之前，同样先增加环境变量：<br />
<code>export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp</code><br />
然后 python a.py</p>
<p>此时查看你的python a.py进程所加载的so，就多了一个_net_proto2___python.so，这表示现在的解包封包函数已经用了这个cpp版的实现了，效果很明显，大概可以提升5倍。以我们服务器为例，cpu的负载从60%降到了12%。</p>
<p>关爷说他们之前还用了psyco（<a href="http://psyco.sourceforge.net/" target="_blank">http://psyco.sourceforge.net/</a>）来提升效率，大概是2倍，所以两种方法结合可以提升效率大概10倍。psyco之前我们在hi系统中对便签的解析也用过，也是很方便，貌似只要两行代码就行了。可惜的是它不支持64位系统，只好罢了。</p>
<p>至于protocyt的表现就没再测试了，因为还依赖于cython和jinja2，比较麻烦，还是这种原始protobuf包里就支持的好用。</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/454/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>黑客与画家 摘录2</title>
		<link>http://web2.0coder.com/archives/446</link>
		<comments>http://web2.0coder.com/archives/446#comments</comments>
		<pubDate>Thu, 29 Sep 2011 14:32:25 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=446</guid>
		<description><![CDATA[接上一篇《黑客与画家》摘录1： 第六章，如何创造财富，ps，这是我最喜欢的一章： 最好的办法就是自己创业，或者加入创业公司。几百年来，这一直是致富的可靠途径。 你不再是低强度地工作四十年，而是以极限强度工作四年。 如果一个优秀黑客在大公司的身价是每年8万美元，那么一个勤奋工作，摆脱杂事干扰的聪明黑客，他的工作相当于每年新创造300万美元的价值。 如果你想赚100万美元，就不得不忍受相当于100万美元的痛苦。 任何公司的成功历程中，运气都是一个很大的随机因素。 致富的方法有许多种，本文只谈论其中的一种，也就是通过创造有价值的东西在市场上得到回报，从而致富。通过创造有价值的东西而致富，这种方法的优势不仅仅在于它是合法的，还在于它更简单。你只需要做出别人需要的东西就可以了。 财富与金钱并不是同义词。财富存在的时间与人类历史一样长久，甚至更长久，事实上蚂蚁也拥有财富。金钱是一种历史相对较短的发明。财富是最基本的东西。我们需要的东西就是财富。财富才是你的目标，金钱不是。 大多数生意的目的是为了创造财富，做出人们真正需要的东西。 如果你想要创造财富，那么你应该抱着特别怀疑的态度，去思考那些着眼于你自己感兴趣的东西的商业计划。对于自己感兴趣的东西，你会觉得它们很有价值，但是它们恰恰最不可能与他人眼中有价值的东西发生重合。 目前还存在的最大的手工艺人就是程序员。 公司就是许多人聚在一起创造财富的地方，能够制造更多人们需要的东西。程序员真正地面对产品，一行行地写代码把产品做出来。所以，在程序员看来，事情再明显不过，财富就是被做出来的，而不是某个想象出来的神秘人物分发的大饼。 我们这个世界，你向下沉沦或者向上奋进都取决于你自己，不能把原因推给外界。 经过这么多年，你已经习惯了自己属于这样一群人，早上全部起床，都来到同样几栋建筑物，开始做自己正常情况下没兴趣做的事情。 一个大学毕业生总是想“我需要一份工作”，别人也是这么对他说的，好像变成某个组织的成员是一件多么重要的事情。更直接的表达方式应该是，“你需要去做一些人们需要的东西”。即使不加入公司，你也能做到。公司不过是一群人在一起工作，共同做出某种人们需要的东西。真正重要的是做出人们需要的东西，而不是加入某个公司。 大公司最大的困扰就是无法准确测量每个员工的贡献。大多数时候它只是在瞎猜。在大公司中，你只要一般性地努力工作，就能得到意料之中的薪水。 如果你有一个令你感到安全的工作，你是不会致富的，因为没有危险，就几乎等于没有可放大性。 乔布斯曾经说过，创业的失败取决于最早加入公司的那十几个人。我基本同意这个观点，虽然我觉得真正决定成败的其实只是前五人。 小团队在如今这个时代可谓如鱼得水，因为他们不受官僚主义和繁琐管理制度的拖累。// 在中国还有审查制度啊。。。 高科技 = 可放大性。假定软件有两个候选的新功能，它们创造的商业价值完全相同，那么我们总是选择较困难的那个功能。不是因为这个功能能带来更多的收入，而是因为它比较难。 如果你有一个新点子去找vc，问他是否投资，他首先就会问你几个问题，其中之一就是其它人复制你的模式是否很困难。也就是说，你为竞争对手设置的壁垒有多高。 创业公司象蚊子一样，不带有任何防御，就是为了达到一个目的而活着。 怎样才能把公司卖掉呢？大多数时候，促成买方掏钱的最好办法不是让买家看到有获利的可能，而是让他们感到失去机会的恐惧。对于买家来说，最强的收购动机就是看到竞争对手可能收购你。次强的动机则是让他们担心如果现在不买你，你的高速成长将是的未来的收购耗资巨大，甚至你本身可能变成一个他们的竞争对手。 你越能满足顾客的需要，你创造的财富也就越多。]]></description>
			<content:encoded><![CDATA[<p>接<a href="http://web2.0coder.com/archives/438" target="_blank">上一篇</a>《黑客与画家》摘录1：</p>
<p><span id="more-446"></span>第六章，如何创造财富，ps，这是我最喜欢的一章：</p>
<ul>
<li><span style="color: #ff0000;"><strong>最好的办法就是自己创业，或者加入创业公司。几百年来，这一直是致富的可靠途径</strong></span>。</li>
<li>你不再是低强度地工作四十年，而是以极限强度工作四年。</li>
<li>如果一个优秀黑客在大公司的身价是每年8万美元，那么一个勤奋工作，摆脱杂事干扰的聪明黑客，他的工作相当于每年新创造300万美元的价值。</li>
<li>如果你想赚100万美元，就不得不忍受相当于100万美元的痛苦。</li>
<li>任何公司的成功历程中，运气都是一个很大的随机因素。</li>
<li>致富的方法有许多种，本文只谈论其中的一种，也就是通过创造有价值的东西在市场上得到回报，从而致富。通过创造有价值的东西而致富，这种方法的优势不仅仅在于它是合法的，还在于它更简单。你只需要做出别人需要的东西就可以了。</li>
<li>财富与金钱并不是同义词。财富存在的时间与人类历史一样长久，甚至更长久，事实上蚂蚁也拥有财富。金钱是一种历史相对较短的发明。财富是最基本的东西。我们需要的东西就是财富。财富才是你的目标，金钱不是。</li>
<li>大多数生意的目的是为了创造财富，做出人们真正需要的东西。</li>
<li>如果你想要创造财富，那么你应该抱着特别怀疑的态度，去思考那些着眼于你自己感兴趣的东西的商业计划。对于自己感兴趣的东西，你会觉得它们很有价值，但是它们恰恰最不可能与他人眼中有价值的东西发生重合。</li>
<li>目前还存在的最大的手工艺人就是程序员。</li>
<li>公司就是许多人聚在一起创造财富的地方，能够制造更多人们需要的东西。程序员真正地面对产品，一行行地写代码把产品做出来。所以，在程序员看来，事情再明显不过，财富就是被做出来的，而不是某个想象出来的神秘人物分发的大饼。</li>
<li>我们这个世界，你向下沉沦或者向上奋进都取决于你自己，不能把原因推给外界。</li>
<li>经过这么多年，你已经习惯了自己属于这样一群人，早上全部起床，都来到同样几栋建筑物，开始做自己正常情况下没兴趣做的事情。</li>
<li><strong><span style="color: #ff0000;">一个大学毕业生总是想“我需要一份工作”，别人也是这么对他说的，好像变成某个组织的成员是一件多么重要的事情。更直接的表达方式应该是，“你需要去做一些人们需要的东西”。即使不加入公司，你也能做到。公司不过是一群人在一起工作，共同做出某种人们需要的东西。真正重要的是做出人们需要的东西，而不是加入某个公司。</span></strong></li>
<li>大公司最大的困扰就是无法准确测量每个员工的贡献。大多数时候它只是在瞎猜。在大公司中，你只要一般性地努力工作，就能得到意料之中的薪水。</li>
<li>如果你有一个令你感到安全的工作，你是不会致富的，因为没有危险，就几乎等于没有可放大性。</li>
<li>乔布斯曾经说过，创业的失败取决于最早加入公司的那十几个人。我基本同意这个观点，虽然我觉得真正决定成败的其实只是前五人。</li>
<li>小团队在如今这个时代可谓如鱼得水，因为他们不受官僚主义和繁琐管理制度的拖累。// 在中国还有审查制度啊。。。</li>
<li>高科技 = 可放大性。假定软件有两个候选的新功能，它们创造的商业价值完全相同，那么我们总是选择较困难的那个功能。不是因为这个功能能带来更多的收入，而是因为它比较难。</li>
<li>如果你有一个新点子去找vc，问他是否投资，他首先就会问你几个问题，其中之一就是其它人复制你的模式是否很困难。也就是说，你为竞争对手设置的壁垒有多高。</li>
<li>创业公司象蚊子一样，不带有任何防御，就是为了达到一个目的而活着。</li>
<li>怎样才能把公司卖掉呢？大多数时候，促成买方掏钱的最好办法不是让买家看到有获利的可能，而是让他们感到失去机会的恐惧。对于买家来说，最强的收购动机就是看到竞争对手可能收购你。次强的动机则是让他们担心如果现在不买你，你的高速成长将是的未来的收购耗资巨大，甚至你本身可能变成一个他们的竞争对手。</li>
<li>你越能满足顾客的<span style="text-decoration: underline;">需要，你创造的财富也就越多。</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/446/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>黑客与画家 摘录 1</title>
		<link>http://web2.0coder.com/archives/438</link>
		<comments>http://web2.0coder.com/archives/438#comments</comments>
		<pubDate>Mon, 26 Sep 2011 14:51:24 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=438</guid>
		<description><![CDATA[这本书的名字有点标题党了，看起来很文艺很牛B，其实只是因为作者既是黑客，也是画家。只是作者的两个名号而已，当然这也很牛B。 “以前创业很昂贵，你不得不找到投资人才能创业。而现在，唯一的门槛就是勇气。” 黑客伦理： 使用计算机以及所有有助于了解这个世界本质的事物不应受到任何限制。任何事情都应该亲手尝试。 信息应该全部免费。 不信任权威，提倡去中心化。 判断一名黑客的水平应该看他的技术能力，而不是看他的学历，年龄或地位等其它标准。 你可以用计算机创造美和艺术。 计算机使生活更美好。 第一章《书呆子为什么不受欢迎》中的内容将来可以教育小孩子，现在不受欢迎没问题，先胖不算胖，后胖压塌炕。 书呆子从小琢磨的确实如何更聪明，心底里也是这样追求的。这都是受父母的影响，书呆子被教导追求正确答案，而受欢迎的小孩被教导讨人喜欢。 在任何社会等级制度中，那些对自己没自信的人就会通过虐待他们眼中的下等人来凸显自己的身份； 大部分的欺负来自处于下一等级的学生，是那些焦虑的中间层； 当你所作的事情能产生真实的效果，那就不仅仅是好玩而已了，发现正确的答案就开始变得重要了。如果总体足够大，即时是人数最少的少数派，只要聚集在一起，也能产生可观的力量。； 更糟糕的问题就是我们没有得到真正的工作，没能发挥我们的才能。人类喜欢工作，在世界上大多数地方，你的工作就是你的身份证明。但是，我们那时做的所有事情根本就是无意义的，至少那时看来是这样。最好的情况下，那些事情也不过是遥远的将来我们可能从事的实际工作的练习。 如今的成年人根本不接受青少年。一般来说，他们都是在办公室工作，所以就在上班的路上，顺路把孩子送到学校去关着，这有点象他们周末外出度假时，把狗送到寄养的地方。// 这个这么说美国教育，我觉得实在太偏激了。。。 &#160; 第二章《黑客与画家》。 黑客搞懂“计算理论”的必要性，与画家搞懂颜料化学成分的必要性差不多大。一般来说，在理论上，你需要知道如何计算“时间复杂度”和“空间复杂度”，如果你要写一个解析器，可能还需要知道状态机的概念；除此之外，并不需要知道特别多的理论。 编程语言首要的特性是允许动态扩展的。编程语言是用来帮助思考程序的，而不是用来表达你已经想好的程序。 大学和实验室强迫黑客成为科学家，企业强迫黑客成为工程师。 大部分公司不把涉及的职责交给一个优秀的黑客，而是交给一个委员会，黑客的作用仅仅是实现那个委员会的设计。大公司只要做到不太烂，就能赢。// 跟网易的风格差不多，只求不犯错，求稳。 开发优秀软件的方法之一就是自己创业。创业的另一个问题是赚钱的软件往往不是好玩的软件，两者的重叠度不高。几乎所有的创作者在职业生涯的早期都有一份“白天工作”。 要是你很热爱编程，你就不可避免的会开发自己的项目。 黑客可以通过观看优秀的程序学会编程，不是看它们的执行结果，而是看它们的源代码。 你不能盼望先有一个完美的规格设计，然后再动手编程。坚持一丝不苟，就能取得优秀的成果。因为那些看不见的细节累加起来，就变得可见了。 有时候，你有了一个令人兴奋的新项目，你会愿意为它一天工作16小时。等过了这一阵，你又会觉得百无聊赖，对所有事情都提不起兴趣。 暂时放手又是也能防止热情熄火。 从他人的角度思考问题正是成功的奥秘所在。“换位思考”并不意味着你要做自我牺牲。实际上，这是完全不同的两回事。了解别人对于事情的看法，并不代表你为他的利益服务。 第三章《不能说的话》 道德禁忌的最大制造者是那些权利斗争中略占上风的一方。你会发现，这一方有实力推行禁忌，同时又软弱到需要禁忌保护自己的利益。 在科学领域，质疑他人的结论和公认的假设是尤其重要的一件事。 与笨蛋辩论，你也会变成笨蛋。自由思考比畅所欲言更重要。在心里无所不想，但是不一定要说出来。 人们喜欢讨论的许多问题实际上都是很复杂的，马上说出你的想法对你没有什么好处。 你不要直接攻击某个标签，而要攻击它的“元标签”。所谓“元标签”，就是对某个标签的抽象描述。 当你看到有些话被攻击为出自xx分子或xx主义，这就是一个明确的信号，表明背后有问题。 你不仅要远距离观察人群，更要远距离观察你自己。如果自己就是潮水的一部分，怎么能看见潮流的方向呢？你只能永远保持质疑。 第四章《良好的坏习惯》 公民自由使得国家富强。如果将人均国民生产总值与公民自由的关系画成图，你会发现他们是很清楚的正向关系。一个人们拥有自由言论和行动自由的社会，往往最有可能采纳最优方案，而不是采纳最有权势的人提出的方案。 第五章《另一条路》 太麻烦，不如死 如果互联网软件能够击败桌面软件，一定是赢在更方便这一优势上。// 正如现在的手机软件是个很好的机会，也会赢在更方便上。 构思这种东西有一个特点，就是它会导致更多的构思。你有没有注意过，坐下来写东西的时候，一半的构思是写作时产生的？软件也是这样。实现某个构思，会带来更多的构思。所以，将一个构思束之高阁，不仅意味着延迟它的实现，还意味着延迟所有在实现过程中激发的构思。事实上，将一个构思束之高阁，甚至会限制新构思的产生。 计划这个词，只是将构思束之高阁的另一种表达方式。只要想到好的构思，我们就立刻着手实现。 我想，要是为桌面电脑写软件，我们就不会成立创业公司了。因为桌面软件必须能运行在windows上，要给windows写软件就不得不使用它，可是我们对它并没有兴趣。//跟我一样。。。 创业公司必须用更少的人，更少的钱，把软件写出来并开始运作。你必须打破常规，快速行动，循规蹈矩不可能成功。 如果你把赌注压在互联网软件上，你也不比担心这个问题。只要人们继续上网，互联网软件就输不了。// 同样，现在是手机爆发的机会，只要人们还用手机，就？ 如果你是一个黑客，并且梦想自己创业，可能会有两件事令你望而却步。一件是你不懂管理企业，另一件是你害怕竞争。实际上，这两件事都没那么难。管理企业其实很简单，只要记住两点：做出用户喜欢的产品和保证开支小于收入。 做出用户喜欢的产品，首先要保证你自己愿意使用，然后不断加以改进，整个过程中密切倾听用户的反馈。 比较软件的标准应该是看对手的软件将来会有什么功能，而不是现在有什么功能。无论何时，你都要使用自己的软件。 如果他们的观点真的很好，那就听从他们。关键是你要自己判断，不要盲从。如果你不打算自己动手设计和开发，那就不要创业。 <a href='http://web2.0coder.com/archives/438'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>这本书的名字有点标题党了，看起来很文艺很牛B，其实只是因为作者既是黑客，也是画家。只是作者的两个名号而已，当然这也很牛B。</p>
<p>“以前创业很昂贵，你不得不找到投资人才能创业。而现在，唯一的门槛就是勇气。”<span id="more-438"></span></p>
<p>黑客伦理：</p>
<ul>
<li>使用计算机以及所有有助于了解这个世界本质的事物不应受到任何限制。任何事情都应该亲手尝试。</li>
<li>信息应该全部免费。</li>
<li>不信任权威，提倡去中心化。</li>
<li>判断一名黑客的水平应该看他的技术能力，而不是看他的学历，年龄或地位等其它标准。</li>
<li>你可以用计算机创造美和艺术。</li>
<li>计算机使生活更美好。</li>
</ul>
<p>第一章《书呆子为什么不受欢迎》中的内容将来可以教育小孩子，现在不受欢迎没问题，先胖不算胖，后胖压塌炕。</p>
<ul>
<li>书呆子从小琢磨的确实如何更聪明，心底里也是这样追求的。这都是受父母的影响，书呆子被教导追求正确答案，而受欢迎的小孩被教导讨人喜欢。</li>
<li>在任何社会等级制度中，那些对自己没自信的人就会通过虐待他们眼中的下等人来凸显自己的身份；</li>
<li>大部分的欺负来自处于下一等级的学生，是那些焦虑的中间层；</li>
<li>当你所作的事情能产生真实的效果，那就不仅仅是好玩而已了，发现正确的答案就开始变得重要了。如果总体足够大，即时是人数最少的少数派，只要聚集在一起，也能产生可观的力量。；</li>
<li>更糟糕的问题就是我们没有得到真正的工作，没能发挥我们的才能。人类喜欢工作，在世界上大多数地方，你的工作就是你的身份证明。但是，我们那时做的所有事情根本就是无意义的，至少那时看来是这样。最好的情况下，那些事情也不过是遥远的将来我们可能从事的实际工作的练习。</li>
<li>如今的成年人根本不接受青少年。一般来说，他们都是在办公室工作，所以就在上班的路上，顺路把孩子送到学校去关着，这有点象他们周末外出度假时，把狗送到寄养的地方。// 这个这么说美国教育，我觉得实在太偏激了。。。</li>
</ul>
<p>&nbsp;</p>
<p>第二章《黑客与画家》。</p>
<ul>
<li>黑客搞懂“计算理论”的必要性，与画家搞懂颜料化学成分的必要性差不多大。一般来说，在理论上，你需要知道如何计算“时间复杂度”和“空间复杂度”，如果你要写一个解析器，可能还需要知道状态机的概念；除此之外，并不需要知道特别多的理论。</li>
<li>编程语言首要的特性是允许动态扩展的。编程语言是用来帮助思考程序的，而不是用来表达你已经想好的程序。</li>
<li>大学和实验室强迫黑客成为科学家，企业强迫黑客成为工程师。</li>
<li>大部分公司不把涉及的职责交给一个优秀的黑客，而是交给一个委员会，黑客的作用仅仅是实现那个委员会的设计。大公司只要做到不太烂，就能赢。// 跟网易的风格差不多，只求不犯错，求稳。</li>
<li>开发优秀软件的方法之一就是自己创业。创业的另一个问题是赚钱的软件往往不是好玩的软件，两者的重叠度不高。几乎所有的创作者在职业生涯的早期都有一份“白天工作”。</li>
<li>要是你很热爱编程，你就不可避免的会开发自己的项目。</li>
<li>黑客可以通过观看优秀的程序学会编程，不是看它们的执行结果，而是看它们的源代码。</li>
<li>你不能盼望先有一个完美的规格设计，然后再动手编程。坚持一丝不苟，就能取得优秀的成果。因为那些看不见的细节累加起来，就变得可见了。</li>
<li>有时候，你有了一个令人兴奋的新项目，你会愿意为它一天工作16小时。等过了这一阵，你又会觉得百无聊赖，对所有事情都提不起兴趣。</li>
<li>暂时放手又是也能防止热情熄火。</li>
<li>从他人的角度思考问题正是成功的奥秘所在。“换位思考”并不意味着你要做自我牺牲。实际上，这是完全不同的两回事。了解别人对于事情的看法，并不代表你为他的利益服务。</li>
</ul>
<div>第三章《不能说的话》</div>
<div>
<ul>
<li>道德禁忌的最大制造者是那些权利斗争中略占上风的一方。你会发现，这一方有实力推行禁忌，同时又软弱到需要禁忌保护自己的利益。</li>
<li>在科学领域，质疑他人的结论和公认的假设是尤其重要的一件事。</li>
<li>与笨蛋辩论，你也会变成笨蛋。自由思考比畅所欲言更重要。在心里无所不想，但是不一定要说出来。</li>
<li>人们喜欢讨论的许多问题实际上都是很复杂的，马上说出你的想法对你没有什么好处。</li>
<li>你不要直接攻击某个标签，而要攻击它的“元标签”。所谓“元标签”，就是对某个标签的抽象描述。</li>
<li>当你看到有些话被攻击为出自xx分子或xx主义，这就是一个明确的信号，表明背后有问题。</li>
<li>你不仅要远距离观察人群，更要远距离观察你自己。如果自己就是潮水的一部分，怎么能看见潮流的方向呢？你只能永远保持质疑。</li>
</ul>
<div>第四章《良好的坏习惯》</div>
<div>
<ul>
<li>公民自由使得国家富强。如果将人均国民生产总值与公民自由的关系画成图，你会发现他们是很清楚的正向关系。一个人们拥有自由言论和行动自由的社会，往往最有可能采纳最优方案，而不是采纳最有权势的人提出的方案。</li>
</ul>
<div>第五章《另一条路》</div>
<div>
<ul>
<li>太麻烦，不如死</li>
<li>如果互联网软件能够击败桌面软件，一定是赢在更方便这一优势上。// 正如现在的手机软件是个很好的机会，也会赢在更方便上。</li>
<li>构思这种东西有一个特点，就是它会导致更多的构思。你有没有注意过，坐下来写东西的时候，一半的构思是写作时产生的？软件也是这样。实现某个构思，会带来更多的构思。所以，将一个构思束之高阁，不仅意味着延迟它的实现，还意味着延迟所有在实现过程中激发的构思。事实上，将一个构思束之高阁，甚至会限制新构思的产生。</li>
<li>计划这个词，只是将构思束之高阁的另一种表达方式。只要想到好的构思，我们就立刻着手实现。</li>
<li>我想，要是为桌面电脑写软件，我们就不会成立创业公司了。因为桌面软件必须能运行在windows上，要给windows写软件就不得不使用它，可是我们对它并没有兴趣。//跟我一样。。。</li>
<li>创业公司必须用更少的人，更少的钱，把软件写出来并开始运作。你必须打破常规，快速行动，循规蹈矩不可能成功。</li>
<li>如果你把赌注压在互联网软件上，你也不比担心这个问题。只要人们继续上网，互联网软件就输不了。// 同样，现在是手机爆发的机会，只要人们还用手机，就？</li>
<li>如果你是一个黑客，并且梦想自己创业，可能会有两件事令你望而却步。一件是你不懂管理企业，另一件是你害怕竞争。实际上，这两件事都没那么难。管理企业其实很简单，只要记住两点：做出用户喜欢的产品和保证开支小于收入。</li>
<li>做出用户喜欢的产品，首先要保证你自己愿意使用，然后不断加以改进，整个过程中密切倾听用户的反馈。</li>
<li>比较软件的标准应该是看对手的软件将来会有什么功能，而不是现在有什么功能。无论何时，你都要使用自己的软件。</li>
<li>如果他们的观点真的很好，那就听从他们。关键是你要自己判断，不要盲从。如果你不打算自己动手设计和开发，那就不要创业。</li>
<li>viaweb被雅虎收购后，我突然发现自己在为一家大公司工作，那感觉就像在齐腰深的水中艰难行走。</li>
</ul>
</div>
<div>- EOF -</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/438/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>标竿人生 &#8211; 关于饶恕</title>
		<link>http://web2.0coder.com/archives/431</link>
		<comments>http://web2.0coder.com/archives/431#comments</comments>
		<pubDate>Thu, 22 Sep 2011 15:45:51 +0000</pubDate>
		<dc:creator>Vonbo</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[bible]]></category>

		<guid isPermaLink="false">http://web2.0coder.com/?p=431</guid>
		<description><![CDATA[节选自《标竿人生》第18天，“一起经历生命”： 圣经说：“你必须包容彼此的过失，饶恕冒犯你的人。要记得主已经饶恕了你们，所以你们也要饶恕别人”。 神对我们的怜悯是我们怜悯人的动机。请谨记，神宽恕你的，永远比你宽恕其他人的更多。当你被人伤害时，你可以做一个选择：我要以我的精力与情绪去报复或去化解？你只能二选一。 无论对方有没有要求被赦免，赦免都需及时。信任则须靠时间去重建；信任需要可以采信的记录。如果某人屡次伤害你，神命令你立刻原谅他，但神不会期望你立刻信任他，你也不用容让他继续伤害你。他们必须靠时间来印证他们已经有所改变。 &#160;]]></description>
			<content:encoded><![CDATA[<p>节选自《标竿人生》第18天，“一起经历生命”：<span id="more-431"></span></p>
<p>圣经说：“你必须包容彼此的过失，饶恕冒犯你的人。要记得主已经饶恕了你们，所以你们也要饶恕别人”。</p>
<p>神对我们的怜悯是我们怜悯人的动机。请谨记，神宽恕你的，永远比你宽恕其他人的更多。当你被人伤害时，你可以做一个选择：我要以我的精力与情绪去报复或去化解？你只能二选一。</p>
<p>无论对方有没有要求被赦免，赦免都需及时。信任则须靠时间去重建；信任需要可以采信的记录。如果某人屡次伤害你，神命令你立刻原谅他，但神不会期望你立刻信任他，你也不用容让他继续伤害你。他们必须靠时间来印证他们已经有所改变。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.0coder.com/archives/431/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

