<?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>Fremus.co.za</title>
	<atom:link href="http://www.fremus.co.za/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fremus.co.za/blog</link>
	<description>Demistifying Life and Web Development</description>
	<lastBuildDate>Tue, 31 Aug 2010 16:45:27 +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>Songs that keep me light hearted</title>
		<link>http://www.fremus.co.za/blog/2010/08/songs-that-keep-me-light-hearted/</link>
		<comments>http://www.fremus.co.za/blog/2010/08/songs-that-keep-me-light-hearted/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 16:45:27 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[TranceFamily]]></category>
		<category><![CDATA[Armin van Buuren]]></category>
		<category><![CDATA[ASOT]]></category>
		<category><![CDATA[Sharon den Adel]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/08/songs-that-keep-me-light-hearted/</guid>
		<description><![CDATA[I have a selection of songs that really make my day cool and I thought I would share them here. The first song is called Garden State feat Marcie. The lyrics are beautiful: On the terrace of tomorrow On the lawn of yesterday The love that we’ve been cultivating Is finally here to stay Oasis [...]]]></description>
			<content:encoded><![CDATA[<p>I have a selection of songs that really make my day cool and I thought I would share them here. The first song is called <em>Garden State feat Marcie.</em> The lyrics are beautiful:</p>
<blockquote><p>On the terrace of tomorrow     <br />On the lawn of yesterday      <br />The love that we’ve been cultivating      <br />Is finally here to stay</p>
<p>Oasis in the moonlight     <br />Will you see me through      <br />With flowers growing all around      <br />A garden here with you</p>
<p>All night     <br />I wanna be with you all night</p>
<p>Temptation can be hard to fight     <br />Lured astray by city lights      <br />(But the garden grows)      <br />(Yet the garden grows)      <br />Sometimes we fight within these walls      <br />We almost lost it all      <br />(But the garden grows)      <br />(Yet the garden grows)</p>
<p>All night     <br />I wanna be with you all night      <br />I wanna be with you all night      <br />I wanna be with you all night</p>
<p>&#160;</p>
</blockquote>
<p>I downloaded the song from <a href="http://www.beatport.com" onclick="urchinTracker('/outgoing/www.beatport.com?referer=');">www.beatport.com</a> and I must say its one of my favourites. I listened to it on ASOT 425 the first time. </p>
<div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:18fc4132-3bcf-4e22-81e3-58044f0599dd" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Ss89R7buun4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&amp;hl=en"></param><embed src="http://www.youtube.com/v/Ss89R7buun4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>Another song I really love is Longest road feat Lissie and I love the Deadmau5 one I bought on <a href="http://www.beatport.com" onclick="urchinTracker('/outgoing/www.beatport.com?referer=');">www.beatport.com</a>: </p>
<div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:841724fe-71bd-4b2b-90fd-b9b5c3a922c4" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/shBKTA3QIok?fs=1&amp;hl=en_US&amp;hl=en"></param><embed src="http://www.youtube.com/v/shBKTA3QIok?fs=1&amp;hl=en_US&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>Another of my all time favourites of recent times is In and out of Love with the vocals of Sharon den Adel:</p>
<blockquote><p>See the mirror in your eyes     <br />See the truth behind your lies      <br />Your lies are haunting me      <br />See the reason in your eyes      <br />Giving answer to the why:      <br />Your eyes are haunting me!</p>
<p>Falling in &amp; out of love     <br />In love, in love      <br />Falling in &amp; out of love      <br />Your love, your love</p>
<p>See the mirror in your eyes     <br />See the truth behind your lies      <br />Your lies are haunting me      <br />See the reason in your eyes      <br />Giving answer to the why:      <br />Your eyes are haunting me!</p>
<p>Falling in and out of love     <br />In love, in love      <br />Falling in and out of love      <br />Your love, your love      <br />In love, in love, in love</p>
<p>Why can’t you see it?     <br />Why can’t you feel?      <br />In and out of love      <br />each time.</p>
<p>Why can’t you feel it?     <br />Why can’t you see it?      <br />In and out of love</p>
<p>I keep keep runnin’     <br />I keep keep fallin’      <br />Let it fade away.</p>
<p>Away away away away     <br />Oh Let it fade away.</p>
<p>&#160;</p>
</blockquote>
<p>It has more than 60 million views on <a href="http://www.youtube.com" onclick="urchinTracker('/outgoing/www.youtube.com?referer=');">www.youtube.com</a>:</p>
<div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:7bc75525-7fcf-41fd-a89a-6ffdc3617e34" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/TxvpctgU_s8?fs=1&amp;hl=en_US&amp;hl=en"></param><embed src="http://www.youtube.com/v/TxvpctgU_s8?fs=1&amp;hl=en_US&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p> I could go on for pages and pages really. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/08/songs-that-keep-me-light-hearted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 Reasons why I won&#8217; touch PHP</title>
		<link>http://www.fremus.co.za/blog/2010/08/4-reasons-why-i-won-touch-php/</link>
		<comments>http://www.fremus.co.za/blog/2010/08/4-reasons-why-i-won-touch-php/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:02:42 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/?p=689</guid>
		<description><![CDATA[Firstly PHP is just a web scripting language and can only be used on a web server for web development, that&#8217;s it. You cannot use PHP to develop Windows apps or Linux UI or Mac OS X UI apps. If you want to implement any of the classes you will have to most probably rewrite [...]]]></description>
			<content:encoded><![CDATA[<p>Firstly PHP is just a web scripting language and can only be used on a web server for web development, that&#8217;s it. You cannot use PHP to develop Windows apps or Linux UI or Mac OS X UI apps. If you want to implement any of the classes you will have to most probably rewrite that code, which is not that great. Compare this to Python or C# and you wont have to rewrite your code, just create a class library (with C#) and re-use, re-use, re-use, re-use&#8230; Code reuse within a PHP environment is thus seemingly limited to a web environment.</p>
<p>The second reason why I will not use PHP is because there are better dynamic languages available, such as Python and Ruby.</p>
<p>The third reason I wont develop websites using PHP is because PHP devs seem to think that because the develop a site in PHP they are already building an SEO friendly website. What utter crap. There seems to be this aura around PHP that makes it look like you automatically get website awesomeness packed in. Lets not forget that the art of development on most platforms require the same disciplined processes. Whether you write unit tests for .NET or PHP &#8211; you still need to write unit tests. Whether you test websites written using PHP or ASP.NET you still have to test them in browsers &#8211; you dont get cross-browser compatibility out of the box. </p>
<p>The fourth reason I wont use PHP for development is because .NET offers programming features such as LINQ and Generics. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/08/4-reasons-why-i-won-touch-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Where are the development efforts happening?</title>
		<link>http://www.fremus.co.za/blog/2010/08/where-are-the-development-efforts-happening/</link>
		<comments>http://www.fremus.co.za/blog/2010/08/where-are-the-development-efforts-happening/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 20:34:19 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[Fremus.co.za]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/08/where-are-the-development-efforts-happening/</guid>
		<description><![CDATA[And more where will mine be in the near future? I was looking at Macbook Pros today and I am seriously considering switching over for quite a few reasons. The first reason is that I really want to get stuck into learning Python or a non-windows programming language, and it seems Mac OS X is [...]]]></description>
			<content:encoded><![CDATA[<p>And more where will mine be in the near future? I was looking at Macbook Pros today and I am seriously considering switching over for quite a few reasons. The first reason is that I really want to get stuck into learning Python or a non-windows programming language, and it seems Mac OS X is a natural extension for Python. I’m not looking for a programming language alone though and would prefer a technology stack instead. </p>
<p>The .NET framework is a technology stack that stretches quite far, from desktop development, database development, web development and mobile development, and you dont have to learn separate programming languages for each. I dont just write code for web development purposes – I write whatever I need for a particular job. Windows Powershell seamlessly integrates with the .NET framework’s BCL (base class library). </p>
<p>It seems to me that because Mac OS x is a UNIX system at the core it would integrate well with hosted content on Linux- or Unix-based systems, which means that you become part of a technology stack. With my limited knowledge and experience on Ubuntu I was able to connect through a shell to a Linux-based webhost, and I was able to traverse through directories and files. This seems like a natural extension of the development environment to me. </p>
<p>A while ago I noticed that at least two Microsoft people left to work for Google and while this may not seem like much of an event I find myself questioning the platform(s) I use for development. At heart I am a curious and innovative person who will generally seek to use something to solve a particular problem, regardless of what technology it uses. I have also been guilty of some fanboyism with regards to things like Visual Studio and C#, but I too realise that being a fanboy of something tends to make you a bit ignorant of other things. I have for instance decided not to learn PHP simply for the reason that I dont like its syntax style, the dollars just seem to clutter the code and PHP is not such a widely applicable language such as C# or Python. You could write any type of application with either Python or C# – windows-based or web-based. I also seem to think PHP is not quite on the same level as Python or C# in terms of language maturity, but that is just an opinion. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/08/where-are-the-development-efforts-happening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax in the .NET environment&#8230;</title>
		<link>http://www.fremus.co.za/blog/2010/08/ajax-in-the-net-environment/</link>
		<comments>http://www.fremus.co.za/blog/2010/08/ajax-in-the-net-environment/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 19:29:25 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Web Technologies]]></category>
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/08/ajax-in-the-net-environment/</guid>
		<description><![CDATA[Ajax is not new, its not revolutionary, but it has changed the way I view web development. Javascript no longer comes as a might-have, instead it comes as a critical part of any website application. These days I use JavaScript as the UI scripting tool of choice, and I try to steer away from doing [...]]]></description>
			<content:encoded><![CDATA[<p>Ajax is not new, its not revolutionary, but it has changed the way I view web development. Javascript no longer comes as a might-have, instead it comes as a critical part of any website application. These days I use JavaScript as the UI scripting tool of choice, and I try to steer away from doing to much UI lifting in my server side code. jQuery makes dealing with UI quite pleasant. </p>
<p>I have also, in the last year and a half or so, been coding without MS Ajax. I have let go of things like the UpdatePanel and the Script Manager and have instead come to do direct Ajax calls to .ashx, default.aspx and web services. It feels that when you follow this approach that you have much tighter control over the quality of the UI. So what are your options for making Ajax calls in a .NET environment? I would like to think that there are a few options that stand out:</p>
<ul>
<li>Direct page ajax calls – you can use jQuery’s ajax function to call .ashx and .aspx pages. I have recently started using the [WebMethod] attribute in my .aspx files to make calls, and what I like about it is that you can tell the page to output JSON, which automatically serializes the method’s return type. I have also used ashx files to do ajax calls and this worked well</li>
<li>SOAP-based web services – an approach I learned last year was to use a javascript soap parser to parse soap-based web services. These were mainly .asmx services. You can configure .asmx services to return JSON as well</li>
<li>WCF-services can be configured for SOAP or JSON but also use a REST-like approach</li>
</ul>
<p>What other options are there for .NET developers when making Ajax calls?</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/08/ajax-in-the-net-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying out Powershell 2.0</title>
		<link>http://www.fremus.co.za/blog/2010/07/trying-out-powershell-2-0/</link>
		<comments>http://www.fremus.co.za/blog/2010/07/trying-out-powershell-2-0/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 18:41:12 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Windows Powershell 2.0]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Powershell 2.0]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/07/trying-out-powershell-2-0/</guid>
		<description><![CDATA[Recently I have been dabbling a bit with Ubuntu and I really liked the command line approach because it feels like you got this powerful sword that you can wield around. Linux is great, but I am still a Windows person (bad I know) but its the truth. So I was looking around and reading [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have been dabbling a bit with Ubuntu and I really liked the command line approach because it feels like you got this powerful sword that you can wield around. Linux is great, but I am still a Windows person (bad I know) but its the truth. So I was looking around and reading and at one point today I wondered if you can connect to a Linux shell through Windows Powershell, but it didnt seem to evident. All the thinking and reading got me to search for a Powershell 2.0 “download page”, which doesnt really exist. You have to download an update for <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=60cb5b6c-6532-45e0-ab0f-a94ae9ababf5&amp;displaylang=en" target="_blank" onclick="urchinTracker('/outgoing/www.microsoft.com/downloads/details.aspx?FamilyId=60cb5b6c-6532-45e0-ab0f-a94ae9ababf5_amp_displaylang=en&amp;referer=');">Windows XP</a> (if you are running Windows XP like me). Windows 7 has Powershell installed by default. Once you have downloaded and installed it you are ready to use Windows Powershell. I found two items under my Accessories –&gt; Windows Powershell menu:</p>
<p><a href="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot.jpg"><img title="powershellscreenshot" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="48" alt="powershellscreenshot" src="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot_thumb.jpg" width="173" border="0" /></a> </p>
<p>The first item takes you directly to the command line and the second one takes you to an IDE for debugging and testing your Powershell scripts, which I found useful for syntax checking. My first script was just a test to print some text on the commandline:</p>
<p><a href="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot1.jpg"><img title="powershellscreenshot1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="104" alt="powershellscreenshot1" src="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot1_thumb.jpg" width="380" border="0" /></a> </p>
<p>To execute you run this in the commandline (if you have saved the script above to a folder called powershellscripts):</p>
<p><a href="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot2.jpg"><img title="powershellscreenshot2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="70" alt="powershellscreenshot2" src="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot2_thumb.jpg" width="383" border="0" /></a></p>
<p>The code above was just for myself and so that I could get some of basic mechanics right. My goal was to create a script that could connect to a SQL Server database and retrieve data, and store it. I also found two places useful as reference for examples: </p>
<ul>
<li><a href="http://blogs.technet.com/b/heyscriptingguy/" target="_blank" onclick="urchinTracker('/outgoing/blogs.technet.com/b/heyscriptingguy/?referer=');">Hey, Scripting Guy! Blog</a></li>
<li><a href="http://gallery.technet.microsoft.com/scriptcenter/en-us/" target="_blank" onclick="urchinTracker('/outgoing/gallery.technet.microsoft.com/scriptcenter/en-us/?referer=');">The Script Center</a></li>
</ul>
<p>I looked at a few samples and came across a <a href="http://gallery.technet.microsoft.com/ScriptCenter/en-us/93ef6706-42c9-4b88-98f9-4c1e3044615e" target="_blank" onclick="urchinTracker('/outgoing/gallery.technet.microsoft.com/ScriptCenter/en-us/93ef6706-42c9-4b88-98f9-4c1e3044615e?referer=');">sample that connected to an OLE DB (Microsoft Access)</a> and what struck me was that the code looked a lot like standard ADO.NET code, although there are a few differences. It seems variables are declared with a dollar ($) sign and there are no semicolons (being a C# person that was a surprise). With the sample I started creating my own sample that connected to a SQL Server 2008 Express database:</p>
<p><a href="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot3.jpg"><img title="powershellscreenshot3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="316" alt="powershellscreenshot3" src="http://www.fremus.co.za/blog/wp-content/uploads/2010/07/powershellscreenshot3_thumb.jpg" width="427" border="0" /></a></p>
<p>As you can see from the code parameters are passed with a param(…) and class instances are created with the new-object keyword. If you type a variable it will be printed as is the case with the $tbl variable. </p>
<p>I know there is a whole lot more that can be done, but I was surprised with how easily I could connect to a database. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/07/trying-out-powershell-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logging frameworks for C#</title>
		<link>http://www.fremus.co.za/blog/2010/07/logging-frameworks-for-c/</link>
		<comments>http://www.fremus.co.za/blog/2010/07/logging-frameworks-for-c/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 12:28:58 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/07/logging-frameworks-for-c/</guid>
		<description><![CDATA[I find myself going to StackOverflow a lot recently if I need to search for an opinion on something related to C# or ASP.NET. Strangely you will find that in the first 10 results of a Google search you will find one, maybe two, pointing to StackOverflow. I digress, and the reason I am writing [...]]]></description>
			<content:encoded><![CDATA[<p>I find myself going to <a href="http://www.stackoverflow.com" target="_blank" onclick="urchinTracker('/outgoing/www.stackoverflow.com?referer=');">StackOverflow</a> a lot recently if I need to search for an opinion on something related to C# or ASP.NET. Strangely you will find that in the first 10 results of a Google search you will find one, maybe two, pointing to <a href="http://www.stackoverflow.com" target="_blank" onclick="urchinTracker('/outgoing/www.stackoverflow.com?referer=');">StackOverflow</a>. I digress, and the reason I am writing this particular blogpost is to make a list of logging frameworks available to .NET (C#) developers.</p>
<p>Before I go into identifying a few possible solutions I need to try and understand what my need is and what it is I want to achieve. I am going to be tackling various ASP.NET MVC projects within the next two to three months, and I cannot possibly see myself knowing where all the exceptions in my application will happen, or even try and code in such a way that all my try{}catch{} statements catch the correct exception. At the same time there is no excuse to overlook an exception if it happens more than once, you have to handle it. Having noticed how many exceptions a WCF service can throw I know for a fact that I cannot know all the exceptions beforehand either, so I need something, a tool that allows me to see the exceptions, and add it to my code so I can catch them. So the basic need is simple, have a mechanism in place that allows exceptions in my system to be caught.</p>
<p>You might be going, OMW you don’t log? Well I have been with several development teams and I can tell you that not a lot of development teams log system errors. And there is a host of other things they also don’t do, but that is not a part of this blog post.</p>
<p>I searched <a href="http://www.stackoverflow.com" target="_blank" onclick="urchinTracker('/outgoing/www.stackoverflow.com?referer=');">StackOverflow</a>, and to me it seems there are a couple of choices available for logging in the .NET world:</p>
<ul>
<li><a href="http://logging.apache.org/log4net/" target="_blank" onclick="urchinTracker('/outgoing/logging.apache.org/log4net/?referer=');">Log4Net</a>, the popular Java port</li>
<li><a href="http://msdn.microsoft.com/en-us/library/ff648951.aspx" target="_blank" onclick="urchinTracker('/outgoing/msdn.microsoft.com/en-us/library/ff648951.aspx?referer=');">Enterprise Library from Microsoft</a></li>
<li><a href="http://nlog-project.org/" target="_blank" onclick="urchinTracker('/outgoing/nlog-project.org/?referer=');">NLog</a></li>
<li><a href="http://code.google.com/p/elmah/" target="_blank" onclick="urchinTracker('/outgoing/code.google.com/p/elmah/?referer=');">ELMAH for ASP.NET</a></li>
</ul>
<p>Maybe I need to consider all the features offered and decide on the best alternative, which would be:</p>
<ul>
<li>Ease of installation</li>
<li>Ease of getting to the exception logs </li>
</ul>
<p>My intention is to start looking at each one of these this week, and make a decision by the end of the week.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/07/logging-frameworks-for-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I remember&#8230;</title>
		<link>http://www.fremus.co.za/blog/2010/07/i-remember/</link>
		<comments>http://www.fremus.co.za/blog/2010/07/i-remember/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 10:53:49 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[#branding]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/?p=668</guid>
		<description><![CDATA[A big field where I played rugby and cricket with other kids. We had our own tournaments going, even though we only had two or three players in the side. Cricket was played with no wicket keeper, any nicks behind were given out. We also limited scoring shots to the leg side only, off side [...]]]></description>
			<content:encoded><![CDATA[<p>A big field where I played rugby and cricket with other kids. We had our own tournaments going, even though we only had two or three players in the side. Cricket was played with no wicket keeper, any nicks behind were given out. We also limited scoring shots to the leg side only, off side scoring was not allowed. We had our rules in place, and the tournaments and matches played were memorable, and life changing. I only found out this year that one of the kids, a great childhood friend, died some time in 2008, which really saddened me because we had a lot of memorable times together. </p>
<p>We played rugby on a quarter of a full playing field, by playing vertically down in that quarter. So if you can imagine a rugby field for a minute, think of the goal line and the quarter mark, and imagine a group of kids, maybe 4-5 a side playing in that space. We had imaginary goal posts, so we kinda guessed if we kicked a drop goal, and we only had three in the scrum, but it was the memories that were created that have remained with me in my short 29 years of life. </p>
<p>The last time we played cricket I was in standard 7, grade 9, or about 15 years old, and since that time I have had little to no contact with any of my childhood playmates. Due in most part to people moving around, and moving to new neighbourhoods. I saw the friend that died a few times after that, but not frequently, and I guess it kinda signaled an end to that part of my life. </p>
<p>Looking back at these memories got me thinking about personal branding and finding inspiration in my life through stories. Stories are sometimes the best way to communicate a value or a lesson, and I can personally say that I have learnt most of my values through the lessons in my life. In saying that I guess the first important aspect of my personal brand is that I love stories, stories about life and stories that reflect determination and character. Playing cricket as a young boy was about being able to play cricket, no matter where we played. We had our favourite spots, but often our spots weren&#8217;t available and we made plans, we adapted. We even kept stats of each game for each player, and there was always a lot of competitiveness for being the player with the most runs or the most wickets. We were free though, free to play and be, and that is the second aspect of my life that I have always tried to treasure, freedom. You know the feeling you get when you are in a swimming pool and you are all alone and you can swim freely without knocking into anyone? Freedom to run around on open fields, to sleep late in the school holidays, to express yourself in any way you wanted to, thats what I valued the most. How do you reflect that in a personal brand? </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/07/i-remember/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying to turn a new development leaf</title>
		<link>http://www.fremus.co.za/blog/2010/06/trying-to-turn-a-new-leaf/</link>
		<comments>http://www.fremus.co.za/blog/2010/06/trying-to-turn-a-new-leaf/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 12:24:09 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[WSF]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/?p=642</guid>
		<description><![CDATA[I&#8217;m not sure development teams do the testing they are suppose to do, or follow the advice of what proponents of testing say you should do. As a matter of fact I know that most teams do not practice any form of formal testing, or rather make testing a key component of their development. Test [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure development teams do the testing they are suppose to do, or follow the advice of what proponents of testing say you should do. As a matter of fact I know that most teams do not practice any form of formal testing, or rather make testing a key component of their development. Test Driven Development in an Agile scenario prescribes that you write code, write test code, test it and iterate if necessary. Essentially TDD forces you into a discipline of making sure your code works, which incidentally is one of the key objectives of an agile development methodology &#8211; you must always have a working portion of your code. In other words if you have to release code immediately then there should be code of sufficient working quality available to make everything work. That is my understanding anyway. </p>
<p>The reason I am looking at using agile as a development methodology is because I want to develop a commercial product using ASP.NET MVC and as <a href="http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx" onclick="urchinTracker('/outgoing/haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx?referer=');">Phil Haack says in this article</a>:</p>
<blockquote><p>Notice that at this point, we’re focusing on the behavior of our app first rather than focusing on the UI first. This is a stylistic difference between ASP.NET MVC and ASP.NET WebForms. Neither one is necessarily better than the other. Just a difference in approach and style.</p></blockquote>
<p>And from that I gather that ASP.NET MVC was designed to work well as a unit testing platform as well. I started about 3 weeks ago to formalise my development process and I started out by defining agile to have the following steps:</p>
<ul>
<li>Start off by Planning a work item</li>
<li>Do a requirements analysis of the work item and identify what you will need to do to get it working correctly</li>
<li>Design the code/program</li>
<li>An iteration then begins:
<ul>
<li>Write the code</li>
<li>Write a unit test</li>
<li>Do an acceptance test</li>
</ul>
</li>
</ul>
<p>I am having to change my development process though, because I intend to use Team Foundation Server (TFS) as my source control system, and I was thinking that maybe I need to consider using MSF (Microsoft Solution Framework) to drive my development process. MSF is integrated into TFS, and it essentially means that you can build applications and do source control within a development methodology. I started off <a href="http://search.microsoft.com/Results.aspx?q=microsoft+solution+framework+v4&#038;x=0&#038;y=0&#038;mkt=en-US&#038;FORM=QBME1&#038;l=1&#038;refradio=0&#038;qsc0=0" onclick="urchinTracker('/outgoing/search.microsoft.com/Results.aspx?q=microsoft+solution+framework+v4_038_x=0_038_y=0_038_mkt=en-US_038_FORM=QBME1_038_l=1_038_refradio=0_038_qsc0=0&amp;referer=');">looking for stuff on MSDN</a> and searched for this and came across <a href="http://search.microsoft.com/Results.aspx?q=microsoft+solution+framework+v4&#038;x=0&#038;y=0&#038;mkt=en-US&#038;FORM=QBME1&#038;l=1&#038;refradio=0&#038;qsc0=0" onclick="urchinTracker('/outgoing/search.microsoft.com/Results.aspx?q=microsoft+solution+framework+v4_038_x=0_038_y=0_038_mkt=en-US_038_FORM=QBME1_038_l=1_038_refradio=0_038_qsc0=0&amp;referer=');">this presentation</a>. From this presentation I understood that the agile process is structured a little differently to what I did in my initial process definition. Each iteration in a MSF consists of:</p>
<ul>
<li>Envision</li>
<li>Plan</li>
<li>Build</li>
<li>Stabilize</li>
<li>Deploy</li>
<li>Continuous</li>
</ul>
<p>Iterations occur at various steps and its up to the project manager to determine how many iterations occur. MSF also promotes a daily work cycle, which essentially makes sure that your code is of an acceptable standard. Essentially you check-in each day, make a build, make sure its an acceptable build and then you continue the develpment process within an iteration. This process repeats daily. Within the iteration cycle there are several other iterations which aim to achieve a pre-determined level of quality, based on planning of feature sets. The iterations also act as a mechanism to correct a project plan if there are deviations. The iteration is broken up into iteration cycles, with iteration 0 consisting of a project setup plan followed by a first iteration that involves planning, developing, testing and getting feedback followed by an nth number of iterations that involve planning, developing, testing and feedback. The last iteration is a set of nth iterations that involve developing, testing and releasing the product. You have to view these iterations as a set of &#8216;refinement&#8217; iterations, each iteration is intended to refine the solution. You also have to view these iterations in relation to the iteration steps mentioned above. In the powerpoint presentation they present a very cool view of the iterations as they happen. </p>
<h2>Iteration 0</h2>
<p>At the top they start off with the envision stage that includes the writing of a vision statement and the identification of personas within your system. Once that is defined you have to determine an iteration length. At the planning stage of the iteration you have to access/assess project progress, which is a continual thing I assume. Within the build stage you must start off by creating a scenario through brainstorming. You must also create a Quality of Service scenario through which you create a QoS. At this stage you must also refine the personas. The scenario that you created previously requires that you prioritise the scenario list, each with a scenario description. You need to prioritise QoS as well and write a QoS requirement. From the scenarios that have been written you need to create a solution architecture that partitions the system. You also need to storyboard the scenario, and develop a performance model. You also have to identify the security objectives, and then you need to test the scenario by defining a test approach. </p>
<p>On the next level you have to determine the interface. Does this mean the actual UI? You also need to plan an iteration at this stage by estimating a scenario or QoS. Then you need to develop a threat model. On the next level you need to plan an iteration around scheduling a scenario. From this you can develop an architectural prototype. You also need to plan an iteration around QoS and then create a infrastructure architecture. At the next level/step you plan an iteration around dividing the scenario into tasks, that make up a dev task which is then costed, and the same strategy is applied to QoS. </p>
<p>From the diagram in the powerpoint I assume that you can repeat as many iterations as you want.</p>
<h2>Iteration 1</h2>
<p>Iteration 1 includes writing a QoS test and writing a validation test for testing your scenario. It also includes doing a code check-in to your source control. It contains stages/levels that require you to write code for a development task, as well as creating an update of a unit test. It also covers fixing bugs:</p>
<ul>
<li>Reproducing the bug</li>
<li>Locating the bug cause</li>
<li>Deciding on a bug fix strategy</li>
<li>Reassign the bug</li>
<li>Create of Update unit test</li>
<li>Code the fix</li>
<li>Perform unit test</li>
</ul>
<p>Implementing a development task covers the following:</p>
<ul>
<li>Create of Update Unit Test</li>
<li>Write code for dev task</li>
<li>Perform Unit Test</li>
<li>Perform Code Analysis</li>
<li>Refactor code</li>
<li>Integrate Code Change</li>
</ul>
<p>After this stage there has to be a build and an accepted build. In the build there will be:</p>
<ul>
<li>Start a build</li>
<li>Verify a Build</li>
<li>Fix a build</li>
<li>Accept Build</li>
</ul>
<p>An accepted build will revolve around testing scenarios and in particular:</p>
<ul>
<li>Conducting an exploratory test</li>
<li>Select and run a test case</li>
<li>Open a bug</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/06/trying-to-turn-a-new-leaf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Live Writer</title>
		<link>http://www.fremus.co.za/blog/2010/06/windows-live-writer/</link>
		<comments>http://www.fremus.co.za/blog/2010/06/windows-live-writer/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 21:25:04 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Live Writer]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/2010/06/windows-live-writer/</guid>
		<description><![CDATA[Microsoft come in for a lot of flack from the OSS world and the Mac users think they are better than everyone else when it comes to software. But I was surprised again today by how good Windows Live Writer integrates with my WordPress Blog, to such an extent that I will in all probability [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft come in for a lot of flack from the OSS world and the Mac users think they are better than everyone else when it comes to software. But I was surprised again today by how good Windows Live Writer integrates with my WordPress Blog, to such an extent that I will in all probability not use the WordPress WYSIWYG editor in the browser, for which I have a reason or two. Firstly, the WYSIWYG editor runs in the browser and I find quite a few things annoying:</p>
<ul>
<li>When I create a blockquote it adds a lot of spacing around it for some reason</li>
<li>When I update a post or page the scrollbar will go to the top, instead of staying where I last edited</li>
<li>The working area is relatively small</li>
</ul>
<p>Compare this to what Windows Live Writer offers:</p>
<ul>
<li>Seemless integration with the blog engine. It was so easy to setup and it detects everything, from your theme to all your posts</li>
<li>When you write a post you can edit it directly on a themed page, or you can do it in source view. You can also preview it perfectly</li>
<li><span style="text-decoration: line-through;">You have access to <strong>ctrl + b</strong>, <em>ctrl + i. </em></span>A total lie on my part. I was using the HTML view here and not the Visual View! WordPress does support ctrl + b and crtrl + i.<br />
</em></span></li>
<li>You dont lose scroll position</li>
<li>Publishing is easy and seemless</li>
</ul>
<p>So in my view Microsoft have really done well with this free piece of software, it just works, and it works better than some Firefox plugins I have used as well.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/06/windows-live-writer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why use .NET as development platform?</title>
		<link>http://www.fremus.co.za/blog/2010/06/why-use-net-as-development-platform/</link>
		<comments>http://www.fremus.co.za/blog/2010/06/why-use-net-as-development-platform/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 09:34:19 +0000</pubDate>
		<dc:creator>fr3dr1k</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.fremus.co.za/blog/?p=622</guid>
		<description><![CDATA[The purpose of this post is to make it clear to myself why I use .NET as a development platform. The need to make it clear has arisen because I have noted a trend lately that saw at least two .NET developers moving to other platforms, and it made me wonder why I still choose [...]]]></description>
			<content:encoded><![CDATA[<p>The purpose of this post is to make it clear to myself why I use .NET as a development platform. The need to make it clear has arisen because I have noted a trend lately that saw at least two .NET developers moving to other platforms, and it made me wonder why I still choose .NET as a development platform at the moment. I have been reading up a bit on Ruby-on-Rails, because it seems to be the next big thing in terms of web development, and I haven’t found a compelling reason to dump .NET. If I had to think of reasons why I would not drop .NET it would be something like the following:</p>
<ul>
<li>Operating System familiarity. Yes I know Mac OS X and Linux are potentially more stable and more superior. But superiority comes at a price. Everything I need works in Windows, from networking, office suites, wireless devices, development environments and file management. A Windows network is easy to setup, as is file and print sharing, and Microsoft Office is still the de facto desktop Office Suite. There aren’t many wireless devices that can NOT connect to a Windows-based system, which makes Windows almost ubiquitous.</li>
<li>Having stated that I like to do my development in a Windows environment because of the familiarity it provides, the next important thing relates to the skill sets I have acquired over of a period of time. The skill sets I have acquired over the last 4/5 years have been acquired doing development on Windows-based systems. My development environment allows me to retain a core set of skills that are applicable across a wide variety of devices. The CLR (Common Language Runtime) remains the same in the way it runs and executes whether it’s on a mobile device or a desktop application or in a browser. Class libraries might change and you might add new references, but at the end of the day the code you write still compiles to that same IL code. I can thus retain the knowledge I have of the CLR and focus on learning the nuances of a particular implementation, such as focusing on aspects of SOA when developing WCF Services, or focusing on the intricacies of WPF when developing desktop applications. At the end of the day you are still writing code and your activities should be targeted towards a better understanding of your development environment, and ensuring that your code is of a great quality through tried-and-tested practices. Developing software is all about achieving a business objective.</li>
<li>Continuing from the previous point, I believe that all software development follow the same structured and disciplined approach. The platform on which you do it is irrelevant, it is more important that you follow best practices, and for this reason I believe you can write great quality software on the .NET platform, and if you do things right you could probably write that software on another platform too</li>
<li>From the second point I can also create an architecture that flows from end-to-end with total and complete integration. In other words I could develop an Intranet application that connects to web services from a web application and allows me to transmit information between the two without having to do any manual file copying. I can thus design processes around the activities in one area to interact with processes in other areas and create measurable and timely information. I could for instance allow a group of sales people to directly interact with customers from an intranet to a production website using the same technology with its various subsets.</li>
<li>I have not reached the pinnacle of what I can achieve on the .NET framework in terms of personal and professional development and I believe I can learn and apply the same practices elsewhere, but I still need to learn those best practices. Whether I learn them on the .NET framework or in a J2EE or Ruby-On-Rails environment, it’s not that relevant.
</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save" onclick="urchinTracker('/outgoing/www.addtoany.com/share_save?referer=');"><img src="http://www.fremus.co.za/blog/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.fremus.co.za/blog/2010/06/why-use-net-as-development-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
