<?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://www.zhuangbiaowei.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.zhuangbiaowei.com/blog</link>
	<description>识天地本心、教生民立命、为往圣传道学、为万世谋太平。</description>
	<lastBuildDate>Fri, 27 Aug 2010 14:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>简评《别为大公司拼命》</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=347</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=347#comments</comments>
		<pubDate>Fri, 27 Aug 2010 14:24:20 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[思考与随想]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=347</guid>
		<description><![CDATA[阮一峰是个很棒的译者，他最近的一篇文章，我在Google Reader上已经看到过N次分享了，每次看到都觉得味道不对，今天在JavaEye又看到有人转贴，还是觉得要好好的评论一下。 原文是：《别为大公司拼命》 作者：Paul Graham 译者：阮一峰 地址：http://www.ruanyifeng.com/blog/2010/08/not_working_hard_for_a_big_company.html 评论： 分三个方面来讲： 1、从常态来说： 事实上，一个正常的公司，应该只期望（或者说只能期望）员工付出正常的劳动（正常的劳动与得过且过，向平均水平看齐大有不同）； 一个不正常的公司，才会期望员工“拼命付出”。 2、从激励来说： 作者这篇文章假设“只有能够精确衡量员工贡献，并给予精确回报的公司，才能够激励员工拼命。” 实际上，真正能够激励员工付出更多的，甚至是不计回报的付出更多的公司，不是靠精确衡量+精确回报；而是靠企业文化与很多理想主义的东西。 3、从策略来说： 这当然是一个博弈论的问题，作者看似采取了一个“最佳策略”——向平均水平看齐。 一个公司内部的员工，如果都在向平均水平看齐，当然是一件糟糕的事情。 因为向平均水平看齐的结果就是平均水平越来越低。 这是任何一个公司，都必须避免的现象，无论公司大小。 一个大公司，如果越是能够避免这样的“最佳策略”，才越是能发展成为更大的公司。 反之，就离破产不远了。]]></description>
			<content:encoded><![CDATA[<p>阮一峰是个很棒的译者，他最近的一篇文章，我在Google Reader上已经看到过N次分享了，每次看到都觉得味道不对，今天在JavaEye又看到有人转贴，还是觉得要好好的评论一下。</p>
<p>原文是：《别为大公司拼命》 作者：Paul Graham 译者：阮一峰 地址：<a title="http://www.ruanyifeng.com/blog/2010/08/not_working_hard_for_a_big_company.html" href="http://www.ruanyifeng.com/blog/2010/08/not_working_hard_for_a_big_company.html">http://www.ruanyifeng.com/blog/2010/08/not_working_hard_for_a_big_company.html</a></p>
<p>评论：</p>
<p>分三个方面来讲：    <br />1、从常态来说：     <br />事实上，一个正常的公司，应该只期望（或者说只能期望）员工付出正常的劳动（正常的劳动与得过且过，向平均水平看齐大有不同）；     <br />一个不正常的公司，才会期望员工“拼命付出”。 </p>
<p>2、从激励来说：     <br />作者这篇文章假设“只有能够精确衡量员工贡献，并给予精确回报的公司，才能够激励员工拼命。”     <br />实际上，真正能够激励员工付出更多的，甚至是不计回报的付出更多的公司，不是靠精确衡量+精确回报；而是靠企业文化与很多理想主义的东西。     </p>
<p>3、从策略来说：    <br />这当然是一个博弈论的问题，作者看似采取了一个“最佳策略”——向平均水平看齐。     <br />一个公司内部的员工，如果都在向平均水平看齐，当然是一件糟糕的事情。 因为向平均水平看齐的结果就是平均水平越来越低。    <br />这是任何一个公司，都必须避免的现象，无论公司大小。     <br />一个大公司，如果越是能够避免这样的“最佳策略”，才越是能发展成为更大的公司。     <br />反之，就离破产不远了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=347</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>推荐两本女性小说：《平凡的清穿日子》与《春光里》</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=346</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=346#comments</comments>
		<pubDate>Thu, 19 Aug 2010 14:26:01 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[读书]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=346</guid>
		<description><![CDATA[首发：云中书友会 http://bambookbbs.sdo.com/show.aspx?id=7535 &#160; 最初是因为想给老婆大人找一本女性喜欢的小说，那种种马、YY、历史传奇类的，她都不喜欢，我就在起点搜书里，挑了一本《平凡的清穿日子》给她看。 结果一看之下，她就沉迷了，不但自己沉迷，还反复的向我推荐，真好啊，真好啊。你看看吧，你看看吧。 作为一个从善如流的好老公，我也就勉为其难的看了起来。。。没想到，嘿，还真是不错。作为一个现代人，穿越到清代早期，生在一个中等官吏的家里，然后慢慢的长大，认识很多人，学了很多古代人的本领，然后努力的追求自己的幸福。这部书与一般穿越小说，最大的区别就是：早早的显露出聪慧和先知，是取死之道，动不动就想搞什么发明创造，十有八九要被人当成妖孽和怪物，自保很重要，韬光养晦很重要。 另外一本《春光里》，是目前Loeva正在写的一部小说，我跟我老婆都在追看。前面的一部小说，就有人评价说：再平凡，也是一个满族官员的女儿，命运自然会好很多。结果Loeva就另外写了一本，女主一开始就是一个“家生子”（侯府仆人的孩子），生来就是要当奴仆的。然后，追求能够掌控自己命运的自由，成为小说的主线。 当然，这样的设定也难免会遭人批评，说是“过于虐主，到现在还是没有摆脱奴籍～～”，唉，众口难调啊。 两本书，有一个共同的特点，就是文笔都非常好，这不是那种华丽优美的好，而是清新淡雅的好，不刻意，不做作，不粉饰，不雕琢，平平实实的写来，书中的人物就活在你面前了。 没有什么爆笑的语言，没有什么紧张刺激的情节，没有什么你死我活的爱恨情仇，都是些平平常常的小事，但是就能够让你津津有味的读下去。毕竟，生活就是在平淡中显出精彩来的。 向所有不追求重口味的朋友，推荐这两本书。]]></description>
			<content:encoded><![CDATA[<p>首发：云中书友会 </p>
<p><a href="http://bambookbbs.sdo.com/show.aspx?id=7535">http://bambookbbs.sdo.com/show.aspx?id=7535</a></p>
<p>&#160;</p>
<p> 最初是因为想给老婆大人找一本女性喜欢的小说，那种种马、YY、历史传奇类的，她都不喜欢，我就在起点搜书里，挑了一本《平凡的清穿日子》给她看。</p>
<p> 结果一看之下，她就沉迷了，不但自己沉迷，还反复的向我推荐，真好啊，真好啊。你看看吧，你看看吧。</p>
<p> 作为一个从善如流的好老公，我也就勉为其难的看了起来。。。没想到，嘿，还真是不错。作为一个现代人，穿越到清代早期，生在一个中等官吏的家里，然后慢慢的长大，认识很多人，学了很多古代人的本领，然后努力的追求自己的幸福。这部书与一般穿越小说，最大的区别就是：早早的显露出聪慧和先知，是取死之道，动不动就想搞什么发明创造，十有八九要被人当成妖孽和怪物，自保很重要，韬光养晦很重要。</p>
<p> 另外一本《春光里》，是目前Loeva正在写的一部小说，我跟我老婆都在追看。前面的一部小说，就有人评价说：再平凡，也是一个满族官员的女儿，命运自然会好很多。结果Loeva就另外写了一本，女主一开始就是一个“家生子”（侯府仆人的孩子），生来就是要当奴仆的。然后，追求能够掌控自己命运的自由，成为小说的主线。</p>
<p> 当然，这样的设定也难免会遭人批评，说是“过于虐主，到现在还是没有摆脱奴籍～～”，唉，众口难调啊。</p>
<p> 两本书，有一个共同的特点，就是文笔都非常好，这不是那种华丽优美的好，而是清新淡雅的好，不刻意，不做作，不粉饰，不雕琢，平平实实的写来，书中的人物就活在你面前了。</p>
<p> 没有什么爆笑的语言，没有什么紧张刺激的情节，没有什么你死我活的爱恨情仇，都是些平平常常的小事，但是就能够让你津津有味的读下去。毕竟，生活就是在平淡中显出精彩来的。</p>
<p> 向所有不追求重口味的朋友，推荐这两本书。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=346</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的书架</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=344</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=344#comments</comments>
		<pubDate>Sat, 31 Jul 2010 06:57:10 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=344</guid>
		<description><![CDATA[最近我花了两周的晚上，整理我们家的书架，总算是差不多了。 国史类之一 国史类之二 《读库》全系列 外国历史类 外国小说类之一 外国小说类之二，最醒目的是村上春树系列，几乎都有了 。 国内小说类之一 国内小说类之二 国内小说类之三 宗教哲学类 经管类 古代文学类 &#160; 套书类之一 套书类之二 书架全貌。 如果，我早点有锦书可用的话，我们家的书架也许不会堆这么多书。 《Bambook锦书》&#8211;盛大创新院出品！8月9日，震撼内测，敬请期待! http://bambook.sdo.com/]]></description>
			<content:encoded><![CDATA[<p>最近我花了两周的晚上，整理我们家的书架，总算是差不多了。</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132532.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-25-32" border="0" alt="C360_2010-07-31 13-25-32" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132532_thumb.jpg" width="244" height="184" /></a> </p>
</p>
<p>国史类之一</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132548.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-25-48" border="0" alt="C360_2010-07-31 13-25-48" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132548_thumb.jpg" width="244" height="184" /></a> </p>
<p>国史类之二</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132615.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-26-15" border="0" alt="C360_2010-07-31 13-26-15" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132615_thumb.jpg" width="244" height="184" /></a> </p>
<p>《读库》全系列</p>
</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132637.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-26-37" border="0" alt="C360_2010-07-31 13-26-37" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132637_thumb.jpg" width="244" height="184" /></a> </p>
<p>外国历史类</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132650.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-26-50" border="0" alt="C360_2010-07-31 13-26-50" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132650_thumb.jpg" width="244" height="184" /></a> </p>
<p>外国小说类之一</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132700.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-27-00" border="0" alt="C360_2010-07-31 13-27-00" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132700_thumb.jpg" width="244" height="184" /></a> </p>
<p>外国小说类之二，最醒目的是村上春树系列，几乎都有了 。</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132819.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-28-19" border="0" alt="C360_2010-07-31 13-28-19" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132819_thumb.jpg" width="244" height="184" /></a> </p>
<p>国内小说类之一</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132839.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-28-39" border="0" alt="C360_2010-07-31 13-28-39" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132839_thumb.jpg" width="244" height="184" /></a></p>
<p>国内小说类之二 </p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132854.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-28-54" border="0" alt="C360_2010-07-31 13-28-54" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132854_thumb.jpg" width="244" height="184" /></a> </p>
<p>国内小说类之三</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132827.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-28-27" border="0" alt="C360_2010-07-31 13-28-27" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132827_thumb.jpg" width="244" height="184" /></a> </p>
<p>宗教哲学类</p>
</p>
</p>
</p>
</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132909.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-29-09" border="0" alt="C360_2010-07-31 13-29-09" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132909_thumb.jpg" width="244" height="184" /></a> </p>
<p>经管类</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132930.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-29-30" border="0" alt="C360_2010-07-31 13-29-30" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132930_thumb.jpg" width="244" height="184" /></a> </p>
<p>古代文学类</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133009.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-30-09" border="0" alt="C360_2010-07-31 13-30-09" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133009_thumb.jpg" width="244" height="184" /></a>&#160; </p>
</p>
<p>套书类之一</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132937.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-29-37" border="0" alt="C360_2010-07-31 13-29-37" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731132937_thumb.jpg" width="244" height="184" /></a></p>
<p>套书类之二</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133037.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-30-37" border="0" alt="C360_2010-07-31 13-30-37" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133037_thumb.jpg" width="644" height="484" /></a> </p>
<p>书架全貌。</p>
<p>如果，我早点有锦书可用的话，我们家的书架也许不会堆这么多书。</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133317.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-33-17" border="0" alt="C360_2010-07-31 13-33-17" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133317_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133352.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="C360_2010-07-31 13-33-52" border="0" alt="C360_2010-07-31 13-33-52" src="http://www.zhuangbiaowei.com/blog/upload/795f5b47f72b_CDCE/C360_20100731133352_thumb.jpg" width="644" height="484" /></a> </p>
<p><font color="#ff0000" size="5" face="楷体_GB2312">《Bambook锦书》&#8211;盛大创新院出品！8月9日，震撼内测，敬请期待!</font></p>
<p><a title="http://bambook.sdo.com/" href="http://bambook.sdo.com/">http://bambook.sdo.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=344</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>舟山自驾游[多图]</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=343</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=343#comments</comments>
		<pubDate>Mon, 26 Jul 2010 06:16:07 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[生活记事]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=343</guid>
		<description><![CDATA[一、舟山跨海大桥组图 &#160; 二、舟山喜来登绿城酒店 三、大青山自驾游线路 四、老友强海鲜面 http://www.dianping.com/shop/2063446 &#160; 五、回程时的蓝天]]></description>
			<content:encoded><![CDATA[</p>
<p>一、舟山跨海大桥组图</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131733.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-17-33" border="0" alt="C360_2010-07-24 13-17-33" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131733_thumb.jpg" width="644" height="484" /></a> </p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131751.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-17-51" border="0" alt="C360_2010-07-24 13-17-51" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131751_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131803.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-18-03" border="0" alt="C360_2010-07-24 13-18-03" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724131803_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132030.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-20-30" border="0" alt="C360_2010-07-24 13-20-30" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132030_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132049.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-20-49" border="0" alt="C360_2010-07-24 13-20-49" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132049_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132123.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-21-23" border="0" alt="C360_2010-07-24 13-21-23" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132123_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132135.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-21-35" border="0" alt="C360_2010-07-24 13-21-35" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132135_thumb.jpg" width="644" height="484" /></a>&#160; <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132207.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-22-07" border="0" alt="C360_2010-07-24 13-22-07" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132207_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132221.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 13-22-21" border="0" alt="C360_2010-07-24 13-22-21" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724132221_thumb.jpg" width="364" height="484" /></a> </p>
<p>二、舟山喜来登绿城酒店</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142123.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 14-21-23" border="0" alt="C360_2010-07-24 14-21-23" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142123_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142148.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 14-21-48" border="0" alt="C360_2010-07-24 14-21-48" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142148_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142202.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 14-22-02" border="0" alt="C360_2010-07-24 14-22-02" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142202_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142223.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 14-22-23" border="0" alt="C360_2010-07-24 14-22-23" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724142223_thumb.jpg" width="644" height="484" /></a> </p>
<p>三、大青山自驾游线路</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165245.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 16-52-45" border="0" alt="C360_2010-07-24 16-52-45" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165245_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165257.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 16-52-57" border="0" alt="C360_2010-07-24 16-52-57" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165257_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165323.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 16-53-23" border="0" alt="C360_2010-07-24 16-53-23" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165323_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165837.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 16-58-37" border="0" alt="C360_2010-07-24 16-58-37" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724165837_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724170602.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 17-06-02" border="0" alt="C360_2010-07-24 17-06-02" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724170602_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724171912.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 17-19-12" border="0" alt="C360_2010-07-24 17-19-12" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724171912_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724171930.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 17-19-30" border="0" alt="C360_2010-07-24 17-19-30" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724171930_thumb.jpg" width="364" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724172005.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 17-20-05" border="0" alt="C360_2010-07-24 17-20-05" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724172005_thumb.jpg" width="364" height="484" /></a><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724172917.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-24 17-29-17" border="0" alt="C360_2010-07-24 17-29-17" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100724172917_thumb.jpg" width="644" height="484" /></a> </p>
<p>四、老友强海鲜面</p>
<p><a href="http://www.dianping.com/shop/2063446">http://www.dianping.com/shop/2063446</a></p>
<p>&#160;</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725125441.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 12-54-41" border="0" alt="C360_2010-07-25 12-54-41" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725125441_thumb.jpg" width="644" height="484" /></a> </p>
<p>五、回程时的蓝天</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142117.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-21-17" border="0" alt="C360_2010-07-25 14-21-17" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142117_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142128.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-21-28" border="0" alt="C360_2010-07-25 14-21-28" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142128_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142142.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-21-42" border="0" alt="C360_2010-07-25 14-21-42" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142142_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142247.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-22-47" border="0" alt="C360_2010-07-25 14-22-47" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142247_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142257.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-22-57" border="0" alt="C360_2010-07-25 14-22-57" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142257_thumb.jpg" width="644" height="484" /></a> <a href="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142348.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="C360_2010-07-25 14-23-48" border="0" alt="C360_2010-07-25 14-23-48" src="http://www.zhuangbiaowei.com/blog/upload//2010/07/C360_20100725142348_thumb.jpg" width="644" height="484" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=343</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RubyConfChina 2010演讲视频放出</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=284</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=284#comments</comments>
		<pubDate>Thu, 08 Jul 2010 05:55:56 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=284</guid>
		<description><![CDATA[整个会议的视频专辑地址在： http://v.ku6.com/playlist/index_3811528.html]]></description>
			<content:encoded><![CDATA[<p><embed src="http://player.ku6.com/refer/puAuQLPeB7HXBuX9/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" allowfullscreen="true" type="application/x-shockwave-flash"></embed>
<p>整个会议的视频专辑地址在：</p>
<p><a href="http://v.ku6.com/playlist/index_3811528.html">http://v.ku6.com/playlist/index_3811528.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=284</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Conf China演讲PPT放出</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=283</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=283#comments</comments>
		<pubDate>Sat, 26 Jun 2010 14:26:34 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=283</guid>
		<description><![CDATA[Ruby,no sql and tokyocabinet View more presentations from 庄 表伟. 今天演讲的效果还是不错的，demo也顺利的跑出来了，嗯，不错！]]></description>
			<content:encoded><![CDATA[<div style="width: 425px" id="__ss_4621156"><strong style="margin: 12px 0px 4px; display: block"><a title="Ruby,no sql and tokyocabinet" href="http://www.slideshare.net/zhuangbiaowei/rubyno-sql-and-tokyocabinet">Ruby,no sql and tokyocabinet</a></strong><object id="__sse4621156" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rubynosqlandtokyocabinet-100626090138-phpapp02&amp;stripped_title=rubyno-sql-and-tokyocabinet" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed name="__sse4621156" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rubynosqlandtokyocabinet-100626090138-phpapp02&amp;stripped_title=rubyno-sql-and-tokyocabinet" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/zhuangbiaowei">庄 表伟</a>.</div>
</p></div>
<p>今天演讲的效果还是不错的，demo也顺利的跑出来了，嗯，不错！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=283</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>云计算编程大赛&#8212;&#8212;平台级开发的挑战！</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=281</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=281#comments</comments>
		<pubDate>Tue, 01 Jun 2010 01:29:55 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=281</guid>
		<description><![CDATA[当今的IT业界，最火的词，只怕就是“云计算”了吧。很多人对于流行热门的词汇， 往往不屑一顾，称之为buzzword。不过，图灵出版社&#38;CSDN的主编刘江先生，在2010年第五期的《程序员》杂志卷首语中，开宗明义的指出：“在IT技术发展的历程中，buzzword建立奇功的例子屡见不鲜。” 而“云计算”，则是新一轮IT技术大发展的标志性词汇。在云计算的大旗下，汇集了众多的技术分支：并行计算（Parallel Computing）、分布式计算（Distributed Computing）、虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等等。 在这样的技术大潮之下，有一个方向应该被称之为“云计算”的正宗！“任何一段代码，都可以被分配到任何一台电脑上执行，巨量的、繁复的计算与执行任务，能够被透明的、高效的、均匀的分配到海量的计算资源上执行，充分利用计算机群的计算能力。” 这是一个非常有难度，也非常有价值的研究方向。 目前，盛大创新院，举办了一个“云计算脚本虚拟机”的技术大赛，这次大赛，是2010年“盛大校园牛人”创新技术大赛的一部分，更进一步的，则是整个盛大高校节的一部分。 这个题目，的确非常的难，具有超高的挑战性，因此，大赛组委会设计了一个循序渐进的题目与比赛规则，从最简单的“Hello World”到极度复杂的跨服务器，跨脚本联合定时任务，完全可以任你发挥。作为一个深度和广度都足够的挑战项目，最适合真正的牛人，来展现自己的实力！ 优秀参赛者，将会机会获得优越的职业发展前途、来自盛大网络的投资和佣金分红，更有30W丰盛奖金等你来拿！因为有你，技术才真的创新！ &#160; 参赛地址：http://ic.sdo.com 盛大高校节总站：http://campus.snda.com]]></description>
			<content:encoded><![CDATA[<p>当今的IT业界，最火的词，只怕就是“云计算”了吧。很多人对于流行热门的词汇， 往往不屑一顾，称之为buzzword。不过，图灵出版社&amp;CSDN的主编刘江先生，在2010年第五期的《程序员》杂志卷首语中，开宗明义的指出：“在IT技术发展的历程中，buzzword建立奇功的例子屡见不鲜。”</p>
<p>而“云计算”，则是新一轮IT技术大发展的标志性词汇。在云计算的大旗下，汇集了众多的技术分支：并行计算（Parallel Computing）、分布式计算（Distributed Computing）、虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等等。</p>
<p>在这样的技术大潮之下，有一个方向应该被称之为“云计算”的正宗！“任何一段代码，都可以被分配到任何一台电脑上执行，巨量的、繁复的计算与执行任务，能够被透明的、高效的、均匀的分配到海量的计算资源上执行，充分利用计算机群的计算能力。” 这是一个非常有难度，也非常有价值的研究方向。</p>
<p>目前，盛大创新院，举办了一个“云计算脚本虚拟机”的技术大赛，这次大赛，是2010年“盛大校园牛人”创新技术大赛的一部分，更进一步的，则是整个盛大高校节的一部分。</p>
<p>这个题目，的确非常的难，具有超高的挑战性，因此，大赛组委会设计了一个循序渐进的题目与比赛规则，从最简单的“Hello World”到极度复杂的跨服务器，跨脚本联合定时任务，完全可以任你发挥。作为一个深度和广度都足够的挑战项目，最适合真正的牛人，来展现自己的实力！</p>
<p>优秀参赛者，将会机会获得优越的职业发展前途、来自盛大网络的投资和佣金分红，更有30W丰盛奖金等你来拿！因为有你，技术才真的创新！</p>
<p>&#160;</p>
<p>参赛地址：<a href="http://ic.sdo.com">http://ic.sdo.com</a></p>
<p>盛大高校节总站：<a href="http://campus.snda.com/">http://campus.snda.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=281</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCDatabase介绍（3）</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=280</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=280#comments</comments>
		<pubDate>Sat, 15 May 2010 14:59:46 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=280</guid>
		<description><![CDATA[四、存储数据结构 1、TCT的存储数据结构 TC的不同的数据类型，有不同的数据存储结构。这里主要介绍TC的Table类型的存储结构。 每个TC的Table，起码有一个*.tct文件。这个tct，是在hash数据库的基础上改进而来的。下面转贴几张张宴的PPT里的图。 TCT的改进，就是在Hash的Key-Value的Value部分，动了一些手脚，将多个字段打成一个大包，都存在一个Value里去了。 另外，TCTDB，有可能会有一个*.tct.idx文件，这个idx，是一个B+Tree结构，将一个table中的各个需要建立索引的字段数据，在TCBDB中建立索引。 TCBDB的结构图如下： 在idx文件里，则是将value与key反过来存放。 2、TCDatabase的存储数据结构 为了解决之前提到过的TCTDB存在的问题，我们设想的TCDatabase的结构，将是这样的： 1、表结构(data.tcb.cfg) TCHDB table_name1 =&#62; {column1=&#62;string,column2=&#62;int} table_name1_count =&#62; 10 table_name1_index =&#62; {column1,column2} table_name2 =&#62; {column1=&#62;string,column2=&#62;int} table_name2_count =&#62; 10 table_name2_index =&#62; {column1,column2} 2、记录集(data.tcb)&#160; TCBDB table_name1/pkey1.column1 =&#62; value1 table_name1/pkey1.column2 =&#62; value2 table_name1/pkey2.column1 =&#62; value3 table_name1/pkey2.column2 =&#62; value4 table_name2/pkey1.column1 =&#62; value5 table_name2/pkey1.column2 =&#62; value6 3、索引(data.tcb.idx)&#160; TCBDB table_name1/column1/value1\0pkey1 =&#62; pkey1 [...]]]></description>
			<content:encoded><![CDATA[<h2>四、存储数据结构</h2>
<h3>1、TCT的存储数据结构</h3>
<p>TC的不同的数据类型，有不同的数据存储结构。这里主要介绍TC的Table类型的存储结构。</p>
<p>每个TC的Table，起码有一个*.tct文件。这个tct，是在hash数据库的基础上改进而来的。下面转贴几张<a href="http://blog.s135.com/attachment/201004/dtcc_tc_tt_tcsql.pdf">张宴的PPT</a>里的图。</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/05/abca024d7c214bbdb04ead04237cd8e9.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="abca024d-7c21-4bbd-b04e-ad04237cd8e9" border="0" alt="abca024d-7c21-4bbd-b04e-ad04237cd8e9" src="http://www.zhuangbiaowei.com/blog/upload//2010/05/abca024d7c214bbdb04ead04237cd8e9_thumb.png" width="244" height="222" /></a><a href="http://www.zhuangbiaowei.com/blog/upload//2010/05/665ba35ee9d9422f877c483bd93d4792.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="665ba35e-e9d9-422f-877c-483bd93d4792" border="0" alt="665ba35e-e9d9-422f-877c-483bd93d4792" src="http://www.zhuangbiaowei.com/blog/upload//2010/05/665ba35ee9d9422f877c483bd93d4792_thumb.png" width="244" height="187" /></a></p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/05/fb69c4c9bf1049ff865ecf7cf20ffdcd4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="fb69c4c9-bf10-49ff-865e-cf7cf20ffdcd[4]" border="0" alt="fb69c4c9-bf10-49ff-865e-cf7cf20ffdcd[4]" src="http://www.zhuangbiaowei.com/blog/upload//2010/05/fb69c4c9bf1049ff865ecf7cf20ffdcd4_thumb.png" width="506" height="250" /></a></p>
<p>TCT的改进，就是在Hash的Key-Value的Value部分，动了一些手脚，将多个字段打成一个大包，都存在一个Value里去了。</p>
<p>另外，TCTDB，有可能会有一个*.tct.idx文件，这个idx，是一个B+Tree结构，将一个table中的各个需要建立索引的字段数据，在TCBDB中建立索引。</p>
<p>TCBDB的结构图如下：</p>
<p><a href="http://www.zhuangbiaowei.com/blog/upload//2010/05/a408324ccc2143b6b35c21e5f3b16c57.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="a408324c-cc21-43b6-b35c-21e5f3b16c57" border="0" alt="a408324c-cc21-43b6-b35c-21e5f3b16c57" src="http://www.zhuangbiaowei.com/blog/upload//2010/05/a408324ccc2143b6b35c21e5f3b16c57_thumb.png" width="244" height="227" /></a></p>
<p>在idx文件里，则是将value与key反过来存放。</p>
<h3>2、TCDatabase的存储数据结构</h3>
</p>
</p>
<p>为了解决之前提到过的TCTDB存在的问题，我们设想的TCDatabase的结构，将是这样的：</p>
<blockquote><p>1、表结构(data.tcb.cfg) TCHDB     <br />table_name1 =&gt; {column1=&gt;string,column2=&gt;int}      <br />table_name1_count =&gt; 10      <br />table_name1_index =&gt; {column1,column2}      <br />table_name2 =&gt; {column1=&gt;string,column2=&gt;int}      <br />table_name2_count =&gt; 10      <br />table_name2_index =&gt; {column1,column2}      <br />2、记录集(data.tcb)&#160; TCBDB      <br />table_name1/pkey1.column1 =&gt; value1      <br />table_name1/pkey1.column2 =&gt; value2      <br />table_name1/pkey2.column1 =&gt; value3      <br />table_name1/pkey2.column2 =&gt; value4      <br />table_name2/pkey1.column1 =&gt; value5      <br />table_name2/pkey1.column2 =&gt; value6      <br />3、索引(data.tcb.idx)&#160; TCBDB      <br />table_name1/column1/value1\0pkey1 =&gt; pkey1      <br />table_name1/column1/value3\0pkey2 =&gt; pkey2      <br />table_name1/column2/value2\0pkey1 =&gt; pkey1      <br />table_name1/column2/value4\0pkey2 =&gt; pkey2      <br />table_name2/column1/value5\0pkey1 =&gt; pkey1      <br />table_name2/column1/value6\0pkey2 =&gt; pkey2</p>
</blockquote>
<p>下面做一些解释：</p>
<ul>
<li>增加一个cfg文件，一个Hash DB方式存储表结构信息，包括一个表包含哪些字段，这些字段分别是什么属性，一个表的记录总数，这个表需要建立哪些索引等等。</li>
<li>记录集以B+ Tree方式存放，而非原来的Hash DB，这样可以在数据量上亿以后，获得更好的性能</li>
<li>在记录集中，一行数据的各个字段的值，分别存在不同的key-value中，因此，如果一个表有3个字段，那么它的每条记录，就要占3个key。</li>
<li>在读写数据时，有两种方式可以选择：按行读写，或按列读写</li>
<ul>
<li>所谓按行读写，就是一次读写一个primary key指向的n个字段，具体有哪些字段，由cfg决定。</li>
<li>所谓按列读写，就是一次只读写一个primary key指向的那一行中的具体一个字段，这时的读写，不受cfg中的table字段定义的限制。</li>
</ul>
<li>索引数据，以B+ Tree方式存放，因为不同的行(primary key)，在某一个字段，可能存在值重复，因此key的规则为：value\0key。这样保证每一个primary key，会有一个对应的索引key。如果以“table_name/column/value”的方式查询，则可以将同值的多个key，都查出来。</li>
</ul>
<p>（未完待续）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=280</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCDatabase介绍（2）</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=270</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=270#comments</comments>
		<pubDate>Tue, 11 May 2010 13:35:47 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=270</guid>
		<description><![CDATA[三、TokyoTyrant的网络协议 1、简单介绍 介绍这个，其实价值不大，因为详细的文档都在那里呢：http://1978th.net/tokyotyrant/spex.html#protocol 不过，还是要说一下，因为我对TT的协议，颇有些不满。 TT的协议，各位如果仔细看，就会发现，这是一个典型的未经重构的，临时拼凑起来的协议。最初的TT，只考虑了基本的put、putkeep、putcat、out、get、mget等等命令，每个命令都以0xC8开头，然后再加上一个16位二进制数。 put          0&#215;10 putkeep   0&#215;11 putcat      0&#215;12 putshl      0&#215;13 putnr       0&#215;18 out          0&#215;20 get          0&#215;30 mget       0&#215;31 …… 但是，他还有一个misc命令，所有与Table数据类相关的命令，都包含在misc里面，misc的格式是这样的： [magic:2][nsiz:4][opts:4][rnum:4][nbuf:*][{[asiz:4][abuf:*]}:*] magic:  0xC8 0&#215;90 nsiz:     name的长度 opts:    option参数 rnum:   后续参数的个数 nbuf:    name asiz与abuf交替出现，表示每一个参数 因此，我们针对RDBTBL的操作，最终都会调用misc命令。 rdb = RDB::new rdb.open(&#8220;localhost&#8221;, 3900) rdb.put(&#8220;foo&#8221;, &#8220;hop&#8221;) #发出0xC8 0&#215;10 0&#215;0003 0&#215;0003  &#8220;foo&#8221;    &#8220;hop&#8221; #      magiccode ksiz      vsiz       kbuf*   [...]]]></description>
			<content:encoded><![CDATA[<h2>三、TokyoTyrant的网络协议</h2>
<h3>1、简单介绍</h3>
<p>介绍这个，其实价值不大，因为详细的文档都在那里呢：<a href="http://1978th.net/tokyotyrant/spex.html#protocol">http://1978th.net/tokyotyrant/spex.html#protocol</a></p>
<p>不过，还是要说一下，因为我对TT的协议，颇有些不满。</p>
<p>TT的协议，各位如果仔细看，就会发现，这是一个典型的未经重构的，临时拼凑起来的协议。最初的TT，只考虑了基本的put、putkeep、putcat、out、get、mget等等命令，每个命令都以0xC8开头，然后再加上一个16位二进制数。</p>
<blockquote><p>put          0&#215;10</p>
<p>putkeep   0&#215;11</p>
<p>putcat      0&#215;12</p>
<p>putshl      0&#215;13</p>
<p>putnr       0&#215;18</p>
<p>out          0&#215;20</p>
<p>get          0&#215;30</p>
<p>mget       0&#215;31</p>
<p>……</p></blockquote>
<p>但是，他还有一个misc命令，所有与Table数据类相关的命令，都包含在misc里面，misc的格式是这样的：</p>
<blockquote><p>[magic:2][nsiz:4][opts:4][rnum:4][nbuf:*][{[asiz:4][abuf:*]}:*]</p>
<p>magic:  0xC8 0&#215;90</p>
<p>nsiz:     name的长度</p>
<p>opts:    option参数</p>
<p>rnum:   后续参数的个数</p>
<p>nbuf:    name</p>
<p>asiz与abuf交替出现，表示每一个参数</p></blockquote>
<p>因此，我们针对RDBTBL的操作，最终都会调用misc命令。</p>
<blockquote><p>rdb = RDB::new</p>
<p>rdb.open(&#8220;localhost&#8221;, 3900)</p>
<p>rdb.put(&#8220;foo&#8221;, &#8220;hop&#8221;)</p>
<p>#发出0xC8 0&#215;10 0&#215;0003 0&#215;0003  &#8220;foo&#8221;    &#8220;hop&#8221;</p>
<p>#      magiccode ksiz      vsiz       kbuf*   vbuf*</p></blockquote>
<blockquote><p>rdb = RDBTBL::new</p>
<p>rdb.open(&#8220;localhost&#8221;,3900)</p>
<p>rdb.put(&#8220;foo&#8221;,{&#8220;hop&#8221;=&gt;&#8221;value&#8221;})</p>
<p>#发出0xC8 0&#215;90 0&#215;0003 0&#215;0000  0&#215;0003  &#8220;put&#8221;    0&#215;0003 &#8220;foo&#8221;     0&#215;0003 &#8220;hop&#8221;    0&#215;0005 &#8220;value&#8221;</p>
<p>magiccode nsiz      opts      rnum      nbuf*  asiz1    abuf1*  asiz2    abuf2*  asiz3    abuf3*</p></blockquote>
<p>看上去非常类似的代码，发出的网络数据流，却完全不同。</p>
<h3>2、misc的问题</h3>
<p>TT的协议中，最麻烦的，就是这个misc命令，效率最低的，也是这个misc命令，Table型数据，一共支持10个不同的命令，却全部被堆到一个misc里来完成了。</p>
<p>按照某种合理的逻辑，这些命令，应该跟正常的其他命令类似，各自分配到自己的magic code，各自有自己的命令格式和定义，而不是像现在这个样子。</p>
<p>即使是这个misc本身，也非常糟糕，将key与value，放到一个数组里，而且整个数组也没有一个总的长度，使得解析也变得效率低下了。</p>
<p>目前的TCDatabase，因为是在TT的skeleton基础上开发，因此接收的命令与TT完全一致。这当然降低了开发的难度。但是，要想进一步改善TT，或者说要想做出一个TCDatabase，抛弃现有的二进制协议，另起炉灶，应该是一个必然的选择。</p>
<h3>3、TCDatabase的协议设想</h3>
<p>这个是一个初步的设想，还需要跟<a href="http://www.cnblogs.com/riceball/">riceball</a>详细讨论，才能确定下来：</p>
<blockquote>
<ul>
<li>每个命令一个不同的magic code</li>
<li>[key_size] 如果需要key作为参数的话</li>
<li>[key_buf*] 如果需要key作为参数的话</li>
<li>[opts]        选项</li>
<li>[arguments_size]  参数总长度</li>
<li>[arguments_length]  参数个数</li>
<li>[arguments_1_size]  第一个参数的长度</li>
<li>[arguments_1_buf*]  第一个参数</li>
<li>……</li>
</ul>
</blockquote>
<p>相比原来的TT协议，这样应该更容易解析一些，效率也会有提升。</p>
<p>(待续)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=270</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCDatabase介绍（1）</title>
		<link>http://www.zhuangbiaowei.com/blog/?p=269</link>
		<comments>http://www.zhuangbiaowei.com/blog/?p=269#comments</comments>
		<pubDate>Sat, 08 May 2010 14:55:35 +0000</pubDate>
		<dc:creator>庄表伟</dc:creator>
				<category><![CDATA[软件开发]]></category>

		<guid isPermaLink="false">http://www.zhuangbiaowei.com/blog/?p=269</guid>
		<description><![CDATA[TCDatabase，是我在创新院的同事，riceball的一个开源项目。http://code.google.com/p/tcdatabase 他自己也写了两篇blog作介绍。tcdatabase(一）&#160;tcdatabase(二) 不过我总感觉写得太像干巴巴的技术文档了，所以我自告奋勇的来帮他另写一个介绍，以下是第一部分： &#160; 一、TokyoCabinet、TokyoTyrant简介 我们常说的TC/TT，是TokyoCabinet/TokyoTyrant的简称。这两个开源项目，都是由日本人平林幹雄开发的。（Mikio Hirabayashi&#8217;s Homepage twitter: @hirabayashiM） 1、TokyoCabinet TC，是一个Key-Value的数据库library，你可以通过C语言程序来访问TC提供的各种函数，也可以使用其他各种语言绑定，例如perl、ruby、java、lua。 TC对外的表现形式，无非是一组put/get方法，从内部实现来说，TC一共支持6种不同的数据结构，包括hash数据库，B+树数据库，定长数据库、表格数据库、内存hash数据库以及内存B+树数据库。 以ruby语言举例： hdb = HDB::new hdb.open(&#34;casket.tch&#34;, HDB::OWRITER &#124; HDB::OCREAT) hdb.put(&#34;foo&#34;, &#34;hop&#34;) value = hdb.get(&#34;foo&#34;) hdb.close 这样就可以创建一个名为casket.tch的Hash数据库文件，并进行put/get的操作。 也可以通过ADB（Abstract database），以完全相同的API，创建并访问不同的数据库。 adb = ADB::new adb.open(name)&#160; … adb.close 其中，如果name为*，则创建一个内存hash数据库；name为+，则是内存B+树数据库；文件名为*.tch、*.tcb、*.tcf、*.tct则分别对应于hash、B+Tree、fixed-length和table类型。 2、TokyoTyrant 至于TT，则是在TC基础上实现的一个server。TT接受来自socket连接的各种请求，作为一个网络服务而存在着。通常我们会这样来启动TT。 ttserver –port 3900 /ttdata/casket.tch 这样，在3900端口，就启动了一个数据库服务，这个数据库的数据，就保存在/ttdata/casket.tch中。 而在client端，也多种不同的语言实现，例如ruby的代码会写成这样： rdb = RDB::new rdb.open(&#34;localhost&#34;, 3900) rdb.put(&#34;foo&#34;, &#34;hop&#34;) value = rdb.get(&#34;foo&#34;) [...]]]></description>
			<content:encoded><![CDATA[<p>TCDatabase，是我在创新院的同事，<a href="http://www.cnblogs.com/riceball/" target="_blank">riceball</a>的一个开源项目。<a href="http://code.google.com/p/tcdatabase">http://code.google.com/p/tcdatabase</a></p>
<p>他自己也写了两篇blog作介绍。<a href="http://www.cnblogs.com/riceball/archive/2010/05/07/tcdatabase-1.html">tcdatabase(一）</a>&#160;<a href="http://www.cnblogs.com/riceball/archive/2010/05/07/tcdatabase-2.html">tcdatabase(二)</a></p>
<p>不过我总感觉写得太像干巴巴的技术文档了，所以我自告奋勇的来帮他另写一个介绍，以下是第一部分：</p>
<p>&#160;</p>
<h2>一、TokyoCabinet、TokyoTyrant简介</h2>
<p>我们常说的TC/TT，是TokyoCabinet/TokyoTyrant的简称。这两个开源项目，都是由日本人平林幹雄开发的。（<a href="http://1978th.net/">Mikio Hirabayashi&#8217;s Homepage</a> twitter: @hirabayashiM）</p>
<h3>1、TokyoCabinet</h3>
<p>TC，是一个<font color="#0000ff">Key-Value的数据库library</font>，你可以通过C语言程序来访问TC提供的各种函数，也可以使用其他各种语言绑定，例如perl、ruby、java、lua。</p>
<p>TC对外的表现形式，无非是一组put/get方法，从内部实现来说，TC一共支持6种不同的数据结构，包括hash数据库，B+树数据库，定长数据库、表格数据库、内存hash数据库以及内存B+树数据库。</p>
<p>以ruby语言举例：</p>
<blockquote><p>hdb = HDB::new</p>
<p>hdb.open(&quot;casket.tch&quot;, HDB::OWRITER | HDB::OCREAT)</p>
<p>hdb.put(&quot;foo&quot;, &quot;hop&quot;)</p>
<p>value = hdb.get(&quot;foo&quot;)</p>
<p>hdb.close</p>
</blockquote>
<p>这样就可以创建一个名为casket.tch的Hash数据库文件，并进行put/get的操作。</p>
<p>也可以通过ADB（Abstract database），以完全相同的API，创建并访问不同的数据库。</p>
<blockquote><p>adb = ADB::new</p>
<p>adb.open(name)&#160; </p>
<p>…</p>
<p>adb.close</p>
</blockquote>
<p>其中，如果name为*，则创建一个内存hash数据库；name为+，则是内存B+树数据库；文件名为*.tch、*.tcb、*.tcf、*.tct则分别对应于hash、B+Tree、fixed-length和table类型。</p>
<h3>2、TokyoTyrant</h3>
<p>至于TT，则是<font color="#0000ff">在TC基础上实现的一个server</font>。TT接受来自socket连接的各种请求，作为一个网络服务而存在着。通常我们会这样来启动TT。</p>
<blockquote><p>ttserver –port 3900 /ttdata/casket.tch</p>
</blockquote>
<p>这样，在3900端口，就启动了一个数据库服务，这个数据库的数据，就保存在/ttdata/casket.tch中。</p>
<p>而在client端，也多种不同的语言实现，例如ruby的代码会写成这样：</p>
<blockquote><p>rdb = RDB::new</p>
<p>rdb.open(&quot;localhost&quot;, 3900)</p>
<p>rdb.put(&quot;foo&quot;, &quot;hop&quot;)</p>
<p>value = rdb.get(&quot;foo&quot;)</p>
<p>rdb.close</p>
</blockquote>
<p>对于table类型的数据库，则需要创建一个RDBTBL的对象实例，因为它提供了更多的一些访问API，例如：</p>
<blockquote><p>rdb = RDBTBL::new</p>
<p>rdb.open(&quot;localhost&quot;, 1978)</p>
<p>rdb.put(&quot;1&quot;, { &quot;name&quot; =&gt; &quot;mikio&quot;, &quot;age&quot; =&gt; &quot;30&quot;, &quot;lang&quot; =&gt; &quot;ja,en,c&quot; })</p>
<p>qry = RDBQRY::new(rdb)</p>
<p>qry = RDBQRY::new(rdb) </p>
<p>qry.addcond(&quot;age&quot;, RDBQRY::QCNUMGE, &quot;20&quot;) </p>
<p>qry.addcond(&quot;lang&quot;, RDBQRY::QCSTROR, &quot;ja,en&quot;) </p>
<p>qry.setorder(&quot;name&quot;, RDBQRY::QOSTRASC)</p>
<p>qry.setlimit(10) </p>
<p>res = qry.search </p>
<p>res.each do |rkey| </p>
<p>&#160; rcols = rdb.get(rkey) </p>
<p>&#160; printf(&quot;name:%s\n&quot;, rcols[&quot;name&quot;]) </p>
<p>end</p>
</blockquote>
<p>这样的操作，就已经相当接近于对一个传统表的操作了。</p>
<p>&#160;</p>
<h2>二、TCDatabase对TokyoTyrant的扩展</h2>
<h3>1、skeleton机制</h3>
<p>TT对于扩展的支持相当友好，在ttserver中，有一个-skel参数，可以在启动ttserver的时候，挂一个自己写的骨架系统，例如：</p>
<blockquote><p>ttserver -skel mydb.so -port 3900 myfile.tct</p>
</blockquote>
<p>这样，ttserver的功能，就成了一个简单的网络接口，而接收到的各种请求，都为转交给mydb.so来处理。接下来的事情，就海阔天空了。对于client端来说，他访问的是标准的TT接口，而在server端，却完全可以通过自己写的一个扩展，将数据存到mysql里面去。</p>
<p>而tcdatabase，就是TT的一个skeleton实现。所以，他的启动参数是这样的：</p>
<blockquote><p>ttserver -skel tcdatabase.so -port 3900 db_filename.tcb</p>
</blockquote>
<h3>2、TCTDB的不足之处</h3>
<p>作为最像传统表的Key-Value数据库，TCTDB有很多优点，这成为我们项目选择的主要考虑对象，但是它也存在着诸多问题：</p>
<ul>
<li>一个Table Database仅支持一个表，也就是说value中的字段必须固定一致。假设一个项目中使用了80多个表，这意味着你需要开启80多个 ttserver进程，并为每一个“表”提供支持。 </li>
<li>功能的增强,也就意味着要牺牲性能。TCTDB 表格型数据库的平均读取速度大约在40万条/秒,相比 TCHDB哈希数据库的180万条/秒和TCBDB B+Tree数据库 的100万条/秒要慢。 </li>
<li>TCTDB虽然可以建立数值型索引,但是它是将所有value数据都当成字符型来处理的,无法区分value类型。 </li>
<li>TCTDB单数据库文件存储的记录数上亿条后,性能会有比较明显的下降。 </li>
<li>不能单独获取value中的某一个字段的值； </li>
<li>不能支持仅更新UPDATE key中某一个字段：必须先取出value的全部字段，再存入； </li>
</ul>
<h3>3、TCDatabase的改进</h3>
<ul>
<li>支持多个table从一个端口访问，从table变成真正的database， </li>
<li>数据文件改用采用TCBDB(B+Tree Database)进行存储，为了解决数据量上亿后的HashDB性能的问题 </li>
<li>支持列读写 </li>
<li>应该还有其它更多改进，不过都还在规划之中 </li>
</ul>
<h3>&#160;</h3>
<p>(待续)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhuangbiaowei.com/blog/?feed=rss2&amp;p=269</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
