<?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-01-23T12:27:23.548+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?max-results=100'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><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>100</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='1 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>1</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><entry><id>tag:blogger.com,1999:blog-15701809.post-4563705610777794890</id><published>2009-07-30T10:22:00.003+08:00</published><updated>2009-07-30T10:31:30.081+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'>Mailchimp</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_d5tbeClDyKg/SnEFHX6fKdI/AAAAAAAAAFo/QrVIb82urU4/s1600-h/freddie.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 281px; height: 320px;" src="http://4.bp.blogspot.com/_d5tbeClDyKg/SnEFHX6fKdI/AAAAAAAAAFo/QrVIb82urU4/s320/freddie.jpg" alt="" id="BLOGGER_PHOTO_ID_5364074255411522002" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;We are in the process of Re-Architecting a CMS/Publishing solution based on php/mysql. One of the features we are going to rewrite is its 'Newsletter' function. The problem with the existing solution is the scalability. When the number of subscribers grow large the 'Newsletter' function breaks down.&lt;br /&gt;&lt;br /&gt;Alternatively to the option of improving the already written 'Newsletter' function we looked in to using a 3rd party service and came across '&lt;a title="MailChimp" href="http://www.mailchimp.com/" id="toij"&gt;MailChimp&lt;/a&gt;'. Mailchimp is a fully fledged email campaign management tool. Beside the core functionality of sending an email to a list of users at a designated time, MailChimp provides many other features such as;&lt;br /&gt;1. Easy to use API and Off the shelf integrations to popular CMS systems - API is critical for our requirement&lt;br /&gt;2. Rich Tracking, Reporting and Analysis Tools (Eg: Google Analytic integration)&lt;br /&gt;3. Powerful subscription management features&lt;br /&gt;4. Shopping cart integration&lt;br /&gt;5. Ability to test your email in lot of different email clients before actually sending it - Inbox Inspector&lt;br /&gt;6. Flexible Pricing Scheme&lt;br /&gt;7. Support for different types of Emails (HTML, Text ) and also tools to design them&lt;br /&gt;8. Higher guarantee for deliverability by implementing various Authentication schemes to pass ISP filterings&lt;br /&gt;&lt;br /&gt;Boosted by the above product features, we were interested in finding out how the API would look like. Recently they have provided wrappers around the former API making it more easier to work with. There were PHP and .Net wrappers plus few more APIs done by 3rd parties. We wanted to check out PHP API/Wrapper.&lt;br /&gt;&lt;br /&gt;There were only 2 classes to be learnt.&lt;br /&gt;1. conf.inc.php - Contains all configuration information and is initiated automatically when included in your programme.&lt;br /&gt;2. MCAPI.class.php - The main API wrapper class.&lt;br /&gt;&lt;br /&gt;In addition there were many very simple easy to understand examples. For all we wanted to achieve with MailChimp there was an example. The usual house keeping work before and after each API method was not needed at all since the API wrapper is so neatly written.&lt;br /&gt;&lt;br /&gt;Eg: When sending a campaign mail you juse have to do;&lt;br /&gt;  $campaign = new MCAPI($apikey);&lt;br /&gt;  $campaign-&amp;gt;campaignSendNow($campaignId);&lt;br /&gt;That's it! The configuration info like $apikey is stored in conf.inc.php file along with your MailChimp account information and you don't have to login or perform any other initial calls. Also the API is flexible enough to return info as php arrays, JSON or even XML.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4563705610777794890?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4563705610777794890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4563705610777794890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4563705610777794890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4563705610777794890'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/07/mailchimp.html' title='Mailchimp'/><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/SnEFHX6fKdI/AAAAAAAAAFo/QrVIb82urU4/s72-c/freddie.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3754827054885514983</id><published>2009-06-02T10:10:00.003+08:00</published><updated>2009-06-02T10:13:47.567+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'>Browser Wars - Under a New Set of Rules</title><content type='html'>&lt;span style="font-size:85%;"&gt;It's not a secret to know that there are hundreds of browsers. The cold war between the main players is no lesser secret.&lt;br /&gt;&lt;br /&gt;With the industry joining the &lt;a title="HTML 5" target="_blank" href="http://www.w3.org/TR/html5-diff/" id="g_kq"&gt;HTML 5&lt;/a&gt; bandwagon the browser war has entered a new dimension. HTML 5 is the next generation HTML standard which is 'work in progress' by the way. As in the past the software developers have overtaken the standards bodies and started implementing this and some have even done beta &lt;a title="releases" target="_blank" href="http://www.mozilla.com/en-US/firefox/3.5b4/releasenotes/#issues" id="k_hk"&gt;releases&lt;/a&gt;. Google has also announced their willingness to fully &lt;a title="join the club" target="_blank" href="http://radar.oreilly.com/2009/05/google-bets-big-on-html-5.html" id="sejm"&gt;join the club&lt;/a&gt; with Chrome at recently concluded Google I/O.&lt;br /&gt;&lt;br /&gt;Some cool features of HTML 5 which caught my attention was,&lt;br /&gt;1. The new video and audio tags&lt;br /&gt;This enable application authors to create their own interface for video/audio players. This means that the browsers can also provide their own players. There is still conflicts as to which encoding/decoding mechanism to use as the standard.&lt;br /&gt;2. More support for offline web applications&lt;br /&gt;3. API exposing the browser history&lt;br /&gt;This will be very welcomed by all the developers who had 'Back Button' problems&lt;br /&gt;4. API for Background worker threads&lt;br /&gt;This is a method to perform highly expensive computational tasks without interrupting the user interface.&lt;br /&gt;&lt;br /&gt;Two main objectives of the HTML 5 standard are,&lt;br /&gt;1. To foster interoperability of browsers&lt;br /&gt;2. Introducing new APIs and Markup for emerging web usage patterns while being backward compatible with already deployed content&lt;br /&gt;&lt;br /&gt;It is really fascinating to see that the user experience on top of the browsers is reaching a level very close to the desktop experience. With new communication platforms like '&lt;a title="Google Wave" target="_blank" href="http://wave.google.com/" id="bwxf"&gt;Google Wave&lt;/a&gt;' we will be taken in to a whole new range of web applications. Below chart from O'Reily shows how the native client and web user experience is merging in the future. (Is Chrome in front of Firefox...duh..may be in terms of release date only)&lt;br /&gt;&lt;/span&gt;&lt;div id="ndai" style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="e3s." style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://docs.google.com/File?id=dgwzh5hw_87c28z7kgj_b" target="_blank"&gt;&lt;img style="width: 410px; height: 311px;" src="http://docs.google.com/File?id=dgwzh5hw_87c28z7kgj_b" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;What I would be interested in next few months is how Google Chrome would fair up with Firefox. Chrome did not came out well in it's first version. But I just feel that they will come with a bang next time around although the &lt;a title="current news" target="_blank" href="http://news.cnet.com/chrome-extensions-draw-near-but-advanced-html-5-features-recede/" id="qbf5"&gt;current news&lt;/a&gt; is not encouraging for Chrome.&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-3754827054885514983?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3754827054885514983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3754827054885514983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3754827054885514983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3754827054885514983'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/06/browser-wars-under-new-set-of-rules.html' title='Browser Wars - Under a New Set of Rules'/><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-1911903272912910301</id><published>2009-05-17T01:17:00.003+08:00</published><updated>2009-05-17T02:01:41.393+08:00</updated><title type='text'>Pickups II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/Sg7_BI5-CCI/AAAAAAAAAFY/8-hSs551QQw/s1600-h/PICT0031+%5B640x480%5D.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/Sg7_BI5-CCI/AAAAAAAAAFY/8-hSs551QQw/s320/PICT0031+%5B640x480%5D.JPG" alt="" id="BLOGGER_PHOTO_ID_5336483003516192802" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Here are few things I came across which caught my interest&lt;br /&gt;&lt;br /&gt;1. Indika sent me this great article about something we have know for a long time, but conveniently ignored even longer.&lt;br /&gt;&lt;a href="http://alistair.cockburn.us/Characterizing+people+as+non-linear,+first-order+components+in+software+development?version=9877"&gt;"Characterizing people as non-linear first-order components in software development"&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;2.  &lt;a href="http://samindaw.wordpress.com/"&gt;Saminda&lt;/a&gt;, a former work colleague at &lt;a href="http://www.eurocenterddc.com/"&gt;Eurocenter&lt;/a&gt;, who works for WSO2 now, has created this &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/9443"&gt;firefox add-on&lt;/a&gt; which enables seamless transition between English and Sinhalese based on 'Singlish' scheme. Specially useful for Sinhala users who do not want to learn the typical Sinhalese keyboard.&lt;br /&gt;&lt;br /&gt;3. Rang Di Basanti is one of the best hindi movies I've seen (Better than slumdog).  The song 'Lukka Chuppi' is a hypothetical dialog between the recently dead soldier son and his mother. The son is treated as a hero by everyone (And he himself conside himself to be one), but does it erase the void set in mothers heart ever? Facinating lyrics, music, vocals...and really relevant for the current times in Sri Lanka.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=whZreITEL-Q"&gt;Video&lt;/a&gt;&lt;br /&gt;&lt;a href="http://songnlyrics.blogspot.com/2006/01/lukka-chhupi.html"&gt;Lyrics with Meaning&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I suggest you  watch the video along side the lyrics/meaning. Even better if you could watch the whole movie.&lt;br /&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-1911903272912910301?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1911903272912910301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1911903272912910301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1911903272912910301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1911903272912910301'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/05/pickups-ii.html' title='Pickups II'/><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/Sg7_BI5-CCI/AAAAAAAAAFY/8-hSs551QQw/s72-c/PICT0031+%5B640x480%5D.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4175338363763666496</id><published>2009-04-03T19:48:00.015+08:00</published><updated>2009-04-11T21:26:46.352+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'>Keeping Web Sites Alive (IIS/ASP.Net)</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;/span&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val="--"&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;span style="font-size:85%;"&gt;IIS recycles app pools periodically and the first request which comes after a recycle takes too much time to process because the whole app needs to be loaded and compiled. By default the idle time is 20 minutes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val="--"&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;1. Configure App Pool to recycle when you need it to&lt;br /&gt;2. Setup a ping service which will act as the first request to reach the web site after a recycle&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Method &amp;amp; Details:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. IIS App Pools&lt;br /&gt;IIS App Pool concept is a very useful thing in keeping web sites in same server seperate from eachother. App Pool recycling is also an important activity which cleans up left overs from your application runings.&lt;br /&gt;&lt;br /&gt;But default IIS App Pool recycle options are not suitable for a highly responsive site. It can recycle&lt;br /&gt;&lt;/span&gt;&lt;ul  style="font-family:georgia;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Every n minutes&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;After m requests&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;At specific times of the day&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;If consuming M amount of virtual or physical memory&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;If idle for p mins&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;If kernel request queue (where http requests are kept before dispatching to IIS) has more than x requests&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;You have to change the default settings to suit your requirement while making sure that recycling actually happens as well. I recommend using the specific time of day approach to force a recycle at a low traffic time.&lt;br /&gt;&lt;br /&gt;2. Keep Alive Services&lt;br /&gt;A Keep Alive Service will send a dummy request to your site just to make sure that it won't go to sleep (recycle). One other important attribute of a keep alive request is that it should not make the current logged in user count to go up. So typically Keep Alive services will send a request to a 'KeepAlive' web page of the site which is specifically made so that the user statistics are not screwed up. Following keep alive page will show the current time,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&amp;lt;meta http-equiv="refresh" content="300"&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Current Time Is : &amp;lt;/p&amp;gt;&amp;lt;%=now%&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote  style="font-family:georgia;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;There are 2 kinds of Keep Alive services&lt;br /&gt;&lt;/span&gt;&lt;ol  style="font-family:georgia;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Web based services - &lt;a href="http://www.siteuptime.com/"&gt;siteuptime.com&lt;/a&gt;, &lt;a href="http://www.host-tracker.com/"&gt;host-tracker.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Standalone Applications - &lt;a href="http://www.freedownloadmanager.org/downloads/SiteUp_39612_p/"&gt;Siteup by Xequte&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=";font-family:georgia;font-size:85%;"  &gt;The standalone applications is useful but it has a heavy dependancy on the machine that you install it. If the machine is down or the application is shutdown by someone you have a risk. I recommend the usage of web based service (for a nominal fee). They provide much more features as well as releasing you the burden of keeping the keep alive service alive.&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;blockquote style="font-family: georgia;"&gt;&lt;/blockquote&gt;&lt;blockquote style="font-family: georgia;"&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4175338363763666496?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4175338363763666496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4175338363763666496' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4175338363763666496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4175338363763666496'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/04/keeping-web-sites-alive-iisaspnet.html' title='Keeping Web Sites Alive (IIS/ASP.Net)'/><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-6088359115715952998</id><published>2009-03-29T04:53:00.006+08:00</published><updated>2009-03-29T05:38:04.190+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sinhala'/><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><category scheme='http://www.blogger.com/atom/ns#' term='Sri Lanka'/><title type='text'>Sinhala Blogs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_d5tbeClDyKg/Sc6WDovy7gI/AAAAAAAAAFQ/Ards1IJ5s9o/s1600-h/sinhala-unicode-1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 150px;" src="http://1.bp.blogspot.com/_d5tbeClDyKg/Sc6WDovy7gI/AAAAAAAAAFQ/Ards1IJ5s9o/s320/sinhala-unicode-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5318353199192796674" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;There's a growing upward trend I noticed recently in Sinhala Blogging.  &lt;a href="http://en.wikipedia.org/wiki/Sinhalese_language"&gt;'Sinhala' or 'Sinhalese'&lt;/a&gt; is the unique language the Sinhalese (Nice recursive definition btw) people in Sri Lanka and it has never been the language for the computers or Internet in Sri Lanka. Times are changing though!&lt;br /&gt;&lt;br /&gt;So is it a positive trend? I think it of course is. Your mother tongue is the best possible means of communication among your country men (and women of course, තව පොඩ්ඩෙන් ගුටි). And there are always unique stuff to discuss among your country men., beside the usual blog attractions like Holywood movies or technical developments. At a time when the traditional means of mass communication like print media and TV/Radio are meeting their (natural?) limitations and showing signs of being completely irrelevant and useless,  I'd expect progressive advancements like Sinhala blogging to go a long way.&lt;br /&gt;&lt;br /&gt;On the other hand Sinhala is not going to take us outside the country. So it's equally important for Sri Lankans to blog in English. Currently its taken as  a fashion as well, but I guess the 'Kick' out of it will ware off with time when people realize it's own boundaries.&lt;br /&gt;&lt;br /&gt;There's also an official body behind driving this initiative. You can get lots of useful information regarding Sinhala Blogging in their web site.&lt;br /&gt;&lt;a href="http://www.sinhalabloggers.com/"&gt;'සිංහල බ්ලොග් කරුවන්ගෙ සංසදය' &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;If you want to check out a few different kinds of Sinhala Blogs,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. &lt;a href="http://blog.sudaraka.com/"&gt;සුපුන්ගේ අන්තර්ජාල සටහන&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://sinhala.kalingasblog.com/"&gt;කාලිංගගේ බ්ලොග් සටහන&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://maranaya.blogspot.com/"&gt;මගේ මරණය&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ප:ලි&lt;br /&gt;මම සිංහල ලිවීම සදහා භාවිතා කලේ &lt;a href="http://www.ucsc.cmb.ac.lk/ltrl/services/feconverter/t2.html"&gt;මෙතන&lt;/a&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-6088359115715952998?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6088359115715952998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6088359115715952998' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6088359115715952998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6088359115715952998'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/03/sinhala-blogs.html' title='Sinhala Blogs'/><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/Sc6WDovy7gI/AAAAAAAAAFQ/Ards1IJ5s9o/s72-c/sinhala-unicode-1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-6521191474138798999</id><published>2009-03-24T03:37:00.004+09:00</published><updated>2009-03-24T03:56:44.180+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pickups'/><title type='text'>Pickups</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/ScfacX8A-1I/AAAAAAAAAFI/cfHx7UsWzlk/s1600-h/100_2799.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/ScfacX8A-1I/AAAAAAAAAFI/cfHx7UsWzlk/s320/100_2799.JPG" alt="" id="BLOGGER_PHOTO_ID_5316458066131090258" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Thought of sharing a few things I picked up during the last week from Internet/Blogs.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;1. TED - &lt;a href="http://www.ted.com/"&gt;http://www.ted.com&lt;/a&gt;&lt;br /&gt;A very useful site which you should visit every week.&lt;br /&gt;&lt;br /&gt;2. Predictable Irrationality&lt;br /&gt;Is the idea which challenged the classical economist view that all human decision making is rational (Can be minimized to a Cost Benefit Problem). &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Picked it up from TED and then viewed a few more video of Prof. Dan Ariely, who is the man behind the idea.  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;See it &lt;a href="http://www.ted.com/index.php/talks/dan_ariely_on_our_buggy_moral_code.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;3. Everythin's amazing, nobody's happy&lt;br /&gt;Picked up from &lt;a href="http://sanjiva.weerawarana.org/"&gt;Dr. Sanjiva's blog&lt;/a&gt;. A very simple yet a truthful view of the current generations ungratefulness towards the things that we enjoy for granted. See it &lt;a href="http://www.youtube.com/watch?v=LoGYx35ypus"&gt;here&lt;/a&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-6521191474138798999?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6521191474138798999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6521191474138798999' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6521191474138798999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6521191474138798999'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/03/pickups.html' title='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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_d5tbeClDyKg/ScfacX8A-1I/AAAAAAAAAFI/cfHx7UsWzlk/s72-c/100_2799.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3859151087973934441</id><published>2009-03-12T03:58:00.003+09:00</published><updated>2009-03-12T04:25:56.269+09: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'>Backup Essentials</title><content type='html'>&lt;span style="font-size:85%;"&gt;Everyone of us has to format our hard disks once in a while. After switching to Vista I did that many times :).  Although the usual data backup is done by most of us, I thought of putting down a list of things that we tend to overlook.&lt;br /&gt;&lt;br /&gt;Outlook&lt;br /&gt;1. Outlook Mail files (pst)&lt;br /&gt;2. Outlook rules&lt;br /&gt;3. Outlook personal contacts&lt;br /&gt;&lt;br /&gt;Firefox&lt;br /&gt;1. Favorites&lt;br /&gt;2. Scrapbook&lt;br /&gt;3. History&lt;br /&gt;4. Passwords&lt;br /&gt;&lt;br /&gt;Go &lt;a href="http://www.howtogeek.com/howto/internet/firefox/backup-and-restore-firefox-profiles-easily/"&gt;here &lt;/a&gt;to find an easy way to backup complete firefox profile.&lt;br /&gt;&lt;br /&gt;Anti-Virus&lt;br /&gt;1. Settings (Special Blocks like TCP ports/Applications etc..)&lt;br /&gt;&lt;br /&gt;Windows&lt;br /&gt;1. Odbc DSNs&lt;br /&gt;2. hosts file&lt;br /&gt;3. Special gateway settings / TCP-IP (Eg: routes)&lt;br /&gt;&lt;br /&gt;IM&lt;br /&gt;1. Message History&lt;br /&gt;&lt;br /&gt;IIS&lt;br /&gt;1. All web sites and their settings in local IIS&lt;br /&gt;Backing up IIS differs from one version to another. You have to do some googling and some tests to figure it out for your version of IIS.&lt;br /&gt;&lt;br /&gt;A shortcut for all this could be to backup your windows profile directory. But it won't be a complete solution as some of the above could be saved in other locations.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iishacks.com/index.php/2008/10/07/migrating-websites-from-iis6-to-iis7/"&gt;&lt;/a&gt;&lt;br /&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-3859151087973934441?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3859151087973934441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3859151087973934441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3859151087973934441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3859151087973934441'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/03/backup-essentials.html' title='Backup Essentials'/><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-2780929956983131771</id><published>2009-01-20T02:17:00.003+09:00</published><updated>2009-01-20T02:20:20.745+09: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'>Exceptions Revisited</title><content type='html'>&lt;div&gt;&lt;div id="y_.5" style="padding: 1em 0pt; text-align: center;"&gt;&lt;div id="tyjs" style="padding: 1em 0pt; text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;img src="http://docs.google.com/File?id=dgwzh5hw_74fphsjjf3_b" width="286" height="305" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;Exceptions are an integral part of any modern programming language. AS a mover from Java to .Net I have had my fair share of exception handling changes. In Java you have both checked and unchecked exceptions and the throws exception clause is part of the method signature. In .Net (C#) all exceptions are unchecked which was kind of weird to me at the start. But after programming with .Net for over 2 years now I'm pretty convinced that the unchecked exceptions are the way to go. But I came across Spec#, an experimental extension language to C# by Microsoft has decided to give checked exceptions another go and thus I thought I'd revisit the whole argument again.&lt;br /&gt;&lt;br /&gt;When the chief architect of C# language, &lt;/span&gt;&lt;span class="sts"  style="font-size:85%;"&gt;Anders Hejlsberg was asked why they opted to keep checked exceptions (which he recalls as &lt;a title="'handcuffs' on programmers" href="http://www.artima.com/intv/handcuffs2.html" id="my1."&gt;'handcuffs' on programmers&lt;/a&gt; ) he sighted 2 main reasons.&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="sts"  style="font-size:85%;"&gt;Scalability&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="sts"  style="font-size:85%;"&gt;Versioning&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span class="sts"  style="font-size:85%;"&gt;What he meant by scalability is the fact that when you write programmes which interacts with a whole bunch of other subsystems and APIs the number of exceptions the programmer is forced to handle grows out of control. When you just deal with the IO namespace in .Net framework this is not so much of an issue as you only have to handle a few IO exceptions but in large systems you can end up having to handle tens and hundreds of exceptions. So what happens is that the programmer gets tired of this and writes a big catch Exception clause which completely defeats the purposes of having checked exceptions in the first place. Or even worst they have the empty curly braces for each catch clause which is basically a planted time bomb. Another valid tactic people use is catching all checked exceptions and to wrap them as Runtime exceptions making sure that they no longer obstruct the users on top of the chain.&lt;br /&gt;&lt;br /&gt;Under 'Versioning' the problem is that the throws clause is part of the method signature. So when you release a second version of an API  or class library you can not introduce new exceptions or change existing ones since it will break client code. You are now left with having to declare a new method with a different set of exceptions which makes the API messy and unclean.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;On the other hand one of the main arguments against unchecked exceptions is that the client programmer has to solely depend on the documentation of the API method to know what exceptions can be thrown by the function. But you can have a tool do this analysis for you like the '&lt;a title="Exception Hunter" href="http://www.red-gate.com/products/Exception_Hunter/index.htm" id="bv:8"&gt;Exception Hunter&lt;/a&gt;' from RedGate Software. According to Hejlsberg the most important thing about exceptions is not how you handle them, but how you release resource upon encountering one. This is perfectly handled by the &lt;i&gt;try-finally&lt;/i&gt; blocks or &lt;i&gt;using &lt;/i&gt;blocks in C# (Disposable pattern). The reason is that only a fraction of exceptions caught really need or can be handled by client code. The proven practice of dealing with unchecked exceptions is to let them propagate to the top of your call stack and handle them in a single place. By handling what is usually being done is a message to the user and graceful termination of the programme. We do this in very simple way in ASP.Net applications by using the Global.asax Application_Error handler.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&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-2780929956983131771?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2780929956983131771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2780929956983131771' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2780929956983131771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2780929956983131771'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/01/exceptions.html' title='Exceptions Revisited'/><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-7271779218520343416</id><published>2009-01-14T02:20:00.007+09:00</published><updated>2009-02-05T01:29:26.113+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Journalism'/><category scheme='http://www.blogger.com/atom/ns#' term='War'/><category scheme='http://www.blogger.com/atom/ns#' term='Sri Lanka'/><title type='text'>War and Peace</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_d5tbeClDyKg/SYnCVmkib4I/AAAAAAAAAEE/I_wMRKSeWH4/s1600-h/focus-pic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 288px;" src="http://4.bp.blogspot.com/_d5tbeClDyKg/SYnCVmkib4I/AAAAAAAAAEE/I_wMRKSeWH4/s320/focus-pic.jpg" alt="" id="BLOGGER_PHOTO_ID_5298980112964939650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;style&gt; Font Definitions */  @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face  {font-family:"\0022";  panose-1:0 0 0 0 0 0 0 0 0 0;  mso-font-alt:"Times New Roman";  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:auto;  mso-font-signature:0 0 0 0 0 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin-top:0in;  margin-right:0in;  margin-bottom:10.0pt;  margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink  {mso-style-noshow:yes;  mso-style-priority:99;  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  mso-style-priority:99;  color:purple;  mso-themecolor:followedhyperlink;  text-decoration:underline;  text-underline:single;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph  {mso-style-priority:34;  mso-style-unhide:no;  mso-style-qformat:yes;  margin-top:0in;  margin-right:0in;  margin-bottom:10.0pt;  margin-left:.5in;  mso-add-space:auto;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst  {mso-style-priority:34;  mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-type:export-only;  margin-top:0in;  margin-right:0in;  margin-bottom:0in;  margin-left:.5in;  margin-bottom:.0001pt;  mso-add-space:auto;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle  {mso-style-priority:34;  mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-type:export-only;  margin-top:0in;  margin-right:0in;  margin-bottom:0in;  margin-left:.5in;  margin-bottom:.0001pt;  mso-add-space:auto;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast  {mso-style-priority:34;  mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-type:export-only;  margin-top:0in;  margin-right:0in;  margin-bottom:10.0pt;  margin-left:.5in;  mso-add-space:auto;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} .MsoPapDefault  {mso-style-type:export-only;  margin-bottom:10.0pt;  line-height:115%;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.0in 1.0in 1.0in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:175003835;  mso-list-type:hybrid;  mso-list-template-ids:-174319040 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1  {mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-.25in;} ol  {margin-bottom:0in;} ul  {margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin-top:0in;  mso-para-margin-right:0in;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;One of the most die-hard critics of current Sri Lankan government, Lasantha Wickramatunga was shot dead last week. He was the chief editor of Sunday Leader, a weekly newspaper in English. I must say that I have not read the Leader for a very long time and not a fan of Lasantha by any mean, but still I was deeply shocked at his demise. Although I have many a reservations about his never ending conspiracy stories , without a doubt he was the only main stream journalist in South who criticized the highly glorified war currently run by the SL government. Although the country is going steeply downward in terms of democracy almost the entire majority Sinhalese is glued to the war heroics like we are glued to a game of cricket won by the Sri Lankan cricket team.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;The author of the attached &lt;a href="http://uchitha.net/blog/uploads/Leader.txt"&gt;EDITORIAL &lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;is ‘Dead Lasantha’ not the living one which makes its points send a more chilling wave through my spine than ever. The writing lists 4 very important assets of good governance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;span style=""&gt;1.&lt;span style=";font-family:&amp;quot;;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Transparent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;span style=""&gt;2.&lt;span style=";font-family:&amp;quot;;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;span style=""&gt; &lt;/span&gt;Secular&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;span style=""&gt;3.&lt;span style=";font-family:&amp;quot;;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Liberal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;span style=""&gt;4.&lt;span style=";font-family:&amp;quot;;" &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Democratic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Please get away from the Wins in war fields for a second and give it a thought. Does your educated mind allow you to do that you?&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;i&gt;&lt;span style="line-height: 115%;"&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;u7:worddocument&gt;   &lt;u7:view&gt;Normal&lt;u7:zoom&gt;0&lt;u7:trackmoves/&gt;     &lt;u7:trackformatting/&gt;     &lt;u7:punctuationkerning/&gt;     &lt;u7:validateagainstschemas/&gt;     &lt;u7:saveifxmlinvalid&gt;false&lt;u7:ignoremixedcontent&gt;false&lt;u7:alwaysshowplaceholdertext&gt;false&lt;u7:donotpromoteqf/&gt;        &lt;u7:lidthemeother&gt;EN-US&lt;u7:lidthemeasian&gt;X-NONE&lt;u7:lidthemecomplexscript&gt;X-NONE&lt;u7:compatibility&gt;            &lt;u7:breakwrappedtables/&gt;            &lt;u7:snaptogridincell/&gt;            &lt;u7:wraptextwithpunct/&gt;            &lt;u7:useasianbreakrules/&gt;            &lt;u7:dontgrowautofit/&gt;            &lt;u7:splitpgbreakandparamark/&gt;            &lt;u7:dontvertaligncellwithsp/&gt;            &lt;u7:dontbreakconstrainedforcedtables/&gt;            &lt;u7:dontvertalignintxbx/&gt;            &lt;u7:word11kerningpairs/&gt;            &lt;u7:cachedcolbalance/&gt;            &lt;u7:browserlevel&gt;MicrosoftInternetExplorer4&lt;u8:mathpr&gt;              &lt;u8:mathfont val="Cambria Math"&gt;               &lt;u8:brkbin val="before"&gt;                &lt;u8:brkbinsub val="--"&gt;                 &lt;u8:smallfrac val="off"&gt;                  &lt;u8:dispdef/&gt;                  &lt;u8:lmargin val="0"&gt;                   &lt;u8:rmargin val="0"&gt;                    &lt;u8:defjc val="centerGroup"&gt;                     &lt;u8:wrapindent val="1440"&gt;                      &lt;u8:intlim val="subSup"&gt;                       &lt;u8:narylim val="undOvr"&gt;                       &lt;/u8:narylim&gt;                      &lt;/u8:intlim&gt;                     &lt;/u8:wrapindent&gt;                    &lt;/u8:defjc&gt;                   &lt;/u8:rmargin&gt;                  &lt;/u8:lmargin&gt;                 &lt;/u8:smallfrac&gt;                &lt;/u8:brkbinsub&gt;               &lt;/u8:brkbin&gt;              &lt;/u8:mathfont&gt;             &lt;/u8:mathpr&gt;            &lt;/u7:browserlevel&gt;           &lt;/u7:compatibility&gt;          &lt;/u7:lidthemecomplexscript&gt;         &lt;/u7:lidthemeasian&gt;        &lt;/u7:lidthemeother&gt;       &lt;/u7:alwaysshowplaceholdertext&gt;      &lt;/u7:ignoremixedcontent&gt;     &lt;/u7:saveifxmlinvalid&gt;    &lt;/u7:zoom&gt;   &lt;/u7:view&gt;  &lt;/u7:worddocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;u9:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;u9:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;    &lt;u9:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;     &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;      &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;       &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;        &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;         &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;          &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;           &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;            &lt;u9:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;             &lt;u9:lsdexception locked="false" priority="39" name="toc 1"&gt;              &lt;u9:lsdexception locked="false" priority="39" name="toc 2"&gt;               &lt;u9:lsdexception locked="false" priority="39" name="toc 3"&gt;                &lt;u9:lsdexception locked="false" priority="39" name="toc 4"&gt;                 &lt;u9:lsdexception locked="false" priority="39" name="toc 5"&gt;                  &lt;u9:lsdexception locked="false" priority="39" name="toc 6"&gt;                   &lt;u9:lsdexception locked="false" priority="39" name="toc 7"&gt;                    &lt;u9:lsdexception locked="false" priority="39" name="toc 8"&gt;                     &lt;u9:lsdexception locked="false" priority="39" name="toc 9"&gt;                      &lt;u9:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;                       &lt;u9:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;                        &lt;u9:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;                         &lt;u9:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;                          &lt;u9:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;                           &lt;u9:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;                            &lt;u9:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;                             &lt;u9:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;                              &lt;u9:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;                               &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;                                &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;                                 &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;                                  &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;                                   &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;                                    &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;                                     &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;                                      &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;                                       &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;                                        &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;                                         &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;                                          &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;                                           &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;                                            &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;                                             &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;                                              &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;                                               &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;                                                &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;                                                 &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;                                                  &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;                                                   &lt;u9:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;                                                    &lt;u9:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;                                                     &lt;u9:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;                                                      &lt;u9:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;                                                       &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;                                                        &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;                                                         &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;                                                          &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;                                                           &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;                                                            &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;                                                             &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;                                                              &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;                                                               &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;                                                                &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;                                                                 &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;                                                                  &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;                                                                   &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;                                                                    &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;                                                                     &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;                                                                      &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;                                                                       &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;                                                                        &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;                                                                         &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;                                                                          &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;                                                                           &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;                                                                            &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;                                                                             &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;                                                                              &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;                                                                               &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;                                                                                &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;                                                                                 &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;                                                                                  &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;                                                                                   &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;                                                                                    &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;                                                                                     &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;                                                                                      &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;                                                                                       &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;                                                                                        &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;                                                                                         &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;                                                                                          &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;                                                                                           &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;                                                                                            &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;                                                                                             &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;                                                                                              &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;                                                                                               &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;                                                                                                &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;                                                                                                 &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;                                                                                                  &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;                                                                                                   &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;                                                                                                    &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;                                                                                                     &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;                                                                                                      &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;                                                                                                       &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;                                                                                                        &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;                                                                                                         &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;                                                                                                          &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;                                                                                                           &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;                                                                                                            &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;                                                                                                             &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;                                                                                                              &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;                                                                                                               &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;                                                                                                                &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;                                                                                                                 &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;                                                                                                                  &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;                                                                                                                   &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;                                                                                                                    &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;                                                                                                                     &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;                                                                                                                      &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;                                                                                                                       &lt;u9:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;                                                                                                                        &lt;u9:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;                                                                                                                         &lt;u9:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;                                                                                                                          &lt;u9:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;                                                                                                                           &lt;u9:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;                                                                                                                            &lt;u9:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;                                                                                                                             &lt;u9:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;                                                                                                                              &lt;u9:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;                                                                                                                               &lt;u9:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;                                                                                                                                &lt;u9:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;                                                                                                                                 &lt;u9:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;                                                                                                                                  &lt;u9:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;                                                                                                                                   &lt;u9:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;                                                                                                                                    &lt;u9:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;                                                                                                                                     &lt;u9:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;                                                                                                                                      &lt;u9:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;                                                                                                                                       &lt;u9:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;                                                                                                                                        &lt;u9:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;                                                                                                                                         &lt;u9:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;                                                                                                                                          &lt;u9:lsdexception locked="false" priority="37" name="Bibliography"&gt;                                                                                                                                           &lt;u9:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;                                                                                                                                           &lt;/u9:lsdexception&gt;                                                                                                                                          &lt;/u9:lsdexception&gt;                                                                                                                                         &lt;/u9:lsdexception&gt;                                                                                                                                        &lt;/u9:lsdexception&gt;                                                                                                                                       &lt;/u9:lsdexception&gt;                                                                                                                                      &lt;/u9:lsdexception&gt;                                                                                                                                     &lt;/u9:lsdexception&gt;                                                                                                                                    &lt;/u9:lsdexception&gt;                                                                                                                                   &lt;/u9:lsdexception&gt;                                                                                                                                  &lt;/u9:lsdexception&gt;                                                                                                                                 &lt;/u9:lsdexception&gt;                                                                                                                                &lt;/u9:lsdexception&gt;                                                                                                                               &lt;/u9:lsdexception&gt;                                                                                                                              &lt;/u9:lsdexception&gt;                                                                                                                             &lt;/u9:lsdexception&gt;                                                                                                                            &lt;/u9:lsdexception&gt;                                                                                                                           &lt;/u9:lsdexception&gt;                                                                                                                          &lt;/u9:lsdexception&gt;                                                                                                                         &lt;/u9:lsdexception&gt;                                                                                                                        &lt;/u9:lsdexception&gt;                                                                                                                       &lt;/u9:lsdexception&gt;                                                                                                                      &lt;/u9:lsdexception&gt;                                                                                                                     &lt;/u9:lsdexception&gt;                                                                                                                    &lt;/u9:lsdexception&gt;                                                                                                                   &lt;/u9:lsdexception&gt;                                                                                                                  &lt;/u9:lsdexception&gt;                                                                                                                 &lt;/u9:lsdexception&gt;                                                                                                                &lt;/u9:lsdexception&gt;                                                                                                               &lt;/u9:lsdexception&gt;                                                                                                              &lt;/u9:lsdexception&gt;                                                                                                             &lt;/u9:lsdexception&gt;                                                                                                            &lt;/u9:lsdexception&gt;                                                                                                           &lt;/u9:lsdexception&gt;                                                                                                          &lt;/u9:lsdexception&gt;                                                                                                         &lt;/u9:lsdexception&gt;                                                                                                        &lt;/u9:lsdexception&gt;                                                                                                       &lt;/u9:lsdexception&gt;                                                                                                      &lt;/u9:lsdexception&gt;                                                                                                     &lt;/u9:lsdexception&gt;                                                                                                    &lt;/u9:lsdexception&gt;                                                                                                   &lt;/u9:lsdexception&gt;                                                                                                  &lt;/u9:lsdexception&gt;                                                                                                 &lt;/u9:lsdexception&gt;                                                                                                &lt;/u9:lsdexception&gt;                                                                                               &lt;/u9:lsdexception&gt;                                                                                              &lt;/u9:lsdexception&gt;                                                                                             &lt;/u9:lsdexception&gt;                                                                                            &lt;/u9:lsdexception&gt;                                                                                           &lt;/u9:lsdexception&gt;                                                                                          &lt;/u9:lsdexception&gt;                                                                                         &lt;/u9:lsdexception&gt;                                                                                        &lt;/u9:lsdexception&gt;                                                                                       &lt;/u9:lsdexception&gt;                                                                                      &lt;/u9:lsdexception&gt;                                                                                     &lt;/u9:lsdexception&gt;                                                                                    &lt;/u9:lsdexception&gt;                                                                                   &lt;/u9:lsdexception&gt;                                                                                  &lt;/u9:lsdexception&gt;                                                                                 &lt;/u9:lsdexception&gt;                                                                                &lt;/u9:lsdexception&gt;                                                                               &lt;/u9:lsdexception&gt;                                                                              &lt;/u9:lsdexception&gt;                                                                             &lt;/u9:lsdexception&gt;                                                                            &lt;/u9:lsdexception&gt;                                                                           &lt;/u9:lsdexception&gt;                                                                          &lt;/u9:lsdexception&gt;                                                                         &lt;/u9:lsdexception&gt;                                                                        &lt;/u9:lsdexception&gt;                                                                       &lt;/u9:lsdexception&gt;                                                                      &lt;/u9:lsdexception&gt;                                                                     &lt;/u9:lsdexception&gt;                                                                    &lt;/u9:lsdexception&gt;                                                                   &lt;/u9:lsdexception&gt;                                                                  &lt;/u9:lsdexception&gt;                                                                 &lt;/u9:lsdexception&gt;                                                                &lt;/u9:lsdexception&gt;                                                               &lt;/u9:lsdexception&gt;                                                              &lt;/u9:lsdexception&gt;                                                             &lt;/u9:lsdexception&gt;                                                            &lt;/u9:lsdexception&gt;                                                           &lt;/u9:lsdexception&gt;                                                          &lt;/u9:lsdexception&gt;                                                         &lt;/u9:lsdexception&gt;                                                        &lt;/u9:lsdexception&gt;                                                       &lt;/u9:lsdexception&gt;                                                      &lt;/u9:lsdexception&gt;                                                     &lt;/u9:lsdexception&gt;                                                    &lt;/u9:lsdexception&gt;                                                   &lt;/u9:lsdexception&gt;                                                  &lt;/u9:lsdexception&gt;                                                 &lt;/u9:lsdexception&gt;                                                &lt;/u9:lsdexception&gt;                                               &lt;/u9:lsdexception&gt;                                              &lt;/u9:lsdexception&gt;                                             &lt;/u9:lsdexception&gt;                                            &lt;/u9:lsdexception&gt;                                           &lt;/u9:lsdexception&gt;                                          &lt;/u9:lsdexception&gt;                                         &lt;/u9:lsdexception&gt;                                        &lt;/u9:lsdexception&gt;                                       &lt;/u9:lsdexception&gt;                                      &lt;/u9:lsdexception&gt;                                     &lt;/u9:lsdexception&gt;                                    &lt;/u9:lsdexception&gt;                                   &lt;/u9:lsdexception&gt;                                  &lt;/u9:lsdexception&gt;                                 &lt;/u9:lsdexception&gt;                                &lt;/u9:lsdexception&gt;                               &lt;/u9:lsdexception&gt;                              &lt;/u9:lsdexception&gt;                             &lt;/u9:lsdexception&gt;                            &lt;/u9:lsdexception&gt;                           &lt;/u9:lsdexception&gt;                          &lt;/u9:lsdexception&gt;                         &lt;/u9:lsdexception&gt;                        &lt;/u9:lsdexception&gt;                       &lt;/u9:lsdexception&gt;                      &lt;/u9:lsdexception&gt;                     &lt;/u9:lsdexception&gt;                    &lt;/u9:lsdexception&gt;                   &lt;/u9:lsdexception&gt;                  &lt;/u9:lsdexception&gt;                 &lt;/u9:lsdexception&gt;                &lt;/u9:lsdexception&gt;               &lt;/u9:lsdexception&gt;              &lt;/u9:lsdexception&gt;             &lt;/u9:lsdexception&gt;            &lt;/u9:lsdexception&gt;           &lt;/u9:lsdexception&gt;          &lt;/u9:lsdexception&gt;         &lt;/u9:lsdexception&gt;        &lt;/u9:lsdexception&gt;       &lt;/u9:lsdexception&gt;      &lt;/u9:lsdexception&gt;     &lt;/u9:lsdexception&gt;    &lt;/u9:lsdexception&gt;   &lt;/u9:lsdexception&gt;  &lt;/u9:latentstyles&gt; &lt;/xml&gt;&lt;![endif]--&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="line-height: 115%;font-family:&amp;quot;;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;German Theologian,&lt;br /&gt;Martin Niemöller&lt;br /&gt;@ the time of the Great Holocaust &lt;/span&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:10;"  &gt;  &lt;!--[if !supportLineBreakNewLine]--&gt;  &lt;!--[endif]--&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-7271779218520343416?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/7271779218520343416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=7271779218520343416' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7271779218520343416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7271779218520343416'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/01/tribute-to-lasantha.html' title='War and Peace'/><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/SYnCVmkib4I/AAAAAAAAAEE/I_wMRKSeWH4/s72-c/focus-pic.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4206004967745421796</id><published>2009-01-02T15:00:00.006+09:00</published><updated>2009-03-01T22:58:10.065+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><category scheme='http://www.blogger.com/atom/ns#' term='Clint Eastwood'/><title type='text'>Gran Torino</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/SYnDkNCXeJI/AAAAAAAAAEM/IqdETWp-_Xw/s1600-h/grantorinoposter.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 216px; height: 320px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/SYnDkNCXeJI/AAAAAAAAAEM/IqdETWp-_Xw/s320/grantorinoposter.jpg" alt="" id="BLOGGER_PHOTO_ID_5298981463320393874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;As of things to expect during the new year of 2009 in the very first day of the year, I had to go through an absolute crap bag of a movie and followed it up with one of the top notch movies in 2008.&lt;br /&gt;&lt;br /&gt;The worthless movie was 'The Day the Earth Stood Still' although I'd wish the whole movie could have stand as a still photograph of Keanu Reeves. I don't think we need to discuss a lot about that one.&lt;br /&gt;&lt;br /&gt;The follow up movie was 'Gran Torino' is by none other than Mr.Clint Eastwood. Gran Torino has Mr.Eastwood himself as the main character 'Walt Kawoski' a former World War I soldier who operated in Korea. Kawoski is a very independent man who has a past which he likes to forget and a very lonely present time. At the start he projects himself to be a typical old age American who is so arrogant and big headed. His nerves are further tested by the fact that his neighborhood has ended up being a cross-cultural dump yard of people. The movie beautifully shows how the bond between him and the two young &lt;a href="http://en.wikipedia.org/wiki/Hmong_people"&gt;Hmong&lt;/a&gt; girl and boy builds up. As the movie unfolds the very same characteristics of Kawoski which you hated at the beginning starts to first entertain us and then even educate us about human relationships towards the end. Eastwood with his ever deepening voice of his cracks up some very good humour and also forces us to appreciate the fact that old style of living is indeed simpler &amp;amp; better.&lt;br /&gt;&lt;br /&gt;I always judge a movie either by the number of 'Ohhhhhh' feelings or the number of feeling of some heavy chunk stuck up in the top of my throat. Being ‘Ohhh’d  is an indication of being tricked by the movie which is good most of the time (Remember Usual Suspects/Memento). The second is the feelings we have towards the characters and their situation which indicates how well the movie has bonded us with the characters within 1 or 2 hours. Gran Torino left me up with a few heavy chunks stuck up in my throat (specially at the end) as an appreciation of how pure and worthy plain old style human relationships can be without all the religions and sciences trying to dissect and describe it.&lt;br /&gt;&lt;br /&gt;I would recommend any of you to get a DVD and watch this.&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-4206004967745421796?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4206004967745421796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4206004967745421796' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4206004967745421796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4206004967745421796'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2009/01/as-of-things-to-expect-during-new-year.html' title='Gran Torino'/><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/SYnDkNCXeJI/AAAAAAAAAEM/IqdETWp-_Xw/s72-c/grantorinoposter.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4607806375195199663</id><published>2008-11-30T02:32:00.009+09:00</published><updated>2009-02-05T01:37:17.933+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Opera Mini on NOKIA 6500</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/SYnEM8tYrtI/AAAAAAAAAEU/F4I7wlvhVjY/s1600-h/nokia6500slide.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 318px; height: 320px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/SYnEM8tYrtI/AAAAAAAAAEU/F4I7wlvhVjY/s320/nokia6500slide.jpg" alt="" id="BLOGGER_PHOTO_ID_5298982163312062162" border="0" /&gt;&lt;/a&gt;&lt;span xmlns=""  style="font-size:85%;"&gt;&lt;p&gt; I bought a NOKIA 6500 slide and was very interested to see how the Opera browser would work on it. I had once worked with a colleague from India, Deepak who now works for Opera. He had given me enough reasons to at least try it. So I decided to go for &lt;a href="http://www.operamini.com/"&gt;Opera Mini&lt;/a&gt;. But getting it to work was not so straight forward. In this post I will explain how I got it to work step by step.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;From my service provider I got the web settings such that the default browser started to work. Well, Opera cannot be so far away now…So I downloaded Opera Mini to my laptop and transferred and installed it on the phone.  But when I started Opera I was surprise to see the &lt;em&gt;"Failed to connect to the Internet"&lt;/em&gt;. In &lt;a href="http://wapreview.com/blog/?p=466"&gt;this&lt;/a&gt; article the cause for this problem is explained in detail. In short the reason is that the service providers use an internal Access Point setting which results in no Access Point being available in the phone. So the solution is to create your own Access Point with the settings found on the internal Access Point used by the internal browser. The disappointing thing is that the mobile phone manufactures do a terrible job of documenting these things and also the opera mini settings page does not list Sri Lankan service provider details plus nokia.com does not also have Sri Lankan network details.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Menu &amp;gt; Configuration Settings &amp;gt; Personal Config. Settings &amp;gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You will be able to see the existing web connection or access point. Write down all its details.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now under Personal Config. Settings choose Options &amp;gt; New &amp;gt; Access Point and provide the details&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;These are the details I provided&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Account Name - MyAP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Data Bearer      - Packet Data&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Under Bearer Settings provide exact same details you found under Bearer Details in the default browser access point.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Now under Menu &amp;gt; Configuration Settings &amp;gt; Preferred Access Point provide the name of the AP you just created (MyAP)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;After that Opera Mini (Or Other Data Applications) will start to connect to Internet.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4607806375195199663?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4607806375195199663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4607806375195199663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4607806375195199663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4607806375195199663'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/11/opera-mini-on-nokia-6500.html' title='Opera Mini on NOKIA 6500'/><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/SYnEM8tYrtI/AAAAAAAAAEU/F4I7wlvhVjY/s72-c/nokia6500slide.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-5038284312310339576</id><published>2008-11-16T18:42:00.009+09:00</published><updated>2009-03-01T22:54:02.900+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zeitgeist'/><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Zeitgeist Addendum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_d5tbeClDyKg/SaqTUY0xi7I/AAAAAAAAAEo/xO8RFP6xRpo/s1600-h/zeitgeist_eye.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 285px;" src="http://3.bp.blogspot.com/_d5tbeClDyKg/SaqTUY0xi7I/AAAAAAAAAEo/xO8RFP6xRpo/s320/zeitgeist_eye.jpg" alt="" id="BLOGGER_PHOTO_ID_5308217089280019378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; I have watched the second part of the Zeitgeist, "&lt;a title="Zeitgeist Addendum" href="http://video.google.com/videoplay?docid=7065205277695921912" id="b8-m"&gt;Zeitgeist Addendum&lt;/a&gt;". This is more focused on the naturally corrupt and faulty nature of the worlds current monitory system, specially the Banks. Also in the last section of the movie it devotes it self to explaining the solution. Discussing solutions and possible actions was very interesting as it gives us  more courage to do something about it. The final section introduces the viewer to the '&lt;a title="Venus Project" href="http://www.thevenusproject.com/" id="z7ls"&gt;Venus Project&lt;/a&gt;' which proposes a very different and at this point of time very radical social system, which is driven NOT by money, but by technology. I propose every one to watch the 2 Zeitgeist documentaries to get a fresh perspective of what's happening around us. The awakening I got after watching these 2 is somewhat similar to what I got after watching the first Matrix movie.&lt;br /&gt;&lt;br /&gt;PS : A better quality version of Addendum can be obtained via Torrents.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-5038284312310339576?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/5038284312310339576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=5038284312310339576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5038284312310339576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5038284312310339576'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/11/zeitgeist-addendum.html' title='Zeitgeist Addendum'/><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/SaqTUY0xi7I/AAAAAAAAAEo/xO8RFP6xRpo/s72-c/zeitgeist_eye.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3430702169746613097</id><published>2008-11-02T13:00:00.009+09:00</published><updated>2008-11-02T14:19:24.124+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outsource'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Eurocenter'/><title type='text'>Efficient Outsourcing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.uchitha.net/blog/uploaded_images/DSC00466-781027.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 371px; height: 277px;" src="http://www.uchitha.net/blog/uploaded_images/DSC00466-781017.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;The business model at &lt;a href="http://www.eurocenterddc.com/"&gt;Eurocenter&lt;/a&gt; is 'Extended Engineering'. Although the fancy term might give u the feeling that it's actually another term for 'Out Sourcing', it's not. We try to be partners of our client which in most cases is an ISV, Independent Software Vendor. Our ISVs are from Scandinavian countries and we tend to work with them not for a project or 2, but for a long time. We already have several clients who had been working with us for more than 3 years.&lt;br /&gt;&lt;br /&gt;Although one of the strengths of Eurocenter is its commitment to delivery once a project is signed off, a recent whining I get from one of the clients is that time taken for us to sign off a project is too much. This is due to the fact that we like to resolve as many grey areas as possible in the scope to prevent scope creep and unhappy situations with the customers late in a project. Mind you our projects are usually small in size, roughly 3000 hours and completed within 6 months or so. But what I noticed is even for a project which is smaller than this we take around 1 month of back and forth discussions to finally agree and start the project.&lt;br /&gt;&lt;br /&gt;This is not healthy for an ISV who's looking forward to cut down on his Time to Market by partnering with a company like Eurocenter. We have tried framework agreements where the client basically agrees to pay for a certain number of resources for an period of time (6 months) which is kind of Time &amp;amp; Material job. But this is more suited for projects where customer manages the resources and provide them small grained tasks as oppose to whole projects. The typical advantages customer gets by working with a company like Eurocenter is that the emphasis in quality and process. But in a time &amp;amp; material based cost structure this is not captured and the customer can't expect the same quality &amp;amp; process benchmarks as a fixed price complete project. In case of a typical product development (Which builds a specific product for customer) we follow the fixed rate model where we scope &amp;amp; estimate prior to sign off. This is where the initial delays are seen, when we try to agree on scope &amp;amp; estimates.&lt;br /&gt;&lt;br /&gt;One of the models we came up in our discussions recently is a model where as soon as the client gets the idea of a product/project and wants it to be done by us, 1 or 2 resources from us can start working on the project while also scoping and estimating. There is always a % of actual project work which can be done before the scoping is not completed. There is a risk of the project not progressing after couple of weeks. What we have agreed is to share this risk with the client. So for the initial work that we do on this project will be billable to the customer on a time &amp;amp; material basis. This gives the client time to go through scope &amp;amp; estimates properly while knowing that he's not impacting the final delay of the product by much. On the other hand we get to provide our resources with billable work which is both good for the company and satisfying for people. In the current fixed price model we end up having 2-3 resources doing non-billable work for a few weeks just because customer hasn't yet signed off a project rather than any other technical problem. Of course the client and the outsource company can't do this if they have met for the first time. You need to have a certain level of trust and confidence on both parties for a model like this to be a success. We plan to employ this tactic soon and see how it goes with matured clients of ours.&lt;br /&gt;&lt;br /&gt;If the model proves to be a success it can be one of the most efficient models of outsourcing.  while managing the risks.&lt;br /&gt;&lt;br /&gt;&lt;br /&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-3430702169746613097?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3430702169746613097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3430702169746613097' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3430702169746613097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3430702169746613097'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/11/efficient-outsourcing.html' title='Efficient Outsourcing'/><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-3445954904049800025</id><published>2008-10-26T14:36:00.011+09:00</published><updated>2008-12-04T01:28:34.006+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI Eurocenter'/><title type='text'>Eurocenter - CMMI Level 3 Company</title><content type='html'>&lt;img style="width: 412px; height: 319px;" src="http://docs.google.com/File?id=dgwzh5hw_64hdr7jnhg_b" /&gt;&lt;div id="mszq" style="padding: 1em 0pt; text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.eurocenterddc.com/"&gt;Eurocenter&lt;/a&gt;, the company I work for has achieved one of its biggest milestone by becoming the first Sri Lankan software company to achieve &lt;a href="http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration" id="f_da" title="CMMI"&gt;CMMI&lt;/a&gt; Level 3 Dev maturity level. CMMI is a process improvement model proposed by SEI (Software Engineering Institute - Carnegie Melon). The exact achievement of Eurocenter is CMMI for Development version 1.2. Out of the 22 processes in CMMI Dev 1.2 Eurocenter was evaluated for 17 processes up until Level 3 which is depicted below. Out of this Supplier Agreement Management was not considered as its not part of Eurocenter Core Processes.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="ip8e" style="padding: 1em 0pt; text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;img style="width: 393px; height: 397px;" src="http://docs.google.com/File?id=dgwzh5hw_6593nrrkfp_b" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;This project started more than 1 year ago involving many colleagues at Eurocenter. I was involved in the SEPG group which was focused on defining processes. Also the project I was involved in pass year was considered as one of the two focus projects which got evaluated for all 17 processes. My process area was Engineering and the processes were Requirement Development, Technical Solution, Verification and Decision Analysis and Resolution. It was a great learning experience and a test for all of us. The achivement has proved that Eurocenter is now leveling with the best companies of the world in terms of process.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;Have a look at the list of &lt;a title="companies" href="http://sas.sei.cmu.edu/pars/pars.aspx" id="c0hd"&gt;companies&lt;/a&gt; who had achieved various maturity levels up until now. I will update the post as soon as Eurocenter is also officially added.&lt;br /&gt;CMMI wikipedia site is &lt;a title="here" href="http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration" id="s-e2"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;UPDATE : Eurocenter had officially awarded CMMI Level 3 certification. Check this &lt;a href="http://sas.sei.cmu.edu/pars/pars_detail.aspx?a=11618"&gt;link &lt;/a&gt;for the official CMMI page.&lt;br /&gt;&lt;/span&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5CEURCOL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5CEURCOL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CEURCOL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3445954904049800025?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3445954904049800025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3445954904049800025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3445954904049800025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3445954904049800025'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/10/eurocenter-cmmi-level-3-company.html' title='Eurocenter - CMMI Level 3 Company'/><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-3770773332811881509</id><published>2008-10-13T00:34:00.004+08:00</published><updated>2008-10-13T00:44:13.462+08:00</updated><title type='text'>Zeitgeist</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.uchitha.net/blog/uploaded_images/SunGod_BY_STACY_REED_www.shedreamsindigital.net_NO_HOTLINKING_ALLOWED-786193.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 384px; height: 339px;" src="http://www.uchitha.net/blog/uploaded_images/SunGod_BY_STACY_REED_www.shedreamsindigital.net_NO_HOTLINKING_ALLOWED-786137.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;One of the biggest news to hit the media in recent times is the US economic turmoil, which in turns affects other parts of the world in different strengths. The hottest story before this in my mind was the 9/11. In addition one of my main areas of interests is the concept of religion. I have come across a documentary this weekend which discusses and disects ares similar to the above. This is a very popular documentary which is placed in top 5 of the all time best documentaries in imdb. Say HI to '&lt;a title="Zeitgeist, the movie" href="http://www.zeitgeistmovie.com/index.html" id="g6ld"&gt;Zeitgeist, the movie&lt;/a&gt;'. After Micheal Moore documentaries, this is the most interested I have become for films of this kind. While Micheal Moore clearly exhibits his hatred towards a certain set of people and focus groups Zeitgeist projects a much broader view of a system which is built upon greed and lies.&lt;br /&gt;&lt;br /&gt;Zeitgeist identifies a triplet of myths upon which the current world empire is built upon. The myth of religion, country and prosperity. These are 3 symbols of modern americansim where it's metrialized (Clearly mentioned over and over again in current US elections) as faith (Christinaity), national security (anti-terrorsim) and economic wealth. The movie clearly articulates that all 3 of these is based on either pure myth or is a carefully staged act to make sure that a few can prospour in the expense of a blind-folded nation (world). The movie also is clearly in 3 parts where I prefer the third part which talks about how the central banks (Federal Reserve) have consumed countries in to a never ending debt cycle. And that it's merely a property of the system to have recurring cycles of booms and busts (recessions) is cleary understood. The fact that the movie was made much before the current economic problems speaks volumes. Almost everything in part III of the movie can be related to the current economic problems.&lt;br /&gt;&lt;br /&gt;On the other hand it's the internet which had made Zeitgeist a runaway hit after it has been freely distributed in &lt;a title="google video" target="_blank" href="http://video.google.com/videoplay?docid=-594683847743189197" id="cjgb"&gt;google video&lt;/a&gt;. Also the main authors of the film Jaque Fresco an Architect, Engineer and a Futurist has used Internet to spread his ideas for a long time. Jaques main idea is to use science, nature and technology instead of religion, politics and money to decide the future of our world. I suggest everyone of us watch this movie and treat it not as just another 9/11 conpiracy theory but take the more broader view to change our own lives and then our societies in turn.&lt;br /&gt;&lt;br /&gt;Some other interesting links related to this are,&lt;br /&gt;1. &lt;a title="Zeitgeist Wiki Link" target="_blank" href="http://en.wikipedia.org/wiki/Zeitgeist,_The_Movie" id="o3hl"&gt;Zeitgeist Wiki Link&lt;/a&gt;&lt;br /&gt;2. &lt;a title="Movie Review" target="_blank" href="http://www.scoop.co.nz/stories/HL0710/S00303.htm" id="auhr"&gt;Movie Review&lt;/a&gt;&lt;br /&gt;3. &lt;a title="Zeitgeist Addendum, the follow up" target="_blank" href="http://video.google.com/videoplay?docid=7065205277695921912" id="yeva"&gt;Zeitgeist Addendum, the follow up&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also check out some e-books available on the Zeitgeist Movements official web site.&lt;br /&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-3770773332811881509?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3770773332811881509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3770773332811881509' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3770773332811881509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3770773332811881509'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/10/one-of-biggest-news-to-hit-us-in-recent.html' title='Zeitgeist'/><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-4223767854889437369</id><published>2008-09-28T23:17:00.003+08:00</published><updated>2008-09-28T23:22:48.393+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'>Google Moderator</title><content type='html'>&lt;span style="font-size:85%;"&gt;The famous Google '20 percent' project initiative has produced another product with very high potential. It's called Google &lt;a title="Moderator" href="http://moderator.appspot.com/" id="jwmb"&gt;Moderator&lt;/a&gt;. All of us are very familiar to &lt;a href="http://en.wikipedia.org/wiki/Crowdsourcing"&gt;&lt;span style="text-decoration: underline;"&gt;crowd source&lt;/span&gt;&lt;/a&gt; techniques used in sites like reddit to rank popular web sites. The same technique is used by many user forums where an answer to a question is ranked by the readers to be the best or most suited. But with Moderator, you are assisted to ask the correct questions in the first place.&lt;br /&gt;&lt;br /&gt;You can find obviously popular question topics like 'What should you ask the next US president' to 'Ask a Google engineer'. But the good thing is you can create your own question series and invite people to participate to it. You can think of many ways to use this tool both inside your company and as a general tool to the community.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4223767854889437369?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4223767854889437369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4223767854889437369' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4223767854889437369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4223767854889437369'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/09/famous-google-20-percent-project.html' title='Google Moderator'/><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-4566798086090845114</id><published>2008-08-31T21:32:00.002+08:00</published><updated>2008-08-31T21:36:05.720+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork Gadgets Software'/><title type='text'>Fighting Vista</title><content type='html'>&lt;p id="qwim0" class="MsoNormal"&gt;&lt;img id="h4nl" style="margin: 1em 1em 0pt 0pt; width: 400px; height: 400px; float: left;" src="http://docs.google.com/File?id=dgwzh5hw_51d7ps89ct_b" /&gt; &lt;/p&gt;&lt;p id="ua520" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;After years of having to work with used laptops I was astound to hear that my Employer is going to give me a brand new &lt;a title="HP – 6710b" target="_blank" href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF06a/321957-321957-64295-321838-89315-3356620.html" id="offl"&gt;HP – 6710b&lt;/a&gt; laptop.  I was eager to check out how my productivity increased with the new machine. My working environment usually consists of 2 instances of Visual Studio 2005, MS Office word/excel, IIS 5.1 , 2 DB Servers (SQL and Faircom), Around 10 tabs of Firefox, 2 windows of IE, Skype and MSN, Outlook, Virus Guard and a few other utility programs on a Win XP SP2 box. My problem was that whenever I’m furiously in to a debugging session I end up with insufficient CPU cycles for my crucial programs. So naturally this ‘state-of-the-art’ laptop had brought me new hope.&lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr9" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;As soon as I got my hands on the new laptop I was impressed with its look and hardware features. But my main concern was the fact that the new box is running on Vista Business. What I’ve heard about Vista is not so great. Well, I thought I shouldn’t trust on rumors and should try it my self.  &lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr11" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;First thing was to get all the software installed. One thing I noticed during installations is that you better  run the installer under admin rights. (Choose ‘Run as Administrator’ from the right click menu). The behavior in Vista is such that although your logged in user could be belonging to Local admin group you will have to explicitly mention to the OS that you actually need Admin rights whenever you execute something. &lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr13" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;From the point of getting everything installed it took me nearly 4 -5 days of spare time to get my development environment to a workable state. Main challenges were with getting IIS 7 to run my web applications and enabling them to be debuggable with Visual Studio.  Listed below are some of the steps I did while achieving this feat. Please note that I plan to explore more in to why Vista has these restrictions and on the way discover a few more things to share on the blog. &lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr15" class="MsoListParagraphCxSpFirst" style="margin-left: 0.75in;"&gt;&lt;span style="font-size:85%;"&gt;1.       Turn on IIS related features/requirements&lt;/span&gt;&lt;/p&gt;    &lt;ul id="ua521"&gt;&lt;li id="ua522"&gt;&lt;span style="font-size:85%;"&gt;General instructions -&lt;a id="pwmr23" href="http://geekswithblogs.net/ranganh/archive/2008/01/31/visual-studio-2005-windows-vista-and-iis7.aspx"&gt;http://geekswithblogs.net/ranganh/archive/2008/01/31/visual-studio-2005-windows-vista-and-iis7.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p id="ua523" class="MsoListParagraphCxSpMiddle" style="margin-left: 1.25in;"&gt; &lt;/p&gt;   &lt;ul id="ua524"&gt;&lt;li id="ua525"&gt;&lt;span style="font-size:85%;"&gt;VS 2005 Debuggability - &lt;a id="pwmr28" href="http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p id="pwmr29" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;(I actually disabled UAC which in turn got rid of the annoying gray screen asking me ‘Are you really sure?’ every time I try to do start something productive)&lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr30" class="MsoListParagraphCxSpFirst" style="margin-left: 0.75in;"&gt;&lt;span style="font-size:85%;"&gt;2.       Turn on Windows Authentication&lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr34" class="MsoListParagraphCxSpMiddle" style="margin-left: 0.75in;"&gt;&lt;span style="font-size:85%;"&gt;For the web application you are trying to run you need to enable Windows Authentication. Just select the web application in inetmgr and go to security &amp;gt; authentication and enable it.&lt;/span&gt;&lt;/p&gt;  &lt;p id="pwmr35" class="MsoListParagraphCxSpLast" style="margin-left: 0.75in;"&gt;&lt;span style="font-size:85%;"&gt;3.       Using the Classic .Net Application Pool&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="pwmr35" class="MsoListParagraphCxSpLast" style="margin-left: 0.75in;"&gt;&lt;span style="font-size:85%;"&gt;One of my friends suggested to use Classic .Net application pool and I did configure my application to run on that. But I will do more reading and testing to find out why or why not we can run our applications in Default App Pool in IIS 7.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4566798086090845114?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4566798086090845114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4566798086090845114' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4566798086090845114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4566798086090845114'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/08/after-years-of-having-to-work-with-used.html' title='Fighting Vista'/><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-1128032399621013742</id><published>2008-06-30T20:34:00.002+08:00</published><updated>2008-06-30T20:54:07.926+08:00</updated><title type='text'>Right of (Non)Believing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Richard_Dawkins"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.uchitha.net/blog/uploaded_images/225px-Richard_dawkins-799189.jpg" alt="" border="0" /&gt;&lt;/a&gt; &lt;div id="x0qq"&gt;  &lt;p class="MsoNormal" id="j.3k" style="margin: 0in 0in 10pt;"&gt; &lt;span id="j.3k0"  style="font-size:100%;"&gt;&lt;span id="j.3k1"  style="font-family:Calibri;"&gt;Following is a collection of thoughts I gathered reading a column letter published in the &lt;/span&gt;&lt;/span&gt;&lt;span id="j.3k0"  style="font-size:100%;"&gt;&lt;span id="j.3k1"  style="font-family:Calibri;"&gt;Sinhalese &lt;/span&gt;&lt;/span&gt;&lt;span id="j.3k0"  style="font-size:100%;"&gt;&lt;span id="j.3k1"  style="font-family:Calibri;"&gt;newspaper 'Ravaya'. This piece is written by popular Sinhala novelist Gamini Viyangoda. It's one of the few writings I've seen in Sinhalese about Atheism rights. Some of the other interesting reference material in this area are the book 'God Delusion' and the BBC documentary 'Root of All Evil' by Richard Dawkins.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" id="j.3k" style="margin: 0in 0in 10pt;"&gt;&lt;span id="j.3k0"  style="font-size:100%;"&gt;&lt;span id="j.3k1"  style="font-family:Calibri;"&gt;‘The right to express, hold  and publish my&lt;i id="j.3k4"&gt; ideas &lt;/i&gt;should not challenge the right of the other to criticize the same’. This is a well accepted practice in politics and in all social matters in general. If law comes up and defends my right to protect my idea from being criticized, that law will be grabbing the right of freedom of expression from the other.  Although such laws are not common place, strangely enough, most of the countries have similar laws when it comes to religion.  Although the right to criticize any sort of political opinion is well accepted at a principal level (practice can be different) the same right is not even accepted at a principal level for religion. If I go ahead and try to criticize a religion I most probably be accused of a legal offence.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" id="j.3k7" style="margin: 0in 0in 10pt;"&gt;&lt;span id="j.3k8" style=";font-family:Calibri;font-size:100%;"  &gt;Including Sri Lanka, many countries generally agree that you should not &lt;i id="j.3k9"&gt;‘look down’&lt;/i&gt; upon religions. Actually looking down upon anything be it religion, people or anything at all is not appropriate. But the religious societies misinterpret any sort of criticism towards them as a ‘looking down’ scenario and all of us have got used to accept it as an eternal practice. There could be exceptions when the main religion of a country goes ahead and criticize other religions, but in principal criticism towards any religion is considered as non-ethical in any country. But what is the need to have such a ‘critic-proof’ shield only for religion?&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" id="j.3k10" style="margin: 0in 0in 10pt;"&gt;&lt;span id="j.3k11"  style="font-size:100%;"&gt;&lt;span id="j.3k12"  style="font-family:Calibri;"&gt;Any religious person does NOT like others criticizing his/her religion. So he himself imposes a self-ban on criticizing other religions due to very obvious effects of throwing stones from a glass room. Preventing from criticizing other religions to prevents one’s own religion from getting attacked is a well understood self-preservation mechanism that cannot  be criticized &lt;/span&gt;&lt;span id="j.3k14"  style="font-family:Wingdings;"&gt;&lt;span id="j.3k15"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span id="j.3k16"  style="font-family:Calibri;"&gt;.  But what about an atheist, someone who does not believe in any traditional religion? It is not correct to say that an atheist does not have a religion. Not believing in any religion IS his ‘religion’. So as much as the right of a established believer to rise for his religions correctness and atheist should have the same right for his ‘religion’. On the other hand if the religion is a way of self liberation an individual should have the freedom to decide whether he wants to liberate that way, not the majority or state.  Similar to a Buddhist rejecting the Islam liberation and a Christian refusing the Buddhist liberation and atheist should have the right to say that he does NOT want any religious liberation. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" id="j.3k19" style="margin: 0in 0in 10pt;"&gt;&lt;span id="j.3k20"  style="font-size:100%;"&gt;&lt;span id="j.3k21"  style="font-family:Calibri;"&gt;If someone claims that the refusal for religious liberation is harming the established religions, the same logic should apply against any religious person by another religion. We should not forget that if someones (non)belief in some way harms the society at a more physical level (murder, theft, sexual misconduct etc…) the civil and criminal law is there to handle that as for any other social misconduct.  There have been recent developments in the world promoting this right to non-belief at least at a principal level.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" id="j.3k24" style="margin: 0in 0in 10pt;"&gt;&lt;span id="j.3k25" style=";font-family:Calibri;font-size:100%;"  &gt;While the world progresses on this aspect we as Sri Lankans seem to accelerate backwards. Religion is been continuously used as a way of forcing or isolating people from the mass recently.  It’s still very much a taboo to say that you are an atheist here. Also lots of social and personal tensions rise up due to total myths and traditions which are part and parcel of established religions. At a time when scientists and so called intellectuals come and spread myths about science and religion in media round the clock, even the law seem to be very distant from protecting the innocent public, both believers and non-believers.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" id="j.3k24" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-size:85%;"&gt;PS : The photo is of 'Dr. Richard Dawkins', the famous Atheist and great biologist.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1128032399621013742?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1128032399621013742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1128032399621013742' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1128032399621013742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1128032399621013742'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/06/right-to-express-hold-and-publish-my.html' title='Right of (Non)Believing'/><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-6635294025887201277</id><published>2008-05-12T22:49:00.004+08:00</published><updated>2008-06-30T20:55:24.086+08:00</updated><title type='text'>Kite Runner - For you thousand times over</title><content type='html'>&lt;div id="nx4h" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img id="bl6-0" style="width: 269px; height: 400px;" src="http://docs.google.com/File?id=dgwzh5hw_43ddds9hj2_b" /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;I recently had to stay behind at home due to me being sick. I used up the time to watch some good movies. The one which caught most of my attention and my appreciation afterwards was '&lt;a title="Kite Runner" target="_blank" href="http://en.wikipedia.org/wiki/The_Kite_Runner_%28film%29" id="zwtu"&gt;Kite Runner&lt;/a&gt;'. Kite Runner tries to capture the guilt and tormentation of an Afghan writer living in America tries of the betrayal of his childhood friend. He decides to 'be good again' by rescuing the son of his then killed friend from the Taliban. This is an adaptation of a novel by the Afghan-American writer '&lt;a title="Khaled Hosseini" target="_blank" href="http://en.wikipedia.org/wiki/Khaled_Hosseini" id="uaqc"&gt;Khaled Hosseini&lt;/a&gt;'. The film brought me back memories of feelings I got after watching English Patient some time back. The strong feelings of friendship runs through the film and binds the viewer like the Kite is bind via the string to the little boys.&lt;br /&gt;&lt;br /&gt;I really loved the score of the movie. The English hymn played when Amir's search for little Shorab becomes in vain and when he goes to mosque is heart warming. And I'd love to know the meaning of the song played at the wedding festival. I will start an Internet search to get the soundtrack and post as soon as I find it. Also I started an affection towards the language (Dari Persian). The songs as well as the tones of speech were really warm and touching and rich. The mono-tone view of the Arab world by people like us who really see the Arabs through American lenses is another aspect of my perceptions that can change over time due to this movie.   The official &lt;a title="movie web site" target="_blank" href="http://www.kiterunnermovie.com/" id="rk-x"&gt;movie web site&lt;/a&gt; is also very attractive (Don't forget to listen to soundtrack excerpts). I highly recommend any one of you to watch this movie. I know I'm going to watch it again with my wife this weekend.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6635294025887201277?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6635294025887201277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6635294025887201277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6635294025887201277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6635294025887201277'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/05/i-recently-had-to-stay-behind-at-home.html' title='Kite Runner - For you thousand times over'/><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-3993811765177820113</id><published>2008-04-30T15:30:00.003+08:00</published><updated>2008-08-31T21:39:05.799+08:00</updated><title type='text'>Fight for disk space</title><content type='html'>&lt;img id="r8mh0" style="width: 320px; height: 240px;" src="http://docs.google.com/File?id=dgwzh5hw_41frzp86ft_b" /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;I'm sure all of us encounter the disk space problem in C drive with Windows more often than not. I encountered the same problem recently. Of course I've tried the usual tricks of uninstalling all software I don't need and using windows disk clean etc...But still I was left with around 500 MB of free space from my 12 GB size C drive. Then I set out to find out how to solve this more methodically.  Following are the steps I took and I feel some of them will be helpful to anyone out there when they need to gain some breathing space in the C drive in quick time. (I have a hp compaq nx7010 laptop running windows XP SP2)  1. First thing is to find out where exactly all u'r space has gone. Right clicking on each suspecting folder and finding out the size is not a scalable option. So I found 2 very easy to use freeware. &lt;/span&gt;&lt;ul id="nc-v0"&gt;&lt;li id="nc-v1"&gt;&lt;span style="font-size:85%;"&gt;&lt;a title="Largest file finder" target="_blank" href="http://www.file.net/freeware/largest-files-finder.html" id="xdlw"&gt;Largest file finder&lt;/a&gt; - More concentrated on finding the largest files occupying u'r system &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul id="nc-v2"&gt;&lt;li id="nc-v3"&gt;&lt;span style="font-size:85%;"&gt;&lt;a title="TreeSiz" target="_blank" href="http://www.jam-software.com/freeware/TreeSizeFree.zip" id="w.8q"&gt;TreeSiz&lt;/a&gt; - Gives u a chance to scan the folder of u'r choice and provides a break down of how each folder had consumed space. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt; 2. Using these two tools I found that there are 2 files consuming around 5GB of my hard disk space &lt;/span&gt;&lt;ul id="uzv90"&gt;&lt;li id="uzv91"&gt;&lt;span style="font-size:85%;"&gt;    hiberfil.sys &lt;/span&gt;&lt;/li&gt;&lt;li id="uzv93"&gt;&lt;span style="font-size:85%;"&gt;    pagefile.sys&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;hiberfil.sys is used by the windows hibernation feature. It uses up roughly around 3GB of disk space and my feeling was that I prefer to have more disk space instead of hibernation which anyway gives me weird problems with my hp laptop. So I &lt;a title="disabled hibernation" target="_blank" href="http://www.softwarepatch.com/tips/hiberfil-sys-xp.html" id="b:tc"&gt;disabled hibernation&lt;/a&gt; and got the space back from hiberfil.sys. In the same windows you should be able to find some information which gets rid of all fancy XP animation stuff which can provide you with better performing OS. Try those too.&lt;br /&gt;&lt;br /&gt;Now to the page file. The pagefile is an integral part of windows and you can't get rid of it. What you can do however is to have a minimum size page file running on your C drive while you have the bulk of the page file running on a different disk (or at least a different partition). You first need to know what you are doing by reading &lt;a title="this" target="_blank" href="http://support.microsoft.com/kb/314482/" id="pj4l"&gt;this&lt;/a&gt;. Then you can find out how to do it by reading &lt;a title="this" target="_blank" href="http://support.microsoft.com/kb/307886/" id="gq_r"&gt;this&lt;/a&gt;.  After carrying out the above 2 tasks I was able to gain nearly 4 GB of my disk space and the mere fact of having your page file in a non-frequently accessed drive is bound to make your system perform better.   Please share any un-common ways to gain disk space in windows and in the process improving the system performance.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3993811765177820113?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3993811765177820113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3993811765177820113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3993811765177820113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3993811765177820113'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/04/tips-on-getting-some-space-back-from-xp.html' title='Fight for disk space'/><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-6578766921940402581</id><published>2008-04-22T07:53:00.004+08:00</published><updated>2008-08-31T21:39:41.740+08:00</updated><title type='text'>SQL Express - Usability Improvement</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.uchitha.net/blog/uploaded_images/IMG_30269-758447.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.uchitha.net/blog/uploaded_images/IMG_30269-757724.JPG" alt="" 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;span style="font-size:85%;"&gt;I'm currently in Norway deploying a portal product we have built. This is spring time in Norway and the weather is just starting to be Colombo friendly :). It's amazing how the environment has changed from the autumn, which was when I last visited Norway.  The same trees which used to be in various colors in the Automn is now has gone in to complete hibernation.  The church in the picture was not to be seen in summer/autumn but now we can clearly see it from the apartment.&lt;br /&gt;&lt;br /&gt;Our customer is  a debt collection software vendor and the portal is the product he will sell for collection companies. The product is based on &lt;a target="_blank" title="DotNetNuke" href="http://www.dotnetnuke.com/" id="cwzp"&gt;DotNetNuke&lt;/a&gt; (DNN) and the DNN DB used is SQL Express. With SQL Express we have several limitations when using the product.&lt;br /&gt;&lt;br /&gt;1. DB Size limitation - 4 GB. Since the DNN database we are using is not expected to grow in heaps and bounds this is not really an immediate problem. But any client who has an increasing DB is encouraged to migrate to SQL 2005 server.&lt;br /&gt;&lt;br /&gt;2. CPU Limit - 1 CPU&lt;br /&gt;&lt;br /&gt;3. RAM Limit - 1 GB. Does not use the maximum RAM which is available in the machine.&lt;br /&gt;&lt;br /&gt;4. Practical Problems &lt;/span&gt;&lt;ul id="y_j8"&gt;&lt;li id="ajsz"&gt;&lt;span style="font-size:85%;"&gt;The administrators can NOT open the SQL Express DB from SQL Management studio for maintenance work while the portal is up. Since the SQL Express DB we're using is used as a file the portal gets an access violation when the DB is opened up from the management studio.  &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;The above was the main problem we had during development. But during the deployment I came across an &lt;a title="article" target="_blank" href="http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1202/Default.aspx" id="nutq"&gt;article&lt;/a&gt; which describes how u can set up a file based SQL Express Database to overcome the window file access limitation. This is a very good find since one of the problems we found hard to place the product for new customer could have been this limitation.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6578766921940402581?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6578766921940402581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6578766921940402581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6578766921940402581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6578766921940402581'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/04/im-currently-in-norway-deploying-portal.html' title='SQL Express - Usability Improvement'/><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-3179833405674937699</id><published>2008-03-26T14:10:00.002+09:00</published><updated>2008-03-26T19:18:37.690+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>HTTP requests from the future</title><content type='html'>&lt;p id="ow7b" class="MsoNormal"&gt;&lt;/p&gt;&lt;div id="uew_" style="padding: 1em 0pt; text-align: left;"&gt;&lt;div id="jbzr" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img id="lbp0" style="width: 320px; height: 240px;" src="http://docs.google.com/File?id=dgwzh5hw_32fkvjr3dj" /&gt;&lt;br /&gt;&lt;span id="dimc"  style="font-size:85%;"&gt;These days I'm working on a DotNetNuke (DNN) based Portal development. Our development env is IIS 5.1/XP while our deployment env is IIS 6/Win 2003. During our past 2 deployments we encountered a strange error on IIS 6/Win2003. Soon after the deployment every page in our portal solution spits a java script error 'Sys is undefined'. This is an error related to the ScriptManager.js which is needed in Ajax pages. There were dozens of google search results for this error pointing fingers to IIS, web.config file settings, axd file handlings, Ajax java scripts etc...but we just couldn't figure out the solution quickly enough. After a late night struggle we gave up and decided to check it the day after. When we came and check next day, the problem has got fixed by itself overnight :).&lt;br /&gt;&lt;br /&gt;I always know when problems starts to get fixed by themselves it's a warning sign for worst things ahead. But I just could not reproduce the problem to study it that day. So we went happily in to our final deployment yesterday and here we again had the good old error 'Sys is undefined'.  This time around we dig down and went in to analyzing this in depth. When we looked at the HTTP response for a page 2 requests for a ScriptResource.axd files were having HTTP 500 codes. (Read about .axd files &lt;a href="http://tech-review.org/blogs/.net_2.0/archive/2007/01/25/ajax-under-the-covers-what-exactly-is-the-axd.aspx" title="here" id="af9t"&gt;here&lt;/a&gt; ). When I used &lt;a href="http://www.fiddlertool.com/fiddler/" title="fiddler" id="lwnj"&gt;fiddler&lt;/a&gt; to analyze the HTTP response in detail we caught up with the message&lt;/span&gt;  "&lt;i id="v06."&gt;&lt;span id="gcte"&gt;System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: utcDate". Eureka!!!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span id="yxc2" style="font-family: verdana;font-family:Verdana;font-size:85%;"  &gt;&lt;span id="hg5h"&gt;Now we knew that the problem has to be something to do with the time. In every ScriptResource.axd request there are 2 parameters being sent.&lt;/span&gt;  &lt;span id="mhds"&gt;Eg : ScriptResource.axd?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="yxc2" style="font-family: verdana;font-family:Verdana;font-size:85%;"  &gt;&lt;span id="mhds"&gt;d=8fBiB6-cb_63xIkOjfdl6BCL-uzAt8lEaJgT8GHfNac0VUzhoOSl_j9ebDYDA0Ao0&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="yxc2" style="font-family: verdana;font-family:Verdana;font-size:85%;"  &gt;&lt;span id="mhds"&gt;&amp;amp;t=633420390180000000&lt;/span&gt;  &lt;span id="dko9"&gt;&lt;br /&gt;The 'd' param is relevant to data it is asking for and the other 't' reflects the time which the resource was built. (Use &lt;a title="this tool" href="http://www.guysmithferrier.com/details.aspx?Entry=143" id="k:nx"&gt;this tool&lt;/a&gt; to decrypt axd requests). The problem was that our win 2k3 servers time was not accurate and it actually resided in the past ( A few hours). Thus the axd request was seen by the server as requests coming from something which was built in the future.&lt;/span&gt;    &lt;span id="sgmr"&gt;After the problem was identified the root cause finding was not difficult. Our win2k3 time synchronizing service had a problem. Now we were able to think back and understand why this problem got fixed on it's own the last time :). The problem just slept over it till the server time difference was consumed. Isn't that a nice way to solve problems....just sleep over it :)&lt;/span&gt;&lt;/span&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-3179833405674937699?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3179833405674937699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3179833405674937699' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3179833405674937699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3179833405674937699'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/03/these-days-im-working-on-dotnetnuke-dnn.html' title='HTTP requests from the future'/><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-8859454351993596058</id><published>2008-03-09T15:52:00.001+09:00</published><updated>2008-03-26T14:24:37.980+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Continuous Documentation cont...</title><content type='html'>As it usually happens, after going through all the troubles to have a continuous documentation happening (see previous post) in my project I found out a much easier way to achieve the same. While the previous post concentrated on purely using the native sandcastle xsl files to apply several xml/xsl transforms using Nant, the new easier method will rely on the very useful tool '&lt;a href="http://www.codeplex.com/SHFB"&gt;Sandcastle Help File Builder&lt;/a&gt;' or SHFB as it's also known. You need to download and install SHFB in both your local machine and the build machine. ( It would be better to breeze through my previous post before you go through this)&lt;br /&gt;&lt;br /&gt;Let me run through the simple steps involved in this method.&lt;br /&gt;1. Open up  &lt;a title="SHFB Main Screen" target="_blank" href="http://uchitha.net/blog/uploads/shfb.jpg" id="qtzl"&gt;SHFB&lt;/a&gt; in your local machine and configure it to generate the documentation to your project.&lt;br /&gt;2. Some important steps in configuring the SHFB are,&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;ul&gt;&lt;li&gt;Adding the assembly and the documentation xml (Generated from the Nant -doc attribute as mentioned int he previous post) for documentation&lt;/li&gt;&lt;li&gt;Adding the dependent assemblies needed to build the main assembly&lt;/li&gt;&lt;li&gt;Choose the helpfile format (I choose Help2xAndWebSite)&lt;/li&gt;&lt;li&gt;Set HtmlHelp2xCompiler Path (Where you have installed HTML Help Workshop, see previous post)&lt;/li&gt;&lt;li&gt;Set output path&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;3. Build the SHFB project and let the documentation to generate&lt;br /&gt;Now you will have the documentation files (html, chm) in your local machine, which is not our target. We want the documentation to build periodically, automatically in our build machine. Patience....2 more steps.&lt;br /&gt;4. Now save your SHFB project and you will find a SHFB configuration file. Get it copied to your build machine.&lt;br /&gt;5. Now include the following task tag in to your ccnet documentation project (other project tags are not mentioned here) and you are ALL SET to have continuous documentation running in your project.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;lt;tasks&amp;gt;&lt;/i&gt; &lt;i&gt;    &amp;lt;exec&amp;gt;&lt;/i&gt; &lt;i&gt;      &amp;lt;executable&amp;gt;C:Program FilesEWSoftwareSandcastle Help File BuilderSandcastleBuilderConsole.exe&amp;lt;/executable&amp;gt;&lt;/i&gt; &lt;i&gt;      &amp;lt;baseDirectory&amp;gt;D:WorkDirSandcastleWorkDirSPNPortalDocumentation&amp;lt;/baseDirectory&amp;gt;&lt;/i&gt; &lt;i&gt;      &amp;lt;buildArgs&amp;gt;"D:WorkDirSandcastleWorkDirSPNPortalDocumentationDocumentationSettings.shfb"&amp;lt;/buildArgs&amp;gt;&lt;/i&gt; &lt;i&gt;      &amp;lt;buildTimeoutSeconds&amp;gt;10800&amp;lt;/buildTimeoutSeconds&amp;gt;&lt;/i&gt; &lt;i&gt;    &amp;lt;/exec&amp;gt;&lt;/i&gt; &lt;p&gt;&lt;i&gt;  &amp;lt;/tasks&amp;gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;                        Pay attention to the 'buildArgs' element where you specify where the shfb configuration file can be found.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-8859454351993596058?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/8859454351993596058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=8859454351993596058' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8859454351993596058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/8859454351993596058'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/03/as-it-usually-happens-after-going.html' title='Continuous Documentation cont...'/><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-2455407467561019987</id><published>2008-01-18T17:56:00.002+09:00</published><updated>2008-03-26T14:24:37.980+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cruise Control.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Nant'/><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandcastle'/><title type='text'>Continuous Documentation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_d5tbeClDyKg/R5BxRYMAnDI/AAAAAAAAACE/HzfYEbvnjoQ/s1600-h/ECBoys_Knuckles+058.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_d5tbeClDyKg/R5BxRYMAnDI/AAAAAAAAACE/HzfYEbvnjoQ/s320/ECBoys_Knuckles+058.jpg" alt="" id="BLOGGER_PHOTO_ID_5156746116703755314" 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;Continous Integration (CI) is not a new topic anymore. It has been a proven method to make sure your code works as expected every single time you do a change to it. Usually a CI process focused on building a project (Deployment might involve more steps) involves steps like,&lt;br /&gt;&lt;br /&gt;1. Detect changes to the source&lt;br /&gt;2. Download the updated source from source control to the build machine&lt;br /&gt;3. Compile the source and build the binaries&lt;br /&gt;4. Run the unit test suite&lt;br /&gt;5. Publish the result to relevant people&lt;br /&gt;&lt;br /&gt;The additional step I'm going to focus in this posting is documentation. i.e To generate the documentation for the complete source automatically using the CI tool, which I prefer to call 'Continuous Documentation'. My focus will be on ways and technologies to achieve this in the Microsoft technology domain.&lt;br /&gt;&lt;br /&gt;The most popular documentation generation tool for .Net is Sandcastle. The way to achieve our target is to write a Nant target which produces the documentation in either html or chm format and to call this Nant target at an appropriate time from CruiseControl.Net (CruiseControl.Net is the build scheduler while Nant is the actual builder).&lt;br /&gt;&lt;br /&gt;Most of the learnings on how exactly to do this is from this article on code project. There were some discrepancies in that article with respect to latest SandCastle version and I'd like to emphasize on those points. (To keep the post short only important nant extracts are mentioned in the post it self. The complete Nant target will be attached for your convinience)&lt;br /&gt;&lt;br /&gt;1. Compile your source with the additional 'doc' attribute to 'csc' (C-Sharp compile) nant target.&lt;br /&gt;Eg:&lt;br /&gt;&lt;br /&gt;&amp;lt;csc target="library" debug="${debug}"  output="${foo.dll.dir}\foo.dll" doc="${foo.dll.dir}\SPN.PredatorAPIDoc.xml" &amp;gt;&lt;br /&gt;&lt;br /&gt;2. Copy a Sandcaslte configuration file from the default configurations that comes with Sandcastle. You just have to replace the default documentations comments xml with your own doc xml 'fooDoc.xml' generated from previous step. Sandcastle comes with 3 default configurations hana, vs2005 &amp;amp; prototype. I'm using vs2005 here. (Instead you can have the required sandcastle config file in your source and refer it as well)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Run the MrefBuilder to generate a basic reflection XML by introspecting on the assemply&lt;br /&gt;&lt;br /&gt;&amp;lt;exec program="${sandcastle.mrefbuilder.exe}" workingdir="${sandcastle.workingdir}"&amp;gt;&lt;br /&gt;&amp;lt;arg value="..\${foo.dll.dir}/foo.dll" /&amp;gt;&lt;br /&gt;&amp;lt;arg value="/out:reflection.org1.xml" /&amp;gt;&lt;br /&gt;&amp;lt;arg value="/dep:..\foo.Lib/*.dll" /&amp;gt;&lt;br /&gt;&amp;lt;/exec&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Next step is to run a step of xmltransformations (using xsl) on this basic reflection xml from the preivious step&lt;br /&gt;&amp;lt;exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}"&amp;gt;&lt;br /&gt; &amp;lt;arg value="reflection.org1.xml" /&amp;gt;&lt;br /&gt; &amp;lt;arg value="/xsl:"{sandcastle.applyvsdocmodel.xsl}" /&amp;gt;&lt;br /&gt; &amp;lt;arg value="/out:reflection.org2.xml" /&amp;gt;&lt;br /&gt;&amp;lt;/exec&amp;gt;&lt;br /&gt;&lt;br /&gt;Similar to above you need to run a few more transformations and you can also run some additional transformations as you wish. (Eg : FriendlyFileNames.xsl). There are many presentation transformations in ProductionTransforms subfolder in Sandcastle installation directory. I faced some difficulties getting all these transformation mentioned in the code project article to work. My approach was to refer the example MS Build script (&amp;lt;SandCastle_Install_dir&amp;gt;\Examples\sandcastle\build.proj) which was shipped with Sandcastle and to convert the transformations mentioned there to Nant.&lt;br /&gt;&lt;br /&gt;This step (or series of steps) should result from a final reflection file called the reflection.xml&lt;br /&gt;&lt;br /&gt;5. Now copy the other presentation helper directories (scripts, icons, styles) from Sandcastle_installation_dir/Presentation/vs2005 in to a subdir inside ${sandcastle.workingdir}.&lt;br /&gt;&lt;br /&gt;6. Next you need to create some source files for Help compiler which generates a chm file. These files are&lt;br /&gt;&lt;br /&gt;*  hhp file - Html Help Project file&lt;br /&gt;*  toc.xml - Table of Contents file&lt;br /&gt;*  hhc file - Chm contents file out of toc&lt;br /&gt;*  hhk file - Chm index file from the final reflection xml&lt;br /&gt;&lt;br /&gt;For all the above  you will be using some kind of xml transformation (xsl) which comes with sandcastle.&lt;br /&gt;&lt;br /&gt;7. And the grand final step is to use Html Help Workshop's hhc.exe help compiler to compile all above files in to a single chm file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;exec program="${hhc.exe}"&lt;br /&gt;     commandline=".\test.hhp"&lt;br /&gt;     workingdir="${sandcastle.output.dir}"&lt;br /&gt;     failonerror="false"/$gt;&lt;br /&gt;&lt;br /&gt;Finally you will have a chm file which is the compiled help file which can be distributed with your application.&lt;br /&gt;&lt;br /&gt;Since documentation generations is usually a time-taking process I suggest you run this nant target as a nightly task. So you have the documentation getting updated each day as opposed to each check-in. Use the &amp;lt;triggger&amp;gt; block of CC.Net to schedule this documentation task as a separate CC.Net project which runs every night.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having the documentation up-to-date like this helps your project in several ways.&lt;br /&gt;&lt;br /&gt;1. You have a ready to pack deliverable without any extra effort at the end of the project&lt;br /&gt;2. You can send the documentation for review very early&lt;br /&gt;3. The development team can readily refer the documentation as and when new parts are added to the system&lt;br /&gt;4. Encourages developers to document as and when they code&lt;br /&gt;&lt;br /&gt;PS : The complete Nant script can be found &lt;a href="http://uchitha.net/blog/uploads/SandCastleDocNative_Nant.xml"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2455407467561019987?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2455407467561019987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2455407467561019987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2455407467561019987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2455407467561019987'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/01/continious-documentation.html' title='Continuous Documentation'/><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://bp3.blogger.com/_d5tbeClDyKg/R5BxRYMAnDI/AAAAAAAAACE/HzfYEbvnjoQ/s72-c/ECBoys_Knuckles+058.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-1101201344232138245</id><published>2008-01-03T14:52:00.001+09:00</published><updated>2008-03-26T14:25:15.231+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Visit to Sandefjord, Norway</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;As per a request by one of our clients in Norway, me together with 3 other engineers had to travel to Southern Norway to a small city called Sandefjord. We stayed there for a period of 4 weeks during the month of September. This was my first exposure to winter like weather and it was luckily not the fully fledged winter but the autumn.&lt;br/&gt;&lt;br/&gt;We were working on a potential Portal project for our customer 'System Partner Norge AS' (SPN). SPN is a Software Product vendor for a very popular credit management system called 'Predator'. The initial study of their requirements together with the knowledge about their internal systems were acquired during our stay. &lt;br/&gt;&lt;br/&gt;The working conditions in Norway is much different to what we have here in Sri Lanka. It's kind of small office based arrangements as opposed to tiny cubicles we have at Sri Lanka. The people are somewhat reserved but once you get to know them they seem to be friendly and kind. The facilities you find in SPN is of very high quality as oppose to an normal Sri Lankan software firm. Also the outside environment close to the harbor and protected camping area make it much more pleasing to the eye compared to the busy, smoking cities like Colombo &amp;amp; Bangalore. All in all Norway is a pretty good country to live &amp;amp; work if not for the cold weather.&lt;br/&gt;&lt;br/&gt;During this visit I was able to travel briefly to some other European cities as well like Amsterdam, Fedrickshavn (Denmark), Stromstaud (Sweden). It was a really novel experience for me to travel on a ferry and the overnight journey to Denmark will never be forgotten. &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_d5tbeClDyKg/R3x5ItIMzyI/AAAAAAAAABg/oqkI6gsx_ac/s1600-h/IMG_2181.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_d5tbeClDyKg/R3x5ItIMzyI/AAAAAAAAABg/oqkI6gsx_ac/s320/IMG_2181.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151125264264908578" /&gt;&lt;/a&gt;&lt;br /&gt;SPN Office near the harbor&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_d5tbeClDyKg/R3x9p9IMzzI/AAAAAAAAABo/xoK7Nb105Xs/s1600-h/IMG_2195.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_d5tbeClDyKg/R3x9p9IMzzI/AAAAAAAAABo/xoK7Nb105Xs/s320/IMG_2195.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151130233542070066" /&gt;&lt;/a&gt;&lt;br /&gt;Overlooking SPN from the sea&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_d5tbeClDyKg/R3yAU9IMz0I/AAAAAAAAABw/P5T4eZDpmFI/s1600-h/IMG_2393.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_d5tbeClDyKg/R3yAU9IMz0I/AAAAAAAAABw/P5T4eZDpmFI/s320/IMG_2393.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151133171299700546" /&gt;&lt;/a&gt;&lt;br /&gt;Our customer Hans with me &amp; my co-engineer Chatura&lt;/br&gt;&lt;br /&gt;&lt;p class='poweredbyperformancing'&gt;Powered by &lt;a href='http://scribefire.com/'&gt;ScribeFire&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1101201344232138245?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1101201344232138245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1101201344232138245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1101201344232138245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1101201344232138245'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2008/01/visit-to-sandefjord-norway.html' title='Visit to Sandefjord, Norway'/><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://bp0.blogger.com/_d5tbeClDyKg/R3x5ItIMzyI/AAAAAAAAABg/oqkI6gsx_ac/s72-c/IMG_2181.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-3002991511875736939</id><published>2007-12-27T21:35:00.000+09:00</published><updated>2008-01-02T13:29:10.497+09:00</updated><title type='text'>My Year Ending Update?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://bp0.blogger.com/_d5tbeClDyKg/R3Og19IMzxI/AAAAAAAAABY/oeehmpDYuTw/s1600-h/IMG_2317.JPG' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5148635647817076498' alt='' src='http://bp0.blogger.com/_d5tbeClDyKg/R3Og19IMzxI/AAAAAAAAABY/oeehmpDYuTw/s320/IMG_2317.JPG' style='margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;'/&gt;&lt;/a&gt;I finally made up my mind to put up an entry after a long lapse. I thought it was my duty to post before this year comes to an end. My last posting was in August and lots and lots of things have happened since then. Let me summarize,&lt;br/&gt;1. I went to Norway for a period of 1 month to work with one of our customers &lt;a href='http://www.spn.no/'&gt;System Partners&lt;/a&gt; Norway.&lt;br/&gt;2. I was involved in implementation of CMMI in my company, &lt;a href='http://www.eurocenterddc.com/'&gt;Eurocenter&lt;/a&gt;&lt;br/&gt;3. I learnt a lot about Software Estimations.&lt;br/&gt;4. I learnt &amp;amp; implemented a continuous integration system with unit-testing for a project in Eurocenter.&lt;br/&gt;&lt;br/&gt;I plan to post entries on each one of them as soon as possible.&lt;br/&gt;&lt;br/&gt;Till then take care everyone!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-3002991511875736939?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/3002991511875736939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=3002991511875736939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3002991511875736939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/3002991511875736939'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/12/my-year-ending-update.html' title='My Year Ending Update?'/><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://bp0.blogger.com/_d5tbeClDyKg/R3Og19IMzxI/AAAAAAAAABY/oeehmpDYuTw/s72-c/IMG_2317.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-4006095740310625833</id><published>2007-08-20T11:22:00.001+08:00</published><updated>2007-08-20T12:09:53.350+08:00</updated><title type='text'>Dilbert Blog</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_d5tbeClDyKg/RskTPw6cWlI/AAAAAAAAAA4/m2XaDuje6F8/s1600-h/dilbert2052375070731.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_d5tbeClDyKg/RskTPw6cWlI/AAAAAAAAAA4/m2XaDuje6F8/s400/dilbert2052375070731.gif" alt="" id="BLOGGER_PHOTO_ID_5100629214522792530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Most of the readers of a blog should have read or seen Dilbert. The cartoon engineer whom we all can relate to along with his colleagues all of whom we can relate to again.  After being a dilbert fan for a while I started reading Dilbert creator Scott Adams blog. Let me tell you, Scotts blog is n times (n&amp;gt;1) funnier than Dilbert it self. Can u imagine it? Yep..its true. &lt;/p&gt; &lt;p&gt;Dilbert blog has several kinds of entries. What catches me most is Scotts ability to convert a normal situation to an extremely funny one without much effort at all.Some interesting things he talks about are his crazy (yet sounding very much practicle) innovations, question of the day, science and relegion, media, immigration etc...&lt;/p&gt; &lt;p&gt;Out of 100s of useful blogs which can give me loads of knowldege and information I make it a point to read Dilbert Blog each day! You should also subscribe to its RSS &lt;a href="http://dilbertblog.typepad.com/the_dilbert_blog/index.rdf"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-4006095740310625833?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/4006095740310625833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=4006095740310625833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4006095740310625833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/4006095740310625833'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/08/dilbert-blog.html' title='Dilbert Blog'/><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://bp2.blogger.com/_d5tbeClDyKg/RskTPw6cWlI/AAAAAAAAAA4/m2XaDuje6F8/s72-c/dilbert2052375070731.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-2947773736332487074</id><published>2007-08-03T16:28:00.001+08:00</published><updated>2008-03-26T14:25:15.232+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>DNN Schedulers</title><content type='html'>&lt;p&gt;Writing scheduled tasks in ASP.Net is not a trivial thing. For a start, I haven't written any. So when we had to design a scheduler for Dot Net Nuke (DNN) it appeared even more daunting. DNN is a portal framework built on top of ASP.Net and its the underneath framework being used for the current project I'm working on. &lt;/p&gt; &lt;p&gt;The problem with ASP.Net scheduling is the fact that the ASP.Net worker process gets recycled every now and then. So once the worker process goes down (shutting down any schedulers with it) it will not be up again until someone hits the web site again.&amp;nbsp; Someone had also suggested writing windows services which operates independent of ASP.Net as schedulers. The recycling of the worker process is a very important feature in ASP.net which enables the server not to be taken down by runaway applications.&amp;nbsp; But&amp;nbsp;one downside of this is the impact to the scheduler. But as long as someone is visiting your web site the scheduler will keep on running. &lt;/p&gt; &lt;p&gt;Lucky for me DNN had an inbuilt scheduling engine.&amp;nbsp; This had almost all the features you would want from a scheduler. It has a easy to implement interface for me write my own scheduling tasks (DotNetNuke.Services.Scheduling.Scheduler interface in DotNetNuke.DNNScheduler.DLL), It has easy to use interfaces for me to configure it and it also provides history views for me to check how my scheduler was performing its tasks. &lt;/p&gt; &lt;p&gt;It was pretty easy for me to implement a simple test scheduler according to DNN documentation. I just have to wait and see what kind of complications could arrive when I implement the real scheduler which is to migrate potential DNN users from a legacy system to the DNN portal on a daily basis.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-2947773736332487074?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/2947773736332487074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=2947773736332487074' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2947773736332487074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/2947773736332487074'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/08/dnn-schedulers.html' title='DNN Schedulers'/><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-7556619970336810614</id><published>2007-07-08T12:02:00.001+08:00</published><updated>2007-07-08T12:32:34.240+08:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Mentoring&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_d5tbeClDyKg/RpBkzOWXLvI/AAAAAAAAAAk/sX8kijY2Zmc/s1600-h/CIMG2767.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 227px; height: 169px;" src="http://bp1.blogger.com/_d5tbeClDyKg/RpBkzOWXLvI/AAAAAAAAAAk/sX8kijY2Zmc/s200/CIMG2767.JPG" alt="" id="BLOGGER_PHOTO_ID_5084674810489286386" border="0" /&gt;&lt;/a&gt;Recently I got involved with a new initiative from our local universities. The initiative was to enable young under-graduates to take part in mentoring sessions carried out by industry people. I was part of this programme as a mentor for computer eng &amp; information technology under grads.  Although the mentoring programme was designed and executed so that the under grads would learn and be more&lt;br /&gt;prepared to their industrial roles in the future, I my self learnt/realized a lot from these sessions.  I'd like to share a few things on that. &lt;p&gt;The course designed by the University includes study areas such as organizational behaviour and attitudes, importance of communication, presentation skills, Team Work, Leadership skills and career skills etc... But during the session I carried out I was more inclined to start with a particular subject area and the take the discussion according to the natural flow. I discovered that the students were very interested to know about different career paths available in the software/IT  industry. Also the skills and attributes the industry is looking for in each of these different career paths. &lt;/p&gt; &lt;p&gt;So back to the things I learnt part....&lt;/p&gt; &lt;p&gt;1. Realizing how much more we have learnt during our 3 years of work after the degree&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Sometimes during the discussions we keep on talking about very common things which we encounter in our day to day work without realizing that the students don't have the slightest of clue about what it is.  This is actually a fault or negligence on our part to go back to the days when we were at the university. I'm pretty confident that the current students are much more knowledgeable about the industry than we were at the same age.  Still someone who had worked for a couple of years will learn/hear about very many things and we should be careful enough not to overwhelm the students with such learning's, yet make sure that they actually get some of it in to their minds.&lt;br /&gt;&lt;/div&gt;&lt;p&gt;2. Learning the fact that we can actually ignite a spark which can make a difference&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;I have seen several students improve during the several weeks I've been able to spend with them. And some of them asking the kind of questions that they never asked in the initial phases. Most of them actually have won 50% of the battle. i.e having the right kind of questions. That will surely lead them to finding the answers them selves.  I guess our job as mentors is to ignite the right questions in the minds of students and let them find the answers appropriate to each and every one of them.&lt;br /&gt;&lt;/div&gt;&lt;p&gt;3. Realizing that we ourselves haven't actually learnt some important skills yet&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;One of the most important lessons I have learnt is the fact that we actually don't posses many of the important skills we should have in the first place. For example there were sessions in this course to discuss about communication skills. Although we know that it's very important to have good communication skills,  I can safely say that most of us never really studied enough about proper communication skills and how to grow them.  In that sense I've learnt about several areas which I should do some studying and improve on. &lt;/p&gt; &lt;p&gt;As a final note I want to say that I really enjoy these sessions with students. It make me feel that we're actually doing something important which could make a little change (albeit atomic) in somebody Else's lives. This feeling of importance or satisfaction is very important and I feel it's something lacking in Software Engineers. We rarely get the real satisfaction that we have actually helped another human being and taken them to another level. Ya..we do take our customers (business men/ corporations) to another level, but that's not the kind of satisfaction I'm talking about. This is the feeling of selflessness, joy you get after helping out someone on one to one basis. I'd like to recommend any one who had a few years of work experience behind them to share what ever they have learnt with the next level of people who will take our places in near future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-7556619970336810614?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/7556619970336810614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=7556619970336810614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7556619970336810614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7556619970336810614'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/07/mentoring.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://bp1.blogger.com/_d5tbeClDyKg/RpBkzOWXLvI/AAAAAAAAAAk/sX8kijY2Zmc/s72-c/CIMG2767.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-1783754886003081050</id><published>2007-05-23T19:25:00.001+08:00</published><updated>2008-03-26T14:25:15.233+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Re-Learning java scripts</title><content type='html'>&lt;p&gt;For my current project of a credit management portal I had to re-visit java scripts to perform some client side validations. I have never got the chance to do JavaScripts with ASP.Net 2.0 and every simple damn thing abt those 2 technologies together was foreign to me and I had to learn from scratch. Thought I should just jot down a few things I've learnt along the way. &lt;/p&gt; &lt;ol&gt; &lt;ol&gt; &lt;li&gt;Internationalizing the javascript messages&amp;nbsp;&lt;br&gt;You can attach java scripts to the page at server side as oppose to writing the whole thing in the html page (or seperate java script file) it self as we use to. So at the server side u have all the localizations tools/APIs in your hand and you can&amp;nbsp;pump localized content in to your javascript.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;em&gt;&amp;nbsp; &lt;br&gt;string javaScriptString = 'blah blah blah ' + Localization.GetString('Key',LocalResourceFile) Page.ClientScript.RegisterClientScriptBlock&amp;nbsp;(this.GetType(),'NameOfScript',javaScriptString);&lt;/em&gt;  &lt;li&gt;Prevent Postback of a page&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Again adding java scripts to client side events can be done at the server side. &lt;br&gt;&lt;em&gt;TextBox1.Attributes.Add('OnClick', 'showHelp')&lt;/em&gt; will call the showHelp javascript once the button is clicked by the user. But what happens by default is that the page anyway is sent to the server as a post back. In order to prevent it the attribute should be added as follows. &lt;br&gt;&lt;em&gt;TextBox1.Attributes.Add('OnClick','return showHelp').&lt;/em&gt; &lt;br&gt;In this instance if the showHelp function returns false, the page will not be posted back.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;p&gt;Attaching the javascript to the page at server side and having event handlers bind at server side are two simple yet useful tricks I learnt. You can increse the flexibility of your event handling model (Eg: You can add and remove the attributes from a control based on server side logic) with this easily.&lt;/p&gt; &lt;p&gt;With the popularization of Ajax on web the importance of learning java scripts is again emphasized to the developer community.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-1783754886003081050?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/1783754886003081050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=1783754886003081050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1783754886003081050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/1783754886003081050'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/05/re-learning-java-scripts.html' title='Re-Learning java scripts'/><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-7447959482181078115</id><published>2007-05-18T12:09:00.001+08:00</published><updated>2007-05-18T12:17:31.038+08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_d5tbeClDyKg/Rk0otsauPsI/AAAAAAAAAAM/SQKJRFkmcC4/s1600-h/mossy_foot.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_d5tbeClDyKg/Rk0otsauPsI/AAAAAAAAAAM/SQKJRFkmcC4/s320/mossy_foot.jpg" alt="" id="BLOGGER_PHOTO_ID_5065749921344143042" border="0" /&gt;&lt;/a&gt;&lt;p&gt; &lt;/p&gt; &lt;p&gt;Aren't u &amp;amp; I feel tired of this life at least several times a day? I mean 24 hours doesn't seem to be enough to do all the things that we wanna do. Life is so fast with fast foods, fast driving, rapid learning, rapid developoment etc...yet we're always falling behind, running after something which keeps eluding us. &lt;/p&gt; &lt;p&gt;The &lt;a href="http://www.slowmovement.com/"&gt;'Slow Movement'&lt;/a&gt; has been set up to turn this around. They promote the idea of living slowly.  Turn down the volume in our life stereos. Driven by the success owned by the &lt;a href="http://www.slowfood.com/"&gt;'Slow Food'&lt;/a&gt; campaign of the italians against the 'Fast Food'/Big Mac culture, there are many 'Slow Cities' now set up (mainly in Italy). &lt;/p&gt; &lt;p&gt;A slow city emphasises on less traffic, less noise, home made food, scholls paying more attention to life/morale/purpose, domestic industries etc...  &lt;/p&gt; &lt;p&gt;Although u can't have all our cities to be slow overnight we can pick some ideas from these movements and try to give our selves more time to enjoy life at least make time to see for ourselves how it flows....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-7447959482181078115?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/7447959482181078115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=7447959482181078115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7447959482181078115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/7447959482181078115'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/05/living-slowly.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://bp3.blogger.com/_d5tbeClDyKg/Rk0otsauPsI/AAAAAAAAAAM/SQKJRFkmcC4/s72-c/mossy_foot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-590037790244522163</id><published>2007-05-02T11:51:00.001+08:00</published><updated>2007-05-02T11:51:06.761+08:00</updated><title type='text'>Are we killers?</title><content type='html'>&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Virginia_Tech_massacre"&gt;Virginia Tech massacre&lt;/a&gt; is one of many incidents of a raged or so called disturbed human being killing his fellow beings without any known/common motives like war, poverty, robbery, personal fight etc...&lt;/p&gt; &lt;p&gt;After identifying the &lt;a href="http://en.wikipedia.org/wiki/Seung-Hui_Cho"&gt;killer&lt;/a&gt; the &amp;nbsp;media is slowly but surely convincing us that he is indeed an abnormal human being who had shown signs of this from his childhood and in the recent past and so called authorities haven't paid enough attention to chase him out of the society. So making sure that out of the ordinary people like 'Cho' are identified properly and put to mental hospitals might save us from future similar incidents. Or will it?&lt;/p&gt; &lt;p&gt;It is now known that 'Cho' was a consistent fun-factor in school &amp;amp; college. His quite style and peculiar way of English speaking had been a reason for other students to make fun of him. And the natural distant relationships existing in many developed countries like US had not allowed anyone to be close to 'Cho'.&amp;nbsp; After 9/11 the Bush regime has done whatever is possible to inflict fear upon its citizens and had succeeded in BIG time. Many of the US people now feel that the whole world is just plotting their fall day &amp;amp; night, thanks to Mr.Bush &amp;amp; co. Naturally this makes&amp;nbsp;a foreign skin so much more alien to US citizens and make it much more difficult to build close connections with those people.&lt;/p&gt; &lt;p&gt;I'm sure we&amp;nbsp;ourselves have neglected so many similar situations&amp;nbsp;in our day to day work. Do u have any&amp;nbsp;people in u'r office who doesn't interact with&amp;nbsp;u like others do? Have u thought about&amp;nbsp;why they behave like that?&amp;nbsp;Can u do something about it? I'm sure you agree with me that&amp;nbsp;making a better connection with such people is better.&lt;/p&gt; &lt;p&gt;My argument is that although we haven't&amp;nbsp;gone wild and shot people in our school or neighborhood we definitely have assisted in some way or the other for killings like this. A real tiny negligence could be the life changing &lt;a href="http://www.imdb.com/title/tt0289879/"&gt;'Butterfly Effect'&lt;/a&gt;&amp;nbsp;&amp;nbsp;for another person. &lt;/p&gt; &lt;p&gt;Please pay more attention to people around you. Not in the sense where u try to identify whether that person is a threat and to make sure he/she is taken out from the system. But to make that person a part of the society, how different that person may be from the norm. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-590037790244522163?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/590037790244522163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=590037790244522163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/590037790244522163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/590037790244522163'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/05/are-we-killers.html' title='Are we killers?'/><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-5344572912994878540</id><published>2007-04-25T19:21:00.001+08:00</published><updated>2007-04-25T19:25:37.481+08:00</updated><title type='text'>Sri Lanka in the finals again...</title><content type='html'>&lt;p&gt;We thrashed NewZealand in the Semi-Finals of the &lt;a href="http://www.cricinfo.com/worldcup2007/"&gt;Cricket World Cup&lt;/a&gt; yesterday/today. It was really worth being up till 4 AM in the morning to see our boys just bashing the hell out of the hapless NewZealand team. The &lt;a href="http://content-sl.cricinfo.com/wc2007/engine/current/match/247505.html"&gt;score&lt;/a&gt; doesn't really reflect how much of a bashing it was. The death over batting of Mahela and the first spell of fiery fast bowling from Malinga was a treat to watch. &lt;/p&gt; &lt;p&gt;I'll probably stay awake tonight too to watch what happens in the other Semi-Final between Australia &amp;amp; SouthAfrica. &lt;/p&gt; &lt;p&gt;Yesterdays game was a terrible game for both umpires (&lt;a href="http://content-sl.cricinfo.com/wc2007/content/current/player/45830.html"&gt;Rudy&lt;/a&gt; &amp;amp; &lt;a href="http://content-sl.cricinfo.com/wc2007/content/current/player/7918.html"&gt;Taufffel&lt;/a&gt;) who gave dreadful decisions one after the other. I hope things don't go so bad in the finals.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Although Australia are still the favourites we feel comfortable being the underdogs, underdogs who could very well prove to be fierce lions in the finals.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-5344572912994878540?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/5344572912994878540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=5344572912994878540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5344572912994878540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/5344572912994878540'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/04/sri-lanka-in-finals-again.html' title='Sri Lanka in the finals again...'/><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-6804734678683758236</id><published>2007-04-20T20:39:00.001+08:00</published><updated>2008-03-26T14:25:15.235+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Debugging VC++ dlls from .Net</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;In my current project we have to use a legacy VC++ dll to be called from our .Net assemblies. In addition I needed to be able to debug the C++ code from my .Net assembly project.  &lt;p&gt;I found out that there are certain simple steps to carry out in order to achieve this.  &lt;p&gt;1. Make the necessary functions in C++ exportable.  &lt;p&gt;2. Make your C++ dll debuggable. You have to build the project on DEBUG configuration in order to that. There will be debug symbol files like .pdb being generated.  &lt;p&gt;3. Now declare the calling method signature in your .Net code as follows inside the class.  &lt;p&gt;[DllImport ../VCPlusProject/bin/Debug/VCPlus.dll", EntryPoint = "VCPlusMethodToCall", SetLastError = true)]&lt;br&gt;public static extern bool IsMethodCalled(int param)  &lt;p&gt;4. The implemented method will be a normal .Net method as follows.  &lt;p&gt;bool sucess = VCPlusMethodToCall(10);  &lt;p&gt;Now everything is ready to let the cat out of the bag!  &lt;p&gt;5. Start the VS.Net project in debug mode and try to debug in to the "VCPlusMethodToCall" method. The VC++ code will be debuggable inside VS.Net.  &lt;p&gt;Neat...huh????&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-6804734678683758236?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/6804734678683758236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=6804734678683758236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6804734678683758236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/6804734678683758236'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/04/debugging-vc-dlls-from-net.html' title='Debugging VC++ dlls from .Net'/><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-117454343525139064</id><published>2007-03-22T16:03:00.000+09:00</published><updated>2008-03-26T14:25:15.236+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Uninstall the Uninstallers - $NtUninstall</title><content type='html'>&lt;blockquote&gt; &lt;p&gt;Recently I ran out of my C drive space. The whole Microsoft package of Windows, Office, Visual Studio, Sql Server is way too much for my space capabilities. &lt;/p&gt; &lt;p&gt;Anyway I needed to check how I can free some space on C since I don't have much faith in Partition Magic when I have ard 20GB of data in my C drive. &lt;/p&gt; &lt;p&gt;What I noticed was the existance of a lot of $NTUninstall folders in my windows directory. These contain the uninstall information for all the hotfixes that Microsoft sends out each and everyday.&amp;nbsp;It has consumed nearly 500 MB of my precious disk space. &amp;nbsp;You can go ahead and change them manually as described &lt;a href="http://www.phys.unsw.edu.au/~atm/remove_winupd_backup.html" target="_blank"&gt;here&lt;/a&gt;, but I'm too old to do that so went for this &lt;a href="http://www.dougknox.com/xp/utils/xp_remove_hotfix_backup.zip"&gt;tool&lt;/a&gt; which does it for me. &lt;/p&gt; &lt;p&gt;You should know a few things before u let the tool does its magic.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;This removal process is one-way. It can not be undone&lt;/li&gt; &lt;li&gt;You have to purchase the licence to remove hotfixes selectevly, otherwise all hot fixes will be removed&lt;/li&gt; &lt;li&gt;You will not notice the space gain for some time since backup files are protected by System restore&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt; &lt;p&gt;"As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality"&lt;/p&gt; &lt;p&gt;- Albert Einstein&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-117454343525139064?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/117454343525139064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=117454343525139064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/117454343525139064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/117454343525139064'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/03/uninstall-uninstallers-ntuninstall.html' title='Uninstall the Uninstallers - $NtUninstall'/><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-117006079921626155</id><published>2007-01-29T17:53:00.000+09:00</published><updated>2008-03-26T14:25:15.237+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>No more back button</title><content type='html'>&lt;p&gt;Browser back button is a very common problem child in many web systems. Ours is no different. A simple search turned out so many different ways to tackle this problem. Some selected simple options are explained below. The thing to keep in mind here is that a determined user can still get around the solutions pretty easily. So while being simple these methods do not provide a 100% gurantee.&lt;/p&gt; &lt;p&gt;Almost all of this methods tackle the problem by disabling or nullifying the effect of the back button by some hack.&lt;/p&gt; &lt;p&gt;1. Disable browser cache - This will make the browser send a response to the server to each back button request.&amp;nbsp; Found the IE way of doing it using ASP.Net page directive 'output cache', don't think this works for FF. (&lt;a href="http://msdn2.microsoft.com/en-us/library/hdxfb6cy.aspx"&gt;http://msdn2.microsoft.com/en-us/library/hdxfb6cy.aspx&lt;/a&gt;). Or else you can use the html meta tags to achieve the same thing.&lt;/p&gt; &lt;p&gt;&amp;lt;html&amp;gt;&lt;br&gt;&amp;lt;head&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;meta http-equiv="Expires" content="0"&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;meta http-equiv="Cache-Control" content="no-cache"&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;meta http-equiv="Pragma" content="no-cache"&amp;gt;&lt;br&gt;&amp;lt;/head&amp;gt;&lt;/p&gt; &lt;p&gt;2. Disable the user returning to the previous page by always making the browser history increment by one whenever a page load. (So the previous page = current page) using the javascript windows.history.forward(1) execute in each page you don't want to add to history. &lt;/p&gt; &lt;p&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.history.forward(1);&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/p&gt; &lt;p&gt;This should be added to the head of the page so that it gets executed each time the page loads. Do not perform the first option of disabling the cache if u go for this option as it makes IE confuse. This is the one which worked for me.&lt;/p&gt; &lt;p&gt;3. Invoke a new page using location.replace. &lt;/p&gt; &lt;p&gt;&amp;lt;a href="next.aspx" onclick="javascript:location.replace(this.href);&amp;nbsp; event.returnValue=false; event.cancelBubble=true;"&amp;gt;&lt;br&gt;Click here to visit the next page without adding the current page to the history folder.&lt;br&gt;&amp;lt;/a&amp;gt;&lt;/p&gt; &lt;p&gt;This will prevent the browser from adding the initial page to the history when u r navigating between pages. But if u want this to work with the postbacks then u have to use this along side window.history.forward method. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-117006079921626155?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/117006079921626155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=117006079921626155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/117006079921626155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/117006079921626155'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2007/01/no-more-back-button.html' title='No more back button'/><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-116661832030592461</id><published>2006-12-20T21:38:00.000+09:00</published><updated>2008-03-26T14:25:15.238+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Connect IIS to SQL 2005</title><content type='html'>&lt;p&gt;After the initial R&amp;amp;D work is over in our web application we have to transfer our web site from cassiny to IIS. &lt;/p&gt; &lt;p&gt;The first problem we encounter is that our web app stoped talking to SQL Server with the problem, &lt;em&gt;"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections."&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Due to this reason I looked at the ways a web server (IIS) can connect to SQL server and found 4 generic ways.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Using windows integrated security&lt;/li&gt; &lt;li&gt;Mapped windows domain user&lt;/li&gt; &lt;li&gt;Using a connection string&lt;/li&gt; &lt;li&gt;As a local user&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Our web application actually uses the connection string to communicate with the SQL Server.&amp;nbsp; But in order to&amp;nbsp;convince SQL server that this connection request comes from a valid party&amp;nbsp;u need to have an initial access to the DB. That can be done by using impersonation. &lt;/p&gt; &lt;p&gt;What u need to do is to Map IIS anonymous user to a mapped domain user which is trusted by the DB server. This scenario is evident when u have the DB server and Web server in two different machines. &lt;/p&gt; &lt;p&gt;In the web.config put the following entry&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;identity impersonate="true" userName="domain\username" password="password"/&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;You also need to add this domain user to the SQL server with the necessary rights. &lt;/p&gt; &lt;p&gt;More info can be found in in &lt;a title="Access SQL Server from Web App" href="http://msdn2.microsoft.com/en-US/library/ht43wsex.aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116661832030592461?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116661832030592461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116661832030592461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116661832030592461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116661832030592461'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/12/connect-iis-to-sql-2005.html' title='Connect IIS to SQL 2005'/><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-116409236700552618</id><published>2006-11-21T14:59:00.000+08:00</published><updated>2008-03-26T14:25:15.239+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DevWork'/><title type='text'>Modal Dialogs in Web</title><content type='html'>&lt;blockquote&gt; &lt;p&gt;&lt;em&gt;It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. &lt;br&gt;(Nathaniel S Borenstein)&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Modal dialogs are pretty common in WIN environment. These are used when u want some user input before u proceed with the main flow of the application. The basic difference between a normal dialog box and a modal dialog is that u cant do any operation in the window that opened the modal window till u complete (or close) the modal window.&amp;nbsp; There's a lot of debate on when to use modal dialogs and I found the first couple of paras of &lt;a href="http://developer.gnome.org/doc/GGAD/sec-modaldialogs.html"&gt;this&lt;/a&gt; article &lt;br&gt;useful.&lt;/p&gt; &lt;p&gt;As a POC for our new project which is to port a complete reporting application from WIN to WEB me &amp;amp; one of my colleagus got the chance to try out this modal dialog in Web.&amp;nbsp; In IE you have window.showModalDialog('url','windowName','&lt;em&gt;windowProps&lt;/em&gt;') java script function which gives u a modal window. But in Firefox this does NOT work. You can partially achieve the modal behaviour by giving a third param to the window.open function modal=yes. This will keep the focus on the new dialog but user can still interact with the underneath parent window. Check out this &lt;a href="http://blog.davidkaspar.com/archives/2005/10/showmodaldialog-in-firefox-and-frames.php"&gt;blog entry&lt;/a&gt; by David Kasper for a detailed discussion.&lt;/p&gt; &lt;p&gt;There were some other requirements with this modal dialog. &lt;br&gt;1. Make sure it pops automatically after a certain postback event. &lt;br&gt;2. To be able to update backend domain objects from the modal dialog it self.&lt;br&gt;3. To inform the parent window about the operation that was performed in the modal dialog. &lt;/p&gt; &lt;p&gt;Since we're using ASP.Net 2.0 here's a briefing about how to do above using ASP.Net 2.0.&lt;/p&gt; &lt;p&gt;&lt;u&gt;Popping Back automatically upon postback&lt;br&gt;&lt;/u&gt;You just have to include the modal dialog showing function string as a start up script using ClientScript.RegisterStartupScript function. (status = window.showModalDialog(url,'DlgName');)&lt;/p&gt; &lt;p&gt;&lt;u&gt;Updating bkend domain objects&lt;br&gt;&lt;/u&gt;This was a pretty hard thing to do since the calling of the usual __postback javascript function didn't work as expected. &lt;/p&gt; &lt;p&gt;&lt;u&gt;Communicating with the parent&lt;br&gt;&lt;/u&gt;This is again somewhat tricky. Specially if u've done this seamlessly with multiple browser windows, u r in for a surprise here.&amp;nbsp; Unlike with multiple browser windows u cant pass multiple value from child to parent using window.opener.... Instead you'll solely has to rely on window.returnValue to send something back to the parent. The hack of passing multiple values is to set this with an array and breaking down that array in the parent. &lt;br&gt;&lt;br&gt;This is the first time I'm in a web project in my breif programming career and things seems interesting as ever. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116409236700552618?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116409236700552618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116409236700552618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116409236700552618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116409236700552618'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/11/modal-dialogs-in-web.html' title='Modal Dialogs in Web'/><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-116338910238368316</id><published>2006-11-13T11:38:00.000+08:00</published><updated>2006-11-13T11:47:41.010+08:00</updated><title type='text'>What makes people happy...</title><content type='html'>The main tenets of modern economics is that "People act in their self interest most of the time and that they usually know what exactly their self interest is". But do they really know it? Most will say that Health, Family, Childern or Money :) would bring happiness. But how do u know? &lt;p&gt;I always wondered whether our pets are happier than us? They &lt;strong&gt;seem&lt;/strong&gt; to be laid back and happy most of the time anyway :).&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7567/1461/1600/IMG_0201.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7567/1461/200/IMG_0201.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A group of economist and psychologists have started experiments to check exactly what makes humans happy and its impact to the economy. Check &lt;a title="Happy" href="http://www.newyorker.com/talk/content/articles/021111ta_talk_surowiecki?021111ta_talk_surowiecki"&gt;this&lt;/a&gt; article at newyorker.com to find out more. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116338910238368316?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116338910238368316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116338910238368316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116338910238368316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116338910238368316'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/11/what-makes-people-happy.html' title='What makes people happy...'/><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-116323179222056228</id><published>2006-11-11T15:56:00.000+08:00</published><updated>2006-11-11T15:56:32.326+08:00</updated><title type='text'>Why we are poor and keep getting poorer</title><content type='html'>&lt;p&gt;As a country &lt;a href="http://en.wikipedia.org/wiki/Sri_Lanka"&gt;'Sri Lanka'&lt;/a&gt; is poor. And people come up with so many different arguments as to why it is so. For so many years there were so&amp;nbsp;many theories and attempts but we are still laggning far far behind in the development race. &lt;/p&gt; &lt;p&gt;An &lt;a href="http://www.reason.com/news/show/33258.html?id=05dr3"&gt;article&lt;/a&gt; I found in the reason.com web site has tried to explain why poor countries are kept to be poor taking Cameroon as an example. It has a lot of similarities to Sri Lanka.&lt;/p&gt; &lt;p&gt;Enjoy!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116323179222056228?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116323179222056228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116323179222056228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116323179222056228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116323179222056228'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/11/why-we-are-poor-and-keep-getting.html' title='Why we are poor and keep getting poorer'/><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-116287425949166345</id><published>2006-11-07T12:37:00.000+08:00</published><updated>2006-11-07T12:37:39.556+08:00</updated><title type='text'>DB Locking Vs Versioning</title><content type='html'>&lt;p&gt;How a database server handles concurrency is a great deal of interest to any application. Historically SQL Server has been lagging behind DBMSs like Oracle for their rather legacy way of handling this with multiple levels of locking mechanisms. By comparison most other DBMS adapt a versioning mechanism. You can read about both in this excellent &lt;a href="http://emea.windowsitpro.com/Emea/Article/ArticleID/92780/92780.html"&gt;article&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;But SQL 2005 has put a step forward and introduced versioning. To check out all the levels of versioning refer &lt;a href="http://msdn2.microsoft.com/en-US/library/ms173763.aspx"&gt;MSDN&lt;/a&gt;. What we have used in our project is 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITED' which is the lowest level of versioning giving the maximum performance and the maximum risk of&amp;nbsp;fetching invalidated data in to the application. We are working on a reporting application where the changes to the data is much less frequent compared to the reporting of the data and this was very much acceptable. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116287425949166345?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116287425949166345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116287425949166345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116287425949166345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116287425949166345'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/11/db-locking-vs-versioning.html' title='DB Locking Vs Versioning'/><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-116283092885239667</id><published>2006-11-07T00:35:00.000+08:00</published><updated>2006-11-07T00:35:28.866+08:00</updated><title type='text'>Windows Live Editor</title><content type='html'>&lt;p&gt;Wow!!!! I'm using the windows live editor to update this blog entry. I know that offline blog editors have been around for sometime now, but when Microsoft offeres a product which it claims to work with other 3rd party people u gotta try it out RIGHT?&lt;/p&gt; &lt;p&gt;After 30 mins of scrambling here and there I was able to configure it. It supports over 10 blog sites beside its own Live Space. &lt;/p&gt; &lt;p&gt;Download it &lt;a href="http://windowslivewriter.spaces.live.com/" target="_blank"&gt;here&lt;/a&gt; and just check it out.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116283092885239667?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116283092885239667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116283092885239667' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116283092885239667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116283092885239667'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/11/windows-live-editor.html' title='Windows Live Editor'/><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-116160359152495571</id><published>2006-10-23T19:29:00.000+08:00</published><updated>2006-10-23T19:39:51.536+08:00</updated><title type='text'></title><content type='html'>These days there's a lot of talk about the race. In Sri Lanka its the sinhalese and tamils. Internationally its US and Non-US. US is fast becoming the notorious promoter of all kinds of racism, at an administration level.&lt;br /&gt;&lt;br /&gt;You can rea&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;d &lt;a href="http://www.pbs.org/race/000_About/002_04-background-01-x.htm"&gt;this &lt;/a&gt;good post on some real facts about races and its history.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116160359152495571?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116160359152495571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116160359152495571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116160359152495571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116160359152495571'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/10/these-days-theres-lot-of-talk-about.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-116100975565759945</id><published>2006-10-16T22:34:00.000+08:00</published><updated>2006-10-16T22:42:35.683+08:00</updated><title type='text'></title><content type='html'>I did some reading last week on the popular concept of user generated content web sites. I stumbled across many interesting ones and now I cant refrain from checking them out every day. If you are like me who wants to read/watch anything and nothing in particular check these out.&lt;br /&gt;1. &lt;a href="http://www.reddit.com"&gt;Reddit&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.youtube.com"&gt;YouTube &lt;/a&gt;(Or &lt;a href="http://www.google.com/press/pressrel/google_youtube.html"&gt;googleTube&lt;/a&gt;???)&lt;br /&gt;3. &lt;a href="http://del.icio.us/"&gt;Delicious&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://video.google.com/"&gt;GoogleVideo&lt;/a&gt; (Or googleTube???)&lt;br /&gt;5. &lt;a href="http://throwawayyourtv.com/"&gt;ThrowAwayYourTv&lt;/a&gt;  (Not exactly user generated, but moderated version of user generated content)&lt;br /&gt;Other intersting ones are popular eBay, flickr, magnloia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-116100975565759945?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/116100975565759945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=116100975565759945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116100975565759945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/116100975565759945'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/10/i-did-some-reading-last-week-on.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113816684371894153</id><published>2006-01-25T13:19:00.000+08:00</published><updated>2006-01-25T13:27:26.076+08:00</updated><title type='text'></title><content type='html'>I've started a photo blog with flikr in &lt;a href="http://www.flickr.com/photos/urcreed/"&gt;here&lt;/a&gt;. Flikr is one weapon of yahoo in the fight against google. I've used picassa from google and flikr looks like a web version of picassa. For the time being I'm pretty impressed with Flikr. They also have &lt;a href="http://www.flickr.com/tools/"&gt;Uploading tool &lt;/a&gt;which can be used to upload photos from your PC straight to web rather than doing it in a web interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-113816684371894153?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113816684371894153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113816684371894153' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113816684371894153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113816684371894153'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2006/01/ive-started-photo-blog-with-flikr-in.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113627539821344134</id><published>2005-12-29T21:05:00.000+08:00</published><updated>2006-01-03T16:03:18.276+08:00</updated><title type='text'></title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Found an interesting site which can be used to detect the accuracy of many email claims we get each day.&lt;br /&gt;"&lt;span style="font-family:Bookman Old Style,Arial;font-size:100%;"&gt;Every day we're bombarded with &lt;nobr&gt;e-mail&lt;/nobr&gt; of dubious origin and even more dubious veracity: messages that plead with us to find a missing kid or help a sick child, sign a petition to right some terrible injustice, take a stand on an important piece of pending legislation, forward a message to claim free merchandise, or take heed of the latest computer virus. The messages that aren't outright hoaxes are often full of misinformation, and even the ones that have some truth to them are usually out-of-date by the time we receive them."&lt;br /&gt; - From http://www.snopes.com/&lt;br /&gt;&lt;br /&gt;This site has many more links which you can check out to cross-check the accuracy of many more urban legends. The link to visit when u want to check whether an email u received is a hoax is &lt;span style="color: rgb(51, 51, 51);"&gt;"Inbox Rebellion".&lt;br /&gt;&lt;br /&gt;Next time u receive a  mail from a dying Romanian girl asking to forward the mail to 5 persons so that a fund is raised...first check out  this site.  :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 51);font-family:Arial;font-size:7;color:#ff0000;"   &gt;&lt;span class="ashadow"&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-113627539821344134?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113627539821344134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113627539821344134' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113627539821344134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113627539821344134'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/12/hi-all-found-interesting-site-which.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113561169451978244</id><published>2005-12-26T23:32:00.000+08:00</published><updated>2005-12-26T23:41:34.530+08:00</updated><title type='text'></title><content type='html'>Guys, I enjoyed several pretty good movies past couple of weeks. Thought of sharing them with u all.&lt;br /&gt;1. Cinderalla Man - Inspiring real world story about a coureagous boxer starring Russel Crowe&lt;br /&gt;2. Citizen Kane - Regarded as the BEST movie ever made by Orson Welles starring himself&lt;br /&gt;3. Bowling for Columbine -  Documentary on Gun culture in USA by  Micheal Moore&lt;br /&gt;4. Wag the Dog -  Sarcastic look at democratic political heists starring Robert  De Niro / Dustin Hoffman&lt;br /&gt;5. Motor Cycle Diaries - Che-gu-Veira's historical journey through Southern America (In spanish)&lt;br /&gt;&lt;br /&gt;Movies I feel is one of the coolest way to learn about life and all of the above movies had me thinking after watching it...well at least for a couple of minutes :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-113561169451978244?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113561169451978244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113561169451978244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113561169451978244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113561169451978244'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/12/guys-i-enjoyed-several-pretty-good.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113415083795131836</id><published>2005-12-10T01:44:00.000+08:00</published><updated>2005-12-10T01:53:57.970+08:00</updated><title type='text'></title><content type='html'>Thought of writing down a note of a different sense. You all know that christmas is near by. What do u think about Christmas decorations? Well, all the shopping centers and streets are getting decorated these days. Incidently I got a chance to stand beside a set of people who were doing some Christmas decorations at a shopping mall in Colombo during day time. It was extremely hot and sunny and these poor fellows were virtually toasted. And I saw and heard how frustrated they are with this whole Christmas decorations stuff :).&lt;br /&gt;&lt;br /&gt;And I begun to wonder how ironic it is that the same thing which is being loved and cherished by so many people bring frustration to another set of people. This becomes even more interesting when you get to know that all these Christmas decorations are meant for a commercial purpose (Virtually to pickpocket) rather than to show the true spirit of Christmas.&lt;br /&gt;&lt;br /&gt;So count me in as one frustrated "observer" of Christmas decorations at commercial places. (Of course your own small X-Mas tree at home is something totally different)&lt;br /&gt;&lt;br /&gt;Merry Pre X-Mas everyone. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-113415083795131836?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113415083795131836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113415083795131836' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113415083795131836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113415083795131836'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/12/thought-of-writing-down-note-of.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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113309032169279760</id><published>2005-11-27T18:57:00.001+08:00</published><updated>2005-11-27T19:18:41.713+08:00</updated><title type='text'></title><content type='html'>&lt;p class="MsoNormal"&gt;During the Code Reviews we had past couple of weeks I got a chance to look back at how we've done JMS development. I’d like to share what I’ve learnt with u guys. &lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;One thing we noted during the reviews is that we have not paid enough attention at all to optimization of JMS. And by the comments I found in many forums this is the norm in many projects. So from now on I’m determined to pay more attention to performance whenever I do JMS related development :).&lt;br /&gt;&lt;/p&gt;       &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Before dwelling in to the tips I’d like to note down the basic steps of getting JMS to work.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;ol style="margin-top: 0in;" start="1" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Lookup      JMS connection factory&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Create      connection &amp; session&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt; &lt;/span&gt;Lookup destination (Queue or Topic)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Create      producers or consumers&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Create      Msg &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Send      or Receive Msgs&lt;/li&gt; &lt;/ol&gt;       &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Now let’s see what we can do to improve our JMS related work. Of course I’ve not tried all of them and would like to here more about the implementation aspects of these from you guys. (Specially points 6 and 9)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;ol style="margin-top: 0in;" start="1" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Close      Resources (Connections, Sessions, Producers, Consumers) in a finally block&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Start      Connections after starting producer/consumer&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Always      start consumers before the producers to stop initial messages getting      queued&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Choose      DUPS_OK_ACKNOWLEDGE or AUTO_ACKNOWLEDGE unless it’s really necessary to      use CLIENT_ACKNOWLEDGE&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Choose      Non-durable messages wherever possible to avoid persistency overhead&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Process      messages concurrently through a ConnectionConsumer using server session      pool where each session in the pool would execute separate message      concurrently (I think the implementation of this is Vendor specific. Any      ideas?)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Set      the TimeToLive value as low as feasible (default is for messages to never      expire).&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;Configure number of message driven beans by      specifying instance pool size in jboss.xml file.&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;Use separate transactional sessions and      non-transactional sessions for transactional and non-transactional      messages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt; &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-113309032169279760?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113309032169279760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113309032169279760' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113309032169279760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113309032169279760'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/11/during-code-reviews-we-had-past-couple_27.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113211341765286987</id><published>2005-11-15T20:45:00.000+08:00</published><updated>2005-11-16T11:56:57.693+08:00</updated><title type='text'></title><content type='html'>I've been invloved in reviewing the code of &lt;a href="http://www.purpleace.com/en/ripple_vault.html"&gt;our produc&lt;/a&gt;&lt;a href="http://www.purpleace.com/en/ripple_vault.html"&gt;t&lt;/a&gt; and load testing and found out/realised some important practices that should be followed in J2EE projects. Here are few of them which are of course open for discussion,&lt;br /&gt;&lt;br /&gt;Today I will list down some EJB related practices...&lt;br /&gt;&lt;br /&gt;1. Never use the ejbConstructor for getting any work done (Typically resource initializations). The spec does not gurantee the call back of the constructor. Instead use the ejbCreate() method for any resource initilizations etc...Similarly use the init() method in Servletes.&lt;br /&gt;&lt;br /&gt;2. Return PK in in ejbCreate() methods.&lt;br /&gt;&lt;br /&gt;3. Use DTOs in ejbCreate() when there are too many parmas coming in.&lt;br /&gt;&lt;br /&gt;4. Always use CMR (Container Managed Relations) to manage the relations. This will result in less code and straight forward finder methods thus improving code quality and performance.&lt;br /&gt;&lt;br /&gt;5. Use the EJBHomeFactory pattern to reduce JNDI calls and cache EJBHomes.&lt;br /&gt;   &lt;p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;6.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Tune Stateless session beans instance pool size.Give maximum beans as equal to maximum number of client accesses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;span style="font-family: verdana;"&gt;7.  &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: verdana;"&gt;Tune Entity beans instance pool size and instance cache size. Give maximum beans in pool as equal to number of maximum concurrent client accesses. Cache size must be equal to concurrent active clients accessing the bean.&lt;br /&gt;&lt;br /&gt;Any comments or experience on these or any other ideas is mostly welcome.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&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-113211341765286987?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113211341765286987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113211341765286987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113211341765286987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113211341765286987'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/11/ive-been-invloved-in-reviewing-code-of.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-113133953103017355</id><published>2005-11-07T12:52:00.000+08:00</published><updated>2005-11-07T12:58:51.056+08:00</updated><title type='text'></title><content type='html'>Greaaaaaaat News people. I'm a  proud owner of a digital camera for the first time :). After exceeding my initial budget by approximately 150% I've bought a Canon A620. I've used it for a week or so now and I'm really impressed. Specially with it's image quality and ease of use. From reviews I've  heard that it's powerful too interms of manual operations and printing options. I'll find those features eventuall :). For the time being I'm very happy with what I've got. You can find a review on A620 &lt;a href="http://www.dcresource.com/reviews/canon/powershot_a620-review/index.shtml"&gt;here&lt;/a&gt; and the specification &lt;a href="http://www.dpreview.com/reviews/specs/Canon/canon_a620.asp"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If u guys have any good sites where I could learn digital photography a bit send them in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-113133953103017355?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/113133953103017355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=113133953103017355' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113133953103017355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/113133953103017355'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/11/greaaaaaaat-news-people.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112789021386116690</id><published>2005-09-28T14:47:00.000+08:00</published><updated>2005-09-28T14:50:13.866+08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://www.techcentralstation.com/092105B.html"&gt;Why Students Are Leaving Engineering&lt;/a&gt;, an interesting article which explains the exact feelings we went through our University studying Engineering. So USA is not alone I guess :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112789021386116690?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112789021386116690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112789021386116690' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112789021386116690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112789021386116690'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/09/why-students-are-leaving-engineering.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><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112783337380344972</id><published>2005-09-27T22:42:00.000+08:00</published><updated>2005-09-27T23:02:56.680+08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7567/1461/1600/googleHome.jpg"&gt;&lt;/a&gt;&lt;br /&gt;Check out two cool features/applications of google.&lt;br /&gt;1. GoogleEarth - &lt;a href="http://earth.google.com/"&gt;http://earth.google.com/&lt;/a&gt;&lt;br /&gt;2. Personalised Google Home- &lt;a href="http://www.google.com/ig"&gt;http://www.google.com/ig&lt;/a&gt;&lt;br /&gt;&lt;p&gt;I tried out google personalised home today and was very impressed. Some cool web parts you can have are,&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Gmail&lt;/li&gt;&lt;li&gt;News Sites&lt;/li&gt;&lt;li&gt;Search History&lt;/li&gt;&lt;li&gt;Quote of the Day&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And you can also search for many more and add them and drag and drop them to change the UI.&lt;/p&gt;&lt;p&gt;Here's a snapshot of my current home. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7567/1461/1600/googleHome1.JPG"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7567/1461/1600/googleHome2.JPG"&gt;&lt;img style="CURSOR: hand" height="291" alt="" src="http://photos1.blogger.com/blogger/7567/1461/200/googleHome1.JPG" width="371" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112783337380344972?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112783337380344972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112783337380344972' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112783337380344972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112783337380344972'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/09/check-out-two-cool-featuresapplication.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112749319016207445</id><published>2005-09-24T00:31:00.000+08:00</published><updated>2005-09-24T00:38:57.993+08:00</updated><title type='text'></title><content type='html'>&lt;p&gt;&lt;strong&gt;Postgres Performance Tuning&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Since postgres performance caught up my attention during the FOSSL conference I decided to do some research on improving postgres performance and here’s what I found.&lt;br /&gt;&lt;br /&gt;There are many things one can do to upgrade the performance of a postgres DB. As usual many of these are not straight forward tips that when completed will give u a highly performing DB. But most of these tips have to be applied after careful study on your DB and understanding the compromises.&lt;br /&gt;&lt;br /&gt;Some useful yet simple things one could do to upgrade performance are,&lt;br /&gt;&lt;br /&gt;1. Creating Indexes&lt;br /&gt;2. EXPLAIN&lt;br /&gt;3. VACUUM / ANALYZE&lt;br /&gt;4. Configuration Parameters&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Creating Indexes&lt;br /&gt;&lt;/u&gt;Any group of fields which is searched or sorted more frequently than being updated or inserted can have an index.&lt;br /&gt;CREATE INDEX &lt;em&gt;indexname&lt;/em&gt; ON &lt;em&gt;table&lt;/em&gt; (&lt;em&gt;fields&lt;/em&gt;);&lt;br /&gt;&lt;br /&gt;&lt;u&gt;EXPLAIN&lt;/u&gt;&lt;br /&gt;Postgres devices a query plan for each query. If the plan is matching the properties of actual data then the performance is high. EXPLAIN command lets you check the plan for any query. With EXPLAIN you can create proper indexes or change queries for optimum performance.&lt;br /&gt;&lt;br /&gt;Eg:vault_db=# explain select * from rcp_user_device; &lt;/p&gt;&lt;p&gt;QUERY PLAN -------------------------------------------------------------------&lt;br /&gt;Seq Scan on rcp_user_device (cost=0.00..4.77 rows=177 width=172)(1 row)&lt;br /&gt;&lt;br /&gt;The results explain provides are,&lt;br /&gt;1. cost – Estimated cost of the query in resource units&lt;br /&gt;2. rows – Estimated number of rows returned&lt;br /&gt;3. width – Number of characters per row&lt;br /&gt;&lt;br /&gt;explain analyze will give you a chance to compare the actual effort of a query with the estimated effort. vault_db=# explain analyze select * from rcp_user where userid='user';&lt;br /&gt;QUERY PLAN -------------------------------------------------------&lt;br /&gt;Index Scan using rcp_user_pkey on rcp_user (cost=0.00..5.99 rows=2 width=110)&lt;br /&gt;(actual time=110.118..110.127 rows=1 loops=1) Index Cond: (userid = 'user'::text) Total runtime: 110.260 ms&lt;br /&gt;&lt;br /&gt;&lt;u&gt;VACUUM/ANALYZE&lt;br /&gt;&lt;/u&gt;This is probably the easisest method to get a performance boost to your DB. As data is added to the DB files become dirty and vacuum. It performs two major operations,&lt;br /&gt;Remove any leftover data from rollbacks and other processes that can leave temporary data&lt;br /&gt;Analyze activity in the database to assist PostgreSQL in designing efficient query plans&lt;br /&gt;&lt;br /&gt;There are three levels of VACUUM which can be run:&lt;br /&gt;1. VACUUM - This is the fastest puts the least load on the server. The primary objective of this level is to market unused spaces on the disk file as being available for reuse.&lt;br /&gt;2. VACUUM ANALYZE - In addition to what is done during a standard VACUUM, a VACUUM ANALYZE updates query planner statistics&lt;br /&gt;3. VACUUM FULL - This takes a standard VACUUM around to the next logical step. VACUUM by itself only marks unused records on disk as reusable. A Postgres VACUUM FULL actually eliminates the unused records from the files on disk shrinking the file. Unlike the first two versions of this command, a VACUUM FULL will lock the tables while it is run providing an interruption to anyone trying to use the tables. On large tables where a lot of records have changed, this could take a long time creating a long period of essentally database downtime.&lt;br /&gt;VACUUM ANALYZE can be combined with VACUUM FULL as VACUUM FULL ANALYZE to perform all three functions at once.&lt;br /&gt;The bestpractice adviced by postgres admins is to run VACUUM and VACUUM ANALYZE automatically on a regular basis. May be on a nightly basis when the db is not very active.&lt;br /&gt;&lt;br /&gt;Eg :vacuum analyze verbose &lt;em&gt;table_name&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Let’s discuss on Configuration Parameter related tuning on another blog.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112749319016207445?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112749319016207445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112749319016207445' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112749319016207445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112749319016207445'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/09/postgres-performance-tuning-since.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112637304743933044</id><published>2005-09-11T01:14:00.000+08:00</published><updated>2005-09-11T01:24:07.440+08:00</updated><title type='text'></title><content type='html'>Today I was fortunate enough to participate FOSSSL (&lt;a href="http://www.fosssl.org/"&gt;http://www.fosssl.org/&lt;/a&gt;) a free &amp; open source software conference. I joined a few others for two tutorials, one in mysql (Introducing MySQL 5.0)  and the other in postgres (PostgreSQL Internals Through Pictures) . Both the presenters were renonwned personalities in software world (let alone open source) and they were,&lt;br /&gt;1.      MySQL - David Axmark, Co Founder of MySQL&lt;br /&gt;2.      Postgres - Bruce Momjian, Lead contributer to PostgreSQL&lt;br /&gt;&lt;br /&gt;The postgres session was my favourite out of the two and it prompted me to put up this entry so I could prompt a few more people to read a bit more on postgres internals and in turn DBMS fundemantals.&lt;br /&gt;&lt;br /&gt;Bruce with his catchy presentation style and very humble explanations was soon very much appreciated by all of us and explained how postgres internally handles SQL queries (&lt;a href="http://candle.pha.pa.us/main/writings/pgsql/internalpics.pdf"&gt;http://candle.pha.pa.us/main/writings/pgsql/internalpics.pdf&lt;/a&gt;).&lt;br /&gt;This was actually much more generic and I suppose one could get a general understanding of how a DBMS handles SQL queries fires against it.&lt;br /&gt;&lt;br /&gt;The basic steps of any decent DBMS of picking up a SQL query and executing is,&lt;br /&gt;1.      Parsing and Tokenizing (Postgres uses flex &amp; bison..surprise J ) the query&lt;br /&gt;2.      Forming a easy to work with data structure from the tokens&lt;br /&gt;3.      Optimizing (This was the bulk of the discussion and was very interesting)&lt;br /&gt;4.      Execution&lt;br /&gt;&lt;br /&gt;Out of the many small discussion threads we had I’d like to mention one here which was about preparing sql statements. This basically means that you inform to the DB engine about the plan of execution (which is normally derived after doing an optimization step) with the query it self. So the whole overhead of optimizing is vanished since the plan of the query is saved in the DB for you. This can look like a very clever thing to do but could prove to be your downfall pretty easily as shown by Bruce in the session.&lt;br /&gt;&lt;br /&gt;The basic idea is that if your query is gonna execute 100 and 1000 times it’s wise to prepare it. Also it should be a pretty complex query where the actual time taken for an optimization (in case of no prepared plan) is comparable with the execution time.  Even here if your same query which runs 1000 times a day runs with different sets of parameter values then you could get screwed again.&lt;br /&gt;Eg : SELECT name from T1 where age=?&lt;br /&gt;Assuming that the age column actually contains the age of human employees of your company ;-), there could be lots of values between say…25-40 (Assume 95%). So if you prepared the plan with a value in this range your optimizer will most probably go for a sequential scan. Now suppose your CEO comes in and issues the same SQL with the age 100 to find out who he should fire next. And since the prepared plan is tuned for the 95% of values this instance of the query will perform badly and the CEO decides to fire the poor old DB folkJ.&lt;br /&gt;&lt;br /&gt;(A good thread I came across –&lt;br /&gt;&lt;a href="http://www.mail-archive.com/pgsql-general@postgresql.org/msg65562.html"&gt;http://www.mail-archive.com/pgsql-general@postgresql.org/msg65562.html&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;All in old what I understood is that the most difficult part of this query processing is actually the optimizing part. Bruce is actually pretty confident that postgres has the best optimizing engine even compared to commercial products (SECRETS: mySQL optimizer is a single C file). He also pointed out one reason why this is so. In Oracle you have “Oracle Hints” which actually provides users guidance on tuning the DB to a specific kind of query. This is like loosing a very good opportunity for the DB vendor to improve his DB engine. On the other hand Postgres does not have this capability and thus the user is more or less pushed towards informing postgres on a low performing query. This give the postgres community to find yet another weapon in the never ending optimization war.  This actually sounds very sensible given the turn over time of patched up version of open source postgres (Oracle can’t do that). Also the fact that a user is not actually desperate for a answer within minutes of finding out that his query is slow. She could actually wait for a couple of days for an answer while her system continues to operate correctly although slowlyJ.&lt;br /&gt;&lt;br /&gt;(Check out Bruce Momjian web side at &lt;a href="http://candle.pha.pa.us/"&gt;http://candle.pha.pa.us/&lt;/a&gt; for more cool stuff. His writings section has a lot more resources on postgres)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112637304743933044?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112637304743933044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112637304743933044' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112637304743933044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112637304743933044'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/09/today-i-was-fortunate-enough-to.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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112637205569897715</id><published>2005-09-11T00:32:00.000+08:00</published><updated>2005-09-11T01:07:35.713+08:00</updated><title type='text'></title><content type='html'>The long awaited “Boyz Trip” of the company I’m currently working happened last weekend. It was a really needed break from the hectic past couple of weeks I had.&lt;br /&gt;&lt;br /&gt;We went to the “Uda-Walawe” (&lt;a href="http://www.answers.com/topic/uda-walawe-national-park"&gt;http://www.answers.com/topic/uda-walawe-national-park&lt;/a&gt;) wild reserve which is one of the largest National Parks in Sri Lanka located at Central-South area of the country. This is also one of the largest habitats for Elephants in Sri Lanka. We also visited a very old palace (built in 1700) and ‘Hot-Water’ wells which was fun.&lt;br /&gt;&lt;br /&gt;I will post some more blogs on this trip in the next few weeks.&lt;br /&gt;&lt;br /&gt;Here are couple of pics from the trip.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7567/1461/1600/CIMG0435.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7567/1461/200/CIMG0435.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7567/1461/1600/CIMG0447.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7567/1461/200/CIMG0447.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112637205569897715?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112637205569897715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112637205569897715' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112637205569897715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112637205569897715'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/09/long-awaited-boyz-trip-of-company-im.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112513852744317797</id><published>2005-08-27T17:57:00.000+08:00</published><updated>2005-08-27T18:28:47.446+08:00</updated><title type='text'></title><content type='html'>Check out this &lt;a href="http://www.newtechusa.com/ppi/main.asp"&gt;hillarious web site &lt;/a&gt;I found from Sentoors blog. This site talks about training primates to be software developers. WHAT? oh..yes!! and they can even provide you assistance in your ever sinking project deadlines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112513852744317797?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112513852744317797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112513852744317797' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112513852744317797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112513852744317797'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/08/check-out-this-hillarious-web-site-i.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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112499253158139188</id><published>2005-08-26T01:50:00.000+08:00</published><updated>2005-08-26T01:55:31.586+08:00</updated><title type='text'></title><content type='html'>After going through a painful couple of weeks on my work today was a pretty good day where I was rewarded for my efforts. Basically I’m mostly working on a SyncML solution where I tried to extend the open source &lt;a href="http://sync4j.funambol.com/main.jsp?main=theproject"&gt;Sync4J&lt;/a&gt; server to suit &lt;a href="http://www.purpleace.com/en/ripple_vault.html"&gt;the product I'm working on&lt;/a&gt;. Basically our initial goal of achieving a basic sync worked out well today and I felt happy to acheive something. Will post on this later :)&lt;br /&gt;&lt;br /&gt;Also I tried out &lt;a href="http://www.konfabulator.com/"&gt;windows widgets &lt;/a&gt;for the first time and it's so cool. If any one u have widgets that u feel I should try out, please feel free to notify me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112499253158139188?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112499253158139188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112499253158139188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112499253158139188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112499253158139188'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/08/after-going-through-painful-couple-of.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112486257858966816</id><published>2005-08-24T13:45:00.000+08:00</published><updated>2005-08-24T13:49:38.593+08:00</updated><title type='text'></title><content type='html'>Google has introduced &lt;a href="http://www.google.com/talk/"&gt;google talk&lt;/a&gt;. A skype like talking tool which let's u hav IM and Voice. Look out..Gooooooooogle is here there and everywhere :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112486257858966816?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112486257858966816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112486257858966816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112486257858966816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112486257858966816'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/08/google-has-introduced-google-talk.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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15701809.post-112481453756681679</id><published>2005-08-24T00:28:00.000+08:00</published><updated>2005-08-24T00:28:57.570+08:00</updated><title type='text'></title><content type='html'>Hi Everyone,&lt;br /&gt;&lt;br /&gt;My very first entry. A BIG thank to my friend &lt;a href="http://www.senthoor.com/weblog/blogger.html"&gt;Sentoor &lt;/a&gt;who encouraged me to start up a blog. Let's c how it goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15701809-112481453756681679?l=www.uchithar.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.uchithar.net/feeds/112481453756681679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15701809&amp;postID=112481453756681679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112481453756681679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15701809/posts/default/112481453756681679'/><link rel='alternate' type='text/html' href='http://www.uchithar.net/2005/08/hi-everyone-my-very-first-entry.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><thr:total>0</thr:total></entry></feed>
