<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Adam.Kahtava.com / AdamDotCom</title>
    <link>http://adam.kahtava.com/journal/</link>
    <description>Software related, code journal, and personal blog.</description>
    <language>en-us</language>
    <copyright>Adam Kahtava</copyright>
    <lastBuildDate>Sun, 13 Jul 2008 18:14:03 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>dasblog@example.com</managingEditor>
    <webMaster>dasblog@example.com</webMaster>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=a9d1f0b5-9787-4919-83ca-69bfbcca1d79</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,a9d1f0b5-9787-4919-83ca-69bfbcca1d79.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,a9d1f0b5-9787-4919-83ca-69bfbcca1d79.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=a9d1f0b5-9787-4919-83ca-69bfbcca1d79</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Generalization like rumors usually have
some truth to them – at some point, someone formed a thought around a frequently observed
piece of truth and… Viola! A generalization was born (or maybe a rumor). Generalizations
are incorrect for every single possible case (the exceptions), but there is truth
to them. 
<br /><br />
That’s my disclaimer; now let’s have fun with generalizations.<br /><br /><b>The Software Evangelist</b><br /><br />
The epitome of an Evangelist can be observed on Sunday morning TV:<br /><blockquote><i>"SHEBBA-WABBA-MULLA-MONEY-POWER-BOOYACKA-POW-BOW!!!!"</i><br /></blockquote>A congregation frying like bacon on the floor (being moved by spirits),
800 numbers requesting money seared into your TV set, and an Evangelist at the helm
orchestrating the show. 
<br /><br />
Evangelists are a great source of inspiration, excellent communicators, and great
leaders. However, they often present a one sided biased opinion, a narrow focus, and
can be driven by ulterior motives (money, power, viewership, readership, etc). 
Listen to any Evangelists with a grain of salt.<br /><br /><b>Rock Star Developers</b><br /><br />
Rock Stars are on MTV, and featured in tabloids - they live hard and die young.  
<br /><br />
The lyrics of Great Big White describe the life of a rock star:<br /><blockquote><div style="float: right;"><object width="200" height="162"><param name="movie" value="http://www.youtube.com/v/ydsuqDwaooc&amp;hl=en&amp;fs=1" /><param name="allowFullScreen" value="true" /><embed src="http://www.youtube.com/v/ydsuqDwaooc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="200" height="162"></embed></object></div><i>Well I'm a wasted rock ranger</i><br /><i>I live the life of danger</i><br /><i>On the road to find a higher high</i><br /><i>I don't need no one's affection</i><br /><i>All I need is my injection</i><br /><i>The music of wild rock will get me by</i><br /></blockquote>Some companies seek out "Rock Star Developers", here’s an excerpt from
an email I received:<br /><blockquote><i>are you a Rock Star? I have an opportunity for a rock star … I am reaching
out to you in the hopes that you might the star I and the client are looking for!<br /></i></blockquote><p>
So, what is a Rock Star Developer? My perception is a: narcissistic, self-centered,
prima donna – someone who doesn’t work well in a team, doesn’t listen, does whatever
they want, and lacks dependability. Hiring a Rock Star Developer probably isn’t recommended
- unless your organization has a liberal guitar smashing policy, doesn't mind drunken
belligerency, and is run by a one man show.<br /><br /><b>Senior Developers</b><br /><br />
Everyone wants a Senior Developer, but occasionally these developers are more senior
than developers, and certainly not senior developers – often the developer's age (not
experience) determines their title. Studies have shown that a developer with 2 years
experience can perform at the same level as a developer with decades of experience.
Still some Senior Developers have an unexplainable need to let the world know of their
seniority through email signatures, resumes, business cards, LinkedIn profiles, and
so on.
</p><blockquote><i>If you work for 10 years, do you get 10 years of experience or do you
get 1 year of experience 10 times? You have to reflect on your activities to get true
experience. If you make learning a continuous commitment, you’ll get experience. If
you don’t, you won’t, no matter how many years you have under your belt. - Steve McConnell, <a href="http://www.amazon.ca/dp/0735619670/">Code
Complete 2nd Edition</a><br /></i></blockquote><p><b>Software Architects</b><br /><br />
Software Architects can be glorified Senior Developers - an architect might be a developer
who is senior (like a curmudgeon with a walker) that needed a new title.<br /><br /><b>Thoughts on generalizations:</b><br /><br />
There are two sides to these generalizations, the people who claim to be, and the
people who are. The people who claim that they’re a Senior Developer are usually impostors,
whereas the person who is a Senior Developer is collectively regarded as one by their
peers.<br /><br />
Generalizations (like metaphors) are communication mechanisms, sure, there are edge
cases and exceptions. Occasionally I encounter aversions to generalizations. Responses
like: <i>"Hey that’s not completely true, X,Y,Z disproves that"</i>, or <em>"Naw...
that’s just incorrect"</em> seem to be made when we forget that we’re just using generalizations.
</p><p><strong>What generalizations stick out in your mind?</strong></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=a9d1f0b5-9787-4919-83ca-69bfbcca1d79" /></body>
      <title>Gross Generalizations: Software Evangelists, Rock Star Developers, Senior Developers, and Software Architects</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,a9d1f0b5-9787-4919-83ca-69bfbcca1d79.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/07/13/GrossGeneralizationsSoftwareEvangelistsRockStarDevelopersSeniorDevelopersAndSoftwareArchitects.aspx</link>
      <pubDate>Sun, 13 Jul 2008 18:14:03 GMT</pubDate>
      <description>Generalization like rumors usually have some truth to them – at some point, someone formed a thought around a frequently observed piece of truth and… Viola! A generalization was born (or maybe a rumor). Generalizations are incorrect for every single possible case (the exceptions), but there is truth to them. &lt;br&gt;
&lt;br&gt;
That’s my disclaimer; now let’s have fun with generalizations.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;The Software Evangelist&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
The epitome of an Evangelist can be observed on Sunday morning TV:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;"SHEBBA-WABBA-MULLA-MONEY-POWER-BOOYACKA-POW-BOW!!!!"&lt;/i&gt;
&lt;br&gt;
&lt;/blockquote&gt;A congregation frying like bacon on the floor (being moved by spirits),
800 numbers requesting money seared into your TV set, and an Evangelist at the helm
orchestrating the show. 
&lt;br&gt;
&lt;br&gt;
Evangelists are a great source of inspiration, excellent communicators, and great
leaders. However, they often present a one sided biased opinion, a narrow focus, and
can be driven by ulterior motives (money, power, viewership, readership, etc).&amp;nbsp;
Listen to any Evangelists with a grain of salt.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Rock Star Developers&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Rock Stars are on MTV, and featured in tabloids - they live hard and die young.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
The lyrics of Great Big White describe the life of a rock star:&lt;br&gt;
&lt;blockquote&gt;
&lt;div style="float: right;"&gt;
&lt;object width="200" height="162"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/ydsuqDwaooc&amp;amp;hl=en&amp;amp;fs=1"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;embed src="http://www.youtube.com/v/ydsuqDwaooc&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="200" height="162"&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;i&gt;Well I'm a wasted rock ranger&lt;/i&gt;
&lt;br&gt;
&lt;i&gt;I live the life of danger&lt;/i&gt;
&lt;br&gt;
&lt;i&gt;On the road to find a higher high&lt;/i&gt;
&lt;br&gt;
&lt;i&gt;I don't need no one's affection&lt;/i&gt;
&lt;br&gt;
&lt;i&gt;All I need is my injection&lt;/i&gt;
&lt;br&gt;
&lt;i&gt;The music of wild rock will get me by&lt;/i&gt;
&lt;br&gt;
&lt;/blockquote&gt;Some companies seek out "Rock Star Developers", here’s an excerpt from
an email I received:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;are you a Rock Star? I have an opportunity for a rock star … I am reaching
out to you in the hopes that you might the star I and the client are looking for!&lt;br&gt;
&lt;/i&gt;&lt;/blockquote&gt; 
&lt;p&gt;
So, what is a Rock Star Developer? My perception is a: narcissistic, self-centered,
prima donna – someone who doesn’t work well in a team, doesn’t listen, does whatever
they want, and lacks dependability. Hiring a Rock Star Developer probably isn’t recommended
- unless your organization has a liberal guitar smashing policy, doesn't mind drunken
belligerency, and is run by a one man show.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Senior Developers&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Everyone wants a Senior Developer, but occasionally these developers are more senior
than developers, and certainly not senior developers – often the developer's age (not
experience) determines their title. Studies have shown that a developer with 2 years
experience can perform at the same level as&amp;nbsp;a developer with decades of experience.
Still some Senior Developers have an unexplainable need to let the world know of their
seniority through email signatures, resumes, business cards, LinkedIn profiles, and
so on.
&lt;/p&gt;
&lt;blockquote&gt;&lt;i&gt;If you work for 10 years, do you get 10 years of experience or do you
get 1 year of experience 10 times? You have to reflect on your activities to get true
experience. If you make learning a continuous commitment, you’ll get experience. If
you don’t, you won’t, no matter how many years you have under your belt. - Steve McConnell, &lt;a href="http://www.amazon.ca/dp/0735619670/"&gt;Code
Complete 2nd Edition&lt;/a&gt;
&lt;br&gt;
&lt;/i&gt;&lt;/blockquote&gt;
&lt;p&gt;
&lt;b&gt;Software Architects&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Software Architects can be glorified Senior Developers - an architect might be a&amp;nbsp;developer
who is senior (like a curmudgeon with a walker) that needed a new&amp;nbsp;title.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Thoughts on generalizations:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
There are two sides to these generalizations, the people who claim to be, and the
people who are. The people who claim that they’re a Senior Developer are usually impostors,
whereas the person who is a Senior Developer is collectively regarded as one by their
peers.&lt;br&gt;
&lt;br&gt;
Generalizations (like metaphors) are communication mechanisms, sure, there are edge
cases and exceptions. Occasionally I encounter aversions to generalizations. Responses
like: &lt;i&gt;"Hey that’s not completely true, X,Y,Z disproves that"&lt;/i&gt;, or &lt;em&gt;"Naw...
that’s just incorrect"&lt;/em&gt; seem to be made when we forget that we’re just using generalizations.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What generalizations stick out in your mind?&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=a9d1f0b5-9787-4919-83ca-69bfbcca1d79" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,a9d1f0b5-9787-4919-83ca-69bfbcca1d79.aspx</comments>
      <category>Musings</category>
      <category>Team Work</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=5b5f291f-0ef2-4b1f-b219-093e41b8a74d</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,5b5f291f-0ef2-4b1f-b219-093e41b8a74d.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,5b5f291f-0ef2-4b1f-b219-093e41b8a74d.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=5b5f291f-0ef2-4b1f-b219-093e41b8a74d</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="float: right;">
          <img src="http://ecx.images-amazon.com/images/I/51QQidWjIQL._SL500_BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" />
        </div>
Summer is finally here! Well... <i>"here"</i> as in, <i>"here in Canada"</i> where
we have 8 months of winter, fall, and spring...<br /><br /><b>This summer I hope to finish up the following books:</b><br /><ul><li><a href="http://www.amazon.com/dp/1932394907/">Windows PowerShell in Action</a> - <i><a href="http://en.wikipedia.org/wiki/Powershell">PowerShell</a> is
a shell scripting language for Windows. I’m a command line / keyboard junkie, and
I’m hoping PowerShell can further automate some of my day to day tasks inside Windows.</i></li><li><a href="http://www.amazon.com/dp/0321125215/">Domain-Driven Design: Tackling Complexity
in the Heart of Software</a><i>- From what I’ve read so far, this book is great.
I’m also reading this for the <a href="http://groups.google.com/group/edmonton-computer-book-club">Edmonton
Computer Book Club</a>.</i></li><li><a temp_href="http://www.amazon.com/dp/0977213315/ " href="http://www.amazon.com/dp/0977213315/%20">Software
Creativity 2.0</a><i>- I’m a Robert Glass Fan boy (I'll read anything he writes).
I've had this book on my must read list for a while now.</i></li><li><a href="http://www.amazon.com/dp/0735623066/">Inside Windows Communication Foundation</a><i> -
I make use of <a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation">WCF</a> every
day, and would like to learn more about the unknown nooks and crannies that lie within.</i></li><li><a href="http://www.amazon.com/dp/0596516177/">The Ruby Programming Language</a><i>-
An amazing book (it even has illustrations). The Ruby language is fascinating, terse,
and elegant, I’m curious to see how I can make use of Ruby in .NET since <a href="http://www.ironruby.net/">IronRuby</a> has
been released. This book also happens to be fun to read.<br /></i></li><li><a href="http://www.amazon.com/dp/B0019OUX6M/">A Random Walk Down Wall Street</a><i>-
I'm trying to brush up on how to make better investments. The author starts off by
telling you that most people working in the trading realm are crooks...  :)</i></li></ul>
Books and reading are essential for personal and professional development. The more
you read, the more you understand and the more resources you have to fall back on.<br /><b><br />
What books are you reading this summer? Do you have any recommendations?<br /></b><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=5b5f291f-0ef2-4b1f-b219-093e41b8a74d" /></body>
      <title>2008 Summer Reading List: What Are You Reading?</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,5b5f291f-0ef2-4b1f-b219-093e41b8a74d.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/07/01/2008SummerReadingListWhatAreYouReading.aspx</link>
      <pubDate>Tue, 01 Jul 2008 18:04:05 GMT</pubDate>
      <description>&lt;div style="float: right;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51QQidWjIQL._SL500_BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg"&gt;
&lt;/div&gt;
Summer is finally here! Well... &lt;i&gt;"here"&lt;/i&gt; as in, &lt;i&gt;"here in Canada"&lt;/i&gt; where
we have 8 months of winter, fall, and spring...&lt;br&gt;
&lt;br&gt;
&lt;b&gt;This summer I hope to finish up the following books:&lt;/b&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/dp/1932394907/"&gt;Windows PowerShell in Action&lt;/a&gt; - &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Powershell"&gt;PowerShell&lt;/a&gt; is
a shell scripting language for Windows. I’m a command line / keyboard junkie, and
I’m hoping PowerShell can further automate some of my day to day tasks inside Windows.&lt;/i&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/dp/0321125215/"&gt;Domain-Driven Design: Tackling Complexity
in the Heart of Software&lt;/a&gt; &lt;i&gt;- From what I’ve read so far, this book is great.
I’m also reading this for the &lt;a href="http://groups.google.com/group/edmonton-computer-book-club"&gt;Edmonton
Computer Book Club&lt;/a&gt;.&lt;/i&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a temp_href="http://www.amazon.com/dp/0977213315/ " href="http://www.amazon.com/dp/0977213315/%20"&gt;Software
Creativity 2.0&lt;/a&gt; &lt;i&gt;- I’m a Robert Glass Fan boy (I'll read anything he writes).
I've had this book on my must read list for a while now.&lt;/i&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/dp/0735623066/"&gt;Inside Windows Communication Foundation&lt;/a&gt;&lt;i&gt; -
I make use of &lt;a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation"&gt;WCF&lt;/a&gt; every
day, and would like to learn more about the unknown nooks and crannies that lie within.&lt;/i&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/dp/0596516177/"&gt;The Ruby Programming Language&lt;/a&gt; &lt;i&gt;-
An amazing book (it even has illustrations). The Ruby language is fascinating, terse,
and elegant, I’m curious to see how I can make use of Ruby in .NET since &lt;a href="http://www.ironruby.net/"&gt;IronRuby&lt;/a&gt; has
been released. This book also happens to be fun to read.&lt;br&gt;
&lt;/i&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/dp/B0019OUX6M/"&gt;A Random Walk Down Wall Street&lt;/a&gt; &lt;i&gt;-
I'm trying to brush up on how to make better investments. The author starts off by
telling you that most people working in the trading realm are crooks...&amp;nbsp; :)&lt;/i&gt;
&lt;/li&gt;
&lt;/ul&gt;
Books and reading are essential for personal and professional development. The more
you read, the more you understand and the more resources you have to fall back on.&lt;br&gt;
&lt;b&gt;
&lt;br&gt;
What books are you reading this summer? Do you have any recommendations?&lt;br&gt;
&lt;/b&gt;&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=5b5f291f-0ef2-4b1f-b219-093e41b8a74d" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,5b5f291f-0ef2-4b1f-b219-093e41b8a74d.aspx</comments>
      <category>Book</category>
      <category>Musings</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=da7b4fe1-5fbb-48ec-aef2-f756660e5cb6</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,da7b4fe1-5fbb-48ec-aef2-f756660e5cb6.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,da7b4fe1-5fbb-48ec-aef2-f756660e5cb6.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=da7b4fe1-5fbb-48ec-aef2-f756660e5cb6</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="border: 1px solid rgb(200, 200, 200); margin: 5px; padding: 5px; float: right; width: 400px;">
          <img src="http://adam.kahtava.com/journal/images/blog/Adams-Desktop-Dual-Monitors.jpg" />
          <br />
          <i>In this picture: My <a href="http://en.wikipedia.org/wiki/Charles_Babbage">Charles
Babbage</a> mug, books: Domain Driven Design, the Ruby Programming Language, the Definitive
Guide to JavaScript, my <a href="http://www.evoluent.com/vm3.html">Evoluent VerticalMouse</a>,
and lots of Red Rain empties.</i>
          <br />
        </div>
One of my biggest pet peeves is trying to efficiently complete development work on
a slow machine. In my mind, <b>trying to work quickly on a slow computer is like asking
a marathon runner to wear <a href="http://en.wikipedia.org/wiki/Snowshoe">snowshoes</a> then
demanding they WIN the marathon.</b> What ensues, is painful for the runner, painful
for all who watch, and reaching the end goal feels impossible - bottom line good equipment
matters. However, many client's overlook the relationship between <i>getting stuff
done</i> and a slow machine, or they don't care, or they can't do anything about it.<i><br /><br />
Maybe they find it thrilling (in some sick way) to watch your soul fizzle away as
you spend 300 minutes a day compiling your application (or running your tests). :)</i><br /><br />
In great organizations slow machines aren't an issue. According to the <a href="http://www.codinghorror.com/blog/archives/000666.html">The
Programmer's Bill of Rights</a>: <i>"Every programmer shall have a fast PC"</i>, and
from the <a href="http://www.joelonsoftware.com/articles/fog0000000043.html">Joel
Test</a>: <i>"[Organizations should] use the best tools money can buy?"</i><b>But
reality is often a different beast, and in my experience you have to make the changes
you want (or <i>"be the change you want to see..." - <a href="http://en.wikipedia.org/wiki/Mahatma_Gandhi">Gandhi</a></i>). </b><br /><br /><i>I'm sure in Silicon Valley, good computers would be mandatory for most organization,
but I live in Canada - we suffer through black flies, mosquitoes, 8 months of winter,
and organizations with poor resources. :) Did you know that Canada's population is
roughly equivalent to the population of the state of California alone!?</i><br /><br />
Anyhow, I started working from home full-time this year - up to this point most of
my work has been done onsite using whatever machine the client provided (some with
outdated hardware). <b>My home desktop was a six year old PC that would make Frankenstein
look sexy - it was a collection of old and new parts</b>. Since, I do most of my work
in <a href="http://en.wikipedia.org/wiki/Virtual_machine">Virtual Machines</a> (I
typically have three VMs running) performance is absolutely critical. After spending
a month working on my dinosaur of a machine, it was clear I needed a new computer.<i><br /><br />
Leave me a comment requesting the details, and I'll happily bore you with the technical
specs of my old machine including a story of where I acquired each component. :)</i><br /><br />
I based my specs on <a href="http://www.codinghorror.com/blog/">Jeff Atwood's</a> and <a href="http://www.hanselman.com/blog/">Scott
Hanselman's</a> specs for the <a href="http://www.hanselman.com/blog/TheCodingHorrorUltimateDeveloperRigThrowdownPart2.aspx">Ultimate
Developer Rig</a>. The machine turned out to be economical, the prices have come down
significantly since the initial post was published, and to top it all off, I was able
to chop shop my old machine and sell every single part through eBay and Kijiji - for
a surprisingly decent price too (who would have thought a 6 year old Sound blaster
Audigy would sell for $50?).<br /><br /><b>Contrasting my setups:</b><br /><blockquote><table><tbody><tr><td><br /></td><td><b>Then</b></td><td><b>Now</b></td></tr><tr><td>
Processors</td><td>
Two 32bit AMD MP 1.2GHz  </td><td>
Quad Core 64bit 2.4GHz</td></tr><tr><td>
RAM</td><td>
3.5 GB</td><td>
8 GB</td></tr><tr><td>
Monitor(s)</td><td>
A single 17"</td><td>
Two <a href="http://www.amazon.com/dp/B000NBBWNU/">22" Samsung SyncMaster 226BWs</a></td></tr><tr><td>
Personal Pain Points  </td><td>
Excruciatingly painful</td><td>
Occasionally painful (only Vista induced)</td></tr></tbody></table></blockquote> Working on my new machine is enjoyable. I find myself more productive
without being distracted by the frustration of a slow machine, and having dual monitors
also contributes to my productivity (<a href="http://www.codinghorror.com/blog/archives/001076.html">Does
More Than One Monitor Improve Productivity?</a>). My favourite parts of the new setup
are the monitors, the <a href="http://www.ergotron.com/Products/DeskMounts/tabid/71/ctl/Product/mid/396/PRDID/134/language/en-CA/default.aspx">Ergotron
stand</a>, the speed, and the <a href="http://www.antec.com/us/productDetails.php?ProdID=81820">Case</a>.
You really get what you pay for with LCD monitors, the SyncMasters are easy on the
eyes when compared to my old economic Acer, and the case is dead silent.<br /><br /><b>In the future, if I'm provided with a substandard PC, you can expect to see me
hauling my new machine into the office. :)</b><br /><br />
Take a look at my old desktop setup in my older post: <a href="http://adam.kahtava.com/journal/2008/03/08/SomethingAboutTheCobblersChildrenHavingNoShoes.aspx">Something
About the Cobbler's Children Having No Shoes</a><br /><br />
Have you ever had to use an outdated machine as a developer? How does working on a
slow machine effect your work? What are your thoughts on taking matters into your
own hand (like purchasing your own computer to replace the slow one at work)? Have
you ever installed additional resources in the computer you use at work?<br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=da7b4fe1-5fbb-48ec-aef2-f756660e5cb6" /></body>
      <title>Joining The Dual Monitor Club: Getting a New Computer: The Ultimate Developer Rig</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,da7b4fe1-5fbb-48ec-aef2-f756660e5cb6.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/23/JoiningTheDualMonitorClubGettingANewComputerTheUltimateDeveloperRig.aspx</link>
      <pubDate>Mon, 23 Jun 2008 17:17:08 GMT</pubDate>
      <description>&lt;div style="border: 1px solid rgb(200, 200, 200); margin: 5px; padding: 5px; float: right; width: 400px;"&gt;&lt;img src="http://adam.kahtava.com/journal/images/blog/Adams-Desktop-Dual-Monitors.jpg"&gt;
&lt;br&gt;
&lt;i&gt;In this picture: My &lt;a href="http://en.wikipedia.org/wiki/Charles_Babbage"&gt;Charles
Babbage&lt;/a&gt; mug, books: Domain Driven Design, the Ruby Programming Language, the Definitive
Guide to JavaScript, my &lt;a href="http://www.evoluent.com/vm3.html"&gt;Evoluent VerticalMouse&lt;/a&gt;,
and lots of Red Rain empties.&lt;/i&gt;
&lt;br&gt;
&lt;/div&gt;
One of my biggest pet peeves is trying to efficiently complete development work on
a slow machine. In my mind, &lt;b&gt;trying to work quickly on a slow computer is like asking
a marathon runner to wear &lt;a href="http://en.wikipedia.org/wiki/Snowshoe"&gt;snowshoes&lt;/a&gt; then
demanding they WIN the marathon.&lt;/b&gt; What ensues, is painful for the runner, painful
for all who watch, and reaching the end goal feels impossible - bottom line good equipment
matters. However, many client's overlook the relationship between &lt;i&gt;getting stuff
done&lt;/i&gt; and a slow machine, or they don't care, or they can't do anything about it.&lt;i&gt; 
&lt;br&gt;
&lt;br&gt;
Maybe they find it thrilling (in some sick way) to watch your soul fizzle away as
you spend 300 minutes a day compiling your application (or running your tests). :)&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
In great organizations slow machines aren't an issue. According to the &lt;a href="http://www.codinghorror.com/blog/archives/000666.html"&gt;The
Programmer's Bill of Rights&lt;/a&gt;: &lt;i&gt;"Every programmer shall have a fast PC"&lt;/i&gt;, and
from the &lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html"&gt;Joel
Test&lt;/a&gt;: &lt;i&gt;"[Organizations should] use the best tools money can buy?"&lt;/i&gt; &lt;b&gt;But
reality is often a different beast, and in my experience you have to make the changes
you want (or &lt;i&gt;"be the change you want to see..." - &lt;a href="http://en.wikipedia.org/wiki/Mahatma_Gandhi"&gt;Gandhi&lt;/a&gt;&lt;/i&gt;). &lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;i&gt;I'm sure in Silicon Valley, good computers would be mandatory for most organization,
but I live in Canada - we suffer through black flies, mosquitoes, 8 months of winter,
and organizations with poor resources. :) Did you know that Canada's population is
roughly equivalent to the population of the state of California alone!?&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
Anyhow, I started working from home full-time this year - up to this point most of
my work has been done onsite using whatever machine the client provided (some with
outdated hardware). &lt;b&gt;My home desktop was a six year old PC that would make Frankenstein
look sexy - it was a collection of old and new parts&lt;/b&gt;. Since, I do most of my work
in &lt;a href="http://en.wikipedia.org/wiki/Virtual_machine"&gt;Virtual Machines&lt;/a&gt; (I
typically have three VMs running) performance is absolutely critical. After spending
a month working on my dinosaur of a machine, it was clear I needed a new computer.&lt;i&gt; 
&lt;br&gt;
&lt;br&gt;
Leave me a comment requesting the details, and I'll happily bore you with the technical
specs of my old machine including a story of where I acquired each component. :)&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
I based my specs on &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff Atwood's&lt;/a&gt; and &lt;a href="http://www.hanselman.com/blog/"&gt;Scott
Hanselman's&lt;/a&gt; specs for the &lt;a href="http://www.hanselman.com/blog/TheCodingHorrorUltimateDeveloperRigThrowdownPart2.aspx"&gt;Ultimate
Developer Rig&lt;/a&gt;. The machine turned out to be economical, the prices have come down
significantly since the initial post was published, and to top it all off, I was able
to chop shop my old machine and sell every single part through eBay and Kijiji - for
a surprisingly decent price too (who would have thought a 6 year old Sound blaster
Audigy would sell for $50?).&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Contrasting my setups:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;br&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;b&gt;Then&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;
&lt;b&gt;Now&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Processors&lt;/td&gt;
&lt;td&gt;
Two 32bit AMD MP 1.2GHz&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;
Quad Core 64bit 2.4GHz&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
RAM&lt;/td&gt;
&lt;td&gt;
3.5 GB&lt;/td&gt;
&lt;td&gt;
8 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Monitor(s)&lt;/td&gt;
&lt;td&gt;
A single 17"&lt;/td&gt;
&lt;td&gt;
Two &lt;a href="http://www.amazon.com/dp/B000NBBWNU/"&gt;22" Samsung SyncMaster 226BWs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Personal Pain Points&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;
Excruciatingly painful&lt;/td&gt;
&lt;td&gt;
Occasionally painful (only Vista induced)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt; Working on my new machine is enjoyable. I find myself more productive
without being distracted by the frustration of a slow machine, and having dual monitors
also contributes to my productivity (&lt;a href="http://www.codinghorror.com/blog/archives/001076.html"&gt;Does
More Than One Monitor Improve Productivity?&lt;/a&gt;). My favourite parts of the new setup
are the monitors, the &lt;a href="http://www.ergotron.com/Products/DeskMounts/tabid/71/ctl/Product/mid/396/PRDID/134/language/en-CA/default.aspx"&gt;Ergotron
stand&lt;/a&gt;, the speed, and the &lt;a href="http://www.antec.com/us/productDetails.php?ProdID=81820"&gt;Case&lt;/a&gt;.
You really get what you pay for with LCD monitors, the SyncMasters are easy on the
eyes when compared to my old economic Acer, and the case is dead silent.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;In the future, if I'm provided with a substandard PC, you can expect to see me
hauling my new machine into the office. :)&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Take a look at my old desktop setup in my older post: &lt;a href="http://adam.kahtava.com/journal/2008/03/08/SomethingAboutTheCobblersChildrenHavingNoShoes.aspx"&gt;Something
About the Cobbler's Children Having No Shoes&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Have you ever had to use an outdated machine as a developer? How does working on a
slow machine effect your work? What are your thoughts on taking matters into your
own hand (like purchasing your own computer to replace the slow one at work)? Have
you ever installed additional resources in the computer you use at work?&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=da7b4fe1-5fbb-48ec-aef2-f756660e5cb6" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,da7b4fe1-5fbb-48ec-aef2-f756660e5cb6.aspx</comments>
      <category>Musings</category>
      <category>Personal</category>
      <category>Software</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=56e72144-e7aa-48c9-b65c-e4531f61980b</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,56e72144-e7aa-48c9-b65c-e4531f61980b.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,56e72144-e7aa-48c9-b65c-e4531f61980b.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=56e72144-e7aa-48c9-b65c-e4531f61980b</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://farm3.static.flickr.com/2133/2191404675_df9fc55ba5_m.jpg">
          <img src="http://farm3.static.flickr.com/2133/2191404675_df9fc55ba5_m.jpg" style="border: 0px none ; float: right;" />
        </a>I
was asked a series of questions during an interview that I'll never forget.<br /><br />
The interview was at a successful company in the process of growing from a start-up.
They offered a fantastic work environment, the developers had dual 22" LCD monitors,
state of the art machines, fooze ball, and to top it all off, they had a cafeteria
with two gourmet chefs  - I even had lunch there, it really was good food! It
could have been a great place to work, but... the interview left me running for the
door.<br /><br /><b>Some of the unnerving questions:</b><br /><blockquote><i>"Do you smoke? Does anyone in your family smoke?"</i><br /><br />
It turns out that they had a strict no smoking policy written into their contract.
Yup... You had to sign, that you and your family will remain smoke free (including
second-hand smoke) for the duration of your employment.  While I don't think
smoking is smart, and can see some benefits of having an explicit no smoking policy
- still... this question took me off guard.<br /><br /><b>Potential benefits of a strict non-smoking policy:</b><br /><blockquote>More productivity (no cigarette breaks for employees), an odour neutral
working environment, fewer employee sick days, cheaper corporate health insurance,
and it could filter out potential drug users.<br /></blockquote><b>Draw backs:</b><br /><blockquote>Rapport with the interview team was immediately shattered, it's probably
illegal to ask this question in the first place. It was an invasion of privacy (If
you're demanding this, what's next?). It felt very Orwellian (Would they have Big
Brother monitoring us too?), confusing (How can I control second-hand smoke?), and
just weird (Would I be fired if someone planted a pack of cigarettes in my desk?).<br /></blockquote><i>"Do you play video games?"</i><br /><br />
There was another sigh of relief when I answered <i>"No"</i>. I don't play video game
- well... aside from playing Tony Hawk on my classic Play Station every 6 months or
Pong on my cell phone. I have better things to do than play video games, even if it's
doing nothing - like watching the paint peel off my wall (clearing my mind). Besides,
isn't having a computer monitor (or monitors) larger than your CRT TV a requirement
for entering true Geekdom? Seriously though, I've watched family members and friends
drain their lives into video games, as a result I'm not crazy about video games (but
the Wii is fun). This question, like the previous was another negative hit for my
employment prospect.<br /><br /><b>Potential benefits of having non-gamers as developers:</b><br /><blockquote>Better rested and more productive employees (they wouldn't be staying
up all night playing World of Warcraft), fewer sick days, and more focused employees
(web surfing for game tips would not be an issue).<br /></blockquote><b>Draw backs:</b><br /><blockquote>Being a gaming doesn't say anything about your skills as a developer.
I started to get the impression that productivity really matters to this organization.
I felt confused (Why is this so important? Is there something they're not telling
me?), and it was another blow to privacy (Who really cares if your employees play
games?), and a blow to trust (Will I have to answer questions like this everyday?
I'd like to maintain some freedom, what if I decide take up gaming?).<br /></blockquote><i>"Do you have a problem with being at work at 8:30 sharp every morning?"</i><br /><br />
Now scenes from <i>A Clockwork Orange</i> are flashing through my mind - I'm being
strapped in a chair, eyes pried open, hands chained to a keyboard, I'm being interrogated
on the events of last evening, followed by a nicotine breathalyzer. OK... they didn't
embrace flextime. This organization was not a good cultural fit, too many weird questions,
interview was officially over in my mind.<br /><br /><b>Potential benefits of a regimented routine:</b><br /><blockquote>Uhmm... I guess, you know when your employees should be at work.<br /></blockquote><b>Draw backs:</b><br /><blockquote>Going to work could feel like tree planting / boot camp / the army, demanding
rigid hours could imply a lack of trust in your employees, demands like this would
certainly engender turnover, and companies with high turnover are bad places to work
(<a href="http://adam.kahtava.com/journal/2007/05/07/NotesOnTheHiddenCostOfTurnoverFromPeoplewareProductivityProjectsAndTeams.aspx">there's
a cost for turnover</a>).<br /></blockquote></blockquote>Some smaller companies might like to know their candidate
at this level, and if that's the case then take them out for a couple drinks or dinner
- try to learn these questions, don't outright ask them. Questions like these might
hurt the reputation of your organization, after this interview I was resisting the
urge to run for the door, and since then they've asked me to recommend potential candidates.<br /><br />
What kind of interesting interview questions have you been asked in the past?<br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=56e72144-e7aa-48c9-b65c-e4531f61980b" /></body>
      <title>Strange Interview Questions === No Job</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,56e72144-e7aa-48c9-b65c-e4531f61980b.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/18/StrangeInterviewQuestionsNoJob.aspx</link>
      <pubDate>Wed, 18 Jun 2008 22:11:46 GMT</pubDate>
      <description>&lt;a href="http://farm3.static.flickr.com/2133/2191404675_df9fc55ba5_m.jpg"&gt;&lt;img src="http://farm3.static.flickr.com/2133/2191404675_df9fc55ba5_m.jpg" style="border: 0px none ; float: right;"&gt;&lt;/a&gt;I
was asked a series of questions during an interview that I'll never forget.&lt;br&gt;
&lt;br&gt;
The interview was at a successful company in the process of growing from a start-up.
They offered a fantastic work environment, the developers had dual 22" LCD monitors,
state of the art machines, fooze ball, and to top it all off, they had a cafeteria
with two gourmet chefs&amp;nbsp; - I even had lunch there, it really was good food! It
could have been a great place to work, but... the interview left me running for the
door.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Some of the unnerving questions:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;"Do you smoke? Does anyone in your family smoke?"&lt;/i&gt; 
&lt;br&gt;
&lt;br&gt;
It turns out that they had a strict no smoking policy written into their contract.
Yup... You had to sign, that you and your family will remain smoke free (including
second-hand smoke) for the duration of your employment.&amp;nbsp; While I don't think
smoking is smart, and can see some benefits of having an explicit no smoking policy
- still... this question took me off guard.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Potential benefits of a strict non-smoking policy:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;More productivity (no cigarette breaks for employees), an odour neutral
working environment, fewer employee sick days, cheaper corporate health insurance,
and it could filter out potential drug users.&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;Draw backs:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;Rapport with the interview team was immediately shattered, it's probably
illegal to ask this question in the first place. It was an invasion of privacy (If
you're demanding this, what's next?). It felt very Orwellian (Would they have Big
Brother monitoring us too?), confusing (How can I control second-hand smoke?), and
just weird (Would I be fired if someone planted a pack of cigarettes in my desk?).&lt;br&gt;
&lt;/blockquote&gt;&lt;i&gt;"Do you play video games?"&lt;/i&gt; 
&lt;br&gt;
&lt;br&gt;
There was another sigh of relief when I answered &lt;i&gt;"No"&lt;/i&gt;. I don't play video game
- well... aside from playing Tony Hawk on my classic Play Station every 6 months or
Pong on my cell phone. I have better things to do than play video games, even if it's
doing nothing - like watching the paint peel off my wall (clearing my mind). Besides,
isn't having a computer monitor (or monitors) larger than your CRT TV a requirement
for entering true Geekdom? Seriously though, I've watched family members and friends
drain their lives into video games, as a result I'm not crazy about video games (but
the Wii is fun). This question, like the previous was another negative hit for my
employment prospect.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Potential benefits of having non-gamers as developers:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;Better rested and more productive employees (they wouldn't be staying
up all night playing World of Warcraft), fewer sick days, and more focused employees
(web surfing for game tips would not be an issue).&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;Draw backs:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;Being a gaming doesn't say anything about your skills as a developer.
I started to get the impression that productivity really matters to this organization.
I felt confused (Why is this so important? Is there something they're not telling
me?), and it was another blow to privacy (Who really cares if your employees play
games?), and a blow to trust (Will I have to answer questions like this everyday?
I'd like to maintain some freedom, what if I decide take up gaming?).&lt;br&gt;
&lt;/blockquote&gt;&lt;i&gt;"Do you have a problem with being at work at 8:30 sharp every morning?"&lt;/i&gt; 
&lt;br&gt;
&lt;br&gt;
Now scenes from &lt;i&gt;A Clockwork Orange&lt;/i&gt; are flashing through my mind - I'm being
strapped in a chair, eyes pried open, hands chained to a keyboard, I'm being interrogated
on the events of last evening, followed by a nicotine breathalyzer. OK... they didn't
embrace flextime. This organization was not a good cultural fit, too many weird questions,
interview was officially over in my mind.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Potential benefits of a regimented routine:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;Uhmm... I guess, you know when your employees should be at work.&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;Draw backs:&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;Going to work could feel like tree planting / boot camp / the army, demanding
rigid hours could imply a lack of trust in your employees, demands like this would
certainly engender turnover, and companies with high turnover are bad places to work
(&lt;a href="http://adam.kahtava.com/journal/2007/05/07/NotesOnTheHiddenCostOfTurnoverFromPeoplewareProductivityProjectsAndTeams.aspx"&gt;there's
a cost for turnover&lt;/a&gt;).&lt;br&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt;Some smaller companies might like to know their candidate
at this level, and if that's the case then take them out for a couple drinks or dinner
- try to learn these questions, don't outright ask them. Questions like these might
hurt the reputation of your organization, after this interview I was resisting the
urge to run for the door, and since then they've asked me to recommend potential candidates.&lt;br&gt;
&lt;br&gt;
What kind of interesting interview questions have you been asked in the past?&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=56e72144-e7aa-48c9-b65c-e4531f61980b" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,56e72144-e7aa-48c9-b65c-e4531f61980b.aspx</comments>
      <category>Interview</category>
      <category>Musings</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=f8afb754-90dc-4231-8ee7-94be1b9c19c1</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,f8afb754-90dc-4231-8ee7-94be1b9c19c1.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,f8afb754-90dc-4231-8ee7-94be1b9c19c1.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=f8afb754-90dc-4231-8ee7-94be1b9c19c1</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://farm4.static.flickr.com/3032/2560405008_f4afc06eee_m.jpg">
          <img src="http://farm4.static.flickr.com/3032/2560405008_f4afc06eee_m.jpg" style="border: 0px none ; float: right;" />
        </a>
        <a href="http://barcamp.org/BarCampCalgary">#CalgaryBarCamp</a> was
swell. It was refreshing to meet such a diverse group of like minded people that all
essentially do the same thing (create software), but do it in different ways using
different tools, platforms, and languages. The ad-hoc discussions both in the bar
and between sessions were my highlight. A reoccurring theme in our conversations was
that technology, tools, and platforms don't matter that much. <b>What really matters
is: people, communication, ideas, taking risks, and motivation.</b><br /><br />
The topic of our discussions reminded me of something David Heinemeier Hansson said
when talking about software development:<br /><blockquote><i>"You don't need to be a f***ing genius to make any of this stuff work,
it's not rocket surgery!"</i> - <a href="http://omnisio.com/startupschool08/david-heinemeier-hansson-at-startup-school-08">David
Heinemeier Hansson at Startup School 08 </a><br /></blockquote>DeMarco and Lister also echoed this outlook back in the 80's, and publicized:
the High-Tech Illusion:<br /><blockquote><i>the High-Tech Illusion: [is] the widely held conviction among people
who deal with any aspect of new technology ... that they are in ... high-tech business.
[These people] are indulging in this illusion whenever they find themselves explaining
at a ... party, say, that that they are "in computers" ... The implication is that
they are part of the high-tech world. [These people] usually aren't. <b>The researchers
who made the fundamental breakthroughs in those areas are in the high-tech business.
The rest of us are appliers of their work.</b></i> - <a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=adamkahtavaap-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0932633439">Peopleware
: Productive Projects and Teams</a><br /></blockquote>If we <u>were</u> in the High-Tech business, then we'd be the bottom
feeders (the parasites, the grunts), because our daily activities revolve around consuming
other peoples research and work (programming languages, platforms, frameworks and
the like). <b>We are consumers, we're not on the cutting edge nor are we in the high-tech
world.</b><br /><br />
Perhaps building software could be much like outfitting yourself for a day in the
snow. You head off to the local shopping mall, you acquire the functional items to
keep yourself warm, but brands and store choice don't really matter. Whether we're
buying winter boots or choosing a programming language, technology doesn't really
matter. There are an infinite number of ways to solve any problem, as well as an infinite
number of technical permutations to form a solution. If we can solve the problem within
the constraints of our problem domain then we've succeeded.<br /><br />
The High-Tech Illusion often permeates my world - I work as a Web Developer in the
Microsoft realm. I continually see the High-Tech Illusion manifests itself in these
situations: 
<br /><ul><li>
Colleagues talking in vague opaque high-level metaphors that patronizingly shield
you from the inter working of what they assume is beyond your comprehension</li><li>
Fixations on specific tools, hardware, platforms, and methodologies while the problem
that needs to be solved is diluted and any combination of these items could solve
the problem</li><li>
Colleagues that assume superiority and can't acknowledge that knowledge is acquired
through research and a continual efforts to improve</li></ul>
Pretentiousness in the software realm (in teams, organization, and so on) is usually
the byproduct of someone that's living the High-Tech Illusion.<br /><br />
I've been guilty of subscribing to the High-Tech Illusion. How does the High-Tech
Illusion permeate your world? How can we get back to reality?<br /><br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=f8afb754-90dc-4231-8ee7-94be1b9c19c1" /></body>
      <title>Living The High-tech Illusion: Software Development is Not Rocket Surgery </title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,f8afb754-90dc-4231-8ee7-94be1b9c19c1.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/15/LivingTheHightechIllusionSoftwareDevelopmentIsNotRocketSurgery.aspx</link>
      <pubDate>Sun, 15 Jun 2008 19:50:02 GMT</pubDate>
      <description>&lt;a href="http://farm4.static.flickr.com/3032/2560405008_f4afc06eee_m.jpg"&gt;&lt;img src="http://farm4.static.flickr.com/3032/2560405008_f4afc06eee_m.jpg" style="border: 0px none ; float: right;"&gt;&lt;/a&gt;&lt;a href="http://barcamp.org/BarCampCalgary"&gt;#CalgaryBarCamp&lt;/a&gt; was
swell. It was refreshing to meet such a diverse group of like minded people that all
essentially do the same thing (create software), but do it in different ways using
different tools, platforms, and languages. The ad-hoc discussions both in the bar
and between sessions were my highlight. A reoccurring theme in our conversations was
that technology, tools, and platforms don't matter that much. &lt;b&gt;What really matters
is: people, communication, ideas, taking risks, and motivation.&lt;/b&gt; 
&lt;br&gt;
&lt;br&gt;
The topic of our discussions reminded me of something David Heinemeier Hansson said
when talking about software development:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;"You don't need to be a f***ing genius to make any of this stuff work,
it's not rocket surgery!"&lt;/i&gt; - &lt;a href="http://omnisio.com/startupschool08/david-heinemeier-hansson-at-startup-school-08"&gt;David
Heinemeier Hansson at Startup School 08 &lt;/a&gt;
&lt;br&gt;
&lt;/blockquote&gt;DeMarco and Lister also echoed this outlook back in the 80's, and publicized:
the High-Tech Illusion:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;the High-Tech Illusion: [is] the widely held conviction among people
who deal with any aspect of new technology ... that they are in ... high-tech business.
[These people] are indulging in this illusion whenever they find themselves explaining
at a ... party, say, that that they are "in computers" ... The implication is that
they are part of the high-tech world. [These people] usually aren't. &lt;b&gt;The researchers
who made the fundamental breakthroughs in those areas are in the high-tech business.
The rest of us are appliers of their work.&lt;/b&gt;&lt;/i&gt; - &lt;a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;amp;tag=adamkahtavaap-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0932633439"&gt;Peopleware
: Productive Projects and Teams&lt;/a&gt;
&lt;br&gt;
&lt;/blockquote&gt;If we &lt;u&gt;were&lt;/u&gt; in the High-Tech business, then we'd be the bottom
feeders (the parasites, the grunts), because our daily activities revolve around consuming
other peoples research and work (programming languages, platforms, frameworks and
the like). &lt;b&gt;We are consumers, we're not on the cutting edge nor are we in the high-tech
world.&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Perhaps building software could be much like outfitting yourself for a day in the
snow. You head off to the local shopping mall, you acquire the functional items to
keep yourself warm, but brands and store choice don't really matter. Whether we're
buying winter boots or choosing a programming language, technology doesn't really
matter. There are an infinite number of ways to solve any problem, as well as an infinite
number of technical permutations to form a solution. If we can solve the problem within
the constraints of our problem domain then we've succeeded.&lt;br&gt;
&lt;br&gt;
The High-Tech Illusion often permeates my world - I work as a Web Developer in the
Microsoft realm. I continually see the High-Tech Illusion manifests itself in these
situations: 
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Colleagues talking in vague opaque high-level metaphors that patronizingly shield
you from the inter working of what they assume is beyond your comprehension&lt;/li&gt;
&lt;li&gt;
Fixations on specific tools, hardware, platforms, and methodologies while the problem
that needs to be solved is diluted and any combination of these items could solve
the problem&lt;/li&gt;
&lt;li&gt;
Colleagues that assume superiority and can't acknowledge that knowledge is acquired
through research and a continual efforts to improve&lt;/li&gt;
&lt;/ul&gt;
Pretentiousness in the software realm (in teams, organization, and so on) is usually
the byproduct of someone that's living the High-Tech Illusion.&lt;br&gt;
&lt;br&gt;
I've been guilty of subscribing to the High-Tech Illusion. How does the High-Tech
Illusion permeate your world? How can we get back to reality?&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=f8afb754-90dc-4231-8ee7-94be1b9c19c1" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,f8afb754-90dc-4231-8ee7-94be1b9c19c1.aspx</comments>
      <category>BarCamp</category>
      <category>Calgary</category>
      <category>Community</category>
      <category>Musings</category>
      <category>Programming Languages</category>
      <category>Software</category>
      <category>Team Work</category>
      <category>Videos</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=291b1c53-14dd-46d6-8f6c-792250d4c998</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,291b1c53-14dd-46d6-8f6c-792250d4c998.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,291b1c53-14dd-46d6-8f6c-792250d4c998.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=291b1c53-14dd-46d6-8f6c-792250d4c998</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="BORDER-RIGHT: rgb(200,200,200) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(200,200,200) 1px solid; PADDING-LEFT: 5px; FLOAT: right; PADDING-BOTTOM: 5px; MARGIN: 5px; BORDER-LEFT: rgb(200,200,200) 1px solid; WIDTH: 150px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(200,200,200) 1px solid; TEXT-ALIGN: center">
          <p>
            <img src="http://adam.kahtava.com/Journal/Images/Blog/Geek-Adam-Kahtava.jpg" />
            <br />
Ahh yes, the bowl cut. Simple to maintain, keeps the cold off the brain.
</p>
          <p>
Me around age 12, and not much has changed. :)
</p>
        </div>
Maggie Longshore (tweet: <a href="http://twitter.com/MaggiePlusPlus">MaggiePlusPlus</a>)
posted her <a href="http://maggieplusplus.com/2008/06/09/How+I+Got+Started+In+Programming.aspx">response</a> to
Michael Eaton's (tweet: <a href="http://twitter.com/mjeaton">mjeaton</a>) initial
post on: <a href="http://michaeleatonconsulting.com/blog/archive/2008/06/04/how-did-you-get-started-in-software-development.aspx">How
did you get started in software development?</a> I had fun reading the other contributions
so here mine...<br /><br /><b>How old were you when you started programming?</b><br /><br />
Somewhere around the age of 8 or 9.<br /><br /><b>How did you get started in programming? What was your first language?</b><br /><br />
My dad went to College for robotics when I was around 8 years old, so he was really
into programming (programming robots) and we worked through a book on the BASIC programming
language. After that I continued to mess around with BASIC and wrote scripts so I
could get at my favourite games. Later I was frequenting BBS's, and surfing the internet
through a text based browser. I eventually became a <a href="http://en.wikipedia.org/wiki/Script_kiddie">Script
kiddie</a> - in retrospect, being a Script kiddie was what really turned me on to
programming. My friends and I would write our own IRC war scripts take over local
channels, we'd play <a href="http://en.wikipedia.org/wiki/Muds">MUDs</a> late into
the nights, and try to figure out how Trumpet Winsock, networks, mIRC, and HTML worked
- those were the days of Netscape 1 (the version with the big glowing 'N'). Later
we tried writing our own version of <a href="http://en.wikipedia.org/wiki/Netbus">NetBus</a> with
the help of C / C++ programmers on IRC channels - the fragments of the C language
these programmers shared with us were magical, they really sparked an interest in
programming. In addition to all this my dad kept a constant supply of computer parts
funneling into our house, my brothers and I would build computers from the parts -
today my closest brother is a Linux guru, evidently all this sparked his interest
too. 
<br /><br />
I've digressed, short story, programming has always been a part of my life, BASIC
was my first language.<br /><br /><b>What was the first real program you wrote?</b><br /><br />
I followed a couple game tutorials in my BASIC books, but my first real program would
have been Pacman in Turing - in my final year of high school I enrolled in a
computer course, where the instructor let us choose our own adventure I chose to write
a game.<br /><br /><b>What languages have you used since you started programming?</b><br /><br />
BASIC, Turing, Pascal, Assembly, COBOL, C, C++, LISP, Java, JavaScript, PHP, VBScript,
most of the .NET Languages, and so on... 
<br /><br />
I've spent the most time in C, C++, C#, JavaScript, SQL, and the mark-up languages.
I primarily program for the web or at least for the network.<br /><br />
While using multiple languages are great, I really believe that we you should completely
understand the fundamentals of at least two languages (like say a static language
and a dynamic language), because:<br /><blockquote><i>"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." - Steve McConnell, Code Complete 2nd Edition.</i><br /></blockquote><b>What was your first professional programming gig?</b><br /><br />
If by professional you mean worked at least 20 hrs a week and was paid, then I would
have been 18. It was my first year of College, I needed a part-time job in order to
live (<a href="http://adam.kahtava.com/journal/2008/05/10/EducationIsAGreatInvestmentInHonourOfTheStudentLoan.aspx">In
Honour of the Student Loan</a>), I worked on an assembly line. I would occasionally
help the office workers troubleshoot their IT issues and soon found myself working
as their network admin / computer gopher. I went on to develop their cataloging system
and a website. At the time I was going to school for Electronic Engineering, but decided
to switch to a Computer specific program. Pervious to this, I had freelanced
a couple websites for local businesses.<br /><br /><b>If you knew then what you know now, would you have started programming?</b><br /><br />
Absolutely! The industry continues to instill a sense of wonder in me. I can't imagine
doing anything else.<br /><br /><b>If there is one thing you learned along the way that you would tell new developers,
what would it be?</b><br /><ul><li>
Read! You'd be surprised how little progress has been made in the software industry
over the past 30 years. By reading we can learn from the mistakes others have made. 
</li><li>
Don't be intimidated by code or frameworks handed down by large organizations, their
code isn't any different than yours. 
</li><li>
Hard work always pays off, or as Thomas Edison said: <i>"Success is 10 percent inspiration
and 90 percent perspiration."</i></li></ul><b>What's the most fun you've ever had ... programming?</b><br /><br />
Collaborative programming is always fun whether it be paired programming or working
together on a project. It's hard to pinpoint the most fun I've <i>"ever"</i> had,
because it's all fun. :)<br /><br /><b>Now it's your turn to answer: How did you get started in software development?</b><br /><br /><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=291b1c53-14dd-46d6-8f6c-792250d4c998" /></body>
      <title>How I Got Started In Software Development: Confessions of a Script Kiddie</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,291b1c53-14dd-46d6-8f6c-792250d4c998.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/13/HowIGotStartedInSoftwareDevelopmentConfessionsOfAScriptKiddie.aspx</link>
      <pubDate>Fri, 13 Jun 2008 23:45:53 GMT</pubDate>
      <description>&lt;div style="BORDER-RIGHT: rgb(200,200,200) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(200,200,200) 1px solid; PADDING-LEFT: 5px; FLOAT: right; PADDING-BOTTOM: 5px; MARGIN: 5px; BORDER-LEFT: rgb(200,200,200) 1px solid; WIDTH: 150px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(200,200,200) 1px solid; TEXT-ALIGN: center"&gt;
&lt;p&gt;
&lt;img src="http://adam.kahtava.com/Journal/Images/Blog/Geek-Adam-Kahtava.jpg"&gt;
&lt;br&gt;
Ahh yes, the bowl cut. Simple to maintain, keeps the cold off the brain.
&lt;/p&gt;
&lt;p&gt;
Me around&amp;nbsp;age 12, and not much has changed. :)
&lt;/p&gt;
&lt;/div&gt;
Maggie Longshore (tweet: &lt;a href="http://twitter.com/MaggiePlusPlus"&gt;MaggiePlusPlus&lt;/a&gt;)
posted her &lt;a href="http://maggieplusplus.com/2008/06/09/How+I+Got+Started+In+Programming.aspx"&gt;response&lt;/a&gt; to
Michael Eaton's (tweet: &lt;a href="http://twitter.com/mjeaton"&gt;mjeaton&lt;/a&gt;) initial
post on: &lt;a href="http://michaeleatonconsulting.com/blog/archive/2008/06/04/how-did-you-get-started-in-software-development.aspx"&gt;How
did you get started in software development?&lt;/a&gt; I had fun reading the other contributions
so here mine...&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How old were you when you started programming?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Somewhere around the age of 8 or 9.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How did you get started in programming? What was your first language?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
My dad went to College for robotics when I was around 8 years old, so he was really
into programming (programming robots) and we worked through a book on the BASIC programming
language. After that I continued to mess around with BASIC and wrote scripts so I
could get at my favourite games. Later I was frequenting BBS's, and surfing the internet
through a text based browser. I eventually became a &lt;a href="http://en.wikipedia.org/wiki/Script_kiddie"&gt;Script
kiddie&lt;/a&gt; - in retrospect, being a Script kiddie was what really turned me on to
programming. My friends and I would write our own IRC war scripts take over local
channels, we'd play &lt;a href="http://en.wikipedia.org/wiki/Muds"&gt;MUDs&lt;/a&gt; late into
the nights, and try to figure out how Trumpet Winsock, networks, mIRC, and HTML worked
- those were the days of Netscape 1 (the version with the big glowing 'N'). Later
we tried writing our own version of &lt;a href="http://en.wikipedia.org/wiki/Netbus"&gt;NetBus&lt;/a&gt; with
the help of C / C++ programmers on IRC channels - the fragments of the C language
these programmers shared with us were magical, they really sparked an interest in
programming. In addition to all this my dad kept a constant supply of computer parts
funneling into our house, my brothers and I would build computers from the parts -
today my closest brother is a Linux guru, evidently all this sparked his interest
too. 
&lt;br&gt;
&lt;br&gt;
I've digressed, short story, programming has always been a part of my life, BASIC
was my first language.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What was the first real program you wrote?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I followed a couple game tutorials in my BASIC books, but my first real program would
have been&amp;nbsp;Pacman in Turing - in my final year of high school I enrolled in a
computer course, where the instructor let us choose our own adventure I chose to write
a game.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What languages have you used since you started programming?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
BASIC, Turing, Pascal, Assembly, COBOL, C, C++, LISP, Java, JavaScript, PHP, VBScript,
most of the .NET Languages, and so on... 
&lt;br&gt;
&lt;br&gt;
I've spent the most time in C, C++, C#, JavaScript, SQL, and the mark-up languages.
I primarily program for the web or at least for the network.&lt;br&gt;
&lt;br&gt;
While using multiple languages are great, I really believe that we you should completely
understand the fundamentals of at least two languages (like say a static language
and a dynamic language), because:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;"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." - Steve McConnell, Code Complete 2nd Edition.&lt;/i&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;What was your first professional programming gig?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
If by professional you mean worked at least 20 hrs a week and was paid, then I would
have been 18. It was my first year of College, I needed a part-time job in order to
live (&lt;a href="http://adam.kahtava.com/journal/2008/05/10/EducationIsAGreatInvestmentInHonourOfTheStudentLoan.aspx"&gt;In
Honour of the Student Loan&lt;/a&gt;), I worked on an assembly line. I would occasionally
help the office workers troubleshoot their IT issues and soon found myself working
as their network admin / computer gopher. I went on to develop their cataloging system
and a website. At the time I was going to school for Electronic Engineering, but decided
to switch to a Computer specific program. Pervious to this,&amp;nbsp;I had freelanced
a couple websites for local businesses.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;If you knew then what you know now, would you have started programming?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Absolutely! The industry continues to instill a sense of wonder in me. I can't imagine
doing anything else.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;If there is one thing you learned along the way that you would tell new developers,
what would it be?&lt;/b&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Read! You'd be surprised how little progress has been made in the software industry
over the past 30 years. By reading we can learn from the mistakes others have made. 
&lt;li&gt;
Don't be intimidated by code or frameworks handed down by large organizations, their
code isn't any different than yours. 
&lt;li&gt;
Hard work always pays off, or as Thomas Edison said: &lt;i&gt;"Success is 10 percent inspiration
and 90 percent perspiration."&lt;/i&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;What's the most fun you've ever had ... programming?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Collaborative programming is always fun whether it be paired programming or working
together on a project. It's hard to pinpoint the most fun I've &lt;i&gt;"ever"&lt;/i&gt; had,
because it's all fun. :)&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Now it's your turn to answer: How did you get started in software development?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=291b1c53-14dd-46d6-8f6c-792250d4c998" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,291b1c53-14dd-46d6-8f6c-792250d4c998.aspx</comments>
      <category>Musings</category>
      <category>Personal</category>
      <category>Programming Languages</category>
      <category>Software</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=6b653e5a-27a0-4fc6-bd15-85cd9c414372</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,6b653e5a-27a0-4fc6-bd15-85cd9c414372.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,6b653e5a-27a0-4fc6-bd15-85cd9c414372.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=6b653e5a-27a0-4fc6-bd15-85cd9c414372</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596517742">
          <img src="http://ecx.images-amazon.com/images/I/51Mb1xCr7CL._SL500_AA240_.jpg" style="border-width: 0px; float: right;" />
        </a>Weighing
in at 140+ pages of content, <a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596517742">JavaScript:
The Good Parts [Douglas Crockford]</a> cuts through the obscurities, pleasantries,
and filler found in most technical books. Instead, this book dives straight into the
heart of the JavaScript language. It presents the clearest comprehensive explanation
of what makes JavaScript a great programming language that I've encountered to date.
It nails the important concepts, like JavaScript's: object oriented nature, its classless
(pseudoclassical) nature, and functional nature. While covering the fundamentals like
JavaScript's: functions, lexical scoping, lambdas, prototypal inheritance, and functional
inheritance.<br /><br />
This book's size makes it approachable for all audiences, its style is terse and concise.
This book has the potential to do for JavaScript, what Richie's inspirational classic
the <a href="http://www.amazon.com/gp/product/0131103628/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131103628">C
Programming Language</a> did for the C language.<br /><br />
JavaScript is the programming language of the web (AJAX), and this book will guide
you through the good parts of this often misunderstood language - while this book
is an excellent reference, it is not intended to replace <a href="http://adam.kahtava.com/journal/2008/03/26/BookReviewedJavaScriptTheDefinitiveGuideByDavidFlanagan.aspx">JavaScript:
The Definitive Guide</a>, you'll do best to have both these books on hand.<br /><br />
If you enjoyed (or are considering) this book then you may want to learn more of what
Douglas Crockford has to say, check out his great JavaScript video series on the <a href="http://developer.yahoo.com/yui/theater/">YUI
Theater</a>. 
<br /><br />
I highly recommend this book. View my review on <a href="http://www.amazon.com/gp/cdp/member-reviews/A2JM0EQJELFL69/ref=cm_pdp_reviews_see_all?ie=UTF8&amp;sort_by=MostRecentReview">Amazon</a>.<br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=6b653e5a-27a0-4fc6-bd15-85cd9c414372" /></body>
      <title>Book Reviewed: JavaScript: The Good Parts by Douglas Crockford</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,6b653e5a-27a0-4fc6-bd15-85cd9c414372.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/07/BookReviewedJavaScriptTheGoodPartsByDouglasCrockford.aspx</link>
      <pubDate>Sat, 07 Jun 2008 23:32:33 GMT</pubDate>
      <description>&lt;a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;amp;tag=adamkahtavaap-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596517742"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51Mb1xCr7CL._SL500_AA240_.jpg" style="border-width: 0px; float: right;"&gt;&lt;/a&gt;Weighing
in at 140+ pages of content, &lt;a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;amp;tag=adamkahtavaap-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596517742"&gt;JavaScript:
The Good Parts [Douglas Crockford]&lt;/a&gt; cuts through the obscurities, pleasantries,
and filler found in most technical books. Instead, this book dives straight into the
heart of the JavaScript language. It presents the clearest comprehensive explanation
of what makes JavaScript a great programming language that I've encountered to date.
It nails the important concepts, like JavaScript's: object oriented nature, its classless
(pseudoclassical) nature, and functional nature. While covering the fundamentals like
JavaScript's: functions, lexical scoping, lambdas, prototypal inheritance, and functional
inheritance.&lt;br&gt;
&lt;br&gt;
This book's size makes it approachable for all audiences, its style is terse and concise.
This book has the potential to do for JavaScript, what Richie's inspirational classic
the &lt;a href="http://www.amazon.com/gp/product/0131103628/?ie=UTF8&amp;amp;tag=adamkahtavaap-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0131103628"&gt;C
Programming Language&lt;/a&gt; did for the C language.&lt;br&gt;
&lt;br&gt;
JavaScript is the programming language of the web (AJAX), and this book will guide
you through the good parts of this often misunderstood language - while this book
is an excellent reference, it is not intended to replace &lt;a href="http://adam.kahtava.com/journal/2008/03/26/BookReviewedJavaScriptTheDefinitiveGuideByDavidFlanagan.aspx"&gt;JavaScript:
The Definitive Guide&lt;/a&gt;, you'll do best to have both these books on hand.&lt;br&gt;
&lt;br&gt;
If you enjoyed (or are considering) this book then you may want to learn more of what
Douglas Crockford has to say, check out his great JavaScript video series on the &lt;a href="http://developer.yahoo.com/yui/theater/"&gt;YUI
Theater&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
I highly recommend this book. View my review on &lt;a href="http://www.amazon.com/gp/cdp/member-reviews/A2JM0EQJELFL69/ref=cm_pdp_reviews_see_all?ie=UTF8&amp;amp;sort_by=MostRecentReview"&gt;Amazon&lt;/a&gt;.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=6b653e5a-27a0-4fc6-bd15-85cd9c414372" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,6b653e5a-27a0-4fc6-bd15-85cd9c414372.aspx</comments>
      <category>AJAX</category>
      <category>Book</category>
      <category>CSS</category>
      <category>DOM</category>
      <category>JavaScript</category>
      <category>Programming Languages</category>
      <category>Review</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=323c98c8-c4dd-4dd7-8cc3-b65178f32db2</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,323c98c8-c4dd-4dd7-8cc3-b65178f32db2.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,323c98c8-c4dd-4dd7-8cc3-b65178f32db2.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=323c98c8-c4dd-4dd7-8cc3-b65178f32db2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">One of my resolutions this year was to
contribute to the <a href="http://www.asp.net/ajax/ajaxcontroltoolkit/samples/">AJAX
Control Toolkit</a> for the <a href="http://asp.net/ajax/">ASP.NET AJAX Framework</a>.
I began my AJAX Control Toolkit development quest by digging into the online resources,
reading <a href="http://adam.kahtava.com/journal/2008/04/20/BookReviewedASPNETAJAXInActionByAlessandroGalloDavidBarkolRamaVavilala.aspx">ASP.NET
AJAX in Action</a>, and decomposing the AJAX Control Toolkit. I noted the huge <a href="http://adam.kahtava.com/journal/2008/04/09/TheASPNETAJAXLearningCurve.aspx">learning
curve</a> required to developing a control, and continued to dig deeper. Once mired
in ASP.NET AJAX a bad smell kept wafting by. Since then I've been <a href="http://adam.kahtava.com/journal/2008/06/03/MoreOnThePerilsOfTheASPNETAJAXFramework.aspx">trying</a> to
distinguish this smell.<br /><br /><b>What's really wrong with ASP.NET AJAX? What's that bad smell?</b><br /><ul><li>
It doesn't plan for performance from day one</li><li>
It treats AJAX as a classic computer science problem</li><li>
It tries to turn JavaScript into a classical language which works against JavaScript's
dynamic, prototypical nature<br /></li></ul><b>A Case Study: Why Plaxo.com Almost Failed</b><br /><blockquote>In the video: <a href="http://video.yahoo.com/watch/1041101">High-performance
JavaScript: Why Everything You've Been Taught is Wrong</a> (<a href="http://developer.yahoo.com/yui/theater/">YUI
Theater</a>) <a href="http://josephsmarr.com/">Joseph Smarr</a> discusses the challenges
and lessons learned while developing <a href="http://www.plaxo.com/">Plaxo.com</a>.
While developing this AJAX centric application, the Plaxo team decided to include
everything they could think of (including the kitchen sink) into their application.
They created a framework to treat JavaScript as a classical language, they gave priority
to features over performance, and... <b>the project ALMOST FAILED</b>. They were able
to salvage their application by diverting their development efforts, making performance
one of their top priorities, by unlearning everything they'd been taught about classical
applications (instead embracing JavaScript), jettisoning unneeded framework bloat,
and more.<br /><br />
Some of the points made in this video were:<br /><ul><li>
Plan for performance from day one</li><li>
AJAX is not a classic problem</li><li>
JavaScript is not a classical programming language</li><li>
User experience and a responsive application can make or break an application</li><li>
Unneeded bloat in a framework, and an obtuse approach to using AJAX (treating AJAX
and JavaScript as a classical language or classic computer science problem) has the
potential to cripple your application</li></ul>
This Channel 9 video also mirrors these sentiments: <a href="http://channel9.msdn.com/posts/Charles/Douglas-Crockford-Alex-Russell-and-Joseph-Smarr-On-the-Past-Present-and-Future-of-JavaScript/">Douglas
Crockford, Alex Russell and Joseph Smarr: On the Past, Present and Future of JavaScript</a><br /></blockquote><b>How ASP.NET AJAX Failed: What can we learn from Plaxo?</b><br /><br />
The way the Plaxo team approached their application development is similar to how
the ASP.NET AJAX Framework has been designed. Like Plaxo's initial attempt ASP.NET
AJAX attempts to mold JavaScript into a classical language, and attempts to treat
JavaScript and AJAX as a classic computer science problem by heaping on more abstractions.
Like Plaxo's initial attempt ASP.NET AJAX also gives a low priority to performance.
Plaxo was able to change their direction and salvaged their application, but the ASP.NET
AJAX Framework is not in a position to make any sweeping changes - ASP.NET AJAX is
going down the wrong path and it's too late.<br /><br />
The ASP.NET AJAX Framework is probably another exercise in Framework Architecture
(<a href="http://en.wikipedia.org/wiki/Demoware">Demoware</a>) and a failure in practice.
Its lack of use in the wild attests to these shortcomings - contrast the <a href="http://www.asp.net/ajax/showcase/">sites
using ASP.NET AJAX</a> with the <a href="http://docs.jquery.com/Sites_Using_jQuery">sites
using jQuery</a> (<a href="http://adam.kahtava.com/journal/2008/05/15/ActionsSpeakLouderThanWordsGoodbyeASPNETAJAX.aspx">Actions
Speak Louder Than Words</a>). Furthermore the places that ASP.NET AJAX does thrive
(the small internal ASP.NET business apps that need some bling-bling) will also be
the areas that <a href="http://en.wikipedia.org/wiki/Silverlight">Silverlight</a> shines
- Silverlight offers a better Microsoft centric programming model (less leaky Win
Form / Web Form abstractions) that most Microsoft developers will embrace. Silverlight
will probably divert the developers that currently embrace ASP.NET AJAX.<br /><br />
I don't recommend the ASP.NET AJAX Framework and won't be contributing to the AJAX
Control Toolkit. My time is better spent elsewhere.<br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=323c98c8-c4dd-4dd7-8cc3-b65178f32db2" /></body>
      <title>Writing a Control for the AJAX Control Toolkit: Something Stinks</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,323c98c8-c4dd-4dd7-8cc3-b65178f32db2.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/07/WritingAControlForTheAJAXControlToolkitSomethingStinks.aspx</link>
      <pubDate>Sat, 07 Jun 2008 19:19:42 GMT</pubDate>
      <description>One of my resolutions this year was to contribute to the &lt;a href="http://www.asp.net/ajax/ajaxcontroltoolkit/samples/"&gt;AJAX
Control Toolkit&lt;/a&gt; for the &lt;a href="http://asp.net/ajax/"&gt;ASP.NET AJAX Framework&lt;/a&gt;.
I began my AJAX Control Toolkit development quest by digging into the online resources,
reading &lt;a href="http://adam.kahtava.com/journal/2008/04/20/BookReviewedASPNETAJAXInActionByAlessandroGalloDavidBarkolRamaVavilala.aspx"&gt;ASP.NET
AJAX in Action&lt;/a&gt;, and decomposing the AJAX Control Toolkit. I noted the huge &lt;a href="http://adam.kahtava.com/journal/2008/04/09/TheASPNETAJAXLearningCurve.aspx"&gt;learning
curve&lt;/a&gt; required to developing a control, and continued to dig deeper. Once mired
in ASP.NET AJAX a bad smell kept wafting by. Since then I've been &lt;a href="http://adam.kahtava.com/journal/2008/06/03/MoreOnThePerilsOfTheASPNETAJAXFramework.aspx"&gt;trying&lt;/a&gt; to
distinguish this smell.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What's really wrong with ASP.NET AJAX? What's that bad smell?&lt;/b&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
It doesn't plan for performance from day one&lt;/li&gt;
&lt;li&gt;
It treats AJAX as a classic computer science problem&lt;/li&gt;
&lt;li&gt;
It tries to turn JavaScript into a classical language which works against JavaScript's
dynamic, prototypical nature&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;A Case Study: Why Plaxo.com Almost Failed&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;In the video: &lt;a href="http://video.yahoo.com/watch/1041101"&gt;High-performance
JavaScript: Why Everything You've Been Taught is Wrong&lt;/a&gt; (&lt;a href="http://developer.yahoo.com/yui/theater/"&gt;YUI
Theater&lt;/a&gt;) &lt;a href="http://josephsmarr.com/"&gt;Joseph Smarr&lt;/a&gt; discusses the challenges
and lessons learned while developing &lt;a href="http://www.plaxo.com/"&gt;Plaxo.com&lt;/a&gt;.
While developing this AJAX centric application, the Plaxo team decided to include
everything they could think of (including the kitchen sink) into their application.
They created a framework to treat JavaScript as a classical language, they gave priority
to features over performance, and... &lt;b&gt;the project ALMOST FAILED&lt;/b&gt;. They were able
to salvage their application by diverting their development efforts, making performance
one of their top priorities, by unlearning everything they'd been taught about classical
applications (instead embracing JavaScript), jettisoning unneeded framework bloat,
and more.&lt;br&gt;
&lt;br&gt;
Some of the points made in this video were:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Plan for performance from day one&lt;/li&gt;
&lt;li&gt;
AJAX is not a classic problem&lt;/li&gt;
&lt;li&gt;
JavaScript is not a classical programming language&lt;/li&gt;
&lt;li&gt;
User experience and a responsive application can make or break an application&lt;/li&gt;
&lt;li&gt;
Unneeded bloat in a framework, and an obtuse approach to using AJAX (treating AJAX
and JavaScript as a classical language or classic computer science problem) has the
potential to cripple your application&lt;/li&gt;
&lt;/ul&gt;
This Channel 9 video also mirrors these sentiments: &lt;a href="http://channel9.msdn.com/posts/Charles/Douglas-Crockford-Alex-Russell-and-Joseph-Smarr-On-the-Past-Present-and-Future-of-JavaScript/"&gt;Douglas
Crockford, Alex Russell and Joseph Smarr: On the Past, Present and Future of JavaScript&lt;/a&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;How ASP.NET AJAX Failed: What can we learn from Plaxo?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
The way the Plaxo team approached their application development is similar to how
the ASP.NET AJAX Framework has been designed. Like Plaxo's initial attempt ASP.NET
AJAX attempts to mold JavaScript into a classical language, and attempts to treat
JavaScript and AJAX as a classic computer science problem by heaping on more abstractions.
Like Plaxo's initial attempt ASP.NET AJAX also gives a low priority to performance.
Plaxo was able to change their direction and salvaged their application, but the ASP.NET
AJAX Framework is not in a position to make any sweeping changes - ASP.NET AJAX is
going down the wrong path and it's too late.&lt;br&gt;
&lt;br&gt;
The ASP.NET AJAX Framework is probably another exercise in Framework Architecture
(&lt;a href="http://en.wikipedia.org/wiki/Demoware"&gt;Demoware&lt;/a&gt;) and a failure in practice.
Its lack of use in the wild attests to these shortcomings - contrast the &lt;a href="http://www.asp.net/ajax/showcase/"&gt;sites
using ASP.NET AJAX&lt;/a&gt; with the &lt;a href="http://docs.jquery.com/Sites_Using_jQuery"&gt;sites
using jQuery&lt;/a&gt; (&lt;a href="http://adam.kahtava.com/journal/2008/05/15/ActionsSpeakLouderThanWordsGoodbyeASPNETAJAX.aspx"&gt;Actions
Speak Louder Than Words&lt;/a&gt;). Furthermore the places that ASP.NET AJAX does thrive
(the small internal ASP.NET business apps that need some bling-bling) will also be
the areas that &lt;a href="http://en.wikipedia.org/wiki/Silverlight"&gt;Silverlight&lt;/a&gt; shines
- Silverlight offers a better Microsoft centric programming model (less leaky Win
Form / Web Form abstractions) that most Microsoft developers will embrace. Silverlight
will probably divert the developers that currently embrace ASP.NET AJAX.&lt;br&gt;
&lt;br&gt;
I don't recommend the ASP.NET AJAX Framework and won't be contributing to the AJAX
Control Toolkit. My time is better spent elsewhere.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=323c98c8-c4dd-4dd7-8cc3-b65178f32db2" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,323c98c8-c4dd-4dd7-8cc3-b65178f32db2.aspx</comments>
      <category>.NET</category>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>ASP.NET AJAX</category>
      <category>JavaScript</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=128d00d5-c819-417b-996f-268676243143</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,128d00d5-c819-417b-996f-268676243143.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,128d00d5-c819-417b-996f-268676243143.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=128d00d5-c819-417b-996f-268676243143</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">There's no need to whip a dead horse (I've
probably been griping about the ASP.NET AJAX Framework for too long), but... <a href="http://weblogs.asp.net/jgalloway/default.aspx">Jon
Galloway</a> and a group of other notable gurus (<a href="http://www.odetocode.com/">K.
Scott Allen</a>, <a href="http://www.lazycoder.com/">Scott Koon</a>, and <a href="http://weblogs.asp.net/kdente/">Kevin
Dente</a>) have started a podcast, their latest segment sparked my interest since
it covered ASP.NET AJAX and AJAX Libraries / Frameworks in general.<br /><br />
I share their sentiments so I thought I'd post a brief but choppy transcript:<br /><blockquote><i>[ASP.NET AJAX] ... does offer some some nice features, they did try
to take some of the common pieces of the CLR that </i><i>[.NET Developers are]</i><i> used
to working with and move that down into a JavaScript library. So you get classes like
a <a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Net/WebRequestClass/default.aspx">WebRequest</a> class
that wraps the <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</a> ...
and they have a <a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys/StringBuilderClass/default.aspx">StringBuilder</a>,
and they added methods that we're more accustom with ... 
<br /><br />
that's wonderful, but I don't find myself needing those extensions all that often.<b> If
you want to do strictly client-side programming then something like jQuery offers
you a lot more capabilities to do things that you really want to do client-side like
sorting and CSS selectors.</b> ... That stuff is easy to do with an Update Panel and
ASP.NET, but Update Panels aren't always the best solution to use. ... 
<br /><br />
the goals with ASP.NET AJAX was to integrate into the ASP.NET server-side model ...
that's great for ASP.NET, but it needs more client-side features. ... It works if
your thinking from the ASP.NET control perspective, but <b>if you look at it outside
the ASP.NET model there are a lot easier ways to do it. </b>... 
<br /><br />
ASP.NET AJAX [development] seems to have come to a standstill I'm not seeing a lot
of development in that area and the rest of these [AJAX] Frameworks are doing monthly
releases. <b>Every month that goes by [the ASP.NET AJAX Framework] falls further and
further behind ... it needs to evolve.</b><br /></i></blockquote>Listen to this great podcast here: <a href="http://weblogs.asp.net/jgalloway/archive/2008/05/29/technology-round-table-podcast-2-ajax-frameworks.aspx">Technology
Round Table Podcast #2 - AJAX Frameworks</a><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=128d00d5-c819-417b-996f-268676243143" /></body>
      <title>More on the perils of The ASP.NET AJAX Framework</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,128d00d5-c819-417b-996f-268676243143.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/06/03/MoreOnThePerilsOfTheASPNETAJAXFramework.aspx</link>
      <pubDate>Tue, 03 Jun 2008 15:06:27 GMT</pubDate>
      <description>There's no need to whip a dead horse (I've probably been griping about the ASP.NET AJAX Framework for too long), but... &lt;a href="http://weblogs.asp.net/jgalloway/default.aspx"&gt;Jon
Galloway&lt;/a&gt; and a group of other notable gurus (&lt;a href="http://www.odetocode.com/"&gt;K.
Scott Allen&lt;/a&gt;, &lt;a href="http://www.lazycoder.com/"&gt;Scott Koon&lt;/a&gt;, and &lt;a href="http://weblogs.asp.net/kdente/"&gt;Kevin
Dente&lt;/a&gt;) have started a podcast, their latest segment sparked my interest since
it covered ASP.NET AJAX and AJAX Libraries / Frameworks in general.&lt;br&gt;
&lt;br&gt;
I share their sentiments so I thought I'd post a brief but choppy transcript:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;[ASP.NET AJAX] ... does offer some some nice features, they did try
to take some of the common pieces of the CLR that &lt;/i&gt;&lt;i&gt;[.NET Developers are]&lt;/i&gt;&lt;i&gt; used
to working with and move that down into a JavaScript library. So you get classes like
a &lt;a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Net/WebRequestClass/default.aspx"&gt;WebRequest&lt;/a&gt; class
that wraps the &lt;a href="http://en.wikipedia.org/wiki/XMLHttpRequest"&gt;XMLHttpRequest&lt;/a&gt; ...
and they have a &lt;a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys/StringBuilderClass/default.aspx"&gt;StringBuilder&lt;/a&gt;,
and they added methods that we're more accustom with ... 
&lt;br&gt;
&lt;br&gt;
that's wonderful, but I don't find myself needing those extensions all that often.&lt;b&gt; If
you want to do strictly client-side programming then something like jQuery offers
you a lot more capabilities to do things that you really want to do client-side like
sorting and CSS selectors.&lt;/b&gt; ... That stuff is easy to do with an Update Panel and
ASP.NET, but Update Panels aren't always the best solution to use. ... 
&lt;br&gt;
&lt;br&gt;
the goals with ASP.NET AJAX was to integrate into the ASP.NET server-side model ...
that's great for ASP.NET, but it needs more client-side features. ... It works if
your thinking from the ASP.NET control perspective, but &lt;b&gt;if you look at it outside
the ASP.NET model there are a lot easier ways to do it. &lt;/b&gt;... 
&lt;br&gt;
&lt;br&gt;
ASP.NET AJAX [development] seems to have come to a standstill I'm not seeing a lot
of development in that area and the rest of these [AJAX] Frameworks are doing monthly
releases. &lt;b&gt;Every month that goes by [the ASP.NET AJAX Framework] falls further and
further behind ... it needs to evolve.&lt;/b&gt;
&lt;br&gt;
&lt;/i&gt;&lt;/blockquote&gt;Listen to this great podcast here: &lt;a href="http://weblogs.asp.net/jgalloway/archive/2008/05/29/technology-round-table-podcast-2-ajax-frameworks.aspx"&gt;Technology
Round Table Podcast #2 - AJAX Frameworks&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=128d00d5-c819-417b-996f-268676243143" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,128d00d5-c819-417b-996f-268676243143.aspx</comments>
      <category>.NET</category>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>ASP.NET AJAX</category>
      <category>CSS</category>
      <category>DOM</category>
      <category>JavaScript</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=e724903b-65d4-4c94-a1bd-e704c9d80093</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,e724903b-65d4-4c94-a1bd-e704c9d80093.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,e724903b-65d4-4c94-a1bd-e704c9d80093.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=e724903b-65d4-4c94-a1bd-e704c9d80093</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Douglas Crockford opens his latest book
with these words:<br /><blockquote><i><b>Most programming languages contain good parts and bad parts</b>.
... [the language designers or architects] are usually powerless to do anything except
heap more features on top of the existing pile of imperfections. And the new features
do not always interact harmoniously, thus producing more bad parts. - <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/">JavaScript:
The Good Parts by Douglas Crockford</a><br /></i></blockquote>His words can apply to all programming languages and frameworks.
Especially the ASP.NET Framework and Visual Studio.<br /><br />
Bad parts in the ASP.NET Framework and Visual Studio:<br /><ul><li>
ASP.NET Themes and Skins</li><li>
The ASP.NET AJAX Framework</li><li>
ASP.NET / Visual Studio Inline Style Properties</li><li>
Visual Studio Design View</li><li>
ASP.NET and Visual Studio's over dependency on XML configuration files<br /></li></ul>
It would be great if someone wrote a book outlining the good parts of ASP.NET and
Visual Studio. :)<br /><br />
What bad parts do you steer clear of?<p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=e724903b-65d4-4c94-a1bd-e704c9d80093" /></body>
      <title>The Good Parts of The ASP.NET Framework and Visual Studio</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,e724903b-65d4-4c94-a1bd-e704c9d80093.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/05/31/TheGoodPartsOfTheASPNETFrameworkAndVisualStudio.aspx</link>
      <pubDate>Sat, 31 May 2008 21:56:37 GMT</pubDate>
      <description>Douglas Crockford opens his latest book with these words:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;&lt;b&gt;Most programming languages contain good parts and bad parts&lt;/b&gt;.
... [the language designers or architects] are usually powerless to do anything except
heap more features on top of the existing pile of imperfections. And the new features
do not always interact harmoniously, thus producing more bad parts. - &lt;a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/"&gt;JavaScript:
The Good Parts by Douglas Crockford&lt;/a&gt;
&lt;br&gt;
&lt;/i&gt;&lt;/blockquote&gt;His words can apply to all programming languages and frameworks.
Especially the ASP.NET Framework and Visual Studio.&lt;br&gt;
&lt;br&gt;
Bad parts in the ASP.NET Framework and Visual Studio:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
ASP.NET Themes and Skins&lt;/li&gt;
&lt;li&gt;
The ASP.NET AJAX Framework&lt;/li&gt;
&lt;li&gt;
ASP.NET / Visual Studio Inline Style Properties&lt;/li&gt;
&lt;li&gt;
Visual Studio Design View&lt;/li&gt;
&lt;li&gt;
ASP.NET and Visual Studio's over dependency on XML configuration files&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
It would be great if someone wrote a book outlining the good parts of ASP.NET and
Visual Studio. :)&lt;br&gt;
&lt;br&gt;
What bad parts do you steer clear of?&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=e724903b-65d4-4c94-a1bd-e704c9d80093" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,e724903b-65d4-4c94-a1bd-e704c9d80093.aspx</comments>
      <category>ASP.NET</category>
      <category>JavaScript</category>
      <category>Musings</category>
      <category>Themes and Skins</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=8cfd415e-f895-4115-8713-5a879e1abb15</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,8cfd415e-f895-4115-8713-5a879e1abb15.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,8cfd415e-f895-4115-8713-5a879e1abb15.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=8cfd415e-f895-4115-8713-5a879e1abb15</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Back when the web turned 2.0, AJAX was
all the rage, and gas was cheap, a Google recruiter contacted me. We worked through
a couple screening interviews - I explained how I was a .NET / ASP.NET / C# developer
with some experience with Java and PHP, I described how C# was somewhat similar to
Java. Things went great, I moved on to the next step of the process - writing code
(a JavaScript widget for Gmail) with a 2 day (weekend) hard deadline. At the time
I was wearing JavaScript diapers, but tried the exercise anyways - I'm still convinced
the recruiter confused my Java / C# experience with JavaScript. Anyhow... 
<br /><br /><b>The Google Web Developer Exercise:<br /></b><blockquote style="border: 1px solid rgb(207, 207, 207); padding-left: 7px;"><h3>Web Developer Exercise
</h3>
Attached are three states of a new contacts widget. This widget will be used across
Google and may be anywhere on the page. Designers will also use this in mocks for
usability tests. Create the HTML, CSS, and JavaScript for the widget as described
in the image. Your solution must work in Firefox v1.5+ and IE v6+. Bonus points for
a solution that degrades nicely on older browsers.<br /><br /><img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise02.png" /><br /><img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise03.png" /><br /><img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise01.png" /><br /></blockquote><b>After my first attempt, I concluded that: </b><br /><ol><li>
My JavaScript knowledge was embarrassing 
</li><li><a href="http://en.wikipedia.org/wiki/Dynamic_language">Dynamic programming languages</a> like
JavaScript using <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototypical
inheritance</a> were awesome - as a monocultured .NET developer I had sorely been
missing out</li><li>
Framework Web Developers (ASP.NET, Ruby on Rails, and so on) aren't really Web Developers
- we depend on a framework (an API) as a crutch, where the law of <a href="http://en.wikipedia.org/wiki/Leaky_abstraction">Leaky
Abstractions</a> is very real, and often when it rears it's head we use our <a href="http://en.wikipedia.org/wiki/Golden_hammer">golden
hammer</a> (our multipurpose language of choice), but there are better tools at hand<br /></li><li>
Web Developers claiming <i>n</i> years of experience need to at least know JavaScript,
CSS, HTML / XHTML, a server-side language, and some XML / XSL - NOT just a single
multipurpose language or framework<br /></li><li>
Innovation can only happen when you become <i>one</i> with the technologies surrounding
your realm - for example: <a href="http://adaptivepath.com/ideas/essays/archives/000385.php">Jesse
James Garrett</a> probably would not have publicized AJAX had he been an exclusive
ASP.NET developer, <a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson">David
Heinemeier Hansson</a> would have never created Rails had he been an exclusive ASP.NET
developer, and <a href="http://en.wikipedia.org/wiki/Scott_Guthrie">Scott Guthrie</a> would
never have developed ASP.NET had he been an exclusive ASP.NET developer. Diversity
is essential for innovation<br /></li></ol>
In retrospect this exercise is brilliant, it's a more complex derivation of a <a href="http://www.codinghorror.com/blog/archives/000781.html">Fizzbuzz
exercise</a>, which effectively weeds out the knowledgeable candidates from the n00bs.
JavaScript is notorious for being one of <a href="http://www.crockford.com/javascript/javascript.html">the
world's most misunderstood language</a>, many developer (and the ASP.NET Framework)
still use JavaScript techniques from the old days of Netscape. For example: <i>&lt;a
onclick="return false;" ...</i>, or &lt;a <i>href="Javascript: do something;" ...</i> are
common <a href="http://en.wikipedia.org/wiki/DOM_Events#DOM_Level_0">DOM Level 0</a> inline
techniques that should be avoided. These techniques have been replaced, but finding
developer that use these JavaScript techniques can be hard.<br /><br /><b>By having a developer complete this exercise you effectively determine that the
they understands these concepts:</b><br /><ul><li>
Cross browser compatibilities and work arounds for both JavaScript and CSS - with
a preference given to <a href="http://www.quirksmode.org/js/support.html">feature
detection (object detection)</a> vs browser detection, an understanding of the different
event handling models between browsers<br /></li><li>
An understanding of the separation of concerns - JavaScript, markup, and CSS should
be separate files, or at least separated within the document<br /></li><li>
Event registration and listening - <a href="http://en.wikipedia.org/wiki/DOM_Events">DOM
events</a>, the different browser event models, no inline level 0 event declarations,
no pseudo JavaScript protocol inline declarations within markup<br /></li><li>
An understanding of <a href="http://en.wikipedia.org/wiki/Functional_languages">functional
languages</a> - <a href="http://en.wikipedia.org/wiki/Closure_%28computer_science%29">closures</a>, <a href="http://adam.kahtava.com/journal/2008/03/17/NamespacingYourJavaScript.aspx">namespaces</a>, <a href="http://en.wikipedia.org/wiki/Lambda_calculus">lambdas</a>,
recursion where necessary<br /></li><li>
Node manipulation - creating, swapping, removing elements</li><li>
Knowledge of <a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/">non-obtrusive
JavaScript techniques</a></li><li>
Importance of modular / compartmentalization of CSS and JavaScript - defensive programming
techniques that minimize the risk of interfering with other scripts and elements within
the page, part of the non-obtrusive techniques, how to avoid global variables</li><li>
An understanding on how to debug JavaScript from both IE (<a href="http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html">link</a>)
and Firefox (<a href="http://www.getfirebug.com/js.html">link</a>)</li><li><a href="http://javascript.crockford.com/code.html">JavaScript code conventions</a> -
naming conventions, statement conventions</li><li>
CSS naming conventions</li><li>
General DHTML / AJAX techniques - showing and hiding elements<br /></li><li>
A gauge on their attention to details and UI design intuition - what their gut tells
them to do when things aren't spelled out</li></ul><b>My latest crack at the Google Web Developer Exercise:</b><br /><iframe src="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.html" style="border-width: 0px; width: 320px; height: 300px; margin-left: 15px; float: left;"></iframe><br /><i>You'll have to visit my site (view this blog post outside a RSS reader) to view
the code in action.<br /><br /></i>The code: <a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.js">GoogleExercise.js</a>, <a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.html">GoogleExercise.html</a>, <a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.css">GoogleExercise.css</a><br /><br /><i>Today I'm wearing JavaScript training wheels - </i><i>feel free to comment on the
code, I'm always looking for improvements and suggestions. I did take a couple shortcuts
on the CSS / UI side of things as I was focusing more on the functionality.</i><br /><br /><i>Using one of the <a href="http://en.wikipedia.org/wiki/Ajax_Libraries">AJAX Libraries</a> (like <a href="http://jquery.com/">jQuery</a>)
we could certainly do this exercise in significantly fewer lines of code.<br /><br /></i><div style="clear: both;">Today I still think about <a href="http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html">Getting
that job at Google</a>, Yahoo!, Amazon, or Microsoft. <a href="http://adam.kahtava.com/journal/2008/01/13/HowWellDoYouKnowJavaScript.aspx">How
well do you know JavaScript?</a><br /><br /></div><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=8cfd415e-f895-4115-8713-5a879e1abb15" /></body>
      <title>Getting a Job at Google: A Web Developer Fizzbuzz</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,8cfd415e-f895-4115-8713-5a879e1abb15.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/05/24/GettingAJobAtGoogleAWebDeveloperFizzbuzz.aspx</link>
      <pubDate>Sat, 24 May 2008 21:03:23 GMT</pubDate>
      <description>Back when the web turned 2.0, AJAX was all the rage, and gas was cheap, a Google recruiter contacted me. We worked through a couple screening interviews - I explained how I was a .NET / ASP.NET / C# developer with some experience with Java and PHP, I described how C# was somewhat similar to Java. Things went great, I moved on to the next step of the process - writing code (a JavaScript widget for Gmail) with a 2 day (weekend) hard deadline. At the time I was wearing JavaScript diapers, but tried the exercise anyways - I'm still convinced the recruiter confused my Java / C# experience with JavaScript. Anyhow... &lt;br&gt;
&lt;br&gt;
&lt;b&gt;The Google Web Developer Exercise:&lt;br&gt;
&lt;/b&gt;&lt;blockquote style="border: 1px solid rgb(207, 207, 207); padding-left: 7px;"&gt;
&lt;h3&gt;Web Developer Exercise
&lt;/h3&gt;
Attached are three states of a new contacts widget. This widget will be used across
Google and may be anywhere on the page. Designers will also use this in mocks for
usability tests. Create the HTML, CSS, and JavaScript for the widget as described
in the image. Your solution must work in Firefox v1.5+ and IE v6+. Bonus points for
a solution that degrades nicely on older browsers.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise02.png"&gt;
&lt;br&gt;
&lt;img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise03.png"&gt;
&lt;br&gt;
&lt;img src="http://adam.kahtava.com/journal/images/blog/GoogleExercise01.png"&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;b&gt;After my first attempt, I concluded that: &lt;/b&gt;
&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
My JavaScript knowledge was embarrassing 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://en.wikipedia.org/wiki/Dynamic_language"&gt;Dynamic programming languages&lt;/a&gt; like
JavaScript using &lt;a href="http://en.wikipedia.org/wiki/Prototype-based_programming"&gt;prototypical
inheritance&lt;/a&gt; were awesome - as a monocultured .NET developer I had sorely been
missing out&lt;/li&gt;
&lt;li&gt;
Framework Web Developers (ASP.NET, Ruby on Rails, and so on) aren't really Web Developers
- we depend on a framework (an API) as a crutch, where the law of &lt;a href="http://en.wikipedia.org/wiki/Leaky_abstraction"&gt;Leaky
Abstractions&lt;/a&gt; is very real, and often when it rears it's head we use our &lt;a href="http://en.wikipedia.org/wiki/Golden_hammer"&gt;golden
hammer&lt;/a&gt; (our multipurpose language of choice), but there are better tools at hand&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Web Developers claiming &lt;i&gt;n&lt;/i&gt; years of experience need to at least know JavaScript,
CSS, HTML / XHTML, a server-side language, and some XML / XSL - NOT just a single
multipurpose language or framework&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Innovation can only happen when you become &lt;i&gt;one&lt;/i&gt; with the technologies surrounding
your realm - for example: &lt;a href="http://adaptivepath.com/ideas/essays/archives/000385.php"&gt;Jesse
James Garrett&lt;/a&gt; probably would not have publicized AJAX had he been an exclusive
ASP.NET developer, &lt;a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson"&gt;David
Heinemeier Hansson&lt;/a&gt; would have never created Rails had he been an exclusive ASP.NET
developer, and &lt;a href="http://en.wikipedia.org/wiki/Scott_Guthrie"&gt;Scott Guthrie&lt;/a&gt; would
never have developed ASP.NET had he been an exclusive ASP.NET developer. Diversity
is essential for innovation&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
In retrospect this exercise is brilliant, it's a more complex derivation of a &lt;a href="http://www.codinghorror.com/blog/archives/000781.html"&gt;Fizzbuzz
exercise&lt;/a&gt;, which effectively weeds out the knowledgeable candidates from the n00bs.
JavaScript is notorious for being one of &lt;a href="http://www.crockford.com/javascript/javascript.html"&gt;the
world's most misunderstood language&lt;/a&gt;, many developer (and the ASP.NET Framework)
still use JavaScript techniques from the old days of Netscape. For example: &lt;i&gt;&amp;lt;a
onclick="return false;" ...&lt;/i&gt;, or &amp;lt;a &lt;i&gt;href="Javascript: do something;" ...&lt;/i&gt; are
common &lt;a href="http://en.wikipedia.org/wiki/DOM_Events#DOM_Level_0"&gt;DOM Level 0&lt;/a&gt; inline
techniques that should be avoided. These techniques have been replaced, but finding
developer that use these JavaScript techniques can be hard.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;By having a developer complete this exercise you effectively determine that the
they understands these concepts:&lt;/b&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Cross browser compatibilities and work arounds for both JavaScript and CSS - with
a preference given to &lt;a href="http://www.quirksmode.org/js/support.html"&gt;feature
detection (object detection)&lt;/a&gt; vs browser detection, an understanding of the different
event handling models between browsers&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
An understanding of the separation of concerns - JavaScript, markup, and CSS should
be separate files, or at least separated within the document&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Event registration and listening - &lt;a href="http://en.wikipedia.org/wiki/DOM_Events"&gt;DOM
events&lt;/a&gt;, the different browser event models, no inline level 0 event declarations,
no pseudo JavaScript protocol inline declarations within markup&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
An understanding of &lt;a href="http://en.wikipedia.org/wiki/Functional_languages"&gt;functional
languages&lt;/a&gt; - &lt;a href="http://en.wikipedia.org/wiki/Closure_%28computer_science%29"&gt;closures&lt;/a&gt;, &lt;a href="http://adam.kahtava.com/journal/2008/03/17/NamespacingYourJavaScript.aspx"&gt;namespaces&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Lambda_calculus"&gt;lambdas&lt;/a&gt;,
recursion where necessary&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Node manipulation - creating, swapping, removing elements&lt;/li&gt;
&lt;li&gt;
Knowledge of &lt;a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/"&gt;non-obtrusive
JavaScript techniques&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Importance of modular / compartmentalization of CSS and JavaScript - defensive programming
techniques that minimize the risk of interfering with other scripts and elements within
the page, part of the non-obtrusive techniques, how to avoid global variables&lt;/li&gt;
&lt;li&gt;
An understanding on how to debug JavaScript from both IE (&lt;a href="http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html"&gt;link&lt;/a&gt;)
and Firefox (&lt;a href="http://www.getfirebug.com/js.html"&gt;link&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://javascript.crockford.com/code.html"&gt;JavaScript code conventions&lt;/a&gt; -
naming conventions, statement conventions&lt;/li&gt;
&lt;li&gt;
CSS naming conventions&lt;/li&gt;
&lt;li&gt;
General DHTML / AJAX techniques - showing and hiding elements&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
A gauge on their attention to details and UI design intuition - what their gut tells
them to do when things aren't spelled out&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;My latest crack at the Google Web Developer Exercise:&lt;/b&gt; 
&lt;br&gt;
&lt;iframe src="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.html" style="border-width: 0px; width: 320px; height: 300px; margin-left: 15px; float: left;"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;i&gt;You'll have to visit my site (view this blog post outside a RSS reader) to view
the code in action.&lt;br&gt;
&lt;br&gt;
&lt;/i&gt;The code: &lt;a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.js"&gt;GoogleExercise.js&lt;/a&gt;, &lt;a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.html"&gt;GoogleExercise.html&lt;/a&gt;, &lt;a href="http://adam.kahtava.com/etcetera/GoogleExercise/GoogleExercise.css"&gt;GoogleExercise.css&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;i&gt;Today I'm wearing JavaScript training wheels - &lt;/i&gt;&lt;i&gt;feel free to comment on the
code, I'm always looking for improvements and suggestions. I did take a couple shortcuts
on the CSS / UI side of things as I was focusing more on the functionality.&lt;/i&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;i&gt;Using one of the &lt;a href="http://en.wikipedia.org/wiki/Ajax_Libraries"&gt;AJAX Libraries&lt;/a&gt; (like &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;)
we could certainly do this exercise in significantly fewer lines of code.&lt;br&gt;
&lt;br&gt;
&lt;/i&gt;
&lt;div style="clear: both;"&gt;Today I still think about &lt;a href="http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html"&gt;Getting
that job at Google&lt;/a&gt;, Yahoo!, Amazon, or Microsoft. &lt;a href="http://adam.kahtava.com/journal/2008/01/13/HowWellDoYouKnowJavaScript.aspx"&gt;How
well do you know JavaScript?&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=8cfd415e-f895-4115-8713-5a879e1abb15" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,8cfd415e-f895-4115-8713-5a879e1abb15.aspx</comments>
      <category>.NET</category>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>CSS</category>
      <category>Firefox</category>
      <category>IE</category>
      <category>Interview</category>
      <category>JavaScript</category>
      <category>Programming Languages</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=200ba4e0-3818-4709-9277-91f85a3ee625</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,200ba4e0-3818-4709-9277-91f85a3ee625.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,200ba4e0-3818-4709-9277-91f85a3ee625.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=200ba4e0-3818-4709-9277-91f85a3ee625</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">An anticlimactic conclusion about the ASP.NET
AJAX Framework - this framework's niche seems to be the internal (intranet) business
application realm that depend on ASP.NET Web-Forms. These applications have a handful
of users, a couple developers, no performance or bandwidth requirements, little ambition
for future growth, and the developers typically embrace dragging &amp; dropping controls
in Visual Studio. In this case the ASP.NET AJAX Framework provides some eye candy,
and patches the broken Web-Form metaphor by cramming AJAX into the ASP.NET model,
but then comes along the ASP.NET MVC Framework, Silverlight, WPF and ... ??? Goodbye
ASP.NET AJAX!<br /><br /><b>Interesting observations:<br /></b><blockquote><i>How many applications explicitly state that they use the <b>ASP.NET
AJAX</b> Framework?</i><br /><ul><li><b>25</b>, this includes sites like <a href="http://www.dotnetnuke.com/">DotNetNuke</a> (with
a reputation of being slow), view the list <a href="http://www.asp.net/ajax/showcase/">here</a>.</li></ul><i>How many of these applications are relatively high-traffic?</i><br /><ul><li><b>None. ZERO!</b></li></ul><i>How many applications explicitly </i><i>state </i><i>that they use the</i><i></i><i><b>YUI</b> AJAX
Library?</i><br /><ul><li><b>89,</b> view the list <a href="http://209.73.186.27/yui/poweredby/">here</a> and <a href="http://tech.groups.yahoo.com/group/ydn-javascript/links/YUI_Implementations_001149002597/">here</a>.<b><br /></b></li></ul><i>How many of these applications are relatively high-traffic?</i><ul><li><b>Quite a few. </b>A couple notable sites: Flickr, Slashdot, Linkedin, Paypal, O'Reilly,
My Opera.</li></ul><i>How many applications explicitly </i><i>state </i><i>that they use the</i><i><b>jQuery</b> AJAX
Library?</i><br /><ul><li><b>516,</b> view the list <a href="http://docs.jquery.com/Sites_Using_jQuery">here</a>.<b><br /></b></li></ul><i>How many of these applications are relatively high-traffic?</i><ul><li><b>Many.</b> A couple notable sites: Twitter, Digg, Dell, Slashdot, BBC, Netflix,
Technorati, New York Post.</li></ul></blockquote>If no high-traffic application uses the ASP.NET AJAX Framework then why
would you? Actions (or lack of action) often speak louder than words, and it appears
that the ASP.NET AJAX Framework is not suitable for the real world.<br /><p></p><img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=200ba4e0-3818-4709-9277-91f85a3ee625" /></body>
      <title>Actions Speak Louder Than Words:  Goodbye ASP.NET AJAX</title>
      <guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,200ba4e0-3818-4709-9277-91f85a3ee625.aspx</guid>
      <link>http://adam.kahtava.com/journal/2008/05/15/ActionsSpeakLouderThanWordsGoodbyeASPNETAJAX.aspx</link>
      <pubDate>Thu, 15 May 2008 22:35:19 GMT</pubDate>
      <description>An anticlimactic conclusion about the ASP.NET AJAX Framework - this framework's niche seems to be the internal (intranet) business application realm that depend on ASP.NET Web-Forms. These applications have a handful of users, a couple developers, no performance or bandwidth requirements, little ambition for future growth, and the developers typically embrace dragging &amp;amp; dropping controls in Visual Studio. In this case the ASP.NET AJAX Framework provides some eye candy, and patches the broken Web-Form metaphor by cramming AJAX into the ASP.NET model, but then comes along the ASP.NET MVC Framework, Silverlight, WPF and ... ??? Goodbye ASP.NET AJAX!&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Interesting observations:&lt;br&gt;
&lt;/b&gt;&lt;blockquote&gt;&lt;i&gt;How many applications explicitly state that they use the &lt;b&gt;ASP.NET
AJAX&lt;/b&gt; Framework?&lt;/i&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;25&lt;/b&gt;, this includes sites like &lt;a href="http://www.dotnetnuke.com/"&gt;DotNetNuke&lt;/a&gt; (with
a reputation of being slow), view the list &lt;a href="http://www.asp.net/ajax/showcase/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;How many of these applications are relatively high-traffic?&lt;/i&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;None. ZERO!&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;How many applications explicitly &lt;/i&gt;&lt;i&gt;state &lt;/i&gt;&lt;i&gt;that they use the&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;i&gt;&lt;b&gt;YUI&lt;/b&gt; AJAX
Library?&lt;/i&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;89,&lt;/b&gt; view the list &lt;a href="http://209.73.186.27/yui/poweredby/"&gt;here&lt;/a&gt; and &lt;a href="http://tech.groups.yahoo.com/group/ydn-javascript/links/YUI_Implementations_001149002597/"&gt;here&lt;/a&gt;.&lt;b&gt;
&lt;br&gt;
&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;How many of these applications are relatively high-traffic?&lt;/i&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;Quite a few. &lt;/b&gt;A couple notable sites: Flickr, Slashdot, Linkedin, Paypal, O'Reilly,
My Opera.&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;How many applications explicitly &lt;/i&gt;&lt;i&gt;state &lt;/i&gt;&lt;i&gt;that they use the&lt;/i&gt;&lt;i&gt; &lt;b&gt;jQuery&lt;/b&gt; AJAX
Library?&lt;/i&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;516,&lt;/b&gt; view the list &lt;a href="http://docs.jquery.com/Sites_Using_jQuery"&gt;here&lt;/a&gt;.&lt;b&gt;
&lt;br&gt;
&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;How many of these applications are relatively high-traffic?&lt;/i&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;Many.&lt;/b&gt; A couple notable sites: Twitter, Digg, Dell, Slashdot, BBC, Netflix,
Technorati, New York Post.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;If no high-traffic application uses the ASP.NET AJAX Framework then why
would you? Actions (or lack of action) often speak louder than words, and it appears
that the ASP.NET AJAX Framework is not suitable for the real world.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://adam.kahtava.com/journal/aggbug.ashx?id=200ba4e0-3818-4709-9277-91f85a3ee625" /&gt;</description>
      <comments>http://adam.kahtava.com/journal/CommentView,guid,200ba4e0-3818-4709-9277-91f85a3ee625.aspx</comments>
      <category>.NET</category>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>ASP.NET AJAX</category>
      <category>JavaScript</category>
    </item>
    <item>
      <trackback:ping>http://adam.kahtava.com/journal/Trackback.aspx?guid=1d0fed50-9519-466f-ad61-c68c5f395088</trackback:ping>
      <pingback:server>http://adam.kahtava.com/journal/pingback.aspx</pingback:server>
      <pingback:target>http://adam.kahtava.com/journal/PermaLink,guid,1d0fed50-9519-466f-ad61-c68c5f395088.aspx</pingback:target>
      <dc:creator>Adam Kahtava</dc:creator>
      <wfw:comment>http://adam.kahtava.com/journal/CommentView,guid,1d0fed50-9519-466f-ad61-c68c5f395088.aspx</wfw:comment>
      <wfw:commentRss>http://adam.kahtava.com/journal/SyndicationService.asmx/GetEntryCommentsRss?guid=1d0fed50-9519-466f-ad61-c68c5f395088</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">As a student I was a pathological penny
pincher, but as much as I've complained about student loans, I'm also grateful for
them. Sure, it would be great if Canada could adopt an approach like Finland and other
European countries where education is free, but that's not in our cards. 
<br /><br /><b>Why are student loans good?</b><br /><a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=echo+bay&amp;sll=51.04507,-114.06319&amp;sspn=0.605671,0.460052&amp;ie=UTF8&amp;ll=46.485156,-84.070129&amp;spn=0.663314,0.460052&amp;t=h&amp;z=11"><img src="http://adam.kahtava.com/Journal/images/blog/EducationIsGreat_Remote.jpg" style="border: 0px none ; float: right; padding-left: 5px;" /></a>I
grew up in a small village in Northern Ontario, in a huge family - in total there
are 11 of us. YES! I have 8 siblings and we all have the same parents. :) Most Canadians
are familiar with the rural community setting (maybe not the huge family scene). A
railway runs through town, the town has 2 gas stations, a single postal code is associated
to the entire area (including all the outlying hamlets, and farms), the local high
school is 30 minutes from home, the high school kids are bussed from a 100km radius
(and there's still only about 700 students in total). Most of your childhood is spent:
crawling across beaver dams, building tree forts, playing Lego, banging away at BASIC
on rainy days, swinging from ropes in barns, chasing sheep, skateboarding, and shooting
guns. Most of the residents in these towns live modest lives, and have chosen the
rural commun