Older blog entries for opiate (starting at number 2)

25 Jun 2001 (updated 25 Jun 2001 at 21:46 UTC) »

So I've started my new job at Kaval. It's a Python job, which is new and exciting, in that I've known Python for 5 years, but never got a chance to work with it full time. Also the management into exploring ideas extreme programming, agile development, etc. It's a pretty open environment, and despite now having an 1 & 1/2 hour commute (35 kilometres from home to work via bus->subway- >bus), the job rocks!

New ColdStore stuff: I wrote a rough demo of what an XML parser will look like. It uses expat's SAX parser to construct a list of Objects, which inherit from Objects created to match elements in the DTD. What's remaining, design wise, is to come up with a way of mapping the element containment stuff so we can do nice treewalking searches. I'm going to have to take a look at a lot of the XSLT, etc. stuff that's out there, too, to see what kind of transformation operations we're going to need.

Also new is a refactoring of the interpreter's Frame stuff. Split it up into Frames (contexts) and Closures (executable bit.) Makes a little more conceptual sense.

New coldstore things I've been working on:

  • A browser object -- a neat little GTK interface to browse, edit, and compile methods (in freon). Displays the source as well as the node tree for any method.
  • An example, little MUD server written in C++ using our layer2 (Objects + native methods)
  • A new metaclass for Slot in openc++ that allows layer2 methods to be called (with Frame context + everything) as if they were native C++ object members.
  • 11 May 2001 (updated 10 Jun 2001 at 16:53 UTC) »

    Three new things: I'm unemployed -- I need a new job, contact me if you know of anything, I need a new roommate for August 1st (I'm in Toronto Canada, contact me if you're interested...), and now that I've got my computer set up underneath my brand new Ikea loft bed, I've been doing some serious coldstore hacking.

    I've spent the last couple and a half weeks since the start of my new unemployment, working like a madman on the coldStore Python bridge. In summary:

  • You can convert most python basic types to a coldstore layer1 "Data" element, and persist it.
  • Data has been wrapped up so that it response to 95% of Python's basic operations, so you will barely notice you're using a layer1 type.
  • I've hacked on arbitrary persistence of python objects, but this will require Strong Voodoo Magic(tm), since GC cleans up PyObjects on exit (among other logistical problems). Storing a pointer can lead to supreme ugliness.
  • coldStore's "Object" type is now genuinely useful. It behaves as a real prototype-inheritance object, which you can stick methods/attributes on.
  • Python can interface to the freon compiler and you can now compile freon source, and stick them on either Python instances, or coldStore Objects. You call them just like any Python method.
  • New Advogato Features

    New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!