Recent blog entries for dto

I've moved to Boston and started working for Irrational Games, creators of System Shock 2 and employer of numerous LookingGlass alumni.

now playing: Brian Eno + David Byrne "My Life in the Bush of Ghosts"

School. Amherst is out of the picture for this year; got the letter today. I half expected it but it's a disappointment nonetheless. Still hoping to hear something good from Boston.

Work.Finishing up one freelance web design, starting another, and in the meantime I've started working 9-to-5 at UMASS Public Sector Partners doing software QA. Will try to save as much as I can.

Code.The job has put a bit of a dent my time, but I'll just have to work harder...

School. Still waiting for those letters.

Work. Got an assignment with a temp agency, with the promise of more after it's done. It'll be nice to bring some money in.

Code. I've finally broken my coder's block---thank God. I never thought I'd stare at a blank screen again after I'd gotten up into thousands of lines, but any large-scale refactoring operation can cause the same feeling. The upside is that it's even more of a rush when it gets going... :-)

I'm typing this from my brother's house, babysitting for his two insane dogs. I've got a chihuahua named "Ocho" on my lap--she's hiding from Otto the spastic Italian greyhound. What a perfect opportunity to update my advodiary.

School. Still waiting to hear back from those graduate CS programs I applied to--I don't expect to know for another month or so. Sucks having to wait just to see where I'll be in September; will I be living in Amherst, or Boston, or what? Whatever happens, I can't stand living in the towering shadow of Worcester, Massachusetts anymore. Where we had 20+ inches of snow the other day in the space of a few hours.

Code. So I've been doing a little research to finalize the application protocol for Octal. Or rather, I've been reading other people's research papers via CiteSeer. There's an interesting research project called W/Aura [paper] whose underlying message-passing-style object model I really like. The salient point seems to be that objects do not obtain information (i.e. propertly values) from another object by invoking synchronous "get" methods; instead they receive the information asynchronously, possibly in response to a request, possibly not. Not only does this neatly sidestep the RPC ontology quagmire, it also looks like a natural model for low-latency server design---asynchronous interaction means you never have to block.

Berkeley CNMAT's OSC doesn't overtly aspire to the status of an object model, but the general idea is implicit in what I gather of OSC's semantics. What OSC does bring to the table is an abstract, hierarchical namespace with slash-separated paths; it supports dynamic discovery and update of "addresses" within the namespace. I would like to support OSC, as I see no reason for the continued existence of the limiting Atari-5200-era wire protocol known as MIDI--other than for plugging a keyboard into your computer.

I've decided on the general flavour of what I had been calling the "wavetable." I wanted the general functionality but didn't want to restrict the model to just storing loop points and fine-tune. I'd been interested from the start in allowing musicians to define more complex arrangements of samples while still supporting mainstream features such as velocity cross-switching in a straightforward way. An interesting idea from the world of speech synthesis seems to fit my desire: [paper]

Now playing: Vangelis "Blade Runner"

I've upgraded to RedHat 8 with Bluecurve. Except for remaining GTK1.2/2.0 weirdness, this is the first time I've seen Linux look and act truly unified. Not that it's trouble-free; I seem to have an inordinate amount of trouble getting PhpWiki installed and running on the new distro. So in the meantime I'm back to using plain text files for my daily planning.

I'm short on cash so I upgraded my computer by cannibalizing other hardware. Although I'm still down here at 450Mhz, I now have about 392MB of memory; a larger monitor (great for coding); a better graphics card; a zip drive; a working CD-ROM; and of course, better software. I've been using Evolution, Mozilla, X-Chat, Terminal, Gimp, Nautilus, and lots more; I think it moves faster than the jittery, sluggish Windows XP my brother's machine has (and that's on a 1.4 GHZ chip!)

Now is the time to complete a beta/pre-1.0 version of Octal, with all major features implemented. Coding on the Objective-C version has begun. For the time being I'm having an issue with my CVS/SSH access at Subversions but with any luck it'll be resolved by tomorrow.

Well. My two older brothers are both engaged to be married (visit www.jackandolivia.com and ticklemyblog.blogspot.com). I'm anxiously awaiting admissions decisions from the graduate CS departments of several UMass campuses. On the verge of (yes!) actual employment! Things are looking up.

I'm trying to break out into freelancing... might as well parlay my database-enabled web development and graphic design experience into something. I took over the domain name of my former employer, QwsiNet. I'm based in the Boston, Massachusetts area, in case anyone is reading :-)

I've got a new Logitech wireless keyboard, and I must say it's a real boost being able to type while sitting back in the chair with my feet up. Typing feels easier. I also have begun to realize that for one reason or another, I over-rely on the fingers of the right hand to type quickly. My left hand is not nearly as capable at fast sequencing of key presses. Got to work on that.

I had an epiphany with GNU Octal. I had been banging my head against the wall trying to solve a bunch of unrelated problems, and nailed them all with a single pattern. Coming Soon to the web; got to create a test implementation first, then I'll write it up in official GoF Pattern Form.

What a difference a year makes. Wow.

My encounter with crime!

At 3:45 this morning I snapped awake to a phone call from the UMass police, saying I needed to come down to the parking lot because my car had been broken into. I parked facing the riverwalk in the corner, and apparently some sketchy folks have been trying to steal stereos out of cars along that area (it makes for an easy getaway). The police car came and stopped them from doing further damage, since they ran away and weren't captured.

One of my rear-door windows is smashed, and the stereo was destroyed in their attempt to crowbar it out. (Apparently they didn't realize it was a detachable-face stereo, and tried to remove it wholesale.) So now I've got a plastic Newbury Comics bag taped over the window. Luckily it's on the side without all the parking stickers I need :-).

I will really miss my CD player until it's replaced. The whole incident has made me realize how much I love my little red Saturn :-/ ...

Project status!! Here is a reply I sent to an inquisitive Octal watcher, who wanted to know if the recent quietness of the project meant it wasn't being worked on anymore. I explained:

Basically the delay is a result of 2 things:

1. Starting graduate school in C.S. and moving to a different city 2. Design revisions + freakouts :-)

The project is not in any danger of being abandoned, and is still very much at the forefront of my mind.

I mention this in the log at one point: I'd begun to get very frustrated with doing certain things in C that would be trivial in a language like Objective-C (part of the GCC suite) and spent a good deal of time investigating the decision to begin coding parts of the system in that dialect. (I dislike C++ and don't think it's a good idea to base new work on it.) I wanted to make sure that nobody would notice my using Objective-C, i.e. no build problems on GNU systems, no re-entrancy problems with the runtime libs, and that sort of thing. At this point it looks 100% safe to use for GNU systems, and I really look forward to cleaning up the code.

In addition, the OCTAL api has had some new (minor) changes inspired by the latest incarnations of some of the other audio plugin API's on linux, as well as standards like DLS.

The two main parts to finish are the sequencer and the GUI. By all means the GUI is the lion's share of the work, even the partial GUI is larger than the core audio engine in code size.

I'm quite prepared to start off by giving patches to you. I've been coding for years and have a CS degree from Rice University (i.e. I know what I'm doing, more or less).

Excellent! Unfortunately this is an awkward time to start someone off on the main system, especially considering that what's currently in CVS is about to undergo some big restructuring. (I *looove* refactoring.) This is one of the reasons why I tend to steer people toward writing plugins---its interface is already defined, and doesn't require any of the paperwork involved in contributing significant code to a GNU project.

I've got design documents and such for the parts of the main system that aren't implemented fully yet (i.e. remainder of the GUI, and the sequencer) stored in a Wiki but they're in rather raw form mostly. I got involved with collaborative software design thru a wiki before, and frankly I found that a lot of Wiki pages got written instead of code :-).

There are two main priorities now:

1. For myself to finish that last 30% that needs finishing, and to document the code. That way people will have an idea of how things are organized and the architecture will be basically stable---things that will make it easier for folks to contribute on the core in the future.

2. For folks to write plugins and fool with them. Unfortunately the API is still under minor revisions, and some troubles with the C++ plugins have made me consider dropping the C++ wrapper (linking problems, and it's a hack anyway.) But the API is pretty close to final, and I feel that the documentation we've got for it is pretty good.

83 older entries...

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!