Breathing Space

The training I had scheduled for tomorrow was cancelled at the last minute, so it turns out I have a couple more days to get things done. Melo, Nuno and myself took the opportunity to harass pfig over his completely non-existent (or at the very least non-published) photos of the London store during lunch.

As well as quite a few other things, ranging from Perlisms to our upcoming hardware purchases (Doom III was not openly acknowledged as one of the driving factors, but hey, we're all old hands...)

Amidst the talk about , GeekTool, and whatnot, I got my hands on a spanking new 2100MAh battery for my aging 1G , which was just installed (thanks, Melo).

The single piece of news I found of some interest today was this one (actually, I read it here first) and it put me off for the rest of the evening. It just can't be true.

Ah well. Maybe I should just do some coding, relax a bit, and wait to see where the ripples from this will spread. I still haven't finished all of the , and the bad CSS on my edit template has been getting on my nerves for quite a while now.

ing in UDP

People interested in exploring the bleeding edge of development are encouraged to get the latest trunk, which includes UDP-based notifications between instances on different machines. Since for my own purposes, I started coding the base protocol in . It's a moving target, but it's fairly straightforward (provided I'm reading GrowlDefines.h and GrowlUDPUtils.m properly):

class GrowlRegistrationPacket:
  def __init__(self, application="Application Name", password = None ):
    self.application = struct.pack("s", application.encode("utf-8"))
    self.data = pack( "BB!HBBs",
                      GROWL_PROTOCOL_VERSION,
                      GROWL_TYPE_REGISTRATION,
                      self.application.calcsize(), 0, 0,
                      application.encode("utf-8") )
    self.checksum = md5.new()
    self.checksum.update(self.data)
    if password:
       self.checksum.update(password)
    self.data = self.data + self.checksum

This page is referenced in: