<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  >

 <channel>
  <title><![CDATA[Natulte::Blog]]></title>
  <link>http://natulte.net/index.php/blog</link>
  <description><![CDATA[]]></description>
  <copyright>Copyright 2008, David Anderson</copyright>
  <language>fr</language>
  <generator>Zwe v2.6-angela (alpha), http://zwe.bulix.org</generator>
  <pubDate>Mon, 29 Dec 2008 06:43:36 +0100</pubDate>
  <dc:creator>David Anderson</dc:creator>
  <item>
   <title><![CDATA[Levels of abstraction]]></title>
   <link>http://natulte.net/index.php/blog/549</link>
   <description>
I promise, I can explain. It started out rather simply, then got a little out of hand. A week or so later, I'm still having an immense amount of fun.

It all started when Google gave me an awesome Christmas present: An HTC Dream. It's a very shiny mobile phone, and what's more, it's an unlocked developer edition. It's hacking time!

This is where things get a bit complicated. Lemme take you through the reasoning.My first idea when I saw this beast was to try to get emulators running on it. A phone is nice, but a phone that can play vintage games is even better. I decided on playing with the Sega Genesis first, as I have rather fond memories of Sonic the Hedgehog.

First obstacle: Android (the open source OS that Google develops) currently can run only Java code. There is currently no open source Genesis emulator written in Java. Most of them are written in C, or in extreme cases, even in x86 assembler. There is currently no official way to execute native code on the android phone. I'd like to make this software available to everyone.

I therefore need to write a Genesis emulator in Java.

Okay, that should be simple. The Genesis is a relatively old console, so it can't be too elaborate. I mean, it's no PS3. All I need is an emulator for the CPU, a decoder for the ROM format, and some audio and graphics hookups within Android, and I should be good to go.

Well, first, the Genesis has three processors. A Motorola 68000 CPU, a Z80 sound processor, and a custom made graphics processor. Let's start with the 68k CPU. Apparently, there is no well known open source Java emulator for the 68k.

I therefore need to write a Motorola 68k emulator in Java.

But Java sucks. I mean, it's obviously a successful language, but I find no pleasure at all programming in Java. It is pure pain without an IDE on the level of Eclipse or Netbeans, and those IDEs aggravate me in various ways. The the the language language language is is is way way way too too too verbose verbose verbose (verbose verbose).

Plus, after consulting the 68k specs and sampling a few C implementations, it looks like an extremely repetitive task: most opcodes have around 20 variants, depending on addressing modes and various flag bits. It would be very tedious to implement this by hand, not only because it'd be in Java, but because it'd be even more mind numbing and uninteresting. However, the kinds of variants that are needed are quite amenable to be described at a high level, leaving the repetitive task of actual implementation to a program. And I can use a language that I enjoy for that, say, Python.

I therefore need to write a Motorola 68k emulator generator in Python.

After a bit of prototyping, I came to the conclusion that implementing this in Python would also be rather tedious, for a variety of reasons. First, I started off badly by writing a generator that goes straight from high level description language to a Java source code string, mushing several levels of abstraction together. Second, the description needed to generate the variants quickly lead me to combinatorial explosions, or to independent components that began interacting with each other in hilarious ways. Not good.

Plus, one day, when Android does have a supported way of running native code, I'd probably want an emulator in C or C++, running on the CPU directly, instead of under the Dalvik virtual machine. At which point all my work will have been for nothing.

I therefore need something of an emulator compiler, that parses the high level description into an execution tree for the opcode implementations, which a code generator then translates into a variety of output languages, such as Java, C++ or Brainfuck.

Python is nice, but I don't think that writing compilers is one of its fortes, despite what the PyPy folks appear to think. Manipulating the code representations is cumbersome at best, and the divide between the living Python code and the dead data it manipulates is rather wide. Manipulating code as data and vice versa is one of the often described merits of the Lisp family of programming languages. I've been wanting to get back to Common Lisp as a language and poke around with it more, and it feels like the ideal language in which to build a compiler. What could be more code-as-data-as-code than a program that takes apart a description of a program and puts it back together again in another form?

I therefore need to write an m68k emulator compiler in Common Lisp, at first targeting the Java programming language, and later possibly other languages.

And that is how, a week after Google gives me a mobile phone, I find myself writing Common Lisp code, for a compiler that compiles a lisp-like language into Java code, that will be compiled into Dalvik VM bytecode, running on an ARM-based embedded system, which when executed will emulate a Motorola 68000 CPU.

I feel like I've just had a Wikipedia attack. You know, that thing where you go to Wikipedia to look up something very specific, say how Tesla coils can be used to play music, and end up three hours later reading through an analysis of 14th century persian battle tactics, with no idea how you got there. That's kinda how I felt when I came up for air yesterday and looked back. "So, I got a phone... And now I'm writing a compiler... I'm pretty sure I have a good reason..."

Oh, and the emulator compiler is starting to work. I was very rusty in Common Lisp, but in a couple of days of hacking and prototyping, I'm starting to get somewhere. I can already generate the implementation of the simplest variant of the 68k ADD opcode. The "source" looks like this, with comments added



(instruction
   ;; Instruction name, with variant information.
   "add_dreg_to_dreg"

   ;; The description of the meaning of the 16 bits of the opcode.
   ((:literal 4 #b1101)      ; 4 constant bits, with the given binary value
    (output-register 3 dest) ; The output register, whose number is coded
                             ; over 3 bits. Its value is available in the
                             ; 'dest' variable.
    (:literal 6 #010000)     ; More constant bits, describing the addressing mode.
    (input-register 3 src))  ; Input register, similar declaration to dest.

   ;; How to perform this operation, in a subset of Common Lisp.
   (setf dest (+ src dest)))




The above instruction definition produces an opcode object that contains two things: information for the instruction decoder, so that it can identify this instruction, and the intermediate representation of the implementation of that instruction:



;; The constant bit values in the opcode, and the mask to test them,
;; for the instruction decoder.
(debug-print-opcode-mask the-above-opcode-object)

--&gt; Output: 1101---010000---

;; The intermediate representation of the implementation.
(opcode-ast the-above-opcode-object)

--&gt; (LET ((SRC (REGISTER-VALUE :DATA
                               (VM-OPCODE-BITS 3 0)))
          (DEST (WRITABLE-REGISTER-VALUE :DATA
                                         (VM-OPCODE-BITS 3 9))))
      (SETF DEST (+ DEST SRC)))




This opcode can then be fed to the Java code generator, to produce the output implementation:



(java-gen-opcode the-above-opcode-object)

--&gt; public static void op_add_dreg_to_dreg(unsigned short opcode) {
      unsigned long src = mDataRegisters[(opcode &gt;&gt; 0) &amp; 0x7];
      unsigned long dest = mDataRegisters[(opcode &gt;&gt; 9) &amp; 0x7];
      dest = dest + src;
      mDataRegisters[(opcode &gt;&gt; 9) &amp; 0x7] = dest;
    }




There is still a lot to be done. For one, the ADD opcode is supposed to update the CPU's state flags with information about the result of the addition. After that, the addressing modes other than to/from a numbered register must be supported. Implementing more opcodes will surely bring more things that need to be implemented.

Once a solid base is laid, a higher-still level of description must be layered on, so that all the variants of an instruction are produced from a single implementation definition. Once all that is done, a C++ backend would be nice. And why not attempt to generalize the compiler infrastructure, so as to support the compilation of emulators other than m68k CPUs?

By the time I get anywhere near that, I suspect that it will have become possible to easily write and release native code for Android, making all of my efforts unnecessary. But I don't care, this is damn fun!

Some people are of the opinion that I should get my head examined.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Geek]]></category>
   <guid>http://natulte.net/index.php/blog/549</guid>
   <pubDate><![CDATA[Mon, 29 Dec 2008 06:43:36 +0100]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
I promise, I can explain. It started out rather simply, then got a little out of hand. A week or so later, I'm still having an immense amount of fun.</p>
<p>
It all started when Google gave me an awesome Christmas present: An <a href="http://en.wikipedia.org/wiki/Google_phone">HTC Dream</a>. It's a very shiny mobile phone, and what's more, it's an unlocked developer edition. It's hacking time!</p>
<p>
This is where things get a bit complicated. Lemme take you through the reasoning.<br /><br />My first idea when I saw this beast was to try to get emulators running on it. A phone is nice, but a phone that can play vintage games is even better. I decided on playing with the Sega Genesis first, as I have rather fond memories of Sonic the Hedgehog.</p>
<p>
First obstacle: Android (the open source OS that Google develops) currently can run only Java code. There is currently no open source Genesis emulator written in Java. Most of them are written in C, or in extreme cases, even in x86 assembler. There is currently no official way to execute native code on the android phone. I'd like to make this software available to everyone.</p>
<p>
I therefore need to write a Genesis emulator in Java.</p>
<p>
Okay, that should be simple. The Genesis is a relatively old console, so it can't be too elaborate. I mean, it's no PS3. All I need is an emulator for the CPU, a decoder for the ROM format, and some audio and graphics hookups within Android, and I should be good to go.</p>
<p>
Well, first, the Genesis has three processors. A Motorola 68000 CPU, a Z80 sound processor, and a custom made graphics processor. Let's start with the 68k CPU. Apparently, there is no well known open source Java emulator for the 68k.</p>
<p>
I therefore need to write a Motorola 68k emulator in Java.</p>
<p>
But Java sucks. I mean, it's obviously a successful language, but I find no pleasure at all programming in Java. It is pure pain without an IDE on the level of Eclipse or Netbeans, and those IDEs aggravate me in various ways. The the the language language language is is is way way way too too too verbose verbose verbose (verbose verbose).</p>
<p>
Plus, after consulting the 68k specs and sampling a few C implementations, it looks like an extremely repetitive task: most opcodes have around 20 variants, depending on addressing modes and various flag bits. It would be very tedious to implement this by hand, not only because it'd be in Java, but because it'd be even more mind numbing and uninteresting. However, the kinds of variants that are needed are quite amenable to be described at a high level, leaving the repetitive task of actual implementation to a program. And I can use a language that I enjoy for that, say, Python.</p>
<p>
I therefore need to write a Motorola 68k emulator generator in Python.</p>
<p>
After a bit of prototyping, I came to the conclusion that implementing this in Python would also be rather tedious, for a variety of reasons. First, I started off badly by writing a generator that goes straight from high level description language to a Java source code string, mushing several levels of abstraction together. Second, the description needed to generate the variants quickly lead me to combinatorial explosions, or to independent components that began interacting with each other in hilarious ways. Not good.</p>
<p>
Plus, one day, when Android does have a supported way of running native code, I'd probably want an emulator in C or C++, running on the CPU directly, instead of under the Dalvik virtual machine. At which point all my work will have been for nothing.</p>
<p>
I therefore need something of an emulator compiler, that parses the high level description into an execution tree for the opcode implementations, which a code generator then translates into a variety of output languages, such as Java, C++ or Brainfuck.</p>
<p>
Python is nice, but I don't think that writing compilers is one of its fortes, despite what the PyPy folks appear to think. Manipulating the code representations is cumbersome at best, and the divide between the living Python code and the dead data it manipulates is rather wide. Manipulating code as data and vice versa is one of the often described merits of the Lisp family of programming languages. I've been wanting to get back to Common Lisp as a language and poke around with it more, and it feels like the ideal language in which to build a compiler. What could be more code-as-data-as-code than a program that takes apart a description of a program and puts it back together again in another form?</p>
<p>
I therefore need to write an m68k emulator compiler in Common Lisp, at first targeting the Java programming language, and later possibly other languages.</p>
<p>
And that is how, a week after Google gives me a mobile phone, I find myself writing Common Lisp code, for a compiler that compiles a lisp-like language into Java code, that will be compiled into Dalvik VM bytecode, running on an ARM-based embedded system, which when executed will emulate a Motorola 68000 CPU.</p>
<p>
I feel like I've just had a Wikipedia attack. You know, that thing where you go to Wikipedia to look up something very specific, say <a href="http://en.wikipedia.org/wiki/Tesla_coil#Popularity">how Tesla coils can be used to play music</a>, and end up three hours later reading through an analysis of 14th century persian battle tactics, with no idea how you got there. That's kinda how I felt when I came up for air yesterday and looked back. &quot;So, I got a phone... And now I'm writing a compiler... I'm pretty sure I have a good reason...&quot;</p>
<p>
Oh, and the emulator compiler is starting to work. I was very rusty in Common Lisp, but in a couple of days of hacking and prototyping, I'm starting to get somewhere. I can already generate the implementation of the simplest variant of the 68k <tt>ADD</tt> opcode. The &quot;source&quot; looks like this, with comments added</p>

<div class="cmd">
<pre>
(instruction
   ;; Instruction name, with variant information.
   &quot;add_dreg_to_dreg&quot;

   ;; The description of the meaning of the 16 bits of the opcode.
   ((:literal 4 #b1101)      ; 4 constant bits, with the given binary value
    (output-register 3 dest) ; The output register, whose number is coded
                             ; over 3 bits. Its value is available in the
                             ; 'dest' variable.
    (:literal 6 #010000)     ; More constant bits, describing the addressing mode.
    (input-register 3 src))  ; Input register, similar declaration to dest.

   ;; How to perform this operation, in a subset of Common Lisp.
   (setf dest (+ src dest)))
</pre>
</div>
<p></p>
<p>
The above instruction definition produces an opcode object that contains two things: information for the instruction decoder, so that it can identify this instruction, and the intermediate representation of the implementation of that instruction:</p>

<div class="cmd">
<pre>
;; The constant bit values in the opcode, and the mask to test them,
;; for the instruction decoder.
(debug-print-opcode-mask the-above-opcode-object)

--&gt; Output: 1101---010000---

;; The intermediate representation of the implementation.
(opcode-ast the-above-opcode-object)

--&gt; (LET ((SRC (REGISTER-VALUE :DATA
                               (VM-OPCODE-BITS 3 0)))
          (DEST (WRITABLE-REGISTER-VALUE :DATA
                                         (VM-OPCODE-BITS 3 9))))
      (SETF DEST (+ DEST SRC)))
</pre>
</div>
<p></p>
<p>
This opcode can then be fed to the Java code generator, to produce the output implementation:</p>

<div class="cmd">
<pre>
(java-gen-opcode the-above-opcode-object)

--&gt; public static void op_add_dreg_to_dreg(unsigned short opcode) {
      unsigned long src = mDataRegisters[(opcode &gt;&gt; 0) &amp; 0x7];
      unsigned long dest = mDataRegisters[(opcode &gt;&gt; 9) &amp; 0x7];
      dest = dest + src;
      mDataRegisters[(opcode &gt;&gt; 9) &amp; 0x7] = dest;
    }
</pre>
</div>
<p></p>
<p>
There is still a lot to be done. For one, the <tt>ADD</tt> opcode is supposed to update the CPU's state flags with information about the result of the addition. After that, the addressing modes other than to/from a numbered register must be supported. Implementing more opcodes will surely bring more things that need to be implemented.</p>
<p>
Once a solid base is laid, a higher-still level of description must be layered on, so that all the variants of an instruction are produced from a single implementation definition. Once all that is done, a C++ backend would be nice. And why not attempt to generalize the compiler infrastructure, so as to support the compilation of emulators other than m68k CPUs?</p>
<p>
By the time I get anywhere near that, I suspect that it will have become possible to easily write and release native code for Android, making all of my efforts unnecessary. But I don't care, this is damn <em>fun</em>!</p>
<p>
Some people are of the opinion that I should get my head examined.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/549/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Black box says yes]]></title>
   <link>http://natulte.net/index.php/blog/548</link>
   <description>
This just in: following the discovery of the "diagnostic LED" of my black box, it took mere minutes to home in on the bug and eradicate it.

It's alive! ALIVE I SAY!

Oh, what was the bug? Let's just say that when you check, in the code of a driver, whether you properly told the power management driver to power up the chip you're driving, it would be wise to also check the code of the power management driver to make sure the power-up code is right. Because a chip with no power ain't gonna be driven nowhere.

In other news, powering up random peripherals unrelated to what you want to drive doesn't work either. No, really.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Geek]]></category>
   <guid>http://natulte.net/index.php/blog/548</guid>
   <pubDate><![CDATA[Tue, 18 Nov 2008 04:10:09 +0100]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
This just in: following the discovery of the &quot;diagnostic LED&quot; of my black box, it took mere minutes to home in on the bug and eradicate it.</p>
<p>
It's alive! ALIVE I SAY!</p>
<p>
Oh, what was the bug? Let's just say that when you check, in the code of a driver, whether you properly told the power management driver to power up the chip you're driving, it would be wise to also check the code of the power management driver to make sure the power-up code is right. Because a chip with no power ain't gonna be driven nowhere.</p>
<p>
In other news, powering up random peripherals unrelated to what you want to drive doesn't work either. No, really.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/548/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Debugging the NXT startup: a binary printf()]]></title>
   <link>http://natulte.net/index.php/blog/547</link>
   <description>
(Warning: very nerdy rant about very geeky topic ahead)

Debugging a NXT that crashes during the bootup sequence is hard. Before the main AVR link comes up, there is no way to even get any sound. I've already done debugging by sound: during the early stages of NxOS a couple of years back, I would debug by playing bytes I wanted to check as morse-code-like dits and daas, one bit at a time, over the brick's speaker. It's extremely basic, but it's how I got the display driver to work.

But debugging a crash before the sound driver is in a working state is hard. You have a large binary black box. Either it boots and the sound driver works, in which case you don't have a problem, or it doesn't and you only get The Beep Of Death, the sound of the coprocessor periodically blipping the speaker to say "Your OS is screwed, I'm not playing any more".

Just now, attempting to debug one such crash, I discovered something interesting. If I initialize the sound controller and start an infinite loop of playing a tone, for some reason the pitch of the Beep Of Death changes by a few kHz for 2 beeps, then returns to its regular pitch.

This gives me a more basic equivalent of the morse code byte "printer": if the tone changes, I know that the brick booted at least up to the point of my infinite loop. If it doesn't, I know it crashed before that point. It's an audio diagnostic LED that tells me either "I managed to initialize the kernel up until this point", or "Nope, the crash occurs before execution gets to the bruteforce sound loop".

Therefore, by moving the sound loop around in the init code, I should be able to zero in on the exact crash site. The initialization black box is no longer completely black. A little information leaks out. Instead of "Everything works/doesn't work", I now have "Everything works/doesn't work up to the following intermediate point of my choosing".

And, sometimes, when debugging embedded systems without proper hardware debugging hardware, that tiny insignificant diagnostic LED is the difference between hope and despair.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Geek]]></category>
   <guid>http://natulte.net/index.php/blog/547</guid>
   <pubDate><![CDATA[Tue, 18 Nov 2008 03:36:50 +0100]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
(Warning: very nerdy rant about very geeky topic ahead)</p>
<p>
Debugging a NXT that crashes during the bootup sequence is hard. Before the main AVR link comes up, there is no way to even get any sound. I've already done debugging by sound: during the early stages of NxOS a couple of years back, I would debug by playing bytes I wanted to check as morse-code-like dits and daas, one bit at a time, over the brick's speaker. It's extremely basic, but it's how I got the display driver to work.</p>
<p>
But debugging a crash before the sound driver is in a working state is hard. You have a large binary black box. Either it boots and the sound driver works, in which case you don't have a problem, or it doesn't and you only get The Beep Of Death, the sound of the coprocessor periodically blipping the speaker to say &quot;Your OS is screwed, I'm not playing any more&quot;.</p>
<p>
Just now, attempting to debug one such crash, I discovered something interesting. If I initialize the sound controller and start an infinite loop of playing a tone, for some reason the pitch of the Beep Of Death changes by a few kHz for 2 beeps, then returns to its regular pitch.</p>
<p>
This gives me a more basic equivalent of the morse code byte &quot;printer&quot;: if the tone changes, I know that the brick booted at least up to the point of my infinite loop. If it doesn't, I know it crashed before that point. It's an audio diagnostic LED that tells me either &quot;I managed to initialize the kernel up until this point&quot;, or &quot;Nope, the crash occurs before execution gets to the bruteforce sound loop&quot;.</p>
<p>
Therefore, by moving the sound loop around in the init code, I should be able to zero in on the exact crash site. The initialization black box is no longer completely black. A little information leaks out. Instead of &quot;Everything works/doesn't work&quot;, I now have &quot;Everything works/doesn't work <em>up to the following intermediate point of my choosing</em>&quot;.</p>
<p>
And, sometimes, when debugging embedded systems without proper hardware debugging hardware, that tiny insignificant diagnostic LED is the difference between hope and despair.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/547/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Airports of the world, take notice]]></title>
   <link>http://natulte.net/index.php/blog/546</link>
   <description>
Singapore International Airport rocks.

The shopping and restaurant center in the international corridor is bigger than the main commercial zone of many so-called international airports.

For 5 euros, you can grab a delightful hot shower, sheer nirvana after 10 hours of flying. For 15 euros you can enjoy a day in the ambassador lounge, complete with complimentary refreshments, a complimentary bed to nap, complimentary gym, complimentary showers, and free internet access.

Oh, yeah, the internet access. Get this. Free broadband wifi internet access for the whole airport. Yes, you read that right: airport; wifi; broadband; free. All in the same sentence. Until now I thought airports were a "pick three of these four" deals, but it does appear that at least one airport in the world does get it.

I'm only here for six hours or so until my flight on to Zurich, but I will long remember Singapore International Airport as the first airport that was not only bearable to dwell in for 6 hours, but actually pleasant. And that's just the international corridor, I dare not imagine the awesomeness of the rest of the place. Whoever runs this joint, bravo.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/546</guid>
   <pubDate><![CDATA[Sat, 01 Nov 2008 02:59:11 +0100]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
Singapore International Airport rocks.</p>
<p>
The shopping and restaurant center in the <em>international corridor</em> is bigger than the <em>main</em> commercial zone of many so-called international airports.</p>
<p>
For 5 euros, you can grab a delightful hot shower, sheer nirvana after 10 hours of flying. For 15 euros you can enjoy a day in the ambassador lounge, complete with complimentary refreshments, a complimentary bed to nap, complimentary gym, complimentary showers, and free internet access.</p>
<p>
Oh, yeah, the internet access. Get this. Free broadband wifi internet access for the whole airport. Yes, you read that right: airport; wifi; broadband; free. All in the same sentence. Until now I thought airports were a &quot;pick three of these four&quot; deals, but it does appear that at least one airport in the world <em>does</em> get it.</p>
<p>
I'm only here for six hours or so until my flight on to Zurich, but I will long remember Singapore International Airport as the first airport that was not only bearable to dwell in for 6 hours, but actually pleasant. And that's just the international corridor, I dare not imagine the awesomeness of the rest of the place. Whoever runs this joint, bravo.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/546/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[3D cinema is not ready]]></title>
   <link>http://natulte.net/index.php/blog/545</link>
   <description>
I saw Journey to the Center of the Earth today, on a 3D ready cinema screen. That's the movies filmed with $200 000 stereoscopic cameras, presumably requiring a specialized projector, and the classic 3D glasses to watch. I thought that nowadays, these glasses used different polarizations to isolate the content for each eye, but the ones we were given had slightly tinted lenses, one green and one red, old skool. Maybe it's a combination of both, or neither, or something.

Anyway, my opinion on 3D cinema: it's an expensive way to purchase a headache. The imperfect stereoscopic effects of the lenses, combined with the fact that most movies I see that are made in 3D are actually not so good to begin with, and that the directors make use of the 3D to pull off cheap "wow" shots that scream "I have this new toy and I'm just messing with it"... It all adds up to a thumping migraine after an hour and a half of film.

My advice: if you have the opportunity to see a film on a 3D ready screen, don't. Hit the bar with your mates instead. For the same price, you can purchase a headache that's just as good (even better, during happy hour), and enjoy yourself while acquiring it.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Geek]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/545</guid>
   <pubDate><![CDATA[Fri, 24 Oct 2008 05:09:24 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
I saw Journey to the Center of the Earth today, on a 3D ready cinema screen. That's the movies filmed with $200 000 stereoscopic cameras, presumably requiring a specialized projector, and the classic 3D glasses to watch. I thought that nowadays, these glasses used different polarizations to isolate the content for each eye, but the ones we were given had slightly tinted lenses, one green and one red, old skool. Maybe it's a combination of both, or neither, or something.</p>
<p>
Anyway, my opinion on 3D cinema: it's an expensive way to purchase a headache. The imperfect stereoscopic effects of the lenses, combined with the fact that most movies I see that are made in 3D are actually not so good to begin with, and that the directors make use of the 3D to pull off cheap &quot;wow&quot; shots that scream &quot;I have this new toy and I'm just messing with it&quot;... It all adds up to a thumping migraine after an hour and a half of film.</p>
<p>
My advice: if you have the opportunity to see a film on a 3D ready screen, don't. Hit the bar with your mates instead. For the same price, you can purchase a headache that's just as good (even better, during happy hour), <em>and</em> enjoy yourself while acquiring it.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/545/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Books, books and more books!]]></title>
   <link>http://natulte.net/index.php/blog/544</link>
   <description>
I've taken the opportunity during my extended holiday of catching up on a lot of reading. Well, what else are you going to do during 3 hours of bussing? Sure, the scenery is nice, but it's not *that* captivating, not for a whole day.

So, I've been in and out of second hand bookshops, catching up on a few classics that I've been meaning to get to, rereading other brilliant novels, and generally having quite a good time in the realms of science fiction. And I thought I'd share a couple of my favorite reads of this past month. These aren't in chronological order, nor are they in order of preference. They're presented here in neurocausal order, i.e. the semi-random order in which my memory regurgitates titles. I've tried to avoid huge spoilers, but in commenting on each book I necessarily have to talk a little bit about each. It shouldn't spoil your fun though, and the alternative is for this post to degenerate into the semantically empty "reviews" we sometimes get on the back covers of books: "Stunning", "A great masterpiece", "Look, kittens!"First up, Ringworld. Niven's story is a classic of what I'd call "engineer's science fiction", which deals with understanding and marvelling at constructions on a cosmic scale. In this case, the construction is the ringworld: imagine a length of ribbon that you would fold back on itself to make a circle. Now, blow that up so that the ring sits roughly in earth's orbit, orbiting the sun, one side of the ribbon facing inwards towards the sun. There you have it, the Ringworld. A magnificent construction of a scale that dwarfs all of humanity's present achievements, and is only equaled by the mystery surrounding it: who built it? Where did they go? Why did they abandon the Ringworld?

I enjoyed this book a lot, because I generally like the idea of playing reverse archaeologist, and being handed an artifact from our future, rather than our past, to dissect. The story is quite engrossing, though it is a little hard to get into for the first few chapters, and the interrogations of the characters only echoes the wonder I feel trying to picture the might of the ringworld and other artifacts such as the cziltang brone.

The political interplay between the various races is also quite fascinating to follow, but is visited more extensively in the sequel, The Ringworld Engineers. In spite of this fascinating and believable jousting of the species of the stars, I found the sequel a little disapointing, because I feel that it tries too hard to explain the Ringworld. Niven wrote the sequel in part to respond to criticism and ideas regarding the engineering aspects of the Ringworld, and it is ever so slightly too obvious in the writing. I also found the ending to be only middling, and some of the revelations simply destroyed too much of the mystery for me to stay interested.

I bought the third book, Ringworld Throne, but it simply didn't retain my interest in the light of the second book's events, and I gave up after a few chapters. It seems to me that at that point, the Ringworld has become merely the backdrop for a completely different story, rather than being at the center of the story. And I couldn't get interested in that. Maybe another time.

Next up, a dose of Heinlein. Heinlein is one of my favorite science fiction authors. His stories are engrossing, the characters are interesting (if a little unrealistic at times), and the intrigue is supplemented by shards of all out political, philosophical or social commentary about humanity at large. I find the mix extremely enjoyable to read and reread.

So, imagine my joy when I found in a bookshop in Canada a second hand copy of Starship Troopers, one of his landmark and most controversial novels. The movie based on the book was a decent enough flick, despite the obvious bias against the Federal society, depicted as a quasi-fascist regime.

Reading the book, it seems obvious that Heinlein is not describing a fascist regime. He is cetainly describing an atypical society in many ways, different from all the government experiments that we've had so far in our history. Of course, it's not a democracy in our sense, since citizenship is not acquired at birth, but through sacrifice and toil in the federal service. I don't think it qualifies as a dictatorship either, since anyone has the right to volunteer for federal service and work for their citizenship.

The book has had a lot of hate heaped onto it, because people are obviously quite attached to their fundamental freedoms: "Life, liberty and the pursuit of happiness". But Heinlein, through several professors of History and Moral Philosophy, makes a compelling case for the fundamental weakness of automatic citizenship, and why the ultimate authority should only be given to those willing to give their lives for the body politic, ultimate cost for ultimate value. There are also a few cheap stabs at communism, but History seems to have proven him right in many ways, and again, there are rather interesting moral and pragmatic arguments made against the communist moral structure.

Not only is the book a great work of science fiction in terms of depicting the army of the future (Heinlein practically invented the exoskeleton and high-tech intelligence gathering in Starship Troopers), it is also a fascinating essay on politics and morality. In many ways, I find myself agreeing with Heinlein: why is citizenship and the ultimate sovereign authority granted indiscriminately, without even the slightest proof that the citizen has the moral sense to use this power for the benefit of society? I suspect that this comes back to the pervasiveness of religions that assume that moral sense is innate, rather than acquired. No matter that facts don't seem to agree...

One of the professors of H&amp;MP in the book summarizes this situation as "The people voted for the impossible, and the disastrously possible occured instead". Sounds familiar? Maybe it's just the american elections that make me pessimistic about our great democratic experiments.

Another very good couple of Heinleins I read through: Assignment in Eternity, a short story prequel to some of the events in Friday (another brilliant Heinlein, go read it). I think it's a much more satisfying story to read if you read Friday first, since you can then connect the events of Assignment in Eternity with the references dropped here and there in Friday. The story is just that much more enjoyable when you can connect things like that.

Third Heinlein I read on this trip, Double Star. Not as good as the best Heinlein, but nonetheless a pleasant read and reread. It deals with questions that we may have to face one day, about overcoming prejudice and xenophobia beyond humanity, as we push out towards the stars. Unfortunately, the ending is quite guessable after a while, but it remains a pleasant book.

Fourth Heinlein (and, I think, the first I actually read), Glory Road. Not much to say here. It's a light story, fun to read, but as far as I remember there was no huge philosophical point being discussed. Well, maybe that work is something that humans have to do to remain sane, that after a while just doing nothing, or doing things without earning the possibility of doing them first (e.g. being rich beyond belief) eventually drives people crazy. Okay, so there is a point I guess, that a Man's value is in action, not past prestige. In any case, it's a nice light read, quite enjoyable.

Next up, Ben Bova's Saturn. I'd already read and loved his Mars and Return to Mars, so I had high expectations for this one. In my opinion, it's not quite as good as Mars. I feel that there is too much focus on societal interplay, and over time it becomes tiring. Kind of like Dune in a way, where the plans within plans within plans just end up pissing you off. Some of the New Morality characters also got on my nerves, simply because they exhibit the same righteous indignation against technology that can be found here on Earth today. I cannot stand people who fear what they do not understand, and rely on a shaky "moral" code to force their ignorance and unwillingness to learn onto the rest of us. I did enjoy the book despite this (hint: any book that I read through to the end I consider good, and I recommend you read it), but it lacked the pioneer feel and mystery of Mars and Return to Mars, the two aspects that I really enjoyed in the red planet novels.

On to a hard S.F. author, Stephen Baxter. I'd already read Ring, which I think is the perfect example of what is meant by hard S.F.: if you can't deal with battles on a cosmic timescale between two lords of their domains of the universe, who fight by hurtling entire galaxies at each other, go back in time to reengineer their own evolution in order to fight the threat to their existence, and construct artifacts hundreds of thousands of light years across out of flaws in the fabric of spacetime, then you're not ready for a Baxter story. He has you coming up for air every couple of chapters, so incredible are the implications of his ideas.

In this context, you'll imagine that if I loved Ring's hard S.F., I was quite excited to see what Manifold: Time had in store for me. And, again, Baxter blew my mind away. As with Ring, you have to wait until the very end for all the events to come together in a single chain that makes sense, and the ending surprized and amazed the crap out of me. Again, if you're not up to dealing with exploring universes of the Manifold, skipping through time into the deep future of the universe, and using black holes as power stations, you may want to skip Baxter. Otherwise, go read Manifold: Time, I guarantee satisfaction.

Next up, Orson Scott Card and the magnificent Ender's Game. The story of Ender Wiggin, the war against the buggers, Battle School and youth destroyed in the name of xenophobia. I can't summarize this book, it's fantastic, incredible and wonderful. And, if you become sufficiently engrossed, it is just possible that the Speaker for the Dead might make you weep in the final pages.

Speaking of the Speaker, the sequel to Ender's Game is just as fantastic, and is called, unsurprisingly, Speaker for the Dead. This is actually what Card wanted to write originally, and Ender's Game became a sort of prequel in which he got rid of all the questions of how the Speaker for the Dead originally came to be, to focus on what the Speaker does in this book. Among other things, Speaker for the Dead tells the story of the piggies, the second sentient alien race that humanity comes into contact with, and how it revives the old fears of the bugger wars.

The scifi part of it is also fascinating, describing an empire of a hundred worlds where communication is key: while starships travelling at relativistic speeds take decades to cross the interstellar void between worlds (with only a few days of subjective time inside the ship), each world is linked by ansible with all the others, enabling FTL communication. This rapport of fast communication and slow travel defines a lot of the societies in the Hundred Worlds. This also places emphasis on what the character Demosthenes calls the "hierarchy of exclusion", derived from scandinavian vocabulary: four levels of "otherness", ranging from human from another city all the way to the true alien, whose motives and ways are for ever unreachable to us. All in all, a fascinating read, and a very well told story of just how alien and incomprehensible other sentient species may appear to be, until they are properly understood and accepted.

There, I think that's about it. I've probably forgotten some, and I'll remember later today as I unpack my bag and see them there. But those above are the ones I remember best, and I highly recommend them if you're looking for a bit of sci-fi escape.

Now, I hope Kaikoura has a lot of second hand bookshops, I need to sell some of these off and get some more. I've run out of reading material.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <guid>http://natulte.net/index.php/blog/544</guid>
   <pubDate><![CDATA[Mon, 20 Oct 2008 20:57:32 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
I've taken the opportunity during my extended holiday of catching up on a lot of reading. Well, what else are you going to do during 3 hours of bussing? Sure, the scenery is nice, but it's not *that* captivating, not for a whole day.</p>
<p>
So, I've been in and out of second hand bookshops, catching up on a few classics that I've been meaning to get to, rereading other brilliant novels, and generally having quite a good time in the realms of science fiction. And I thought I'd share a couple of my favorite reads of this past month. These aren't in chronological order, nor are they in order of preference. They're presented here in neurocausal order, i.e. the semi-random order in which my memory regurgitates titles. I've tried to avoid huge spoilers, but in commenting on each book I necessarily have to talk a little bit about each. It shouldn't spoil your fun though, and the alternative is for this post to degenerate into the semantically empty &quot;reviews&quot; we sometimes get on the back covers of books: &quot;Stunning&quot;, &quot;A great masterpiece&quot;, &quot;Look, kittens!&quot;<br /><br />First up, <em>Ringworld</em>. Niven's story is a classic of what I'd call &quot;engineer's science fiction&quot;, which deals with understanding and marvelling at constructions on a cosmic scale. In this case, the construction is the ringworld: imagine a length of ribbon that you would fold back on itself to make a circle. Now, blow that up so that the ring sits roughly in earth's orbit, orbiting the sun, one side of the ribbon facing inwards towards the sun. There you have it, the Ringworld. A magnificent construction of a scale that dwarfs all of humanity's present achievements, and is only equaled by the mystery surrounding it: who built it? Where did they go? Why did they abandon the Ringworld?</p>
<p>
I enjoyed this book a lot, because I generally like the idea of playing reverse archaeologist, and being handed an artifact from our future, rather than our past, to dissect. The story is quite engrossing, though it is a little hard to get into for the first few chapters, and the interrogations of the characters only echoes the wonder I feel trying to picture the might of the ringworld and other artifacts such as the <em>cziltang brone</em>.</p>
<p>
The political interplay between the various races is also quite fascinating to follow, but is visited more extensively in the sequel, <em>The Ringworld Engineers</em>. In spite of this fascinating and believable jousting of the species of the stars, I found the sequel a little disapointing, because I feel that it tries too hard to explain the Ringworld. Niven wrote the sequel in part to respond to criticism and ideas regarding the engineering aspects of the Ringworld, and it is ever so slightly too obvious in the writing. I also found the ending to be only middling, and some of the revelations simply destroyed too much of the mystery for me to stay interested.</p>
<p>
I bought the third book, <em>Ringworld Throne</em>, but it simply didn't retain my interest in the light of the second book's events, and I gave up after a few chapters. It seems to me that at that point, the Ringworld has become merely the backdrop for a completely different story, rather than being at the center of the story. And I couldn't get interested in that. Maybe another time.</p>
<p>
Next up, a dose of Heinlein. Heinlein is one of my favorite science fiction authors. His stories are engrossing, the characters are interesting (if a little unrealistic at times), and the intrigue is supplemented by shards of all out political, philosophical or social commentary about humanity at large. I find the mix extremely enjoyable to read and reread.</p>
<p>
So, imagine my joy when I found in a bookshop in Canada a second hand copy of <em>Starship Troopers</em>, one of his landmark and most controversial novels. The movie based on the book was a decent enough flick, despite the obvious bias against the Federal society, depicted as a quasi-fascist regime.</p>
<p>
Reading the book, it seems obvious that Heinlein is not describing a fascist regime. He is cetainly describing an atypical society in many ways, different from all the government experiments that we've had so far in our history. Of course, it's not a democracy in our sense, since citizenship is not acquired at birth, but through sacrifice and toil in the federal service. I don't think it qualifies as a dictatorship either, since anyone has the right to volunteer for federal service and work for their citizenship.</p>
<p>
The book has had a lot of hate heaped onto it, because people are obviously quite attached to their fundamental freedoms: &quot;Life, liberty and the pursuit of happiness&quot;. But Heinlein, through several professors of History and Moral Philosophy, makes a compelling case for the fundamental weakness of automatic citizenship, and why the ultimate authority should only be given to those willing to give their lives for the body politic, ultimate cost for ultimate value. There are also a few cheap stabs at communism, but History seems to have proven him right in many ways, and again, there are rather interesting moral and pragmatic arguments made against the communist moral structure.</p>
<p>
Not only is the book a great work of science fiction in terms of depicting the army of the future (Heinlein practically invented the exoskeleton and high-tech intelligence gathering in <em>Starship Troopers</em>), it is also a fascinating essay on politics and morality. In many ways, I find myself agreeing with Heinlein: why is citizenship and the ultimate sovereign authority granted indiscriminately, without even the slightest proof that the citizen has the moral sense to use this power for the benefit of society? I suspect that this comes back to the pervasiveness of religions that assume that moral sense is innate, rather than acquired. No matter that facts don't seem to agree...</p>
<p>
One of the professors of H&amp;MP in the book summarizes this situation as &quot;The people voted for the impossible, and the disastrously possible occured instead&quot;. Sounds familiar? Maybe it's just the american elections that make me pessimistic about our great democratic experiments.</p>
<p>
Another very good couple of Heinleins I read through: <em>Assignment in Eternity</em>, a short story prequel to some of the events in <em>Friday</em> (another brilliant Heinlein, go read it). I think it's a much more satisfying story to read if you read Friday first, since you can then connect the events of Assignment in Eternity with the references dropped here and there in Friday. The story is just that much more enjoyable when you can connect things like that.</p>
<p>
Third Heinlein I read on this trip, <em>Double Star</em>. Not as good as the best Heinlein, but nonetheless a pleasant read and reread. It deals with questions that we may have to face one day, about overcoming prejudice and xenophobia beyond humanity, as we push out towards the stars. Unfortunately, the ending is quite guessable after a while, but it remains a pleasant book.</p>
<p>
Fourth Heinlein (and, I think, the first I actually read), <em>Glory Road</em>. Not much to say here. It's a light story, fun to read, but as far as I remember there was no huge philosophical point being discussed. Well, maybe that work is something that humans have to do to remain sane, that after a while just doing nothing, or doing things without earning the possibility of doing them first (e.g. being rich beyond belief) eventually drives people crazy. Okay, so there is a point I guess, that a Man's value is in action, not past prestige. In any case, it's a nice light read, quite enjoyable.</p>
<p>
Next up, Ben Bova's <em>Saturn</em>. I'd already read and loved his <em>Mars</em> and <em>Return to Mars</em>, so I had high expectations for this one. In my opinion, it's not quite as good as Mars. I feel that there is too much focus on societal interplay, and over time it becomes tiring. Kind of like Dune in a way, where the plans within plans within plans just end up pissing you off. Some of the New Morality characters also got on my nerves, simply because they exhibit the same righteous indignation against technology that can be found here on Earth today. I cannot stand people who fear what they do not understand, and rely on a shaky &quot;moral&quot; code to force their ignorance and unwillingness to learn onto the rest of us. I did enjoy the book despite this (hint: any book that I read through to the end I consider good, and I recommend you read it), but it lacked the pioneer feel and mystery of Mars and Return to Mars, the two aspects that I really enjoyed in the red planet novels.</p>
<p>
On to a hard S.F. author, Stephen Baxter. I'd already read <em>Ring</em>, which I think is the perfect example of what is meant by hard S.F.: if you can't deal with battles on a cosmic timescale between two lords of their domains of the universe, who fight by hurtling entire galaxies at each other, go back in time to reengineer their own evolution in order to fight the threat to their existence, and construct artifacts hundreds of thousands of light years across out of flaws in the fabric of spacetime, then you're not ready for a Baxter story. He has you coming up for air every couple of chapters, so incredible are the implications of his ideas.</p>
<p>
In this context, you'll imagine that if I loved <em>Ring</em>'s hard S.F., I was quite excited to see what <em>Manifold: Time</em> had in store for me. And, again, Baxter blew my mind away. As with Ring, you have to wait until the very end for all the events to come together in a single chain that makes sense, and the ending surprized and amazed the crap out of me. Again, if you're not up to dealing with exploring universes of the Manifold, skipping through time into the deep future of the universe, and using black holes as power stations, you may want to skip Baxter. Otherwise, go read <em>Manifold: Time</em>, I guarantee satisfaction.</p>
<p>
Next up, Orson Scott Card and the magnificent <em>Ender's Game</em>. The story of Ender Wiggin, the war against the buggers, Battle School and youth destroyed in the name of xenophobia. I can't summarize this book, it's fantastic, incredible and wonderful. And, if you become sufficiently engrossed, it is just possible that the Speaker for the Dead might make you weep in the final pages.</p>
<p>
Speaking of the Speaker, the sequel to <em>Ender's Game</em> is just as fantastic, and is called, unsurprisingly, <em>Speaker for the Dead</em>. This is actually what Card wanted to write originally, and Ender's Game became a sort of prequel in which he got rid of all the questions of how the Speaker for the Dead originally came to be, to focus on what the Speaker does in this book. Among other things, Speaker for the Dead tells the story of the piggies, the second sentient alien race that humanity comes into contact with, and how it revives the old fears of the bugger wars.</p>
<p>
The scifi part of it is also fascinating, describing an empire of a hundred worlds where communication is key: while starships travelling at relativistic speeds take decades to cross the interstellar void between worlds (with only a few days of subjective time inside the ship), each world is linked by ansible with all the others, enabling FTL communication. This rapport of fast communication and slow travel defines a lot of the societies in the Hundred Worlds. This also places emphasis on what the character Demosthenes calls the &quot;hierarchy of exclusion&quot;, derived from scandinavian vocabulary: four levels of &quot;otherness&quot;, ranging from human from another city all the way to the true alien, whose motives and ways are for ever unreachable to us. All in all, a fascinating read, and a very well told story of just how alien and incomprehensible other sentient species may appear to be, until they are properly understood and accepted.</p>
<p>
There, I think that's about it. I've probably forgotten some, and I'll remember later today as I unpack my bag and see them there. But those above are the ones I remember best, and I highly recommend them if you're looking for a bit of sci-fi escape.</p>
<p>
Now, I hope Kaikoura has a lot of second hand bookshops, I need to sell some of these off and get some more. I've run out of reading material.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/544/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Dunedin]]></title>
   <link>http://natulte.net/index.php/blog/543</link>
   <description>
Dunedin, second largest city on the South Island. Named after the ancient Gaelic name of Edinburgh. A Scottish settlement and big student town.

All the way around the world, and they brought Scottish bloody weather with them.

Well, wet, cold and beaten around by the sea breeze, I still found a couple of geocaches, fun time.

But you'd think that in a Scottish settlement, they'd have bartenders who know how to pour a proper pint of Guinness, instead of serving a frothing mess with a head full of bubbles. Kids these days...
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/543</guid>
   <pubDate><![CDATA[Sat, 18 Oct 2008 11:56:26 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
Dunedin, second largest city on the South Island. Named after the ancient Gaelic name of Edinburgh. A Scottish settlement and big student town.</p>
<p>
All the way around the world, and they brought Scottish bloody weather with them.</p>
<p>
Well, wet, cold and beaten around by the sea breeze, I still found a couple of geocaches, fun time.</p>
<p>
But you'd think that in a Scottish settlement, they'd have bartenders who know how to pour a proper pint of Guinness, instead of serving a frothing mess with a head full of bubbles. Kids these days...</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/543/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Relativity]]></title>
   <link>http://natulte.net/index.php/blog/542</link>
   <description>
Relativity is a strange beast. For example, when you're falling, traditionally you think of it as the earth's gravitational pull dragging you down, or, at a larger scale, the combined forces of the entire universe pulling you towards the ground of the nearest massive body. But, from the frame of reference of your body, you are pulling the universe.

This week, I went and gave the universe a couple of tugs. I went skydiving and bungee jumping.Queenstown is nicknamed the adventure capital of New Zealand, since it has so many extreme experiences to offer, all in a magnificent scenery of mountains, lakes, fjords and nothing but blue skies (well, almost nothing but, close enough).

And for some reason, I was feeling mighty brave, or mighty stupid (or was it drunk?), and I signed up. You only live once!

It's my turn to fly



First up: tandem skydiving from 12000 feet. The first thing you do after paying is get a very quick briefing about how it'll work: you get driven out to the airfield, suited up, go up in a tiny turboprop at 1500 feet per minute for about 8 minutes, and then... Well, you sort of take the direct route back to the airfield, at a terminal velocity of 200kph.

All of this is done with you strapped into an instructor, and a photographer/cameraman jumping shotgun to take souvenir shots in freefall. Incidentally, the cameramen are the most insane skydivers I saw that day: because they have to land well in advance of you to get your approach and landing, once your parachute opens they keep diving, open lower, and then keep diving like complete nutters even with the parachute open, expertly pulling back at the last minute for a smooth landing. Real pros.

Anyway, after the briefing, you get to fill in a form attesting that you are indeed clinically insane, and that you will not sue in the unlikely event that you should suffer injury, or worse, "Ground-induced Sudden Deceleration Syndrome". Way to build up trust there. You also get a few minutes to get to know your asylum inmates for the day, chat about past experiences, and so forth. At this stage, you're rather calm, because you're in a rather normal looking back room of the Queenstown NZONE store, with both feet on Terra Firma. The jolly conversations go on as you're shuffled into the minibus and driven out, past Queenstown airport, out to the tiny airfield that the company operates.

There, you're split into groups of three, as the plane can only hold three tandems + photographers at a time. I was to go up in the third batch, and so got a moment to reflect, as the first group was suiting up and observing the folding of the parachutes, on my situation. It's around that point where it starts to dawn on you: what the heck am I doing?

Your mind then goes off on a bit of a wander, while in the physical world you get called up, don the suit and body harness, and get a briefing on the procedure and correct posture for freefall. A few minutes later, the plane returns from its previous run, and seven of us (3 tandems and a single photographer - I'm the only one who requested pics) squeeze into the back of the turboprop, and before you know it, we're airborne.

Now, at this stage, your mind comes back from its little spot of wandering, and makes a few pointed remarks. Such as "Hey, the door is a sheet of plexiglass, you can see right out", "Wow, look at the landscape" and "Gosh, we're going awfully high, aren't we". While you're going over that and the implications, your instructor straps you together, and goes over everything again, while the photographer takes a few preliminary shots.

After that, your mind goes through another couple of observations.

Hey, that red light above the door just went on.

Hmm, it's gone green.

Oh, he's opening the door. It sure is windy out there.

Wait, where did the two blokes in front of me go?

Just to let you know, you are aware that you're edging towards that windy place with no floor, right?

Hey, are you sure this is a good ideaAAAAAAAAAAAAAaaaaaaaaaaaa....

And you're in freefall. Forty five seconds of indescribable bliss on top of the world, looking out to the horizon and making faces for the camera, one hard tug, and another couple of minutes to float down to a smooth landing.

And, just like that, it's over. I am aware that I spent almost this entire post describing everything but the skydive, but it's just another illustration of relativity: time is not an absolute. It will crawl by achingly slowly, making seconds seem like hours, and then a whole minute will flock by when you're not looking. The way I describe it is the way I experienced the passage of time. But those forty odd seconds being a bird above everything else, they were worth all that buildup.

Unfortunately, something in the photographer's camera (they strap the camera to their helmets, and take pictures by biting a mouthpiece shutter release) jiggled a bit just after the jump, so I only got a picture seconds before the jump, followed by a large batch of "Error 99". Bah. Fortunately, I'd also asked for a film, and the video camera didn't pack up, so I at least got the video (which I haven't watched yet, my macbook's DVD drive being potentially damaged, I don't want to risk it).

So, there you have it. I loved it.

Bungeeeeeeeeee



A couple of times while driving around on various tours, I passed Kawarau bridge, just off Queenstown. Historically, this bridge facilitated access to the city in the early days of the colony. It's also the locale where A.J. Hackett invented the first commercial bungy jump, and subsequently made a fortune on it. It also so happens that the Kawarau river, 43 meters below the bridge, is famous under another name: the river Anduin in Peter Jackson's Fellowship of the Ring. In fact, just 100 meters upstream of Kawarau bridge is where the Argonath scene was shot.




Actually, during a Lord of the Rings tour, I stood on the ridge that you see just behind the Argonath. And no, they're not actually there, to my great disappointment.




Anyway, the concern of this post is not that bit of the Kawarau river, but rather this bit.




Because of various bus timing issues, I had an extra day (today) in Queenstown, with nothing particular planned. So, again, being very brave/stupid/drunk, what else to do but to sign up to jump off Kawarau bridge?

Again, the day starts with meeting your fellow inmates as we climb onto the minibus that takes us out to the bridge (25 minutes out of Queenstown). None of us have done this before. For some reason (I can't imagine what), we don't talk much about bungy jumping. But our driver fixed that for us, stopping briefly at a lookout to let us see someone else jump. Well, not really jump as much as go limp and fall off in his case, no style. We're told we should do better.

Follows a quick briefing by our driver before we head in. Most of it just logistics for bags and checking in and stuff, but Rule One stuck with me: The longer you stand there, the harder it is to jump. Mmkay, I'll remember that.

As luck would have it, today they're filming for a new promotional video, so we get to walk in past a couple of cameras before reaching the check-in desk. Sign the certificate (interestingly, they didn't tell me that on the other side of that certificate is the disclaimer of liability in case of injury, which you agree to when signing), get weighed, hop onto the bridge and get in line.

First observation: Well, it sure looks higher from here than it does from the observation decks.

As they strap the harness on and attach the bungy cord, you realize the fundamental difference between tandem skydiving and bungy jumping: in a tandem skydive, you're strapped to your instructor, and he sits on the plane ledge just before the jump. You're already dangling in the air by your straps at that point, and have no say in when, or whether you jump. In bungee jumping, you stand there, on the edge, looking down, and you have to jump. As AJ Hackett Bungy co-founder Henry van Asch says: "Bungy is actually about challenging yourself, we never push anybody off. People have to find it in themselves to jump off the bridge". That is probably the single biggest difference between the two: with skydiving, once you're in the plane, you might as well sit back and enjoy, there's nothing else you can do. With Bungy, you can turn back.

But, hey, how often do you get a chance at a tug at the universe over the river Anduin? Plus, the operator behind you provides the countdown, you just have to jump at "one". So, a quick (nervous) smile at the camera, arms wide, head up, Three, two, one, BAWAAAAAAAAAAAaaaaaaaaaaaaa...


(I have better photos from their cameras, but the digital versions aren't online yet, so I made do with this shot from mine, taken by another jumper)

Also a very powerful experience, if short. The split "oh shit" second just after you're no longer balanced (and so are going whether you've changed your mind or not) lasts an awesome eternity, and then, again, that blissful freefall, sadly only for a few seconds this time. Looking back, my swan dive isn't as good as it could be, I should arch more and keep the legs straight (which is hard given how they strap you in), but I'm rather proud that I actually did dive, rather than just seize up and fall off the ledge as some do.

Plus, after that I got to sign an agreement to give permission to use my jump in their new promotional video! They asked everyone, so I may just end up on the cutting room floor, but I daresay that my jump wasn't that bad an example of a decent first-time jump, so who knows.

So, there you have it. Two epic adrenaline rushes to cement in the memories of the magnificent West Coast, before heading on to Dunedin tomorrow, Scottish township along the eastern coast of the south island.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/542</guid>
   <pubDate><![CDATA[Fri, 17 Oct 2008 06:14:39 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
Relativity is a strange beast. For example, when you're falling, traditionally you think of it as the earth's gravitational pull dragging you down, or, at a larger scale, the combined forces of the entire universe pulling you towards the ground of the nearest massive body. But, from the frame of reference of your body, <em>you</em> are pulling the universe.</p>
<p>
This week, I went and gave the universe a couple of tugs. I went skydiving and bungee jumping.<br /><br />Queenstown is nicknamed the adventure capital of New Zealand, since it has so many extreme experiences to offer, all in a magnificent scenery of mountains, lakes, fjords and nothing but blue skies (well, almost nothing but, close enough).</p>
<p>
And for some reason, I was feeling mighty brave, or mighty stupid (or was it drunk?), and I signed up. You only live once!</p>

<h3>It's my turn to fly</h3>
<p>
</p>
<p>
<img src="http://natulte.net/blogpics/542/skydive.jpg" title="Skydiving with NZONE" style="float: left; margin: 0 1em 1em 0;" />First up: tandem skydiving from 12000 feet. The first thing you do after paying is get a very quick briefing about how it'll work: you get driven out to the airfield, suited up, go up in a tiny turboprop at 1500 feet per minute for about 8 minutes, and then... Well, you sort of take the direct route back to the airfield, at a terminal velocity of 200kph.</p>
<p>
All of this is done with you strapped into an instructor, and a photographer/cameraman jumping shotgun to take souvenir shots in freefall. Incidentally, the cameramen are the most insane skydivers I saw that day: because they have to land well in advance of you to get your approach and landing, once your parachute opens they keep diving, open lower, and then keep diving like complete nutters even with the parachute open, expertly pulling back at the last minute for a smooth landing. Real pros.</p>
<p>
Anyway, after the briefing, you get to fill in a form attesting that you are indeed clinically insane, and that you will not sue in the unlikely event that you should suffer injury, or worse, &quot;Ground-induced Sudden Deceleration Syndrome&quot;. Way to build up trust there. You also get a few minutes to get to know your asylum inmates for the day, chat about past experiences, and so forth. At this stage, you're rather calm, because you're in a rather normal looking back room of the Queenstown NZONE store, with both feet on Terra Firma. The jolly conversations go on as you're shuffled into the minibus and driven out, past Queenstown airport, out to the tiny airfield that the company operates.</p>
<p>
There, you're split into groups of three, as the plane can only hold three tandems + photographers at a time. I was to go up in the third batch, and so got a moment to reflect, as the first group was suiting up and observing the folding of the parachutes, on my situation. It's around that point where it starts to dawn on you: <em>what the heck am I doing?</em></p>
<p>
Your mind then goes off on a bit of a wander, while in the physical world you get called up, don the suit and body harness, and get a briefing on the procedure and correct posture for freefall. A few minutes later, the plane returns from its previous run, and seven of us (3 tandems and a single photographer - I'm the only one who requested pics) squeeze into the back of the turboprop, and before you know it, we're airborne.</p>
<p>
Now, at this stage, your mind comes back from its little spot of wandering, and makes a few pointed remarks. Such as &quot;Hey, the door is a sheet of plexiglass, you can see right out&quot;, &quot;Wow, look at the landscape&quot; and &quot;Gosh, we're going awfully high, aren't we&quot;. While you're going over that and the implications, your instructor straps you together, and goes over everything again, while the photographer takes a few preliminary shots.</p>
<p>
After that, your mind goes through another couple of observations.</p>
<p>
<em>Hey, that red light above the door just went on.</em></p>
<p>
<em>Hmm, it's gone green.</em></p>
<p>
<em>Oh, he's opening the door. It sure is windy out there.</em></p>
<p>
<em>Wait, where did the two blokes in front of me go?</em></p>
<p>
<em>Just to let you know, you </em>are<em> aware that you're edging towards that windy place with no floor, right?</em></p>
<p>
<em>Hey, are you sure this is a good idea</em><strong>AAAAAA</strong>AAAAAAAaaaaaaaaaaaa....</p>
<p>
And you're in freefall. Forty five seconds of indescribable bliss on top of the world, looking out to the horizon and making faces for the camera, one hard tug, and another couple of minutes to float down to a smooth landing.</p>
<p>
And, just like that, it's over. I am aware that I spent almost this entire post describing everything but the skydive, but it's just another illustration of relativity: time is not an absolute. It will crawl by achingly slowly, making seconds seem like hours, and then a whole minute will flock by when you're not looking. The way I describe it is the way I experienced the passage of time. But those forty odd seconds being a bird above everything else, they were worth all that buildup.</p>
<p>
Unfortunately, something in the photographer's camera (they strap the camera to their helmets, and take pictures by biting a mouthpiece shutter release) jiggled a bit just after the jump, so I only got a picture seconds before the jump, followed by a large batch of &quot;Error 99&quot;. Bah. Fortunately, I'd also asked for a film, and the video camera didn't pack up, so I at least got the video (which I haven't watched yet, my macbook's DVD drive being potentially damaged, I don't want to risk it).</p>
<p>
So, there you have it. I <em>loved</em> it.</p>

<h3>Bungeeeeeeeeee</h3>
<p>
</p>
<p>
A couple of times while driving around on various tours, I passed Kawarau bridge, just off Queenstown. Historically, this bridge facilitated access to the city in the early days of the colony. It's also the locale where A.J. Hackett invented the first commercial bungy jump, and subsequently made a fortune on it. It also so happens that the Kawarau river, 43 meters below the bridge, is famous under another name: the river <a href="http://en.wikipedia.org/wiki/Anduin">Anduin</a> in Peter Jackson's <a href="http://en.wikipedia.org/wiki/The_Lord_of_the_Rings:_The_Fellowship_of_the_Ring">Fellowship of the Ring</a>. In fact, just 100 meters upstream of Kawarau bridge is where the <a href="http://www.glyphweb.com/arda/a/argonath.html">Argonath</a> scene was shot.</p>

<p style="text-align: center"><img src="http://natulte.net/blogpics/542/argonath.jpg" title="The Argonath, from the Fellowship of the Ring" /></p>
<p></p>
<p>
Actually, during a Lord of the Rings tour, I stood on the ridge that you see just behind the Argonath. And no, they're not actually there, to my great disappointment.</p>

<p style="text-align: center"><img src="http://natulte.net/blogpics/542/anduin.jpg" title="The Kawarau/Anduin river" /></p>
<p></p>
<p>
Anyway, the concern of this post is not that bit of the Kawarau river, but rather this bit.</p>

<p style="text-align: center"><img src="http://natulte.net/blogpics/542/bridge.jpg" title="The Kawarau bridge and bungee" /></p>
<p></p>
<p>
Because of various bus timing issues, I had an extra day (today) in Queenstown, with nothing particular planned. So, again, being very brave/stupid/drunk, what else to do but to sign up to jump off Kawarau bridge?</p>
<p>
Again, the day starts with meeting your fellow inmates as we climb onto the minibus that takes us out to the bridge (25 minutes out of Queenstown). None of us have done this before. For some reason (I can't <em>imagine</em> what), we don't talk much about bungy jumping. But our driver fixed that for us, stopping briefly at a lookout to let us see someone else jump. Well, not really jump as much as go limp and fall off in his case, no style. We're told we should do better.</p>
<p>
Follows a quick briefing by our driver before we head in. Most of it just logistics for bags and checking in and stuff, but Rule One stuck with me: <em>The longer you stand there, the harder it is to jump</em>. Mmkay, I'll remember that.</p>
<p>
As luck would have it, today they're filming for a new promotional video, so we get to walk in past a couple of cameras before reaching the check-in desk. Sign the certificate (interestingly, they didn't tell me that on the other side of that certificate is the disclaimer of liability in case of injury, which you agree to when signing), get weighed, hop onto the bridge and get in line.</p>
<p>
First observation: <em>Well, it sure looks higher from here than it does from the observation decks</em>.</p>
<p>
As they strap the harness on and attach the bungy cord, you realize the fundamental difference between tandem skydiving and bungy jumping: in a tandem skydive, you're strapped to your instructor, and <em>he</em> sits on the plane ledge just before the jump. You're already dangling in the air by your straps at that point, and have no say in when, or whether you jump. In bungee jumping, you stand there, on the edge, looking down, and <em>you</em> have to jump. As AJ Hackett Bungy co-founder Henry van Asch says: &quot;Bungy is actually about challenging yourself, we never push anybody off. People have to find it in themselves to jump off the bridge&quot;. That is probably the single biggest difference between the two: with skydiving, once you're in the plane, you might as well sit back and enjoy, there's nothing else you can do. With Bungy, you can turn back.</p>
<p>
But, hey, how often do you get a chance at a tug at the universe over the river Anduin? Plus, the operator behind you provides the countdown, you just have to jump at &quot;one&quot;. So, a quick (nervous) smile at the camera, arms wide, head up, Three, two, one, <strong>BAWAAAAAAAAAAA</strong>aaaaaaaaaaaaa...</p>

<p style="text-align: center"><img src="http://natulte.net/blogpics/542/jump.jpg" title="The Jump" /></p>
<p><br /><em>(I have better photos from their cameras, but the digital versions aren't online yet, so I made do with this shot from mine, taken by another jumper)</em></p>
<p>
Also a very powerful experience, if short. The split &quot;oh shit&quot; second just after you're no longer balanced (and so are going whether you've changed your mind or not) lasts an awesome eternity, and then, again, that blissful freefall, sadly only for a few seconds this time. Looking back, my swan dive isn't as good as it could be, I should arch more and keep the legs straight (which is hard given how they strap you in), but I'm rather proud that I actually did dive, rather than just seize up and fall off the ledge as some do.</p>
<p>
Plus, after that I got to sign an agreement to give permission to use my jump in their new promotional video! They asked everyone, so I may just end up on the cutting room floor, but I daresay that my jump wasn't that bad an example of a decent first-time jump, so who knows.</p>
<p>
So, there you have it. Two epic adrenaline rushes to cement in the memories of the magnificent West Coast, before heading on to Dunedin tomorrow, Scottish township along the eastern coast of the south island.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/542/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Not keeping up, I know]]></title>
   <link>http://natulte.net/index.php/blog/541</link>
   <description>
I haven't been keeping up with the blogging, but since crossing over to the south island, things have been so beautiful and engrossing that, well, I kind of forgot...

Updates coming shortly. No, really.
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/541</guid>
   <pubDate><![CDATA[Wed, 15 Oct 2008 07:25:23 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
I haven't been keeping up with the blogging, but since crossing over to the south island, things have been so beautiful and engrossing that, well, I kind of forgot...</p>
<p>
Updates coming shortly. No, really.</p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/541/comments</wfw:commentRss>
  </item>

  <item>
   <title><![CDATA[Wet in Wellington]]></title>
   <link>http://natulte.net/index.php/blog/540</link>
   <description>
I was due to fly out of Wellington today on a tiny Cessna across Cook Strait, to start my tour of the south island. However, it seems that the weather has decided to play silly buggers, and this morning I woke up to a massive storm. The kind where the umbrella flaps out the wrong way even before it's finished opening, where the wind is so strong that sometimes you just cannot go in the direction you want to despite your best efforts, and where you are soaked to the bone in a few seconds because your umbrella is unusable.The endless optimist, I did get a taxi to the airport (because, joke on joke, the busses are on strike today), only to end up in the midst of chaos: Wellington airport is closed, all flights cancelled until early afternoon at the very least. So, I missed not only my flight, but also my connection for the bus to Nelson later today. Sigh.

And, of course, there is no bus service to Nelson tomorrow, meaning that I have to stay 3 days in Wellington, probably with shitty weather throughout, instead of my original plan to just spend the night here on the way down, then spend a little longer towards the end of my trip, with possibly more clement skies.

Damn.

Well, at least I get a little extension to do some more geocaching, if the weather clears up a bit. During the trip down from Taupo to Wellington, the bus driver was fantastic, and agreed to stop along the way for me to go hunting for caches along Highway 1. I only found 1 of the 3 we tried for, mostly because I gave up after a few minutes rather than delay the whole coach. Then I got another in Wellington, at a very scenic spot. But most importantly, I explained what geocaching is all about to many bewildered co-travellers, and got people rather excited about the idea of a huge community playing a massive scale version of, essentially, hide-and-seek.

No photos today, can't be bothered to unload the camera and do triage right now. Maybe later. Now, it's time to find a cosy, warm pub to shelter me from the storm, and get a bite to eat. Hot jets!

S 41.29308E 174.78384
   </description>
   <author><![CDATA[David Anderson]]></author>
   <category><![CDATA[English]]></category>
   <category><![CDATA[Life]]></category>
   <guid>http://natulte.net/index.php/blog/540</guid>
   <pubDate><![CDATA[Tue, 07 Oct 2008 00:31:50 +0200]]></pubDate>
   <dc:creator><![CDATA[David Anderson]]></dc:creator>
   <content:encoded><![CDATA[<p>
I was due to fly out of Wellington today on a tiny Cessna across Cook Strait, to start my tour of the south island. However, it seems that the weather has decided to play silly buggers, and this morning I woke up to a massive storm. The kind where the umbrella flaps out the wrong way even before it's finished opening, where the wind is so strong that sometimes you just cannot go in the direction you want to despite your best efforts, and where you are soaked to the bone in a few seconds because your umbrella is unusable.<br /><br />The endless optimist, I did get a taxi to the airport (because, joke on joke, the busses are on strike today), only to end up in the midst of chaos: Wellington airport is closed, all flights cancelled until early afternoon at the very least. So, I missed not only my flight, but also my connection for the bus to Nelson later today. Sigh.</p>
<p>
And, of course, there is no bus service to Nelson tomorrow, meaning that I have to stay 3 days in Wellington, probably with shitty weather throughout, instead of my original plan to just spend the night here on the way down, then spend a little longer towards the end of my trip, with possibly more clement skies.</p>
<p>
Damn.</p>
<p>
Well, at least I get a little extension to do some more geocaching, if the weather clears up a bit. During the trip down from Taupo to Wellington, the bus driver was fantastic, and agreed to stop along the way for me to go hunting for caches along Highway 1. I only found 1 of the 3 we tried for, mostly because I gave up after a few minutes rather than delay the whole coach. Then I got another in Wellington, at a very scenic spot. But most importantly, I explained what geocaching is all about to many bewildered co-travellers, and got people rather excited about the idea of a huge community playing a massive scale version of, essentially, hide-and-seek.</p>
<p>
No photos today, can't be bothered to unload the camera and do triage right now. Maybe later. Now, it's time to find a cosy, warm pub to shelter me from the storm, and get a bite to eat. <em>Hot jets!</em></p>
<p>
<a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=S+41.29308+E+174.78384&amp;ie=UTF8&amp;ll=-41.292737,174.783854&amp;spn=0.016606,0.035319&amp;t=h&amp;z=15&amp;iwloc=addr">S 41.29308<br />E 174.78384</a></p>
   ]]></content:encoded>
   <wfw:commentRss>http://natulte.net/index.php/blog/rss/540/comments</wfw:commentRss>
  </item>

 </channel>
</rss>
