Recent blog entries for heschong

I finally found out why Pecos wasn't allowing browsers to cache images (making for some excruciatingly slow browsing). It turns out that PHP4's built-in sessions automatically send nasty nocache headers by default. You can turn it off with session_cache_limiter(). Now things move along at an acceptable pace.

14 Apr 2002 (updated 8 Dec 2004 at 16:39 UTC) »

Well now. I'm completely obsessed with cover songs. I've built The Covers Project to satisfy my unending desire for them. And the chains. Ah, the chains... What's a cover chain? Each song is a cover of a song by the artist who performed the previous song. I'm up to a chain of 16 songs so far.

To make it worse, I've added an XML-RPC interface to the project. Maybe one day, some open source developer will embed a "what has this artist covered" or a "who has covered this artist" feature into their CD/ MP3 player application. I'd buy that for a dollar.

This was my first XML-RPC server, and I've found that the xmlrpc-epi extensions for PHP are not yet ready for primetime when it comes to creating a server. Not to mention the fact that the libraries that are supposed to emulate the old XML-RPC for PHP APIs are not quite up to snuff in that respect either. Once they get a little more stable (and maybe even documented) I might re-install them.

If anyone has had any good experiences with creating XML-RPC servers using xmlrpc-epi , I'd be interested in hearing about them.

A new and improved version of Pecos should be out in a few days, and I'm debating whether or not I should include the beta-level XML-RPC interface for it (which dynamically registers the methods of the above object when called via aquisition). The load of the old XML-RPC for PHP libraries seems to be pretty substantial.

I first heard about the incident yesterday morning when ldunbar mentioned his meeting had been canceled. It was the most recent diary entry on Advogato, so I wondered what small disturbance might have caused the problem. An unsuccessful visit to CNN prompted me to jump on IRC (a seething pool of wild rumor and speculation, even today), which was where I finally learned what had happened.

Blood donation lines, even here in Northeast Tennessee, are hours long, a tragic but heartwarming sight.

I got Pecos 2.0 out the door today. Is it worthy of a 2.0 tag? Well, to be honest it's not even 1.0 quality, but since I'm the only one who uses it, then I can get away with it. Next week I'll release version 14.0.2!

This weekend, my girlfriend and her family dragged me to Dollywood. It is, after all, the "Entertainment Capital of the Smokies," and what better place is there to spend the day than a theme park dedicated to Dolly Parton!?

I predicted that it would be a miserably hot day, and that there would be too many people around. To my surprise, it rained all day and one of our party dissapeared with some friends, leaving us to search for her for several hours before finally giving up and leaving the park. I only rode two rides, and I got wet on both.

The person at the counter of Arby's gingerly accepted my soggy twenty when I bought dinner before I (with my heart full of relief) began to head home... it was not long after that I found out that my car can go really, really fast.

Ok, I know that RAM is super-cheap these days, but how can anyone pass up ClubMac's Powerbook G3 512MB modules for $109.00 US!?! Wow.

I started to type a ten thousand word essay on why every machine I've seen in the last month running Windows makes me cry, curse, and curl up into a ball, but then I realized the redundancy of that effort. If you've ever used Microsoft Windows (any version), then just imagine your worst day with it, and then mentally transfer that image to your screen for a similar effect.

I spent the last week in San Francisco, but neglected to tell anyone except for my friend Andy (since I was crashing in his house). If there was a tourist attraction we missed, I must have been asleep. Andy gave us a tour of the (mostly empty) Intershop offices downtown, and we led ourselves around to various spots of interest. I was happy to pick up some decent music at Amoeba, including albums from IQU, Cornelius, and Science Park, all for $6 or less. And if you haven't seen Ghost World, travel to a theater showing it immediately. It's a nice reminder that movies don't have to suck so badly (ahem, Mr. Burton) during the summer.

A completely new version of Pecos has been a few days away from release for the last month, but I've been too busy actually using it to package it up. Amongst the "exciting" new features are: objects are stored in two tables rather than one (now one for the object itself and the other for the properties); faster sorting on object lists (thanks to letting SQL sort on the appropriate values), object caching via PEAR's Cache classes (although in informal benchmarks this seems to actually produce worse results), plus the usual array of bugfixes, etc. Of course, I still haven't seen a single message to any of the mailing lists, which is a little surprising because I would think that the idea of persistent objects in PHP (no matter how rudimentary), coupled to a vaguely useful web-based object (or "content") manager, would be useful to more people than myself. Maybe it's my utter lack of documentation, or maybe the consistently broken demo site (removing the management object makes it hard to manage the other objects). Who knows.

At least there have been a few new releases of TWIG in the past few weeks (with no thanks to me, I don't even know if I count as a developer any more) to keep the dogs at bay.

After banging my head against some REALLY BORING code last night (only difficult because it was mind- numbingly repetative), I decided to write an ENAML Parser in PHP. It's not 100% compatible with the spec, but it should allow me to connect some services together. Of course, WDDX serves my needs just fine at this point. If I get some spare time, I might make Stutter connect to say2 so I can get rid of the kludgy SQL backend.

It's become apparent to me that when geeks have babies, they start acting like they are on crack ALL the time rather than just part of the time. One of the fellows who works for me had his infant's website up before she was 48 hours old!

Nicole got me addicted to Tropico, but I seem to be getting ousted by religious uprisings on a fairly regular basis. Evidently the people want more from their lives than just a strong economy.

When the Blake Babies reunited recently, I was pretty excited. I even traveled to Atlanta to see them in concert! I was even more excited when they released their recent album, the aptly titled God Bless the Blake Babies.

When the Go-Go's reunited recently, I was pretty excited. I even traveled to Atlanta to see them in concert! I was even more excited when they released their recent album, the aptly titled God Bless the Go-Go's.

And to think that the only CD I have left in my old car is the Lemonheads album where there are songs with backup vocals by Juliana Hatfield (on several tracks) and Belinda Carlisle (on one track).

Naturally, this has nothing to do with software.

Stutter's first scalability test was Tuesday night, when Ipecac Records hosted a moderated chat with Greg Werckman. Over 200 people showed up, with over 150 online at the same time during one point in the chat. My blazingly-fast PII-400 Mhz handled the load reasonably well, once I upped the concurrent connection limit in MySQL from the default of 100 to a more comfortable 300. This was a mix of streaming and meta-refresh browsers (Macs are the only ones that require meta-refresh tags, because of weird connection handling).

P.S. If you live in the bay area, you can catch the Blake Babies tommorrow night at the GMA. You must be age 6 or older.

I finally got around to working on Stutter last night. I ended up spending about 8 hours straight converting it to work with PHP's shared memory functions.

For anyone who tries to use the shmop fu with PHP, be forewarned that if you shmop_write() a string called "foobar" and then shmop_write() to the same block another string called "bar" with a 0 offset, the resulting block will be "barbar" (which was not apparent from the documentation). In addition, when you shmop_read() from that shared memory block, the result will be a string padded to the size you have specified in the read operation. A liberal use of trim() and pad() are the apparent solution.

Of course, today I accidentally slept in until noon, almost making myself late for a meeting. Typical.

I added an incredible amount of flexibility to the template functions in Pecos today. Template designers can now set properties, call methods, etc, on objects. In fact, the new capabilities are such that templates could theoretically be thought of as a (very) primitive scripting language. If I get all excited and add control structures, I might have something useful. More useful than DTML anyway.

Christ, since I've returned from work today, I've apparently escalated to about 30 SPH (sneezes per hour). If my calculations are correct, I've drained approximately 12 gallons of mucous out of my head today, with no end in sight. I've taken various types of cold medicine over the last few days (Nyquil Cold and Tylenol Allergy, an armful of vitamins, etc.) just to see if any would help. None have.

If anyone is in the mood for a great pop album to listen to when your sunroof is open, pick up Tahiti 80's Puzzle.

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!