<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15289394</id><updated>2011-11-10T12:46:22.474+11:00</updated><title type='text'>Mike's Blog</title><subtitle type='html'>The Blog of Mike.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15289394.post-2111699037540604579</id><published>2010-11-23T21:45:00.003+11:00</published><updated>2010-11-23T21:48:10.887+11:00</updated><title type='text'>Upgrading the root file system on a Linode to ext4</title><content type='html'>The ext4 file system has been around for a while now, so I figured I'd migrate my Linode's ext3 partition to it for some of the reasons listed &lt;a href="http://en.wikipedia.org/wiki/Ext4#Features"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The major downsides would be that I wouldn't be able to use some nice tools that Linode provide, such as their automatic partition resizing and automatic backup solution, and their rescue distribution, &lt;a href="http://www.finnix.org/"&gt;Finnix&lt;/a&gt;, doesn't support it.&lt;br /&gt;&lt;br /&gt;Obviously you'd want to make sure you have a full backup before proceeding with this. I didn't, but I'm an idiot.&lt;br /&gt;&lt;br /&gt;First you need to make sure you're using a recent kernel &amp;mdash; probably 2.6.30 or higher. This is because &lt;a href="http://en.wikipedia.org/wiki/Ext4#Delayed_allocation_and_potential_data_loss"&gt;some applications had made bad assumptions&lt;/a&gt;. I'm using the latest 2.6 Paravirt that Linode provides, which is 2.6.35.4-x86-_64-linode16. My system is Ubuntu 10.10 64-bit.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;From the Linode Platform Manager, restart in rescue mode.&lt;/li&gt;&lt;li&gt;Run the following commands to update Finnix with a recent e2fsprogs that supports ext4:&lt;ol&gt;&lt;li&gt;&lt;code&gt;apt-get update&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;apt-get install debian-archive-keyring e2fsprogs&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Perform the actual ext4 conversion:&lt;ol&gt;&lt;li&gt;&lt;code&gt;tune2fs -O extents,uninit_bg,dir_index /dev/xvda&lt;/code&gt; (It will no longer be ext3 compatible after running this.)&lt;/li&gt;&lt;li&gt;&lt;code&gt;e2fsck -fDC0 /dev/xvda&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Shutdown and boot up through the Linode Platform Manager&lt;/li&gt;&lt;li&gt;The system should automatically mount the partition as ext4.&lt;/li&gt;&lt;/ol&gt;Even though the system mounted the partition successfully I figured I'd change the /etc/fstab to reflect the new file system.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Links&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.linode.com/forums/viewtopic.php?t=4184#20589"&gt;Upgrading fsck in Finnix on the fly&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://ext4.wiki.kernel.org/index.php/Ext4_Howto#Converting_an_ext3_filesystem_to_ext4"&gt;Converting an ext3 file system to ext4&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-2111699037540604579?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/2111699037540604579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=2111699037540604579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2111699037540604579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2111699037540604579'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2010/11/upgrading-root-file-system-on-linode-to.html' title='Upgrading the root file system on a Linode to ext4'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-4229579016575916457</id><published>2009-11-18T10:23:00.000+11:00</published><updated>2009-11-18T10:23:14.722+11:00</updated><title type='text'>Whitelist Twitter emails on Postfix</title><content type='html'>Unfortunately it seems that Twitter's email servers often end up listed on &lt;acronym title="Real-time Blackhole Lists"&gt;RBLs&lt;/acronym&gt; like &lt;a href="http://www.spamcop.net/w3m?action=blcheck&amp;ip=mx004.twitter.com"&gt;SpamCop&lt;/a&gt;, which I use for spam filtering. This means my email account holders don't get emails about direct messages, new followers and other ego-building things like that.&lt;br /&gt;&lt;br /&gt;Here's a simple way to white-list these emails for Postfix:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new file &lt;code&gt;/etc/postfix/ip_whitelist&lt;/code&gt; with the following contents:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;128.121.146.141 OK&lt;br /&gt;128.121.146.142 OK&lt;br /&gt;128.121.146.143 OK&lt;br /&gt;128.121.146.144 OK&lt;br /&gt;128.121.146.150 OK&lt;br /&gt;128.121.146.151 OK&lt;br /&gt;128.121.146.152 OK&lt;br /&gt;128.121.146.153 OK&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;These map from mx001.twitter.com to mx008.twitter.com, which seem to be all they have for now.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run: &lt;code&gt;postmap /etc/postfix/ip_whitelist&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Edit your &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt; file to include the IP whitelist. Find the line where you have your RBL checks, e.g.:&lt;br /&gt;&lt;code&gt;reject_rbl_client bl.spamcop.net&lt;/code&gt;&lt;br /&gt;and add the following line above them:&lt;br /&gt;&lt;code&gt;check_client_access hash:/etc/postfix/ip_whitelist&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart Postfix.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;These vital emails should now get through to your psychologically fragile account holders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-4229579016575916457?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/4229579016575916457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=4229579016575916457' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/4229579016575916457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/4229579016575916457'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/11/whitelist-twitter-emails-on-postfix.html' title='Whitelist Twitter emails on Postfix'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-4188014028212090258</id><published>2009-08-03T12:03:00.000+10:00</published><updated>2009-08-03T12:03:41.013+10:00</updated><title type='text'>Apache segfaults after enabling the Zend Framework on Ubuntu Jaunty</title><content type='html'>After installing the Zend framework on an Ubuntu Jaunty server (PHP 5.2.6-3ubuntu4.1 Suhosin-Patch 0.9.6.2):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# aptitude install zend-framework&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I uncommented the line with the include path to make it usable:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# vim /etc/php5/apache2/conf.d/zend-framework.ini&lt;br /&gt;&lt;br /&gt;[Zend]&lt;br /&gt;include_path=${include_path} ":/usr/share/php/libzend-framework-php"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then restarted Apache. Unfortunately it crashed straight away:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Aug  3 11:42:44 the-lake kernel: apache2[17487]: segfault at 0000000000000008 rip 00002b3c755d5070 rsp 00007fff3d94c1c8 error 4&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Some searching revealed it was &lt;a href="http://bugs.php.net/bug.php?id=45973"&gt;this bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Setting an initial &lt;code&gt;include_path&lt;/code&gt; in &lt;code&gt;/etc/php5/apache2/php.ini&lt;/code&gt; worked around the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-4188014028212090258?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/4188014028212090258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=4188014028212090258' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/4188014028212090258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/4188014028212090258'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/08/apache-segfaults-after-enabling-zend.html' title='Apache segfaults after enabling the Zend Framework on Ubuntu Jaunty'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-2513652716067431600</id><published>2009-06-03T21:55:00.000+10:00</published><updated>2009-06-03T21:55:42.346+10:00</updated><title type='text'>A fix for Windows Vista not connecting to a wireless network</title><content type='html'>Today my girlfriend's laptop (running Windows Vista) would not connect to my wireless network. It connected to her uni wireless network fine and &lt;em&gt;was&lt;/em&gt; connecting to mine fine up until now. It had recently been upgraded to Service Pack 2, so this may have triggered the problem.&lt;br /&gt;&lt;br /&gt;I unsuccessfully tried &lt;ul&gt;&lt;li&gt;rebooting,&lt;/li&gt;&lt;li&gt;removing the access point from its list of 'remembered' points, and &lt;/li&gt;&lt;li&gt;reinstalling the wireless card driver.&lt;/li&gt;&lt;/ul&gt;After some Googling &lt;a href="http://www.techsupportforum.com/microsoft-support/windows-vista-support/140267-solved-cant-connect-your-wireless-network-tried-everything-try.html"&gt;the solution that worked for me&lt;/a&gt; was to create a new 32-bit DWORD value called &lt;a href="http://technet.microsoft.com/en-us/library/cc957526.aspx"&gt;ArpRetryCount&lt;/a&gt; in: &lt;pre&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\&lt;/pre&gt;and leaving its value at 0. After rebooting it connected as normal.&lt;br /&gt;&lt;br /&gt;Here is &lt;a href="http://miknight.com/files/vista_wireless_fix.reg"&gt;a .reg file&lt;/a&gt; to automatically apply the fix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-2513652716067431600?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/2513652716067431600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=2513652716067431600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2513652716067431600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2513652716067431600'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/06/fix-for-windows-vista-not-connecting-to.html' title='A fix for Windows Vista not connecting to a wireless network'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-3124883596112156243</id><published>2009-06-01T23:30:00.000+10:00</published><updated>2009-06-01T23:30:36.113+10:00</updated><title type='text'>Installing the Passenger gem on Ubuntu</title><content type='html'>I just tried to install &lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt; on my Ubuntu-based Linode. I like to use the gem (as opposed to distro packages) to make sure I keep up with new version releases. Unfortunately when I tried I got this error:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# gem install passenger&lt;br /&gt;Building native extensions.  This could take a while...&lt;br /&gt;ERROR:  Error installing passenger:&lt;br /&gt;        ERROR: Failed to build gem native extension.&lt;br /&gt;&lt;br /&gt;/usr/bin/ruby1.8 extconf.rb install passenger&lt;br /&gt;extconf.rb:8:in `require': no such file to load -- mkmf (LoadError)&lt;br /&gt;        from extconf.rb:8&lt;/pre&gt;&lt;br /&gt;Since the machine is a VPS I like to try and keep the number of unnecessary packages down to a minimum. It turns out the only extra package I needed to install was &lt;strong&gt;ruby1.8-dev&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;After Passenger built successfully, I had to add &lt;strong&gt;/var/lib/gems/1.8/bin&lt;/strong&gt; into my $PATH and run &lt;strong&gt;passenger-install-apache2-module&lt;/strong&gt; (which contained cushy step-by-step instructions from that point on).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-3124883596112156243?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/3124883596112156243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=3124883596112156243' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/3124883596112156243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/3124883596112156243'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/06/installing-passenger-gem-on-ubuntu.html' title='Installing the Passenger gem on Ubuntu'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-2101549738016116888</id><published>2009-05-15T10:53:00.000+10:00</published><updated>2009-05-15T10:53:47.087+10:00</updated><title type='text'>Fixing the infamous Amavis + SpamAssassin cron messages</title><content type='html'>I'm using Amavis and SpamAssassin together on an Ubuntu server. For some reason, a cron email was being generated every 3 hours that looked like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;bayes: synced databases from journal in 0 seconds: 811 unique entries (1420 total entries)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There is a bug report filed about it &lt;a href="https://bugs.launchpad.net/bugs/165184"&gt;here&lt;/a&gt; but the solution didn't help me.&lt;br /&gt;&lt;br /&gt;The file responsible for generating this message is &lt;strong&gt;/usr/sbin/amavisd-new-cronjob&lt;/strong&gt;. I was able to stop the annoying messages by changing line 26 from:&lt;br /&gt;&lt;pre&gt;exec ${CMD}&lt;/pre&gt;to&lt;br /&gt;&lt;pre&gt;exec ${CMD} &gt;/dev/null 2&gt;&amp;1&lt;/pre&gt;While this may clobber useful error messages as well, my care factor is low after being spammed so much.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-2101549738016116888?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/2101549738016116888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=2101549738016116888' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2101549738016116888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2101549738016116888'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/05/fixing-infamous-amavis-spamassassin.html' title='Fixing the infamous Amavis + SpamAssassin cron messages'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-8973682612402474376</id><published>2009-05-12T22:05:00.001+10:00</published><updated>2009-05-12T22:07:46.042+10:00</updated><title type='text'>Hiding windows with Ruby and appscript on OS X</title><content type='html'>At the moment I'm writing a Ruby script that interacts with iTunes on OS X. Fortunately this is fairly easy to do using the AppleScript bridge &lt;a href="http://appscript.sourceforge.net/rb-appscript/"&gt;rb-appscript&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My problem was that I needed to hide the iTunes window (the same as using the &amp;#8984;H shortcut) so that the Ruby application didn't lose focus. Unfortunately it took me a long time to find out how to do it.&lt;br /&gt;&lt;br /&gt;I didn't need to deal with &lt;a href="http://appscript.sourceforge.net/rb-appscript/doc/osax-manual/"&gt;OSAX&lt;/a&gt;. Here's a snippet of code that demonstrates the necessary incantation:&lt;br /&gt;&lt;pre&gt;require 'rubygems'&lt;br /&gt;require 'appscript'&lt;br /&gt;&lt;br /&gt;itunes = Appscript.app('iTunes')&lt;br /&gt;itunes.activate()&lt;br /&gt;itunes.stop&lt;br /&gt;# Hide the iTunes window&lt;br /&gt;Appscript.app('System Events').processes['iTunes'].visible.set(false)&lt;br /&gt;&lt;/pre&gt;Here is what the actual AppleScript (which I &lt;em&gt;was&lt;/em&gt; able to find easily) looks like:&lt;br /&gt;&lt;pre&gt;tell application "System Events"&lt;br /&gt;    set visible of process "iTunes" to false&lt;br /&gt;end tell&lt;br /&gt;&lt;/pre&gt;You can see how the 'Rubyised' version maps to it, although it took a lot of Googling to translate!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-8973682612402474376?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/8973682612402474376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=8973682612402474376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/8973682612402474376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/8973682612402474376'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/05/hiding-windows.html' title='Hiding windows with Ruby and appscript on OS X'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-7096235850141052742</id><published>2009-05-08T10:36:00.000+10:00</published><updated>2009-05-08T10:36:18.986+10:00</updated><title type='text'>Cryptic MySQL Error Message</title><content type='html'>I came across an interesting but cryptic MySQL error message today that took me a while to figure out.&lt;br /&gt;&lt;br /&gt;After creating a bunch of InnoDB tables on this particular server, I tried to create some indexes and insert some data. Both types of operations failed with an error message that looked like this:&lt;br /&gt;&lt;br /&gt;ERROR 1025 (HY000): Error on rename of './dbname/tablname' to './dbname/#sql2-12bb-9474d' (errno: -1)&lt;br /&gt;&lt;br /&gt;After some looking around I came across &lt;a href="http://bugs.mysql.com/bug.php?id=30225"&gt;this amusing bug report&lt;/a&gt;, which explained that this message could be due to the &lt;a href="http://dev.mysql.com/doc/refman/4.1/en/forcing-recovery.html"&gt;innodb_force_recovery&lt;/a&gt; setting being set to a non-zero value.&lt;br /&gt;&lt;br /&gt;Sure enough, running &lt;em&gt;SHOW VARIABLES LIKE 'innodb_force_recovery';&lt;/em&gt; revealed that it was set to '4' instead of '0'. I now have a sys-admin to kill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-7096235850141052742?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dev.mysql.com/doc/refman/4.1/en/forcing-recovery.html' title='Cryptic MySQL Error Message'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/7096235850141052742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=7096235850141052742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/7096235850141052742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/7096235850141052742'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/05/cryptic-mysql-error-message.html' title='Cryptic MySQL Error Message'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-6705159778590621900</id><published>2009-02-05T13:41:00.017+11:00</published><updated>2009-02-05T22:02:18.999+11:00</updated><title type='text'>406 Not Acceptable error using jQuery AJAX</title><content type='html'>I was scratching my head over a problem today where a &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; ajax request was failing on one particular web server with a '406 Not Acceptable' error. It had been tested on many other servers without any trouble, but this seemingly normal Apache server wasn't having a bar of it.&lt;br /&gt;&lt;br /&gt;It turned out the problem was that I was submitting the ajax request using the POST method but not actually sending any post data. For example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$.ajax({&lt;br /&gt;   type: "POST",&lt;br /&gt;   url: "index.php?action=foo",&lt;br /&gt;   success: function(msg){&lt;br /&gt;     // ...&lt;br /&gt;   }&lt;br /&gt; });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Changing it to a GET sorted out the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-6705159778590621900?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/6705159778590621900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=6705159778590621900' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/6705159778590621900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/6705159778590621900'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2009/02/406-not-acceptable-error-using-jquery.html' title='406 Not Acceptable error using jQuery AJAX'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-7468161640852940871</id><published>2008-08-18T18:29:00.004+10:00</published><updated>2008-08-18T19:15:41.820+10:00</updated><title type='text'>Linux featured in DOA: Dead or Alive movie</title><content type='html'>Because it's such a classic, I like to re-watch &lt;a href="http://www.imdb.com/title/tt0398913/"&gt;DOA: Dead or Alive&lt;/a&gt; every now and again. Based on the video game &lt;a href="http://en.wikipedia.org/wiki/Dead_or_Alive_3"&gt;DOA 3&lt;/a&gt; on Xbox, it vaguely follows the story line of the game. With a rich universe, impassioned drama  and superb acting I have no idea why it only got 4.9/10 on IMDB ;)&lt;br /&gt;&lt;br /&gt;On the weekend I was enjoying my third or fourth viewing of this theatrical masterpiece when I decided to pause during one of those 'computer code flows down the screen' scenes. To my surprise, this is what I found:&lt;br /&gt;&lt;br /&gt;&lt;p style="text-align:center;"&gt;&lt;a href="http://farm4.static.flickr.com/3173/2773393173_692f18bc1a_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3173/2773393173_dde8f4e4fa.jpg" border="1" width="500" height="220" alt="Alpha source code from the Linux kernel scrolling down the screen" title="Click for larger version" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;For those playing at home, you can find this code in &lt;code&gt;&lt;a href="http://lxr.linux.no/linux-bk+v2.6.11.5/arch/alpha/kernel/err_impl.h"&gt;arch/alpha/kernel/err_impl.h&lt;/a&gt;&lt;/code&gt; from a 2.6 series Linux kernel.&lt;br /&gt;&lt;br /&gt;There are some slight differences with the original code though. Random words and tokens are missing. For example, the copyright message has been mostly stripped, random words are missing from the description comment and tabs are displaying as boxes. &lt;br /&gt;&lt;br /&gt;Having &lt;a href="http://en.wikipedia.org/wiki/DEC_Alpha"&gt;Alpha&lt;/a&gt; source scrolling down the screen didn't really make sense in the context of the scene, but I guess if they're going to just put 'whatever' up there, it's a nice Easter Egg for the nerds to unearth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-7468161640852940871?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/7468161640852940871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=7468161640852940871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/7468161640852940871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/7468161640852940871'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2008/08/linux-featured-in-doa-dead-or-alive.html' title='Linux featured in DOA: Dead or Alive movie'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3173/2773393173_dde8f4e4fa_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-2991551814468592544</id><published>2008-08-07T23:41:00.003+10:00</published><updated>2008-08-08T00:07:32.761+10:00</updated><title type='text'>Getting UTF-8 working in Irssi through Screen over SSH</title><content type='html'>I keep getting asked about this, so I will put it here for reference.&lt;br /&gt;&lt;br /&gt;You can usually do it in 4 easy steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Terminal emulator environment&lt;br /&gt;&lt;br /&gt;Ensure your terminal emulator is using UTF-8 encoding. If you're using iTerm on OS X, you can find this in Bookmarks -&gt; Manage Profiles -&gt; Terminal Profiles -&gt; Default.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Shell environment&lt;br /&gt;&lt;br /&gt;Configure your shell to use the UTF-8 version of your locale. For example, edit your &lt;code&gt;~/.bashrc&lt;/code&gt; file and change or add this line:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;export LANG="en_AU.UTF-8"&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Screen configuration&lt;br /&gt;&lt;br /&gt;In your &lt;code&gt;~/.screenrc,&lt;/code&gt; file, add this line:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;encoding UTF-8&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Irssi configuration &lt;br /&gt;&lt;br /&gt;In your &lt;code&gt;~/.irssi/config&lt;/code&gt; file in the &lt;code&gt;settings -&gt; "fe-common/core"&lt;/code&gt; section, add the option:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;term_charset = "utf-8";&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;You will need to quit irssi, exit the screen session and log out of the shell completely, then load it all back up again.&lt;br /&gt;&lt;br /&gt;Now you too can impress your friends by using stylish words and phrases such as &lt;i&gt;touch&amp;eacute;&lt;/i&gt;,&lt;br /&gt;&lt;br /&gt;בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ &lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;起&lt;br /&gt;初&lt;br /&gt;　&lt;br /&gt;神&lt;br /&gt;創&lt;br /&gt;造&lt;br /&gt;天&lt;br /&gt;地&lt;br /&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-2991551814468592544?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/2991551814468592544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=2991551814468592544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2991551814468592544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/2991551814468592544'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2008/08/getting-utf-8-working-in-irssi-through.html' title='Getting UTF-8 working in Irssi through Screen over SSH'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-6100241303463664900</id><published>2008-05-01T23:19:00.002+10:00</published><updated>2008-05-01T23:47:20.547+10:00</updated><title type='text'>Random words on command</title><content type='html'>Today I needed to generate SQL queries to populate a database table with some test data. I was making a Facebook-style search &amp; narrow thing where, as you type, the list of options narrow based on your search string. I wanted to test the efficiency of my implementation, so I figured it would make testing easier if I used real words for the list items.&lt;br /&gt;&lt;br /&gt;It seems a lot of people have needed to do this, so it wasn't long before I found &lt;a href="http://unixjunkie.blogspot.com/2007/10/generating-random-words.html?showComment=1193015520000#c6426485301926811191"&gt;a fairly good solution for my purposes&lt;/a&gt;. Here's the magic line:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;perl -nle '$word = $_ if rand($.) &lt; 1; END { print $word }' /usr/share/dict/words&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I really have no idea why this works as I'm no Perl Monger. I also found that I didn't have any words at &lt;code&gt;/usr/share/dict/words&lt;/code&gt;, since I was on an Ubuntu server install. I needed to &lt;code&gt;sudo aptitude install wbritish&lt;/code&gt;. Incidentally, it worked on my OS X 10.5 machine too. Unix is handy.&lt;br /&gt;&lt;br /&gt;I only needed 500 records and calling this 500 times didn't take too long. Much more and you'd probably have to modify your approach though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-6100241303463664900?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/6100241303463664900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=6100241303463664900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/6100241303463664900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/6100241303463664900'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2008/05/random-words-on-command.html' title='Random words on command'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-115154851753132063</id><published>2006-06-29T12:12:00.000+10:00</published><updated>2006-06-29T12:35:24.756+10:00</updated><title type='text'>Storing system time in UTC in Windows XP</title><content type='html'>A &lt;a href="http://blog.nathancoad.com/"&gt;friend of mine&lt;/a&gt; came across an &lt;a href="http://dlgwiki.dot42.org/index.php/Allow_the_system_clock_to_be_set_in_UTC/GMT"&gt;article&lt;/a&gt; describing how to store the system time as UTC in Windows XP.&lt;br /&gt;&lt;br /&gt;This is helpful for me because I have several machines that dual boot between Linux and Windows XP, and one that dual boots between OS X and Windows XP. Linux and OS X like to store the time as UTC, while Windows likes to store your local time (e.g. UTC+10). Most Linux distros provide an easy-ish way of storing local time instead of UTC, allowing you to boot into Windows without experiencing a time warp. However, OS X doesn't (to my knowledge) allow this -- which is probably a good thing.&lt;br /&gt;&lt;br /&gt;The magic key is at:&lt;br /&gt;&lt;code&gt;HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal&lt;/code&gt;&lt;br /&gt;It's a DWORD that needs to be set to 1 (I had to create it). Of course, you need to reboot afterwards.&lt;br /&gt;&lt;br /&gt;There have been reports of side-effects, but so far it seems OK for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-115154851753132063?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html' title='Storing system time in UTC in Windows XP'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/115154851753132063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=115154851753132063' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/115154851753132063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/115154851753132063'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2006/06/storing-system-time-in-utc-in-windows.html' title='Storing system time in UTC in Windows XP'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-114277624054625804</id><published>2006-03-20T00:24:00.000+11:00</published><updated>2007-03-23T23:55:59.589+11:00</updated><title type='text'>Join Our LUG!</title><content type='html'>If any of you have listened to &lt;a href="http://mirror.linux.org.au/podcasts/la-update/lugroundup_ep_18_2006_03_18.ogg"&gt;episode 18 of the LUG roundup&lt;/a&gt; you may have heard some crazy song about &lt;a href="http://www.slug.org.au/"&gt;my local LUG&lt;/a&gt; at the end of it. There were some requests for the songwriter to put up the lyrics, so I figured that since I know the guy pretty well, I'd ask him for a copy ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Join Our LUG"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's sung to the tune of "Be Our Guest" from Disney's &lt;i&gt;Beauty and the Beast&lt;/i&gt; or &lt;i&gt;The Simpsons'&lt;/i&gt; popular re-interpretation sung by Mr Burns: "See My Vest". &lt;br /&gt;&lt;i&gt;&lt;br /&gt;Some use Windows XP,&lt;br /&gt;Others, OS Ten,&lt;br /&gt;The OS we are pushing for,&lt;br /&gt;Is superior to them...&lt;br /&gt;&lt;br /&gt;Join our LUG, join our LUG,&lt;br /&gt;We're from Sydney, we get mugged,&lt;br /&gt;Have a flame-fest on the SLUG list,&lt;br /&gt;See whose patience is the longest.&lt;br /&gt;&lt;br /&gt;Stibbons, Jaq, Rob and Mark,&lt;br /&gt;ctd, our underage clerke.&lt;br /&gt;Bruce and Ken and Grant and Jan and,&lt;br /&gt;Pia, jdub: "Awesome, awesome!"&lt;br /&gt;&lt;br /&gt;Installfests here, codefests there,&lt;br /&gt;Monthly meetings are fun, I swear!&lt;br /&gt;Erik, Lindsay, Matt and&lt;br /&gt;All the rest!&lt;br /&gt;&lt;br /&gt;LCA again,&lt;br /&gt;Two-thousand and seven,&lt;br /&gt;Join our LUG, join our LUG,&lt;br /&gt;Join our LUG!&lt;br /&gt;&lt;br /&gt;Distro wars, Fedora bores,&lt;br /&gt;Most of us are Debian whores.&lt;br /&gt;But Ubuntu on the desktop&lt;br /&gt;Is the best!&lt;br /&gt;&lt;br /&gt;So let's put out the word,&lt;br /&gt;Linux ain't just for nerds,&lt;br /&gt;Join our LUG, join our LUG,&lt;br /&gt;(Oh please now won't you join it!)&lt;br /&gt;Oh please, won't you join our LUG!&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://thecoads.com/~mike/slug.ogg"&gt;link to the original recording&lt;/a&gt;. &lt;a href="http://ctd.id.au/"&gt;ctd&lt;/a&gt; also wanted the &lt;a href="http://thecoads.com/~mike/backing.ogg"&gt;backing music&lt;/a&gt; (which I did not create, but found somewhere =)).&lt;br /&gt;&lt;br /&gt;A big thanks to &lt;a href="http://karin.k-sit.com/"&gt;MotherLUG&lt;/a&gt; for coming up with the competition idea and, of course, for all the great LUG roundups. Also thanks to &lt;a href="http://k-sit.com/"&gt;purserj&lt;/a&gt; for the LA Updates and putting the mechanics into place for all of it to happen!&lt;br /&gt;&lt;br /&gt;Finally, apologies for getting such a poorly sung song stuck in people's heads!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-114277624054625804?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/114277624054625804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=114277624054625804' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/114277624054625804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/114277624054625804'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2006/03/join-our-lug.html' title='Join Our LUG!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-114109325852993070</id><published>2006-02-28T12:59:00.000+11:00</published><updated>2006-02-28T13:22:33.403+11:00</updated><title type='text'>Social Web Browsing</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt; I'm posting this blog entry through a new Firefox-based web browser called &lt;a href="http://www.flock.com/"&gt;Flock&lt;/a&gt;. It seems to aim to redefine the web browsing paradigm, making it more social. It has built in features to integrate blogging, bookmarks sharing, photo sharing and more. I haven't used it lots yet but it seems like a really promising idea! &lt;/p&gt;  &lt;p&gt; Maybe Later I'll update this post with some of the cooler stuff it lets people do.&lt;br/&gt;  &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-114109325852993070?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/114109325852993070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=114109325852993070' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/114109325852993070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/114109325852993070'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2006/02/social-web-browsing.html' title='Social Web Browsing'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113679170231995432</id><published>2006-01-09T18:24:00.000+11:00</published><updated>2006-01-09T18:28:22.330+11:00</updated><title type='text'>Colour me pink... or yellow, or...</title><content type='html'>I like taking quiz things and putting them here. I most certainly do doubt their accuracy most of the time though.&lt;br /&gt;&lt;br /&gt;&lt;table width=350 align=center border=0 cellspacing=0 cellpadding=2&gt;&lt;tr&gt;&lt;td bgcolor="#999999" align=center&gt;&lt;font face="Georgia, Times New Roman, Times, serif" style='color:black; font-size: 14pt;'&gt;&lt;b&gt;Your Blog Should Be Yellow&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="#CCCCCC"&gt;&lt;center&gt;&lt;img src="http://images.blogthings.com/whatcolorshouldyourblogorjournalbequiz/yellow.gif" height="100" width="100"&gt;&lt;/center&gt;&lt;font color="#000000"&gt;&lt;br /&gt;You're a cheerful, upbeat blogger who tends to make everyone laugh.&lt;br /&gt;You are a great storyteller, and the first to post the latest funny link.&lt;br /&gt;You're also friendly and welcoming to everyone who comments on your blog.&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div align="center"&gt;&lt;a href="http://www.blogthings.com/whatcolorshouldyourblogorjournalbequiz/"&gt;What Color Should Your Blog or Journal Be?&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In other news, I'm jumping on the big, wide, hyped bandwagon knows as &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;. While I think it has generated a disproportionate hype-bubble, it doesn't mean it's not worth learning ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113679170231995432?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.blogthings.com/whatcolorshouldyourblogorjournalbequiz/' title='Colour me pink... or yellow, or...'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113679170231995432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113679170231995432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113679170231995432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113679170231995432'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2006/01/colour-me-pink-or-yellow-or.html' title='Colour me pink... or yellow, or...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113505252574146150</id><published>2005-12-20T14:43:00.000+11:00</published><updated>2005-12-20T15:22:05.770+11:00</updated><title type='text'>Team Fortress Theme Song</title><content type='html'>After years of on-and-off searching I finally managed to discover what the song was that the TF guys used in the opening demo of their insanely popular Quake mod.&lt;br /&gt;&lt;br /&gt;It was from a collection of songs known as the &lt;a href="http://en.wikipedia.org/wiki/Carmina_Burana"&gt;Carmina Burana&lt;/a&gt; by &lt;a href="http://en.wikipedia.org/wiki/Carl_Orff"&gt;Carl Orff&lt;/a&gt;. The theme song is number 5: &lt;i&gt;I Primo Vere - Ecce gratum&lt;/i&gt;. Apparently &lt;i&gt;Primo Vere&lt;/i&gt; means "In Springtime" or "the first Spring". &lt;i&gt;Ecce gratum&lt;/i&gt; roughly means "behold, the pleasant (Spring)". If you're interested you can &lt;a href="http://www.classical.net/~music/comp.lst/works/orff-cb/carmlyr.html#track5"&gt;view the lyrics&lt;/a&gt; (with translation -- I know my Latin is pretty rusty).&lt;br /&gt;&lt;br /&gt;It was great to be able to finally hear the song in something of greater quality than the woefully encoded wave file included in the TF package. The song brings back a lot of memories and I've blogged the details here in the hope other people will be able to find the song and experience the same thing.&lt;br /&gt;&lt;br /&gt;If you happen to have the right plugins installed, the song can be found at &lt;a href="http://media.putfile.com/05-I-Primo-Vere---Ecce-gratum"&gt;http://media.putfile.com/05-I-Primo-Vere---Ecce-gratum&lt;/a&gt;. If you don't have the right plugins, you might be able to listen to it by trawling the HTML source code ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113505252574146150?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113505252574146150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113505252574146150' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113505252574146150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113505252574146150'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/12/team-fortress-theme-song.html' title='Team Fortress Theme Song'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113228329572631439</id><published>2005-11-18T14:05:00.000+11:00</published><updated>2005-11-18T14:08:15.736+11:00</updated><title type='text'>To which race of Middle Earth do you belong?</title><content type='html'>&lt;p style="text-align:center;"&gt;&lt;br /&gt;&lt;a href="http://quizilla.com/users/dphenreckson/quizzes/To%20which%20race%20of%20Middle%20Earth%20do%20you%20belong%3F/"&gt;&lt;img src="http://images.quizilla.com/D/dphenreckson/1049378275_Hmiddleearthentish.jpg" border="0" alt="Entish"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113228329572631439?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://quizilla.com/users/dphenreckson/quizzes/To%20which%20race%20of%20Middle%20Earth%20do%20you%20belong%3F/' title='To which race of Middle Earth do you belong?'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113228329572631439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113228329572631439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113228329572631439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113228329572631439'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/11/to-which-race-of-middle-earth-do-you.html' title='To which race of Middle Earth do you belong?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113206167568768710</id><published>2005-11-15T23:51:00.000+11:00</published><updated>2005-11-17T13:39:41.910+11:00</updated><title type='text'>Goodbye Sony</title><content type='html'>I owned a Sony walkman. It was good. Sometime between then and now something went very wrong over at Sony.&lt;br /&gt;&lt;br /&gt;To cut a long story short, &lt;a href="http://www.theinq.net/?article=27349"&gt;Sony's music CDs intentionally infected people's computers&lt;/a&gt;. It &lt;a href="http://www.theregister.co.uk/2005/11/10/sony_drm_trojan/"&gt;opened up gaping security holes&lt;/a&gt; in the operating system (&lt;a href="http://apple.slashdot.org/article.pl?sid=05/11/11/064215"&gt;Macs too&lt;/a&gt;), let people &lt;a href="http://www.securityfocus.com/brief/34"&gt;cheat in online games&lt;/a&gt;, &lt;a href="http://games.slashdot.org/article.pl?sid=05/11/07/1221209"&gt;reported back to Sony&lt;/a&gt; the songs you were listening to and even &lt;a href="http://www.eweek.com/article2/0,1759,1886122,00.asp?kc=EWRSS03129TX1K0000614"&gt;got on Microsoft's bad side&lt;/a&gt; (of all companies!).&lt;br /&gt;&lt;br /&gt;Why? To protect their copyright.&lt;br /&gt;&lt;br /&gt;If that wasn't enough (and for any sane person it should be) it has been discovered that in the process of "protecting their copyright", &lt;a href="http://www.boingboing.net/2005/11/13/sonys_rootkit_infrin.html"&gt;Sony has violated another group's copyright!&lt;/a&gt; They used some software that is released under an open source license in their application, without complying with the (very liberal) conditions of its use. Essentially, they are hypocrites to boot.&lt;br /&gt;&lt;br /&gt;I have a friend who has decided to boycott McDonalds, in order to do his part in not supporting evil corporations. Well, it's time for me to add Sony on to my black list.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; It seems Sony have &lt;a href="http://cp.sonybmg.com/xcp/english/titles.html"&gt;officially apologised&lt;/a&gt; and released a list of &lt;a href="http://cp.sonybmg.com/xcp/english/titles.html"&gt;affected titles&lt;/a&gt;. They are allowing people to replace their rootkitted CDs with normal ones too. It's great that they're doing this, but it only happened after the uproar became deafening -- they should have done it earlier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113206167568768710?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.boingboing.net/2005/11/13/sonys_rootkit_infrin.html' title='Goodbye Sony'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113206167568768710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113206167568768710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113206167568768710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113206167568768710'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/11/goodbye-sony.html' title='Goodbye Sony'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113162611611800540</id><published>2005-11-10T22:52:00.000+11:00</published><updated>2005-11-11T00:42:15.383+11:00</updated><title type='text'>Resident Set Size in Mac OS X</title><content type='html'>A process lives in its own segment of virtual memory. Not all of this virtual memory is in RAM though. The 'bits' (typically called 'pages') that are in RAM make up what is known as the resident set size (RSS) of a process. As a process runs, the active parts need to be brought into RAM, becoming part of the RSS. Unused pages may be removed (discarded completely or written back to disk if they've changed from the on-disk copy). It's up to the operating system when to do this. Usually when the system is low on physical RAM the OS will start removing pages.&lt;br /&gt;&lt;br /&gt;You can view the RSS of a process on most Unices (Linux, Mac OS X included) by bringing up a terminal and going &lt;code&gt;ps -o pid,ucomm,rss&lt;/code&gt; (it will probably be given in kilobytes). Or, try the popular &lt;code&gt;top&lt;/code&gt; program, which may report it under the heading of 'RES' or 'RSIZE'.&lt;br /&gt;&lt;br /&gt;For my thesis I needed to write a program that did some stuff and reported its effective memory usage at the same time. I also had to get it to run on several operating systems. OS X posed quite a challenge as it has no &lt;code&gt;/proc&lt;/code&gt; pseudo file system. I couldn't simply open a file and pull out the right number.&lt;br /&gt;&lt;br /&gt;After a heck of a lot of digging I eventually found &lt;a href="http://dev.alt.textdrive.com/file/ZOE/Applications/ZOEMenu/AGProcess.m"&gt;this&lt;/a&gt; and &lt;a href="http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_info.html"&gt;this&lt;/a&gt; and &lt;a href="http://gnu.mirrors.atn.ro/software/hurd/gnumach-doc/mach_7.html"&gt;this&lt;/a&gt;, not to mention the source code for the &lt;code&gt;ps&lt;/code&gt; utility itself (yay &lt;a href="http://www.opendarwin.org/"&gt;OpenDarwin&lt;/a&gt;). This got me pretty close, and took me forever. However, it wasn't until I found a document in Google's cache (that 404'd when I tried it) by &lt;a href="http://www.brokenzipper.com/"&gt;Chaz McGarvey&lt;/a&gt; that I got over the line.&lt;br /&gt;&lt;br /&gt;Here's the code:&lt;br /&gt;&lt;pre&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/sysctl.h&amp;gt;&lt;br /&gt;#include &amp;lt;mach/task.h&amp;gt;&lt;br /&gt;#include &amp;lt;mach/mach_init.h&amp;gt;&lt;br /&gt;&lt;br /&gt;void getres(task_t task, unsigned int *rss, unsigned int *vs)&lt;br /&gt;{&lt;br /&gt;    struct task_basic_info t_info;&lt;br /&gt;    mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT;&lt;br /&gt;&lt;br /&gt;    task_info(task, TASK_BASIC_INFO, (task_info_t)&amp;t_info, &amp;t_info_count);&lt;br /&gt;    *rss = t_info.resident_size;&lt;br /&gt;    *vs = t_info.virtual_size;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void memcheck()&lt;br /&gt;{&lt;br /&gt;    unsigned int rss, vs, psize;&lt;br /&gt;    task_t task = MACH_PORT_NULL;&lt;br /&gt;&lt;br /&gt;    if (task_for_pid(current_task(), getpid(), &amp;task) != KERN_SUCCESS)&lt;br /&gt;        abort();&lt;br /&gt;    getres(task, &amp;rss, &amp;vs);&lt;br /&gt;    psize = getpagesize();&lt;br /&gt;    fprintf(stderr, "RSS: %u KiB, VS: %u KiB.\n", rss, vs);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that should report the RSS and total VM size of the current process that invokes this code (in bytes). It's probably not perfect (it should have more error checking) but hopefully it will get me by.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113162611611800540?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113162611611800540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113162611611800540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113162611611800540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113162611611800540'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/11/resident-set-size-in-mac-os-x.html' title='Resident Set Size in Mac OS X'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113090858301265194</id><published>2005-11-02T15:48:00.000+11:00</published><updated>2005-11-02T16:16:23.030+11:00</updated><title type='text'>How to install the Luxi Mono font in TexShop</title><content type='html'>I've just spent way too much time trying to get this font installed. I wanted to install it as it was recommended by the &lt;a href="http://www.tug.org/tex-archive/macros/latex/contrib/listings/listings-1.3.pdf"&gt;Listings package&lt;/a&gt; (PDF) for LaTeX as the font to use if you wanted your code listings (a) in a monospace font (who wouldn't?) and (b) able to be in bold type (for highlighted keywords, etc.).&lt;br /&gt;&lt;br /&gt;I found the &lt;a href="http://www.ctan.org/tex-archive/fonts/LuxiMono/"&gt;LuxiMono package on CTAN&lt;/a&gt;, then tried to figure out how to install it for ages, then finally came across &lt;a href="http://w3.msi.vxu.se/~pku/MacOSX_TeX/2003a/msg02395.html"&gt;this post&lt;/a&gt; from the &lt;a href="http://www.esm.psu.edu/mac-tex/"&gt;Mac-Tex&lt;/a&gt; mailing list describing the process for another font package.&lt;br /&gt;&lt;br /&gt;The secret is putting everything in &lt;code&gt;~/Library/texmf/&lt;/code&gt;. I think it's just quickest to dump a tree listing of what I have there:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;.&lt;br /&gt;|-- doc&lt;br /&gt;|   `-- fonts&lt;br /&gt;|       `-- luxi&lt;br /&gt;|           |-- LICENSE&lt;br /&gt;|           `-- luximono.txt&lt;br /&gt;|-- dvips&lt;br /&gt;|   |-- config&lt;br /&gt;|   |   `-- ul9.map&lt;br /&gt;|   `-- luxi&lt;br /&gt;|       `-- ul9.map&lt;br /&gt;|-- fonts&lt;br /&gt;|   |-- afm&lt;br /&gt;|   |   `-- public&lt;br /&gt;|   |       `-- luxi&lt;br /&gt;|   |           |-- ul9b8a.afm&lt;br /&gt;|   |           |-- ul9bo8a.afm&lt;br /&gt;|   |           |-- ul9r8a.afm&lt;br /&gt;|   |           `-- ul9ro8a.afm&lt;br /&gt;|   |-- map&lt;br /&gt;|   |   `-- vtex&lt;br /&gt;|   |       `-- ul9.ali&lt;br /&gt;|   |-- tfm&lt;br /&gt;|   |   `-- public&lt;br /&gt;|   |       `-- luxi&lt;br /&gt;|   |           |-- ul9b8a.tfm&lt;br /&gt;|   |           |-- ul9b8c.tfm&lt;br /&gt;|   |           |-- ul9b8r.tfm&lt;br /&gt;|   |           |-- ul9b8t.tfm&lt;br /&gt;|   |           |-- ul9bo8a.tfm&lt;br /&gt;|   |           |-- ul9bo8c.tfm&lt;br /&gt;|   |           |-- ul9bo8r.tfm&lt;br /&gt;|   |           |-- ul9bo8t.tfm&lt;br /&gt;|   |           |-- ul9r8a.tfm&lt;br /&gt;|   |           |-- ul9r8c.tfm&lt;br /&gt;|   |           |-- ul9r8r.tfm&lt;br /&gt;|   |           |-- ul9r8t.tfm&lt;br /&gt;|   |           |-- ul9ro8a.tfm&lt;br /&gt;|   |           |-- ul9ro8c.tfm&lt;br /&gt;|   |           |-- ul9ro8r.tfm&lt;br /&gt;|   |           `-- ul9ro8t.tfm&lt;br /&gt;|   |-- type1&lt;br /&gt;|   |   `-- public&lt;br /&gt;|   |       `-- luxi&lt;br /&gt;|   |           |-- ul9b8a.pfb&lt;br /&gt;|   |           |-- ul9bo8a.pfb&lt;br /&gt;|   |           |-- ul9r8a.pfb&lt;br /&gt;|   |           `-- ul9ro8a.pfb&lt;br /&gt;|   `-- vf&lt;br /&gt;|       `-- public&lt;br /&gt;|           `-- luxi&lt;br /&gt;|               |-- ul9b8c.vf&lt;br /&gt;|               |-- ul9b8t.vf&lt;br /&gt;|               |-- ul9bo8c.vf&lt;br /&gt;|               |-- ul9bo8t.vf&lt;br /&gt;|               |-- ul9r8c.vf&lt;br /&gt;|               |-- ul9r8t.vf&lt;br /&gt;|               |-- ul9ro8c.vf&lt;br /&gt;|               `-- ul9ro8t.vf&lt;br /&gt;`-- tex&lt;br /&gt;    |-- context&lt;br /&gt;    |   `-- pdfsync4context.tex&lt;br /&gt;    |-- latex&lt;br /&gt;    |   |-- luxi&lt;br /&gt;    |   |   |-- luximono.sty&lt;br /&gt;    |   |   |-- t1ul9.fd&lt;br /&gt;    |   |   `-- ts1ul9.fd&lt;br /&gt;    |   `-- pdfsync.sty&lt;br /&gt;    `-- plain&lt;br /&gt;        `-- pdfsync.tex&lt;br /&gt;&lt;br /&gt;26 directories, 43 files&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then the magic command is &lt;code&gt;sudo updmap --enable MixedMap ul9.map&lt;/code&gt;. You may need to be in the &lt;code&gt;dvips/luxi&lt;/code&gt; dir to run that. Also, just in case you're getting confused, the .tex, .vf, .ali and .tfm files were either already there or auto-generated.&lt;br /&gt;&lt;br /&gt;To take advantage of the font, I just added &lt;pre&gt;\usepackage[scaled]{luximono}&lt;/pre&gt; to my LaTeX document, and it automatically became the default &lt;code&gt;\tt&lt;/code&gt; font for it.&lt;br /&gt;&lt;br /&gt;I hope this alleviates headaches for some others out there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113090858301265194?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113090858301265194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113090858301265194' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113090858301265194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113090858301265194'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/11/how-to-install-luxi-mono-font-in.html' title='How to install the Luxi Mono font in TexShop'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113023347851301428</id><published>2005-10-25T19:14:00.000+10:00</published><updated>2005-10-25T19:46:50.710+10:00</updated><title type='text'>WoW Adventures Volume MCXVII</title><content type='html'>So I've been leveling an alt, a &lt;a href="http://wow.allakhazam.com/profile.html?463802"&gt;dwarf warrior&lt;/a&gt;. I have to say, I used to think a warrior would be the most boring class -- but I'm finding it awesome! I love the idea of being the person in charge of making sure I'm the only one who gets hurt. &lt;br /&gt;&lt;br /&gt;I played a number of Warsong Gulch games last night, which prompted this blog entry. I played about three or four games. Every time I played I topped the Alliance ladder, and around half the time I topped the combined ladder. Of course, the ladder ranks you by number of killing blows, which is not a true indication of everyone's contributions (boy did I recognise that when I PvP'd as a priest). We actually won one of our games as well -- which in my books is a huge achievement as the Horde generally dominate PvP. Especially WSG. Below are a few highlights:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;When&lt;/b&gt; running over to the Horde base I saw a rogue off in the distance heading towards ours. As I got closer he stealthed. I took a guess at where he might be and tossed some dynamite there. He was barely in the blast radius, the damage he took causing him to unstealth. I charged him and it was all over shortly :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I&lt;/b&gt; was involved in a side-skirmish one on one with a hunter in my base. His stupid pet was gnawing away at me but I ignored it. It was fairly evenly matched, yet as we both started getting low on health my hamstring debuff ran out on him (oops), so he wing clipped me and started to run off (his pet still drawing me closer to death). Realising a chase would eventually end in my death, I cocked my rifle and shot him in the back. He fell down face first into the ground, his pet disappearing. I was quite lucky as he still had 5% health. The shot barely killed him.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;B&lt;/b&gt;oth teams held each others flag. The Horde carrier was hiding somewhere unknown. At about the same time, someone found the Horde carrier (a rogue) but was by himself, losing the battle, and our flag carrier died, returning the Horde flag back to its base. The player who lost to the rogue was smart enough to notify us and click the map, indicating the hiding spot. Using tab selection I managed to find the rogue and take him out, returning our flag.&lt;br /&gt;&lt;br /&gt;I proceeded back to the flag room and grabbed the returned Horde flag and started running back to our base. By then I had a few helpers with me, and it wasn't long before we ran into what seemed like the entire Horde team heading back just to kill me. There was an epic battle where I was running around like crazy, managing to take out people along with my friends, with a druid and priest managing to drop heals on me too! Eventually we thinned them down and I made a run for it, drinking a health potion to increase my chances. By the time I got back to the base our flag had been taken, so I had to camp. The druid stayed with me for a while, but then went off to help get a return.&lt;br /&gt;&lt;br /&gt;It was tempting to drop concentration, but I kept at it (camping is hard because it's boring). Eventually a lone Horde rogue unstealthed behind me and started getting stuck into me. I immediately started running around him in circles so he wouldn't be able to see my back very well. He got my health down quite low but I took him out. I then requested some backup and the druid and a hunter came back for me.&lt;br /&gt;&lt;br /&gt;Soon after our team managed to return our flag, but some horde were reading to grab it again! As soon as it was returned I ran a few metres to cap it, but there is a slight delay (as I discovered). I need to stand there for a few seconds before it will register as a cap. As I was standing there a Horde player ran through me and grabbed our flag right from under our nose! Reinforcements came in just in time to help us take him down, but another Horde grabbed the flag in the exact same fashion straight after! Eventually we got on top of things and I was able to make my first WSG cap!&lt;br /&gt;&lt;br /&gt;We started that game losing 0-1 but came back to win 3-1. My cap was our number 2. The game was lengthy -- I think I got over 100 honourable kills in that one alone.&lt;br /&gt;&lt;br /&gt;It's almost tempting to leave this character at level 19 just for low-level BG PvP purposes! Suffice to say, I have discovered warriors are fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113023347851301428?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113023347851301428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113023347851301428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113023347851301428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113023347851301428'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/10/wow-adventures-volume-mcxvii.html' title='WoW Adventures Volume MCXVII'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-113015917976405581</id><published>2005-10-24T23:05:00.000+10:00</published><updated>2005-10-24T23:06:19.770+10:00</updated><title type='text'>You know you're good when...</title><content type='html'>&lt;table width=350 align=center border=0 cellspacing=0 cellpadding=2&gt;&lt;tr&gt;&lt;td bgcolor="#CDDEFF" align=center&gt;&lt;font face="Georgia, Times New Roman, Times, serif" style='color:black; font-size: 14pt;'&gt;&lt;b&gt;You Passed 8th Grade Math&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="#EBF2FF"&gt;&lt;center&gt;&lt;img src="http://images.blogthings.com/couldyoupasseighthgrademathquiz/passed.jpg" height="100" width="100"&gt;&lt;/center&gt;&lt;font color="#000000"&gt;&lt;br /&gt;Congratulations, you got 9/10 correct!&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div align="center"&gt;&lt;a href="http://www.blogthings.com/couldyoupasseighthgrademathquiz/"&gt;Could You Pass 8th Grade Math?&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;9/10??!?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-113015917976405581?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/113015917976405581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=113015917976405581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113015917976405581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/113015917976405581'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/10/you-know-youre-good-when.html' title='You know you&apos;re good when...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112979746231256596</id><published>2005-10-20T18:35:00.000+10:00</published><updated>2005-10-20T18:37:42.316+10:00</updated><title type='text'>I am teh Yoda!</title><content type='html'>&lt;p style="text-align:center;"&gt;&lt;a href="http://www.tk421.net/character/"&gt;&lt;img src="http://www.tk421.net/character/yoda.jpg" width="199" height="313" style="border-color:#f8f8ff;" border="2" alt="Which Fantasy/SciFi Character Are You?" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Yay!&lt;br /&gt;&lt;br /&gt;In other news, I've been enjoying and participating in Pete's &lt;a href="http://whydontyoublogaboutit.com/"&gt;Why Don't You Blog About It?&lt;/a&gt; site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112979746231256596?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.tk421.net/character/' title='I am teh Yoda!'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112979746231256596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112979746231256596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112979746231256596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112979746231256596'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/10/i-am-teh-yoda.html' title='I am teh Yoda!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112772082996594485</id><published>2005-09-27T19:02:00.000+10:00</published><updated>2005-09-27T19:53:48.083+10:00</updated><title type='text'>How to get Java RMI going on Mac OS X and Linux</title><content type='html'>For a subject I'm doing at uni I need to make heavy use of Java RMI. I had a lot of problems getting it running, even when following the simplest tutorials so I thought I would write down how I eventually got it running.&lt;br /&gt;&lt;br /&gt;This assumes you're running Java 1.5, which is important as there were significant changes to Java RMI between 1.4 and 1.5.&lt;br /&gt;&lt;br /&gt;If you don't have Java 1.5 and you're running OS X 10.4 (Tiger), here's a brief run down on how to get it going:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Head over to &lt;a href="http://www.apple.com/support/downloads/java2se50release1.html"&gt;Apple's Java 1.5 download page&lt;/a&gt; and download the DMG.&lt;/li&gt;&lt;li&gt;Open the DMG, run the package inside and follow the instructions.&lt;/li&gt;&lt;li&gt;While 1.5 is now installed, it has not overwritten the existing 1.4 stuff that comes with OS X 10.4. It also won't be the default. To make it the default you need to change a symlink. Open up Terminal and change the "CurrentJDK" symlink to the 1.5 install in "/System/Library/Frameworks/JavaVM.framework/Versions". That is: &lt;pre&gt;cd /System/Library/Frameworks/JavaVM.framework/Versions;&lt;br /&gt;sudo rm CurrentJDK;&lt;br /&gt;sudo ln -s 1.5 CurrentJDK;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For &lt;a href="http://www.gentoo.org/"&gt;Gentoo Linux&lt;/a&gt; the 1.5 JDK is actually masked for compatibility reasons. I had no problems unmasking and installing it (i.e. my other Java applications still run OK) but your mileage may vary. Here are the steps:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# echo "&gt;=dev-java/sun-jdk-1.4.99" &gt;&gt; /etc/portage/package.unmask&lt;br /&gt;# emerge sun-jdk&lt;br /&gt;(follow instructions given by the ebuild)&lt;br /&gt;# java-config -S sun-jdk-1.5.0.05&lt;br /&gt;# /usr/sbin/env-update &amp;&amp; source /etc/profile&lt;/pre&gt;(The '#' shell prompt indicates it's the root user.)&lt;br /&gt;&lt;br /&gt;For &lt;a href="http://www.ubuntulinux.org/"&gt;Ubuntu Linux&lt;/a&gt; I followed the instructions at &lt;a href="https://wiki.ubuntu.com/RestrictedFormats#java"&gt;https://wiki.ubuntu.com/RestrictedFormats#java&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now that the 1.5 JDK is installed, let's get a quick, simple (and yes, probably dirty) example going just to prove to yourself that Java RMI can actually work.&lt;br /&gt;&lt;br /&gt;Head over to &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/rmi/hello/hello-world.html"&gt;Sun's "Getting Started Using Java RMI"&lt;/a&gt; page. Download the three Java files it lists up the top into a directory. Now it's probably quickest to just show shell actions:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ cd /where/i/download/the/java/files&lt;br /&gt;$ ls&lt;br /&gt;Client.java  Hello.java  Server.java&lt;br /&gt;$ mkdir classes&lt;br /&gt;$ java -d classes/ *.java&lt;br /&gt;$ tree&lt;br /&gt;.&lt;br /&gt;|-- Client.java&lt;br /&gt;|-- Hello.java&lt;br /&gt;|-- Server.java&lt;br /&gt;`-- classes&lt;br /&gt;    `-- example&lt;br /&gt;        `-- hello&lt;br /&gt;            |-- Client.class&lt;br /&gt;            |-- Hello.class&lt;br /&gt;            `-- Server.class&lt;br /&gt;&lt;br /&gt;3 directories, 6 files&lt;br /&gt;$ cd classes/&lt;/pre&gt;&lt;br /&gt;Now at this point, bring up three terminals. We need to run the RMI registry in one, the object server in another and an object client.&lt;br /&gt;&lt;pre&gt;$ rmiregistry&lt;/pre&gt;&lt;br /&gt;It is of utmost importance that this command is run &lt;b&gt;in the same directory the package is in&lt;/b&gt;, (classes/ in our case). This problem had me confuzzled for hours and hours, as the server would just return vague "class not found" errors.&lt;br /&gt;&lt;br /&gt;Now fire up the server in another shell.&lt;br /&gt;&lt;pre&gt;$ java example.hello.Server&lt;br /&gt;Server ready&lt;/pre&gt;&lt;br /&gt;Finally, run the client in its own shell.&lt;br /&gt;&lt;pre&gt;$ java example.hello.Client&lt;br /&gt;response: Hello, world!&lt;/pre&gt;&lt;br /&gt;Now wipe your brow and go and get some pizza ;)&lt;br /&gt;&lt;br /&gt;Some things to note: Only once the RMI registry has been started can the server run (as it will attempt to register an object with it). Similarly, this example code doesn't check whether the object has already been registered with it, so if you try and run the server a second time without restarting the RMI registry it will produce an error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112772082996594485?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112772082996594485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112772082996594485' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112772082996594485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112772082996594485'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/how-to-get-java-rmi-going-on-mac-os-x.html' title='How to get Java RMI going on Mac OS X and Linux'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112772687232573882</id><published>2005-09-26T19:24:00.000+10:00</published><updated>2005-11-09T00:53:02.980+11:00</updated><title type='text'>Windows: window focus changing with mouse over</title><content type='html'>I don't normally use Windows, so it's rare for me to post tips on it. However, a friend of mine figured out a way to make my Windows experience a bit more like my Linux experience (well, the way I have it set up anyway).&lt;br /&gt;&lt;br /&gt;Rather than clicking a window to bring it into focus, you can hack the registry to have a the position of the mouse cursor change the focus of a window. That is, the window your mouse cursor is hovering over will become the one in focus.&lt;br /&gt;&lt;br /&gt;I'll let my friend explain how to do it:&lt;br /&gt;&lt;br /&gt;19:19 &amp;lt;@wabz&amp;gt; wohooo&lt;br /&gt;19:19 &amp;lt;@wabz&amp;gt; windows has the feature, its just not in control panel&lt;br /&gt;19:20 &amp;lt;@wabz&amp;gt; if you want to do it, add 0x0001 to userpreferencesmask in hkcu\control panel\desktop&lt;br /&gt;&lt;br /&gt;So if your UserPreferencesMask is b0 32 05 80 just change it to b&lt;b&gt;1&lt;/b&gt; 32 05 80. If you don't much like registry editing, you can download the &lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx"&gt;TweakUI&lt;/a&gt; powertoy and enable the "Activation follows mouse (X-Mouse)" option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112772687232573882?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112772687232573882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112772687232573882' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112772687232573882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112772687232573882'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/windows-window-focus-changing-with.html' title='Windows: window focus changing with mouse over'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112771850281652027</id><published>2005-09-26T16:34:00.000+10:00</published><updated>2005-09-26T17:09:06.170+10:00</updated><title type='text'>How to waste time in one easy step</title><content type='html'>I came across a problem yesterday while modifying a &lt;a href="http://www.joomla.org/"&gt;Joomla!&lt;/a&gt; template. The template I was making was kind of a hybrid of two different ones. One of them started like so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That is, the XML declaration followed by the doctype. The other template began:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So the doctype and XML declaration were switched. Each template then proceeded to make heavy use of CSS and a mix of &amp;lt;div&amp;gt;'s and &amp;lt;table&amp;gt;'s in a complex layout.&lt;br /&gt;&lt;br /&gt;Once I had finished the new hybrid template I then encountered every web developers worst (yet most common) nightmare. The template looked fine in Firefox, Opera and other sane browsers but not in ye olde Internet Explorer. The anomaly it caused is hard to describe. It was a sort of spilling in the rightmost &amp;lt;div&amp;gt; column.&lt;br /&gt;&lt;br /&gt;To cut a long story short, I spent hours trying to fix the template and only after I had gone through every piece of the HTML body and CSS did I realised that all that was needed was to switch the doctype and XML declaration so that the XML declaration came first! I had used the template where it came second by chance (where it had no adverse effect).&lt;br /&gt;&lt;br /&gt;Back when I started web design in the mid-&gt;late 90s Internet Explorer 4 had a much more complete CSS implementation than Netscape 4, and was by far a much more enjoyable browser to make sites for. These days the exact opposite is true, and IE is an absolute headache. Any IE user should do themselves a favour and &lt;a href="http://www.mozilla.org/"&gt;download Mozilla Firefox right away!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112771850281652027?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112771850281652027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112771850281652027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112771850281652027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112771850281652027'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/how-to-waste-time-in-one-easy-step.html' title='How to waste time in one easy step'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112714517904606922</id><published>2005-09-20T01:34:00.000+10:00</published><updated>2005-09-20T02:06:19.983+10:00</updated><title type='text'>Duh.</title><content type='html'>Some people think I'm smart (although I vehemently disagree, and will often volunteer evidence to the contrary). Having been at uni for a while has obviously put me amongst (actual) smart people. I have been thinking about what things make someone smart. Recently I have liked the idea that someone's intelligence is purely a measure of their ability to focus on a problem. More recently I have been thinking that in addition to focus (what is 'focus' exactly anyway?) it may also be the amount of distinct chunks you can work with in your mind at the same time. After all, if you can only focus on one single chunk you won't get very far.&lt;br /&gt;&lt;br /&gt;I've noticed that smart people often tend to be perfectionists. Perhaps not perfectionistic about everything they do, but certainly with at least a handful of things. For example, I have a friend who is an &lt;a href="http://en.wikipedia.org/wiki/Audiophile"&gt;audiophile&lt;/a&gt;. At this very moment he is meticulously sorting and annotating the metadata of his outrageously large music collection. He has a keen interest in sound compression algorithms, and will sometimes even use &lt;a href="http://en.wikipedia.org/wiki/FLAC"&gt;a lossless algorithm&lt;/a&gt; to encode his music with.&lt;br /&gt;&lt;br /&gt;Like me, he also is very careful about his spelling and can never knowingly leave a spelling/grammar mistake in a piece of writing, even when it's in short, informal communications like IRC or email. Another friend I made back in first year (who was much smarter than I) put it quite succinctly when he said "I just hate not knowing how to do things" (this was in reference to studying for an exam for a university subject).&lt;br /&gt;&lt;br /&gt;I hypothesise that perfectionism is actually a notable factor in intelligence (or, at least, being smart). A perfectionist does not like leaving a job half-done. If something is taught to them that they do not fully understand, their perfectionist tendencies will drive them to try and complete the puzzle -- just for the sake of completeness.&lt;br /&gt;&lt;br /&gt;I think this tendency/attitude has its disadvantages though. Firstly there is the possibility of wasting time on useless things (such as correcting a spelling mistake in an instant message sent to a friend who could understand the original message easily anyway).&lt;br /&gt;&lt;br /&gt;Also, since a perfectionist has a desire to do a complete, whole-hearted job of a task, there may eventually be less of a desire to take on certain large tasks. That is, there is an attitude of "I don't even want to start this project because I know that once I've started it will take a lot (possibly an indeterminable amount) of time to finish it to the standard I would like". Finishing it to a lesser standard is not an option! I have found this happen in a few projects I've needed to do, and I see some of my friends suffer under it too. I think this is at least part of the attitude of procrastination rampant among uni students and postgrad students in particular.&lt;br /&gt;&lt;br /&gt;Sometimes the scenario works out to be that the only way to stop the project from taking over your life for months is to do no work on it until the deadline is in two weeks. Then the project has only occupied two weeks of your time, and the excuse that you weren't able to do it to the best of your ability is due to 'external factors' outside your control (namely the deadline).&lt;br /&gt;&lt;br /&gt;Finally, I think it can also lead to being overworked, leaving the perfectionist burnt-out and unmotivated. This could possibly spell the end of a person's perfectionist attitude in that particular area (such as studying at university).&lt;br /&gt;&lt;br /&gt;Perfectionism isn't like Force-sensitivity -- it comes in varying degrees. Perhaps being *really* smart is knowing when to perfecct something further or when to just let it go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112714517904606922?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112714517904606922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112714517904606922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112714517904606922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112714517904606922'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/duh.html' title='Duh.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112712709576976180</id><published>2005-09-19T20:51:00.000+10:00</published><updated>2005-09-20T01:58:31.800+10:00</updated><title type='text'>Reason #924 Night Elf Priests Are In Trouble</title><content type='html'>One of the things I enjoy about World of Warcraft is that the game is constantly being tweaked and improved (well, usually the changes they make are improvements).&lt;br /&gt;&lt;br /&gt;My main character in the game is of the &lt;a href="http://www.blizzard.com/wow/townhall/classes.shtml#priest"&gt;priest class&lt;/a&gt;, more of a healer than a damage-doer. Along with choosing a class, you can also choose what race your character is. The race I chose was &lt;a href="http://www.blizzard.com/wow/townhall/nightelves.shtml"&gt;Night Elf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, all priests in the game have the same spells at their disposal (more or less). One exception to this are two spells called "racial spells". For example, a Human priest has the two racial spells called &lt;a href="http://www.wowwiki.com/Feedback"&gt;Feedback&lt;/a&gt; and &lt;a href="http://www.wowwiki.com/Desperate_Prayer"&gt;Desperate Prayer&lt;/a&gt;. A Night Elf priest does not have these spells, but instead has &lt;a href="http://www.wowwiki.com/Starshards"&gt;Starshards&lt;/a&gt; and &lt;a href="http://www.wowwiki.com/Elune's_Grace"&gt;Elune's Grace&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Just before I get to the point of this post, let me explain one more thing. In order for &lt;a href="http://www.blizzard.com/"&gt;Blizzard&lt;/a&gt; (the makers of the game) to try and achieve a good balance between players they have forums where Blizzard representatives listen to suggestions from players. There are some designated Blizzard people that are in charge of 'looking after' certain classes. Their job is to play the character class in many races, talent configurations, and situations -- this knowing the class inside-and-out. Unfortunately for priests, our guy is &lt;a href="http://forums.worldofwarcraft.com/thread-search.aspx?Author=Eyonix&amp;Cluster=Wow"&gt;Eyonix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Eyonix is renowned for ignoring the priest class, and we have been forced to sit back and watch our abilities grow stale compared with the improvements being brought in to other classes. As priests aren't primarily damage-doers it is probably harder to tell that we're falling behind, but anyone who actually plays a priest regularly can surely tell.&lt;br /&gt;&lt;br /&gt;In addition, Night Elf priests have an even harder job than priests in general because their racial spells are very, very poor in comparison with those of all other races. &lt;a href="http://www.wowwiki.com/Elune's_Grace"&gt;Elune's Grace&lt;/a&gt; in particular is virtually useless. Priests have been petitioning for a very long time to have it replaced or modified in such a way as to make it useful in at least &lt;i&gt;some&lt;/i&gt; situations.&lt;br /&gt;&lt;br /&gt;This feeling was compounded for me today after reading &lt;a href="http://forums.worldofwarcraft.com/thread.aspx?fn=wow-priest&amp;t=345525"&gt;this thread&lt;/a&gt; in the official forums. For some reason threads don't seem to last very long there so I will reproduce the relevant bits:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Player:&lt;/b&gt; Does anyone else think [Elune's Grace] should be fixed?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Eyonix:&lt;/b&gt;  Admittedly, I've not used Elune's Grace much at all, as the ranged damage it prevents is seemingly less significant when compared to what my Renew spell or &lt;b&gt;Healing Wave&lt;/b&gt; will restore - and with a worse mana to health efficiency ratio. I will try and test the ability out in more situations where it could be taken advantage of, and perhaps ask the class designers their particular thoughts on the ability.&lt;br /&gt;&lt;br /&gt;(Emphasis added by me.)&lt;br /&gt;&lt;br /&gt;OK, so this sounds great. Maybe Eyonix is actually going to do something that benefits priests for a change. Wait just a second. Healing Wave? I'm an experienced priest yet I don't recognise this spell.  Oh! I know why! &lt;a href="http://www.wowwiki.com/Healing_Wave"&gt;Healing Wave&lt;/a&gt; is a &lt;a href="http://www.blizzard.com/wow/townhall/classes.shtml#shaman"&gt;shaman&lt;/a&gt; spell!!&lt;br /&gt;&lt;br /&gt;If our representative cannot even remember the most basic priest spell (called, unsurprisingly, &lt;a href="http://www.wowwiki.com/Heal"&gt;Heal&lt;/a&gt;) what chance do we have?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112712709576976180?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112712709576976180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112712709576976180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112712709576976180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112712709576976180'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/reason-924-night-elf-priests-are-in.html' title='Reason #924 Night Elf Priests Are In Trouble'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112556835419589160</id><published>2005-09-01T19:36:00.000+10:00</published><updated>2005-09-13T01:29:34.913+10:00</updated><title type='text'>Macquarie University Linux Seminar</title><content type='html'>I'm organising a Linux seminar through the &lt;a href="http://mitsociety.blogspot.com/"&gt;Macquarie IT Society&lt;/a&gt;. You can find the details in &lt;a href="http://mitsociety.blogspot.com/2005/08/event-detail-linux-seminar-software.html"&gt;the relevant blog post&lt;/a&gt; and &lt;a href="http://static.flickr.com/33/39159674_9b2628f813_o.png"&gt;the poster I gimpped up&lt;/a&gt; (~150KiB).&lt;br /&gt;&lt;br /&gt;We also got &lt;a href="http://www.smh.com.au/news/breaking/movement-on-the-software-liberation-front/2005/09/01/1125302672215.html"&gt;a mention in the news&lt;/a&gt;! Very cool!&lt;br /&gt;&lt;br /&gt;A big thanks to Pia, Jeff and the MITS guys for helping out! Hopefully things will go smoothly and we'll get a decent turn-out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112556835419589160?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mitsociety.blogspot.com/2005/08/event-detail-linux-seminar-software.html' title='Macquarie University Linux Seminar'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112556835419589160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112556835419589160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112556835419589160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112556835419589160'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/09/macquarie-university-linux-seminar.html' title='Macquarie University Linux Seminar'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112469129286081085</id><published>2005-08-22T16:14:00.000+10:00</published><updated>2005-09-01T19:36:11.710+10:00</updated><title type='text'>Official, Accurate Internet Tests</title><content type='html'>Well maybe not official, or accurate... but they're certainly on the Internet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nerdtests.com/ft_cg.php?im"&gt;&lt;br /&gt;&lt;img src="http://www.nerdtests.com/images/ft/cg.php?val=6808" alt="My computer geek score is greater than 90% of all people in the world! How do you compare? Click here to find out!"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cyborgname.com"&gt;&lt;img src="http://www.cyborgname.com/webimages/handyvac-MICHAEL.png" width="240" height="180" alt="Mechanical Intelligent Construct Hardwired for Assassination and Efficient Learning" border="0"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112469129286081085?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112469129286081085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112469129286081085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112469129286081085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112469129286081085'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/08/official-accurate-internet-tests.html' title='Official, Accurate Internet Tests'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112413099139152829</id><published>2005-08-16T04:25:00.000+10:00</published><updated>2005-08-16T04:36:31.396+10:00</updated><title type='text'>Fight fire with fire</title><content type='html'>I saw &lt;a href="http://www.bluesecurity.com/"&gt;these guys&lt;/a&gt; covered on &lt;a href="http://www.slashdot.org/"&gt;Slashdot&lt;/a&gt; today. I remember a &lt;a href="http://www.theregister.co.uk/2004/11/26/lycos_europe_spam_blitz/"&gt;similar tactic&lt;/a&gt; used last year that didn't last too long for some reason, but was apparently quite effective.&lt;br /&gt;&lt;br /&gt;There are &lt;a href="http://www.bluesecurity.com/solutions/ethics.asp"&gt;ethical issues&lt;/a&gt; on DDoSing spammers, but having thought about it for six seconds, I don't have a problem with it -- assuming you're using your own bandwidth to do it and not your zombie army of trojaned Windows drones :)&lt;br /&gt;&lt;br /&gt;Speaking of Windows, they don't have other versions of the software available, but they have provided the source code (good on them). Hopefully we should start seeing some meaningful ports soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112413099139152829?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.bluesecurity.com/' title='Fight fire with fire'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112413099139152829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112413099139152829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112413099139152829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112413099139152829'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/08/fight-fire-with-fire.html' title='Fight fire with fire'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112368528469437143</id><published>2005-08-11T00:40:00.000+10:00</published><updated>2005-08-11T00:48:04.696+10:00</updated><title type='text'>Mac laptop users -- switch to Linux!</title><content type='html'>OK, so maybe people won't be converting in droves. My good friend &lt;a href="http://ctd.id.au/"&gt;ctd&lt;/a&gt; (who I have had the pleasure of actually meeting a couple of times) just &lt;a href="http://ctd.id.au/index.php/2005/08/10/airport-extreme-under-linux/"&gt;discovered&lt;/a&gt; that some genius has managed to &lt;a href="http://forums.gentoo.org/viewtopic-t-365647.html"&gt;get his airport extreme wireless card working under Linux&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;This has been the major drawback of running Linux on a modern G4-based Mac laptop for some time. The general rumour is that the Airport Extreme cards manufactured by Broadcom are capable of military-grade wireless stuff (whatever that is). Anyway, they're not to keen to release specs or open drivers for the card, so it has only ever worked on OS X, until now.&lt;br /&gt;&lt;br /&gt;While the hack seems pretty experimental, most people who try seem to be having success. Now, can I be bothered going back to a dual-boot system... ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112368528469437143?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.gentoo.org/viewtopic-t-365647.html' title='Mac laptop users -- switch to Linux!'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112368528469437143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112368528469437143' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368528469437143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368528469437143'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/08/mac-laptop-users-switch-to-linux.html' title='Mac laptop users -- switch to Linux!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112368206725724841</id><published>2005-07-21T20:18:00.000+10:00</published><updated>2005-08-10T23:54:27.256+10:00</updated><title type='text'>Ping!</title><content type='html'>It's come to my attention that I haven't really been keeping this thing updated lately. So here are some things I've been up to lately.&lt;br /&gt;&lt;br /&gt;I updated &lt;a href="http://advogato.org/person/miknight/"&gt;my Advogato profile&lt;/a&gt;. I'm sure it will come in handy one day.&lt;br /&gt;&lt;br /&gt;I have been struggling with (what I believe to be) a bug in glibc where asking for strict ANSI mode gives back invalid code! (More on this later.)&lt;br /&gt;&lt;br /&gt;I submitted/fixed &lt;a href="http://bugs.gentoo.org/show_bug.cgi?id=99401"&gt;a bug with the wmium package in Gentoo&lt;/a&gt; but accidentally submitted the bug as being a `blocker' (i.e. highest severity), when I intended it to be simply a normal bug. Woopsie!&lt;br /&gt;&lt;br /&gt;I've been slowly getting through some lisp tutorials as I find time, but am still far from competent.&lt;br /&gt;&lt;br /&gt;Stay tuned for more details on my glibc tales!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112368206725724841?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112368206725724841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112368206725724841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368206725724841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368206725724841'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/07/ping.html' title='Ping!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112368181066399128</id><published>2005-02-20T21:22:00.000+11:00</published><updated>2005-08-10T23:55:36.706+10:00</updated><title type='text'>Lisp Ahoy!</title><content type='html'>Well after much beating around the bush I finally whipped up my own Lisp function that does something:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;(defun mkreverse (string)&lt;br /&gt; (unless (string= "" string)&lt;br /&gt;     (let ((tmp (char string 0)))&lt;br /&gt;           (mkreverse (subseq string 1))&lt;br /&gt;           (format t (string tmp)))))&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm quite sure there are better ways to print out strings in reverse (considering there's even a built in REVERSE function in Common Lisp) but it's a start.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112368181066399128?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112368181066399128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112368181066399128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368181066399128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368181066399128'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/02/lisp-ahoy.html' title='Lisp Ahoy!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112368152055312601</id><published>2005-02-06T17:17:00.000+11:00</published><updated>2005-08-10T23:48:46.370+10:00</updated><title type='text'>Google's in the Stone Age?</title><content type='html'>I was having a read of &lt;a href="http://www.theregister.co.uk/2005/02/03/cell_analysis_part_two/"&gt;this article&lt;/a&gt; by Andrew Orlowski. During the course of the article he mentioned:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;By the by, you can begin to see Linux has such appeal to Asian manufacturers. It's not because it's particularly good - it's not. In computer science research it's Stone Age technology.&lt;/blockquote&gt;&lt;br /&gt;On the very next page he proceeds to say:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Sun too has complex, multithreaded machines in the pipelines, but only Sun, or maybe Google, has an OS that can bounce processes around the world.&lt;/blockquote&gt;&lt;br /&gt;Oops, &lt;a href="http://www.hpworld.com/hpworldnews/hpw009/02nt.html"&gt;what OS does Google run?&lt;/a&gt; -- Oh, it appears to be Linux!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112368152055312601?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.theregister.co.uk/2005/02/03/cell_analysis_part_two/' title='Google&apos;s in the Stone Age?'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112368152055312601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112368152055312601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368152055312601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368152055312601'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/02/googles-in-stone-age.html' title='Google&apos;s in the Stone Age?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15289394.post-112368118367639353</id><published>2005-02-03T19:40:00.000+11:00</published><updated>2005-08-10T23:47:06.146+10:00</updated><title type='text'>Another reason not to trust Microsoft</title><content type='html'>&lt;a href="http://mike.nerdforce.net/files/funny/mappoint.png"&gt;Enough said :)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15289394-112368118367639353?l=miknight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mike.nerdforce.net/files/funny/mappoint.png' title='Another reason not to trust Microsoft'/><link rel='replies' type='application/atom+xml' href='http://miknight.blogspot.com/feeds/112368118367639353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15289394&amp;postID=112368118367639353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368118367639353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15289394/posts/default/112368118367639353'/><link rel='alternate' type='text/html' href='http://miknight.blogspot.com/2005/02/another-reason-not-to-trust-microsoft.html' title='Another reason not to trust Microsoft'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04065955641878262249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos21.flickr.com/32893795_913f1b4e56_o.png'/></author><thr:total>0</thr:total></entry></feed>
