<?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>Melbourne Web Developer, Website Design &#38; Development</title>
	<atom:link href="http://blog.koumei.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.koumei.net</link>
	<description>= fn(n){n xor 0xFFFF004B eq 0x0 ? n : fn(n - 0x1)}</description>
	<lastBuildDate>Wed, 10 Mar 2010 15:51:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Use of Lambda Expression to Create Complicated Query</title>
		<link>http://blog.koumei.net/2010/03/10/use-lambda-expression-to-create-complicated-query/</link>
		<comments>http://blog.koumei.net/2010/03/10/use-lambda-expression-to-create-complicated-query/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 07:12:31 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Tech.]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=465</guid>
		<description><![CDATA[.NET FX introduces a powerful weapon for creating the compact, breezy and elegant code in your project. The weapon&#8217;s name is as complicated as the mathematical stuff, called Lambda expression.
As the name implies, the great convenience comes great complication inside. Lambda expression is too important to understand, it is useful and I think it is [...]]]></description>
			<content:encoded><![CDATA[<p>.NET FX introduces a powerful weapon for creating the compact, breezy and elegant code in your project. The weapon&#8217;s name is as complicated as the mathematical stuff, called Lambda expression.</p>
<p>As the name implies, the great convenience comes great complication inside. Lambda expression is too important to understand, it is useful and I think it is good to know how it works. Well, it&#8217;s not as complicated as we think, just a little bit confusing when using it.</p>
<p>First of all, Lambda is used for 2 purposes. 1 is to simplify delegation, 2 is to create expression tree. In my case, I need to create lambda expression to create dynamic query.</p>
<p>Imagine the following usecase:</p>
<p>In your product table, there is a field called &#8220;Tags&#8221; and it&#8217;s used for storing the CSV (comma separated value) like &#8220;car, mazda, suv, luxury&#8221;, you have many records:</p>
<p>Product Table: (Table name: ProductTable)</p>
<p><span style="text-decoration: underline;"><strong>ID    ProductName    Tags</strong></span><br />
1    Tow bar        car,mazda,suv,luxury<br />
2    Cup holder    car,luxury<br />
3    Phone holder    car,mazda<br />
4    FM Transmitter    car,suv<br />
5    Queens bed    luxury<br />
6    DVD Burner    car,BMW,x5,luxury</p>
<p>When your searching criteria is<br />
&#8220;mazda&#8221; and &#8220;luxury&#8221;, the following records would be selected out:</p>
<p><span style="text-decoration: underline;"><strong>ID    ProductName    Tags</strong></span><br />
1    Tow bar        car,mazda,suv,luxury<br />
2    Cup holder    car,luxury<br />
3    Phone holder    car,mazda<br />
5    Queens bed    luxury<br />
6    DVD Burner    car,BMW,x5,luxury</p>
<p>In ancient SQL age, you would probably write a SQL like this:</p>
<address>string SQL = &#8220;SELECT * FORM ProductTable WHERE Tags LIKE&#8217;%mazda%&#8217; OR Tags LIKE &#8216;%luxury%&#8217;&#8221;;</address>
<p>It is IMpossible to create SQL like above except the project scope tells you the fixed keywords that would be used, the keywords should flexible. Then the code would be as much as:</p>
<address>string[] tags = new string[]{&#8220;mazda&#8221;, &#8220;luxury&#8221;};</address>
<address>string SQL = &#8220;SELECT * FROM ProductTable WHERE 1=1&#8243;;<br />
foreach(string tag in tags)<br />
{<br />
SQL += string.format(@&#8221; AND Tags like &#8216;%{0}%&#8217;&#8221;, tag);<br />
}</address>
<p>You must be very exciting that your code supports as many keywrods as it can. (I did before, I mean I would be very exciting when the code filled with logical stuff, LOL, of course, not now, that&#8217;s what geek did before~ )</p>
<p>Back to the reality, to the modern age, with the lambda expression, what you need to do is:</p>
<p>(pre-condition: you have created corresponding domain model which mapped to the database.)<br />
The domain object or entity would look like:</p>
<address>[Table("ProductTable")] Class ProductTable{<br />
[Column]public int Id{get; set;}<br />
[Column]public string ProductName{get; set;}<br />
[Column]public string Tags{get; set;}<br />
}</address>
<p>to fullfill the same kind of logic as the stone-aged people do, you just need to</p>
<address>DataContext db = new DataContext(&#8220;&lt;connection-string&gt;&#8221;);<br />
Table&lt;ProductTable&gt; table = db.GetTable&lt;ProductTable&gt;();</address>
<address>string tag1 = &#8220;mazda&#8221;;<br />
string tag2 = &#8220;luxury&#8221;;</address>
<address>var data = table.where(x=&gt;x.Tags.Contains(tag1)).where(x=&gt;x.Tags.Contains(tag2)) select new ProductTable;<br />
return data.AsQueryable();</address>
<p>Since so far, you still feel comfortable with this, but after minute, you would probably wanna go back stone age, how do we dynamically create the query in this case? Unfortunately, there is no short-cut for this, but many people provide lots of solutions on the Internet. We can either download some source codes about dynamically query on Internet or just grab the codes from the blogger&#8217;s website.( Most of time, you can&#8217;t use all of their codes posted on the blog, the codes are broken and bad structure, remember what Koumei always suggests, absorb the mind from the other coders, do not copy the code they provided. )</p>
<p>But in here, I would rather to use Expression Tree to implement the dynamic query.</p>
<p>First of all, we need to create an expression, because it would be applied to IQueryable.Where(Expression&lt;Func&lt;ProductTable, bool&gt;&gt; expression), so the expression should be defined as:</p>
<address>public static System.Linq.Expressions.Expression&lt;Func&lt;ProductTable, bool&gt;&gt; ApplyTags(IEnumerable&lt;string&gt; tags) //parameter is the collection of tags<br />
{</address>
<address>ParameterExpression c = Expression.Parameter(typeof(ProductTable), &#8220;c&#8221;); //Get the parameter from Func&lt;ProductTable, bool&gt;, remember? this is the advanced and lazy version of delegation, we need to craete ParameterExpression to hold this</address>
<address>var tagsProperty = Expression.Property(c, typeof(ProductTable).GetProperty(&#8220;Tags&#8221;)); //Here is the expression for get the Tags value from ProductTable object</address>
<address>Type[] ContainsTypes = new Type[1];</address>
<address>ContainsTypes[0] = typeof(string);</address>
<address>System.Reflection.MethodInfo myContainsInfo = typeof(string).GetMethod(&#8220;Contains&#8221;, ContainsTypes);</address>
<address>//Create the expression collection (based on the tags collection from parameter)<br />
List&lt;Expression&gt; myTagExpressions = new List&lt;Expression&gt;();</address>
<address>foreach (var t in tags)<br />
{<br />
myTagExpressions.Add(Expression.Call(Expression.Call(tagsProperty, &#8220;ToString&#8221;, null, null), myContainsInfo, Expression.Constant(t)));<br />
}</address>
<address>Expression OrExpression = null;</address>
<address>foreach (Expression myTagExpression in myTagExpressions)<br />
{<br />
if (OrExpression == null)<br />
{<br />
OrExpression = myTagExpression;<br />
}<br />
else<br />
{<br />
//Need to implement OR relationship among all the expressions<br />
OrExpression = Expression.Or(myTagExpression, OrExpression);<br />
}<br />
}</address>
<address>//This is how Expression would be extracted to expression tree later on.<br />
Expression&lt;Func&lt;ProductTable, bool&gt;&gt; predicate = Expression.Lambda&lt;Func&lt;ProductTable, bool&gt;&gt;(OrExpression, c);</address>
<address>return predicate;</address>
<address>}</address>
<p>Again, you can&#8217;t copy the code, since you would NOT have the same object like ProductTable and the same &#8220;Tags&#8221; property as I do. Luckily, you still can copy the code that I provide later, which is using the magic of template or generic programming. Before that, let us see how to use it:</p>
<address>IQueryable all = table.Where(ApplyTags(new List{&#8220;mazda&#8221;,&#8221;luxury&#8221;})).AsQueryable();</address>
<p>Since so far, I am 100% sure you can do it like refactoring, re-structuring to optimize your code. However, I would like to provide the code which can be general used:</p>
<address>public static System.Linq.Expressions.Expression&lt;Func&lt;T, bool&gt;&gt; ApplyFilter&lt;T&gt;(IEnumerable&lt;string&gt; filters, string property)<br />
{<br />
//Get parameter<br />
ParameterExpression c = Expression.Parameter(typeof(T), &#8220;c&#8221;);</address>
<address>//Get property from &lt;T&gt;<br />
var tagsProperty = Expression.Property(c, typeof(T).GetProperty(property));</address>
<address>Type[] ContainsTypes = new Type[1];<br />
ContainsTypes[0] = typeof(string);<br />
System.Reflection.MethodInfo myContainsInfo = typeof(string).GetMethod(&#8220;Contains&#8221;, ContainsTypes);<br />
List&lt;Expression&gt; myTagExpressions = new List&lt;Expression&gt;();<br />
foreach (var t in filters)<br />
{<br />
myTagExpressions.Add(Expression.Call(Expression.Call(tagsProperty, &#8220;ToString&#8221;, null, null), myContainsInfo, Expression.Constant(t)));<br />
}<br />
Expression OrExpression = null;<br />
foreach (Expression myTagExpression in myTagExpressions)<br />
{<br />
if (OrExpression == null)<br />
{<br />
OrExpression = myTagExpression;<br />
}<br />
else<br />
{<br />
OrExpression = Expression.Or(myTagExpression, OrExpression);<br />
}<br />
}<br />
Expression&lt;Func&lt;T, bool&gt;&gt; predicate = Expression.Lambda&lt;Func&lt;T, bool&gt;&gt;(OrExpression, c);<br />
return predicate;<br />
}</address>
<p>The usage is similiar:</p>
<address>IQueryable all = table.Where(ApplyFilter&lt;ProductTable&gt;(new List{&#8220;mazda&#8221;,&#8221;luxury&#8221;}, &#8220;Tags&#8221;)).AsQueryable();</address>
<p>Not that hard, right?</p>
<p>Enjoy the powerful weapon, but don&#8217;t hurt yourself, bacause the deadline is ahead!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px;">6    DVD Burner    car,BMW,x5,luxury</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2010/03/10/use-lambda-expression-to-create-complicated-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Giant Hail Storm Hits Melbourne at 2pm Saturday</title>
		<link>http://blog.koumei.net/2010/03/06/giant-hail-storm-hits-melbourne-at-2pm-saturday/</link>
		<comments>http://blog.koumei.net/2010/03/06/giant-hail-storm-hits-melbourne-at-2pm-saturday/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 09:00:39 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Living in Victoria]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=456</guid>
		<description><![CDATA[Never seen this before. In the morning I just plan to go outside, but unfortunately or you may say luckily something wrong with my navigation, I could not turn it on! Then I stay home and try to fix my GPS.  About 2pm, it turns a sudden rain, heavily. Soon I heard some noises from [...]]]></description>
			<content:encoded><![CDATA[<p>Never seen this before. In the morning I just plan to go outside, but unfortunately or you may say luckily something wrong with my navigation, I could not turn it on! Then I stay home and try to fix my GPS.  About 2pm, it turns a sudden rain, heavily. Soon I heard some noises from the roof, become louder and louder, even deafening. I think the house is gonna break down! My goodness. It is a big hail storm. Hitting the tree, house and the car outside.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00182.jpg"><img class="alignnone size-large wp-image-457" title="DSC00182" src="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00182-1024x768.jpg" alt="" width="607" height="455" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00180.jpg"><img class="alignnone size-large wp-image-458" title="DSC00180" src="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00180-1024x768.jpg" alt="" width="607" height="455" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00183.jpg"><img class="alignnone size-large wp-image-460" title="DSC00183" src="http://blog.koumei.net/wp-content/uploads/2010/03/DSC00183-1024x768.jpg" alt="" width="608" height="455" /></a></p>
<p>The hailstones are no where!</p>
<p>And the power is cut for about 4 hours.</p>
<p>Here is the abridged news from abc.net.au:</p>
<p><span style="text-decoration: underline;"><em>Hailstones the size of golf balls have hit the suburb of Melton, in Melbourne&#8217;s west, as a line of storms moved through western Victoria.</em></span><br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
<span style="text-decoration: underline;"><em>Melton, on Melbourne&#8217;s northwest fringe,  was one of the first suburbs to feel the storm&#8217;s wrath.</em></span><br />
(Tell you what, Melton is the place where I plan to go, roughly 35KM from CBD Melbourne.)</p>
<p>Lucky me! I love my GPS, really love it. Actually I blame it why it stops working when I get into the car. But now I understand, it stops to save me from hitting by the hailstorm! And always give me direction when I am lost.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2010/03/06/giant-hail-storm-hits-melbourne-at-2pm-saturday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>There Is Nothing Meant To Be :)</title>
		<link>http://blog.koumei.net/2010/02/09/there-is-nothing-meant-to-be/</link>
		<comments>http://blog.koumei.net/2010/02/09/there-is-nothing-meant-to-be/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 01:28:44 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Principle]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=390</guid>
		<description><![CDATA[Do you have an experience that life just feels like a movie show? I bet many people do. Someone comes in your life, someone leaves. I think there would be 1000 of people walk beside you everyday who just passing by. You never know their names. By any chance, you meet someone who is passing [...]]]></description>
			<content:encoded><![CDATA[<p>Do you have an experience that life just feels like a movie show? I bet many people do. Someone comes in your life, someone leaves. I think there would be 1000 of people walk beside you everyday who just passing by. You never know their names. By any chance, you meet someone who is passing by, and catch the name. Soon you guys develop relationship. Do you believe that is the fate?</p>
<p>500 Days of Summer is such a good movie, that let people think something seems meant to be, a decision, a response could easily make things different. But who knows? If everything is meant to be, why should we spending time to explore our life? In the story, Tom believe that the girl,whose name is Summer, is the one of his life, he spends his time with her, hanging out together, they seem like couple, lover. Summer gets merry, but her husband is not Tom. At the end of story, the movie mentions that Tom finally figure out that there is nothing meant to be, and he meets a girl who is a competitor of his new job.  Will Tom fall into another 500 days again? I hope not.</p>
<p>Good story , good movie and it is a real, or much closer to real life. I strongly recommend it.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/01/Untitled-1.jpg"><img class="alignnone size-full wp-image-391" title="Untitled-1" src="http://blog.koumei.net/wp-content/uploads/2010/01/Untitled-1.jpg" alt="" width="262" height="401" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2010/02/09/there-is-nothing-meant-to-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home Made Kim Ba (Sushi)</title>
		<link>http://blog.koumei.net/2010/01/08/home-made-kim-ba-sushi/</link>
		<comments>http://blog.koumei.net/2010/01/08/home-made-kim-ba-sushi/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:37:24 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Principle]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=386</guid>
		<description><![CDATA[
Yummy!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.koumei.net/wp-content/uploads/2010/01/사진070608_1.jpg"><img class="alignnone size-full wp-image-387" title="070608_1" src="http://blog.koumei.net/wp-content/uploads/2010/01/사진070608_1.jpg" alt="" width="600" height="450" /></a></p>
<p>Yummy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2010/01/08/home-made-kim-ba-sushi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UP &#8211; the adventure of a lifetime</title>
		<link>http://blog.koumei.net/2010/01/04/up-the-adventure-of-a-lifetime/</link>
		<comments>http://blog.koumei.net/2010/01/04/up-the-adventure-of-a-lifetime/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:00:35 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Principle]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=372</guid>
		<description><![CDATA[

All his life is dreaming of adventure, finally, he is taking off!

It is a moving story at the very beginning when he is living with his wife before the exploration. It&#8217;s pity that he can&#8217;t take his wife who encourage him to take the adventure  
What&#8217;s the story of the movie? Well, I think [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.koumei.net/wp-content/uploads/2010/01/up2.jpg"><img class="alignnone size-full wp-image-374" title="up2" src="http://blog.koumei.net/wp-content/uploads/2010/01/up2.jpg" alt="" width="480" height="272" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/01/up3.jpg"><img class="alignnone size-full wp-image-375" title="up3" src="http://blog.koumei.net/wp-content/uploads/2010/01/up3.jpg" alt="" width="480" height="272" /></a></p>
<p>All his life is dreaming of adventure, finally, he is taking off!</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2010/01/up1.jpg"><img class="alignnone size-full wp-image-373" title="up1" src="http://blog.koumei.net/wp-content/uploads/2010/01/up1.jpg" alt="" width="480" height="272" /></a></p>
<p>It is a moving story at the very beginning when he is living with his wife before the exploration. It&#8217;s pity that he can&#8217;t take his wife who encourage him to take the adventure <img src='http://blog.koumei.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>What&#8217;s the story of the movie? Well, I think pixar is gonna tell us, an adventure could be a lifetime, as long as you still dream of it. But it would become a true story when stop dreaming, just take off today!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2010/01/04/up-the-adventure-of-a-lifetime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Cast! David&#8217;s Wedding Party (China, GMT+8 20:30)</title>
		<link>http://blog.koumei.net/2009/12/31/live-cast-davids-wedding-party-china-gmt8-2030/</link>
		<comments>http://blog.koumei.net/2009/12/31/live-cast-davids-wedding-party-china-gmt8-2030/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 12:55:40 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Principle]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=356</guid>
		<description><![CDATA[First of all, Happy new year~
Yummy foods and happy David&#8217;s big day!





(last updated: 31 Dec 09  21:01 GMT+8)

(last update: 21:07 GMT+8)

You guys are perfectly natural!
(last update: 21:10 GMT+8)

(last update: 21:19 GMT+8)
]]></description>
			<content:encoded><![CDATA[<p>First of all, Happy new year~</p>
<p>Yummy foods and happy David&#8217;s big day!</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/1.jpg"><img class="alignnone size-full wp-image-357" title="1" src="http://blog.koumei.net/wp-content/uploads/2009/12/1.jpg" alt="1" width="480" height="360" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/4.jpg"><img class="alignnone size-full wp-image-358" title="4" src="http://blog.koumei.net/wp-content/uploads/2009/12/4.jpg" alt="4" width="480" height="360" /><br />
</a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/5.jpg"><img class="alignnone size-full wp-image-360" title="5" src="http://blog.koumei.net/wp-content/uploads/2009/12/5.jpg" alt="5" width="480" height="360" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/6.jpg"><img class="alignnone size-full wp-image-363" title="6" src="http://blog.koumei.net/wp-content/uploads/2009/12/6.jpg" alt="6" width="360" height="480" /></a></p>
<p>(last updated: 31 Dec 09  21:01 GMT+8)</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/7.jpg"><img class="alignnone size-full wp-image-366" title="7" src="http://blog.koumei.net/wp-content/uploads/2009/12/7.jpg" alt="7" width="480" height="360" /></a></p>
<p>(last update: 21:07 GMT+8)</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/8.jpg"><img class="alignnone size-full wp-image-368" title="8" src="http://blog.koumei.net/wp-content/uploads/2009/12/8.jpg" alt="8" width="360" height="480" /></a></p>
<p>You guys are perfectly natural!</p>
<p>(last update: 21:10 GMT+8)</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/9.jpg"><img class="alignnone size-full wp-image-370" title="9" src="http://blog.koumei.net/wp-content/uploads/2009/12/9.jpg" alt="9" width="360" height="480" /></a></p>
<p>(last update: 21:19 GMT+8)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2009/12/31/live-cast-davids-wedding-party-china-gmt8-2030/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Christmas is here :)</title>
		<link>http://blog.koumei.net/2009/12/24/christmas-is-here/</link>
		<comments>http://blog.koumei.net/2009/12/24/christmas-is-here/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 13:00:24 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=351</guid>
		<description><![CDATA[What kind of background music is good for this Christmas? It takes me quite a while to figure it out. After reviewing heaps of Christmas albums, finally my verdict is Diana Krall&#8217;s &#8220;Christmas Songs&#8221; album released on December 2005, but still a good album for this holiday.   You can easily download from iTune, [...]]]></description>
			<content:encoded><![CDATA[<p>What kind of background music is good for this Christmas? It takes me quite a while to figure it out. After reviewing heaps of Christmas albums, finally my verdict is Diana Krall&#8217;s &#8220;Christmas Songs&#8221; album released on December 2005, but still a good album for this holiday. <img src='http://blog.koumei.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  You can easily download from iTune, RRP $16.99 on iTune.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/front.jpg"><img class="alignnone size-full wp-image-352" title="front" src="http://blog.koumei.net/wp-content/uploads/2009/12/front.jpg" alt="front" width="572" height="572" /> </a></p>
<p>I like her voice singing &#8220;Have Yourself A Merry Little Christmas&#8221;, it is romantic.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2009/12/24/christmas-is-here/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Koumei &#8211; A guy who loves &#8220;D.I.Y. &#8220;</title>
		<link>http://blog.koumei.net/2009/12/23/koumei-a-guy-who-loves-diy/</link>
		<comments>http://blog.koumei.net/2009/12/23/koumei-a-guy-who-loves-diy/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:45:33 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Interesting]]></category>
		<category><![CDATA[iDEA]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=337</guid>
		<description><![CDATA[Today I found some photos on my backup disk about D.I.Y. the outlook and skin of my laptop 2 years ago. I would like to share these photos here  .
I still can&#8217;t figure out how and what makes me to do it&#8230;:) It needs gut, because I have to take it apart, and take [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found some photos on my backup disk about D.I.Y. the outlook and skin of my laptop 2 years ago. I would like to share these photos here <img src='http://blog.koumei.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I still can&#8217;t figure out how and what makes me to do it&#8230;:) It needs gut, because I have to take it apart, and take the risk of being unable to assemble it.</p>
<p>Take a look at the photos:</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/20070901001.jpg"><img class="alignnone size-full wp-image-339" title="20070901001" src="http://blog.koumei.net/wp-content/uploads/2009/12/20070901001.jpg" alt="20070901001" width="640" height="480" /></a><br />
Take it apart!</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/20070902004.jpg"><img class="alignnone size-large wp-image-342" title="20070902004" src="http://blog.koumei.net/wp-content/uploads/2009/12/20070902004-1024x768.jpg" alt="20070902004" width="614" height="461" /></a><br />
Preparing&#8230; Spray, tape, knife and sandpaper.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/20070902005.jpg"><img class="alignnone size-large wp-image-344" title="20070902005" src="http://blog.koumei.net/wp-content/uploads/2009/12/20070902005-1024x768.jpg" alt="20070902005" width="614" height="461" /></a><br />
Spray on the shell and paste some stickers, of course, it is perfectly assembled.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/sp_a0204.jpg"><img class="alignnone size-full wp-image-345" title="sp_a0204" src="http://blog.koumei.net/wp-content/uploads/2009/12/sp_a0204.jpg" alt="sp_a0204" width="640" height="480" /></a><br />
It looks wonderful, isn&#8217;t it? The skin is printed using the same wallpaper on the laptop:</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/12/sp_a0206.jpg"><img class="alignnone size-full wp-image-346" title="sp_a0206" src="http://blog.koumei.net/wp-content/uploads/2009/12/sp_a0206.jpg" alt="sp_a0206" width="640" height="480" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2009/12/23/koumei-a-guy-who-loves-diy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aquavista Building in Dockland &#8211; Photo by Mr Jones</title>
		<link>http://blog.koumei.net/2009/12/13/aquavista-building-in-dockland-photo-by-mr-jones/</link>
		<comments>http://blog.koumei.net/2009/12/13/aquavista-building-in-dockland-photo-by-mr-jones/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 10:06:30 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Principle]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=333</guid>
		<description><![CDATA[City circle is from central city, its free. But sometimes it is crowded.  
The photo is taken and owned by Mr Jones who is an enthusiast in photography. I &#8220;steal&#8221; some from his repository. *.*
]]></description>
			<content:encoded><![CDATA[<div id="attachment_334" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.koumei.net/wp-content/uploads/2009/12/dnasp.jpg"><img class="size-medium wp-image-334" title="Aquavista in Dockland" src="http://blog.koumei.net/wp-content/uploads/2009/12/dnasp-300x225.jpg" alt="Aquavista in Dockland" width="300" height="225" /></a><p class="wp-caption-text">Aquavista in Dockland</p></div>
<p>City circle is from central city, its free. But sometimes it is crowded. <img src='http://blog.koumei.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The photo is taken and owned by Mr Jones who is an enthusiast in photography. I &#8220;steal&#8221; some from his repository. *.*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2009/12/13/aquavista-building-in-dockland-photo-by-mr-jones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lab &#8211; Analysis Utility for Dentist &#8211; Schwartz-Korkhaus Model</title>
		<link>http://blog.koumei.net/2009/11/11/lab-analysis-utility-for-dentist-schwartz-korkhaus-model/</link>
		<comments>http://blog.koumei.net/2009/11/11/lab-analysis-utility-for-dentist-schwartz-korkhaus-model/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 10:07:29 +0000</pubDate>
		<dc:creator>Koumei</dc:creator>
				<category><![CDATA[Lab]]></category>

		<guid isPermaLink="false">http://blog.koumei.net/?p=324</guid>
		<description><![CDATA[Idea for creating this gadget is to minimize the time for calculating the data gathering from the dental study model. My existence is to reduce the repetition and complexity.  
Email me if you need such gadget. It&#8217;s free to use for all the dentists.
After input the data of A,B,C,D,B1 and C1, the gadget can [...]]]></description>
			<content:encoded><![CDATA[<p>Idea for creating this gadget is to minimize the time for calculating the data gathering from the dental study model. My existence is to reduce the repetition and complexity. <img src='http://blog.koumei.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Email me if you need such gadget. It&#8217;s free to use for all the dentists.</p>
<p>After input the data of A,B,C,D,B1 and C1, the gadget can print it as PDF and the filename is set to patient&#8217;s name automatically.</p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/11/11-11-2009-8-49-28-pm.png"><img class="alignnone size-full wp-image-325" title="11-11-2009-8-49-28-pm" src="http://blog.koumei.net/wp-content/uploads/2009/11/11-11-2009-8-49-28-pm.png" alt="11-11-2009-8-49-28-pm" width="641" height="323" /></a></p>
<p><a href="http://blog.koumei.net/wp-content/uploads/2009/11/11-11-2009-8-50-23-pm.png"><img class="alignnone size-full wp-image-326" style="border: 1px solid black;" title="11-11-2009-8-50-23-pm" src="http://blog.koumei.net/wp-content/uploads/2009/11/11-11-2009-8-50-23-pm.png" alt="11-11-2009-8-50-23-pm" width="373" height="497" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.koumei.net/2009/11/11/lab-analysis-utility-for-dentist-schwartz-korkhaus-model/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
