<?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>Ninja Monkeys! &#187; programming</title>
	<atom:link href="http://ninjamonkeys.co.za/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://ninjamonkeys.co.za</link>
	<description>Killing boredom</description>
	<lastBuildDate>Wed, 25 Jan 2012 07:18: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>The Myth of the Super Programming Language</title>
		<link>http://ninjamonkeys.co.za/2010/05/12/the-myth-of-the-super-programming-language/</link>
		<comments>http://ninjamonkeys.co.za/2010/05/12/the-myth-of-the-super-programming-language/#comments</comments>
		<pubDate>Wed, 12 May 2010 06:21:53 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2010/05/12/the-myth-of-the-super-programming-language/</guid>
		<description><![CDATA[The anecdotal benefits of esoteric languages are a selection effect. Here is a common scenario. Lots of really smart programmers think they are too good to waste their talents doing mere application programming. But they also love esoteric languages that show off how smart they are. So you can get them to do application programming [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The anecdotal benefits of esoteric languages are a <strong>selection<br />
effect</strong>. Here is a common scenario. Lots of really smart<br />
programmers think they are too good to waste their talents doing mere<br />
application programming. But they also love esoteric languages that show<br />
 off how smart they are. So you can get them to do application<br />
programming by letting them use their beloved smarty-pants languages.<br />
Presto, amazing results. But the ubermensch aren’t about to stoop to<br />
maintenance programming. Once the fun development is done, they are<br />
gone. When you bring in professional programmers to take care of things,<br />
 they are dumbfounded by the towering monument to mental masturbation.<br />
The system gets thrown out and rewritten in a normal programming<br />
language using normal techniques that normal people understand. The<br />
super programmers blame it on the stupidity of the new hires, further<br />
confirming their sense of superiority.</p></blockquote>
<p><a href="http://alarmingdevelopment.org/?p=392">http://alarmingdevelopment.org/?p=392</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2010/05/12/the-myth-of-the-super-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script to focus and raise window demanding attention</title>
		<link>http://ninjamonkeys.co.za/2010/02/24/script-to-focus-and-raise-window-demanding-attention/</link>
		<comments>http://ninjamonkeys.co.za/2010/02/24/script-to-focus-and-raise-window-demanding-attention/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 17:17:39 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openbox]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2010/02/24/script-to-focus-and-raise-window-demanding-attention/</guid>
		<description><![CDATA[I&#8217;m running Openbox with Gnome on Linux, and windows demanding attention show in the taskbar with a yellow highlight, usually Skype IMs or something. I&#8217;ve created the following bash script that I bind to a hotkey win-j, and pressing it changes to the correct desktop, raises the window, and focuses it. Huge time saver! for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m running Openbox with Gnome on Linux, and windows demanding attention show in<br />
the taskbar with a yellow highlight, usually Skype IMs or something.<br />
I&#8217;ve created the following bash script that I bind to a hotkey win-j, and pressing it changes to the correct desktop, raises the window, and focuses it. Huge time saver!</p>
<pre>for id in `wmctrl -l | cut -d " " -f 1`; do
    xprop -id $id | grep "_NET_WM_STATE_DEMANDS_ATTENTION" 2&gt;&amp;1 &gt; /dev/null
    if [ "$?" = "0" ]; then
        wmctrl -i -a $id
        exit 0
    fi
done
exit 1</pre>
<p>Requirements: <a href="http://tripie.sweb.cz/utils/wmctrl/">Wmctrl</a> (sudo apt-get install wmctrl)</p>
<p>Here&#8217;s another adaptation I&#8217;ve added. Two scripts, one bound to Win-r to jump to the window demanding attention, and another bound to W-Shift-r that jumps back to the window you were busy with.</p>
<p>First:</p>
<pre>#!/bin/bash
activeWinIdLine=`xprop -root | grep _NET_ACTIVE_WINDOW\(WINDOW\) `
activeWinId="${activeWinIdLine:40}"
echo $activeWinId &gt; ~/activeWinId
for id in `wmctrl -l | cut -d " " -f 1`; do
	xprop -id $id | grep "_NET_WM_STATE_DEMANDS_ATTENTION" 2&gt;&amp;1 &gt; /dev/null
	if [ "$?" = "0" ]; then
		wmctrl -i -a $id
		exit 0
	fi
done
exit 1</pre>
<p>Second:</p>
<pre>#!/bin/bash
if [ -f ~/activeWinId ]; then
	origWinId=`cat ~/activeWinId`
	wmctrl -i -a $origWinId
fi

<a href="https://github.com/vaughnd/window_management_scripts">Download these scripts and more from my Github</a>.</pre>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2010/02/24/script-to-focus-and-raise-window-demanding-attention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Urban Hack Attack &#8211; Episode 1</title>
		<link>http://ninjamonkeys.co.za/2010/02/09/urban-hack-attack-episode-1/</link>
		<comments>http://ninjamonkeys.co.za/2010/02/09/urban-hack-attack-episode-1/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 09:02:17 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2010/02/09/urban-hack-attack-episode-1/</guid>
		<description><![CDATA[Coolest hack I&#8217;ve ever seen, but can lights refresh that quickly?! Please don&#8217;t destroy my hopes and dreams by finding proof it&#8217;s a hoax.]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0L7DTMKekoU&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/0L7DTMKekoU&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Coolest hack I&#8217;ve ever seen, but can lights refresh that quickly?! Please don&#8217;t destroy my hopes and dreams by finding proof it&#8217;s a hoax.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=08774256-4565-8feb-a54d-adae04575549" /></div>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2010/02/09/urban-hack-attack-episode-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Solution to Trac and subversion on dreamhost.com with svnsync not showing correct users and commit messages</title>
		<link>http://ninjamonkeys.co.za/2009/05/13/solution-to-trac-and-subversion-on-dreamhostcom-with-svnsync-not-showing-correct-users-and-commit-messages/</link>
		<comments>http://ninjamonkeys.co.za/2009/05/13/solution-to-trac-and-subversion-on-dreamhostcom-with-svnsync-not-showing-correct-users-and-commit-messages/#comments</comments>
		<pubDate>Wed, 13 May 2009 16:08:44 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/?p=1147</guid>
		<description><![CDATA[I installed Trac on dreamhost.com using CreamyTrac with an svnsynced Subversion repository from our local one, and the post-commit hook to do &#8216;close #3&#8242; wasn&#8217;t working and the correct commit messages and users weren&#8217;t showing up until I did a trac-admin resync. Most of the info I found on the web didn&#8217;t help, but I [...]]]></description>
			<content:encoded><![CDATA[<p>I installed <a href="http://trac.edgewall.org/">Trac</a> on <a href="http://dreamhost.com">dreamhost.com</a> using <a href="http://trac.mlalonde.net/wiki/CreamyTrac">CreamyTrac</a> with an <a href="http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt">svnsync</a>ed <a href="http://subversion.tigris.org/">Subversion</a> repository from our local one, and the post-commit hook to do &#8216;close #3&#8242; wasn&#8217;t working and the correct commit messages and users weren&#8217;t showing up until I did a trac-admin resync.</p>
<p>Most of the info I found on the web didn&#8217;t help, but I eventually solved it myself by using hook post-revprop-change instead of post-commit with the code shown below. This code only activates when svnsync is completely finished and has unlocked the destination repository, then it syncs the latest revision with Trac and then runs the Trac post-commit hook to close tickets, etc. Svnsync only seems to update commit messages and users after committing code, so Trac has the wrong information in post-commit, so you have to use post-revprop-change instead.</p>
<pre>REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

# Export bash variables required by trac.fcgi
export HOME="/home/me"
# Root directory for the Trac project
export TRAC_PROJECT_DIR="/home/me/trac_projects"
export TRAC_ENV="/home/me/trac_projects/myproj"

. ${HOME}/.bash_profile

if [ "$ACTION" = "D" -a "$PROPNAME" = "svn:sync-lock" ]; then
    YOUNGEST_REV=`svnlook youngest /home/me/svn/myproj`
    trac-admin $TRAC_ENV resync $YOUNGEST_REV
    ${RUN}/bin/python ${RUN}/share/trac/contrib/trac-post-commit-hook \
        -p "$TRAC_ENV" \
        -r "$YOUNGEST_REV"
fi</pre>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2009/05/13/solution-to-trac-and-subversion-on-dreamhostcom-with-svnsync-not-showing-correct-users-and-commit-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine now supporting Java virtual machine</title>
		<link>http://ninjamonkeys.co.za/2009/04/08/google-app-engine-now-supporting-java-virtual-machine/</link>
		<comments>http://ninjamonkeys.co.za/2009/04/08/google-app-engine-now-supporting-java-virtual-machine/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 09:12:09 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software-development]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/?p=1133</guid>
		<description><![CDATA[Google&#8217;s just released a Java 6 virtual machine on their Google App Engine platform. It&#8217;s a sandbox environment that wraps the Google services in standard Java interfaces that should be able to run most libraries with some tweaks. This is pretty huge, because depending on how restrictive the sandbox is we could run Scala, Groovy, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-1134" title="ae_gwt_java" src="http://ninjamonkeys.co.za/wp-content/uploads/2009/04/ae_gwt_java-150x115.png" alt="ae_gwt_java" width="150" height="115" />Google&#8217;s just <a href="http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html">released a Java 6 virtual machine on their Google App Engine platform</a>. It&#8217;s a sandbox environment that wraps the Google services in standard Java interfaces that should be able to run most libraries with some tweaks.</p>
<p>This is pretty huge, because depending on how restrictive the sandbox is we could run Scala, Groovy, Jython, JRuby, etc. on top of the same VM. Now if I can just get my head around non-relational databases.</p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2009/04/08/google-app-engine-now-supporting-java-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How software developers work</title>
		<link>http://ninjamonkeys.co.za/2009/03/17/how-software-developers-work/</link>
		<comments>http://ninjamonkeys.co.za/2009/03/17/how-software-developers-work/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 07:14:38 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software-development]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/?p=1084</guid>
		<description><![CDATA[Want to understand your software developers better? Here&#8217;s the one thing you need to understand above all else. Our work process is a dream. We have to build all the structures in our mind, piece by piece, and then translate them into code. Developers don&#8217;t just sit down, write out code using standardised formulas, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/michaelwender/2203848180/"><img class="alignright size-thumbnail wp-image-1088" title="2203848180_52d8463505" src="http://ninjamonkeys.co.za/wp-content/uploads/2009/03/2203848180_52d8463505-150x112.jpg" alt="2203848180_52d8463505" width="150" height="112" /></a>Want to understand your software developers better? Here&#8217;s the one thing you <strong><em>need</em></strong> to understand above all else.</p>
<p>Our work process is a dream.</p>
<p>We have to build all the structures in our mind, piece by piece, and then translate them into code. Developers don&#8217;t just sit down, write out code using standardised formulas, and call it a day. No, we have to build an imaginary house of cards in our minds and then painstakingly transform every angle, force, and material into logic code, all without waking from the dream. It is a creative process, and one not easily replicated.</p>
<p>Now, imagine you were in deep sleep, dreaming away about apples at 3am, and I came bashing into your room and said &#8220;Sorry, but we need you to dream about bananas now.&#8221; Do you think you could go straight back to sleep in a few seconds, dream about bananas for a bit, and then jump back to your original dream about apples? No, of course not, but this is what managers expect when they throw new tasks at us while we&#8217;re busy coding the first one. When this happens we&#8217;ve lost the hours we&#8217;ve spent on the first dream, we&#8217;re completely lost for half an hour, and then we eventually manage to get into the new dream.</p>
<p>So please, if you want your developers to remain sane and productive do not wake them from their dream!</p>
<p>p.s. also make sure they&#8217;re not doing the same work year after year, there&#8217;s nothing that developers hate more than repeating themselves.</p>
<p>Update: On the internet, nothing is new: <a href="http://alexthunder.livejournal.com/309815.html">http://alexthunder.livejournal.com/309815.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2009/03/17/how-software-developers-work/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Corporate development statistics</title>
		<link>http://ninjamonkeys.co.za/2008/08/15/corporate-development-statistics/</link>
		<comments>http://ninjamonkeys.co.za/2008/08/15/corporate-development-statistics/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 15:06:04 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2008/08/15/corporate-development-statistics/</guid>
		<description><![CDATA[Fifty percent of respondents said a typical project cost between $1 million and $5 million, and 7 percent pegged it at more than $20 million. As for labor, some 63 percent said it took less than 200 &#8220;person-months&#8221; to finish a project, while 38 percent said it took at least 2,000. Meanwhile, more than one-third [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Fifty percent of respondents said a typical project cost between $1 million and $5 million, and 7 percent pegged it at more than $20 million.</p>
<p>As for labor, some 63 percent said it took less than 200 &#8220;person-months&#8221; to finish a project, while 38 percent said it took at least 2,000.</p>
<p>Meanwhile, more than one-third of projects are abandoned after being implemented, and only 37 percent of finished projects met users&#8217; needs.</p>
<p><cite><a href="http://www.infoworld.com/article/08/08/14/Analyst_Inhouse_app_development_fraught_with_waste_1.html?source=rss&amp;url=http://www.infoworld.com/article/08/08/14/Analyst_Inhouse_app_development_fraught_with_waste_1.html">Analyst: In-house app development fraught with waste | InfoWorld | News | 2008-08-14 | By Chris Kanaracus, IDG News Service </a></cite></p></blockquote>
<p>I&#8217;m so glad I don&#8217;t work in corporate anymore. Brilliant leaders with strong programming and design skills are hard to find, so most corporate projects are just rudderless ships waiting for the sponsors to realise they&#8217;ve been going in circles for three years.</p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2008/08/15/corporate-development-statistics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q&amp;A: Should I study Java or C#?</title>
		<link>http://ninjamonkeys.co.za/2008/04/24/qa-should-i-study-java-or-c/</link>
		<comments>http://ninjamonkeys.co.za/2008/04/24/qa-should-i-study-java-or-c/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 06:40:59 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[self-development]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/?p=808</guid>
		<description><![CDATA[Q: Should I study Java or C#? A: 1) Java is still way ahead of C# and always will be because it&#8217;s cross-platform, more open, and better at server stuff. Only Microsoft developers will tell you it&#8217;s the way ahead because they don&#8217;t see past the technologies they&#8217;re spoon-fed (yes, that&#8217;s meant to be inflammatory [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Q:</strong> Should I study Java or C#?</p>
<p><strong>A:</strong> 1) <a href="http://www.google.com/trends?q=java+jobs%2C+C%23+jobs%2C+PHP+jobs%2C+C%2B%2B+jobs%2C+.net+jobs&amp;ctab=0&amp;geo=all&amp;date=all&amp;sort=0">Java is still way ahead of C#</a> and always will be because it&#8217;s cross-platform, more open, and better at server stuff. Only Microsoft developers will tell you it&#8217;s the way ahead because they don&#8217;t see past the technologies they&#8217;re spoon-fed (yes, that&#8217;s meant to be inflammatory :)).</p>
<p>2) Focusing on specific technologies is a terrible idea, because your skills we be obsolete in a few years. If you want to improve yourself, go study computer science through a university to really <em>understand</em> computing or join an open source project to learn how to collaborate with programmers who are most likely smarter than you who&#8217;ll teach you more code techniques and guru-level knowledge than you&#8217;ll ever pick up in a crappy 6 month Java course.</p>
<p>If you truly understand computing from the machine right up to high-level organisation then any technology they can throw at you can be learned and understood quickly, but if you&#8217;ve limited your thinking to Java or C# then any paradigm shift will blind-side you and leave you on the side of the road with the Cobol developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2008/04/24/qa-should-i-study-java-or-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarter image resizing with seam-carving</title>
		<link>http://ninjamonkeys.co.za/2008/04/01/smarter-image-resizing-with-seam-carving/</link>
		<comments>http://ninjamonkeys.co.za/2008/04/01/smarter-image-resizing-with-seam-carving/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 09:01:59 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2008/04/01/smarter-image-resizing-with-seam-carving/</guid>
		<description><![CDATA[Ariel Shamir has created an algorithm for resizing images called seam-carving. It works by finding paths across the image that aren&#8217;t straight, and cutting them out or duplicating them so that an image can grow or shrink horizontally or vertically without cropping or distorting the image. It makes far more sense if you view the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.faculty.idc.ac.il/arik/">Ariel Shamir</a> has created an algorithm for resizing images called <a href="http://www.faculty.idc.ac.il/arik/imret.pdf">seam-carving</a>. It works by finding paths across the image that aren&#8217;t straight, and cutting them out or duplicating them so that an image can grow or shrink horizontally or vertically without cropping or distorting the image. It makes far more sense if you view the video below.</p>
<p><object width="420" height="301"><param name="movie" value="http://www.dailymotion.com/swf/x2swhh&#038;v3=1&#038;related=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.dailymotion.com/swf/x2swhh&#038;v3=1&#038;related=1" type="application/x-shockwave-flash" width="420" height="301" allowFullScreen="true" allowScriptAccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2008/04/01/smarter-image-resizing-with-seam-carving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m in the top 5% of Java programmers</title>
		<link>http://ninjamonkeys.co.za/2008/02/08/im-in-the-top-5-of-java-programmers/</link>
		<comments>http://ninjamonkeys.co.za/2008/02/08/im-in-the-top-5-of-java-programmers/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 14:26:31 +0000</pubDate>
		<dc:creator>Vaughn Dickson</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://ninjamonkeys.co.za/2008/02/08/im-in-the-top-5-of-java-programmers/</guid>
		<description><![CDATA[According to BetterProgrammer.com I passed their testing better than 95% of other test takers. However, they don&#8217;t say how many other test takers there were, and you don&#8217;t really know how many were legitimate either, but I&#8217;m still proud of my result :) Try to beat me at http://www.betterprogrammer.com Update: Some folks have said that [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ninjamonkeys.co.za/wp-content/uploads/2008/02/horn.jpg" alt="tooting my own horn" align="right" hspace="5" vspace="5" />According to <a href="http://www.betterprogrammer.com">BetterProgrammer.com</a> <a href="http://www.betterprogrammer.com/certificate/BP1NTL83">I passed their testing better than 95% of other test takers</a>. However, they don&#8217;t say how many other test takers there were, and you don&#8217;t really know how many were legitimate either, but I&#8217;m still proud of my result :)</p>
<p>Try to beat me at <a href="http://www.betterprogrammer.com">http://www.betterprogrammer.com</a></p>
<p>Update: Some folks have said that it&#8217;s another stupid test that expects you to know obscure details of Java syntax, but it&#8217;s definitely not. It tests your knowledge of data structures, recursion, data types, etc. So it&#8217;s more of a computer science test than a standard lame Java test.</p>
<p>Update 2: Maxim Glaezer, the owner and developer of betterprogrammer.com, answered my question about the number of users who have taken the test. And the results aren&#8217;t surprising.</p>
<blockquote><p>The site started just several months ago, but since it is difficult to<br />
motivate programmers to pass (one more) test, there are not many<br />
registered users. A huge percentage of test takers quit after the 3rd<br />
task, approximately 1/3 who pass the test register, other 2/3 realize<br />
the result will not be spectacular and quit. So, there were ~600<br />
programmers who started and completed the whole test.</p>
<p>I am not sure it this site ever becomes useful or popular, looks like<br />
only 1% of all visitors dare to start the test.</p></blockquote>
<p>So 25th out of 1800 is okay, but what worries me is that you can take the test again, which is fine if you get a bad mark, but if you keep taking the test eventually the same questions will pop up and you can just copy and paste your solutions and get 99%. Maybe a limit of 3 chances should be enforced.</p>
]]></content:encoded>
			<wfw:commentRss>http://ninjamonkeys.co.za/2008/02/08/im-in-the-top-5-of-java-programmers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

