What's the GPL? WordPress and PEAR Cache Problems

Ben Ramsey explores some of the issues when you write GPLed code that uses code from the PEAR library.
I had forgotten about the differing licenses used by PEAR and WordPress. They’re unfortunately incompatible and you can’t ship PHP licensed code in a GPL project without an “exception clause” in your GPL license. A change to the license of WordPress would require the agreement of *all* copyright holders of code in the project AFAIK.
Thankfully, I don’t ship PEAR Cache with WordPress MU. I use it if it’s installed already, WPMU isn’t dependant on PEAR Cache being available to work.
I think that gets around the incompatibility. Doesn’t it?

F-Spot mini review

I like F-Spot. It’s useful, it does tagging that no gqview and gthumb don’t. It has organisation features that they don’t have either, but it’s a little too buggy for widespread use yet.
It was really easy to use however. Just “import” a few directories of photos, create a few tags, and then select a few photos, right click and add a tag to those photos.
Unfortunately it crashed a few times after an import, and exif reading seemed to be completely broken but then I never checked if the proper library was installed. Except for rotating, I *never* use a simple photo viewer to manipulate images so I didn’t try out those features of the app. IMO that’s a job for the GIMP and I save modified files to a new directory.
I’m going to keep a close eye on it to track how it progresses. It’s shaping up to be a great desktop application!
A hint for Gnome users – if you haven’t got much room in your home directory move the “~/.thumbnails” folder out of the way somewhere else with plenty of space and symlink it back. Mine’s at 171MB and growing fast!

While we’re on the mono theme, a mono developer, zbowlin1 on attracted my attention when he said..

<zbowlin1> I just did something really really cool. I have a much better version of php+gtk by calling the GTK and System.Windows.Forms (SWF/MWF) classes using PHP as a runtime and using the .NET/Mono invoking classes in PHP 🙂
<zbowlin1> I just made php as runtime and used GTK# like a runtime, and used my Gecko# port and opened a stream and used PHP methods like calendar and Smarty and stuff to generate the content for the page.. most php scripts should work and you can run them and render tables and stuff in gecko#/gtkhtml windows and the rest in lables and menus
<zbowlin1> its like a much much better, cross platform (thanks to mono), PHP+GTK that kills the crap out of the need to make stubs and makes it gtk2 compatible and opens up billions and billions of possibilities for people who only write PHP or people who want to code one set of common functions for like an application version and web page version.. and it can work on the fly
<zbowlin1> humm… i’m on the mono team and i’ve working on my C# based offline wordpress blog writer with a WYSIWYG interface and spell check.. this just made that idea like 3923501235 * better
<zbowlin1> i don’t have to rewrite interfaces. I can use built in php xml-rpc support. AAAAH man it boggles the mind the amount of possiblities..
<zbowlin1> you can gain access to xpcom in mozilla so you can automate XUL with PHP… you could write Mozilla extensions php.. you can call anything, or do anything, on mac, windows, linux, freebsd, etc..
<zbowlin1> holly crap
<zbowlin1> i’m mind boggled
<Firas> XUL and GTK are pretty different toolkits?
<Firas> * aren’t
<zbowlin1> they are very different
<zbowlin1> but xul will render with gtk and gtk2 if you have them
<Firas> oh, right
<zbowlin1> but it also render with QT, Win32, Cocoa, BeOS, etc
<Navid> XUL is nuts. I need to pick up on that.
<zbowlin1> you write everything mostly in javascript and xml
<zbowlin1> you could write the blogging interfaces and menus into my interfaces… if you have local access to the database it should work that way but you could automate it with some work and make it work with XML-RPC

zbowlin1 is at zacbowling.com and go-mono.net
I always want to create cross-platform applications, if .net and mono can do that I need to look more closely at them!

PHP Shm Caching

Matt points to a PHP script that uses shm memory to cache data.
I rather use the filesystem to cache data – disk access is an order of magnitude slower than memory accesses but the operating system is generally clever about caching filesystem reads in memory. I would presume that the algorithms used are more complex than can be practically achieved by a PHP script too.
AFAIR, Apache has problems with Shm segments too although that could be something I remember from long ago!

Building Rich DHTML User Interfaces Revisited

This post by John Lim is a must-read for any web developer looking to develop a “rich client” on their sites.
He lists several tools and libraries to help in the process and I really like the look of JPSpan although it looks like I need to download it from the sourceforge CVS as there’s no tarball yet. I must have a play with it later as XmlHttpRequest looks dead useful!