<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7566655980345098235</id><updated>2011-08-15T02:52:11.305-04:00</updated><category term='Object binding'/><category term='SDLC'/><category term='Code Review'/><category term='Visual Basic 2005'/><category term='Windows 7'/><title type='text'>Objects Binding</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-1055913602267954687</id><published>2011-02-12T06:50:00.022-05:00</published><updated>2011-02-16T09:46:23.394-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Review'/><title type='text'>Code Reviews Are For Critics</title><content type='html'>OK, so this is coming from a need to redeem myself. I screwed up and the only way that this will stop making me so miserable is if I help another developer not make the same mistake and then have to suffer the consequences such as being jolted out of sleep at 5 AM on a Saturday by a nightmare where you are being surrounded by Int32s overpowering you with the help of the Convert method and trying to change the Real you in to one of them. Its all over in a fraction of a second and you are now an Int32, you've either lost something that was yours or you've acquired some of their characteristics, you'll never be the same, you have been assimilated, you are now... well, them!!.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;The Cast in My Dream&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So this is how I screwed up.&lt;br /&gt;&lt;br /&gt;I wrote&lt;br /&gt;BillAmount = convert.&lt;strong&gt;ToInt32&lt;/strong&gt;(row["bill_amount"]);&lt;br /&gt;instead of&lt;br /&gt;BillAmount = convert.&lt;strong&gt;ToDouble&lt;/strong&gt;(row["bill_amount"]);&lt;br /&gt;when hydrating an object with the data coming back from a stored procedure.&lt;br /&gt;(Writing those lines again just gave me the shivers and I'm a little queasy.)&lt;br /&gt;&lt;br /&gt;The erroneous cast of course rounded the cents in the amount so if the amount was $4.95 it now ended up being $5.00 or if it was $4.45 it would now be $4.00.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;The Bug In the Machine&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-CUOQwo7E_D4/TVZ999ZmjnI/AAAAAAAADJY/6-cpnAhRns8/s1600/alien-salad.jpg" target="_blank"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 249px; FLOAT: left; HEIGHT: 191px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5572780092325006962" border="0" alt="Salad, Alien Made Out of Vegetables by Till Nowak" src="http://2.bp.blogspot.com/-CUOQwo7E_D4/TVZ999ZmjnI/AAAAAAAADJY/6-cpnAhRns8/s1600/alien-salad.jpg"&gt;&lt;/a&gt;So now that we know how I screwed up...the question now is why didn't I see this before I even committed the code? This could have been caught before we went to production with this... ya we did .. we found the damn bug scurrying around in our production machines and killed it there before it turned dark green, grew fangs and a pointy tail and ate the pilot.&lt;br /&gt;&lt;br /&gt;So the world is now safe from that monster ... but why did we miss it in the first place? we had the processes in place to catch these things before they go out to production, we wrote the unit tests, documented the project, did the code review, went through QA, passed the Certification Tests, and finally deployed to production after a pretty intense and rigorous process.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Tracking The Bug&lt;/u&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;I think the answer lies in how we finally found the bug. As the saying goes, the devil is in the details, sadly not all details are of immediate concern to everyone on the project, and among the myriad of things that can go wrong in a software project it is easy to miss several important but minor details.&lt;br /&gt;&lt;br /&gt;An easy way In my opinion to get these details straight could be to have a check list that should be gone through at every stage in the life cycle of the project. I know, we don't need another document, and another process to follow, however if we think about it all this Check list is, is the requirements in a condensed format.&lt;br /&gt;&lt;br /&gt;The check list should just be a set of expectations/issues that the software project has to resolve. This check list should be written by each stake holder in a project at the beginning of the project and updated as/if expectations/requirements change during the course of the project. Some or most of these could even be translated in to unit tests that would ensure that the goals are being met.&lt;br /&gt;&lt;br /&gt;This check list should be used by each stake holder at various stages in the project's life cycle to then verify that his/her expectations are being met and if not then require that the cause be investigated until a satisfactory answer is received. That is to say &lt;strong&gt;If Ya See Something SAY Something!&lt;/strong&gt; (That is essentially how we found the bug! Someone saw the problem and asked the question.)&lt;br /&gt;&lt;br /&gt;The point of the checklist is to keep track of the details and to have a mechanism so they are tracked. This check list could be something that each stake holder goes through at &lt;strong&gt;the end&lt;/strong&gt; of a design review, code review, QA test plan and product Demo. I don't think it should be the only focus of the stake holder as this will tend to limit the scope of say a design review or code review to just those set of concerns and could cause other issues to be missed.&lt;br /&gt;&lt;br /&gt;The sign off to production should include the items on each stake holder's check list being checked off or crossed off. No item should be left unaddressed.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Critics Rule&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;It is imperative for a software team to have the resources and the process in place to identify and fix bugs. However this wouldn't mean much without a critical approach.&lt;br /&gt;&lt;br /&gt;This is exactly the reason why a developer must not QA his/her own code, the point is that someone other than the developer should take a more critical view of the code and thereby help prevent bugs in the system.&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;The normal process is to have meetings to review the code that has changed and then sign off on the code once it is found that the accepted coding practices have been followed and that nothing has been overlooked. This is meaningful only if the team in the room is paying attention, is knowledgeable and critical.&lt;br /&gt;&lt;br /&gt;Alternatively it could be useful for one to hand over the code to another developer to review, run unit tests, evaluate aspects of the code that are not easily done by automated build tools such as test the logic and recommend a better way of doing something, read the documentation in the code to ensure it is understandable, etc.&lt;br /&gt;&lt;br /&gt;Regardless of how this is done it is imperative that code is read and critiqued before it moves out of dev.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-1055913602267954687?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/1055913602267954687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=1055913602267954687&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1055913602267954687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1055913602267954687'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2011/02/code-reviews-are-for-critics.html' title='Code Reviews Are For Critics'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-CUOQwo7E_D4/TVZ999ZmjnI/AAAAAAAADJY/6-cpnAhRns8/s72-c/alien-salad.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-9068307633483653613</id><published>2010-04-09T10:07:00.001-04:00</published><updated>2010-04-09T10:07:11.228-04:00</updated><title type='text'>HP Labs Outlines Breakthroughs in Memristor Chip Research - Data Storage from eWeek</title><content type='html'>&lt;a href=http://www.eweek.com/c/a/Data-Storage/HP-Labs-Outlines-Breakthroughs-in-Memristor-Chip-Research-433029/&gt;HP Labs Outlines Breakthroughs in Memristor Chip Research - Data Storage from eWeek&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posted using &lt;a href="http://sharethis.com"&gt;ShareThis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-9068307633483653613?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/9068307633483653613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=9068307633483653613&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/9068307633483653613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/9068307633483653613'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2010/04/hp-labs-outlines-breakthroughs-in.html' title='HP Labs Outlines Breakthroughs in Memristor Chip Research - Data Storage from eWeek'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-3969737664929431950</id><published>2009-12-22T15:20:00.001-05:00</published><updated>2009-12-22T15:20:33.172-05:00</updated><title type='text'>Daniel Pink on the surprising science of motivation</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-3969737664929431950?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.youtube.com/watch?v=rrkrvAUbU9Y' title='Daniel Pink on the surprising science of motivation'/><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/3969737664929431950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=3969737664929431950&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/3969737664929431950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/3969737664929431950'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/12/daniel-pink-on-surprising-science-of.html' title='Daniel Pink on the surprising science of motivation'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-1144060208950117398</id><published>2009-06-06T12:36:00.001-04:00</published><updated>2009-06-06T12:36:22.634-04:00</updated><title type='text'>Build an XP SP3 Recovery Disc</title><content type='html'>&lt;a href="http://www.extremetech.com/article2/0,2845,2326421,00.asp"&gt;Build an XP SP3 Recovery Disc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Shared via &lt;a href="http://addthis.com"&gt;AddThis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-1144060208950117398?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/1144060208950117398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=1144060208950117398&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1144060208950117398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1144060208950117398'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/06/build-xp-sp3-recovery-disc.html' title='Build an XP SP3 Recovery Disc'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-4197350480990247480</id><published>2009-05-01T21:06:00.001-04:00</published><updated>2009-05-01T22:00:06.123-04:00</updated><title type='text'>The World Is Flat</title><content type='html'>&lt;p&gt;I came across this video while browsing through &lt;a href="http://mitworld.mit.edu/" target="_blank"&gt;MIT’s open courseware&lt;/a&gt;. An excellent lecture by Thomas L. Friedman form 2005 about everything from the start of Netscape to outsourcing, politics, software etc. Its startling how relevant this talk still is and what a visionary he is.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;More here &lt;a href="http://mitworld.mit.edu/video/266"&gt;http://mitworld.mit.edu/video/266&lt;/a&gt;&lt;/p&gt; &lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="481" height="361" id="Main" align="middle"&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="movie" value="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&amp;amp;flv=mitw-00303-ocw-friedman-flat-16may2005&amp;amp;preview=http://mitworld.mit.edu//uploads/mitwstill-00303-ocw-friedman-flat-16may2005.jpg" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#000000" /&gt;&lt;embed src="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&amp;amp;flv=mitw-00303-ocw-friedman-flat-16may2005&amp;amp;preview=http://mitworld.mit.edu//uploads/mitwstill-00303-ocw-friedman-flat-16may2005.jpg" quality="high" bgcolor="#000000" width="481" height="361" name="Main" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;&lt;/object&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-4197350480990247480?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/4197350480990247480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=4197350480990247480&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/4197350480990247480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/4197350480990247480'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/05/world-is-flat.html' title='The World Is Flat'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-2122088816288045860</id><published>2009-04-16T22:12:00.015-04:00</published><updated>2009-07-10T12:06:28.062-04:00</updated><title type='text'>C# TitleCase function doesn’t do the job</title><content type='html'>&lt;span style="font-family:verdana;font-size:small;"&gt;The TitleCase function in C# doesn’t always work if you don’t provide the CultureInfo string e.g “en-US”. But even when you do, it does not correctly format strings such as McDonald or O’Connor. The title case function would just return Mcdonald or O’connor. The following function correctly capitalizes the appropriate letters and will also exclude letters from the string that should not be capitalized.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:small;"&gt;&lt;br /&gt;For instance the following string&lt;br /&gt;o’lunney’S bar and grill is across from mcdonald&lt;br /&gt;is correctly formatted as&lt;br /&gt;O’Lunney’s Bar And Grill Is Across From McDonald&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;    &lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        /// Capitalize the first character of all words in the given string&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        /// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        /// Text to format as string&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        /// &lt;/span&gt;&lt;returns&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Returns the formatted text&lt;/span&gt;&lt;/returns&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; public static string InitCap(string textToformat)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        {            &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            string pattern = @"\w+\W+";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            string result = "";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            Boolean capitalizeNext = true;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            foreach (Match m in Regex.Matches(textToformat, pattern))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // get the matched string&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                string x = m.ToString().ToLower();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // if the first char is lower case&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                if (char.IsLower(x[0]) &amp;amp;&amp;amp; capitalizeNext)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    // capitalize it&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    x = char.ToUpper(x[0]) + x.Substring(1, x.Length - 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // Check if the word starts with Mc&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                if (x.Length &gt; 3 &amp;amp;&amp;amp; (x[0] == 'M' &amp;amp;&amp;amp; x[1] == 'c' &amp;amp;&amp;amp; !String.IsNullOrEmpty(x[2].ToString())))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    // Capitalize the letter after Mc&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    x = "Mc" + char.ToUpper(x[2]) + x.Substring(3, x.Length - 3);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                if (capitalizeNext == false)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    capitalizeNext = true;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // if the apostrophe is at the end i.e. Andrew's&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // then do not capitalize the next letter&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                if (x[0].ToString() == "'" &amp;amp;&amp;amp; m.NextMatch().ToString().Length == 1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                    capitalizeNext = false;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                // collect all text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;                result += x;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;            return result;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;        }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-2122088816288045860?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/csharp_0101.html' title='C# TitleCase function doesn’t do the job'/><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/2122088816288045860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=2122088816288045860&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/2122088816288045860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/2122088816288045860'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/04/c-titlecase-function-doesnt-do-job.html' title='C# TitleCase function doesn’t do the job'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-2592961503678482087</id><published>2009-02-24T15:50:00.006-05:00</published><updated>2009-04-02T08:53:52.190-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Windows 7</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;"&gt;Ive been running windows 7 in a virtual machine (Microsoft VM SP1) on my IBM Thinkpad for the past couple of weeks. The virtual hard disk is on an external 7200 RPM Western Digital My Book drive that is connected to a USB 2 hub. The host operating system is Win XP SP3. The VM is set to use 1gb of the host OS's memory instead of the default 512 kb and is set to access a shared folder on the host and also the host machine's wireless and wired network adapters.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;The first thing I noticed about windows 7 is that compared to Vista, Win7 is lightning fast! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;I still don't care for the UAC prompts, they are just as intrusive and annoying as they were in vista. Other than that I love the clean no nonsense interface. I love the fact that they got rid of the side bar that was in vista. The operating system its self seems quite stable, In fact given that it is still in a beta stage, I expected to have lots of problems setting it up in a VM environment, including problems accessing the shared folders and devices on the host system. I was pleasantly surprised when it installed smoothly and had no issues what so ever accessing drives or devices including the network adapters. As a matter of fact I haven't had it crash or blue screen even once in the past 2 weeks that I have been using it! Windows 7 comes with the beta version of IE8 and after the initial set up I was able to install and use all of the regular plugins such adobe flash, windows media player, Quicktime etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;My next test is to start doing some development on it and test drive visual studio and few other dev tools on it. F&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;or those who are interested here is a link to the Windows 7 developer Guide&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/dd206698.aspx"&gt;&lt;span style="font-size:85%;"&gt;http://msdn.microsoft.com/en-us/windows/dd206698.aspx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Cheers!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-2592961503678482087?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/2592961503678482087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=2592961503678482087&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/2592961503678482087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/2592961503678482087'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/02/windows-7.html' title='Windows 7'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-1334705406079911691</id><published>2009-02-02T08:48:00.004-05:00</published><updated>2011-02-16T11:44:44.973-05:00</updated><title type='text'>Microsoft Business Rules Framework</title><content type='html'>&lt;div id="ms__id9"&gt;Came across this&lt;a href="http://www.code-magazine.com/Article.aspx?quickid=0811071"&gt; fantasitc article &lt;/a&gt;by Rick Garibay on programming with the Microsoft Business Rules Framework that has made this somewhat  exotic techonology (for me atleast) more hands on.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-1334705406079911691?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.code-magazine.com/Article.aspx?quickid=0811071' title='Microsoft Business Rules Framework'/><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/1334705406079911691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=1334705406079911691&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1334705406079911691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/1334705406079911691'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2009/02/microsoft-business-rules-framework.html' title='Microsoft Business Rules Framework'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-6486237773125350547</id><published>2008-12-18T14:50:00.004-05:00</published><updated>2008-12-18T15:04:43.160-05:00</updated><title type='text'>PowerCommands for Visual Studio 2008</title><content type='html'>I recently came across an article on Dev Source about &lt;a href="http://www.devsource.com/c/a/Add-Ons/Creating-a-Better-Visual-Studio-Using-Microsoft-PowerCommands/?kc=DEVSOURCENL12182008STR1"&gt;Power commands for visual studio 2008 &lt;/a&gt;and was intrigued to see what was in this bag of tricks. The article written by &lt;a href="http://www.devsource.com/cp/bio/John-Paul-Mueller/" rel="nofollow"&gt;John Mueller&lt;/a&gt; is an excellent introduction and I found it to be a much better introduction to the toolkit than the documention itself.&lt;br /&gt;&lt;br /&gt;PowerCommands definitely helps you get more from Visual Studio by extending the functionality that Visual Studio provides. If you are an ardent user of ReSharper like me I found that it did add a lot of functiontions that just arent available with ReSharper such as the function to copy a project as a as project reference, Edit a project file etc. Some functionality on the other hand is duplicated like the ablity to sort and remove unused using statements (CleanUp code in ReSharper)&lt;br /&gt;&lt;br /&gt;Overall I like the tool kit and it is proving to be quite a time saver. It does tend to make your context menus fairly long though if you also have Resharper.&lt;br /&gt;&lt;br /&gt;You can Download &lt;a href="http://code.msdn.microsoft.com/PowerCommands/Release/ProjectReleases.aspx?ReleaseId=559"&gt;PowerCommands for Visual Studio 2008  here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-6486237773125350547?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/6486237773125350547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=6486237773125350547&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/6486237773125350547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/6486237773125350547'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2008/12/powercommands-for-visual-studio-2008.html' title='PowerCommands for Visual Studio 2008'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-8966323216645033973</id><published>2008-11-20T09:28:00.000-05:00</published><updated>2008-11-20T09:29:21.960-05:00</updated><title type='text'>The Future Of C# - PDC 2008 - Anders Hejlsberg</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-8966323216645033973?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://channel9.msdn.com/pdc2008/TL16/' title='The Future Of C# - PDC 2008 - Anders Hejlsberg'/><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/8966323216645033973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=8966323216645033973&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8966323216645033973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8966323216645033973'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2008/11/future-of-c-pdc-2008-anders-hejlsberg.html' title='The Future Of C# - PDC 2008 - Anders Hejlsberg'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-8113455288174814162</id><published>2008-06-02T08:55:00.002-04:00</published><updated>2008-06-02T14:46:33.470-04:00</updated><title type='text'>2012: The Year The Internet Ends</title><content type='html'>How the industry will kill the Internet in about 4 years from now.&lt;br /&gt;&lt;a href="http://ipower.ning.com/netneutrality"&gt;http://ipower.ning.com/netneutrality&lt;/a&gt;&lt;br /&gt;A friend sent me a link to this. A lot of what is said there is pretty far fetched however I  must admit even the thought of an ISP adopting a cable provider's business model to provide access to the internet is scary. Can you imagine an ISP saying you can access 200 more sites for $39 a month :)&lt;br /&gt;&lt;br /&gt;For those of us in the US and the western world having unlimited internet access is almost a given, and choosing ISPs over who provides the highest speed and features such as a fixed IP, phone, TV, etc is taken for granted .&lt;br /&gt;&lt;br /&gt;You may find it interesting that on the other side of the world in India for instance access to the internet is limited for the average home user, not by the number of websites you visit but but the amount of bandwidth you are allowed to consume! usually this is  to about 256 mb per month! So though this does not go as far as saying what sites you can and cannot access it does limit your access to a lot of rich content.&lt;br /&gt;&lt;br /&gt;In all fairness though these limitations are due to the limited bandwidth and infrastructure that is available. Can you imagine the chaos it would cause if ISPs here started doing that?&lt;br /&gt;I shudder at the thought.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ipower.ning.com/netneutrality"&gt;read more&lt;/a&gt; &lt;a href="http://digg.com/tech_news/2012_The_Year_The_Internet_Ends"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-8113455288174814162?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/8113455288174814162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=8113455288174814162&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8113455288174814162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8113455288174814162'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2008/06/2012-year-internet-ends.html' title='2012: The Year The Internet Ends'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7566655980345098235.post-8447462053729612742</id><published>2007-02-07T23:51:00.000-05:00</published><updated>2007-02-08T14:54:45.833-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Object binding'/><title type='text'>Doing Objects in Visual Basic 2005</title><content type='html'>Deborah &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Kurata's&lt;/span&gt; new book is out on safari (&lt;a href="http://safari.informit.com/"&gt;http://safari.informit.com/&lt;/a&gt;) before it is released to the stores on the 28&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;th&lt;/span&gt; of Feb 2007. I couldn't find the the sample code for the book on safari's website and the book directs you to &lt;a href="http://www.insteptech.com/"&gt;http://www.insteptech.com/&lt;/a&gt; ,which, I think is a poorly constructed site cobbled together on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;frontpage&lt;/span&gt;. Anyhow, the sample code isn't there and whats more there is no mention of the book either. Weired.&lt;br /&gt;&lt;br /&gt;The book &lt;a class="b" title="The Addison-Wesley Microsoft Technology Series Doing Objects in Visual Basic 2005" href="http://safari.informit.com/0321320492"&gt;The Addison-Wesley Microsoft Technology Series Doing Objects in Visual Basic 2005&lt;/a&gt;&lt;br /&gt;itself is a great intro to object oriented development in Vb 2005 and the whole concept of binding controls to objects is just fantastic. The book examines this topic in depth and also details various pros and cons of binding different controls.&lt;br /&gt;&lt;br /&gt;Im still reading the book but the material presented in it so far has been so good I cant wait to put the stuff I learn in to practice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7566655980345098235-8447462053729612742?l=objectsbinding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://objectsbinding.blogspot.com/feeds/8447462053729612742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7566655980345098235&amp;postID=8447462053729612742&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8447462053729612742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7566655980345098235/posts/default/8447462053729612742'/><link rel='alternate' type='text/html' href='http://objectsbinding.blogspot.com/2007/02/doing-objects-in-visual-basic-2005.html' title='Doing Objects in Visual Basic 2005'/><author><name>Vikram</name><uri>http://www.blogger.com/profile/11505259113891562806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
