Older blog entries for roundeye (starting at number 11)

A little more to be done on the base site revamp, then I can set up the project site (not yet live) and, finally upload the newly BSD-licensed PH3P, enable the mailing lists, and do the freshmeat/ph3p-announce/advogato-project/etc. jig. Then it's back to unproprietarizing (is that a word?) CorEngine so it will one day be yet another open source download.

I will be releasing PH3P (a preprocessor for PHP) this week under the BSD license. It's been very useful over the past year and almosts makes PHP into a programming language. ;-P

In the midst of revamping our main site before announcing the release. Need to get the independent project hosting site (hoodoocode.org) and the consulting site (hoodoocode.com) set up RSN too.

I should be on track to announce an open-sourcing of some very established projects about 1x a month each (except for around Xmas which will be a much-needed time sink) for the next 4 or 5 months going forward.

16 Nov 2001 (updated 29 Nov 2001 at 04:18 UTC) »

Working through a skein of incompatible bits of monocultural missives as of late, trying to figure out why exactly it is that production == 0.

Peter Drucker recently said not to ask for permission, and I took that as a Good.

Again 4 or 5 times recently I've heard this television-era dime store cultural aikido self-help pith which says that we can't excel without a goal somewhere (vaguely) dead ahead of us.

On Saturday I went to a small party with the guitar I hadn't played in six months and played something vaguely derivative of El Camino for a number of hours.

I realized today that the whole fucking problem is that I had goals two months ago and now I'm only left with doing things for the doing itself. I should've known better than to let some trite cultural widget slip into my mental pocket.

Somewhere on the continuum between not asking permission and infinite flamenco guitar is the isolated hum that is the tao of "do for doing" that I've forgotten these many years.

obOSS: major progress on testing for new CorEngine authentication classes tonight.

Jukebox day
This afternoon I got a call referring me to a guy in Louisiana who wants to build Linux jukeboxes. Not something to put in your living room, but a replacement for the CD-containing jukeboxes in bars and clubs. Two hours later people in four states were discussing the project, particularly the non-technical complications (USC 17, state licensing, BMI/ASCAP, and ... the power of the Mob in Louisiana). Nobody's pretending it's a particularly novel idea (we had a fairly novel set of designs and business applications sketched out over a year ago, and we were hardly the first), but the guy on the ground seems to be a real underdog (without the "...get some VC hire 300 people to run the website and ..." mentality), so we're taking a look at it again.

Noticed that musicbrainz is doing a cddb replacement (I knew they were doing a metadata database but I didn't put 2 + 2 together I suppose). Unfortunately their idea of "P2P" involves people being the peers as they review album entries by hand. I've had a submarine project in the works for a while now which will be a direct "competitor" to musicbrainz from what I can tell, but which will be automated. I always assumed p2p peers did computation. Then again I always assumed people who said "p2p" too much were marketroids.

Along those lines (automating weird extraction and classification tasks), I keep coming across whizbang! labs (they also have a research site...). Ullman's advising them. The guy who wrote WordPerfect is in deep. They run flipdog.com, have a particular fancy for spidering my home page, and seem to cite a lot of my old co-workers in their research papers. I like some of their ideas so I think I'm going to implement those I can deduce from their datasets and papers, then wait and see if anybody comes out of the shadows to throw a lawsuit at me :-)

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 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!