bullies

We’ve got a pretty cool small business community here in Wellington. There are initiatives like Silicon Welly, Unlimited Potential and Girl Geek Dinners, which allow us to not only socialise, but also support and mentor each other.

Being a small business is hard. There are so many bigger businesses out there who could squash you without even meaning to. A single wrong move could prove fatal. That’s why we stick together like this.

Which is why it really sucks when you get shafted by someone inside this community.

I know I should simply accept that “it’s just business”. And, to be fair, our naivety contributed more than a little.

Still, I’d like to continue to think that I can do business without being sneaky or underhanded. Deals go south, that’s a way of life, but honesty is something I cherish. And a reputation is something you can never repair.

Sadly for them, these people have damaged their reputation in a community they are desperately seeking to enter. Hopefully they’ll learn the hard way that what goes around, comes around.

Anyway, I’m going to take my first step towards positive business, and stop thinking about this. I feel like I’ve got this off my chest - time to do something productive.

P.S If you need a really big Rails website done in just a couple of months, go see our friends at YouDo. Dan will look after you :)


don’t spend all day in photoshop

James Nisbet: Web Designer
I’ve had the good fortune to work with a gaggle (what’s a collection of designers? A flock? A pack?) of awesome designers in the course of my work. I’ll name drop: Nat and Miri from PlanHQ, James at Bandit, Alain at IncFuel and some cool stuff by Colin Cameron. (By no means an exhaustive list, I’m sorry if I left you out!).

I’m going to pick on Miri today (sorry!). She’s now well-versed in the magic and esoteric “ways of the web”, but when Miri first came to us at PlanHQ, she’d only had marginal involvement in web design.

Tim spent weeks “indoctrinating” (his word, not mine) her into the “Web 2.0 style”, but as one of the people charged with making her designs a reality, I was more interested in a different effect.

It speaks volumes to Miri’s dedication and talent that many of the choice quotes I remember from her during that time were along the lines of “That looks wonderful BUT…”. Followed by “could you just squidge this five pixels that way?” or “that colour isn’t quite right!”. I still remember days of frustration with Photoshop, LCD screens and colour profiles involved in trying to get the PlanHQ green just right.

These days, 37Signals say that you should skip photoshop entirely. Just mock things up in plain HTML. Sadly, this doesn’t work when your implementers aren’t your designers, and no matter how quickly Miri picked up HTML, there was only one of her and four of us.

Nothing is impossible to render in a browser - and you’ve always got position: absolute; to fall back on if you’re stuck. But before a designer comes to realize exactly what kind of chopping up we have to do (and that everything on the web is at it’s heart, a square, even if we disguise it with corners) you’ll often get mockups with elements like this:

"impossible corners"

I call these “impossible corners”, because there is no way to render these using two non-overlapping boxes. They’re not impossible, of course. There’s a number of techniques you could potentially use to render an element like this, but the basic point is: it’s harder than it needs to be.

You come into similar issues with transparent shadows and PNGs (especially if you still have to support IE6) layers that overlap more than twice (as you have to introduce extra elements in order to render all of the backgrounds), diagonal gradients, or font rendering (yes, the text fits perfectly in Photoshop, but that’s dynamic text - people can change that).

More importantly however, you lose the feel of the website. The little bits of animation and Javascript trickery that really make a Web 2.0 application a joy to use. Everything starts to feel static like an old school marketing site.

Miri, of course, surmounted these challenges and then some. It’s always amusing to hear someone attempt to describe to you the sort of animation they want using noises and gestures - “so if this bit goes swooosh under that bit”). Here’s a fine example of an awesome interface element out of PlanHQ which I can take no credit for - this is all Miri, Jeremy and Tim.

PlanHQ's Quick Date ChangerThis “quick date changer” allows you to quickly reschedule an action you’ve planned, so you can replan at any time. At the end of the action itself all that’s displayed is the date and a “calendar” icon. When you click the icon, a calendar date selector pops up, and once you’ve chosen the new date, it instantly moves the action. Cool - no unnecessary clicking of “OK” or “Submit”, and the element serves a nice dual purpose - show me the date of this action, and let me move it.

I guess it boils down to: If you’re new to designing for the web, don’t spend all day in Photoshop. Grab some geeks, get them to teach you HTML. Play with some cool web applications - use Gmail, if you aren’t already, or try planning your flat move in Backpack.

You need to become a web designer.


the death of “20th of the following”

I don’t think accounting should be a once-a-month thing.

I start my morning with with a Roast-Beef on Plain (thanks Spikefin) and a V (uh.. thanks caffeine?). Once those two essential ingredients are in place, I boot Xero.app.

I can reconcile all my transactions, check my Profit and Loss, make sure we’re on track for GST and send out invoices. All whilst munching down a quick bagel.

In the age of Xero and electronic transfers there’s no excuse to put off your money management until some magical day near the tail end of the month. You should be keeping tabs on your cash every day, and doing so in an accounting system that is a pleasure to use.

(PS: I’ve been pinged by James, Ben, Nat and Adam for not blogging in a while. Thanks for the support guys!)


math214 finally comes in handy

I’ve been trying to get a prank entry under my name removed from IMDB. Thus far the only response I’ve been given is:

The page you are referring to features another person with the same name as you, and as such, is valid and cannot be taken down, sorry.

Let’s just take a look at the odds of that.

This person shares my:

  • Full Name (and peculiar shortened first name spelling)
  • Birthdate (Day, Month and Year)
  • Place of Birth

Ok, so being called “Nik”. What are the odds of that? Well, “Nicholas” is #25 on the most popular male baby names of 2007. And there are only really three possible nicknames (”Nick”, “Nic” and “Nik”). So let’s call that 1 in 100 for “Nicholas” and 1 in 3 for “Nik”. So that’s a 1 in 300 chance of being called “Nicholas” and shortening your name to “Nik”.

What about “Wakelin”? Well, the phone book has 11 people with last name “Wakelin” in Wellington. Let’s be generous and assume the same number of people are unlisted (after all, I am), so that’s 22 “Wakelin”’s in the Wellington Region (pop. 464,700 according to Wikipedia’s 2006 estimate).

Combine the two, and the chances of having my name are about 1 in 10,000,000.

No big deal. Assuming an even name distribution (which is clearly incorrect for a Western-centric name), there would be 660 people calling themselves “Nik Wakelin” around the world (using a July 2007 estimate). It’s not inconceivable that one of those 660 found their way to a part in Shortland Street.

But what about the birthday?

Ok, so there are 365 possible days to be born on. The birthday paradox says it’s basically a given that someone shares the 19th of September with me. But, they’ve got the right birth year too! The average Life Expectancy in Western Countries is about 80 years. So that’s a 1 in 29,200 chance that someone shares my exact birthdate.

Birthplace? Well, we already know that Wellington has a population of 464,700. And given the previous world population of 6,602,224,175, that’s an approximate 1 in 70,000 chance of being born in Wellington, New Zealand.

Combine all three? That’s about a 1 in 20 000 000 000 000 000 that this person is, in fact, someone else who just so happens to share all these details with me.

At those odds, I could have:

  • Bowled 1 trillion perfect 300 games
  • Been struck by lightning 10 billion times
  • Had 109 meteors land on my house

Please take it down, IMDB?

(Note that the above takes incredible liberties with statistics, assumes all variables are independent, ignores variable change, and might be out by a couple zeroes. Even still, the chance is astronomically low)

(The bowling/lightning/meteor stats are based on these odds)


for pretty migrations, just add yagni

There has been a bit of discussion on the Rails Core mailing list around the new UTC-timestamped migrations.

The gist of it is:

  • The new migration style is ugly, but it works
  • All other suggested approaches are not worth the trouble
  • We should all be worrying about more important things…

Okay, so my patch isn’t going to make it in to edge Rails.

I actually think that’s pretty cool. Rails is opinionated - that’s a big part of its appeal. So I’m glad the core team are polite but firm - thanks, but no thanks.

The other awesome thing is that Ruby makes it so that, well, your opinion can differ. And I really hate having to call across the room “Hey Ollie, check out that migration 20080705…. whatever”. And I also like the way UTC migrations fix the branching duplicate-migration-version problem. So I wrote a YAGNI migrations plugin.

It only works on Edge rails (because of the new preference), and it comes with absolutely no warranty, but it should make life that little bit more bearable for pedants like me.