<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkQFSHc7fSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-35733274</id><updated>2011-11-28T07:31:59.905+07:00</updated><category term="brail" /><category term="Vista" /><category term="ASP.NET 2.0" /><category term="Visual Effect" /><category term="Release" /><category term="Outlook" /><category term="ActiveRecord" /><category term="update project url" /><category term="open comment" /><category term="CuteFTP" /><category term="Brainstorm" /><category term="MOTU" /><category term="Geek" /><category term="Castle" /><category term="OpenOffice.org 2.3" /><category term="My Way" /><category term="Scriptaculou" /><category term="DTO" /><category term="Programming" /><category term="NY" /><category term="Platform" /><category term="ReSharper 3.1" /><category term="new7wonders" /><category term="Useful Packages" /><category term="csharp" /><category term="Ascii" /><category term="FTP" /><category term="Hex" /><category term="beta; MonoRail" /><category term="ViewComponent" /><category term="Turtorial in Khmer" /><category term="Celebration" /><category term="ubuntu 7.04 installation" /><category term="sue" /><category term="eclipse" /><category term="Laptop" /><category term=".NET 2.0" /><category term="Tabify" /><category term="Coding" /><category term="a-Kdam" /><category term="ubuntu 7.10" /><category term="Ubuntu 8.04" /><category term="nsis" /><category term="anti-blog" /><category term="Castle.ActiveRecord" /><category term="ReportViewer" /><category term="Prototype" /><category term="Unbuntu 7.04; Toshiba M100" /><category term="Refactoring" /><category term="Slow IO Operation" /><category term="VS2008" /><category term="ADO.NET" /><category term="Cambodia Villa" /><category term="LocalReport" /><category term="Development" /><category term="Rental" /><category term="Windows XP Tweak" /><category term="funny cartoon" /><category term="Vista SP1" /><category term="MonoRail" /><category term="Projection" /><category term="XAMPP for Windows and MySQL 5.0.27" /><category term="Hardy Heron" /><category term="Housing" /><category term="joke" /><category term="NHibernate" /><category term="Lookup" /><category term="not enough space" /><category term="GDI+" /><category term="Ubuntu" /><category term="Khmer Unicode" /><category term="ubuntu 7.10 RC" /><category term="MR" /><category term="Website Development" /><category term="DirectX" /><category term="HttpPostedFile" /><title>Chorn Sokun</title><subtitle type="html">!!! err-detected !!!
show.detail(this, bug);
plan.attack(this, bug);</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://chorn-sokun.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://chorn-sokun.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/chornsokun" /><feedburner:info uri="chornsokun" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEICQHw9eip7ImA9WxZbGUk.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-4290762737442620186</id><published>2008-04-23T15:22:00.007+07:00</published><updated>2008-04-23T16:22:41.262+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-23T16:22:41.262+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NHibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="Castle.ActiveRecord" /><title>Many to many lazzziii</title><content type="html">NHibernate's rock I scratched my head for a few hours looking at this code&lt;br /&gt;&lt;blockquote&gt;DetachedCriteria filter = DetachedCriteria.For(typeof(Project))&lt;br /&gt;.Add(Expression.Eq("ID", pid))&lt;br /&gt;.SetProjection(Projections.Property("Type"));&lt;br /&gt;&lt;br /&gt;DetachedCriteria q = DetachedCriteria.For(typeof(List_Output), "op")&lt;br /&gt;.CreateCriteria("ProjectTypes")&lt;br /&gt;.Add(Subqueries.Exists(filter));&lt;br /&gt;&lt;br /&gt;return q.GetExecutableCriteria(&lt;br /&gt;           holder.CreateSession(typeof(List_Output))&lt;br /&gt;       ).List&lt;list_output&gt;();&lt;br /&gt;&lt;/list_output&gt;&lt;/blockquote&gt;Wonder why I got so many sql call to the server? the domain objects in the discussion context are &lt;span style="font-weight: bold;"&gt;Project &lt;/span&gt;has a &lt;span style="font-weight: bold;"&gt;Type &lt;/span&gt;and base on selected &lt;span style="font-weight: bold;"&gt;Type &lt;/span&gt;a project can choices a bunch of Outputs.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BRGf4aMx5dE/SA74iaXXs1I/AAAAAAAABDI/Md6Vu1ySPiI/s1600-h/diagram.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BRGf4aMx5dE/SA74iaXXs1I/AAAAAAAABDI/Md6Vu1ySPiI/s400/diagram.jpg" alt="" id="BLOGGER_PHOTO_ID_5192360690481345362" border="0" /&gt;&lt;/a&gt;So &lt;span style="font-weight: bold;"&gt;Project &lt;/span&gt;is belong to a &lt;span style="font-weight: bold;"&gt;Type &lt;/span&gt;[One-to-Many], and &lt;span style="font-weight: bold;"&gt;Type &lt;/span&gt;has many &lt;span style="font-weight: bold;"&gt;Outputs &lt;/span&gt;where &lt;span style="font-weight: bold;"&gt;Output &lt;/span&gt;belong to Many &lt;span style="font-weight: bold;"&gt;Types &lt;/span&gt;[Many-to-Many].&lt;br /&gt;&lt;br /&gt;What I found and fix is Lazzzzzzzziiiiiiiiiiiiiiii :))&lt;br /&gt;I forgot to tell Type to load Outputs in a Lazy way and vise versa once that done I got only one YEAH ! I mean ONE sql call to the server to get what I asked for instead of 2 + N (where N is number of relevant Outputs in a Type)&lt;br /&gt;&lt;br /&gt;Thanks to DetachedCriteria &amp;amp; the Laziness until next time today magic word is "Lazy = true"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-4290762737442620186?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/Kr1zEMruEpk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4290762737442620186?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4290762737442620186?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/Kr1zEMruEpk/many-to-many-lazzziii.html" title="Many to many lazzziii" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_BRGf4aMx5dE/SA74iaXXs1I/AAAAAAAABDI/Md6Vu1ySPiI/s72-c/diagram.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/04/many-to-many-lazzziii.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UDSHY4fSp7ImA9WxZbFU0.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-4458237769127861767</id><published>2008-04-18T15:48:00.003+07:00</published><updated>2008-04-18T16:01:19.835+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-18T16:01:19.835+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NHibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="Castle.ActiveRecord" /><title>Woh Woh storedprocedure no more ...</title><content type="html">Read the title and want to know how to do that? come with me hacking the &lt;a href="http://svn.castleproject.org:8080/svn/castle/trunk"&gt;Castle code base&lt;/a&gt; or to be accurate hack &lt;a href="https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk"&gt;NHibernate code base&lt;/a&gt;, what you need to bring along? not much but a &lt;a href="http://tortoisesvn.tigris.org"&gt;SubVersion&lt;/a&gt;, &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt;, &lt;a href="http://www.mbunit.com"&gt;MbUnit &lt;/a&gt;and &lt;a href="http://www.nunit.org"&gt;NUnit &lt;/a&gt;that sound enough ;)&lt;br /&gt;&lt;br /&gt;Enjoy plug &amp;amp; play your database and let the Jedi rise&lt;br /&gt;Happy Friday everyone !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-4458237769127861767?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/_DOZ3LVnOTc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4458237769127861767?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4458237769127861767?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/_DOZ3LVnOTc/woh-woh-storedprocedure-no-more.html" title="Woh Woh storedprocedure no more ..." /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/04/woh-woh-storedprocedure-no-more.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4HQHs4cSp7ImA9WxZUFEo.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-5926275326221035386</id><published>2008-04-06T17:39:00.003+07:00</published><updated>2008-04-06T17:48:51.539+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-06T17:48:51.539+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Brainstorm" /><category scheme="http://www.blogger.com/atom/ns#" term="Hardy Heron" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>... and so there is a response</title><content type="html">As I sad I love to see thing happen without me touching the code base :)) and how about the full fill my wish list?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://brainstorm.ubuntu.com/idea/4846/"&gt;MonoDevelop 1.0 go for Hardy&lt;/a&gt; (done)&lt;/li&gt;&lt;/ul&gt;Oh ! how about eclipse &amp;amp; it partner PDT? Vote it up so we "eclipse fan" can have it goes for Hardy as well ;)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://brainstorm.ubuntu.com/idea/1265/"&gt;Make Eclipse Priority&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="title-5884" class="itemtitle itemundeleted" href="http://brainstorm.ubuntu.com/idea/5884/"&gt;Add PDT-Eclipse (PHP-Support)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Last but it the beast &lt;a id="title-6088" class="itemtitle itemundeleted" href="http://brainstorm.ubuntu.com/idea/6088/"&gt;Ship Mono.19 with Ubuntu 8.04&lt;/a&gt; go vote for it if we're true friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-5926275326221035386?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/O0gh9xkoubY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/5926275326221035386?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/5926275326221035386?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/O0gh9xkoubY/and-so-there-is-response.html" title="... and so there is a response" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/04/and-so-there-is-response.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FR3Y9eSp7ImA9WxZUFEg.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-7097357754855186176</id><published>2008-04-06T10:32:00.002+07:00</published><updated>2008-04-06T10:35:16.861+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-06T10:35:16.861+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Geek" /><category scheme="http://www.blogger.com/atom/ns#" term="Ascii" /><category scheme="http://www.blogger.com/atom/ns#" term="Hex" /><title>Encoded message</title><content type="html">Rob Conery the man behind "SubSonic" a blogger like to post his &lt;a href="http://blog.wekeroad.com/blog/thoughts-for-a-friday/"&gt;though in a hex&lt;/a&gt;; wonder what on his mind? try this online hex converter http://www.dolcevie.com/js/converter.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-7097357754855186176?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/KFyZ1FdV27c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7097357754855186176?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7097357754855186176?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/KFyZ1FdV27c/encoded-message.html" title="Encoded message" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/04/encoded-message.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAFRX09eip7ImA9WxZUEUg.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-4929187447714863168</id><published>2008-04-03T00:33:00.004+07:00</published><updated>2008-04-03T00:51:54.362+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-03T00:51:54.362+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Platform" /><category scheme="http://www.blogger.com/atom/ns#" term="MOTU" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Ubuntu 8.04 Hardy Heron - that for my mom</title><content type="html">If you follow my previous post you might know what I've been doing so far, well i was messing around with Ubuntu 8.04 and if you ask me how was that? I would say "Yeah, It is an OS for my mom". How about you buddi? you asked. See the problem is Ubuntu 8.04 was developed for my mom it wasn't me ! :( that kind of sad isn't it?&lt;br /&gt;&lt;br /&gt;Now let me express what make me feel this way, I guess you know who I am right? Oh ! com'on I knew you did hahaha I write VB, PHP, Java &amp;amp; C# tool I am expected to see in Hardy Heron&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Eclipse 3.3 (sorry we got 3.2 )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mono 1.9 (hm hmm, wait and see u might have it next release cycle)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MonoDevelop 1.0 (oh, isn't beta 3 work great for ya ?!)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;the Ubuntu guy love to play with giant snake therefore all they care about is Python.&lt;br /&gt;&lt;br /&gt;After all I might have to do I miss catch for 8.04 cuz my mom don't use any computer :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-4929187447714863168?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/p-VPorbOTQY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4929187447714863168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/4929187447714863168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/p-VPorbOTQY/ubuntu-804-hardy-heron-that-for-my-mom.html" title="Ubuntu 8.04 Hardy Heron - that for my mom" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/04/ubuntu-804-hardy-heron-that-for-my-mom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEMRHg_fSp7ImA9WxZVEko.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-1144000392531621379</id><published>2008-03-09T12:13:00.005+07:00</published><updated>2008-03-23T18:11:25.645+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-23T18:11:25.645+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Khmer Unicode" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu 8.04" /><title>Ubuntu 8.04 Hardy Heron Alpha 6</title><content type="html">Khmer Script Line break solved see screenshot bellow&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BRGf4aMx5dE/R9Nyb44N6kI/AAAAAAAAAsM/ucpNSDA3J0U/s1600-h/khmer_script_solved_in_hard.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_BRGf4aMx5dE/R9Nyb44N6kI/AAAAAAAAAsM/ucpNSDA3J0U/s400/khmer_script_solved_in_hard.jpg" alt="" id="BLOGGER_PHOTO_ID_5175606220229044802" border="0" /&gt;&lt;/a&gt;However I am not sure what was wrong with a few character which can't render properly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BRGf4aMx5dE/R9Nyyo4N6lI/AAAAAAAAAsU/9RB0ukrZ6jE/s1600-h/missing_script.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BRGf4aMx5dE/R9Nyyo4N6lI/AAAAAAAAAsU/9RB0ukrZ6jE/s400/missing_script.jpg" alt="" id="BLOGGER_PHOTO_ID_5175606611071068754" border="0" /&gt;&lt;/a&gt;Any thought?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-1144000392531621379?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/a7xqCqPmdwE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/1144000392531621379?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/1144000392531621379?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/a7xqCqPmdwE/ubuntu-804-hardy-heron-alpha-6.html" title="Ubuntu 8.04 Hardy Heron Alpha 6" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_BRGf4aMx5dE/R9Nyb44N6kI/AAAAAAAAAsM/ucpNSDA3J0U/s72-c/khmer_script_solved_in_hard.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/03/ubuntu-804-hardy-heron-alpha-6.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABQ3syfyp7ImA9WxZXGEg.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-6532192258117332039</id><published>2008-03-07T08:43:00.003+07:00</published><updated>2008-03-07T08:52:32.597+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-07T08:52:32.597+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FTP" /><category scheme="http://www.blogger.com/atom/ns#" term="CuteFTP" /><title>IP Switch WS_FTP die die</title><content type="html">I always been a fan of WS_FTP up until last night I just can't get on with that freaking slow file transfer. I just told myself to blame ISP for not taken care of FTP connection however after tried a few different ISP connection I start to belive that was not the case. I must had to do something about it or else I better shot myself in the foot. So here come the decision:&lt;br /&gt;&lt;br /&gt;Get rid of WS_FTP install CuteFTP from &lt;a href="http://www.cuteftp.com"&gt;GlobalSCAPE &lt;/a&gt;and voilá all the pain gone thanks Budha !&lt;br /&gt;Last word die die die WS_FTP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-6532192258117332039?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/42DpQazr91Y" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/6532192258117332039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/6532192258117332039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/42DpQazr91Y/ip-switch-wsftp-die-die.html" title="IP Switch WS_FTP die die" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/03/ip-switch-wsftp-die-die.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYCSHg_fip7ImA9WxZXF00.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-917764145549338113</id><published>2008-03-05T14:37:00.006+07:00</published><updated>2008-03-05T15:02:49.646+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-05T15:02:49.646+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tabify" /><category scheme="http://www.blogger.com/atom/ns#" term="Coding" /><title>Tabify why I never care?</title><content type="html">I thought I was one of the coder who obey coding standard, but hell no until &lt;a href="http://support.castleproject.org//browse/COMP-51?page=comments#action_12558"&gt;a guy told me I wasn't&lt;/a&gt;. That kind of make me feel like a fool :))&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BRGf4aMx5dE/R85PiiYKDrI/AAAAAAAAArk/gER6B8X20-M/s1600-h/nake-eyes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BRGf4aMx5dE/R85PiiYKDrI/AAAAAAAAArk/gER6B8X20-M/s400/nake-eyes.jpg" alt="" id="BLOGGER_PHOTO_ID_5174160476657553074" border="0" /&gt;&lt;/a&gt;Well, this is how I get around:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tools -&gt; Options -&gt; Text Editor -&gt; C# -&gt; Tabs (Hell no ! "Insert spaces" was selected)&lt;/li&gt;&lt;li&gt;select "Keep tabs"&lt;/li&gt;&lt;/ul&gt;Alright let see will this work "Tabify"&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Edit -&gt; Advanced -&gt; View White space (Crtl + R, Crtl + W)&lt;/li&gt;&lt;li&gt;Now reformat your code [ Ctrl + A; Ctrl + K, Ctrl + F]&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BRGf4aMx5dE/R85Q9iYKDsI/AAAAAAAAArs/qLxfa_m43C4/s1600-h/eye-open.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BRGf4aMx5dE/R85Q9iYKDsI/AAAAAAAAArs/qLxfa_m43C4/s400/eye-open.jpg" alt="" id="BLOGGER_PHOTO_ID_5174162040025648834" border="0" /&gt;&lt;/a&gt;Is that "Tabify" you talking about &lt;a href="http://www.kenegozi.com/blog/"&gt;Ken &lt;/a&gt;;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-917764145549338113?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/IznLRvsVJRQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/917764145549338113?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/917764145549338113?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/IznLRvsVJRQ/tabify-why-i-never-care.html" title="Tabify why I never care?" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_BRGf4aMx5dE/R85PiiYKDrI/AAAAAAAAArk/gER6B8X20-M/s72-c/nake-eyes.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/03/tabify-why-i-never-care.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CQXs8fip7ImA9WxZXFkw.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-7299237439468776948</id><published>2008-03-04T14:32:00.003+07:00</published><updated>2008-03-04T14:49:20.576+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-04T14:49:20.576+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>What a storm !</title><content type="html">No no there is no weather news to tell ya, just being one of &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;'s fan I got to tell you how I love the project as well as the people behind it.&lt;br /&gt;&lt;br /&gt;They try so hard to make it possible for everyone to contribute back and like every kids love x-mas hope their wish will come true. Now there is a new Santa looking for your wishes @&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://brainstorm.ubuntu.com/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 400px;" src="http://brainstorm.ubuntu.com/modules/qawebsite/images/logo/idea-logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To cut the long story short here is the latest tool &lt;a href="http://brainstorm.ubuntu.com/"&gt;brainstorm&lt;/a&gt; ;) I find it cool to vote/write down great idea and got it build "without us do the hard work" what a storm !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-7299237439468776948?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/TWzHaIldx1c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7299237439468776948?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7299237439468776948?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/TWzHaIldx1c/what-storm.html" title="What a storm !" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/03/what-storm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGQ3kzfSp7ImA9WxZSGEs.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-822101528614139747</id><published>2008-02-01T17:40:00.000+07:00</published><updated>2008-02-01T18:02:02.785+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-01T18:02:02.785+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET 2.0" /><category scheme="http://www.blogger.com/atom/ns#" term="HttpPostedFile" /><category scheme="http://www.blogger.com/atom/ns#" term="MR" /><title>ASP.NET Fileupload</title><content type="html">Call me lazy cuz I am deserved it. It shocked me a bit when a production code crash on my face. As part of my job today I have to train a few admin staffs on how to operate our newly invented site  &lt;a href="http://www.ncdd.gov.kh/jobs"&gt;www.ncdd.gov.kh/jobs&lt;/a&gt; it works out quiet well on my machine cuz I dev, test &amp;amp; teach on Mozill Firefox. But it turn out that I don't perform enough exercise cuz I haven't test the site with IE yeah, cuz I haven't use IE for almost 3 years enough to forgot about it :)) anyway here is the story.&lt;br /&gt;&lt;br /&gt;Do you know this guy &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httppostedfile.aspx"&gt;System.Web.HttpPostedFile&lt;/a&gt;? yeah, he is my best friend when it comes to uploading file in ASP.NET. However you should know that he acted bit strange with browse in used.&lt;br /&gt;&lt;br /&gt;Let say file1 is an instance of HttpPostedFile and if we ask him &lt;span style="font-weight: bold;"&gt;file1.FileName&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Firefox return :&lt;br /&gt;"&lt;span style="font-weight: bold;"&gt;Hello My Friend.doc&lt;/span&gt;"&lt;br /&gt;Nice , isn't it?&lt;br /&gt;&lt;br /&gt;IE return :&lt;br /&gt;"C:\Document &amp;amp; Setting ....\user_name\desktop\&lt;span style="font-weight: bold;"&gt;Hello My Friend.doc&lt;/span&gt;"&lt;br /&gt;WWOWO WHAT?! it slap me so hard to make me laugh out loud :))&lt;br /&gt;Not Nice !&lt;br /&gt;&lt;/blockquote&gt;Anyway quick fix would be add a small detection on the file1.FileName&lt;br /&gt;&lt;blockquote&gt;int lastDirSeparatorChar = file1.FileName.LastIndexOf(Path.DirectorySeparatorChar);&lt;br /&gt;&lt;br /&gt;if (lastDirSeparatorChar &gt; 0)&lt;br /&gt;{&lt;br /&gt;    filename = file1.FileName.Substring(lastDirSeparatorChar + 1);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;    filename = file1.FileName&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Lesson learn&lt;/span&gt; - test dev. site with IE as much as I hate "IE"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-822101528614139747?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/vLgWrmPmiSM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/822101528614139747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/822101528614139747?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/vLgWrmPmiSM/aspnet-fileupload.html" title="ASP.NET Fileupload" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/02/aspnet-fileupload.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAFRX4yfyp7ImA9WxZSEUs.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-6465067748154620268</id><published>2008-01-24T16:55:00.000+07:00</published><updated>2008-01-24T16:58:34.097+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T16:58:34.097+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="beta; MonoRail" /><title>NCDD Recruitment Website is now online</title><content type="html">Early release to take away my workloads; okay now it is the HR who got fun time with the new toy.&lt;br /&gt;Check it out &lt;a href="http://www.ncdd.gov.kh/jobs"&gt;www.ncdd.gov.kh/jobs&lt;/a&gt; if think you have something to do with D&amp;amp;D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-6465067748154620268?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/xjHOm7FYpRg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/6465067748154620268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/6465067748154620268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/xjHOm7FYpRg/ncdd-recruitment-website-is-now-online.html" title="NCDD Recruitment Website is now online" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/ncdd-recruitment-website-is-now-online.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGQ3c9eyp7ImA9WxZSEEg.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-5869107719685224072</id><published>2008-01-23T08:18:00.001+07:00</published><updated>2008-01-23T08:27:02.963+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-23T08:27:02.963+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Laptop" /><title>Sagernotebook.com's Product</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BRGf4aMx5dE/R5aXvdVAftI/AAAAAAAAAmo/cctCaY5ABu0/s1600-h/spec.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_BRGf4aMx5dE/R5aXvdVAftI/AAAAAAAAAmo/cctCaY5ABu0/s400/spec.jpg" alt="" id="BLOGGER_PHOTO_ID_5158477264781868754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well, just the spec that would satisfy me :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-5869107719685224072?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/Bg1QNj6WTOo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/5869107719685224072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/5869107719685224072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/Bg1QNj6WTOo/well-just-spec-that-would-satisfy-me-d.html" title="Sagernotebook.com's Product" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_BRGf4aMx5dE/R5aXvdVAftI/AAAAAAAAAmo/cctCaY5ABu0/s72-c/spec.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/well-just-spec-that-would-satisfy-me-d.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FQHo_fCp7ImA9WxZTGUQ.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-3784549324933677298</id><published>2008-01-22T15:53:00.000+07:00</published><updated>2008-01-22T16:06:51.444+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-22T16:06:51.444+07:00</app:edited><title>We had lost our buddy</title><content type="html">&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://limbiz.blogspot.com/2008/01/nov-vithous-wedding.html"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BRGf4aMx5dE/R5WwhtVAfrI/AAAAAAAAAmY/ENzYZ07QOCY/s400/vithou.jpg" alt="" id="BLOGGER_PHOTO_ID_5158223041372651186" border="0" /&gt;&lt;/a&gt;We are so sad to congrats our buddi who had lost his freedom.&lt;br /&gt;Don't worry my friend, we will always remember all bar, bear &amp;amp; karaoke room that we went together.&lt;br /&gt;&lt;br /&gt;To You &amp;amp; Yours Happy Couple&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-3784549324933677298?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/dDQMPsu9ULQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/3784549324933677298?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/3784549324933677298?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/dDQMPsu9ULQ/we-had-lost-our-buddy.html" title="We had lost our buddy" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_BRGf4aMx5dE/R5WwhtVAfrI/AAAAAAAAAmY/ENzYZ07QOCY/s72-c/vithou.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/we-had-lost-our-buddy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQn87eip7ImA9WxZTFkk.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-35782197617371744</id><published>2008-01-18T15:13:00.000+07:00</published><updated>2008-01-18T15:17:53.102+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-18T15:17:53.102+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Refactoring" /><category scheme="http://www.blogger.com/atom/ns#" term="MonoRail" /><category scheme="http://www.blogger.com/atom/ns#" term="ViewComponent" /><title>Extending MonoRail ViewComponent</title><content type="html">Quick note before I leave my desk for a meeting&lt;br /&gt;&lt;br /&gt;Always apply ViewComponentDetailsAttribute on your custom ViewComponent like this&lt;br /&gt;&lt;blockquote&gt;[ViewComponentDetails(string name, string sections, Type CacheKeyFactory, ViewComponentCache Cache)]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This will prevent your custom view component name clash with base component name.&lt;br /&gt;Okay ! got to go&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-35782197617371744?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/CP-t5CtRAbs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/35782197617371744?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/35782197617371744?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/CP-t5CtRAbs/extending-monorail-viewcomponent.html" title="Extending MonoRail ViewComponent" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/extending-monorail-viewcomponent.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MEQXc7eSp7ImA9WxZTFUs.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-886079566241123392</id><published>2008-01-17T15:55:00.000+07:00</published><updated>2008-01-17T16:16:40.901+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-17T16:16:40.901+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ActiveRecord" /><category scheme="http://www.blogger.com/atom/ns#" term="NHibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="Projection" /><title>Let do Projection</title><content type="html">This would be a continue part from my &lt;a href="http://chorn-sokun.blogspot.com/2007/12/ilist-you-have-me.html"&gt;previous post&lt;/a&gt;, what I tried to do is find out how to use ActiveRecord "NHiberate to be clear" in my reporting scenario (not a CRUD) after a quick search I come up with a few blog posts which give me some light:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ayende.com/Blog/archive/7510.aspx"&gt;ActiveRecord and ASP.NET 2.0 [Ayende ]&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kenegozi.com/Blog/2006/10/08/projection-using-activerecords-importattribute-and-hqls-select-new-clause.aspx"&gt;Projection Using ActiveRecord's ImportAttribute and HQL's new Clause [Ken Egozi]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;It will take another post for me to wrap up how I come up with .... stay tune.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Edit:&lt;/span&gt; I shouldn't have missed, exploring test case&lt;br /&gt;&lt;a href="http://fisheye3.cenqua.com/browse/castleproject/trunk/ActiveRecord/Castle.ActiveRecord.Tests"&gt;Castle.ActiveRecord.Tests&lt;/a&gt;\&lt;a href="http://fisheye3.cenqua.com/browse/castleproject/trunk/ActiveRecord/Castle.ActiveRecord.Tests/ActiveRecordGenericsTestCase.cs"&gt;ActiveRecordGenericsTestCase.cs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-886079566241123392?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/19VA9o6G7qc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/886079566241123392?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/886079566241123392?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/19VA9o6G7qc/let-do-projection.html" title="Let do Projection" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/let-do-projection.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08CRXY6eSp7ImA9WxZTFU4.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-1703024245837319978</id><published>2008-01-17T08:54:00.000+07:00</published><updated>2008-01-17T09:11:04.811+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-17T09:11:04.811+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Useful Packages" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu 7.10" /><title>Ubuntu "Dock It Mac Way"</title><content type="html">It almost 2 months since my busy schedule started, I was unable to find sometime to spend with my beloved Gutsy until today * I am no expert in Ubuntu * in the exploration process I decided to upgrade a few packages to it latest version and well I come across one cool package:&lt;br /&gt;&lt;br /&gt;Avant Window Navigator (Awn) is a dock-like bar which sits at the bottom of the screen. It has support for launchers, task lists, and third party applets.The Awn project is the development of the ‘dock’, avant-window-navigator, and its corresponding shared library ‘libawn’, which is used to develop applets.&lt;br /&gt;&lt;br /&gt;For more detail instruction read it @ http://www.ubuntugeek.com or direct link &lt;a href="http://www.ubuntugeek.com/howto-install-avant-window-navigator-awn-in-ubuntu-710-gutsy-gibbon.html/trackback/"&gt;Avant Window Navigator&lt;/a&gt; enjoy fun ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-1703024245837319978?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/WfUBIBPV2g8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/1703024245837319978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/1703024245837319978?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/WfUBIBPV2g8/ubuntu-dock-it-like-mac-os.html" title="Ubuntu &quot;Dock It Mac Way&quot;" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/ubuntu-dock-it-like-mac-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYMQnw5eSp7ImA9WB9aFko.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-8725609638888825012</id><published>2008-01-07T08:29:00.000+07:00</published><updated>2008-01-07T08:43:03.221+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-07T08:43:03.221+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ReSharper 3.1" /><category scheme="http://www.blogger.com/atom/ns#" term="VS2008" /><title>Visual Studio 2008 stink without ReSharper</title><content type="html">Oh ! man I though VS2008 will give developer more productivity I was wrong.&lt;br /&gt;Without &lt;a href="http://www.jetbrains.com/resharper/"&gt;ReSharper &lt;/a&gt;I feel like I take my time writing stupid code that do nothing.&lt;br /&gt;&lt;br /&gt;VS2008 Refactoring tool is suck !&lt;br /&gt;&lt;br /&gt;However the ReSharper 4.0 for Visual Studio 2008 is not yet release, but I can install the 3.1 with the following command&lt;br /&gt;&lt;blockquote&gt;msiexec /i ReSharperSetup.3.1.Full.VS80.msi VSVERSION=9.0&lt;/blockquote&gt;And here we go all the goodness command are come back to me.&lt;br /&gt;If you don't believe me &lt;a href="http://www.jetbrains.com/resharper/documentation/presentation/Editor_Feature_Highlights/ReSharperEFH.html"&gt;watch demo video feature highlight&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-8725609638888825012?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/yjPdQCxP1Gc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8725609638888825012?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8725609638888825012?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/yjPdQCxP1Gc/visual-studio-2008-stink-without.html" title="Visual Studio 2008 stink without ReSharper" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/visual-studio-2008-stink-without.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEHR3kyfSp7ImA9WB9aFUQ.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-8725616608049473683</id><published>2008-01-06T12:07:00.000+07:00</published><updated>2008-01-06T12:17:16.795+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-06T12:17:16.795+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vista SP1" /><title>This is how a GIANT learn to copy files</title><content type="html">&lt;a href="http://technet2.microsoft.com/WindowsVista/en/library/005f921e-f706-401e-abb5-eec42ea0a03e1033.mspx?pf=true"&gt;Vista SP1 Notable Change&lt;/a&gt; - most notable change is MS is still learning how perform file operation (Copy/Move/Delete) the right way.&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Improves performance over Windows Vista’s current performance across the following scenarios1:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;25% faster when copying files locally on the same disk on the same machine&lt;/li&gt;&lt;li&gt;45% faster when copying files from a remote non-Windows Vista system to a SP1 system&lt;/li&gt;&lt;li&gt;50% faster when copying files from a remote SP1 system to a local SP1 system&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/blockquote&gt;Oh and here is the funny part:&lt;br /&gt;&lt;blockquote&gt;Improves the copy progress estimation when copying files within Windows Explorer to about two seconds.&lt;/blockquote&gt;What so exciting improvement to be expect in the list :D Well, it sound like we have to wait for SP1+ before purchasing product release by MS.&lt;br /&gt;I wonder does SP1+ = version 3.0 :)) anyway enjoy reading &lt;a href="http://technet2.microsoft.com/WindowsVista/en/library/005f921e-f706-401e-abb5-eec42ea0a03e1033.mspx?pf=true"&gt;detail here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-8725616608049473683?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/LAiT3uATkDk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8725616608049473683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8725616608049473683?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/LAiT3uATkDk/this-is-how-giant-learn-to-copy-files.html" title="This is how a GIANT learn to copy files" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/this-is-how-giant-learn-to-copy-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4AQHc7cCp7ImA9WB9aE08.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-8863117364344625264</id><published>2008-01-03T08:40:00.000+07:00</published><updated>2008-01-03T08:49:01.908+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-03T08:49:01.908+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Outlook" /><title>Level1Remove : Unblock/block file attachments in MS. Outlook</title><content type="html">Note for myself &lt;a href="http://support.microsoft.com/kb/837388"&gt;http://support.microsoft.com/kb/837388&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-8863117364344625264?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/GSumYXfjfoo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8863117364344625264?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8863117364344625264?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/GSumYXfjfoo/level1remove-unblockblock-file.html" title="Level1Remove : Unblock/block file attachments in MS. Outlook" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/level1remove-unblockblock-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8HQ3cyfSp7ImA9WB9aEU8.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-897584929533957488</id><published>2008-01-01T00:09:00.000+07:00</published><updated>2008-01-01T00:40:32.995+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-01T00:40:32.995+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Celebration" /><title>2008 hitting the road</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BRGf4aMx5dE/R3klkNVAfqI/AAAAAAAAAmQ/7Ev9MABuaxU/s1600-h/images.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BRGf4aMx5dE/R3klkNVAfqI/AAAAAAAAAmQ/7Ev9MABuaxU/s400/images.jpg" alt="" id="BLOGGER_PHOTO_ID_5150188952858164898" border="0" /&gt;&lt;/a&gt;Let me take this opportunity wishing you all the best,&lt;br /&gt;&lt;div style="text-align: left;"&gt;2008 refresh our brain bring more innovations and best of all let rock the Net.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;2008 Wish list:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/testing"&gt;Ubuntu 8.04 Hardy Heron&lt;/a&gt; - more hardware support out of the box please ...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.hibernate.org/357.html#A14"&gt;NHibernate 2.0 GA&lt;/a&gt; - let persist the universe&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.castleproject.org/"&gt;Castle 1.0 GA&lt;/a&gt; - let become a great warrior &lt;/li&gt;&lt;li&gt;MySQL 5.1/6.0 GA - falcon data engine, data partitioning&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Die, die Windows Vista - don't you know how much I hate you?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.monodevelop.org/Main_Page"&gt;MonoDevelop 1.0&lt;/a&gt; - let us all have a real IDE for Mono "Unleash the Monkey"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-897584929533957488?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/EHJmY2tEGJM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/897584929533957488?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/897584929533957488?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/EHJmY2tEGJM/2008-hitting-road.html" title="2008 hitting the road" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_BRGf4aMx5dE/R3klkNVAfqI/AAAAAAAAAmQ/7Ev9MABuaxU/s72-c/images.jpg" height="72" width="72" /><feedburner:origLink>http://chorn-sokun.blogspot.com/2008/01/2008-hitting-road.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMQ3c7cCp7ImA9WB9aEEQ.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-8782402842551814729</id><published>2007-12-31T15:14:00.000+07:00</published><updated>2007-12-31T15:38:02.908+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-31T15:38:02.908+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Castle" /><category scheme="http://www.blogger.com/atom/ns#" term="MonoRail" /><title>Castle.MonoRail.Framework.IFilter - Part I</title><content type="html">Today I would like to share some technique in using &lt;a href="http://www.castleproject.org/monorail/documentation/trunk/usersguide/filters.html"&gt;Castle.MonoRail.Framework.IFilter&lt;/a&gt; . I am a bit sad because it takes too much time for me to realize how useful, until I read between the line over and over again&lt;br /&gt;&lt;blockquote&gt; Filters are executed before and|or after your actions.  It is useful for security, dynamic content and to &lt;span style="font-weight: bold;"&gt;keep away repetitive code&lt;/span&gt;.&lt;/blockquote&gt;Keep away repetitive code is what I am tracing, let the hear the story shall we?&lt;br /&gt;&lt;br /&gt;This happen with one of the real world project that I am working on &lt;a href="http://www.ncdd.gov.kh/koma"&gt;Data Bridge&lt;/a&gt; like any other web application it need authentication and passing some user preference along each action (inherit from SecureController) to the view such as List, Add, Edit &amp;amp; Delete action &amp;amp; view.&lt;br /&gt;&lt;br /&gt;This can be done using the following technique:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Create Filters\AuthenticationFilter.cs&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;public class AuthenticationFilter: IFilter&lt;br /&gt;{&lt;br /&gt;    bool IFilter.Perform(ExecuteEnum exec,&lt;br /&gt;                                        IRailsEngineContext context,&lt;br /&gt;                                        IController controller){&lt;br /&gt;        if(!UserNotLogin())&lt;br /&gt;        {&lt;br /&gt;                Redirect("Login", "Index");&lt;br /&gt;        }     &lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;               controller.PropertyBag["maxRow"] = GetUserMaxRowPreference();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;               ... set more preferences as needed&lt;/span&gt;&lt;br /&gt;        }     &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;Create SecureController&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;[Layout("default"), Rescue("generalerror")]&lt;br /&gt;[Filter(&lt;span style="color: rgb(255, 0, 0);"&gt;ExecuteEnum.BeforeAction&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;typeof(AuthenticationFilter)&lt;/span&gt;)]&lt;br /&gt;public &lt;span style="font-weight: bold;"&gt;abstract &lt;/span&gt;class SecureController : ARSmartDispatcherController&lt;br /&gt;{&lt;br /&gt;}&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;SecureController is marked as abstract, prevent from direct use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Using SecureController&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;public abstract class ProductController: SecureController&lt;br /&gt;{&lt;br /&gt;    public void List()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;}&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;Now view part:&lt;/span&gt; View\Product\list.vm&lt;br /&gt;&lt;blockquote&gt;When render table I want to display miximum &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;$maxRow&lt;/span&gt; rows.&lt;br /&gt;&lt;/blockquote&gt;See there is no code need to set preference in each action method, nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-8782402842551814729?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/L97Q8jGKTpw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8782402842551814729?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/8782402842551814729?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/L97Q8jGKTpw/castlemonorailframeworkifilter-part-i.html" title="Castle.MonoRail.Framework.IFilter - Part I" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2007/12/castlemonorailframeworkifilter-part-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUMR3syfyp7ImA9WB9bF08.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-2551066256761417433</id><published>2007-12-27T09:22:00.000+07:00</published><updated>2007-12-27T09:24:46.597+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-27T09:24:46.597+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NY" /><title>2007 Party of the Year :))</title><content type="html">&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;captions=1&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fchornsokun%2Falbumid%2F5148470210025520497%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;This party made especially for an old friend "Phors" he was on his scholarship assignment, Wish you all the best.&lt;br /&gt;&lt;br /&gt;Happy New Year Everyone&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-2551066256761417433?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/FQ0anl4CHh0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/2551066256761417433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/2551066256761417433?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/FQ0anl4CHh0/2007-party-of-year.html" title="2007 Party of the Year :))" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2007/12/2007-party-of-year.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQBSHg4eip7ImA9WB9VGEk.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-3076338402405993868</id><published>2007-12-05T15:40:00.000+07:00</published><updated>2007-12-05T16:19:19.632+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-05T16:19:19.632+07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="My Way" /><category scheme="http://www.blogger.com/atom/ns#" term="Castle.ActiveRecord" /><title>IList you have me?</title><content type="html">As much as I hate to deal with numerical index I had to cross it one way or the other so be it.&lt;br /&gt;Here is the fact, I am enjoy using Castle.ActiveRecord to wrap my DAL code cuz it simplify thing a lot for me &gt; 80% somehow when it came to not so complex scenario like this one:&lt;br /&gt;&lt;br /&gt;I want to allow my customer to list all the products and set the qty they want to order.&lt;br /&gt;If they already order I would like to give them a chance to update qty for the product that they miss in the previous hit.&lt;br /&gt;&lt;blockquote&gt;public IList LoadProductOrderList(int customer_id)&lt;br /&gt;{&lt;br /&gt;       IList result;&lt;br /&gt;          ISessionFactoryHolder sh =&lt;br /&gt;                            ActiveRecordMediator.GetSessionFactoryHolder();&lt;br /&gt;          ISession session = sh.CreateSession(typeof(AnnualTarget));&lt;br /&gt;          try&lt;br /&gt;          {&lt;br /&gt;            // note: code wrapped for view&lt;br /&gt;             string sql =  "SELECT p.pid, p.name, o.qty, o.id as order_id&lt;br /&gt;                                       FROM Products p JOIN Orders o&lt;br /&gt;                                         ON p.pid = o.product_id  WHERE &lt;span style="font-weight: bold;"&gt;o.customer_id = :c1 &lt;/span&gt;&lt;br /&gt;                                   UNION&lt;br /&gt;                                   SELCT pid, name, 0 as qty, 0 order_id FROM Products";&lt;br /&gt;&lt;br /&gt;              result = session.CreateSQLQuery(sql)&lt;br /&gt;                  .AddScalar("ID", NHibernateUtil.Int32)&lt;br /&gt;                  .AddScalar("NAME", NHibernateUtil.String)&lt;br /&gt;                  .AddScalar("QTY", NHibernateUtil.Int32)&lt;br /&gt;                  .AddScalar("ORDER_ID", NHibernateUtil.Int32)&lt;br /&gt;                  .SetInt32("c1", customer_id)&lt;br /&gt;                  .List();&lt;br /&gt;          }&lt;br /&gt;          catch (Exception ex)&lt;br /&gt;          {&lt;br /&gt;                       ....&lt;br /&gt;          }&lt;br /&gt;          finally&lt;br /&gt;          {&lt;br /&gt;              sh.ReleaseSession(session);&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            return result; &lt;- this is an IList ?!!! I don't like to work with it &lt;/span&gt;}&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;As much as I hate, it is a bad idea to pass IList back to the caller object. What is interesting about this code session.CreateSQLQuery(sql) you can tell it to map the result to an Entity by call like this&lt;br /&gt;&lt;blockquote&gt;session.CreateSQLQuery(sql)&lt;br /&gt;.AddEntity(typeof(EntityObjectOfTypeActiveRecord))&lt;br /&gt;.List();&lt;/blockquote&gt;But anyway I have got time to dig what AddEntity would do with the object pass in to me the road a head is a bit dark. Can I have something more simple?&lt;br /&gt;&lt;br /&gt;The simple should be:&lt;br /&gt;&lt;blockquote&gt;public IList&lt;productorderdto&gt; LoadProductOrderList(int customer_id)&lt;br /&gt;{&lt;br /&gt; IList&lt;productorderdto&gt; betterResult = new List&lt;productorderdto&gt;();&lt;br /&gt; .....&lt;br /&gt; for(int i = 0; i &lt; curobject =" (object[])" dto =" new" id =" curObject[0];" name =" curObject[1];" qty =" curObject[2];" orderid =" curObject[3];"&gt;&lt;/productorderdto&gt;&lt;/productorderdto&gt;&lt;/productorderdto&gt;&lt;/blockquote&gt;Now it much better to work with&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-3076338402405993868?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/g3gsZz9Ft-k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/3076338402405993868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/3076338402405993868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/g3gsZz9Ft-k/ilist-you-have-me.html" title="IList you have me?" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2007/12/ilist-you-have-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BRX4_cCp7ImA9WB9WEUU.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-2685759207583032700</id><published>2007-11-16T09:47:00.000+07:00</published><updated>2007-11-16T10:49:14.048+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-16T10:49:14.048+07:00</app:edited><title>Time to play the Game &gt; in the Castle</title><content type="html">Life is learning, after getting myself familiar with the Castle stack I started to look at another abstraction stack known as 'Rhino-Tools' as it advertises to ease my development life so why not give it a shot ;) then the story go:&lt;br /&gt;&lt;br /&gt;Well, I did get the information from somewhere else about all these stack but let for complete reference check this out &lt;a href="http://wiki.bittercoder.com/%28S%28hbxudbyhrivcme45d3qwufrn%29%29/History.aspx?Page=CastleStackFromTrunk&amp;amp;Revision=14&amp;amp;AspxAutoDetectCookieSupport=1"&gt;Building the Castle Stack (ish) TM - from Trunk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The point is now I have to deal with test unit to be sure everything work as advertised so I grab additional tool:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mbunit.com/Downloads.aspx"&gt;MbUnit&lt;/a&gt; - A Generative Unit Test Framework&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nunit.org/index.php?p=download"&gt;NUnit &lt;/a&gt;- Also a Unit testing framework initially ported from JUnit&lt;/li&gt;&lt;/ul&gt;Once these tools get installed I fire up my vs.net command line:&lt;br /&gt;..\castle-trunk&gt;nant &gt;buildLog.txt&lt;br /&gt;&lt;br /&gt;well it still complaint me that MbUnit or NUnit can not find ... WhAT?&lt;br /&gt;BCurse I did not add MbUnit or NUnit path to the execute path environment :( anyway my path string is already too long I decided to set the path of these two framework directly in the ..\castle-trunk\common.xml&lt;br /&gt;&lt;br /&gt;....more script ...&lt;br /&gt;     &amp;lt;!-- Where is MbUnit.Cons.exe ? --&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;mbunit-console&amp;quot; value=&amp;quot;C:\Program Files\MbUnit\MbUnit.Cons.exe&amp;quot; overwrite=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;!-- Where is nunit-console executable(win/mono) ? --&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;nunit-console2&amp;quot; value=&amp;quot;nunit-console2&amp;quot; overwrite=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;     &amp;lt;property name=&amp;quot;nunit-console&amp;quot; value=&amp;quot;C:\Program Files\NUnit-Net-2.0 2.2.10\bin\nunit-console.exe&amp;quot; overwrite=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;....more script ...&lt;br /&gt;&lt;br /&gt;Okay let do it again:&lt;br /&gt;..\castle-trunk&gt;nant &gt;buildLog.txt&lt;br /&gt;BUILD FAILED !? what?&lt;br /&gt;Review buildLog.txt I learn that I did not enable SqlServer DTS ha sorry.&lt;br /&gt;&gt;Enable SqlServer DTS Agent&lt;br /&gt;..\castle-trunk&gt;nant &gt;buildLog.txt&lt;br /&gt;Voilá: BUILD SUCCEEDED - 1 non-fatal error(s), 0 warning(s)&lt;br /&gt;&lt;br /&gt;Now I am ready to roll next step let u know later ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-2685759207583032700?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/Yr1vWlrITg4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/2685759207583032700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/2685759207583032700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/Yr1vWlrITg4/time-to-play-to-game-in-castle.html" title="Time to play the Game &gt; in the Castle" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2007/11/time-to-play-to-game-in-castle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMAQ3g7eip7ImA9WB9WEE0.&quot;"><id>tag:blogger.com,1999:blog-35733274.post-7728877732529211730</id><published>2007-11-14T09:03:00.001+07:00</published><updated>2007-11-14T09:14:02.602+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-14T09:14:02.602+07:00</app:edited><title>GPhone Android Demo</title><content type="html">&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1FJHYqE0RDg&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/1FJHYqE0RDg&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Sergey Brin and Steve Horowitz discuss the availability of the SDK, that it will be open source in the future, and demo applications on the Android platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35733274-7728877732529211730?l=chorn-sokun.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chornsokun/~4/eU8qb-6KF2E" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7728877732529211730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35733274/posts/default/7728877732529211730?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chornsokun/~3/eU8qb-6KF2E/gphone-android-demo.html" title="GPhone Android Demo" /><author><name>iSkype</name><uri>http://www.blogger.com/profile/00435656875216513074</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://chorn-sokun.blogspot.com/2007/11/gphone-android-demo.html</feedburner:origLink></entry></feed>

