Archive for March, 2008
Watching MooFlow
I’ve been hacking around with and watching the development of MooFlow over the last few days. It looks and works pretty nice in most browsers and has quite a few options to play with. In this MooFlow demo posted, most options are enabled and the images are imported from page.html.
Other examples at the MooFlow site showcase some of the other features, like images that have external links attached to special buttons, drop down descriptions that float over the image, and the ability to get your images via JSON.
The development version still has a few noticeable bugs:
In Firefox 2.0.0.12: When resizing the stage (bottom right button), the quicklook button shows. When pressed, the image appears under the stage. The user may not realize this until the stage is restored to it’s normal size.
In IE7: When clicking the quicklook button, the image is not zoomed to full size.
Even though there are a few bugs to be worked out, MooFlow already looks great. Not to mention all of the ways it could be used. It even accepts keyboard and mouse scroll input. What’s not to like?
Client to Server Backups
I have intentions to look into Bacula as a disk-to-disk backup solution, however until then I am using the following script for Kubuntu Dapper -> Debian Etch backups, and a modified one for Windows XP Home -> Debian Etch.
It all uses rsync, and requires password-less key based ssh connections. I am using rsync, OpenSSH, and for Windows XP a little Cygwin magic (including modifying this script to make it Windows friendly).
client-to-server-rsync-backup.sh
#!/bin/bash
#ver 1.0.3
BACKUPSERVERUSER=limitedUserOnServer
BACKUPSERVER=serverHostName
BACKUPCLIENT=`echo $(hostname -s) | tr '[:upper:]' '[:lower:]'`
BACKUPS=(
#localFolder,backupDestinationParentFolder
#/home,/media/md2/backups/clientname
#/var/www,/media/md2/backups/clientname/var
)
if [ "$1" != "--incremental" ] && [ "$1" != "--sync" ] && [ "$1" != "--help" ]; then
echo $0: missing operand
echo Try `$0 --help' for more information.
elif [ "$1" = "--help" ]; then
echo " Usage: $0 [OPTION]... [PASSTHROUGH OPTIONS]";
echo "";
echo " Mandatory arguments:";
echo " [OPTION]";
echo " --incremental add to the existing backups";
echo " --sync sync the live data with the existing backup";
echo "";
echo " Optional arguments:";
echo " [PASSTHROUGH OPTIONS]";
echo " Passthrough options are sent to rsync in this form from this script:";
echo "";
echo " for incremental:";
echo " sudo rsync -avz [PASSTHROUGH OPTIONS] $SOURCE $BKUPSRVUSER@ \";
echo " $BKUPSRV:$DEST";
echo "";
echo " and for sync:";
echo " sudo rsync -avz [PASSTHROUGH OPTIONS] --delete $SOURCE \";
echo " $BKUPSRVUSER@$BKUPSRV:$DEST";
echo "";
echo " * This makes it easy to do something like this:";
echo " * $0 --incremental \"--partial --progress\"";
echo " *";
echo " * Thus sending \"--partial --progress\" to rsync,";
echo " * making this script a little more interactive...";
echo " * read more via `man rsync'.";
else
if [ "$1" = "--incremental" ]; then
incremental_or_sync="";
elif [ "$1" = "--sync" ]; then
incremental_or_sync="--delete";
fi
for BACKUPS in ${BACKUPS[@]}; do
SOURCE=`echo $BACKUPS | cut -d',' -f1`
DESTINATION=`echo $BACKUPS | cut -d',' -f2`
echo
echo "# starting backup"
echo "# from: $BACKUPCLIENT:$SOURCE"
echo "# to: $BKUPSRV:$DEST"
echo
echo sudo rsync -avz $2 $inc_or_sync $SOURCE $BKUPSRVUSER@$BKUPSRV:$DEST
sudo rsync -avz $2 $inc_or_sync $SOURCE $BKUPSRVUSER@$BKUPSRV:$DEST
echo
done
fi
