Ah, the joy of exporting svg to raster, ready to print on to dead tree...

Firstly, export to png in sodipodi in win32 is broken, so after much hand waving and hacking about with printers (installing drivers for none existent wide format printers, printing to said printers to file, then using ghostview to open resulting postscript file, then converting into pdf...), nothing worked. It appeared 3 nights of work is all for naught!

Never fear, the penguin is near!

Rebooted into my debian install, used the slightly older version of sodipodi there to open the poster svg. Lo and behold! Its broken images and unknown fonts! Off I go to fix it all by hand, using fonts, strange and exotic, from places afar. And then it was done and done.

I held my breath, and exported to png...

There was a moment of suspense, when the world seem to hold its breath, as the export button was depressed... and remain depressed... fear crept into my heart... will it work?! will it die?! oh what shall be the fate of my labors?!

As soon as it began, it was over. The dialogue closed, and the world let out a long held sigh. I collapsed in relief over my cat, which then proceeded to craw my eyes out in an attempt to escape.

The result, 3 png with transparent backgrounds. Left and right halves in A3 size, and the complete piece in A2. At 300dpi, might files were produced. Files some 5000 pixels wide from head to toe, 7000 pixels from shoulder to shoulder. True giants to crash my measly computer into a smoking pool of melted silicon as it tries to manipulate the files into forms I desire.

Once I tamed the giants, I realized they had cute little pig tails. Well no, not really, but the proccess did produce some artifacts. Background decors are more pronounced, and gained a slightly 3D appearance. Buts that cool.

And so my adventures done, I alt-tabbed over to open office, where I resumed my favorite past time of sprouting absolute bull for software.

Ah, such is life...



Its done! Horrah!


Time to study for math1001!

A short post this shall be, much work to be done!

The poster is almost done, just need to add the contents. Any feedback on the current design would be appreciated.


The blue lines are NOT part of the poster, they are guide lines to assist in design.

hotsync cradle
Have arranged with evo to get his spare hotsync cradle, so its all good as far as my m130 is concerned.

svg -> bitmap
If any one knows of a good svg -> bitmap exporter, *please* let me know! sodipodi for win32 likes to crash when exporting to png. Makes life very difficult for me!

A new bb by a good friend of mine, neophyte, dedicated to all things fuabar'd, and scripting/coding of course :) Give it a visit, you won't be disappointed!

Now I better get back to work. ma1001 quizz tomorrow, poster and advanced task Z due wensday... ARG!

Have a more relaxing weekend !


soft1901 :: coral
Here is a mock up of the poster I am making:

poster mockup

Let me know what you think :-)

Stuff in the mail
Max Payne and Ground Control arrived in the mail yesterday, horrah! 2 games I have always wanted to play, but never got a chance to. My chess set arrived today at 0700, with all the pieces this time! :-) Also got an invitation to join the Royal Flying Doctor Society, which I will be more than happy to take up.

piano tuners everywhere
Seems they are everywhere I look, friend from uni in my physics group also fixes and tunes pianos for a living!

dead cradle
Yep, thats right, my palm hotsync cradle died. Charges fine, but not longer hotsyncs. Until I get a new one, I have to find a clever way of copying files on to my palm! Luckily a friend has a spare. Some times life just falls into place like a jig saw.

Here is a quote I have been abusing lately:

If you must face the gallows,
give a jest to the crowd,
a coin to the hangman,
ane make the drop with a smile on your face



All good things must come to an end. ods.org no longer provides a free dynamic DNS service. It now costs $5 USD. This means freespace.bsd.st is no longer pointing to my gateway.

IE and CSS
Picking an old scab here... but BLOODY OATH!! You would think MS would do something about IE's CSS support. Its down right terrible. For example, this most excellent website looks fine with the side bar at the top in firefox, but in IE, its down the bottom. Its the only browser that does it.

If you are not using it already, get firefox, you won't regret it. This firefox pimpage and IE bashing was brought to you by the number pi.


Math question
Answer is 25 :-)

New code from Tim and Victor has been integrated into the project source.

Renamed to Outbreaks and modified to work properly. In future Tim, please ensure the code compiles and runs!!

Modified to take into account empty spaces, which it can not cross.

Tim, you need to a) make them reproduce more b) don't let them die so easily. I want them to be around 100 years into the simulation!

Victor, try to make the corals die when no plankton is avaliable. Currently they can sustain themselves purely on photosynthesis, make it not so.

New class introduced to seperate coral colonies, to better observe emergent behaviour. Think of them as deep rents in reef that starfish/coral/tritonshellfish can not cross.

Still here, arg, I am going to see a doctor tomorrow if this persists.

I can almost play it properly, another day of pratice...

Tim, Victor, sorry I can't make it to uni today. My digestive system is still rather... delicate for me to be making such long trips.

In other news, guess what my cousin is getting me? A duct tape wallet!! :D

[Just the thing for an engineer]



Got tired of the old layout, this is *much* prettier. No, I didn't make this, I am still trying to figure out the CSS :-) This is one of the many templates avaliable from blogger.

Let me know what you think, there *should* be a comment link at the bottom of this post.

*Stomach rumbles* This food poisoning business is putting my on an involunatry weight loss scheme :-(



Here is a nice little puzzle, year 10 math really: what is the smallest number, such that when its doubled and added to 2, its reversed? ie. find x such that 2x+2 produces x in reverse, so if x was abc, 2x+2 produced cba.

leave your answers in the comment.

Tim's new Starfish and TritonShellFish code has been integrated into the project source. Ocean::LocateNearest method has been modified to return a more uniform distribution of locations. As such Starfish no longer eats in stright lines :-)

Wheel of Time
Up to book 5, The fires of Heaven, quality is still as good as ever

Amazingly, people are still playing it, getting stuck in it, and wish me physical harm for it ;-) I'll write walkthroughs for both games when I am feeling better.

Now I am going to go and lie down... actually that is probably a bad idea. Food poisoning really REALLY messes you up :S



Horrah! The piano arrived today :-) Some brand I can't pronouce: EUTERPOL.


Soft1901 !! Updated 21.30 !!
Update: fixed problems with predators not dying properly. Coded preferential eating for the Starfish class, and coded time stepping just then to ease debugging. The source has been uploaded, Tim and Victor, please update your copies.


Computational physics started today, and got introduced to matlab. While its powerful, it does have some quirks to work with. Much fun was had using i, every one's pet imaginary number where we should have used real numbers. The results produced for a projectile at velocity 2i angle 3.14i was the cause of much mirth. At least in our group >:-) Time was constructively wasted trying to attain a circle in our phase state graph (angular velocity vs angle), and it was managed by setting l to 1/9.8 .

On my way to Wallace Theater, I witness a moment of nature's best. There stood 2 row of trees in their autum blossom, the wind came, and the leaves fell in a rain of colors, the light just right, capturing everything in a golden glow. The following was born minutes later:

Trees golden and brown,
leaves dance in wind's gentle caress,
adorning the Earth.

Peace favour your sword.


Horrah! Finnished MA1001 Assignment 2 :-) And while I was in the shower, I derived the general equation for a sphere with x/y/z scaling:


The general equation is simple, should have seen it ages ago. This must be how blender generate their meshes. Use the equation, and plugin numbers for x,y, and z at certain increments, based on the required resolution. Probably also accounts for lack of details near the top centre of meshes like this:


Where the increments in z moves the cross-section outside defined space, where x and y become imaginary.

Another wonderful thing also happened, but I'll keep that private :-) Time to sleep me thinks. *yawn*



Tim, Victor, found that bug that has been slowing the simulation down. There was a call to force repainting of GridDisplay in the GridDisplay::updateInfo() method. The source has been updated to fix the bug, and I have added a lock to the paint method to avoid further problems.



Ohh it has been a geological era since the last update... here is the past week at a glance:

Wheel of Time
Caught up to you Tim :-) Up to Book 4, Shadow Rising (or something like it)

Mum came home yesterday, and announced in a calm controlled fashion she brought me a piano. :-) She managed to bargain a $3800 piano down to $2000 including free stool, delivery, and tuning. Now *thats* bargining.

Presentation and integrated prototype went well, probably 9-10/10. Tim, please fix starfish and tritonshell fish before next weekend, and test using the latest code.

Table Tennis
Finally paid that extra $30, so now I am now a full member, no longer required to pay $3 every time I go. A saving considering I go almost every Monday, Wednesday and Friday.

Sydney DeviantArt Meet
A Sydney DeviantArt meet is being arranged, more details are they come to me.

Thats more or less everything... well everything I like to share any who :-)

Light illumine you all,


Yet *another* code update. :-)
Simulation class now creates a random object when its created, for use in other classes. This a) reduces over head from creating new random objects b) ensures the numbers are fairly random.

The speed is now assign the following:
speed += speed*sim.getRandom().nextDouble();
This ensures the starfish have different speeds, an attribute which gives some starfish a massive advantage. Tim, a suggestion would be to write a Starfish constructor that takes speed as a parameter, and assign the new Starfish the given speed +/- variation. This would lead to "survivial of the fittest" emergence.

I have just finnished The Great Hunt in the Wheel of Time series, and have started reading The Dragon Reborn. This be a nice series, right up there with A Song of Ice and Fire

Glen just informed me I have another MA1001 assignment due, this makes 4 in 2 weeks. Busy busy....

Code update:

This method has now been overloaded to support double (x,y) co-ordinates. Use this in the predator classes to check both a) coral b) other predators. This is subtly different in that it takes (x ,y), instead of (y,x), which is (row, col). The original only exists to allow for faster access to coral names.

Like wise this method has also been overloaded to support double (x,y) co-ordinates. Again, remember the fine distinction between (row, col) and (x,y). The original method only exists as a faster means of accessing corals, and might be removed if its not required. Note also the new function required the name of the organism being targeted to be passed as well.

A few small optimisations has been made to Ocean::LocateNearest, saving us _2_ sqrt() ! :-) You can only optimise the calculation of distances so far :P

Keep up the good work guys :D

And so its done. Source has been uploaded. Tim, sample starfish class has been provided. It needs more work, but it works :-)

The algorithm for drawing the grid has its complexity reduced by a factor of 4, down from O(n^2) to O((n/2)^2), using interlaced rectangles. Quick note about some of the changes:
This is no longer an abstract. Assign the name variable in the class constructor to set the name of the organism

Ignore this. I use it to make drawing the various organisms easier. You may play with it if you want, but unless you know what you are doing, don't touch it.

Set these in the class constructor to make your organisms pretty. Right now, there are only 8 combinations. This will also be worked on

Tim, use this to find the location of the closest what not

This needs to be extended to support the predator array, so keep it in mind, that for now, whilst you can "hunt" other starfish, you can't eat them. Yet.

An abstract class inheriting from Organism that provides several useful things. Read the code and comment for more details

Screen shots:

[Thats actually 3 starfish on top of each other (red dot)]

[New class relation diagram. Messy]


steve@Geofront::~>wc -l /share/tmp/*
265 /share/tmp/Coral.java
17 /share/tmp/Environment.java
195 /share/tmp/GridDisplay.java
175 /share/tmp/GridPanel.java
74 /share/tmp/Logger.java
578 /share/tmp/Ocean.java
171 /share/tmp/Organism.java
111 /share/tmp/Plankton.java
75 /share/tmp/Predator.java
409 /share/tmp/Simulation.java
204 /share/tmp/Sky.java
166 /share/tmp/Starfish.java
53 /share/tmp/TimerListener.java
2493 total

Sorry Glen, we have no where *near* 4000 lines, we might hit 3000. Bad guestimate on my part.

Code will be frozen by Monday hopefully, Tuesday at the latest.



Darn it ! I hate it when I break my word :( Sorry Tim, can't have the new code done by tonight, I have got a splitting head ach, and my mind is too tired to code any more. But its almost there, almost...

Been a long week, but a good week, and excellent week in fact, in some ways. In others, it had its share of frustrations and such.

Any who, I am going to bed before my head hit the keyboard.

Night and peace favour your sword.