<?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>李文兵 &#187; blog</title>
	<atom:link href="http://liwenbing.cn/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://liwenbing.cn</link>
	<description>世界上最好最美的东西你看不见，也摸不着.......但是能在心里感受到</description>
	<lastBuildDate>Fri, 21 May 2010 00:56:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>站点终于恢复了</title>
		<link>http://liwenbing.cn/2010/01/31/%e7%ab%99%e7%82%b9%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%e4%ba%86/</link>
		<comments>http://liwenbing.cn/2010/01/31/%e7%ab%99%e7%82%b9%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%e4%ba%86/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 13:29:50 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=295</guid>
		<description><![CDATA[非常感谢redphp.net,这家host不错。虽然源于国内无耻的严打，经过一点折腾，终于回到正常。我一个小小blog就这么麻烦，真不知道国内那些网站怎么过来的。 希望国内互联网环境能恢复理性健康。]]></description>
			<content:encoded><![CDATA[<p>非常感谢redphp.net,这家host不错。虽然源于国内无耻的严打，经过一点折腾，终于回到正常。我一个小小blog就这么麻烦，真不知道国内那些网站怎么过来的。</p>
<p>希望国内互联网环境能恢复理性健康。</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2010/01/31/%e7%ab%99%e7%82%b9%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%e4%ba%86/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>一直在写</title>
		<link>http://liwenbing.cn/2009/09/14/keep-writing/</link>
		<comments>http://liwenbing.cn/2009/09/14/keep-writing/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 15:25:15 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=282</guid>
		<description><![CDATA[刚和同学聊天时，问我blog怎么好长时间都没有更新了。看了看上篇文章的日期，离现在也有两个月有余了，有些惭愧。最近在做一些有意思的技术调研，倒是会在接下来的文章中分享一些。其实这段日子也在写一些东西，不过不在自己的blog上面了罢了。 带给PHP 和 Java 世界的双赢  (朱可&#38;me) -《 程序员》杂志 2009年09月刊 Ajax &#8211; 超越桌面的Web 用户体验 &#8211; 《WebSphere 中国》纸质杂志第二期 在WebSphere sMash中使用Dojo开发Ajax的Web应用程序 &#8211; developerWorks 时间总是匆匆，让我们继续前行&#8230;]]></description>
			<content:encoded><![CDATA[<p>刚和同学聊天时，问我blog怎么好长时间都没有更新了。看了看上篇文章的日期，离现在也有两个月有余了，有些惭愧。最近在做一些有意思的技术调研，倒是会在接下来的文章中分享一些。其实这段日子也在写一些东西，不过不在自己的blog上面了罢了。</p>
<ul>
<li>带给PHP 和 Java 世界的双赢  (<a href="http://www.netvibes.com/shawnzhu" target="_blank">朱可</a>&amp;me) -《 程序员》杂志 2009年09月刊</li>
<li>Ajax &#8211; 超越桌面的Web 用户体验 &#8211; 《<a href="http://www.webspherechina.net" target="_blank">WebSphere 中国</a>》纸质杂志第二期</li>
<li><a href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0909_smash_dojo_Ajaxdev/index.html" target="_blank">在WebSphere sMash中使用Dojo开发Ajax的Web应用程序</a> &#8211; developerWorks</li>
</ul>
<p>时间总是匆匆，让我们继续前行&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2009/09/14/keep-writing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>怎么用twitter？</title>
		<link>http://liwenbing.cn/2009/05/02/how-to-use-twitter/</link>
		<comments>http://liwenbing.cn/2009/05/02/how-to-use-twitter/#comments</comments>
		<pubDate>Fri, 01 May 2009 17:12:09 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=156</guid>
		<description><![CDATA[09年是year of twitter, 这个东西现在火的一塌糊涂，google和facebook对它是羡慕的不得了。国内IT圈中也是刮起了一阵twitter风，好像你没有个twitter都不好意思和别人打招呼。但是当你屁颠屁颠地在上面发点东西的时候，也同时也被大量的信息噪音给淹没。有的人用twitter在聊天，有的人发布的信息非常多但是毫无意义，慢慢地这个东西成为了一种负担。其实twitter火起来有它的原因，但要看怎么来用了。 twitter来至一个简单的想法，告诉别人你在做什么。现在有很多的工具来帮助人们进行交流，比如blog和IM，但是日常发生在自己身上的一些事情使用这样一些工具都不太适合。我们不可以发一个blog告诉别人我在做什么，也不可能在聊天工具上面像疯了似的给每个人发这些消息。然而通过twitter，人们可以进一步加深相互的了解。比如，我的一个好朋友发消息说他在做一道菜。我看到后，很好奇他居然还会做菜呀，于是我们有了公共的兴趣点，可以进一步地聊聊。 从技术上面来讲，twitter的火爆说明了开放API的成功。有了twitter提供的API，就有了它的客户端的繁荣，桌面的、浏览器插件的、手机的&#8230;.任何平台任何环境，只要你想到的都可以找到一堆的twitter客户端。 如果twitter没有这些多的客户端和社区支持，估计也难以流行起来。 话说回来，怎么用twitter呢？我想可以从两点来看，一是你希望收到什么消息；二是你应该给出什么样信息。关于收到什么消息，基本的原则应该是：只follow你所关心的人和事。前端日子follow了很多技术名人的twitter，发现他们发的信息根本都不是我关心的。我并不是他们的朋友，我根本不关心你和谁吃饭了，你今天去哪里运动了。所以很简单，将你并不认识的名人从你的follow列表中删掉，因为你对这些名人其实真正关心只是他的知识，而这些只要订阅他们的blog就可以啦。对于技术和某种事情的关注，follow这个社区的twitter就好了。另外对于那些乱发垃圾消息的人，删除好了。这个世界不是信息太少，而是太多了。 那用twitter应该发什么样的消息呢？我想原则应该是：只发有用的信息，并且这个信息不需要通过其他消息的上下文就能理解。如果是个人还是用twitter的本意就好了，就是发你在做什么，或者发现什么有意思的事情。社区类的twitter可以发当然社区发生重要的事情。切忌使用twitter进行聊天了，因为follow你的人并不一定follow了和你聊天的朋友，所以这些没有上下文的消息就毫无意义。 最后我想到了一位美女同事对于twitter的理解，twitter的消息就像一种缘分，你看到了就是一种缘分，不需要像聊天那么有紧迫感，也不像blog那么正式。所以还是一切随缘吧。]]></description>
			<content:encoded><![CDATA[<p>09年是year of twitter, 这个东西现在火的一塌糊涂，google和facebook对它是羡慕的不得了。国内IT圈中也是刮起了一阵twitter风，好像你没有个twitter都不好意思和别人打招呼。但是当你屁颠屁颠地在上面发点东西的时候，也同时也被大量的信息噪音给淹没。有的人用twitter在聊天，有的人发布的信息非常多但是毫无意义，慢慢地这个东西成为了一种负担。其实twitter火起来有它的原因，但要看怎么来用了。</p>
<p>twitter来至一个简单的想法，告诉别人你在做什么。现在有很多的工具来帮助人们进行交流，比如blog和IM，但是日常发生在自己身上的一些事情使用这样一些工具都不太适合。我们不可以发一个blog告诉别人我在做什么，也不可能在聊天工具上面像疯了似的给每个人发这些消息。然而通过twitter，人们可以进一步加深相互的了解。比如，我的一个好朋友发消息说他在做一道菜。我看到后，很好奇他居然还会做菜呀，于是我们有了公共的兴趣点，可以进一步地聊聊。</p>
<p>从技术上面来讲，twitter的火爆说明了开放API的成功。有了twitter提供的API，就有了它的客户端的繁荣，桌面的、浏览器插件的、手机的&#8230;.任何平台任何环境，只要你想到的都可以找到一堆的twitter客户端。 如果twitter没有这些多的客户端和社区支持，估计也难以流行起来。</p>
<p>话说回来，怎么用twitter呢？我想可以从两点来看，一是你希望收到什么消息；二是你应该给出什么样信息。关于收到什么消息，基本的原则应该是：<strong>只follow你所关心的人和事</strong>。前端日子follow了很多技术名人的twitter，发现他们发的信息根本都不是我关心的。我并不是他们的朋友，我根本不关心你和谁吃饭了，你今天去哪里运动了。所以很简单，将你并不认识的名人从你的follow列表中删掉，因为你对这些名人其实真正关心只是他的知识，而这些只要订阅他们的blog就可以啦。对于技术和某种事情的关注，follow这个社区的twitter就好了。另外对于那些乱发垃圾消息的人，删除好了。这个世界不是信息太少，而是太多了。</p>
<p>那用twitter应该发什么样的消息呢？我想原则应该是：<strong>只发有用的信息，并且这个信息不需要通过其他消息的上下文就能理解。</strong>如果是个人还是用twitter的本意就好了，就是发你在做什么，或者发现什么有意思的事情。社区类的twitter可以发当然社区发生重要的事情。切忌使用twitter进行聊天了，因为follow你的人并不一定follow了和你聊天的朋友，所以这些没有上下文的消息就毫无意义。</p>
<p>最后我想到了一位美女同事对于twitter的理解，<em>twitter的消息就像一种缘分，你看到了就是一种缘分，不需要像聊天那么有紧迫感，也不像blog那么正式</em>。<strong>所以还是一切随缘吧</strong>。</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2009/05/02/how-to-use-twitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>实在是喜欢新版本WordPress</title>
		<link>http://liwenbing.cn/2008/12/11/love-wordpress-new-ui/</link>
		<comments>http://liwenbing.cn/2008/12/11/love-wordpress-new-ui/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 15:31:13 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=105</guid>
		<description><![CDATA[WordPress总是给我带来一些小小的惊喜，刚刚更新到2.7，居然有如此大的变化。 超cool的界面，合理的布局，新的layout，适应各种resolution让我吃惊。不过以前的theme也挺爽的。有时候觉得wordpress就像美女一样，换肤就像换时装一样，需要时髦，嗯。 支持gears了。对我的使用上带来的好处还是非常大的 能够自动更新了。这点非常赞。以前总是提示你要upgrade，我总是要做一系列的事情。现在点个button就可以了。Love it! 导航条可以折叠，关键是缩起来超炫。 每个page的各个module(categories,tags&#8230;)都可以拖拽来调整位置。不过因人而异，默认位置就很好了。 如何？一起来感受美妙软件带来快乐吧。]]></description>
			<content:encoded><![CDATA[<p>WordPress总是给我带来一些小小的惊喜，刚刚更新到2.7，居然有如此大的变化。</p>
<ul>
<li>超cool的界面，合理的布局，新的layout，适应各种resolution让我吃惊。不过以前的theme也挺爽的。有时候觉得wordpress就像美女一样，换肤就像换时装一样，需要时髦，嗯。</li>
<li>支持gears了。对我的使用上带来的好处还是非常大的</li>
<li>能够自动更新了。这点非常赞。以前总是提示你要upgrade，我总是要做一系列的事情。现在点个button就可以了。Love it!</li>
<li>导航条可以折叠，关键是缩起来超炫。</li>
<li>每个page的各个module(categories,tags&#8230;)都可以拖拽来调整位置。不过因人而异，默认位置就很好了。</li>
</ul>
<p>如何？一起来感受美妙软件带来快乐吧。</p>
<p><a href="http://liwenbing.cn/wp-content/uploads/2008/12/wordpress27.jpg" target="_self"><img class="alignnone size-medium wp-image-106" title="wordpress27" src="http://liwenbing.cn/wp-content/uploads/2008/12/wordpress27-300x216.jpg" alt="wordpress27" width="300" height="216" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2008/12/11/love-wordpress-new-ui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aptana Jaxer:The Ajax Server?</title>
		<link>http://liwenbing.cn/2008/06/14/aptana-jaxer-the-ajax-server/</link>
		<comments>http://liwenbing.cn/2008/06/14/aptana-jaxer-the-ajax-server/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 16:04:22 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[apatan]]></category>
		<category><![CDATA[jaxar]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=55</guid>
		<description><![CDATA[一直以来都在用Aptana的Editor来编辑Javascript/CSS/HTML,都挺好。今天尝试了Aptana自己一直在推的所谓‘世界上第一个Ajax Server的Jaxer。 在Jaxar里面写code倒是很有意思，所有你需要做的事情就是写Javascript/CSS/HTML。你根本不需要使用任何其他server-side语言,所有的事情就是写Javascript就可以了。来看一个例子： &#60;script type="text/javascript" runat="server"&#62; function getAuthenticatedUser() { var username = Jaxer.session.get("username"); if (typeof username == "undefined") return null; var rs = Jaxer.DB.execute("SELECT * FROM users WHERE username = ?", [username]); if (rs.rows.length == 0) { return null; } return rs.rows[0]; } &#60;/script&#62; 用‘runat=server’就可以让上面对数据库的操作运行在server端，而client端对该方法的调用不变，这样在写Web应用时就不用在Server side和client side两边跑来跑去了。并且还有对template的支持。 这个和原来老毛和科长做的project zero client programming model是非常相似的，目的是都用来屏蔽client和server之间的boundary。不过Jaxar做的更加彻底，通过扩展Apache的server，加入自己的Server side framework和client side [...]]]></description>
			<content:encoded><![CDATA[<p>一直以来都在用Aptana的Editor来编辑Javascript/CSS/HTML,都挺好。今天尝试了Aptana自己一直在推的所谓‘世界上第一个Ajax Server的<a href="http://aptana.com/jaxer" target="_blank">Jaxer</a>。</p>
<p>在Jaxar里面写code倒是很有意思，所有你需要做的事情就是写Javascript/CSS/HTML。你根本不需要使用任何其他server-side语言,所有的事情就是写Javascript就可以了。来看一个例子：</p>
<pre><code>
 &lt;script type="text/javascript" runat="server"&gt;
	function getAuthenticatedUser()
	{
		var username = Jaxer.session.get("username");
		if (typeof username == "undefined") return null;
		var rs = Jaxer.DB.execute("SELECT * FROM users WHERE username = ?", [username]);
		if (rs.rows.length == 0)
		{
			return null;
		}
		return rs.rows[0];
	}
&lt;/script&gt;
</code></pre>
<p>用‘runat=server’就可以让上面对数据库的操作运行在server端，而client端对该方法的调用不变，这样在写Web应用时就不用在Server side和client side两边跑来跑去了。并且还有对template的支持。</p>
<p>这个和原来老毛和科长做的project zero client programming model是非常相似的，目的是都用来屏蔽client和server之间的boundary。不过Jaxar做的更加彻底，通过扩展Apache的server，加入自己的Server side framework和client side framework，让所有的一切都通过写JS就搞定了。并且对session，database, web ,SMTP 进行支持，对于一般的应用差不多就够了。老毛原来做的也是通过加入client framework以及扩展server的一些能力来让开发者在client和server之间进行无缝交互。可惜还是需要写Javascript和groovy，并且有一大堆的convention，不知道为什么没有发展下去（又是政治问题?).</p>
<p>那么这种开发模式到底好不好呢？我觉得对于比较小的应用，不考虑扩展和与外界交互，还是一个比较快捷的开发方式。毕竟client和server的无缝交互所带来的好处是非常大的，比如说学习的门槛低（只需要知道一个Javascript就搞定了), 数据传输中麻烦的异步调用，编码，解码，格式转换等等都将消失。但是一旦你的web应用大一些的时候，我想这种模式就面临着很大的问题。关键还是不容易扩展，当它把UI和数据逻辑混合的时候，要做分离是比较困难的。当然你可以在它的编程模型上写一层数据操作层，但是这样就变成了典型的RPC了。另外，这样做并不<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a>,Jaxer开发出来的应用根本提供不了service(更谈不上RESTful)，这样就无法被它人所用了。如果Jaxer应用以后要做整合，那绝对是一个大麻烦。</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2008/06/14/aptana-jaxer-the-ajax-server/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>新的theme</title>
		<link>http://liwenbing.cn/2008/04/13/xin-de-theme/</link>
		<comments>http://liwenbing.cn/2008/04/13/xin-de-theme/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 05:36:30 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=11</guid>
		<description><![CDATA[花了4个小时的时间，总有整出现在的这个theme。基本上是在wordpress的default theme上面改了一些style。很简单，我很喜欢。 有什么意见？]]></description>
			<content:encoded><![CDATA[<p>花了4个小时的时间，总有整出现在的这个theme。基本上是在wordpress的default theme上面改了一些style。很简单，我很喜欢。<br />
有什么意见？</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2008/04/13/xin-de-theme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>开始设计自己的blog theme</title>
		<link>http://liwenbing.cn/2008/04/12/%e5%bc%80%e5%a7%8b%e8%ae%be%e8%ae%a1%e8%87%aa%e5%b7%b1%e7%9a%84blog-theme/</link>
		<comments>http://liwenbing.cn/2008/04/12/%e5%bc%80%e5%a7%8b%e8%ae%be%e8%ae%a1%e8%87%aa%e5%b7%b1%e7%9a%84blog-theme/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 06:23:02 +0000</pubDate>
		<dc:creator>liwenbing</dc:creator>
				<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://liwenbing.cn/?p=9</guid>
		<description><![CDATA[找烦了，还是找不到自己喜欢的blog theme，准备自己来设计自己的blog了。于是在http://bestwebgallery.com看了很多酷酷的网站，最后决定设计一个最简洁的theme。同时也可以让自己玩玩wordpress了。我很不明白，为什么wordpress的default的theme不是和自己的管理界面一种风格的，估计会在以后的版本中更新。突然在想，是否可以用自己的assemble tooling的style来作为自己的theme？呵呵，做为以后的一个计划吧。]]></description>
			<content:encoded><![CDATA[<p><a href='http://liwenbing.cn/wp-content/uploads/2008/04/wordpress-theme.png'><img src="http://liwenbing.cn/wp-content/uploads/2008/04/wordpress-theme.png" alt="" title="wordpress-theme" width="279" height="128" class="alignleft size-medium wp-image-10" /></a>找烦了，还是找不到自己喜欢的blog theme，准备自己来设计自己的blog了。于是在<a href="http://bestwebgallery.com">http://bestwebgallery.com</a>看了很多酷酷的网站，最后决定设计一个最简洁的theme。同时也可以让自己玩玩wordpress了。我很不明白，为什么wordpress的default的theme不是和自己的管理界面一种风格的，估计会在以后的版本中更新。突然在想，是否可以用自己的<a href="http://www.projectzero.org/download/doc/zero.doc.latest/zero.assemble.tooling/overview.html">assemble tooling</a>的style来作为自己的theme？呵呵，做为以后的一个计划吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://liwenbing.cn/2008/04/12/%e5%bc%80%e5%a7%8b%e8%ae%be%e8%ae%a1%e8%87%aa%e5%b7%b1%e7%9a%84blog-theme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
