<?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>Es Tea Double Eye &#187; programming</title>
	<atom:link href="http://stii.co.za/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://stii.co.za</link>
	<description>You&#039;re never too old for a happy childhood</description>
	<lastBuildDate>Fri, 19 Aug 2011 02:20:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<atom:link rel='hub' href='http://stii.co.za/?pushpress=hub'/>
		<item>
		<title>The iPad just reached a new level of awesome for me</title>
		<link>http://stii.co.za/hacking/the-ipad-just-reached-a-new-level-of-awesome-for-me/</link>
		<comments>http://stii.co.za/hacking/the-ipad-just-reached-a-new-level-of-awesome-for-me/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 18:13:51 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://stii.co.za/hacking/the-ipad-just-reached-a-new-level-of-awesome-for-me/</guid>
		<description><![CDATA[The iPad always seemed like a novelty to me. An expensive and fancy reader and web browser thingy. That&#8217;s only because I didn&#8217;t have one. Now I do, and yes, it still is an expensive and fancy reader, but I discovered this brilliant little app that teaches you Lua through an interactive interface (pic). Now [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://stii.co.za/wp-content/uploads/2011/06/20110618-100319.jpg"><img src="http://stii.co.za/wp-content/uploads/2011/06/20110618-100319.jpg" alt="20110618-100319.jpg" class="alignnone size-full" /></a></p>
<p>The iPad always seemed like a novelty to me. An expensive and fancy reader and web browser thingy. That&#8217;s only because I didn&#8217;t have one. Now I do, and yes, it still is an expensive and fancy reader, but I discovered this brilliant little app that teaches you Lua through an interactive interface (pic). Now we&#8217;re talking! </p>
<p>Oh and this was written with the iPad, so I guess there are more uses for it after all. All in all, I&#8217;m loving it. I&#8217;m not yet convinced it will become an irreplaceable tool or be a novelty for a while. One thing is for sure, it is the best book I&#8217;ve read in a long time.</p>
<p>I do hope this will inspire me to blog a bit more. I do miss blogging a lot.</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/hacking/the-ipad-just-reached-a-new-level-of-awesome-for-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Programming language whore</title>
		<link>http://stii.co.za/software-development/programming-language-whore/</link>
		<comments>http://stii.co.za/software-development/programming-language-whore/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 17:36:55 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software Dev]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[programming tools]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=1336</guid>
		<description><![CDATA[My friends always get nervous when I say, &#8220;dude, you should totally check out OCaml&#8221; or &#8220;Erland concurrency is the bomb!&#8221; or &#8220;Next project we do is in Django/Rails/Scala/Haskell/Putthelanguagenamehere&#8221;. I&#8217;m sure Justin can concur that I&#8217;ve put a grey hair or two on his head. The thing is, I love learning new ways of doing [...]]]></description>
			<content:encoded><![CDATA[<p>My friends always get nervous when I say, &#8220;dude, you should totally check out OCaml&#8221; or &#8220;Erland concurrency is the bomb!&#8221; or &#8220;Next project we do is in Django/Rails/Scala/Haskell/Putthelanguagenamehere&#8221;. I&#8217;m sure <a href="http://justinhartman.com">Justin</a> can concur that I&#8217;ve put a grey hair or two on his head. The thing is, I love learning new ways of doing things. I&#8217;m like a programming language whore and sleep with every second language that walks through the door. </p>
<p>That being said, I&#8217;ve never attempted a project in a new [new to me] language. I don&#8217;t experiment while doing critical stuff. I stick to what I know and that is mostly <strong>Python</strong> or <strong>PHP</strong>. That doesn&#8217;t mean I&#8217;m not in love with a couple of other languages. I would most use it in future once I know more about it and feel comfortable using it.</p>
<p>I had to smile while watching <a href="http://blip.tv/file/2484840">this interview</a> with <strong>Dr Venkat Subramaniam</strong> on Groovy and Scala. I loved this quote and it is seriously one of my favorites:</p>
<blockquote><p>
Should we just be switching these languages? Thats like asking a worker now that he has picked up a screw driver he would not touch a hammer or chisel anymore.
</p></blockquote>
<p>Explains it perfectly. The right tool for the job. Thing is, how the hell are you going to know which is the right tool if you do not experiment or test the tools? Make up your own mind. Play and learn and you will grow. Sometimes the way things are done in other languages would make you a better programmer in what you use every day. Don&#8217;t be short sighted. Life is too short!</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software-development/programming-language-whore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do regular expressions like a pro</title>
		<link>http://stii.co.za/software/do-regular-expressions-like-a-pro/</link>
		<comments>http://stii.co.za/software/do-regular-expressions-like-a-pro/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 08:02:48 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[adobe air application]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=1087</guid>
		<description><![CDATA[Regular expressions (a.k.a. regex) is not for the faint hearted. It sometimes seems like a programming language on its own. Unless you use it on a daily basis, you tend to forget how to extract an URL from text or how to properly validate an email address. There are a number of good tools, but [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Regular expressions (a.k.a. regex)</strong> is not for the faint hearted. It sometimes seems like a programming language on its own. Unless you use it on a daily basis, you tend to forget how to <strong>extract an URL from text</strong> or how to properly <strong>validate an email address</strong>. There are a number of good tools, but they all kind of lack one or more features.</p>
<p><a href="http://www.gskinner.com/blog">Grant Skinner</a> made an Adobe AIR desktop application that runs on any platform that supports AIR. It is a bloody fantastic app called <a href="http://www.gskinner.com/RegExr/desktop/">RegExr</a>. It has a slick user interface that makes it perfect to test your <strong>regex</strong> on and the very handy feature of saving your <strong>regular expressions</strong> for future use and a number of recipes made by the user community.<br />
<img src="http://stii.co.za/wp-content/uploads/2009/12/Screen-shot-2009-12-01-at-10.14.11-AM-400x278.png" alt="Screen shot 2009-12-01 at 10.14.11 AM" title="Screen shot 2009-12-01 at 10.14.11 AM" width="400" height="278" class="alignnone size-medium wp-image-1091" /></p>
<p>With very little or no regex knowledge, you can now impress your friends like a superhero!<br />
<a href="http://xkcd.com"><img alt="" src="http://imgs.xkcd.com/comics/regular_expressions.png" title="regex superhero" class="alignnone" width="540" height="546" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software/do-regular-expressions-like-a-pro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Google Go programming language</title>
		<link>http://stii.co.za/software-development/the-google-go-programming-language/</link>
		<comments>http://stii.co.za/software-development/the-google-go-programming-language/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 12:57:22 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software Dev]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google go]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=1059</guid>
		<description><![CDATA[Lately Google announced a wide array of new products and features. The Google Chrome browser, Google Wave, Android and Google Chrome OS are the ones immediately coming to mind. This morning I saw they released Go. Their own experimental programming language. Go is not a scripting (a.k.a. interpreted) language, but a compiled language like C [...]]]></description>
			<content:encoded><![CDATA[<p>Lately Google announced a wide array of new products and features. The Google Chrome browser, Google Wave, Android and Google Chrome OS are the ones immediately coming to mind. This morning I saw they released <a href="http://golang.org/">Go</a>. Their own experimental programming language. </p>
<p>Go is not a scripting (a.k.a. interpreted) language, but a compiled language like <strong>C or C++</strong>. It looks very, very simple compared to C/C++ and according to them it was born from their frustrations with said languages. This has potential to become popular should they drive it sufficiently. </p>
<p>The syntax of Go looks like a mix of Python, C, Java and Pascal. Have a look at this:</p>
<pre>
package main

import (
    "os";
    "flag";  // command line option parser
)

var omitNewline = flag.Bool("n", false, "don't print final newline")

const (
    Space = " ";
    Newline = "\n";
)

func main() {
    flag.Parse();   // Scans the arg list and sets up flags
    var s string = "";
    for i := 0; i < flag.NArg(); i++ {
        if i > 0 {
            s += Space
        }
        s += flag.Arg(i)
    }
    if !*omitNewline {
        s += Newline
    }
    os.Stdout.WriteString(s);
}
</pre>
<p>I can say this: It looks friendly! I like the sugar.</p>
<p>Some of the features makes a lot of sense and I hope this will evolve successfully. Just look at the names behind this little experimental project and you&#8217;re bound to get excited! <strong>I&#8217;d love to know what C and C++ stalwarts think</strong>.</p>
<p>PS: Love the origin of the name:</p>
<blockquote><p>“Ogle” would be a good name for a Go debugger.</p></blockquote>
<p>I concur.</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software-development/the-google-go-programming-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why programmers should learn LISP</title>
		<link>http://stii.co.za/software-development/why-programmers-should-learn-lisp/</link>
		<comments>http://stii.co.za/software-development/why-programmers-should-learn-lisp/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 09:36:34 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software Dev]]></category>
		<category><![CDATA[eric raymond]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=1049</guid>
		<description><![CDATA[LISP is a very old programming language. It was originally specified in 1958. So why should programmers learn LISP? Eric Raymond explains it best in this very short paragraph: Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for [...]]]></description>
			<content:encoded><![CDATA[<p><strong>LISP</strong> is a very old programming language. It was originally specified in 1958. So why should programmers learn <em>LISP</em>? <a href="http://esr.ibiblio.org/">Eric Raymond</a> explains it best in this very short paragraph:</p>
<blockquote><p>Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.</p></blockquote>
<p>There you have it. What better reason do you need?!</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software-development/why-programmers-should-learn-lisp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another Ted Dziuba classic</title>
		<link>http://stii.co.za/blogging/another-ted-dziuba-classic/</link>
		<comments>http://stii.co.za/blogging/another-ted-dziuba-classic/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:15:11 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[ted dziuba]]></category>
		<category><![CDATA[the register]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=1000</guid>
		<description><![CDATA[I&#8217;m a Ted Dziuba fan. God knows why, since I actually wouldn&#8217;t enjoy working with someone like that, but I love his straight-shooting-from-the-fucking-hip style of writing and he does make a lot of sense most of the time. His latest post: I don&#8217;t code in my free time &#8230;is a true Dziuba classic! This part [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a <strong>Ted Dziuba</strong> fan. God knows why, since I actually wouldn&#8217;t enjoy working with someone like that, but I love his straight-shooting-from-the-fucking-hip style of writing and he does make a lot of sense most of the time. His latest post:</p>
<h2><a href="http://teddziuba.com/2009/10/i-dont-code-in-my-free-time.html">I don&#8217;t code in my free time</a></h2>
<p>&#8230;is a true <strong>Dziuba</strong> classic! This part made me laugh. Out loud. Literally.</p>
<blockquote><p>
Me, I can count on one hand the number of times I&#8217;ve programmed outside of work or a class.  There was only once when I actually enjoyed it, though. I was in college, and shared a common wall with a girl from Spain who was painfully unaware that her computer had a volume control knob. She would stay up late on AOL instant messenger, and I couldn&#8217;t sleep.  So, I rigged up a Python script to play AOL instant messenger sounds randomly every 5 to 10 seconds, turned up my speakers, pointed them at the wall, and went on vacation for a week.  And thus, the asshole you all know and love is born.
</p></blockquote>
<p>Ted often writes for <a href="http://theregister.com">The Register</a> and his opinions are often so refreshingly true albeit a bit brash. Makes for excellent reading even if you don&#8217;t agree with everything he says.</p>
<p><img alt="ted dziuba" src="http://www.wired.com/images/article/full/2007/10/ted_dziuba_500px.jpg" title="ted dziuba" class="alignnone" width="500" height="375" /></p>
<p><em>(Photo credit: <a href="http://wired.com">Wired.com</a>)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/blogging/another-ted-dziuba-classic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Zen of Python</title>
		<link>http://stii.co.za/software-development/the-zen-of-python/</link>
		<comments>http://stii.co.za/software-development/the-zen-of-python/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 12:06:23 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software Dev]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=857</guid>
		<description><![CDATA[Found at this Stack overflow gem. &#8220;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&#8221; :)]]></description>
			<content:encoded><![CDATA[<p>Found at this <a href="http://stackoverflow.com/questions/234075?sort=votes&#038;page=4#sort-top">Stack overflow gem</a>.</p>
<blockquote><p>&#8220;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&#8221;</p></blockquote>
<p>:)</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software-development/the-zen-of-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java is Groovy and Groovy is Java</title>
		<link>http://stii.co.za/software-development/java-is-groovy-and-groovy-is-java/</link>
		<comments>http://stii.co.za/software-development/java-is-groovy-and-groovy-is-java/#comments</comments>
		<pubDate>Thu, 21 May 2009 20:02:14 +0000</pubDate>
		<dc:creator>Stii</dc:creator>
				<category><![CDATA[Software Dev]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://stii.co.za/?p=667</guid>
		<description><![CDATA[groovy &#124;ˈgroōvē&#124; adjective ( groovier , grooviest ) informal dated or humorous fashionable and exciting : sporting a groovy new haircut. • enjoyable and excellent : he played all the remarkably groovy guitar parts himself. That is as defined in my beloved and trusted Mac Dictionary. I have to do a little Java project soon. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://stii.co.za/wp-content/uploads/2009/05/groovy_transparent.png" alt="groovy_transparent" title="groovy_transparent" width="215" height="107" class="alignright size-full wp-image-668" /><strong>groovy</strong> |ˈgroōvē|<br />
adjective ( groovier , grooviest ) informal dated or humorous<br />
<em>fashionable and exciting</em> : sporting a groovy new haircut.<br />
    • <em>enjoyable and excellent</em> : he played all the remarkably groovy guitar parts himself.</p>
<p>That is as defined in my beloved and trusted Mac Dictionary. I have to do a little <strong>Java</strong> project soon. Not because I want to, because I <em>HAVE</em> to for <a href="http://afrigator.com">Afrigator</a>. Don&#8217;t get me wrong, I think Java is great and powerful. I have a healthy dose of respect for it. Problem is, I&#8217;ve never done anything remotely formal in Java. The only experience I have with it was when I checked it out about 6 years ago. Safe to say, I&#8217;m a <a href="http://stii.co.za/inspiration/the-perpetual-n00b/">n00b</a>.</p>
<p>The problem is that I&#8217;m quite busy these days. Time and energy is not much for attempting learning a mammoth like Java. </p>
<p>Hello, <a href="http://groovy.codehaus.org">Groovy</a>! <strong>Groovy</strong> is a dynamic language specifically for the Java platform. Groovy is built for the JVM, making it easy for Java to integrate with Groovy vice versa. In Netbeans, they went a far as not even having an option to create a Groovy project. You create a normal Java project and then add Groovy classes to it. That is how tightly it seems integrated, which is good news for a n00b like me :)</p>
<p>The syntax itself seems very close to that of <a href="http://stii.co.za/tag/ruby/">Ruby</a>. Lets look at these examples (from the excellent article by Gerald Bauer &#8211; <a href="http://viva.sourceforge.net/talk/jug-mar-2004/slides.html">Groooooovy Babe: Jazzing Up Plain Old Java</a>)</p>
<p>Here is some Java code</p>
<pre>
import java.util.*;

public class HelloWorld
{
  public static void main( String args[] )
  {
     List country = new ArrayList();
     country.add( "Canada" );
     country.add( "Austria" );
     country.add( "Brazil" );

     Collections.sort( country );

     for( Iterator it = country.iterator(); it.hasNext() )
        System.out.println( "Hello " + it.next() );
  }
}
</pre>
<p>The same in Groovy ( note the code reduction compared to Java :) )</p>
<pre>
country = [ 'Canada', 'Austria', 'Brazil' ]
country.sort
country.each { println "Hello ${it}" }
</pre>
<p>And in Ruby</p>
<pre>
country = [ 'Canada', 'Austria', 'Brazil' ]
country.sort
country.each { |country| puts "Hello #{country}" }
</pre>
<p>To top it all off, they even have their own Rails-like web framework called Grails (Groovy on Rails). I&#8217;ll check that out in due time. </p>
<p>All in all, Groovy feels much more comfortable and familiar to me. I&#8217;m looking forward to this little challenge and will probably write about it as I go along. <a href="http://aslamkhan.net/">Aslam Khan</a> assured me that it is solid and he even have some Groovy code out there in the wild in production which is comforting! That and knowing someone who is an expert to ask for advice when the going gets rough, since I&#8217;m fairly sure it will get rough due to n00bn3ss!</p>
]]></content:encoded>
			<wfw:commentRss>http://stii.co.za/software-development/java-is-groovy-and-groovy-is-java/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

