<?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>Run Away Coder &#187; Dev</title>
	<atom:link href="http://runawaycoder.co.za/tag/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://runawaycoder.co.za</link>
	<description>Coding On The Run, becausing running is fun</description>
	<lastBuildDate>Mon, 24 May 2010 07:20:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Dont you just love working in december</title>
		<link>http://runawaycoder.co.za/2008/12/22/dont-you-just-love-working-in-december/</link>
		<comments>http://runawaycoder.co.za/2008/12/22/dont-you-just-love-working-in-december/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 04:59:49 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[december]]></category>
		<category><![CDATA[relax]]></category>

		<guid isPermaLink="false">http://runawaycoder.co.za/?p=260</guid>
		<description><![CDATA[While this may seem like a decidedly odd comment , if you think about it for a few seconds you will realize just how true it is. Also i think it would be a good time to mention this is from the perspective of a developer. This is the only time of the year when [...]]]></description>
			<content:encoded><![CDATA[<p>While this may seem like a decidedly odd comment , if you think about it for a few seconds you will realize just how true it is. Also i think it would be a good time to mention this is from the perspective of a developer.</p>
<p>This is the only time of the year when requests actually slow down to the point where i can actually go and review old code .Fix things that were meant to be fixed an just never got down to. Personally i feel its the one time in the year when you can do beta testing and not get a backlash from the rest of your team for trying something new.</p>
<p>The other thing is that traffic is always a killer , no matter what time i leave for work there is always traffic. Yet at this time of the year it is simply a breeze to drive to work a everyone is gone on holiday.</p>
<p>The final point that i will make is this , i just know people are going to say but when do we take a break then , i will never make it yadadada. So what you do is you take you holiday in the off peak times when everyone else is working . This way you still get to relax and avoid all the stress of work , its not totally fool proof but it has worked beautifully for me.</p>
<p>~stalkerh</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/12/22/dont-you-just-love-working-in-december/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The search for the perfect developer</title>
		<link>http://runawaycoder.co.za/2008/12/19/the-search-for-the-perfect-developer/</link>
		<comments>http://runawaycoder.co.za/2008/12/19/the-search-for-the-perfect-developer/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 06:36:55 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[jobhunting]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=105</guid>
		<description><![CDATA[In South Africa it seems the developer or at least a good developer is becoming harder and harder to find. No matter where you go or what you do getting a good developer is becoming so elusive that it almost like trying to find the proverbial needle in a haystack. The fundamental reason behind this [...]]]></description>
			<content:encoded><![CDATA[<p>In South Africa it seems the developer or at least a good developer is becoming harder and harder to find. No matter where you go or what you do getting a good developer is becoming so elusive that it almost like trying to find the proverbial needle in a haystack.</p>
<p>The fundamental reason behind this is that most people tend to follow the trend that they build there experience and then move on in short bursts.This is a never ending cycle until said individual actually stops working for a company and either starts their own company or just works as a contractor.</p>
<p>This presents 2 huge problems , company&#8217;s have a hard time holding on to developers and developers tend to become undependable.The first problem is usually faced by the smaller company&#8217;s who are just starting up , they find and recognize good talent but cant hold onto the person due to financial constraints. With the financial crisis the world has been going through this has become even harder for the smaller company&#8217;s that manage to even keep afloat.</p>
<p>The second problem is that the developer never works on one system for a long period of time or till release and doesn&#8217;t put the same effort into a system as a person that is in a project for the long term.The thinking being that not only why should i put in time and effort into a system that i am not going to maintain or even use but if there are problems i can always move on and get a better job .But on the flip side there are some cases where because of the financial crisis people have to move on not always because they dont like their current company but because they have to , just to keep themselves afloat.</p>
<p>I personally think that some of the smaller companies are to blame , by constantly hunting for better developers instead of training the ones that they already employ to me better people and by sticking to older technologies they are really hurting their business rather than helping it. From a personal perspective , there is nothing that developers hate more than having to use ancient technologies and by forcing them to use said technologies you end up pushing them away.</p>
<p>Now while this may not be the case with every developer i have seen it happening to frequently to believe its not an isolated incident. So while you may never find the perfect developer in this world as an employer what compromise&#8217;s do you make when you hire a new person. I know many people use probation as a safety net in case things go south while other people put candidates through stringent tests. While all of these do help to filter out the weeds , in the end i think the perfect developer is one that has been brought up and nurtured in the environment they want to work in.</p>
<p>As a employer or employee what are your thoughts ?</p>
<p>~stalkerh</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/12/19/the-search-for-the-perfect-developer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Weekly Code-a-thon</title>
		<link>http://runawaycoder.co.za/2008/11/27/weekly-code-a-thon/</link>
		<comments>http://runawaycoder.co.za/2008/11/27/weekly-code-a-thon/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 05:54:40 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://runawaycoder.co.za/?p=232</guid>
		<description><![CDATA[Ok so the other day Steven tagged me on a coding challenge , challenge being to write up some code that people could use / Find interesting / just about anything that had to do with coding :) . Alas i do not have the time to do this daily so i decided to do [...]]]></description>
			<content:encoded><![CDATA[<p>Ok so the other day <a href="http://stevenmcd.net" target="_blank">Steven</a> tagged me on a coding challenge , challenge being to write up some code that people could use / Find interesting / just about anything that had to do with coding :) . Alas i do not have the time to do this daily so i decided to do it on a weekly basis.</p>
<p>On a second note i did not have the time to think up super cool as him and decided to just present a project that i am currently working on.<br />
<span id="more-232"></span><br />
<span style="text-decoration: underline;">Project Name</span> : <span style="text-decoration: underline;">The Boss key / Hide Me</span></p>
<p><span style="text-decoration: underline;">Overview </span>:</p>
<p>So as far as i know every one reading this blog is very hard working ,but unless you are a machine constantly working can just tire out the mind extremely fast. Now how you break this constant stream of work is up to you, it could be free cell or some other random time waster.</p>
<p>The problem is always this , no matter how long or how hard you worked the 5 seconds that you stopped working is the time that your manager / Boss happens to pass by, no leaving free cell open is not the best thing to show anyone in management. While you could always alt-tab out or just close the application , chances are people are going to notice every time you scramble to close a application when ever some one walks past. Also if you do decide to push the application to the background chances are they will see the application in the task bar and you might as well just tell them that you had it open and did not want to show them.</p>
<p>What ’Hide Me’ does is create a motion sensitive area on your desktop , that when triggered will hide any application that you have open. It removes it from the desktop ,taskbar as well as the alt-tab menu. The only way to find a application once it has been hidden is to use task manager to kill the application.</p>
<p><span style="text-decoration: underline;">The Code</span> :</p>
<p>The core of the application involves making calls to windows built in methods via p/Invokes. As you will see after a bit of research its all really simple and can make for some rather interesting applications as seen here.</p>
<p><span style="text-decoration: underline;">Components Used For Gui </span>:</p>
<p>Just remember this is what i used , not the recommended or best way to do things.</p>
<p><img src="http://runawaycoder.co.za/wp-content/uploads/2008/11/formdesign.jpg" border="0" alt="FormDesign" hspace="8" width="312" height="253" align="top" /></p>
<table border="0" align="top">
<caption><span>Notification Icon On Form</span></caption>
<tbody>
<tr>
<td><img src="http://runawaycoder.co.za/wp-content/uploads/2008/11/formnotificationicon.jpg" border="0" alt="FormNotificationIcon" hspace="8" width="108" height="35" align="top" /></td>
</tr>
</tbody>
</table>
<p>Ok , so the picture above shows the basic layout of the form. It consists of 2 buttons to put the form into hide mode or take it off from hide mode , a text box stores the name of the application to hide, and a panel to hide the controls depending on the current mode. Also i added a notification icon component to the form so that i can minimize the form and still recover it.</p>
<p>I am not going to post all the code here ,only snippets that i need to discuss with regards to the flow of the application. The basic flow is described below.</p>
<p>1. When the activate button is clicked the following code is executed.</p>
<div><span style="font-size: 10pt; font-family: Courier New;">AppActive = </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">true</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">panel1.Visible = </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">false</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">I begin by setting the application to active and hiding the activation panel. The rest of the interaction with the form is done via the mouse over of the form.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">2. When the mouse enter is executed the following code is executed.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"></p>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;"> if</span><span style="font-size: 10pt; font-family: Courier New;"> (!AppActive) </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">return</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">if</span><span style="font-size: 10pt; font-family: Courier New;"> (CurrentStateOpen)</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> {</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> HideWindowFromUser();</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> CurrentStateOpen = </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">false</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> }</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">else</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> {</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> ShowWindow();</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> CurrentStateOpen = </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">true</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"> }</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">I begin by checking if the AppActive has been set to active , if not it exits the method. Next the code checks if the current forms state is opened or minimized. If the form is open then it hides it and sets the state to closed,if the form is closed then it opens it and sets the state to open.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">3. The Hide and Show methods are basically the core of the application as they send the calls to windows.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"></p>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">private</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">void</span><span style="font-size: 10pt; font-family: Courier New;"> ShowWindow()</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">{</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">IntPtr</span><span style="font-size: 10pt; font-family: Courier New;"> ip = </span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">Win32</span><span style="font-size: 10pt; font-family: Courier New;">.FindWindowByCaption(0, txtAppTitle.Text);</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">Win32</span><span style="font-size: 10pt; font-family: Courier New;">.ShowWindow(ip, (</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">int</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">WindowShowStyle</span><span style="font-size: 10pt; font-family: Courier New;">.ShowDefault);</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">}</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">The 2 calls to the windows API are wrapped by a custom class, the first line searches for window with the text the user enters into the text box and returns a pointer to the window. The next line sends a message to the window using pointer from the previous window. The type of the message is returned from the enum and is always the same. For a list of all the enum values you can google it or just look at the enum.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"></p>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">private</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">void</span><span style="font-size: 10pt; font-family: Courier New;"> HideWindowFromUser()</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">{</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">IntPtr</span><span style="font-size: 10pt; font-family: Courier New;"> ip = </span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">Win32</span><span style="font-size: 10pt; font-family: Courier New;">.FindWindowByCaption(0, txtAppTitle.Text);</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">Win32</span><span style="font-size: 10pt; font-family: Courier New;">.ShowWindow(ip, (</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">int</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">WindowShowStyle</span><span style="font-size: 10pt; font-family: Courier New;">.Hide);</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">this</span><span style="font-size: 10pt; font-family: Courier New;">.Hide();</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">}</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">The hide window basically does the same thing as above except that it uses a different message value in this case Hide.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">4. The last detail for the application is the wrapper class.</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;summary&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #008000;"> Executes the find window method , this is basically used to find a windows based on the windows caption</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;/summary&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;/summary&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;param name=&#8221;ZeroOnly&#8221;&gt;&lt;/param&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;param name=&#8221;lpWindowName&#8221;&gt;&lt;/param&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;returns&gt;&lt;/returns&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">[</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">DllImport</span><span style="font-size: 10pt; font-family: Courier New; color: #a31515;">"user32.dll"</span><span style="font-size: 10pt; font-family: Courier New;">, EntryPoint = </span><span style="font-size: 10pt; font-family: Courier New; color: #a31515;">"FindWindow"</span><span style="font-size: 10pt; font-family: Courier New;">, SetLastError = </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">true</span><span style="font-size: 10pt; font-family: Courier New;">)]</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">public</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">static</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">extern</span><span style="font-size: 10pt; font-family: Courier New;"> System.</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">IntPtr</span><span style="font-size: 10pt; font-family: Courier New;"> FindWindowByCaption(</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">int</span><span style="font-size: 10pt; font-family: Courier New;"> ZeroOnly, </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">string</span><span style="font-size: 10pt; font-family: Courier New;"> lpWindowName);</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;summary&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #008000;"> Executes the show window method , this is used to hide and show the window from the front end</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;/summary&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;param name=&#8221;hWnd&#8221;&gt;&lt;/param&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;param name=&#8221;nCmdShow&#8221;&gt;&lt;/param&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #808080;">///</span><span style="font-size: 10pt; font-family: Courier New; color: #808080;">&lt;returns&gt;&lt;/returns&gt;</span></div>
<div><span style="font-size: 10pt; font-family: Courier New;">[</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">DllImport</span><span style="font-size: 10pt; font-family: Courier New; color: #a31515;">"user32.dll"</span><span style="font-size: 10pt; font-family: Courier New;">)]</span></div>
<div><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">public</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">static</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">extern</span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">bool</span><span style="font-size: 10pt; font-family: Courier New;"> ShowWindow(</span><span style="font-size: 10pt; font-family: Courier New; color: #2b91af;">IntPtr</span><span style="font-size: 10pt; font-family: Courier New;"> hWnd, </span><span style="font-size: 10pt; font-family: Courier New; color: #0000ff;">int</span><span style="font-size: 10pt; font-family: Courier New;"> nCmdShow);</span></div>
<p></span></div>
<div><span style="font-size: 10pt; font-family: Courier New;"><span style="font-size: 10pt; font-family: Courier New;">These 2 Pinvoke methods make calls to windows api that are stored in the user32 dll. The wrapper class just makes it a bit easier to access the code and does not do much else.</span></span></div>
<div></div>
<div><span style="font-size: 10pt; font-family: Courier New;"><span style="font-size: 10pt; font-family: Courier New;">So i am not sure how much detail i was supposed to go into here but if its not enough please let me know and i will post more info. BTW you can grab the source code and the application from my website ,www.codebreaker.co.za<br />
</span></span></div>
<div></div>
<div><span style="font-size: 10pt; font-family: Courier New;"><span style="font-size: 10pt; font-family: Courier New;">As always remember suggestions and criticism is welcome.</span></span></div>
<div></div>
<div><span style="font-size: 10pt; font-family: Courier New;"><span style="font-size: 10pt; font-family: Courier New;">~stalkerh</span></span></div>
<p></span></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/11/27/weekly-code-a-thon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Short URL</title>
		<link>http://runawaycoder.co.za/2008/08/04/my-short-url/</link>
		<comments>http://runawaycoder.co.za/2008/08/04/my-short-url/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 05:55:47 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[handlers]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=109</guid>
		<description><![CDATA[When we get down to programming techniques, I have tried most of them out at some time or another , that is with regards to the .Net framework. Alas the one thing I have been trying to find a use for is http handlers. Handlers are an integral part of the ASP.net framework , but [...]]]></description>
			<content:encoded><![CDATA[<p>When we get down to programming techniques, I have tried most of them out at some time or another , that is with regards to the .Net framework. Alas the one thing I have been trying to find a use for is http handlers.</p>
<p>Handlers are an integral part of the ASP.net framework , but also one of the more tricky things to use since they have no general outstanding features. They allow you to write general system wide modules , so for the average person that has worked with .Net, the use of handlers is not very apparent.</p>
<p>Not to long ago I came across a small problem at work that was solved very nicely using an http handler and I thought I should share this. The general problem was the following: like every other business out there, we have to interface with many other systems that are not controlled by us and as such there are many changes that need to be made workable using workarounds. The particular problem revolved around the specified field being used to store an internal URL (so that it can be used at a later stage ) being too short and since they would not change the column size we were left with a system that could not function.</p>
<p>So I proposed the following solution to the team; create a local in-house shrinker. Due to security reasons we could not leave our URLs on an external server , so the thought of using a shrinker or any of the likes was out of the question. So all that we did was create a single fully indexed table to store the original URL and return the ID to the user as part of a clean URL using the handler.</p>
<p>The beauty of this setup is that it can be implemented without affecting the users. A very good example of this is <a href="http://code.google.com/p/elmah/">ELMAH</a>.  It is by far one of the coolest implementations of http handlers. It&#8217;s able to intercept any errors that occur in your web app and handle them as defined in your web.config .</p>
<p>Just remember there is aways more than one way to do something in .Net ;) .</p>
<p>~stalkerh</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/08/04/my-short-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Dragonfly can&#8217;t Rise from its Ashes</title>
		<link>http://runawaycoder.co.za/2008/06/18/a-dragon-fly-cant-rise-from-its-ashes/</link>
		<comments>http://runawaycoder.co.za/2008/06/18/a-dragon-fly-cant-rise-from-its-ashes/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 11:54:40 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[co blogging]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Gmaes]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=95</guid>
		<description><![CDATA[Unlike a phoenix , a dragonfly can&#8217;t rise from its ashes. To get the full understanding of this article I recommend reading the original, down at polymath programmer. The basis of the post was that just like a dragonfly that skims the water when it flies over it, a lot of people these days never [...]]]></description>
			<content:encoded><![CDATA[<p>Unlike a phoenix  , a dragonfly can&#8217;t rise from its ashes. To get the full understanding of this article I recommend reading the original, down at <a href="http://polymathprogrammer.com/2008/06/16/dragonfly-skimming-water-surface/" target="_blank">polymath programmer</a>.</p>
<p>The basis of the post was that just like a dragonfly that skims the water when it flies over it, a lot of people these days never seem to read things in full (the entire text) and naturally this leads to all kinds of frustrations from both the reader and the writers perspective.</p>
<p>Also, in the above mentioned article, the writer made a nice point saying that most dragonflies die after approximately 4 months. In the same way the information that article skimmers gain is never long lived, be it in the way they use the information or propagating it to other people. The information always stops as soon as they find the next big thing.</p>
<p>Using this same analogy, I would like to apply this to games as well. In recent times I have been noticing the very same trend which is especially common in Xbox 360 games.</p>
<p>Gamers tend to rush a game to such a point that they are basically skimming the story and all the other features that games present to users. The one reason for this is that Xbox users want as much gamerscore points as possible and then simply move on to the next game. The other reason is that during the holiday period so many games are released at such close intervals, that for a gamer to play all these games they end up rushing a game just to play the next. While there are many gamers that will come back to play a game some more, not all do this and the majority  just continues on and only return if the game makes some kind of debut in the news.</p>
<p>I would like to ask all gamers out there reading this to take time when they play the next best game. Enjoy everything from the music to the textures and the lighting. Lastly remember to take a few minutes once you have finished the game to let the credits roll cos you never know if it&#8217;s going be your name on that list next time.</p>
<h6>Edited by: Raymond Beets &amp; <a title="Francois Wiid" href="http://francoiswiid.wordpress.com" target="_blank">Francois Wiid</a><a title="Raymond" href="http://pletterpet.wordpress.com/" target="_blank"><br />
</a></h6>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/06/18/a-dragon-fly-cant-rise-from-its-ashes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is it safe to wake a hibernating language ?</title>
		<link>http://runawaycoder.co.za/2008/06/16/is-it-safe-to-wake-a-hibernating-language/</link>
		<comments>http://runawaycoder.co.za/2008/06/16/is-it-safe-to-wake-a-hibernating-language/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 06:51:40 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Annoyance]]></category>
		<category><![CDATA[Pain]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=94</guid>
		<description><![CDATA[I love ASP.net / C# and i love them with a passion to the point that i use it at just about any point possible i can when i develop applications. Unfortunately that love for the language bit me in the proverbial behind. While i do keep up with whats happening in the Dev Tech [...]]]></description>
			<content:encoded><![CDATA[<p>I love ASP.net / C#  and i love them with a passion to the point that i use it at just about any point  possible i can when i develop applications.</p>
<p>Unfortunately that love for the language bit me in the proverbial behind. While i do keep up with whats happening in the Dev Tech market as new languages are phased in and old ones phased out i still tend too look out for the .Net specifics and tend to let the rest take a place on the back burner.<br />
<span id="more-158"></span><br />
Please note all languages discussed here are in relation to the web.</p>
<p>So a while back i took some time out and updated my self with Ruby and Python (Python was more of just a web update since i already learnt it a while back). And i really enjoyed the way the new frameworks have progressed to the point where some one could actually use it as a clean and efficient RAD tool.</p>
<p>The other tool that i investigated at the time was netbeans (a jsp and more dev environment). Since i had knew java as one of my programming languages ( i might add a under used one) i used it for a bit and while it did seem interesting the tools offered by the IDE were quite thin. This was all fine since i never needed to use it for web design only windows or Linux. So a few days ago i decided to help a friend of mine with a project of his ,but a requirement of the project was that it needs to be done JSP but connect to MS SQL .While this is not an entirely odd request it kept on knocking me down with a couple of snags.</p>
<p>These days i rarely enjoy working with data access directly and instead prefer to use a framework of any kind. Just so long as i can work with objects and not have to write select and insert statements. Having never used any framework of this kind in java I and like and good programmer cracked google open and proceeded to searched for java frameworks.</p>
<p>A options presented themselves , one was  Netbeans built-in persistence framework and the famous Hibernate (There is actually a .Net implementation called NHibernate which is frustrating and fun at the same time , but thanks to many tools to help out its  more fun ). So I decided to use hibernate after trying for ages to get the built-in frame work to work and failing at each attempt, it seems that the framework does not like MS SQL. As with NHibernate it&#8217;s the tools that makes it so easy to use that allows it to be a functional framework , so on I go and look for some hibernate tools and lo and behold there are some awesome tools available , I chose to use Firestorm DAO Enterprise Edition and i have to say that it&#8217;s and excellent tool.</p>
<p>So after getting my classes generated and my project setup and cleaned to use the said generated classes , I began working on the actual problem at hand. What I where required to achieve was simply put the equivalent of a .Net repeater in JSP .Man, never have I had such a problem mimicking some thing in one language that can be done in another. For one there is no built-in repeater control and the table control that comes built into netbeans does not allow you to create template columns. After spending about 2 days trying to get a repeater generated , I had to concede defeat and google for a control on the net.</p>
<p>While my friend and i did find some promising results, none of them were built into netbeans and required an extra download to and already huge download. Also the said control did have netbeans support so you have to use them via XML which is not the easiest way to develop, after all; the reason I chose netbeans as a dev IDE was for its ease of use.</p>
<p>Also the reason I mentioned the other languages above was because I could achieve the required results in a 1/10 th of the time and get it to work. The same thing goes for .Net, I could achieve the required results in about 5 mins. While I know that .Net and in particular Visual Studio does pamper you with the amount of controls available and the ability to configure these  controls to suit your will, it is definitely no reason for the other IDE&#8217;s and languages to depend on this and not build their own libraries.</p>
<p>I guess that bringing a language out of hibernation after such a long time and expecting to get the same results is almost impossible. However; it&#8217;s things like this that end up shunning new developers from the language and environment.</p>
<p>If anyone has any good books related to JSP / Netbeans Dev, please forward the link or books to me .</p>
<p>Part 2 : The right tool for the right job ,will be published soon i hope.</p>
<p>Thanks</p>
<p>Jameel Haffejee<br />
Edited By : Francois Wiid</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/06/16/is-it-safe-to-wake-a-hibernating-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protonote Beta &amp; MGB Beta the ultimate collaboration</title>
		<link>http://runawaycoder.co.za/2008/06/03/protonote-beta-mgb-beta-the-ultimate-collaboration/</link>
		<comments>http://runawaycoder.co.za/2008/06/03/protonote-beta-mgb-beta-the-ultimate-collaboration/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 05:41:05 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Beta]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[MGB]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=89</guid>
		<description><![CDATA[So i recently got a chance to look at Protonote and i have to say that it is certainly interesting and it works very well. Since i got it working so well i decided to integrate it MGB so that i can hopefully push the development a bit more.The problem that i find that protonotes [...]]]></description>
			<content:encoded><![CDATA[<p>So i recently got a chance to look at Protonote and i have to say that it is certainly interesting and it works very well.</p>
<p>Since i got it working so well i decided to integrate it MGB so that i can hopefully push the development a bit more.The problem that i find that protonotes sovles is that making notes on a site is such a problem. To notify a developer either a forum has to be setup or a blog is used or something of the like. While this works generally ,i have found that with web site development if the people are not meeting face to face it can be hard to pin point changes that they want a developer to make. This leads to screen shots flying around with squiggles all around and doesnt really help with keeping track of scope creep.</p>
<p>Protonote allows notes to be hooked directly to a site just like how a normal post it is stuck on anything else. The best part is that all of this can be hooked up to a MySql Database and can be tracked and monitored.</p>
<p>Go over to http://mgb.codebreaker.co.za  and give it a try, to me as a web developer this is a invaluable tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/06/03/protonote-beta-mgb-beta-the-ultimate-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to the virtual world</title>
		<link>http://runawaycoder.co.za/2008/05/29/welcome-to-the-virtual-world/</link>
		<comments>http://runawaycoder.co.za/2008/05/29/welcome-to-the-virtual-world/#comments</comments>
		<pubDate>Thu, 29 May 2008 07:50:05 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Vitual]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=86</guid>
		<description><![CDATA[So the one thing that i have always been fascinated with more than Coding and Dev is Virtual Environments. I mean what is there not to like about them , you get to have a another machine within your machine that you can use to mess around with till it falls apart and start again [...]]]></description>
			<content:encoded><![CDATA[<p>So the one thing that i have always been fascinated with more than  Coding and Dev is Virtual Environments. I mean what is there not to like about them , you get to have a another machine within your machine  that you can use to mess around with till it falls apart and start again with no consequences</p>
<p>While there are many providers out there that provide the applications to host your virtual machines , there are so many pros and cons its hard to choose a good provider.</p>
<p>If you willing to pay for the service then VMWare is by far the best, but if you use windows then you are in a bit of luck since Microsoft Provides a free Virtual PC that you can use. For Mac there is Parallels which works just as well.Recently Sun released xVM VirtualBox which is free for personal use, and man i must say that this is buy far the best option of all for the single user.</p>
<p>Some of the features that really caught my eye was the fact that you could assign each virtual machine a RDP port and basically leave the machine on which it is installed on to act as a server and then  remote desktop to the virtual machines from your desktop. Another out of the box feature that i found interesting was the fact that it supports Intels and AMD&#8217;s virtualisation features which to me is a awesome leap forward.</p>
<p>The other good thing with them is that they have a release for any distribution under the sun :) .This helps with deep virtualisation testing as well as speed testing.</p>
<p>But as i stated in the start VMWare is the king when it comes to its multitude of products and the support of those products, i can only hope that Sun catches up with something similiar.</p>
<p>The market for these products is too big to be owned by one company only ,so here&#8217;s to new virtual applications for free.</p>
<p>Also if you have not yet tried Sun&#8217;s product yet i encourage you to do so since it is one great piece of software.</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/05/29/welcome-to-the-virtual-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Game Buddy 0.5</title>
		<link>http://runawaycoder.co.za/2008/05/19/my-game-buddy-05/</link>
		<comments>http://runawaycoder.co.za/2008/05/19/my-game-buddy-05/#comments</comments>
		<pubDate>Mon, 19 May 2008 13:13:41 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[Dev In Progress]]></category>
		<category><![CDATA[MGB]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=80</guid>
		<description><![CDATA[New Version released : Improved loading times. Permission Acquired to use site data Added better error handling for I.E. and Firefox Increased amount of data loaded from Zaps Misc other back end fixes Keep the comments comming , thanks to those that commented already.]]></description>
			<content:encoded><![CDATA[<p>New Version released :</p>
<ul>
<li>Improved loading times.</li>
<li>Permission Acquired to use site data</li>
<li>Added better error handling for I.E. and Firefox</li>
<li>Increased amount of data loaded from Zaps</li>
<li>Misc other back end fixes</li>
</ul>
<p>Keep the comments comming , thanks to those that commented already.</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/05/19/my-game-buddy-05/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Game Buddy 0.4</title>
		<link>http://runawaycoder.co.za/2008/05/19/my-game-buddy-04/</link>
		<comments>http://runawaycoder.co.za/2008/05/19/my-game-buddy-04/#comments</comments>
		<pubDate>Mon, 19 May 2008 07:53:50 +0000</pubDate>
		<dc:creator>jameel</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Leetness]]></category>
		<category><![CDATA[Dev In Progress]]></category>
		<category><![CDATA[MGB]]></category>

		<guid isPermaLink="false">http://jameel.codebreaker.co.za/?p=79</guid>
		<description><![CDATA[Ok finally updated the website to 0.4 , users can now search the respective sites live and data will be loaded. Please note that data is only taken from the respective sites every 8 hours to prevent dos attacks. The rest of the time the data will be loaded from the database. Also comments are [...]]]></description>
			<content:encoded><![CDATA[<p>Ok finally updated the website to 0.4 , users can now search the respective sites live and data will be loaded.</p>
<p>Please note that data is only taken from the respective sites every 8 hours to prevent dos attacks. The rest of the time the data will be loaded from the database.</p>
<p>Also comments are now live and active , any comments sent will be sent to me.</p>
<p>Please leave a comment here if you have any other idea or such.</p>
]]></content:encoded>
			<wfw:commentRss>http://runawaycoder.co.za/2008/05/19/my-game-buddy-04/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
