The latest version of the Things task manager (0.9.2) incorporates synchronization and support for Leopard’s system-wide to-do’s! As has become the norm with Things, the new feature is extremely well thought-out, and in my testing so far it works flawlessly.
This was the big feature I was most expecting, since it gives me back the ability to carry some of my to-dos on my cell phone, with the ability to add new ones or check them as done.
Tags: GTD · Mac · Software
I am a big fan of Things, the very nice task manager from Cultured Code. I keep both personal and work-related tasks in it, and in my Mac I have two accounts, for personal and work-related use. This leads to me having to run Things on both accounts, while sharing the same database. Here’s how I do it:
- In one of the two accounts, I created a symlink from ~/Library/Application Support/Cultured Code into the corresponding directory of the other account (my two accounts are named “dza” and “zamboni”, and I created the symlink in “zamboni”:
zamboni% cd Library/Application\ Support
zamboni% ln -s ~dza/Library/Application\ Support/Cultured\ Code .
This makes Things access the same files regardless of which account uses it.
- Make sure that both accounts can read and write from that directory. In my case, both my accounts belong to the “staff” group, so I simply give the files group-write permissions (you have to do this from the account where the original files are, or from root):
dza% chgrp -R staff ~/Library/Application\ Support/Cultured\ Code
dza% chmod -R g=u ~/Library/Application\ Support/Cultured\ Code
- You have to make sure Things is only run from one account at a time, to avoid them overwriting each other’s changes. To automatically achieve this, I wrote a small script that kills Things if it’s being run by someone else and then runs it in the current account. Simply killing the process is a bit crude, but Things seem to process the signal properly, I have never lost any data by doing this. Here is the script (I saved it as /usr/local/bin/things_launcher):
#!/bin/bash
# If it’s running as any user other than me, kill it
if ps axuwww | grep Things | grep -v “^$USER”; then
sudo killall Things
sleep 1
fi
# Now run or activate it
open -a Things
(note: this will only work if you have set up sudo on your machine to execute commands without asking for your password - I am still figuring out how to use the standard authentication dialog in OSX)
- Now for the final touch, I used Platypus to create an Application wrapper around my script, so that I can run it using Quicksilver. I named it “Things wrapper”, and you can download it here (or you can create your own using Platypus). I gave it the Things icon, but maybe someone with more artistic talent can come up with a better, more representative icon…
- That’s it! Just run “Things wrapper” instead of Things, and it will automatically kill other copies of Things, and run it in the local account. If you have it already running, it will simply activate it.
If you find this useful, or if you have any feedback, I would love to hear about it.
Tags: GTD · Mac · Software · Tips & tricks
In one of my private blogs, I use the excellent IImage Gallery plugin to show photographs. After the upgrade to Wordpress 2.5, all of the posts with galleries started failing by showing the message “There is no gallery in this post”. After puzzling about it for a while, I realized that this plugin uses the same [gallery] tag used by the new built-in gallery feature in WP 2.5, which is causing a conflict. Fortunately, IImage Gallery also allows using <gallery>, with angle brackets, which is not intercepted by WP. To change all the posts to use the alternate tag without having to edit each post by hand, I used the following command from the MySQL command line:
update blog_posts set post_content=replace(replace(post_content, '[gallery]', '<gallery>'), '[/gallery]', '</gallery>') where post_content like '%[gallery]%';
After this, all the posts worked correctly again!
Tags: Blogging · Tips & tricks · wordpress
Here’s a simple one-liner I came up with to remove all HFS+ extended attributes on all files and directories below the current one in Mac OS X. Useful before creating a tar file that will be shared with non-Mac users (tar in OSX will create additional “resource” files to store extended attributes, which when untared on a Mac will be correctly reinstated, but in other systems will leave spurious hidden files all over the place).
for i in $(ls -Rl@ | grep '^ ' | awk '{print $1}' | sort -u); \
do echo echo Removing $i ... >&2; \
find . | xargs xattr -d $i 2>/dev/null ; done
The space after the caret in the grep command is produced by typing Ctrl-V and then Tab, to insert a Tab character.
Tags: howto · Mac · Tips & tricks