<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Deseret Tech &#187; programming</title>
	<atom:link href="http://www.deserettechnology.com/journal/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deserettechnology.com/journal</link>
	<description></description>
	<lastBuildDate>Mon, 26 Sep 2011 10:49:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Reddit the open-source software</title>
		<link>http://www.deserettechnology.com/journal/reddit-the-open-source-software</link>
		<comments>http://www.deserettechnology.com/journal/reddit-the-open-source-software#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:00:10 +0000</pubDate>
		<dc:creator>jeffc</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[whining]]></category>

		<guid isPermaLink="false">http://www.deserettechnology.com/journal/?p=91</guid>
		<description><![CDATA[ketralnis has responded to this post here and throughout this thread. Occurrences of &#8220;reddit the open-source software&#8221; have been abbreviated to &#8220;reddit OSS&#8221;. &#8211; Nov. 19, 2010 I use reddit, as in reddit the open-source software, for a website that doesn&#8217;t get much traffic for several reasons. reddit OSS is one of the bigger reasons. [...]]]></description>
			<content:encoded><![CDATA[<p><em>ketralnis has responded to this post <a href="http://www.reddit.com/r/programming/comments/e7nmb/reddit_the_opensource_software/c15z6w1">here</a> and throughout <a href="http://www.reddit.com/r/programming/comments/e7nmb/reddit_the_opensource_software/">this thread</a>.</em></p>
<p><em>Occurrences of &#8220;reddit the open-source software&#8221; have been abbreviated to &#8220;reddit OSS&#8221;. &#8211; Nov. 19, 2010</em></p>
<p>I use reddit, as in reddit the open-source software, for a website that doesn&#8217;t get much traffic for several reasons. reddit OSS is one of the bigger reasons. I want to talk about reddit OSS and its management for a moment.</p>
<p>reddit OSS is published at http://github.com/reddit and http://code.reddit.com. reddit.com usually works pretty well, but reddit OSS is very unfriendly to anyone that is not reddit.com.</p>
<p>There has not been a push for about a month, and before that, there had not been a push since mid-July, despite &#8220;<a href="http://blog.reddit.com/2010/05/admins-never-do-what-you-want-now-it-is.html">planning on a much more sane release schedule for future  patches (much closer to &#8216;weekly&#8217; rather than &#8216;epoch modulo 10Ms&#8217;).</a>&#8221; The long lag time between pushing changes makes code merges when a new version eventually does get pushed a serious undertaking, especially for those who run hobby or part-time sites (as most running the reddit open-source platform would be). Each time I have updated my reddit installation to a new HEAD it has been two or three days of configuration, re-merging, and bug-squashing before the updated codebase was working as expected; recently, subtle failures occurred while running ads for the site and essentially made it impossible to post comments. If changes were pushed in smaller increments, the same necessary merges would be much easier to handle; merging three or four changes is much simpler than merging 60-70+.</p>
<p>Merges get even more complicated because to customize reddit even in the most basic ways, you&#8217;ll have to hack up several base code files that contain a lot of other stuff. When you clone reddit from git, <a href="http://github.com/reddit/reddit/blob/4778b17e939e119417cc5ec25b82c4e9a65621b2/r2/r2/public/static/ad_default.html">the clone <em>comes with the same ads</em></a> that run on reddit, and the only way to remove them is to edit that file, a file that git tracks and a file that clashes on merges (if you don&#8217;t &#8211;assume-unchanged, which is probably safe in this case as that file hasn&#8217;t been updated in over two years, but still extra hassle and excludes all future changes from applying automatically &#8212; changes which may be important).</p>
<p>There are several other instances for things that really should have been cleaned up for reddit OSS but still linger, and as you go through removing all them, you get quite a few changes built up &#8212; changes that cause problems when it&#8217;s time to pull. You shouldn&#8217;t have to sanitize the codebase of the OSS version in the first place; that&#8217;s the maintainer&#8217;s job.</p>
<p>Most obvious among these things that should have been stripped is the reddit alien. It is all over the place &#8212; under the submit link button, under the create a subreddit button, thumbnail placeholder, and so on. As far as I know the reddit alien is still held by Conde Nast/reddit corporate under an All Rights Reserved copyright license, as one might expect for a company&#8217;s logo. The term &#8220;reddit&#8221;, &#8220;subreddit&#8221;, etc., appear throughout the site, causing potential trademark liabilities.</p>
<p>If a website that runs reddit OSS starts to gain momentum, how long do we expect the lawyers at Conde Nast to abide usage of the reddit name and logo on a website over which they have no control, especially if that site infringes on reddit.com&#8217;s primary audience? Why can&#8217;t they draw an distinct alien for reddit OSS or just include generic images and icons from Tango et al? It would be a much better thing to do so. My site has been going for almost a year and I&#8217;m still finding the term &#8220;reddit&#8221; sprinkled in odd places, despite going through the translation file a few times. It&#8217;s hard-coded in some spots.</p>
<p>Then, to run reddit OSS, one must use memcached, Cassandra, an AMQP server like rabbitmq, PostgreSQL, and a handful of paster daemons included with reddit, which are currently configured to run with daemontools, so unless you want to spend a while converting the current scripts/daemons, you must also install and use daemontools. Furthermore, running these daemons is non-obvious and it was not required when I originally pulled, so it took me a while to figure out a lot of the weird bugs I got resulted from not running these daemons. These daemons are mostly for caching as far as I know, but if you don&#8217;t have them in place weird things like disappearing thumbnails and comments will befall you. The commit messages I saw did not make big shiny letters about it, and the overall documentation is poor.</p>
<p>reddit.com does almost no testing of reddit OSS. They just push out what they run on reddit.com. Many times in #reddit-dev I have seen &#8220;we haven&#8217;t tested it that way but it should work&#8230;&#8221; before someone describes a bug or submits a patch. reddit does not test reddit in a conventional environment.</p>
<p>In the October update, reddit merged several contributed patches, but prior thereto it was rather rare, only occurring a couple of times on a couple of patches (from the github history). There are still a lot of changes out there that would do well to be merged, but reddit.com is trying to keep the codebase unified (despite its super-ugly squash commits that get pushed out in the &#8220;weekly&#8221; updates), so if your patch <em>would</em> help most users of reddit OSS but not reddit.com, it won&#8217;t get merged. This can be good in some cases &#8212; it forced me to produce a more scalable <a href="https://github.com/reddit/reddit/pull/15">database reconnect priority patch</a>, for instance  &#8212; but it can also mean that more sensible defaults or caching mechanisms for sites that are not reddit.com would be rejected.</p>
<p>The reddit guys insist that their number one priority is reddit.com and almost any time someone brings up a push of reddit.com to the OSS version or merging of a patch or whatever in #reddit-dev, ketralnis is adamant that there is just <em>no time</em> for that. reddit is clearly understaffed and reddit OSS is largely neglected.</p>
<p>There&#8217;s not necessarily anything wrong with that, but all of this means that reddit OSS is in prime condition for a fork. However, ketralnis does not think a fork is a good idea. Here is a snippet from IRC, with pieces omitted for brevity and coherence:</p>
<blockquote><p><span style="color: #16569e;"><span style="font-size: x-small;">(01:03:12 AM)</span> <strong>sjuxax:</strong></span> I am planning on forking reddit sometime soon fyi<br />
<span style="color: #a82f2f;"><span style="font-size: x-small;">(01:05:07 AM)</span> <strong>ketralnis:</strong></span> I wouldn&#8217;t recommend that</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:05:12 AM)</span> <strong>sjuxax:</strong></span> why?</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:05:21 AM)</span> <strong>ketralnis:</strong></span> It&#8217;d be a nightmare to maintain against our code-releases, for one</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:05:47 AM)</span> <strong>ketralnis:</strong></span> For another, the license make it difficult to divorce from our brand</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:05:55 AM)</span> <strong>sjuxax:</strong></span> Well it&#8217;s already a nightmare to merge with the six-month release cycles and big changes you guys make.</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:06:12 AM)</span> <strong>ketralnis:</strong></span> Agreed, and we should do less of that</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:06:14 AM)</span> <strong>sjuxax:</strong></span> The license basically just requires the attribution at the bottom, right?</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:06:39 AM)</span> <strong>ketralnis:</strong></span> If you&#8217;re planning on forking it, you should actually read it. It&#8217;s not a long one</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:06:43 AM)</span> <strong>sjuxax:</strong></span> so we can leave that, but the alien is all over. Obviously the license won&#8217;t let us get rid of the powered by reddit logo, but the rest should be free to go</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:06:51 AM)</span> <strong>sjuxax:</strong></span> I have read it in the past, but it&#8217;s been a while</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:07:16 AM)</span> <strong>ketralnis:</strong></span> I understand where you&#8217;re coming from, but it would harm our open-source development to have it forked</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:08:43 AM)</span> <strong>sjuxax:</strong></span> Well I would prefer to keep upstream and the fork at least somewhat compatible</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:08:58 AM)</span> <strong>sjuxax:</strong></span> so hopefully most patches could still go both ways</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:10:17 AM)</span> <strong>sjuxax:</strong></span> but yeah, uh, sorry. reddit has neglected its open-source users imo so a fork is inevitable when you get serious users; that&#8217;s why we use OSS software; if the maintainer isn&#8217;t taking care of it, someone else can</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:10:47 AM)</span> <strong>ketralnis:</strong></span> We are taking care of it, in that it&#8217;s what&#8217;s running our live site, right now. 14 million pageviews yesterday.</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:11:04 AM)</span> <strong>ketralnis:</strong></span> So I&#8217;d say it&#8217;s holding up rather well under its current maintanence</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:11:21 AM)</span> <strong>sjuxax:</strong></span> OK, you are taking care of your reddit installation, you are running reddit for reddit which is fine if that&#8217;s what you want to do</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:11:25 AM)</span> <strong>ketralnis:</strong></span> The right solution is for me to set aside a day to merge up with public, not to go forking it</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:11:28 AM)</span> <strong>sjuxax:</strong></span> but it is not attractive as an option for not-reddit</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:11:43 AM)</span> <strong>ketralnis:</strong></span> I&#8217;m telling you, forking us will hurt reddit.</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:11:50 AM)</span> <strong>sjuxax:</strong></span> but you don&#8217;t set aside that day often enough; you were going to do it weekly but now it&#8217;s been months again</p>
<p><span style="color: #16569e;"><span style="font-size: x-small;">(01:12:57 AM)</span> <strong>sjuxax:</strong></span> reddit as an open-source project is either going to get forked or going to continue to limp on. it will be nice for reddit&#8217;s reddit, but if things keep going how they have been going, virtually no one is going to use the code you publish.</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:12:57 AM)</span> <strong>ketralnis:</strong></span> I don&#8217;t have time to argue this right now. But trust me, you forking reddit will fuck up my week, and probably stall any future open source contribution to reddit.</p>
<p><span style="color: #a82f2f;"><span style="font-size: x-small;">(01:13:53 AM)</span> <strong>ketralnis:</strong></span> Forking it will make that situation worse by losing the only developers *paid* to contribute to it from your fork, and any open source developers from either</p></blockquote>
<p>So reddit corporate would not be happy to see a fork rise up, but what choice do users of reddit OSS have? Things are definitely not good the way they are now and I think that a fork is ultimately inevitable unless reddit revises their policies, allows some divergence, and finally takes the open-source side of things seriously.</p>
<p>Is there much interest in a fork out there? There&#8217;s lots of good contributions on github that remain unmerged, and a fork would be more active about merging these and especially merging changes that enhance the platform for smaller sites. Once someone gets reddit.com-level traffic, they can switch the platform to the official reddit OSS and then all of the onerous/tricky/annoying/monstrous stuff that is employed by reddit to allow caching and survival under that kind of traffic will be beneficial.</p>
<p>The paths before reddit.com/reddit corporate are A) take reddit OSS seriously, get patching and merging fixed up and make it easier to push out changes, and then maintain the open-source version frequently and well, including possible divergences where it benefits the OSS user; B) stay the course until someone forks, and its unclear what the ultimate consequences of this would be. ketralnis seems to think it would mean a secession of commercially-funded development entirely; or C) stay the course until everyone gives up on reddit OSS and the project withers and dies. What&#8217;ll it be?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deserettechnology.com/journal/reddit-the-open-source-software/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Hosting shared folder from IIS 7 and VirtualBox</title>
		<link>http://www.deserettechnology.com/journal/hosting-shared-folder-from-iis-7-and-virtualbox</link>
		<comments>http://www.deserettechnology.com/journal/hosting-shared-folder-from-iis-7-and-virtualbox#comments</comments>
		<pubDate>Wed, 15 Sep 2010 05:34:39 +0000</pubDate>
		<dc:creator>jeffc</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.deserettechnology.com/journal/?p=86</guid>
		<description><![CDATA[I have a Win7 guest running in VirtualBox. I&#8217;m working on a .NET project and got really sick of rebooting for Windows, so after some failed attempts to forward the ports for MSSQL and connect remotely, I have configured the guest to host my whole application while I develop and build in MonoDevelop. I didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I have a Win7 guest running in VirtualBox. I&#8217;m working on a .NET project and got really sick of rebooting for Windows, so after some failed attempts to forward the ports for MSSQL and connect remotely, I have configured the guest to host my whole application while I develop and build in MonoDevelop.</p>
<p>I didn&#8217;t want to have to make a commit and push/pull every time I wanted to test, so I configured IIS 7 to use a shared folder from my host. However, conventional \\vboxsvr and VirtualBox shared folders do <strong>NOT</strong> work; IIS refuses to read the files, even after trying everything in the relevant Microsoft KB articles.</p>
<p>There is probably something wrong or incomplete in the VirtualBox implementation, because if you share the folder via Samba everything works swimmingly. I am using VirtualBox 3.2.8; if you are trying to use VBox&#8217;s shared folders to host a folder for IIS, stop now and set it up via Samba. This should solve any lingering difficulty unresolved by the Microsoft articles.</p>
<p>Once you have your share configured via Samba, just make sure that you configure IIS to &#8220;Connect as&#8230;&#8221; the user you&#8217;ve configured for Samba with smbpasswd and that you are using a UNC compatible path name (\\server\folder (in case of VirtualBox, this will usually be \\10.0.2.2\folder)), not mapped drive letters like X: because mapped drive letters only exist for the users that mount them (i.e. your main user, not your IIS user).</p>
<p>You may get another security related error, which can be resolved by entering the .NET Framework Configuration Manager and enabling FullTrust for the correct Code Group (I just enabled it for LocalIntranet due to the inherently local nature of the VirtualBox setup on my development box).</p>
<p>This article may help if you are receiving the following errors:</p>
<ul>
<li>&#8220;The requested page cannot be accessed because the related configuration data for the page is invalid&#8221;: 0&#215;80070003, 0&#215;80070005, etc.</li>
<li>Exception Details: System.Security.SecurityException: Security error. PublicKeyToken=b77a5c561934e089</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.deserettechnology.com/journal/hosting-shared-folder-from-iis-7-and-virtualbox/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL v. SQL is the worst holy war ever.</title>
		<link>http://www.deserettechnology.com/journal/nosql-v-sql-is-the-worst-holy-war-ever</link>
		<comments>http://www.deserettechnology.com/journal/nosql-v-sql-is-the-worst-holy-war-ever#comments</comments>
		<pubDate>Wed, 03 Mar 2010 05:10:32 +0000</pubDate>
		<dc:creator>jeffc</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[whining]]></category>

		<guid isPermaLink="false">http://www.deserettechnology.com/journal/?p=44</guid>
		<description><![CDATA[This seems to be filled with religious contention, as demonstrated at ﻿﻿﻿﻿http://news.ycombinator.com/item?id=1163039 . Both sides are talking past each other, so I want to lay it out flat. First of all, while NoSQL and RDBMS can sometimes exclude one another, they should not be seen as adversaries. NoSQL is designed to address a certain problem [...]]]></description>
			<content:encoded><![CDATA[<p>This seems to be filled with religious contention, as demonstrated at ﻿﻿﻿﻿<a href="http://news.ycombinator.com/item?id=1163039">http://news.ycombinator.com/item?id=1163039</a> . Both sides are talking past each other, so I want to lay it out flat.</p>
<p>First of all, while NoSQL and RDBMS can sometimes exclude one another, they should not be seen as adversaries. NoSQL is designed to address a certain problem space and RDBMS is designed to address another. Both can be an important part of one infrastructure. So all of the resentment between sides is pointless.</p>
<p>Relational databases scale. NoSQL databases scale. Both are scalable and tunable, depending on the situation. Sometimes an RDBMS will be better for your project (yes, even in performance). Sometimes a NoSQL datastore will be better for your project.</p>
<p>NoSQL datastores like CouchDB and MongoDB are developed by competent developers. They are used by competent developers.</p>
<p>Relational and SQL-bearing databases like SQL Server and PostgreSQL are developed by competent developers. They are used by competent developers.</p>
<p>NoSQL offers a barebones solution for people whose primary concerns are speed and load. RDBMS offer a full-fledged solution for people whose primary concerns are data integrity and interrelatibility.</p>
<p>There might be a place in your organization for both!</p>
<p>There is no need to get haughty about this. Pick the design that works best for your problem set. There is no need for one to eliminate the other. Both are useful.</p>
<p>Good software development is all about good judgement. Anyone can learn syntax rules and throw together something that kind-of-sort-of works, but a good developer will know when to deploy one thing and when to deploy another. Keep your options open and stop the silliness.</p>
<p>NoSQL v. SQL is the worst holy war ever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deserettechnology.com/journal/nosql-v-sql-is-the-worst-holy-war-ever/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>python-ldap &#8220;expected a string in the list&#8221;</title>
		<link>http://www.deserettechnology.com/journal/python-ldap-expected-a-string-in-the-list</link>
		<comments>http://www.deserettechnology.com/journal/python-ldap-expected-a-string-in-the-list#comments</comments>
		<pubDate>Thu, 04 Feb 2010 01:14:35 +0000</pubDate>
		<dc:creator>jeffc</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.deserettechnology.com/journal/?p=42</guid>
		<description><![CDATA[This error is given by python-ldap on Python 2.x on certain operations when it receives unicode objects where it expects a str object. Make sure any strings you pass into python-ldap are string type, not unicode type, and this problem will go away.  :)]]></description>
			<content:encoded><![CDATA[<p>This error is given by python-ldap on Python 2.x on certain operations when it receives unicode objects where it expects a str object. Make sure any strings you pass into python-ldap are string type, not unicode type, and this problem will go away.  :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deserettechnology.com/journal/python-ldap-expected-a-string-in-the-list/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joel&#8217;s &#8220;Duct-Tape Programmer&#8221; is the only programmer you should ever hire.</title>
		<link>http://www.deserettechnology.com/journal/joels-duct-tape-programmer-is-the-only-programmer-you-should-ever-hire</link>
		<comments>http://www.deserettechnology.com/journal/joels-duct-tape-programmer-is-the-only-programmer-you-should-ever-hire#comments</comments>
		<pubDate>Tue, 29 Sep 2009 02:57:01 +0000</pubDate>
		<dc:creator>jeffc</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.deserettechnology.com/journal/?p=16</guid>
		<description><![CDATA[I&#8217;ve just finished reading Joel Spolsky&#8217;s &#8220;Duct Tape Programmers&#8221; and jwz&#8217;s response to it. These posts strike a chord with me, especially that Spolsky spends the entirety of the article praising &#8220;The Duct-Tape Programmer&#8221; before he urges you not to try it. Mr. Spolsky should consider this situation: I&#8217;ve just got off a job where [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished reading <a href="http://www.joelonsoftware.com/items/2009/09/23.html" target="_blank">Joel Spolsky&#8217;s &#8220;Duct Tape Programmers&#8221;</a> and <a href="http://jwz.livejournal.com/1096593.html" target="_blank">jwz&#8217;s response</a> to it.</p>
<p>These posts strike a chord with me, especially that Spolsky spends the entirety of the article praising &#8220;The Duct-Tape Programmer&#8221; before he urges you not to try it. Mr. Spolsky should consider this situation:</p>
<p>I&#8217;ve just got off a job where the on-staff programmers were absolutely adamant that CakePHP be deployed in _every_ conceivable usage. The manager was brand-new, fresh out of college, with no mentionable experience. The other developer was a contracted freelancer who has never been exposed to any &#8220;decent&#8221; work (unless you count his own, which, of course, he does).</p>
<p>Neither one of these people know about Joel Spolsky, Jamie Zawinsky, Aaron Seigo, or almost any other important software commentator or developer, and they make very few strides toward self-improvement.</p>
<p>When I left this team, they were weeks behind schedule because the naive and helpless manager/developer was unable to match his task and the contracted developer&#8217;s blinding arrogance and selfish motives regularly incited rewrites (of everyone&#8217;s code, never just his own), and caused the whole system to run completely amok. What they&#8217;ve completed is horrendously slow and unintuitive.</p>
<p>Mr. Spolsky, when you implore your readers not to follow in jwz&#8217;s footsteps of judgment and application, is this what you envision? Because this is where it leads.  Obsession with fads or hyperfocus on one area of good practice and other symptoms of programming elitism do no good to someone actually interested in developing or maintaining functional software. Both employees in the above scenario had often-prattled lines to back up their incompetence (&#8220;premature optimization&#8221;, which I, regrettably, taught them, was their favorite), but the fact is that the principles and strategies these things represent are <em>no good </em>without context.</p>
<p>No one should ever hire someone who&#8217;s not a &#8220;duct-tape programmer&#8221; as Joel defines it, because they&#8217;re not actually &#8220;duct-tape programmers&#8221;, they&#8217;re the only the competent players in the field. Good programming is all about good judgment.</p>
<p>Computers are fast these days, and can take a lot of crappy programming, but unnecessarily wasteful solutions do tend to add up to a noticeable detriment in any sizable application. Sometimes this is a valid tradeoff, but sometimes it isn&#8217;t; good programming is all about finding the right balance.</p>
<p>I can&#8217;t tell you how many hours the contracted programmer wasted debugging functions deep within the netherparts of CakePHP when a faster, better, and more suitable custom component could have been built much faster and maintained much easier. That&#8217;s an example of a bad programmer because no matter how well he knows the target platform, he&#8217;s going to regularly misapply that knowledge.</p>
<p>Spolsky&#8217;s description paints the duct-tape programmer as an ignoramus, a programmer who&#8217;d just as well stick to pre-1990 languages, methods, and conventions, but that&#8217;s clearly not the case with jwz, who was <a href="http://jwz.livejournal.com/1096401.html" target="_blank">one of the first third-party developers for the Palm Pre</a>. jwz, like all other good programmers, simply knows how and when to avoid cruft and how and when to leverage existing work.</p>
<p>So, when Joel says the &#8220;duct-tape programmer&#8221;, what he really means is the &#8220;pragmatic, profitable programmer, the only kind of programmer you should ever hire or use; a &#8216;good&#8217; programmer&#8221;. These programmers <em>do</em> follow the changes in the field and they <em>do</em> play with new technologies and methods. They simply know when to experiment, when to complicate, when to simplify, and when to ship.</p>
<p>There&#8217;s not necessarily anything wrong with C++, Java, Flash, or any of the thousands of other tools out there, most of which were developed for a Good Reason(tm); you just have to have the judgment to know when, where, and how to deploy them such that the product will perform adequately and business needs will be met.</p>
<p>Do yourself a favor and pattern your next hire after jwz; get a programmer with the know-how <em>and</em> the wisdom, because one is useless without the other.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deserettechnology.com/journal/joels-duct-tape-programmer-is-the-only-programmer-you-should-ever-hire/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

