The conference opened with a nice little speech by Scott Penrose, chair of last year’s OSDC committee, passing the baton to Arjen Lentz and the new committee.
Then it was straight into a keynote, Rusty Russell explaining what it is that he likes about C, that it is close to the machine. By way of enticing the PHP, Perl and Python programmers in the audience, he also demonstrated that C can do shell scripts too, by way of the Tiny C Compiler, tcc. I found the talk an interesting insight into hard-core C development.
Right now I’m listening to Ian Clatworthy of Canonical explaining why I might want to use a distributed VCS. I can see that there might be advantages, and I can see how it better fits the open source development model. I’m not sure there would be overwhelming benefits in the environments where I do most of my work. He’s saying that he sees a market for only three big distributed VCS systems – Bazaar, Mercurial and git – but that they all have “maturity” issues at the moment, and don’t yet have the kind of tool support many developers expect. Oh, and Bazaar is just a few weeks away from a 1.0 launch.
The last paragraph of my previous post wasn’t particularly clear. Here’s a step-by-step guide to modelling the Sun’s direction at sunset, using only a ball, a lamp, and a texta.
If that doesn’t make sense, please drop me a line. I will come and explain it to you, complete with ball, texta, and lamp for the low, low price of one soft drink.
If you are located further South than the Tropic of Capricorn, then the Sun will never be directly overhead, and furthermore will only appear in the Northern half of the sky.
I predicted that – this far South – the Sun would always set somewhat North of due West.
Makes sense to me. But then Julian’s father observed, in direct contraction to Julian’s well-constructed argument, that the Sun was setting to the south of west. Interesting.
I searched a bit and found PyEphem, a Python library for calculating the position of heavenly bodies. It is based on a C library and required a bit of huffing and puffing to get it to compile on Windows. I hacked the code just the teeniest bit to get rid compile errors, then ignored several pagefuls of warnings. But it seems to work.
import ephem # Late December when = ephem.date((2006, 12, 30)) # Driving near Sydney Airport julian = ephem.Observer() julian.date = when julian.lat, julian.long = '-33.932109', '151.1652' # Compute the sun for that day sun = ephem.Sun() sun.compute(julian) # Find where sun set, relative to West deg = ephem.degrees answer = deg(deg(sun.set_az) - deg('270')) print "The sun will set %s degress north of west" % answer
And the answer is:
The sun will set -28:43:55.43 degress north of west
In other words, this script supports Julian’s father’s observation that the sun sets significantly to the south of west this time of year in Sydney. (Assuming, of course, that PyEphem is accurate, that my mangled compile of PyEphem didn’t affect anything serious, and that the above script is bug free.)
For a more concrete confirmation, I’d suggest using a ball as the Earth – rather than a fist – and then put on a lamp at the other end of of the room to represent the Sun. Tilt the ball back on its axis so that the noon day sun falls on the southern end of the ball. Now, look for sunrise and sunset down the side of the ball, and check the direction of the lamp, relative to east and west on the ball.
Well, after four and a half years, I’m leaving this job. It’s been a blast. For such a little company, it’s amazingly stuffed with talented, interesting people. Amongst my colleagues are Keith, David, and Neville. Other alumni include Charles Miller (who taught me what a ‘blog’ is) Daniel Bradby and the now famous Gavin King. (Speaking of Gavin King, there are several people here who claim they were in the room during a particular meeting when Hibernate was born. They should blog about that meeting.)
As you might imagine, I have mixed feelings about leaving. I’ve learnt a lot while I’ve been here – about Java, about programming as a craft, and about working with people. I’ll miss the staff and management, and I’ll miss working with the fire brigade. However, it’s time to take on new challenges, so off I go.
The shiny new job starts on January 15, meaning three weeks of relaxing unemployment between now and then.
Merry Christmas, everyone!