<?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-17981529</id><updated>2011-12-13T20:54:41.774-07:00</updated><title type='text'>anand narayan</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17981529.post-885575643877153294</id><published>2008-10-30T08:15:00.002-06:00</published><updated>2008-10-30T09:21:16.455-06:00</updated><title type='text'>DemoCamp 4 Review</title><content type='html'>Last night (October 29 2008) was the latest installment of &lt;a href="http://www.barcampedmonton.com/"&gt;DemoCamp &lt;/a&gt;here in Edmonton.  It took place at the University of Alberta and there were well over 150 people there!  Big turn out....I believe the biggest yet.  &lt;br /&gt;&lt;br /&gt;One of the speakers with a great application was &lt;a href="http://www.electionbuddy.com"&gt;electionbuddy&lt;/a&gt;.  They created a nicely polished app around the simple idea of elections.  What really astounded me was that the guy who created it is a student and is going to go to medical school.  Hard to know if the code was clean but from the outside the application was well planned and easy to use.  It was a hit with one of the Venture Capitalist type people who was there when he suggested that electionbuddy charge more for it.  The guy was definitely getting alot of attention.  &lt;br /&gt;&lt;br /&gt;Another presentation was from a small company here in Edmonton, &lt;a href="http://gskinner.com/site2_5/"&gt;gskinner &lt;/a&gt;that has done an astounding job in Flash.  Their list of clients is impressive: Adobe, Sony, AOL, GE, etc.  I never knew that people like that existed here in Edmonton.  Using Air and the Flash programming language they have been able to develop some impressive stuff.  They have even been able to create something for Flash and sell it back to Adobe.  They have also worked with BioWare on one of their games.&lt;br /&gt;&lt;br /&gt;One of the worst applications I have seen so far is &lt;a href="http://www.TheHistoryBooks.com"&gt;TheHistoryBooks&lt;/a&gt;.  Around the idea of posting peoples history for a *small* fee.  Seriously!  Who Cares!!  The guy who created it actually flew down from regina to present it.  I believe he thinks it is still 1999 and the bubble hasn't burst!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-885575643877153294?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/885575643877153294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=885575643877153294&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/885575643877153294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/885575643877153294'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2008/10/democamp-4-review.html' title='DemoCamp 4 Review'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-2470008191944910894</id><published>2008-07-14T12:19:00.001-06:00</published><updated>2008-07-14T12:22:48.217-06:00</updated><title type='text'>Going to Alt.net</title><content type='html'>&lt;a href="http://bp3.blogger.com/_eME6mnJMfGM/SHuY5t5MqpI/AAAAAAAAAOQ/ZSYkpnZDimk/s1600-h/euxclaire.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_eME6mnJMfGM/SHuY5t5MqpI/AAAAAAAAAOQ/ZSYkpnZDimk/s320/euxclaire.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5222936310205688466" /&gt;&lt;/a&gt;&lt;br /&gt;Calgary here I come!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.altnetconfcanada.com"&gt;ALT.NET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-2470008191944910894?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/2470008191944910894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=2470008191944910894&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/2470008191944910894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/2470008191944910894'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2008/07/going-to-altnet.html' title='Going to Alt.net'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_eME6mnJMfGM/SHuY5t5MqpI/AAAAAAAAAOQ/ZSYkpnZDimk/s72-c/euxclaire.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-9107901562489441072</id><published>2008-02-12T13:06:00.000-07:00</published><updated>2008-02-12T13:14:41.495-07:00</updated><title type='text'>Notebook</title><content type='html'>A new way I found to manage my day is to use the notebooks app found in google apps.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.google.com/notebook"&gt;NOTEBOOK&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I find it a great way to write down the goals I have for the day, affirmations and any links I find during the day.  It is a really great scratchpad to help organize what is happening.  &lt;br /&gt;&lt;br /&gt;I currently have a work log where I write down everything that goes on that I would like saved.  Each day I create a new entry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-9107901562489441072?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/9107901562489441072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=9107901562489441072&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/9107901562489441072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/9107901562489441072'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2008/02/notebook.html' title='Notebook'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-3914745470963247141</id><published>2008-01-29T09:44:00.000-07:00</published><updated>2008-01-29T10:13:58.107-07:00</updated><title type='text'>Chain of Responsibility</title><content type='html'>This pattern is part of a group of patterns that deals with communication between two or more different objects.  This pattern allows us to provide loose coupling between objects and also encourages testable code.  In Chain of Responsibility we will have a chain of command objects that are passed requests.  As we go down the chain....those objects that can handle the request do so....those that can't pass the request down the chain.&lt;br /&gt;&lt;br /&gt;Our command objects will adhere to the ICommand interface.  Any of the command objects that are part of the chain will have the 'Run' and 'Successor' methods defined in the interface.I can use the Successor method to allow us to setup the chain or we can use the constructor that is defined in each one of the following classes.  I have chosen to simply utilize the constructor for simplicity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; ICommand&lt;br /&gt;{&lt;br /&gt;    ICommand Successor { get; set;}&lt;br /&gt;    &lt;span class="kwrd"&gt;void&lt;/span&gt; Run(&lt;span class="kwrd"&gt;int&lt;/span&gt; request);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I am going to define three different classes that will implement the ICommand interface.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; EmailLogger: ICommand&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; ICommand successor;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; EmailLogger()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; EmailLogger(ICommand successor)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.successor = successor;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; ICommand Successor&lt;br /&gt;    {&lt;br /&gt;        get { &lt;span class="kwrd"&gt;return&lt;/span&gt; successor; }&lt;br /&gt;        set { successor = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Run(&lt;span class="kwrd"&gt;int&lt;/span&gt; request)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (request==1)&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"I am the Email Logger. I can handle one."&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (successor != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            successor.Run(request);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; StdErrLogger: ICommand&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; ICommand successor;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; StdErrLogger()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; StdErrLogger(ICommand successor)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.successor = successor;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; ICommand Successor&lt;br /&gt;    {&lt;br /&gt;        get { &lt;span class="kwrd"&gt;return&lt;/span&gt; successor; }&lt;br /&gt;        set { successor = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Run(&lt;span class="kwrd"&gt;int&lt;/span&gt; request)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (request==2)&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"I am the STD Error Logger.  I can handle two."&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (successor != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            successor.Run(request);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; StdOutLogger : ICommand&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; ICommand successor;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; StdOutLogger()&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; StdOutLogger(ICommand successor)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.successor = successor;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; ICommand Successor&lt;br /&gt;    {&lt;br /&gt;        get { &lt;span class="kwrd"&gt;return&lt;/span&gt; successor; }&lt;br /&gt;        set { successor = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Run(&lt;span class="kwrd"&gt;int&lt;/span&gt; request)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (request==3)&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"I am the STD Out Logger.  I can handle three."&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (successor!=&lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            successor.Run(request);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You will notice that the meat of the object for the chain to work according to the pattern is each of the Run methods.  It is here we will check the original request.  If our current object in the chain can handle the request...it will...otherwise we will pass on the request to the rest of the chain.&lt;br /&gt;&lt;br /&gt;I am going to define a place where I can kick off the chain creation.  This chain could also be created separately as part of some factory class.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ChainOfResponsibility&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; ICommand stdOutLogger;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Initialize(&lt;span class="kwrd"&gt;int&lt;/span&gt; request)&lt;br /&gt;    {&lt;br /&gt;        &lt;br /&gt;        stdOutLogger = &lt;span class="kwrd"&gt;new&lt;/span&gt; StdOutLogger(&lt;span class="kwrd"&gt;new&lt;/span&gt; EmailLogger(&lt;span class="kwrd"&gt;new&lt;/span&gt; StdErrLogger()));&lt;br /&gt;        stdOutLogger.Run(request);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The 'StdOutLogger' is the outmost part of the chain and will start everything off.  Calling Run here...we will check the request.  Let's say that the request is '3' coming from the Initialize method.  StdOutLogger can't really handle this value...so it passes the request off to EmailLogger.  EmailLogger's Run method can't handle this value either.  The request is finally passed on to StdErrLogger which can handle three.&lt;br /&gt;&lt;br /&gt;** Note that based on our code...once a request is dealt with no other command objects are called.**&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-3914745470963247141?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/3914745470963247141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=3914745470963247141&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3914745470963247141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3914745470963247141'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2008/01/chain-of-responsibility.html' title='Chain of Responsibility'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-1419977301659340491</id><published>2008-01-25T10:28:00.000-07:00</published><updated>2008-01-25T11:44:05.699-07:00</updated><title type='text'>Observer Pattern</title><content type='html'>Using a change observer in your application is really useful in windows forms applications where you have textboxes, checkboxes etc. that are inherently designed for event generation. A great implementation of the pattern is to observe a dirty property on your form letting you know if anything has changed.&lt;br /&gt;&lt;br /&gt;A great starting point to learning the basics of the Observer pattern is on &lt;a href="http://en.wikipedia.org/wiki/Observer_pattern"&gt;wikipedia&lt;/a&gt;. The subject (your form) will maintain a list of observers, remove observers from the list and notify all observers of any changes. Here is the interface for the subject.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; ISubject&lt;br /&gt;{&lt;br /&gt;     &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterObserver(IObserver observer);&lt;br /&gt;     &lt;span class="kwrd"&gt;void&lt;/span&gt; UnRegisterObserver(IObserver observer);&lt;br /&gt;     &lt;span class="kwrd"&gt;void&lt;/span&gt; NotifyObservers();&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When you implement this interface on your form, you create your observer and register it. For my purposes I only need to create one observer to monitor changes on any of my form controls. Here is the interface for the observer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Consolas, "Courier New", Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IObserver&lt;br /&gt;{&lt;br /&gt;     &lt;span class="kwrd"&gt;void&lt;/span&gt; Update();&lt;br /&gt;     &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsDirty { get;}&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As soon as a change occurs on any control I need to let the change observer know. So, whenever a TextChanged event occurs on my controls I can handle it and notify the change observer that something has happened by calling the NotifyObservers method.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; NotifyObservers()&lt;br /&gt;{&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (IObserver observer &lt;span class="kwrd"&gt;in&lt;/span&gt; changeObservers)&lt;br /&gt;     {&lt;br /&gt;          observer.Update&lt;br /&gt;     }&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;NotifyObservers will loop through all my registered observers and call the Update method. The Update method on the observer is really simple....it just flips the dirty property to true.&lt;br /&gt;&lt;br /&gt;So now my form is dirty. If I happen to for example close my form without saving I can check with the changeobservers and see if there is anything dirty. If there is I can let the user know and ask if they want to save.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; HandleFormClosing(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, CancelEventArgs e)&lt;br /&gt;{&lt;br /&gt;    DialogResult result;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (FormIsDirty)&lt;br /&gt;    {&lt;br /&gt;        result = MessageBox.Show&lt;br /&gt;(&lt;span class="str"&gt;"You have unsaved Changes.  Do you want to save?"&lt;/span&gt;, &lt;span class="str"&gt;"Unsaved"&lt;/span&gt;, MessageBoxButtons.YesNoCancel);&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (result.Equals(System.Windows.Forms.DialogResult.Yes))&lt;br /&gt;            MessageBox.Show(&lt;span class="str"&gt;"Saved!"&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (result.Equals(System.Windows.Forms.DialogResult.No))&lt;br /&gt;            MessageBox.Show(&lt;span class="str"&gt;"Not Saving!"&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            e.Cancel = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        MessageBox.Show(&lt;span class="str"&gt;"No changes detected."&lt;/span&gt;);&lt;br /&gt;     &lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;One limiting feature of this implementation is that there is very little re-use.&lt;br /&gt;I need to wire up all of my Handlers for each control on the form and then call NotifyObservers. If I have another form and want to do the same thing I have to write the same thing again. A better solution would be to push this event handling onto the ChangeObserver to register the controls and the event to fire whenever a change occurs.&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterControls(Control.ControlCollection controls)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Control control &lt;span class="kwrd"&gt;in&lt;/span&gt; controls)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (control.GetType().Equals(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(TextBox)))&lt;br /&gt;            control.TextChanged += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(HandleChange);&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (control.GetType().Equals(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(CheckBox)))&lt;br /&gt;        {&lt;br /&gt;            CheckBox checkbox = (CheckBox) control;&lt;br /&gt;            checkbox.CheckedChanged +=&lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(HandleChange);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (control.GetType().Equals(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(RadioButton)))&lt;br /&gt;        {&lt;br /&gt;            RadioButton radioButton = (RadioButton) control;&lt;br /&gt;            radioButton.CheckedChanged +=&lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(HandleChange);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; HandleChange(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    Update();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So now I can reuse this code on any form that I want to observe.&lt;br /&gt;If I have other types of controls I can throw them into the RegisterControls method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-1419977301659340491?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/1419977301659340491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=1419977301659340491&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/1419977301659340491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/1419977301659340491'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2008/01/observer-pattern.html' title='Observer Pattern'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-5739701799215621032</id><published>2007-11-14T18:20:00.000-07:00</published><updated>2007-11-14T18:22:09.217-07:00</updated><title type='text'>ReSharper Templates</title><content type='html'>JP has &lt;a href="http://www.jpboodhoo.com/blog/ReSharperTemplates.aspx"&gt;posted&lt;/a&gt; some great templates on his blog for everyone to use in their projects.&lt;br /&gt;&lt;br /&gt;For the file templates you can add keyboard shortcuts to help add new testfiles to your project… just look for the following in your ‘Show commands containing’ Keyboard mapper:&lt;br /&gt;&lt;br /&gt;“ResharperAddIn25.FileTemplates_CreateFrom…….”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-5739701799215621032?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/5739701799215621032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=5739701799215621032&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5739701799215621032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5739701799215621032'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/11/resharper-templates.html' title='ReSharper Templates'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-5320835401209312240</id><published>2007-08-21T09:16:00.000-06:00</published><updated>2007-08-21T09:36:01.846-06:00</updated><title type='text'>Becoming a better developer</title><content type='html'>As a part of the process to becoming a better developer I find it easier to write down and prioritize tasks.  These tasks are things I think I should be doing to be better such as reading a book, studying code or learning a new language.  I usually break down the tasks rather than generalize it.  This way it is more approachable and manageable.  For example instead of making a task called:&lt;br /&gt;&lt;br /&gt;"Read Refactoring by Martin Fowler"&lt;br /&gt;&lt;br /&gt;I'll say...&lt;br /&gt;&lt;br /&gt;"Read chapter 9 today out of the book Refactoring"&lt;br /&gt;&lt;br /&gt;This way I'm breaking down what I want to accomplish to something that is achievable and I am also putting a deadline against it.  I want to get it done today.  Since it is a small goal...most likely I can get it done.&lt;br /&gt;&lt;br /&gt;One way to organize these tasks is using this really cool application called:&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://www.rememberthemilk.com"&gt;Remember the Milk&lt;/a&gt;."&lt;br /&gt;&lt;br /&gt;It is a very 'google-ish' type of app and has the ability to help me organize almost anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-5320835401209312240?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/5320835401209312240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=5320835401209312240&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5320835401209312240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5320835401209312240'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/08/becoming-better-developer.html' title='Becoming a better developer'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-8152771686315908195</id><published>2007-07-26T12:01:00.000-06:00</published><updated>2007-07-26T12:11:18.940-06:00</updated><title type='text'>Camtasia and Bugs</title><content type='html'>Where I work we are currently undergoing testing in order to get to our release date.  The normal thing I have always seen in previous jobs is that the tester will test the application, write up a bug report and then pass it on to the developer.  It is upto the dev to reproduce the bugs.  &lt;br /&gt;&lt;br /&gt;Initially the dev is resistant to change and will assume that the QA is full of "Higen-Stigen!"  For the developer....seeing is believing.  This sometimes can foster a culture of mistrust between Devs and QA.  A better way for the tester to prove that they have a 2-legit-2-quit bug is to reproduce and record through camtasia...or some other recording software.  Then post the video file with the bug.  &lt;br /&gt;&lt;br /&gt;I really believe this method breaks down any communication barriers between the two groups.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-8152771686315908195?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/8152771686315908195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=8152771686315908195&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8152771686315908195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8152771686315908195'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/07/camtasia-and-bugs.html' title='Camtasia and Bugs'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-7428841103705374601</id><published>2007-07-25T09:28:00.000-06:00</published><updated>2007-07-25T09:29:29.615-06:00</updated><title type='text'>Becoming a better developer (Part Deux)</title><content type='html'>&lt;strong&gt;Take time to learn about the business and your code base&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A good way to learn about continuous changes in your code base is to pay attention during stand up.  Everyone has something new that they have worked on and checked-in recently.  Why not take some time out to aquaint yourself with changes people have made and then ask questions about things you don't understand.  This way you are up-to-date on your code base and you will/may find it easier during refactorings.&lt;br /&gt;&lt;br /&gt;It also forces you to understand how the business works and how it is changing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-7428841103705374601?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/7428841103705374601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=7428841103705374601&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7428841103705374601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7428841103705374601'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/07/becoming-better-developer-part-deux.html' title='Becoming a better developer (Part Deux)'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-8890988713881558923</id><published>2007-07-25T08:59:00.000-06:00</published><updated>2007-07-25T09:15:20.791-06:00</updated><title type='text'>Becoming a better developer</title><content type='html'>In a post by &lt;a href="http://graysmatter.codivation.com/"&gt;Justice Gray&lt;/a&gt; subsequently followed up by &lt;a href="http://www.hanselminutes.com/default.aspx?showID=90"&gt;Scott Hanselman&lt;/a&gt; about becoming a better developer....I will post about this topic as a series....just so that I'm posting.&lt;br /&gt;&lt;br /&gt;Without further a doo-doo...here it is.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Remove Distractions (Email, Facebook, Reading Blogs).&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sometimes when things are new they can be very exciting...and addicting.  For example, Facebook, which I  tried hard to stay away from initially&lt;br /&gt;became something more and more difficult to ignore.  As  people joined I kept receiving invitations...soon I was adding friends and messaging people I knew from elementary school.  I can't wait to see who else is on this thing (almost everyone is already).  It has now become an addiction.  I'm sure the same thing can be said of email or blogging.  In some ways they are helpful to stay on top of new things and new sources of information...but in moderation.  All these things boil down to distractions if they are used too much.  Try to cut them out after a while if they hinder you in your work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-8890988713881558923?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/8890988713881558923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=8890988713881558923&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8890988713881558923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8890988713881558923'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/07/becoming-better-developer.html' title='Becoming a better developer'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-7080479469635734409</id><published>2007-05-10T09:47:00.000-06:00</published><updated>2007-05-10T10:14:09.822-06:00</updated><title type='text'>Believing in TDD</title><content type='html'>Recently I have been bouncing between TDD and CDD (code driven development...aka...the old way of doing things) only because old habits die hard.  I have to say that having tests are golden.  &lt;br /&gt;&lt;br /&gt;If you are not sold on the idea of TDD just think of this...If you are looking for a bug by running your enterprise app repeatedly you are wasting your time!  You are a sucker of CDD.  Imagine all of the crap you have to go through, especially in visual studio, all of the waiting you have to go through just to get to the point of hitting some far flung form in your app, weeding through the bs of your app just to hit your breakpoint.  Don't be a slave to your app.&lt;br /&gt;&lt;br /&gt;Having code that is driven out by solid tests you have a place to goto when things go wrong.  Just debug your tests.  If you do this you can step into your app far more easily, without the hassles of running your exe.&lt;br /&gt;&lt;br /&gt;If we are mocking out our views and everything is behaviour driven should we even bother to run the app?  Leave that to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-7080479469635734409?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/7080479469635734409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=7080479469635734409&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7080479469635734409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7080479469635734409'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/05/believing-in-tdd.html' title='Believing in TDD'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-3664270104765066585</id><published>2007-03-06T08:21:00.000-07:00</published><updated>2007-03-06T08:22:51.527-07:00</updated><title type='text'>Collapse the solution explorer</title><content type='html'>This is a good &lt;a href="http://www.codeproject.com/macro/collapseall.asp"&gt;add-in&lt;/a&gt; when you have 'oodles' of projects in your solution explorer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-3664270104765066585?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/3664270104765066585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=3664270104765066585&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3664270104765066585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3664270104765066585'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/03/collapse-solution-explorer.html' title='Collapse the solution explorer'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-5875523653257435738</id><published>2007-01-24T17:27:00.000-07:00</published><updated>2007-01-24T17:32:10.133-07:00</updated><title type='text'>Developer tools list</title><content type='html'>Since I was busy from thursday working with failing tests and I didn't check-in till right now...I didn't know I missed tools day.  So I'm publishing my list just for the hell of it.&lt;br /&gt;&lt;br /&gt;Cruise Control .NET &lt;br /&gt;nUnit &lt;br /&gt;ReSharper &lt;br /&gt;nAnt &lt;br /&gt;SlickRun &lt;br /&gt;Notepad2&lt;br /&gt;SysInternals (mostly handle)&lt;br /&gt;MyGeneration&lt;br /&gt;WinMerge&lt;br /&gt;SQLPrompt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-5875523653257435738?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/5875523653257435738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=5875523653257435738&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5875523653257435738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/5875523653257435738'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/01/developer-tools-list.html' title='Developer tools list'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-4904526495727539678</id><published>2007-01-10T14:52:00.000-07:00</published><updated>2007-01-10T14:56:42.005-07:00</updated><title type='text'>Test Driven .net shortcut</title><content type='html'>Isn't it annoying when you are running your tests that you have to right click and choose "run test" in order to performing testing?  I found a link that describes how to create a short-cut for your keyboard so you don't need to do this.&lt;br /&gt;&lt;br /&gt;http://weblogs.asp.net/nunitaddin/archive/2004/08/30/222447.aspx&lt;br /&gt;&lt;br /&gt;Although mine installation was a little different.  Instead of finding: &lt;br /&gt;"NUnitAddIn.ManagedAddIn.Connect.Client"&lt;br /&gt;&lt;br /&gt;I found:&lt;br /&gt;"TestDriven.Net.Client"&lt;br /&gt;&lt;br /&gt;I guess it is the same thing?  anywhoo...I did as the instructions say and it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-4904526495727539678?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/4904526495727539678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=4904526495727539678&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/4904526495727539678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/4904526495727539678'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2007/01/test-driven-net-shortcut.html' title='Test Driven .net shortcut'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-3583995361276475730</id><published>2006-11-20T17:37:00.000-07:00</published><updated>2006-11-21T13:08:56.603-07:00</updated><title type='text'>Hilarious</title><content type='html'>I found this on the thoughtworks blog but had to re-post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger2/89/2195/1600/525068/bug-bash20061120.gif"&gt;&lt;img style="display:block; margin:0px text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger2/89/2195/200/732443/bug-bash20061120.png" border="1" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-3583995361276475730?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/3583995361276475730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=3583995361276475730&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3583995361276475730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3583995361276475730'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/11/hilarious.html' title='Hilarious'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-6871651613386419571</id><published>2006-10-30T10:17:00.000-07:00</published><updated>2006-11-13T16:13:10.086-07:00</updated><title type='text'>Speed Reading</title><content type='html'>I've been trying to get into speed reading again. I remember &lt;a href="http://graysmatter.codivation.com"&gt;Justice&lt;/a&gt; trying to get me onto this during the&lt;a href="http://www.telusgeomatics.com"&gt; great telus period&lt;/a&gt; which was more than a year ago...come to think of it...maybe even 2 years ago. Actually at the time I didn't really catch on...until recently.&lt;br /&gt;&lt;br /&gt;I have really been interested in things like real estate, stock markets, personal growth, hell even construction etc, etc, etc. Honestly there are so many things I want to get into...but I can't seem to find the time or have the patience to increase my understanding of these subject areas. In order to substantially increase my efficiency and understanding of these and others matters...I finally figured out I need to read! But to get better at filtering through all that knowledge out there I needed a faster way to do it.&lt;br /&gt;&lt;br /&gt;I have noticed that alot of &lt;a href="http://www.computerzen.com"&gt;interesting&lt;/a&gt; people out &lt;a href="http://www.stevepavlina.com"&gt;there&lt;/a&gt; read several books at once...going through 4 or 5 books per month. Minimum! They also lead very busy lives. The best way to get through all of this information is to speed read. Regular reading just doesn't cut it. We always focus on numbers for various things. For example how many points we made during a video game. What our weight was last week. How fast we type! But I never really focused on how many words I could read in a minute. It is a foreign concept but an excellent goal to focus on when speed reading.&lt;br /&gt;&lt;br /&gt;A good site I found that has really helped me to increase my speed and focus in on a target wpm is &lt;a href="http://www.spreeder.com/"&gt;spreeder&lt;/a&gt;. It is a well designed site with various settings you can adjust to your liking.  For example you can change the size of your font, adjust the wpm, adjust the color etc.  I tend to use this application just to help me get into the groove and then branch into paper copies etc. Another site I have frequented for suggestions to help in reading is &lt;a href="http://pianoer.wordpress.com/2006/02/05/speed-reading-techniques/"&gt;here&lt;/a&gt;. It gives alot of good suggestions on ways to improve your speed.&lt;br /&gt;&lt;br /&gt;If you have any suggestions on ways that have helped you to increase the speed...please share.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-6871651613386419571?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/6871651613386419571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=6871651613386419571&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/6871651613386419571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/6871651613386419571'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/10/speed-reading.html' title='Speed Reading'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-1161956924392166506</id><published>2006-10-12T20:08:00.000-06:00</published><updated>2006-10-12T23:12:23.186-06:00</updated><title type='text'>Good Times</title><content type='html'>Given the recent purchase of &lt;a href="http://www.youtube.com"&gt;YouTube&lt;/a&gt; by &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;, I was inclined to have a look at their site. Personally I was never really interested in youtube since I didn'thave any desire to watch weirdo's do wheely's on their bikes...then fall off.  Beyond the fact that you could watch that kind of thing over and over again and still laugh, I really I didn't see the allure of it. ;-)&lt;br /&gt;&lt;br /&gt;But I could see the potential.  Wouldn't you rather watch your reality television over youtube...over the net. I would. Television nowadays really sucks! There isn't anything on! Remember the good'ol days when there wasn't reality television?  You could watch a mindless show for half an hour have all the problems of the world solved in a jiff and then wait till next week to see what else could possibly happen.  These were the glory days of boob tube...the original YouTube.&lt;br /&gt;&lt;br /&gt;Anywho...I was doing some searches and compiled a listing of some interesting old shows I used to watch. It's my top ten 80's shows. The kinds of shows you just couldn't go wrong with. I agree that this list will probably date me...and there are some of you out there that probably never heard of these shows. That would probably be you &lt;a href="http://www.jwerx.com"&gt;Jwerx&lt;/a&gt; (You poor lost soul.)&lt;br /&gt;&lt;br /&gt;But if your over 27 you probably know or have seen these.  Enjoy.&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.youtube.com/watch?v=KIcXDo82S_Y"&gt;http://www.youtube.com/watch?v=KIcXDo82S_Y&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.youtube.com/watch?v=AUplnn462uE"&gt;http://www.youtube.com/watch?v=AUplnn462uE&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://www.youtube.com/watch?v=n9PqZkVCUAs"&gt;http://www.youtube.com/watch?v=n9PqZkVCUAs&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://www.youtube.com/watch?v=qF8A26-Kh6c"&gt;http://www.youtube.com/watch?v=qF8A26-Kh6c&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://www.youtube.com/watch?v=rpdcD5eJz3M"&gt;http://www.youtube.com/watch?v=rpdcD5eJz3M&lt;/a&gt;&lt;br /&gt;6. &lt;a href="http://www.youtube.com/watch?v=7TmbmTdm3pU"&gt;http://www.youtube.com/watch?v=7TmbmTdm3pU&lt;/a&gt;&lt;br /&gt;7. &lt;a href="http://www.youtube.com/watch?v=8vbnLYROCj8"&gt;http://www.youtube.com/watch?v=8vbnLYROCj8&lt;/a&gt;&lt;br /&gt;8. &lt;a href="http://www.youtube.com/watch?v=02-OfWYcUPE"&gt;http://www.youtube.com/watch?v=02-OfWYcUPE&lt;/a&gt;&lt;br /&gt;9. &lt;a href="http://www.youtube.com/watch?v=cobvYazgfeM"&gt;http://www.youtube.com/watch?v=cobvYazgfeM&lt;/a&gt;&lt;br /&gt;10. &lt;a href="http://www.youtube.com/watch?v=0x502EBV3gc"&gt;http://www.youtube.com/watch?v=0x502EBV3gc&lt;/a&gt;&lt;br /&gt;Ok this is really retro: &lt;a href="http://www.youtube.com/watch?v=iyQV1nMWFu0"&gt;http://www.youtube.com/watch?v=iyQV1nMWFu0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-1161956924392166506?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/1161956924392166506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=1161956924392166506&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/1161956924392166506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/1161956924392166506'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/10/good-times.html' title='Good Times'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-7086479263122957529</id><published>2006-10-11T11:25:00.000-06:00</published><updated>2006-10-11T11:30:49.960-06:00</updated><title type='text'>New RSS Aggregator</title><content type='html'>You should check out the rss reader for google called 'google reader'.  Just go to their &lt;a href="http://labs.google.com/"&gt;labs &lt;/a&gt;page to find it.  If you have used it in the past like I have - it wasn't that great...but they just released a new and improved version that really fits the bill.  I can now finally get rid of that sharpreader on my desktop! [I can't believe I was still using that.]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-7086479263122957529?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/7086479263122957529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=7086479263122957529&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7086479263122957529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7086479263122957529'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/10/new-rss-aggregator.html' title='New RSS Aggregator'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-7047027437444034786</id><published>2006-10-05T13:37:00.000-06:00</published><updated>2006-10-05T13:41:09.171-06:00</updated><title type='text'>Thoughworks</title><content type='html'>&lt;a href="http://feeds.feedburner.com/PlanetTw"&gt;http://feeds.feedburner.com/PlanetTw&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following link gives some feeds into thoughtworkers around the world. There are excellent discussions on TDD, Agile/xp, Ruby and thoughtworks university.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-7047027437444034786?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/7047027437444034786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=7047027437444034786&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7047027437444034786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/7047027437444034786'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/10/thoughworks.html' title='Thoughworks'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-3532206649080673213</id><published>2006-09-22T12:34:00.000-06:00</published><updated>2006-09-22T12:42:48.573-06:00</updated><title type='text'>Anti-Patterns</title><content type='html'>I was recently reading up on Anti-Patterns and why you shouldn't use a singleton.  Wikipediea has a lot of good information on the types of things I have seen and have done over the years.  I Honestly didn't know that the singleton is considered an anti-pattern...especially since it is mentioned in the Head-First-Design Patterns book and is also listed in the GOF book.&lt;br /&gt;&lt;br /&gt;Below are some interesting Anti-Patterns.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://http://en.wikipedia.org/wiki/Big_ball_of_mud"&gt;Big Ball of Mud&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Object_cesspool"&gt;Object Cesspool&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Lava_flow_%28programming%29"&gt;Lavaflow&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Singleton_pattern"&gt;Singletonitis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see the complete list go &lt;a href="http://en.wikipedia.org/wiki/Anti-pattern"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-3532206649080673213?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/3532206649080673213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=3532206649080673213&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3532206649080673213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3532206649080673213'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/09/anti-patterns.html' title='Anti-Patterns'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-8290179527266651126</id><published>2006-09-07T23:26:00.000-06:00</published><updated>2006-09-07T23:30:39.147-06:00</updated><title type='text'>Getting to know Anand in 8 Easy steps.</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the spirit of the "tagging" post by &lt;a href="http://graysmatter.codivation.com/GettingToKnowJusticeIn8EasySteps.aspx"&gt;Justice &lt;/a&gt;I will cave and give my readers some insight into the world ala Anand...some of which you may or may not know.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1. I recently got married (count'em) &gt;3 mos ago to an amazing women. Thankfully she said yes and puts up with me. Since we are still on our honeymoon things are [as tony the tiger says] grrr-eat!&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/imageforcards2.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2. I am a big fan of science fiction including star wars, star trek and lord of the rings, matrix and back to the future. etc. I have dvd's and mpegs of all shows/movies and watch them all the time. Since there isn't anything to watch on tv anymore (re: death of tv) this is all I watch. I just threw back to the future in there because I saw it about 100 times during one summer holiday and used to know the lines to the entire movie...I know...butthead. &lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/jedi.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;3. I play the Tabla. An 'east?' Indian drum and have played it for about 15 years. I've been to many concerts locally and actually got the chance to meet and talk to one of the greatest players in the world - Zakir Hussein. My main opportunity to play comes during our weekly spirtual gatherings here in the city.&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/ZakirHussein.jpg" border="0" /&gt; 4. I Love Ketchup. It's that simple. I put it on everything. I have probably eaten at least 1 bottle a month since the age of 2. (no seriously!) I think I should be in the guiness book of world records. Heinz, No name, Ketchup...catsup! Pronounce it any way you want...Just make sure it ends up on my food. One time my parents had to bring packets from mcdonalds on our vacation to their home country because I wouldn't eat food without it!&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/ketchup.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;5. My parents are from Fiji Islands....so I'm partly 'from there' [which people keep reminding me of] even though I was born in Canada...Go Figure! Better yet my great grandfather was from India and our entire culture is Indian! I have never understood it..so I don't expect you to. With that said Fiji is a nice place to visit and one day I might go and visit again. &lt;/p&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/slide_21.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;6. My first computing experiences was with the Apple II in elementary programming Logo. Then I moved to my first PC and the basic language on a 286. I liked programming but during school I always had a fascination with how computers worked internally. I was so interested in electronics that I ended up tearing apart anything I had to see how they worked. computers, stereos, microwaves, walkman, calculators....thus I ended up with a great deal of non working electronic junk!&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/apple.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;7. During university I received an NSERC grant. It is a science grant given to undergraduate students to pursue research of their interest. Of course my interest lay in computing and the stars. I was researching Artificial Intelligence and a way to autonomously locate stars on star charts. It was a summer project so I never really developed anything substantial but it was an interesting exercise in understanding how to do research. This was supposed to segway to my masters program which I was pursuing...unfortunately I wasn't accepted. Competing with a bunch of 9'ers from parts unknown is tough! However I am glad it didn't work out since I wouldn't have met my wife ;-)&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/Edwin-hubble.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;8. I am a big time hetero! Woohoo!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger2/89/2195/200/pic_selleck.jpg" border="0" /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;OK....&lt;a href="http://www.jwerx.com/blog/"&gt;JWerx&lt;/a&gt;...you had better get on it!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-8290179527266651126?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/8290179527266651126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=8290179527266651126&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8290179527266651126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8290179527266651126'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/09/getting-to-know-anand-in-8-easy-steps_07.html' title='Getting to know Anand in 8 Easy steps.'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-3387907531643022726</id><published>2006-08-31T13:06:00.000-06:00</published><updated>2006-08-31T13:12:13.981-06:00</updated><title type='text'>New ToolsList from Hanselman</title><content type='html'>I was reading some of the updated tools that hanselman put out on his &lt;a href="http://www.hanselman.com/blog/ScottHanselmans2006UltimateDeveloperAndPowerUsersToolListForWindows.aspx"&gt;list&lt;/a&gt; for 2006.  I love this list because it has alot of things that really help me develop and make things easier.  &lt;br /&gt;&lt;br /&gt;One of the items on his list is &lt;a href="http://www.promptsql.com/"&gt;PromptSQL&lt;/a&gt;.  It is intellisense for sql server!  No kidding...there is no intellisense for query analyzer even though you would think there should be.&lt;br /&gt;&lt;br /&gt;It is hot...and you can use it in other editors like vs.net 2003, 2005 and server management studio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-3387907531643022726?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/3387907531643022726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=3387907531643022726&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3387907531643022726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/3387907531643022726'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/08/new-toolslist-from-hanselman.html' title='New ToolsList from Hanselman'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-8586559422246124746</id><published>2006-08-26T12:20:00.000-06:00</published><updated>2006-08-26T12:28:05.304-06:00</updated><title type='text'>Summer of Vacations</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger2/89/2195/1600/IMG_0041.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger2/89/2195/320/IMG_0041.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Over the summer we went to a number of different places throughout western Canada.  Vancouver, Radium, Jasper, Banff.  I've uploaded the pictures if you want to have a look onto my &lt;a href="http://www.flickr.com/photos/arnarayan/sets/72157594252246283/"&gt;flickr &lt;/a&gt;account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-8586559422246124746?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/8586559422246124746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=8586559422246124746&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8586559422246124746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8586559422246124746'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/08/summer-of-vacations.html' title='Summer of Vacations'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-8512376691365694705</id><published>2006-08-23T21:24:00.000-06:00</published><updated>2006-08-23T21:34:52.427-06:00</updated><title type='text'>Development Notes</title><content type='html'>Have you used re-sharper yet?  If not get on the &lt;a href="http://www.jetbrains.com/resharper/"&gt;bandwagon&lt;/a&gt;...it's awesome.  It is excellent for TDD and refactoring your code.  Makes development that much sweeter....sweet!!&lt;br /&gt;&lt;br /&gt;In other news...I recently was asked to create a cross tab report in crystal reports for a client.  I wouldn't have even known how to do it - had it not been for &lt;a href="http://www.edmug.com"&gt;EDMUG&lt;/a&gt;!  The presentation on SQL Querying tips given by &lt;a href="http://www.campbellassociates.ca/blog/default.aspx"&gt;Richard Campbell&lt;/a&gt; was a life saver.  Thanks EDMUG executivo for organizing this event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-8512376691365694705?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/8512376691365694705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=8512376691365694705&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8512376691365694705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/8512376691365694705'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/08/development-notes.html' title='Development Notes'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-115627522692467056</id><published>2006-08-22T13:24:00.000-06:00</published><updated>2006-08-22T13:33:46.960-06:00</updated><title type='text'>Good Discussion on Reflection</title><content type='html'>If you finished listening to the dynamic languages podcast given by &lt;a href="http://www.computerzen.com"&gt;Scott &lt;/a&gt;that we were pointed to by &lt;a href="http://www.stevenrockarts.com"&gt;Steven&lt;/a&gt; then you might be interested in his podcast on Reflection.&lt;br /&gt;&lt;br /&gt;Scott talks about reflection and offers opinions on when and how we should use it. I really liked his suggestions on caching and emiting while using reflection.  This is especially true when we are at the data access level of our application and efficiency is essential.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselminutes.com/default.aspx?showID=37"&gt;http://www.hanselminutes.com/default.aspx?showID=37&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-115627522692467056?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/115627522692467056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=115627522692467056&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/115627522692467056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/115627522692467056'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/08/good-discussion-on-reflection.html' title='Good Discussion on Reflection'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-115514736365063487</id><published>2006-08-09T12:09:00.000-06:00</published><updated>2006-08-09T12:16:03.663-06:00</updated><title type='text'>Can't wait for Code Camp</title><content type='html'>Well, I'm officially ready for &lt;a href="http://www.edmontoncodecamp.com"&gt;codecamp &lt;/a&gt;as I've registered for my sessions.  I am looking forward to it as they seem to be very interesting.  Here is my line-up:&lt;br /&gt;&lt;br /&gt;Session Time: 9:00-10:30 am &lt;br /&gt;Steven Rockarts/Justice Gray  &lt;br /&gt;Session Name: Ruby and .NET &lt;br /&gt;&lt;br /&gt;Session Time: 10:45-12:15 pm &lt;br /&gt;Jason Hunt &lt;br /&gt;Session Name: Unit Testing Design Patterns &lt;br /&gt;&lt;br /&gt;Session Time: 1:15-2:45 pm &lt;br /&gt;Neil Bourgeois &lt;br /&gt;Session Name: OO programming in .NET for procedural developers &lt;br /&gt;&lt;br /&gt;Session Time: 3:00-4:30 pm &lt;br /&gt;James Kovacs &lt;br /&gt;Session Name: Tools of the Trade: Must-Have .NET Utilities &lt;br /&gt;&lt;br /&gt;Session Time: 4:45-6:00 pm &lt;br /&gt;Jean-Paul Boodhoo  &lt;br /&gt;Session Name: Test Driven Development&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-115514736365063487?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/115514736365063487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=115514736365063487&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/115514736365063487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/115514736365063487'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/08/cant-wait-for-code-camp.html' title='Can&apos;t wait for Code Camp'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-114558766882111695</id><published>2006-04-20T20:42:00.000-06:00</published><updated>2006-04-20T20:47:48.823-06:00</updated><title type='text'>Anand is podcasting</title><content type='html'>Ok,&lt;br /&gt;&lt;br /&gt;So we have a developer meeting scheduled for tomorrow and in it we are planning to discuss new technologies that we find interesting.  I had always wanted to know and investigate podcasting.  I found a great site where to do this.  It is called: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.podomatic.com"&gt;http://www.podomatic.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On this site you can post your podcasts for free.  They also show you how to create and manage a podcast site.  Check it out if you have time.  Also you can listen to my latest podcast.  The site is: &lt;a href="http://anandnarayan.podomatic.com"&gt;http://anandnarayan.podomatic.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My audio podcast is an impression of one of our developers at geomatics.  Guess Who?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-114558766882111695?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/114558766882111695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=114558766882111695&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/114558766882111695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/114558766882111695'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/04/anand-is-podcasting.html' title='Anand is podcasting'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-114425234901368516</id><published>2006-04-05T09:08:00.000-06:00</published><updated>2006-04-05T09:55:13.020-06:00</updated><title type='text'>Workout schedule</title><content type='html'>Ever since I joined the gym I have had difficulty maintaining a proper workout schedule.&lt;br /&gt;&lt;br /&gt;Previously when I worked out I simply went to see how many calories I could burn and then documented that.  I was averaging  400 calories per visit.  I would also document what I was eating as a way to monitor my caloric intake.  This process wasn't too bad but sometimes it became a bit tedious.  &lt;br /&gt;&lt;br /&gt;I would also vary my schedule so that I tried to visit the gym every 2nd day or at least 3 times a week.  This also became difficult to maintain.  The clincher was whenever I stopped going for a few days....my workout schedule came to a screeching halt.  This spell could last a few weeks until I broke it by going more often.&lt;br /&gt;&lt;br /&gt;Recently I read a report on diabetes that stated that I should do some kind of physical activity every day for at least 30 minutes.  So I decided that instead of going to the gym 3 times a week - I will go every day.  This has actually been pretty good as I have been able to maintain this, missing only one day for the past 2 weeks.  I am also varying the intensity of the workout.  Some days are filled with more demanding equipment and other days are less intense.  &lt;br /&gt;&lt;br /&gt;I have also been able to go more often with my fiance which has made a huge difference.  Having someone to go with really motivates and encourages me to work harder on my goal for optimal health. &lt;a href="http://www.stevepavlina.com/blog/2006/03/varying-your-exercise-routine/"&gt;Steve Pavlina&lt;/a&gt;  talks about varying your routine whenever you get bored with your current one just to stay 'in the game'.&lt;br /&gt;&lt;br /&gt;I am sure that I will probably get tired of going to the gym everyday.  This will be my indication that I need to vary the schedule to help keep it going.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-114425234901368516?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/114425234901368516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=114425234901368516&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/114425234901368516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/114425234901368516'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/04/workout-schedule.html' title='Workout schedule'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113938289023529625</id><published>2006-02-08T00:07:00.000-07:00</published><updated>2006-02-08T00:14:50.253-07:00</updated><title type='text'>Yahoo E-Mail</title><content type='html'>I probably mentioned this to a couple people at work but if you don't already know about this check it out!  Yahoo has re-vamped their email program and made it a competitor for gmail.  Not only do they offer the same space for your account their site is completely ajax driven and has a familiar look and feel as outlook!!!!  In terms of user interface it kicks gmail!  In terms of speed it isn't as fast as gmail but you won't be disappointed.  &lt;br /&gt;&lt;br /&gt;Since it is in beta there are still some bugs being worked out - but not too many :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.yahoo.com"&gt;Do you Yahoo!?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113938289023529625?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113938289023529625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113938289023529625&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113938289023529625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113938289023529625'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/02/yahoo-e-mail.html' title='Yahoo E-Mail'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113631322740495526</id><published>2006-01-03T11:29:00.000-07:00</published><updated>2006-01-03T11:33:47.413-07:00</updated><title type='text'>New Pics of my House</title><content type='html'>Check it out: &lt;a href="http://www.flickr.com/photos/arnarayan"&gt;Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113631322740495526?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113631322740495526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113631322740495526&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113631322740495526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113631322740495526'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2006/01/new-pics-of-my-house.html' title='New Pics of my House'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113587883927439995</id><published>2005-12-29T10:51:00.000-07:00</published><updated>2005-12-29T10:53:59.296-07:00</updated><title type='text'>As one goal ends...Another begins</title><content type='html'>Well I'm proud to say that my goal for this month has been achieved and I have managed to maintain my weight.  Wasn't as hard as I thought it would be.  This was due in part to my eating habits.  I am starting to see a marked change in the kinds of foods that I eat and the portion sizes.  Hopefully this results in improved health.  &lt;br /&gt;&lt;br /&gt;I will have to admit that my weight loss goal for the month of November was really a mess.  It was my first goal and the hardest one so far.  Instead of losing weight I had gained...and gained 6 or 7 pounds.  This was thanks to a host of poor food choices - I had actually gone buffet style twice in November.  I had also gone to the restaurant a few times too.  So this did the trick and really threw off everything.  But I managed to take off the weight.  &lt;br /&gt;&lt;br /&gt;I am starting to think that my weight loss goal for 1 month (5lbs) can be maximized to 10lbs.  I think that this is the highest weight loss goal I can make in a month given my metabolism and lifestyle.  So I have decided to make January the test case for this goal.  I will split up the month so that in the first 2 weeks I will lose 4-5 lbs.  The rest of the month will be the remainder of the goal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113587883927439995?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113587883927439995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113587883927439995&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113587883927439995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113587883927439995'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/12/as-one-goal-endsanother-begins.html' title='As one goal ends...Another begins'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113458660953879904</id><published>2005-12-14T11:47:00.000-07:00</published><updated>2005-12-14T11:58:31.416-07:00</updated><title type='text'>New Goal for the Month</title><content type='html'>I've decided that rather than have a new weight goal to lose more weight I will instead try to maintain my existing weight this month.  I believe that this is more achievable given that it is the month of December.  I will have to increase my visits to club fit since I will be tempted by some sugary treats. &lt;br /&gt;&lt;br /&gt;Christmas is always a more difficult time to watch your weight given that whereever you look there is something good to eat.  If you have missed out on all the fun and excitement checkout &lt;a href="http://anandgoals.blogspot.com"&gt;anandgoals&lt;/a&gt;  for the latest on my rendevouz with club fit and keeping my health in check.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113458660953879904?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113458660953879904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113458660953879904&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113458660953879904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113458660953879904'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/12/new-goal-for-month.html' title='New Goal for the Month'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113255740383900005</id><published>2005-11-20T23:51:00.000-07:00</published><updated>2005-11-21T00:21:10.036-07:00</updated><title type='text'>Pics of my house</title><content type='html'>Here is a &lt;a href="http://www.flickr.com/photos/arnarayan/"&gt;link&lt;/a&gt; to my pictures on flickr.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113255740383900005?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113255740383900005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113255740383900005&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113255740383900005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113255740383900005'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/11/pics-of-my-house.html' title='Pics of my house'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113061241365412301</id><published>2005-10-29T12:44:00.000-06:00</published><updated>2005-10-29T13:00:13.670-06:00</updated><title type='text'>Contest! A Contest!</title><content type='html'>Ever since my sister won a trip to New Orleans (before the flood) I have been interested in entering contests. She entered just because someone told her to. She never did it before and ended up winning the grand prize. Go Figure. Isn't that always the way?&lt;br /&gt;&lt;br /&gt;Well if you never enter contests - I'm telling you to do it now! You'll probably win.&lt;br /&gt;&lt;br /&gt;If you want a list of contests this is a great site for it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.somewhereincanada.com"&gt;http://www.somewhereincanada.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113061241365412301?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113061241365412301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113061241365412301&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113061241365412301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113061241365412301'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/10/contest-contest.html' title='Contest! A Contest!'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-113029924533809994</id><published>2005-10-25T23:45:00.000-06:00</published><updated>2005-12-18T22:07:08.956-07:00</updated><title type='text'>Working Out</title><content type='html'>So I recently (umm...3 mos ago) purchased a membership...ok! ok! Renewed my membership to club fit (a local gym) for 2 years. I've gone there off and on...sort of. I won't go into the details of how often...suffice it to say at least 2 times a week...umm once a week....sometimes never.&lt;br /&gt;&lt;br /&gt;Anand: "Ahhhhhhhhhh........" (long exhaled breath...followed by even longer pause, followed by spacing out for 5 minutes then thinking about time management)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rathbones.co.uk/rb/images/man_in_thought.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So why don't I go to the gym as often as I would like? I am definitely interested in going, I forked out the money for the stinking membership...but why don't I go? I'll tell you why. It is because of my old arch nemesis....Time. He is always working against me.&lt;br /&gt;&lt;br /&gt;So it is right now 10:00pm (MST) Oct-25-2005 and I'm going to the gym. I'll continue blogging when I get back!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'M BACK!! Did you miss me? Now you have to...forget it!&lt;br /&gt;&lt;br /&gt;In one and a half hours I was able to spend 30 minutes on the cross trainer and burn 300 calories. Pretty amazing considering the fact that 300 calories isn't very much and I probably put that on just by breathing. So what happened to the hour I was out of the house? Not a clue. Honestly. It must have been chewed up in the black hole that I like to call life.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I always end up going to the gym this late because it is the only time I seem to be able to go. Usually after I get home after work I eat a little and sit around for an hour trying to relax. But before you know it I'm back on the computer. You see I've got a little gig on the side that occupies most of my evenings developing software. It is a small, part-time thing but it is a great way to make extra money. I find that when I'm developing software I need to concentrate on what I'm doing for a fixed amount of time...usually 4 hours. If I'm in the zone I get lots done. Without this kind of focus I don't really accomplish enough. (I honestly wish it were like this at work!) So from 6-10 I'm working then I head out to the gym...only if I don't run into trouble during development, or have a problem that requires more time. If it is around 10:30pm I don't even bother going because club fit closes at 11:00pm. (Only the west-end location. The southside and northside locations are open 24hours. But I'm not prepared to drive for 45 minutes to an hour just to get in a 30 min workout!)&lt;br /&gt;&lt;br /&gt;By the time I take a shower and settle down it's like 12:00am and I need to start thinking about getting to sleep!&lt;br /&gt;&lt;br /&gt;Which brings me back to time. How to manage it? How to respect it? I haven't got a clue. But I'm interested in learning because it is very obvious to me I don't really know how. I don't have too many things going on in the evening so you would think I could always sqeeze in the workout but it doesn't always workout that way.&lt;br /&gt;&lt;br /&gt;Anand: "Ahhhhh....."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rathbones.co.uk/rb/images/man_in_thought.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-113029924533809994?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/113029924533809994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=113029924533809994&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113029924533809994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/113029924533809994'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/10/working-out.html' title='Working Out'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17981529.post-112968738166615781</id><published>2005-10-18T19:53:00.000-06:00</published><updated>2005-10-18T20:03:01.670-06:00</updated><title type='text'>Debugging</title><content type='html'>Ok, so I spent the better part of my day debugging a problem that I just couldn't figure out.  Do you ever get into those types of funks?  You see a problem, you have an inkling of what the solution could be but you just can't figure it out.  So you keep digging...not knowing that your day is slowly, steadily.... just...slipping....away.&lt;br /&gt;&lt;br /&gt;You know you should stop but you end up wanting to try one more thing.  Pretty soon it is 4:30 and time to go home!  So at exactly 4:30 you try something really simple and it works!&lt;br /&gt;&lt;br /&gt;Why oh why couldn't I have tried that in the morning.  I was thinking about it but I thought:&lt;br /&gt;&lt;br /&gt;"too simple anand."&lt;br /&gt;&lt;br /&gt;- Arghh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17981529-112968738166615781?l=anandnarayan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anandnarayan.blogspot.com/feeds/112968738166615781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17981529&amp;postID=112968738166615781&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/112968738166615781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17981529/posts/default/112968738166615781'/><link rel='alternate' type='text/html' href='http://anandnarayan.blogspot.com/2005/10/debugging.html' title='Debugging'/><author><name>Anand Narayan</name><uri>http://www.blogger.com/profile/10192921490812387182</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://photos1.blogger.com/blogger/7683/1666/1600/anand.jpg'/></author><thr:total>2</thr:total></entry></feed>
