Monthly Archives: April 2009

I really don’t mind paying taxes

It’s the paperwork and the general sense that I don’t understand the incredibly complex game.  This always leaves me feeling screwed.  People talk about the middle-class squeeze.  I think this is as much defined by the cost of tax lawyers as it is by income tax rates.  There’s a threshold below which it doesn’t makes sense to hire tax professionals.  Don’t get me wrong, I’m not advocating a simplified tax code with a flat rate tax.  A simplified tax system and a flat rate tax will benefit primarily those who currently need and hire lots of tax professionals to avoid paying tax.  There’s a reason for all that complexity: closing the loopholes.  Another reason for complexity in the tax system is because politicians can’t resist using the tax code for social policy.  This never works out well.

Do keyboard shortcuts make you smarter?

I’m a keyboard kinda guy. Mac OS X has come a long way from the days when you really couldn’t use it without a mouse but not a day goes by when I’m not a little bit irritated.  To be far fair some aspects are a lot better.  Many applications and controls support a subset of emacs keys for basic text navigation.  Oh I how miss those when I go back to Windows.  Although there are Windows utilities that try to make this work they are fighting some fundamental issues between Mac and Windows modifier keys.

When I’m in WordPress I have to remember not to use those emacs keys because they have meaning to the WordPress editor  (like Control-P which publishes a post).

Two of the keys I miss the most from my venerable thinkpad are the navigation forward and back keys.  These keys completely eliminate the annoyances of crappy event handling architectures and overloaded backspace semantics in today’s browsers.  Today I found out about Control-[ and Control-] which map to navigate back and forward respectively.  And they work on both Safari and Firefox.

A lifesaver utility is called witch.  This gives me a reasonable approximation of Alt-Tab on Windows.  Command-Tab on Mac OS X switches bewteen applications, no windows.  As far as I am concerned it’s worse than useless.  To make matters worse Apple in it’s wisdom has gone out of its way to prevent applications like which from hooking Command-Tab so once again I have to learn a slightly different.

So as I flit back and forth between Mac OS X, Windows and Linux my brain is always changing gears or to be more accurate, key maps.  My friend Paul thinks this makes me startersmarter.  I like the idea but I’m pretty sure it just makes me less efficient in the short term.

End of movie syndrome

I don’t watch much TV.  When I do it’s one of:

  • Watching something on TiVo that I specifically recorded (F1, The Daily Show, How it’s made).
  • Watching some live event, typically sports that was either important enough to want to watch live or interesting enough to decide to watch it on the spur of the moment.
  • Surfing around for some mindless entertainment.

It’s this last case that motivates this post.

When surfing the 137 channels of crap, I usually settle for some movie I’ve seen before and liked enough to want to watch it again.  Rarely do I discover this movie in advance.  In fact it is statistically likely that I join the movie already in progress, sometimes even near the end.

The result is that there are a bunch of movies of which I haven’t seen the beginning in a long time but the ending is like a favorite sweater: a little worn but still comfortable.  I’m pretty sure this is a common pattern of behaviour.

It’s a rainy day here and today’s end of movie is Chitty Chitty Bang Bang.  What are your old sweater movies?

Frisbees and quantum mechanics

Most of us are familiar with the trajectory of a thrown ball.  It’s a squished parabola.  Smart people have modeled this nicely but most people just feel it.  It turns out that our brains are hard wired not to know it but to converge towards the solution.

Frisbees are tough on physics.  They exhibit all kinds of funky flight patterns.

Frisbees, or flying discs in general are subject to all kinds of funky behaviours.  Most of us are familiar with the dreaded “car suck” force that ensures that any Frisbee that comes within a certain distance of a parked car will get sucked under the car as out of reach as possible.

Anyone who has played Ultimate knows about the it-gets-there-anyway phenomenon.  When you play Ultimate you often want to throw the disc not just at someone but along a specific arc to keep it away from the opposing team.  Sometimes the throw goes wrong.  Something happens during the release and it doesn’t fly how you wanted and yet, amazingly, it often ends up going right to the person you wanted along a very different path.

My friend Andy suggests that this is quantum mechanics at work.  There are actually an infinite potential frisbees and we see the one that actually arrives there.  Good luck disproving that one!

Trying to build a bridge out of jello

My friend Brian made a good point today.  Software doesn’t exist in the same physically constrained world that most other projects do.  If you try to build a bridge out of jello it’s going to fail very early on.  Software on the other hand lets you build jello bridges all the time and they don’t fail until you’ve spent quite a bit of time and energy making them look like the Golden Gate Bridge in jello form.

Some people claim that structured design methodologies like UML act as a forcing function to make it clear that the jello bridge won’t hold support itself let alone any actual traffic.  My ignorant opinion is that methodologies formalize the process of creating a jello bridge but can’t force it to fail, let alone be correct.

Brian then suggested that we find ways to simulate the forces of nature on software.  I’m already a fan of software physics so I really liked the idea.  To some extent we do that with perf testing and stress testing.  What if we could model the structure of code as a physical object and get a sense of where the fragilities are?

Examining call patterns and interface complexity and then creating a physics model that you run through a simulator is one approach but I really like the idea of forcing developers and architects to model their software in the real world using lego, lollypop sticks or even cardboard.  Over time one could refine the rules used to map software design into physical objects so that what experience has shown us to be weak is also weak in the physical equivalent.

A solution to the sexting problem: Bcc the parents

Sexting is the term used to describe all forms of sexually related content sent via SMS or MMS.

I won’t get into whether sexting is inherently good or bad but I see it as inevitable.  As teenagers approach sexual maturity they are going to express themselves sexually through every medium available to them.

Of course the problem is that said teenagers have not really reached intellectual or social maturity and so they don’t really think through the consequences of electronic media.  The adage “information wants to be free” is even more true of sexually related content.

The parent of a teenager has a particularly challenging job.  They need to let their children make mistakes, learn from their mistakes but act as a backstop and buffer for said mistakes.  There are some mistakes from which recovery is deemed too costly.  Killing yourself in a car is the canonical teenaged mistake but apparently so is sending a naked picture of yourself.  Parents have the impossible task of drawing the line and coming up with practical measures to buffer these mistakes (beater cars with airbags).

So what tools can we give parents to cope with sexting?  The problem with internet activities and teenagers is that they lack the transparency of “real” world activities.  It’s hard for teenaged kid to stay out late or drive home drunk without their parents seeing at least some of the results.  With the internet the common approach has been to try to increase the visibility of these activities.  I think this is the right way.  I will give my children internet access but I will openly tell them that I am auditing (via my router) all traffic.  Obviously my children can go to a friends’ house or the library or even an itnernet cafe and bypass my audits but that remains consistent with “real” life as well.  The challenge with cell phones is that they are independent computing devices.  At least that’s the case today.

My proposal is that cell phone providers should provide auditing features to parents.  It’s just not that hard.  If they can do it for the government they can turn it into a profit center with parents.

More specifically, if all text messages (in or out) wer Bcc’d to the parents email address the entire sexting problem would disappear overnight.

Yet another new programming language

I came across yet another new programming language today.  This one is called Nice but they seem to crop up every week.  The feature set for this language just doesn’t seem compelling enough to care.

I’m generally a fan of using language constructs as a way to make programming more effective.  New languages come at a cost however.

  • Learning curve
  • Adoption resistance
  • Immature implementations
  • Immature and incomplete libraries

When starting down the new language path, the benefits need to obviously outweigh the almost unavoidable costs.

There are some interesting examples that mitigate the costs.  Languages that leverage existing runtimes and libraries like the CLR and even Java have a tremendous advantage.  This seems to work better for new languages than legacy languages.  I’m sure that IronPython and IronRuby can invoke most of the CLR libraries but both languages have such a rich “standard” runtime of their own that it’s always going to feel more right than calling out to System.Console.Writeline.

My friend Darren hates all languages other than Lisp.  He thinks that syntax is the original sin.  The Lisp parser combined with macros make it possible to extend the “language” as needed.  While I still like Ruby, I’m hard pressed to disagree with any of his arguments.  I’ll write more on this topic another day.

Driving to Mongolia

My good friend Andrew is driving to Mongolia.

That’s just a great lead-in line :)  He and 3 others are participating in something called the London to Mongolia rally.  You can read more about the team here but I want to share my part of the story.

Andrew called me a few months ago to get blessing for this insane adventure.  He knows that of all people, I would be most likely to tell him to go.  Tilting at windmills and doing the crazy thing for the sake of it is my kind of fun, if not always my modus operendum.

Initially I disappointed him.  Andrew is lucky enough to have a good job  and taking a month off (even without pay) seemed like a major risk.  The prevailing mood was depression.  I myself was watching my income dwindle as client work dried up.

I’m very glad to say that the circumstances have changed.  As the lack of work spread to more than just me it became easier and easier to sell the idea of taking a month off without pay.  In a consulting business your staff are one of your only two real assets (the other is your reputation).  You have to keep paying them even if you have no work otherwise you’ll have no business left when work does come along.  In Andrew’s case the timing lined up very well with his current work so to Mongolia he will go!

More recently Andrew bought a new (used) car for journey.  I was glad to help translate the french ebay listing.

Go to the Creeping Blandness blog and foll0w along.  It’s sure to be a very interesting story.

Beyond fear is freedom

One of my best friends has used this as a motto for a long time.  It’s a good one.  One of the reasons I have been reluctant to blog much is the fear of saying something that with the benefit of hindsight will look stupid or offend some potential future client.

Stuff you say in a bar with friends is gossip.  Stuff you post on the internet is forever.

Bah!  I can’t live that way.

Another one of my best friends is of the generation that has long since stopped worrying about that sort of thing even if they have yet to really feel the repercussions.  As he says, it will be interesting when this generation really tries to get a proper job and even more interesting when they find themselves hiring people.

Today we fear that our online life will come back to haunt us but imagine a future where the lack of the “normal” online activity, including the odd error in judgement, is seen as either an attempt to hide something or worse, that you’re not really human.

Dear “sir”

We regret to inform you that your application for a position at Typical Company has been rejected.  Our semi-automated reverse CAPTCHA test has examined your online life and found it to be lacking in personal details and/or too perfect.

If you are in fact a delightfully imperfect human being and wish to prove it to us, please send us links to at least 3 social networks showing the usual lapses of judgement in which you have posted evidence of drunkenness, stupidity and or nudity.

Sincerely,

Some Person

<link to personally embarrassing proof of being human>

So with that in mind, I’ll try to post more often and not worry about it.