Older blog entries for roundeye (starting at number 7)

PHP wasn't meant to support homomorphic class hierarchies with factory constructors.

For the first time since 199[45] (can't remember exactly which) my main desktop machine is no longer running a version of Linux -- that after running Linux-only since 1997. My UDMA controller won't play nice under 2.2.*, and every kernel from 2.4.3 through 2.4.14 blows up with swap problems. I've spent 6 months verifying that it's not hardware. The final straw was when 2.4.14 was giving me bad swap entry messages even after I'd turned off all the swap and rebooted.

So after a harrowing 6-pack night disemboweling my interface to all things digital I now have another FreeBSD machine where it matters most. While it's been >5 years since I've run desktop FreeBSD it feels like a giant step forward already.

Now only 1/3rd of my machines run Linux with the other 2/3rds split evenly between FreeBSD and OpenBSD. I really need to plug my NeXT back in soon to skew the balance.

Forgot to mention it (when it actually happened a couple weeks ago), but I got Gene Kan to finally agree to release LiteStream (neither person nor project are listed on Advogato which is actually pretty surprising to me) under a real BSD license -- not whatever non-BSD thing it is that it's currently distributed under.

Not totally related to much of what I'm doing now, though some people want to use Litestream with the RDTJ. Some patches I've got to LiteStream would make that possible so I had to get the license cleaned up before I went ahead.

Gene even hinted he might get litestream.net back online soon, but he told Sean /The RIMBoy/ that too some months ago.

Anyway, this should be good news for LiteStream fans.

Some times the code just comes and some times it's like pulling teeth. The last couple of weeks have been a 60-hour a week dental visit. TODO's go up on the whiteboard twice as fast as they come off. Some hours I only manage ~10 lines of code; many hours there is no code.

I think things are loosening up now:

$ find last_corengine -type f | wc
    238     238    9642
$ find corengine -type f | wc
     94      94    3736
$ diff -r last_corengine/ corengine | wc
   1978    7201   56717

It's a pretty massive cleanup/rewrite. I don't like introducing discontinuities, but some of the work I had to do just couldn't be done stably -- which means that tonight will be my first test of a lot of that code. It's amazing how liberating it is to undo the bullshit hacks put in back when "we need[ed] feature X for tomorrow's sales presentation."

I also had to go ahead and let the old CVS module die so I could reorganize the directory hierarchy. When the files are in their places CVS works great. When it's time to reorganize CVS bites ass (I suppose it's time to check in on subversion again). I'll probably just keep the old CVS module in a CVSWeb for archeological interest, once I get to the point where CVSWebs are the highest priority items (ah, 'tis but a dream).

Anyway, that much closer to the first open source CorEngine release (sorry for the long build-up). I'm looking forward to actually using the new version to build its own websites.

Finally created a project entry for the RDTJ.

I've got two more big projects in the works:

The "Anonimatic" is a BSD-licensed Perl toolkit to find proxies, test them for anonymity, use them (a drop-in replacement for LWP::UserAgent) for web requests, forge User-Agent headers with real-world headers occurring in real-world frequencies, automatically rotate proxies during requests, etc.

The other is CorEngine, which is a PHP-based "content management system" that I'm moving to a BSD license after 2 years of development.

The Anonomatic is working, but I want more docs and more command-line tools before release 1 (I know, "release early, release often", ok ok ok soon soon).

The CorEngine project will take a bit longer to show its face (a few months probably), but it should be well worth it. It's strong enough to be an Interwoven/Vignette/eGrail/whatever-bullshit competitor, but runs well on a 486 (it's running my home page, btw).

I get a lot of use out of it for my own contracting/consulting work still, but the company we started (profitable from beginning to end) to develop and sell it is mostly on hiatus. Nothing to do with "bad economy" or "9/11" -- we simply got sick of dealing with assholes in suits. Now we're finally doing what I've always wanted to do, which is take the product open source. I'll probably get contractors to help me pay for add-ons that I'll revert to open source over time as well. Worth a shot, eh?

Anyway, there's actually a third project ongoing which the Anonimatic was written for (consider it a subroutine), but I'll leave that for later...

Just posted the first public version of the RDTJ (roundeye's duct-tape jukebox) to sourceforge and freshmeat (it's BSD licensed). While I am vying for the title of "worst software acronym of all-time" I'm also pretty keen on the program itself.

It's a jukebox system (as the name would seem to imply) that allows you take your drive full o' mp3's (preferably sorted by artist and album since that's where the most duct-tape is), browse them through a web interface, and play them on your stereo system of choice. It queues the tracks up like a jukebox would. Great fun at parties, and really cool if you dangle it on the web and let your friends play your stereo for you.

It's at http://rdtj.sourceforge.net. Enjoy.

2 weeks until the RSA patent expires!

I'm working full-time on Eastcore's CorEngine web engine software.

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!