Monday, May 23, 2011

Messages I delete in OS X Mail.app being archived in Gmail

I prefer Gmail's non-standard method of handling email, but it's a very poor fit to legacy IMAP clients.

Recently I realized that email I was deleting in OS X Mail.app (10.6) was being archived in Gmail. This is not what I wanted. I feel like this is a relatively new behavior -- at one time one had to jump through some hoops to map Mail.app's delete button to the Gmail archive behavior.

I've had more success with setting OS X to move deleted messages to the Trash mailbox (no change) AND Store deleted messages on the server (this I changed).

Tuesday, May 17, 2011

OS X Application Switcher - more than you knew

It's going to take me a while to add these to my usual workflow. Some I know, the interesting new ones are bold. Read the article for details ...

Six unexpected uses for the Application Switcher | Business Center | Working Mac | Macworld: ""

You’ve probably got the basics of the Application Switcher down pat by now: press Command-Tab to see a bar full of running-application icons and keep Command down as you tap the Tab key to quickly switch to the application of your choice.

2. Open a new window [good for dealing with minimized windows]

... Command-Tab to the program in question and, before you release the Command key, press Option. Release the Command key first, and then the Option key... If the target program’s windows are all minimized, the most recently minimized one returns to duty. If no windows at all are available, a new one is created.

3. Open a document in a different program

When you want to open a document in something other than its default application—a Word file in Pages, say—you can use variations of the Finder’s Open With command. But if the target application is already open (and can handle the document), you can also just drag the file from the Finder onto the Application Switcher bar. The trick is to start the drag operation, and pause it with the mouse button held down, before you press Command-Tab; keep Command down so the bar stays on the screen, and drag the document onto an application’s icon.

4. Bypass the Clipboard

You select a swath of text from a Word document to transfer to a document in InDesign, and realize you can’t Copy and Paste because you’ll lose what’s already on the Clipboard. You can transfer the selection using the Application Switcher instead.

Drag-and-drop a piece of selected text to another application using the Application Switcher.

Start dragging the selection in the Word document (move it a little bit and then stop). With the mouse button still down, press Command-Tab. Holding Command down to keep the Switcher open, drag the selection into the InDesign icon. You’ll be switched to InDesign, where you’ll see the usual “ghost” of a dragged selection, just as if you were dragging it within the InDesign document itself. Drag it into position and let go of the mouse button.

The target window isn’t frontmost in the destination? Hang on to the selection by keeping the mouse button down, and press Command-~ (tilde) to cycle to the correct window. You can also use Command-N to create a new window as a drop target.

5. Hide and show background applications

You’re in Pages. You can see only Finder windows in the background, and you want to refer to a Stickies note. You don’t have move to background applications to rearrange windows or to hide them as you leave. Instead, press Command-Tab to open the Application Switcher, tab to highlight the Finder, and, with Command still down, press H to hide the Finder's windows. When you release the Command key, you’ll still be in Pages.

Unhiding a background application is a little tricky because if you repeat this procedure (in this case, tabbing over to the Finder and pressing H), the background windows will reappear, but you’ll also be switched into that application when you release Command. To make the windows reappear while keeping your Mac’s focus in the current application, you need to press Command-Tab, tab to the application icon, press H to unhide its background windows, and then press Esc while the Command key is still down. Release the Command key and you’ll still be in the original application.

6. Jump to an alphabetical Exposé

You can quickly trigger Exposé when the Application Switcher is on the screen by pressing the Up or Down arrow; you’ll see the windows for whichever application was highlighted in the Switcher bar.

If you know the trick for arranging Exposé windows alphabetically—pressing Command-1, you’ll be pleased to know you can jump right to this alphabetical arrangement from the Application Switcher. Instead of using the Up or Down arrow key to open Exposé, highlight the application you want and press the 1 key (you're already holding down the Command key). Hold it down for a couple of seconds. What’s happening is that Exposé is triggered, and then it notices that Command-1 is being pressed and so offers the alphabetical arrangement—you’ll see the windows swap into correct positions.

I didn't even know the Cmd-1 trick. It's neat! Sheesh.

Saturday, May 14, 2011

Google Calendar assigning wrong times on CSV import? Here's one fix for the time zone bug.

I can get pretty disgusted with Google Calendar, but then I make myself remember how bad Apple's iCal is. By comparison, gCal is a ruddy gem.

I had to remind myself of that today, because gCal was particularly disgusting.

It started when I tried importing my son's baseball team schedule into a public calendar using my old (best on the web!) import directions ...

Gordon's Tech: Import Calendar data into Google Calendar via CSV files

Here's the header and first row of the CSV file that I was finally able to import. It looks like you need the bloody seconds in the date. I worked with Excel for Mac, used the convert functions to turn text into numbers, then chose the precise format, then exported. Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description,Location,Private Edgumbe Peewee Hockey,10/24/09,2:10:00 PM,10/24/09,3:10:00 PM,FALSE,Practice, Highland North,FALSE

This time I did necessary concatenations of strings and type transforms using Apple's excellent (and under-appreciated) and inexpensive Numbers.app spreadsheet.

The good news is that gCal no longer requires "seconds" in the time fields, and, although I don't think it's documented, it will even work with "military" time (14:20 instead of 2:20 PM).

The bad news is that time zone support is flaky. After I imported all of my calendar entries were off by about 3 hours, even though my time zone (general calendar settings) and the calendar's time zone were both CST.

I made several tries at fixing it, but this is what worked.

  1. Switch to Calender Settings:General
  2. Change your time zone to something different.
  3. Save.
  4. Change it back to the correct setting.
  5. Save.

After I did that my next import worked.

Fortunately I know to always do imports into a unique calendar; there's no way to undo an import and repetitively deleting 50 bad calendar items is a good source of Google hate [1]. I created and deleted test calendars until I figured a workaround for the bug. (If you do get bit by a bad import sync to the (abominable) OS X iCal and repair there.)

See also:

[1] Why are calendar apps so awful? My theory is that they are quite hard to do well, but management doesn't value them. So they never receive sufficient investment.

Wednesday, May 11, 2011

Blogger's "Links to this Post" is working?

I was reviewing an old post when I came across "LINKS TO THIS POST" at the bottom of the post.

That's not surprising. Blogger featured this long ago. I thought I'd turned it off though -- it's never shown anything.

Today it does. So has Blogger restored the long lost backlink function? That would be a big memory management boost.

Monday, May 09, 2011

Doodle:schedule a group activity

Doodle isn't yet another calendaring service. That's good, because it would take a crowbar to get my family off Google Calendar.

Doodle augments calendaring systems. It helps with negotiating a common meeting time between multiple participants on diverse platforms. Our local HIMSS chapter has used it for a year or more and it's been working well.

Doodle solves a problem I have, and it has a track record. So it's worth my time to test Doodle against Gordon's Laws for software and service use.

First I'll start with the fundamentals. Doodle is a Swiss company (Zurich) and revenue is a mixture of ads (yech) and premium services:

  • solo - mobile support (web site), calendar connect (but this comes with free service too), ad free: $30/year
  • business: solo + branding and encryption + 20 users: $350/year
  • enterprise: negotiable
That's encouraging -- they have a plausible way to make money that doesn't require them selling me out. On the other hand, I don't see a lot of value to the 'solo' account since Calendar Connect comes with a free account.

Next I'll look at account setup and revocation. It's not obvious, but if you look at the login at the top of Doodle pages the Doodle icon is a drop down. Click it and you'll see how to link Doodle to your (two-factor protected) Google account using OpenID. That, of course, can be revoked from Google. I'm willing to give them my Gmail address -- it's hardly secret and already gets vast amounts of (largely filtered out) spam.

Next I tried the Google Calendar integration. I don't like that they want my Google Contacts. So that's a negative; I decided not to provide that access for now. I may give them access to one of my Google Apps accounts that has no significant Contacts exposure.

Overall Doodle gets a B+. No data lock, easy exit, plausible business model, good credentials handling. They miss the A because they insist on access to my Google Contacts rather than Calendar alone.

I'll give them a try.

PS. Extra points for having a $3 iPhone app and an Android app. Non-free is a very good sign for an iPhone app. Almost takes them to A-.

Update: As per comments, Doodle allows one to drop access to Contacts after an initial privileges grant. So they do get an A- which is pretty good. Best would be if Content access was always optional.

In practice Calendar access isn't very useful for me -- very few events of mine show up on my personal gmail calendar. They show up on calendars I subscribe to, such as my corporate calendar, the family calendar, my wife and kids calendars, etc. (Dog does not have her own calendar yet.)

So to know my true free/busy time Doodle would need access to an API that doesn't exist yet. On the other hand, subscribing to the Doodle calendar feed lets me visualize Doodle controlled appointments within my Google Calendar. That's useful now.

Contacts access would be useful within Doodle, but as noted above I'm cautious about allowing that.

Sunday, May 08, 2011

Facetime connections to elderly parents - a Logitech webcam problem

I mentioned a few weeks ago that I was testing a Facetime videolink to my mother. It's not my first attempt. I'd tried Google Video Chat two years ago, but after months of struggle I gave up; it had, and still has, dismal usability. iChat was even worse. In all cases I've been using the excellent Logitech QuickCAm Vision Pro for Mac. (Still the best webcam ever sold, though I fear it's going away without a true replacement.)

After a few weeks of testing I can report that Facetime is a big usability improvement over Google Video Chat. I configured my mother's machine to auto-answer my calls; I can call from my phone or desktop and her machine will pick up. Facetime doesn't need to be running, OS X 10.6.x will launch it.

There's only one problem.

After I close the call at my end Facetime continues to run on her machine. It doesn't auto-exit (and, at this time, she can't see well enough to reliably quit the app) [1]. This means her webcam stays powered on [3]. Under some conditions, perhaps mostly time, the embedded OS that manages in-camera focus and exposure control crashes. The Webcam still works, but it focuses to infinity and the light levels are very low. If you pull the USB cable, wait a few seconds, then plug it in again, the camera will reset.

I'm considering a few workarounds. Firstly, it would be great if Apple officially supported auto-answer, so FT could then auto-exit on close. Alternatively I could

I'm leaning to the nightly restart as the simplest fix, but I should also try remote control -- again!

[1] As her macular degeneration has progressed we've been focusing on her iPad use.
[2] Apple needs to kill AppleScript, but I fear there'd be not replacement. 
[3] The webcam then stays in active mode, so it appears like it's always sharing an image.

See also:

Update:

When a Google search doesn't return much, it's often because the function one is seeking is now a part of the OS.

OS X Energy Saver allows one to schedule a restart. I'll schedule my mothers machine to reboot at 2am daily, that should clear out any dangling FT sessions.

Incidentally, there's a longstanding, perhaps ancient, UI flaw with OS X Energy Save scheduling. Look at this:

Screen shot 2011 05 08 at 3 20 54 PM

It looks like the first option is available for selection, but the second (schedule restart) is unselectable -- it's "grayed out".

Look carefully (it took me a while). The select box (drop down) on the first row is also grayed out. This is standard behavior. The reason the 2nd row is so confusing is that it starts with a drop down -- there's no preceding text to display in normal font. Despite appearances this row is available for selection. Just click the check box.

I deleted a prefs file and did a number of Google searches before I realized what was going on. I found others who made the same mistake ...

Saturday, May 07, 2011

Google's two factor: Three weeks later

implemented Google's two factor authentication about three weeks ago. It's mostly working, but there are a few issues:

  1. Application-specific passwords are risky.
  2. You can't de-authorize a computer from Google Accounts.
  3. Authentication isn't working quite right with Google.app on the iPhone.
  4. I've had to create more application-specific passwords than I'd expected

The big positive is that with two-factor and https I'm now willing to connect with an untrusted machine. By untrusted I machine a machine that has a reasonable chance of hosting a keystroke logger. That means any machine running XP and any machine I don't control. My work laptop, for example, is doubly untrusted.

A second bonus is that I'm now more comfortable with using my Google account as an OpenID/OAuth server.

The biggest problem is application-specific passwords. They behave like regular passwords, so if a keystroke logger captures the password one it can be used to, say, get access to your email from OS X Mail.app.

You really, really, really do not want to use an application-specific password on an untrusted machine. Google should provide more warning about their use. I use them on my iPhone and and my home Mac.

Use of application-specific passwords on an iPhone is a PITA. You can't generate these from an iPhone and they're a nuisance to type in. I've stored one in the encrypted 1Password database I use on my iPhone for reuse only on that device. (I'm taking this risk since if my iPhone is stolen and the 1Password database is hacked I'm in a world of pain anyway.)

Having this password on my iPhone is particularly important because Google.app's current behavior is obnoxious. In my case I entered a application-specific password and authenticated. Subsequently other iPhone Google App references (example desktop shortcut to Google Reader) requested a Google account password, not an Authenticator password and not an application-specific password. Every two weeks or so, however, Google.app makes me enter a NEW application-specific password.

The second shortcoming is that there doesn't seem to be a way to easily de-authorize a computer. When you first connect to a Google account from a new machine you're asked to enter your Google password [1]. Then, if you're using Authenticator.app, you're asked to enter your Authenticator token. At that point, if the machine authenticates, there's an option to authorize it for a month.

There should be a way to reverse that decision from your Google account. For example - what if the machine is lost? What if, as in my case, you make that choice from an untrusted machine and decide it was a bad idea? (In theory deleting cookies will undo this, but, perhaps due to user error, that didn't work for me. Of course that also requires physical control of the machine.) For now, be careful to only "authorize" your primary, secured, non-portable, home machine.

Lastly I've found I needed around 8-14 application-specific passwords, even when I reuse one - such as for IMAP and SMTP authentication from OS X Mail.app. There's no way around this one -- I use a lot of Google services from many devices and accounts.

Overall I'm pleased with Google's two factor authentication. They've given it a lot of thought, and I love that they've open sourced key parts of the infrastructure. We needed this years ago, but I'm grateful to have it at all.

[1] At that point, on a keystroke logger infected machine, your Google password is public knowledge. That's why I was willing to simplify my Google password. I now assume it is public, though I obviously haven't made it public.

See also: