Some news sources, like the new york times and sunday morning herald, have an annoying "feature" - they require the viewer to first register before allowing them to view the contents. Many other sites are guilty of the same, and bugmenot was setup so one doesn't have to lose one's privacy to these data sinks.

To aid in a better, faster, and more private surfing experience, there exists a bugmenot pluging for firefox, which will fill out any required forms with valid usernames and passwords contributed by its members.

Now thats what I call user friendly.



mChat - php chat room

M was stuck in a rather, for the lack of a better word, tightass network. So to facilitate communications, I wrote mChat in php. It grew from a simple (and rather smugly) script into one that supports avatars from atomicmpc with auto refresh, /me and user highlighting.

Try it out, there is almost always some one there. If you are interested it using the script on your site, just drop me a line.



emmap online store

I am selling some merchandise from the emmap project through cafepress. If you are looking for some unusual stuff, try them out :*) All of them contain maps of the world wide web in one form or another.



O Discordia

Its finally happening, the freedom of information (aka intellectual property) is restricted in this great country of ours (australia). Due to the FTA, copyright laws in Australia now lets some one other then the copyright holder to issue cease-and-decease orders to ISP in order to protect their "intellectual property".

Feck, and if that isn't bad enough, we are going to welcome the new year with the FTA coming into effect. Money over social morals once again.

In other news, if you ever have to deal with processing large number of files with Java, instead of using File.listFiles() iterating through the returned array, I strong recommend you implement FileFilter so that the processing is done with in, and use File.listFiles(FileFilter filter) instead. This gave significant speeds boosts to the post-processing tools used to produce the maps from the data set, also reduced the amount of required processing power.

Ocean's 12 by the by, is a good movie.



Addicted to computers

A lot of people accuse me of being addicted to computers: sitting in front of them all day long, tapping away at the keyboard, eyes burning with intensity normally associated with heroin addicts.

They make it sound like a bad thing, that some how I am wasting my life, not enjoying the "outdoors" enough. They think I am one of those information junkies, those bums of the net who do naught but browse, and browse, and browse.

Yet the same people look on with awe and praise at master painters who spent all day and night inside their studio, facing the same piece of canvas, brushes moving rapidly from pools of color to canvas and back in fluid practiced strokes whilst their eyes burn with an intensity similar to mine. Understand I do not compare myself to the likes of Da Vinci, I simply draw parallels between a candle's flame to that of a roaring bon fire.

I would like for my accusers to know that I am addicted not to computers but to one part of life. Imagine if you will being able to realise your dreams in an instant. The old peopled call it magic, and rightly so. Through programming we can offload our very thoughts into silicon, then preserve and distribute them to the world and ultimately when executed they become reality. This marvelous ability to encapsulate segments of our mind and share them so the world may see what we see in our mind's eye is simply magic. Building on other's ideas and thoughts we can create works of art that defies tradition, music that no instrument or vocal chord can produce, and even more astoundingly, add to other's ideas. Computers give us a collective mind of sorts, bringing together the brightest and best ideas so the pictures we see in darkness, music we hear in silence, insights we have in stillness can all be made real. To this tool I am addicted; to this task of turning dreams into the tangible I am addicted; to this one vital aspect of life, I am addicted.

Humanity has always sought the means through which its ideas can manifest themselves in reality, some mechanism to turn abstract thought into physical constructs. For aeons we utilised the arts: music, painting, writing and more. We gave vent to our imagination through what talents and tools we had, and those who were blessed rose to become giants immortalised in history. Now humanity has at its disposal technology to materialise its thoughts more then ever, and not only of a single gifted individual, but of all of humanity. Never in history have we been so saturated in magic.

Instead of pointing the finger, why not join us? Expand your mind and give birth to your imagination - become an addict today.


When mailing lists go wrong

Thanks to Scott, I can bring to you a hilarious example of what happens when mailing lists are mis-configured:
Subject: Email Problems
Date: Thu, 25 Nov 2004 21:38:37 +1100 (EST)
From: Mick Houlahan
To: undisclosed-recipients: ;

Over the last week we have had a number of problems with the student email

Last Thursday, a large number of students were invited by email to
participate in a survey. Unfortunately the list mechanism that was used to
issue this invitation was incorrectly configured. The end result was that
each reply to the survey instead of being directed to the survey author
was copied to each and every other member of the list. With some 20,000
students invited to participate, one can imagine the flow on effect of
each reply generating a further 20,000 emails.

Although the UWS IT Group became aware of this on Friday morning and took
immediate steps to adjust the list processing configuration, much of the
damage had already been done. Mail queues on the student email server were
saturated with close to half a million messages in the queue at its
peak. The server was still severely stressed on Monday of this week having
been spent the weekend trying to handle the mail load. As well as the
sheer number of emails, the file systems on the server filled up and
exacerbated the problem.

A disk failure on Tuesday no doubt brought on by the severe processing
load didn't help things at all!

The end result for most students has been an unreliable email service for
much of the last week with a large number of students receiving numerous
messages responding to the survey.

The University does apologise for any inconvenience that these disruptions
have caused. The survey department has been briefed on the appropriate
procedures to be followed for any future surveys in order to avoid a
recurrence in the future.

Mick Houlahan


Tales from the post office .01

Once up on a time an old lady lived by herself in a tidy little cottage, tugged away in a corner of Sydney suburbia. She lived alone after her husband died and her children moved away, spending her last days in solitude, as time ruthlessly chip away at her body, her mind, her memories.

Each day at 10 past 3, the postman would rumble by in his orange safety vest and AusPost issued bike laden with letters. Eagerly our lady (not old lady any more, for old is a such sad word) would wait for communicate from her bloodline, some tenuous link to her once glorious youthful past.

On a post card summer day (blue skies, white clouds, birds in the trees, the works), the postman arrived with clockwork precision at 10 past 3. He bent down from his seat and inserted a letter into post box no. 11 Evergreen Rd. If you were right above him, and the angle just so, I bet you would have seen in his helmet's reflection, our lady dismounting her front porch stairs with great vigour and marching towards that little imitation of a house mounted on a pole. Flashing a big grand-motherly smile at the postman, she bent forward in that stuttering manner that betrays her advancing arthritis and delicately extracts a small white envelope addressed to "My dearest Grand Mother". As the postman rode off to his next appointment our lady walked back to her cottage with her precious letter.

Once inside she placed it carefully on the drawing table and with hands shaking slightly picked up a rarely used letter opener. With precision that comes to all women through a life time of sewing and stitching, she neatly sliced the envelop open and its content came tumbling out. A printed letter with all the usual niceties, sentimental words (generated by a script somewhere on the net), and a not so subtle reminder - "My birthday next week, I am really looking forward to it." With joy in her heart, our lady packed her bag: wallet, jewellery, spare keys, and other stuff old ladies put in their bags (probably pepper spray too, in that day and age). After locking her door she sets off on a 40minute journey to the post office, her mind's eye saw a face vaguely remembered from obligatory family functions, made handsome and adorable by time's passage (with a disturbing resemblance to her dead husband when he was young).

A slightly fluttered and out of breath is how we found our lady when she arrived at the post office, cheeks flushed with a healthy glow, one outshone by the glow of her eyes. After waiting in line, she was finally served. A few short minutes later a carefully made money order was ready, a card selected with great consideration and finally a package of adoration and love was made and sent on its way across the land. Bursting with ecstasy of her accomplishment our lady starts her long trek home, every one she encountered a receiver of her smile.

The post office lady looked on with great sadness and helplessness at her departing back as it vanishes into the harsh glare of the afternoon sun. For the 4th time in 2 month, she helped our lady craft her packets of affection destined to the same grand child.


501 years from now

A new star will be born in the sky. An incandescent flare of rainbow colors shall crown its descend from amongst the stars. Its birth shall herald not the second coming of Christ, but messages from the past.

Welcome home KEO.

KEO is a time capsule for all of humanity. It is designed to take a snap shot of where humanity stands now, our culture, our dreams, our knowledge. 501 years from now, roughly the time it took modern civilisation to evolve, it shall come back to Earth as its orbit decays, to provide our great-great-great-great-great-children a treasured and diverse glimpse back into a critical moment in humanity's history.

Every one is invited to store a message. Only then can KEO provide a complete picture of the state of humanity, across a range of incomes, background, religion, political alignment, tv-show fandom, geological location, the list goes on. When KEO is opened by our descendents, it will contain sufficient data for them to fully appreciate who we are: human beings trying to do what is right.

Regardless of who you are, I implore you to act now. Entry for messages closes soon, so don't miss out on this once in a life time opportunity. Who knows, one day your descendents might read your message :)

If you have no idea what to write, then write about your dreams and aspirations. For what reveals better who we are then what we strive to achieve? It defines our life, for it drives it.

Picture of the day

I finished all my exams today, so I am now FREE!!!!!!! I was going to make a post about it, but decided not to. In the course of finding a suitable link however, I came across this:

Get well soon emma! :*)



Notes! Fresh notes for sale! Get them while they are relevant!

Only $2.99! And if you pay by credit card, you get next years notes FREE!!

See you on the other side...


Printing over a network: Linux to Windows


Helped greatly by this guide I managed to get my laptop (which is dual boot Debian/Windows XP) to print across the network (which is all run on XP) using CUPS.

Package setup

First, I had to get all the required packages, which was accomplished by the following rather lengthy command:

apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient gs-esp a2ps

I don't know what all of those do, but apparently they're necessary.

Printer/host discovery

The next thing to do is to use the samba client to have a look at the shared printers on the network:

/usr/bin/smbclient -L [host name] -U [username]

Instead of using the host name, the IP address can be used instead, with -I instead of -L.
This will bring up a list of shared resources, which will tell you the name of the printer (if you didn't know it already).

CUPS setup

The following command is to verify that CUPS has the smb backend (again, not quite sure what this is about, but the guide told me to do it...)

ls -l /usr/lib/cups/backend/smb

Lastly, you need to set up the printer(s) you want to use:

lpadmin -p [printer name] -v smb://[username]:[password]@[host name]/[printer name]

/usr/bin/enable [printer name]
/usr/sbin/accept [printer name]
/usr/sbin/lpadmin [printer name]
Integration with KDE

You should then be able to go into the KDE printing manager (application menu -> settings -> printing manager) and add your printer . Since you've already added with the above commands, KDE will find it in localhost. Down the bottom of the printing manager, where it says "Print system currently used:" select CUPS. Then you can right-click on the printer and click "Test printer..." to print a test page, which prints you a nice colour wheel and information on the page size etc.

Last words

So now I can just print straight from Linux, without having to reboot into Windows. :) Now all I need is a Linux-compatible wireless card and I won't need Windows much at all...



World calamity

NOOOOO!!! *cries* Alright, that's it, the world is screwed. I'm moving to Mars - anyone got a spare spaceship I can borrow?

In case you hadn't guessed, I'm referring to the results of the US election. Techinically not quite over, but I have a sinking feeling there aren't going to be any last-minute miracles for Kerry. :( Four more years of random invasions and ware to increase terror, and up to three more years of watching our PM suck up to a moronic redneck cowboy. All I can say is: bugger!



'live and kicking

Sorry to disappointed every one, but I am still not dead yet ;)

stuvac has well and truely commenced, and along with it the cramming and note making. Being a nice guy, here are my notes for elec1102.

Nothing much to report otherwise, all is quiet on the western front (a quote Collateral reminded to use again).

Oh, one last thing, if you ever have to deal with file names with spaces in them, and xargs doesn't treat them properly, as it delimits on \n and whitespace, you can use find -print0 and pipe into xargs -0 and that ought to fix it.

find ./ -name "*.java" -print0 | xargs -0 javac"
Will handle files like transactionLog(edited at uni).java *rolls eyes*

If you are american, remember to vote! I'll be watching....

Till next times, cheers and good faith,


Wireless router with NetBSD 1.6.2 on Blueberry ibook

Update: 5.11.2004 - removed extra ipf rule that was not required and stopped computers connected to wifi from connecting to lan based servers.


A few nights ago I decided I wanted wireless access at home. At the same time, I realised my bank account won't support the purchase of any additional wireless equipment. Its then that I recalled the fact I have a old blueberry laptop, that for one reason or another, runs netbsd. This blueberry ibook was also equipped with an airport card.


This document details (breifly, for I am never good on details) the process I went through of setting up a wireless router with MAC address xltering.

Note that I assume you already have netbsd 1.6.2 or greater installed. How to install netbsd on a blueberry ibook is a complete epic in itself, and frankly, I haven't the faintest idea how I accomplished it. I more or less woke up one morning, and it was booting. Honest.

Interface setup

My network is structured such that there are 2 subnets:
  1. for lan
  2. for wireless
On the blueberry ibook, gem0 is the lan interface, and wi0 is the wireless interface. Replace all instances of these names as you see fit. These interfaces are configured via the files /etc/ifconfig.wi0 and /etc/ifconfig.gem0 respectively:

steve@eva00::~> cat /etc/ifconfig.wi0
inet up media DS11 mediaopt adhoc nwid g3_bridge
!wiconfig wi0 -c 1
!wiconfig wi0 -p 1
wiconfig wi0 -c 1 causes the airport card to create IBSS, so other wireless devices can see it. -p 1 causes the card to enter into BSS mode. Now this isn't strictly correct, but some how it magically works. If you know why, feel free to let me know! :-)
steve@eva00::~> cat /etc/ifconfig.gem0
inet up netmask
media 100BaseTX

Routing and NAT setup

Routing and NAT under netbsd is fairly well documented, so I am just going to be brief:
  1. echo net.inet.ip.forwarding=1 >> /etc/sysctl.conf
  2. echo pass in all > /etc/ipf.conf
  3. echo pass out all >> /etc/ipf.conf
  4. echo map gem0 -> > /etc/ipnat.conf
  5. echo ipfilter=YES >> /etc/rc.conf
  6. echo ipnat=YES >> /etc/rc.conf
  7. shutdown -r now
Note that this is strictly get-it-working-ASAP configuration. Feel tree to tweak them to your heart's content. At this stage, you should be able to get a client to join the network in adhoc mode, and have them ping any machines on your wired network. If you have Internet access, simple set the proper DNS/router parameters.

MAC filtering

For one reason or another, ipf doesn't do MAC filtering, so we are going to do it via ARP tables. It might be nasty, but it works :-)

Basically we map all IP address to some dummy IP, so any one connecting will be royally buggered. To let a trusted host join the network, we will map their IP to their MAC address. I should pointed out that a sufficiently determined attacker can easily capture enough packets to determine both the IP and MAC address required to access the network. This is not the magic bullet, just another fence, and not even a tall one.

The arp utility is used to create our ARP table, and set the router to act as an ARP server on the wi0 interface, so it answers all ARP requests on the network. The command
usage: arp -s hostname ether_addr [temp] [pub]
is used to map a hostname (IP) to an ether_addr (MAC), and if the pub keyword is present, it will be published, and the server will act as an ARP server for that host. Now has 256 hosts, and doing 256 such commands is a pain. Thankfully arp -f allows us to specify a file containing lines with the same syntax as above, to add entry to the ARP table. But this still requires a file containing 256 lines. Bummer.

Its at this point the legendary laziness of geeks prevails, and arp-deny is thus born. This simply program reads in a file containing trusted hosts' IP and MAC address, and generates output suitable for use with arp. I wrote a simple script to re-create the table, so I can easily add new hosts:
root@eva00::~> cat /usr/pkg/etc/rc.d/arp-deny.sh

# clear the table
/usr/sbin/arp -d -a

# re-generate the arp-deny list
/root/arp-deny/arp-deny 192.168.1. 00:00:00:00:00:00 /etc/arp-allowed > /etc/arp-deny
# re-populate it
/usr/sbin/arp -f /etc/arp-deny > /dev/null 2>&1
Yet another get-it-working-asap hack :-) For reference, here is my /etc/arp-allowed file:
root@eva00::~> cat /etc/arp-allowed 00:30:65:09:73:ec 00:0d:93:eb:01:11 00:80:c8:07:3f:f9
Values has of course been censored :-) To add a new host, simple do
echo IP MAC >> /etc/arp-allowed && /usr/pkg/etc/rc.d/arp-deny.sh
Easy as pie :)


This really calls for a bridge, but for some reason I could not get a wireless/lan bridge working, so the router option was taken. If you can create a bridge, then by all means, do it. Ignore this method completely.

With the above configuration, in order for your lan ( clients to access their wireless ( siblings, you need to add a static route, either on the machines or on your router, so that they use our router ( as the gateway when attempting such communication events.

MAC filter is also rather weak. Its strongly encouraged that you read up on WEP and enable it.

Hope this was helpful :-)




trips / camps / old days

fun / creative / arty





informative / instructive

rants / social commentary / stuff

talks / conferences / reports


Superconductors and induced current

A very short summary of super-conductors: they are conductors that provides no resistance to a current flowing through them. Despite the rather simplified explanation, they are an extremely complex study in quantum mechanics and a whole slew of scientific research besides. But for our purposes, the above definition shall suffice.

Now I'll introduce Ohm's law:
V=IR .... (1)
V is voltage, I is current, R is resistance. So, given zero resistance in a super-conductor, one would logically expect therefore, to never measure a voltage across a superconductor, even if you injected an infinite amount of current. On a side note, superconductor have what is called a critical current above which they cease to be superconductors.

And the last equation for the night, is one that gives the electric field (E) induced by a changing magnetic field, (B).
E = -dB/dt ... (2)
Simply put, E is the negative gradient of B over time. Now here is what I am puzzling over:
  1. Let there be a changing B around a superconductor loop
  2. By (2) this would produce an electric field, and thus a voltage, in the superconductor loop
  3. Yet by (1) this is impossible, because anything multiplied by 0 gives 0
What it means if the following:
  1. I have made a mistake somewhere
  2. Ohm's law doesn't hold for superconductors.
Its most likely 1 is true :) Either way, here are more questions

  1. So what does happen when you try place a superconductor in a changing magnetic field?
  2. What would you measure?
Oh, and here is a fractual pi



Close your eyes... relax....

And fade into a world where everything happens at snails pace... WAKE UP!

No idea what that sentence had to do with anything, but today has been a slow day, and enjoyable day. A day when I could come home, and not do *any* uni work.

It was a beautiful day :)

Electromagnetism module in physics finished today, and we start quantum mechanics (lies to children style) tomorrow. Can't wait :)

Before I had off to bed and read Heart of Winter, I would like to bring to your attention a thedailywtf, a site where amazing working production code is displayed for the world to admire. *cough*

Oh, one thing before I leave, do you think a person should be able to legally own an idea?



Rambling thoughts

Poor neglected blog...

On Wednesday was the parade for the Olympians. Pics will hopefully go up *nudges steve*.
NB: I am to blame for bad photography...

A sad thing I noted today, whilst comparing the front pages of The Australian and The Sydney Morning Herald. The only story the two papers had in common was about Sally Robbins getting slapped...just goes to show how objective our media are, eh? The only thing they can agree is front-page news is a story about someone getting bitch-slapped....and that it featured high-profile athletes only adds to the tragedy.

O tempora! O mores!

Other than that...SUSPECTS trip coming up (whoo! 3 day engineering piss-up - and it's educational!). Can't wait for the break...I need a holiday. And it also means I will get a chance to get Linux. :)

May Windows, along with arts degrees, be commended to the dustbin of history....
(Dr. Karl rocks :P)

Another thing I am looking forward to: October 9, the day we get to vote Johnny out. Make that another one for the dustbin...



Tale of a graph

The tale of the graph started like any other: I had some data, and I need it to be plotted, nicely. The data in question is the scalability resport for emma's RSA implementation. One would naturally fall into thinking it would be piece of pie getting it to work... but alas, it was not so. Neither open office nor appleworks would plot this to my satisfaction, and I could not find another suitable tool. In desperation I turned to freshmeat, and behold! ploticus was brought forth to stand trial. Scanning through the concise documentation, the belief this was the one took hold.

After constructing a commandline as mighty as any I have ever constructed, I invoked it through the glory that is bash:
ploticus -prefab lines x=1 y=2 y2=3 data=rsa-scale.txt 

header -png title="RSA implementation scalability"
titledet="align=center" autow=yes
xlbl="Input size (characters)" ylbl="Time taken (ms)"
ygrid=yes name="Time for encryption"
name2="Time for decryption" ylbldet="adjust=-0.1,0"
-pagesize 20,20

In the wake of this spell, a graph sprung forth, and my eyes beheld such beauty the monitored sung in its percuilar high pitched whine (or maybe thats just the high freq filtering caps dying...). I give unto the world, the graph.

Thank god for open source software :)





My sheer stupidity lead my software group to lose 2 marks :S F**king hell. For the unwary, .hashCode() can, and will return negative values. I relied on it not to, even though I should have realised it will, due to the algorithm used. This had the effect of breaking our system based on the strings entered, which was really f**king bad.


Sorry sorry sorry sorry sorry sorry sorry! :(

I will do my best not to make the same stupid f**king mistakes again.




Something should be made know as soon as possible. Like on the front cover Big Java. After bashing out a lot of repetitive code to access class variables by name, we were told there is a method in Object that does it!!


I refer to:

public final Class getClass()

Returns the runtime class of an object. That Class object is the object that is locked by static synchronized methods of the represented class.

the object of type Class that represents the runtime class of the object.

And looking up the class Class (hehe), we are advised of the following methods:
getDeclaredField(String name)
          Returns a Field object that reflects the specified declared field of the class or interface represented by this Class object.

          Returns an array of Field objects reflecting all the fields declared by the class or interface represented by this Class object.
getField(String name)
          Returns a Field object that reflects the specified public member field of the class or interface represented by this Class object.

          Returns an array containing Field objects reflecting all the accessible public fields of the class or interface represented by this Class object.

Field class has methods to converting the field into any of java's primatives as well as strings. So our code could have been a LOT smaller!


Well now hopefully the world knows. Personally I never expected such high level abstraction, but hey, there it is...




From slashbot.
...computers are built from something other than matter and occupy something
other than space...

You could actualy argue this (well I could). See, a computer has its physical hardware, yes, but tell me, where is the software? It has a representation in space and matter, but the actual alogrithm? the logic? the ideas? well...

You know why I like maths? Well one of the reasons is that it's always right. And it always has been. And it always will be. Because the angles of a triangle add up to 180: if they didn't it wouldn't be a triangle. The derivate of e^x is e^x, because that's waht e means. In science, your theories change constantly because they have their basis solely in the physical world: science cannot be separated from the world we perceive around us. Maths has isomorphisms in the physical world, but even if there were no physical world, it would still be. And it would still be true, and still right, and, at the risk of appearing completely eccentric, beautiful.

(who has never cared that other people think she's strange)


Code updated...

Ok, that's the latest version of the code, hope that link is valid, am too tired to check (4:30am start tomorrow...argh). Otherwise you can find it on my uni website.


The piece falling in place

Isn't it lovely when it just works?! Latest code is up, GUI components are now playing nicely!

Querying will be done when I have finished my tutorials/lab for tomorrow.


New shiny lines of my mind

New source code is up. GUI related methods for both vessel and passengervessel are done, the recursive descend parser has been fixed, xml writer has been written and tested slightly, xml parser/core have been modified to suit.

I better sleep before I do something silly like delete all the source files...



Even more gui...

Hurrah! The GUI is finished - until I find something wrong with it, that is. It can create, delete and edit ships, or, at least, it will be able to once the methods are written in Vessel and its subclasses. At the moment the only choice for creating a vessel is PassengerVessel, but as soon as more classes' edit(), display() and change() methods are written, more will be added to the list. Updated files are linked above. Steve, check updated Vessel dummy class for information on the change() method I need, since you weren't online tonight for me to tell you. :P

Random fact of the day:
The Japanese language had no word for 'privacy' before they encountered Europeans. The current word is simply an adaptation of the English word, written in katakana (sp?), the script used for adopted foreign words.




Well I have discovered java is not as perfect as it thinks it is. I create a window of width 750 and height 650. Then I create three panels inside it. Two of them are currently set at a height of 3000. They take up about a sixth of the frame each. Go figure.
Also, I would like to make a public complaint about BoxLayout and its power-drunk meddling with the sizes of my components. This despot must be deposed forthwith!
On the plus side, glue is the most wonderful component ever invented.
The GUI is well underway. So far I've done the main frame, functions for closing the program, and functions for getting data from the DataStore object and displaying it in a table. With a custom table model, created at the expense of much frustration on my part. But it's good now. :)

On a sadder note, my sincere sympathies go out to Jana Pittman. :( A tragic day for her.


Object Location Table

Object Location Table (OLT) code is now fully operational :-) Deleted records forms a link list inside the OLT file, with insertion and removal always at the front, so its also a stack.
  • Creating the table from scratch took 30703 ms, just over half a minute.
  • Looking up 100 random records by ID took 313 ms thanks to binary search
  • Modifying the hash and offset of the same 100 random records took 109 ms. This result is misleading since the benchmarking code consists of recording the time before the loop, and working out the difference after. So all the printing function the lookup loop does contributes to the time. In reality I expect lookup to be around 50ms.
  • Deleting the same 100 records took 609 ms, again printing was done for debugging purposes, actual time would be around the same as modification.
  • Surprisingly inserting 100 records with new hash and offsets only took 188 ms, despite the fact the internal linklist is updated and debugging output was printed. File size did not change before and after delete/insert operations, this combined with debugging output indicates deleted records are being fully re-used.
Over all the performance of the object location table itself is quite satisfactory, and should not be a bottle neck in the performance of the system when scaled to 500,000 objects.

Now for a little doom3, then its off to write the datastore and vessle code.



System design

Sometimes one does very silly things. For example, I decided to merge the ID and offset fields in the object location table. Good idea at the time: smaller files. Then we ran into the problem of how to deal with deleted records, and eventually a dirty method was used: we mark it as deleted, and forget about it. A cleanup method was required for this, to clean out orphaned records. Method had a complexity of O(n^2/2).

A good friend of mine, Ycros to be exact, was reading up on file system design. This turned out to be extremely fortunate for me. He suggested a linked list of deleted records be constructed inside the OLT. Smart. Records already have an offset field, just set it to the next avaliable record (ie, a deleted one). Aha! no need for that terrible O(n^2/2) function to efficiently use diskspace!

The problem is, since I tied ID and offset together, and insertions into the XML file are indeed at the end, it effectively meant the records in the OLT have to reflect the ordering of objects in the XML file. Bad steve!

Solution is simple: split ID and offset apart again, and re-use offsets of deleted records. *sigh* More back tracking and coding. System design document has been updated to reflect this change in design :)

*Yawn* work tomorrow, good night!


The Second Law of Thermodynamics

In the interest of entropy generation, here are some truly absurd words bound to confuse and ultimately disorder all to whom they are said:

A hill in New Zealand. This Maori name was in general use, but is now generally
abbreviated to Taumata. The name means: the summit of the hill, where Tamatea,
who is known as the land eater, slid down, climbed up and swallowed mountains,
played on his nose flute to his loved one.

very long word.

something as worthless.This is the longest word in the first edition of the
Oxford English Dictionary. Interestingly the most common letter in English, E,
does not appear in this word at all, whilst I occurs a total of nine times. The
word dates back to 1741.

muhaha....take that, ye proponents of order!



Did you know that the symbol for infinity (that sideways 8 thingy) is called a lemniscate?
The mathematical symbol for infinity, also known as a lemniscate. It was devised in 1655 by mathemetician John Wallis, and named lemniscus, ribbon, by Bernoulli about forty years later.

Object Location Table

OLT Code is almost complete. Should be done tomorrow morning before I leave for uni.



Meet emma

My loyal readers *cough* cyber stalkers *cough*, meet emma, the new co-editor and entropy generator of journey's end :)

No doubt you will learn much from her (psst she is a math major) insights in to life :)

Cheers and enjoy,

and a random latin quote

"Stultum facit fortuna quem vult perdere." - Syrus, 'Maxims'

hehe try and find out what it means.


1 thing I learnt today...

Do not set an ecryption program to 5000 bits without knowing how to terminate it.


XML Specification

XML specification for soft1902 is up. As before, feel free to comment and point out design pit-falls :)



Keeping the pool clean

If you are the owner of a pool, and want to catch those inconsiderate people using it as a loo, try this little trick from atomic:
If you want to catch out people who piss in your pool, just add 5 ppm of phenolphthaleine into the water... it stays perfectly clear UNTIL someone lets one go - then the water around the culprit turns bright red!
Been a lazy evening, just relaxed and wrote/read documentation. Oh, here is a little gem for you. My good friend and team mate victor wrote this when our tutor requested "usage stories" from us ;)
After the tragic events of the 911 plane hijackings and the atrocious acts of terrorism that followed around the world, the United Nations unanimously agreed to the need of a super database that is able to keep track of all ships in the world both military and commercial. Its purpose is purely to provide instant access for the peace keepers of the world to detailed information on each and every vessel on the face of the planet and search for terrorist activities that may threaten world peace. This database and its hyper-sensitive information will only be accessible to a handful of secret international government agencies whose job is to search and destroy all active and inactive terrorist cells.

System design and invading Switzerland

Emma, victor, the current system design has been typed up. If I missed anything, or you want to make suggestions, just comment :)

On a related note, came across the following in slashdot, on why Switzerland is a hard country to invade:

Switzerland takes theis to the extreme, actually requiring all their households to have a government issued machine gun, which their citizens learn how to use during manditory military service.
Can some one confirm/deny?

Back to brainstorming.


ibook, glasses, yet another rdp

Paid the $300 desposite for my ibook today, should have it in 2 weeks :D Mum came to campus and picked out a new frame for me... she HAD to pick the $300 dollar friends. Can't for the life of me see why they are $300. :-S

Finally wrote the proper recursive descent parser. Wrote it all in one hit, and compiled once at the end. And guess what? Besides a few superficial bugs, it works :-) All the test cases I have thrown against it didn't manage to break it. I'll read up on javascript a little tomorrow night, and see if I can put up a version people can try and break.

*yawn* Better sleep soon, might actually manage a whole night, and wake up in time, unlike on monday when I got up late, and ran to the station in less then 2 minutes (new record), then got on the train, and promptly suffered from lack of oxygen as my legs stopped pumping blood, and my heart took all the load. Almost blacked out. That was an interesting experience. The edge of my vision faded black, I lost perhaps 30% of my vision. Not doing that again anytime soon.



New code

New code. Testing with
boolean == false && ((3!=2 || 4==4) || (6-3)*(7-6) == (5*8)-(4*2*5)+3)
revealed a small bug I left when I re-wrote the function to determine if an expression is an atom.

Now I better sleep, early lectures, *sigh*


Recursion: n, see recursion

I had a lot of stuff to write about... but all that has been pushed out of my head by something called recursive descent parser. That thing soft1902 is suppose to teach me about.

The thing is see, I just finnished writting mine. With c compatible syntax, type checking, arithematic, and object descent property retrival (I made that one up). So much for that ;-)

No doubt testing will turn up bugs, but for now, I am too happy, and lazy, to extensively test it. Other people can do it. For me, its like throwing a newly made piece of art against a wall to see just how much force is required to break it. Eventually, but only after I get bored with it :-)

For my team mates, the above is undoublty good news. Now we are, oh, 10 weeks ahead. XMLCore now has query functionality, and parses files, with access control, and the ability to make objects inside objects inside objects inside... you get the idea :)

Now, lets see if I can dredge up other stuff from the past few days....
  • Shrek2: love it, just as good as the first one. Puss in boots was of course the favorite
  • Theater Sports: saw in Thursday @ Manning house, absolute fantastic!
  • Glasses: eyes are getting worst :-( 650/750 in my left and right eyes respectively. ~360 for new glasses.
I had some insightful stuff to say, but whatever it might have been, writting that rdp has pushed it all out of my head... so the world will just have to be a better place for a while more :-)

Emma and victor, the url to the latest Earth package is linked in the title.




The parser is still in the works, the following has been done as of today:
  • xml declaration validation: checks for support version/encoding
  • user access parsing: now gets the proper user access levels from the CDATA section
  • attribute parsing: parses an element tag for attributes
Actual construction of objects and such should be done sometime this Friday night, XMLCore should have working reading portion done by Saturday night/Sunday morning, and writing functionality added Sunday night.

The funky query string stuff should be done by Wensday. Really looking forward to getting that working :D

Oh, and gnatt chart might get done sometime tomorrow/friday/this morning, depends really on when I wake up :P

I'll leave you with something to laugh at, and head off to sleep :-)



Its about time I introduce auto_ptr, my good friend and mentor. He taught me most of what I should know about coding, and online etiquettes. Being the talented and nice programmer he is, he wrote GPassport, a win32 library for C/C++ for connecting MSN services, and released it for the world to use, minus the source :)

A quick copy-n-paste from the site:

GPassport is a library for C, C++ developers for Microsoft Passport authentication. It is available in a DLL and thus can be used from other languages as long as the functions are exported (based on name) correctly. It is intended for developers of network client application looking to implement basic and secure passport authentication in their software, with little overhead or hassle.

While it still lacks documentation, it hardly takes any shine off this quality piece of work. Check it out if you are interested in writing your own MSN client :) A *nix version is under way, which would make it a real gem in the programming world.

Keep up the good work G


Engineer's approach to short-sightness

So, how do you retard the gradual degradation of your eyesight?

First you need to identify why is causing it. Thats simple, my constant focus on things closer then 6 meters: monitor, book, wall, picture, cat. This causes my eyeballs to deform due to muscles always deforming it to focus properly.

Then you need to propose how to fix it. To slow it down, I need to start focusing on things further away then 6 meters. Now every 30 minutes my trusty palm beeps at me, and I focus on the picture in the stairway, ~5 meters away from where I seat as I type. In addition, I have measured out a spot 6.5 meters away from my front fence, and will throw a tennis ball at a target, today an apc cdrom, with out the use of glasses. Speaking of which, on the 5th hit, the tennis ball shattered the apc cdrom. :-)

Lets see if these measures have any effects...

On to more mudane matters: The bane of my uni experience are 8am starts. I hate them, they hate me right back. I have 2 of them again this semster... joy >8(

Dropped astronomy (PHYS1500) this time around, I'll do it some other semester when I wouldn't end up with 30 hours in a week, giving me no time at all to socialise and work. Dropped Discreet Mathematics too, I really shouldn't change my first year subjects :)

Tomorrow uni starts, and I am going to have a 5 hour break between 9am and 2pm. Might see shrek2 by myself... but that seems a little... sad. Didn't get a chance to see it during the holidays, and I really don't want to miss out seeing it on the big screen!

Now for my continued saga on rescuing my linux-install: managed to get a working 2.4 kernel booting, but now I have to deal with a kernel panic.. its trying to mount ext2 for some reason! The trick was to boot into knoppix, then mounting root of the hd install with mount -o dev in order to have working devices. Once that was done, it was smooth sailing as far as fixing lilo was concerned.

One last thing, eden lost has been updated with new revision. Keep finding these tiny mistakes :P

Good will and peace,


I, Robot

Not one to pimp movies in public like this, but I, Robot was a pretty decent story: good character development, fairly strong plot and good pace. There were some plot holes, but they are forgivable. The animation however was absolute TOPS. Robots actually felt like they were moving, and their postured changed visibly yet subtley as a human would. Sonny was a definite center point, very convincing and loving character. The rest of the cast played their parts well, and some of the concepts in it are pretty cool :). See it if you can't decide between King Arthur/Spiderman2/I,Robot.

After seeing I, Robot with John, we met up with a few old friends for bowling. While there I noticed one thing: no matter how fit/graceful some one looks, the truth is revealed when they bowl. Some people lose their balance, some walk up to the foul line holding the ball awakardly, the number of variations are just too many to list! Next time you go bowling, pay careful attension :) Personally I am rather terrible. I did managed to get above 110 for all my games, except my left handed one :)

Two quick game of air hockey followed, won both, the latter barely. Could have gone either way if the operators weren't do greedy and stopped the game at first to 7! A rematch has been called for :D

Still fleshing out the story for the Forgotten World series (first of which is Eden Lost)... more on that later :)



Random Thoughts Collection

Got a random thought/rant/comment on something? Add it to this collection by commenting below! :)


eden lost

That little story (5259 words) have mine is responsible for my lack of updates! But its almost done now, so give it a read, and let me know of any bugs :D

Went over to atomic anth's internet cafe place (King Internet Epping) to setup the dual PII I sold him as a dedicated CS server. That was a rather educational experience :) Ran into Chris Gi, which was a pleasant surprise. Downloaded openbsd 3.5 off his 1.5mbit connection :D

If he had rebooted his modem as I told him to, I should be able to ssh into the box...

Any who, today I had a hair cut, now I am lighter, my head colder. I don't know what to think of it either... its... well... interesting :) Before that however I had my first piano lesson in some 3 years. Picked up a lot of things, mainly playing style and the subtleties of elegance and style. An enlightening experience.

Before any of that however, I had to work. Mother exchanged stories of post liberation China with the workers, stories of how 4 people and a child lived in a room 11meter squared, of units with out toliets or showers, of students fainting in class due to lack of food. All the suffering was brought up on them by the decisions of one man who had China's people on a leash: Mao Ze Dong. His insane attempt to make China top of the world through production of low quality steel drove the country to the knees.

Here is an example of how bad things were: father of three was beaten to death because he tried to steal a cabbage in hunger.

The saddest thing is the people of today still worship him as China's saviour.

Now to write the outline for the Eden lost's 3 sequels.


Tale of an old VCR

Mum got a copy of "daddy day-care", on VHS today. Naturally I was then called upon to setup the required AV appliances to get it playing on our TV. Now normally this isn't much of a problem, except the VCR and our new TV haven't met yet, so configuration was required on my part.

Fine, I said to myself. Piece of cake, you have done much harder stuff. So in I come into the living room, VCR under my arm, expecting to be on my merry away in around 5 minutes.

Boy was I in for a surprise.

Firstly, when I said old, I mean OLD. As in, no AV outputs. The VCR sits between the aerial and the TV, and inserts its pictures into an unused channel. The trick to get it working is to find that channel. I brought up the TV's menu, located the proper setting, and told it to "auto tune" after setting the VCR to play so I know when the right channel comes up.

First pass from 40-800Mhz... nothing.
Second pass... nothing.
Third pass... nothing.

At this point I was about to give up. It takes 6 minutes for the TV to scan its entire range, and auto tune didn't find anything. Bah!

One more scan I thought. Just one more. I sat myself down in front the brain-killer, and set auto tune to work, watching the snowflake patterns as a fish would watch a lava lamp. At 592Mhz, my then bleeding eyes picked up the distinctive image of Eddy Murphy (sp?)! Aha, found it I thought, and waited with glee for auto tune to realise it has found a signal it doesn't already have and stablise. Only that didn't happen. Auto tune kept sat on 592Mhz, then kept going.

The world tripped over and fell on its face.

I stopped auto tune, after some choice swear words under my breath due to proximity of my mother, and manually tune the frequency to 592Mhz. My mother finally took notice and made appreciative noises, then called out for my cousin to join her.

I was given a lolli-pop for my troubles.

Wasn't that exciting? I thought so, you wished you were there, totally. To add to your growing excitement, here is a list of things I picked up today:
  • middle click on a tab in fluxbox allows you to group windows by dropping it onto another window.
  • aterm's transparency option doesn't work with qiv any more. One needs to use something like feh to set background
  • nestle is pronounced ne-sle, silent t, not l, hence, not nes-le

This informative blog entry was brought to you by a credit in ma1001, a distinction in ma1002, in conjunction with another distinction in phy1901.




As promised, its up now. Head over to the new download page to get it :)

Have fun,

Catching up

Still trying to catch up with my online life after ruxcon :) So here is a quick summary to bring everything upto date:
ruxcon 2k4 ended last Sunday. It was absolutely fantastic! On the second day I managed to:
  • buy a ruxcon t-shirt. I thought they ran out!
  • participate in CTF and managed to crash .20's sshd :P
  • went in the THC trivia with profx, aday, zardoz and others, and won!
  • due to winning trivia, got myself a copy of Hacker's Delight.
  • got really familiar with knoppix-std

Productive no? :)

Ruxcon was an immensely educational experience, some memorable talks included:
  • hiding data in file system grey areas (FIST'ing any one?)
  • hybrid approach to network monitoring (PAPmap)
  • social engineering, with real life examples

Kudos to the ruxcon crew for organising such a fantastic event! They even subsidised the drinks at the end :D

For some unknown reason that strangely makes sense, I was more productive in the last week of 6 work days then I ever was. Pushed out 3 more deviations, all vectors, which I am coming to love. Its very *me* :)

It was only natural, the night after ruxcon I a program for reversing the virtual world hash austnet uses to protect its users. Nothing exciting, but it works :) I'll upload later tonight when I am finally happy with the code.

Thats more or less it, not very exciting is it :S Now to get back to this lava lamp I have agreed to do for ~beef... grr..



Here is a summary of some stuff I wrote for one reason or another. Source is provided where I am not overly embrassed by the code :)

Please submit bug reports etc by commenting on this entry :)

  • html2pml
    Converts simple html to pml


    • Works where python is available

    • Works pretty well :-)

    • Preserves bold and italic


  • lagrange polynomial solver
    Attempts to fit a lagrange polynomial through the give data points using the matrix solver library, which has also been updated to be cleaner and better.

    • Small
    • Works :D
    • Portable to almost everything under the Sun
    • Outputs in a format that can be easily pasted into mathpad or matlab for plotting


  • ictor
    An OISC interpreter written in C as a base for obfuscation excercise.

    • Small
    • Fast
    • Portable to almost everything under the Sun


  • arp-deny
    A quick program I wrote to make life easier when I need to do MAC based filtering on my wireless netbsd 1.6.2 router. It simply prints to stdout IP/MAC mapping in a format suitable for use with arp -f taking in to account allowed hosts etc. This was used in my efforts to create a wireless router using netbsd.

    • Command line based
    • Easily scriptable
    • Works!


  • reverse-vw
    Another basty hack I wrote one late night/early morning after ruxcon. Reverses austnet's vw about generation of possible hostnames from a given format string, then creates the vw string using austnet's hash function. When collisions are detected, the generated hostname is looked up via dns to make sure its not a false positive. It must be noted false positives are possible, even if the hostname resolves. Only works in *nix! You will need to modify source to compile under windows.

    • Command line based
    • Flexible format string
    • up to 8 numerical replacements
    • DNS lookup to reduce false positives


  • myroom[2]
    My first 2 game, simple break-out-of-room style puzzle.

    • Makes you hate me
    • Opengl accelerated
    • In game console
    • GlUT library for portability


  • mp3Organiser
    A Visual Basic program for oganising your (massive) mp3 collection :)

    • Sorts files into directories based on specified fields of ID3v1/2 tag
      • Sorts incrementally by artist/song/genre/album/etc, in any order
    • File renamer to rename songs based on ID3v1 tag information
      • File renamer supports format strings to create your own combination
    • ID3Tag removal utility to remove ID3Tags
      • Can be applied to entire directories
    • ID3Tag Editor with single and multiple file support
      • Can add id3v1 tags to files that doesn't have them
    • Very cool busy animation :)
    • Extensive online documentation included


  • n30n
    A visualisation I wrote for a friend's band. Started off as a particle engine, then had motion blurr, scripting, and sound recording added to it. Can you say feature creep? :P

    • Opengl accelerated
    • Scripting support
    • Motion blurr
    • Induces motion sickness in some ;)


  • matrix solver
    Update 7/5/2005 - solves for parametric matrices. Update 4/5/2005 - proper detection of the nature of solutions, code clean up, as well as fixing the infinite loop that occurs for certain matrices. A simple program I wrote after learning about matrixes. It performs Guassian elimination on a given matrix, then uses what I considered a very elegant loop to perform back subtitution to solve the system of equations where a solution exists.

    • Command line based
    • Detects unique, parametric solutions, as well as no solutions
    • Prints unique and parametric solutions
    • Works! :)
    • Will print out working
    • Small


  • img2text
    A basty hack I wrote one late night/early morning after seeing a image represented by letters of different colors in html. It could use more work, using an index system with CSS for example to drastically reduce the size of the produced HTML. W3C compliant html would be nice too :) Only works with tga images!

    • Command line based
    • (Auto)scaling



Coming live from ruxcon

At ruxlan right now, where zardoz, aday, dt and some other crackers are working at full speed to CTF

There were 2 talks earlier, Reverse engineering malicious binary, which was some what enlightening, and Recent developments in network intrusion detection, which was really interesting.

Got a dead tree copy of Phrack 62, horrah! Mitch(#linux-help) and I entered in the pool competition, where we were knocked out one game away from the final! Truth to be told, we only got so far because our opponents keep fouling on the black :P

Any who, just got the box up, going to play on the network a little :)

Thankee-sai, long days and pleasant nights,



Sorry! I have been neglecting this due to erm... various stuff, like work :)

Ruxcon is tomorrow, Aday and ProFX are sleeping over tomorrow night. Finally get to meet ProFX :D Boy are we going to have some fun :)

Work is surprisingly art-inducing. There are 2 more new vector pieces on my deviantART page. Check them out :)

Speaking of deviantART, sydneyDA meet went well :) I met Thoran on the way there, what conincidence! I sat in the right place, looked down at the right time, and cityrail had track maintenance on Thoran's line on the day. Afterwards Thoran and I trekked from Milson's point back towards Central to attend Sil's b'day bash, which was *also* fantastic. Had my first tequila shot, with lemon and salt :)

Oh, we met a guy giving away free hugs in the city :)

Any who, gotta run and watch Pay Check.

May your spirit ride always the thermals of life,



Nothing hurts more then this, not even tooth aches.

Its twists your heart, a knife to cut you down where you stand. And yet you won't fight it, won't resists, just to glimpse the face behind the pain.



There was a girl in Vietnam, squatting in the shit and waste of her village, pouring water from a tin cup into mud in the rain.

She knew the truth.

There was a man in a building, coming down from cocaine, smashing his head against a mirror, laughing at the rivets of blood running down the glass.

He too, knew the truth.

There was an old soldier, who lost his legs and arms in the war. When ppl ask why he did it, and what it got him, he said "See where my arms and legs are? Thats how I like it".

He sure as hell knew the truth.

There was a beggar woman I saw on the high way once, picking up the shit people throw out of their cars. Then she would find a over pass, and dump them all back down again.

She tried to find the truth.

I saw a thirsty man once, begging for water in the rain. Some one finally gave him some, he sat down, lifted his feet off the dirt, and washed them. Then he smiled and said "thanks".

He wanted to deny the truth.

A man with no arms jumped off a building, claiming he can fly. He laughed all the way down, and I think he is still laughing.

He saw the truth.

The truth isn't out there, its right in front of you, if only you would turn around and see.

I am still turning.


Song of Susannah, bookwarez, and hour glass axels

Song of Susannah
Just found out today the 6th book in Steven King's Dark Tower series is out! I have been eagerly anticipating this! Can't wait to see what happens. Now if only my palm cradle wasn't dead... *sob*

Not a big fan of Steven King normally, never read any of his horror/crime books, but he weaves an amazing tapestry that is the world of Roland, gunslinger. I would recommend -any- one with even the smallest liking for fantasy to read it. Its a ride you are unlikely to forget.

Now I didn't mind paying for Song of Susannah, but at $80, no thanks. So off I go to my usual source of bookwarez, and *gasp* Couldn't join the channel! After a little reading, the following process is required to log onto #bw:

  1. join #bookwarez
  2. type !bw to receive invite to #bw. Type !rules too.
  3. after you have got the invite, join bw

Everything is as per usual.

hour glass axle
Went to the 2nd hand outlet, and found they have sold/lost that toy I was going to use my for physics competition entry :-( So on the way home, I was naturally thinking about a solution, and suddenly realized something: the driven axle doesn't -have- to be a cylinder! If it was like a hourglass on its side, with the rubber band looped around the middle where its narrowest, and winding around out towards the edge, then the amount of torque supplied would gradually increase! This means
  • at first, there is small torque, as radius is small, but high acceleration, as rubber unwinds faster
  • then as the rubber band unwinds up the sides, torque increases, acceleration decreases, as rubber banks now unwinds slower.

This combines to give the result I was hoping for earlier with a 2 drive system: fast acceleration, then slow but high torque drive up the ramp. Now if only the exams can be over quicker!

Back to physics study. ma1001 went alright, lets hope phy1901 does too!



Taylor polynomials and series

I really bloody hate them...


It just doesn't click with me :(

Hope the one tomorrow isn't too hard, I am good with everything else. I hope...

Good luck!

Out with the old, in with the new

All soft1901 files on this server have been removed in order to make room for new stuff. As such, all old links will be broken. If you need any of it, drop me a line.


The bubble bursts!

SpaceShip One's maiden flight went with out a hitch! Horrah! Time to start saving for my trip into space! :D

Congratulations to all the people behind SpaceShip One, from the engineers to the cleaners, the millionaire sponsors to space-crazy average Joe. With out your desire to explore space, this would most likely remain a dream until the end of my days.

view from spaceship one
Look at the view. I would give much to see that.

Any who, back to more immediate and life threatening concerns: exams!



An Ending and a Beginning

Today signals an end to late nights. Partially due to the fact I need to get my sleeping pattern in place, but mainly due to something else...

I think I'll miss those nights.

Kevin came over, and we had a blast mucking around at bi-centennial park. Plenty of pictures (none of me, as usual), I'll try and make something nice out of it.

Tomorrow will signal the beginning of an new era in space flight in my opinion. Commercial civilian space slight. SpaceShip One launches tomorrow, and if they succeed, I might actually realize my dream of getting into space!

spaceship one
God speed!

This head ache and sore legs is driving me to distraction. Time for sleep.


Kevin is coming!

Kevin is BACK IN SYDNEY, and on his way to my place! Horrah!

No idea what we are going to do once he gets here... but we will think of something!




Year 12 pictures

Found some nice pictures from year 12 today, made them all into a nice album for your viewing pleasure.

However in order to accommodate the 80 or so pictures, the following albums were removed:
  1. P4EE Launch
  2. Tony's 18th
  3. Paul's 19th
  4. My computers

In the remote event some one wants them, drop me a line.

Back to study, need to brush up on my waves.



Cats, ciphers and cursors

All things starting with C
Cat was up to its usual tricks: standing up right on my desk, front paw on the window frame, looking curiously outwards, while busily slapping my in the face with its tail. I noticed between one swipe and the next, it was making peculiar noises, and thought initially, it was communicating with another cat, one outside the house. To validate my astounding application of logic, I had a look.

I couldn't have been more off the mark.

My cat, was imitating the call of birds. Here it is again, to remove all traces of doubt: birds. I'll try to get a picture next time, and a sound byte too! Maybe it was trying to decipher whatever ingenious system birds employed, so it can in turn, inform fellow cats world wide of the bird's evil master plan to take over the world.

There is a cold war right under our noses!

/off with the tin foil hat

Don't worry, this is not one of my rants on encryption etc etc etc , but rather, a nice quote I came across when reading a paper on why digital rights management is bad:

Schneier's Law: "any person can invent a security
system so clever that she or he can't think of how to break it."

The wonderful little magic picture that is our virtual hand in computing. Where would be with out it? For some of us, its an extension of our hands, in cyberspace. Its only natural we want it to look good :-)

Whilst hunting for a replacement cursor set, I came across xsx's fine work. Just what I was looking for. Its big, bright, has lots of nice colors, and its also translucent.

que "oooooooooooooooh" "awwwwwwwwwwwwwwwwww"

If you (un)fortunate to be running XP, get it, it will make your life a little brighter :-)

Thats more or less it today. I was going to work on img2text some more, implement run length encoding, and use of a index for the colors, to reduce over all size, but didn't get around to it.

Any who, back to my hole...

Diced, sliced and deep fried

Thats how I'll be for the physics exam! Gah, I *hate* waves! DIE *stabs waves equations*

Lets hope I pass, and lets hope all my further studies never ever touch up on waves, or driven oscillators, or damped AND driven oscillators. Ever.

*sob* back to trying to work out this derivative *sob*



neophyte (fubar bb, on the right) argued that
was the -real- Dr Zoidberg emoticon. After wasting much bandwidth, and the massacre of hundreds of packets, and genocide of millions of innocent photons, the following compromise was reached:

It shall be declared, that from this hour forth, Dr Zoidberg Emoticon is defined as

Woop woop woop!
Stev e

Dr Zoidberg emoticon

Yep, I am bored. So here it is, the world's first Dr Zoidberg emoticon
woop woop woop

Back to my shell,

knoppix and mbr fun

Here is how much fun you can have with knoppix and mbr:
  1. To screw your mbr, run
    and elect to install lilo into your mbr. Now this might just be me, but lilo won't install, complaining something about my video card, and device 0xf00000 which I did not commit to memory.

  2. To fix your mbr, run
    as root by typing
    find your bootable partition, and simply do
    install-mbr -e <partitions> 
    /dev/<your master hard drive>

    Only works for IDE as far as I know. For me, it was partition 1 and 3, and thus the invocation was:
    install-mbr -e 13 /dev/hda
    For more informaton,
    man install-mbr

Here endth the lesson.

In other news, a nice boot manager is bootman in beos. It also has an easter egg. Hit 'M' when selecting your OS, and be prepared for a epileptic fit of the fractal variety.

Back to the bat cave!

Debian install @ 1am

Lets see how well this goes... Wish me luck!

The insane,


Prime patterns

I was looking at 293 (in a list of primes) just then, for a piece of erm... poetry I suppose I was writting, and realized something:
  • largest remainder of 29 when divided by a prime smaller then 29, is 1.
  • now make it 290, remainder becomes 20.
  • add 3, make remainder 13. 293 is a prime!
  • largest remainder of 293 is 1 (293%2).
  • add 1. 29311 is also prime!

And erm, thats kinda where it breaks down...

A quick search for 29311 in the prime list shows up a few interesting things... I need to ponder this more. Also realized I had some mistakes... this is very snarky math :S


Say hello to kevin

Meet Kevin C, or Kammy C as we call him at school.

Another victim of img2text, which incidentally has been updated to fix another minor bug.

Freely give what ye have freely received,

One man clean up squad

This is just fantastic. Some one put the cat's litter box under a cardboard box yesterday, denying the cat access. Whats a cat to do when it just has to let it all out? Use the pot plant in the living room of course. And who has to clean it up?

No prizes for guessing.

Never have I been so thankful for the invention of long chain hydrocarbon polymers, or plastic for the sane. I think however my sense of smell has suffered a irreversible setback, and now registers everything as cat poo.

Blood and bloody ashes!


img2text and robbie_the_seal's blog

comes img2text. Wrote it years ago for some reason I can't remember, found it again 20 minutes ago hidden away in documents/dev/archive/old projects/. Had fun with it, made a few web pages, and fixed some bugs with it :-) Silly me, had strcmp() inside an if, instead of !strcmp().

I am really losing my edge ;-)

Found out today robbie_the_seal (good friend, photographer, poet, all around top bloke) has a blog with livejournal. Oh well, not every one is perfect ;-)

Thats it for now, I better go and entertain the guests that just arrived.


new shiny blueness

screen shot

shiny and blue.. gotta love the side bars. There is one on the left too, but its hiding, as it should be :-)

Garbage collections days, xchat, SMP

Garbage collection days
Yesterday was a public holiday here in Sydney. Queen's birthday to be exact. And you know what? The garbage truck never comes around on Mondays, and thats probably why. All public holidays I can recall are long weekends, this means if the garbage collection day was Monday, 2 things would happen:

  1. Garbage people take a day off, resident are left with a full rubbish bin.
  2. The Council pay extra for garbage people to work on a public holiday.

Now since the first poses a health risk, and no sane MP would -ever- let his/her voters be stuck with 2 weeks of rubbish and a bin design to hold 1 weeks worth, it means therefore, option 2 must come into effect.

Now of course, the government in its infinite wisdom didn't want that to happen. So they came up with an ingenious idea: never have garbage collection days on mondays. Clever isn't it. This way, they never have to pay workers extra holiday pay (except maybe for Christmas, Easter, and New Year, but I am sure those are all long weekend style too).

Of course all it takes is for ONE region to have its garbage collection on Mondays to sink this consipracy theory.

For those won't don't know it, xchat is an irc client, written for X windows system on *nix systems. Now, its also available for windows. This means no more dependence on mirc, and I can sleep at night, knowing I am morally safe ;-)

Yep, thats right, every one's favorite secure-by-default one-remote-hole-in-more-than-8-years server operating system, openbsd is getting symmetrical multiprocessing support, according to this entry.

System admins rejoice!

Back to doing past papers... it redefines fun...



Home sweet home

Nothing like the fresh smell of a new install. Nothing like getting back 4 years of customisation. This is the computing equivalent of home coming.

Home sweet home.

I'll leave you with a small fortune I saw last night:

Optimisation tips for coders
  1. Don't do it.
  2. (for experts only) Don't do it yet.



BeOS and my new computer

How ironic. The first OS to be running on the new computer, is not windows or linux. Instead its an OS that died before its time, an OS that was better then windows or linux. This OS, is BeOS.

Long story short: a bunch of really smart people (Be Inc) decided to make an OS that had none of the problems of older OSs, like windows and linux, one that was built using all the new funky stuff computer science, and general experience have taught OS designers. Thus BeOS was born.

It was in a word, amazing.

It was fast, simple, elegant. Every geek's dream OS. But it didn't make it to the masses. Why? Because it was commercial, and had to keep people paid, like windows. But unlike windows, it didn't already have a monopoly on the desktop market. It didn't already have agreements with just about every OEM on the face of the Earth to have it installed on any new machines build. With such small market share in desktops, Be Inc went under due to lack of profits.

The world wept. (well the geek world did)

And now, BeOS can only be found on computers of geeks like me. A shame, when my mum should be using this. And every one else for that matter.

There is however light at the end of the tunnel. And its not a train approaching. yellowtab is developing BeOS' child: Zeta. Its up to RC1, and soon, shall be unleashed upon the free world. To some geeks, this is like the second coming of Christ. I can't wait.

On to my new computer: its faster, quieter, prettier. Had some problems with installation of hardware. The case, in order to maintain the cool all black front panel, required the removal of face plates on both the CDR and DVD drives. The provided pass through cables designed to allow connection of speaker and microphone via the front panel were 5cm too short. A shame. A few scary moments, when I thought I broke something, or did something wrong, but all has turned out well. XP and debian 3.02r2 will be installed today, or tomorrow. Also going to up the fsb to 200, giving me effective 400 external clock for both CPU and ram, giving me 3200+ speeds :-D

Horrah for new hardware! Old hardware for sale, let me know ;-)


Burrs, paintballs, backups.and ADSL

Went paintballing yesterday at action paintball, and despite the initial stuff up, delays, the pain, frustration, running, sliding, swearing, it was great fun! I would love to go again, and probably will when John's young adult group thingy organises one. There is a certain satisfaction in shooting people back after they have owned your back the previous round. *grin*

Not only was it fun, but it also gave me a clearer picture of what real war is like. Replace paint balls with real guns, replace the momentary pain with instant death (I got hit on the head a few times), intense prolonged pain (shot in the back, side, arm, let, and groin. That hector protector was worth every cent), replace the slight confusing with utter confusion and panic, and thats 1/4th of the way to experiencing a real war.

Maybe if we still fought wars with swords and arrows, we will have less of them. No longer will your enemies by a speck at the distance, another co-ordinate in the targeting system, not some inhuman, artificial abstraction of human beings. Instead, they will be people who will look at you with hatred, perhaps pity, mayhap resignation, even respect, but they will be living flesh. They will wear faces you will remember, faces to haunt your steps, your dreams, faces you see when you look in the mirror, when you look into yourself.

Perhaps then, we will all know the folly and price of war.


Oh, and it was a professionally ran exercise. Friendly people, great equipment. Definitely recommended. Paintballs also hurt, a lot, especially in the neck. A neck protector is definitely recommended, even if it makes you a little hotter.

*nurses his bruises again*

Now on to burrs! Burrs are fantastically complex puzzles. I made a 3 piece burr, whilst being simple in construction, it foiled plenty of people's attempts to take it apart, and re-assemble it. IBM's site astounded me. How on earth does one go about writing a program that solves burrs!? I can not even begin to imagine how one designs a 6 piece burr. This is the start of a wonderful addiction...

Backups are almost done, once they are, I'll probably drop off line for a day or two, until the new system is up and running again. Mmmm, more speed... *grin*

Oh, and I applied for ADSL again, this time through a friend. Hopefully it will pull through this time. 56k just doesn't cut it any more!

The world is your oyster,


Lazy Friday afternoon

Here I am, in the Carslaw computing labs, wasting time... Elec1101 lecture finished 10 minutes ago, for the last time this semester. Another half an hour to go until table tennis. First time I have played in 3 weeks!

A quick break down on stuff that happened:
new computer
All required components were acquired by Wednesday, building started the same night. All that is left now is backing up everything I can't stand to lose, and reformat.

Had a nervous time applying the thermal paste to the barton 2600+ die, and mounting the some what large HSF. Been a long time since I last build a computer from the ground up!

chasis for physics comp
Coming back from uni the other day, I walked past a second hand shop, and saw the perfect chassis for my physics comp entry! Ah, what luck :-) The nice lady has kindly agreed to keep it for me, and I'll pick it up next Tuesday. I wonder what other bits and pieces they might have inside that could be of use. Love junk hunting, hehe.

assignments and such
Got my soft1901 task Z back, along with ma1002 assignment 2. Both full makes :-) Hope I do as well during the exams!

ctrl-alt-del comic
Viriix (aka Aj, Adrian) pre-ordered the first ever ctrl-alt-del comic for me, horrah! Can't wait to get my hands on THAT book. By far my favorite online comic.

Time to walk over to H.K. Ward Gym. It just *have* to be on the other side of campus...

Cheers, and enjoy stuvac !


Member of Fraternity of Petals Around the Rose.

<simpsons> I am a member </simpsons>

And the winners are...

Hrm, lets hope I could remember the results. Oh, and I am going to put my opinions on whether each winner deserved their prize. If you disagree, build a bridge, and get over it ;-)
  • Best non-GUI simulation group 2, bush fire! Good work team :-) (I am with them...)

  • Best poster, group 10 Harry Potter references galore... not real technical or design merit in my opinion.

  • Best GUI OCAR group, the only *real* 3d. I think train simulation should have won here.

Many thanks to Kathleen for helping with my presentation, and general look pretty all night ;-) Tim and Victor, being present in spirit, wasn't really that much of a comfort ;-)

It was a great night, and while I didn't win anything (I had snowflake's chance in hell), I am still glad I went. Putting "better to regret something you have done then something you haven't" into practice :-) Oh, and I was asked twice whether I have ADD. The answer is I don't know :-P

Oh, and my GTR case came, *finally*. As soon as I get a new psu, my new computer will be ready! First full format in 4 YEARS. Can you say OS rot? :P


ps. no more snarky greetings from jenny ;-)