<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Geeks Portal</title><link>http://geeks.netindonesia.net/blogs/default.aspx?GroupID=2</link><description>INDC</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Hello</title><link>http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx</link><pubDate>Tue, 11 Jun 2013 07:02:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:195784</guid><dc:creator>kusumo</dc:creator><slash:comments>0</slash:comments><description>padahal udah lama daftar baru nulis blog pertama
&lt;br /&gt;&lt;br /&gt;
Hello Cruel World 

:D
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx&amp;amp;subject=Hello" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx&amp;amp;t=Hello" target="_blank" title="Submit Hello to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx&amp;amp;title=Hello" target="_blank" title="Submit Hello to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx&amp;amp;phase=2" target="_blank" title="Submit Hello to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kusumo/archive/2013/06/11/hello.aspx&amp;amp;title=Hello" target="_blank" title="Add Hello to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=195784" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/kusumo/archive/tags/world/default.aspx">world</category><category domain="http://geeks.netindonesia.net/blogs/kusumo/archive/tags/hello/default.aspx">hello</category></item><item><title>Web Programming Dengan Haskell</title><link>http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx</link><pubDate>Mon, 27 May 2013 04:09:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:195780</guid><dc:creator>LonTonG</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Setahun belakangan ini &lt;em&gt;sesuatu banget&lt;/em&gt; buat saya dari sisi pengembangan diri. Sebagai orang yang punya latar belakang programmer imperatif (saya hanya bisa menulis kode dalam bahasa C dan sedikit di Basic), memberanikan diri untuk masuk ke dunia pemrograman fungsional benar - benar suatu pengalaman yang luar biasa (setidaknya buat saya secara pribadi).&lt;br /&gt;Singkat kata bahasa yang saya pilih adalah &lt;a href="http://www.haskell.org" target="_blank"&gt;Haskell&lt;/a&gt;, alasan saya pilih bahasa ini ketimbang F#, Erlang atau Clojure saya lupa :)&lt;br /&gt;Mungkin yang bisa saya ingat adalah setelah 13 tahun saya fokus di C dan sedikit - sedikit lihat bahasa pemrograman lain, 1 hal menjadi jelas buat saya yaitu saya tidak tertarik kepada bagaimana syntax suatu bahasa pemrograman namun saya lebih tertarik kepada sisi matematisnya, yaitu semakin dekat (atau semakin mirip ekspresinya) suatu bahasa pemrograman dengan ilmu matematika. Dan setelah saya beli dan baca buku &lt;a href="http://www.amazon.com/Haskell-Logic-Maths-Programming-byDoets/dp/B004B6YD5M/ref=sr_1_2?ie=UTF8&amp;amp;qid=1369630210&amp;amp;sr=8-2&amp;amp;keywords=The+Haskell+Road+to+Logic%2C+Maths+and+Programming"&gt;The Haskell Road to Logic, Maths and Programming&lt;/a&gt;, semakin saya yakin bahwa ini perjalanan saya selanjutnya.&lt;/p&gt;&lt;p&gt;Latar belakang saya di C (imperative programming) seperti mimpi buruk sewaktu saya coba baca baris kode seperti ini:&lt;br /&gt;&lt;em&gt;&lt;span class="ot"&gt;&lt;span class="title"&gt;exceptOnFailure&lt;/span&gt; &lt;/span&gt;&lt;span class="ot"&gt;::&lt;/span&gt; &lt;span class="dt"&gt;&lt;span class="type"&gt;MonadBase&lt;/span&gt;&lt;/span&gt; &lt;span class="dt"&gt;&lt;span class="type"&gt;IO&lt;/span&gt;&lt;/span&gt; m &lt;span class="ot"&gt;=&amp;gt;&lt;/span&gt; m (&lt;span class="dt"&gt;&lt;span class="type"&gt;Either&lt;/span&gt;&lt;/span&gt; &lt;span class="dt"&gt;&lt;span class="type"&gt;String&lt;/span&gt;&lt;/span&gt; v) &lt;span class="ot"&gt;-&amp;gt;&lt;/span&gt; m v&lt;br /&gt;&lt;span class="title"&gt;exceptOnFailure&lt;/span&gt; &lt;span class="fu"&gt;=&lt;/span&gt; (&lt;span class="fu"&gt;&amp;gt;&amp;gt;=&lt;/span&gt;&lt;span class="fu"&gt;either&lt;/span&gt; (&lt;span class="type"&gt;C&lt;/span&gt;.throwIO &lt;span class="fu"&gt;.&lt;/span&gt; &lt;span class="dt"&gt;&lt;span class="type"&gt;EitherException&lt;/span&gt;&lt;/span&gt;) &lt;span class="fu"&gt;return&lt;/span&gt;)&lt;br /&gt;&lt;/em&gt;Apa maksudnya baris kode ini? 11 12 ini dengan Perl :)&lt;br /&gt;Untuk mempersingkat waktu, ritual &amp;quot;hair pulling &amp;amp; head banging&amp;quot; paling intens saya lakukan dalam perjalanan kali ini.&lt;/p&gt;&lt;p&gt;Inti kebijakan Zen berkata, orang yang berada di pinggir danau tahu tentang air namun berbeda dengan orang yang sudah berenang di danau tersebut, dan orang yang sudah berenang di danau berbeda pengetahuannya tentang air&amp;nbsp;dengan orang yang sudah pernah menyelam.&lt;br /&gt;Saya buat aplikasi web (WoM and community) dengan menggunakan bahasa pemrograman Haskell (tentunya), dan dengan memanfaatkan: &lt;a href="http://www.happstack.com/"&gt;Happstack&lt;/a&gt;&amp;nbsp;(web framework), &lt;a href="http://hackage.haskell.org/package/HDBC-sqlite3-2.3.3.0"&gt;HDBC-sqlite3&lt;/a&gt;&amp;nbsp;(driver database), &lt;a href="http://hackage.haskell.org/package/hamlet-1.1.7.1"&gt;Hamlet&lt;/a&gt;&amp;nbsp;(type-safe templating). Dan menyesuaikan dengan kompleksitas aplikasi yang saya bangun, segera akan saya gunakan &lt;a href="http://hackage.haskell.org/packages/archive/web-routes-boomerang/0.25.1/doc/html/Web-Routes-Boomerang.html"&gt;web-routes-boomerang&lt;/a&gt;&amp;nbsp;dan &lt;a href="http://hackage.haskell.org/package/acid-state-0.8.3"&gt;acid-state&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Secara sederhananya aplikasi yang saya bangun akan mentranslasikan setiap request header ke controller yang dituju, sebagai contoh:&lt;/p&gt;&lt;p&gt;&lt;em&gt;myApp :: (IConnection a) =&amp;gt; a -&amp;gt; ServerPart Response&lt;br /&gt;myApp db = msum&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ dir &amp;quot;static&amp;quot; $ serveDirectory DisableBrowsing [] &amp;quot;static&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , dir &amp;quot;tpl&amp;quot; $ serveDirectory DisableBrowsing [] &amp;quot;tpl&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , dir &amp;quot;thumb&amp;quot; $ serveDirectory DisableBrowsing [] &amp;quot;thumb&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , dir &amp;quot;page&amp;quot; $ path $ \sid -&amp;gt; do R.method GET &amp;gt;&amp;gt; (showSites db sid)&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , dirs &amp;quot;category/new&amp;quot; $ R.method GET &amp;gt;&amp;gt; (showInsertCategoryForm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , dirs &amp;quot;category/new&amp;quot; $ R.method POST &amp;gt;&amp;gt; decodeBody postBodyPolicy &amp;gt;&amp;gt; withData (insertCategory db)&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;loadSitesFromDb :: (IConnection d, MonadIO m, MonadPlus m) =&amp;gt; d -&amp;gt; Integer -&amp;gt; m [Site]&lt;br /&gt;loadSitesFromDb db page = do&lt;br /&gt;&amp;nbsp; site &amp;lt;- liftIO $ handleSqlError $ quickQuery&amp;#39; db &amp;quot;SELECT A.siteID, A.siteName..&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp; return $ map sitesFromDB site&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where sitesFromDB [sqlSiteID, sqlSiteName...] = (item)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where item = Site { siteID = fromSql sqlSiteID, siteName =&amp;nbsp;..&lt;/em&gt; &lt;/p&gt;&lt;p&gt;dengan model:&lt;/p&gt;&lt;p&gt;&lt;em&gt;data Site = Site { siteID :: Integer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , siteName :: String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , sitePhoneNum :: String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , siteCategoryID :: String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , siteURL :: String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , siteRating :: String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , siteDescription :: String }&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;em&gt;instance FromData Site where&lt;br /&gt;&amp;nbsp; fromData = do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sID &amp;lt;- look &amp;quot;_id&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sName &amp;lt;- look &amp;quot;_name&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sPhoneNum &amp;lt;- look &amp;quot;_phoneNum&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sURL &amp;lt;- look &amp;quot;_URL&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sCategoryID &amp;lt;- look &amp;quot;_categoryID&amp;quot;&lt;br /&gt;...&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Yang akhirnya dipresentasikan dengan:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul class=&amp;quot;thumbnails&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $forall site &amp;lt;- sites&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li class=&amp;quot;span3&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;thumbnail&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src=&amp;quot;/thumb/#{siteID site}t.png&amp;quot; alt=&amp;quot;&amp;quot; class=&amp;quot;img-polaroid&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;caption&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h5&amp;gt;#{siteName site}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;/review/#{siteID site}&amp;quot; data-target=&amp;quot;#commentModal&amp;quot; role=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; data-toggle=&amp;quot;modal&amp;quot;&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;pagination pagination-large pagination-centered&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $forall x &amp;lt;- enumFromTo 1 $ (div numrows 30)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $if (==) x page&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li class=&amp;quot;active&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/page/#{show x}&amp;quot;&amp;gt;#{show x}&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/page/#{show x}&amp;quot;&amp;gt;#{show x}&amp;lt;/a&amp;gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;Khusus bagian &lt;em&gt;V &lt;/em&gt;nya, untuk mempermudah pekerjaan saya, saya manfaatkan &lt;a href="http://twitter.github.io/bootstrap/"&gt;Bootstrap&lt;/a&gt;, &lt;a href="http://phantomjs.org/"&gt;PhantomJS&lt;/a&gt;&amp;nbsp;(yang di-eksekusi melalui bash script di belakang layar).&lt;br /&gt;So far so good untuk aplikasi web yang komplit dengan backend &amp;amp; frontend total LoC 300+ dan sangat concise.&lt;/p&gt;&lt;p&gt;&lt;img width="546" height="291" align="" style="width:302px;height:159px;" alt="Backend" src="http://www.win32.or.id/images/backend.png" border="0" hspace="-1" /&gt;&amp;nbsp;&lt;img width="1" height="1" align="" alt="" src="http://www.win32.or.id/images/frontend.png" border="0" hspace="-1" /&gt;&lt;img width="546" height="291" align="" style="width:307px;height:158px;" alt="Frontend" src="http://www.win32.or.id/images/frontend.png" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kesimpulan saya,&amp;nbsp;perjalanan ini sangat layak&amp;nbsp;diperjuangkan!&lt;br /&gt;Sesuai dengan filosofi Haskell bahwa apabila suatu program bisa melewati fase kompilasi maka program tersebut akan baik - baik saja. Dan waktu yang biasanya dihabiskan untuk proses debugging, bisa saya gunakan untuk hal lainnya :)&lt;/p&gt;&lt;p&gt;Terakhir, seperti yang saya singgung di atas, ke depan saya akan menggunakan web-routes-boomerang. &lt;br /&gt;Mungkin perlu saya hilite, web-routes-boomerang&amp;nbsp;ini sangat powerful untuk menangani (terutama)&amp;nbsp;urusan parsing URL.&amp;nbsp;&lt;br /&gt;Untuk project saya ke depan (aplikasi web saya di atas sudah nyaris rampung dan siap dioper ke marketing), saya akan membuat internet of things hub (restful web API) khususnya untuk device berbasis Arduino dan SoC seperti Raspberry pi.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx&amp;amp;subject=Web Programming Dengan Haskell" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx&amp;amp;t=Web+Programming+Dengan+Haskell" target="_blank" title="Submit Web Programming Dengan Haskell to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx&amp;amp;title=Web+Programming+Dengan+Haskell" target="_blank" title="Submit Web Programming Dengan Haskell to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx&amp;amp;phase=2" target="_blank" title="Submit Web Programming Dengan Haskell to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/lontong/archive/2013/05/27/programming-haskell.aspx&amp;amp;title=Web+Programming+Dengan+Haskell" target="_blank" title="Add Web Programming Dengan Haskell to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=195780" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/lontong/archive/tags/Misc/default.aspx">Misc</category></item><item><title>my new blog</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx</link><pubDate>Wed, 17 Apr 2013 03:07:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194752</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;http://ciptothe.wordpress.com/&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx&amp;amp;subject=my new blog" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx&amp;amp;t=my+new+blog" target="_blank" title="Submit my new blog to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx&amp;amp;title=my+new+blog" target="_blank" title="Submit my new blog to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx&amp;amp;phase=2" target="_blank" title="Submit my new blog to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/04/17/my-new-blog.aspx&amp;amp;title=my+new+blog" target="_blank" title="Add my new blog to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194752" width="1" height="1"&gt;</description></item><item><title>Just give me the source code please….</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx</link><pubDate>Mon, 08 Apr 2013 15:23:24 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194751</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Source code is really important for us. That’s why I love open source so much. Well. not only as a consumer of open source, but also a producer.&lt;/p&gt;  &lt;p&gt;Reading people codes can give you a huge knowledge about best practice and change how you write the code. Especially if the writer is good developer. &lt;/p&gt;  &lt;p&gt;Sometimes we need so badly to see the source code… But we can’t. This is a very painful experience. Maybe we find there’s a strange error in commercial library, or maybe we need to &lt;a href="http://channel9.msdn.com/Series/-NET-Debugging-Stater-Kit-for-the-Production-Environment"&gt;debug in production environment&lt;/a&gt; when we can’t debug with our beloved Visual Studio. &lt;/p&gt;  &lt;p&gt;Absolutely we need that source code !&lt;/p&gt;  &lt;p&gt;Previously I create a &lt;a href="http://weltam.wordpress.com/2012/11/30/cracking-net-software/"&gt;blog post&lt;/a&gt; about a decompiler. I use RedGate Reflector. But. it’s not free and my trial version has been over. &lt;/p&gt;  &lt;p&gt;You can read the complete article here &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.wordpress.com/2013/04/08/just-give-me-the-source-code-please/"&gt;http://weltam.wordpress.com/2013/04/08/just-give-me-the-source-code-please/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx&amp;amp;subject=Just give me the source code please…." target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx&amp;amp;t=Just+give+me+the+source+code+please%e2%80%a6." target="_blank" title="Submit Just give me the source code please…. to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx&amp;amp;title=Just+give+me+the+source+code+please%e2%80%a6." target="_blank" title="Submit Just give me the source code please…. to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx&amp;amp;phase=2" target="_blank" title="Submit Just give me the source code please…. to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/08/just_2D00_give_2D00_me_2D00_the_2D00_source_2D00_code_2D00_please.aspx&amp;amp;title=Just+give+me+the+source+code+please%e2%80%a6." target="_blank" title="Add Just give me the source code please…. to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194751" width="1" height="1"&gt;</description></item><item><title>Grab your Visual Studio 2012 Update 2</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx</link><pubDate>Sat, 06 Apr 2013 08:03:46 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194750</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I know I’m a lil bit late joining the party for installing VS 2012 update 2. But just get my internet connection upgraded.&amp;#160; The first thing I do to download the VS 2012 update 2. &lt;/p&gt;  &lt;p&gt;I think I need to create an offline installer and share it to my colleague next week. Yes. You can create an offline installer. I think this is the best way to install it. You can share it with others and save a national bandwith. &lt;/p&gt;  &lt;p&gt;Seems I’ve got a problem uploading image with LiveWriter to geeks blog. You can follow the complete article here&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.wordpress.com/2013/04/06/grab-your-visual-studio-2012-update-2/"&gt;http://weltam.wordpress.com/2013/04/06/grab-your-visual-studio-2012-update-2/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy it !&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx&amp;amp;subject=Grab your Visual Studio 2012 Update 2" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx&amp;amp;t=Grab+your+Visual+Studio+2012+Update+2" target="_blank" title="Submit Grab your Visual Studio 2012 Update 2 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx&amp;amp;title=Grab+your+Visual+Studio+2012+Update+2" target="_blank" title="Submit Grab your Visual Studio 2012 Update 2 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx&amp;amp;phase=2" target="_blank" title="Submit Grab your Visual Studio 2012 Update 2 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/04/06/grab_2D00_your_2D00_visual_2D00_studio_2D00_2012_2D00_update_2D00_2.aspx&amp;amp;title=Grab+your+Visual+Studio+2012+Update+2" target="_blank" title="Add Grab your Visual Studio 2012 Update 2 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194750" width="1" height="1"&gt;</description></item><item><title>LiveWriter, Visual Studio and My Code</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx</link><pubDate>Tue, 26 Mar 2013 08:30:59 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194749</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve been using LiveWriter quite some time for now. It’s very easy and comfortable. Today I’ve found an interesting blogpost that explain how to paste code to LiveWriter so it can be displayed beautifully. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://blogs.msdn.com/b/jpsanders/archive/2013/03/21/how-to-add-a-copy-code-link-to-your-blog-post-and-colored-code-blocks.aspx"&gt;How to: Add a ‘Copy Code’ Link to Your Blog Post and Colored Code Blocks&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This actually what I needed. My favorite IDE and Blog editor live happily ever after. &lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background:white;color:black;"&gt;   &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;public class &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;HappyDayEA &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;: &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;EExpertAdvisor
    &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;{
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;IOrderManager &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;_orderManagement;
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private const double &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;LotSize = 1;
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;Order &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;_buyOrder = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;null&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;Order &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;_sellOrder = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;null&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;DateTime &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;prevtime = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;default&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(&lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;DateTime&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;);

        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;private bool &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;isInitialize = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;false&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
        
        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;protected override int &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;Init()
        {
            _orderManagement = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;new &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;NoOrderCreatedManager&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;this&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;);
            prevtime = Time[0];
            isInitialize = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;true&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(0);
        }

        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;internal void &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;CreatedMagicBoxFromPreviousCandle()
        {
            _buyOrder = PendingBuy(Symbol, LotSize, High[1] 
            &lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Hope this helps !&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx&amp;amp;subject=LiveWriter, Visual Studio and My Code" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx&amp;amp;t=LiveWriter%2c+Visual+Studio+and+My+Code" target="_blank" title="Submit LiveWriter, Visual Studio and My Code to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx&amp;amp;title=LiveWriter%2c+Visual+Studio+and+My+Code" target="_blank" title="Submit LiveWriter, Visual Studio and My Code to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx&amp;amp;phase=2" target="_blank" title="Submit LiveWriter, Visual Studio and My Code to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2013/03/26/livewriter_2D00_visual_2D00_studio_2D00_and_2D00_my_2D00_code.aspx&amp;amp;title=LiveWriter%2c+Visual+Studio+and+My+Code" target="_blank" title="Add LiveWriter, Visual Studio and My Code to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194749" width="1" height="1"&gt;</description></item><item><title>Another IE8 and jquery validation bug</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx</link><pubDate>Fri, 08 Mar 2013 09:44:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194736</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have another unique experience with IE again.apparently so much user still using it.&lt;/p&gt;&lt;p&gt;this time it has to do with IE8 and jquery Validation.&lt;/p&gt;&lt;p&gt;the on default from &lt;b&gt;asp.net MVC&lt;/b&gt; is &lt;b&gt;jquery validation 1.8.0&lt;/b&gt;, which &lt;b&gt;does not work on IE8&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;after trying to upgrade everything to the latest:&lt;/p&gt;&lt;p&gt;Jquery 1.9, jquery validation 1.11 &lt;/p&gt;&lt;p&gt;based on the &lt;a href="http://www.asp.net/ajaxlibrary/cdn.ashx"&gt;CDN&lt;/a&gt; and then use jquery Migration so that other plugin does not work.&lt;/p&gt;&lt;p&gt;I finally got it working by just using my current jquery 1.8.2 with increasing jquery validation to 1.8.1&lt;/p&gt;&lt;p&gt;fixed other bug related to kendo autocomplete.&lt;/p&gt;&lt;p&gt;and then another thing is when it&amp;#39;s &lt;u&gt;&lt;b&gt;HTTPS&lt;/b&gt;&lt;/u&gt;, you have to make sure all your&lt;u&gt;&lt;b&gt; external URL also using HTTPS&lt;/b&gt;&lt;/u&gt; (you will receive an error message such as &amp;quot;HTTPs compromised [URL]&amp;quot;)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;so that it works on IE&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx&amp;amp;subject=Another IE8 and jquery validation bug" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx&amp;amp;t=Another+IE8+and+jquery+validation+bug" target="_blank" title="Submit Another IE8 and jquery validation bug to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx&amp;amp;title=Another+IE8+and+jquery+validation+bug" target="_blank" title="Submit Another IE8 and jquery validation bug to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx&amp;amp;phase=2" target="_blank" title="Submit Another IE8 and jquery validation bug to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/03/08/another-ie8-and-jquery-validation-bug.aspx&amp;amp;title=Another+IE8+and+jquery+validation+bug" target="_blank" title="Add Another IE8 and jquery validation bug to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194736" width="1" height="1"&gt;</description></item><item><title>seputar web</title><link>http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx</link><pubDate>Thu, 17 Jan 2013 18:51:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194699</guid><dc:creator>Kasim.Wirama</dc:creator><slash:comments>0</slash:comments><description>http://brockallen.com/2012/04/07/think-twice-about-using-session-state/

http://www.develop.com/training-course/asp.net-mvc-4-training

http://www.cloudydeveloper.com/differences-between-asp-net-web-api-and-asp-net-mvc-routing/

http://pfelix.wordpress.com/2012/03/05/asp-net-web-api-in-memory-hosting/
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx&amp;amp;subject=seputar web" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx&amp;amp;t=seputar+web" target="_blank" title="Submit seputar web to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx&amp;amp;title=seputar+web" target="_blank" title="Submit seputar web to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx&amp;amp;phase=2" target="_blank" title="Submit seputar web to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kasim.wirama/archive/2013/01/18/seputar-web.aspx&amp;amp;title=seputar+web" target="_blank" title="Add seputar web to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194699" width="1" height="1"&gt;</description></item><item><title>Localization in Asp.Net MVC Jquery Validation</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx</link><pubDate>Fri, 11 Jan 2013 06:36:47 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194697</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;One day I encounter this issue, A DatePicker when submit is clicked will display that &lt;strong&gt;FIELD IS NOT A DATE&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;what could be wrong? well this whole thing is related to how date is parsed, for jquery validation which is the core Unobstrusive client side validation for ASP.NET MVC, the default Date Parsing may not be supporting Format that you entered&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I have set my Kendo to en-AU culture, than how to set the jquery validation to understand this date format?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;the answer is jquery global and then we override the way the jquery validation works&lt;/font&gt;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font size="3"&gt;&lt;span class="rem"&gt;//Include what&amp;#39;s needed&lt;/span&gt;
&amp;lt;script src=&lt;span class="str"&gt;&amp;quot;~/Scripts/globalize.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span class="str"&gt;&amp;quot;~/Scripts/cultures/globalize.culture.en-AU.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;

$(&lt;span class="kwrd"&gt;function&lt;/span&gt; () {
    kendo.culture(&lt;span class="str"&gt;&amp;quot;en-AU&amp;quot;&lt;/span&gt;);
    Globalize.culture(&lt;span class="str"&gt;&amp;#39;en-AU&amp;#39;&lt;/span&gt;);

    $.validator.methods.date = &lt;span class="kwrd"&gt;function&lt;/span&gt; (value, element) {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (value == &lt;span class="str"&gt;&amp;#39;&amp;#39;&lt;/span&gt; || !isNaN(Globalize.parseDate(value))) {
            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        }
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    };
});


&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model"&gt;&lt;font size="3"&gt;Related Article&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx&amp;amp;subject=Localization in Asp.Net MVC Jquery Validation" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx&amp;amp;t=Localization+in+Asp.Net+MVC+Jquery+Validation" target="_blank" title="Submit Localization in Asp.Net MVC Jquery Validation to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx&amp;amp;title=Localization+in+Asp.Net+MVC+Jquery+Validation" target="_blank" title="Submit Localization in Asp.Net MVC Jquery Validation to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx&amp;amp;phase=2" target="_blank" title="Submit Localization in Asp.Net MVC Jquery Validation to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2013/01/11/localization-in-asp-net-mvc-jquery-validation.aspx&amp;amp;title=Localization+in+Asp.Net+MVC+Jquery+Validation" target="_blank" title="Add Localization in Asp.Net MVC Jquery Validation to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194697" width="1" height="1"&gt;</description></item><item><title>Windows Server 2012 – First Impression</title><link>http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx</link><pubDate>Fri, 14 Dec 2012 15:10:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:194671</guid><dc:creator>kunto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Windows Server 2012 telah dirilis ke publik sejak 26 Oktober 2012. Melalui weblog ini, saya akan mencoba untuk mengulas instalasi dan beberapa fitur baru yang tersedia pada Sistim Operasi Microsoft termutakhir ini, satu di antaranya adalah Server Manager.&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Instalasi berjalan sangat lancar, mudah dan membutuhkan sedikit intervensi manual, mirip dengan Windows Serve 2008 R2 dan bahkan lebih mudah. Untuk kepentingan ini sengaja digunakan versi trial Windows Server 2012 yang dapat diunduh dari tautan berikut: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&amp;amp;wt.mc_id=TEC_108_1_33" target="_blank"&gt;Download Windows Server 2012 Evaluation&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Secara singkat instalasi berjalan seperti pada screen shots berikut: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:3141e425-533e-446d-8eee-6c55b8b60606" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt;&lt;a style="border:0px;" href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6271&amp;amp;type=5"&gt;&lt;img style="border:0px;" alt="View Windows Server 2012 - First Impression - 01" src="http://geeks.netindonesia.net/blogs/kunto/InlineRepresentation8a478e983bbd49b289c90de9ce4c926a_5D295340.jpg" /&gt;&lt;/a&gt;&lt;div style="width:400px;text-align:right;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6271&amp;amp;type=5"&gt;View Full Album&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Setelah selesai dengan proses instalasi, dilanjutkan dengan melakukan konfigurasi Nama Komputer (Computer Name), Zona Waktu (Time Zone), Alamat-IP (IP-Address), dan lain-lain seperti berikut ini: &lt;/p&gt;  &lt;div id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:bbd2e8f4-7cdf-4cf8-890b-edbac4791f8b" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt;&lt;a style="border:0px;" href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6283&amp;amp;type=5"&gt;&lt;img style="border:0px;" alt="View Windows Server 2012 - First Impression - 02" src="http://geeks.netindonesia.net/blogs/kunto/InlineRepresentationa033d194574943eabc529358e988a96c_43FDD33B.jpg" /&gt;&lt;/a&gt;&lt;div style="width:400px;text-align:right;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6283&amp;amp;type=5"&gt;View Full Album&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Catatan: &lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Secara default .NET Framework 2.0, 3.0 dan 3.5 tidak terinstal pada Windows Server 2012. Jika tidak ada koneksi internet, instalasinya dapat dilakukan dengan cara sebagai berikut:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Copy folder sources\sxs dari media instalasi ke C:\sxs &lt;/li&gt;    &lt;li&gt;Jalankan Command Prompt sebagai Administrator, kemudian jalankan perintah berikut ini &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:C:\sxs&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Dan yang menarik di sini adalah cara menambahkan Role dan Feature menggunakan Server Manager baru dengan cascaded menu, menyebabkan berkurangnya langkah konfigurasi yang harus dilakukan: &lt;/p&gt;  &lt;div id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:c80f398e-1d70-44bb-b8ae-bb03591424d9" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt;&lt;a style="border:0px;" href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6317&amp;amp;type=5"&gt;&lt;img style="border:0px;" alt="View Windows Server 2012 - First Impression - 03" src="http://geeks.netindonesia.net/blogs/kunto/InlineRepresentation4a0f60f25ca74b0db379c64fca65eb77_1C575711.jpg" /&gt;&lt;/a&gt;&lt;div style="width:400px;text-align:right;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=8701a79085e3cfcb&amp;amp;page=browse&amp;amp;resid=8701A79085E3CFCB!6317&amp;amp;type=5"&gt;View Full Album&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Dengan menambahkan Feature Desktop Experience menyebabkan kita dapat menampilkan Computer icon di Desktop. &lt;/p&gt;  &lt;p&gt;Selamat mencoba dan berkarya, salam IT Pro.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx&amp;amp;subject=Windows Server 2012 – First Impression" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx&amp;amp;t=Windows+Server+2012+%e2%80%93+First+Impression" target="_blank" title="Submit Windows Server 2012 – First Impression to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx&amp;amp;title=Windows+Server+2012+%e2%80%93+First+Impression" target="_blank" title="Submit Windows Server 2012 – First Impression to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Server 2012 – First Impression to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/kunto/archive/2012/12/14/windows-server-2012-first-impression.aspx&amp;amp;title=Windows+Server+2012+%e2%80%93+First+Impression" target="_blank" title="Add Windows Server 2012 – First Impression to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=194671" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/kunto/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://geeks.netindonesia.net/blogs/kunto/archive/tags/Deployment/default.aspx">Deployment</category></item><item><title>async await in .NET 4.0</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx</link><pubDate>Thu, 13 Dec 2012 08:01:20 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193669</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;i think you are agree that async await in c# 5 is a really cool feature. I will explain in the future blog post more detail about this. The problem now how if you want to use this feature in .NET 4.0. Let say that you can’t change the production environment to the latest .NET framework (4.5).&lt;/p&gt;  &lt;p&gt;Firstly I have already installed Visual Studio 2012 in my machine. I try to change the target framework to .NET 4&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image15.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb11.png" width="381" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At first I’m very happy because the async keyword is appear in my editor. But the red squiggly wipe all the happines.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image16.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb12.png" width="400" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can see a cause of the problem at error window. Seems there are a missing type or assembly.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image17.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb13.png" width="600" height="74" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The answer to our problem is :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29576"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image18.png" width="557" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can gain the simplicity and beauty of asynchronous to make your apps performance better. &lt;/p&gt;  &lt;p&gt;Maybe you see there is no executable download in the previous link. That’s because you have to get the required library through &lt;a href="http://nuget.org/"&gt;Nuget&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image19.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb14.png" width="600" height="141" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Search “&lt;b&gt;Microsoft.CompilerServices.AsyncTargetingPack&lt;/b&gt;” from nugget package manager. And install the package. That’s strange that the package is for Visual Studio 11. Well. Let’s try to give it a shoot.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image20.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb15.png" width="600" height="96" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After you install it the red squiggly disappear. You can dive into detail what’s contained in this package from object browser&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image21.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb16.png" width="368" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are a a lot of extensions method contain in AsyncCompatLibExtensions.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image22.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb17.png" width="517" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then writes your codes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image23.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb18.png" width="548" height="97" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Compile and run it asynchronously. If you see the IL with Diassembler you can see that our async await compiled into the same result as .NET 4.5. You should thanks the compiler baby. &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Smile" src="http://weltam.files.wordpress.com/2012/12/wlemoticon-smile2.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/12/image24.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://weltam.files.wordpress.com/2012/12/image_thumb19.png" width="540" height="564" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx&amp;amp;subject=async await in .NET 4.0" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx&amp;amp;t=async+await+in+.NET+4.0" target="_blank" title="Submit async await in .NET 4.0 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx&amp;amp;title=async+await+in+.NET+4.0" target="_blank" title="Submit async await in .NET 4.0 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx&amp;amp;phase=2" target="_blank" title="Submit async await in .NET 4.0 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/12/13/async_2D00_await_2D00_in_2D00_net_2D00_4_2D00_0.aspx&amp;amp;title=async+await+in+.NET+4.0" target="_blank" title="Add async await in .NET 4.0 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193669" width="1" height="1"&gt;</description></item><item><title>Generic EditorTemplate Asp.net MVC</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx</link><pubDate>Tue, 11 Dec 2012 04:14:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193665</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;I’ve got a case to create a generic HTML Editor, which I can reuse across the page.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;EditorTemplate which comes with MVC sounds the person who can do the job.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;if you specify a string name after @HTML.EditorFor(Lambda,”EditorName”) &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;it will search on &lt;/font&gt;&lt;font size="3"&gt;View/Shared/EditorTemplates/xxx.cshtml path&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;How do you make it generic? simple use lambda that refer to it self&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;this way it will generate the name correctly&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;ex in your cshtml editor template:&lt;/font&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;@model string
@Html.Kendo().EditorFor(&lt;b&gt;m=&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;m&lt;/b&gt;).Tools(c =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; c.Styles(e =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; { e.Add(&amp;quot;Calibry&amp;quot;, &amp;quot;calibry&amp;quot;); })).StyleSheets(c =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; { c.Add(&amp;quot;/Content/Site.css&amp;quot;); }).HtmlAttributes(new Dictionary&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;string&lt;/span&gt;, &lt;span class="attr"&gt;object&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;() { { &amp;quot;style&amp;quot;, &amp;quot;width:100%&amp;quot; } })&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font face="helve" size="3"&gt;To use it at any View page&lt;/font&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font face="helve" size="3"&gt;ex:&lt;/font&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;     @Html.EditorFor(model =&amp;gt; model.Description,&lt;span class="str"&gt;&amp;quot;MyEditor&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx&amp;amp;subject=Generic EditorTemplate Asp.net MVC" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx&amp;amp;t=Generic+EditorTemplate+Asp.net+MVC" target="_blank" title="Submit Generic EditorTemplate Asp.net MVC to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx&amp;amp;title=Generic+EditorTemplate+Asp.net+MVC" target="_blank" title="Submit Generic EditorTemplate Asp.net MVC to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx&amp;amp;phase=2" target="_blank" title="Submit Generic EditorTemplate Asp.net MVC to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/generic-editortemplate-asp-net-mvc.aspx&amp;amp;title=Generic+EditorTemplate+Asp.net+MVC" target="_blank" title="Add Generic EditorTemplate Asp.net MVC to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193665" width="1" height="1"&gt;</description></item><item><title>Structuring Project using Require JS on Multiple Page Environment</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx</link><pubDate>Tue, 11 Dec 2012 04:07:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193664</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;I understand the drive for single app these days. but in this case it’s &lt;b&gt;multiple page&lt;/b&gt;. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I am using Asp.Net MVC,&lt;/font&gt;&lt;font size="3"&gt;How do we possibly structure the JavaScript files related to require.js &lt;/font&gt;&lt;font size="3"&gt;while you are on multiple pages environment?.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;After playing around what I did are:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;1. Structure my Javascript files into folder, I follow the default main.js as the main configuration for each package&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/cipto/image_5C7CF0A8.png"&gt;&lt;img src="http://netindonesia.net/blogs/cipto/image_thumb_5AD14636.png" title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" alt="image" border="0" height="244" width="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;2. use Packages, Register packages at Root Layout&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;_Layout.cshtml (Master page)&lt;/font&gt;&lt;/p&gt;  &lt;pre class="csharpcode"&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;//before require is called&lt;/span&gt;
        &lt;span class="rem"&gt;//can set dependency module&lt;/span&gt;
        &lt;span class="rem"&gt;//I use this as What are required by global pages in this project context&lt;/span&gt;
        &lt;span class="kwrd"&gt;var&lt;/span&gt; require = {
            &lt;span class="rem"&gt;//shim: {&lt;/span&gt;
                       

            &lt;span class="rem"&gt;//},&lt;/span&gt;
            deps: [&lt;span class="str"&gt;&amp;quot;jquery.easing.1.3.min&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;jquery.prettyPhoto.custom.min&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;froogaloop.min&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;video.min&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;jquery.videoController.min&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;jquery.advancedSlider.min&amp;quot;&lt;/span&gt;]
        };
     
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;data-main&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;scripts/main&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/scripts/require-jquery.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &amp;lt;script&amp;gt;
        &lt;span class="rem"&gt;//set configuration&lt;/span&gt;
        require.config({

            &lt;span class="rem"&gt;//define package, will execute main.js under respective package&lt;/span&gt;
            &lt;span class="str"&gt;&amp;quot;packages&amp;quot;&lt;/span&gt;: [&lt;span class="str"&gt;&amp;quot;Facebook&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Twitter&amp;quot;&lt;/span&gt;]
        });
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;3. On Client page told which package to load&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;View/Facebook/Index.Cshtml&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/cipto/image_2B144ED8.png"&gt;&lt;img src="http://netindonesia.net/blogs/cipto/image_thumb_59FB70FD.png" title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" alt="image" border="0" height="234" width="536" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/cipto/image_50C6E7CF.png"&gt;&lt;img src="http://netindonesia.net/blogs/cipto/image_thumb_69C548C5.png" title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" alt="image" border="0" height="252" width="538" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h6&gt;&lt;font size="3"&gt;4.Scripts/Facebook/main.js&lt;/font&gt;&lt;/h6&gt;

&lt;pre class="csharpcode"&gt;require([ &lt;span class="str"&gt;&amp;quot;knockout-2.2.0&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Facebook/FacebookViewModel&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;domReady!&amp;quot;&lt;/span&gt;],
&lt;span class="kwrd"&gt;function&lt;/span&gt; (ko, FacebookViewModel) {
    debugger;
    &lt;span class="kwrd"&gt;var&lt;/span&gt; viewModel = &lt;span class="kwrd"&gt;new&lt;/span&gt; FacebookViewModel();
    ko.applyBindings(viewModel);
    viewModel.LoadData();
});&lt;/pre&gt;

&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx&amp;amp;subject=Structuring Project using Require JS on Multiple Page Environment" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx&amp;amp;t=Structuring+Project+using+Require+JS+on+Multiple+Page+Environment" target="_blank" title="Submit Structuring Project using Require JS on Multiple Page Environment to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx&amp;amp;title=Structuring+Project+using+Require+JS+on+Multiple+Page+Environment" target="_blank" title="Submit Structuring Project using Require JS on Multiple Page Environment to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx&amp;amp;phase=2" target="_blank" title="Submit Structuring Project using Require JS on Multiple Page Environment to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/12/11/structuring-project-using-require-js-on-multiple-page-environment.aspx&amp;amp;title=Structuring+Project+using+Require+JS+on+Multiple+Page+Environment" target="_blank" title="Add Structuring Project using Require JS on Multiple Page Environment to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193664" width="1" height="1"&gt;</description></item><item><title>Cracking .NET Software</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx</link><pubDate>Fri, 30 Nov 2012 02:14:45 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193656</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Are you familiar with this picture ?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_2B289D91.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;float:none;margin-left:auto;display:block;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_2113FC66.png" width="244" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you are not then you have to visit &lt;a href="http://9gag.com"&gt;this cool website&lt;/a&gt; regulary. If you have already, congrats. then you are a cool person to. :D&lt;/p&gt;  &lt;p&gt;This is what exactly we will do in this blog post. I always thought that to crack software is really hard at university. A couple a days ago i found that actually that’s pretty simple and i believe that you can do it also. Of course i’m not want you to be pirate. Let’s just do it for fun. :)&lt;/p&gt;  &lt;p&gt;Don’t worry we don’t have to deep dive into assembly or machine language thing in this stuff. I will.. maybe next time, if i have a chance to do it. But today it’s only a simple start for you to get your hands dirty. &lt;/p&gt;  &lt;p&gt;I know all this stuff because previously i want to crack my friends software because it can be run in Windows 8. I try to find out why the license mechanism is not working on my Machine. &lt;/p&gt;  &lt;p&gt;My first try is to get a the coolest software decompiler&amp;#160; in .NET world. &lt;a href="http://www.reflector.net/"&gt;Reflector&lt;/a&gt;. If you don’t have one, please go get it and use the trial version to get the feel how great it is. I see the license routine and found out where i can leverage the weakness of this software. Just drag the assembly to reflector and open the related method. Very simple to use. Turns out that this assembly hasn&amp;#39;t been obsfucated first. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;You definitely have to obfuscate your assembly if it’s not open source project. &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_51E68E04.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5B5F4C7A.png" width="567" height="211" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here’s another assembly that has been obfuscated. You can still see the code, but i bet it will hurt your eyes, just give up and buy the license. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_40B2B061.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_13BD4D86.png" width="575" height="268" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I include the assembly in my project, create a simple main program in my software. I try to do reflection because some of the assembly is internal. So another best practice again is…    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_718541FF.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5BBB59A2.png" width="400" height="72" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;br /&gt;For a really critical and high privacy class, you should keep the access at least as possible. don’t create all class public by default. that’s just plain stupid !!! If you don’t want everyone get access to it try to make it internal.       &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;There is a very good book that will support my statement. You can check this cool book. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://shop.oreilly.com/product/0790145353665.do?sortby=publicationDate"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;float:none;margin-left:auto;display:block;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_0864137C.png" width="201" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After a couple of headaches i finally found a very nice reflector add ins that help me to crack that software. Have you ever heard about &lt;a href="http://reflexil.net/"&gt;reflexil&lt;/a&gt; ? That cool tools can modify an IL (intermediate language) and save the result. That’s exactly what we’re looking for. Just go download the latest version. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://sourceforge.net/projects/reflexil/files/latest/download?source=files"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_14F1C098.png" width="448" height="52" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Extract the file and then add to reflector.    &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_56A8F626.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_119028F0.png" width="315" height="175" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_214FBDF4.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7F83E562.png" width="369" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And now you can find the interesting method and see the IL    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_2D41885B.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_1DDE007F.png" width="514" height="329" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;If you are not into IL, don’t worry. You can just modify the method directly and insert the relevant code. Very simple. Just right click in instruction window and choose this one&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_2B1463C5.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_6999B16B.png" width="444" height="174" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And all you have to do is replace the whole class with yours. You have to make it compile-able. Compile and click ok. Your evil IL will be inserted.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_47CDD8DA.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5F851040.png" width="351" height="311" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you can save the modified assembly by right clicking the assembly, choose reflxil and save as…    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_39AEE9DD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_71812E00.png" width="385" height="306" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And then replace the original assembly with this one. And you are done. Right next door to hell because of cracking other people software. :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Use this information to protect your software only. Of course that’s depend on your heart right ?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sourceforge.net/projects/reflexil/?source=dlp"&gt;http://sourceforge.net/projects/reflexil/?source=dlp&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://geekswithblogs.net/MarkPearl/archive/2010/09/01/crack-.net-applications-101-ndash-part-2.aspx"&gt;http://geekswithblogs.net/MarkPearl/archive/2010/09/01/crack-.net-applications-101-ndash-part-2.aspx&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://geekswithblogs.net/MarkPearl/archive/2010/08/31/crack-.net-applications-101-ndash-part-1.aspx"&gt;http://geekswithblogs.net/MarkPearl/archive/2010/08/31/crack-.net-applications-101-ndash-part-1.aspx&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/451453/how-to-get-a-static-property-with-reflection"&gt;http://stackoverflow.com/questions/451453/how-to-get-a-static-property-with-reflection&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx&amp;amp;subject=Cracking .NET Software" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx&amp;amp;t=Cracking+.NET+Software" target="_blank" title="Submit Cracking .NET Software to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx&amp;amp;title=Cracking+.NET+Software" target="_blank" title="Submit Cracking .NET Software to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx&amp;amp;phase=2" target="_blank" title="Submit Cracking .NET Software to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/30/cracking_2D00_net_2D00_software.aspx&amp;amp;title=Cracking+.NET+Software" target="_blank" title="Add Cracking .NET Software to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193656" width="1" height="1"&gt;</description></item><item><title>Scroll PullUp to Refresh, Hybrid Apps plugin</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx</link><pubDate>Thu, 29 Nov 2012 10:32:07 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193655</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;I came across this issue when building my simple news app,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I want it to behave like other apps, Pull down to refresh , Pull Up to refresh, so that when it reach bottom, I could append more news to either local storage or Sqllite&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I found that this plugin called &lt;/font&gt;&lt;a href="http://cubiq.org/iscroll-4"&gt;&lt;font size="3"&gt;ISCROL&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;L is very useful and it works on the simulator&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx&amp;amp;subject=Scroll PullUp to Refresh, Hybrid Apps plugin" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx&amp;amp;t=Scroll+PullUp+to+Refresh%2c+Hybrid+Apps+plugin" target="_blank" title="Submit Scroll PullUp to Refresh, Hybrid Apps plugin to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx&amp;amp;title=Scroll+PullUp+to+Refresh%2c+Hybrid+Apps+plugin" target="_blank" title="Submit Scroll PullUp to Refresh, Hybrid Apps plugin to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx&amp;amp;phase=2" target="_blank" title="Submit Scroll PullUp to Refresh, Hybrid Apps plugin to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/29/scroll-pullup-to-refresh-hybrid-apps-plugin.aspx&amp;amp;title=Scroll+PullUp+to+Refresh%2c+Hybrid+Apps+plugin" target="_blank" title="Add Scroll PullUp to Refresh, Hybrid Apps plugin to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193655" width="1" height="1"&gt;</description></item><item><title>VS2012 SP1 Offline Installer</title><link>http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx</link><pubDate>Tue, 27 Nov 2012 18:00:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193652</guid><dc:creator>dede</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;b&gt;&lt;i&gt;Q:&lt;/i&gt;&lt;/b&gt;Apakah ada offline installer untuk VS2012 SP1?&lt;br /&gt;  &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;A:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;  &lt;/p&gt;&lt;p&gt;
Seperti yang kita lihat pada microsoft visual studio download page yang hanya mempunyai web installer dan tidak memberikan link untuk ISO installer (offline).&lt;br /&gt;
Walaupun begitu kita masih mempunyai opsi untuk men-download package sp1 ini untuk melakukan offline installer.&lt;br /&gt;
Caranya: &lt;br /&gt;
&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Jalankan web installer dengan option: &lt;b&gt;vsupdate_KB2707250.exe /Layout&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Muncul form yang dapat di gunakan untuk mengarahkan download package-nya.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/19973434/Blogs/Vs2012_SP1_Offline/Layout.png" alt="Layout" /&gt;&lt;br /&gt;Installer kemudian akan men-download package yang di perlukan kedalam folder tadi.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/19973434/Blogs/Vs2012_SP1_Offline/Layout_acquiring.png" alt="Layout" /&gt;&lt;/li&gt;
&lt;li&gt;Stelah selesai, maka kita akan mendapatkan package-package yang diperlukan untuk melakukan &amp;#39;offline installer&amp;#39;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/19973434/Blogs/Vs2012_SP1_Offline/Layout_folder.png" alt="Layout" /&gt;&lt;br /&gt;Di dalam folder package kita bisa melihat banyak package VS2012 SP1 ini.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/19973434/Blogs/Vs2012_SP1_Offline/Layout_folder_packages.png" alt="Layout" /&gt;&lt;/li&gt;
&lt;li&gt;Setelah install, kita bisa melihat di about VS2012&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/19973434/Blogs/Vs2012_SP1_Offline/VS2012SP1About.png" alt="Layout" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx&amp;amp;subject=VS2012 SP1 Offline Installer" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx&amp;amp;t=VS2012+SP1+Offline+Installer" target="_blank" title="Submit VS2012 SP1 Offline Installer to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx&amp;amp;title=VS2012+SP1+Offline+Installer" target="_blank" title="Submit VS2012 SP1 Offline Installer to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx&amp;amp;phase=2" target="_blank" title="Submit VS2012 SP1 Offline Installer to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dede/archive/2012/11/28/193652.aspx&amp;amp;title=VS2012+SP1+Offline+Installer" target="_blank" title="Add VS2012 SP1 Offline Installer to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193652" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/.NET/default.aspx">.NET</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/WPF/default.aspx">WPF</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/visual+studio/default.aspx">visual studio</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/f_2300_/default.aspx">f#</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/vb/default.aspx">vb</category><category domain="http://geeks.netindonesia.net/blogs/dede/archive/tags/EF/default.aspx">EF</category></item><item><title>New Things to Learn and Adapt</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx</link><pubDate>Mon, 26 Nov 2012 00:16:31 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193651</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;Today I’ve got an hour or so to do some research a lot of things can be adapted , revisited and Implemented in real life website application&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;There are lots of things to Learn and see how useful it it to enhance our development cycle&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Website Based:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://prototypejs.org/"&gt;&lt;font size="3"&gt;Prototype&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; for OOP JavaScript,, instead of verbose prototype programming ,JavaScript 1.5&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;Programmable CSS? think of &lt;/font&gt;&lt;a href="http://lesscss.org/"&gt;&lt;font size="3"&gt;LESS&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; Or &lt;/font&gt;&lt;a href="http://sass-lang.com/"&gt;&lt;font size="3"&gt;SASS&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;, now CSS support inheritance and all that logic, remove redundancy&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="3"&gt;AMD JavaScript loading? use &lt;/font&gt;&lt;a href="http://requirejs.org"&gt;&lt;font size="3"&gt;REQUIRE.JS&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&amp;#160; either dynamic or predefined JS, can set up a&amp;#160; dependency and in which order to load. this is really important and with all other combination, will keep your code clean, can use their optimizer to merge into 1 file also.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3"&gt;.NET Based:     &lt;br /&gt;&lt;/font&gt;&lt;a href="http://www.lhotka.net/cslanet/"&gt;&lt;font size="3"&gt;CSLA.NET&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx&amp;amp;subject=New Things to Learn and Adapt" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx&amp;amp;t=New+Things+to+Learn+and+Adapt" target="_blank" title="Submit New Things to Learn and Adapt to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx&amp;amp;title=New+Things+to+Learn+and+Adapt" target="_blank" title="Submit New Things to Learn and Adapt to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx&amp;amp;phase=2" target="_blank" title="Submit New Things to Learn and Adapt to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/26/new-things-to-learn-and-adapt.aspx&amp;amp;title=New+Things+to+Learn+and+Adapt" target="_blank" title="Add New Things to Learn and Adapt to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193651" width="1" height="1"&gt;</description></item><item><title>Team Leadership Books to read</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx</link><pubDate>Sun, 25 Nov 2012 23:41:08 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193650</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;No one work in isolation. Team is a very precious thing that will made your software dream comes true. Need to read those book to create and maintain a great team. Here is my bucket list reading .. when i have a free time…    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_70F92052.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_2786CB97.png" width="165" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_7F741C77.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_36F9B799.png" width="160" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_54F7C58D.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_009869BD.png" width="188" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_79D53A6C.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_0A8C951F.png" width="207" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_61150186.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_4AFE7027.png" width="164" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_10A2FA46.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_2564CCF9.png" width="161" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_5CCADE27.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7FCB29CA.png" width="163" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_1E356AB4.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_58ECEDBD.png" width="188" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_1706086F.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7F8B543D.png" width="166" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Definitely need some very good time to read it !&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx&amp;amp;subject=Team Leadership Books to read" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx&amp;amp;t=Team+Leadership+Books+to+read" target="_blank" title="Submit Team Leadership Books to read to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx&amp;amp;title=Team+Leadership+Books+to+read" target="_blank" title="Submit Team Leadership Books to read to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx&amp;amp;phase=2" target="_blank" title="Submit Team Leadership Books to read to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/26/team_2D00_leadership_2D00_books_2D00_to_2D00_read.aspx&amp;amp;title=Team+Leadership+Books+to+read" target="_blank" title="Add Team Leadership Books to read to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193650" width="1" height="1"&gt;</description></item><item><title>TypeScript : Large Scale Javascript Development made easy</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx</link><pubDate>Sat, 24 Nov 2012 10:18:03 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193649</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Beberapa tahun belakangan ini javascript sudah menjadi first class language yang tidak hanya digunakan untuk aplikasi web saja tetapi juga di sisi server. Anda dapat melihat framework sepertiNode.js, framework for single page apps, bahkan video streaming and conference jg memanfaatkan kekuatan dari javascript dan HTML 5. Jangan lupa juga bahwa microsoft menggunakan javascript sebagai salah satu language yg dapat membuat aplikasi windows store apps (windows 8). Perkembangan library javascript dengan kehadiran HTML 5 juga sangat mengesankan. Sepertinya hampir tidak ada hal yang tidak bisa dilakukan dengan javascript . &lt;/p&gt;  &lt;p&gt;Tetapi sudah bukan rahasia lagi bahwa pembangunan aplikasi dengan memanfaatkan javascript apalagi hal tersebut memiliki skala besar sangat painful. Hal ini disebabkan lemahnya dukungan dari tools dan javascript merupakan scripting language yang memiliki nature dynamic typing. Anda dapat melihat banyak buku yang akan membahas lengkap bagaimana kita bisa membuat code base kita lebih maintanable dan hal tersebut dapat dilakukan tetapi tidak mudah. Anda dapat melihat sebagian kecil dari buku yang membahas hal tersebut. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_70048834.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_502F4CF8.png" width="197" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_1B4247BB.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_0D5FDBF3.png" width="187" height="244" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_4DF20295.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5ABC32E6.png" width="187" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_64547B4F.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5CB8E615.png" width="198" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_126E2B70.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_64DCE5DF.png" width="200" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_2F83ADAD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_5BFCB7C6.png" width="193" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Jika anda membaca buku diatas terutama buku yang terakhir (membahas tdd, refactoring dan pattern), anda akan merasakan bahwa sulit untuk melakukan hal tersebut dengan benar.&amp;#160; &lt;/p&gt;  &lt;p&gt;Anda mungkin pernah mendengar mengenai &lt;a href="http://coffeescript.org/"&gt;CoffeScript&lt;/a&gt; yang menawarkan kemudahan dan ada beberapa project serupa. Dan akhirnya microsoft pun membuat bahasanya sendiri yaitu &lt;a href="http://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;. Seperti beberapa project yang lain typescript akan menghasilkan javascript code. Dan creatornya adalah Anders Hejlsberg yang merupakan Architect dari c#. Wow. Sintaks yang digunakan pada TypeScript juga mirip c# dan java. You will love this one. Anda juga dapat memanfaatkan VIsual Studio sebagai IDE , melakukan debugging dsb. Static typing jadi anda akan mendapat bantuan dari compiler mengenai sintaks error dsb. Awesome right ?? Ok enough marketing speech. let’s write some code. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;First Cup with TypeScript&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Anda dapat menginstall typescript plugin untuk visual studio dari &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=34790"&gt;sini&lt;/a&gt;.       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_2F0754EB.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_3E5AB6FA.png" width="575" height="106" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Setelah anda melakukan instalasi anda dapat menemukan template baru pada visual studio. Berikan nama dan create project.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_3CA9EB26.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_485F3258.png" width="583" height="161" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Anda akan mendapati file .ts (typescript) dan .js (javascript). Secara otomatis file typescript akan dicompile menjadi javascript.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_269359C7.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_1DC3517B.png" width="222" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Jika anda membuka file .ts dan jika background programming anda adalah java atau c# maka hal ini sangat familar sekali bagi anda. clean and beautiful.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_14F3492F.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_008D83A4.png" width="577" height="283" /&gt;&lt;/a&gt;       &lt;br /&gt;apakah anda bisa bayangkan bagaimana membuat code tersebut dengan javascript. Silahkan anda buka sendiri file javascriptnya. very messy and hurt your eyes. guaranteed!!       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_1CDAC5C4.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_26BFB72F.png" width="391" height="341" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Sekarang mari kita jalankan. Pastikan dulu bahwa browser yg terpilih untuk menjalankan aplikasi ini adlah Internet Explorer, karena sebelumnya saya tidak dapat melakukan debugging dengan Chrome.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_6B8BDB63.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7819887F.png" width="308" height="221" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Jika anda ingin mengetes fitur debugging pada bagian ini anda dapat menset breakpoint. Saya membuatnya pada constructor.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_75FC89B6.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_73072503.png" width="427" height="152" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Tekan F5&amp;#160; untuk menjalankannya. Anda akan mendapat pesan seperti berikut ini karena dia akan dijalakan di IIS. Tekan saja OK.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_69CAE9C2.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_08A15DA1.png" width="441" height="186" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Internet explorer akan terbuka untuk menampilkan hasilnya. Voila aplikasi kita dijalankan dan aplikasi berhenti pada breakpoint. Anda juga akan mendapatkan fitur debugging yang diberikan oleh visual studio.       &lt;br /&gt;      &lt;br /&gt;&amp;#160;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_45E21268.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_3254B2C7.png" width="417" height="240" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Tekan F5 untuk melanjutkan aplikasi lagi. Akan ditampilkan page seperti berikut ini.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_47065FAD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_2A1D3AD8.png" width="322" height="113" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;Websocket dengan TypeScript&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Sekarang mari kita membuat code sederhana. Saya penasaran bagaimana dengan dukungan HTML 5 pada typescript. Dan fitur yang saya cari adalah ??? the most powerful one from HTML 5. WEBSOCKET !!. Let’s do it. Saya akan menggunakan server websocket yang dapat diakes disni &lt;a title="http://www.websocket.org/echo.html" href="http://www.websocket.org/echo.html"&gt;http://www.websocket.org/echo.html&lt;/a&gt;.       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_16FC0E2C.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7BE33F1D.png" width="535" height="223" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Anda dapat melihat alamat websocketnya adalah &lt;a title="ws://echo.websocket.org"&gt;ws://echo.websocket.org&lt;/a&gt;. Hanya merupakan simple reply dari server. Anda dapat mencoba terlebih dahulu demo nya untuk memastikan dukungan websocket pada browser anda dan juga tidak ada masalah dengan firewall dan NAT.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Tambahkan code yang telah di highlight berikut ini.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_055BFD94.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_43751845.png" width="486" height="255" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Perhatikan pendeklarasian variable dengan static type, intellisense pada websocket dan penggunaan lambda expression untuk callback. Sangat indah sekali.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Langsung saja kita jalankan dengan menekan F5. Anda akan mendapat pesan bahwa koneksi websocket telah dibuat ke server.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_14CEE996.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_7AFAB366.png" width="227" height="174" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Tekan OK dan message anda akan dibalas oleh server.       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_33392A7F.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_188C8E66.png" width="239" height="185" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;Anda dapat melihat presentasi mengenai javascript langsung dari pembuatnya dari dua video berikut ini.       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; &lt;a href="http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_69C6D5C3.png" width="244" height="140" /&gt;&lt;/a&gt; &lt;a href="http://channel9.msdn.com/Events/Build/2012/3-012"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_658CD831.png" width="244" height="139" /&gt;&lt;/a&gt;   &lt;ol&gt;&lt;/ol&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Have fun with TypeScript !!!    &lt;br /&gt;    &lt;br /&gt;Cheers&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx&amp;amp;subject=TypeScript : Large Scale Javascript Development made easy" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx&amp;amp;t=TypeScript+%3a+Large+Scale+Javascript+Development+made+easy" target="_blank" title="Submit TypeScript : Large Scale Javascript Development made easy to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx&amp;amp;title=TypeScript+%3a+Large+Scale+Javascript+Development+made+easy" target="_blank" title="Submit TypeScript : Large Scale Javascript Development made easy to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx&amp;amp;phase=2" target="_blank" title="Submit TypeScript : Large Scale Javascript Development made easy to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/24/typescript_2D00_large_2D00_scale_2D00_javascript_2D00_development_2D00_made_2D00_easy.aspx&amp;amp;title=TypeScript+%3a+Large+Scale+Javascript+Development+made+easy" target="_blank" title="Add TypeScript : Large Scale Javascript Development made easy to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193649" width="1" height="1"&gt;</description></item><item><title>An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17</title><link>http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx</link><pubDate>Sun, 18 Nov 2012 20:00:28 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193642</guid><dc:creator>eriawan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hello there! &lt;/p&gt;  &lt;p&gt;After a very long “quiet time” in blogging, now it’s time to encourage myself to share again! But I’d love to blog in my only passion and I truly confident about: programming, especially programming in .NET and Java. Actually, I’ve written an eBook about F# before but it was way before Visual Studio 2010 launched. Now I’m focusing on F# and functional programming.&lt;/p&gt;  &lt;p&gt;This blog of F# contains full (long) blog posts of adventure in functional programming and F#. I call it adventure, because I’ll try to make F# as fun to as possible to learn.&lt;/p&gt;  &lt;p&gt;Now, here are the parts:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://mugi.or.id/blogs/eriawan/archive/2012/05/28/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-1-of-17.aspx"&gt;Part 1: Introduction to Functional Programming&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mugi.or.id/blogs/eriawan/archive/2012/06/06/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-2-of-17.aspx" target="_blank"&gt;Part 2: Functional Programming Concepts&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mugi.or.id/blogs/eriawan/archive/2012/10/08/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-3-of-17.aspx"&gt;Part 3: Introduction to F#&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;Part 4: Functions, Delegates and Computation expressions in F# (you are here) &lt;/li&gt;    &lt;li&gt;Part 5: F# standard libraries &lt;/li&gt;    &lt;li&gt;Part 6: OOP in F# &lt;/li&gt;    &lt;li&gt;Part 7: Using LINQ in F# (and the upcoming F# 3.0) &lt;/li&gt;    &lt;li&gt;Part 8: F# Asynchronous workflow &lt;/li&gt;    &lt;li&gt;Part 9: F# MailboxProcessor &lt;/li&gt;    &lt;li&gt;Part 10: Units of Measures &lt;/li&gt;    &lt;li&gt;Part 11: F# Power Pack &lt;/li&gt;    &lt;li&gt;Part 12: F# for Silverlight 4 (and above) &lt;/li&gt;    &lt;li&gt;Part 13: A look at F# 3.0 in VS 11 (Visual Studio 2012) &lt;/li&gt;    &lt;li&gt;Part 14: A look of Functional Programming in VB 10 and C# 4.0 compared to F# &lt;/li&gt;    &lt;li&gt;Part 15: A look of F# compared to Haskell, Scala and Scheme &lt;/li&gt;    &lt;li&gt;Part 16: F# future and what features that F# must have &lt;/li&gt;    &lt;li&gt;Part 17: Retrospective &lt;/li&gt; &lt;/ol&gt;  &lt;hr /&gt;  &lt;h1&gt;Function, Delegates and Computation Workflow in F#&lt;/h1&gt;  &lt;p&gt;Before we dive deeper into this, please remember one thing: functional programming is programming with functions, just like mathematical functions. It doesn’t matter whether we are into pure functional or non pure functional.&lt;/p&gt;  &lt;p&gt;Pure functional or non pure programming has to be able to handle side effects, and this is why Monad concept is so popular in functional programming languages. Therefore it’s useful to know Monad concept as well.&lt;/p&gt;  &lt;p&gt;We are now learning the what the heart of functional programming is, the function. Only now let’s dive and focus on F#’s functions.&lt;/p&gt;  &lt;h2&gt;Functions in F#&lt;/h2&gt;  &lt;p&gt;In functional programming, there are no differences between data and functions, and functions can be passed as data. We already can pass function as arguments using delegates. But functions and delegates in F# are quite different from C# and VB delegates that usually uses Func&amp;lt;T&amp;gt;, Func &amp;lt;T,TResult&amp;gt; and the other larger amounts of Func parameters.&lt;/p&gt;  &lt;p&gt;We have learned that in previous part 2 and part 3, functions in F# are special. They can be curried and then can be chained and also composed as higher order function, not just simple function that return a value.&lt;/p&gt;  &lt;p&gt;The function itself can be treated as data, therefore can be passed as parameter to other function. &lt;/p&gt;  &lt;p&gt;We already have this in .NET, under the name of Delegate. Because it’s on .NET, it’s available for other languages not just F#; delegates can be immediately used in C#, VB and managed C++. &lt;/p&gt;  &lt;p&gt;Let’s make a function that has square operation:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;let square x = x * x&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The signature will be:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;int –&amp;gt; int&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Because there’s no type declared, the default will be Int32. &lt;/p&gt;  &lt;p&gt;Now, using the function is simply calling the function with parameter, like this example:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;square(5)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Of course the result is 5 x 5 = 25.&lt;/p&gt;  &lt;p&gt;In F#, a function is curried (see previous part 2) and you will be able to chain it up and to create a higher order function.&lt;/p&gt;  &lt;p&gt;Why do you have to care about the signature? Because this is the nature of F# function: it can be curried as well just like functions in part 2. Also it’s different from VB and C# when it has been compiled!&lt;/p&gt;  &lt;p&gt;Before diving deeper, let’s dissect common F# code in a project (instead of using interactive mode).&lt;/p&gt;  &lt;p&gt;By default, the common function declarations of F# exists in Modules, and these modules are simply the same as static classes in C# and Modules in VB. But declaring functions in F# is different.&lt;/p&gt;  &lt;p&gt;Here is a sample of math module:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;module &lt;/span&gt;&lt;span style="color:black;"&gt;MathModules

&lt;/span&gt;&lt;span style="color:blue;"&gt;let &lt;/span&gt;&lt;span style="color:black;"&gt;sqr x = x * x

&lt;/span&gt;&lt;span style="color:blue;"&gt;let rec &lt;/span&gt;&lt;span style="color:black;"&gt;simpleFactorial x = 
    &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="color:black;"&gt;x = 0 &lt;/span&gt;&lt;span style="color:blue;"&gt;then &lt;/span&gt;&lt;span style="color:black;"&gt;1 &lt;/span&gt;&lt;span style="color:blue;"&gt;else &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;x * simpleFactorial x - 1 
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;As we see, it’s simple.&lt;/p&gt;

&lt;p&gt;Now, let’s dive into the source code of MathModules in C#: (using free JustDecompile from Telerik)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_Decompiled_5F00_4BC1F8CC.png"&gt;&lt;img title="MathModules_Decompiled" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="MathModules_Decompiled" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_Decompiled_5F00_thumb_5F00_2487AF97.png" width="882" height="468" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the source in C# we can see that it has &lt;strong&gt;CompilationMapping&lt;/strong&gt; attribute attached to it, and it’s simply to define the class as Module in F#. Without any modifier means that all functions in F# are public and static by default.&lt;/p&gt;

&lt;p&gt;Again, the source decompiled in C# is longer than the one in F#, and it has many noises.&lt;/p&gt;

&lt;p&gt;As described in previous parts (especially part 2 and part 3) if there’s no type signature in a simple arithmetic operation, the type will be inferred as integer.&lt;/p&gt;

&lt;p&gt;What about multiple parameters?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_multipleparam_5F00_402C3B8D.png"&gt;&lt;img title="fs_multipleparam" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_multipleparam" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_multipleparam_5F00_thumb_5F00_7223DC17.png" width="465" height="232" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then the decompiled version will be:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_v2_5F00_Decompiled_5F00_241B7CA2.png"&gt;&lt;img title="MathModules_v2_Decompiled" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="MathModules_v2_Decompiled" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_v2_5F00_Decompiled_5F00_thumb_5F00_78D6E59A.png" width="644" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, it’s different, and there is CompilationArgumentCounts attribute at the multiply function.&lt;/p&gt;

&lt;p&gt;What is this attribute, really? Seeing this on MSD Library:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/CompilationArgumentCounts_5F00_MSDN_5F00_library_5F00_519C9C65.png"&gt;&lt;img title="CompilationArgumentCounts_MSDN_library" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="CompilationArgumentCounts_MSDN_library" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/CompilationArgumentCounts_5F00_MSDN_5F00_library_5F00_thumb_5F00_1F38C8E6.png" width="644" height="259" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It means that this function accepts a partial application of some of its arguments. Now, when we have multiple parameter, then it can be curried as well! &lt;/p&gt;

&lt;p&gt;Let’s recall this currying sample from Part 2:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_sample_5F00_curried_5F00_1BD335C8.png"&gt;&lt;img title="fs_sample_curried" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_sample_curried" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_sample_5F00_curried_5F00_thumb_5F00_742CB99D.png" width="357" height="127" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let’s incorporate those sample into our MathModules:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_multipleparam_5F00_curried_5F00_6CA14A30.png"&gt;&lt;img title="fs_multipleparam_curried" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_multipleparam_curried" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_multipleparam_5F00_curried_5F00_thumb_5F00_24DFC149.png" width="574" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we have a higher-order function, it is “&lt;strong&gt;makeFactorOf3&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;And launch a decompiler tool to sneak in C#: (I have hidden the same sqr method to increase overall source code difference)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_v3_5F00_Decompiled_5F00_713754EA.png"&gt;&lt;img title="MathModules_v3_Decompiled" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="MathModules_v3_Decompiled" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/MathModules_5F00_v3_5F00_Decompiled_5F00_thumb_5F00_6DD5BD42.png" width="644" height="472" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;F# compiler has converted makeFactorOf3 to be typed as &lt;strong&gt;FSharpFunc&amp;lt;int,int&amp;gt;&lt;/strong&gt;! &lt;/p&gt;

&lt;p&gt;And the F# compiler generates new internal class of makeFactorOf3u004012 with code that has invocation of multiply. This is where the similarity between F# and other languages in Visual Studio break! &lt;/p&gt;

&lt;p&gt;And you might wonder how to call this function from other languages such as C# and VB? Later on Part 14.&lt;/p&gt;

&lt;p&gt;Now let’s explore F# functions and delegates deeper.&lt;/p&gt;

&lt;h2&gt;Returning value of function result&lt;/h2&gt;

&lt;p&gt;By looking at simpleFactorial function, we can have function body more than one line and also can have statements. But there’s one convention: the final line on the function body or the entire expression within the function body (including the statement) must evaluate into a value, and this value is the return value (or simply the result) of the function. Therefore, &lt;strong&gt;&lt;em&gt;there’s no verbose return statement in F#&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But we must include indentation to signify that the function is indeed having many statements inside for functions that has many statements.&lt;/p&gt;

&lt;p&gt;This concept will imply that we must evaluate value returned in a maintainable manner, as simple as possible!&lt;/p&gt;

&lt;p&gt;This is different from C# and Visual Basic which can have return statement at any position! But this simple convention will give us more discipline that always has one point of return value, instead of having many return statement in our code.&lt;/p&gt;

&lt;p&gt;What about using match (pattern matching) in F#? It is still evaluate to a value to be immediately returned as function result.&lt;/p&gt;

&lt;p&gt;See this sample:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;defineQuality grade = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;match &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;grade &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;with
                        &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;| &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;A&amp;quot; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Best&amp;quot;
                        &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;| &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;B&amp;quot; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Very good&amp;quot;
                        &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;| &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;C&amp;quot; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Good&amp;quot;
                        &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;| &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;D&amp;quot; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Bad&amp;quot;
                        &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;| _ &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Undefined&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Compare it to C# code with the same functionality:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:black;"&gt;        &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;String &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;defineQuality(&lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;String &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;grade)
        {
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;var &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;switch &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(grade)
            {
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;case &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;A&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;:
                    {
                        qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Best&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;break&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                    }
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;case &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;:
                    {
                        qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Very good&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;break&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                    }
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;case &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;:
                    {
                        qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Very good&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;break&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                    }
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;case &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;:
                    {
                        qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Bad&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;break&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                    }
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;default&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;:
                    {
                        qual = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;undefined&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;break&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
                    }
            }
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;qual;
        }&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Yes, we can enforce to make return statement in one position just like the code above. &lt;/p&gt;

&lt;p&gt;But this will become obvious if we use&amp;#160; if statement, just like this in C#:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:black;"&gt;        &lt;/span&gt;&lt;span style="background:white;color:#2b91af;"&gt;String &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;IsPositive(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;int &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;anynum)
        {
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;(anynum&amp;gt;=0)
            {
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Positive&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
            }
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;else
            &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;{
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Negative&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;;
            }
        }
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;When I was leading a team of developers, I often found that code and when the inside if bracket the code contains another ifs and returns, the code will become hard to maintain and it’s still true until now! We will have two maintenance point of return values in that code above.&lt;/p&gt;

&lt;p&gt;Now compare the code above in F#:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;IsPositive x = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;x &amp;gt;= 0 &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;then &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Positive&amp;quot;
                    &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;else &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Negative&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;It’s somehow quite a little bit hard to maintain but it still doesn’t violate F# convention to return value immediately. Now we can refine the function above into:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;IsPositiveV2 x = 
                &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;evalResult = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;x&amp;gt;= 0 &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;then &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Positive&amp;quot; &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;else &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Negative&amp;quot;
                &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;evalResult&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Now we can see that evalResult is acting as the return value of the result, and we must have indentations.&lt;/p&gt;

&lt;p&gt;If you want to explicitly specify the type of the returned values, you have to group the parameter into parentheses.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;multiplyV2 (a) (b) : int = a * b&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;and multiplyV2 will have this signature:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;val multiplyV2 : a:int -&amp;gt; b:int –&amp;gt; int&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This brings another convention: the last type in a function signature means the result/return value type.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Writing parameters of a function&lt;/h2&gt;

&lt;p&gt;Now let’s dive deeper about parameters in a function in F#.&lt;/p&gt;

&lt;p&gt;We already have “sqr x” and “multiply a b” and we can simply deduce the parameters:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/fs_function_params_30B93C8E.png"&gt;&lt;img title="fs_function_params" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_function_params" src="http://geeks.netindonesia.net/blogs/eriawan/fs_function_params_thumb_59154257.png" width="372" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In F#, we define the function prefixed with let and the parameter is separated with white space. This white space is significant, therefore the next identifier after first parameter will the second parameter.&lt;/p&gt;

&lt;p&gt;If we have the previous swap function: (also available in F# Tutorial template in Visual Studio)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;let swap (a,b) = (b,a)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;F# will translate the parameter as Tuples of a and b. And it will also infer the types of a and b as generic.&lt;/p&gt;

&lt;h2&gt;Recursive functions&lt;/h2&gt;

&lt;p&gt;Any recursive functions has to be marked with rec keyword after the let keyword.&lt;/p&gt;

&lt;p&gt;We already have a recursive factorial sample in the F# tutorial:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let rec &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;factorial n = &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;if &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;n=0 &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;then &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;1 &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;else &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;n * factorial (n-1)&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Again, notice the rec keyword after let.&lt;/p&gt;

&lt;h2&gt;Function as values (alias delegates in F#)&lt;/h2&gt;

&lt;p&gt;In all functional programming languages, functions are the same as values. This function as values is the same concept as delegates in .NET. We all know that many LINQ extension methods have delegates as its parameters, and so does F#.&lt;/p&gt;

&lt;p&gt;For example: (taken from MSDN Library)&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;apply1 (transform : int &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;int ) y = transform y&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The type of apply1 will be: (using F# interactive)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/fs_function_values_type_512030A6.png"&gt;&lt;img title="fs_function_values_type" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_function_values_type" src="http://geeks.netindonesia.net/blogs/eriawan/fs_function_values_type_thumb_0790E2A9.png" width="483" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;a function that has parameters of transform function that has int –&amp;gt; int and a y parameter with default type inferred as int, and the body of the function has transform function that takes y as parameter.&lt;/p&gt;

&lt;p&gt;We can use the apply1 into these:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;increment x = x + 1

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;result1 = apply1 increment 100&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Multiple arguments/parameters are separated by “-&amp;gt;” sign.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;apply2 ( f: int &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;int &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;int) x y = f x y

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;mul x y = x * y

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;result2 = apply2 mul 10 20&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Now we can apply mul function because it has the same signature as f, int –&amp;gt; int –&amp;gt; int.&lt;/p&gt;

&lt;p&gt;Again, in functional programming world, the last type always means the return value type.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;do Bindings&lt;/h2&gt;

&lt;p&gt;We can also execute code without function definition or simply executing it independently in F#.&lt;/p&gt;

&lt;p&gt;The way we do this in F# by using “do” binding. We can also apply attribute to a do binding.&lt;/p&gt;

&lt;p&gt;We can use this techniques to run a code as entry point in a Windows Forms.&lt;/p&gt;

&lt;p&gt;A sample usage of F# do binding in a Windows Forms:&lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;open&lt;/font&gt; System 

    &lt;br /&gt;&lt;font color="#0000ff"&gt;open&lt;/font&gt; System.Windows.Forms&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;let form1 = new Form() 
    &lt;br /&gt;form1.Text &amp;lt;- &amp;quot;XYZ&amp;quot;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;[&amp;lt;STAThread&amp;gt;] 
    &lt;br /&gt;&lt;font color="#0000ff"&gt;do&lt;/font&gt; 

    &lt;br /&gt;&amp;#160;&amp;#160; Application.Run(form1)&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Lambda Expressions&lt;/h2&gt;

&lt;p&gt;Now the fun part in F# functions: lambda expressions. The lambda expressions in F# is the same concept as lambda in C# and VB, and prefixed with keyword: “&lt;strong&gt;fun&lt;/strong&gt;”. The purpose of lambda syntax is only for convenience for writing anonymous function (delegate).&lt;/p&gt;

&lt;p&gt;A small sample of lambda:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;list = List.map (&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;fun &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;i &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;i + 1) [1;2;3]
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;List.map is conceptually the same as Enumerable.Select in LINQ.&lt;/p&gt;

&lt;p&gt;Let’s dive into this lambda deeper!&lt;/p&gt;

&lt;p&gt;Now I will use Seq.map to project a collection to another type of collection:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;open &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;System.Diagnostics
&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;open &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;System.Linq

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;ProcessList = Process.GetProcesses()

&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;ProcessNames = ProcessList |&amp;gt; Seq.map(&lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;fun &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;p &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;p.ProcessName)
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The Seq.map works conceptually the same as Select in LINQ.&lt;/p&gt;

&lt;p&gt;Let’s decompile it! Here’s the layout of the code:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_namespacelayout_5F00_0F48FE87.png"&gt;&lt;img title="fs_decompiled_namespacelayout" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_decompiled_namespacelayout" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_namespacelayout_5F00_thumb_5F00_0E70989D.png" width="346" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;F# compiler will create many compiler generated code. What will ProcessList and ProcessNames look like?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_proclist01_5F00_5964096C.png"&gt;&lt;img title="fs_decompiled_proclist01" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_decompiled_proclist01" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_proclist01_5F00_thumb_5F00_4E3A7F22.png" width="479" height="340" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And now let’s dive into the generated u0024.MathModules, we’ll have this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_compilergenerated01_5F00_2E1F7265.png"&gt;&lt;img title="fs_decompiled_compilergenerated01" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_decompiled_compilergenerated01" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_compilergenerated01_5F00_thumb_5F00_6DE958EA.png" width="644" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the call to Seq.map is available on static constructor of u0024MathModules:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IEnumerable&amp;lt;string&amp;gt; strs = SeqModule.Map&amp;lt;Process, string&amp;gt;(processNamesu004025, (IEnumerable&amp;lt;Process&amp;gt;)processArray);&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And you can deduce that any Seq operation actually mapped to SeqModule class with many static functions. 
  &lt;br /&gt;Also List is mapped to ListModule respectively.&lt;/p&gt;

&lt;p&gt;Now, where is the content of lambda?&lt;/p&gt;

&lt;p&gt;It’s available on ProcessNamesu004025:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_compilergenerated_5F00_processName_5F00_2DB33F70.png"&gt;&lt;img title="fs_decompiled_compilergenerated_processName" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_decompiled_compilergenerated_processName" src="http://mugi.or.id/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriawan/fs_5F00_decompiled_5F00_compilergenerated_5F00_processName_5F00_thumb_5F00_5FAADFFA.png" width="513" height="197" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, delegation in F# is implemented as FSharpFunc internally. And you can see its “p.ProcessName” body is in the Invoke method.&lt;/p&gt;

&lt;p&gt;There’s another attribute to hide the other field, the DebuggerBrowsable with parameter DebuggerBrowsableState.Never on it. This also means that this class isn’t meant to be used outside.&lt;/p&gt;

&lt;p&gt;Again, this means that F# objects and functions are available for the other programming language as well as long as you don’t have to care the generated code produced by F#.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;A gentler introduction to Computation Expressions in F#&lt;/h2&gt;

&lt;p&gt;A computation workflow is one of F# unique feature comparing to C# and VB. It’s somehow can bring new constructs to your code but it also brings Monad to your everyday use of F#, in a gentler way.&lt;/p&gt;

&lt;p&gt;According to F# definition on MSDN Library:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Computation expressions in F# provide a convenient syntax for writing computations that can be sequenced and combined using control flow constructs and bindings. They can be used to provide a convenient syntax for monads, a functional programming feature that can be used to manage data, control, and side effects in functional programs.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now, we can simply assume that F# can do Monad as well! But why it is needed?&lt;/p&gt;

&lt;p&gt;As we have discussed before in part 1 and 2, it’s common in functional programming languages to compose functions, not just using it alone or chaining it up (using the “|&amp;gt;” in F#).&lt;/p&gt;

&lt;p&gt;This composition comes very handy when you want to construct a DSL or simply encapsulating side effects.&lt;/p&gt;

&lt;p&gt;For those outside F#, we can find a sample of Monad in LINQ: the SelectMany! It composes two Func&amp;lt;T,U&amp;gt; and compose it or bind it.&lt;/p&gt;

&lt;p&gt;The syntax is:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;em&gt;builder&lt;/em&gt; { &lt;em&gt;expression&lt;/em&gt; }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;The builder is the builder name, and the expression can contain one or more the bang statements (statements that end with !) such as let! and do! statements.&lt;/p&gt;

&lt;p&gt;I call them statements, because F# MSDN call them just keywords but this is somehow quite confusing. These keywords need expressions, just like statements in C# and VB.&lt;/p&gt;

&lt;p&gt;Then it’s explained further:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“In computation expressions, two forms are available for some common language constructs. You can invoke the variant constructs by using a ! (bang) suffix on certain keywords, such as let!, do!, and so on. These special forms cause certain functions defined in the builder class to replace the ordinary built-in behavior of these operations. These forms resemble the yield! form of the yield keyword that is used in sequence expressions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In F#, we already have computation workflow in action: async in asynchronous workflow! More async in part 8.&lt;/p&gt;

&lt;p&gt;Here’s the list of methods available for computation expressions:&lt;/p&gt;

&lt;p&gt;(taken from &lt;a title="http://msdn.microsoft.com/en-us/library/dd233182.aspx" href="http://msdn.microsoft.com/en-us/library/dd233182.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd233182.aspx&lt;/a&gt; )&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/fs_method_computation_6BEEE763.png"&gt;&lt;img title="fs_method_computation" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_method_computation" src="http://geeks.netindonesia.net/blogs/eriawan/fs_method_computation_thumb_7A31C00E.png" width="1075" height="600" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most common use is let! keyword. It requires a builder with Bind expression inside of it. The bind will compose two expressions as long as the type is aligned well.&lt;/p&gt;

&lt;p&gt;This is the translation from expressions:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/fs_computation_translation_51B7FF5C.png"&gt;&lt;img title="fs_computation_translation" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_computation_translation" src="http://geeks.netindonesia.net/blogs/eriawan/fs_computation_translation_thumb_54D14DBD.png" width="1102" height="677" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The bind in F# inspired by bind in Haskell, and it’s quite simplified version of Haskell’s but without type classes.&lt;/p&gt;

&lt;p&gt;Therefore, this meet the common requirement of Monad: (as explained gently by Wes Dyer in &lt;a title="http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx" href="http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx"&gt;http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx&lt;/a&gt; blog entry)&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Left identity: Identity.Compose(f) = f &lt;/li&gt;

  &lt;li&gt;Right identity: f.Compose(Identity) =f &lt;/li&gt;

  &lt;li&gt;Associative:&amp;#160; f.Compose(g.Compose(h)) = (f.Compose(g)).Compose(h) and it is equal to “f o g” = f(g(x)) &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now we get back to SelectMany:&lt;/p&gt;

&lt;p&gt;IEnumerable&amp;lt;TResult&amp;gt; SelectMany&amp;lt;TSource, TResult&amp;gt;( this IEnumerable&amp;lt;TSource&amp;gt; source, 
  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Func&amp;lt;TSource, IEnumerable&amp;lt;TResult&amp;gt;&amp;gt; collectionSelector)&lt;/p&gt;

&lt;p&gt;It is the same as bind with this signature:&lt;/p&gt;

&lt;p&gt;Bind :: IEnumerable&amp;lt;&amp;#39;T&amp;gt; * (&amp;#39;T –&amp;gt; IEnumerable&amp;lt;&amp;#39;U&amp;gt;) –&amp;gt; IEnumerable&amp;lt;&amp;#39;U&amp;gt;&lt;/p&gt;

&lt;p&gt;Abstract that into:&lt;/p&gt;

&lt;p&gt;Bind :: M&amp;lt;&amp;#39;T&amp;gt; * (&amp;#39;T -&amp;gt; M&amp;lt;&amp;#39;U&amp;gt;) -&amp;gt; M&amp;lt;&amp;#39;U&amp;gt;&lt;/p&gt;

&lt;p&gt;Done, we have monads!&lt;/p&gt;

&lt;p&gt;Suppose we want to make Monad for UI. In this sample provided by Adam Granicz from &lt;a title="http://www.devx.com/enterprise/Article/40481/0/page/2" href="http://www.devx.com/enterprise/Article/40481/0/page/2"&gt;http://www.devx.com/enterprise/Article/40481/0/page/2&lt;/a&gt; we can see the builder for WPF UI:&lt;/p&gt;

&lt;p&gt;(I have edited and corrected some type information on the bind)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/fs_monad_uibuilder_5EBB608A.png"&gt;&lt;img title="fs_monad_uibuilder" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="fs_monad_uibuilder" src="http://geeks.netindonesia.net/blogs/eriawan/fs_monad_uibuilder_thumb_56C8DF8A.png" width="816" height="514" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the builder above is simple:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:white;color:blue;"&gt;let &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;win =
    WindowBuilder()
        {   &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let! &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;panel =
                PanelBuilder(StackPanel())
                    {   &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let! &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;btn1 = Button(Content = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;Hello&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;)
                        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;let! &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;btn2 = Button(Content = &lt;/span&gt;&lt;span style="background:white;color:#a31515;"&gt;&amp;quot;World&amp;quot;&lt;/span&gt;&lt;span style="background:white;color:black;"&gt;)
                        &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;() }
            &lt;/span&gt;&lt;span style="background:white;color:blue;"&gt;return &lt;/span&gt;&lt;span style="background:white;color:black;"&gt;() }
 
win.Show() &lt;/span&gt;&lt;span style="background:white;color:green;"&gt;// Pops up the window in FSI.&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Run the code in the interactive mode!&lt;/p&gt;

&lt;p&gt;I have demonstrated the computation expressions with the twist of OOP in F#. It will be detailed for part 6, OOP in F#.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next: F# standard libraries in part 5!&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;Further reference&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Monad in functional programming: &lt;a title="http://en.wikipedia.org/wiki/Monad_%28functional_programming%29" href="http://en.wikipedia.org/wiki/Monad_%28functional_programming%29"&gt;http://en.wikipedia.org/wiki/Monad_%28functional_programming%29&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;Mathematical Monad: &lt;a title="http://en.wikipedia.org/wiki/Monad_(category_theory)" href="http://en.wikipedia.org/wiki/Monad_(category_theory)"&gt;http://en.wikipedia.org/wiki/Monad_(category_theory)&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;Adam Granicz article of “Working with DSL and Computation Expression in F#”: &lt;a title="http://www.devx.com/enterprise/Article/40481" href="http://www.devx.com/enterprise/Article/40481"&gt;http://www.devx.com/enterprise/Article/40481&lt;/a&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx&amp;amp;subject=An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx&amp;amp;t=An+adventure+journey+of+Functional+Programming+and+F%23+2.0+in+Visual+Studio+2010%3a+Part+4+of+17" target="_blank" title="Submit An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx&amp;amp;title=An+adventure+journey+of+Functional+Programming+and+F%23+2.0+in+Visual+Studio+2010%3a+Part+4+of+17" target="_blank" title="Submit An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx&amp;amp;phase=2" target="_blank" title="Submit An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/19/an-adventure-journey-of-functional-programming-and-f-2-0-in-visual-studio-2010-part-4-of-17.aspx&amp;amp;title=An+adventure+journey+of+Functional+Programming+and+F%23+2.0+in+Visual+Studio+2010%3a+Part+4+of+17" target="_blank" title="Add An adventure journey of Functional Programming and F# 2.0 in Visual Studio 2010: Part 4 of 17 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193642" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/visual+studio/default.aspx">visual studio</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/Functional+programming/default.aspx">Functional programming</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/vs2010/default.aspx">vs2010</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/monad/default.aspx">monad</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/functional+programing/default.aspx">functional programing</category></item><item><title>Mobile Apps Authentication</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx</link><pubDate>Tue, 13 Nov 2012 10:51:19 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193637</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;Mobile native apps, simply take another approach when related to authentication&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;as what the &lt;a href="http://my.safaribooksonline.com/book/programming/mobile/9780735671324"&gt;Architecting Mobile Solutions for the Enterprise&lt;/a&gt; saying it’s a “Log On and Forget Pattern”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;you logged In once , and never touch authentication again. it’s true your phone/tablet can be lost/stolen.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;best if the authorization generate an Access Token, which you can then put on your storage until user log out. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;a private &amp;amp; secure repository,&lt;/font&gt;&lt;font size="3"&gt;IOS have this which will sign the data with the application key, called keychain repository.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;for Android you have no choice but to encrypt it first&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;there has to be a services exposed, as this is another client which can be fully offline.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;the token could be using openID/OAuth .&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;we are help by the new asp.net web API, which is MVC based with all the RESTful template.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;a sample for using this &lt;a href="http://lbadri.wordpress.com/2012/09/13/simple-web-token-swt-as-oauth-2-0-bearer-token-for-asp-net-web-api/"&gt;token based with webAPI&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx&amp;amp;subject=Mobile Apps Authentication" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx&amp;amp;t=Mobile+Apps+Authentication" target="_blank" title="Submit Mobile Apps Authentication to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx&amp;amp;title=Mobile+Apps+Authentication" target="_blank" title="Submit Mobile Apps Authentication to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx&amp;amp;phase=2" target="_blank" title="Submit Mobile Apps Authentication to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/13/mobile-apps-authentication.aspx&amp;amp;title=Mobile+Apps+Authentication" target="_blank" title="Add Mobile Apps Authentication to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193637" width="1" height="1"&gt;</description></item><item><title>Have just finish a sample test of Hybrid App</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx</link><pubDate>Sat, 10 Nov 2012 11:23:58 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193634</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;By using Telerik Graphite , we can simulate and debug our application for hybrid apps,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;the results are more precise than Mist.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Telerik Graphite has it’s debugger which is almost similar to firebug,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;the other advantage by using Graphite is we don’t have to install SDK for each platform, &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;run each simulator and debug one by one using each SDK.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;using JQM as the UI, &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Knockout JS for the MVVM binding, &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Cordova for Native support,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Graphite to test and debug,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;BitBucket for Free GIT repository,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;JSFiddle/echo/jsonP to simulate ajax &amp;amp; data request.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Have just done testing for saving to localStorage, and SqlLite feature.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx&amp;amp;subject=Have just finish a sample test of Hybrid App" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx&amp;amp;t=Have+just+finish+a+sample+test+of+Hybrid+App" target="_blank" title="Submit Have just finish a sample test of Hybrid App to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx&amp;amp;title=Have+just+finish+a+sample+test+of+Hybrid+App" target="_blank" title="Submit Have just finish a sample test of Hybrid App to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx&amp;amp;phase=2" target="_blank" title="Submit Have just finish a sample test of Hybrid App to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/have-just-finish-a-sample-test-of-hybrid-app.aspx&amp;amp;title=Have+just+finish+a+sample+test+of+Hybrid+App" target="_blank" title="Add Have just finish a sample test of Hybrid App to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193634" width="1" height="1"&gt;</description></item><item><title>How to do a Clean Install of Windows 8</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx</link><pubDate>Sat, 10 Nov 2012 08:00:19 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193633</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3"&gt;Swayed by the upgrade price, I decided to try “windoz 8” . there I was&amp;#160; upgrading from 7 to 8. with a lot of belief everything will get better. after installing upgrade assistant, something is not right VS 2010 is not running, after trying to fix it , &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;it turns out I broke the whole system. now VS Crash, with error that is not resolved anywhere.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;“great this is just what I need. In middle of crunch Time “ mumbling.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Since my Ultra book does not have DVD Writer, which is another reason why technology does not help my life easier. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I tried to use USB Stick.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;after failing one time, give up, yesterday I manage to get it running&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;1. follow below tutorial, to create bootable USB.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/habibh/archive/2011/09/14/how-to-create-a-bootable-usb-flash-drive-to-install-windows-8-developer-preview.aspx" href="http://blogs.msdn.com/b/habibh/archive/2011/09/14/how-to-create-a-bootable-usb-flash-drive-to-install-windows-8-developer-preview.aspx"&gt;http://blogs.msdn.com/b/habibh/archive/2011/09/14/how-to-create-a-bootable-usb-flash-drive-to-install-windows-8-developer-preview.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;2. Copy Intel Rapid Storage Tech Latest Driver to a new folder inside the USB, I use the f6flpy-x64.zip for 64 bit usage. this way windows can detect your partition if you use SATA&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=21730" href="http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=21730"&gt;http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=21730&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;3. Choose and follow the instruction on screen&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;4. After you got in to the windows,Install all updates&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&amp;#160;&lt;/font&gt;&lt;font size="3"&gt;I’ve got problem with my hard drive before, it hang for 15 minutes than can run again, to solve this install Intel Rapid Storage from link above, this time choose the MSI one. after that install the SATA driver update from windows update. problem solved!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;If you complain about where is the Start Button,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;you have lots of 3rd party apps option, free/pay, that can bring it back.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;I use Pokki for now&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx&amp;amp;subject=How to do a Clean Install of Windows 8" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx&amp;amp;t=How+to+do+a+Clean+Install+of+Windows+8" target="_blank" title="Submit How to do a Clean Install of Windows 8 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx&amp;amp;title=How+to+do+a+Clean+Install+of+Windows+8" target="_blank" title="Submit How to do a Clean Install of Windows 8 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx&amp;amp;phase=2" target="_blank" title="Submit How to do a Clean Install of Windows 8 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/cipto/archive/2012/11/10/how-to-do-a-clean-install-of-windows-8.aspx&amp;amp;title=How+to+do+a+Clean+Install+of+Windows+8" target="_blank" title="Add How to do a Clean Install of Windows 8 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193633" width="1" height="1"&gt;</description></item><item><title>The Next C++ Books you have to read !</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx</link><pubDate>Thu, 08 Nov 2012 00:10:48 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193632</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;C++ dalam tahun terakhir ini mengalami perkembangan yang sangat pesat. Banyak buku-buku atau artikel yang sudah tidak valid lagi. Kita sebaiknya membaca buku-buku yang terbaru mengenai c++ sehingga tidak menggunakan ilmu yang sudah lawas dan ketinggalan jaman. Berikut adalah beberapa buku yang sebaiknya dibaca untuk memperbaharui kemampuan c++ anda atau mungkin anda baru mulai belajar c++. Find this book and read it &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;C++ Primer Plus     &lt;br /&gt;&lt;/li&gt;    &lt;p&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321776402"&gt;&lt;img title="01 - CPPRimerPlus" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="01 - CPPRimerPlus" src="http://geeks.netindonesia.net/blogs/welly_tambunan/01CPPRimerPlus_0B7474FE.png" width="191" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Buku ini merupakan pengantar yang sangat bagus untuk c++ untuk level pemula. Mudah untuk diikuti dan lengkap. Buku ini sudah mencaai edisi ke enam sehingga sudah dapat dipastikan banyak peminatnya. Buku ini sudah mencakup c++ 11. &lt;/p&gt;    &lt;li&gt;C++ in One Hour a Day     &lt;br /&gt;&lt;/li&gt;    &lt;p&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0672335670"&gt;&lt;img title="02 - OneHourADay" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="02 - OneHourADay" src="http://geeks.netindonesia.net/blogs/welly_tambunan/02OneHourADay_0B0AD2BA.png" width="192" height="244" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;Pembagian waktu belajar dari buku ini cukup baik. Banyak hal-hal praktis yang disampaikan dari buku tersebut. Buku ini ditulis oleh MVP c++ sehingga anda dapat melihat penjelasan practical dan good programming practices di dalamnya&lt;/p&gt;    &lt;li&gt;C++ Primer     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_778003C9.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_638B9295.png" width="186" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;p&gt;Telah di update untuk c++11. Membantu anda untuk mempelajari bahasa dengan cepat, menggunakannya secara modern dan cara yang efektif. Buku ini juga dipenuhi dengan best practices dan cara menggunakan core language dan standard library. &lt;/p&gt;    &lt;li&gt;C++ Succinctly - C++ for C# Developers     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.syncfusion.com/resources/techportal/ebooks/cplusplus"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_70F4364C.png" width="186" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Buku ini ditulis untuk membantu developer c# mempelajari modern c++. Sehingga developer c# tidak perlu belajar dari ground zero, tetapi memanfaatkan pengetahuannya sebelumnya sehingga dapat menguasai bahasa ini dengan cepat.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The C++ Programming Language     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/image_6C118290.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_thumb_76F8A69C.png" width="198" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Buku ini ditulis oleh pencipta c++ dan berfungsi sebagai buku referensi lengkap dan bukan tutorial mengenai fitur bahasa. Buku ini akan segera terbit dan terupdate dengan fitur c++ 11.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The C++ Standard Library     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=sr_1_5?s=books&amp;amp;ie=UTF8&amp;amp;qid=1343831407&amp;amp;sr=1-5&amp;amp;keywords=the+c%2B%2B+programming+language"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_67E45873.png" width="201" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Buku ini memberikan pemahaman yang dalam tentang setiap komponen library dan penjelasan tentang design dari library. Dilengkapi juga dengan praktik programming yang effective dan kesalahan yang sering juga best practice. Banyak sample code yang dapat anda lihat pada buku ini.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;C++ AMP     &lt;br /&gt;&lt;/li&gt;    &lt;br /&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=flazx-20&amp;amp;path=tg/detail/-/0735664730/"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_54C5BC78.png" width="201" height="244" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Buku ini sangat practical buat c++ developer dalam mempelajari dasar parallel programming dengan c++ AMP. Kita dapat memanfaatkakn kekuatan GPU dengan C++ AMP sehingga aplikasi kita dapat memiliki performance yang lebih. Buku ini memiliki contoh yang detail dan case study.     &lt;br /&gt;    &lt;br /&gt;    &lt;li&gt;Beginning Visual C++ 2012     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.amazon.com/Ivor-Hortons-Beginning-Visual-2012/dp/1118368088/ref=sr_1_2?ie=UTF8&amp;amp;qid=1352253171&amp;amp;sr=8-2&amp;amp;keywords=visual+c%2B%2B"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_66A4E0F6.png" width="193" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;Buku ini mencakup pembahasan detail menggunakan c++ pada Visual Studio yang terbaru yaitu 2012. Anda dapat menemukan penjelasan dari c++ 11, c++/CLI, c++/CX dan penggunaan debugger dan tools lain nya pada visual studio.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Programming Windows 8 Apps with Microsoft Visual C++     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.amazon.com/Programming-Windows-Apps-Microsoft-Visual/dp/0735670617/ref=pd_sim_b_4"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_78840574.png" width="199" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;p&gt;Anda dapat menggunakan skill visual c++ anda untuk membangun aplikasi modern dengan Windows 8. Buku ini akan menjelaskan secara rinci Windows Runtime dan c++/cx. Bagaimana anda dapat menggunakan native c++ pada windows store dan juga xaml untuk membuat modern ui. Buku ini akan segera terbit.&lt;/p&gt;    &lt;li&gt;Building Windows 8 Apps with Microsoft Visual C++     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.amazon.com/Build-Windows-Apps-Microsoft-Visual/dp/0735667233/ref=pd_bxgy_b_img_y"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/welly_tambunan/image_27D57AFF.png" width="197" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;Buku ini seperti biasa akan memberikan detail step by step yang dapat anda ikuti. Secara lambat tapi pasti menjelaskan konsep disertai dengan praktek yang detail. Learn by doing exercises. Buku ini akan segera terbit.      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Masih ada buku baru yg belum di daftarkan ? Let me know and i will update the list. Send me email at if05041 [at] gmail [dot] com   &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx&amp;amp;subject=The Next C++ Books you have to read !" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx&amp;amp;t=The+Next+C%2b%2b+Books+you+have+to+read+!" target="_blank" title="Submit The Next C++ Books you have to read ! to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx&amp;amp;title=The+Next+C%2b%2b+Books+you+have+to+read+!" target="_blank" title="Submit The Next C++ Books you have to read ! to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx&amp;amp;phase=2" target="_blank" title="Submit The Next C++ Books you have to read ! to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/11/08/the-next-c-books-you-have-to-read.aspx&amp;amp;title=The+Next+C%2b%2b+Books+you+have+to+read+!" target="_blank" title="Add The Next C++ Books you have to read ! to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193632" width="1" height="1"&gt;</description></item><item><title>[INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes</title><link>http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx</link><pubDate>Wed, 07 Nov 2012 07:58:56 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193631</guid><dc:creator>eriawan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is a quoted thread content F# and trends in functional programming in a discussion thread model, please follow my thread (my id on Kaskus is “&lt;strong&gt;erilive&lt;/strong&gt;”) on Kaskus! And it’s available in Bahasa Indonesia!&lt;/p&gt;  &lt;!--more--&gt;  &lt;p&gt;Hi guys,&lt;/p&gt;  &lt;p&gt;If you want to know more about F# and trends in functional programming in a discussion thread model, please follow my thread (my id on Kaskus is “&lt;strong&gt;erilive&lt;/strong&gt;”) on Kaskus! And it’s available in Bahasa Indonesia!&lt;/p&gt;  &lt;p&gt;There’s a lot of discussion happens there! And I invite you to join, and I will invite you all of those are advanced or just beginner in functional programming and F#. Some topics are very interesting but quite advanced such as type classes, but there is an easy topic about why functional programming matters.&lt;/p&gt;  &lt;p&gt;Here’s the address:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.kaskus.co.id/thread/000000000000000016890387/fpara-programmer-f-dan-functional-programming-disini-yah/" href="http://www.kaskus.co.id/thread/000000000000000016890387/fpara-programmer-f-dan-functional-programming-disini-yah/"&gt;http://www.kaskus.co.id/thread/000000000000000016890387/fpara-programmer-f-dan-functional-programming-disini-yah/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And paragraphs below are samples from the thread:&lt;/p&gt;  &lt;hr /&gt;  &lt;h2&gt;Monad sample&lt;/h2&gt;  &lt;p&gt;Quote:Original Posted By erilive on &lt;a title="http://www.kaskus.co.id/show_post/000000000000000759711105/18/" href="http://www.kaskus.co.id/show_post/000000000000000759711105/18/"&gt;http://www.kaskus.co.id/show_post/000000000000000759711105/18/&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Monad yang mana gan? Maybe monad, Identity monad, Reader monad, State monad?&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Kalau Reader monad di F#, sudah ada yang bahas:        &lt;br /&gt;&lt;a title="http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/" href="http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/"&gt;http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Dan sepertinya kalau diimplementasikan di bahasa selain F# (kecuali kalau di Haskell) sepertinya akan menjadi kurang elegan.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Monad disini bukan &amp;quot;Monad&amp;quot; di cabang matematika Category Theory.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Kalau memang banyak peminatnya, akan saya jelaskan Monad di thread ini, agan-agan :)&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Notes in English: (as translated)&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Which Monad? There are Maybe Monad, Identity Monad, state Monad.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Reader Monad sample in F# has been discussed in: &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/" href="http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/"&gt;&lt;em&gt;http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;And if it’s implemented in other language besides F# and Haskell, it’ll be less elegant.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Monad in this context is not direct equals to Monad in Category theory from Math discipline.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Quote:Original Posted By Syinn &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;silahkan aja kalo mau langsung bahas monad, saya nyimak dulu ...kalo ada yang kurang ngerti , akan saya tanyakan pada anda&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;ada baiknya bahas yang awal dulu, yakni monad state&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Dan sepertinya kalau diimplementasikan di bahasa selain F# (kecuali kalau di Haskell) sepertinya akan menjadi kurang elegan.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;btw, saya ingin tahu kenapa om bisa berkesimpulan yang saya bold di atas ? bisa anda jelaskan secara tehnik dan detail?&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;karena soal keeleganan code pemrograman kan tergantung kreatifitas programmer itu sendiri, apapun bahasa program yang dia gunakan (ini kalo menurut saya lho, om )&lt;/em&gt;       &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note in English: &lt;/p&gt;  &lt;p&gt;He (Syinn) wanted to know about why I told him it’s less elegant.&lt;/p&gt;  &lt;p&gt;And here’s my answer:&lt;/p&gt;  &lt;p&gt;This is state monad in F# and sample code to use:&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;module&lt;/font&gt; StateMonad&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; (&amp;gt;&amp;gt;=) x f =       &lt;br /&gt;&amp;#160;&amp;#160; (&lt;font color="#0000ff"&gt;fun&lt;/font&gt; s0 -&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; let a,s = x s0       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f a s)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; returnS a = (fun s -&amp;gt; a, s) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;type StateBuilder() =      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; member m.Bind(x, f) = x &amp;gt;&amp;gt;= f       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; member m.Return a = returnS a&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; state = &lt;font color="#0000ff"&gt;new&lt;/font&gt; StateBuilder()&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; getState = (fun s -&amp;gt; s, s)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; setState s = (fun _ -&amp;gt; (),s)&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;let&lt;/font&gt; Execute m s = m s |&amp;gt; fst       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now, in C#: (taken from &lt;a title="http://taumuon-jabuka.blogspot.com/2012/06/state-monad-in-c-and-f.html" href="http://taumuon-jabuka.blogspot.com/2012/06/state-monad-in-c-and-f.html"&gt;http://taumuon-jabuka.blogspot.com/2012/06/state-monad-in-c-and-f.html&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/cs_state_monad_26095695.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="cs_state_monad" border="0" alt="cs_state_monad" src="http://geeks.netindonesia.net/blogs/eriawan/cs_state_monad_thumb_0CA1535B.png" width="463" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Bind operator is implemented below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/cd_state_monad_bind_3779B76D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="cd_state_monad_bind" border="0" alt="cd_state_monad_bind" src="http://geeks.netindonesia.net/blogs/eriawan/cd_state_monad_bind_thumb_77439DF2.png" width="502" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you shall see, it’s less elegant!&lt;/p&gt;  &lt;hr /&gt;  &lt;h2&gt;Why IO Monad is “EVIL”?&lt;/h2&gt;  &lt;p&gt;Syinn asked again! But the topic is about why IO Monad is “EVIL”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/eriawan/why_iomonad_evil_7DF6A775.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="why_iomonad_evil" border="0" alt="why_iomonad_evil" src="http://geeks.netindonesia.net/blogs/eriawan/why_iomonad_evil_thumb_4B92D3F6.png" width="756" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here’s my answer: (and apologize if it’s quite long)&lt;/p&gt;  &lt;p&gt;There is a blog post that describe IO Monad is evil: &lt;a title="http://kawagner.blogspot.com/2007/02/why-monads-are-evil.html" href="http://kawagner.blogspot.com/2007/02/why-monads-are-evil.html"&gt;http://kawagner.blogspot.com/2007/02/why-monads-are-evil.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And I assume he (Syinn) quoting that blog post although he didn’t mention it.&lt;/p&gt;  &lt;p&gt;My definite answer is: IO Monad isn’t evil. According to that post, because value evaluation when designing IO Monad became imperative, and therefore it would break referential integrity. But it’s not! Because the nature of Haskell is non strict (lazy), the timing of the execution is not so important and the reference is not broken.&lt;/p&gt;  &lt;p&gt;A simple sample of this is when dealing with iterator of yield in C# (since VS 2005) and in VB.NET (since VB 11 in Visual Studio 2012).&lt;/p&gt;  &lt;p&gt;Due to the fact that I/O is side effect, then declaring I/O must be explicit and has to be marked as signature to a part of the “world” that includes garbage collection.&lt;/p&gt;  &lt;p&gt;Functional programming, especially the &amp;quot;pure&amp;quot; ones, forces us to be aware and be careful in handling side effect such as I/O, pointer, exceptions.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;More on this? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;You will have it on my part 4, 5 of functional programming series! Watch for my next blog post entry!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx&amp;amp;subject=[INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx&amp;amp;t=%5bINFO%5d+A+hot+thread+about+F%23+and+functional+programming+is+available+on+Kaskus%3a+about+Monad+and+Type+Classes" target="_blank" title="Submit [INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx&amp;amp;title=%5bINFO%5d+A+hot+thread+about+F%23+and+functional+programming+is+available+on+Kaskus%3a+about+Monad+and+Type+Classes" target="_blank" title="Submit [INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx&amp;amp;phase=2" target="_blank" title="Submit [INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/eriawan/archive/2012/11/07/info-a-hot-thread-about-f-and-functional-programming-is-available-on-kaskus-about-monad-and-type-classes.aspx&amp;amp;title=%5bINFO%5d+A+hot+thread+about+F%23+and+functional+programming+is+available+on+Kaskus%3a+about+Monad+and+Type+Classes" target="_blank" title="Add [INFO] A hot thread about F# and functional programming is available on Kaskus: about Monad and Type Classes to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193631" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/Functional+programming/default.aspx">Functional programming</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/monad/default.aspx">monad</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/type+classes/default.aspx">type classes</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/scala/default.aspx">scala</category><category domain="http://geeks.netindonesia.net/blogs/eriawan/archive/tags/haskell/default.aspx">haskell</category></item></channel></rss>