<?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-7244376420421961168</id><updated>2011-04-21T17:25:54.374-05:00</updated><title type='text'>Code Vantage</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-71248685110182143</id><published>2009-05-26T23:15:00.001-05:00</published><updated>2009-05-26T23:18:57.109-05:00</updated><title type='text'>Things you should never do</title><content type='html'>Joel Spolksy has a great &lt;a href="http://www.joelonsoftware.com/articles/fog0000000069.html"&gt;series of posts &lt;/a&gt;about the netscape project moving from version 4 to version 6 and the major mistakes they made along the way.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Among my favorite from the articles:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times; "&gt;&lt;p style="font-family: Georgia, serif; margin-bottom: 1em; margin-top: 0px; line-height: 20px; "&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p style="font-family: Georgia, serif; margin-bottom: 1em; margin-top: 0px; line-height: 20px; "&gt;There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: &lt;i&gt;they are probably wrong.&lt;/i&gt; The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming:&lt;/p&gt;&lt;p style="font-family: Georgia, serif; margin-bottom: 1em; margin-top: 0px; line-height: 24px; font-weight: bold; font-size: 19px; text-align: center; "&gt;It’s harder to read code than to write it.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="font-family: Georgia, serif; margin-bottom: 1em; margin-top: 0px; line-height: 24px; font-weight: bold; font-size: 19px; text-align: center; "&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-71248685110182143?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/71248685110182143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=71248685110182143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/71248685110182143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/71248685110182143'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2009/05/things-you-should-never-do.html' title='Things you should never do'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-5159770828874087288</id><published>2008-09-28T21:37:00.000-05:00</published><updated>2008-09-28T21:38:38.839-05:00</updated><title type='text'>Winston Churchill Quote</title><content type='html'>Constant effort, not strength nor intelligence, is what reveals our potential.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-5159770828874087288?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/5159770828874087288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=5159770828874087288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5159770828874087288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5159770828874087288'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/09/winston-churchill-quote.html' title='Winston Churchill Quote'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-1421900589132457411</id><published>2008-09-03T23:50:00.001-05:00</published><updated>2008-09-03T23:51:45.647-05:00</updated><title type='text'>XAML Power Toys</title><content type='html'>&lt;div&gt;XAML powwer toys can "&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 12px; line-height: 16px; "&gt;quickly create a form complete with bindings if desired&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia; font-size: 16px; line-height: normal; "&gt;" from a selected class.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://karlshifflett.wordpress.com/2008/08/31/xaml-power-toys/"&gt;http://karlshifflett.wordpress.com/2008/08/31/xaml-power-toys/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-1421900589132457411?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/1421900589132457411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=1421900589132457411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/1421900589132457411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/1421900589132457411'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/09/xaml-power-toys.html' title='XAML Power Toys'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-7455072475892740306</id><published>2008-08-19T20:42:00.002-05:00</published><updated>2008-08-19T20:50:53.260-05:00</updated><title type='text'>Instant Message In Style</title><content type='html'>&lt;a href="http://www.digsby.com/"&gt;Digsby&lt;/a&gt; messaging client provides instant messaging in style.&lt;br /&gt;&lt;br /&gt;I have used many IM services over the years.  I started with AIM and ICQ, moved to GTalk and MSN about 4 years ago, and now have been spending a lot of time on facebook's in browser chat client.&lt;br /&gt;&lt;br /&gt;For the last 4 years I have been trying to find a really good chat client that actually works with all my services.  I used trillian for a long time, but got frustrated that I had to pay for it.  Then about a year ago I started using meebo.  Meebo has always seemed weird... gooing to a website to chat.&lt;br /&gt;&lt;br /&gt;Today I have found the answer to my problems.  &lt;a href="http://www.digsby.com/"&gt;Digsby&lt;/a&gt; is a IM client for Windows, Mac, and Linux.  It supports every service I mentioned(Including facebook and twitter!)   So far I am absolutly blown away by this application.  It docks nicly in the corner of the screen, handles away messages across services, does local logging of message history, and the user interface looks great.&lt;br /&gt;&lt;br /&gt;Hit the jump for screenshots of the application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-7455072475892740306?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/7455072475892740306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=7455072475892740306' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/7455072475892740306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/7455072475892740306'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/08/instant-message-in-style.html' title='Instant Message In Style'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-5460844728335339506</id><published>2008-08-07T21:58:00.004-05:00</published><updated>2008-08-07T22:26:42.385-05:00</updated><title type='text'>Prototype VS Production Code</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hUetSh8VUYM/SJu840umdxI/AAAAAAAACH0/2_ePjM3Pd8g/s1600-h/TrashContainers.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_hUetSh8VUYM/SJu840umdxI/AAAAAAAACH0/2_ePjM3Pd8g/s320/TrashContainers.JPG" alt="" id="BLOGGER_PHOTO_ID_5231983076533761810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have always enjoyed projects where the concept of prototype code is carried out in a good manor.  I personally have little to no problem throwing away code that is deemed "prototype code" even if it was not intended to be a prototype.   I like to ask myself a few questions about a project or feature to help me understand if what i have developed or am about to develop is indeed a prototype.&lt;br /&gt;&lt;br /&gt;1) Do I posses enough knowledge about the feature or product to produce a well thought out high quality design?  Would something concrete help me explain my lack of understanding?&lt;br /&gt;&lt;br /&gt;2) What is the likely hood that what I produce with the knowledge at hand will be a worthwhile contribution to the product?&lt;br /&gt;&lt;br /&gt;3) Are we sure that we will develop this using the proposed dependencies?  Are we likely to add or remove a dependency or third part component?&lt;br /&gt;&lt;br /&gt;4) How technically feasible is the task?  Would a simple proof of concept boost my confidence?&lt;br /&gt;&lt;br /&gt;5) Does the implementation feel like it is clean, broken out into appropriate units of work? How easy was it to test?  Are my tests short and easy to maintain?&lt;br /&gt;&lt;br /&gt;6) Have i given the design consideration?  Am I shooting from the hip?&lt;br /&gt;&lt;br /&gt;A quote from the book "Code Complete" identifies a very good definition of what prototype code is.  It challenged me to continually evaluate my behaviors and ask myself if I am turning prototype code into production code.&lt;br /&gt;&lt;br /&gt;"A final risk of prototyping arises when developers do not treat the code as throwaway&lt;br /&gt;code. I have found that it is not possible for people to write the absolute minimum&lt;br /&gt;amount of code to answer a question if they believe that the code will eventually end&lt;br /&gt;up in the production system. They end up implementing the system instead of proto-&lt;br /&gt;typing. By adopting the attitude that once the question is answered the code will be&lt;br /&gt;thrown away, you can minimize this risk. One way to avoid this problem is to create&lt;br /&gt;prototypes in a different technology than the production code. You could prototype a&lt;br /&gt;Java design in Python or mock up a user interface in Microsoft PowerPoint. If you do&lt;br /&gt;create prototypes using the production technology, a practical standard that can help&lt;br /&gt;is requiring that class names or package names for prototype code be prefixed with&lt;br /&gt;prototype. That at least makes a programmer think twice before trying to extend pro-&lt;br /&gt;totype code (Stephens 2003)."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-5460844728335339506?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/5460844728335339506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=5460844728335339506' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5460844728335339506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5460844728335339506'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/08/prototype-vs-production-code.html' title='Prototype VS Production Code'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hUetSh8VUYM/SJu840umdxI/AAAAAAAACH0/2_ePjM3Pd8g/s72-c/TrashContainers.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-6724475535295674871</id><published>2008-08-06T22:04:00.003-05:00</published><updated>2008-08-06T22:13:03.083-05:00</updated><title type='text'>Design Is a Wicked Problem</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_hUetSh8VUYM/SJpoLFnI0SI/AAAAAAAACHU/4GnVG7uN5Z8/s1600-h/image.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_hUetSh8VUYM/SJpoLFnI0SI/AAAAAAAACHU/4GnVG7uN5Z8/s320/image.jpg" alt="" id="BLOGGER_PHOTO_ID_5231608456838435106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have found in my career over and over that whenever you have a complex problem the first pass at design is rarely the correct.  Every time you start a complex project and design a user interface prototype it changes several times before a usable design seems to emerge.  Usually at the end of a project you look back at the initial design and laugh!&lt;br /&gt;&lt;br /&gt;Inevitably a good design usually happens through showing the customer the design and working through the problems and gaining understanding through communication and reviewing the user interface with the customer.&lt;br /&gt;&lt;br /&gt;I stumbled upon this quote today that accurately describes what I have learned.&lt;br /&gt;&lt;br /&gt;This paradox implies, essentially, that you have to solve the problem once in order to clearly define it and then solve it again to create a solution that works. This process has been motherhood and apple pie in software development for decades (Peters and Tripp 1976).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-6724475535295674871?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/6724475535295674871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=6724475535295674871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6724475535295674871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6724475535295674871'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/08/design-is-wicked-problem.html' title='Design Is a Wicked Problem'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hUetSh8VUYM/SJpoLFnI0SI/AAAAAAAACHU/4GnVG7uN5Z8/s72-c/image.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-3319036612967677554</id><published>2008-07-11T09:38:00.002-05:00</published><updated>2008-07-11T09:43:03.237-05:00</updated><title type='text'>Server Room in the womans bathroom???</title><content type='html'>This WTF post is hillarious.  I will never say a negative word about a server room unless it's in the handicap stall!&lt;br /&gt;&lt;br /&gt;http://thedailywtf.com/Articles/The-Stalled-Server-Room.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-3319036612967677554?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/3319036612967677554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=3319036612967677554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/3319036612967677554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/3319036612967677554'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/07/server-room-in-womans-bathroom.html' title='Server Room in the womans bathroom???'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-5283320582013144029</id><published>2008-06-02T21:00:00.002-05:00</published><updated>2008-06-02T21:02:24.588-05:00</updated><title type='text'>Big Vs Little SOA</title><content type='html'>Sam Gentle has a &lt;a href="http://feeds.feedburner.com/%7Er/SamGentile/%7E3/303239777/soa-making-the-paradigm-shift-part-3-of-n.aspx"&gt;good article&lt;/a&gt; talking about the hundreds of ways that SOA is described and the difference between big and little SOA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-5283320582013144029?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/5283320582013144029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=5283320582013144029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5283320582013144029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5283320582013144029'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/06/big-vs-little-soa.html' title='Big Vs Little SOA'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-6319325953591460537</id><published>2008-05-27T22:05:00.002-05:00</published><updated>2008-05-28T07:49:22.948-05:00</updated><title type='text'>Developer RAID</title><content type='html'>I was talking with a colleague tonight and he reminded me of a conversation that him and the owner of a company that we both used to work for. The conversation went something like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Owner:&lt;/strong&gt; "If we keep developing our framework pretty soon we will have such a great foundation created that we will be able to hire the cheapest developers out there and it wont matter if they leave us.  We could have developer RAID! - Redundant Array of Inexpensive Developers."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Us:&lt;/strong&gt; WTF&lt;br /&gt;&lt;br /&gt;This is such a remnant of the culture of the company that I worked for at the time. It was a top down management style, with a underlying thought that developers performance needed to be monitored and scrutinized, focusing on developing reusable code to diminish the effects that a inexperienced developer can have on the success of projects. &lt;br /&gt;&lt;br /&gt;In my experience "Developer RAID" is a complete 180 degree flip of what actually works well in a development team: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;The RAID culture says bring in inexperienced low-cost developers and monitor what they do to ensure productivity.  I believe in mixing experience with non-experience and empowering the team.&lt;/li&gt;&lt;li&gt;The RAID culture says that developing reusable code gives us a competitive advantage therefore, maximizing code reuse should be the focus of every project.&lt;/li&gt;&lt;li&gt;The RAID culture despises third party libraries.  This company I worked for loved anything that used their name in the namespace and hated everything else.&lt;/li&gt;&lt;li&gt;The RAID culture believes the silver bullet exists - "someday we will develop our framework complete enough so we will have an answer for almost any customer need"&lt;/li&gt;&lt;li&gt;The RAID culture develops in isolation from the customer adding features to provide value even if the feature is not a requirement&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Has anyone else had a similar experience with a RAID like culture?  I would like to think that this was an isolated case at this one company, but I am sure that is not true.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-6319325953591460537?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/6319325953591460537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=6319325953591460537' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6319325953591460537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6319325953591460537'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/developer-raid.html' title='Developer RAID'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-5652066908761542124</id><published>2008-05-17T14:42:00.002-05:00</published><updated>2008-05-17T14:43:26.995-05:00</updated><title type='text'>useless exception handling</title><content type='html'>I recently found this snippet of code in an old email.  This was written by the first developer I ever had to fire&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;try{&lt;br /&gt;    if (variable ==null)&lt;br /&gt;    throw new NullReferenceException();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;catch (NullReferenceException e){&lt;br /&gt;    throw new Exception("NullReferenceException");&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-5652066908761542124?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/5652066908761542124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=5652066908761542124' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5652066908761542124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5652066908761542124'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/useless-exception-handling.html' title='useless exception handling'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-5875822413786795400</id><published>2008-05-13T19:42:00.000-05:00</published><updated>2008-05-14T12:23:15.772-05:00</updated><title type='text'>Monopoly Bots are Dumb</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hUetSh8VUYM/SCo_j60c19I/AAAAAAAACGA/dEQbp9WGzDM/s1600-h/pic329349_t.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5200038606069880786" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_hUetSh8VUYM/SCo_j60c19I/AAAAAAAACGA/dEQbp9WGzDM/s320/pic329349_t.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nobody in the real world ever wants to play monopoly with me, either because the game takes so darn long, or I cheated at monopoly on their 1 year wedding anniversary(sorry again!). I have resparked my love of Monopoly through an ehem "free" version of monopoly on my HTC Sprint Mogul Pocket PC phone.&lt;br /&gt;&lt;br /&gt;After a month and a half of play I have probably racked up 50-60 games. I learned some rules that I was not aware of and became pretty proud of my skills. More than anything though I think I got reminded how awesome the game is!&lt;br /&gt;&lt;br /&gt;Sadly though, I am losing interest in the game. It became really apparent that I am way way way smarter than the AI in the game. I am finding that I probably win about 70% of the time when paying against 4 bots. I have found ways to win at the game almost every time. There is no difficulty setting to be found and I am getting tired of winning.&lt;br /&gt;&lt;br /&gt;Here is an example of the bots' lack of AI. Lets say that all "deed groups" (Like Boardwalk and Park Place) are split amongst different players except for one group. Of the remaining group one property is for sale, you own one property and one is owned by another player Player 1 lets say. Any humanoid in Player 1's position knows that this is valuable real estate! The ownership of the last remaining set is the most probable path to success and it should be pursued. The bots are ignorant to this situation and will gladly trade the property for a $10 profit.&lt;br /&gt;&lt;br /&gt;Another really frustrating shortcoming of the bots that I have found is their insufficient trading knowledge and risk assessment. In one game I was playing I had three deed groups that I owned and had houses and hotels on. There was one player left in the game. The bot was bleeding badly. He had about $2500 dollars remaining, but no chance of winning without a complete deed group. He was one property short from having a complete deed group on three groups. I was growing very impatient and bored with the game and decided that I was going to try and spice up the challenge. So I made an offer to the bot that I thought it would not refuse. $1000 for the remaining three properties that he needed. The bot did a quick evaluation of property value and determined that the deal was no good because the property value was less than the amount of cash I requested.&lt;br /&gt;&lt;br /&gt;I was thinking today about what arsenal of artificial inelegances a smart monopoly bot would need to posses. I know that this is a game and that I am taking the discussion way to far, but the software engineer in me takes over and I have to conceptualize what the bot would act and behave like. Here are a few of the "features" that I thought of right away.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Bot AI Features&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Awareness of the methods of the game (What are the ways money is made)&lt;/li&gt;&lt;li&gt;ROI on property ownership&lt;/li&gt;&lt;li&gt;When to buy or pass on property&lt;/li&gt;&lt;li&gt;When to offer a trade.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In a trade should it offer cash or property.&lt;/li&gt;&lt;li&gt;In a trade offer when should it accept or reject, or counter offer&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In a trade offer dealing with property when should the trade allow another player to complete a deed group&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Intelligence of if the bot is in a winning or losing situation&lt;/li&gt;&lt;li&gt;The ability to take more or less risk based on the scenarios of the game&lt;/li&gt;&lt;li&gt;Knowledge of the other players in the game, what they own, what they want and need to win&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Awareness of probability of success&lt;/li&gt;&lt;li&gt;Knowledge of how much cash to keep on hand (Should I spend everything I have on houses or keep cash on hand)&lt;/li&gt;&lt;li&gt;When to mortgage. Sometimes a good strategy is to mortgage property before you need to to buy property or houses.&lt;/li&gt;&lt;li&gt;When to buy houses, where are the other players on the board, where is the bot in relation to danger areas on the board&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This is a very rough list, but there are some really challenging engineering concepts here. Do I plan on sitting down and developing a Monopoly bot this weekend, no. But man it would be a really good software development project to have a Monopoly bot building contest!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-5875822413786795400?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/5875822413786795400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=5875822413786795400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5875822413786795400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/5875822413786795400'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/monopoly-bots-are-dumb.html' title='Monopoly Bots are Dumb'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hUetSh8VUYM/SCo_j60c19I/AAAAAAAACGA/dEQbp9WGzDM/s72-c/pic329349_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-6598650574997636243</id><published>2008-05-13T17:04:00.000-05:00</published><updated>2008-05-13T17:06:19.746-05:00</updated><title type='text'>A funny conversation with a co-worker today!</title><content type='html'>&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Coworker&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Hi, EveryoneI am back from Network Center New Products showcase training.&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Me&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Sounds like your are all trained to be on the price is right&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Coworker&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Hello, Travis&lt;br /&gt;&lt;br /&gt;I hope so. It was  very interesting presentation.  I am trying to keep up with technology. Microsoft is twisting things back and forth to confuse us. Why not meet Bill Gate? He give me all the secret formal to deal with Microsoft. &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-6598650574997636243?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/6598650574997636243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=6598650574997636243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6598650574997636243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6598650574997636243'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/funny-conversation-with-co-worker-today.html' title='A funny conversation with a co-worker today!'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-6076108340849588454</id><published>2008-05-13T12:38:00.000-05:00</published><updated>2008-05-13T14:03:44.276-05:00</updated><title type='text'>Fun with System.Threading.Parallel</title><content type='html'>&lt;p&gt;I’ve been using the CTP of Parallel threading in .NET now for a few months and have found it extremely useful. The question always comes up when you are multi threading, “how many threads can I kick up on this machine?” Inevitably you end up coding your own thread pool or at a minimum hard coding the number of threads to be started. This very tightly binds the code you write to the machine you intend to run the code on. I have gone on a bit of an anti-coupling kick this year and this type of thinking simply doesn’t fly with me.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The Parallels Assembly offers an alternative. Upon usage the application will determine the number of processers and cores available on the machine and kick up the appropriate number of threads to best utilize the hardware available.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The other really slick feature of the assembly is that it is so easy to implement. It offers parallel versions of standard loops found in the framework. For example, rather than using &lt;/p&gt;&lt;p&gt;&lt;br /&gt;foreach(customer c in Customers) &lt;/p&gt;&lt;p&gt;&lt;br /&gt;you can now use&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Parallel.ForEach (Customers,delegate(Customer c){})&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This makes it very simple to drop threading into an unthreaded CPU hog of a method. Of course as always when you are considering multi threading, you should always ensure that your code is thread safe. There is no magic bullet to do this for you!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The parallels library is available from Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e848dc1d-5be3-4941-8705-024bc7f180ba&amp;amp;displaylang=en"&gt;here.&lt;/a&gt; It is available in the System.Threading namespace once referenced. There is no install required; there is simply a System.Threading.Parallel.dll to reference.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I have included a very simple test application to demonstrate the simplicity of the assembly and how it is implemented. You may download the application &lt;a href="http://rsstray.googlepages.com/ParallelThreadingExample.rar"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MSDN has a &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163340.aspx"&gt;really good article &lt;/a&gt;detailing the Parallel extensions.  It has some really good detail into some pretty specific thread saftety issues that are addressed with the extensions.  It also details how the task manager determines the number of threads to kick up.  It looks like it is simply the one per core availible.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-6076108340849588454?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/6076108340849588454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=6076108340849588454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6076108340849588454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/6076108340849588454'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/fun-with-systemthreadingparallel.html' title='Fun with System.Threading.Parallel'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7244376420421961168.post-4702996549646578605</id><published>2008-05-11T17:24:00.000-05:00</published><updated>2008-05-11T23:01:40.339-05:00</updated><title type='text'>Coding In Cuba</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_hUetSh8VUYM/SCe9nK0c18I/AAAAAAAACFg/-B4gQfl2e-s/s1600-h/225px-FidelSmile.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_hUetSh8VUYM/SCe9nK0c18I/AAAAAAAACFg/-B4gQfl2e-s/s320/225px-FidelSmile.jpg" alt="" id="BLOGGER_PHOTO_ID_5199332775439423426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;The other day I was driving to work, wishing I didn't hate my job.  I have been employed there for just under a year and have been contemplating leaving.  I originally took the job as a short term thing, expecting an outside venture that I had put substantial time into to become a lucrative full time position.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I work for a manufacturer that produces some very technologically advanced products in the housing industry.  Surprisingly for a technologically advanced company, they have absolutely no focus on IT.  The owner of the company is self admittedly very anti technology.  The company subscribes to lean manufacturing theories, and apparently there is no room for technology in the owners's opinion.  Somehow along the life of this company, 50 .Net Applications have been created and 250 SQL Reporting Service Reports have been created!  So let me back up... A company that could care less about technology has a ton of reports and applications!&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I was listening to Minnesota Public Radio on my short trip to work and the program was on the current state of Cuba.  The following facts were stated that I found very interesting&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Currenty in cuba, only 2% of the population has internet access&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Fidel Castro runs the country by fear, intimidation, and control&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;I was dumbfounded at the parallels between this discussion of Cuba and how it relates to my current employer.  In one of my discussions with my boss about the owner of the company he told me that "Hank(the owner) likes to treat his employees like he treats his dogs.  He says that if you beat one of your dogs in front of the other dogs, they will all respect and fear you."&lt;br /&gt;&lt;br /&gt;I had the unfortunate opportunity to see this play out in a few meetings with the owner. In one meeting  I was requesting some money for replacement PCs that were  8-10 years old.  He flipped off everyone in the room for having the audacity to ask for money for IT.  I have also seen him dislike something someone says in a meeting and proceed to pound the person for insane levels of detail right then and there in front of 50+ people.  If the person doesn't have the detailed information right then and there, they are full of sh!7 and he will let them know right then and there!&lt;br /&gt;&lt;br /&gt;Another amazing facet of this company is that the majority of employees do not have internet access.  It's not two percent by any means, but it is a very small percentage.  The company does realize that certain employees do need access to the internet to perform work related activities such as emailing customers and doing research.  The company made the decision that they needed to implement two completely separate networks, an "Internal" and an "External".  This means two desktops on lots and lots of desks(Talk about running lean).&lt;br /&gt;&lt;br /&gt;I guess that somewhere along the life of this company somebody emailed some confidential information to someone they shouldn't have and that is how the two networks were born.  Having two completely separate networks introduces so many non-lean scenarios to be dealt with that it is almost humorous.  Here are a few of my favorite:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Two email servers, one internal and one external&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Two Domain Controllers&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Constant forms being filled out with approval signatures for transferring files from one network to the other&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;No VPN access to work, lots of late night trips to work to fix things that are very simple&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Fiber run to the desktop for all external computers - people are smart enough to move cables otherwise&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Disabling of all USB ports and CD ROM drives. You wouldn't want an employee to have the power to plug in a pen drive from home or burn a CD with confidential information on it.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;No cell phones on the production floor.  You never know if the cell phone has a camera!&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;It is such a sad environment to work in and I am so glad that I am moving on to bigger and better things.  It is an amazing thing to watch an entire company work harder not smarter.  My question was always what prevents people from printing confidential information?  Would people really ever try to hack into the external company network?  If a competitor really wanted your trade secrets wouldn't they just get a spy hired?&lt;br /&gt;&lt;br /&gt;I totally understand the need for safe guarding of trade secrets, however it is a sad day when you try to account for the risk through manipulation, fear mongering, and uber restrictive work environments.&lt;br /&gt;&lt;br /&gt;Unfortunately for this company, I have a little too much self-respect to submit to control tactics, restrictive work environments and a over lack of understanding and respect for software development. Too bad, so sad&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7244376420421961168-4702996549646578605?l=codevantage.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codevantage.blogspot.com/feeds/4702996549646578605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7244376420421961168&amp;postID=4702996549646578605' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/4702996549646578605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7244376420421961168/posts/default/4702996549646578605'/><link rel='alternate' type='text/html' href='http://codevantage.blogspot.com/2008/05/coding-in-cuba.html' title='Coding In Cuba'/><author><name>Travis Bader</name><uri>http://www.blogger.com/profile/03802751726483453599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hUetSh8VUYM/SCe9nK0c18I/AAAAAAAACFg/-B4gQfl2e-s/s72-c/225px-FidelSmile.jpg' height='72' width='72'/><thr:total>2</thr:total></entry></feed>
