<?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>Michael Gall - Internet Marketing and SEO Consultant - Melbourne &#187; programming</title>
	<atom:link href="http://wakeless.net/tag/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://wakeless.net</link>
	<description></description>
	<lastBuildDate>Fri, 13 Apr 2012 07:40:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>5 Excuses Bad Programmers Make</title>
		<link>http://wakeless.net/archive/2009/10/5-excuses-bad-programmers-make</link>
		<comments>http://wakeless.net/archive/2009/10/5-excuses-bad-programmers-make#comments</comments>
		<pubDate>Fri, 16 Oct 2009 07:29:46 +0000</pubDate>
		<dc:creator>Michael Gall</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abstraction]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://wakeless.net/?p=340</guid>
		<description><![CDATA[It&#8217;s a common problem, there&#8217;s a young kid on your team who thinks he is a great architect. He wants to replace the simplest include with a new whizbang inherited menu system or add 3 layers of abstraction to the database access layer, or replace the beautifully crafted error reporting system with exceptions. When quizzing [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a common problem, there&#8217;s a young kid on your team who thinks he is a great architect. He wants to replace the simplest include with a new whizbang inherited menu system or add 3 layers of abstraction to the database access layer, or replace the beautifully crafted error reporting system with exceptions. When quizzing this &#8220;architect&#8221; he has a reason for every possible change, these are those classic excuses and reason.</p>
<ol>
<li><strong>Security</strong>. &#8220;This will stop any possible security breaches in the future,&#8221; he says. Little does he realise that including one extra file into your system isn&#8217;t a security risk and probably never will be.</li>
<li><strong>Performance. </strong>&#8220;We will do this and this and this, and then cache it all in memory. It will be faster than the existing system,&#8221; he says. Sure this might be faster, but the difference between 5ms execution and 8ms execution is irrelevant. Chances of him actually having done the profiling and being able to improve the performance gains are minimal.</li>
<li><strong>Future proofing.</strong> &#8220;This will put us in a great position to make changes in the future.&#8221; Which changes? You know those unspecified, unrealised and unkown changes that we may or may make sometime in the future.</li>
<li><strong>Outdated.</strong> &#8220;There&#8217;s a new better way to do that exact thing.&#8221; There <strong>is</strong> a new way to do it, there is a new way to do anything and everything, but is it better? Is it worth holding the project back a week to modernise the codebase? Probably not.</li>
<li><strong>That&#8217;s ugly. &#8220;</strong>But this code is <em>ugly&#8221;</em>, he pleads. Is a 3 line hack better or worse than a leaky abstraction?</li>
</ol>
<p>I&#8217;m sure you know of more, what are they?</p>
<p><strong>Update: </strong>This comes across as very bitter. Perhaps &#8220;bad programmer&#8221; isn&#8217;t the right word. Try &#8220;inexperienced&#8221;.  Working on systems, refactoring them and improving them is obviously our job as programmers, yet sometimes you need to take a step back and think. The first design or system we think of is very rarely the right one, it doesn&#8217;t matter how much experience you have.</p>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2009/10/5-excuses-bad-programmers-make/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Function Overloading in PHP</title>
		<link>http://wakeless.net/archive/2005/04/function-overloading-in-php</link>
		<comments>http://wakeless.net/archive/2005/04/function-overloading-in-php#comments</comments>
		<pubDate>Tue, 30 Nov 1999 08:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://wakeless.net/wordpress/?p=59</guid>
		<description><![CDATA[Update: I have written about a more Java-like, argument based overloading solution here. I&#8217;ve been trying to get a set of good basic functions included within my PHP framework and ran across a nice little trick to allow function (without a class) overloading, the code should speak for itself. This will be the default file. [...]]]></description>
			<content:encoded><![CDATA[<p xmlns="http://www.w3.org/1999/xhtml"><span style="font-weight: bold">Update:</span> I have written about a more Java-like, argument based <a href="http://wakeless.net/archive/2005/02/function-overloading-in-php5" title="better function overloading solution">overloading solution here.</a></p>
<p xmlns="http://www.w3.org/1999/xhtml">I&#8217;ve been trying to get a set of good basic functions included within my PHP framework and ran across a nice little trick to allow function (without a class) overloading, the code should speak for itself.</p>
<p xmlns="http://www.w3.org/1999/xhtml">This will be the default file.</p>
<pre>
if(!function_exists("overloadableFunc") ) {
  function overloadableFunc() {
    echo "foo";
  }
}</pre>
<p>and this will be in the overloading file (needs to be included before the default.</p>
<pre>
function overoadableFunc() {
  echo "foobar";
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2005/04/function-overloading-in-php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conversation Engine Thoughts</title>
		<link>http://wakeless.net/archive/2004/12/conversation-engine-thoughts</link>
		<comments>http://wakeless.net/archive/2004/12/conversation-engine-thoughts#comments</comments>
		<pubDate>Tue, 30 Nov 1999 08:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[weblogs]]></category>

		<guid isPermaLink="false">http://wakeless.net/wordpress/?p=41</guid>
		<description><![CDATA[Diego has been writing about a project of his the &#8220;Conversation Engine&#8221;. I thought I would add a few thoughts to the fray that might help. For discovery a simple RPC-Ping can be used, this can then add that site onto the spidering queue. To maintain the small scale test of the engine to begin [...]]]></description>
			<content:encoded><![CDATA[<p xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.dynamicobjects.com/d2r/">Diego</a> has been writing about a project of his the &#8220;Conversation Engine&#8221;. I thought I would add a few thoughts to the fray that might help.</p>
<p xmlns="http://www.w3.org/1999/xhtml">For discovery a simple RPC-Ping can be used, this can then add that site onto the spidering queue. To maintain the small scale test of the engine to begin with a whitelist of sites that are allowed to ping. Each page should be spidered multiple times over time to take advantage of trackback and pings. This could be coupled with trying to take the date/time out of the published posts. This may be a little difficult but still possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2004/12/conversation-engine-thoughts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>test</title>
		<link>http://wakeless.net/archive/2004/12/test</link>
		<comments>http://wakeless.net/archive/2004/12/test#comments</comments>
		<pubDate>Tue, 30 Nov 1999 08:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://wakeless.net/wordpress/?p=40</guid>
		<description><![CDATA[test test test test test]]></description>
			<content:encoded><![CDATA[<p xmlns="http://www.w3.org/1999/xhtml">test test test test test</p>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2004/12/test/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Word Ordering in Search Engines</title>
		<link>http://wakeless.net/archive/2004/12/word-ordering-in-search-engines</link>
		<comments>http://wakeless.net/archive/2004/12/word-ordering-in-search-engines#comments</comments>
		<pubDate>Tue, 30 Nov 1999 08:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://wakeless.net/wordpress/?p=39</guid>
		<description><![CDATA[The way Google (and I&#8217;m sure most other search engines) use the ordering of the search terms is quite interesting. I have a feeling it may be a by-effect of the way they implement the filtering of results within their databases. To improve results, a person can reorder their search terms, but does the search [...]]]></description>
			<content:encoded><![CDATA[<p xmlns="http://www.w3.org/1999/xhtml">The way Google (and I&#8217;m sure most other search engines) use the ordering of the search terms is quite interesting. I have a feeling it may be a by-effect of the way they implement the filtering of results within their databases. To improve results, a person can reorder their search terms, but does the search engine do this itself.</p>
<p xmlns="http://www.w3.org/1999/xhtml">The search engine could use the most common usage of each word (noun/verb) to decide if it is the subject of the search or the action being performed on the search and reorder accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2004/12/word-ordering-in-search-engines/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poor Man&#8217;s Project Management</title>
		<link>http://wakeless.net/archive/2004/10/poor-mans-project-management</link>
		<comments>http://wakeless.net/archive/2004/10/poor-mans-project-management#comments</comments>
		<pubDate>Tue, 30 Nov 1999 08:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[assign]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://wakeless.net/wordpress/?p=32</guid>
		<description><![CDATA[I&#8217;ve take to using grep and a //TODO comment to handle my project management on my project. It&#8217;s better than keeping a list in a separate file cause this also keeps the context of what you wanted to do.]]></description>
			<content:encoded><![CDATA[<p xmlns="http://www.w3.org/1999/xhtml">I&#8217;ve take to using grep and a //TODO comment to handle my project management on my project. It&#8217;s better than keeping a list in a separate file cause this also keeps the context of what you wanted to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://wakeless.net/archive/2004/10/poor-mans-project-management/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

