<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15701809</id><updated>2012-02-16T22:46:44.821+08:00</updated><category term='Mobile'/><category term='Journalism'/><category term='Technology'/><category term='Vegatarian'/><category term='Pickups'/><category term='CMMI Eurocenter'/><category term='Clint Eastwood'/><category term='.Net'/><category term='Sandcastle'/><category term='War'/><category term='Humour'/><category term='Secular'/><category term='Movie'/><category term='Programming'/><category term='Politics'/><category term='Outsource'/><category term='DevWork Gadgets Software'/><category term='Sinhala'/><category term='Eurocenter'/><category term='Travel'/><category term='Sri Lanka'/><category term='Society'/><category term='DevWork Database'/><category term='Nant'/><category term='Zeitgeist'/><category term='Cruise Control.Net'/><category term='Software'/><category term='Process'/><category term='DevWork'/><category term='JavaScript'/><category term='Religion'/><category term='Health'/><category term='Silverlight'/><title type='text'>Thought Net</title><subtitle type='html'>An attempt to cache interesting things I experience ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.uchithar.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default?start-index=26&amp;max-results=25'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>85</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15701809.post-3075739386177971573</id><published>2011-11-14T13:50:00.001+08:00</published><updated>2011-11-14T13:55:07.898+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Future of Web Application Development - A journey to the ‘Dart’ side.</title><content type='html'>&lt;br /&gt;&lt;div style="background-color: transparent;"&gt;&lt;a href="http://4.bp.blogspot.com/-vVVEMC2XkdA/TsCsZTBN0LI/AAAAAAAAAIw/Ke7RHGv0WK4/s1600/dart.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-vVVEMC2XkdA/TsCsZTBN0LI/AAAAAAAAAIw/Ke7RHGv0WK4/s320/dart.jpg" width="320" /&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Finally it looks like all the big players fundamentally agree on the importance of having a unified development model to cater for different distribution channels like Web, Phones, Pads etc..&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The dropping of ‘Flash’ from mobile devices by Adobe, The direction Microsoft seem to be taking with Windows 8 and the buzz around HTML 5 in th community all points in 1 direction. They all indicate that ‘Web’ could be the platform of choice for different kind of applications running on different devices like computers, phones and pads. &amp;nbsp;What this also means is that the benchmark of a web application has to rise to the level of native applications in order to maintain the same user experience a Phone or Pad user currently have with native apps. So how prepared are we in terms of achieving this goal?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;HTML5 looks like a big contender to address the initial goal of having a common development model which cuts across different consumer devices. It’s rich specification and the pragmatic approach of formulating the specification (Bottom-up approach) makes it even more promising. &amp;nbsp;Along this path, it’s only a matter of time when we meet ‘javascript’, the de-facto programming language in the web.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Javascript is renowned for its inconsistency across browsers (platforms). Coupled with its highly dynamic behaviour (thus lack of tooling) its plain to see that it will have its work cut out. However during the past few years javascript community has risen up to the challenge collectively by inventing amazing techniques, libraries, practices and great literature to build confidence among loyalists as well as some critics. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;However Google intends to intensify the pressure on Javascript, by introducing ‘Dart’ a new programming language, whose primary objective is to make web developers create applications with the same quality as native apps but without the huge costs currently associated with such an effort. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Google is in a unique position to do something of this nature, due to its capability to reach many consumer points via its chrome browser (PC) and Android platform (Mobile). This distinct advantage will be a great platform from both a technical and marketing point of view. (Story could have been different if Windows Phone was a success)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The biggest challenge will always be how Google manages to convince other &amp;nbsp;browser vendors to support Dart. The bottom up approach is to use Chrome -Android to create large enough community of web apps &amp;amp; developers based on dart which would eventually convince browser vendors to start supporting it. The other way is to ‘sweet talk’ vendors to start supporting it straight away and see how the community embrace it. The current approach however is to compile Dart to javascript. Here again Google is at an advantage due to its previous experience with GWT.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;From a more technical point of view, Dart interested me due to following;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1. Better tooling than Javascript&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;2. Interesting principals like optional types and isolates.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3. A simplified DOM&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;It will definitely be useful for a web developer to get their hands dirty with Dart soon. Following are some of the best resources I found.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Dart Official Web Page - &lt;/span&gt;&lt;a href="http://www.dartlang.org/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.dartlang.org/&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (Check out the Tech Spec)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Dart Online IDE - &lt;/span&gt;&lt;a href="http://try.dartlang.org/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://try.dartlang.org/&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Dart Eclipse based Editor - &lt;/span&gt;&lt;a href="http://www.dartexperience.com/en/2011/11/03/dart-editor-windows/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.dartexperience.com/en/2011/11/03/dart-editor-windows/&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Dart Interview - &lt;/span&gt;&lt;a href="http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Gilad-Bracha-Dart-Newspeak-and-More"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Gilad-Bracha-Dart-Newspeak-and-More&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Brendan Eich on Javascript Future (And Dart)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Brendan-Eich-JavaScript-Today-and-Tomorrow"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Brendan-Eich-JavaScript-Today-and-Tomorrow&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3075739386177971573?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3075739386177971573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3075739386177971573' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3075739386177971573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3075739386177971573'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/11/future-of-web-application-development.html' title='Future of Web Application Development - A journey to the ‘Dart’ side.'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-vVVEMC2XkdA/TsCsZTBN0LI/AAAAAAAAAIw/Ke7RHGv0WK4/s72-c/dart.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-1955023565014662796</id><published>2011-06-29T00:54:00.003+08:00</published><updated>2011-06-29T01:38:45.197+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Rediscovering JavaScript</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://yuiblog.com/assets/crockford-cover.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://yuiblog.com/assets/crockford-cover.png" width="155" /&gt;&lt;/a&gt;&lt;/div&gt;I've recently grown an interest on javascript. Having working on a project which uses javascript a fair bit I daily hear my co-developers bitching about it. This is the second time I'm doing javascript after 4-5 years and what I've&amp;nbsp;realized&amp;nbsp;is that the attitude towards javascript by many developers hasn't changed much. But during these 5 years or so a lot of innovation has been happening around javascript.&lt;br /&gt;&lt;br /&gt;One milestone of this elevation of javascript as a language is, Douglas Crockford discovering&lt;a href="http://www.youtube.com/watch?v=hQVTIJBZook"&gt;&amp;nbsp;'Good Parts' &lt;/a&gt;of Java Script, which elevated javascript status as a noteworthy language. Around the same time the development world started&amp;nbsp;recognizing&amp;nbsp;a new programming paradigm around dynamic languages and javascript also fit right in. Javascript is a truly dynamic language and its prototype based nature allows it to do some wonderful and wild things.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;This realization of JavaScript powers has made javascript to become the target compilation language for several other mainstream languages. This is quite an interesting idea which on the surface protect developers from inherit pitfalls and inefficiens of developing with javascript.&amp;nbsp;&lt;a href="http://code.google.com/p/v8/"&gt;GWT &lt;/a&gt;which compiles from Java,&lt;a href="http://projects.nikhilk.net/ScriptSharp"&gt; Script #&lt;/a&gt; which 'tries' to compile from C# are two such attempts.&amp;nbsp;GWT is quite mature and been used in main stream applications by Google.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;Google built a great browser, Chrome which relies heavily on a&lt;a href="http://code.google.com/p/v8/"&gt; fresh javascript engine (V8)&lt;/a&gt;&amp;nbsp;developed in-house to run web sites faster. This has stepped up the benchmark for javascript performance on the web and inspired others to innovate on both javascript engines as well as insanely live and active web applications. The debugging support in modern browsers like Chrome, Firefox and IE9 has helped a lot in this&amp;nbsp;endeavor.&lt;br /&gt;The interesting aspect of V8 is that it can be used independent of the browser inside other contexts as a javascript engine.&lt;br /&gt;&lt;br /&gt;V8 and it's capability to live outside the browser has helped a great deal in the development of &lt;a href="http://nodejs.org/"&gt;Node.js&lt;/a&gt;, a collection of libraries and a javascript runtime on top of V8. It's a radical way of server side development with javascript which utilizes the callback event model of javascript to write highly efficient server side code. &amp;nbsp;Currently the Node.js libraries are focused on Network and Filesystem. There's a lot of interest around Node.js and Microsoft is actively &lt;a href="http://www.zdnet.com/blog/microsoft/microsoft-to-work-with-joyent-to-port-nodejs-to-windows-azure/9802"&gt;working with Joyent Software&lt;/a&gt; to release Node.js for Microsoft-Azure platform.&lt;br /&gt;&lt;br /&gt;So looking at all these innovations and potential around javascript it's time we developers take it seriously and give it the respect that it deserves. A good way to go about this is to (re)learn it and I strongly suggest the &lt;a href="http://yuiblog.com/crockford/"&gt;work of David Crockford&lt;/a&gt;. Here's a &lt;a href="http://howtonode.org/"&gt;good resource&lt;/a&gt; for Node.js.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1955023565014662796?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1955023565014662796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1955023565014662796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1955023565014662796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1955023565014662796'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/06/rediscovering-javascript.html' title='Rediscovering JavaScript'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3801580875614462085</id><published>2011-05-31T21:15:00.000+08:00</published><updated>2011-05-31T21:15:06.313+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Pickups - May</title><content type='html'>The best video I've seen on how Software (Big Software) is made. The chief release engineer (There's only 3 of them btw) of facebook talks about how they achieve releases of facebook to billions of users every single day.&lt;br /&gt;&lt;br /&gt;&lt;object height="224" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="movie" value="http://www.facebook.com/v/10100259101684977" /&gt;&lt;embed src="http://www.facebook.com/v/10100259101684977" type="application/x-shockwave-flash" allowfullscreen="true" width="400" height="224"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3801580875614462085?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3801580875614462085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3801580875614462085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3801580875614462085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3801580875614462085'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/05/pickups-may.html' title='Pickups - May'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3643369542654624677</id><published>2011-05-22T21:14:00.005+08:00</published><updated>2011-05-22T21:44:57.744+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Religion'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><category scheme='http://www.blogger.com/atom/ns#' term='Secular'/><title type='text'>Secular SriLanka</title><content type='html'>&lt;a href="http://www.secularsrilanka.com/_/rsrc/1272783240165/config/customLogo.gif?revision=2" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 362px; height: 95px;" src="http://www.secularsrilanka.com/_/rsrc/1272783240165/config/customLogo.gif?revision=2" border="0" alt="" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" &gt;Living outside Sri Lanka for over an year now, I'm beginning to appreciate aspects of  secular governance in a country.  'Secular Sri Lanka' is a movement (mainly online driven) which attempts to drive the importance of 'Separating the constitution of Sri Lankan state (i.e governance) from religion'. It started quite recently and so far I've read some good articles by its activists.  There are many many writings in the web for secularism related work internationally, although recently the focus seem to be more on atheism. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Secularism is an important step in the progress of a nation as can be seen the world around. Starting from European nations like Scandinavian based countries to Asian countries like China and even India have achieved different levels of secularism in their states. On the other hand countries like the USA has diverted from its secular roots and moved more towards a Christian nation thus locking horns with other extreme Muslim nations. This discussion is specially relevant in Sri Lanka with the revamped march towards a religious state in recent times. Also there are several articles in Sinhalese which is a positive in itself.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Secularism enhances objective decision making at a state level and encourages every citizen in the country to work together regardless of their individual beliefs. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;I'd like to point to some interesting articles I read recently from 'Secular Sri Lanka'  facebook group for interested readers.&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; font-weight: bold; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;1. &lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; font-weight: bold; "&gt;&lt;a href="https://www.facebook.com/home.php?sk=group_57648307532&amp;amp;view=doc&amp;amp;id=10150246571452533"&gt;සෙකියුලැරිසම් (secularism) කියන්නෙ මොකක්ද?&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;2. &lt;a href="https://www.facebook.com/home.php?sk=group_57648307532&amp;amp;view=doc&amp;amp;id=10150251875597533"&gt;Is Buddhism a Religion&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3&lt;a href="https://www.facebook.com/home.php?sk=group_57648307532&amp;amp;view=doc&amp;amp;id=10150240077217533"&gt;. &lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 16px; "&gt;සුරාව, සූදුව, වෛශ්‍යා වෘත්තිය සහ ආගම&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt; The links to the website,  blog and the facebook group of Secular Sri Lanka can be found &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;a href="http://www.secularsrilanka.com/"&gt;here&lt;/a&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;a href="http://blog.secularsrilanka.com/"&gt;here &lt;/a&gt;and &lt;a href="https://www.facebook.com/home.php?sk=group_57648307532"&gt;here&lt;/a&gt; .&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3643369542654624677?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3643369542654624677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3643369542654624677' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3643369542654624677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3643369542654624677'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/05/secular-srilanka.html' title='Secular SriLanka'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-6148599163306313259</id><published>2011-03-24T23:28:00.002+08:00</published><updated>2011-06-12T08:15:39.812+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Auto Mapper</title><content type='html'>&lt;span class="Apple-style-span"&gt;One of the most repeaterseted tasks of programming against a 3-tier design is the need to convert objects at each layer.&lt;br /&gt;&lt;br /&gt;Persistence Layer → Business Logic Layer → Presentation Layer&lt;br /&gt;Entities → Domain Objects → (Model - View Model)&lt;br /&gt;&lt;br /&gt;In a typical Microsoft technologies based design techniques the Entities → Domain Objects transformation can be automated by an ORM technique like NHibernate.&lt;br /&gt;&lt;br /&gt;This leaves us with the tedious manual conversion of Domain Objects to View Models. While the Domain Object design is driven by how we envision the business domain, the view models are generally govern by the User Interface. Pretty much all the time there’s a gap between the two class structures. This is where a tool like &lt;a href="http://automapper.codeplex.com/"&gt;AutoMapper&lt;/a&gt; comes in handy.&lt;br /&gt;&lt;br /&gt;With AutoMapper you can pre-create maps (mappings properties of destination class to source class) between two classes and then when a conversion is needed just pass the source object and the mapping to the AuroMapper to receive the resultant object. This technique has couple of advantages.&lt;br /&gt;1. All the transformation logic is central. Maintenance of the transformation with time (when domain objects evolve) is easy and error free since you know you have to change it in only 1 place.&lt;br /&gt;2. The transformation code it self is terse as AutoMapper abstracts most conversions.&lt;br /&gt;&lt;br /&gt;Examples - Creating Maps:&lt;br /&gt;1. Destination is a flat object with matching property names.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Mapper.CreateMap&amp;lt;SourceObject, DestObject&amp;gt;(); &lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;2. Same kind of transformation but for a list of items&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Mapper.CreateMap&amp;lt;List&amp;lt;SourceObject&amp;gt;, List&amp;lt;DestObject&amp;gt;&amp;gt;();&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;3. Destination object structure is not totally aligned with the source&lt;br /&gt;Source&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Class Student {&lt;br /&gt;string FirstName;&lt;br /&gt;string LastName;&lt;br /&gt;DateTime BirthDate;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;Destination&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Class StudentModel {&lt;br /&gt;string FullName;&lt;br /&gt;string BirthYear;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Mapping&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Mapper.CreateMap&amp;lt;&amp;gt;()&lt;br /&gt;.ForMember(dest=&amp;gt; dest.FullName, opt =&amp;gt; opt.MapFrom(src=&amp;gt; src.FirstName + src.LastName))&lt;br /&gt;.ForMember(dest=&amp;gt; dest.BirthYear, opt=&amp;gt; opt.MapFrom(src=&amp;gt; src.BirthDate.Year)&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;4. Polymorphic Mapping.&lt;br /&gt;Sources&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Class ParentSource {&lt;br /&gt;string parentValue;&lt;br /&gt;}&lt;br /&gt;Class ChildSource {&lt;br /&gt;string childValue;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Destinations&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Class ParentDest {&lt;br /&gt;string parentDest;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Class ChildDest {&lt;br /&gt;string childDest;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Creating the map (IncludeMap clause)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Mapper.CreateMap&amp;lt;ParentSource, ParentChild&amp;gt;().Include&amp;lt;ChildSource, ChildDest&amp;gt;();&lt;br /&gt;Mapper.CreateMap&amp;lt;ChildSource,ChildDest&amp;gt;();&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;It's also important to be sure that your mappings do not break over time. One way to keep firm track of them is to have a unit test verifying all your mappings. This can be done using the &lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;public void AutoMapperTest()&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;      AutoMapperConfiguration.Configure();&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;      Mapper.AssertConfigurationIsValid();&lt;/span&gt;&lt;/pre&gt;&lt;pre class="”brush:"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6148599163306313259?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6148599163306313259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6148599163306313259' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6148599163306313259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6148599163306313259'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/03/auto-mapper_24.html' title='Auto Mapper'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-8664073088567865559</id><published>2011-03-01T20:51:00.001+08:00</published><updated>2011-03-01T20:53:09.284+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>DNN moves to C#</title><content type='html'>&lt;div&gt;This is great news for all DNN enthusiasts. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read the full story at &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.dotnetnuke.com/Resources/Blogs/tabid/825/EntryId/2978/DotNetNuke-Embraces-C.aspx"&gt;http://www.dotnetnuke.com/Resources/Blogs/tabid/825/EntryId/2978/DotNetNuke-Embraces-C.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-8664073088567865559?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/8664073088567865559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=8664073088567865559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8664073088567865559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8664073088567865559'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/03/dnn-moves-to-c.html' title='DNN moves to C#'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-5758864082519012439</id><published>2011-02-23T22:00:00.003+08:00</published><updated>2011-02-23T22:07:08.641+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Forecast : 'Cloudy'</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-DIWlAhjrrR0/TWUUTzoKXeI/AAAAAAAAAH8/Hbb6Rq9wKFc/s1600/question-cloud.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 202px; height: 320px;" src="http://1.bp.blogspot.com/-DIWlAhjrrR0/TWUUTzoKXeI/AAAAAAAAAH8/Hbb6Rq9wKFc/s320/question-cloud.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5576886044076957154" /&gt;&lt;/a&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Cloud computing is gaining a lot of hype these days. Beside the hype, lately there were some real world success stories of large scale cloud implementations as well. One instance is when the catastrophic floods hit Queensland, the state government together with couple of private IT organizations was able to put up a relief management web site (based on Windows Azure) within 4 days to cater millions of relief requests. This capability to scale up and down quickly is one of the nicest features I see on Cloud. Another success story is from a company which handles sporting event ticket sales. This is again an excellent domain for flexible up-scaling where ticket sales will be very high the day tickets are issued. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;But as usual with any new technology the reservations are still there. This is the time when the tech-heads needs to justify to their managers the potential and benefits of the Cloud. Listed below are some common questions that can be asked by your manager.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;1. Are we loosing control?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;It will freak many CTOs to understand that the data centre of their whole system is someone else's responsibility.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;- Lack of control over Availability&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;This is a myth. Your chances of scaling up to increase availability in extremely agile fashion is infact one essential feature of the Cloud. What this means to the business is that your costs could be more operational (rather than one-off), just like utilities-Electricity. So availability and the cost of availlability is one of the last things the CTO should be concerned about. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;- Hard(er) Disaster Recovery&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Since the cloud is essentially geographically distributed it will stand a better chance of being up and running in the wake of a disaster. Also the vendors running cloud infrastructure are much more experienced in running data centres than most of the companies who are running their own data centre. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;It would be interesting to study the SLAs of cloud vendors in light of availability and disaster recovery. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;2. How secure is our data?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;Many institutes do not like their data to be out of their walls. Many government institutes and financial institutes are popular examples. There are couple of answers to this. One answer is private clouds where you control the cloud. The other more desirable option is to understand that your applications comprises of both data (both sensitive and insensitive-public) and application logic. It is very much possible to distribute the application such that most computation and public data resides in cloud while the sensitive data still continue to reside inhouse. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;3. Can we be sued?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;The advances in IT continue to outpace the law and regulations. This result is a situation where most of the regulations around IT/Systems are severely outdated. Most of the time we are uncertain to say the least. Again most of the regulatory anyway focuses on data less than computational power. Thus a hybrid cloud approach has a higher potential for success in this context.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;At this moment it would be wise to discuss with your legal specialists for specific pit-falls. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; background-color: transparent; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; "&gt;It will be very interesting to see how much of the hype surrounding the Cloud would turn out to be real. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-5758864082519012439?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/5758864082519012439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=5758864082519012439' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5758864082519012439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5758864082519012439'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2011/02/future-seems-cloudy.html' title='Forecast : &apos;Cloudy&apos;'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-DIWlAhjrrR0/TWUUTzoKXeI/AAAAAAAAAH8/Hbb6Rq9wKFc/s72-c/question-cloud.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-8314680199149868768</id><published>2010-12-10T22:54:00.003+08:00</published><updated>2010-12-11T05:51:20.835+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Pickups - December</title><content type='html'>1. Why work doesn't happen at work&lt;div&gt;Although not in full agreement with his argument, it's worth trying at least as an experiment. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="bgColor" value="#ffffff"&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/JasonFried_2010X-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JasonFried-2010X.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=1014&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=jason_fried_why_work_doesn_t_happen_at_work;year=2010;theme=not_business_as_usual;theme=new_on_ted_com;theme=a_taste_of_tedx;event=TEDxMidwest;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/JasonFried_2010X-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JasonFried-2010X.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=1014&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=jason_fried_why_work_doesn_t_happen_at_work;year=2010;theme=not_business_as_usual;theme=new_on_ted_com;theme=a_taste_of_tedx;event=TEDxMidwest;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;2. Is Java on a death march?&lt;br /&gt;There are some worrying signs on the long term futuee of Java language. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;https://blogs.apache.org/foundation/entry/the_asf_resigns_from_the&lt;br /&gt;&lt;br /&gt;3. DotNetRocks&lt;br /&gt;Downloaded discussions from DotNetRocks is a great way to keep up to date in everchanging .Net area. Specially recommended if you drive to work everyday,&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dotnetrocks.com/"&gt;http://dotnetrocks.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-8314680199149868768?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/8314680199149868768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=8314680199149868768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8314680199149868768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8314680199149868768'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/12/pickups-december.html' title='Pickups - December'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-6278553817552167075</id><published>2010-11-21T23:02:00.004+08:00</published><updated>2010-11-21T23:07:02.929+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Humour'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Microsoft Licensing Models</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_d5tbeClDyKg/TOk0wrj8W1I/AAAAAAAAAHk/Y4GM3vM3LD4/s1600/download.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 600px; height: 415px;" src="http://2.bp.blogspot.com/_d5tbeClDyKg/TOk0wrj8W1I/AAAAAAAAAHk/Y4GM3vM3LD4/s400/download.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5542018827387951954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_d5tbeClDyKg/TOk0pHRiCxI/AAAAAAAAAHc/Lolcmp5WSEo/s1600/download.gif"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6278553817552167075?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6278553817552167075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6278553817552167075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6278553817552167075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6278553817552167075'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/11/microsoft-licensing-models.html' title='Microsoft Licensing Models'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_d5tbeClDyKg/TOk0wrj8W1I/AAAAAAAAAHk/Y4GM3vM3LD4/s72-c/download.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-2830868798134092375</id><published>2010-11-15T23:09:00.004+08:00</published><updated>2010-11-15T23:51:11.722+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outsource'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Eurocenter'/><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>The Usual Suspects</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_d5tbeClDyKg/TOFVKnUW6lI/AAAAAAAAAHU/aJV0KX1Zu78/s1600/the_usual_suspects.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_d5tbeClDyKg/TOFVKnUW6lI/AAAAAAAAAHU/aJV0KX1Zu78/s320/the_usual_suspects.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5539802657483844178" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I'm back again working for a Software Services Organization. This one is maintaining a mission critical, complex application for a mining giant in Western Australia. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It's quite astonishing to see that the same problems we solved (or tried to solve) as a&lt;a href="http://www.eurocenterddc.com/"&gt; small Sri Lankan outsource based software services company&lt;/a&gt; is being solved each day over here as well. The dynamics are pretty funny sometimes. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The architecture of the application itself is a problem of its own. The product is based on a heavy Oracle based back-end which handles almost 80% of business logic. In addition it handles a lot of other integrations with 3rd party systems. Meaning instead of classes with 1000 lines you get stored procedures of 10000 lines. The front end is migrated from ASP.Net Web Forms to MVC few months back and shows signs of a mixed back here and there.  The development team is around 15 people and true to its heavy Oracle back-end it has 10 Oracle developers and 4 .Net developers. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;In additions there's a big team of BAs, Testers, Architects and Managers trying to create work for the rest of the team and vice versa.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The development process is more close to Agile than it is to RUP. But it's very loose agile and kind of sloppy as well.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;All the usual suspects are seen everyday, and I can't help getting nostalgic a little bit. Here are few common problems we face. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1. Heated discussions about the development process getting heavier each day. (Jim says that he  needs 30 minutes to fix a bug and 1 hour to fill the bug report details)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. Incomplete and inconsistent specs (I didn't document that requirement 'cos it's so obvious)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3. Plethora of support environments (We need 3 more virtual machines next week for the 3 enhancement testing)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4. Lot of context switching (Mike, I need you to stop RS334 and work on TS122 for 2 days, then start on RS335)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5. Deployments take time and they are done each week (Chris, let's start the deployment today so that we could finish the release tomorrow)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6. No graphic designers =&gt; Developers cramming away with CSS/HTML. (Why do we need graphic designers anyway? asked one Oracle Developer)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; "&gt;7. And finally... the silver bullet - Re-Architecting the product (Our 3 architects are working on an improved architecture which will solve all the problems in the product, said the PM with a big grin)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;On the other hand there are some very useful things done in the project as well. The use of '&lt;a href="http://hginit.com/"&gt;Mercurial&lt;/a&gt;' as the source control (Distributed Version Control) is interesting. So far I preferred its flexibility to that of SVN.  Also the non-use of ready made user controls and sticking to good ol' HTML is very interesting. This had actually provided the product with a great performance gain, which was essential. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As a new comer to the project, I have lots of opinions about the way things are done and may be how they should be done. But it's not only legacy code which is hard to change, legacy practices are the same. My strategy is to take things slowly, chances are there's a good reason for doing the things like they are. I just have to find that reason and change it...or may be not :).  &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2830868798134092375?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2830868798134092375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2830868798134092375' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2830868798134092375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2830868798134092375'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/11/usual-suspects.html' title='The Usual Suspects'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_d5tbeClDyKg/TOFVKnUW6lI/AAAAAAAAAHU/aJV0KX1Zu78/s72-c/the_usual_suspects.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-5668203093120347188</id><published>2010-07-25T23:32:00.004+08:00</published><updated>2010-07-25T23:49:34.474+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><title type='text'>Pickups - July</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.When Ideas have Sex&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Good one on how important 'exchange' has been to human evolution and progress. Exchange of 'ideas' is even more important than exchange of 'goods'.  The human history is telling us how societies who were closed to exchanges have not progressed and some times even recessed. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="bgColor" value="#ffffff"&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/MattRidley_2010G-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/MattRidley-2010G.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=915&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=matt_ridley_when_ideas_have_sex;year=2010;theme=what_makes_us_happy;theme=a_taste_of_tedglobal_2010;theme=the_rise_of_collaboration;theme=tales_of_invention;theme=technology_history_and_destiny;theme=a_greener_future;theme=the_power_of_cities;theme=bold_predictions_stern_warnings;event=TEDGlobal+2010;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/MattRidley_2010G-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/MattRidley-2010G.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=915&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=matt_ridley_when_ideas_have_sex;year=2010;theme=what_makes_us_happy;theme=a_taste_of_tedglobal_2010;theme=the_rise_of_collaboration;theme=tales_of_invention;theme=technology_history_and_destiny;theme=a_greener_future;theme=the_power_of_cities;theme=bold_predictions_stern_warnings;event=TEDGlobal+2010;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. MURALI &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Murali is the greatest cricketer Sri Lanka has produced. I had my doubts few times over his career, but now that it's over it has sunk in. He's the BEST. I'm putting down some articles I've found off him over the last week. So long MURALI...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img src="http://www.cricinfo.com/db/PICTURES/CMS/119600/119658.2.jpg" alt="Muttiah Muralitharan is carried off the field by Kumar Sangakkara and Dammika Prasad, Sri Lanka v India, 1st Test, Galle, 5th day, July 22, 2010" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Warne Vs Murali - &lt;/span&gt;&lt;a href="http://www.cricinfo.com/page2/content/story/468228.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://www.cricinfo.com/page2/content/story/468228.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Reinvention of Spin - &lt;/span&gt;&lt;a href="http://www.bbc.co.uk/news/world-south-asia-10708478"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://www.bbc.co.uk/news/world-south-asia-10708478&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Charlie Austin of Cricinfo - &lt;/span&gt;&lt;a href="http://www.cricinfo.com/magazine/content/story/468412.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://www.cricinfo.com/magazine/content/story/468412.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-5668203093120347188?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/5668203093120347188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=5668203093120347188' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5668203093120347188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5668203093120347188'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/07/pickups-july.html' title='Pickups - July'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3794997641574415286</id><published>2010-07-05T23:14:00.003+08:00</published><updated>2010-07-05T23:36:24.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vegatarian'/><category scheme='http://www.blogger.com/atom/ns#' term='Society'/><title type='text'>Way we eat</title><content type='html'>&lt;div&gt;&lt;img src="http://docs.google.com/File?id=dgwzh5hw_126fcfttbdt_b" style="height:250px;width:500px" /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Photo from &lt;/span&gt;&lt;a href="http://www.animalsaustralia.org/" id="bz.6" title="Animals Australia"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Animals Australia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A vast majority of Animal Rights Activists fight against typical attrocities towards animals like Using animals for research, Using animal fur for clothing, Using animals in circus etc... But the reality is that all of these measure very little when compared to the enormous amount of Animals killed for human consumption as meat/fish/eggs etc... The matters become far worst and horrifying when you find out how these animals are breed &amp;amp; raised in factory farms which provides an overwhelming majority of animal food for the world. All these done for the sake of creating efficiencies and making the cost of meat lower and lower. &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The famous Australian professor &lt;/span&gt;&lt;a href="http://www.princeton.edu/~psinger/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Peter Singer&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; and his American friend from a traditional farmer family Jim Mason has authored an amazing book '&lt;/span&gt;&lt;a href="http://www.amazon.com/Way-We-Eat-Choices-Matter/dp/157954889X" id="aq_g" title="The Way We Eat - Why our food choices matter"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The Way We Eat - Why our food choices matter&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;" on the same subject. Importantly they put down some practical steps you can take to make a change. This is specially applicable if you live in the developed world which is the culprit for this inhumane and unsustainable act of cruelty to our fellow earth beings fir te&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I will just put down some numbers I found while reading the book. I was astonished while reading the book and continue to be so while referring some other materials. I suggest you read it as well. &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;1. Amount of meat the world eat&lt;br /&gt;The developed world has increased its meat consumption by a few folds during the past 50 years.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;40 Million - Maximum number of birds and mammals killed for research each year within USA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2 Days - Number of days it takes for America's slaughterhouses to kill 40 million animals (See how trivial the impact of research compared to factory farming of animals when it comes to killings)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;10 Billion - Total number of birds and mammals killed only in USA each year for human consumption&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. Cheap food and the hidden costs.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The industry has innovative techniques of producing cheap animal products to feed more meat to more people. But the hidden costs are beared by the innocent animals, environment and workers. &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;99% - Percentage of factory farmed chicken out of total sold chicken in USA&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A4 Sheet - Total living area of a market sized chicken &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;120 - Number of chicken processed (killed) per minute in a typical process line (How can they handle them with care with such speeds)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;22 - Number of chickens that is scalded alive per minute in a typical chicken process line&lt;br /&gt;90,000 - Number of chicken a slaughter have to kill each shift in a typical chicken factory farm&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3. Is seafood any better&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;One natural step out of meat is to go for fish. But fish is not far behind when it comes to inhumane treatments. &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;27 million Tons  - Weight of by-catch (Sea creatures caught unintentionally while catching other fish) trashed  each year&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;0.5 million - Number of Norwegian farmed salmon escaping each year from&lt;br /&gt;14:1 - By-catch proportion of shrimp farming in Thailand&lt;br /&gt;&lt;br /&gt;Although not so obivious our food choices are as ethical a problem as other choices like marraige, work, sex life, stealing etc... When choosing food it's not just ones personal health that matters, we have to think how it impacts on other beings as well. And most of the time that external impact is quite severe.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;For people who can not find time to read a book, have a look at &lt;/span&gt;&lt;a href="http://www.dailymotion.com/video/x2plbf_meet-your-meat_animals" id="w-of" title="this video clip"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;this video clip&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (pretty old one) narrated by Sir Alec Baldwin. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3794997641574415286?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3794997641574415286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3794997641574415286' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3794997641574415286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3794997641574415286'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/07/way-we-eat.html' title='Way we eat'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-983861761734769111</id><published>2010-03-31T00:31:00.003+08:00</published><updated>2010-03-31T00:57:57.784+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Society'/><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>Story of Stuff</title><content type='html'>I've come across Story of Stuff again. This time I'm gonna make sure that more people are going to watch it. If you haven't seen it, this is a 20 minutes of fun filled video with a very important message. I'm positive that you won't regret this 20 minutes.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9GorqroigqM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/9GorqroigqM&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.storyofstuff.com/"&gt;http://www.storyofstuff.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a similar style video on carbon emission reduction plans. This method of 'CAP and TRADE' is apparently supported by Obama as well. &lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pA6FSy6EKrM&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pA6FSy6EKrM&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-983861761734769111?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/983861761734769111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=983861761734769111' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/983861761734769111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/983861761734769111'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/03/story-of-stuff.html' title='Story of Stuff'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-2669659451368646783</id><published>2010-03-24T15:21:00.004+08:00</published><updated>2010-03-24T15:36:34.589+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>HTML Editors in DNN Modules</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;You might need to include a HTML editor in a particular module as a mean of providing a good content editing experience to the users. There are many very good commercial options including &lt;/span&gt;&lt;/span&gt;&lt;a href="http://cutesoft.net/Products/DotNetNuke/default.aspx" id="ol_2" title="CuteSoft"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;CuteSoft&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.  I needed a free option and the most straight forward thing I could find is to use the DNN default text editor it self. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;DNN 5 by default uses the FCKEditor. However it is integrated under a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.dotnetnuke.com/Development/ReleaseManagement/Roadmap/RichTextEditor/tabid/632/Default.aspx" id="kad6" title="flexible provider model"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;flexible provider model&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; which allows developers to plug in different HTMLEditors (even commercial ones) without changing the core modules.  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;So things looked pretty straight forward and I just had to use &amp;lt;dnn:texteditor&amp;gt; markup (A control which was introduced with the above provider model enhancement) within my module (ascx file) to include the HTMLEditor control. And here lies the problem. The &amp;lt;dnn:texteditor&amp;gt; markup actually boils down to a control named 'TextEditControl' and the steps to include this is no different to general ASP.Net way, which is using Register Directives on top of the page/control;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;1. Reference the relevant assembly (&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;%@&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Register TagPrefix&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;="ControlVendor"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;="AseemblyName"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; %&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&amp;gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;2. Add a reference to the control  (&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;%@&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Register TagPrefix&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;="TextEditor"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; TagName&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;="header"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Src&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;="Controls/ControlName.ascx"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; %&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;(There's a better way proposed by Scott Gu &lt;/span&gt;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/11/26/tip-trick-how-to-register-user-controls-and-custom-controls-in-web-config.aspx" id="b_c3" title="here"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Now the problem with TextEditControl is that the same control (name) can be found in 2 DNN assemblies. Worst part is these 2 are different as well. I think one of them is a residue from previous DNN versions or may be they actually have real purpose. But why the hell can't they name the controls differently?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Verdana;font-size:13px;"&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The proper one to use in this instance is the TextEditControl from&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Do&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;tNetNuke.UI.UserControls&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;'.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; So make sure you refer to that assembly in your module (ascx file).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;So it was hard toiling for a few hours before I caught this and it once again emphasized the real need of good documentation for DNN.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Some more tips on TextEditControl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;1. &lt;/span&gt;&lt;/span&gt;&lt;a href="http://netindonesia.net/blogs/agung/archive/2008/01/02/creating-dnn-text-editor-programatically.aspx" id="owo6" title="How to create it programmatically" style="color: rgb(85, 26, 139); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;How to create it programmatically&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;2. &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.mitchelsellers.com/blogs/articletype/articleview/articleid/202.aspx" id="ebpn" title="DNN Text Editor issue on Module Settings Page" style="color: rgb(85, 26, 139); "&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;DNN Text Editor issue on Module Settings Page&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2669659451368646783?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2669659451368646783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2669659451368646783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2669659451368646783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2669659451368646783'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/03/some-dnn-tips.html' title='HTML Editors in DNN Modules'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-7956338908486632152</id><published>2010-03-13T10:51:00.006+08:00</published><updated>2010-03-24T15:35:51.965+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Page vs Front Controller</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;MVC has been a tried and tested method of structuring your applications for a long time. Generally MVC mainly focuses on seperating model and view and less attention on the controller. Specially in rich client applications the view and the controller tends to lie close together. But in web applications this seperation is more critical since the view is essentially happening at client side (browser) while the most of the controller sits in the server side.&lt;br /&gt;There are 2 basic ways of structuring the 'C' of the MVC, i.e Controller. The 2 basic methods are the Page Controller method and the Front Controller method.&lt;br /&gt;&lt;br /&gt;The Page Controller is the more simple and straight forward way. Every request to the server is directed to a page (controller) of its own.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="xu8l" style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="ckya" style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://docs.google.com/File?id=dgwzh5hw_112dh68dbfw_b" style="height: 171px; width: 320px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Under the Front Controller all requests will reach a single controller and it will dispatch the task to appropriate command class.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="rj_a" style="text-align: left;"&gt;&lt;div id="dbo3" style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://docs.google.com/File?id=dgwzh5hw_113gq9n3qf5_b" style="height: 209px; width: 450px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Let us analyze the 2 methods with respect to several aspects.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;table id="juzg" border="1" cellpadding="3" cellspacing="0" width="100%"  style="color:#000000;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Criteria&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Page Controller&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Front Controller&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Complexity / Ease of Implementation&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Low complexity. Suits simpler web applications. Most of the time the commercial web application frameworks have built-in support.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Complexity is high compared to page controller. The single controller it self can be complex. However many CMS frameworks have this built in. (Eg: DNN)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Code Duplication / Code quality&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Duplication can be high as the application grows. Has to implement a BaseController from which all page controllers extend.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Low code duplication. All common tasks can be put inside the front controller&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Testability&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Can be low. Has to go for a 2 part controller where one is HTTP dependant and the other is independant and testable.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The front controller will only handle transfer of the request to independant commands which could be testable. Has to be careful&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Adaptability/Flexibility&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;When the pages of the web application is very different from each other, the code duplication can be higher. If you try to counter this with seperate inheritance tree, it can grow complex soon.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Since the front controller is centralized it's highly configurable. That's why many CMS frameworks use front controller to increase flexibility.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Performance&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;No extra bottleneck if plain page controller is used. However if a deep inheritance hierarchy is used performance can be a bit lower than normal.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The single front controller can end up being a bottleneck since it answers to all requests. Should avoid doing I/O or DB calls in the front controller as much as possible.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Thread Safety&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The same page controller instance might handle (Depending on the web application framework, eg: ASP.Net) requests for the same page and thread-safety has to be considered. Use of static instances might be problematic.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Front controller can instantiate new command objects for each request and ensure thread safety at controller level. However model code still has to be thread safe.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Work distriubution and responsibility&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Easier to distribute the work among developers since each area of work can be done completely seperately&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="33.333333333333336%"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Each developer has to have a good understanding of the Front Controller behaviour as everything depends on it.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-7956338908486632152?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/7956338908486632152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=7956338908486632152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7956338908486632152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7956338908486632152'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/03/page-vs-front-controller.html' title='Page vs Front Controller'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-2533028872107599806</id><published>2010-02-25T15:29:00.004+08:00</published><updated>2010-03-13T10:54:47.169+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>ASP.Net 4.0</title><content type='html'>&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:85%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style=";font-size:85%;" &gt;&lt;img id="a5:z" src="http://docs.google.com/File?id=dgwzh5hw_108gmnrsqd4_b" style="float: left; height: 272.611px; margin-left: 0px; margin-right: 1em; width: 320px;" /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;We have been living in the ASP.Net 2.0 world for too long. The latest and the (not-so) greatest (because its beta) ASP.Net version (&lt;/span&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" id="f657" title=".Net framework 4.0 beta" style="color: rgb(85, 26, 139);"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;.Net framework 4.0 beta&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;) is out for a while with the latest version of Visual Studio as well. Some of the key new features of the new ASP.Net version are mentioned below for you to realize that ASP.Net 2.0 is too old for our own good.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;There was a lot of hype around ASP.Net MVC in the past few months and it had mislead people to think that the next versions of ASP.Net is all MVC. Actually speaking ASP.Net 4.0 consists of lot more. ASP.Net MVC is just 1 of 4 main components.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;The 4 components are;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;1. ASP.Net Web Forms (What we use to know - However lot of new things here as well)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;2. ASP.Net MVC&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;3. Ajax&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;4. Dynamic Data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;The purpose of this post is to discuss new features added to ASP.Net web forms and will be really useful for someone who's not particularly interested in MVC but still want to try out new ASP.Net version.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;Let me list down some cool features of ASP.Net 4.0&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;1. FormView Control&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Uses CSS instead of Tables to create the layout (Efficiency)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Standard Compliant (Better chance of cross-browser compatiblity)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;2. ViewState changes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style=";font-size:85%;" &gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Always turned off by default&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style=";font-size:85%;" &gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Base control classes has a new property 'ViewStateMode' which can be used to put it on only when needed&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;3, Client ID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- It used to be lengthy non-predictable Client IDs. With this one users have flexibility over how client - IDs are generated&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- A new property 'ClientIdMode' is introduced which has values like 'static','Predictable' etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;4. ASP.Net routing&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Originally for MVC, but a more simpler version is available for web forms now.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Rest like simpler, SEO friendly URLs&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;5. QueryExtender Control&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Filters DB results according to client side selections. Limits number of DB calls and optimizes the application.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;6. ASP.Net Core Enhancements&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Session State Compression&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Cache improvements&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;- Browser capability extender&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;I will try to discuss in more detail about the areas which I find useful in some upcoming blog.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2533028872107599806?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2533028872107599806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2533028872107599806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2533028872107599806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2533028872107599806'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2010/02/aspnet-40.html' title='ASP.Net 4.0'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-6969656426429902208</id><published>2009-12-11T03:00:00.004+08:00</published><updated>2009-12-11T03:15:40.508+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sri Lanka'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>War Heroes - Then and Now</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_d5tbeClDyKg/SyFFl3YOp6I/AAAAAAAAAGk/7kHDeSfa33c/s1600-h/soldier.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 317px;" src="http://1.bp.blogspot.com/_d5tbeClDyKg/SyFFl3YOp6I/AAAAAAAAAGk/7kHDeSfa33c/s400/soldier.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5413684743899096994" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This was drawn by the artist on 9&lt;/span&gt;&lt;sup&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;th&lt;/span&gt;&lt;/sup&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; October 2009. Much before any SF-Presidential election story. Should appreciate his futuristic view. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;However I’m pretty sure that couple of more notices (even after the one in front) are still missing. But don’t worry, we will soon see them….in TV, Radio and Roads.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The Sri Lankan people surely know how to do 'Kelaguna Salakeema'. It's in our blood man! &lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Just think about the sheer effort, resources and money put in to the huge campaign of the government. The propaganda units of the Nazis would learn a few things from this. Who pays for all these? &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I was &lt;a href="http://www.uchithar.net/2009/08/blog-post.html"&gt;no fan of war&lt;/a&gt; anyways but the way treat someone who had saved the government asses so far which hasn't done anything positive beside the war (i.e in the minds of majority Sinhalese at least) is shameful. If they treat someone like SF this way, what do you expect &lt;a href="http://www.uchithar.net/2009/01/tribute-to-lasantha.html"&gt;they'll do with someone like Lasantha&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I thought Sri Lanka was only going in circles. Now I think we are just a turning our selves to a well functioning time machine, only thing is this goes back in time in record speeds.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6969656426429902208?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6969656426429902208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6969656426429902208' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6969656426429902208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6969656426429902208'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/12/this-was-drawn-by-artist-on-9-th.html' title='War Heroes - Then and Now'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_d5tbeClDyKg/SyFFl3YOp6I/AAAAAAAAAGk/7kHDeSfa33c/s72-c/soldier.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3871622398836425083</id><published>2009-11-30T07:38:00.002+08:00</published><updated>2009-11-30T07:47:30.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>SVN Patch</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_d5tbeClDyKg/SxMH0Sv1sRI/AAAAAAAAAGQ/10z7sdKLLRY/s1600/inglorious-basterds2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 218px; height: 320px;" src="http://4.bp.blogspot.com/_d5tbeClDyKg/SxMH0Sv1sRI/AAAAAAAAAGQ/10z7sdKLLRY/s320/inglorious-basterds2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5409676172369178898" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I recently come across the 'Patch' feature of SVN and found it to be a very useful tool in several development scenarios. SVN patch feature is basically exporting the changes  you have made to your source code in to a zip/patch file. It will contain all SVN meta data in addition to the files and you can apply the patch from a different place/machine to the same source code base. Some of the situations I feel a patch is useful are;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1. As a mean of code review / Collaborative Development&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Code reviews don't necessarily have to happen as a meeting. The reviewee can pack his changes as a svn patch and email it to the reviewer who can check it in the context of the current code base and do necessary adjustments and commit it. This is more suited when the reviewer is someone from the same team and most probably a senior person in the team.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I've heard that lot of open source projects use this feature to make sure that the commits coming from all around the world are in line with the quality of the code base.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. When working on top of another developers code base&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Many consultants and senior team members have to work on other developer code bases (and machines) sometimes. This is specially true for consultants. Sometime a fix or a change has to be done on top of a an already uncommited changes in the code base. Then the best thing to do is to create a patch from the changes you just did and then revert the changes in the code base. Then you can just apply the patch only. That way  you are not altering the external developer code base but still can get u'r local changes in to SVN.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The same scenario is useful when u need to get in a quick fix on top of a not so solid code base which is under serious change.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3871622398836425083?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3871622398836425083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3871622398836425083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3871622398836425083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3871622398836425083'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/11/svn-patch.html' title='SVN Patch'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_d5tbeClDyKg/SxMH0Sv1sRI/AAAAAAAAAGQ/10z7sdKLLRY/s72-c/inglorious-basterds2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-8054676954986648787</id><published>2009-11-28T20:35:00.003+08:00</published><updated>2009-11-28T21:05:33.536+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><title type='text'>Are you getting enough sleep</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;I recently got an email from a friend about a leading Indian CEO 'Ranjan Das' being killed by a stroke. He was a very active, fit man who took active part in sports (He's a marathon runner). He had good eating habits as well. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;According to the &lt;/span&gt;&lt;a href="http://www.transitioning.org/2009/11/20/what-killed-ranjan-das-and-lessons-for-corporate-india/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;article &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; the primary reason for the stroke was lack of sleep. Most of us in the competitive world (Specially so in Software field) go through a lot of nights without sleep. The most dis-heartning thing is that most of us tend to be proud about ones ability to go on without sleep. 'I worked for 20 continuous hours man...WOW'. That's just not right!&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Try this test to figure out whether you get enough sleep. It's called '&lt;/span&gt;&lt;a href="http://www.stanford.edu/~dement/epworth.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Epworth Sleepiness Scale&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;'.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-8054676954986648787?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/8054676954986648787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=8054676954986648787' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8054676954986648787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8054676954986648787'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/11/are-you-getting-enough-sleep.html' title='Are you getting enough sleep'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-1206148324251069236</id><published>2009-10-26T01:21:00.002+08:00</published><updated>2009-10-26T01:42:15.307+08:00</updated><title type='text'>You Tube Pickups</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The best way to overcome the laziness to blog is to pick interesting stuff you come across in Internet directly to your blog. Call it stealing, cheap writing or whatever...that's what I'm gonna do right now!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1. An inspirational talk by Maldivian president at the U.N. This is a good lesson to Sri Lankan&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;'&lt;/span&gt;&lt;span class="Apple-style-span"  style="  white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;මහ ජනතාව&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;'&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (General Public) who are used to highly emotional yet out of context roller-coaster  'Ego Rides' caused by our leaders talking to international audiences. This guy looks in to the future while we keep going backwards in search of our 2500 year old holy-land.&lt;br /&gt;&lt;/span&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_lPRzB3xYjg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/_lPRzB3xYjg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;br /&gt;2. Although not directly relevant to SriLanka, the discussions on Universal Health Care in US is a good source of learning. At SriLanka we should be in good hands since our Health Care is basically a Universal Health Care system, but lack of application and discipline has made it a mess. All capable people are relying on private hospitals for their well being while lots of innocent go ill-treated by public health system day by day.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Jng4TnKqy6A&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Jng4TnKqy6A&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1206148324251069236?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1206148324251069236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1206148324251069236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1206148324251069236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1206148324251069236'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/10/you-tube-pickups.html' title='You Tube Pickups'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-1453783345690341651</id><published>2009-09-19T08:02:00.004+08:00</published><updated>2009-09-19T08:08:27.243+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Society'/><category scheme='http://www.blogger.com/atom/ns#' term='War'/><title type='text'>Irena Sendler - War Hero</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_d5tbeClDyKg/SrQgqA9jl8I/AAAAAAAAAGI/3dqbmEBxqlE/s1600-h/hero_irena_sendler.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 255px; height: 320px;" src="http://2.bp.blogspot.com/_d5tbeClDyKg/SrQgqA9jl8I/AAAAAAAAAGI/3dqbmEBxqlE/s320/hero_irena_sendler.jpg" alt="" id="BLOGGER_PHOTO_ID_5382963360799365058" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Have you heard of 'Irena Sendler'. I'm pretty sure most of us haven't. She's no superstar, great politician, a sportsperson or a media personality, besides she's not even among us now. She's dead for more than an year now. Why her story caught my attention was because she's known as a 'War Hero'. 'War Hero' - a term we heard so frequently and still continue to hear. She's a war-hero for the same reasons that could cast her as a 'traitor' in different times and circumstances...only time will tell.&lt;br /&gt;&lt;br /&gt;Irena was a Polish aid-worker, activist during World War II in German occupied Warsaw, Porland. She had lead the smuggling of small children from the 'Ghetto' - Huge Jewish Villages (In reality those were high wall camps keeping Jews before they were taken for concentration camps for group execution). She got the chance to visit the Ghetto as a health worker and risked her life escaping children out. She together with her colleagues forged documents and planned escapes one after the other. Usually smuggling children after sedating them and putting them inside coffins, bags or helping them to crawl through sewers to reach outside world. It is said that she had a dog who traveled with her and trained it to bark at Gestapo.  The barking sounds of the dog sometimes helped her to keep sounds of children unheard.&lt;br /&gt;&lt;br /&gt;She was ultimately caught and was severely tortured and was given death sentence. Her hands and legs were broken. She somehow manage to escape on her way to death sentence by bribing the soldiers as they left her in the middle of a jungle. But she survived and lived and operated in hiding till the war was over.&lt;br /&gt;&lt;br /&gt;She kept a jar full of names/details of all the children she rescued, hoping that someday she could reunite them with their parents. But it was later found that no one was able to find their parents as they were either killed or lost.&lt;br /&gt;&lt;br /&gt;She was nominated to the Nobel along side Al-Gore (How much have we heard of Al-Gore and yet how Irena evaded us? Amazing isn't it?). All of us know that Al-Gore won it for creating a slide shore on global warming :).&lt;br /&gt;&lt;br /&gt;Since we as Sri Lankas have also come across a long and dirty war there should be Sri Lankan 'Irena' personalities. But the media doesn't seem to be interested yet. They will be interested in 10-20 years time...I hope. (It took almost 50 years for the world to really know the heroics of Irena). But every time you come across a War-Hero or Freedom-Fighter who is so called since he's good at killing enemies don't forget to remind your self that there should be 'Irena's as well. It would be a great reminder of humanity left in us, however scarce that may be these days.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1453783345690341651?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1453783345690341651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1453783345690341651' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1453783345690341651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1453783345690341651'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/09/irena-sendler-war-hero.html' title='Irena Sendler - War Hero'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_d5tbeClDyKg/SrQgqA9jl8I/AAAAAAAAAGI/3dqbmEBxqlE/s72-c/hero_irena_sendler.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-2619404479286973621</id><published>2009-09-12T02:27:00.004+08:00</published><updated>2009-09-12T02:36:45.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Passing Parameters to Silverlight 3 Components</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/SqqXURdR9XI/AAAAAAAAAGA/jbbJ_eUSENQ/s1600-h/Silverlight.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 176px; height: 197px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/SqqXURdR9XI/AAAAAAAAAGA/jbbJ_eUSENQ/s320/Silverlight.jpg" alt="" id="BLOGGER_PHOTO_ID_5380279079386871154" border="0" /&gt;&lt;/a&gt;&lt;div id="tn2e" style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;When you go one level up from the typical test projects, you come in to a situation where you need to tweak the Silverlight client app based on some sever side logic. For this to work silverlight supports the concept of InitParams. InitParms allows a hosting aspx page to pass parameters to a Silverlight client application. All over the web this process is well explained, except for one little glitch. i.e It's explained for Silverlight 2, not for the latest Silverlight 3. This gap is critical, since a &lt;a title="lot has changed" href="http://msdn.microsoft.com/en-us/library/cc645049%28VS.95%29.aspx" id="lau."&gt;lot has changed&lt;/a&gt; from SL2 to SL3. Specifically the removal of &lt;i&gt;&amp;lt;asp:silverlight ../&amp;gt;, &lt;/i&gt;&lt;i&gt;&amp;lt;asp:mediaplayer ../&amp;gt; &lt;/i&gt;is pretty significant because most of variable passing information in web is related to &amp;lt;asp:silverlight&amp;gt; markup.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;In SL 3 instead of &amp;lt;asp:silverlight&amp;gt; an object tag is used&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&amp;lt;object&lt;/span&gt; &lt;span style="color:red;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;="data:application/x-silverlight-2," &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="application/x-silverlight-2"&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;&lt;span style="color:blue;"&gt;="100%"&lt;/span&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;height&lt;/span&gt;&lt;span style="color:blue;"&gt;="100%"&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;   &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="source" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="{XAP_FILE}"/&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color:blue;"&gt;   &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="onerror" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="onSilverlightError"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color:blue;"&gt;   &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="background" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="white"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color:blue;"&gt;                  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;color:blue;"   &gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);font-family:Verdana;font-size:85%;"  &gt;param&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt; &lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="InitParams" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="showall=true"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;.....&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/p&gt;&lt;span style="font-size:85%;"&gt;Now the question is how to set InitParms dynamically. See &lt;a title="here" href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx" id="q3t:"&gt;here&lt;/a&gt; for InitParam explanations. The previous links discuss InitParam in detail, but fail to provide how it can be passed dynamically (by hosting aspx page). But I found a close to working solution &lt;a title="here" href="http://forums.silverlight.net/forums/t/115304.aspx" id="f6fg"&gt;here&lt;/a&gt; but it didn't work for some odd reason. Ultimately a &lt;a href="http://forums.asp.net/t/1446551.aspx"&gt;link &lt;/a&gt;to a document from Silverlight team on specific changes due to &amp;lt;asp:silverlight&amp;gt; component been missing provided me with the working solution.&lt;br /&gt;&lt;br /&gt;The solution is to use a Literal control as value and set the Literal text in the server side aspx code.&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&amp;lt;object&lt;/span&gt; &lt;span style="color:red;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;="data:application/x-silverlight-2," &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="application/x-silverlight-2" &lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;&lt;span style="color:blue;"&gt;="100%" &lt;/span&gt;&lt;span style="color:red;"&gt;height&lt;/span&gt;&lt;span style="color:blue;"&gt;="100%"&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;   &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="source" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="{XAP_FILE}"/&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;   &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="onerror" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="onSilverlightError"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin: 0in 0in 0.0001pt;font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;  &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;param &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="background" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;='&lt;/span&gt;&lt;/i&gt;&amp;lt;asp:Literal id="Color" runat="server"/&amp;gt;'&lt;i&gt;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color:blue;"&gt;                  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;color:blue;"   &gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);font-family:Verdana;font-size:85%;"  &gt;param&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt; &lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="InitParams" &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color:blue;"&gt;'&lt;/span&gt;&lt;/i&gt;&amp;lt;asp:Literal id="InitParams" runat="server"/&amp;gt;'&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style="color:blue;"&gt;"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In the hosting aspx pages page load method we do the following;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;  protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;     {&lt;br /&gt;          Color.Text = "White"; //You can call any server side code here&lt;br /&gt;         InitParams.Text = GetUrl(); //Implement any business logic to get url and return it according to InitParam standard, i.e url=urlvalue&lt;br /&gt;     }&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Now that the InitParam is set you can use it in your silverlight application by initializing them during Application_Start of SL.&lt;br /&gt;private void Application_Startup(object sender, StartupEventArgs e)&lt;br /&gt;     {&lt;br /&gt;          string broadcastUrl = e.InitParams["bcUrl"];&lt;br /&gt;         this.RootVisual = new MainPage(broadcastUrl );&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;Now you can use this dynamically generated value for any logic within the SL application.&lt;br /&gt;eg: Set the source of media element control, suppose you have a media element with id=mplayer&lt;br /&gt;&lt;i&gt;mPlayer.Source = new Uri(broadcastUrl ); //BroadcastUrl variable should be passed somehow to SL app. (May be via constructor as above)&lt;/i&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2619404479286973621?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2619404479286973621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2619404479286973621' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2619404479286973621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2619404479286973621'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/09/passing-parameters-to-silverlight-3.html' title='Passing Parameters to Silverlight 3 Components'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_d5tbeClDyKg/SqqXURdR9XI/AAAAAAAAAGA/jbbJ_eUSENQ/s72-c/Silverlight.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-7634094237222043939</id><published>2009-08-30T11:58:00.002+08:00</published><updated>2009-08-30T12:04:36.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Society'/><category scheme='http://www.blogger.com/atom/ns#' term='Sri Lanka'/><title type='text'>හර්දය සාක්ෂිය</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_d5tbeClDyKg/Spn6L7ySbSI/AAAAAAAAAF4/tVVmpEpGJHk/s1600-h/sri_lanka_0102.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 179px;" src="http://1.bp.blogspot.com/_d5tbeClDyKg/Spn6L7ySbSI/AAAAAAAAAF4/tVVmpEpGJHk/s320/sri_lanka_0102.jpg" alt="" id="BLOGGER_PHOTO_ID_5375602713177517346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;තල් වැට එපිට උන්ගේ&lt;br /&gt;මරනයේ හර්දය සාක්ෂිය&lt;br /&gt;දකුනේ වීදි පුරා&lt;br /&gt;ගොඩනැගි ලිප්ගල් මැද&lt;br /&gt;පිලිස්සි යාමෙන්&lt;br /&gt;ඉක්බිතිව&lt;br /&gt;&lt;br /&gt;ෂේෂ වූ අගුරු කැටයකින්&lt;br /&gt;දකුන ලියයි...&lt;br /&gt;සියතින්ම මරා දැමු&lt;br /&gt;ස්වකීය හර්දය සාක්ෂියේ&lt;br /&gt;නව්ය නොවූ පරිඡ්ඡෙදය&lt;br /&gt;මෙලසින්&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;පැහැරගැනීම්...&lt;br /&gt;වධදීම්...&lt;br /&gt;මරදැමීම්...&lt;br /&gt;නවත්වව්.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-සුසිත විජේමුණි&lt;br /&gt;&lt;br /&gt;රාවය පුවත් පතෙන් උපුටා ගත්තෙමි.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-7634094237222043939?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/7634094237222043939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=7634094237222043939' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7634094237222043939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7634094237222043939'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/08/blog-post.html' title='හර්දය සාක්ෂිය'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_d5tbeClDyKg/Spn6L7ySbSI/AAAAAAAAAF4/tVVmpEpGJHk/s72-c/sri_lanka_0102.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4536523937954165731</id><published>2009-08-27T09:29:00.002+08:00</published><updated>2009-08-30T11:58:02.855+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork Database'/><title type='text'>DB Schema Design</title><content type='html'>&lt;span style="font-size:85%;"&gt;We were in the middle of a DB Schema review and I thought of discussing some important points from it. You may have many more important things to add as well, so pls feel free.&lt;br /&gt;&lt;br /&gt;1. Identify the Parent Table. It's good to identify whether your schema has a parent table or not. There could even be contention for the Parent table and then you have to decide whether you have multiple parent tables or not.&lt;br /&gt;&lt;br /&gt;2. It's probably sensible to keep some tables in de-normalized form. Specially if your system is in the need of faster searches etc...&lt;br /&gt;&lt;br /&gt;3. The tables should not contain any derivative fields. Eg: If for an event table start_date and end_date is included, do NOT include number_of_days as another field.&lt;br /&gt;&lt;br /&gt;4. Its sensible to name the Primary Key column of each table as 'Id'. Also name each foreign key column as &lt;tablename&gt;Id. Eg: If you have a School and Student tables where School has many students, Student can have Id and SchoolId columns. This could be specially useful for SQLGeneration logic later in the product life cycle if you do this consistently across each table.&lt;br /&gt;&lt;br /&gt;5. Provide provisions for future extension or integrations to the system. If some of the tables (content) has a potential to be replaced by an external system(s) later in the life cycle, try to keep those tables isolated from your main tables by introducing a mapping table in between.&lt;br /&gt;Eg: Assume that your crm system is capable of integrating with different ERP systems. Your system might anyway have to keep some information from ERP system duplicated in your system for ease of search etc... In this case it's not advisable to keep those tables tightly integrated to your main tables. The trick is to use an intermediate mapping table like ERPRef with an id and the rest of the fields keeping relevant ERP data together. May be you can just keep set of ERP specific Ids so that when u need data you can go and fetch it. Also you can have other base data in de-normalized form in this table to facilitate some heavyly used search within your system boundaries.&lt;br /&gt;&lt;br /&gt;This would be the table facing heavy changes when your crm system is integrated with different ERP systems, isolating the core tables in your system.&lt;br /&gt;&lt;br /&gt;For an example this table can have id,erp_ordertable_id, erp_account_id, suppliername, suppliercategory etc...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/tablename&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4536523937954165731?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4536523937954165731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4536523937954165731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4536523937954165731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4536523937954165731'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/08/db-schema-reviews.html' title='DB Schema Design'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4270001832983008834</id><published>2009-08-08T20:32:00.004+08:00</published><updated>2009-08-08T21:13:50.563+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Society'/><category scheme='http://www.blogger.com/atom/ns#' term='Sri Lanka'/><title type='text'>Then they came for you....updated</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_d5tbeClDyKg/Sn10xHtxvbI/AAAAAAAAAFw/wdb3Elsj1Q4/s1600-h/great_dictator_1024.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 349px; height: 263px;" src="http://1.bp.blogspot.com/_d5tbeClDyKg/Sn10xHtxvbI/AAAAAAAAAFw/wdb3Elsj1Q4/s320/great_dictator_1024.jpg" alt="" id="BLOGGER_PHOTO_ID_5367574718128962994" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);font-family:trebuchet ms;font-size:85%;"  &gt;&lt;span style="line-height: 115%;"&gt;I published the following poem on this blog on 1/13/09 after Lasanthas killing&lt;/span&gt;&lt;i&gt;&lt;span style="line-height: 115%;"&gt;&lt;br /&gt;&lt;br /&gt;First they came for the Jews&lt;br /&gt;and I did not speak out because I was not a Jew.&lt;br /&gt;&lt;br /&gt;Then they came for the Communists&lt;br /&gt;and I did not speak out because I was not a Communist.&lt;br /&gt;&lt;br /&gt;Then they came for the trade unionists&lt;br /&gt;and I did not speak out because I was not a trade unionist.&lt;br /&gt;&lt;br /&gt;Then they came for me&lt;br /&gt;and there was no one left to speak out for me&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;br /&gt;German Theologian,&lt;br /&gt;Martin Niemöller&lt;br /&gt;@ the time of the Great Holocaust&lt;br /&gt;&lt;br /&gt;I found a slightly updated one reflecting on the changes happened in our 'Kingdom' during the last few months.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;When those ‘civilians’ were killed in numbers, you didn’t speak up because    your kith and kin were not amongst them.&lt;/em&gt;&lt;/span&gt; &lt;p style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Then they came for the journalists, you didn’t speak up because  those journalists were betraying the motherland for chunks of dollars.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Then they came for the underworld gangsters, you didn’t speak up because  they were already a menace to the society.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt; Then they came for opposition politicians, you didn’t speak up because of the    simple arithmetic of (opposition politicians = traitors).&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Then they came for you. But don’t worry. You are a patriot and you have a King to speak up for you. Long live the King!&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;From &lt;a href="http://suranga.wordpress.com/"&gt;'Thoughts of a Pessimist&lt;/a&gt;' &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4270001832983008834?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4270001832983008834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4270001832983008834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4270001832983008834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4270001832983008834'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/08/then-they-came-for-youupdated.html' title='Then they came for you....updated'/><author><name>creed - Uchitha</name><uri>http://www.blogger.com/profile/10323105270454228259</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_d5tbeClDyKg/R4Ia9oMAnCI/AAAAAAAAAB8/1JRRtfrN2Us/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_d5tbeClDyKg/Sn10xHtxvbI/AAAAAAAAAFw/wdb3Elsj1Q4/s72-c/great_dictator_1024.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
