Australian Pomp and Ceremony

As Australians, we’ve always been very uncomfortable with who we are. Descendants of British settlers feel nervous about how Aboriginal people were treated (and to some extent still are). Aboriginal people feel uncomfortable because they have been made to feel like second-class citizens for a large part of our history (because they were). More recent immigrants are locked away in detention centres, despite our national anthem’s promise of having “boundless plains to share”.

It’s no wonder, then, that when Australia Day rolls around, everybody gets a little bit confused. Nobody knows quite how they feel about giving out Knighthoods and Damehoods again, but we’re pretty sure they shouldn’t go to a racist old fart who isn’t even Australian. I feel personally that knighthoods are a great addition to the Order of Australia, and it’s good they are being given out again. However, they should be recommended by the Order of Australia Council with no involvement from the Prime Minister.

Things like the Australian Flag should fill every Australian with a sense of pride in our country. Unfortunately, when I see it I feel a sense of shame, as it has become associated with racism and other forms of bigotry. It’s unfortunate that these things which should unite us instead tear us apart.

A lot of people say we need to talk about who we are as a country. That usually means becoming a republic. That’s not going to help one way or the other. We need to make a lot of small changes, that together will make every citizen feel a part of Australia.

Firstly, we need to live up to our promise in the national anthem: for those who come across the seas, we should share our plains with you. Being more civil to refugees should be top priority. We can’t treat people as sub-human any longer. These people are escaping terrible places. Why else would you get in a leaky boat and sail across the ocean with only a mild hope that you might get to Australia? I understand the need to perform security and quarantine checks on people before we let them into the wider community. But these checks can be done in days or weeks, not months or years. They can also be done on the Australian mainland, not a foreign country. To do otherwise is pandering to bigots, and that’s not something I want my country to be known for.

Our honours system needs some work, as I’ve outlined above. We should have Knighthoods and Damehoods, as they are internationally recognised and bestow a fine honour amongst those people who deserve them. But we should have more conversation about who gets them. I think only Australian citizens should be eligible. I think only the Order of Australia council should be able to recommend to the Queen who gets them, with no political involvement from the Prime Minister or his office.

It’s about time we changed our flag, too. The problem is, to what. I don’t have a solution here. Some people have suggested replacing the union jack with the aboriginal flag, but that then diminishes the contribution given by the British settlers to this nation. Far better, I think, to not acknowledge any particular race on our flag; we are all the same on the inside after all.

Australian flag with the aboriginal flag replacing the union jack.
The proposed replacement flag.

I’m really happy with the trend I’ve been seeing in the last few years of having a  “Welcome to country” by Aboriginal community representatives for formal events. I’ve even been to technical conferences where this has occurred! This seems to me to be a very subtle and inclusive way to acknowledge the history of the land on which this country is built.

One thing that I don’t think is particularly helpful is a discussion about being a republic. There are actually far more important things to get fixed, and we can fix them without spending years fighting amongst ourselves over who gets to be our head of state. Whilst I’m not against a republic, and would probably vote for one if a referendum was held today, I think both the current Queen and her successors are doing a fine job. Whilst a lot of people dislike Prince Charles, I can’t figure out why: he spends a lot of time fighting for good causes. He’s an environmental campaigner, and I like that.

Queen Elizabeth II firing a machine gun.
The queen, meanwhile, is pretty epic.

Whilst it’s uncomfortable to talk about who we are, sometimes these discussions are necessary in order to better ourselves. Every citizen will never be equal (capitalism and human power struggles will team up to prevent that from ever happening). We should endeavour, in any case, to give every citizen equal opportunities, as far as we can. We need to make every person feel included in our country of Australia.

Videos from linux.conf.au 2015

The penguin dinner (the “formal” conference dinner) for linux.conf.au 2015 was held at the Museum of Transport and Technology in Auckland. This was pretty cool epic and amazing. Here are the videos I managed to capture of some of the machinery at work:

Unfortunately, I took an amazing 5-minute video of a triple-expansion steam engine being started up, but I’ve lost the footage – I think my phone might not have saved it. :(

On the Saturday after the conference, I went on The Northern Explorer, a train trip from Auckland to Wellington with a few friends. Again, I took a number of videos (as well as literally hundreds of photos):

This is actually the first time I’ve bothered capturing videos as well as photos on a trip. My phone (a Google Nexus 5) has proved that it can do 95% of the job of my dSLR in capturing the essence of a scene, and that’s good enough for me. It helps that I carry my phone everywhere, too. I will definitely be considering buying some sort of small tripod device though; as it turns out my hands are very shaky.

I have the NBN!

It took a long time, and was a complete ordeal to organise (seriously, telecommunications companies have the worst customer service ever), but I finally have an NBN connection at my apartment!

Before:

1.19MB/s down, 0.10MB/s up, 20ms latency

After:

2.98MB/s down, 0.60MB/s, 3ms latency

I’ve chosen a 25/5 Mb/s “Silver” plan from Internode, which provides roughly 5 times the speed of my old ADSL2+ connection in both the upstream and downstream directions, as well as much lower latency. I’m really excited about the increased upstream bandwidth, it should allow me to host services from my house more comfortably.

PyConAU 2014

IMG_20140802_132246This weekend I attended PyConAU , a community-run conference for the Python programming language. Held this year in Brisbane, it was a good excuse to learn some new things, catch up with old friends, as well as make some new ones.

I have a soft spot for Brisbane. In addition to having family live here, I also love their public transport system: a well-integrated system of buses, trains and ferries run on a reliable and frequent schedule to all areas. Their AirTrain is hands down the easiest public transport solution from an airport to a city (miles ahead of Melbourne’s cramped buses). The conference was held at the Brisbane Conference and Exhibition Centre, which is the centre of the city’s cultural district, with museums, theatres and shopping and dining areas all around. It’s a wonderfully laid out modern city.
IMG_20140801_165033
The first keynote was by the director of the National Computer Science School (NCSS), and generally awesome guy, James Curran. My experiences at NCSS back in 2007 helped formed my programming abilities and gave me the knowledge that there was other life out there: an entire programming community, and being in IT was a good place to be.

A highlight of the talks on Saturday was a talk on caching for web services by Tom Eastman. He talked extensively of using HTTP protocol elements to control the cache in proxies and in web browsers. Whilst the examples used Django, the concepts will be useful for my work using ASP.NET.

An interesting part of the conference is talking to people outside talks, and this conference has been no exception. I’ve met many new people, including some stars of the Python world. I’ve also learned that many of the things I do in my daily programming life are wrong, and it’s great to learn more about best practices.

A traditional part of PyCon AU (as well as linux.conf.au, to an extent) is the end-of-day lightning talks. In particular, two talks in the Saturday session really appealed to me. First of all was Josh Deprez‘s talk on “node.hs”, where he talked about implemented Haskell in node.js, but instead wrote a lightning simulator within 5 minutes.

Secondly, and possibly of more long-term consequence, was Russell Keith-Magee‘s talk on Toga, a cross-platform UI toolkit that displays widgets using the operating system’s native widgets. So instead of your cross-platform app looking great on GNU/Linux (where GTK+ is native) and crap on Windows or OS X, it will look good on all three platforms (and possibly more in the future).

The final event of Saturday was the conference dinner, a traditional three-course sit down event with a lovely speaker named Paul Gampe (who worked in ISPs during the early nineties, making me very jealous). He gave a few lessons he learned working with the early FOSS and Perl communities, and why Python should make efforts to avoid these problems.

IMG_20140803_104959After dinner I retreated to my hotel room (I have made the mistake before of staying up with people all night and missing most of the talks on Sunday). However, I didn’t go straight to bed. I instead checked out Toga in more detail, and tried to get it running on Windows (it’s a very new piece of software). After a bit of code wrangling, I managed to get a blank window appearing on the screen (as my excited tweet about this shows). My patched code is now in the Toga repository, which is pretty cool.

Sunday morning’s keynote was given by Katie Cunningham on the topic of accessibility. I’ve heard more and more about this recently (especially through a talk at WebDev42 recently). The gist of her talk was that the tools and support and standards are there, and the only reason developers aren’t building accessible sites is because they’re lazy or don’t know better (her point was a bit more complex than that, but that was roughly it).

Two talks I really enjoyed during the rest of Sunday were Russell Keith-Maggee’s talk on building Python wheel packages (basic information that, being a very junior Python developer, I didn’t know) as well as Josh Hesketh’s talk on database migration testing. While Josh’s talk targeted Python projects and OpenStack in particular, the concepts are useful across basically all programming platforms. I’m lucky in that managing database migrations is something that Entity Framework (my C# ORM of choice) does for me.

After the conference finished, I completed my trip by visiting family for dinner and dropping in on a few Brisbane-based clients, before flying home (via Melbourne, of course, to earn maximal status credits).

As always, attending PyCon AU was a great experience, and I can’t wait for next year (it will be held in Brisbane again next year). In my mind PyCon AU is a very similar conference to linux.conf.au. I go for the same reasons: great community, great people, great content, and great fun!

How to run a small company in Australia

I’ve been the director/manager/shareholder (pretty much everything) of a small company in Australia called The Foo Project Pty Ltd for around two years now. We develop software, but this post isn’t about that. Today I want to talk about the ‘boring’ stuff (though I find it fascinating): accounting, legal issues, dealing with the federal government, etc.

Please note I’m not a lawyer or an accountant. If you need one, you should get one, not read blog posts by some guy on the Internet (that’s called procrastinating and it probably won’t help you). Handy hint: if you’re reading this for advice rather than entertainment value, you probably want an accountant or a lawyer.

So the things I’m going to cover are: why you might want a company instead of being a sole trader, how to get set up, what documents and so on you’ll need to keep, and some handy things I’ve learned along the way.

Why might a company structure be helpful?

The benefits and drawbacks of a company structure become more obvious once you consider what exactly a company is and what a sole trader isn’t.

A sole trader runs a business ‘as themselves’, that is, the business is the same legal entity as the person running it. Any income the business makes is personal income for the person running it, the same with expenses. A child running a lemonade stand in their front garden is a sole trader: any profit they make is theirs personally, and that’s as complex as it gets (well, technically they need to register for an ABN, but what the government doesn’t know won’t hurt them). Another thing to note is that any debts the business have belong to the person running it, so the business going bust is the same as the person going bust.

Image courtesy of j_regan
Image courtesy of j_regan

A company, on the other hand, is a different legal entity. Any income the company makes belongs to the company, not to the person (or people) who own the company. Any debts the company has belong to the company itself (though it is common for a company director to personally guarantee some large loans for small businesses). The profits flow to the owners (called shareholders) through dividends. Being different legal entities, if one of the shareholders (to whom the profits eventually flow anyway) takes cash out of the company without the company itself authorising it, then this is fraud.

There is also another structure for businesses known as the partnership. It combines all the worst parts of being a sole trader with the worst parts of a company structure. Just avoid it.

The benefits of being a sole trader:

  • Account keeping is greatly simplified (add up all your invoices from the year, subtract all the bills, that is your profit and put that on your tax return).
  • Tax is much simpler and you’ll probably pay less of it.

The benefits of having a company:

  • Limited liability. As a shareholder, you cannot be liable for debts the company incurs unless you have promised the company money you haven’t given it yet. Note that directors can be personally liable if they do something really stupid (best consult a lawyer for what ‘really stupid’ entails, it’s a bit complex).
  • If the business will ever be sold, it’s much simpler to hand over the keys to a separate entity than try and separate the business assets from your personal assets like a sole trader would do.
  • A company structure provides a nice wrapper for owning intellectual property (and other property I guess, but I use mine for intellectual property).

How to get set up:

This is actually much easier than you think. The hardest part will be opening a bank account!

  1. Figure out how many shareholders (owners) and directors (top-tier management) the company will have, and who they will be. If anybody else will be shareholding or directing with you, remember the following:
    1. It’s easier to introduce more directors and shareholders later on than it is to remove them. Pick carefully.
    2. Being a director does involve legally mandated responsibilities, so make sure directors will be up to the job required.
  2. Go to Register A Company (or a similar company registration service, they are all over Google) and fill out the form. It’s well explained and pretty simple. Note that they will ask you for an account password, choose something unique and never used before, as they will email it to you in plain text (*sobs*).
  3. After the form is processed, which will only take a few minutes, you’ll be sent emails with a whole heap of PDFs. Print out all these PDFs and stick them in a binder. These are the company’s registers of members and officers, and it’s a legal requirement to have a paper copy of them at the company’s registered address.
  4. Go to the Australian Business Register to register for an ABN and a TFN. This will allow you to do fun things like send tax invoices and register Australian domain names, and other less fun things like paying company income tax. The process is pretty simple, but unfortunately (in my experience, anyway) it takes several weeks for them to get the details posted back to you. If you might be employing people make sure to register for PAYG withholding. If you think turnover will be more than $75,000 in the first year register for GST, otherwise avoid it as it makes accounting much more annoying (you can register later if needed).

You now have a company, but there are a few more things to do to make things run smoothly and safely.

  • Open a bank account for the company. You can do it online, but you’ll probably need to take documents into the bank anyway, so it’s easiest to just go and talk to somebody. Take in the binder of company documents, you’ll need to prove the company exists (using the ACN) and that you are a director.
  • Set up your accounting program. I use Xero, which is cloud-based, very popular, and highly recommended. I did the setup myself, but I would recommend finding a good accountant and getting their help.
  • Buying insurance is highly recommended. I have worker’s compensation insurance (which you’ll need if you’re employing people) and professional indemnity insurance (which you’ll need if you give advice to people). Any business with actual premises will need public liability insurance and contents insurance. Insurance is like leftovers from a tasty meal, better to have too much than too little. Make sure you have enough.

Keeping documents:

There are two broad categories of things to keep: legal documents and accounting documents.

Pretty much everything you will need from a legal perspective is in the binder you printed out when you registered the company. In paper form, at least.

From an accounting perspective, keep everything in Xero (or other accounting software). Every invoice, every receipt, every transfer, every everything; it should all be recorded. Your accountant can help you (though it’s pretty easy to do yourself).

I’ve formed the practice, and I think it’s a very good practice, of scanning every single document that comes my way and backing it up to the cloud (encrypted, of course). I’ll probably never need it, but damn it will be handy if I do.

Some handy hints I’ve learned the hard way:
20140318_191428

  •  Never get behind in the accounting, it’ll just take even longer to catch up as things aren’t in memory any more. I sit down every night during the week and quickly scan in receipts and update any draft invoices (takes me about five minutes, sometimes less) and then on Friday night or over the weekend I sit down and do bank reconciliations, send invoices, deal with any paperwork, and so on (takes me about 15 minutes max, usually less).
  • Find a good accountant. They will save you money. The same goes for lawyers.
  • If you’re doing consulting work, get a lawyer to draw up a template for a contract. Contracts are good, again they will save you money. If you’re too cheap for a lawyer get a template off the Internet (though using a lawyer is better).
  • Every time you change address, or add or remove a shareholder or director (or some other scenarios), you’ll need to fill out Form 484 (“Change to company details”). Do this on time, the fees for submitting it late are horrendous.

 

Well, that’s all my advise. Hopefully it’s helpful. And again, I recommend finding a good accountant and a good lawyer. They will help you.