<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Data Asylum</title>
	
	<link>http://thedataasylum.com</link>
	<description>Programming, Databases and People</description>
	<lastBuildDate>Sat, 04 Sep 2010 01:12:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<feedburner:info uri="thedataasylum" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://thedataasylum.com/feed" /><feedburner:emailServiceId>TheDataAsylum</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://thedataasylum.com/feed" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Fthedataasylum.com%2Ffeed" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Ctrl-A Delete</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/f9zvSt3jTyU/ctrla-delete.html</link>
		<comments>http://thedataasylum.com/article_159/ctrla-delete.html#comments</comments>
		<pubDate>Wed, 04 Aug 2010 02:52:35 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[shortcut keys]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=159</guid>
		<description><![CDATA[Usually a last resort. Often the best thing to do.
]]></description>
			<content:encoded><![CDATA[<p>Usually a last resort. Often the best thing to do.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=f9zvSt3jTyU:GBZcWMpKKIY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=f9zvSt3jTyU:GBZcWMpKKIY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=f9zvSt3jTyU:GBZcWMpKKIY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=f9zvSt3jTyU:GBZcWMpKKIY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=f9zvSt3jTyU:GBZcWMpKKIY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/f9zvSt3jTyU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_159/ctrla-delete.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_159/ctrla-delete.html</feedburner:origLink></item>
		<item>
		<title>Switching from web to desktop application development</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/kd7nHroHZbg/switching-from-web-to-desktop-development.html</link>
		<comments>http://thedataasylum.com/article_145/switching-from-web-to-desktop-development.html#comments</comments>
		<pubDate>Mon, 26 Jul 2010 11:20:53 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=145</guid>
		<description><![CDATA[Switching jobs and making a career change is a big challenge. New problem domains to learn, new working relationships to build, new brand of instant coffee to get used to. For a programmer one of the more interesting changes can be moving from working on web applications to desktop applications. Here are a few points [...]]]></description>
			<content:encoded><![CDATA[<p>Switching jobs and making a career change is a big challenge. New problem domains to learn, new working relationships to build, new brand of instant coffee to get used to. For a programmer one of the more interesting changes can be moving from working on web applications to desktop applications. Here are a few points that i&#39;ve picked up having made the plunge a few months ago.</p>
<ul>
<li><strong>Control of environment</strong>. As a web programmer you have a lot of control of the environment your application runs in. Browser issues aside, once a HTTP request hits your servers you have complete control over what happens next. A desktop application has little control over where it is being run, what software is installed with it etc.</li>
<li><strong>Managing performance</strong>. A desktop application performing poorly can be a nightmare to diagnose. The characteristics of the users machine and currently running processes are completly foreign. If your web app is running slowly you not only have the program available but intimate knowledge of the hardware and architecture it is running on. You can make tradeoffs on the servers that your users may not be willing to do for your desktop application.</li>
<li><strong>24/7 operations</strong>. Most web developers will not only have to create the application, but support it as well. These problems that occur on live systems are usually given high priority pushing more long term work to the back.</li>
</ul>
<p>I had no idea how narrow my knowledge was. I&#39;d be interested to hear your thoughts. Have you made the switch from web to desktop, or in the other direction?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=kd7nHroHZbg:vhDWyHCmw70:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=kd7nHroHZbg:vhDWyHCmw70:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=kd7nHroHZbg:vhDWyHCmw70:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=kd7nHroHZbg:vhDWyHCmw70:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=kd7nHroHZbg:vhDWyHCmw70:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/kd7nHroHZbg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_145/switching-from-web-to-desktop-development.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_145/switching-from-web-to-desktop-development.html</feedburner:origLink></item>
		<item>
		<title>Creating a static class variable in ruby</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/1t3hI0yuSPU/creating-static-class-variable-ruby.html</link>
		<comments>http://thedataasylum.com/article_137/creating-static-class-variable-ruby.html#comments</comments>
		<pubDate>Tue, 08 Jun 2010 09:00:52 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[object orientation]]></category>
		<category><![CDATA[static]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=137</guid>
		<description><![CDATA[One of the patterns I (over)use in php is having a class with only static variables and static functions. To do this in ruby isn&#39;t as straight forward as it could be, so here is how to do it.
class StaticKlass

    # ruby class variables are prefixed with &#34;@@&#34; .
    [...]]]></description>
			<content:encoded><![CDATA[<p>One of the patterns I (over)use in php is having a class with only static variables and static functions. To do this in ruby isn&#39;t as straight forward as it could be, so here is how to do it.</p>
<pre>class StaticKlass

    # ruby class variables are prefixed with &quot;@@&quot; .
    @@variable = nil

    # If you want to provide getters and setters you cant use the attr_accessor
    # keyword, you have to create them manually. By adding the class name to
    # the method definition, we are indicating that this is a method on the
    # class, not in instances of this class
    def StaticKlass.variable= (x)
        @@variable = x
    end

    # the getter is defined to return the class variable when called
    def StaticKlass.variable
        return @@variable
    end

end
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=1t3hI0yuSPU:c7j__kysR0w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=1t3hI0yuSPU:c7j__kysR0w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=1t3hI0yuSPU:c7j__kysR0w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=1t3hI0yuSPU:c7j__kysR0w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=1t3hI0yuSPU:c7j__kysR0w:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/1t3hI0yuSPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_137/creating-static-class-variable-ruby.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_137/creating-static-class-variable-ruby.html</feedburner:origLink></item>
		<item>
		<title>My Widescreen Desktop</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/sUvcDc42b0s/widescreen-desktop.html</link>
		<comments>http://thedataasylum.com/article_117/widescreen-desktop.html#comments</comments>
		<pubDate>Mon, 31 May 2010 21:00:45 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=117</guid>
		<description><![CDATA[This is how I organize my widescreen desktop.

&#160;
The main feature is moving the taskbar over to the left hand side. When editing code or reading a website I would rather have more space vertically. It is also easier to select a window when you have a lot open. The Quick Launch toolbar is more useful, [...]]]></description>
			<content:encoded><![CDATA[<p>This is how I organize my widescreen desktop.</p>
<a href="http://thedataasylum.com/files/2010/05/mydesktop.png"><img alt="My Desktop, with the taskbar on the left hand side" class="size-medium wp-image-118" height="168" src="http://thedataasylum.com/files/2010/05/mydesktop-300x168.png" title="Desktop" width="300" /></a>
<p>&nbsp;</p>
<p>The main feature is moving the taskbar over to the left hand side. When editing code or reading a website I would rather have more space vertically. It is also easier to select a window when you have a lot open. The Quick Launch toolbar is more useful, because you can have a lot more shortcuts without taking away taskbar space.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=sUvcDc42b0s:XaIaU_Tbc70:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=sUvcDc42b0s:XaIaU_Tbc70:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=sUvcDc42b0s:XaIaU_Tbc70:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=sUvcDc42b0s:XaIaU_Tbc70:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=sUvcDc42b0s:XaIaU_Tbc70:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/sUvcDc42b0s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_117/widescreen-desktop.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_117/widescreen-desktop.html</feedburner:origLink></item>
		<item>
		<title>WTF – Scheduled Reports</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/V5X661SFYjs/wtf-scheduled-reports.html</link>
		<comments>http://thedataasylum.com/article_3/wtf-scheduled-reports.html#comments</comments>
		<pubDate>Mon, 24 May 2010 21:00:02 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Database Design]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=3</guid>
		<description><![CDATA[Working on scheduled reporting systems, you expect to see the same concepts. What format wiil we send the report in? How will it be delivered? I opened the &#8220;scheduled report&#8221; table to see how this particular system had been implemented. I couldn&#8217;t immediately find which column i was looking for. In fact the only one [...]]]></description>
			<content:encoded><![CDATA[<p>Working on scheduled reporting systems, you expect to see the same concepts. What format wiil we send the report in? How will it be delivered? I opened the &ldquo;scheduled report&rdquo; table to see how this particular system had been implemented. I couldn&rsquo;t immediately find which column i was looking for. In fact the only one that looked like it might be useful was something called deliv_method.</p>
<p><span style="font-family: courier new,courier,monospace">deliv_method<br />
	206<br />
	774<br />
	206<br />
	206</span></p>
<p>Ok, so we&rsquo;ve got a numeric list of delivery methods. Nothing too unusual about that. I just need to find the list either in the database or codebase. But where do we store the format of the report? I worked my way through the report scheduler code until i found this.</p>
<p><span style="font-family: courier new,courier,monospace">$delivMeth = ($row[&lsquo;DELIV_METHOD&rsquo;] &gt;&gt; 8);<br />
	$myFormat = ($row[&lsquo;DELIV_METHOD&rsquo;] &amp; 0xFF);</span></p>
<p>Are those <a href="http://php.net/manual/en/language.operators.bitwise.php" target="_blank">bitwise operators</a>? And even a literal hexadecimal number? The only place i&rsquo;ve ever seen a bitwise operator is when setting the error reporting level. I&rsquo;ve looked at this a few times and am still not sure i correctly understand it.</p>
<p>The answer eventually revealed itself.</p>
<p><span style="font-family: courier new,courier,monospace">$a = array(<br />
	0&#215;0104 =&gt; &quot;Email HTML&quot;,<br />
	0&#215;0204 =&gt; &quot;Email HTML Attachment&quot;,<br />
	0&#215;0284 =&gt; &quot;Email HTML Zipped attach&quot;,<br />
	0&#215;0201 =&gt; &quot;Email PDF&quot;,<br />
	0&#215;0203 =&gt; &quot;Email TSV delim&quot;,<br />
	0&#215;0283 =&gt; &quot;Email TSV delim zipped&quot;,<br />
	0&#215;0203 =&gt; &quot;Email CSV delim&quot;,<br />
	0&#215;0283 =&gt; &quot;Email CSV delim zipped&quot;,<br />
	0&#215;0304 =&gt; &quot;FTP HTML&quot;,<br />
	0&#215;0301 =&gt; &quot;FTP PDF&quot;,<br />
	0&#215;0303 =&gt; &quot;FTP TSV delim&quot;,<br />
	0&#215;0303 =&gt; &quot;FTP CSV delim&quot;,<br />
	);</span></p>
<p>Pretty clever you have to admit! Unfortunately it can lead to same rather ugly code.</p>
<p><span style="font-family: courier new,courier,monospace">if ((($(&#39;#INPUT\\[DELIVERY_METHOD\\]&#39;).val() &amp; 0xFF00) &gt;&gt; 8) != 0&#215;03){</span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=V5X661SFYjs:gB4JkMA9NF0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=V5X661SFYjs:gB4JkMA9NF0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=V5X661SFYjs:gB4JkMA9NF0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=V5X661SFYjs:gB4JkMA9NF0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=V5X661SFYjs:gB4JkMA9NF0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/V5X661SFYjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_3/wtf-scheduled-reports.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_3/wtf-scheduled-reports.html</feedburner:origLink></item>
		<item>
		<title>Why Hire a Senior PHP Programmer?</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/z2BK4X_iofA/why-hire-senior-php-programmer.html</link>
		<comments>http://thedataasylum.com/article_92/why-hire-senior-php-programmer.html#comments</comments>
		<pubDate>Sun, 16 May 2010 23:00:54 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[hr]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=92</guid>
		<description><![CDATA[One of the first questions I ask when attending an interview is why are you hiring a senior PHP programmer? It is a question born out of cynicism. If everything is going well in your organization why change things by hiring someone? But also the question is &#39;Why do you need someone with lots of [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first questions I ask when attending an interview is why are you hiring a senior PHP programmer? It is a question born out of cynicism. If everything is going well in your organization why change things by hiring someone? But also the question is &#39;Why do you need someone with lots of experience&#39;. They are going to be more expensive so why are you spending the money?</p>
<p>In <a href="http://www.amazon.com/Smart-Gets-Things-Done-Technical/dp/1590598385/" target="_blank">Joel Spolsky&#39;s book</a> on hiring programmers, he states :-</p>
<blockquote>
<p>The great software developers, indeed, the best in every field, are quite simply never on the market.</p>
</blockquote>
<p>Sitting on the other side of the fence, I believe that the opposite is also true. The great software <strong>jobs</strong> are quite simply never on the market. There are many reasons to hire a senior programmer. Let us have a realistic look at them from the point of view of the jobseeker.</p>
<ul>
<li>
<div>The business is growing and we have more paid projects then the current staff can handle.</div>
<ul>
<li>This is the most common answer, and sometimes it&#39;s not rubbish. It&#39;s one of the better answers but the problem for the jobseeker is there is no real way to disprove it. Also you have to ask why do you need more than a mid-level or even low level programmer.</li>
</ul>
</li>
<li>
<div>Our senior programmer quit, and we are filling in his position</div>
<ul>
<li>Why did he quit? Is he moving cities to look after his sick aunt? Or did he just quit because he didn&#39;t like the job? It is once again hard for the jobseeker to verify this. Even if they gave you permission to speak to the ex-employee, would you believe it if he told you it was the greatest job on earth? Perhaps asking how long his tenure was may offer an insight.</li>
</ul>
</li>
<li>
<div>We only hire experienced people</div>
<ul>
<li>If everyone is senior who makes decisions? Who does the boring crap? (Seriously there are often a lot of repetitive tasks that are perfect for a junior to cut his teeth on, and would drive a senior person insane with boredom). Who am I going to mentor?</li>
</ul>
</li>
<li>
<div>Our platform is a complete mess and we need senior people to decipher it</div>
<ul>
<li>While this is a cynical view I believe that there are quite a few positions where a senior position is required because of this very reason. It will not be stated explicitly or even understood by the people hiring, and can be a real surprise for employees walking in to a new position. Trying to tell if this is the case before hand is tricky. The sad thing is that this type of challenge could be attractive to a senior person. Give a technical person the opportunity to make something better and they (should) grab it with both hands.</li>
</ul>
</li>
</ul>
<p>What are the other reasons to hire a senior programmer? Get it off your chest and leave a comment!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=z2BK4X_iofA:efiU7OWrbyA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=z2BK4X_iofA:efiU7OWrbyA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=z2BK4X_iofA:efiU7OWrbyA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=z2BK4X_iofA:efiU7OWrbyA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=z2BK4X_iofA:efiU7OWrbyA:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/z2BK4X_iofA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_92/why-hire-senior-php-programmer.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_92/why-hire-senior-php-programmer.html</feedburner:origLink></item>
		<item>
		<title>Help eliminate bad code</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/PeWYl-sGE68/bad-code-offsets.html</link>
		<comments>http://thedataasylum.com/article_76/bad-code-offsets.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:00:44 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bad code]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[code offsets]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[gpsd]]></category>
		<category><![CDATA[open source software]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=76</guid>
		<description><![CDATA[The Bad Code Offsets project is an attempt to get programmers to put money into open source software. We may not be able to change the bad code we have written. Instead we can buy an offset that goes towards creating more good code.

Bad code lives on well past the time we inflicted those bad [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://codeoffsets.com/">Bad Code Offsets</a> project is an attempt to get programmers to put money into open source software. We may not be able to change the bad code we have written. Instead we can buy an offset that goes towards creating more good code.</p>
<blockquote>
<p>Bad code lives on well past the time we inflicted those bad lines into the global code base. Applications continue to live their lives serving businesses, consumers and the global community at large. Bad code weakens the utility delivered by these applications causing business loss, user dissatisfaction, accidents, disasters and, in general, sucks limited resources towards responding to the after effects of bad code rather than toward the common good.</p>
</blockquote>
<p>They have <a href="http://thedailywtf.com/Articles/Bad-Code-Offsets-Open-Web-Innovation.aspx">just made a $500 grant</a> to the GPSd project, which aims to shield developers from the <a href="http://esr.ibiblio.org/?p=801">idiosyncracies</a> of integrating each GPS device available.</p>
<p>How often do you use open source software. How often have you contributed, either by submitting code or donating money? My gut feeling is that at least 95% of developers haven&#39;t done either. The 10 USD I donated will be going to the Apache software foundation. The apache webserver has been at the base of nearly every project I&#39;ve worked on and will be for a long time to come.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=PeWYl-sGE68:S3cdxI5Uk4Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=PeWYl-sGE68:S3cdxI5Uk4Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=PeWYl-sGE68:S3cdxI5Uk4Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=PeWYl-sGE68:S3cdxI5Uk4Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=PeWYl-sGE68:S3cdxI5Uk4Q:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/PeWYl-sGE68" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_76/bad-code-offsets.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_76/bad-code-offsets.html</feedburner:origLink></item>
		<item>
		<title>2 points to remember when interviewing developers</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/p6U-KXeijM0/2-points-remember-when-interviewing-developers.html</link>
		<comments>http://thedataasylum.com/article_55/2-points-remember-when-interviewing-developers.html#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:00:33 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Team Work]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[hr]]></category>
		<category><![CDATA[job interview]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=55</guid>
		<description><![CDATA[Sell your company</strong>. Tell a story. Where you have come from and where you are going. Why the position is so important to continuing that story. What technical challenges are the company facing. Keep it interesting...]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>Sell your company</strong>. Tell a story. Where you have come from and where you are going. Why the position is so important to continuing that story. What technical challenges are the company facing. Keep it interesting and relevant to the position. You want everyone who comes for an interview to want to work for you. Even if the person is not right for the job, word of mouth amongst potential employees is a great tool for getting people through the door.</li>
<li><strong>Qualify the applicant</strong>. Ask hard questions and let them prove their knowledge. Most of the enjoyment you can receive from a job is through co-workers. One of the concerns a job seekers will have is the quality of their future co-workers. By showing that you are screening out lazy, boring and unqualified people, the person will feel more comfortable about taking the job. Instead of wondering if the company will be good enough for them, they will start to wonder if they are good enough for the company. It also puts a level of expectation on the applicant which is a good place to start the work relationship.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=p6U-KXeijM0:S_G7lnlrQ_o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=p6U-KXeijM0:S_G7lnlrQ_o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=p6U-KXeijM0:S_G7lnlrQ_o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=p6U-KXeijM0:S_G7lnlrQ_o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=p6U-KXeijM0:S_G7lnlrQ_o:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/p6U-KXeijM0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_55/2-points-remember-when-interviewing-developers.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_55/2-points-remember-when-interviewing-developers.html</feedburner:origLink></item>
		<item>
		<title>grepWin – Grep for windows</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/LYadFBhuLk8/grepwin-grep-for-windows.html</link>
		<comments>http://thedataasylum.com/article_39/grepwin-grep-for-windows.html#comments</comments>
		<pubDate>Tue, 05 Jan 2010 23:00:06 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=39</guid>
		<description><![CDATA[grep is an often used tool on linux. It&#39;s job is very simple, to find a string (or regular expression) in a group of files.
grepWin is a gui version and is a lifesaver if you have to use windows as part of your development environment. The best bits are

Integrates with windows explorer. Search any folder [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gnu.org/software/grep/">grep</a> is an often used tool on linux. It&#39;s job is very simple, to find a string (or regular expression) in a group of files.</p>
<p><a href="http://tools.tortoisesvn.net/grepWin">grepWin</a> is a gui version and is a lifesaver if you have to use windows as part of your development environment. The best bits are</p>
<ul>
<li>Integrates with windows explorer. Search any folder by right clicking on it.</li>
<li>Results behave just like a windows explorer folder. Right click on the files to edit from the results panel.</li>
<li>Regular expression support. A feature compared to windows built in search.</li>
<li>Search and replace. The tool goes further than grep and will do a search and replace over many files.</li>
</ul>
<a href="http://tools.tortoisesvn.net/grepWin"><img alt="grepWin Screenshot" class="size-full wp-image-44" height="462" src="http://thedataasylum.com/files/2010/01/grepwin-scaled.png" title="grepwin" width="500" /></a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=LYadFBhuLk8:fOl_HZmwioU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=LYadFBhuLk8:fOl_HZmwioU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=LYadFBhuLk8:fOl_HZmwioU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=LYadFBhuLk8:fOl_HZmwioU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=LYadFBhuLk8:fOl_HZmwioU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/LYadFBhuLk8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_39/grepwin-grep-for-windows.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_39/grepwin-grep-for-windows.html</feedburner:origLink></item>
		<item>
		<title>How to be a programmer – circa 2002</title>
		<link>http://feedproxy.google.com/~r/TheDataAsylum/~3/A6QUqpakFVk/how-to-be-a-programmer-2002.html</link>
		<comments>http://thedataasylum.com/article_19/how-to-be-a-programmer-2002.html#comments</comments>
		<pubDate>Tue, 29 Dec 2009 23:00:58 +0000</pubDate>
		<dc:creator>Lang Sharpe</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Self Development]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://thedataasylum.com/?p=19</guid>
		<description><![CDATA[While looking through some old files I found this gem. It&#39;s an essay written seven years ago by Robert L. Read called &#34;How To Be a Programmer: A Short, Comprehensive, and Personal Summary&#34;. It covers a what the writer feels are the most important skills to learn across beginner, intermediate and advanced skill levels.
I remember [...]]]></description>
			<content:encoded><![CDATA[<p>While looking through some old files I found this gem. It&#39;s an essay written seven years ago by Robert L. Read called <a href="http://samizdat.mines.edu/howto/">&quot;How To Be a Programmer: A Short, Comprehensive, and Personal Summary&quot;</a>. It covers a what the writer feels are the most important skills to learn across beginner, intermediate and advanced skill levels.</p>
<p>I remember being heavily influenced by this as it appeared a short time after I first had a real job. seven years is a long time in technology and I was wondering if the advice in it held up. Here are a few excerpts.</p>
<blockquote>
<p>2.9 How to Deal with Intermittent Bugs<br />
		The intermittent bug has to obey the same laws of logic everything else does. What makes it hard is that it occurs only under unknown conditions. Try to record the circumstances under which it does occur, so that you can guess at what the variability really is. &#8230; Try, try, try to reproduce it. If you can&#39;t reproduce it, set a trap for it by building a logging system, a special one if you have to, that can log what you guess is what you need when it really occurs.</p>
</blockquote>
<p>When I first read this many years ago I was relieved. It&#39;s not just me that has these problems. I&#39;ve used this formula too many times to count.</p>
<blockquote>
<p>6.7 How to Know When to Apply Fancy Computer Science<br />
		There is a body of knowledge about algorithms, data structures, mathematics, and other gee-whiz stuff that most programmers know about but rarely use. In practice, this wonderful stuff is too complicated and generally unnecessary.</p>
</blockquote>
<p>It&#39;s the biggest contradiction in our industry that a lot of importance is placed on solutions to complicated problems when most of the time simple solutions to simple problems are needed (and more desirable).</p>
<blockquote>
<p>4.1 How to Stay Motivated<br />
		It is a wonderful and surprising fact that programmers are highly motivated by the desire to create artifacts that are beautiful, useful, or nifty. &#8230; There&#39;s a lot of money to be made doing ugly, stupid, and boring stuff; but in the end fun will make the most money for the company.</p>
</blockquote>
<p>I&#39;m not sure where I stand on this one. As much as I&#39;d like to believe that fun is always the way to go I&#39;m not sure that it will always pay the bills.</p>
<p>Overall it is still a relevant and important essay for any programmer at any level.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=A6QUqpakFVk:9txsgaueTt8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=A6QUqpakFVk:9txsgaueTt8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=A6QUqpakFVk:9txsgaueTt8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDataAsylum?a=A6QUqpakFVk:9txsgaueTt8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDataAsylum?i=A6QUqpakFVk:9txsgaueTt8:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDataAsylum/~4/A6QUqpakFVk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thedataasylum.com/article_19/how-to-be-a-programmer-2002.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thedataasylum.com/article_19/how-to-be-a-programmer-2002.html</feedburner:origLink></item>
	</channel>
</rss>
