Monday, May 08, 2006

Happy (3^3 - (2^0 + 0!)*cos(pi))!

More Photos!

Saturday nights party was huge. About half of the invitees appeared but that was ok as I had factored that in and we still had a good turn out :) More photos are on flickr. Don't know how much I drank but Sunday was Bad! Froggy and I went to Maccas and gorged ourselves. I wore my uggboots :) Oh and I am continuing the tradition of only expressing my age either as a non base-10 number (see invitation) or as an obscure mathemetical expression. Stay tuned for obscure C functions :)

Thursday, April 27, 2006

FlickR :)

I finally have myself a flickr account! Includes this weeks NetFox launch party. Take a geezer.

Friday, April 21, 2006

11001 Birthday :)

Saturday the 6th of May is my birthday shin-dig at Tequilarea at 155 Hindley St City at 8pm. All welcome - hope to see you there! (I couldn't resist the use of my favourite pic).

K'hap! Taekwondo...

I've been instructing at Salisbury now for about a month and I'm really starting to enjoy it. Good students in both the kids and adults classes. I think this centre might be where I end up for a while which will be good. Here's some pics from tonights class though I've realised the phone camera just isn't gonna cut it!

Tuesday, April 18, 2006

Part of a growing community

The rails community is growing rapidly with a swag of projects now adopting the framework. I, for one, am very impressed and will never go back to Java. I won't touch .Net with a 10' pole anyway! Take a look under N for our old pal NetFox :)

int foo = bar();

Well I never! I new about the classic programmer nomenclature but I had no idea those military cats had so many damn acronyms! It puts the modern geek to shame :)

Monday, April 17, 2006

Holy Crap! I think its finished!

Sometimes I wondered if I would ever finish this thing, but well, now I have! NetFox 3.8 is officially finished. The Easter long weekend was spent, for the most part, in solitude. All sense of time and reality ceased as the final shreds of code oozed onto the screen. Tomorrow is the real test. There has been a fair amount of real world testing already but tomorrow marks the beginning of install week! We are doing 12 installs over the next two week s so it better bloody work! Fingers crossed :)

Wednesday, April 12, 2006

Code Machine!

Ok so I haven't really been working on CoolTracker (April Fools! for those of you who missed the joke) but I have been coding like some kind of primate nonetheless. Consequently, I thought it appropriate to post this illustration Dad did a couple of years ago. I think it represents my obsessive nature quite well :)

Saturday, April 01, 2006

Keep track of your *cool*

Our latest product is almost ready! Its called CoolTracker and it does just that - tracks your cool. Everyday you record what you wear, what you eat and everything you say to CoolTrackers super intuitive, ergonomic, browser-based, AJAX, web 2.0 interface and it will calculate your cool factor for the day. Over time you can use its stastical trends menu to see if you are getting cooler or becoming more of a loser. We expect to sell 400 copies in April and overtake sales of NetFox in a very short period. I mean, really, who doesn't want to be cool? UPDATE: April Fools!

Monday, March 27, 2006

Go pedal power

We now have a company bike! Its not a bad bike either. I have decided to start using it for getting around town and its so cool. Why did I not do this years ago? Its good for fitness and its quick and easy, no parking worries etc. There is something about riding a bike to a client in the city which just makes me feel so cultured! Of course, this is a delusion.

Wednesday, March 15, 2006

Can't say too much now but there is a new kid on the block. An email plugin for NetFox which talks directly to Exchange. Real time mailstats for the Fox! Think I'll call it MailWorks :) Hopefully we will start beta testing in the next few weeks so stay tuned!

Saturday, March 11, 2006

Serial types in postgresql views using INSERT INSTEAD rules

Discovered a little trick last week in postgres. When you want to write to a table via its view instead of directly by using a rule it can be tricky to get the serial primary key values to set properly. What you want is for the view to behave in just the same way as a normal table. So when you provide a value for the serial it uses that, otherwise it just autoincrements.

First set up a backend table:

CREATE TABLE my_data (
id serial primary key,
somevalue text,
--more data

Using a serial value will create the sequence my_data_id_seq which we can use later.
Next create the view:

CREATE VIEW my_view AS SELECT id,somevalue... FROM my_data;

Now here is the trick. I want to insert data into my_view instead of my_data directly but the data needs to actually be stored in my_data. We do this:

INSERT INTO my_data (id,somevalue) VALUES (COALSECE(, nextval('my_data_id_seq'::text)),NEW.somevalue);

The real kicker is the COALSECE(, nextval('my_data_id_seq'::text)) bit. It says that if an id is explicitly set then use that otherwise use the next value in the sequence. Neat, huh?

Friday, March 03, 2006

The week of the 100's

Yesterday I committed revision 100 of the NetFox Scope interface into svn. Although there is nothing special about this revision it marks a milestone of a lot of hard work for Tim and I. Thats 100 revisions of 3.8 already and we haven't even officially released yet! The other 100 we hit this week was 100 empty bottles of nudies and emma and toms health juices. Unlike the stereotypical software developers with their coke, pizza and potato chips, we have adpoted the staples of fruit juices, green tea and protein shakes. Just another thing that makes Boxen Systems different.

Wednesday, February 15, 2006

C is like reading a really old book

I love C. Most people don't. Its like some folks prefer the old muscle cars and others like the new jap fizzbuckets. Don't get me wrong, I want to marry Ruby but C gives me a sense of oneness with the computer - I have ones and zeros in each hand :) A rarely used feature of C, where by you can embed methods within methods is a favourite of mine. A bit like ruby block/yields:

def user_active_count
count = 0
users.each { |e| count += 1 }

You can do this in C

void user_active_count() {
int count = 0;
void __inc_active_count(const void *nodep, const VISIT which, const int depth) {
if (which == postorder || which == leaf)
count ++;
twalk(_username_tree, __inc_active_count);
return count;

Beautiful, eh?

Saturday, February 04, 2006

The Big Day Out!

All of this hard work has been making me a little void. You know what they say - all work and no play makes Daniel something, something...So I decided to go to the big day out for some serious play time. Lots of big acts and some not so big acts many of which are faves of mine. Cog, Mudvayne, Wolf Mother and Shihad to name a few. All in all a great day and I certainly felt it the next day! I even managed to catch the stick of Cogs drummer as he flung it into the crowd of some thousand people - definitely a highlight. BDO is certainly not for the faint hearted but for music lovers of all ages its a treat. I even ran into some customers and a couple of well known adelaide sales people! I guess I wasn't the only one slacking off :) Now I've had my day off I'm refreshed and ready to write more glorious code.