• libsched: A library to schedule events. Like what cron has inside it, but with some added requirements:
    • Ability to make jobs dependent on one another
    • Ability for jobs to cary some form of annotation along with them. Nothing complicated here, a void * will do just fine
    • callback based so as to be as generic as possible, etc.
    • Ability to schedule jobs in such a way that guarantees they be run N times within a time period, and that they're evenly distributed, but without specifying actual times
    • ability to specify classes of jobs, such that each time the scheduler determines that the class is to be run, it picks a job from the class based on LRU/ringlist/PRNG/whatever
    There's no reason cron couldn't use this, but there's no reason a music synthesizer couldn't either.
  • a proof of concept music synthesizer
  • a CD authoring (not burning, although it'll really need to do that as well) tool
  • device drivers for CDs that allow you do do things like dd into the device
  • python bindings for most of the above (and below). Maybe perl too, who knows how bored I can be
  • rewrite photo.net and gallery in one fell swoop, and try not to have it suck as much as either of them
  • make my slide scanner *really* work with sane
  • make real scanner drivers so that sane isn't really all that useful, and doesn't need to know about much other than UI
  • write an OS (no, that's not a joke)
  • any of the photos in my sketchbook
  • make my sketchbook publishable on the interweb
  • finish rewriting leftbrain/rightbrain to be what I really want
  • rewrite something like grip in a non-sucky way, such that it can be integrated with CD authoring software and music synth/editing software mentioned above
  • just like before, only xmms is the target to kill. Sounds like some people might actually be thinking about this already. Maybe they'll not fuck it up.
  • make Mr Project use scheduling library already mentioned.
  • replace cron.
    • knows how to execute well formed (for some version of well formed not yet specified) python, perl, shared object, etc code without a fork/exec
    • is extensible in reasonable ways so adding more lingos is easy.
    • supports something like the obvious cron.d
    • understands when it needs to fork for reasons of overlapping jobs, and when it doesn't need to
    • has minimal effect on measurable system performance, so as to be useful in a monitoring capacity
  • reimplement livejournal in a way that doesn't suck so much, and is at least a *little* scalable
  • A good, yet simple and well defined message passing library. If I'm really lucky, Owen will beat me to this.
  • a general engine to support multiplayer strategy games such as go, pente, and chess
  • OProfile on sparc/sparc64. (somebody else has gotten to this one, apparently)
  • something like procmail that doesn't completely suck ass. In particular, it'd be nice to, say, use the system regexp libs, so the regexps would be like all the other regexps on the system. Also, it might be nice for it to be auditable.
  • write some vfs documentation. Gooch's is complete crap.
  • nonlinear video editing.
  • "don't let javascript scribble on the status bar" pref for mozilla
  • an ircd that's vaguely scalable, runs in bounded space, and doesn't have duplicate codepaths *everywhere*
  • atomic_t using swap on sparc (zaitcev says he couldn't figure it out, wants me to look)
  • Linux support for HALStation
  • maybe break srmmu.c up into subarch.S and srmmu.S (aka skeleton.c) and make srmmu.c just the code to pick which one and call the right functions
  • silo %0 -> %[label]
  • get a job not doing oracle
  • add support for arbitrary C struct handling into python... shouldn't be very hard, I don't think ;)