Migrating Rules From Microsoft Exchange to Google Apps

Recently I was part of transitioning the email system of a 20+ employee business off of a Microsoft Exchange 2003 server to Google Apps. Moving close to half a million emails to a new email service was a big decision. The transition tools that Google has in place are pretty good, albeit slow for that many emails, Google throttles email transfer to one each second after the first 500. However, the one piece that was missing was a good tool to transition outlook server rules. Many employees used those rules extensively and many had 50-100 rules. Outlook does not have any method in place for extracting those rules. There is no built in way to getting any sort of list or descriptions of the rules, if one wanted to transition the rules manually they would have to click on a rule, look at the pop-up window, and recreate the rules in Gmail using the filters functionality – repeating this two step process for each rule. Horrible.

This would waste many hours of valuable time so I started hunting for a better solution. There is an API in Outlook 2007 or higher that enabled access to rules. There isn’t much example code available, and to my surprise I couldn’t find any VB script to export a CSV of all the rules associated with an outlook account! I hacked together a really rough VB script which exports Outlook rules (only one rule type right now, thats all I needed for my use case) as a CSV and then wrote a small ruby script to generate a XML doc of the rules for import via Gmail’s import / export available through Gmail labs. It works fairly well assuming you have an updated version of Outlook 2007 or higher.

Google Apps Transition Notes The server migration tool pulled in some calendar events that employees claimed they deleted long ago. The Google Mail Uploader application for Mac is not consistent. It wouldn’t pickup mail on some computers. Doesn’t handle folder hierarchy (flattens everything). Use the server migration tool instead. Mail.app folder doesn’t update folder’s unread count immediately. This might be an isolated issue with Lion. I had a problem with one Mac machine (10.6) where the inbox would randomly appear blank. Clearing all Mail.app support / cache files and adding the mailbox with message + attachment cache disabled fixed the issue (after mail downloaded I enabled cache again). Gmail doesn’t seem to handle lots of folders (labels) well. Mail.app seems to be a lot slower with multiple folders. Hiding the automatic All Mail, Misc, Follow-up, etc folders was helpful for those who were not familiar with gmail. Changing some of the local settings on Mail.app makes Gmail play a bit nicer. Still can’t find a good solution to allowing a user that is an administrator of another user’s calendar to create an event with the organizer being marked as the calendar’s creator. Use case: administrative assistant managing an executive’s calendar.

Continue Reading

Lion Frustration Fixes

Installed Lion today, some great improvements, some not so great (iCal… really?), and some frusterating changes than can be fixed.

Scrolling seemed delayed and generally choppy on my magic mouse. The scrolling preferences are completed removed from the mouse system preferences. Instead they are hidden in the “Mouse Options” button in the “Mouse” tab of the Universal Access system preference. In the mouse tab you can also remove the scrolling delay. Safari’s cmd+option+l to open the download window was removed! Luckily you can add it back using a script by Daniel Jalkut bundled in a service bound to to the cmd+option+l keyboard shortcut. The new window zoom animation is really annoying. Luckily, you can disable it The only widget I really use is BeRuler, a simple measuring tool. It is only useful if the dashboard lays on top of the screen. Thankfully you can bring the translucent Dashboard mode back Mail has annoying new animations too, the hidden preferences to disabled them are: [code] defaults write com.apple.Mail DisableReplyAnimations -bool YES defaults write com.apple.Mail DisableSendAnimations -bool YES [/code] Not Lion specific, but I’ve found this to be very useful:[code]defaults write com.apple.finder _FXShowPosixPathInTitle –bool YES[/code] As a web developer I have a lot of windows open, I don’t want them restored after when launching Safari. [code]defaults write com.apple.Safari NSQuitAlwaysKeepsWindows -int 0[/code]

Continue Reading

Create TGZ Automator Service

With Snow Leopard came some nice refinements to automator actions. However, all existing automator actions had to be recreated as services in order to be accessed through the Finder’s contextual menu. One automator action which I used fairly often was the create tgz workflow. I always found that action to be fairly useful so I recreated it as an action.

Another unfortunate change with Snow Leopard was the elimination of input managers. This eliminated the convenient F-Script injection functionality that was present in F-Script anywhere. Luckily this functionality has been recreated using an automator service. Nice work!

Continue Reading

Installing Custom PHP5 In Leopard

Lots of improvements have been made in Leopard, but the built in installation of PHP still lacks some essential packages and extensions (PDO, GD, etc). You could download MAMP or Marc’s package but either of those isn’t exactly a drop in replacement for the built in PHP installation – I’d rather not have two separate PHP installations floating around on my computer.

Below is a script to compile PHP as a drop in replacement. I didn’t come up with this completely on my own, these two sources were a great help. You’ll need to make sure you have MacPorts installed in order for the installation of additional modules using the script below to work. Make sure that MacPorts is configured to install all files into the /opt directory on your hard drive. The only downside to not using Marc’s package or MAMP is every time there is a system upgrade you’ll have to rerun this script.

[code lang=”bash”]

# you’ll have to aquire a new URL here: http://us3.php.net/downloads.php when a new version of PHP comes out wget http://www.php.net/get/php-5.2.6.tar.gz/from/us.php.net/mirror open php-5.2.6.tar.gz cd php-5.2.6

# strip the 64 bit version of apache in order to eliminate compatibility issues with 32 bit PHP sudo lipo /usr/sbin/httpd -thin i386 -output /usr/sbin/httpd

# install some modules sudo port install libpng && sudo port install jpeg && sudo port install freetype && sudo port install gd2

# compile and install PHP ./configure –prefix=/usr –sysconfdir=/private/etc –with-config-file-path=/etc –mandir=/usr/share/man –infodir=/usr/share/info –with-apxs2=/usr/sbin/apxs –with-zlib-dir=/usr –with-mysql-sock=/var/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-pdo-dblib=/opt/local –with-mysql=/usr/local/mysql –with-pear –with-pdo-mysql=/usr/local/mysql/bin/mysql_config –enable-sockets –enable-dbx –enable-dbase –enable-trans-sid –enable-exif –enable-wddx –enable-ftp –enable-mbstring –enable-cli –enable-mbstring –enable-mbregex –enable-sockets –without-iconv –without-openssl –with-gd –with-curl –with-sqlite –with-jpeg-dir=/opt/local –with-gd=/opt/local –with-png-dir=/opt/local –with-freetype-dir=/opt/local && make && sudo make install [/code]

You will have to restart apache by toggling the “Web Sharing” checkbox off and on in the Sharing preferences. Hopefully this saves someone the headache it caused me 🙂

Quick side note. I’ve been looking for a good replacement for the clipboard history component of Quicksilver for awhile now and recently found Clyppan. I love it so far!

Continue Reading

How Much Is Too Much

I like os x because its UI is pretty & functional at the same time. OS X does have it’s fancy visual effects, but in most cases the effects are done well enough that they don’t get in the way of your work.

Expose is a great example of this. The zoom effect always take the same amount of time no-matter how many windows you have open, and its done quick enough that it doesn’t get in the way. Sheets are an example of when Apple (in my opinion) slowed things down for the sake of coolness. Don’t get me wrong, I love sheets, I think they are an awesome UI element. Apple just made the default fold out speed way too slow! The coolness of watching the save dialog sheet fold out of it’s parent window for two seconds looses it’s coolness if you save 100 files a day. To make it usable on a daily basis the default sheet fold out speed should be drastically increased.

So what prompted me to write this article, everything I’ve just said has already been discussed all over the net. It’s this new disc burning application, Disco and its smoke. I have to admit, my first reaction when I saw the screencast was just like everyone else, “Wow. That is freakin’ amazing.” But after thinking about it for a while, who wants smoke spewing all over their screen and sucking up CPU cycles; isn’t there enough happening on our screens already and enough effects sucking up CPU & GPU resources? I have to agree with Adam that the desktop is starting to look more and more like a flash animation. This isn’t necessarily a bad thing, as long as developers (Apple in particular) keep our interfaces fast, good-looking, and functional; understanding how much animation and flashiness is too much, and not crossing the line of counter-productive flashiness.

Continue Reading

Back From C4

Well, yesterday I came from C4. C4 was the first developers conference I have attended, and it was well worth going. I met lots of cool people: some who already have some apps out, some who havent released anything – yet.

The Funny

There is, at least for me, two pretty funny & memorable moments of C4.

Before Brian W. Fitzpatrick gave his talk on the future of subversion he said “All information in this talk is under the NDA.” I immediately got really excited, I’ve never heard NDA information before, and this was about subversion, software I actually use! He follows that up with “Yeah, it is ‘Not Decided Apon’.” That gave me a good laugh 🙂

Aaron Hillegass was the guest speaker at C4. If you know who he is, you know he is the guy to learn cocoa from. He’s made the super popular Cocoa Programming for Mac OS X and runs the Big Nerd Ranch camps (you pay a couple thousand dollars to learn Cocoa). So throughout his talk he was shamelessly promoting his Big Nerd Ranch camps and encouraging people to sign up. At one point he said something to the effect of “If you cocoa you should know…”, somone from the audience sarcastically said “Where could we learn cocoa?” I really hope someone got that on tape, it was hilarious.

The Interesting

The most interesting talk was John Gruber’s. I’m not going to summarize what has already been summarized but the basic idea that I extracted from the talk was that ‘The HIG is dead. Just make cool apps that people can figure out how to use and look cool at the same time’. Perfect examples of this are AppZapper, Quicksilver, Shiira, Mail.app, NewsFire, etc, etc.

The Cool

The coolest part about C4 was seeing people who I’ve only read about, and meeting people whose apps I seen/used/read about. Of course all the popular mac devs like Gus Mueller and Brent Simmons were there, but there was also a bunch of less popular devs who attended. I was fortunate enough to meet up with Daniel Jalkut of Red Sweater Software (creator of FlexTime), Jon Crosby of Kaboomerang (maker of Actiontastic), and Geoff Pado of Elgebar Studios (creator of Pencils Down) as well as a bunch of other people whose web-site I can’t seem to find.

Overall it was an awesome time, I’m definitely attending next year if it’s put on again.

Continue Reading

WWDC Announcement Thoughts

The announcements this year are not as impressive as last year. Probably the most exciting thing for most people this year is the new Mac Pro: 16GB of RAM, 2TB of storage, dual 64 bit 3GHZ processors. Wow, I want one.

I am sort of disappointed with the end-user Leopard features. The time machine idea sounds and looks cool, but I’m wondering how useful it will be and how much it will slow down my computer. The improvements to iChat are very welcome, and the screen sharing feature looks incredible. Spaces looks awesome, finally we are going to get built in virtual desktops. I really don’t use Dashboard or iCal, so changes to those areas of the OS don’t really affect me. I currently don’t use Spotlight because of its sluggishness (Butler is much faster for my needs), so hopefully it’ll become useful with boolean search queries and hopefully some speed boosts.

The real exciting announcements are on this page. Code folding, Xcode 3.0, improved interface builder, xRay, project snapshots, obj-c 2.0 (with garbage collection! I really never thought that would happen). Cant wait to get my hands on this stuff. Apple has also decided to open-source some more parts of its OS, this is awesome news and I hope this trend continues.

Continue Reading

TextMate: Most Advanced Editor. Ever.

If you haven’t tried out TextMate I command you to download it right now. Its the most powerful and flexible editor I have ever used, I’m having trouble understanding how everything works its complicated. The syntax coloring is amazing, its so incredibly customizable. This is the only Cocoa text-editor I’m aware of that has code-folding, which is a very cool feature. The documentation is awesome and the wiki and mailing list are awesome resources too. It has amazing integration with the command line, allowing almost endless customization!

Continue Reading