<?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/"
	xmlns:georss="http://www.georss.org/georss">

<channel>
	<title>Here comes the Sun &#187; 广告</title>
	<atom:link href="http://sunng.info/blog/category/%e5%b9%bf%e5%91%8a/feed/" rel="self" type="application/rss+xml" />
	<link>http://sunng.info/blog</link>
	<description>Life ramblings</description>
	<lastBuildDate>Mon, 06 Sep 2010 11:32:07 +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>Open for a new job</title>
		<link>http://sunng.info/blog/2010/08/open-for-a-new-job/</link>
		<comments>http://sunng.info/blog/2010/08/open-for-a-new-job/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 14:15:28 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[job]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/08/open-for-a-new-job/</guid>
		<description><![CDATA[I am about to leave current company and looking for a new challenge for future. If you are interested, and also looking for a Java or Python developer, please check the hot baked resume: en zh Actually, I am not good at documenting myself. So if you need more details, feel free to get connected [...]]]></description>
			<content:encoded><![CDATA[<p>I am about to leave current company and looking for a new challenge for future. If you are interested, and also looking for a Java or Python developer, please check the hot baked resume:</p>
<ul>
<li><a href="http://sunng.info/resume_en.html">en</a></li>
<li><a href="http://sunng.info/resume_cn.html">zh</a></li>
</ul>
<p>Actually, I am not good at documenting myself. So if you need more details, feel free to get connected with email: classicning[at]gmail.com </p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/08/open-for-a-new-job/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bason: A BSON Serialization Code Generator</title>
		<link>http://sunng.info/blog/2010/08/bason-a-bson-serialization-code-generator/</link>
		<comments>http://sunng.info/blog/2010/08/bason-a-bson-serialization-code-generator/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 15:40:01 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/08/bason-a-bson-serialization-code-generator/</guid>
		<description><![CDATA[Bason is a code generator for object to bson serialization and deserialization. Different from tranditional reflection way, bason uses an annotation processor to generate serialization manager at compile time. You just add Bason as compilation dependency and drop it in the runtime. To use Bason, you simply add annotation to JavaBeans: /** &#160;* &#160;*/ package [...]]]></description>
			<content:encoded><![CDATA[<p>Bason is a code generator for object to bson serialization and deserialization. Different from tranditional reflection way, bason uses an annotation processor to generate serialization manager at compile time. You just add Bason as compilation dependency and drop it in the runtime.</p>
<p>To use Bason, you simply add annotation to JavaBeans:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp;* <br />
&nbsp;*/</span><br />
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">info.sunng.bason.example</span><span style="color: #339933;">;</span><br />
<br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Date</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">info.sunng.bason.annotations.BsonAlias</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">info.sunng.bason.annotations.BsonDocument</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">info.sunng.bason.annotations.BsonIgnore</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp;* @author SunNing<br />
&nbsp;*<br />
&nbsp;* @since Aug 18, 2010<br />
&nbsp;*/</span><br />
@BsonDocument<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Passenger <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">double</span> packageWeight<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">long</span> ticketId<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> name<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Date</span></a> createdDate<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> Flight flight<span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @return the packageWeight<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; @BsonIgnore<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">double</span> getPackageWeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> packageWeight<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @param packageWeight the packageWeight to set<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setPackageWeight<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">double</span> packageWeight<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">packageWeight</span> <span style="color: #339933;">=</span> packageWeight<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @return the ticketId<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; @BsonAlias<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ticket&quot;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">long</span> getTicketId<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> ticketId<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @param ticketId the ticketId to set<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setTicketId<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">long</span> ticketId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">ticketId</span> <span style="color: #339933;">=</span> ticketId<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @return the name<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> name<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @param name the name to set<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setName<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> name<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">name</span> <span style="color: #339933;">=</span> name<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @param createdDate the createdDate to set<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setCreatedDate<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Date</span></a> createdDate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">createdDate</span> <span style="color: #339933;">=</span> createdDate<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @return the createdDate<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Date</span></a> getCreatedDate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> createdDate<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @param flight the flight to set<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setFlight<span style="color: #009900;">&#40;</span>Flight flight<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">flight</span> <span style="color: #339933;">=</span> flight<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008000; font-style: italic; font-weight: bold;">/**<br />
&nbsp; &nbsp; &nbsp;* @return the flight<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> Flight getFlight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> flight<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span></div></div>
<ul>
<li>@BsonDocument marks this bean to be processed by bason processor. Serialization and deserialization support for this bean will be added to the manager. The bean must follow the Java Bean specification that has a getter and a setter for each property.</li>
<li>@BsonAlias on the getter allows user the specify a name for bson document instead of the default java bean property name.</li>
<li>@BsonIgnore on the getter marks a property to be transient when serialization and deserialization.</li>
</ul>
<p>Then you need a <i>bason.properties</i> at the root of classpath which looks like</p>
<div class="codecolorer-container properties default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="properties codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000080; font-weight:bold;">bason.managerClassName</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">info.sunng.bason.BasonManager</span></div></div>
<p>You specify the manager class name here. This name can not be duplicated if you use Bason in multiple modules.</p>
<p>Take maven configuration as an example:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>info.sunng.bason<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>bason-annotation<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>info.sunng.bason<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>bason-internal<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scope<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.mongodb<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mongo-java-driver<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;finalName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>${project.artifactId}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/finalName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.apache.maven.plugins<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>maven-compiler-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.6<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.6<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;compilerArguments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;processor<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>info.sunng.bason.internal.BasonProcessor<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/processor<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/compilerArguments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>when everything is ready, run <i>mvn compile</i> to generate the manager source file. By default, in a standard maven project, the generated file will be placed at:<br />
<i>/bason-example/target/generated-sources/annotations/</i></p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">info.sunng.bason</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.bson.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.annotation.Generated</span><span style="color: #339933;">;</span><br />
@Generated<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">&quot;info.sunng.bason.BasonManager&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">class</span> BasonManager<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> BSONObject toBson<span style="color: #009900;">&#40;</span>info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Passenger</span> o<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anullpointerexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">NullPointerException</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; BSONObject bson <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BasicBSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ticket&quot;</span>,o.<span style="color: #006633;">getTicketId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>,o.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;createdDate&quot;</span>,o.<span style="color: #006633;">getCreatedDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;flight&quot;</span>,toBson<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">getFlight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> bson<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Passenger</span> fromBson<span style="color: #009900;">&#40;</span>info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Passenger</span> o, BSONObject bson<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> bson <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anullpointerexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">NullPointerException</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setTicketId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Along+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Long</span></a><span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ticket&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setCreatedDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">util</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Date</span></a><span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;createdDate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setFlight</span><span style="color: #009900;">&#40;</span>fromBson<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Flight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #009900;">&#40;</span>BSONObject<span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;flight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> o<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> BSONObject toBson<span style="color: #009900;">&#40;</span>info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Flight</span> o<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anullpointerexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">NullPointerException</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; BSONObject bson <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BasicBSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;company&quot;</span>,o.<span style="color: #006633;">getCompany</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; bson.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;flightId&quot;</span>,o.<span style="color: #006633;">getFlightId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> bson<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Flight</span> fromBson<span style="color: #009900;">&#40;</span>info.<span style="color: #006633;">sunng</span>.<span style="color: #006633;">bason</span>.<span style="color: #006633;">example</span>.<span style="color: #006633;">Flight</span> o, BSONObject bson<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> bson <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anullpointerexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">NullPointerException</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setCompany</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;company&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; o.<span style="color: #006633;">setFlightId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#41;</span>bson.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;flightId&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> o<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>The project is hosted at<br />
<a href="http://github.com/sunng87/bason">http://github.com/sunng87/bason</a></p>
<p>If you have any ideas, just let me know.</p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/08/bason-a-bson-serialization-code-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Amoeba</title>
		<link>http://sunng.info/blog/2010/08/introduction-to-amoeba/</link>
		<comments>http://sunng.info/blog/2010/08/introduction-to-amoeba/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 09:22:26 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[amoeba]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/08/introduction-to-amoeba/</guid>
		<description><![CDATA[Amoeba is a distributed database middleware works as mysql proxy, provides sharding and high availability support for large scale applications using multiple mysql servers as backend. Compatible with mysql protocol, Amoeba is fully transparent to any client using standard mysql drivers, which means, to use Amoeba you don&#8217;t have to modify any code of database [...]]]></description>
			<content:encoded><![CDATA[<p>Amoeba is a distributed database middleware works as mysql proxy, provides sharding and high availability support for large scale applications using multiple mysql servers as backend.</p>
<p>Compatible with mysql protocol, Amoeba is fully transparent to any client using standard mysql drivers, which means, to use Amoeba you don&#8217;t have to modify any code of database connector. You just configure rules for amoeba, then the client request will automatically route to certain mysql instance. Amoeba has a flexible set of configuration rules that can satisfy your requirements.</p>
<p>Amoeba is written in Java, and deployed on Linux server in most cases. The IO module is built on the top of Java nonblocking IO, which keeps communication between client, Amoeba and mysql at a high performance. </p>
<p>The project is initialized in 2008. Stable release 1.2.1-GA have been available since July, 2010 . It is now serving on the production environment of the social networks <a href="http://t.sdo.com/">http://t.sdo.com/</a></p>
<p>Project home:<br />
<a href="http://code.google.com/p/amoeba/">http://code.google.com/p/amoeba/</a></p>
<p>Development logs:<br />
<a href="http://amoeba.meidusa.com/wordpress/">http://amoeba.meidusa.com/wordpress/</a></p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/08/introduction-to-amoeba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exaile-doubanfm-plugin for exaile 0.3.2</title>
		<link>http://sunng.info/blog/2010/08/exaile-doubanfm-plugin-for-exaile-0-3-2/</link>
		<comments>http://sunng.info/blog/2010/08/exaile-doubanfm-plugin-for-exaile-0-3-2/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:23:50 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[Douban]]></category>
		<category><![CDATA[exaile]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=640</guid>
		<description><![CDATA[Ubuntu 10.04的Exaile还停留在0.3.1，而Fedora 13上已经升级到0.3.2了。为此我更新了豆瓣电台插件，现在这个版本可以在0.3.2上正常工作。 可以到github的下载页面获取 doubanfm-0.0.3a-exaile032.tar.gz http://github.com/sunng87/exaile-doubanfm-plugin/downloads 此外for exaile 0.3.1的版本也有一个优化和bugfix release, Ubuntu用户可以获取 doubanfm-0.0.3-exaile031.tar.gz 接下来三周又有项目了，难度比较大，估计豆瓣插件近期不会有什么新的惊喜了。 The post is brought to you by lekhonee v0.7]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 10.04的Exaile还停留在0.3.1，而Fedora 13上已经升级到0.3.2了。为此我更新了豆瓣电台插件，现在这个版本可以在0.3.2上正常工作。</p>
<p>可以到github的下载页面获取 doubanfm-0.0.3a-exaile032.tar.gz<br />
<a href="http://github.com/sunng87/exaile-doubanfm-plugin/downloads">http://github.com/sunng87/exaile-doubanfm-plugin/downloads</a></p>
<p>此外for exaile 0.3.1的版本也有一个优化和bugfix release, Ubuntu用户可以获取<br />
doubanfm-0.0.3-exaile031.tar.gz</p>
<p>接下来三周又有项目了，难度比较大，估计豆瓣插件近期不会有什么新的惊喜了。</p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/08/exaile-doubanfm-plugin-for-exaile-0-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sunng&#8217;s pastebin</title>
		<link>http://sunng.info/blog/2010/07/sunngs-pastebin/</link>
		<comments>http://sunng.info/blog/2010/07/sunngs-pastebin/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 14:12:03 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=639</guid>
		<description><![CDATA[写了一个基本的pastebin放在appengine上： http://sunoffline.appspot.com/pb/ 支持纯文本、Markdown和代码高亮。数据永久保留，推荐大家收藏以备不时之需。 The post is brought to you by lekhonee v0.7]]></description>
			<content:encoded><![CDATA[<p>写了一个基本的pastebin放在appengine上：<br />
<a href="http://sunoffline.appspot.com/pb/">http://sunoffline.appspot.com/pb/</a></p>
<p>支持纯文本、Markdown和代码高亮。数据永久保留，推荐大家收藏以备不时之需。</p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/07/sunngs-pastebin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exaile-doubanfm-plugin 0.0.2</title>
		<link>http://sunng.info/blog/2010/07/exaile-doubanfm-plugin-0-0-2/</link>
		<comments>http://sunng.info/blog/2010/07/exaile-doubanfm-plugin-0-0-2/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 14:17:53 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[Douban]]></category>
		<category><![CDATA[exaile]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/07/exaile-doubanfm-plugin-0-0-2/</guid>
		<description><![CDATA[Exaile doubanfm plugin 0.0.2 预览版，目标是在Linux桌面提供豆瓣电台的完整体验。 目前插件只能运行在Exaile 0.3.1版本上。 0.0.2增加了豆瓣电台专用的视图： 相比第一版通过rating来实现豆瓣电台喜欢、跳过和删除的功能，在专用视图上有专门的按钮来操作。 其他细节更新： 当剩余曲目超过15首时不再增加播放列表 当播放到最后一首歌曲取新播放列表时增加重试机制 修正libdbfm跳过曲目bug一个 安装： 打开Exaile Preference，Plugin页，点击按钮Install Plugin，选择doubanfm.exz即可。如果存在问题，可以执行以下命令： mv doubanfm.exz douban.tar.gz tar xf doubanfm.tar.gz mv doubanfm ~/.local/share/exaile/plugins/ 转到doubanfm设置页面，填写用户名密码重启Exaile。 打开File菜单，选择豆瓣电台频道 选择曲目就可以开始播放了，选择视图中豆瓣电台视图可以切换到豆瓣电台视图。 项目地址： http://github.com/sunng87/exaile-doubanfm-plugin 下载： http://github.com/sunng87/exaile-doubanfm-plugin/downloads 另外，doubancovers插件也有一个针对豆瓣电台的更新可以快速获取豆瓣电台音乐的封面： http://bitbucket.org/sunng/exailedoubancovers/downloads?highlight=9265 The post is brought to you by lekhonee v0.7]]></description>
			<content:encoded><![CDATA[<p>Exaile doubanfm plugin 0.0.2 预览版，目标是在Linux桌面提供豆瓣电台的完整体验。</p>
<p><strong>目前插件只能运行在Exaile 0.3.1版本上。</strong></p>
<p>0.0.2增加了豆瓣电台专用的视图：<br />
<a href="http://www.flickr.com/photos/40741608@N08/4760493886/" title="screenshot_001 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4075/4760493886_5e334726cf.jpg" width="408" height="156" alt="screenshot_001" /></a></p>
<p>相比第一版通过rating来实现豆瓣电台喜欢、跳过和删除的功能，在专用视图上有专门的按钮来操作。</p>
<p>其他细节更新：</p>
<ul>
<li>当剩余曲目超过15首时不再增加播放列表</li>
<li>当播放到最后一首歌曲取新播放列表时增加重试机制</li>
<li>修正libdbfm跳过曲目bug一个</li>
</ul>
<p>安装：<br />
打开Exaile Preference，Plugin页，点击按钮Install Plugin，选择doubanfm.exz即可。如果存在问题，可以执行以下命令：<br />
mv doubanfm.exz douban.tar.gz<br />
tar xf doubanfm.tar.gz<br />
mv doubanfm ~/.local/share/exaile/plugins/</p>
<p>转到doubanfm设置页面，填写用户名密码重启Exaile。<br />
<a href="http://www.flickr.com/photos/40741608@N08/4754666940/" title="screenshot_002 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4141/4754666940_b998d99c4b.jpg" width="500" height="412" alt="screenshot_002" /></a></p>
<p>打开File菜单，选择豆瓣电台频道<br />
<a href="http://www.flickr.com/photos/40741608@N08/4754619030/" title="screenshot_001 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4094/4754619030_933e00fcfa.jpg" width="500" height="359" alt="screenshot_001" /></a></p>
<p>选择曲目就可以开始播放了，选择视图中豆瓣电台视图可以切换到豆瓣电台视图。</p>
<p>项目地址：<br />
<a href="http://github.com/sunng87/exaile-doubanfm-plugin">http://github.com/sunng87/exaile-doubanfm-plugin</a></p>
<p>下载：<br />
<a href="http://github.com/sunng87/exaile-doubanfm-plugin/downloads">http://github.com/sunng87/exaile-doubanfm-plugin/downloads</a></p>
<p>另外，doubancovers插件也有一个针对豆瓣电台的更新可以快速获取豆瓣电台音乐的封面：<br />
<a href="http://bitbucket.org/sunng/exailedoubancovers/downloads?highlight=9265">http://bitbucket.org/sunng/exailedoubancovers/downloads?highlight=9265</a></p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/07/exaile-doubanfm-plugin-0-0-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>exaile豆瓣电台插件(exaile-doubanfm-plugin)</title>
		<link>http://sunng.info/blog/2010/07/exaile%e8%b1%86%e7%93%a3%e7%94%b5%e5%8f%b0%e6%8f%92%e4%bb%b6exaile-doubanfm-plugin/</link>
		<comments>http://sunng.info/blog/2010/07/exaile%e8%b1%86%e7%93%a3%e7%94%b5%e5%8f%b0%e6%8f%92%e4%bb%b6exaile-doubanfm-plugin/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 10:07:04 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[Douban]]></category>
		<category><![CDATA[exaile]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/07/exaile%e8%b1%86%e7%93%a3%e7%94%b5%e5%8f%b0%e6%8f%92%e4%bb%b6exaile-doubanfm-plugin/</guid>
		<description><![CDATA[豆瓣电台一直是flash客户端，嵌入浏览器，出于对flash的厌恶，本人开发了这个exaile插件，让广大linux同学在exaile里享受豆瓣电台一目了然桌面集成和全部豆瓣电台功能。 exaile-doubanfm-plugin features: 登录豆瓣，获取豆瓣电台播放列表 持续下载电台播放列表，实现不重复的持续播放 标记/取消“喜爱”、标记“回收站”、跳过 显示歌曲信息 项目地址： http://github.com/sunng87/exaile-doubanfm-plugin 下载页： http://github.com/sunng87/exaile-doubanfm-plugin/downloads 使用： 激活插件，填写用户名密码 重启exaile 文件菜单，open douban.fm，选择频道 点击播放开始 将rating设置为5 标记喜欢 rating设置2 豆瓣标准跳过 rating设置1 豆瓣删除 The post is brought to you by lekhonee v0.7]]></description>
			<content:encoded><![CDATA[<p>豆瓣电台一直是flash客户端，嵌入浏览器，出于对flash的厌恶，本人开发了这个exaile插件，让广大linux同学在exaile里享受豆瓣电台一目了然桌面集成和全部豆瓣电台功能。</p>
<p>exaile-doubanfm-plugin features:</p>
<ul>
<li>登录豆瓣，获取豆瓣电台播放列表</li>
<li>持续下载电台播放列表，实现不重复的持续播放</li>
<li>标记/取消“喜爱”、标记“回收站”、跳过</li>
<li>显示歌曲信息</li>
</ul>
<p><a href="http://www.flickr.com/photos/40741608@N08/4754619030/" title="screenshot_001 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4094/4754619030_933e00fcfa.jpg" width="500" height="359" alt="screenshot_001" /></a></p>
<p><a href="http://www.flickr.com/photos/40741608@N08/4754615592/" title="screenshot_002 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4079/4754615592_0c1486c2df.jpg" width="500" height="359" alt="screenshot_002" /></a></p>
<p><a href="http://www.flickr.com/photos/40741608@N08/4754666940/" title="screenshot_002 by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4141/4754666940_b998d99c4b.jpg" width="500" height="412" alt="screenshot_002" /></a></p>
<p>项目地址：<br />
<a href="http://github.com/sunng87/exaile-doubanfm-plugin">http://github.com/sunng87/exaile-doubanfm-plugin</a></p>
<p>下载页：<br />
<a href="http://github.com/sunng87/exaile-doubanfm-plugin/downloads">http://github.com/sunng87/exaile-doubanfm-plugin/downloads</a></p>
<p>使用：</p>
<ol>
<li>激活插件，填写用户名密码</li>
<li>重启exaile</li>
<li>文件菜单，open douban.fm，选择频道</li>
<li>点击播放开始</li>
<li>将rating设置为5 标记喜欢</li>
<li>rating设置2 豆瓣标准跳过</li>
<li>rating设置1 豆瓣删除</li>
</ol>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/07/exaile%e8%b1%86%e7%93%a3%e7%94%b5%e5%8f%b0%e6%8f%92%e4%bb%b6exaile-doubanfm-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exaile-Douban-Covers 0.0.3 Released</title>
		<link>http://sunng.info/blog/2010/06/exaile-douban-covers-0-0-3-released/</link>
		<comments>http://sunng.info/blog/2010/06/exaile-douban-covers-0-0-3-released/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 12:26:36 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[exaile]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/2010/06/exaile-douban-covers-0-0-3-released/</guid>
		<description><![CDATA[一眨眼有大半年没有维护这个插件了，Exaile从0.3.0升级到了0.3.2。严重的是这三个版本的插件接口各不相同，0.3.1新增了cover providers管理， 修改了track获得相应字段的api，简化了CoverSearchMethod的职责（去掉了缓存管理，只负责find_convers和get_conver_data两个功能）。而0.3.2至少也修改了配置管理界面的API，所以可以在0.3.1上工作的版本也不能在0.3.2上工作。 这次升级维护把插件升级到0.0.3，兼容目前Ubuntu仓库里的Exaile 0.3.1.1。0.3.1.1新提供了一个cover provider的配置界面，可以调整cover provider的优先级，如果你听中文歌比较多，建议可以把douban cover放在第一位。 下载页面（doubancovers-0.0.3.exz ）： http://bitbucket.org/sunng/exailedoubancovers/downloads 新版本和0.3.0已经无法兼容，0.3.0的用户可以继续使用0.0.2 。而兼容0.3.2的版本预计要等到10月份之后推出了，用Archlinux和其他自己安装的用户要稍等一阵了。 The post is brought to you by lekhonee v0.7]]></description>
			<content:encoded><![CDATA[<p>一眨眼有大半年没有维护这个插件了，Exaile从0.3.0升级到了0.3.2。严重的是这三个版本的插件接口各不相同，0.3.1新增了cover providers管理， 修改了track获得相应字段的api，简化了CoverSearchMethod的职责（去掉了缓存管理，只负责find_convers和get_conver_data两个功能）。而0.3.2至少也修改了配置管理界面的API，所以可以在0.3.1上工作的版本也不能在0.3.2上工作。</p>
<p>这次升级维护把插件升级到0.0.3，兼容目前Ubuntu仓库里的Exaile 0.3.1.1。0.3.1.1新提供了一个cover provider的配置界面，可以调整cover provider的优先级，如果你听中文歌比较多，建议可以把douban cover放在第一位。</p>
<p>下载页面（doubancovers-0.0.3.exz ）：<br />
<a href="http://bitbucket.org/sunng/exailedoubancovers/downloads">http://bitbucket.org/sunng/exailedoubancovers/downloads</a></p>
<p>新版本和0.3.0已经无法兼容，0.3.0的用户可以继续使用0.0.2 。而兼容0.3.2的版本预计要等到10月份之后推出了，用Archlinux和其他自己安装的用户要稍等一阵了。</p>
<p>The post is brought to you by <a href="http://fedorahosted.org/lekhonee">lekhonee</a> v0.7</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/06/exaile-douban-covers-0-0-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>t.sdo.com上线</title>
		<link>http://sunng.info/blog/2010/06/t-sdo-com%e4%b8%8a%e7%ba%bf/</link>
		<comments>http://sunng.info/blog/2010/06/t-sdo-com%e4%b8%8a%e7%ba%bf/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 05:20:25 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[snda]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=584</guid>
		<description><![CDATA[昨天搞到3点多，盛大糖果http://t.sdo.com/，昨天晚上终于开放IP给大家访问了。 留一些邀请码给大家 2HlXyYKYz2 2dKoCcQZYV oHBYhO1JPw -~YTMDYmN+ IXKYMq0kE@ Ub-C@xk8~r 我们后端服务从3月初开始正式开发，11个成员，加了三个多月的班。]]></description>
			<content:encoded><![CDATA[<p>昨天搞到3点多，盛大糖果<a href="http://t.sdo.com/">http://t.sdo.com/</a>，昨天晚上终于开放IP给大家访问了。</p>
<p>留一些邀请码给大家</p>
<ul>
<li>2HlXyYKYz2</li>
<li>2dKoCcQZYV</li>
<li>oHBYhO1JPw</li>
<li>-~YTMDYmN+</li>
<li>IXKYMq0kE@</li>
<li>Ub-C@xk8~r</li>
</ul>
<p>我们后端服务从3月初开始正式开发，11个成员，加了三个多月的班。</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/06/t-sdo-com%e4%b8%8a%e7%ba%bf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<georss:point>31.2013666 121.6192502</georss:point>	</item>
		<item>
		<title>Douban provider for Alexandria</title>
		<link>http://sunng.info/blog/2010/04/douban-provider-for-alexandria/</link>
		<comments>http://sunng.info/blog/2010/04/douban-provider-for-alexandria/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 11:25:33 +0000</pubDate>
		<dc:creator>Sunng</dc:creator>
				<category><![CDATA[广告]]></category>
		<category><![CDATA[Douban]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://sunng.info/blog/?p=559</guid>
		<description><![CDATA[Alexandra is a desktop book collection manager on gnome written in ruby. With an extensible architecture, Alexandria uses different sources to retrieve book&#8217;s data, including Amazon and many local sites. Douban.com is considered to be most applicable data source for books published in Chinese. So I write this provider according to Alexandria&#8217;s SPI. Now it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://alexandria.rubyforge.org/">Alexandra</a> is a desktop book collection manager on gnome written in ruby. With an extensible architecture, Alexandria uses different sources to retrieve book&#8217;s data, including Amazon and many local sites.</p>
<p>Douban.com is considered to be most applicable data source for books published in Chinese. So I write this provider according to Alexandria&#8217;s SPI. Now it&#8217;s possible to add Chinese books and manage reading lists.</p>
<p><a href="http://www.flickr.com/photos/40741608@N08/4564768299/" title="alexandria by 贝小塔, on Flickr"><img src="http://farm5.static.flickr.com/4046/4564768299_f424dc2be9.jpg" width="500" height="388" alt="alexandria" /></a></p>
<p>Now the code can be found in Alexandria&#8217;s bug tracker:<br />
<a href="http://rubyforge.org/tracker/index.php?func=detail&#038;aid=28160&#038;group_id=205&#038;atid=865">http://rubyforge.org/tracker/index.php?func=detail&#038;aid=28160&#038;group_id=205&#038;atid=865</a></p>
<p>However, the patch file of book_providers.rb in that list is for svn trunk head version only. To use it with currently stable version of Ubuntu, first, make sure you have Alexandria version <strong>0.6.5-0ubuntu1</strong> and <strong>libjson-ruby1.8</strong> installed.</p>
<p>Download douban.rb from rubyforge:<br />
<a href="http://rubyforge.org/tracker/download.php/205/865/28160/4923/douban.rb">http://rubyforge.org/tracker/download.php/205/865/28160/4923/douban.rb</a><br />
Copy the file to /usr/lib/ruby/1.8/alexandria/book_providers/ with super user privileges.<br />
Use this patch to /usr/lib/ruby/1.8/alexandria/book_providers.rb</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">310a311,<span style="color:#006666;">323</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">begin</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">begin</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'json'</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">LoadError</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'json'</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'alexandria/book_providers/douban'</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">LoadError</span> =<span style="color:#006600; font-weight:bold;">&lt;</span> ex<br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; log.<span style="color:#9900CC;">error</span><span style="color:#006600; font-weight:bold;">&#123;</span>ex<span style="color:#006600; font-weight:bold;">&#125;</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; &nbsp; log.<span style="color:#9900CC;">warn</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#996600;">'Fail to load douban as provider'</span><span style="color:#006600; font-weight:bold;">&#125;</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span> &nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#006600; font-weight:bold;">&lt;</span></div></div>
<p>Feel free to report issue here.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunng.info/blog/2010/04/douban-provider-for-alexandria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>31.203057 121.6174866</georss:point>	</item>
	</channel>
</rss>
