I was at PyCon Australia 2015 in Brisbane last week, and I presented a couple of talks!
Test-Driven Repair looked at the issue of adding tests to code that hadn’t really considered it. I proposed some ideas about how to go about adding tests and refactoring your code to make future testing easy. There was a lot of good discussion after this talk, and this one represents an improvement over the version I presented at OSCON a week earlier. Once again, there’s a video on YouTube and notes on Github.
This was the second year of PyCon Australia in Brisbane, it was pretty excellent. I’m looking forward to next year’s, which will be in Melbourne!
A few weekends ago (on the 19th of July, to be precise) an anniversary celebration of the first traction engine in Tasmania was held. As part of this, five traction engines drove from the Bellerive Oval to the Tasmanian Transport Museum. On the way, they passed by Montagu Bay Primary School, where they stopped to take on fuel and water. I was lucky enough to be there, and to have a camera with me.
I spend a large amount of time on the Internet. With that comes the opportunity to observe various phenomena in action. Recently, it occurred to me that all thought on the Internet has a value, but that value is not always the same. After a little thought of my own, I came up with a theory of what certain kinds of thought are worth – and how often you see them.
On the bottom of the hierarchy is an idea. As discussed by entrepreneurial bloggers the world over, ideas are worthless (at least without brilliant execution). On the Internet, ideas are everywhere. They are cheap and nasty and you can’t give them away, since own ideas are better than everybody elses.
A well-crafted opinion is worth slightly more, since basic literacy is required to get your point across. Notice however that I said well-crafted. Generally, a well-crafted opinion will be found in it’s own post. They are very rarely found in comments. They are almost never found in YouTube comments.
If you have a very well-crafted opinion, and a famous name (at least Internet famous, if not real-world famous), you might be able to obtain some ad revenue from your opinion. But it’s not going to be a lot, because like ideas, opinions are everywhere.
Analysis of news, events, products and services is a rarer commodity than an opinion. Because it brings in facts, and tones down the emotions, they are harder for people on the Internet to produce. You may even need to be a good writer. Whilst opinions might be found on sites like WordPress.com, Medium or Tumblr, analysis will most likely be found on it’s own domain – this generally indicates a slightly higher level of effort, and thus a slightly higher worth.
Facts are what the Internet loves, hence the higher value of analysis than opinion. What if you could introduce more facts to the Internet? That’s where information comes in.
What do people go on the Internet to do? Many things (usually involving amusing images or naked women) but primarily to find out how to do something. If you have the answer to somebody’s question, you can get them to pay for that. This is why there are so many eBooks available these days. Because telling people how to do something is valuable, since it will save time, and time is money.
Recently I’ve made a heap of changes in my life, one of which has been the car I own and drive. I’ve sold the 2007 Subaru Impreza I bought eighteen months ago with my ex-girlfriend, and bought a 1997 BMW 318iS (an Avus Blue E36 sedan with M44 engine, for the BMW aficionado). This achieved three purposes.
Firstly, I was able to save a bit of money by buying a car a decade older, which I used to pay off some debts. One lesson I’ve learned working for myself is that debt is something to be avoided at all costs, as it crushes the feeling of freedom you would otherwise have.
I also got a more interesting car to drive. Despite having less power (103kW compared to 110kW) and less torque, the BMW is a much better car to drive. Due to the flat cylinder alignment in the Subaru’s engine, it doesn’t produce much of that power lower in the rev ranges, where it is most useful. The BMW’s engine produces more power when you actually need it.
Finally, I have a new hobby. Because the car is a decade older, it has a lot of defects that need repairing. It needs a new roof lining, several body panels need repainting, bits of trim need replacing and the audio system needs an upgrade (I’ve developed an Onslowian response of hitting the head unit to make it pick up channels clearly).
Longer term, I’m also toying with the idea of building a carputer. Given the power and features I want to pack into such a device I’m leaving this until I’m flush with cash. My dream feature list includes such absurdities as shortwave and citizen band radio, GPS navigation, GSM back-to-base alarm system, and management and monitoring of the engine via OBD-II (and BMW’s proprietary extensions to said system). It’s a project that will never be finished, so I’ve decided it’s safer not to start.
Recently I had cause to build a new cross-compiler (used for operating system development). I recorded the entire process, thinking it might be useful to others who’ve never gone through the process of compiling a compiler before. Here it is.
The canonical reference for a GCC cross-compiler build, including all the instructions for this video, can be found on the OSDev.org Wiki.
As a community, we have too much stuff. We have so much stuff, we don’t even notice that it’s there. I became acutely aware of this recently after I broke up with my now ex-girlfriend, and moved house twice (first in with my parents, then out into my own place again).
I had boxes of stuff. Books. Computer equipment. Clothes. Paper (notebooks, filing drawers, and so on). Gifts that I was hanging onto out of a sense of guilt if I threw them away. Stuff that doesn’t even have a category.
So I got rid of most of it. The process took months (and I’ve never even considered myself a pack-rat), but I’m finally making headway. I never want to go back to the world of stuff again.
There are a lot of benefits to having less stuff. I’ve noticed three main ones:
You suddenly have a lot of spare cash. You’re not any richer, since you’ve just swapped a $10 doo-dad for $10 in cash. But it makes you feel richer, which is nice. And you can invest that $10 to get even richer, or spend it on something actually worthwhile.
You appreciate the things you have more. I now look at what I have and think how lucky I am to have the things I do, rather than “oh God, I have too much stuff!”. It’s a nice change.
Everything works. I can pick up any book on my shelf and know I will enjoy reading it. Every single book. Likewise, it would be very difficult to dress myself with any item in my wardrobe and not look half-reasonable, since I’ve disposed of everything that doesn’t fit, is worn out, or I just plain don’t like.
Stuff that I didn’t dispose of:
Anything that I actually needed! Why get rid of something if you are just going to have to buy it again later? It’s a waste of time and money to do that. Your individual situation will determine what you actually need.
Sentimental items. I’m not saying that I’ll never get rid of the stuffed teddy bears I’ve had since I was a small child, but it’s certainly not time for that yet. The antiques my grandmother gave me in her dying days will never go, despite the “where the hell will I put that?” response they caused when I received them.
Stuff I did get rid of:
I used to have a huge collection of books. I had ten “In A Nutshell” books from O’Reilly. I had dozens of Penguin Classics. I had hundreds of books. Now I have twenty.
When you buy a book, it can become one of four possible things. Some you’ll never finish reading because they’re awful. Some you’ll read, but you know you’ll never read again. Others you might refer to once in a while, such as a cookbook. Finally, there are those books you’ve read to death. You know every word, and yet you go back to read them again.
Any book in the first two categories should go immediately. You do not want these books wasting space in your house. Books in the fourth category should definitely stay. Books in the third? Well, it’s up to you. I got rid of them if I could find the same information online, and kept them if I couldn’t.
Now, how to get rid of books. If you live in Australia, this is actually incredibly simple. You put them in a box, and ship them off (with free postage) to a service that sells them online for you. It’s amazing. I love it. It’s called FishPond SmartSell.
Computer Gear / Electronics
Getting rid of computer and other electronic equipment is depressing, for one simple reason: the depreciation on these purchases is incredible. A motherboard you bought for $350 a couple of years ago is now worthless. You cannot even sell optical drives. This stuff is junk.
I had a lot of computer junk. I knew it was junk, but I kept it around anyway. Patch panels. Dozens of SATA cables. A $50 printer with no ink. Sticks of RAM. All of it taking up space in my life (and in my study no less, where space is most precious). By getting rid of it, I’ve made a lot of space, and a bit of money.
In Australia, the best place to sell computer equipment (and most other assorted items) is Gumtree (Americans could use Craigslist). It’s relatively easy (especially compared to the minefield that is now eBay) and has a very large user base. Unfortunately eBay is full of cheap Hong Kong sellers who sell new items for less than you can post your old items for. Don’t even bother. You’ll want to spend a bit of time getting a feel for how much items are worth, so as not to sell things for too cheap.
I now basically have just a laptop, a printer, a mouse, and some external monitors. It’s all I need, and it takes up very little space.
I used to have stacks of spiral-bound notebooks with ideas and grand plans in them. I had filing cabinets full of tax receipts and superannuation reports. I now have very little of that. Here’s how I went about the process:
Obtain a shredder (preferably a cross-cut model such as this) and a scanner (one with a feed tray is best, such as this). You can most likely borrow these from relatives to avoid the need to buy, if you don’t have them.
Make sure you have a good backup program on your computer, so you don’t lose anything (lest the tax man come after you). I recommend BackBlaze. It’s automatic and it just works.
Read through the spiral-bound notebooks, ripping out any page that has what is still a great idea or a useful note in it, and shredding any page that has a password written on it. Dispose of the notebooks.
Scan to PDF all of the notebook pages that you want to keep. This will be a long and tedious process, but it’s mind-numbing work, so watch TV at the same time. After you scan each page, shred it.
Now move on to the filing cabinets and other papers. Some items can just be thrown out (or shredded if they have personal information). Some items can be scanned and then shredded (most things needed for tax fall into this category). Some things will need to be kept (birth certificates, car registrations, etc). Scan these anyway, it’s nice to have a backup.
Put the shredded papers into the compost and make some lovely worm food.
The next step is organising these PDFs into a useful form. The stuff kept just for tax purposes can just be filed away and forgotten about in the depths of your hard drive, but anything that needs to be looked at again should be organised.
Clothing went through a simple three-step test:
Does it still fit me?
Is it still functional (holes, wearing, etc)?
Do I like it?
Unless I got a yes to all three questions, it went into the charity bin. Simple as that.
I disposed of a lot of other items too. A lot of things I sold on Gumtree, as they had some resale value. Unfortunately, others went into the garbage. This made me sad, but it’s important to realise they didn’t become garbage when they went into the bin; they became garbage when they were no longer useful. I just hadn’t thrown them out yet.
While my process of elimination and simplification is still ongoing, starting to clear out my house on a physical level has cleared out my mind too. I can see (both literally and metaphorically) the things that are important to me. I hope to never look at stuff the same way again.
As promised in my second post on running a company, I want to talk more about time management. I’m definitely still learning myself, so while I do have useful things to say, take them with a grain of salt.
I want to start at the core of the time management problem, and work outwards from there. Before I can give any practical advice there is a question we have to ask ourselves: what is the point?
Principle #1: Know what you want.
Before there is any point to improving how you manage your time, you have to ask yourself what you want to achieve. Not only that, but you need an answer that you passionately believe in.
Similar to how exercising without a goal won’t succeed, managing time without a goal won’t either. You can join up to a gym, buy new exercise pants and book appointments with a personal trainer, but unless you actually want to achieve a defined goal (such as losing 10kg, running a marathon, or joining a sportsball team) the motivation to exercise will disappear and your exercise habit will deteriorate to nothing.
Let’s take my example. I want to better manage my time so that I spend less time on business administration and personal errands, and more time either working productively or having fun.
But it’s not just enough to have a defined goal. You have to believe in it. And for that, we need to go one step further. With exercise, you might want to run a marathon. But why would you want to do that? Because you want to feel good about your body. You don’t want to feel shame any more. And that’s good. It’s an emotional feeling, and we can latch on to emotions more than we can to abstract goals.
Personally, I want to spend more time on productive business and relaxation because those are the things I enjoy most. My work brings me joy, and so does spending time with my family and friends. Doing laundry does not. The emotional attachment I have with the people around me is the motivation I need to better manage my time.
You might have similar motivations. Or perhaps you want to get a promotion, in order to feel the higher status that brings you.
Work out what you want, and then make it feel real.
Principle #2: Time is your only resource.
When you are born, you are gifted with roughly 67.2 years of time, which equals about 24500 days, or roughly 600,000 hours (based, of course, on where you were born and to whom).
Unless your parents were ridiculously rich, pretty much everything you have after the age of 18 was earned by yourself. Your car, your house (lucky bastard), your life partner, all these things required an investment by you. And what was the form of that investment? Time.
When you courted your partner, you were giving up time in order to gain something more valuable (hopefully): love.
When you bought your first car, you did so with money from your job. What is a job? Trading your time for your employer’s money.
A house is a slightly more complex trade, but it still involves an investment of time – both before buying the house and after (both in the form of paying the mortgage and maintaining the house).
When you buy shares in a company with the hope of receiving a dividend, you’re investing your time. You spent some of your time now in order that you might have to work less (and thus have more time) in the future.
When you have a debt (like a credit card) what you really owe isn’t money: it’s the time you will have to spend to pay back the debt.
The key realisation is that time can be converted into money (most of us do it every day, in the form of a paying job), but also that money can be converted into time (by paying somebody else to do something for us). In the inter-connected global economy (fragile as it is) it’s easy to make this conversion happen both ways.
Every time you order a pizza, you’re spending your money (which you earned with your time) in order for somebody else to spend their time making a pizza in lieu of you. Because everybody is good at different things and has different prices on their time, this trade makes sense: the specialisation in the economy allows everybody to be more efficient in how they spend their time. And it’s this we will explore next.
Principle #3: What is your time worth?
Managing your time practically comes down to an issue of opportunity cost, one of the core concepts of economics. In it’s simplest form, the opportunity cost of a product or service is the sacrifice that is needed to have that product or service.
For example, a bottle of Coke is about $4. You can either have the $4 of money, or you can have the Coke. You can’t have both.
Opportunity cost is most interesting when it becomes relative. Let’s say you have a choice between going to the beach (or some other enjoyable activity) with your friends, or going to work and earning $1000. Most people would go to work, since $1000 is more valuable than the time spent with friends. Now let’s say you have the same choice, but you only earn $10. Most people would quit immediately and spend the time with their friends. Spending time with friends is worth more than $10, but less than $1000. Or is it?
What if we repeat the experiment over time? Let’s say every hour I work I earn $100. In the first hour, I’m pretty chuffed to have earned $100. I work a second hour, and I have $200. After the fourth hour I have $400, but I’m also pretty hungry. At this point I could work another hour and earn more, or I could have lunch and spend $20 (assume I’m eating out). I decide that the cost of having lunch ($120, combining both the meal cost and the lost income) is less than the cost of being hungry for another hour. Over time, our needs change and thus our opportunity costs do too.
When we do tasks like laundry or the dishes, we are saying that the cost of being able to find a clean dish or clean clothes in the future is less than the cost of having to clean them now. Whether this is true for you depends on your circumstances.
When we watch TV, we are saying that the cost of this activity is less than the cost of anything else we could do with that time (including earning more, spending time with family, running errands, etc). We have to keep in mind all the time: is this what I want to be doing with my time to the exclusion of all else?
Principle #4: Eliminate the unnecessary.
This principle is really a logical extension of the previous three principles, but it’s important enough that I’m going to include it anyway.
Given that we only have a finite amount of time, the opportunity cost of everything we do can be measured in time, and we have goals to achieve in that time, it makes sense to prioritise.
There are some things we should eliminate entirely. Logically, smoking is number one. It shortens your life, it costs you time smoking, and it costs you time working to buy cigarettes.
There are other things we might want to spend less time on, but still want to do. I enjoy watching some television, but I need to be conscious of not wasting too much time watching ABC News 24, no matter how awesome Michael Rowland is.
What we choose to eliminate and cut back on is different for everybody, because we have different goals and values in life. I don’t care about fashion, so I do only what I need to in order to look respectable. Other people enjoy fashion, so it’s a worthwhile time investment.
If something doesn’t interest you, either eliminate it from your life or figure out how to automate or outsource it.
Life is as fun and interesting as you make it.
So those are my principles of time management. From now on, in following posts, we can be a lot more practical.
Keep an eye on cash flow. It can be great to send off thousands of dollars of invoices, but if you don’t have the money today to pay suppliers (or employees) then you’ve got a problem. People don’t like being paid in promises, they prefer cash. I feel very uncomfortable if I have less than a full month’s expenses (including wages) in the bank. I like having two or three.
Know the failure rates, and plan accordingly. My business is now almost three years old, and it’s only now that I’m starting to think “you know what, I might just be able to make this work”. A source of mine at the Commonwealth Bank says they see 70% of start up businesses fail within the first year. From my point of view, one of the key success factors is not to dream big before you’re capable. Don’t buy into the Silicon Valley mindset of buying brand new Aeron chairs for every staff member, when you don’t even have a single client (or a product/service, even). Doing so is a guarantee of failure, in my opinion.
Ideas really are worthless, and implementation of them is a lot harder than you first imagine.
Time management is important, and difficult. “Work” as such never really stops, and work hours are unpredictable. I sometimes start at 7:30am, and I’m quite often working at 10:30pm. On the other hand, sometimes I will work only a couple of hours a day and then go to the beach. But one thing is constant: worrying about the business. Worrying about client work, worrying about bills, worrying that my staff are happy, and so on. I’ve spent a lot of time learning about time management, and I might go into this in more detail in another post, but the key is this: fill your schedule up with big rocks.
Ask for help before you need it. Get all the advice you can. Not all of it will be good (indeed, some of it will be awful), but pick out the good stuff. Get advice from your bank before they need to bail you out, they’ll be much happier.
If you’ve got multiple directors and/or senior staff, think about who has access to bank accounts.
And the most important thing: starting my own business is the most exciting thing I’ve ever done. If you have the inspiration and the opportunity, do it. If you don’t have the opportunity, try to make the opportunity happen. Business ownership is an amazing feeling.
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.
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.
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.
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.
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!
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.
This 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.
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.
After 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!
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.
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!
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:
It’s easier to introduce more directors and shareholders later on than it is to remove them. Pick carefully.
Being a director does involve legally mandated responsibilities, so make sure directors will be up to the job required.
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*).
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.
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.
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:
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.
Well, the Hottest 100 happened yesterday, so now it’s time to evaluate how my spoilers list went:
147 songs were given a 1% or higher chance of appearing in the Hottest 100 by my bootstrap analysis. 98 of those 147 songs made the Hottest 100.
85 of the songs in the Spoiled Top 100 made the Hottest 100.
The top 72 songs in the spoiled list made the Hottest 100.
6 of the 10 songs in the Spoiled Top 10 made the Hottest 100′s Top 10.
#1 was correctly predicted.
Why wasn’t it more accurate, or as successful as last year?
We don’t know how good the OCR model was at transcribing votes. We’ll need to do work fitting our OCR model to known transcriptions if we want to do this again next year.
The sample size was much lower.
Daft Punk fans don’t post to Instagram enough (inherent bias)?
The bootstrap resampling technique did not account for taste: particular songs often being selected together.
I’ve got every confidence that this method will be viable for next year, especially since the results were a much less spectacular spoiler than 2012′s Warmest 100. Let’s see if we can make a better model for next year.
(Beware – this article includes a link to some probable spoilers for tomorrow’s Hottest 100 count. You can read this article without reading those spoilers.)
You’re probably familiar with Triple J’s Hottest 100. It’s the world’s largest write-in music poll. Last year, Triple J made an easy, shareable link for people to post their votes out on Twitter and Facebook. Alas, these links were easy scraped from the web, and the Warmest 100 (link to 2012 count) was born. The top 10 (but not its order) was revealed, and the top three was guessed perfectly.
This year, voters weren’t given a shareable link, but a few thousand people took photos of their confirmation e-mails and posted them to Instagram. With a tiny bit of OCR work, the Warmest 100 guys posted their predictions for this year. They found about half the number of votes that they did last year through the scraping method, which is no mean feat, given the lack of indexing.
So the question is — how useful are these votes in predicting the Hottest 100? What songs can we be sure will be in the Hottest 100? How certain is that top 10?
Update: he’s updated his method *again* based on some feedback I offered, and has also written that up (spoilers). This is the data my final visualisation runs off.
So, what have I done with the data?
When you have a sample — a small number of votes — from the entire count, you can’t really be certain where each song will actually appear in the count.
In this case, Justin’s data collected 17,000 votes from an estimated 1.5 million votes. That’s a sample of 0.1% of the total estimated vote. It’s a sample, but we have no idea how that compares to the actual count.
If we think that the votes that we have is a representative sample of all of the votes, then what we’d like to know is what would happen if we scale this sample up to the entire count. Where will songs end up if there’s a slight inaccuracy in our sample?
The good news is that computers give us a way to figure that out!
Bootstrap analysis (due to Effron) is a statistical technique that looks at a sample of votes from the whole set of votes, and randomly generates a new set of votes, with about as many votes as the original sample. The trick is that you weight each song by the amount of votes it received in the sample. This means that songs are picked in roughly the same proportion as they appear in the sample. The random sampling based on this weighted data adds noise.
You can think of this sample as a “noisy” version of the original sample. That is, it will be a version of the original sample, but with slight variation.
If you repeat this sampling process several thousand times, and rank the songs each time, you can get a feel for where each song could appear in the rankings.
How do you do that? Well, you can look at all of the rankings a given song gets for each randomised set. Sort this list, and pick the middle 98% of them. Based on that middle 98% of rankings, you can be 98% certain that the song will be at one of those positions. In statistics, this middle 98% is called the 98% confidence interval by bootstrap.
You can repeat this for different confidence levels, by picking a different amount of rankings around the middle.
I’ve used Google Spreadsheets to visualise these confidence intervals. The lightest blues are the 99% confidence intervals. The darkest blue intervals are the 70% confidence interval. The darkest single cell is the median — i.e. the middle of all of the rankings that we collected for that song in the bootstrap process.
First up, a bit on my methodology: Justin’s data didn’t separate votes into their original ballots. So, I had to pick songs individually. To improve accuracy, I selected songs in blocks of 10, where each song in the block of 10 is different — this vaguely resembles the actual voting process.
In my experiments, I ran the sampling and ranking process 10,000 times.
You’ll notice some interesting trends in this visualisation. The first one is that the higher the song is in the countdown, the narrower its blue interval is. Why is this so?
Well, as songs get more popular, the distance between each song in the number of votes received grows. In Justin’s sample of the votes, #100 and #73 were separated by 15 votes. So if one or two votes changed between #73 and #100, that ordering could change spectacularly. Given Justin’s sample is of 17,000 votes, 15 votes represents an 0.1% change in the vote.
So at those low rankings, a tiny change in votes can make for a massive difference in ranking.
At the other end of the count, #1 and #2 are separated by 16 votes. #3 and #4 are separated by 22 votes. #4 and #5 are separated by 51 votes. Down the bottom of the list, where 16 votes could move a song 33 places in our count, you’d need 16 votes to change just to swap positions 1 and 2.
What this means from a statistical perspective is that the closer to the top you are, the more work you need to do to change your position in the count.
You’ll also see this phenomenon in the right-hand side of the intervals. The interval of a given colour on the right-hand side of the interval will generally be longer than the same colour on the left. Once again, this is because lower ranks swap around more easily than higher ranks.
Update: Since writing this article, I ran one more test – how many of the songs in the top 100 of Justin’s raw sample of votes will make it into the actual Hottest 100? Well, bootstrapping helps us here too. For each bootstrap trial, I take the top 100 songs, and see how many of those are in the raw top 100. I reckon, with 98% confidence, that we’ll get 91 songs in the actual Hottest 100. Thanks to David Quach for the suggestion.
In summary: the Warmest 100 approach is statistically a very good indicator of the top 4 songs. The top 4 is almost certainly correct (except that 1&2 and 3&4 might swap around between themselves). Everything up to #7 will probably be in the top 10.
The sampling approach is less accurate at the bottom, but I’m pretty confident everything in the top 70 will be in the actual top 100.
I’m also pretty confident that 91 of the songs in the raw top 100 will appear in the actual top 100.
I’ll be making some notes on how these confidence intervals got borne out in the actual count on Monday. I’m very interested to see how this analysis gives us a better idea of how accurate the Warmest 100 actually is.
I’m (sporadically and with much delay) blogging my yearly pilgrimage to linux.conf.au 2014, this year being held at the University of Western Australia in Perth.
Today’s keynote was given by Kate Chapman from the Humaritarian Openstreetmap Team. It was awesome. I’d heard of OpenStreetMap previously but not really paid much attention to it either as a technology or as a community. I was impressed by both. On the technical side it’s great to have a map that can be easily edited by anybody, Wikipedia style, and has as much information as you could want on it. On the community side, I was really impressed by how they went from a bare outline of Haiti just before the earthquake there to a complete map of pretty much everything only a few weeks later.
I immediately installed JSOM, the OpenStreetMap native editor and started adding points of interest I know exist around my suburb. It was surprisingly easy to use and the near-instant results proved satisfactorily addictive. I hope to get into this more in the future.
Open Programming Miniconf
I spent a large portion of the day in the open programming miniconf. There were several highlights:
(the people pulling tissues out of the box were racing the OpenShift setup process to see which was faster).
Adam Harvey’s talk where he wrote a PHP microframework in 15 minutes in front of the crowd, partly to prove it could be done and partly to prove that you shouldn’t bother. I’ve always been dubious of frameworks for small peices of code, simply because PHP provides most of what you need (which is Adam’s point). I guess the problem comes when this one-page script evolves into a full application before anybody realises, and using a framework from the beginning would have saved a lot of headaches down the track. It’s a tricky one to judge.
Tom Eastman’s talk on serialisation formats. I’d never considered some of the problems with these formats that means that even in formats such as YAML or JSON there are security vulnerabilities that are continuously overlooked. Unfortunately I had to leave in the closing minutes of this talk to attend to an emergency, so I missed some crucial information. I’ll definitely be revisiting this one when the talks are released for download.
Walking into Perth
For dinner tonight we decided to walk into Perth via King’s Park, which proved to be very pretty. We also ended up walking back via the foreshore along Mounts Bay Road, which was a bit of fun since (for some reason I can’t quite figure out) we decided to run part of the way back. Turns out running is fun if you’re in good company. Who knew. The total distance was just under 12km, so I probably even burned off the energy from tonight’s dessert, a sticky date pudding from the British pub in Murray St (good stuff, though a bit dry).
Now the miniconfs are over, and the conference proper starts tomorrow. For delegates it’s a fairly unnoticeable difference (only real difference being that the talks aren’t grouped into rooms by subject anymore), but it marks almost the halfway point. There’s also the penguin dinner to look forward to, which this year looks to be an upscale picnic on the Matilda Bay foreshore.
Over the new few months I will be slowly transitioning to a new OpenPGP (GPG) key. The reasons for this are as follows:
In light of the recent information regarding the NSA, GCHQ, ASIO and other spying on citizens of the world, I believe a larger key size will increase security against attacks (even if the increase is small).
I read about a patch to GnuPG to allow creation of larger key sizes and wanted to try it out.
I wanted to have a clean slate with completely separate subkeys and good key hygiene (in regards to how the private key and revocation certificates were stored).
I have created a new 8K-length certification master key (0xB341C361CE04C603) with the following subkeys:
4K Signing key (for signing documents and emails)
4K Encryption key (for encrypting files)
4K Authentication key (for logging in to systems, though in practise this isn’t really useful yet)
The reason for the 8K (for the uninitiated, this is a huge key that is overkill for current technology) separated certification key is so that I can keep that key safely on my home systems protected from the wild, whilst still being able to carry my signing, encrypting and authentication keys around on my laptop without too much trouble. Since the certification key is used for signing other keys and being signed by other keys (i.e., building the web of trust) it is a good thing if this key is both well protected and doesn’t change much.
The authentication key is interesting – in theory the underlying key data is such that you can use it for SSH logins, but it is such a pain in the arse to get the key data out and into a format that the SSH client can use that nobody bothers.
My old key (0xF3EABD1AAC83D520) no longer has a valid encryption key and I will be revoking the master key within the next few weeks.
I’m (sporadically and with much delay) blogging my yearly pilgrimage to linux.conf.au 2014, this year being held at the University of Western Australia in Perth.
We begun the first day of the conference with the morning keynote, which was presented by Suelette Dreyfus. She talked about some of the statistics around people’s feelings towards privacy, whistle-blowing and government surveillance. The thing I found most interesting was that the ordinary citizen supports whistle-blowing and doesn’t support government surveillance. Which leads to one of two conclusions:
The government will soon have to start actually listening to citizens and do something about all this.
The government is actually entirely controlled by the spy agencies and we’re all screwed.
Yay for freedom and democracy! :/
Rocketry & Radios
The next talks I attended were from the open radio miniconf, where Bdale Garbee and Keith Packard talked about the hardware and software they are using for rocket to ground radio communications on their rockets, and which they are successfully selling through their fully open-source business. I found a few points interesting:
RF circuit board design is hard. There is some serious smarts going on with designing those boards to not have everything interfere with everything else (especially in such as a small package, with two radios within a centimetre of each other).
Here is yet another FOSS small business that is clearly surviving and not a complete drain on the pocket (one assumes, you can never be sure). That’s good news, as the world needs more businesses to cross that divide between open-source and the commercial world.
Rockets are fun!
The Sysadmin Miniconf
Between lunch and afternoon tea I sat in on the sysadmin miniconf (there’s a mantra at linux.conf.au: if you’re in doubt as to what to see, tend towards the left hand side of the schedule). The most interesting talk for me was from Elizabeta Sørensen on RatticDB, which looks a pretty cool password management tool that would have been amazingly useful in my last job (where I worked as a sysadmin rather than being a programmer like I am now). Despite being immature software, it has a lot of promise and I’ll definitely be trialing it for my own uses.
I also found the talk on Husk by Phillip Smith to be very interesting. Writing iptables rules is a pain, and writing them twice (once for IPv4 and again for IPv6) is a complete pain. So Husk looks great because it gives you extra power in simply being able to write-once for both network stacks and being able to re-use variables and rulesets. It’s basically SCSS for firewalls.
After afternoon tea I went to the talk given by David Rowe on modems and how they work in a basic sense. Unfortunately I was completely out of my depth and I had no idea how the modem algorithm fit into the stack of hardware and software. Is the mixer hardware or software? Where is forward error correction done? No idea. More reading for me to do!
By this stage I was pretty exhausted, having not got much sleep the night before. I therefore retreated to the dorm room and had a quick nap, a cup of tea and a shower (Perth is hot!) before dinner. I went out with a few friends (new and old) to a great pub we’ve found nearby that does good pizza and amazing crème brûlée. Hopefully an early night tonight so I don’t get too exhausted before the week is out.
I’m (sporadically and with much delay) blogging my yearly pilgrimage to linux.conf.au 2014, this year being held at the University of Western Australia in Perth.
The week before linux.conf.au has been spent with my partner’s family in Fremantle, doing touristy things (because we are tourists). Here are some of the highlights:
The Perth Mint
I had a great time at the Perth Mint, mostly because I got to see a gold bar being poured – it was worth a quarter of a million dollars. Apparently when they last cleaned the roof they found $40,000 of gold dust. Impressive stuff. No pictures unfortunately, since in some places you couldn’t take photos, and where we could I forgot. I also couldn’t afford anything in the gift shop (and I really couldn’t figure out why somebody would pay $60,000 for the smallest diamond I’ve ever seen).
We also went to King’s Park (more specifically the botanical gardens) and went on a guided tour given by one of their volunteers (thanks Denis!). There are a number of cool things in the park, but by far is the 16m tall footbridge they have… just because they can. It’s quite a similar experience to the Tahune Airwalk in Tasmania, but in a much different climate and ecosystem.
Near the Fremantle coastline there is a museum of shipwrecks and maritime history. I went in slightly dubious (it is a museum after all) but came out fascinated and full of facts. The wreck of the Batavia was pretty cool, having survived 300 years in pretty rough conditions and still intact enough to make a good display.
We also visited the Fremantle Arts Centre, The Maze, several different beaches and snorkelling spots, various pubs and restaurants, as well as a rally to try and stop the shark cull in Western Australia. It was pretty impressive seeing thousands of people who were pretty fired up about something. And it is a big something, so I hope to write a more detailed blog post about that at a later date.
I’ve now settled into the dorms at Trinity College, caught up with a few friends (many more to see yet!) and await the beginning of the conference tomorrow. Tomorrow’s schedule is full of “mini-confs” dedicated to particular subjects. I’ll probably start the day at the open radio mini-conf, because a talk on rockets is pretty much a must-see. Since I work as a web developer on a team that uses agile techniques, a lot of the talks in the continuous integration mini-conf will be informative (though the lack of rocketry will be sad). Very exciting!
I’m (sporadically and with much delay) blogging my yearly pilgrimage to linux.conf.au 2014, this year being held at the University of Western Australia in Perth.
Today was the flight from Hobart (HBA) to Perth (PER) via Melbourne (MEL). After a morning waiting (both my girlfriend and I had both already done most of our packing the night before) we had a fairly uneventful flight from Hobart to Melbourne (737-800, seats 29D and 29E). Bit of turbulence but nothing unexpected from economy class on Virgin.
The flight over to Perth was on one of Virgin’s two older (ex-Emirates apparently) A330-200 aircraft (seats 9J and 9K). This was slightly disappointing as these two aircraft don’t have in-seat power, a nice extra on a 4-hour flight (which is about as long as my laptop battery lasts). The TVs were pretty blurry picture-wise and the sound was choppy (not that I cared, I had my laptop to watch). Chicken-based meal wasn’t too bad, but my girlfriend’s vegetarian meal was… very average. You can tell these planes have been in use for a while. That said, the flight was smooth, fast and safe… so I can’t complain too much! Other than that it was a pretty nice flight.
I have to say I’m really looking forward to this year’s LCA. All the usual great speakers are there, including some of my favourites (Matthew Garrett, Katie Miller and Adam Harvey to name a few). As well as this, it is the first LCA trip I’ve managed to drag my girlfriend along to (which is the real reason we are going a week early, as she has family in Perth). Hopefully there are more of these trips to come!
I imagine we won’t be coming back to Perth for a while (unfortunately trans-continental flights are quite expensive), so there are a few sights we want to see. I really want to visit the Perth Mint and see the minting of gold and silver bullion coins (yeah, I’m weird). My partner wants to go to Nottnest Island and do lots of swimming in some of the marine parks around the Perth/Fremantle area.
The second of my DroidCon India talks introduces developers of mobile apps with the difficulties of designing for mobile networks. It also contains a series of design ideas that developers can take back to their back-end development team, so that the APIs that they produce for accessing their services are less difficult to use in a mobile context.
My first talk from DroidCon India 2013 (November, Bangalore). It’s an exploration into the approach that we’ve taken at AsdeqDocs in producing a properly cross-platform mobile app. We take the approach of separating our core application logic into a C++ codebase, and apply platform-specific user interfaces over that codebase.
This talk covers the software engineering principles that make that work; as well as the benefits, difficulties, and insights that we’ve learned over a few years of doing this. It’s probably the favourite of my mobile dev talks.
Very pleased to say that I’ll, once again, be running an Open Programming Miniconf at Linux.conf.au in January. This time around, the conference will be at the University of Western Australia in Perth.
I’m especially pleased, because after initially being rejected by the conference team, with limited time to assemble a line-up, I’ve put together what I think is the best Programming miniconf lineup in the five years I’ve been running it.
One of the goals of the Open Programming Miniconf is to be a forum for developers to share their craft: ideas for improving the way people code, and topics that are of benefit to people who develop using many open source programming languages. This year, for the first time, I think we’ve filled that remit.
This year’s talks cover everything from low-level mobile programming and driver development, to deployment of web applications, as well as talks about packaging, deployment, and development tools.
We also don’t have a single state-of-the-language talk. Everything’s about topics that can be transferred to any number of languages.
Making Mobile Web Services That Don’t Suck – A talk that covers everything a mobile dev needs to know to understand how mobile networks work, and how to work with their back-end team to make an API that doesn’t suck.
I’ll post back here with slides and videos as they become available.
I’ll be in Bangalore until late on Saturday, then coming home via Singapore for a few days. Should be fun!
A few weeks back I posted ‘I’m Jack Scott, IT Consultant, And This Is How I Work‘, pretending I was famous and answering LifeHacker’s standard interview questions for famous tech entrepreneurs. In the post I suggested that I’d like to see Chris answer the same questions.
Hamzah asked Jamie Bailey. So far Jamie hasn’t blogged, but given personal circumstances at the moment it is quite understandable.
This has been quite an interesting exercise. Mostly about peer pressure – nobody seems to want to break the chain. It is also worth noting that there are a heap of people who should be answering these questions who don’t have blogs (Michael Wheeler, I’m looking at you). I truly believe more people should blog (and that I should blog more often). The act of putting finger to keyboard for more than 140 characters actually makes you start thinking about things a bit more (I only realised my prowess with search engines halfway through writing the blog post).
If anybody else feels like answering the questions, let me know and I’ll update this post with links.
Location: Hobart, Australia Current gig: By who pays me: Software Developer at Asdeq Labs. By what I love to do: Open Source Community person; general developer conference raconteur. Current mobile device: Nexus 5 & Nexus 7. Current computer: The one I directly use? That’d be a 2013-era MacBook Air; 13″ screen, with all of the extra trimmings.
One word that best describes how you work:
(But, if I’m actually passionate about something, that word might well be “obsessively”.)
What apps/software/tools can’t you live without?
Python. It’s what I go to every day when I need to quickly bash out some proof-of-concept code or make some calculations. Even if I don’t use Python in my day job, Python prototypes will often form the genesis of production code I write in another language. Surprisingly often.
Also: Keynote. Or at least version 5 of it, I haven’t tried Version 6 yet. It makes making presentations easy, and I seem to be doing a fair bit of that at the moment. It’s probably the one piece of software that keeps me tied to Mac OS X.
What’s your workplace like?
At work, I have a pretty generic veneered flat-pack style desk, with a 24″ monitor, and a laptop stand so I can put my laptop’s screen parallel with my larger monitor. I also have a Microsoft split keyboard, which I still can’t use properly. If I were planning my own office, I’d probably have an Aeron chair. But I’m not (at the moment, anyway), so I won’t
At home, I’ll sit wherever feels most comfortable to do whatever it is I need to do. Often that seems to be bed, just because I’m writing stuff, and it seems like a good place to do it.
What’s your best time-saving trick/life hack?
If you’re travelling for more than 4 hours, learn to sleep on planes, and fly at night. Waking up in another city is cool, and having a whole extra day to do things on a trip is like generating extra time for free. It’s a productive use of sleep time!
What’s your favourite to-do list manager?
Honestly, I tend not to use them. I’m generally across most of what I have to do in a day. If I have deadlines, I’ll shove them in a calendar. Otherwise, meh.
Besides your phone and computer, what gadget can’t you live without?
A coffee maker. I like coffee of high quality. I have a rather nice espresso machine, which is the high-end model of a low-end brand; when I’m travelling, I carry an AeroPress and Hario Slim grinder, with a supply of high-quality beans. It saves me money, and I don’t complain about the coffee being awful when I’m somewhere I’m unfamiliar with!
What everyday thing are you better at than anyone else? What’s your secret?
It seems to be remembering things. No secret, I just do it. Brains are weird like that.
On a completely different note, I have absolutely no natural pre-conception of how good other people are at things I know how to do. I’ve found that getting good at presenting technical material is great for figuring out what people need to know to know something (ask me about this sometime).
What do you listen to while you work?
If I’m in at the office, not very much. I hate music getting interrupted, so I’ll take my headphones off the moment I sit down.
If I’m at home, and I’m listening to music, pretty much anything in my library. Right now it’s jumping between Rumours by Fleetwood Mac, and Dear Miss Lonelyhearts by Cold War Kids. But that could change any moment.
What are you currently reading?
Python documentation. AppleScript documentation. Mostly so I can figure out how to implement features in my side project (Keynote-as-a-service). More generally it’s things on Wikipedia. I like to know things. Then I can remember them.
Are you more of an introvert or extrovert?
Though, introverts tend to think I’m extroverted. Probably because I can talk to a crowd if I need to. Needless to say, that’s a completely different skill to actually talking to people one-on-one, which I still have no idea how to do.
What’s your sleep routine like?
Pretty regular. I go to sleep sometime between 22:00 and 23:30, and wake up, just before my alarm does, before 7:00. I wake up with disturbing regularity.
Fill in the blank. I’d love to see _____ answer these same questions.
What’s the best advice you’ve ever received?
Life’s too short for bad coffee.
If you don’t like coffee, substitute this for something else you actually like.
Basically, if you’re going out of your way to find something mediocre, or not as good as you can find in the general area, you’re wasting your time. Don’t do it. Be exceptional, and expose yourself to people who are great at what they do. You’ll almost always find some way to apply it to whatever you do.
And yes. Speaking with people who know how to make coffee properly has helped me be a better programmer
Is there anything else you want to add for readers?
Not particularly. I prefer responding to stimulus than coming up with ideas out of thin air.
Errm, so if you want to get an idea from me in the future, ask me something direct, and don’t ask for open-ended ideas.
I love Apple’s presentation tool, Keynote. In fact, if I had to nominate a single piece of software that was keeping me using Mac OS X, Keynote would be it. I haven’t yet found another tool that lets me throw together great-looking slides as quickly as keynote does.
On the other hand, I also really like using Android. And this is a problem, because Apple’s Keynote Remote app only works on iOS. Keynote Remote is an app that allows you to remote control Keynote from your phone. It also sends down a screen preview, presenter notes, and it also allows you to peek ahead to your next slide. Basically, it’s a killer app for people who want to step out from behind the lectern, and still have their notes and be aware of where they’re up to in their presentation.
And it only runs on iOS.
So this is where I introduce my new project: KAAS, or “Keynote-as-a-Service” is a Python-based HTTP server that lives on the same laptop as you’re presenting from, and exposes a JSON API for doing everything that Keynote Remote does, and potentially more. It’s Apache 2.0-licensed, and it already has a reasonable amount of documentation (though it could use a whole lot more).
I’ve thrown together a basic HTML front-end, with a really bad UI, just so you can see it in action.
In parallel, I’m developing an Android-based keynote remote, called Keymote. Once I release the app, I’ll be selling it for a nominal fee through the Play Store. It’s currently in Alpha testing, but if you want to try it out, let me know, and I’ll grant you access.
So how does KAAS work?
Keynote 5.x (iWork 2009) offers a reasonably comprehensive AppleScript interface* to creating and controlling slideshows with Keynote. It also has a remarkable HTML & JSON export format that, with some basic understanding of the JSON format, allows you to reconstruct how the slideshow will look at each stage of build.
Even better, it tells you when builds will be skipped, or when they’ll be auto-played. In concert, you can use this to determine where Keynote will be after you advance the slideshow, and you can build up build previews (lol) based on the commands in the JSON.
What’s best is that exporting such a HTML & JSON package is exposed through the AppleScript bridge, so it’s easy to do automagically.
In combination, you can use these to replicate the back-end functionality of Keynote remote.
So, if you’re interested in testing out Keymote, or if you want to contribute to KAAS, let me know. I’d be grateful for help and happy testers in any form.
(*Yup, this doesn’t work with Keynote 6.0. It’s apparently a substantial re-write, and Apple have removed the AppleScript interface to the new version. According to this support note, AppleScript support will come back. Hopefully there’ll be something resembling the Export format too.)
Lifehacker regularly features a segment where they interview famous people and ask them how they work (such as this). Since I’ll never be famous enough to be asked by Lifehacker directly (though you never know, they might get are desperate for content one day). So here are my answers. Hope you enjoy.
Location: Hobart, AU Current gig: Software Engineer at Workzerk Current mobile device: Samsung Galaxy SIII Mini. I hate it so much and would love to get rid of my mobile phone and never get another one. Current computer: Cool people don’t have brand names on their computer. They also have more than one computer. One word that best describes how you work: Hungrily.
What apps/software/tools can’t you live without?
I can’t live without Outlook. I use it to manage my entire life, business and personal. I know Google Apps cover a lot of the same use scenarios, but Outlook is so much friendlier and more efficient – it really has been a killer app for the last fifteen years and will continue to be for as long as people want to actually get work done on computers instead of watching YouTube videos of kittens. Because the world really needs more work and less youtubeing kittens. As much as we all love them.
I happily pay for my own Active Directory installation and Exchange server. For one person. It just benefits me that much. Plus it sounds cool.
What’s your workplace like?
My completed home desk, with racks, as I’m putting everything back on it.
I have two. The first one, “at work”, is grey and white and very clean. I have two monitors and an Aeron chair. I recently bought two pot plants.
The second one, my home office, is a lot more fun. I have a desk I built myself (with a lot of help from my great Dad) which has 6RU of 19″ rack space built in (every desk should have this). The rack forms a monitor stand for three mismatched monitors (one for chat and social media and Outlook, one for Firefox, and one for everything else (which includes everything from Visual Studio to OpenTTD).
What’s your best time-saving trick/life hack?
Only watch television that’s been recommended to you by more than five people. If you do watch something, download it to your computer, use VLC to play it, and have the speed set to 1.2x. The speech is still understandable and doesn’t sound at all chipmunky (if it does occasionally I set the speed to 1.1x) and I save minutes an episode.
What’s your favourite to-do list manager?
For general to-do lists, Asana. It’s awesome. It manages to-do lists with gusto.
For software development I’d pick JIRA or Redmine because of their integration with source control systems.
Besides your phone and computer, what gadget can’t you live without?
My collection of vegetable peelers. I joked to my Mum once that I didn’t have a good vegetable peeler and ever since I’ve been receiving them as gifts. This might sound like a curse, but it’s really not. It’s awesome. You know how everybody always recommends you peel and cut away from you to avoid injury, but nobody ever does it? You just need sharper instruments, then you can. All but one of my peelers can cut through pumpkins. Most people’s knives can’t do that. If I’m just cutting up vegetables for dinner, I don’t use a knife sometimes, just for a challenge. I just use a peeler.
What everyday thing are you better at than anyone else? What’s your secret?
I’ve been thinking of answering these questions for a long time. Up until recently my answer would have been shelling boiled eggs. I didn’t know my secret, I was just better at it than anybody else I know. Recently though it dawned on me that there is one every day thing I am very good at that most people aren’t: I know how to know anything.
You see, most people never learned how to use Google. For a skill that is possibly the most important business skill of the early 21st century, we have spent very little time teaching it to people. Even when I was in school nobody taught me (since, I guess, the teachers didn’t know how). So I taught myself. + to combine words, – to leave them out. “quotation marks” will search for something literally. And so on! But nobody knows this. So I have an edge.
A lot of people assume I know everything there is to know about a computer. That’s not true. I actually know very little. I can just find out the answer to a computer related problem quicker than anybody else.
What do you listen to while you work?
1970’s rock music, Triple J hottest 100s from 2003-2010, and classical music for the organ.
What are you currently reading?
Right now I’m reading this blog post, looking for the spelling and grammatical errors which will undoubtedly sneak in. Normally though, if I’m reading, it’s Wikipedia. I love reading Wikipedia because it can take you anywhere. Though for some reason, leave me long enough and I will always end up reading about the sinking of the Titanic in 1912.
Are you more of an introvert or extrovert?
What’s your sleep routine like?
I go to bed around 10 to 10:30 and talk to my partner (she’s awesome!) for an hour before sleep. I wake up (I hate that bit) around 8.
Fill in the blank. I’d love to see _____ answer these same questions.
Recently my parents converted an old VHS tape of train videos to DVD. The video tape was an old tape from my parent’s neighbour who spent quite a lot of time making videos of trains. Since the Internet never loses anything, I thought I’d take advantage of the NSA’s backup capabilities to make sure this three-hour gem isn’t lost forever.
The majority of the tape features M and H class steam locomotives, as well as X and Y class diesel-electric locomotives.
As well as uploading to Youtube, I’ve also created a far bigger than necessary torrent of it: here. If there are ever no seeders, poke me via email or IM and I’ll make sure to start seeding it again.
As for PyCon Canada itself? Well the conference itself was fantastic — a friendly, enthusiastic organising team, really good talks, and a beautiful host city. I’m really looking forward to returning to Canada next year when the US PyCon moves to Montréal in April.
A Toronto Sunset down Queen Street, very close to the conference venue.
I’ve recently installed Linux Mint on my laptop, replacing a horribly broken install of Windows 8.1 Preview. There have been good and bad things:
The Windows 8.1 Preview broke the wireless connectivity on my laptop horribly. Every time the laptop booted up or awoke from sleep, I would have to uninstall the wireless card from the device manager and then scan for new hardware to add it again. I would then have to key back in all the wireless keys for the networks I used before I could connect again. This got a bit annoying after a while. Installing Linux Mint, I had no issues with drivers or network connectivity, even with sound drivers, which is something that has plagued the Linux desktop world for years. It just works, and that is truly great.
With all the attention being given recently to the NSA’s spying on the citizens of the world, it’s nice using an operating system that gives you a little more protection (even if it isn’t very much more) from the spooks. I am still using many cloud services (including accounts with Facebook, Google, Twitter, Microsoft and Apple) so I still have a long way to go, but I can now PGP encrypt my mail with little effort, and should the need arise I can inspect every line of code on my system for back doors (though, it might take a while).
The GUI can actually be described as beautiful. While I’m a big fan of the classic Windows look (circa 2000 and XP) and I’m also a big fan of the Windows 8 Metro theming, the horrible combination of the two that most Windows 8 apps seem to have leaves much to be desired. In addition, most GNU/Linux distributions (looking at you especially, Ubuntu) have completely unusable GUIs. Linux Mint takes a beautiful looking GTK+ theme and marries it with a window manager (called Cinnamon) that is just stunning. It’s what Linux should have been like for years. And no Unity in sight.
Steam now works on Linux, and I can play Counter-Strike: Source again. This is a big deal, and it’s a great benefit to “Linux on the desktop”.
It uses Ubuntu’s package repositories, which use in turn use Debian’s awesome apt-based package management system. This gives you access to all of Ubuntu’s packages (which is a massive collection) and it uses familiar Debian configuration files. It’s a rock-solid (less stable than Debian Stable, but so are most nuclear reactors) core system.
Over recent months I’ve done a lot of software development in Visual Studio. VS 2012 is a great IDE. And it has nothing that comes even close on Linux. Netbeans (my preference on Linux) is a pretty powerful IDE, but VS still blows it out of the water in every way. Similar to Evolution vs. Outlook, there are still a few killer applications on Windows that make it the default choice for getting things done.
Firefox and Thunderbird look ugly as sin on Linux Mint compared to Windows. I’m really disappointed as everything else is so good looking in comparison.
There’s no good replacement for MetroTwit. I’ve tried most of the Twitter clients for Linux, and they all suck in various ways. MetroTwit, as far as I’m concerned, is pretty much where it’s at with Twitter clients. It’s awesome.
Overall, I’m very impressed with Linux Mint. If you haven’t tried a GNU/Linux distribution in a while, give it a go. I think you’ll be pleasantly surprised.
This weekend has been a great one. I spent it at PyConAU, the premier conference for Python in Australia. Two days filled with all of my favourite things: great open source software, lots of friends, great food, interesting talks by interesting people – and the weather has been “interesting” too.
Conferences like these (PyConAU and linux.conf.au) are a really great chance for me to catch up with some of my friends that live interstate or overseas, as well as make new friends and meet new people. There’s always an interesting discussion going on, and nobody minds if you just stand there and listen in – you learn so much just by standing around!
Of course, the whole point of a conference is the talks, and here were some of my highlights:
Luke Miller’s talk on making a point-and-click indie game for gay men. This talk really covered the entire breadth of the game making process, both generally and specific to his game. He showed us the engine he built, discussed the story and graphics, discussed packaging and marketing the game, as well as some of the feedback he has got back from the gaming press – both positive and negative. Anybody who wants to make their own game should definitely check out this talk when it is available online.
Ed Leafe‘s demo of creating OpenStack deployments using Python. He showed simply using the pyrax library to create VMs and provision databases and DNS entries, but of course you could extend this by using python scripts to set up applications on the VMs afterwards, naturally. I’m almost convinced to move everything that I have in Amazon AWS to Rackspace’s cloud. OpenStack is pretty much awesome.
The Saturday morning keynote from Alex Gaynor on trying to narrow down what exactly programmers “do” and how they do it… by drawing in parallels from other fields like science, engineering and art. Really, it seems programming and software engineering is the intersection of the three. Also, software engineering is a very young field, really only 40 or 50 years old, compared to science which has hundreds of years to mature, and art which has had tens of thousands.
I also enjoyed the many (I think I went to about 5) talks I went to regarding software testing (unit testing, mostly). I actually learned a few tips from these that I plan to use in my day job, even though we use C# and not Python. Things like writing tests before adding any new feature – which of course is best practise that I knew, but “forgot” (i.e., was lazy). Food for thought.
Jack Greene – loving the decor.
Speaking of food, the conference venue, the Wrest Point Casino, provided a good spread of food right throughout the conference, with morning and afternoon teas being very well catered, as well as lunches (lots of options for my vegetarian friends, and lots of tasty meat those such inclined). The peak, of course, was the conference dinner held on Saturday night, where we ate ourselves into an absolute stupor with the finest Tasmanian produce. A truly terrible burden, but one we accepted with vigour.
Naturally, the conference had to come to an end, but not before a trip to a local pub (and despite being a local, one I hadn’t been to before). Jack Greene in Salamanca Place hosted our after-party, and I’ll definitely be going back. I’ll also definitely be attending the next PyConAU, in Brisbane next year.
Thanks to Chris, Josh, and the rest of the organising team for a great weekend!
I send this report off to Linux Australia detailing our activities for the past few months. I’m posting it here for posterity, because we had a pretty good couple of months:
Registrations have been open for a month now, we’re about to equal our record for Early Bird registrations, and should reach our limit of 80 Early Bird tickets this week (we actually sold our last 20 early bird tickets in one day. oops )
Our CFP closed in early April, presentation submissions were up 25% — a record haul by quite some amount. International interest has increased a lot too, benefiting from on-the-ground promotion I did at PyCon US in March (many thanks to the Python Software Foundation for funding my trip).
We’ve announced our first keynote speaker, Alex Gaynor (core Django, PyPy and CPython board member; PSF & DSF board member); our second keynote presenter is confirmed, and we’ll be announcing that in due course.
Our programme committee met on Friday, we’ve selected our programme in its entirety. We have a great selection of local and international speakers lined up. Speaker acceptances will go out shortly.
We’re finalising the details of our financial aid scheme. We hope that this will make PyCon Australia more accessible to people who could not otherwise afford to attend.
For those of you reading along at home, registrations are still open, and we really want you to come along. This is going to be the biggest PyCon Australia yet, and is going to feature one of the strongest programmes of any regional PyCon anywhere — all the details are up at http://2013.pycon-au.org/register/prices
So, lately I’ve been investigating buying new routing and networking equipment for home, as the NBN (Australia’s FTTH roll-out) is coming closer and my old ADSL2+ modem/router (a Billion 7800NL, one of the first consumer routers capable of IPv6) was getting a bit long in the tooth; the configuration is not retained across reboots and the web interface crashes with HTTP 500 errors more often than not.
So, out with the old an in with the new. There were a few choices:
A new consumer-grade router, such as one of the newer models from Billion (which are quite good, but have low tinkerability).
A Mikrotik-based solution. This was a close call, as I’m a fan of Mikrotik and my friend Jamie is even more of one (he loves them). However, I want to get more experience with Cisco products as I want to be able to put that on my résumé. Hence, I wanted a Cisco solution.
I also considered the Cisco 2801, as they are not much more than an 1841, but have four HWIC slots instead of two, so I wouldn’t have to spend time deciding which HWICs to get, I could just have them all! However, the fans are apparently very loud (as professional rackmount gear tends to be) which would not suit the living room locale very well at all.
So in the end I settled on a Cisco 1841. Lower fan noise, still supports HWICs for swap-out fun and excitement, and has the full features of the IOS software available.
My new Cisco 1841
You may have noticed I didn’t go for a Cisco 1801 which has ADSL support built in. This is deliberate, as the NBN is closing in on my street and I don’t want to be left with a router that supports old technologies – all I will need for a fibre connection is an ethernet port, which the 1841 has two of out of the box. I can also add in 3G backup connections (which is more of a want than a need) as well as things like WIC-1AM or WIC-2T modules (i.e. utterly useless but kind of cool).
For wireless, I’m undecided as to what direction to go in. I definitely want something dual-band (2.4GHz and 5GHz) as my laptop supports dual band and I want to invest in technology that will last at least a couple of years. This rules out most consumer gear quite quickly. A Mikrotik solution is another option and is probably the front-runner. The second option is a UniFi AP Pro, which supports a whole host of cool features like multiple VLANs and SSIDs etc; it’s a little cheaper than a Mikrotik solution but also a lot less flexible. Finally, the most expensive option is to buy a wireless card for the 1841. There are many problems with this approach: I’ll use up an HWIC slot, the modules are incredibly expensive, it’s not even 802.11n, likely to be a complete pain in the neck to configure, and not dual-band. The only benefit is that it keeps everything in one box.
I’ve only received the router in the last week or so, and the eBay auctions for WIC modules haven’t yet finished. There’s a long way to go yet. So wish me luck on my path to routing enlightenment!
There’s been a lot of debate recently on the subject of abortion, both within the general Tasmanian community and within my circle of twitter friends (Anna and Michael especially). The following are my almost incomprehensible thoughts on the subject. This post is in response to this and this, and also to the vastness of the entire Internet.
Before paying me too much attention, know this: I’ve never been involved in abortion first hand, so I really have no idea what I’m talking about. This is important.
I think that the only thing most sensible people can decide on in regards to the abortion debate is that the subject is enormously complex. Unfortunately, everybody seems to have a different reaction to this fact. Some people decide to simply say that a blanket decision can apply (such as the pro-life movement takes, where abortion is always wrong, no matter the context). I, on the other hand, believe that because this subject is so complex, there are so many ifs and buts, so many different combinations of life story, there will almost certainly be a situation where abortion is the correct choice. It’s unfortunate, but it is true. Sometimes abortion is just the right thing to do (at least, that is my opinion).
I think because of this fact, it makes no sense to have a legal framework in which abortion is illegal, because if a certain set of circumstances requires it, then nobody should have to go through the pain of abortion and the pain of breaking the law at the same time – women (and men, but it is the woman getting the abortion after all) should be given all the support they need.
It makes no sense to deny this based simply on the fact that abortion does not sit comfortably in some people’s world view (specifically, their religion). I’m not a fan of abortion, but it is one of those things that we just have to accept. Firstly, people will get abortions anyway. Fact of life. Secondly, there will be pain caused to people. Because they have to go through illegal trauma. Because of your world view. Not a fact (I have no proof), but it’s not hard to imagine. Now imagine: you either cause pain and suffering to other people (which is bad, according to your own religion) or you allow abortion and other people get on with their lives – and you are in the same position as everybody else, you simply accept abortion for what it is and get on with your life.
The other thing I would like to say at this time is that I think men can certainly have a valid opinion on abortion – this blog post stands as a testament to that. However, women do have a final say here… simply because it is their body. Another fact. I’d certainly hope that if I was ever in the situation where considerations were being made, that I would be consulted. However I would always be aware that the final decision does not rest with me. Comfortable or uncomfortable as I might be with that, I have to accept it.
And here ends the rambling incomprehensibility. We now return to regularly scheduled silence.
5 Things You Should Be Doing If You’re Unemployed – I’m not unemployed (far from it, this week has reminded me of that), but it is always important to keep in mind that even the things that seem most certain can still surprise you. With the possible exception of number 4, you should be doing these things even when you’re fully employed. So I am, and so I will be.
I’m sure everybody has seen this by now. If you haven’t, don’t click on the link before making sure you have nowhere to be in the next hour or so.
Paul Graham’s ‘How to Do What You Love‘ was certainly an interesting read. It made me think about what I enjoy doing in my spare time (playing around with servers and programming), and what I do at work (playing around with servers and programming). The two match up, so I must be doing OK, right?
R&D-I-Y certainly looks like an interesting concept. Like the open-source cola of many moons ago, this seems like another good attempt to use the FOSS methodology to create real physical products. And the idea they’re working on, to create farms that will fit in a small apartment so that individual people can grow food! I found out about this through a pretty cool TED talk.
Speaking of indoor farming, I thought these instructions to grow celery from its leftover base is pretty cool – and could probably be applied to a lot of vegetables, if we were creative.
I spent two and a half weeks in the Philippines in March 2013 for work (upgrading the network infrastructure in our office over there). As a country, there are a lot of things both similar to and different from Australia. Here are some of my thoughts:
It’s a coffee country, not a tea country. You can find coffee everywhere, but tea is hard to come by, and good tea is almost impossible. I’ve discovered the horror that is American-style creamer, and I don’t like the world quite as much any more.
Tasmanian drivers really are terrible. Drivers in the Philippines have a huge amount of skill, able to squeeze two cars past each other in ways that I figured should be impossible. It’s terrifying if you’re not used to it though. On arrival in Manila, I spent two hours in a taxi for a 8km trip from the airport to my hotel, and the traffic was abysmal (a later airport->hotel run took 10 minutes). People would drive down the wrong side of the road at full speed, with both drivers only moving out of the way at the last minute – making the most of the limited space on roads. In terms of condition, width, and congestion, roads in Manila are very similar to Sydney – or at least my experiences within the CBD areas of both cities.
In terms of how expensive (or rather, cheap) the country is to live in, there are two ways of thinking about it. The first is “oh wow, I can live like a king!” I found frequently that apart from electronic goods (which had the same price tag, once currency conversion was done, as in Australia) that I could afford pretty much anything I liked. An hour massage cost me less than $5, including a generous tip. I took ten people out to lunch at a fancy restaurant and ordered everything we liked, total was $100. It’s simply amazing – and the thought was constantly with me: what if I could earn at Australian rates and spend at Filipino rates? How awesome would that be!
But there is a second way of looking at the country: “The contents of my backpack are worth more than everything these people own in their entire lives!” This way of looking at things becomes incredibly confronting when in the country areas, as I found (in my limited experience) that they were much poorer than metropolitan Manila, especially CBD Makati where I was 90% of the time). People had houses built out of coconuts leaves and corrugated iron sheeting. The “rich” houses were made out of unpainted concrete blocks. You start to feel guilty for even owning your own computer, let alone the three or four that I have. I’m also certain that there are a lot of locals (especially in metropolitan Manila) who are insanely rich – the dealerships for BMW and Mercedes will attest to this fact. It seems the country is owned by the very rich, who really control things (like in Australia) and then the poor are very poor. Maybe there is a parallel to be made with Victorian-era Britain here?
Cabling contractors are fabulously useless. Something that would take a contractor 4 hours in Australia takes 4 people 3 days each in Manila. I’m not sure whether it was the contractors we were using, but I wasn’t impressed. While I’m not a licensed cabler in Australia, I do know vaguely what I’m doing with network cabling, and I could have done the job myself in Manila had I not been doing a million other things – about twice as fast as it took 4 people to do it. We also went through three sets of cabling contractors within two weeks, as the first two contractors just stopped showing up. Surely I can’t be that hard to work for?
Some of the food is amazing, but generally Tasmanian food is much better. In particular, fresh seafood is fresher in the Philippines than it is here, and therefore tastes absolutely amazing. Mango shakes were another favourite of mine. Because mangoes are a tropical fruit, they grow easily there, and as such are very cheap (along with most other vegetables and fruit, I guess due to the labour prices). A mango shake (mango and ice in a blender, sometimes mango and icecream in a blender) costs between $0.50 and $2, and they are the perfect way to refresh yourself after being the intense heat. With that said, there is a lot of terrible food in the Philippines, especially Manila with it’s plethora of takeaway restaurants (which were welcome the first day or two, but quickly grew tiresome). Local food is good, and very cheap, but without a heap of variation – most Filipino food is curries and stews of various sorts.
All in all, it’s a country I’d really like to go back to – there’s a lot more of the country that I would like to see. I wouldn’t want to live there (the pollution is terrible) but the really friendly people make it a pleasure to visit.
Just a friendly reminder that PyCon Australia – running this year on July 5–7 in Hobart – has just opened Early Bird registrations. All details are on our website: http://2013.pycon-au.org/register/prices
Another update on my trip to Manila. I spent Saturday morning at the birthday party for a one-year old child. It seems to be celebrated much the same as in Australia. It was held at Jolibees, which is a local version of McDonalds in their party room. First there were the usual games involving what I thought was pass the parcel – but was actually a clever ruse to “randomly” pick the foreigner out and get them up to the front of the room so they could dance for everybody…
There is a video, somewhere, out there on the Internet, of me dancing badly to Gangnam Style in front of a six-foot tall poster of Barbie. No, I am not giving you the link.
Saturday was very hot during the middle of the day, and the dancing wore me out a little, so I slept through most of Saturday afternoon. In the evening I went out and did some shopping (I needed more clean clothes) and had dinner. For dinner I had stir-fry broccoli and mushrooms with rice. I’ve been making more of a concerted effort over the last few days to eat more fresh food, especially vegetables. I think it is why I had been feeling so terrible late last week – bad nutrition and bad sleep do not go well together.
On Sunday I went to the Manila Ocean Park, a combination aquarium and theme park. I had a great time, mostly because tourist attractions are designed so that you don’t have to use your brain, which was exactly what I was after. I saw quite a few eagles and so on, as well as my first view of the ocean in a week, which was great! The other interesting thing in the aquarium was the “snow village”, which looked suspiciously like somebody had copied it right out of a book on Santa Claus! The cold felt just like Tasmania in winter, and I loved it!
At work I’ve been playing with a lot of cool stuff. I’ve been particularly impressed by the Aerohive Enterprise-class wireless network equipment I’ve been setting up. The Private PSK feature is very handy – basically you can have a single SSID with multiple passwords, so you can revoke an individual’s password without having to go around and change everybody’s stored password on their machine. Such a simple idea, it’s a wonder nobody thought of it earlier. I’ve also been spending a lot of time setting up VLANs on semi-managed switches. Last time I ever recommend Netgear switches, I’ve discovered the VLAN support on them, while it works fine, is very annoying to manage due to an abysmal user interface.
So… a week in Manila. I’ve been working very hard on the job I’m doing here (network infrastructure upgrades) which is both very challenging and very rewarding. I just hope I can get it all done before I go home.
My work colleagues are a really great bunch of people. In fact, in general, people here in the Philippines are just amazingly nice. Tomorrow I’m going to the birthday party of the child of one of my colleagues, who is turning one. It’ll be nice to spend some time socially with people.
My boss (from Australia) has left the country now, so the next week will be more challenging as I won’t have him for support – but at the same time my life will be a lot easier because of it (he’s very intense). I’ve spent a few evenings with him, the most memorable of which was one where we went to the barber together. We went in and I just said ‘yes’ to everything – which resulted in a shave, a haircut, manicure, pedicure, scalp treatment (not sure what the treatment was for, but whatever), foot scrub, and a facial with the cucumbers and stuff. Happy to try everything once, but I have honestly no idea why people bother with that. The shave was also a disappointment, the razor was a bit blunt and they used chemical goo instead of traditional lather, so I now have terrible razor burn.
I’ve also, naturally, been eating a lot of food. There are two things that I have found incredibly difficult to find. Tea is the first. Being a former US colony (so I am told, haven’t fact checked that) they have little tea to be found. I have been surviving on Starbucks chai lattes (about three or four a day). Today I found a shop that sells tea leaves retail, but it is the most expensive tea shop I’ve ever seen in my life. One of my work colleagues is going to get some at a suburban supermarket and bring it to work on Monday, which will be a godsend. The other thing which is surprisingly hard to find is traditional Filipino food. I have seen exactly one Filipino-style restaurant (amazing food, but the service was terrible) in the time I’ve been here, and I had to really search for it. Most restaurants serve everything but Filipino food, as they all seem to have a theme. Japanese, Korean, Italian, Persian, etc. I ate in an Italian restaurant the other day which had foods named after actors and characters from movies and TV shows. I could have had a “Joey Tribbiani Four Cheese Pizza” but decided against it and had a carbonara (sadly I can’t remember the actor it was named for) underneath a poster of Frank Sinatra. As far as the lower end of the food spectrum goes, Filipino stuff becomes easier to find at lunchtime on weekdays as carts with street food appear and open up offering all kinds of good things. The vendors don’t speak brilliant English, and as I am not fluent in Tagalog I couldn’t tell you what they were – but most of them revolved around the concept of frying dead things and putting them on sticks. I have also had a Balut, which is fertilised duck egg. While there is nothing wrong with it, it’s a bit like black pudding – if you know what it is you don’t feel like eating it. Unfortunately I’ve also eaten my share of takeaway food. There are US food chains everywhere. EVERYWHERE. There are probably seven Starbucks and three McDonalds, as well as numerous other chains, within a 100m radius of the office. When people say they are going down to Starbucks (and there is no other choice for coffee here, weirdly), they actually have to qualify which one.
Unfortunately due to the fact that I’ve been working all week I haven’t done as much as I would have liked. This weekend I’m hoping to make it to a couple of museums etc, as well as go to the Makati Ocean Park, which is a combination aquarium and theme park.
There are armed guards everywhere. If you are in a public place, and turn around 360 degrees, you will see at least two of them. They are at the entrance to every major building. They are in the parks, and there is one at each end of the underpasses under major streets. All of them are armed. Most have pistols, but some have machine pistols or machine guns (probably 1% of guards have automatic weapons). They check the bags of all the Filipino people who enter buildings, but as a westerner they give my bags only a passing look – it’s weird to be the recipient of reverse racism. I’m not a fan. The reason for the armed guards, so I’m told, is because of religious tensions between the Catholic majority and a minority of Muslims who live in the south of the country, and they are scared of terrorist attacks.
Neither my phone nor the work iPhone I was given work properly here (due to different 3G bands) so I have bought a new phone, a Samsung Galaxy S3 mini. It’s quite nice. Still getting used to a different keyboard layout though. 3G here is generally very reliable, much better than Hobart. The wifi in the hotel I’m staying at is slow as anything, but at least it works. I was expecting much worse in this regard.
On Sundays there are Catholic masses everywhere. There is a chapel in a shopping mall near where I am staying. They have mass in the foyer of a McDonalds. They have mass in an ATM vestibule in a bank. With that said, I’m yet to see an actual church, so it may simply be out of necessity – there are no other spaces.
First impressions of Manila: Everything is either really clean and shiny, or old and dirty. Very obvious that a lot of cash has come into the country in the last decade or so. Apart from airport taxi drivers that have no idea where they are going, everything here is very safe and comfortable.
Everything is broadly similar to Australia in that it is fairly westernised (in the city, at least) but the culture is very different. Because labour is so cheap, everybody works really hard to compete because if they don’t… no food on the table. I was surprised also at how much like Sydney it is. Smoggy, all the drivers are insane (in Hobart the least used part of a vehicle is the horn, here it is the most used), and there are 7-Elevens everywhere. Some of the poles carrying electricity and phone cables are amazing – there must be junctions of 100 cables onto one pole in some places.
I haven’t forgotten to pack anything really important, but I did need to go out and buy toothpaste. Very glad I won’t have to cart 40kg of computer equipment back with me though, that was insanely heavy (and I was stressing out when it took an hour to get through to the carousel). The flight over, while smooth and on-time, was the most mind-numbing experience I’ve had in a long time. If I can afford it, seriously considering upgrading to business on the way back – just for something different.
The heat here is very different to Hobart (duh?), it’s only 8:30 in the morning and already at least thirty degrees. Not sure what I’m going to get up to today – probably just walk around a lot and see what’s what (I’ve never been one for tourist things, and my boss says there aren’t really many anyway).
linux.conf.au (my favourite tech conference, and one of the best in Australia/NZ) is on again next year, in Canberra from the 28th of January to the 2nd of February. I’m excited! I love being so immersed in enthusiastic talks on every sphere of open-source technology, from the deepest bowels of the Linux kernel to the talks on legal and social issues. The week is also a great opportunity to catch up with some of my Internet friends, most of whom I don’t see between LCA events.
I’ll be travelling to Canberra on Sunday the 27th of January, on Virgin Australia flights DJ1533 (HBA -> SYD) and DJ654 (SYD -> CBR). One more airport than strictly necessary, but I like that – I’m a fan of airports, aeroplanes, and public transportation in general. During the week I’ll be staying in the John XXIII student accomodation; mainly because it’s closer to the breakfast venue than the other location. I’ll be travelling back to Hobart on Sunday the 4th on DJ1205 (a direct flight, because I suspect I’ll be quite tired by then – LCA has a habit of finding energy and destroying it in a haze of excited geeky exhaustion).
You may have noticed this leaves Saturday the 3rd with no plans at all. I’ve never been to Canberra before, so I thought I would stay around on the Saturday and Sunday to explore Canberra a bit. I might go to the War Memorial, Old Parliament House, the National Museum, and maybe the Black Mountain Tower (logistics depending, I won’t have a car). It should be a fun trip!
In July this year I embarked on a business venture with a few friends (something I’ll talk about more in a later blog post). All businesses need good accounting software – it’s how you know if you’re actually making money (and how you keep the tax office happy). I’ve used Quicken/QuickBooks and MYOB (both the desktop Accounting and FirstAccounts, as well as the online LiveAccounts) and they all leave a few things to be desired. The desktop versions of MYOB, and the versions of Quicken software that I’ve tried all have a very 1995 feel to them… and no surprise too, I don’t think the software has had a major overhaul since then. LiveAccounts worked ok for me, but it just wasn’t polished enough.
Enter Xero, a New Zealand-based company that specialises in online accounting software. I have to say, I’m impressed. We’ve been using their business product since July, and it’s great. The interface is really easy to use, I had no trouble with it at all and I’m certainly not experienced in business accounting. It hides all the details you usually don’t want, but makes them available when you do (as opposed to MYOB, which just throws every single detail ever at you and expects you to cope). The bank feeds are super reliable, updating with the latest data every night and presenting it ready to reconcile (and if a transaction doesn’t already exist, creating it is trivial). To top it all off, the Android app is incredibly polished, with a lot of thought (an example: logging in with email and password takes forever on a phone keyboard, but you don’t want to be logged in all the time, so it prompts you to create and use a 4-digit PIN).
Recently they announced automatic bank feed support for their personal product, which I had tried previously but given up on because it takes too much effort to manually transfer the data over. I’ve been using it for a couple of weeks, and while I’m impressed with the product generally, there are a few things that I find disappointing:
Bank feeds aren’t as reliable as in the business product. For some reason they don’t use the same functionality. This (instead of talking to the bank through an API) appears to log in to you Internet banking portal using your username and password (points off for that) and downloads the information by manually parsing the HTML. Which only seems to work about 50% of the time, and is usually three days behind what Internet banking shows you when you visit in your browser. The bank feeds work great in the business product, why not leverage on that for the personal product?
It’s not double-entry. This annoys me. For 90% of people single entry is ok, but it doesn’t give you the detail that double-entry does. When I transfer money from one account to another, it doesn’t appear as a transfer; it appears as a withdrawal from one and a deposit in the other. Minor, but annoying.
When entering values of assets and liabilities to calculate net worth, it doesn’t show you history of those items, so it’s difficult to track the value of a single item over time.
Basically, I’d love Xero Personal to be like a browser version of Quicken Personal Plus, but I think that may be a dream too far.
It’s less than two months since the generally excellent time we had at PyCon Australia 2012, but we’re already on the lookout for new sponsors to join us for our 2013 conference, which will also be held in Hobart.
As a community-driven conference, the generosity of our sponsors is what makes it possible for our conference to be as successful as it is.
To give you all an idea of how important sponsorship is for us, I thought it might be a good idea to explain what we put our sponsorship money towards.
Keeps our registration costs low
While Python is growing as a language used in industry and government work, the roots of the Python community are in science, research and the Open Source community. There are plenty of people who are active in the Python community and benefit from events like PyCon Australia.
For our two-day conference this year, we were able to charge less than $200 for enthusiast delegates, and less than $50 for Student Delegates.
In raw budgetary terms, our Enthusiast rate covers the extra costs involved with them attending the conference (the extra catering, a t-shirt, a dinner ticket). The Student rate actually loses us money.
Having a wide array of sponsors means that we don’t need to pass fixed costs such as venue hire, A/V equipment, and video recording onto our registration costs. This means that we can put registration for PyCon Australia into reach for more people who want it.
Chances are that students who benefited from our low costs will be back contributing to the Python community, and to our conference in years to come. It’s this sort of community building that PyCons are all about.
Attract international speakers
In the grand scheme of things, Australia’s pretty isolated. If you want to get here from Europe, you need to spend the best part of a day to fly here, and it’s not much better if you’re from the US.
A big role of holding a PyCon in Australia is to help connect the Australian Python community with the best Python developers around the world. Having extra budget to offset the travel costs for international speakers is one of the biggest benefits we derive from sponsorship.
Run more events
Having an excellent schedule of presentations and tutorials is a huge part of our conference, but having the opportunity to meet other delegates, and to chat with them in a less structured atmosphere is also really important.
In 2011, we introduced two days of sprints to the end of the conference, and in 2012, we folded the CodeWars programming tournament into the organisation of the conference itself. We’ve done our best to keep these events free of charge for all comers, and we couldn’t do that without our sponsors.
Help bring people to the conference
In past years, with our diversity programme partner, Google, we’ve run a grants scheme to help bring more women to PyCon Australia. In 2012, we helped to bring 5 enthusiastic women along to PyCon Australia, and by all accounts, it was an invaluable experience for them.
Next year, we want to make this programme even more wide-reaching. We know that there are many people, especially students, or people living further afield who can’t afford the trip down to Hobart. We want to put the conference firmly into their reach.
I’m pleased to announce that The Open Programming Miniconf — a fixture for application developers attending Linux.conf.au since 2010 — is returning as part of Linux.conf.au 2013, to be held in January at the Australian National University in Canberra. The Miniconf is an opportunity for presenters of all experience levels to share their experiences in in application development using free and open source development tools.
The 2013 Open Programming Miniconf invites proposals for 25-minute presentations on topics relating to the development of excellent Free and Open Source Software applications. In particular, the Miniconf invites presentations that focus on sharing techniques, best practices and values which are applicable to developers of all Open Source programming languages.
In the past, topics have included:
Recent developments in Open Source programming languages (“State of the language”-type talks)
Tools that support application development
Coding applications with cool new libraries, languages, and frameworks
Demonstrating the use of novel programming
If you want an idea of what sort of presentations we have included in the past, take a look at our past programmes:
To submit a proposal, visit http://tinyurl.com/opm2013-cfp and fill out the form as required. The CFP will remain open indefinitely, but the first round of acceptances will not be sent until Monday 29 October 2012.
OPM2013 is part of Linux.conf.au 2013, being held at the Australian National University, Canberra in January 2013. Further enquiries can be directed to Christopher Neugebauer via e-mail ( email@example.com ) or via twitter ( @chrisjrn ).
In my BSc(Hons) thesis, which I submitted in 2010, I commenced the acknowledgements as follows:
“First, a hearty thanks to people whom I do not know: The developers of Python, Numpy, Scipy, the Python Imaging Library, Matplotlib, Weka, and OpenCV; you have collectively saved me much boring work throughout this past year, for which I am truly grateful.”
So to hear of the sudden death of John Hunter, creator and maintainer of Matplotlib was truly saddening. Matplotlib is one of those pieces of software absolutely instrumental in Python’s takeup as a language in the fields of maths, the sciences and engineering. When I was a student, I’d find myself using Matplotlib very often — it was the best there is.
Tragically, John Hunter was in his mid-forties, and left behind a wife, and three young daughters. Numfocus has created a memorial fund to care for and educate his daughters. I’ll be contributing to this fund as a way of thanking the Hunter family for John’s contribution to my own work.
It’s a somewhat strange feeling — coming to realise the contribution of one person only after he died. Such is the way of Open Source — the impact of the tools we use and develop become more important than the people who develop them. And sometimes, developers are just happy to let things be that way.
“the lawful union of two people of the same sex, to the exclusion of all others, voluntarily entered into for life”
That is to say, it defines a union, available exclusively to same-sex couples. There are many provisions of the bill that I personally hold grave concerns about, and I feel that celebrating the passage of this law as a victory is counterproductive to those fighting for marriage equality at a Federal Level.
My friend, Michael Cordover, who’s more deeply versed in the law than I am, posted the following to his Facebook feed this evening, and I asked him to reproduce it on this blog so that it might reach a greater audience.
I don’t necessarily agree with everything he’s written (I’m not going to be drawn on the constitutionality of the bill), but his words have encapsulated most of my thoughts, but with the added gravitas of someone who actually knows what he’s talking about.
I am a deeply passionate supporter of marraige equality. I think there is no rationally based oposition to permitting same-sex marriage which is not homophobic. But I do not support what the lower house of Tasmanian Parliament has done today. Here’s why.
Because I support equality
The Tasmanian bill, by necessity, produces “same sex marriages” which are a different institution to that which we know as marriage in Australia. The entire basis of the argument as to its validity under the constitution (and we’ll get to that in a second) is that it covers something different to the Commonwealth Marriage Act. I want homosexual marriages to be recognised. These are civil unions with a misleading name. It is a separate and lesser institution. It’s not even the separate-but-equal, which I maintain is not equal at all.
Because it’s unconstitutional
The argument goes that because the Commonwealth Marriage Act defines marriage to mean only that which is between a man anad a woman, it is not intended to exclude marriages between same sex couples. As marriage is a concurrent power under s 51 of the Constitution, that means states can legislate for same-sex marraige. This relies on a claim that the Marriage Act was not intended, at the time of the 2004 amendment, to “cover the field” which includes same-sex marriage. I have been wrong before about High Court decisions but I think any argument that this bill is not invalid by virtue of s 109 of the Constitution is academic at best. I don’t think a High Court decision to that effect would be good law, I don’t think it would be based on a proper examination of the issues, and I certainly don’t think its likely given both the way in which the Court has interpreted s 109 in the past and the way the current Court has been dealing with questions of the division of powers.
Because it promotes complacency
The message that is coming out is that this is the end. That Tasmania has finally done what the Commonwealth refuses to do so we’re first and we’ve done the right thing. We haven’t. If one person says – and I guarantee [one] will – that we don’t need a change to the Commonwealth Marriage Act because of the passage of a Tasmanian Act, that is a harm. Does anyone think instead that people will start lobbying for change to the Commonwealth law as a result? Perhaps. Perhaps it’ll be a “well it didn’t destroy the world” argument. I mean, just because we already have that argument for Argentina, Belgium, Canada, Denmark, Iceland, Netherlands, Norway, Portugal, South Africa, Spain, Sweden and the United States, doesn’t mean it won’t be strengthened by adding Tasmania.
Because it’s misleading
This I think is the worst thing. If this passes the upper house, people will get married and they will expect it to stick. They will be devastated when their marriage isn’t recognised by Commonwealth law. They will be devastated when their marriage isn’t recognised in Victoria. They will be devastated when they find all the red tape they’ve gone through is ignored by everyone outside this tiny little island. And they will be most devastated when the High Court finds that the law is unconstitutional. These people will be hurt because the Tasmanian Parliament is making a promise on which it can’t deliver.
A few final thoughts
That the Commonwealth Marriage Act discriminates against same-sex couples is simply unjustifiable. That moves to amend that Act have failed is disheartening. This is my number one issue. I believe it’s a heinous form of discrimination that is easy to fix. I believe the purported political gains are meaningless. I try to convince everyone I meet of my position and because of this issue – like few, if any other issues – I will stop talking to people. I have left friendships for their failure to support same-sex marriage; I have argued for hours on the topic; I’ve pursued lines that I know I can never win; and I’ve cried when people remain unconvinced. Believe me when I say I want marriage equality. But that’s not what this is. This is a sham. This is the Tasmanian Parliament making a statement it’s made before, but now with a promise it can’t keep. So I don’t support it, and I’m not ashamed to say so.
Michael’s words are available under a Creative Commons Attribution 3.0 Australia licence.