Monday, October 10, 2011

Corrupted Databases.db file prevents Safari quit in Lion

Peace Freak figured out why Safari / Lion wouldn't quit. I had to force quit to shut it down. The problem was in Databases.db ...

Safari Will Not Quit: Apple Support Communities

... went to: ~/Library >Safari  and dragged the content of that whole folder to a folder on the Desktop.

(Note: the user library "~/" is hidden in Lion. So make sure to click on finder > press and hold Option > click Go on the top menu > choose library) Safari would quit normally!

So the problem was one of the files in the Safari folder. I started putting them back in one by one and restarting and found that Databases/Databases.db was the culprit....

Brilliant. PF is my hero. Heck, I didn't even know the option trick to display the hidden user Library folder. I'd been navigating to it using the Go item.

When I did this Safari next opened with roughly 1 billion windows -- everywhere. Including many full screen windows. Option-Close eliminated all but about 20 that I had to close one at a time. Some full screen, some windowed.

Now Safari quits normally.

Looks like an OS bug, probably related to the "restore on restart" "feature". That "feature" was a terrible idea when IBM tried it with OS/2. It hasn't gotten better the second tim around.

Based on past experience I bet this one doesn't get fixed until 10.3.4; these kinds of niggling bugs tend to persist. I'll get in the habit of closing all my Safari windows before I exit, and I'll exit and restart routinely.

Sunday, October 09, 2011

Google translate bookmarklets

Martin Steiger says a lot of smart things (at least I think so).

Problem is he says them in German and English (probably French too. Darn eurolinguists.)

Google Reader does a decent job with his Mac blog, but that doesn't work with search or traversing older links.

For that I use Google's translation bookmarklet English button. Works with any browser. Unsurprisingly German/English translation works reasonably well. Sadly Chinese/English translation is useless.

 

Thursday, October 06, 2011

iTunes Playlists: manually set the played and unplayed list

[This tip doesn't save much time, but it's a reminder that iTunes is one of the last "power user" apps in the Apple consumer catalog.]

Starting in 2009 I began having problems with smart playlists. Sort order in iTunes wasn't being respected on the iPhone, playlists metadata didn't update correctly, and the last played and play count attributes weren't behaving as expected.

The problems seemed to vary over time, but podcasts were always a problem. Since I'm a huge In Our Time fan I felt this more than many.

Eventually I resigned myself to the bugs. Few people use iTunes' astoundingly well done smart playlists; they're a power user feature. Fixing them was never going to be an Apple priority.

Looking back I also wonder if Apple quietly changed the definition of "last played" around 2009, so that it was set only when a tune was completely finished. For music this would make sense; but the last minute of most podcasts is taken up with closing music and the like. Since I skip that for the next podcast, I would never "complete" a 45 minute program.

Without a working last played attribute I had to manually manage the list of podcasts that went to my iPhone. This minor chore bugged me until it occurred to me that the wonderous Doug's Apple Scripts for iTunes site might have a script solution. They do - New Play Count v2.0 will script the last played setting.

In the midst of doing this, however, I realized that the current context menu for a tune includes "reset plays" and "mark as Played"/"Mark as Unplayed". It's not a new feature -- I found a 2006 Google reference on this. I just missed it.

So I set all the podcasts I'd listened to as "played"; I didn't need the AppleScript. I created a simple playlist that only included IOT programs that were unplayed. Now I let my podcasts run to the end, so I'm hoping I'll eliminate that little chore.

Sunday, October 02, 2011

Email to Task: Remember the Milk gets it wrong, Appigo and Toodledo do it right

I use Toodledo's task service every day; sometimes through Appigo's ToDo.app, sometimes through their web interface. I'm a customer, but not a fan. I need Toodledo to add full text search with the web UI, a feature that ToDo.app has provided since day one. I've been asking for it for years, but it's only recently that Toodledo told me they have something in the works.

Toodledo does have one killer feature. I BCC my toodledo mail-to address when I send email with an important f/u task and toodledo creates a task with the subject line as the task name. I use this all the time. It's the analog of Outlook's ability to create a task by dragging and dropping an email, note or Calendar item to the task icon. (Surprise! Bet you didn't know Outlook did that.)

Since I'm no fan of Toodledo I considered setting up Emily with their primary competitor -- Remember the Milk. First thing I did was evaluate Services / Remember The Milk for Email.

They got it totally wrong. Their primary use case is not task creation, it's importing tasks en masse. Every line in the email becomes a task, including the email sig. At a high level they support "emailing tasks", but it's completely useless for my purpose.

Sigh. If I were wealthy, I'd build a task/web app that works.

In the meantime, I'm evaluating toodledo's web app. It's supposed to do search, but did they make the same mistake they made with their online service?

Update: Stop the presses. Appigo's own cloud service, which I've never take seriously, supports Creatings tasks via email, and they do it right:

When an email is sent to Todo Online, the subject line becomes your task's title/name and the body of the email will become your task's note.

Except it's not working. I created the mailto address for Emily but the emails aren't turning into tasks. I'll give it a bit more time before I open a trouble ticket. Opening a trouble ticket, of course, is a great way to evaluate a service.

Another bad sign. There's no "Help" or "Support" link in the Appigo Todo Online UI.

Update 2: The task to email problem was a 'confirmation message filtered into spam folder' problem. The bounces were going to Emily's email so i missed them. On the other hand, this is a good way to test a service. When I tried to cancel my ticket I got "Fatal error: Call to undefined function mcrypt_get_iv_size() in /var/www/kayako/includes/functions.php on line 3434".

They are missing Help and Support links in their Todo Online UI.

Update 10/7/11: Appigo's mail-in support requires authentication of the sending email address; users can have only one sending service email. Toodledo lets any address work. Appigo's support network seems to have been down for two days. Lastly, the more I see the absence of a help or documentation link on the online service they less I feel they are a real company. I am also, somewhat laggardly, realizing that Appigo has NO data export service at all.

Update 10/7/11b: I switched Emily back to Toodledo. She is continuing, for now, to use the Appigo Todo.app. It only took a minute to make the switch; there were a few duplicate tasks to delete. Emailing a task now works as it should. FWIW this is a free feature with Toodledo, but a Pro feature with Todo online.  I miss full text search; I'm back to waiting for Toodledo to enable this. In the end though the functionality, the mailto implementation, and data freedom brought me back. We'll get the Pro account if it works for Emily.

Saturday, October 01, 2011

Tinderbox, Simplenote, MindNode and data freedom

I really think Tinderbox ($250!) should have said something about this earlier ...

Tinderbox: The Tool For Notes

.... Tinderbox shares notes with with Simplenote for Web and iPhone access...

The big (Big) problem with apps like Tinderbox, Evernote, or MindManager and its kin is data freedom. Specifically, the absence of data freedom. There's no standard for the representation of attributes and relationships in a nodes and arcs graph app -- it's a fundamental knowledge representation problem [1][2]. Years of rich data get flushed away when an app dies.

When, not if. All software dies. Ask Lotus Agenda users. Or the users of, and this is far from a complete list, Ecco Professional, InfoCentral, PackRat, Sidekick, Arrange (Common Knowledge - MacOS), InfoDepot, In Control, Cross-Ties, Palm Notes, Commence, Ascend, Arcadia (OS/2!), GrandView and MORE, Inspiration, Outlook Notes, and so manymany, many more.

Assyrian clay tablets from the library of Ashurbanipal have endured for thousands of years, my GrandView notes didn't do so well.

Data can outlive software -- but only if it's portable. Not forever of course, but maybe until the end of civilization [3]. JPEG images are in the running, video not so much. UTF-8 text files are serious contenders.

The SimpleNote ecosystem is based on UTF-8 text and RTF files with optional markdown formatting. That's why I like it - the core data store can endure. It's accessible from iOS device, OS X, XP, W7, Dropbox [4] web -- everywhere.

Still, notes alone, even with tagging and search, are not enough. I want a way to layer arcs upon the text nodes.

I could almost do it using MindNode Pro. I could attach SimpleNote notes to MindNode nodes and keep both MindNode file and SimpleNote files on Dropbox. Problem is, it's awkward to attach and create files to MN nodes. The icons are too large and the node doesn't inherit the file name -- and I need a keyboard shortcut to create an external text file on demand.

Screen shot 2011 10 01 at 9 57 41 AM

Doesn't that text icon seem a bit big to you? It can be resized, but it always defaults to enormous.

I haven't given up hope that Markus Muller will accept my suggestions, but I'm reluctantly leaving MindNode Pro on the shelf while I watch where he goes with it.

Tinderbox though -- if it could actually use SimpleNote ... and if it could become Dropbox compatible ... and if I'm careful about how I manage and distribute Tinderbox specific metadata ... That's interesting. It's a heck of a lot of money though, and I fear using its full power would put me into deep data lock.

See also:

Update: MaysonicWrites points us to Dave Winer's World Outline project, I think as an example of a liberated data solution to managing some kinds of information.

- fn -

[1] Consider HL7 RIM 3 and the challenges of CDA/SNOMED model integration. Ok, so nobody knows what I mean by that. Trust me, it's relevant.
[2] Ok. There is a standard. It's called the hyperlink and HTML. This post is long enough, but I'm tempted to look for late 1990s book on hypertext I have somewhere, and to summon a BYTE article on a hypertext version of Gopher from the 1990s. I suppose software archeology is a hobby now. I am disappointed that we don't have wiki-like personal information tool that uses HTML/RTF/text and hyperlink as the information store, WordPress API as an authoring option, and the ability to migrate the repository from local drive to cloud.
[3] Outrageous you say! What could last that long? Well, yes.
[4] I'm a late adopter, but increasingly a fan.

Friday, September 30, 2011

Consolidating Contacts: From Outlook to Address Book via MobileMe and the 5th Circle

This option is, for now, only open to the few people who have MobileMe accounts. Maybe iCloud will add something like this. I'll pass it on for the record.

The time had come to consolidate my work and personal contacts. No, I'm not changing jobs. A change in work policy meant I could no longer sync my iPhone to Exchange. I need my work contacts on my iPhone to do my job, so I needed to consolidate.

This is what I did. I bit imperfect perhaps, but it was reasonably fast.

  1. Using Outlook 2007 at work I copied all my Contacts to a PST file. That copy action makes Outlook resolve Exchange format email into standard email format. Took the PST home.
  2. Use Address Book export to save an archive. Turned off MobileMe sync on all machines. Put iPhone into Airport mode.
  3. Started up my VMWare Fusion XP with Outlook 2007 standalone. Using MobileMe on XP I did a sync to MobileMe.
  4. In Outlook 2007 standalone I imported the PST file Contacts (1012 items) from the external PST file into a new subfolder of Contacts. I then did another sync to MobileMe.
  5. Switched to OS X then turned MobileMe sync back on. It said there were 1007 (not 1012) items to install. When it was done, there 1002 "cards" in a new "Group"

Note that, at face value, I lost 10 contacts during the import process. However, Outlook still showed 1012 even after I repeated a sync there. It's mostly likely 10 contacts won't sync, but it's also possible Address Book does some kind of duplicate merging on import -- but doesn't add the correct recreate Group-Name relationship.

I then ran Contacts Cleaner from Spanning Tools (App Store, cheap). It found 635 "conflicts" (issues, really), of which a surprisingly small number were duplicates. I set to work cleaning that up (Contacts Cleaner has an annoying habit of flagging academic suffixes as "bad".

After an initial cleanup I went back and forth between OS X and XP/VM, each time repeating a sync then running Contacts Cleaner. It only took a few minutes to find problems and settle things down.

Some data is lost of course. Sync must have its price. I made liberal use of 'Categories' (now we'd call these 'tags') to slice and dice my Outlook Contacts. They are all gone now. That is sad.

On the other hand, OS X allows a Contact to be associated with more than one Group. I can make use of that. It's too bad MobileMe Sync didn't try to turn Categories/tags into Groups. (And too bad you can't edit group assignments on an iOS device!)

There was only one funny thing. I've seen this once before. I created a Smart Group for all Cards that had no Group assignment. Over 1,000 showed up unexpectedly. I quit and restarted and all was well. It's a good idea to quit and restart Address Book after a large update.

Once I had things sorted out between my XP and OS X sources I turned on my iPhone and let it reconcile to the new addresses. I found some oddities on searching while Spotlight sorted out the additions.

The iPhone sync added more duplicates! Yes, Synchronization is Hell. I'd almost be disappointed if it weren't.

Back to Contact Cleaner again and I returned to 1805 total contacts. Even so, I readily found a contact that wouldn't sync to my iPhone. I made another backup of my Address Book.

So I turned off MobileMe Contacts sync. That should have removed all Contacts from my phone, but quite a few remained. I had to remove my MobileMe accounts and add it back. Yes, even though we've yet to develop artificial sentience, we have developed artificial dementia.

All were back on my iphone, but we were back to 1043. Clearly, we had a problem. I removed more duplicates but ended up with only 1804. So I restored from backup.

I was in the 5th circle of sync hell, but I've been here before. Call me Dante. I used advanced MobileMe sync to forcibly replace everything on MobileMe with what I had on my home server. I confirmed MobileMe had 1805 contacts, then reenabled Contact sync on my iPhone. Then I forced sync from MobileMe to my other two Macs. At last all showed 1805 contacts [1].

For now. Synchronization is Hell. I don't think iCloud will be any better. In fact, I expect it to be worse.

[1] I'd written previously that Address Book for Lion didn't show a count of cards. It does; you have to scroll to the very bottom of the address (card) list to see it.

Thursday, September 29, 2011

Google App upgrade heck: conflicting email accounts

Google continues to upgrade old Google Apps accounts. It's part of their mandate to unify identities. The new Google (G+) is ruthlessly focused on owning our identities. That's not all bad, because the alternative is probably Facebook.

Still, it's pretty bad.

This has unexpected consequences. I used to use a Google Apps email address as a backup for my personal gmail address. Different accounts mind you.

Now Google doesn't seem to allow that. They seem to be enforcing a 1:1 relationship between Google Account and email address....
Alternate email addresses can only be associated with one Google Account at a time. In some cases, a person who shares an item with your alternate email address will be able to see your primary email address
This seems borderline insane, so perhaps this is a conversion bug.

Or not ...

PS. To make things even more interesting, the Google Apps account was a Dreamhost managed (ISP) extension to their services, and it wasn't supposed to have any email (DH managed email). Yech.

Update: Even though there was no gmail service associated with my Google Apps email, it was newly associated with a Google account. So it had to be. I created a new email address through Dreamhost and made that a recovery account for my primary gmail account.