For different reasons I have many different Google accounts and wanted to merge them all into one Google Apps for Domain account. I also wanted to upload email from the past years to that account.
I’ve tried before to move a lot of messages between Google/Gmail accounts by just dragging the messages from one IMAP account into another (using a regular IMAP client such as Thunderbird or Mail), but it never works for a lot of messages. Then I found out about the Google Email Uploader tool, and gave it a try.
My first attempt was to use the Mac version of Google’s Email Uploader and just upload all messages I had downloaded in my local OS X Mail setup. The upload was supposed to take around 18 hours and I tried twice but both times, the uploader seemed to get stuck on some message(s).
I downloaded the source for the app and tried to figure out if I could patch the app to make the work easier. But instead of digging through all code, I thought I should give the Windows version a try instead. It has been around for a longer time and therefore probably a bit more reliable.
So I set up Thunderbird in my Windows installation (running VMware Fusion), and downloaded all messages from my IMAP server, and then uploaded them using Google Email Uploader for Windows. Everything went smooth and took about 20 hours.
For the next batch I imported the messsages into Thunderbird for Mac and then used the uploader tool for Mac. This time it worked great (but was fewer messages).
So, lesson learned: Try to import the messages into Thunderbird if the uploader get stuck when uploading from Mail.app. If that doesn’t work, try the Windows version.
Until now I’ve been creating todos in Things from Mail messages in OS X using the quick entry built into Things and the “autofill” feature. But I didn’t like that it, by default, created the todos in Things’ Inbox and that I had to manually select text in the mail message to get it as notes (which is important when using Things on your iPhone/iPad when the link back to the mail message doesn’t work).
Instead here’s an AppleScript which will take the selected message(s) and automatically create one task for each email in the “Next” focus in Things. It will then archive the mail messages and show a Growl notification. The todos in Things will get tagged with the “Reply” tag (which in my setup is a subtag of “Email”).
The script is a modified version of the one found here. I also put the script in an Automator action like described in the article so you can assign a shortcut key to it without including third party software.
Before upgrading to Snow Leopard I had a QuickSilver trigger (⌃⌥⌘M) to open the currently selected file(s) or folder(s) in TextMate. It was setup as a QuickSilver trigger using the Proxy Object “Finder Selection”. Too bad it doesn’t work for me in the later QuickSilver versions and/or Snow Leopard.
I missed this trigger so I made a 10.6 Service to accomplish the same task:
Run Automator and select “Service” from the template chooser.
Select “Files and Folders” from “Finder”
Find the “Open Finder Items” action from the left pane and select TextMate as the application.
Save the service in ~/Library/Services. I called mine “Open With TextMate”
To run the service from the keyboard, run “System Preferences” and select “Keyboard”, then select “Services” in the left menu and locate the “Open With TextMate” service on the right side. Add a keyboard shortcut (I choose the same as I’m used to, ⌃⌥⌘M).
Lets say you have an extra computer at home which can be used to download Linux distros using Transmission on Mac OS X. Here’s how you can let the computer iChat you when a download is complete.
Sign up for a new iChat screen name and add your normal user as a buddy.
In Transmission, open Preferences
→ Transfers and set the folder for incomplete files to something different than the “Default download location”.
Start Automator (in /Applications) and create a new workflow
Add the “Run AppleScript” action and paste in this code (replace YOURBUDDY with the scree name of your own iChat account:
Save as a plugin and choose “Folder action” in the “Save As” dialog. Select the folder you setup Transmission to use as the “Default download location”.
Done! The script should now send you an iChat message whenever a new file is added to the folder.
I created this setup a pretty long time ago and still use it, but these days together with a Growl notification plugin that also twitters me when the download is complete.
If you’d ever need to use the screencapture command from a scheduled job (like launchd in OS X) or from a SSH session, you might find out that it doesn’t allow you to do that since you’re not the logged in user.
To work around that, run the scheduled jobs as root and exec screencapture like this instead:
I really like the MissingDrawer plugin for TextMate but it stopped working for me after upgrading to Snow Leopard. I recompiled it for 10.6 and now it works again.
Seems like the plugin doesn’t work very good after all. It makes TextMate stop responding to modifier keys (command, shift etc) so my recompiled version isn’t very helpful right now. I’ll investigate and try to fix it.
Just a quick note that RailsTerm, my AppleScript to automatically open the tabs (in OS X 10.5 Terminal) needed for Rails development), is bumped to version 0.3.
Since I use Passenger (mod_rails) and Passenger.prefpane for my local development the script will now auto detect the virtual hosts available on your system (in /etc/apache2/passenger_pane_vhosts/*.vhost.conf). I use the script daily and is a real time-saver for me.
By default, Spotlight will index all your mail Mail.app messages and attachments, even those in your Trash and Spam folders. To exclude these folders from the Spotlight results you can add the folders to the “Privacy” section of the “Spotlight” pane in “System Preferences”.
I’m using IMAP on Gmail so your path may be a little different if you’re on another setup. The paths I choose to exclude are
I’m quite happy with my Terminal.app setup right now for the Rails projects I’m working on and wanted to share the bits and pieces I use.
First, I found a SIMB plugin for Terminal that’ll show the tab’s title in the tab instead of the running process. I use the plugin with a simple title helper in my .bash_profile to set the title simply.
function title () {
unset PROMPT_COMMAND # more on this later
echo -ne "\e]0;$1\a"
}
# Usage:
# title 'my title'
function set_window_and_tab_title {
local title="$1"
[[ -z "$title" ]] && title="root"
echo -ne "\e]0;${title}\a"
}
PROMPT_COMMAND='set_window_and_tab_title "${PWD##*/}"'
That’s why I unset PROMPT_COMMAND in my title function, so it won’t auto update when I choose to set it manually using the title function.
The last piece is an updated version of my old Rails Term-script for iTerm which has been updated (and improved) for the Terminal in Mac OS X Leopard instead of iTerm.
It will open the tabs I usually use when doing Rails development and set the title of each tab using the above mentioned functions. You need to enter you projects root directory and the projects you want to have easy access to. I’ve added some comments to the AS code to help you out.
Looks like I’m nottheonly one having problems with my iCal to/from iPhone syncing.
After trying almost every possible solution I found in various forums and google, I finally came up with a fix that works for me. Like many others, I suspected the subscribed calendars were the problem and the iPhone synced fine after removing the subscriptions (including the built-in Birthdays calendar). But I have some subscribed calendars I want to have in iCal and found out that the cannot live in a group. I used to have a calendar group (File → New Calendar Group) for my “noisy” calendars so I could hide them easy with just one click. Looks like iCal/iPhone/Sync/OSX/whatever doesn’t like this and syncing stops working when using the group.
Since the iPhone lacks the possibility to export tasks from iCal I made hack/script to export all tasks from OmniFocus to a Safari bookmark and therefore be syncable with Safari.
I never really liked iTerm because of slow redrawing, ugly text anti aliasing and not reflowing text when resizing the window.
After reading some interviews on a Rails site today and saw that a lot of people are using iTerm i wanted to give one more try (because I’d really like a tabbed terminal).
It has improved a lot the latest months and seems really usable now. To make Rails development easier, I hacked together a small AppleScript what will ask you for the path to the Rails directory you want to use and then open four new tabs with Server/Mongrel, Console, Autotest and the directory itself. I thought it could be useful for others as well so here you go:
Save as an .app and run from Quicksilver:
global rails_dir
tell application "iTerm"
activate
set rails_dir to the text returned of (display dialog ¬
"Please Enter the Path to Your Rails Directory" default answer ¬
"~/Projects/" as text)
if (count of terminal) = 0 then make new terminal
my open_tab("Server", "&& ./script/server")
my open_tab("Console", "&& ./script/console")
my open_tab("Autotest", "&& autotest")
my open_tab("Rails Directory", "")
end tell
on open_tab(title, command)
tell application "iTerm" to tell first terminal
launch session "Default"
tell last session
write text "cd " & rails_dir & command
set name to title
end tell
end tell
end run_command