<?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:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-544829222357122795</id><updated>2010-07-29T01:39:15.163+05:30</updated><title type='text'>Kiran Banda</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default?start-index=26&amp;max-results=25'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-7815246931415318506</id><published>2010-06-18T19:08:00.009+05:30</published><updated>2010-06-19T16:48:31.054+05:30</updated><title type='text'>My hero .. My Dad ...</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/TBuBe7eIzRI/AAAAAAAABXA/BtkPJ0kWjgo/s1600/DSC_0008.JPG"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 214px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5484119339613867282" border="0" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/TBuBe7eIzRI/AAAAAAAABXA/BtkPJ0kWjgo/s320/DSC_0008.JPG" /&gt;&lt;/a&gt; To me, Dad is the hero for every child. Great poets and speakers talked great about motherhood but a father is great too... Mother teaches lessons and makes the child understand, she gets concerned if the kid doesn't get what she tries to teach, but a father doesn't even let the child know that he is teaching ! All that is taught by a father is by sharing experiences and examples.&lt;br /&gt;&lt;br /&gt;If mom tells you "be careful", dad tells you "take a chance and yet, stand strong".&lt;br /&gt;&lt;br /&gt;If mom prays God for your well being, dad comes to your rescue and shares your painful moments.&lt;br /&gt;&lt;br /&gt;If mom feels that "everything should be good for you", dad teaches you how to handle those bad situations.&lt;br /&gt;&lt;br /&gt;I got to know that many parts of the world celebrate "Father's day" on the third Sunday of June. I don't seem to be lucky to celebrate 'coz it's been almost a year since my dad passed away.&lt;br /&gt;&lt;br /&gt;My brother and I call my dad - "Boss" - the one who decides what's good for us. We miss those moments when we discussed everything that happened during our day at work and my dad used to map those to his experiences and provided valuable inputs. He told us to love the work you do, in other words - get attached to the work and not with the people nor the workplace, which I think is quite a practical advice.&lt;br /&gt;&lt;br /&gt;My dad suffered from Cancer but never did he express pain during the time he was undergoing the "killing" therapies - for the reason not to let us down or panic. He showed us how to handle pain and be optimistic.&lt;br /&gt;&lt;br /&gt;The only gift that one can give to his/her dad is to keep him happy during his old age. Realize that your (older) dad is your first kid and I sometimes feel lucky to have taken care of him during the treatment, served food as if he was a kid.&lt;br /&gt;I fed my dad the night before he passed away and I remember his last words - "Have some food, everything is going to be okay... I will take rest for now" and my dad's soul rests in peace.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Remembering my father in every moment of my life ...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Following his principles in every walk of my life ....&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-7815246931415318506?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/7815246931415318506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=7815246931415318506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7815246931415318506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7815246931415318506'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/06/my-hero-my-dad.html' title='My hero .. My Dad ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k6gsMbQgZmo/TBuBe7eIzRI/AAAAAAAABXA/BtkPJ0kWjgo/s72-c/DSC_0008.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-5638071620941551299</id><published>2010-05-29T12:00:00.010+05:30</published><updated>2010-05-29T20:16:00.098+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Resizable flexigrid columns'/><category scheme='http://www.blogger.com/atom/ns#' term='Flexigrid ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Flexigrid.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Flexigrid'/><category scheme='http://www.blogger.com/atom/ns#' term='flexigrid client-side sorting'/><title type='text'>Flexigrid.Net</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_k6gsMbQgZmo/TAC6Mn-f0aI/AAAAAAAABW4/GiKEi8QVxzg/s1600/FlexigridNet.png"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 159px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5476581872934834594" border="0" alt="" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/TAC6Mn-f0aI/AAAAAAAABW4/GiKEi8QVxzg/s320/FlexigridNet.png" /&gt;&lt;/a&gt; Past weekend, I ran into an interesting implementation of a grid using JQuery called "Flexigrid". There used to be an elegant web page with little about the plugin and a couple of examples @ &lt;a href="http://flexigrid.info/"&gt;http://flexigrid.info/&lt;/a&gt; but this link doesn't seem to work any more ! &lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;You could view the flexigrid in action @ &lt;a href="http://flexigrid.eyeviewdesign.com/"&gt;http://flexigrid.eyeviewdesign.com/&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The plugin offers quite a lot of useful functionality. I found a couple of resources on the web that explains how to use this grid in an ASP.NET application, but I wanted to implement my version to fix/add the following functionality:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;An event when a row is selected&lt;/li&gt;&lt;li&gt;Sort the data that is in the view (say you are viewing 10 records out of 100 and you just want the sort to happen on the 10 records on the page). Although you could use dynamic datasource and get the sort working, I wanted to have it on a table that is intialized on the page and without having to get data from a server component.&lt;/li&gt;&lt;li&gt;A user control with flexigrid that lets you define the columns that you want to show, no matter how many ever columns are returned in the dataset&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I tried my hand to build an ASP.NET website that uses Flexigrid (modified a bit to include the above two items, and I have used TinyTableSorter javascript to accomplish sorting) and the data for the grid comes dynamically from AdventureWorks database through an ASP.NET web form. The motto was to let a developer just place a user control and define the columns that should be visible without having to write flexgrid documented javascript on the page (except for sorting, as I am using another javascript to do this). &lt;/p&gt;&lt;p&gt;Currently the web form in the POC sends data as JSON string and I shall extend it to send XML too, sometime in future :) In the meantime, check out this &lt;a href="http://www.codeproject.com/KB/aspnet/FlexiGrid.aspx"&gt;code project&lt;/a&gt; article.&lt;/p&gt;&lt;p&gt;Here is the example for you to &lt;a href="http://www.4shared.com/file/Me5I3jPz/FlexigridNet.html"&gt;download&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/544829222357122795-5638071620941551299?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/5638071620941551299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=5638071620941551299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5638071620941551299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5638071620941551299'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/05/flexigridnet.html' title='Flexigrid.Net'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k6gsMbQgZmo/TAC6Mn-f0aI/AAAAAAAABW4/GiKEi8QVxzg/s72-c/FlexigridNet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-3118572812678586855</id><published>2010-04-15T12:52:00.007+05:30</published><updated>2010-04-18T19:59:53.323+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='grid.htc'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM Record Counter'/><category scheme='http://www.blogger.com/atom/ns#' term='MS CRM 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Plugins'/><title type='text'>MS Dynamics CRM 4.0 Record Counter (revisited) ...</title><content type='html'>Few months ago, I talked about some of the work that we had done in adding &lt;a href="http://www.kiranbanda.in/2009/10/extending-crm-40.html"&gt;some functionalities&lt;/a&gt; to CRM 4.0.In this post I would like to furnish some details about our way of implementing a "CRM Record Counter".&lt;br /&gt;&lt;br /&gt;Google for "CRM Record Counter" and you will get "n" results and the common thing about the solutions offered in these sites is that they ask you to download/write and register a custom plugin. The way the plug-in works is that it gets invoked each time a search is fired (due to changing the view or by performing a quick search or an advanced find).The plugin has to be attached to the "Execute" message in CRM. After registering the plugin successfully, you would see that all the views that present a list of records will now start presenting the totals as a first row in the list ! Awesome, isn't it?&lt;br /&gt;&lt;br /&gt;Technically, the plugin intercepts the search request and response and just adds the required detail to the response appropriately.&lt;br /&gt;&lt;br /&gt;The best aspect of this solution is that it works for quick search, Advanced find, look ups as well as associated views too. No other solution can beat this, for sure. The downside of this solution is that it flushes this data in exports too ! I mean, if the user does an export to excel, the total row is also exported as the first row in excel. Well, this is not a major thing that prevents one from accepting this solution.Users can always delete the first row and deal with the rest of the data.&lt;br /&gt;&lt;br /&gt;Having explained a bit of detail about a solution that is available on the web, I would like to share my knowledge on how we can do all this (with some limitations, though) without having to register a custom plugin, (yes, you heard it right ;-)).&lt;br /&gt;&lt;br /&gt;Let me talk a bit about how the grid in CRM is rendered. Here is a screenshot of a view from CRM:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/S8gOz6eDxFI/AAAAAAAABTA/KQSB7sQrHn8/s1600/CRM_List_View.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 170px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5460630833218176082" border="0" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/S8gOz6eDxFI/AAAAAAAABTA/KQSB7sQrHn8/s320/CRM_List_View.png" /&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;Now, if you want to manipulate the data that is in the table, you should be changing a file by name "grid.htc". This file is located @ &lt;strong&gt;\Microsoft Dynamics CRM\CRMWeb\_static\_grid&lt;/strong&gt; on the server where CRM is installed.&lt;br /&gt;&lt;br /&gt;Open this file and you will observe that it looks like a "hi-fi" javascript code.In this file, define a function as given below:&lt;br /&gt;&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;function PrintFetchXMLForActiveView() {&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var fetchXML = '';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;if (top.stage != null &lt;span style="color:red;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; top.stage.crmGrid != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var sviewID = top.stage.crmGrid.GetParameter('viewid');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;//alert(sviewID);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var xml = "&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;'&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;'&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:soap&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/span&gt;'"&lt;span style="color:blue;"&gt; +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;'"&lt;span style="color:blue;"&gt; +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;'&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;GenerateAuthenticationHeader() +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Retrieve&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/crm/2007/WebServices&lt;/span&gt;'&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;entityName&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;savedquery&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;entityName&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" + sviewID + "&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;columnSet&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:q1&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/crm/2006/Query&lt;/span&gt;'&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xsi:type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;q1:ColumnSet&lt;/span&gt;'&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;q1:Attributes&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;q1:Attribute&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;fetchxml&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;q1:Attribute&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;q1:Attributes&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;columnSet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Retrieve&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Prepare the xmlHttpObject and send the request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var xHReq = new ActiveXObject("Msxml2.XMLHTTP");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("SOAPAction", &lt;a href="http://schemas.microsoft.com/crm/2007/WebServices/Retrieve"&gt;http://schemas.microsoft.com/crm/2007/WebServices/Retrieve&lt;/a&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("Content-Length", xml.length);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.send(xml);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Capture the result.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var resultXml = xHReq.responseXML;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// // DEBUG: alert(resultXml.selectSingleNode("//q1:modifiedon").nodeTypedValue);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// // DEBUG: alert(crmForm.all.modifiedon.DataValue);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;if (resultXml.selectSingleNode("//q1:fetchxml") != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;fetchXML = resultXml.selectSingleNode("//q1:fetchxml").nodeTypedValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;if (window.top != null &lt;span style="color:red;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; window.top.resultRender != null &lt;span style="color:red;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; window.top.resultRender.FetchXml != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;fetchXML = window.top.resultRender.FetchXml.value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;if (fetchXML.length &amp;gt; 0) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;fetchXML = fetchXML.replace(/\"/g, "'").replace(/&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;g&lt;/span&gt;,&lt;span style="color:blue;"&gt; &lt;/span&gt;"&lt;span style="color:red;"&gt;&amp;amp;lt;&lt;/span&gt;")&lt;span style="color:red;"&gt;.replace&lt;/span&gt;(&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;/g, "&lt;span style="color:red;"&gt;&amp;amp;gt;&lt;/span&gt;");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Fire FetchXML and get the totals&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var queryForTotals = "&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;'&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;'&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:soap&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/span&gt;'"&lt;span style="color:blue;"&gt; +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;'"&lt;span style="color:blue;"&gt; +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;'&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;GenerateAuthenticationHeader() +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Fetch&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;'&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/crm/2007/WebServices&lt;/span&gt;'&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;fetchXml&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;fetchXML +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;fetchXml&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Fetch&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;" +&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;"&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq = new ActiveXObject("Msxml2.XMLHTTP");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("SOAPAction", &lt;a href="http://schemas.microsoft.com/crm/2007/WebServices/Fetch"&gt;http://schemas.microsoft.com/crm/2007/WebServices/Fetch&lt;/a&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.setRequestHeader("Content-Length", queryForTotals.length);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;xHReq.send(queryForTotals);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Capture the result.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var resultXmlForFetch = xHReq.responseXML;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Capture the result and UnEncode it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var resultSet = new String();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;resultSet = resultXmlForFetch.text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;resultSet.replace('&lt;span style="color:red;"&gt;&amp;amp;lt;&lt;/span&gt;', '&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;'&lt;span style="color:blue;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;resultSet.replace(&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;'&lt;span style="color:red;"&gt;&amp;amp;gt;&lt;/span&gt;', '&amp;gt;');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Create an XML document that you can parse.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;oXmlDoc.async = false;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Load the XML document that has the UnEncoded results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;oXmlDoc.loadXML(resultSet);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;// Display the results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;var results = oXmlDoc.getElementsByTagName('result');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;TotalRecordsMessage = '--&amp;gt; Total Records = ' + results.length;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;//alert(TotalRecordsMessage);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';font-size:8;"&gt;}&lt;/span&gt;&lt;span style="font-family:'Segoe UI','sans-serif';font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;The purpose of the script is to track the id of the current view, fire an XMLHTTP request (call the CRM web service through javascript), parse the results and store the details in local variables. For example, if the current view is "Active Contacts", then the script determines the ID of the view, fires an XML HTTP request to query for the total number of records related to the current view. After we have the total number of records stored in a local variable, we then have to update the status bar of the table to present this detail.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Advantages : &lt;/strong&gt;&lt;br /&gt;The biggest advantage of this solution is that it doesn't require you to register a plug-in. All that one needs to know is to place the grid.htc file @ the appropriate location and ask the users of CRM to do a Ctrl+F5 (in order to download the latest scripts and CSS from the server). As you can see, the procedure to install this solution is its highlight.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Limitations:&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;ol&gt;&lt;li&gt;The solution doesn't work for quick find and look ups. It only works for saved views. Since the solution works in "Advanced Find" too, a workaround for the limitation is to use "Advanced Find" if you require totals.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Since the solution is a change to a globally referenced script, all the org. units will get this detail (whether you like it or not :()&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Since we are modifying a script that comes along with CRM installation, I am not sure if it works seamlessly when you move to a higher version of CRM !&lt;/li&gt;&lt;/ol&gt;I have presented two possible solutions for "CRM Record counter" and I leave this to your discretion to pick a solution that better addresses your requirements :)&lt;br /&gt;&lt;br /&gt;Download the script from &lt;a href="http://www.4shared.com/file/0tp2SPFx/grid.html"&gt;here&lt;/a&gt; and please feel free to comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-3118572812678586855?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/3118572812678586855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=3118572812678586855' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3118572812678586855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3118572812678586855'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/04/crm-record-counter-revisited.html' title='MS Dynamics CRM 4.0 Record Counter (revisited) ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k6gsMbQgZmo/S8gOz6eDxFI/AAAAAAAABTA/KQSB7sQrHn8/s72-c/CRM_List_View.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-6615460905354260607</id><published>2010-04-10T15:07:00.006+05:30</published><updated>2010-04-11T10:23:36.440+05:30</updated><title type='text'>Hot Summer .. Cool moments ...</title><content type='html'>Last week, I took a three day long vacation and went to my home town (may be I should say "ex-home-town") on the occasion of one of my cousin's thread ceremony.&lt;br /&gt;It feels good to go back in time and recollect those good old days, meet childhood friends. I got a chance to meet one of my teachers who taught us @ school and it was really a very good experience.&lt;br /&gt;&lt;br /&gt;Here are a couple of &lt;a href="http://picasaweb.google.com/kiran.banda/School#"&gt;photos &lt;/a&gt;that I captured during my visit to my home-town.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-6615460905354260607?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/6615460905354260607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=6615460905354260607' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6615460905354260607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6615460905354260607'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/04/hot-summer-cool-moments.html' title='Hot Summer .. Cool moments ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-3450093648341246153</id><published>2010-03-30T22:44:00.008+05:30</published><updated>2010-03-31T00:09:14.109+05:30</updated><title type='text'>Talent vs Attitude</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_k6gsMbQgZmo/S7JFNo41zsI/AAAAAAAABQ0/KqSmiWRi8qQ/s1600/attitude-skateboarder.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 251px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5454498199315533506" border="0" alt="" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/S7JFNo41zsI/AAAAAAAABQ0/KqSmiWRi8qQ/s320/attitude-skateboarder.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;The other day, my wife and I were having a stroll in a park near my home and were talking about "talent" and "attitude".&lt;br /&gt;&lt;div&gt;&lt;br /&gt;From my experience in IT, I feel that it is very important to have an attitude to solve a problem than talent. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I had worked with many developers - some of them were born talented but got relaxed over time and I find it very difficult to work with such people. On the other hand, there were developers that never bothered about the type of work but always have enjoyed the work. This set of people derive motivation from the work that they do and always try out newer approaches even while performing a repetitious task.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;When I interview candidates for my projects, I always look for people that have an attitude to work over talent and this decision helped me survive with reasonable amount of success.&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&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Needless to say - Talented people with an attitude to work is definitely a perfect choice at work :-)&lt;/div&gt;&lt;br /&gt;&lt;div&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/544829222357122795-3450093648341246153?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/3450093648341246153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=3450093648341246153' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3450093648341246153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3450093648341246153'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/03/talent-vs-attitude.html' title='Talent vs Attitude'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k6gsMbQgZmo/S7JFNo41zsI/AAAAAAAABQ0/KqSmiWRi8qQ/s72-c/attitude-skateboarder.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-2604046254352690443</id><published>2010-03-18T10:57:00.005+05:30</published><updated>2010-03-18T11:28:50.281+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Garbage collection'/><category scheme='http://www.blogger.com/atom/ns#' term='Background process'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net CacheItemRemoved'/><title type='text'>Background process in ASP.NET ...</title><content type='html'>A few months ago, I came across an interesting technique in ASP.NET to simulate background processes @ &lt;a href="http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/"&gt;http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/&lt;/a&gt;. I have tried this approach in a couple of my projects and it works. I would like to extend the post at this link with my experiences after implementing this technique in a real-time project.&lt;br /&gt;&lt;br /&gt;Firstly, thanks to whoever came up with this interesting idea. It works for sure but with limitations.&lt;br /&gt;Let me just copy and paste the code snippet from the above url for reference purposes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;private static CacheItemRemovedCallback OnCacheRemove = null;&lt;br /&gt;&lt;br /&gt;protected void Application_Start(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;AddTask("DoStuff", 60);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void AddTask(string name, int seconds)&lt;br /&gt;{&lt;br /&gt;OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);&lt;br /&gt;HttpRuntime.Cache.Insert(name, seconds, null,&lt;br /&gt;DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,&lt;br /&gt;CacheItemPriority.NotRemovable, OnCacheRemove);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)&lt;br /&gt;{&lt;br /&gt;// do stuff here if it matches our taskname, like WebRequest&lt;br /&gt;// re-add our task so it recurs&lt;br /&gt;AddTask(k, Convert.ToInt32(v));&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;We can have only one background process per web application (ref : CacheItemRemoved). If you have a requirement to perform two tasks at different intervals of time (say one at every 10 mins and the other at every one hour), then the approach that I propose is to have the background process wake up at regular intervals of time (say 10 sec) and track the timestamp when a particular process executed recently. This is more of an implementation level logic and I hope you got the idea :-)&lt;/li&gt;&lt;li&gt;As a good coding practice, one would avoid inline business logic (in the CacheItemRemoved) but cache a business object and invoke a method on the business object at regular intervals (in the CacheItemRemoved method). Beware that you might run into a situation where your business object got garbage collected (eg: the process that runs every one hour in my example above) and your background process ends up doing nothing !! To solve this problem, I propose to create a blank file on the file system (preferably in the root directory of your web app) and the existance of this blank file indicates that the background process should be kept alive. So if you perform a null check on the cached business object and you find that it is "null", just instantiate and re-insert the new object in cache so that your background process works as expected :-)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The fundamental approach is awesome and I hope my experiences help developers solve a couple of practical problems with the approach :-)&lt;/p&gt;&lt;p&gt;Cheers.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-2604046254352690443?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/2604046254352690443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=2604046254352690443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2604046254352690443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2604046254352690443'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/03/background-process-in-aspnet.html' title='Background process in ASP.NET ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-4900901896586042355</id><published>2010-02-07T10:48:00.006+05:30</published><updated>2010-02-07T11:24:57.397+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Struts.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net MVC'/><title type='text'>Struts.NET = ASP.NET MVC ?</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/S25T9I3c2FI/AAAAAAAABP0/bFmxJTK5I0Y/s1600-h/mvc-logo-landing-page.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 142px; FLOAT: left; HEIGHT: 58px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5435374110099953746" border="0" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/S25T9I3c2FI/AAAAAAAABP0/bFmxJTK5I0Y/s320/mvc-logo-landing-page.png" /&gt;&lt;/a&gt; &lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/S25UB7glxdI/AAAAAAAABP8/d5xFoVEqZi4/s1600-h/Struts.png"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 42px; FLOAT: right; HEIGHT: 42px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5435374192413754834" border="0" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/S25UB7glxdI/AAAAAAAABP8/d5xFoVEqZi4/s320/Struts.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;These days, I am reading a bit about ASP.NET MVC and it looks like Microsoft is trying to implement Java Struts !&lt;br /&gt;&lt;br /&gt;Does it mean that it took so long for .NET guys to understand Struts and get ASP.NET support such a paradigm?&lt;br /&gt;&lt;br /&gt;Let's not get into a Java vs .NET debate but see the similarities and differences between ASP.NET MVC and Java Struts: &lt;ul&gt;&lt;li&gt;To start with, an ASP.NET form expects/mandates only one &lt;strong&gt;form&lt;/strong&gt; tag but with MVC now, you can have any number of &lt;strong&gt;form&lt;/strong&gt; tags in an ASPx page. You could have any number of &lt;strong&gt;form&lt;/strong&gt; tags in a JSP page.&lt;/li&gt;&lt;li&gt;The code-behind event handlers used to act as controllers in a standard ASP.NET web application. In Struts, an Action class acts as a controller which means that any submit action on a page is associated with an Action class. ASP.NET MVC is following the Struts Action controller approach now.&lt;/li&gt;&lt;li&gt;ASP.NET MVC takes very good advantage of LinQ-SQL. VS 2008 is made so powerful that it eases the life of a developer by generating lot of useful code. On the other hand, although there are OR class libraries like Hibernate, the IDEs (the ones that I used so far) generate very little code and thus make you write a lot of code !&lt;/li&gt;&lt;li&gt;ASP.NET MVC is convention based, meaning that it expects the controllers/view pages and the model to follow a consistent naming convention (although, this is not mandatory and not that restrictive too). In Struts, the key is Struts-config.xml that associates a view and a controller.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So far, these are some of my observations on Struts and ASP.NET MVC. Let me make my hands dirty with ASP.NET MVC and then talk more about it after I achieve a level of comfort :-)&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/544829222357122795-4900901896586042355?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/4900901896586042355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=4900901896586042355' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/4900901896586042355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/4900901896586042355'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2010/02/strutsnet-aspnet-mvc.html' title='Struts.NET = ASP.NET MVC ?'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k6gsMbQgZmo/S25T9I3c2FI/AAAAAAAABP0/bFmxJTK5I0Y/s72-c/mvc-logo-landing-page.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-7166107823770059786</id><published>2009-12-03T17:22:00.016+05:30</published><updated>2009-12-07T14:22:39.422+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FetchXML Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='FetchXML'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM FetchXML Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM 4.0'/><title type='text'>CRM FetchXMLBuilder ...</title><content type='html'>While developing applications (Plugins, Workflows, Service Portals) for CRM, it is a quite common requirement to build FetchXML or write search logic using QueryExpressions of CRM SDK API.&lt;br /&gt;&lt;br /&gt;I found an excellent tool called &lt;a href="http://www.jamesdowney.net/blog/page/Request-FetchXML-Builder-Key.aspx"&gt;Fetch XML Builder&lt;/a&gt; that helps you prepare FetchXML by building queries and joins using an intuitive user interface.&lt;br /&gt;&lt;br /&gt;Let me tell you that there is a smarter way to extract FetchXML and this is how you can do it:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open &lt;b&gt;Advanced Find&lt;/b&gt; in CRM Build your search criteria in the UI (you can't get a sophisticated UI than this :-)) &lt;/li&gt;&lt;li&gt;Save the query&lt;/li&gt;&lt;li&gt;Hit &lt;b&gt;Find &lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_k6gsMbQgZmo/SxvnesDC_oI/AAAAAAAABO4/YisiaXzNL1w/s1600-h/DefineSearchinCRM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 231px;" src="http://2.bp.blogspot.com/_k6gsMbQgZmo/SxvnesDC_oI/AAAAAAAABO4/YisiaXzNL1w/s320/DefineSearchinCRM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412173891621813890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;View the source of the results page and search for the hidden field named "fetchXML".&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvoHXnaW5I/AAAAAAAABPA/EMGyezEq8Rk/s1600-h/FetchXMLHiddenVariable.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvoHXnaW5I/AAAAAAAABPA/EMGyezEq8Rk/s320/FetchXMLHiddenVariable.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412174590511831954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now, my attempt is not to outsmart the tool - Fetch XML Builder, but let me tell you how you can use this tool for some useful code :)&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Launch Fetch XML Builder&lt;/li&gt;&lt;li&gt;Click "Import" -&gt; "User Query" to import the query that we built in CRM&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvovkPhHPI/AAAAAAAABPI/t-gn1gLjSv4/s1600-h/FetchXMLBuilder-UserQuery.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 319px;" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvovkPhHPI/AAAAAAAABPI/t-gn1gLjSv4/s320/FetchXMLBuilder-UserQuery.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412175281096039666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Now, let the tool generate code for you by clicking on "Create Code" -&gt; "QueryExpression" &lt;/li&gt;&lt;/ol&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvpEIHXjPI/AAAAAAAABPQ/ccWVp-gHARA/s1600-h/FXMB-GenerateCode.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 318px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5412175634322918642" border="0" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/SxvpEIHXjPI/AAAAAAAABPQ/ccWVp-gHARA/s320/FXMB-GenerateCode.png" /&gt;&lt;/a&gt;  Let the effort that had gone towards building an intuitive UI for FetchXMLBuilder be appreciated :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-7166107823770059786?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/7166107823770059786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=7166107823770059786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7166107823770059786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7166107823770059786'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/12/crm-fetchxmlbuilder.html' title='CRM FetchXMLBuilder ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k6gsMbQgZmo/SxvnesDC_oI/AAAAAAAABO4/YisiaXzNL1w/s72-c/DefineSearchinCRM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-1604518206612359161</id><published>2009-12-03T17:22:00.004+05:30</published><updated>2009-12-06T12:32:56.864+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timer based Applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Applications for Services'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='System Tray applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Monitor'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Windows Service Monitor ...</title><content type='html'>.NET makes life lot lot easier at times. Recently I came across a requirement where it is required to monitor the installed windows services and send a notification (via Email or an SMS) to designated people letting them know that a windows service of interest got stopped.&lt;br /&gt;&lt;br /&gt;I searched for a freeware in Google and found that all the products out there can send an email when a service "fails" not when a service is stopped.&lt;br /&gt;&lt;br /&gt;I ended up writing a small windows based application that looks like below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_k6gsMbQgZmo/SxtWRdiFoMI/AAAAAAAABOw/82_R3x7DoUg/s1600-h/ServiceMonitor.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/SxtWRdiFoMI/AAAAAAAABOw/82_R3x7DoUg/s320/ServiceMonitor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412014235201151170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The program monitors the selected services at regular intervals of time (configurable) and sends an email when a selected service is stopped (one email per service).&lt;br /&gt;&lt;br /&gt;The source code for the above program is &lt;a href="http://www.4shared.com/file/164020550/f0c2fc09/WindowsServiceMonitor.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-1604518206612359161?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/1604518206612359161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=1604518206612359161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/1604518206612359161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/1604518206612359161'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/12/windows-service-monitor.html' title='Windows Service Monitor ...'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k6gsMbQgZmo/SxtWRdiFoMI/AAAAAAAABOw/82_R3x7DoUg/s72-c/ServiceMonitor.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-8230554644192323942</id><published>2009-10-27T19:55:00.019+05:30</published><updated>2010-04-16T09:50:37.459+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM Record Counter'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM 4.0'/><title type='text'>Extending CRM 4.0 ...</title><content type='html'>These days I get to spend a lot of time working on CRM 4.0. In this post, I would like to list (without much technical details) some of the extensions that I have implemented on CRM 4.0. &lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;h4&gt;Audit CRM records&lt;/h4&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Created a little plugin that logs changes to a record to a custom entity (just one is sufficient to hold changes across all entities :-)) &lt;/li&gt;&lt;li&gt;A web page that presents the changes in a readable format&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h4&gt;Record Counter&lt;/h4&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Implemented something similiar to what you see @ &lt;a href="http://www.hubkey.com/DynamicsCRM.aspx"&gt;http://www.hubkey.com/DynamicsCRM.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_k6gsMbQgZmo/SvTuOB3jj-I/AAAAAAAABMs/d_8C7loyoIM/s1600-h/Record+Counter.JPG"&gt;&lt;img style="MARGIN: 0px 0px 0px 0px; WIDTH: 320px; HEIGHT: 257px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5401203777911099362" border="0" alt="" src="http://2.bp.blogspot.com/_k6gsMbQgZmo/SvTuOB3jj-I/AAAAAAAABMs/d_8C7loyoIM/s320/Record+Counter.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h4&gt;Concurrency checker&lt;/h4&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;An interesting implementation that checks to see if the current record was already saved by one user when two users had opened it simultaneously.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-8230554644192323942?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/8230554644192323942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=8230554644192323942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8230554644192323942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8230554644192323942'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/10/extending-crm-40.html' title='Extending CRM 4.0 ...&lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k6gsMbQgZmo/SvTuOB3jj-I/AAAAAAAABMs/d_8C7loyoIM/s72-c/Record+Counter.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-3038990289152642947</id><published>2009-10-06T21:35:00.003+05:30</published><updated>2009-10-06T21:50:13.266+05:30</updated><title type='text'>Commercializing Calamities ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://talesfromanopenbook.files.wordpress.com/2009/02/newspaper.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 190px; height: 139px;" src="http://talesfromanopenbook.files.wordpress.com/2009/02/newspaper.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I like to watch news on TV, but not anymore !! With increasing number of TV channels that serve news 24X7, it looks like every damn thing is made news about. Things that one doesn't care is being hyped up to an extent that audience go mad discussing it or feel anxious about.&lt;br /&gt;&lt;br /&gt;It is my subjective feeling/opinion that NEWS channels (in particular) should follow certain standards. The other day, I was watching a news channel that went on saying that it motivated the public so much that people turned up in huge numbers to help out flood-hit areas. Well, when there is a calamity and a fellow being is suffering in some part of the world, it is quite natural that people empathize the suffering and come up with some generosity to help the needy.&lt;br /&gt;&lt;br /&gt;I got pissed off with the way these TV channels promote themselves. For these TV channels, even charity seems to be NEWS, helping the needy is a means to increase their TRP ratings !! Shame on such channels that put themselves as the only motivators helping out people suffering from a natural calamity!!!&lt;br /&gt;&lt;br /&gt;There is a saying - "No news, Good news" but it looks now, every news is a bad news or may be  bad is brought out to make news !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-3038990289152642947?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/3038990289152642947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=3038990289152642947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3038990289152642947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/3038990289152642947'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/10/commercializing-calamities.html' title='Commercializing Calamities ...&lt;hr class=&apos;ruler&apos;/&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-5379644911057982776</id><published>2009-06-04T15:54:00.011+05:30</published><updated>2009-06-04T20:29:27.970+05:30</updated><title type='text'>JQuery.NET ...</title><content type='html'>Of late, I have been reading through JQuery and I find it very interesting.A fantastic javascript library that helps web developers traverse the HTML DOM fairly easily.&lt;br /&gt;&lt;br /&gt;I found an interesting example that uses JQuery &lt;a style="COLOR: blue" href="http://loopj.com/2009/04/25/jquery-plugin-tokenizing-autocomplete-text-entry/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I built a .NET custom control using the example above.&lt;br /&gt;&lt;br /&gt;Some of the features are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ability to bind the control to a list of name value pairs&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Allow the control to be initialized with a list of tokens&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Property to determine if the list has to allow adding items not in the search results&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SievJGPLzOI/AAAAAAAABG8/7DmfmpV2Mz0/s1600-h/Predefined+list.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5343432053726366946" style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 75px" alt="" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/SievJGPLzOI/AAAAAAAABG8/7DmfmpV2Mz0/s320/Predefined+list.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5343432267223235634" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 77px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_k6gsMbQgZmo/SievVhkzfDI/AAAAAAAABHE/_rUhgKeSB58/s320/Validation.png" border="0" /&gt;&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SievnAkD3VI/AAAAAAAABHM/nSItEifKqhQ/s1600-h/NameNotInTheList.png"&gt;&lt;/a&gt;&lt;img id="BLOGGER_PHOTO_ID_5343478999046627522" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 188px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_k6gsMbQgZmo/SifZ1rLvIMI/AAAAAAAABHU/98JFiRwFmUs/s320/NameNotInTheList.png" border="0" /&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;Feel free to write to me incase you are in need of such a control and I shall be glad to email you the sources.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Note: Please do not forget to quote your email address while requesting for the sources :-)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers !!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-5379644911057982776?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/5379644911057982776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=5379644911057982776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5379644911057982776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5379644911057982776'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/06/jquerynet.html' title='JQuery.NET ...&lt;hr /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k6gsMbQgZmo/SievJGPLzOI/AAAAAAAABG8/7DmfmpV2Mz0/s72-c/Predefined+list.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-6815251050600068511</id><published>2009-05-23T17:46:00.005+05:30</published><updated>2009-05-23T18:17:00.010+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cancer'/><category scheme='http://www.blogger.com/atom/ns#' term='Radio therapy'/><category scheme='http://www.blogger.com/atom/ns#' term='Chemo therapy'/><title type='text'>Cancer  - Can Sir ...</title><content type='html'>Continuing with my last post where I ended with a wish/pray that ARR wins an OSCAR for India - On the day when OSCARs were announced, I was up early in the morning not just to see the event but attending a CT Scan for my dad !! I was going through a mixed feeling - on one hand, my wish for my icon got fulfilled while on the other hand, my dad was diagnosed to be suffering from Cancer!&lt;br /&gt;&lt;br /&gt;Cancer - the term is scary, for sure. It is often said that "Cancer can be cured when diagnosed early" and having observed the diagnosis and the treatment for my dad, I intend to put my experiences with an aim to spread the awareness on Cancer.&lt;br /&gt;&lt;br /&gt;What is Cancer - putting it simply it is a disease where some cells in our body start multiplying exponentially resulting in bulges/tumors on the body.&lt;br /&gt;&lt;br /&gt;How do you diagnose it ? - This is infact a tough question.How many times did you feel your whole body to observe any lump/bulge that is not painful ? I am sure the answer is "zero". Generally, we tend to ignore a swelling/lump/bulge in our body that is not causing pain and there's the culprit.&lt;br /&gt;&lt;br /&gt;A swelling that is painful is less dangerous than the one that is not painful.&lt;br /&gt;&lt;br /&gt;In my dad's case, we observed a swelling near the left jaw and we ignored it ('coz we were busy with my engagement and marriage events and on the other hand, the swelling is not causing any pain !). We went to a local doctor who concluded that it is a general infection, while it is not.My dad started experiencing pinching pain near the abdomen and that's when we consulted a specialist who diagnosed the disease to be Cancer. (thanks to the doctor - Dr.G.V.Prakash).&lt;br /&gt;&lt;br /&gt;Dr.Prakash helped us by explaining the purpose of each test, the results and the next steps. After having gone through a set of tests that ensured that all the vital organs in the body are in tact, he referred us to a Radiation Oncologist (Dr.Nalini) who took up the case and started the treatment.&lt;br /&gt;&lt;br /&gt;The treatment comprises two major procedures - Radio therapy and Chemo therapy. &lt;br /&gt;Radio therapy - the patient is subjected to controlled radio active rays at the area where Cancer is identified.&lt;br /&gt;Chemo therapy - a particular combination of injections/chemicals are injected into the body which identifies the culprit cells and kills them. The chemicals are so powerful that they affect the normal cells too and as a result the patient suffers from various side-effects like loss of hair, sore throat, mouth ulcers, vomiting sensation, dehydration, fever, etc.. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Believe me, Cancer is a disease where the disease doesn't cause the pain but the treatment is painful. I thank God for my dad is able to bear the pain and I pray Him to give my dad all the strength to tolerate the side-effects and come out of it healthy.&lt;br /&gt;&lt;br /&gt;During the course of the treatment, I had collected some material guiding the patients as to how they have to maitain diet during the treatment and here is the link to that &lt;a href="http://www.4shared.com/file/104684609/23cb6bdd/Nutrition_Guide.html" style="color:blue;"&gt;document&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For Cancer, more than the medicine, it's the diet/food and a positive attitude that helps one fight it. &lt;br /&gt;&lt;br /&gt;I hope I have contributed a bit towards fighting Cancer by spreading awareness and I will be more than happy if the information here helps you in some way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-6815251050600068511?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/6815251050600068511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=6815251050600068511' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6815251050600068511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6815251050600068511'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/05/cancer-can-sir.html' title='Cancer  - Can Sir ...&lt;hr /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-6403762383582240387</id><published>2009-01-13T09:08:00.003+05:30</published><updated>2009-01-13T09:18:22.098+05:30</updated><title type='text'>Maestro strikes again ... </title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_k6gsMbQgZmo/SWwOKI5JZCI/AAAAAAAAAbk/S0jiCYKpaEs/s1600-h/ARR.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5290619229602145314" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 103px; CURSOR: hand; HEIGHT: 155px" alt="" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/SWwOKI5JZCI/AAAAAAAAAbk/S0jiCYKpaEs/s320/ARR.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Music Maestro,Mozart of Madras - A.R.Rahman strikes again and this time the aim is to bag an Oscar. He is the first Indian music director to win the prestigious "Golden Globe" award, besides a big list of awards that he has got for the movie "Slumdog millionaire".&lt;br /&gt;&lt;br /&gt;I am just waiting for the Oscars to be announced and praying God (seriously and sincerely) that my icon wins an Oscar for Indian music.&lt;br /&gt;&lt;br /&gt;I wish ARR all success :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-6403762383582240387?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/6403762383582240387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=6403762383582240387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6403762383582240387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/6403762383582240387'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2009/01/maestro-strikes-again.html' title='Maestro strikes again ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k6gsMbQgZmo/SWwOKI5JZCI/AAAAAAAAAbk/S0jiCYKpaEs/s72-c/ARR.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-4788174025804218999</id><published>2008-12-07T20:02:00.004+05:30</published><updated>2008-12-07T20:27:43.899+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shared IP'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS6.0'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple websites in IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='static IP'/><category scheme='http://www.blogger.com/atom/ns#' term='dedicated IP'/><title type='text'>Creating multiple websites on a single IP ... </title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://thumbs.dreamstime.com/thumb_115/1169471110QKJaXU.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 300px;" src="http://thumbs.dreamstime.com/thumb_115/1169471110QKJaXU.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Suppose, I have a couple of websites hosted on a dedicated server (Windows 2003 with IIs 6.0) and the issue is that with one IP address (in other words - Static/Dedicated IP address), I was able to reach only one of the websites.&lt;br /&gt;&lt;br /&gt;There are three options to host multiple websites in IIS :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create websites, each assigned an IP - The downside of this option is that you will have limited IPs with you !!&lt;/li&gt;&lt;li&gt;Create websites, each listening on different port numbers.For example, http://mysite1.com and http://mysite2.com:8888 - The downside of this approach is that users have to remember the port number of the site that they are interested in!!&lt;/li&gt;&lt;li&gt;Using Host-Headers - This option is the "best" that solves the problem at hand.&lt;/li&gt;&lt;/ol&gt;Let me elaborate a bit on option #3 here:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create multiple websites in IIS&lt;/li&gt;&lt;li&gt;Right click on a website, choose "Properties".&lt;/li&gt;&lt;li&gt;On the tab page named "Website" click "Advanced ..." and here you can add a host header (say, mysite2.com) and let all the websites have the IP as "All Unassigned" and the port 80.&lt;/li&gt;&lt;/ol&gt;Having done this, update the DNS records for mysite1.com and mysite2.com to point to the IP running your webserver and try accessing mysite1.com and mysite2.com, it works :-)&lt;br /&gt;&lt;br /&gt;For more details, please visit &lt;a style="color:blue;" href="http://www.iisanswers.com/Top10FAQ/t10-hostheaders.htm"&gt;http://www.iisanswers.com/Top10FAQ/t10-hostheaders.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-4788174025804218999?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/4788174025804218999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=4788174025804218999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/4788174025804218999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/4788174025804218999'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/12/creating-multiple-websites-on-single-ip.html' title='Creating multiple websites on a single IP ... &lt;hr class=&apos;ruler&apos;/&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-8319118360140011221</id><published>2008-11-29T13:55:00.016+05:30</published><updated>2008-11-30T15:09:10.728+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='LightBox2'/><category scheme='http://www.blogger.com/atom/ns#' term='Photogallery'/><title type='text'>Cool Javascript for implementing a photo gallery ... </title><content type='html'>The other day, Sudeep gave me a url to a javascript library that can be used to implement a photo gallery on web pages. The script is - &lt;a style="COLOR: blue" href="http://www.lokeshdhakar.com/projects/lightbox2/" target="_blank"&gt;LightBox2&lt;/a&gt;. I liked the script and wanted to give a try, so I thought why not a photo gallery with the pictures of Bara Imambara ;-)&lt;br /&gt;&lt;br /&gt;Here it is ... Click on an image to see the script in action. After you click on an image, roll over the mouse on the image (popup) to see next and previous buttons or use left/right arrow keys to navigate through the gallery.&lt;br /&gt;&lt;table class="gallery" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 35px; WIDTH: 150px; PADDING-TOP: 35px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara First Gateway " href="http://upload.wikimedia.org/wikipedia/en/c/ca/Bara_Imambara_First_Gateway_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="75" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/c/ca/Bara_Imambara_First_Gateway_01.JPG/120px-Bara_Imambara_First_Gateway_01.JPG" width="120" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 36px; WIDTH: 150px; PADDING-TOP: 36px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Second Gateway " href="http://upload.wikimedia.org/wikipedia/en/6/6d/Bara_Imambara_Second_Gateway_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="74" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/6/6d/Bara_Imambara_Second_Gateway_01.JPG/120px-Bara_Imambara_Second_Gateway_01.JPG" width="120" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 33px; WIDTH: 150px; PADDING-TOP: 33px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Second Gateway " href="http://upload.wikimedia.org/wikipedia/en/a/a9/Bara_Imambara_Second_Gateway_03.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="80" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/a/a9/Bara_Imambara_Second_Gateway_03.JPG/120px-Bara_Imambara_Second_Gateway_03.JPG" width="120" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 13px; WIDTH: 150px; PADDING-TOP: 13px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Corridor " href="http://upload.wikimedia.org/wikipedia/en/3/3b/Bara_Imambara_Corridor_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="119" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/3/3b/Bara_Imambara_Corridor_01.JPG/82px-Bara_Imambara_Corridor_01.JPG" width="82" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 13px; WIDTH: 150px; PADDING-TOP: 13px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Long Corridor " href="http://upload.wikimedia.org/wikipedia/en/3/38/Bara_Imambara_Long_Corridor_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="120" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/3/38/Bara_Imambara_Long_Corridor_01.JPG/83px-Bara_Imambara_Long_Corridor_01.JPG" width="83" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 28px; WIDTH: 150px; PADDING-TOP: 28px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Second Hallway " href="http://upload.wikimedia.org/wikipedia/en/e/e2/Bara_Imambara_Second_Hallway_04.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="90" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/e/e2/Bara_Imambara_Second_Hallway_04.JPG/120px-Bara_Imambara_Second_Hallway_04.JPG" width="120" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 13px; WIDTH: 150px; PADDING-TOP: 13px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Domed Chamber " href="http://upload.wikimedia.org/wikipedia/en/b/b9/Bara_Imambara_Domed_Chamber_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="120" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/b/b9/Bara_Imambara_Domed_Chamber_01.JPG/83px-Bara_Imambara_Domed_Chamber_01.JPG" width="83" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 13px; WIDTH: 150px; PADDING-TOP: 13px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Second Hallway " href="http://upload.wikimedia.org/wikipedia/en/e/ea/Bara_Imambara_Second_Hallway_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="119" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/e/ea/Bara_Imambara_Second_Hallway_01.JPG/82px-Bara_Imambara_Second_Hallway_01.JPG" width="82" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 13px; WIDTH: 150px; PADDING-TOP: 13px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Roof View " href="http://upload.wikimedia.org/wikipedia/en/9/90/Bara_Imambara_Roof_View_02.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="120" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/9/90/Bara_Imambara_Roof_View_02.JPG/86px-Bara_Imambara_Roof_View_02.JPG" width="86" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div class="gallerybox" style="WIDTH: 155px"&gt;&lt;div class="thumb" style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 36px; WIDTH: 150px; PADDING-TOP: 36px"&gt;&lt;div style="MARGIN-LEFT: auto; WIDTH: 120px; MARGIN-RIGHT: auto"&gt;&lt;a class="image" title="Bara Imambara Shahi Bowli " href="http://upload.wikimedia.org/wikipedia/en/9/9e/Bara_Imambara_Shahi_Bowli_01.JPG" rel="lightbox[lucknow]"&gt;&lt;img height="74" alt="" src="http://upload.wikimedia.org/wikipedia/en/thumb/9/9e/Bara_Imambara_Shahi_Bowli_01.JPG/120px-Bara_Imambara_Shahi_Bowli_01.JPG" width="120" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gallerytext"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Images courtesy: wikipedia.org :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-8319118360140011221?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/8319118360140011221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=8319118360140011221' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8319118360140011221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8319118360140011221'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/11/cool-javascript-for-implementing-photo.html' title='Cool Javascript for implementing a photo gallery ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-2314670461589500070</id><published>2008-11-28T15:47:00.008+05:30</published><updated>2009-02-17T12:13:37.517+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='POP3 client'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Secure POP3 client'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='POP3'/><title type='text'>POP3 client in C# ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.themessagecenter.com/pics/icons_services/large_icons/securemessaging.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 208px; CURSOR: pointer; HEIGHT: 153px" alt="" src="http://www.themessagecenter.com/pics/icons_services/large_icons/securemessaging.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;The other day, I was trying to develop a C# application that can retrieve emails from Gmail via POP3. I searched through various sites for a library that I could use to fetch POP3 emails. I came across a bunch of libraries (along with source code) but unfortunately, none of them worked, 'coz they all don't seem to support SSL, while Gmail POP server requires communication over a secure connection (SSL) !!&lt;br /&gt;&lt;br /&gt;After a lot of search in Google, I came across a post in which it is explained that there is an open source project named &lt;a style="COLOR: blue" href="http://sourceforge.net/projects/hpop/" target="_blank"&gt;OpenPOP.Net&lt;/a&gt; and that there is a class named PopClient.cs that needs to be modified as explained (the code was put on the site there). I had downloaded the sources, tried compiling OpenPOP.Net with the new class, spent some time fixing the compile time issues since the modified PopClient.cs in turn relies on a third-party library !!&lt;br /&gt;&lt;br /&gt;Atlast I have got the sample in OpenPOP.Net working with the modified PopClient.cs and now I am able to fetch messages from Gmail :-)&lt;br /&gt;&lt;br /&gt;For the benefit of all those developers, breaking their head trying to read emails from Gmail in C# apps (or any other POP server that requires SSL), &lt;a style="COLOR: blue" href="http://www.4shared.com/file/88064349/ae2476a9/OpenPOP_source.html" target="_blank"&gt;here &lt;/a&gt;is the library along with one sample Windows application that you can use to test the library.&lt;br /&gt;&lt;br /&gt;I request you to please post a comment, if you find the sources helpful and thanks to all the posts on the web that helped me compile the zip that is ready for &lt;a style="COLOR: blue" href="http://www.4shared.com/file/88064349/ae2476a9/OpenPOP_source.html" target="_blank"&gt;download&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-2314670461589500070?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/2314670461589500070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=2314670461589500070' title='75 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2314670461589500070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2314670461589500070'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/11/pop3-client-in-c.html' title='POP3 client in C# ...&lt;hr class=&apos;ruler&apos;/&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>75</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-360338571867576594</id><published>2008-11-26T23:03:00.003+05:30</published><updated>2008-11-26T23:09:03.256+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lucknow'/><category scheme='http://www.blogger.com/atom/ns#' term='Archealogy'/><category scheme='http://www.blogger.com/atom/ns#' term='Historical places'/><category scheme='http://www.blogger.com/atom/ns#' term='Imambara'/><title type='text'>Incredible India ...Understand, to appreciate ....</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/5/54/Bara_Imambara_Second_Gateway_02.JPG/800px-Bara_Imambara_Second_Gateway_02.JPG" style="max-width: 800px;" height="239" width="401" /&gt; Last week, I had been to Lucknow (the capital city of Uttar Pradesh) to attend one of my close pal's marriage.It is interesting to explore places, traditions and customs in general, and in India, you find a variety of it. Each state,pretty much, has got it's own language (almost), culture, customs and traditions.&lt;br /&gt;&lt;br /&gt;We got some time to explore the places in Lucknow and we were taken to a place named "Bara Imambara" - a shrine built by Shia Muslims (I didn't know what it means when I visited the place but got to know of it from wikipedia !).My first impression at the shrine (it looks more like a fort than a shrine, though) was that it's a big construction, just another archealogical piece left to us by Nawabs !! I realized that my knowledge is meagre, so is the information that is available over there about the monument !&lt;br /&gt;&lt;br /&gt;Some of the highlights of "Bara Imambara" are :-&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/e/ea/Bara_Imambara_Second_Hallway_01.JPG/82px-Bara_Imambara_Second_Hallway_01.JPG" style="max-width: 800px;" /&gt; The Great Imambara or the Bada Imambara has a central hall, one of the largest vaulted galleries in the world, beneath which many underground passages are present. Any pillars or any other supports do not support the main hall, which is over 50 feet in height. The roof has been put together with interlocking bricks without using a beam or a girder. &lt;/li&gt;&lt;li&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/d/de/Bara_Imambara_Bhulbhulayah_01.JPG/82px-Bara_Imambara_Bhulbhulayah_01.JPG" style="max-width: 800px;" /&gt; The upper floor, Bhulbhulaiya, is also famous as a fantastic labyrinth. It is believed that a stranger cannot come out of this maze without any assistance from some expert guide. It is possibly the only existing maze in India and came about unintenionally to support the weight of the building, constructed on marshy land.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The design of the Imambara was obtained through a competitive process. The winner was an architect Kifayatullah, who also lies buried in the main hall of the Imambara. It is another unique aspect of the building where the sponsor and the architect lie buried besides each other.&lt;/li&gt;&lt;/ul&gt;Incredible India - It has got so many archealogical master-pieces but pity that there is not much information available to the visitors to appreciate the beauty of these monuments.&lt;br /&gt;&lt;br /&gt;I wish the Archealogical Survey of India wakes up atleast now to get some literature available to the visitors of these historical pieces and let them appreciate their greatness !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-360338571867576594?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/360338571867576594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=360338571867576594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/360338571867576594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/360338571867576594'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/11/understand-to-appreciate.html' title='Incredible India ...Understand, to appreciate ....&lt;hr class=&apos;ruler&apos;/&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-8332298039379655070</id><published>2008-11-16T14:38:00.015+05:30</published><updated>2008-11-24T22:56:55.313+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Generating PDF files programmatically using .NET ... </title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_k6gsMbQgZmo/SR_nJ9DZzfI/AAAAAAAAALs/f8tgPygTCjc/s1600-h/NETLogo.jpeg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5269184247240445426" style="margin: 0px 0px 10px 10px; float: right; width: 124px; height: 79px;" alt="" src="http://2.bp.blogspot.com/_k6gsMbQgZmo/SR_nJ9DZzfI/AAAAAAAAALs/f8tgPygTCjc/s320/NETLogo.jpeg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://4.bp.blogspot.com/_k6gsMbQgZmo/SR_kXlK4N_I/AAAAAAAAALk/PPT1KEeJmUc/s1600-h/Acrobat_pdf_present_pack_icon.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5269181182812633074" style="margin: 0px 10px 10px 0px; float: left; width: 213px; height: 208px;" alt="" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/SR_kXlK4N_I/AAAAAAAAALk/PPT1KEeJmUc/s320/Acrobat_pdf_present_pack_icon.jpg" border="0" /&gt;&lt;/a&gt; Ever ran into a requirement where you had to generate a PDF file as an output from your .NET application (windows or web application) ? Well, it's not that tough to accomplish this and let me emphasize that "it's easy" :-)&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I got a chance to work on a requirement like this where in I had to generate a big pdf file with lot of numbers presented in tables, colored text and a bunch of images - to be laid out neatly in the pdf. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I came across an open-source project (am a big fan of open source projects and I try my best to distribute my code too - &lt;a href="http://kiran-banda.blogspot.com/2007/07/smart-time-picker-aspnet-custom-control.html" style="color: blue;"&gt;&lt;span style="text-decoration: underline;"&gt;SmartTimePicker&lt;/span&gt;&lt;/a&gt;) named - &lt;a href="http://www.pdfsharp.com/" style="color: blue;"&gt;PDFSharp&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;You can download the documentation and samples from this site, but for the benefit of all my readers, let me list down the highlights (as given on that site):&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Creates PDF documents on the fly from any .Net language &lt;/li&gt;&lt;li&gt;Easy to understand object model to compose documents &lt;/li&gt;&lt;li&gt;One source code for drawing on a PDF page as well as in a window or on the printer &lt;/li&gt;&lt;li&gt;Modify, merge, and split existing PDF files &lt;/li&gt;&lt;li&gt;Images with transparency (color mask, monochrome mask, alpha mask) &lt;/li&gt;&lt;li&gt;Newly designed from scratch and written entirely in C# &lt;/li&gt;&lt;li&gt;The graphical classes go well with .Net &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;With PDFsharp, start producing pdfs that look professional, even without having to buy Acrobat writer ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-8332298039379655070?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/8332298039379655070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=8332298039379655070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8332298039379655070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/8332298039379655070'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/11/generating-pdf-files-programmatically.html' title='Generating PDF files programmatically using .NET ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k6gsMbQgZmo/SR_nJ9DZzfI/AAAAAAAAALs/f8tgPygTCjc/s72-c/NETLogo.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-5181130686661273577</id><published>2008-10-06T21:18:00.005+05:30</published><updated>2008-10-06T22:24:22.614+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='blackberry'/><category scheme='http://www.blogger.com/atom/ns#' term='SMS'/><title type='text'>next is what ... </title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.smh.com.au/ffximage/2006/08/15/blackberry16_narrowweb__300x418,0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px;" src="http://www.smh.com.au/ffximage/2006/08/15/blackberry16_narrowweb__300x418,0.jpg" border="0" alt="" /&gt;&lt;/a&gt;One of the most common questions that I have been asked is "What next ?" The questions go something like this - "Now that we have got computers and lot of software, what next ?" , "Now that we have got phones like iPhone in the market, what next ?", "Now that we have got big screen HD TVs, what next ?" &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The question - "What next ?" is interesting, 'coz it makes you think and at times it can get you be innovative.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a software developer, we have developed a variety of applications like desktop applications, web applications and what next - and the answer, as I feel, is "applications for mobile phones".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Earlier,we used to feel privileged having a PC at home...then comes the privilege of having a laptop and a mobile phone (a basic one was more than sufficient) and now I think that more than privilege, the comfort is in having a mobile phone that can keep you connected (online) all the time... a mobile phone that has got the applications that can you keep you close to the information.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To me, not many of us have started using BlackBerry yet, but sooner or later we can see people relying on their mobile phones to check their emails, search on google, get directions to your destinations, book tickets for a movie or book a table in your favorite restaurant.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now here comes the question -  "Do we need a blackberry to do all this ?" and the answer is "No" . We could do all this even now, by enabling GPRS service on our mobiles (contact your service provider for more details). There are 'n' number of interesting apps out there that you can download for free and have fun. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have a Nokia 6600 and have got GPRS enabled very recently. I have installed a s/w named Nimbuzz messenger that supports MSN, GTalk, Skype, YM and couple other chat services. You can log on to all these messengers in one go and see who is online on these messengers. You can IM your friends and read the responses too :-). The other application that I have is the Gmail Client, that lets me check my Gmail inbox, compose and send messages.Isn't that interesting?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The future is mobile, stay connected :-)&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/544829222357122795-5181130686661273577?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/5181130686661273577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=5181130686661273577' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5181130686661273577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5181130686661273577'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/10/next-is-what.html' title='next is what ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-7272324857452899176</id><published>2008-09-28T12:14:00.005+05:30</published><updated>2008-09-28T12:32:45.272+05:30</updated><title type='text'>Decision point ... </title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k6gsMbQgZmo/SN8sDFFYrVI/AAAAAAAAAJM/mpNK5okScdw/s1600-h/1-decision-point-jim-coe.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_k6gsMbQgZmo/SN8sDFFYrVI/AAAAAAAAAJM/mpNK5okScdw/s400/1-decision-point-jim-coe.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5250964121953283410" /&gt;&lt;/a&gt;&lt;br /&gt;The other day, I was helping out one of my cousins in getting an admission into an engineering course, and while talking to my relatives, I felt that one of the key things in life is a "decision".I am sure that every one of us have been through many decision points (DP, from hereafter), be it work or personal life.&lt;br /&gt;&lt;br /&gt;This reminds me of one of Shakespeare's quote - "To be, or not to be". If observed carefully, the sequence is a dilemma to start with, then we seek opinions from our best friends and well-wishers and then comes a DP, the point where one has to make a call, and that's life !&lt;br /&gt;&lt;br /&gt;I was trying to map this real world experience to one of my applications. I was trying to automate a troubleshooting exercise where in the program encounters a failure and it ends up with a couple of alternatives from which it has to pick one and execute that alternative in order to resolve the failure ! a DP again ;-)&lt;br /&gt;&lt;br /&gt;I don't intend to establish a point around a DP,but just that I felt that it's been quite sometime since I posted something, was getting bored, have a couple of options to entertain myself, but then realized that I am at a DP and chose to post something like this ;-)&lt;br /&gt;&lt;br /&gt;Cheers :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-7272324857452899176?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/7272324857452899176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=7272324857452899176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7272324857452899176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/7272324857452899176'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/09/decision-point.html' title='Decision point ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k6gsMbQgZmo/SN8sDFFYrVI/AAAAAAAAAJM/mpNK5okScdw/s72-c/1-decision-point-jim-coe.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-2556293115979090974</id><published>2008-09-14T21:11:00.004+05:30</published><updated>2008-09-14T21:14:09.992+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FTP'/><category scheme='http://www.blogger.com/atom/ns#' term='POP3'/><category scheme='http://www.blogger.com/atom/ns#' term='IMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Protocols'/><title type='text'>Working with Protocols ...</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Since my graduation, one of the things that fascinates me most is the technique that is followed to establish communication between two systems - "protocol". A protocol is like a language that the computers use to communicate between/among themselves.&lt;br /&gt;&lt;br /&gt;Implementing protocols for a client/server based model is very interesting.Most of the times, we end up writing clients for existing servers. For example, we develop an FTP client (like Filezilla) or a POP3/IMAP client (like Thunderbird) or the most frequently used client - the HTTP client or the browser (like IE, Firefox, Google Chrome).&lt;br /&gt;&lt;br /&gt;In this post, I would like to brief on what it takes to implement a client (like the ones above) based on a given protocol.&lt;br /&gt;&lt;br /&gt;Of late, I have had a requirement in which I had to check a mailbox for the existence of an email (from a specific user and with a particular subject line), parse the subject and content of the email and do some processing based on the these two values. The processing part is a piece of cake, but what is a bit challenging is writing an email client that can log on to a given mailbox, check the messages and retrieve the subject and body of the email.Isn't it interesting?&lt;br /&gt;&lt;br /&gt;To start with, I chose to go for an IMAP client and like any other protocol, the first thing that needs to be understood is the RFC (Request for Comment). An RFC is where the nitty-gritties of the protocol are documented.From the RFC, we get the commands that an IMAP server accepts and the response that the server sends to the client and this is the key information required to develop a client.&lt;br /&gt;&lt;br /&gt;Here are a bunch of request-response scenarios in conjunction with IMAP (excerpts from http://bobpeers.com/technical/telnet_imap.php) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Login&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. login accountname@myserver.com *********&lt;br /&gt;. OK User logged in&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LIST &lt;/span&gt;mailboxes:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. list "" "*"&lt;br /&gt;* LIST (\HasChildren) "." "INBOX"&lt;br /&gt;* LIST (\HasNoChildren) "." "INBOX.Drafts"&lt;br /&gt;* LIST (\HasNoChildren) "." "INBOX.Sent Items"&lt;br /&gt;* LIST (\HasNoChildren) "." "INBOX.Trash"&lt;br /&gt;* LIST (\HasNoChildren) "." "INBOX.test1"&lt;br /&gt;* LIST (\HasNoChildren) "." "INBOX.test2"&lt;br /&gt;. OK Completed (0.460 secs 7 calls)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EXAMINE &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;SELECT &lt;/span&gt;commands:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. examine INBOX.test2&lt;br /&gt;* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)&lt;br /&gt;* OK [PERMANENTFLAGS ()]&lt;br /&gt;* 0 EXISTS&lt;br /&gt;* 0 RECENT&lt;br /&gt;* OK [UIDVALIDITY 1138801117]&lt;br /&gt;* OK [UIDNEXT 1]&lt;br /&gt;. OK [READ-ONLY] Completed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;. select INBOX.test2&lt;br /&gt;* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)&lt;br /&gt;* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]&lt;br /&gt;* 0 EXISTS&lt;br /&gt;* 0 RECENT&lt;br /&gt;* OK [UIDVALIDITY 1138801117]&lt;br /&gt;* OK [UIDNEXT 1]&lt;br /&gt;. OK [READ-WRITE] Completed&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FETCH &lt;/span&gt;command:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Fetching flags on first and second messages:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. fetch 1:2 flags&lt;br /&gt;* 1 FETCH (FLAGS (\Seen hasatt))&lt;br /&gt;* 2 FETCH (FLAGS (\Seen hasatt))&lt;br /&gt;. OK Completed&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Fetch headers:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. fetch 1 rfc822.header&lt;br /&gt;* 1 FETCH (RFC822.HEADER {824}&lt;br /&gt;Return-Path: &amp;lt;nobody@server2.messagingengine.com&amp;gt;&lt;br /&gt;Received: from web2.internal (web2.internal [10.202.2.211])&lt;br /&gt;       by server2.messagingengine.com (Cyrus v2.3-alpha) with LMTPA;&lt;br /&gt;       Wed, 01 Feb 2006 08:37:23 -0500&lt;br /&gt;X-Sieve: CMU Sieve 2.3&lt;br /&gt;X-Attached: This_is_how_attachments_appear.txt&lt;br /&gt;X-Resolved-to: accountname&lt;br /&gt;X-Mail-from: nobody&lt;br /&gt;Content-Transfer-Encoding: 8bit&lt;br /&gt;Content-Type: multipart/mixed; boundary="_----------=_1138801039165120"&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;X-Mailer: MIME::Lite 5022  (F2.73; T1.15; A1.64; B3.05; Q3.03)&lt;br /&gt;Date: Wed, 1 Feb 2006 13:37:19 UT&lt;br /&gt;From: "Email Administrator" &amp;lt;bounce@myserver.com&amp;gt;&lt;br /&gt;Reply-To: webmaster@myserver.com&lt;br /&gt;To: "Joe Bloggs" &amp;lt;accountname@myserver.com&amp;gt;&lt;br /&gt;Subject: IMPORTANT: Click here to begin using your account&lt;br /&gt;Message-ID: &amp;lt;cmu-lmtpd-28871-1138801043-0@server2.messagingengine.com&amp;gt;&lt;br /&gt;&lt;br /&gt;)&lt;br /&gt;. OK Completed (0.000 sec)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Fetch body:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. fetch 2 rfc822.text&lt;br /&gt;* 2 FETCH (RFC822.TEXT {11658}&lt;br /&gt;This is a multi-part message in MIME format.&lt;br /&gt;&lt;br /&gt;--_----------=_1138865560223950&lt;br /&gt;Content-Disposition: inline&lt;br /&gt;Content-Length: 5194&lt;br /&gt;Content-Transfer-Encoding: binary&lt;br /&gt;Content-Type: text/plain&lt;br /&gt;&lt;br /&gt;more text here.............&lt;br /&gt;&lt;br /&gt;. OK Completed (0.000 sec)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LOGOUT &lt;/span&gt;command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;. logout&lt;br /&gt;* BYE LOGOUT received&lt;br /&gt;. OK Completed&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Given the request-response pattern above, all that is left is to write code to open a network connection to the server @ port 143, send the requests out and read and interpret the responses :-) It's so simple !&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/544829222357122795-2556293115979090974?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/2556293115979090974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=2556293115979090974' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2556293115979090974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2556293115979090974'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/09/working-with-protocols.html' title='Working with Protocols ...&lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-629165311015883361</id><published>2008-08-29T14:54:00.001+05:30</published><updated>2008-08-29T14:55:04.021+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM 4.0'/><title type='text'>Microsoft CRM 4. 0 and Java clients ... </title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_k6gsMbQgZmo/SLfANlZo9lI/AAAAAAAAAGY/rj8Heespwuw/s1600-h/NETLogo.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_k6gsMbQgZmo/SLfANlZo9lI/AAAAAAAAAGY/rj8Heespwuw/s400/NETLogo.jpeg" alt="" id="BLOGGER_PHOTO_ID_5239868031079347794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k6gsMbQgZmo/SLfAJjHR8CI/AAAAAAAAAGQ/bIdk6EUBPls/s1600-h/javalogo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_k6gsMbQgZmo/SLfAJjHR8CI/AAAAAAAAAGQ/bIdk6EUBPls/s400/javalogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5239867961745993762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Having worked on Java and Microsoft technologies, I always found that programming using Microsoft languages like C# is lot easier than coding in Java. There could be many reasons why I felt so and some of them are that MS offers one standard IDE (VS2008) unlike in Java where you have various editors like Eclipse (with MyEclipse), JBuilder, JDeveloper, etc. I personally feel that MyEclipse and Eclipse is a powerful combo than VS 2008 but still it is easier/faster to develop a windows based client in C# than in Java.&lt;br /&gt;&lt;br /&gt;Of late, I have been working with CRM web services, trying to develop a custom web application that can consume web services offered by CRM 4.0. I have developed an ASP.NET website and have accomplished what I intended to.&lt;br /&gt;&lt;br /&gt;Now, I wanted to experiment with Java a bit (it's been quite some since I had started MyEclipse on my machine ;-) ). I have generated the Java classes using WSDL2Java from Axis1.x. I followed some examples posted in forums and got a sample working using the CRMDiscoveryService. I followed the same process to consume CRMService but hard luck. All the time I encountered "401 User Unauthorized".&lt;br /&gt;&lt;br /&gt;After lot of googling, I came to know that Axis1.x doesn't support NTLM authentication (not sure how it worked for CRMDiscoveryService !!). Some posts suggested that the latest stable release of Axis1.x doesn't support NTLM authentication and that we need to download the latest nightly build and the latest sources from SVN. I did that but no luck yet !!&lt;br /&gt;&lt;br /&gt;One of my friends suggested to use Axis2 instead of Axis1.x. I have downloaded the latest binaries and source code of Axis2 but the error remained the same - "401 User Unauthorized".&lt;br /&gt;&lt;br /&gt;This is real frustrating, 'coz when you say that webservices are aimed to bring about platform independence, getting a client (from a different platform) to work with MS CRM webservices is not that easy !!&lt;br /&gt;&lt;br /&gt;Microsoft is famous for the documentation, samples and look-and-feel and I am hoping that someone from Microsoft or Sun finds this post and comes up with some helpful samples and documentation on how to develop clients in Java to consume MS CRM 4.0 web services :-)&lt;br /&gt;&lt;br /&gt;Till then, keeping shouting in forums ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-629165311015883361?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/629165311015883361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=629165311015883361' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/629165311015883361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/629165311015883361'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/08/microsoft-crm-4-0-and-java-clients.html' title='Microsoft CRM 4. 0 and Java clients ... &lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k6gsMbQgZmo/SLfANlZo9lI/AAAAAAAAAGY/rj8Heespwuw/s72-c/NETLogo.jpeg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-5344153705750957793</id><published>2008-08-15T15:21:00.001+05:30</published><updated>2008-08-15T15:22:44.105+05:30</updated><title type='text'>India is "still" a developing country ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://in.geocities.com/bvkirank/images/indiaflag.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 68px; height: 49px;" src="http://in.geocities.com/bvkirank/images/indiaflag.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;"India is a developing country" - I am sure, this was the sentence our parents studied while in school... I read the same sentence but I wish the next generations to come can say "India is a developed country".&lt;br /&gt;&lt;br /&gt;Celebrating 61 years of Independence, I blog to memorize those leaders who fought for independence, who dreamt of a free India hoping that it would make wonders and shine with the glory that it had in the past.I salute to each and every individual who have represented our country and spread the greatness of our country across the globe (eg: Kalpana Chawla, Sunitha Williams, to name a few)&lt;br /&gt;&lt;br /&gt;61 years - what does it mean ? Does it mean that India is growing older ? Does it mean that India had strived through the tests of time and stands stubborn after getting independence ?&lt;br /&gt;&lt;br /&gt;There are some such ways of interpreting this. Let me tell you my interpretation - India looks older 'coz it is still being ruled by older people !! Even now, we hardly see young blood in current politics.&lt;br /&gt;&lt;br /&gt;On every Independence day, I watch TV and hear the politicians giving lectures saying that the future of India is in the hands of youth !! But how many youngsters are there in the cabinet of the government in power ?&lt;br /&gt;&lt;br /&gt;Let's move on - we are the top rankers when it comes to population, poverty, corruption and all sorts of things..Look at China, world's no. 1 in population and is now a proud host of Olympics.Let's put a question to ourselves - Can we host Olympics on such a scale ? may be yes and may be no..&lt;br /&gt;&lt;br /&gt;We are next to China when it comes to population, but how many medals have we won in the past Olympics and how many are we going to win in the Beijing Olympics ?&lt;br /&gt;&lt;br /&gt;What are our hindrances, why are we not the top performers in other positive areas ? People say that the reasons are  - illiteracy, corruption, etc..&lt;br /&gt;&lt;br /&gt;Well, everyone is aware of the problems, the reason for us being marked as a "developing" country and I think that it's high time that we spend time observing the world around us, get inspired by countries like China and Japan and get things improved at a faster pace and let the world know that a super power is in the making :-)&lt;br /&gt;&lt;br /&gt;Wish you all a very happy independence day :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-5344153705750957793?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/5344153705750957793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=5344153705750957793' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5344153705750957793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/5344153705750957793'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/08/india-is-developing-country.html' title='India is &amp;quot;still&amp;quot; a developing country ...&lt;hr class=&apos;ruler&apos; /&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544829222357122795.post-2417864104859469187</id><published>2008-07-28T19:42:00.003+05:30</published><updated>2008-07-28T19:45:13.971+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL reporting services'/><category scheme='http://www.blogger.com/atom/ns#' term='reports'/><title type='text'>SQL Reporting Services Client ...</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Few months ago, I had developed a simple windows application in .NET that can execute an SQL server Reporting Services (SSRS) report and export the output as PDF or Excel. The concept behind executing an SSRS report is pretty straight forward, one can find 'n' number of "How-to" tutorials on the web to consume SSRS webservices.&lt;br /&gt;&lt;br /&gt;The key is to make use of the SSRS webservices and here is the list of web services that help us:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add web references to the web services at the urls below:&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;http://&amp;lt;machine running SQL Server 2005&amp;gt;/ReportServer/ReportExecution2005.asmx&lt;/li&gt;&lt;li&gt;http://&amp;lt;machine running SQL Server 2005&amp;gt;/ReportServer/ReportService2005.asmx&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;After you add web references, follow the API document (I can send you a sample, if you think you are breaking your head ;-) ) and execute the reports.&lt;br /&gt;&lt;br /&gt;So far, I haven't done anything new,but now let me list down the interesting elements of my SSRS client:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The client lets you define multiple reports, set the param names and values (that the target report expects)&lt;/li&gt;&lt;li&gt;Configure the export format (PDF, Excel)&lt;/li&gt;&lt;li&gt;Merge the outputs of all the reports (if the output format is PDF, then all the output PDFs are merged as one PDF document and if it is Excel, then all the report outputs are added as difference worksheets in a single spreadsheet)&lt;/li&gt;&lt;li&gt;The application supports command-line mode (good especially if you want to schedule the execution)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Here is a sample screenshot of the application:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/kiran.banda/SI3TbsX5IPI/AAAAAAAAAF8/FY0dfte3NJQ/%5BUNSET%5D.png" style="max-width: 800px;" /&gt;&lt;br /&gt;&lt;br /&gt;Happy report generation :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544829222357122795-2417864104859469187?l=www.kiranbanda.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kiranbanda.in/feeds/2417864104859469187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=544829222357122795&amp;postID=2417864104859469187' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2417864104859469187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544829222357122795/posts/default/2417864104859469187'/><link rel='alternate' type='text/html' href='http://www.kiranbanda.in/2008/07/sql-reporting-services-client.html' title='SQL Reporting Services Client ...&lt;hr class=&apos;ruler&apos;/&gt;'/><author><name>Kiran banda</name><uri>http://www.blogger.com/profile/10729993634489031771</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02316913130276698236'/></author><thr:total>6</thr:total></entry></feed>