<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
   <title>Code Craft</title>
   <description>Code Craft is the place for my thoughts, rants, ideas and occassional jokes on what it means to write code, why some people are better at it than others, and how we think about software in general..</description>
   <link>http://www.journalhome.com/codecraft/</link>
   <language>en-us</language>
   <generator>JournalHome.com 0.1</generator>
  <item>
    <title>Article Notice: The Indian Bubble</title>
    <description><![CDATA[Code Craft has officially moved <ahref="http:><a href="http://codecraft.info">here</a>. <br><br>The newest article is entitled <ahref="http:>The Indian Bubble. This is my last notice.
</ahref="http:></ahref="http:>]]></description>
    <link>http://www.journalhome.com/codecraft/28566/article-notice-the-indian-bubble.html</link>
    <guid>http://www.journalhome.com/codecraft/28566/article-notice-the-indian-bubble.html</guid>
    <pubDate>Wed, 11 Oct 2006 08:37:00 +0100</pubDate>
  </item>
  <item>
    <title>Article Notice: Limericks</title>
    <description><![CDATA[Code Craft has officially moved <a href="http://codecraft.info">here</a>. <br><br>I will continue to post notices in this space for some time to help people with RSS feeds adjust. <br><br>The newest article is entitled <a href="http://codecraft.info/index.php/archives/59/">Limericks</a>, and is posted under humor]]></description>
    <link>http://www.journalhome.com/codecraft/27725/article-notice-limericks.html</link>
    <guid>http://www.journalhome.com/codecraft/27725/article-notice-limericks.html</guid>
    <pubDate>Fri, 22 Sep 2006 16:27:00 +0100</pubDate>
  </item>
  <item>
    <title>Article Notice: Yahoo, Prototype and the JavaScrpt Zeitgeist</title>
    <description><![CDATA[Code Craft has officially moved <a href="http://codecraft.info/">here.&#160;<br></a><br>I will continue to post notices in this space for some time to help people with RSS feeds adjust.&#160; <br><br>The newest article is entitled <a href="http://codecraft.info/index.php/archives/58/">Yahoo, Prototype and the JavaScrpt <!-- JH -- Removed //-->Zeitgeist</a><!-- JH -- Removed //-->, and is about the emergence of frameworks and how the relate (or don't relate) to each other. (I had to misspell because JH sucks)<br>]]></description>
    <link>http://www.journalhome.com/codecraft/27460/article-notice-yahoo-prototype-and-the-javascrpt-zeitgeist.html</link>
    <guid>http://www.journalhome.com/codecraft/27460/article-notice-yahoo-prototype-and-the-javascrpt-zeitgeist.html</guid>
    <pubDate>Sat, 16 Sep 2006 01:48:00 +0100</pubDate>
  </item>
  <item>
    <title>Article Notice: Software is the New Porn</title>
    <description><![CDATA[Code Craft has officially moved <a href="http://codecraft.info">here.&#160;<br></a><br>I will continue to post notices in this space for some time to help people with RSS feeds adjust.&#160; <br><br>The newest article is entitled <a href="http://codecraft.info/index.php/archives/57/"><span style="text-decoration: underline;">Software is the New Porn</span></a>, and is about how the software industry is pimping itself out.]]></description>
    <link>http://www.journalhome.com/codecraft/26906/article-notice-software-is-the-new-porn.html</link>
    <guid>http://www.journalhome.com/codecraft/26906/article-notice-software-is-the-new-porn.html</guid>
    <pubDate>Mon, 04 Sep 2006 00:04:00 +0100</pubDate>
  </item>
  <item>
    <title>Article Notice: Suckified by Internet Explorer</title>
    <description><![CDATA[Code Craft has officially moved <a href="http://codecraft.info/">here</a>.&#160;
<br><br>I will continue to post notices in this space for some time to help people with RSS feeds adjust.&#160; <br><br>The newest article is entitled <a href="http://codecraft.info/index.php/archives/56/"><span style="text-decoration: underline;">Suckified by Internet Explorer</span></a>, and is inteded as a humorous rant about the lack of standards compliance in IE.]]></description>
    <link>http://www.journalhome.com/codecraft/26750/article-notice-suckified-by-internet-explorer.html</link>
    <guid>http://www.journalhome.com/codecraft/26750/article-notice-suckified-by-internet-explorer.html</guid>
    <pubDate>Thu, 31 Aug 2006 15:44:00 +0100</pubDate>
  </item>
  <item>
    <title>Code Craft has moved (new article: Some Rules about Making Rules)</title>
    <description><![CDATA[Code Craft has officially moved <a href="http://codecraft.info">here</a>.&#160; In February Journal home experienced a series of outages followed by a change of ownership and the introduction of ads and rules that made it a less than ideal location for my blogging efforts.&#160; At the same time my situation at StorePerform made it very difficult to continue blogging.&#160; <br><br>Recently I have announced that I am leaving StorePerform which gives me the time and wherewithal to resume Code Craft.&#160; I've now completely moved all old articles and put the site up under my own domain (codecraft.info) using WordPress.&#160; If you were a regular reader in the past I hope you will enjoy my future articles.&#160; If you are just discovering Code Craft, please travel over to its new home and have a look.&#160; My only regret is that I could not reasonably move over the many excellent comments.&#160; I hope that people will continue to offer their comments and that the discussions will flourish.&#160; <br><br>Th<a href='http://www.journalhome.com/codecraft/26476/code-craft-has-moved-new-article-some-rules-about-making-rules.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/26476/code-craft-has-moved-new-article-some-rules-about-making-rules.html</link>
    <guid>http://www.journalhome.com/codecraft/26476/code-craft-has-moved-new-article-some-rules-about-making-rules.html</guid>
    <pubDate>Fri, 25 Aug 2006 20:09:00 +0100</pubDate>
  </item>
  <item>
    <title>Dovetailing your software drawers</title>
    <description><![CDATA[<div class="main"><p>I still remember a trip I took a few years backs to a furniture store that purported to sell "Amish" furniture. If you are unfamiliar with the Amish, they are a much caricatured religious group that disdains modern technologies such as electricity. The notion of the store is that Amish furniture is better since it is hand-made (although from the looks of it, the Amish people who made this furniture probably had a router table and some other pretty modern equipment, so I suppose that they meant Amish-style furniture or perhaps the furniture itself had been converted to follow the teachings of Jacob Amman). While I was browsing I overheard a curious conversation between a salesperson and one of the customers. The salesperson pulled out the drawer from a one-drawer oak writing table and showed the customer the high-quality dovetail joints on the rear drawer panel. He then spent about fifteen minutes explaining how great these joints were and how you just couldn't find that kind of attention <a href='http://www.journalhome.com/codecraft/20288/dovetailing-your-software-drawers.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/20288/dovetailing-your-software-drawers.html</link>
    <guid>http://www.journalhome.com/codecraft/20288/dovetailing-your-software-drawers.html</guid>
    <pubDate>Mon, 13 Feb 2006 13:44:00 +0000</pubDate>
    <category>Programming</category>
  </item>
  <item>
    <title>Idealistic opportunism</title>
    <description><![CDATA[<div class="main">
<p>Having worked at various levels in five startups and having observed a great deal more, I've come to believe that there is a very important tension that takes place within startups between idealism and opportunism. How well a company manages this balance is probably one of the single most important controllable factors in their long-term success. At its heart, the idealistic startup company is an idea company. To them it's about turning a certain idea into a reality and convincing people how great that idea is. In an idealistic company there is a lot of talk about the long-term vision and people focus on keeping things clean and simple and true to the core. People tend to think of Google and Apple as having been idealistic startups. An opportunistic startup sees a need and someone who will pay to fill that need and seizes the opportunity. Opportunistic companies focus very closely on what particular customers want; they listen carefully and meet the need as fully as they can. In an oppo<a href='http://www.journalhome.com/codecraft/17861/idealistic-opportunism.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/17861/idealistic-opportunism.html</link>
    <guid>http://www.journalhome.com/codecraft/17861/idealistic-opportunism.html</guid>
    <pubDate>Sat, 17 Dec 2005 15:49:00 +0000</pubDate>
    <category>Management</category>
  </item>
  <item>
    <title>Time to rant about time</title>
    <description><![CDATA[<DIV class=main>
<P>A couple of minutes ago one of the engineers came to me with a bug. Apparently the date parser can't agree about what timezone IST is. On some machines it appears to get Indian Standard Time and on others something like GMT+2:00 which seems likely to be Israeli Standard Time. Mug, Crug and Kublug I say. This whole timezone system is one big nightmare; we should throw out the whole messy business and fix the time problem at its source. From now on 2:00 means the same instant in time anywhere in the world. Wherever you live you'll adapt to the numbers. With that approach when someone in Chicago suggest a meeting at 5:00 with someone in Kathmandu there won't be any strange conversion, the person in Kathmandu will instantly know she's being asked to take a call in the middle of the night. Of course we'll get rid of 12 hour clocks at the same time so people won't mistakenly think that 12:00 AM is noon. We can move to military date ordering so sorting will never be a problem again as well 2005/<a href='http://www.journalhome.com/codecraft/17200/time-to-rant-about-time.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/17200/time-to-rant-about-time.html</link>
    <guid>http://www.journalhome.com/codecraft/17200/time-to-rant-about-time.html</guid>
    <pubDate>Mon, 05 Dec 2005 14:14:00 +0000</pubDate>
  </item>
  <item>
    <title>Tan, rested and ready</title>
    <description><![CDATA[<P style="MARGIN: 0px">I just got back from a week in the Maldives.&#160; 9 acres of palm trees surrounded by coral reefs teaming with fish and great food can do wonders for your outlook.&#160; I thought for about ten seconds about trying to turn that experience into some kind of allegory for software and then realized what a ridiculous idea that would be.&#160; Some laughable notion about keeping one's life balanced between work and family, maybe something about juggling glass balls or perhaps the sea as opportunity and the island safety, anyway I snapped out of it when I remembered that all the work I didn't do in the last week I now get to do this week PLUS the work I would have had to do this week anyway.&#160; </P>
<P style="MARGIN: 0px">&#160;</P>
<P style="MARGIN: 0px">So it's back to the same thing I do every night:&#160;trying to take over the world.&#160; Oh, wait, wrong blog, it's back to the task of helping make the world a better place for software... Yeah, that's it.</P>]]></description>
    <link>http://www.journalhome.com/codecraft/17175/tan-rested-and-ready.html</link>
    <guid>http://www.journalhome.com/codecraft/17175/tan-rested-and-ready.html</guid>
    <pubDate>Mon, 05 Dec 2005 07:48:00 +0000</pubDate>
  </item>
  <item>
    <title>Your friend makes less than you think</title>
    <description><![CDATA[<DIV class=main>
<P>So your good friend told you that he makes $150,000 a year, and you heard that Google pays $85,000 to fresh graduates. It's enough to make you want to find a new job and get mad at your boss for even offering a paltry $100,000 for your 10 years of hard-core experience, right... Well, right? Here's the funny thing about all these conversations, they are all basically BS. When you ask people how much they are making they lie. If they tell you without asking they lie. They lie on their credit card applications and they lie on their income taxes. Even people who are basically honest lie some of the time. To make things worse, stories grow. Let's say a friend of yours who graduated from MIT first in his class gets $80k right out of college (pretty darn good). Now you tell your other friend and so on and pretty soon a junior college grad is making $100,000 working as a tester. </P>
<P>More than once I've had employees come to me and tell me they have a friend at another company who is making S<a href='http://www.journalhome.com/codecraft/16643/your-friend-makes-less-than-you-think.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/16643/your-friend-makes-less-than-you-think.html</link>
    <guid>http://www.journalhome.com/codecraft/16643/your-friend-makes-less-than-you-think.html</guid>
    <pubDate>Fri, 25 Nov 2005 09:49:00 +0000</pubDate>
  </item>
  <item>
    <title>Free software rants page</title>
    <description><![CDATA[<div class="main"><p>Lately I've noticed that ranting is taking up too much of my time. I suspect other people probably feel the same way, so to save all of us a little time and energy I've decided to maintain this page of reusable rants. The defining goal of this page is to collect general purpose rant templates that can be reused in emails, committee meetings, or blogs so that other people can save time having to think them up. Of course, these aren't proper rants either, they are more like building blocks to make creating a proper rant easier. All rants posted here are absolutely and 100% free and can be used without reference to me or any of the other contributors. That's right, its a page that contains software rants that cost nothing (as opposed to a series of rants about free software). This space is not governed by my usual blogging rules and I'll add to it any good rants posted in the comments section. If you post one, however, understand that your content is now free for people to use without citati<a href='http://www.journalhome.com/codecraft/16597/free-software-rants-page.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/16597/free-software-rants-page.html</link>
    <guid>http://www.journalhome.com/codecraft/16597/free-software-rants-page.html</guid>
    <pubDate>Thu, 24 Nov 2005 13:02:00 +0000</pubDate>
  </item>
  <item>
    <title>Half of &quot;writing code&quot; is writing</title>
    <description><![CDATA[<DIV class=main>
<P>Yesterday I had two literary experiences with nothing in common: I watched <I>Harry Potter and the Goblet of Fire</I> with my family and I read an article entitled <A href="http://www.freesoftwaremagazine.com/free_issues/issue_09/what_is_code/"><I>What is Code</I></A> in <A href="http://www.freesoftwaremagazine.com/">Free Software Magazine</A>. With Harry Potter (the books, not the movies) I feel like Rowling has put together an insanely readable story that offers up its meaning at enough levels to satisfy everyone from an eight-year-old boy to a seventy-year-old woman. In short, it is almost as universal as Calvin and Hobbes. When I read <I>What is Code</I> my reaction was, "Holy Gotham, Batman; this looks like the work of the Riddler!" It was as though I had wandered into a barren cubist landscape where human language is ironically replaced by secret code words. I found myself wading through turns of phrase like, "epistemological dystopia" and bombarded with references to Heidegger (who<a href='http://www.journalhome.com/codecraft/16470/half-of-writing-code-is-writing.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/16470/half-of-writing-code-is-writing.html</link>
    <guid>http://www.journalhome.com/codecraft/16470/half-of-writing-code-is-writing.html</guid>
    <pubDate>Tue, 22 Nov 2005 14:37:00 +0000</pubDate>
    <category>Programming</category>
  </item>
  <item>
    <title>Full Monty TDD and political correctness</title>
    <description><![CDATA[<DIV class=main>
<P>Before I head off in to the weeds, let me get a couple of things straight: 1) I like unit testing, 2) I like agile, 3) I like getting enough sleep. With that said it's time for me to get something off my chest: I hate interaction-based unit testing and I think too much emphasis on unit tests is bad for quality! </P>
<P>For a while now I've had a basic coverage rule that governs how much unit testing is required from my team.&#160; If it covers 85% of the lines of code in the class the class is covered. We have a nice nightly automation system that ensures it and we're allowed to arbitrarily tweak the % for particular packages or classes. I'm more or less happy with this threshold and if anything I think I'd probably choose to lower that number and not raise it. When I tell my hard-core agile friends about this and mention that I don't care if people write the tests before or after they write the code I get a bunch of snickering and a kind of "I suppose if you think that's good enough for<a href='http://www.journalhome.com/codecraft/16249/full-monty-tdd-and-political-correctness.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/16249/full-monty-tdd-and-political-correctness.html</link>
    <guid>http://www.journalhome.com/codecraft/16249/full-monty-tdd-and-political-correctness.html</guid>
    <pubDate>Fri, 18 Nov 2005 16:27:00 +0000</pubDate>
    <category>Programming</category>
  </item>
  <item>
    <title>Scientists prove uncertainty of requirements</title>
    <description><![CDATA[<DIV class=main>
<P>A team of scientists at the prestigious Ritenokode University in Prague released startling new findings today that prove that the so called "software requirements" which have been a staple of high-energy coding theory for over forty years are not what we have believed them to be. While additional experimental verification is required, the findings are likely to change the way we think about software and some scientists are already hailing them as the most important discovery in coding theory since the discovery of NP completeness. </P>
<P>According to Dr Pike Ritchie, who led the research team, the discovery stems from a complex analysis involving measuring the speed-of-code against requirements. "For years we have believed that code moves through this theoretical space we called requirements and we would attempt to measure its speed through those requirements to compute the speed-of-code. What has always been a problem is that requirements never remain fixed, so our calculations were ne<a href='http://www.journalhome.com/codecraft/15901/scientists-prove-uncertainty-of-requirements.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/15901/scientists-prove-uncertainty-of-requirements.html</link>
    <guid>http://www.journalhome.com/codecraft/15901/scientists-prove-uncertainty-of-requirements.html</guid>
    <pubDate>Wed, 16 Nov 2005 08:10:00 +0000</pubDate>
    <category>Humor</category>
  </item>
  <item>
    <title>Three theories on how to use developers efficiently</title>
    <description><![CDATA[<DIV class=main>
<P>There are three main theories that I occasionally hear people expound for how to organize developers: 1) organize resources around technology layers, 2) organize resources around business areas, and 3) let everyone do everything. There are a number of fancy names for these approaches but they all escape me now. Actually my mind almost never remembers the names for things; it seems to just hook notions into my brain somewhere and then later when I need to discuss them with people or blog about them I usually have to look them up on the web, but I digress. </P>
<P>The first theory assumes that the complex thing is learning the technology skills and so you need only know about how the UI works or how the database works or how the middle-tier works, etc. You may still need to understand the whole of the business problem, but by having resources dedicated to a technology ring the feeling is that people can be more efficient. It is usually proposed by good business people or bad technologists.<a href='http://www.journalhome.com/codecraft/15583/three-theories-on-how-to-use-developers-efficiently.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/15583/three-theories-on-how-to-use-developers-efficiently.html</link>
    <guid>http://www.journalhome.com/codecraft/15583/three-theories-on-how-to-use-developers-efficiently.html</guid>
    <pubDate>Tue, 15 Nov 2005 04:04:00 +0000</pubDate>
    <category>Management</category>
  </item>
  <item>
    <title>The next software revolution wears black leather</title>
    <description><![CDATA[<DIV class=main>
<P>All revolutionaries need a fashion line. Maybe it's a red headscarf or a black armband or a fez or maybe it's bell-bottom jeans, but there is some strange intangible need for each revolution to have it's own clothing to set it apart. The problem is that sometimes the only thing useful that comes out of the revolution IS the fashion. </P>
<P>Software, it seems, has also had its share of revolutions. Here are just a few (in no particular order): Client-Server, EDI, Dynamic Typing, Test Driven Development, Relational Databases, P-Code, HTML, Object Oriented Programing, CORBA, Service Oriented Architecture, XML...etc. Now only a few of these were big enough to actually achieve the status of being a revolution, most were more like movements or perhaps just trends.</P>
<P>Frankly, that's a lot of movements in the very short span of about 40 years and it's not even close to a complete list. Many of the so-called revolutions (like real revolutions) have actually made things worse for programmer<a href='http://www.journalhome.com/codecraft/15201/the-next-software-revolution-wears-black-leather.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/15201/the-next-software-revolution-wears-black-leather.html</link>
    <guid>http://www.journalhome.com/codecraft/15201/the-next-software-revolution-wears-black-leather.html</guid>
    <pubDate>Wed, 09 Nov 2005 08:51:00 +0000</pubDate>
    <category>Articles</category>
  </item>
  <item>
    <title>Code junkies can't wait</title>
    <description><![CDATA[<DIV class=main>
<P>I remember when builds took all night and my dad can tell me horror stories about the days going almost all the way back to wire-wrap computers (when build times were just that BUILD times), but with today's hard-core horsepower it seems like build and deployment times should be a complete non-issues. Nope, build times still matter for the very simple reason that code junkies can't wait. People think fast. When doing public speaking the challenge is to keep the audience attentive. The reason it's so hard is that the people listening are thinking WAY faster than you are speaking and as a result their attention can quickly find other things to focus on (like the spaghetti stain on your white shirt). This can even happen when reading and it certainly can happen while waiting for a build. As a point of fact I decided to write this blog entry while waiting for a full build and deployment of a J2EE system. Thankfully it is a JBoss deployment rather than a WLS or (God forbid) a WAS deployment. I<a href='http://www.journalhome.com/codecraft/14339/code-junkies-cant-wait.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/14339/code-junkies-cant-wait.html</link>
    <guid>http://www.journalhome.com/codecraft/14339/code-junkies-cant-wait.html</guid>
    <pubDate>Tue, 25 Oct 2005 04:35:00 +0100</pubDate>
    <category>Programming</category>
  </item>
  <item>
    <title>What the space shuttle taught us about reuse</title>
    <description><![CDATA[<DIV class=main>
<P>The space shuttle is a great lesson for people about what NOT to do in engineering. Aside from violating every principle of KISS it basically asked all the wrong questions and as a result came to all the wrong conclusions. Consider reuse as an example. If you are going to make something more efficient by reuse the key question is where is it most important to save. With space launches the answer is so easy as to be trivial: the one thing you need to save is fuel. Fuel is the basic driver of cost for getting things in orbit. Always has been and until there are some major changes in technology (space elevator, anti-gravity, magic, whatever) it will continue to be. Now consider what the space shuttle did, it basically said the key thing we need to reuse is technology. These things are hard to build so let's just find a way to use them over and over again. All it cost them was... fuel. </P>
<P>Every time I saw a space shuttle coming down for a landing I thought to myself, "Wow, why are they <a href='http://www.journalhome.com/codecraft/14292/what-the-space-shuttle-taught-us-about-reuse.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/14292/what-the-space-shuttle-taught-us-about-reuse.html</link>
    <guid>http://www.journalhome.com/codecraft/14292/what-the-space-shuttle-taught-us-about-reuse.html</guid>
    <pubDate>Mon, 24 Oct 2005 14:03:00 +0100</pubDate>
    <category>Programming</category>
  </item>
  <item>
    <title>A new standard for standards</title>
    <description><![CDATA[<DIV class=main>
<P>Most of the people reading this may never be in charge of writing standards and thus be inclined to skip this post. Don't. These rules may be for the writer, but it's up to the user to ensure they are followed. If a standard is breaking a lot of these rules it's up to the people who adopt standards to choose NOT to adopt it. Remember IBM and Sun and Microsoft may be big, but the people writing code are a lot bigger and more powerful. Maintaining intellectual integrity is the best way to keep the worst instincts of the big guys in check. In short we need not use the processed bovine nutrient they dump out just because they dump it out. So, wielding the staff of Fiat granted me by my fathers of old I hereby and henceforth declare the following five rules for software standards. </P>
<H2>The rule of size</H2>
<P><I>"Any standard that cannot be written by three people over a period of three nights with suitable caffeinated beverage support should not be a standard. There is no limit on how <a href='http://www.journalhome.com/codecraft/14192/a-new-standard-for-standards.html'>(more)</a>]]></description>
    <link>http://www.journalhome.com/codecraft/14192/a-new-standard-for-standards.html</link>
    <guid>http://www.journalhome.com/codecraft/14192/a-new-standard-for-standards.html</guid>
    <pubDate>Sat, 22 Oct 2005 17:47:00 +0100</pubDate>
    <category>Articles</category>
  </item>
 </channel>
</rss>
<!--
        # Script executed in 0.593869924545sec
        # With 28 queries!
        //-->