Month: February 2009

Limegreen Autoupdate

A while ago I “released” limegreen, an application template for making java applications look as good as they can, and function as natively as they can, on OS X, windows and linux.

Anyway, I use it in some of my applications, and I’ve recently added a completely automatic autoupdate feature. It will produce an ATOM file with the version in it and change history, and links for where to get the update files. I choose ATOM, because it meant with the same file I could store information that could be read by a program that needed to know if it should update, as well as allow people to subscribe and be notified of updates in a feed/RSS reader.

I’ve also released a PHP library and wordpress plugin that allows the ATOM file to be read, and version information to be automatically placed on a website. Its what I use to show this, and generated the latest download links on my website. If you’re looking for the PHP library, just download the wordpress plugin and include limegreen.php.

WordPress Backup

I run several websites / blogs powered off wordpress. In order to back them up I’ve written a unix shell script to do this. It will automatically read the database settings and do a dump of it, as well as copy themes / plugins / uploads.

There are two versions. One will copy files locally, the other allows a remote sync to another server which is compatible with Dreamhost.

The local copy version can be found here: wp-backup.sh Example usage can be seen below. The -t option allows you only to backup a single theme. The -u option allows you to skip backing up uploads.

./wp-backup.sh /path/to/wordpress /path/to/backup
./wp-backup.sh -t theme -u /path/to/wordpress /path/to/backup

There is also a version to work with Dreamhost’s free (with hosting) 50GB backup plan than can be downloaded here: wp-remote.sh

./wp-remote.sh /path/to/wordpress b123456@backup.dreamhost.com:backup
where b123456 is your backup user

Limitations
1) Your wp-config file must be pretty strict in order to be read:
define(‘DB_NAME’, ‘database’); // The name of the database
define(‘DB_USER’, ‘username’); // Your MySQL username
define(‘DB_PASSWORD’, ‘password’); // …and password
define(‘DB_HOST’, ‘hostname);

2) The directory you’re copying to must already exist.

3) The options/order of the parameters in calling the script is very strict

App Ideas

In continuing to blog ideas that I think are cool but I need to take off my todo list, here’s a list of apps that I think could be written sometime. Feel free to write them:

Facebook Apps
Social facebook app of where to find hard to find stuff
Mac vs. PC
Virtual Time Capsule Gift app

Deskbands
World Clock
Multiple Desktop for windows XP

Widgets
Scrolling Stocks
Scrolling News

iPhone
Dos Box on iPhone, with easy to build script that incorporates it and a dos application into a new iPhone app
Penny football
Super rubber dub for iPhone
Style Diary for iPhone