Didn’t accomplish much of anything today. Sundays seem to be dead for me lately, which is probably more than made up by the fact that weekdays seem to be more productive than they used to be.
I think I’ve pretty much scrapped the idea of a streaming Vorbis server in Python using Jython. Thread support in CPython doesn’t seem to be there yet, what with the global interpreter lock, and the idea of running an interpreted language in Java — no matter that it’s more-or-less compiled to Java, I think — seems rather silly. Instead I decided to just give up Python for this project and go with Java.
Started looking at Avalon Phoenix. The web site seems pretty out of date, but they do have a release out (as opposed to a milestone or something). I ran the demo application (which I had to get from CVS) and it kind of crashed on exit; indeed, it may have crashed all of Phoenix. I don’t know how many of their existing “blocks” will meet my needs, but the idea of the core of Phoenix is useful. I like the JMX integration as well, and I was able to see some of this in the demo.
I envision source and listener connections. More generically probably
push and pull connections or some such. Source connections will have
basically a circular buffer that they stuff the incoming data into.
Listeners will be sent an event each time a new packet comes in.
Everything will operate out of a thread pool of a user-defined size,
and the act of receiving an event will cause an instance to be queued
to receive control of a thread. Obviously that’ll mean some
cooperative multi-tasking techniques for the workers. Haven’t quite
figured out how I would resolve the idea of a syscall that locks up
for a while. Maybe I can interrupt it? I don’t know how far
Thread.interrupt () goes. Anyway, these are are fairly
preliminary ideas. For example, sending an event to each object for
each unit of incoming data might be fairly processor- and
memory-intensive. I’m also ignoring any media-type-specific details,
such as things that have to be done to an Ogg stream coming in from
the source before it can be streamed to clients, headers that have to
be sent, etc.; really I’m hoping to build a simple prototype that just
pipes data in from one end and out to the other to see how it works.
Did some reading of The Pragmatic Programmer today in the interest of refreshing myself for development. I think I need to try and dig up some of my eXtreme Programming resources; I know it’s a bit grandiose for a one-person project, but certain parts of the process are still useful, such as breaking a project apart and measuring progress. I mostly use the planning portions. I’ll have to reacquaint myself with JUnit as well, since I like that from XP as well. I kind of wish I had another developer to work on this with; it’d be nice to bounce ideas off of someone else. OTOH, I’m not going to be actively looking for another set of eyes.
Also started reading about Emacs and Java. Sounds like JDEE (which I knew merely as JDE) has some good stuff that I’ve never used, and maybe some more recently added. “Intellisense” like operation, supposedly, which I’ll have to test out. I admit that sometimes this was very useful when I was coding in, for example, Microsoft Access. (Of course, the remainder of my experience with Microsoft Access was enough to drive a person to drink, drive to a clock tower, get a rifle, and let the Marines sort it out.) ECB might be useful as well, but I’m really not sure if it overrides some JDEE behavior, duplicates it, etc. Will have to check that out more tomorrow. I need to get the nice mixed tab/space editing patched cc-mode too, but the site seems to be down right now. I think I have a copy lying around that the author mailed me still, but maybe he’s updated it a bit. I remember that when last I looked at it porting the changes forward to a newer version of cc-mode was not possible with my level of Elisp proficiency; I wonder if that’s changed now that I know a bit more?
Played with Dia today too. It’s real slick, a lot like Visio but with better stuff for doing UML it looks like. The size of the objects was a bit off-putting, and it took me a few minutes to realize that I was in A4 rather than Letter sized paper, but the properties sheets for UML objects are pretty neat. Too bad it looks like it’s lacking a good interface shape, I think. Honestly I can’t remember enough UML to really be sure that there is an shape. Or entity. Or whatever UML calls it. I need to bring my books home, especially since someone else posed me with a UML question that I was unable to answer.
Probably not going to get to touch most of this stuff tomorrow, as I anticipate some work stuff to do. Not real sure why, just a hunch. Need to move the TFC server over to a different (faster) box as well, and I need to set up e-mail for codefu.org.