Sat, 24 Sep 2005


— SjG @ 6:41 pm

So, while the core development of CMS Made Simple is undergoing some interesting (and pervasive) updates as we head towards a 1.0 release, I’ve been fixing modules to work correctly under PHP 4.4 and 5.0.5. Obviously, my understanding of references was weak, and I’m paying the price now. Damn, I wrote a lot of wrong code.

But now I’m playing with making an alternate Admin interface for CMS Made Simple using some of the fine AJAX and Javascript libraries out there.

I’m using xajax to marshall up objects and submit them nicely to PHP, and I’m using the Web 2.0 and its underlying Prototype library for User Interface and special effects.

Some of it’s silly, like making the login box shake if you incorrectly enter your username or password (imitating Mac OS X login). But some of it is really slick — adding users to groups is now as simple as dragging’n’dropping items between lists. It could use a way of multi-selecting that worked with dragging, but an “add all” and “remove all” button mitigate that somewhat. Of course, the original interface will remain for non-Javascript users or people who prefer it.

I plan to do the same for assigning permissions to users. But the real challenge will be drag’n’drop content reordering. This will require a draggable tree. I haven’t yet found code to make this easy; even with all these great libraries, I have to be careful to select features that work equally well under the Evil of Internet Explorer, as well as Gecko-based browsers and Opera…


— SjG @ 6:22 pm

Samuel R. Delany, Vintage; 1st Vintage Books ed, originally published 1973.

Dhalgren is one of those books you hear mentioned (in hushed, reverential tones) by the more academically oriented fans of speculative Science Fiction, by people who participated in the 60s counter-cultural experience, and by students of sexual politics. It is almost always refered to as “difficult” or “challenging” by the erudite, and “a trip” by the more participatory survivors of the culture wars. Occasionally, you’ll hear it called “crap” — or worse.

In some ways, Dhalgren is a shallow metaphor for the cultural changes happening in America in the late sixties. All the old rules have changed: the City of Ballona has had some unspecified cataclysm, people in the city do whatever they want and gather in new and shifting social configurations. Race relations get redefined. The bourgoisie are frightened (while their children are seduced). Strange religions flourish, new arts emerge, senseless violence flares, and psychadelic anarchy descends. Through it all, our protagonist is never sure if he is sane, and we might be tempted to believe that the whole thing is a madman’s visions.

Additionally, there is a sense of paranoia that lurks beneath the surface. The arts and media are manipulated by one powerful individual, a man we never quite see. Many of the hallmarks of the city of Ballona (the Scorpions’ light shields, the weapons, even the semi-mystical “optical chains” worn ritually by some to commemorate some profound personal event) are found in vast storerooms, packaged like government-issued equipment. Maybe the magic of Ballona is an experiment? Timothy Leary, LSD, and MK-ULTRA anyone?

Time has blunted some of Dhalgren’s impact. Sexuality that may have been revolutionary (in print, anyway) in the early 70s doesn’t even raise eyebrows in the Internet-age. But we have to keep in mind that interracial sex was considered deviant — or even criminal — at the time the book was written, and that homosexuality and bisexuality, not to mention sadomasochism and polyamory were still shocking.

Filed in:

Wed, 7 Sep 2005

Build PHP 5.0.5 for Mac OS X 10.4

— SjG @ 8:39 pm

I’m trying to track down a bug in my CMS Made Simple PHP code where I did something stupid with references (a rant on the PHP pass-by-value model available upon request). So it only manifests with PHP 4.4.x or PHP 5.0.5, since that’s where they finally decided to get strict with us idiot slackers. Neither of these are available as binary packages on Mac OS 10.4.

I was dismayed, shocked, stunned, dazed, and confused to learn that PHP was no longer a package for Fink. Dammit! Now I have to figure it out for myself. Crap.

With the help of a variety of pages out there on the web (especially this one), I was able to do it. Here’s how:

Install Fink, if you haven’t already. I use the “unstable” packages. Read the FAQ, and muck around with it for a while until you feel ready to proceed.

Install a wholehellovalotta packages using Fink:

  • libjpeg
  • libtiff
  • libpng
  • libxml2

I also installed the Fink version of MySQL server 4.1, client, and a bunch of shared libraries.

Next, gotta build ZLib:
curl -O
cd zlib-1.2.3
./configure --prefix=/sw
(su if necessary)
make install

(I did my install work in /sw/src, but you could do it somewhere else if it pleases you more. Just take note of this other location when you need it later.)

Finally, we get PHP 5 .0.5 from

tar xzvf php-5.0.5.tar.gz
cd php-5.0.5
./configure --with-libjpeg=/sw --with-libtiff=/sw --with-libpng=/sw \
--with-gd --with-mysql=/sw --with-xml --with-apxs --with-exif \
--with-jpeg-dir=/sw --enable-exif --with-png-dir=/sw --with-zlib-dir=/sw \
(su if necessary)
make install

Now, I already had a version of PHP installed before this, provided by Marc Liyanage’s excellent binary packages available at his page, so I didn’t need to tweak my php.ini file. If you do, you’d probably do something like:

cp /sw/src/php-5.0.5/php.ini-recommended /usr/local/lib/php.ini

and then edit into submission. You can also use the more general php.ini-dist instead of php.ini-recommended. I don’t know why they provide both — probably to confuse idiots like me. You’ll also need to register the PHP Mime Type with Apache. Edit your /etc/httpd/httpd.conf file, and add either to the general area or to a specific virtual host the line:

AddType application/x-httpd-php .php

Now test it! Create a test file in your web root containing:

<php phpinfo();>

and browse on over to it. With any luck, you’ll be greeted with ahappy PHP 5.0.5 banner.
Celebrate this with red wine. Preferably good red wine. Then get back to coding. As should be obvious, I decided to document instead of code, but I didn’t skip that vital red wine step.


Powerbook HD Upgrade

— SjG @ 2:09 pm

Since I have this unreasonable need to keep all of my digital photos on the Powerbook, I’m running out of disk space. Gee, you’d think 60GB would be enough for just about anything. But with 30GB of graphics files (21GB of which is just photographs), space gets used up quickly.

The eventual plan is to use iView MediaPro2 for keeping the pictures organized, Photoshop for manipulating them in any way necessary, and come up with some bridge to Gallery2 for publishing collections on the web. We’ll see.

In any case, the problem arises of disks. The one I’m currently considering is the Seagate Momentus 5400.2. I like that Seagate still has a five year warranty. The drive’s 100GB, which would give me another 40GB. That’s about 15 overseas trips worth of pictures, or, if I’m lucky, enough to tide me over until I get my Super New Intel Mac Notebook with its 250GB hard drive in Spring of ’07.

Update: Somehow, I’d missed the ST9120821A. That’s 120GB! Wheeeeee!

God is Good but Nature is Cruel

— SjG @ 1:41 pm

So the garden is practically seething with big spiders these days. There are orb webs spanning the gaps between branches or arcing across the front entry-way or even from the hedge to any car foolish enough to sit still for a few hours. Most of these orbs are homes to furry spiders, others have sullen-looking yellow-brown fellows. Trapdoor spiders are in and about the squash vines all around the front yard. Compact little jumping spiders that remind me of Isuzu trucks seem to prefer the sunny area in back where the nasturtiums flourished. The echinacea are a-lurking with yellow or white crab spiders. It’s a hard job being a gnat.

But even the spiders don’t have it so good. The other day, I saw a large mud-wasp carrying the paralyzed body of one of the yellow-brown spiders. Supposedly, they lay eggs in the paralyzed spider, so when the young hatch, they have something fresh to eat. Hey, these guys all play rough — spiders, wasps, they’re all packing chemical weapons.

On my walk in to work this morning, I saw a red-tailed hawk sitting in a deodar tree. The neighborhood seems kind of urban for hawks, but they do show up occasionally. As I walked, it exploded down on a group of mourning doves, which frantically scattered in all directions. They all shot behind a house, and I didn’t see the outcome. So either a bird died suddenly, or a bird went hungry.