<?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/"
	>

<channel>
	<title>This might sting a little</title>
	<atom:link href="http://sinner.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://sinner.co.za</link>
	<description>I'm not like them but I can pretend</description>
	<pubDate>Thu, 04 Sep 2008 11:16:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pretty bash prompts</title>
		<link>http://sinner.co.za/2008/09/04/pretty-bash-prompts/</link>
		<comments>http://sinner.co.za/2008/09/04/pretty-bash-prompts/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 11:11:28 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[bash colour prompt]]></category>

		<guid isPermaLink="false">http://sinner.co.za/?p=41</guid>
		<description><![CDATA[I stole this from a Debian .bashrc file - it makes your bash prompt nice and colourful.
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#8216;
So what I did was put the above line in my local machine&#8217;s .bash_profile, and the following:
export PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#8216;
in the dedicated server&#8217;s .bashrc (my terminal doesn&#8217;t listen to .bashrc locally it seems). Once both lines are in [...]]]></description>
			<content:encoded><![CDATA[<p>I stole this from a Debian .bashrc file - it makes your bash prompt nice and colourful.</p>
<p><code>export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#8216;</code></p>
<p>So what I did was put the above line in my local machine&#8217;s .bash_profile, and the following:</p>
<p><code>export PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#8216;</code></p>
<p>in the dedicated server&#8217;s .bashrc (my terminal doesn&#8217;t listen to .bashrc locally it seems). Once both lines are in place, your local prompt will be mostly green, and the server prompt will be mostly red, giving you a quick visual indication of which command-line you are currently working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/09/04/pretty-bash-prompts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Improving iTerm keyboard shortcuts</title>
		<link>http://sinner.co.za/2008/08/30/improving-iterm-keyboard-shortcuts/</link>
		<comments>http://sinner.co.za/2008/08/30/improving-iterm-keyboard-shortcuts/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 19:06:53 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://sinner.co.za/?p=36</guid>
		<description><![CDATA[iTerm is a cool terminal replacement for OS X (tabs, bookmarks, and profiles off the top of my head); I&#8217;m still using Tiger, I think Leopard&#8217;s terminal app has been improved, but I&#8217;m not sure how it matches up to iTerm. 
I like to use Command (Apple key) + left and Command + right to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://iterm.sourceforge.net/" title="iTerm">iTerm</a> is a cool terminal replacement for OS X (tabs, bookmarks, and profiles off the top of my head); I&#8217;m still using Tiger, I think Leopard&#8217;s terminal app has been improved, but I&#8217;m not sure how it matches up to iTerm. </p>
<p>I like to use <strong>Command</strong> (Apple key) + <strong>left</strong> and <strong>Command</strong> + <strong>right</strong> to skip to the beginning and end of lines respectively, unfortunately iTerm doesn&#8217;t understand these shortcuts out of the box (although you can use Function + left and right). To enable this:</p>
<ol>
<li>Open iTerm</li>
<li>Bookmarks menu > Manage profiles</li>
<li>Keyboard profiles > Global</li>
<li>Click <strong>+</strong></li>
<li><strong>Key</strong>: cursor left, <strong>Modifier</strong>: Command, <strong>Action</strong>: send escape sequence &#8220;OH&#8221;</li>
<li>Click &#8220;High interception priority&#8221; and then OK</li>
<li>Click <strong>+</strong></li>
<li><strong>Key</strong>: cursor right, <strong>Modifier</strong>: Command, <strong>Action</strong>: send escape sequence &#8220;OF&#8221;</li>
<li>Click &#8220;High interception priority&#8221; and then OK</li>
</ol>
<p>You can also set up <strong>Alt</strong> + <strong>left</strong> and <strong>Alt</strong> + <strong>right</strong> to navigate between whole words, the commands are:</p>
<ul>
<li><strong>Key</strong>: cursor left, <strong>Modifier</strong>: Option, <strong>Action</strong>: send escape sequence &#8220;f&#8221;</li>
<li><strong>Key</strong>: cursor right, <strong>Modifier</strong>: Option, <strong>Action</strong>: send escape sequence &#8220;b&#8221;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/08/30/improving-iterm-keyboard-shortcuts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Howto build devkitARM on Mac OS X 10.4 (Tiger)</title>
		<link>http://sinner.co.za/2008/07/16/howto-build-devkitarm-on-mac-os-x-104-tiger/</link>
		<comments>http://sinner.co.za/2008/07/16/howto-build-devkitarm-on-mac-os-x-104-tiger/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 12:31:17 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2008/07/16/howto-build-devkitarm-on-mac-os-x-104-tiger/</guid>
		<description><![CDATA[devkitARM release 23b is compiled on OS X 10.5 (Leopard) and most likely will not work on OS X 10.4 (Tiger) because it has been linked against different libraries (libiconv, libSystem.B). devkitARM is the toolchain of choice (read: only) for developing Nintendo DS Lite applications.
Here&#8217;s a summary on how to build it yourself:
My system
OS X [...]]]></description>
			<content:encoded><![CDATA[<p>devkitARM release 23b is compiled on OS X 10.5 (Leopard) and most likely will not work on OS X 10.4 (Tiger) because it has been linked against different libraries (libiconv, libSystem.B). devkitARM is the toolchain of choice (read: only) for developing Nintendo DS Lite applications.</p>
<p>Here&#8217;s a summary on how to build it yourself:</p>
<p><strong>My system</strong><br />
OS X 10.4.10<br />
gcc version 4.0.1 (The version that comes on your install CD)<br />
Target: i686-apple-darwin8</p>
<p><strong>Building pre-requisites and devkitARM</strong></p>
<p><strong>FreeImage 3.10.0 (http://freeimage.sourceforge.net/download.html)</strong><br />
wget http://downloads.sourceforge.net/freeimage/FreeImage3100.zip<br />
unzip FreeImage3100.zip<br />
cd FreeImage<br />
make<br />
sudo make install</p>
<p><strong>GMP 4.2.2 (http://gmplib.org/#DOWNLOAD)</strong><br />
wget http://ftp.sunet.se/pub/gnu/gmp/gmp-4.2.2.tar.bz2<br />
tar jxf gmp-4.2.2.tar.bz2<br />
cd gmp-4.2.2<br />
./configure &#8211;build=none-apple-darwin &#8211;disable-shared &#8211;enable-static &#8211;prefix=/usr/local<br />
make<br />
sudo make install</p>
<p><strong>MPFR 2.3.1 (http://www.mpfr.org/mpfr-current/#download)</strong><br />
wget http://www.mpfr.org/mpfr-current/mpfr-2.3.1.tar.bz2<br />
tar jxf mpfr-2.3.1.tar.bz2<br />
cd mpfr-2.3.1<br />
./configure &#8211;disable-shared &#8211;enable-static &#8211;prefix=/usr/local<br />
make<br />
sudo make install</p>
<p><strong>Buildscripts (devkitPro source)</strong><br />
Get it from http://sourceforge.net/project/showfiles.php?group_id=114505<br />
&#038;package_id=124206&#038;release_id=609056</p>
<p>rm -rf /opt/devkitpro<br />
tar jxf buildscripts-20080624.tar.bz2<br />
cd buildscripts<br />
mv config.sh config.sh.old<br />
sudo ./buildscripts.sh</p>
<p>Choose devkitARM and say you want to download source packages<br />
Enter install directory as: /opt/devkitpro</p>
<p>devkitARM will be installed in /opt/devkitpro if all went well. Make sure you moved anything important out&#8217;ve the directory before rm -rf&#8217;ing it.</p>
<p>I think that&#8217;s all - I typed this from memory - took about 25 min to build everything on my Intel macbook.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/07/16/howto-build-devkitarm-on-mac-os-x-104-tiger/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Obsessing over Processing</title>
		<link>http://sinner.co.za/2008/05/12/obsessing-over-processing/</link>
		<comments>http://sinner.co.za/2008/05/12/obsessing-over-processing/#comments</comments>
		<pubDate>Mon, 12 May 2008 13:36:04 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Awesome]]></category>

		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2008/05/12/obsessing-over-processing/</guid>
		<description><![CDATA[Processing is a programming language I discovered a few months ago - it&#8217;s a domain-specific language meant to introduce and teach non-programmers the basics of computer programming, via a visual context. It has been aimed at artists and design groups, but despite offering a very low barrier of entry to graphic programming, I think that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://processing.org/" title="Processing">Processing</a> is a programming language I discovered a few months ago - it&#8217;s a domain-specific language meant to introduce and teach non-programmers the basics of computer programming, via a visual context. It has been aimed at artists and design groups, but despite offering a very low barrier of entry to graphic programming, I think that the majority of users come from a technical background (or perhaps technical/design).</p>
<p>The inimitable John Resig of <a href="http://jquery.com/" title="jQuery: The Write Less, Do More, JavaScript Library">jQuery</a> fame, has by some super-human feat, managed to port Processing to JavaScript, calling it <a href="http://ejohn.org/blog/processingjs/" title="Processing.js">Processing.js</a>.</p>
<p>Here&#8217;s a pretty <a href="http://ejohn.org/apps/processing.js/examples/custom/substrate.html">example</a> to look at if you&#8217;re in Firefox/Webkit browser. Watch out for major CPU use (heaven forbid CPU&#8217;s are used for processing!).</p>
<p>Shortly after this ridiculousness, I discovered <a href="http://obsessing.org/" title="Obsessing.org">Obsessing.org</a>, which is a web-based IDE and runtime environment for Processing.js. The editing seems a bit um, poor - I couldn&#8217;t get copy/paste to work - but nevertheless, this is awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/05/12/obsessing-over-processing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Some days</title>
		<link>http://sinner.co.za/2008/04/29/some-days/</link>
		<comments>http://sinner.co.za/2008/04/29/some-days/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 19:12:44 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Awesome]]></category>

		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2008/04/29/some-days/</guid>
		<description><![CDATA[Some days you have to sit back and thank those tireless bearded men and women who work on open-source projects. Other days&#8230; well, other days&#8230;
On other days you&#8217;re sitting at a client&#8217;s house, pondering why the new release of Apple&#8217;s operating system won&#8217;t play nice with XP&#8217;s SMB protocol, or is it perhaps the other [...]]]></description>
			<content:encoded><![CDATA[<p>Some days you have to sit back and thank those tireless bearded men and women who work on open-source projects. Other days&#8230; well, other days&#8230;</p>
<p>On other days you&#8217;re sitting at a client&#8217;s house, pondering why the new release of Apple&#8217;s operating system won&#8217;t play nice with XP&#8217;s SMB protocol, or is it perhaps the other way round&#8230; either way, something isn&#8217;t happy and skipping breakfast was probably not the best idea. With ideas and patience running low, you idly fiddle around with the network and workgroup IDs, thinking that maybe changing this rather oddly named workgroup to something more usual like &#8220;MSHOME&#8221; or &#8220;WORKGROUP&#8221; might make it work. Wondering why  Windows wants to reboot, and failing to see any reason to not let it, you agree to it&#8217;s terms, stare blankly at the screen as the shut down dialog flickers past and then out of nowhere you experience a sizeable OH FUCK moment.</p>
<p>Something important to take into consideration when changing Windows&#8217; network settings, is that if the owner of the aforementioned computer used to work at a big company with the typical MS network (Exchange et al.), then the user&#8217;s user account will be of the domain user variety. And if you are now offline (in terms of this work network) then changing the workgroup and network ID is a rather unuseful way of permanently locking this user out of the machine (taking into account that the administrator password for this laptop is, well, no one is sure what it is).</p>
<p>So you&#8217;re sitting there, cheerful login screen in front of you, trying the same user/pass combination for the tenth time in a row, you know, because maybe you typo&#8217;d nine times in a row&#8230; I mean it&#8217;s totally possible. Eyeing the window, you begin to wonder if a full grown man can fit between those burglar bars, and what kind of explanation would that entail. At the very least you&#8217;re quite glad that not many people use EFS, because that would be totally uncool right now.</p>
<p>On days like these, you don&#8217;t want to thank those crazy open-source folk, the kind of people who release things like <a href="http://home.eunet.no/pnordahl/ntpasswd/" title="Offline NT password and registry editor">ntpasswd</a>, you want to get down on your knees and thank the invisible wizard in the sky that there are people like this in the world.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/04/29/some-days/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First post (in months)!</title>
		<link>http://sinner.co.za/2008/02/07/first-post-in-months/</link>
		<comments>http://sinner.co.za/2008/02/07/first-post-in-months/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 14:28:49 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2008/02/07/first-post-in-months/</guid>
		<description><![CDATA[This week was the first time I&#8217;ve looked at AppleScript, Apple&#8217;s built-in scripting language that can be used for routine tasks, or controlling other applications. The reason I even bothered to investigate it was because when I moved all my work onto my laptop I also moved my music collection to an external hard drive [...]]]></description>
			<content:encoded><![CDATA[<p>This week was the first time I&#8217;ve looked at <a href="http://developer.apple.com/applescript" title="Apple Developer: AppleScript">AppleScript</a>, Apple&#8217;s built-in scripting language that can be used for routine tasks, or controlling other applications. The reason I even bothered to investigate it was because when I moved all my work onto my laptop I also moved my music collection to an external hard drive and played it via the laptop (since it seemed a bit silly to have a whole other computer on just playing music). And as it goes, iTunes is _the_ music library/player for this platform, so I didn&#8217;t really have a huge choice in what to use. Granted, iTunes on OS X is a lot better than the Windows version, much like Safari Windows versus OS X Safari.</p>
<p>Anyway, one feature that that iTunes really lacks is the ability to find a track in your music library and hit &#8220;queue&#8221; to queue the selected song to play directly after the current song has finished. There is &#8220;Play this song next in Party Shuffle&#8221;, but it stops the song that is currently playing and jumps straight to the party shuffle playlist.</p>
<p>I decided to try write some code to add this feature in, and a very cool feature of AppleScript is that you can write something in the editor and then copy it to the application&#8217;s Script folder, and it&#8217;ll automatically appear in the Script menu (provided the application has an AS bridge) when you fire up the app (pretty much like a plugin). This is great, because it means I can write a helper script for a closed source program and have it installed in a matter of minutes. There&#8217;s no need to recompile the parent application, or find a suitable scripting bridge language, it all just works straight away.</p>
<p>I&#8217;m sure I have missed a simpler way of adding this functionality, but as far as I can tell because these scripts are external to the application, you cannot implement stateful operations without using a &#8220;Stay open&#8221; script, which is Apple-speak for a script that stays in the background until you tell it to quit (most scripts are once off operations that quit once finished).</p>
<p>To install, open ScriptEditor in your applications folder, paste the below code in, then Save as:</p>
<p><code>  /Users/username/Library/iTunes/Scripts/Queue Next</code></p>
<p>Make sure you save the script as &#8220;application&#8221; type, with the Stay Open checkbox checked. Restart iTunes and there should be a new menu icon just before &#8220;Help&#8221; in the menu bar, it looks like a little scroll. Click it and you&#8217;ll find the name of your script. You can then open System Preferences - Keyboard &amp; Mouse, and add a new keyboard shortcut to iTunes that calls the script.</p>
<pre name="code" class="python">
global queuePlaylist

tell application "iTunes"
  if not (exists playlist "Queued") then
    make new user playlist with properties \
      {name:"Queued", shuffle:false, song repeat:off}
  end if

  set queuePlaylist to playlist "Queued"

  if current playlist is not queuePlaylist then
    set curtrack to (duplicate current track to \
       queuePlaylist)
  else
    set curtrack to {}
  end if

  if selection is not {} and current playlist is not \
      queuePlaylist then
    set sel to a reference to selection
    duplicate sel to queuePlaylist
  end if

  if curtrack is not {} then
    set playPosition to (player position + 1)
    play curtrack
    set player position to playPosition
  end if
end tell

on idle
  tell application "iTunes"
    if player state is not stopped and current playlist \
        is queuePlaylist then
      return (duration of current track) - player position
    else
      play playlist "Music"
      set view of front browser window to playlist "Music"
      tell me to quit
    end if
  end tell
end idle</pre>
<p>The original code for the <a href="http://www.macosxhints.com/article.php?story=20070419104324966" title="Queue script for iTunes">queue script</a> came from Mac OS X Hints.</p>
<p>Here&#8217;s a post explaining <a href="http://www.macdevcenter.com/pub/a/mac/2007/02/27/replacing-applescript-with-ruby.html" title="Replacing AppleScript with Ruby">how to use Ruby to replace AppleScript</a>.</p>
<p><strong>This syntax highlighter doesn&#8217;t like long lines, and this new Wordpress keeps fucking my stuff up (I&#8217;ve marked wrapping lines with \&#8217;s in the code). Trying to fix.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2008/02/07/first-post-in-months/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Presented in Lumocolor</title>
		<link>http://sinner.co.za/2007/07/09/presented-in-lumocolor/</link>
		<comments>http://sinner.co.za/2007/07/09/presented-in-lumocolor/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 15:42:39 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2007/07/09/presented-in-lumocolor/</guid>
		<description><![CDATA[I&#8217;ve kinda moved into my new place - bed base is still to be delivered (sometime this week apparently) - so I have a mattress to sleep on currently. The couch for the lounge is still being made, and will only be ready in about 3 weeks. Coffee table&#8230; haven&#8217;t found a good one yet, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve kinda moved into my new place - bed base is still to be delivered (sometime this week apparently) - so I have a mattress to sleep on currently. The couch for the lounge is still being made, and will only be ready in about 3 weeks. Coffee table&#8230; haven&#8217;t found a good one yet, hopefully there&#8217;s no delivery time on it when I find one. </p>
<p>IBurst is pretty cool, quite fast, although latency isn&#8217;t great obviously. It has gone down a couple times, and has some issues with mail for some reason. It seems that there is no through-connection from IBurst to my work mail server, and both ISP and mail host say it&#8217;s not them (IBurst has also stopped replying to my support tickets) - so for now I have to tunnel the connection over SSH through a server in Germany. IBurst also insists you use their SMTP server (transparent proxying and stuff apparently) - which is fairly annoying.</p>
<p>My laptop is cool, although the keyboard not so much - I definitely prefer a full-size keyboard, but I am getting used to it. OS X has some &#8220;interesting&#8221; design flaws; Finder (the file manager) has no option to Cut a file, and also no ability to apply a standardised set up across all your file windows (e.g. Sort by folders first, then files, and display in a list view). Grrr. I&#8217;m looking at alternatives, XFolders is free and quite cool, but does lack a certain polish. PathFinder is $30 or something, but I haven&#8217;t tried the demo out. Cyberduck is a free FTP app which is quite nice, but Panic&#8217;s Transmit looks like it is worth paying for. Textmate is a cool editor which I&#8217;ve already paid for, and I must still check out BBEdit 2, which has a scary cult following.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2007/07/09/presented-in-lumocolor/feed/</wfw:commentRss>
		</item>
		<item>
		<title>This is why we have nice things</title>
		<link>http://sinner.co.za/2007/06/18/this-is-why-we-have-nice-things/</link>
		<comments>http://sinner.co.za/2007/06/18/this-is-why-we-have-nice-things/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 09:48:26 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2007/06/18/this-is-why-we-have-nice-things/</guid>
		<description><![CDATA[I had a list of excuses ready, but it&#8217;s not worth it - I now own a Apple Macbook, and it&#8217;s great. I won&#8217;t feign disgust about becoming a laptop-carrying member of the sheep generation, the machine is pretty (very pretty), and it all works out&#8217;ve the box. My final salvation lies in the circumstances [...]]]></description>
			<content:encoded><![CDATA[<p>I had a list of excuses ready, but it&#8217;s not worth it - I now own a Apple Macbook, and it&#8217;s great. I won&#8217;t feign disgust about becoming a laptop-carrying member of the sheep generation, the machine is pretty (very pretty), and it all works out&#8217;ve the box. My final salvation lies in the circumstances in which I came to own it; it was deemed a bonus from my ever-generous boss, which was a lovely gesture, and now I am able to enjoy it mostly guilt-free. Don&#8217;t take this post too seriously (unless you think you should be) - I am very happy at the moment, and just pandering to my urge to write elaborate posts.</p>
<p><img src="/images/macbewk.jpg" alt="Shiny!" title="Shiny!" style="border: 3px solid #ededed" height="399" width="450" /></p>
<p>OS X is nice, click stuff and stuff happens without too much hassle - I don&#8217;t doubt that it&#8217;ll still be a bit of a mission to get everything running as I like it (the same with Windows and Linux), but at the moment the fact that it&#8217;s Apple software running on Apple hardware makes for a great driver-less experience, everything is already installed and configured. Vista&#8217;s widgets and window switcher are obviously &#8220;inspired&#8221; by the OS X, I don&#8217;t want to argue with anyone about it, standing on the shoulders of giants, etc. What&#8217;s interesting is that when Vista came out, apparently everyone at the press release ignored the graphical effects, but when Apple has a press release showing the same effects everyone oohs-and-aahs. Leopard is coming out with Spaces (identical to workspaces in Linux), and multi-tabbed terminal windows, and I bet the Apple crowd will attribute them to Apple. Whoo, fanboys.</p>
<p>I&#8217;m moving at the end of the month to a nice flat off Roeland Street, in town. Quite looking forward to a change, but also will be sad to leave my current place - had some good times here. Anyway, it&#8217;s necessary, I couldn&#8217;t commit to another 6-month lease when I don&#8217;t know exactly what I&#8217;m doing. I&#8217;m probably not traveling anywhere, but it is nice to have the freedom to.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2007/06/18/this-is-why-we-have-nice-things/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Gears</title>
		<link>http://sinner.co.za/2007/05/31/google-gears/</link>
		<comments>http://sinner.co.za/2007/05/31/google-gears/#comments</comments>
		<pubDate>Thu, 31 May 2007 08:54:43 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2007/05/31/google-gears/</guid>
		<description><![CDATA[Google have released a beta of Gears - a browser plugin (.xpi for Firefox) that allows you to store offline content on a user&#8217;s hard-drive, via javascript. This allows AJAX web applications to continue working offline, using the stored content. I lambasted JavaFX for the same feature, but I only realised what they might&#8217;ve meant [...]]]></description>
			<content:encoded><![CDATA[<p>Google have released a beta of <a href='http://code.google.com/apis/gears/sample.html' title='Google Gears'>Gears</a> - a browser plugin (.xpi for Firefox) that allows you to store offline content on a user&#8217;s hard-drive, via javascript. This allows AJAX web applications to continue working offline, using the stored content. I lambasted JavaFX for the same feature, but I only realised what they might&#8217;ve meant after looking at the Gears examples, and the potential therein. It&#8217;s not so much a case of fetching new data from the server, but say in the case of Google Apps, continuing to edit a spreadsheet even though you&#8217;re offline. Gears could then synchronise your local copy to the server when you connect again. JavaFX should&#8217;ve compared itself to Gears, if it were around.</p>
<p>There&#8217;s also a local SQLite database you can run queries on through javascript, and it also provides a non-blocking thread system so that you can run intensive javascript without locking up your web app.</p>
<p>Unfortunately this all only works after you&#8217;ve installed the plugin, which I imagine is some horrid ActiveX affair in IE on windows. </p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2007/05/31/google-gears/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On spelling</title>
		<link>http://sinner.co.za/2007/05/24/on-spelling/</link>
		<comments>http://sinner.co.za/2007/05/24/on-spelling/#comments</comments>
		<pubDate>Thu, 24 May 2007 21:27:09 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Annoyed]]></category>

		<guid isPermaLink="false">http://sinner.co.za/2007/05/24/on-spelling/</guid>
		<description><![CDATA[I&#8217;m probably setting myself up for a nice big fall - straight onto my ass - but why is it that supposed programmers/web developers have a seemingly limitless ability to abuse the english language. I don&#8217;t want this to be another &#8220;the internet is ruining spelling&#8221; post, and that&#8217;s not what I&#8217;m saying; what I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m probably setting myself up for a nice big fall - straight onto my ass - but why is it that supposed programmers/web developers have a seemingly limitless ability to abuse the english language. I don&#8217;t want this to be another &#8220;the internet is ruining spelling&#8221; post, and that&#8217;s not what I&#8217;m saying; what I am saying is that the internet allows you access to a whole lot of written work that you usually wouldn&#8217;t see. I might be friends with x and y, but 10 years ago I wouldn&#8217;t see much of their writing outside of school. Suddenly introduce the internet and weblogs, and it becomes disturbingly apparent that a lot of people can&#8217;t spell a lot of words. I&#8217;m not trying to be a grammar/spelling nazi; I mean I am quite the comma abuser, but I like to think my sentences and paragraphs generally leave little room for ambiguity or downright confusion.</p>
<p>On top of this, some of the worst offenders are programmers, and this really annoys me. Programmers are supposedly meant to have a logical mind - sure you can go on about the creativity of coding and letting your raw brain waves shape some sort of master program, or some other crap - but facts are facts, a compiler/interpreter has to parse your code at some point, and it can only parse something that follows the right conventions and uses the correct symbols. I know some people whose spelling is predictably terrible, so at least (or unfortunately) when they misspell a variable name, they consistently misspell it, and thus the compiler never knows the difference. And let us not delve into the abuses exclamation marks suffer.</p>
<blockquote><p>Multiple exclamation marks are a sure sign of someone who wears their underwear on their head.</p></blockquote>
<p>Furthermore, Firefox 2 comes with a built-in spell checker that underlines any errors that you may have made when filling in a text area on a web page&#8230; and if you&#8217;re in the web development business and not using Firefox, perhaps it&#8217;s time you left the web development business, preferably via way of suicide.</p>
<p>I shall leave you with a list of correct spellings for common errors that really make me go, &#8220;Grrr&#8230; &#8220;: </p>
<p>w<strong>ei</strong>rd, depend<strong>e</strong>nt, g<strong>ua</strong>rantee, gover<strong>n</strong>ment, defin<strong>i</strong>te.</p>
]]></content:encoded>
			<wfw:commentRss>http://sinner.co.za/2007/05/24/on-spelling/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
