Australian Diaspora

Note: This entry has been restored from old archives.

Reading through my usual online news list today I came across the phrase Australian diaspora in some random opinion piece. Not a phrase I have heard before and an idea I’ve never considered, all my life people have commonly left for foreign shores; but they’re just visiting and will be “back home” soon, right? It set me wondering… I have left Australia with no clear reason to go back any time soon. Many of the people I went to University with have left, are on their way out or wish to leave – even if just “for, you know, a little while”. So why is this? Some say it is fuelled by good old personal greed, the GBP or the USD are better currencies; this argument stumbles though when you realise that many of those who have left relegate “moving back home” into the world of “one day… maybe” and a stronger currency doesn’t mean so much when you stay put. The best I can say along these lines is that it means a trip to Australia for someone living in the UK is comparatively cheaper than a trip to the UK for someone living in Australia.

So why?

Personally if asked to try to draw together some reasons I think everything would boil down to: “why not?”. Realistically someone in my kind of job field can expect to find interesting work in a capital city, and even then you’re really only looking at Sydney or Melbourne. My personal ideal of living in Australia is living “out bush”; when I think “back home” the images in my head are of Dunsborough in the late 80s and early 90s (Incidentally this is a place that no longer exists, sometimes I go back and look for it but it simply isn’t there. It has been buried under something new and shiny and is only extant in diluted wafts here and there. The bushlands where we used to walk, cycle and ride are housing estates; the secluded beaches are Beachside Resorts; the vineyards are a dime-a-dozen. When I try to go back home I am just another tourist in a tourist farm.). The central idea here is that my image of truly living in Australia is that of living outside of the cities, near a nice beach and with scorching hot summers. Think Ocker, True Blue and a Home Among the Gum Trees – I’m one who has often felt ashamed by my lack of a proper Aussie accent.

As it stands Sydney is where it is at for the likes of myself in the realms of working in Australia, seaside country dreams are just that. The question is not “Australia or England?”, it is: “Sydney or London?”.

Once upon a time even Sydney was a place where a normal worker could afford to buy their first home; now this is not so. Once upon a time Australia had great social infrastructure; now this is rapidly eroding. Once upon a time Australia had a political climate that wasn’t entirely in opposition to my personal views; no longer. When I try to think of all the reasons for staying in Sydney I quickly come down to a very simple list: the food, the coffee. Now food and coffee are very important to me, but do not represent an insurmountable problem; wherever you go you’ll work something out. I cook more often now and an occasional barrista receives a bit of extra on-the-job training; and ultimately if you’re in the UK and times are desperate you can fly to Rome for only £50.

With nothing to differentiate Sydney from “the rest” what is going to keep someone there? I’d go out on a limb and make the conjecture that the current political and economic climate have taken Australia down a peg in the “desirable places to live” stakes; but I’m treading on the thin ice of the not-completely-informed here. Once I would have chosen to stick with Australia because “we’re better than the others” – but now we’ve proven ourselves to be just the same. We’ve gone from what in my minds eye is an image of “the home of the free” (in spirit I mean, not free on paper as those legalistic yanks like to see it) to a less palatable “mini united states”. The number of times I heard the phrase “I think it’s time to move to (Canada|New Zealand)” became more significant through my years in Sydney.

Maybe I’m too young, all my mental snapshots of the Australia I’d like to live in come from the interpretations of a child – nostalgic images of summer barbecues, country towns, “the Snowys”, holidays in Exmouth, “Dot and the Kangaroo” and “Expo ’88”. It could very well all be the misleading imagery of childhood fantasy. Still, I like to believe that the idealised but not quite politically correct Australia in my mind really did exist once and I can only hope that one day it can exist again, maybe not on this planet. As it stands Sydney falls well short of the mark, I can take it or leave it.

In the end after all this rambling through memories I still haven’t properly answered the misleadingly simple question: “why?”. The truth is that I probably can’t work out a good answer. I’m living in a world where the idealised “back home” of my youth has dried up, like most things in Australia these days, and in a world without a home does it really matter where you live? The choices seem grey in comparison, ultimately the central theme of life becomes “change is as good as a holiday”.

Here we be today, but change is good and who knows where we’ll be tomorrow.

ChronoPay and/or AllOfMP3 Suck

Note: This entry has been restored from old archives.

Beware of ChronoPay or maybe AllOfMP3! One of them is either a seller of email addresses or a leaker of email addresses; the latter is almost as bad as the former in my books.

When I sign up for a service online they always get their own unique email address, all of a sudden I have been getting vast amounts of porn-spam to the the very unique mail address given to them: allofmp3·chronopay·com@malignity·net. This is a pretty huge finger pointing in their general direction, but which one is the ultimate culprit? I have given other email addresses to AllOfMP3.com and so far never had any spam from them… There’s some online fuss about this I notice now and ChronoPay are apparently blaming AllOfMP3, which wouldn’t be a terrible surprise.

So, unless you’re actually interested in gems like “Shockingg Fa_rrm p00rn baanned in 51 states!” or “Illlegal and weiird familyy gangbangg <$rword#>” I suggest you remember to be wary of where you stick your favourite email address, one of these companies begets the evil of spam and we’ll probably never find out exactly which one was responsible. Intuition would point the finger at “dodgey Russians”, as it stands however I doubt that either company was consciously responsible. I expect this is a data leak, be it a security breach or an employee after an extra buck, either company could easily be the source.

One further reason why owning your own domain names and thus having “disposable email addresses” is very useful. One email address for people you know and trust and infinite others for the rest of world, which you do not trust unless you’re rather foolish.

Stats: In a 45 hour period (length of my current mail.log) the allofmp3.chronopay address has been hit with 132 spam emails – needless to say this email address is now rejected at SMTP level.

[Related: I’m at risk]

Pythious Syntactum

Note: This entry has been restored from old archives.

Time for a little Python “spot the difference” game! I’ve been working primarily with Python lately and a few weeks ago I found this hideous performance bug lurking in my code.

This:

setHash = {}
for featureSet in featureSets:
    for feature in featureSet:
        if feature not in setHash.keys():
            setHash[feature] = []
        setHash[feature].append(featureSet)

Versus this:

setHash = {}
for featureSet in featureSets:
    for feature in featureSet:
        if not setHash.has_key(feature):
            setHash[feature] = []
        setHash[feature].append(featureSet)

Now, consider that I have huge data sets. Guess what happens? Yes, that’s right Tommy! The first example is much slower, in fact it goes 1000 times slower. Beware the Indictkeys, my script! The its that rate, the keys that come! Beware the Hashhash loop, and crypt the pythious Syntactum.

The lesson here is: remember has_key

On reflection the wrongness of what I originally wrote seems obvious; I don’t know exactly what happens “under the hood” but I can probably make a fairly accurate guess. It just goes to show that even in a language as pleasant to work with as Python it isn’t too difficult to trip yourself up with simple, everyday foolishness.

[Of course, there’s always going to be other ways to do it!
It does look neater without the has_key]

Bug Challenged

Note: This entry has been restored from old archives.

You know you’ve truly left the land of the living when you’ve got no bugs left in the bug tracking system – even finally disposed of bug 578; ah, those were the days. Greetings from Hades.

Bug 578 was filed back in the old ‘level 4’ era I believe, when we even had the CEO doing some QA work and possibly even before the great Applications Schism. What do we do with ourselves now as our cells divide and multiply, reaching across the globe with our newly grown appendages.

It seems like an awfully long time, I’ve been working now for almost as long as I was hanging around Uni. Time, as they say, can really fly – such a hurry to what end?

You run and you run to catch up with the sun, but it’s sinking – racing around to come up behind you again. -PF

Office Space

Note: This entry has been restored from old archives.

I get upset every time bastards like Mr JoelOnSoftware write about their office setups.

  • Crap Chair – check
  • Single CRT Monitor – check
  • Open Noisy Office – CHECK
  • Wear headphones to combat distractions – CHECK
  • Realise that all this is very badcheck

(Note: I don’t actually work in an office of my current employer; our office back in Sydney would score better than my current location if compared against the points in Joel’s article – but not a great deal better, but we fit into the ‘it’s hard to do these thing if you’re a VC company‘ category so it can be a bit hard, here there is no good excuse for it being so terrible.)

Lamb Shank Casserole

Note: This entry has been restored from old archives.

Dinner's Up!
Hiding under all the soupy goodness is a shank!

While strolling back from Cinnamon Square (the best place in Rickmansworth for a ristretto) last weekend Kathlene and I wandered into the local butcher in hope that this time they would have some Osso Buco – no luck. However I did see some juicy looking lamb shanks, so they became dinner.

Ingredients:

  • Juicy Lamb Shanks
  • 500g Green Lentils (dry)
  • 2 ~400g Tinned Tomato
  • “Sufficient” Chicken Stock
  • 1 Cup White Wine (Sav Blanc)
  • Flour (just for coating lamb)
  • 5 Anchovies
  • 4 Generous Sprigs of Thyme
  • 3 Sprigs of Sage
  • 1 Cinnamon Stick
  • 3 Bay Leaves
  • 3 Red Onions
  • 2 Sticks of Celery
  • 2 tsp Chilli Powder
  • 2-3rds cup of Peas (defrosted if using frozen ones)
  • 100g Pancetta, thin sliced.
  • 1 tbsp plain flour mixed into 3 tbsp water
  • 1 Small Pumpkin (15cm diameter)
  • 2 Small Kumara (10cm long)
  • 6 Spring Onions

Coat the lamb shanks in flour and place in heated oil to brown, turning regularly; use a casserole large enough for the shanks to be fully covered with liquid Meanwhile slice up the celery, dice two of the onions, chop the spring onions and cut the pancetta into 1cm strips. When the lamb shanks are evenly browned put the onions, celery, pancetta and anchovies into the casserole and cook until the onion starts to caramelise. At this point throw in the chilli powder, cinnamon stick, bay leaves, thyme, sage and spring onions followed by the wine. Then tip in the two cans of chopped tomato and fill with stock until the lamb shanks are covered (if your shanks are as large as mine this will be quite a lot of stock!). Keep on high heat until the liquid starts to boil then reduce to a simmer and cover.

Meanwhile rinse the green lentils and put into boiling water for 10 minutes, scooping off any froth that forms. Once the ten minutes has elapsed tip into a strainer to drain.

After the lamb shanks have been simmering for 30 minutes add the lentils to the casserole, mix through and replace the lid.

Cut the pumpkin in half, scoop out the seeds then cut into 1 inch bands. Cut the skin off the pumpkin bands then cut into pieces that are very roughly 1 inch cubed in volume. Peel the kumara and slice into pieces about half an inch thick. Cut the remaining onion into large pieces (half, half, thirds).

After the casserole has simmered for another 30 minutes add the kumara and onion pieces. Let simmer for another 15 minutes then add the peas and pumpkin pieces. After a further 15 minutes drizzle in the flour mix while stirring and continue to agitate as the liquid thickens a little – after about 5 minutes turn off the heat.

Move the shanks to appropriate bowls, then remove any remains of thyme and sage sprigs from the soup (just stems and attached leaves) and the bay leaves; you could also remove the cinnamon stick at this point too but I prefer to break it up a bit and mix it through the soup as it should easily be soft enough to chew (yum!). Generously spoon the soup mixture and vegetables over the lamb shanks. Garnish as desired and serve with a good glass of dry red wine!

Soup
Soup
Leftovers
Leftovers

You’ll probably have soup left over, this is great to store and eat later. As we have a really huge casserole and only did two quite large lamb shanks we had a lot of left over soup – we had eight servings worth left! There’s still four in the freezer. It should be fine frozen for quite a while (we’ll finish it off this week though).

LinkSys WAG54GS Is Crap

Note: This entry has been restored from old archives.

[Update 2007-03-19: LinkSys have finally released an official firmware update for the WAG54GS! It is available from the LinkSys site. The lying buggers have it dated “12/05/2005”. I have not had the opportunity to install the firmware and see if it makes the WAG54GS less crap!]

I’ve traditionally been a fan of LinkSys routers, especially those distinctive blue ones with devil-horn wireless antennae. But I must say, the WAG54GS Wireless-G ADSL Gateway has proven to be a little turd of a device.

I bought it when I got to the UK, it has the latest official firmware, it regularly (several times a day) stops routing packets. It really is quite remarkable that such a total piece of shite could have made it through QA. It just stops, the lights stop flashing (but all stay on), the web interface doesn’t respond, it usually wont even respond to pings when this happens (although sometimes it does).

I’ve read vague reports from others on the ‘net regarding similar behaviour so this doesn’t seem to be an isolated occurrence. There is talk of a “better firmware” that can be built from source; the little fecal box runs Linux apparently (just confirmed that, there are instructions for getting a shell prompt on the box out there). But roll-your-own firmware is just too much piss-farting around for a device that should “just work”, if I wanted that I’d have bought a dumb ADSL modem and a mini-itx machine for Linux! Some forums indicate that an unreleased firmware version (1.00.08) is available for download, maybe I’ll give that a go (but a post on that same forum says that 1.00.08 was a problem and 1.00.06 worked better). What I wonder is: if this “better” firmware has been around for so long why is the severely broken 1.00.06 version still the latest official one! Surely any bugfix is worth releasing properly; I suspect the unreleased version is unreleased for a reason.

The OpenLinksys site seems promising – but the lack of English is a bit of a barrier for me.

All in all my conclusion is that the WAG54GS is excremental in nature and it appears that LinkSys are in no hurry to do anything about it.

My recommendation: Don’t buy it! If it is from LinkSys and isn’t a little blue devil-horn box it isn’t worth the risk.

Note: To get a shell on the thing:

  • Hit http://192.168.1.1/setup.cgi?todo=debug
  • And telnet 192.168.1.1

Where ‘192.168.1.1’ is the IP address of your WAG54GS. Everyone seems to think the ‘adslctl info –stats‘ command is exciting. I’ll leave that one to the ADSL geeks – I’d just like the bloody thing to do its job!

Oh, it also has really shitty wireless range – another area where it is significantly defective when compared to the devil-horn versions.

Finally, some interesting stats from the device (with 1.00.06 firmware):

Linux Kernel: 2.6.8.1
"OS": BusyBox
Flash Size: 4096k
CPU: Broadcom BCM6348 V0.7 (bogomips: 253.44)
Memory: 13652 kB
Filesystem: cramfs
Interfaces: eth0, lo, ppp0, wl0, br0 (bridging eth0 and wl0)
Interesting Processes: 
 mini_httpd - The link is "I'm feeling lucky"
 udhcpd
 ntp
 crond
 scfgmgr
 atm_monitor
 cmd_agent_ap
 pb_ap
 wizd
 ses_update
 Pppd
 upnpd
 reaim
 utelnetd (presumably not normal)
iptables highlights (the full set is *large*):
--------------------------------------------
Chain INPUT (policy DROP)
target     prot opt source   destination
DROP       tcp  --  anywhere anywhere state NEW tcp flags:!SYN,RST,ACK/SYN
ACCEPT     all  --  anywhere anywhere state RELATED,ESTABLISHED
REAIM_IN   all  --  anywhere anywhere
INPUT_UDP  udp  --  anywhere anywhere
INPUT_TCP  tcp  --  anywhere anywhere
DOS        icmp --  anywhere anywhere icmp echo-request
ACCEPT     all  --  anywhere anywhere state NEW
--------------------------------------------
Chain DOS (6 references)
target  prot opt source   destination
RETURN  tcp  --  anywhere anywhere limit: avg 60/sec burst 120 tcp flags:SYN,RST,ACK/SYN
RETURN  udp  --  anywhere anywhere limit: avg 60/sec burst 120
RETURN  icmp --  anywhere anywhere icmp echo-request limit: avg 60/sec burst 120
LOG     all  --  anywhere anywhere limit: avg 10/sec burst 5 LOG level warning prefix `[Firewal l Log-DOS] '
DROP    all  --  anywhere anywhere
--------------------------------------------
Chain SCAN (2 references)
target prot opt source   destination
LOG    all  --  anywhere anywhere limit: avg 10/sec burst 5 LOG level warning prefix `[Firewal l Log-PORT SCAN]'
DROP   all  --  anywhere anywhere
--------------------------------------------
Chain DNS (1 references) (in nat)
target prot opt source   destination
DNAT   all  --  anywhere 192.168.1.1 random 50% to:213.208.106.213
DNAT   all  --  anywhere 192.168.1.1 to:213.208.106.212
--------------------------------------------

What a strange way to deal with DNS, it hands out its own IP address via DHCP but why not just hand out the external DNS IPs?

DNS Blacklists Suck

Note: This entry has been restored from old archives.

In a passive effort to “fight spam” I made some changes to my filtering. First I configured postfix to use a few reputable blacklists, four in total; second I started using several of the RulesDuJour SA rules.

This has worked fairly well, I’m not getting much spam hitting my main mailboxes now. But I’m now down to two blacklists, why? Because dnsbl.sorbs.net and bl.spamcop.net have had to be removed because they block important legitimate email. Mail from some family members who use Hotmail has been blocked by SORBS and mail from some online services that use Yahoo servers have been blocked. Causing Yahoo and Hotmail servers to be blocked is not good; I understand the argument that “if they allow spam to be sent they should be blocked” but I cannot agree with it in practice. It is just too inconvenient – and if you make things inconvenient people wont use them. While you may hope that it makes using Hotmail a pain in the arse and thus not used the truth is it’ll make use of your blacklist the PITA and it’ll be dropped well before people stop using one of the world’s most popular email services. (Just try explaining to a tech-illiterate Hotmail user that they should stop using Hotmail because your mail server blocks their email; watch their eyes glaze over when you attempt to argue that they’re supporting spam by using Hotmail and should stop. I can’t believe I used to actually think like that, Hotmail works for them and it works for their family and for all their friends and as far as they’re concerned you can just get back into your little geek hole and die.)

I can see the value in commercially maintained blacklists in this arena, a company that need to sell a blacklist is going to make sure that there is a balance between the effectiveness of their lists and the potential inconvenience caused. Ordered, well thought out and, ultimately, profit-margin driven goals can sometimes beat fanaticism. Unfortunately I can’t use their blacklists for free on my little server and life is expansive enough without paying for a list of numbers. It’d be nice for a company to make lists free for small users for “the good of the Internet”; but the big profits lie in the millions of small users who’ll pay a little and not the thousands of big users who’ll pay a lot.

What makes it sadder is that of the 143 emails blocked in the last 40 hours only one has been from a Yahoo server and it was legitimate. I’m forced to lose all the good entries in the SpamCop blacklist because of a minority of bad ones that make their services unusable.

No complaints about RulesDuJour by they way, I’m happy with that so far (almost all the spam that gets through the blacklists is caught and no false-positives so far, and the difference with a SpamAssassin rule as opposed to an MTA blacklist is that even if you do have an FP you still have the email in quarantine!). I’m still using SORBS and SpamCop but they’re in SpamAssassin now, they’ve lost their ‘very good spam indicator’ privileges.

The two remaining blacklists are DSBL and SpamHaus… we’ll see how long they last.

Team[less] Work

Note: This entry has been restored from old archives.

There is no i in team, but there is an i in exterminate… exterminate, Exterminate, EX-TER-MIN-ATE!

Sorry, a spot of randomness there; I don’t think the James simulation unit is quite up to scratch. One of the hardest things about being exiled to the UK is suddenly being very isolated. The last big move was to Sydney, but that was into Uni which is an entirely different situation. Over here it just Kathlene and myself – and almost everyone else has comes under the loving wing of the term “business relationship”. We have one friend here outside of work links, and that is a blessing; fact is that meeting people who don’t annoy me is very hard.

All in all it’s not too bad, I am a fairly reclusive person by nature although I do enjoy occasional “events” and I really miss having friends over for a good feeding.

You should never underestimate the important of working with friends; which is what I have done ever since first year Uni up until this whole UK lark. I get along well with many of the people I work with at the moment; but it is different. One can work with excellent people, people with whom you get along very well and maybe even have an occasional drink – but it is a whole different world to working with people you’d call “friends” before calling “colleagues”.

Above all, the hardest thing is not working with a team. Working on projects as a sole developer is difficult because there is nobody else following the thread and thus nobody to discuss developments with and no peer driven motivation and interest. It really is terribly difficult! I report to a VP in another country and most of my internal company interaction is with a “sales guy”! I’m just thankful that both have an engineering background; the guy I report to still writes code for internal projects. Don’t get me wrong, I’m not saying that management/sales is bad – just that as a developer I find having non-developers as primary contacts strange and not having other developers to work with is rather isolated. Piled on top of that is the general sense of externality when dealing with core development teams, the feeling that you’re now an outsider in the eyes of (what was formerly) your own group.

In many ways some level of logical separation is necessary, for example from a legal standpoint there sometimes have to be boundaries – such as “Chinese Wall” situations. I really believe that this must be kept to a minimum, after all (in this instance) some of us who’ve been exported have been involved since the early days before the first customer, before we went up in the world (literally;), before sliced bread back when the world was still flat and beaver was the other white meat. They really didn’t perform secret lobotomies on us, I swear.

Hmmm. It might sound like it but I am not saying that things are bad, there is room for improvement and no doubt this comes with time and practise, in fact things are generally good. With a peppering of the occasional hiccups that make life interesting. Working solo is something I’ve done a lot of and can do well; it may not be my favourite situation and it has its uninspiring moments but it is hardly hell-on-Earth.

There is no i in electroencephalographs, but there is an i in counterrevolutionaries!