Photo of Paul Fenwick

paul.j.fenwick

Welcome to my home on the internet! Everything here is free under the Creative Commons Attribution 3.0 license unless marked otherwise.

This site contains various pieces of writing across my various interests, and spanning several years. You can fork this site on github if you wish.

A very Perlish Sydney

A very Perlish Sydney
I spent the end of last week in Sydney, presenting our Object Oriented Perl course. This is one of my favourite courses to teach, as it covers some very interest concepts, and gives me a chance to really show off Perl's object oriented features.

In the evening of my first day of teaching I got together with members from Sydney Perl Mongers, the Sydney Python Users Group, the Sydney Linux Users Group, Sydney LinuxChix, Open Source Industry Australia, and SAGE-NSW to give my small-business talk. One of the best things about presenting in a pub is the relaxed atmosphere; no doubt assisted by the presence of amber fluids. My talk was well received, with much exchanging of business cards and stories afterwards.

After the meeting a number of members, including myself, travelled to a nearby bar, where salsa dancing appeared to be very popular. We enjoyed some quite spectacular flaming drinks, of which combusting cinnamon was a prime ingredient. I'm hoping to get the photographs that some people took of these — if you took photos at the bar, then please send them in.

Overall Sydney was one of the most enjoyable travelling/training experiences I've had so far. Being able to get together with so many local user groups was fantastic. I'd recommend it to all techies visiting Sydney.

(read more...)

Losing money internationally

Losing money internationally
I deal with banks regularly, and while issues arise from time-to-time, they're easy to resolve once you know the methodology. However yesterday I discovered a situation which cannot be easily resolved. It has to do with international transfers.

Domestic transfers between accounts are quite straightforward. Money disappears from the first account, and arrives in the second. The sending and receiving banks may charge a fee for the service, and if so this appears on the customer's statement. All the money is accounted for, and everyone lives happily ever after.

This is not the case for international transfers, as I discovered yesterday. A customer in Europe transferred payment to our account, and while they sent the correct amount, and paid all the bank fees on their end, $19 "went missing" in between Europe and Australia.

The $19 was not a fee from our bank, instead our bank never received the money. The $19 wasn't taken by the sending bank either, our customer had paid the transfer fees separately. Instead, the $19 was taken by an intermediate bank through which the funds were routed. What we're lacking is a paper trail.

From an auditing standpoint, this is an incredible headache. The sender has receipts showing the full amount has been sent. The recipient has a statement showing $19 outstanding. The recipient is not permitted to trace the funds, presumably for privacy reasons. The sender is allowed to trace, but will be charged a fee to do so, and has no reason to believe that money has gone missing except for the recipient's say-so. Unless this extra work is performed, there is no paperwork indicating the whereabouts of the money. No receipts. No invoices. No statements. Nada. It's disappeared without a trace (apologies for the pun).

This arrangement leaves everyone in a bad state. The recipient is dependent upon the sender executing a trace to complete the paperwork, and without that can feel the sender is trying to underpay their bills. The sender has no good reason to complete the trace, they already have their proof-of-payment from the bank, and can feel the recipient is trying to overcharge them. Nobody wants to actually pay an extra fee for the trace, and even if the recipient is willing to pay for it, how do they transfer the funds without the same thing happening again?

The whole matter could be easily avoided by the banks being able to determine intermediate fees in advance and charge them to the sender; or for all intermediate fees to be forwarded to the recipient, where they appear on their statement. The current situation, where money just vanishes in the middle, is absurd.

For those wondering why this is such a big deal, it comes down to accounting and tax. I need to be able to record why we're not going to receive full payment on these invoices. I need to also have appropriate documentation to show the difference is due to a legitimate expense, both for my own records, and also in case the ATO drop around for a cuppa and a chat.

The worst thing is this is the third time we've encountered this problem, and it's only just become apparent how systemic is it. The first time we thought the customer was trying to underpay their bills. The second time we were able to demonstrate to the customer that their bank had lost the money, as there was no intermediate bank involved. However this third time we're dealing with quite lovely clients, who really thought they were doing the Right Thing, and we're finally educated enough to know what's going on.

My easiest solution is to write the funds off as a bad debt, but to do so I need to demonstrate reasonable efforts to recover the funds. I don't want to bother nice clients over a measly $19, especially when it appears this was not their fault. The whole thing is a customer relations nightmare.

Unless we can find a way around this in future, we're going to have to start insisting our international customers pay by bank draft or credit-card only. I'm sure that other Australian businesses have a way around this, and I'd love to know the secret.

(read more...)

The most wonderful breakfast

The most wonderful breakfast
Okay, I know what you're thinking. Paul has finally lost the last shreds of sanity: he's starting to post what he had for breakfast in his blog.

This morning I slept in, and then for breakfast I had my favourite breakfast: two soft-boiled eggs (from our own chickens, 4.5 minutes at a simmer), hot-buttered toast cut into strips, and a cafe latte.

What's important is what this breakfast signifies. For the last three days I've been waking at 6am and them travelling to spend the remainder of the day teaching Perl. In the evenings I'd been working on my talk. I've been missing sleep, and feeling very time poor.

My favourite breakfast takes a little time to prepare (I have to grind the coffee, the chickens have to lay the eggs), as well as coordination to ensure the eggs, toast, and coffee are all ready at the same time. A few weeks ago I would have a practically zero chance of completing this without interruption, especially during business hours after being away from my desk for three days. Today, I could practically rely upon having the time to cook.

The significance is not that I've run out of work; instead I have mountains to complete, and I'll teaching or on-site four out of five days next week. The significance is that finally I am the master of my work, and not the other way around. At least that's something I can pretend to myself until the phone begins to ring.

(read more...)

The most frustrating work

The most frustrating work
Running a small business exposes one to a wide range of hurdles. Work can range from the very good (presenting at conferences/user groups) to the downright awful (being recalled from holidays to fix critically dead machines at 2am). The main compenstation is that the bad work tends to pay extremely well.

Throw into that a whole lot of conflict resolution, government regulation, taxation requirements, travel, and plenty of human interaction, and you have a pretty good range of learning experiences. Some people hate their jobs, but I love mine. I just hate certain particular aspects of it.

Recently, one of our office desktops started developing bad sectors on the hard-drive. This isn't a big deal, all the important data is stored on a central server with RAID and tape backups. We also have a drawer full of hard-drives (somehow we keep winning these, or getting them back under warrantee), so replacing the failing drive should be easy, right?

Well, for Linux it is. Fire up Knoppix, and use parted to copy the old partitions across. A little bit of magic with your choice of bootloader, and you have a transferred Linux system onto a fresh, new, bigger hard-drive.

If you've got bad sectors involved, then parted may not be able to do the deeds, as it tries a block-for-block copy. However for an ext2/ext3 filesystem, you can simply partition, make a new filesystem (mke2fs), and use one of the hundreds of different ways of copying an ext2 filesystem, in my case cd /path/to/new/filesystem; dump -0 /dev/hdXX | restore -r. Easy

Now comes the most frustrating part of all. This machine also occasionally runs Windows 2000. We don't actually use Windows for anything except for games, but I'm very fond of my games, and unfortunately there are still a couple that only run under Windows. Unfortunately, transferring Windows across was not quite as easy.

Parted would happily copy and extend the partition, great! However upon trying to boot Windows, I get a whole lot of nothing. After going round-and-round with recovery consoles and boot records, it still won't boot. Hmmm...

I decide to see if I can get a fresh install of Windows to boot. If that fails, I know my other attempts are hopeless. If it succeeds, then I know as a worst-case I can simply re-install Windows and the games.

The fresh install, onto a freshly partitioned hard-drive, fails. It chugs along quite happily until it needs its first reboot, and then then issues the dreaded words "Error Loading Operating System".

A quick search reveals a fix from Microsoft for the problem. Upgrade your machine's BIOS — not quite what I had in mind. Given that Google reveals about 11,000 other pages which contain this exact phrase, and given most seem to recommend fiddling the disk geometery from CHS to LBA, I'm not going to try and flash a working BIOS just yet.

It looks like the problem is fundamentally with windows installing onto large partitions on big drives. This isn't unique to windows, due to some real legacy reasons most machines have troubles booting something that isn't close to the start of the disk. It's also been solved in a variety of ways, including itty-bitty boot partitions for Linux, and intermediate stages for grub. Those systems also give much more precise errors when something goes wrong.

So, for this machine I know the master boot record is fine, and because the Windows partition is right at the start of the disk, I know that its boot-sector can be reached, but things go wrong from there. Perhaps I can start with an installation onto a small partition, and then try growing things from there. Clearly I have an exciting time in repartitioning and re-installing ahead of me.

The ironic thing is isn't my workstation, and Windows is completely unrequired for our business. Fundamentally its costing only $0.50/day in opportunity costs in not being able to play a MMROPG, yet it's the most frustrating issue that I've encountered in the last month. Damn my strong beliefs that if you have a computer you should be using it to provide the maximum entertainment value.

On reflection, if I consider this to be my most troublesome problem, then I really don't have that much to complain about, do I?

(read more...)

Ariel Miyu Golembo born, 2pm, 6th July 2005

Ariel Miyu Golembo born, 2pm, 6th July 2005
I'm very pleased to have received a phonecall from Daniel and Tomoko to say that Ariel Miyu Golembo was born without any complications at 2pm today. Ariel is 40cm long, weighs in at 2.4kg, and is apparently very loud when she's awake. Tomoko and Ariel will be returning home in four days time.

Congratulations Tomoko and Daniel!

(read more...)

Bitcoin QR code This site is ad-free, and all text, style, and code may be re-used under a Creative Commons Attribution 3.0 license. If like what I do, please consider supporting me on Patreon, or donating via Bitcoin (1P9iGHMiQwRrnZuA6USp5PNSuJrEcH411f).