Website rsync Backups the Time Machine Way

Continuing my recent rash of stupid coding, after Spellcheck the Shell Way, I decided for Website rsync Backups the Time Machine Way.

For a few years now, I’ve been using a bash script I bodged together that does incremental-ish backups of my websites using the rather formidable rsync. This week I’ve been working for, helping get‘s WooCommerce shop from Trabant to Hoonage. Which required repeated backing up of the entire site and database, and made me realise the shoddiness of my original backup script.

I thought, “Wouldn’t it be awesome, instead of having to make those stupid ‘backup.blah’ folders, to let the script create a time-stamped folder like Time Machine for each backup, and use the most recent backup for the rsync hard links link destination?” Fukken wouldn’t it, eh?

Creating time-stamped folders was easy. Using the most recent backup folder — which has the most recent date, and in standard list view on my Mac, the last folder in a list — was a little trickier. Especially because once a new folder was created to backup into, that previously most recent was now second to last. tail and head feels hilariously bodgy, but works? Of course it does.

Bare bones explaining: The script needs to be in a folder with another folder called ‘backups’, and a text file called ‘excludes.txt’.  Needs to be given chmod +x to make it executable, and generally can be re-bodged to work on any server you can ssh into. Much faster, more reliable, increased laziness, time-stamped server backups.

# ---------------------------------------------------------------
# A script to manually back up your entire website
# Backup will include everything from the user directory up
# excludes.txt lists files and folders not backed up
# Subsequent backups only download changes, but each folder is a complete backup
# ---------------------------------------------------------------
# get the folder we're in
this_dir="`dirname \"$0\"`"
# set the folder in that to backup into
# cd to that folder
echo "******************"
echo "cd-ing to $backup_dir"
echo "******************"
cd "$backup_dir" || exit 1
# make a new folder with timestamp
time_stamp=$(date +%Y-%m-%d-%H%M%S)
mkdir "$backup_dir/${backuppath}supernaut-${time_stamp}"
echo "created backup folder: supernaut-${time_stamp}"
echo "******************"
# set link destination for hard links to previous backup
# this gets the last two folders (including the one just made)
# and then the first of those, which is the most recent backup
link_dest=`ls | tail -2 | head -n 1`
echo "hardlink destination: $link_dest"
echo "******************"
# set rsync backup destination to the folder we just made
backup_dest=`ls | tail -1`
echo "backup destination: $backup_dest"
echo "******************"
# run rsync to do the backup via ssh with passwordless login
rsync -avvzc --hard-links --delete --delete-excluded --progress --exclude-from="$this_dir/excludes.txt" --link-dest="$backup_dir/$link_dest" -e ssh "$backup_dir/$backup_dest"
echo "******************"
echo "Backup complete"
echo "******************"
# info on the backup commands:
# -a --archive archive mode; same as -rlptgoD (no -H)
# -r --recursive recurse into directories
# -l --links copy symlinks as symlinks
# -p --perms preserve permissions
# -t --times preserve times
# -g --group preserve group
# -o --owner preserve owner (super-user only)
# -D same as --devices --specials
# --devices preserve device files (super-user only)
# --specials preserve special files
# -v --verbose increase verbosity - can increment for more detail i.e. -vv -vvv
# -z --compress compress file data during the transfer
# -c --checksum skip based on checksum, not mod-time & size – SLOWER
# -H --hard-links preserve hard links
# --delete delete extraneous files from dest dirs
# --delete-excluded also delete excluded files from dest dirs
# --progress show progress during transfer
# --exclude-from=FILE read exclude patterns from FILE – one file or folder per line
# --link-dest=DIR hardlink to files in DIR when unchanged – set as previous backup
# -e --rsh=COMMAND specify the remote shell to use – SSH
# -n --dry-run show what would have been transferred

Spellcheck the Shell Way

I was reading this awesome book (about which I shall soon blog) and there was this moment of, “Fark! What a brilliant line!” like I actually said that ’cos it was so good, followed by, “Fark! Spelling mistake of spacecraft’s name!” And I thought wouldn’t a good way to deal with spellchecking (besides my favourite cmd-;) be to take the entire text, do something fancy command-line to it, and output all the words alphabetically by frequency. Then you could just spellcheck that file, find the weird words, go back to the original document and correct the shit out of them. So I did. Brilliant!

# take a text and output all the words alphabetically by frequency
# spaces replaced with line breaks, lowercase everything, punctuation included (apostrophe in ascii \047)
find . -name "foo.txt" -exec cat {} \; | tr ' ' '\012' | tr A-Z a-z | tr -cd '\012[a-z][0-9]\047' | grep -v "^\s*$" | sort | uniq -c | sort -bnr

Yes, many things to blog …

Since returning from Zürich, I’ve mostly been embedded in Final Cut Pro X, turning four very different performances of Mars Attacks! into something approximating a single version. It’s not the kind of work that can be said to have one authoritative performance, but the video as document will become that de facto. Much forgetting of old versions of Final Cut also, as the X release is so different it’s just a hinderance to dredge up memories of how it works.

And, buying of cycling gear, so now I look the part when I go careening through the forest at speeds best not thinking about the consequences of a rapid stop with. I found a very nice pair of cycling glasses that dim when exposed to UV light – photochromic lenses! Also amazing how little I squint when the glare is cut out, and how delightful the absence of insects in my eyes is. I am enjoying cyclocross very, very much lately.

Also climbing, with the discovery earlier this year (I think) of a bouldering hall of massive size a mere 10 minute lazy bike ride away. My climbing ability has plummeted – it was never especially good on indoor holds which tend to the overhung; far from my preference of thin, balance-y edges on large amounts of vertical granite. Still, it’s incredibly inexpensive, and it’s delightful to be regularly hauling myself up stuff.

And reading! Which I was most lazy with this year, being distracted by the internet and other things, and my late-evening focus too scatty and distracted to apply itself to even medium stretches of reading. I have many good books though I’ve been enjoying lately, which shall appear here soon-ish.

And! Once more working with Das Helmi, this time for the Dahlem Museum (ha! all my museum-ing turns out to be for a purpose!): a project on Adrian Jacobsen, who went to Northern Canada and Alaska in the 1880’s and acquired a vast number of artefacts from the Eskimos, Aleut, Yupik, and Inuit. It seems to have percolated memories of things I learned in Canada … it’s an unexpected direction for me, reading beyond a cursory level on the First Nations in the North, and a fascinating one also, not the least because mountains, snow, and glaciers everywhere.

And! Rehearsing with Dasniya for a performance in Heppenheim in July!

Which is not all that’s going on, but I think that’s enough for the moment. And I shall endeavour to blog with consistency in the coming weeks also.

Mavericks? I would have called it 10.9 Anarchists myself

Mainly it was because iCal and Address Book lose that utterly vile skeuomorphic stitched leather look, and also realising my afternoon was slightly free, and I’d downloaded the 5.31GB of OS X 10.9 Mavericks, and I was dead lusty for all the new stuff, so 40 minutes later or so I was booting on my venerable (but definitely alive) 2008 MacBook Pro into the first non-cat OS in 12 1/2 years. (Actually a bit more because I was messing around with pre-release versions even before that).

And that was easy, wasn’t it? (Besides needing to reindex my Mail which caused 20 or so emails from years ago to try and send themselves until I mashed the ‘off’ button for Wi-Fi). Tabs in the Finder? Nice! Not sure I’ll use Tags, mainly due to having a decade of junk on my laptop already organised. iCal’s new look and the Day view are especially pleasing (though adding notes is still not entirely possible with keyboard). Safari’s Inspector has been given a new set of clothes. iBooks! Awesome! Really brilliant that it’s finally on Macs. And Maps! My short play with it hasn’t revealed whether it can replace my current map choice for tracking my training rides, but the 3D view of around here makes the trees look like Krynoids from Doctor Who: Seeds of Doom.

Important stuff like Apache, PHP, and MySQL worked almost immediately: the former just needing its httpd-vhosts.conf file updated; the mid needing the former’s httpd.conf edited to load the PHP module and the last working without a problem. And that is the easiest setup for my localhost environment ever.

I also had to buy Little Snitch, which no longer worked, but considering how much I use it, it’s €30 very well-spent – especially considering 10.9 was free. Oh, and iWork, Aperture, bunch of other stuff also updated. Pity I can’t afford one of the new MacBook Pros.



Along with upgrading my laptop to 10.6 on the weekend (I always, always do these things last at night, and know I’m going to break something and so telling myself, “Don’t do it, you’ll mess something up!”, “No, no, it’ll be alright… I’m awake this time…”) and breaking my AirPort, sundry plugins and my SQL installation, I gained 15gb of space, extra, extra fastness, (especially for opening encrypted sparse packages), a feeling of accomplishment, tiredness from staying up till 4am, and mousepath.

I also began cleaning out 8 years of bookmarks, and was rummaging through my net-art folder when I found Anatoly Zenkov’s small piece of Java code (download here). Much reminiscing on early 2000’s code-art…

So, here is around five hours of my day today, compared to some it’s quite light, mainly because I use the keyboard so much and was mostly coding.


blog stuff

I shouldn’t be on my laptop today; I am bad. Working around 12 and sometimes up to 16 hours a day since the start of February without a day off is stupid. It’s a habit of mine and ends with me burning out and getting sick. Which I did a little over a week ago, and struggled through work last week by coming home and going to bed around 9pm. And there is always as much work as hours I will give.

So I said no computer work this weekend, and spent a beautiful, warm and sunny day in Kreuzberg yesterday cycling about, lying am Engelbecken after ballet with D (who is not Daniel, but I am always uncertain when or if to introduce someone new on my blog…), and home later at dusk, my windows open full all day and some cheese and bread and a rather irresistible Ayurvedic tea that reminds me I like mountains and cold places… sleep…

Instead, I decided over breakfast to redo my blogroll. As usual since last time some have come, some have gone, some I’ve lost interest in… Some new categories, as always imprecise needed to be made, splitting Science & Humanities into Anthropology, Astronomy, Language as well, somehow reflecting more closely my news feeds (which you can download here).

New arrivals, many I’ve been reading for some time whom I am rather fond of (and whom are being added as I write because I keep remembering, ‘oh, I forgot blah!’)… enjoy the reading.

FLESH WORLD read while listening to sunn 0))).
guerilla semiotics, who used to be someone else and is still one of the most interesting theatre culture writers around.
My Big Backyard queer farm life in the sub-sub-tropics.
Buck Angel”s Blog! possible one of my favourites right now, for his Porno for Pyros video if nothing else.
Sugarbutch Chronicles butch trans* dyke porn-lit.
Let them eat pro-sm feminist safe spaces BDSM critical theory (for wont of a better description).
Shenzhen Noted who used to be Shenzhen Fieldnotes.
tang dynasty times, one of my utter all-round favourite blogs these days.
an imperfect pen, more China/Asia anthropology.
Paper Republic contemporary Chinese literature and translation.
Shanghai Scrap fascinating for me documenting of China’s scrap industry.
earlyTibet, almost a pair with tang dynasty times.
Hazaristan Times, one of the few Afghanistan blogs not COIN.
Cabinet of Wonders mmm blogging on the Age of Enlightenment.
Material World visual culture anthropology.
Neuroanthropology a field I seem to be reading a lot in during the last year.
HiBlog: HiRISE Team Blog from the satellite mission, beautiful.
Mars and Me a daily blog of one of the Mars rover drivers from the mission start five years ago.
Philosophy’s Other current philosophy stuff.
Feminist Philosophers a philosophy blog I’m fond of.
The Oyster’s Garter Oceanography, my new fascintation (along with volcanoes again, but have yet to find many blogs on that.)


Oh, and one more in a category I read a lot but never seem to mention much:

i love typography mmm… fonts and design…

cookie monster

Yeah, I wouldn’t recommend doing this. It’s old. Probably doesn’t work anymore anyway.

I don’t like cookies so much. The persistent browser types, with expiry dates of 2031 that cause a trail of my identity to be left across Google and other sites. And I don’t like how poorly Safari manages them. Even a checkbox option would be better, to keep the ones I need or don’t mind and to delete all the others instead of manually having to go through them all.

SafariPlus used to do this perfectly, from within the browser, unobtrusively. But since 10.5 and Safari 3, it hasn’t worked. So I changed to Cocoa Cookie, a separate small utility. I had to go to my Applications folder to find it, but was still quick and… then it stopped working, it would open without the window showing, caused much weirdness with Safari’s cookies since the latest version and…

uuuhhh… annoyance.

I found a Perl script a couple of days ago. I suppose it could also be done in AppleScript, and should really learn how to write in that, but it’s rather perfect. Well it runs from Terminal also, and requires some editing, but…

use strict;
use warnings;
use File::Slurp;

### Edit this to your liking (put a pipe character between two words)
my $keepCookiesWith = "gaydargirls|culturedcode|supernaut|dreamhost";

### Put your OS X short username here (there should be a directory with the same name under /Users)
my $userName = "francesdath";

### ### ### Don't edit beneath this line unless you know some Perl
my $path = "/Users/francesdath/Library/Cookies/Cookies.plist";
my @date = localtime();
my $date = sprintf("%04d%02d%02d", $date[5] + 1900, $date[4] + 1, $date[3]);
my $cookies = read_file($path);
rename ($path, $path . "." . $date);

open(WH, ">$path");
print WH <<EOF;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "
<plist version="1.0">
while ($cookies =~ m#(\s*<dict>.+?</dict>)#gs)
my $cookie = $1;
if ($cookie =~ /$keepCookiesWith/)
print WH $cookie;
print WH <<EOF;

close (WH);

So, copy it into your favourite text editor, save as something memorable like ‘’ and put it somewhere out of the way but not forgettable. You can add new cookies to be saved based on any attribute that appears in the Safari cookie window. I tend to use the domain names, like ‘macosxhints’, though I have one Google cookie I like to keep, with the name ‘PREF’, so I added that also (unfortunately YouTube has one with the same name…). Set the ‘username’ to your Home Folder (probably what appears in the SideBar in the Finder), and then set ‘my $path = “”;’ to ‘/Users/yourhomefolder/Library/Cookies/Cookies.plist’ which is the path to Safari’s cookies file.

Then open Terminal, and change to the directory where you’ve put it, change the permissions to 755 and then run it (quit Safari first).

Well like this:
cd /drag/the/folder/containing/the/script/into/Terminal
chmod 755

Open Safari, look in cookies in Preferences and the ones you like should still be there. It makes a backup of the cookies file, so at worst nothing is irreparable. And it makes you look all UNIX by opening Terminal.


women in mac

I was watching Welcome to Macintosh a few nights ago, becoming engaged in a mindless indulgence in Apple, I do remember these old things… It was though, a very male affair. Lots of tech geek guys. There was one woman and she I do remember… or rather I remember her work… or rather when I think of Macs it’s her I’m thinking of.

When OSX 10.2 came along with the new startup screen grey on grey bitten Apple logo monotone, much discussion ensued about how to hack the boot loader and replace the apple with the old, friendly pixel art smiley computer Happy Mac. Generally a deeply unsettling process involving editing hex addresses and .raw files, run length encoding and exclamations of “holy crap” when it worked instead of trashing your entire system.

But what of Happy Mac? And Moof the Dogcow? Bomb? Sad Mac? Watch cursor and page of text and font suitcase, floppy disc and all the icons of OS9 which were OS8 and 7 and… I’d never given it too much thought, and certainly not enough to imagine they were penned by someone more-or-less computer illiterate at the time (mostly due to lack of gui interface) using graph paper and filling in the squares.

Susan Kare whom I doubt I’d heard of until a couple of weeks ago is possibly the biggest influence on my design aesthetics and responsible for my emotional love affair with the Apple interface. Strange to look at OSX 10.5, the Aqua design, and then return to OS9 or even earlier and see her hand is indelible still.

And the other, whom I am nearly certain I’d never heard of, though I recall the ripples of her decisions, at least as somewhat recent history by the time I discovered computers. She was responsible for trashing Copland, the operating system that was to replace OS7, the purchase of NeXT and their operating system to replace it with, what became OSX, and the return of Steve Jobs, who promptly ridiculed and demoted her.

Ellen Hancock, without whom I would not be using OSX. Would Apple still exist? OSX was somewhat a torment to use until 10.3, at first there wasn’t even network or printing, swarms of kernel panics, much horribleness, but within this was… mmm like seeing the future. It was a special moment when I got my first laptop, a PowerBook G4 550mHz and 256Mb of RAM (20gig harddrive!) but the only question was, “Does it have OS ten?” … “uuuhhh… yeah…”

Why did I decide to write this?

It’s Apple’s 25th anniversary, and I’ve been reading Macworld’s celebrations. Of their 20 most important people in the history of the Mac, only two are women: Sarah Kare and Ellen Hancock. And in Welcome to Macintosh Sarah was the only woman out of a cast of guys to receive any attention. But maybe it’s because the tech industry is so heavily skewed to being a guy place, or maybe Apple has been a bunch of guys. But…

When I read about the history of Mac, it’s Steve Jobs, Johnathan Ive, Stephen Wozniak, others too, even Bill Gates. Yet what I loved Mac for before OSX was Moof and Happy Mac and the interface, and what I love now is OSX, that it exists, my interaction with an operating system. I feel a little stupid somehow to say I want to write about these two people who have had a profound effect on me precisely because they are women. To do so is important so as to remember by saying, that there are women who have had such a unique extraordinary influence on Macs, on technology, on science, on culture and it’s really good to have someone to look up to.

Oh, and Sarah made the Apple Mac team Pirate Flag so of course I adore her.

susan kare
susan kare
ellen hancock
ellen hancock
susan kare apple icons
susan kare apple icons
susan kare apple pirate flag
susan kare apple pirate flag


I started talking about Things by saying,

For a very long time my way of organising bits and pieces was, for short things in a hurry creating a new folder and sticking the information in its name, or for longer a note in TextEdit, or dragging bits of text or links or whatever to the desktop, to end up being dealt with later, or accumulating in folders called ‘detritus’ and ‘blllrrrblllrrr…’. Somewhat adequate, but not particularly. And as I quite enjoy the interplay between iCal and Mail (and my phone), I’ve always wanted something a little more… ummm… useful.

… and then veered off to talk about MailTags and MailActOn for quite a bit, before deciding to write a completely separate post on Things

I’ve tried various project or task management software before, but Merlin which I would unhesitatingly use for managing projects is completely not appropriate for daily blllrrr… stuff. And a lot of the ethos of GTD which underlies the practical workings of many applications is a bit too dogmatic for me. Or failing that causes so much time to be spent in the Getting, that things don’t get done. Getting Busywork Done might be a better name.

So I decided anyway, bored while erotikputzenarbeitsdurchsuchend, to play a little with Things and see if it was anything I could find useful. I’m not in the habit of idly playing with software too much, and Things is barely out of beta and very much still in development with many additions yet to occur. But what’s more important for me is how it feels to use. And it’s rather pretty.

Familiar enough to be Mac-like with a sidebar containing five general areas, Collect, Focus which is split into Today Next Scheduled and Someday, then Active Projects, Areas, and Logbook, Trash, then a main window which lists things either individually or combined into a project, or separately for recurring scheduled items. mmm, rather difficult to explain the interface, because it’s more in how I use it that it finds itself.

While it’s not immediately apparent visually, Areas are like overarching projects and Projects are sub-projects within an Area. Though it doesn’t have to be used like this, I find the nesting of projects suits how I think and also comes from my use of Merlin. Then individual items, To Do’s, tasks can be created or stored in the Inbox or Today or Next (or Scheduled for later, or Someday for unlikely to be done before spring), which I think of as items in a project.

So for an example of how I use this, I have an Area called Computer, which has two Projects in it, Blog and Computer Maintenance, several uncategorised items and one recurring task, a weekly scheduled reminder to back-up my data. Items that will appear in Today have a yellow star and a bar showing how many days left until due, which becomes red when it says, ‘! day left’. Projects have a blue bar at the left end showing how many items are contained, and scheduled items are set apart and below, indented with a dropdown menu on the left for the schedule. Weirdly this also puts a task in the main list of the project…

Knowing my tendency to let things unravel and not be attended to, I assign due dates for everything. Things does this firstly with a calendar, and secondly with an option to Show in Today either on the day or as many days previous as I like. Or I can place a project or To Do in Scheduled and set a date when it becomes active. Up until then it’s hidden from my default view.

The difference between throwing files and folders all around, or putting them as iCal Events, and having an ordered list of stuff is that I can have an active, timed flow. These things need to be done now, these things soon, don’t worry about those and these are deeply overdue which is why you are unemployed and broke.

Tagging is something I first started with on my blog, rewriting a script so blogging client ecto’s Keywords would build a list of tags to search my blog with. Then of course was MailTags. I rather like the idea though am torn between the need to tag and the need to physically group stuff together.

Things tags are fairly standard, but the ability to build nested tag groups, say a main tag called Location and sub-tags, Home and Away… is very useful, and also the built-in groups for priority, time, and difficulty. I especially like – though am lazy in using – filtering via multiple tags and sorting lists by tags, and that Projects and Areas can have overarching tags that are applied to their contents.

The difficulty in using iCal for everything for me is that I have things which happen at certain times I’d like to do, such as dance class, and things which can be done whenever this week or in the future. Supposedly the latter are To Dos, but I don’t ascribe to a clear delineation between the two. Being freelance means most of my work is done when I decide, rather than at fixed, immutable times. A genuine To Do for me would barely be worth registering as I tend to remember stuff quite well. It’s more about the organising of that stuff that I’m concerned with. So in a way Things is just making neat piles out of already serviceable mess.

Largely I’ve avoided iCal’s To Do’s. They are messily implemented, difficult to edit and view, and… uuhhh… enforce the annoyance of Event / To Do hegemony, a distinctly American obsession with labeling and ordering and structuring even if all this kills whatever life there was in living.

Things more-or-less is an iCal To Do editor. Or it helps me to think of it as that. I create Areas that correspond to iCal Calendars, and within those Areas, various Projects where the actual To Dos that appear in iCal mostly for me are found. Well, that’s if you have iCal syncing turned on for it.

In Things preferences, by choosing Custom from the list, it brings up all my iCal Calendars, in pretty colour too. Then I can choose a calendar to sync with either a group of tags or Projects and Areas, or both. Under Options I can show the tags in the iCal Todo, and also the Projects in the To Do Title. All of this turns a To Do for ‘Back-Up Weekly’ into ‘Computer Maintenance: Back-Up Weekly @Computer@Cleaning’, the first part being the Project, the last the tags. And this with a weekly scheduled recurrence.

Which is nice.

Mainly because I put off backing up until it’s been a month or more…

Things’ New To Do or Quick Entry are quite straightforward, a Title, Tags field, notes Due Date and Where to place it, in any of the Projects, Areas or Focuses. Possibly too simple. Setting an alarm would be nice, or setting a time rather than just a date. But the notes section is as good or better than iCal. Dragging any kind of file or folder into this area creates a link. Well, one that doesn’t remain working if the file is moved but that might just be my overly abused system.

What I really like, and why Things will likely remain on my laptop is I can assign a key combination, in my case command-control-z which brings up the Quick Entry pane in any application and stays there while I copy useful stuff into it.

And for MailTags, which is where this all began, this is quite excellent.

One of the things you can do with Mail Rules is run an AppleScript. One of the things you can do with an AppleScript is tell Applications to do things.

So when I press my MailTags ‘Things Create Task’ keys, control-z, it runs an AppleScript which brings up the Things Quick Entry pane then goes through the email and fills the previously mentioned fields with information from the email, MailTags tags included, and a link to the email itself. Find the script here. There’s other too for non-MailTags users.

Other than remembering to change my key commands, and upgrading MailTags to the latest version because of some weirdness, using this is so simple. I made a folder called Scripts in my ~/Library/Mail, to keep everything together and now have a rather serviceable and useful discussion between Mail and Things. Which makes me want MailTags to do the same for New Events.

How does it look on my phone?

I don’t have an iPhone, (Things also exists as an iPhone app) but my now venerable Sony Ericsson k750c does a fairly good job of keeping things synced between iCal Events in the calendar, Adress Book in the… uhhh contacts, and To Do’s buried in Tasks. Just as they are formatted in Things and iCal as ‘Project: description @tag’, so do they appear on my phone, with the addition of red ‘!’ for things important or late.

Some improvements I would enjoy very much, and I suppose a philosophical musing on applications making you do things in certain ways and imagining how an application might be built that I could drag stuff around to make it work the way I wanted… Nested Projects are hugely important. Syncing with iCal Events, and I don’t care how much this is not of the ethos of Getting Things Done, but I suppose if you want to limit potential users to autocratic geek-zealots then… I mean to say even Merlin has a calendar view, and no it’s not doubling up on applications. To have the same finesse over Events as Things gives over To Do’s would be really nice. I’d still use iCal, it just means how I might do things more coherently could change.

The Logbook needs work, where finished stuff is archived. This mainly though is a slight need for the interface to develop more. And some key commands are… mmm unpredictable. And some general ill-defined strangeness… The database is in my favourite XML, which makes for ease of doing other stuff with it, like web-based task management for groups (People currently suck, a placeholder rather than an AddressBook-synced useable aspect), and reliable back-ups (yet to turn up in the file menu). Though the forums, wiki, blog, twitter and developer contact are all rather special and that makes up for a lot.

I realised while writing this that MailTags has long been a part of my daily computer use, and Things is still… we are coming to terms with each other. That I can look at it now and see what I need to do tonight and tomorrow that is pressing, makes it undeniably useful,. And perhaps this is it. Anything that I take the time and care to put into Things is something that is important. I’m allowed to arrange my stuff in such fluid combinations and views that what remains important is this, not the application’s determination of what is. It makes use of iCal’s to Do’s, which I never really used, and if I really want, I can drag a To Do from the Items window in iCal into the calendar and make it an event… mmm mindless doubling up?

I guess also, would I take the time to learn another task manager, especially when none are as pretty to look at or use, to find if it was capable of my decidedly evasive habits?


things today view and quick entry pane
things today view and quick entry pane
things tags and nested tags
things tags and nested tags
things quick entry in mail with mailtags and applescript
things quick entry in mail with mailtags and applescript

mailtags & …

For a very long time my way of organising bits and pieces was, for short things in a hurry creating a new folder and sticking the information in its name, or for longer a note in TextEdit, or dragging bits of text or links or whatever to the desktop, to end up being dealt with later, or accumulating in folders called ‘detritus’ and ‘blllrrrblllrrr…’. Somewhat adequate, but not particularly. And as I quite enjoy the interplay between iCal and Mail (and my phone), I’ve always wanted something a little more… ummm… useful.

Actually, iCal and Mail don’t really talk to each other much, even in 10.5, and iCal has a revolting and clumsy interface design for viewing or editing Events and To Dos. And the To Dos are rather useless, better to keep them in the calendar to remind me of things needing doing.

But mostly useful enough that I manage with organising life and projects with these.

Except for my colourful messages. I can’t remember when I started using MailTags and MailActOn, but it’s been long enough I’d cry if it vanished. For several reasons it’s indispensable for managing my emails. I have six addresses, for various reasons, some for mailing lists only, some for blog stuff only, one that I know I can access anywhere. And then I have a multitude of reasons for sending or receiving, that I do need to refer to, like all the emails relating to monadologie, that are also not from the ANAT mailing list. And an endless list of white email headers does not agree with my decidedly visual approach to my laptop world.

Oh and I like doing almost everything through the keyboard also.

With MailTags, I have a bunch of keywords for common things, like ‘reply’ for messages I need to uuhh… reply to, and ‘jobs’ for when I am looking for erotik cleaning work, then I have a bunch of projects, for each of the works I’ve made, and a few other on-going things that I can group together. And each of these has a different pretty colour. Except ‘reply’, which is a garish, demanding yellow.

If I was to view the raw source of a message I’d tagged, I’d see something like this at the end of the header:
X-Mailtags-Version: 2.0
X-Mailtags: {
"mailTagsProject" : ["project monadologie"],
"mailTagsKeyWords" : ["to archive"]}
X-Keywords: to_archive
X-Project: project monadologie

Which is ummm… not especially astounding, except it means I can search from anywhere via Spotlight and find everything for monadologie, including all my emails.

Which is nice.

But mostly I love MailTags because of what it does that Mail and iCal don’t really do so well together. So, I have a calendar in iCal called ‘monadologie’ and it’s a rather astronomical shade of dark, cold blue. And I have a MailTags Project and Mail Rule with the same name and the same colour.

When I receive an email for something ‘monadologie’-related I need to do, like a meeting, firstly I tag the email, control-m, and it turns a delightful deep blue. This is done in the background by earlier creating a new Mail Rule in Preferences, that sets the colour and then tags for the message, and is controlled by MailActOn. Besides turning to arctic white of Mail’s inbox into something hallucinatory, I can find individual messages and create separate groups of messages just by looking at their colour (or sorting by Keyword or Project…).

If you like reading XML formatted Apple .plists, then in Mail’s MessageRules.plist this creates an entry which looks like this (minus sundry empty tags):

<string>project monadologie</string>

<string>Act-On: m | project monadologie</string>

Which looks a lot like the stuff in the message above. What it means is, I’ve created a Rule in Mail Preferences Rules pane with Description ‘Act-On: m | project monadologie’, which Performs the Following Actions ‘Set Color’ of ‘Background’ to ‘dark cold blue’ and Set MailTags Project’ to ‘project monadologie’. I’ve also (actually before I created this rule), created a Project in the MailTags pane called ‘project monadologie’ and because I’m obsessive, given it the same colour.

When I’m viewing a message and press the MailActOn Menu Key ‘ ` ‘ it brings up the MailActOn Menu and I tag the message by pressing ‘m’ (which is the ‘Act-on: m’ part of the above rule. Everything to the right of the ‘|’ is the name of the Project or Keyword in MailTags), or select it from the menu. Or I use command-m which does the same without bringing up the menu.

Now I have a more useful email. It relates to the project visually across my computer, it can be found in searches in Mail or Spotlight or in the Finder, I can make a Smart Mailbox for emails with those tags, and keep track of replies and priorities without having to sift through or rely on the inbox.

Then I add a New Event in iCal. I click (because I haven’t found a keyboard shortcut) ‘New Event’ in the MailTags pane and up pops a window where I enter a bunch of relevant stuff from the email, save it and a new Event in iCal is created with a link to the email, and a note in the MailTags panel allowing me to edit or view the calendar entry.

If I were to look at the raw source of my message again, it would now look like this:
X-Mailtags-Version: 2.0
X-Keywords: to_archive
X-Project: project monadologie
X-Mailtags: {
"mailTagsICalEvents" : [{
"location" : "berlin",
"uuid" : "26E471BE-2722-470A-8294-479666921995",
"notes" : "Lie about my age",
"title" : "Daniel Audition",
"endDate" : "@2009-01-17 21:00:00 +0100@",
"iCalReferences" : {
"B34ED321-81A0-4710-BF44-4E3AF50D5224" : "D4471F6C-3F26-4593-AA0A-7FF510F31AC4"},
"alarms" : [{
"triggerInterval" : -5,
"type" : "soundAlarm"}],
"calendar" : "monadologie",
"startDate" : "@2009-01-17 20:00:00 +0100@"}],
"mailTagsProject" : ["project monadologie"],
"mailTagsKeyWords" : ["to archive"]}

All of which you don’t need to know, except when I sync iCal with my phone, I now have all the information from my Mail message in a calendar event, in this case with an alarm, without having to leave Mail.

Then if I want to I can have a smart mailbox with the criteria set to include only mails with the tag ‘reply’, or search for emails with extra ‘Keywords’ and ‘Projects’ items now in the search toolbar. Or do other fun stuff. Like make new tasks in Things using all MailTags and AppleScript.

Mostly it’s about tagging my email with useful information that allows me to deal with things both within Mail and across my computer, in iCal or Spotlight or wherever I happen to need to group arbitrary files and folders together under a common project or task or search. And it does this without needing to physically assign a folder or location for them. For someone who uses the keyboard to get around, it’s a joy. I can archive messages to folders and tag them on the way without drag-and-drop, and find them again, irrespective of where they’ve ended up. I can quickly get through a queue of new mail, filtering it into my abstract collection of projects and keywords so I know what I need to do with it. And I get to look at an inbox full of pretty colours.

It would be nice if there were more keyboard shortcuts, say for making a New Event. Also it would be handy if it automatically populated a new event with relevant information from the email. I suppose I could write an AppleScript for that also, though. And admittedly I don’t really use this to its fullest ability either.

Well, this post was really supposed to be about Things as well, but I’ve realised in writing it properly deserves its own post, just as MailTags has suddenly got its own.

mailtags keywords and projects
mailtags keywords and projects
mailtags act-on and mail rules
mailtags act-on and mail rules
applying a new rule and mailtags panel
applying a new rule and mailtags panel
mailtags pane for editing a new event for ical
mailtags pane for editing a new event for ical