jump to navigation

Productivity with OmniFocus and DEVONthink Pro 2 October 4, 2009

Posted by judismith in Automator, DEVONthink, Email, Interoperability, Macintosh OS X, OmniFocus, Productivity Tools.

I’ve just spent the weekend tweaking my workflow to deal with the over abundance of information that my job generates. OmniFocus is my key app since that’s where I keep all my tasks.

To complete the picture, I started comparing all of my information managers – Yojimbo, Evernote, DevonThink Pro and even the good old OS X Finder. Then I ran across a brilliant workflow by Rob Trew on the Devon Technologies Forums. As Rob puts it, verbs are maintained in OmniFocus and nouns are kept in DEVONthink Pro. He’s written some very nice AppleScripts to facilitate the workflow between these two apps. One script will create a matching project in DEVONthink for the project in OmniFocus. Another creates an OmniOutliner file in the DEVONthink project as a notes document. There’s another script to archive the project out of OmniFocus and into DEVONthink when its done. I encourage you to read Rob’s post and visit his website.

In working through that process, I discovered that in addition to Rob’s scripts I needed a few other things. My workflow involves scanning documents into DEVONthink since it does optical character recognition, making the resulting PDF searchable. After I scan the document, I need to create a task in OmniFocus to ensure that I don’t forget what I was supposed to do with that document. So I wrote this script that will create an OmniFocus task in the Inbox from a document record.

One other thing I needed to adjust is that I get a lot of information via email. If it is a task, no problem. I can use the OmniFocus clipping service and a new task is created with an attachments and the email text. The problem is when I have a document that I need to store as part of a project in DEVONthink. So I created this Automater Service (works on Snow Leopard, not sure about anything earlier) to grab the attachments from an email and create new records in the DEVONthink Inbox. It will also snag the email text and include that as a comment on the document record in DEVONthink. The Automator Service uses a Run AppleScript Action for the bulk of the work. So you should be able to edit it to your needs.

That pretty much settled it for me – at least for this month. :) I’m still holding out for the super automated task manager. Check back. I’ll let you know when I find it. Until then, OmniFocus and DEVONthink Pro with AppleScript come pretty close.

UPDATE: I’ve updated the Automator Service to add the URL for the Mail message to the DEVONthink Pro record so you can get back to the email message that had the attachment. The updated service is found here.

Replacing Exchange Public Folder Functionality with Google Apps September 6, 2009

Posted by judismith in Email, Exchange, Gmail, Google Apps, Interoperability.
Tags: , , ,

One of the problems with ditching Exchange and moving to Google Apps has been the lack of public folder functionality. Public folders are those folders that your Exchange admin would set up where they could give multiple users the right to view content and other users the rights to add and edit content. They are sort of a cheap intranet; at least that’s how we used them.

We successfully migrated 300+ users to Google Apps finishing late this Spring. Part of that required that we solve the lack of public folders. For those public folders where we would just put documents for access, we helped our users migrate to using Google Sites. With sites, users can easily post information or documents. Some of our users also use shared Google Docs for this purpose.

We still had the issue of having multiple users easily access one email account for customer service or other public facing email addresses. We turned to Email Center Pro for a solution that really improves on the public folder paradigm.

The things we like about Email Center Pro:

  • Like public folders, there is a many to many relationship between email boxes and users. In other words, users can be assigned to multiple mailboxes and multiple users can be assigned to the same mailbox.
  • The user interface is a very nice dashboard that has
    • A drop down list of all the users mailboxes,
    • A list of all the other users that are currently logged into that mailbox,
    • The ability to save searches,
    • Recent activity log,
    • Account usage,
    • The message inbox, and
    • a customizable graph of mailbox activity that is exportable to CSV for further analysis.
    • Plus there are about 15 more widgets that are available to add.
  • Emails can be assigned for response to ensure that no emails are missed or forgotten and that they only get responded to one time.
  • The Email Center Pro inbox can send you an alert when email arrives so you don’t have to keep checking.
  • You can create and use templates for common responses, ensuring that communications are consistent and saving time.
  • Create notes for other team members
  • You can create a link from the email to a case in your case system. In our case we use Salesforce. This works nicely when you need to update the case with information from the email thread.

So, we didn’t solve all the problems with just Google. But that’s the great thing about Software as a Service (SaaS) solutions, they understand that complimentary functionality and seamless integration is the name of the game. All-in-all, with the public folder functionality replaced and improved, the transition to Google Apps went very well. We are very happy with the choice and the many new features that Google and Email Center Pro have added to our email handling.

Put GMail on Your Desktop with GeekTool August 23, 2009

Posted by judismith in GeekTool, Gmail, Google Apps, Macintosh OS X.
Tags: ,

Recently the folks over at Panic announced a cool new way to display critical stats on your desktop – Statoo. Like GeekTool, Statoo can put the weather, date, time, disk space, current song, and so on on your desktop. Unlike GeekTool, they do it all in a few clicks. Even more interesting was the ability to put email on the desktop. I hadn’t yet seen that done with GeekTool.

Intrigued by the email portion, I set out to have GeekTool display the most resent messages from my GMail inbox. This requires a little script fu, but not that much. Here’s what it looks like on my desktop.

Picture 4

The word “EMail is something I add as a header to this GeekTool module. Next, emails are displayed as the subject line first then below and indented slightly, the first few words from the body of the email. In the example above, the first email is my schedule from GCal. Since I’m writing this on a Sunday, I don’t have any events and the body is empty. The second email is some spam that GMail managed to miss. Then there is my reminder from Vitalist.com and so on.

To make this script work, we take advantage of the fact that GMail conveniently provides Atom feeds for any of your labels. You can access your feeds at https://mail.google.com/mail/feed/atom/<label name> where <label name> is the name of the label that you want to access. To access the feed for the inbox, we can take advantage  of GMail’s built in “inbox” label. So the URL to access the feed for the inbox is https://mail.google.com/mail/feed/atom/inbox. This also works for Google Apps users. The URL is https://mail.google.com/a/<your company domain>/feed/atom/<label name> where <your company domain> is web domain that you use with Google Apps and as above <label name> is the label that you want to access. So the URL to access the feed for the inbox of a Google Apps user with a domain of somecompany.com is https://mail.google.com/a/somecompany.com/feed/atom/inbox.

OK, on to the script.  I built the script with just a few variables for you to change. I’ve listed it below but you can download the complete script here.


# Thanks to Dave Taylor at http://www.askdavetaylor.com for the great tutorial on accessing and parsing RSS feeds with a shell script

echo “EMail” # Puts the word “Email” at the top for a header to the module

# Provide your log in credentials
# NOTE – you MUST replace the @ in your username email with %40 or the script will fail
username=’user%40gmail.com’ # username is your email address with @ replaced by %40. For Google Apps users this will be user%40yourcompany.com
password=’password’ # your password

# Set the label that you want use
label=’inbox’ # the GMail label that contains the email you wnat to display

#Set the Wdith of the output
width=’45′ # The number of columns wide that you want the output

# Required for Google Apps users
domain=’yourcompany.com’ # Your company domain – only needed for Google Apps users

# If you are using Google Apps put a # at the beginning of the first url= line and remove it from the second url line.

url=’https://’”$username”&#8216;:’”$password”‘@mail.google.com/mail/feed/atom/’”$label” # GMail users
#url=’https://’”$username”&#8216;:’”$password”‘@mail.google.com/a/’”$domain”‘/feed/atom/’”$label” # Google Apps users – remember to edit your organization’s domain in domain variable above

# Do not modify below this line
if [ $# -eq 1 ] ; then
headarg=$(( $1 * 2 ))  # $(( )) specifies that you’re using an equation
headarg=”-8″  # default is four email messages

curl –silent “$url” | grep -E ‘(title>|summary>)’ | \
sed -n ’2,$p’ | \
sed -e ‘s/<title>//’ -e ‘s/<\/title>//’ -e ‘s/<summary>/   /’ \
-e ‘s/<\/summary>//’ | \
head $headarg | fmt -w “$width”

Once you have modified the file with your information, save it to a location with the name gmail.sh. I use a GeekTool folder inside my Documents folder. Then you will have to make the script executable. To do that, assuming you saved the file as above, open the terminal and enter

chmod +x ~/Documents/GeekTool/gmail.sh

While you are still in the Terminal, to see if everything is working, try running the script by entering

sh ~/Documents/GeekTool/gmail.sh

If you’ve done everything right, you should see the subject lines and a summary of the body for first 4 messages from your inbox listed in the terminal.

Once you’ve saved the file and added the execution permissions, we can now go over to GeekTool. Open System Preferences and select the GeekTool module. Then click on the button for a new entry and select Shell as the entry type. The enter the command to run the script file in the command box

sh ~/Documents/GeekTool/gmail.sh

The script is set to take an argument for how many messages you would like to see. It will default to 4 messages, but you can alter that by putting a dash followed by a number at the end of the command. For example if I want to see 10 messages instead of 4 the command would be

sh ~/Documents/GeekTool/gmail.sh -10

You can see the GeekTool set up in the picture below.

GeekTool settings for use with the gmail.sh script

GeekTool settings for use with the gmail.sh script

That’s it! adjust the GeekTool settings to your liking or to match your awesome desktop and enjoy. I look forward to seeing GMail on the desktops featured Lifehacker from the Flickr Lifehacker Desktop Show and Tell pool.

Journaling Disks using Drive Genius 2 December 27, 2008

Posted by judismith in Macintosh OS X, Utilities.
Tags: ,

I snagged a copy of Drive Genius 2 in the recent MacUpdate Promo bundle. If you have never bought into one of the promos, I recommend that you check it out the next time it comes around. You get a lot of great software at a significant discount. Drive Genius alone was worth the price of admission.

Yesterday, in the December 26th, post Christmas sales, I purchased a new terabyte drive to house my burgeoning photo and media collection. While I had already used Drive Genius to “slim” my existing hard drives by eliminating duplicate files, unused localizations and older cache content, this would be my first use to initialize a hard drive.

One thing I noticed immediately was that the interface for initializing the hard drive was rather spare. It lacked all of the different initialization options that Apple’s Disk Utility provides. Normally this would be a good thing. However, I was curious about selecting whether or not the drive would be journalled – a process that Apple uses to track drive activity to use in case of a failure.

According to all of the documentation that I could find, including the Drive Genius user manual and most blogs “reviewing” the software, the check box to select journaling is under the “Repair” option. However, after searching through the Drive Genius interface, the Journaled option check box is located under the “Information” section in the details tab. This seems to me to be a more logical choice for placement. I hope they updated the user manual soon.

<RANT>As a side note, bloggers who purport to “review” a piece of software should actually look at all of the features that they are writing about and contribute something original instead of copying whole paragraphs out of the product’s user manuals.</RANT>

iCal, Exchange, GCal Sync Update December 21, 2008

Posted by judismith in Calendar, Google Apps, iCal, Macintosh OS X.
Tags: , , ,
1 comment so far

Well, its that time of the year again when I revisit the state of iCal syncing. This time there is a lot of progress to report.

First up – who could miss the announcement that Google Calendar now officially supports CalDav – the same open calendar standard that iCal speaks. This means that your Google calendar can be right on your OS X desktop in iCal. Changes made in iCal sync to Google and vice versa in a matter of seconds. 

On the Exchange front, as predicted in my last post on this topic, the release of Exchange 2007 with its use of more standardized web services has allowed at least one company to come out with a product that will sync your iCal with Exchange. Sync’Em is in version 1.15. According to their website, Sync’Em will sync more than just your appointments. It will also sync your contacts, tasks and notes. For those of you who still have to live in a place dominated by Microsoft technologies, this just may be your ticket. (Thanks to all who commented about Sync’Em).

Of course those same Exchange 2007 web services have enabled Apple to promise out of the box Exchange interoperability with Mail, Address Book and iCal. So you may not want to throw down the cash for those Sync’Em licenses until Snow Leopard debuts. If you just can’t wait until mid to late 2009 to access your Exchange data natively in iCal, Sync’Em looks to be your only choice at this point for iCal/Exchange syncing.

Mail.app – Using Advanced Search Logic in Smart Mailboxes December 21, 2008

Posted by judismith in Email, Mail.app.
Tags: , , ,

Today I was looking for a way to execute complex queries in Apple’s Mail to create a “smart mailbox”. 

You may already know that Mail has some of the power of Spotlight’s search syntax. You can read about some of the details of searching in Mail at the excellent Hawkwings blog. Basically you create a query in the search box in Mail. Once you have your query getting the results you want, you click on the “Save” button to create a smart mailbox with that search. Its just like creating a saved search folder in the finder.

You can take your queries a step further and combine the power of Spotlight syntax with search items that are only available in Mail such as limiting the mailbox that the message is in. The magic is using Spotlight queries inside the smart mailbox dialog.

Let’s use a simple example. Say that I want to create a smart mailbox that has all the mail either from or to a particular person and is in the inbox. So the logic would look something like this: ((from:aperson OR to:aperson) AND in:inbox) With the standard functionality in smart mailboxes or in Mail’s search box, this query is not possible. But Mail can combine both the spotlight syntax and the smart mailbox filters to allow us to create complex queries that combine both.

Uploaded with plasq‘s Skitch!

To use the Spotlight search syntax, select “Entire Message” then “Contains”. In the box following, enter your Spotlight search query. In this example I used “from:mikel OR to:mikel” which would find all messages where mikel was either the sender or a recipient. Then I wanted to ensure that only messages from the Inbox were returned, not any of the other IMAP folders. So I used a Mail only feature to limit the search to the Inbox and set the search to match ALL conditions. 

So what happens is that first the Spotlight query is run, returning all messages from or to mikel. Then those messages are filtered leaving only those that are in the Inbox. Pretty cool.

We’ve Changed Our Name! July 20, 2008

Posted by judismith in Uncategorized.
1 comment so far

You may have noticed that we’ve changed our name from “Bitstream” to “Unofficial Technology”. This is to better coordinate with our branded consulting efforts for non-profits and small businesses. We recognize that smaller organizations have unique challenges and we specialize Google and Macintosh – the simplest, best and most cost effective technologies to meet those unique needs.

In this blog, we will continue to focus on collaboration and interoperability issues as well as Mac and Google technologies. We will be broadening our scope to include content that is specific to how non-profits and small businesses can best use those technologies to cost effectively increase their reach.

Use Google and Exchange Calendars in the Same Domain July 20, 2008

Posted by judismith in Calendar, Exchange, Google Apps, Interoperability.
Tags: , , ,

I can hear you asking already, “Why would you want to do that?”

Well, the problem is if you use shared calendaring and you want to migrate your organization off of Exchange on to Google Apps, everyone has to get moved over to Google Apps at the same time, and in one weekend. Not too bad if we’re talking about 10 people. If we’re talking about 600 people or thousands of people, that’s another story. If you have a fairly large organization like mine – that’s not going to happen. Well, while maybe technically it could happen… there’s that whole human side of the equation. You have to roll out training. And then there’s fear of the unknown. You have to help people see that they can do the same things they used to do, just better and faster. Of course we all know that Google rocks, but as far as everyone else is concerned, we’re just the geeks and our opinion on matters such as these is not to be trusted. So we have to find a way to get some internal champions who aren’t techies. Unless you want to create a riot and send productivity into the toilet for the next couple of weeks or months (not recommended if you want to keep working), you have to do the migration gradually. That means at least for a while you’ll have users on both systems.

Generally, everything works fine across two different systems – email, tasks, instant messaging, and so on, even with Microsoft® involved. The folks in Redmond have give the occasional nod to adhering to some standards. Even sending appointments between the two systems generally works – if only because Google took the effort to make it work. But shared calendaring – seeing the free/busy information, now that’s the issue. If you are on Exchange and I’m on Google Calendar, you can’t see my schedule and I can’t see yours. If we’re in the same organization, we’ve just moved back to the dark ages. I’m calling you to see if your schedule works with mine to get a meeting – OK, well maybe we’d be using IM, so we’re not quite back to the dark ages. This folks, is a show stopper.

Enter Google Calendar Connectors! If you have a premiere Google Apps account (or an Educational/Non-profit account) and at least Exchange 2003, you’re in luck. Over at Google Code, you’ll find the Google Calendar Connectors project. You’ll also need a Windows 2003 server with .NET 2.0 to run the Connectors.

From the Google Code Project website:

This open source project is a developer and partner release and is not targeted for direct customer or end-user installation. The Google Calendar Connectors represent a set of tools and should not be considered native functionality of Google Apps Premier Edition.

* Google Calendar Connector Web Service: This connector allows users in Google Calendar to see free/busy information for users who maintain their calendars in Exchange. It is a .NET web service that takes requests sent from the browser with Google Calendar and returns free/busy obtained from a Microsoft Exchange 2003 server.

* Google Calendar Connector Sync Service: This connector allows users of Microsoft Exchange to see free/busy information for users who maintain their calendars in Google Calendar. It is a Windows Service that periodically queries the Google Calendar GData API to get updated free/busy information and publishes this information as free/busy information in Exchange.

* Google Calendar Connector Plug-in: This connector allows users of Microsoft Exchange to see free/busy information for users who maintain their calendars in Google Calendar. This product is an Exchange plug-in that adapts Exchange requests for Calendar free/busy information into a request to the Google Calendar GData API. This has the advantage over the Sync Service of not needing to poll Google Calendar and the free/busy information is more current. However, installation requires modifications to the Exchange server environment, which some customers are not comfortable with.

We have the Connectors up and running in our organization. It took a little work to get them going, but once up, we are happily co-existing on two systems.

Now, with Google, I can potentially share my free/busy information with the world. If a vendor wants to schedule an appointment, they can just check my Google calendar. Of course, if your calendar is like mine, good luck with finding the “free” part of that free/busy information.

One other thing I forgot to mention, there is a little foo that needs to happen in order to have Exchange happily share a domain. For those users who you migrate to Google Apps, you need to set up Exchange so that it will forward their emails to another server when it see that they don’t have an email address in AD. Normally, if someone in the organization sends an email to someone else in the domain, Exchange assumes that Active Directory is the only place to look for the email address. If the email address doesn’t exist in AD, Exchange normally assumes it doesn’t exist anywhere and send the appropriate error message. A little work has to be done to teach Exchange how to share nicely.

With that hurdle overcome, I’m back to thinking about what we’d be missing if we moved off of Exchange and whether we really can use Google Apps as an Exchange/Sharepoint/Blackberry Server replacement. See my initial thoughts on that in may post on Google Apps as a Viable Replacement for Exchange.

Microsoft’s death grip on the desktop just got a lot weaker.

Resolve GMail Undefined Issue July 19, 2008

Posted by judismith in Firefox, Gmail.
Tags: , , , ,

Resolve GMail Undefined Issue – Firefox

I’m fickle about browsers. Safari has some very nice features such as the ability to resize text boxes in forms. It also syncs bookmarks to my .Mac Mobile Me account to my other Macs and my iPhone. On the other hand there is much to love about Firefox 3. The biggest thing I like is the ability to have multiple home pages that open when I launch the browser. I know in Safari all I need to do is Command-click the bookmarks folder that contains all of my preferred pages. Still, if I can, I prefer to skip that step. I also like Firefox’s ability to use GreaseMonkey scripts to tweak certain webpages.

GMail Undefined Items

Because of the different features I will switch between browsers, using each one until I get frustrated with the its limitations.

Recently, I’ve been using Firefox and I noticed that my GMail messages would show “undefinedX” where the To: and the From: address as well as a number of other items are supposed to be displayed. I quickly checked in Safari to see if it was a browser specific issue. Sure enough, when I view the messages in Safari, all the information is where it is supposed to be.

Firefox Add Ons

In Firefox, I use a number of add ons to enhance my GMail experience. I use Better GMail 2 by Gina Trapani of LifeHacker.com fame, to make a number of tweaks to GMail. The Redesigned in Better GMail 2 skin is very eye pleasing and almost fools me into thinking that I am using a desktop client. I also use the GreaseMonkey to enable a variety of additional JavaScript tweaks in Firefox. One of these was the ability to preview conversations in GMail by right clicking on the message.

GMail Conversation Preview Script

One of the GreaseMonkey scripts that I use is the GMail Conversation Preview. I have to say that the one thing I really miss in GMail is the ability to see the message in a message pane without having to essentially open up the message. GMail Conversation Preview was a bit of a work-around for this.

A bit of searching on the web revealed this conversation over at Digg where user Kenley pointed out that the issue is caused by the GMail Conversation Preview GreaseMonkey script. By disabling GMail Conversation Preview all the information items return to normal.

To disable a GreaseMonkey Script in Firefox for Mac simply go to the menu bar and click on Tools -> GreaseMonkey -> Manage User Scripts… When the window opens, highlight the GMail Conversation Preview script and uncheck the “Enabled” button that is in the lower left corner of the Manage User Scripts window. Close the window. To see the results, use the refresh button in Firefox to refresh GMail and see the changes.

Hear from the Readers – How Do You Do Mac Calendaring May 9, 2008

Posted by judismith in Exchange, Interoperability, Macintosh OS X.
Tags: , , , ,
1 comment so far

With the recent non-event of the release of Entourage 2008, we haven’t seen much of an improvement in the Mac calendar landscape. Apple has released the iCal Server as part of Leopard Server. But Outlook doesn’t work with the iCalendar standard.

So I’d like to hear from all of you Mac users that work in a mixed environment. How do you deal with calendaring?


Get every new post delivered to your Inbox.