Wednesday, January 02, 2008

Merging PDFs with OS X Automator

I'm an Adobe Acrobat guru -- too bad it's such a poor quality product. Bad as Acrobat is in XP, it's worse in OS X. Among other things, Adobe can't figure out the concept of a non-admin user.

So I stick with OS X Preview and built in OS X PDF tools. The main thing I miss is the ability to merge and split PDFs.

There are a few OS X utilities to do merges (and more), but it turns out Automator will do the trick (macosxhints.com).

See the macosxhints writeup for the full story. I saved my script as a Finder Plug-In (stored in \Library\Workflows\Applications\Finder), so now I can select any set of PDFs, choose Merge PDF, and they're assembled into a single (oddly named) file on my desktop. The script appends in alphabetic order, so I use a numeric prefix if I want a particular order.

This is the first Automator script I've tried that's really useful!

This is what my script looks like:
!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">


AMApplicationBuild
88.2
AMApplicationVersion
1.0.5
AMDocumentVersion
1
Owning Application
/System/Library/CoreServices/Finder.app
Ok, so that's not very useful. Here's the outline:
  1. Get Specified Finder Items (don't have any values there when you save the script)
  2. Sort Finder Items
  3. Combine PDF pages
  4. Move Finder Items
  5. Open Finder Items
Note that if you omit the Move step the files are saved in an occult (invisible) tmp folder.

Removing embedded carriage returns from Microsoft Access

Carriage return. Such a wonderfully archaic term for the hidden byte that ends a line of text. My children have no idea what kind of carriage can return.

Speaking of archaic, applications like Microsoft Access have trouble with carriage returns. They can't easily be inserted into a text field, but ODBC imports from more sophisticated applications, such as FileMaker Pro, can insert carriage returns into Access fields.

Problem is, there's no easy way to remove them. Fields with embedded CRs behave oddly when edited, and exports and queries break. Search and replace won't work.

I found a method that works.

Export the key column and the troublesome field as XML (no XSD). Then use a text editor to replace every carriage return with a space. The result is a single line, but this doesn't affect XML import. Reimport the XML and the carriage returns are gone.

There are probably better methods.

Update 1/2/07: I ran into another issue where an Access field appeared empty, but it was not NULL. I used 'not null' and 'len=0' to identify these fields, then set them to NULL. Probably another character set problem. I have finally liked all the problems with creating a database that works with Outlook 2003, the PalmOS, sync to Palm, and FileMaker (via ODBC). More on that after I get some sleep.

Monday, December 31, 2007

Yet another identity of mine: MyOpenID

I posted a month or so ago about the identity sources I've committed to. Now I can add MyOpenID: John Faughnan , per Jon Udell's implicit recommendation.

A few comments on MyOpenID (and OpenID services in general):

  • MyOpenID is a provider of OpenID services. If you have the time, geekiness and a domain/website you control you can roll your own. Blogger now supports OpenID authentication for comments, Microsoft is baking OpenID into .NET Windows CardSpace, and Firefox 3 is supposed to have some OpenID management functionality.
  • The "blurb" function of the primary page is broken today.
  • Each account can have multiple personae, any of which can be exposed publicly.
  • There's a easy-to-find function to delete an account

I'd add my GrandCentral number as yet another identity, but I presume that will be bound my "113" Google persona. I also have Yahoo and Microsoft Live identities, but I try not to think of them.

I particularly like the personae management capabilities. Anonymity needs to shrink considerably on the web, but in its place we need the ability to manage multiple personae (aka avatars), each with their own managed reputation -- and the ability to create and destroy personae as needed.

I'm thinking these identity management skills will be second nature to our children, but I'm not confident I know how this will all develop.

JanRain runs MyOpenID, I assume they're aiming to be acquired by Google.

Update 3/4/2008: ClaimID.com provides similar services, also recommended by Udell.

GrandCentral: child accounts, features explained and annoyances

I'm planning to give all the children a GrandCentral number. I'll control the number and email of course -- until each child snatches the pebble from my hand.

At first the number will route to our home, but in time it will route to their personal phones. When they're old enough they get the password and route calls as they will.

So as I set this up I'm exploring GrandCentral features. I liked the explanation one blogger provided for "CallSwitch" (click the link for a description of all GC features):
Web Application Developer: Grand Central - All The Phone Services You Wanted

... CallSwitch: That name is really deceiving. It really should be called 'phone switch', because it lets you re-ring your phones in the middle of a call. So - someone calls. It rings the house. The problem is that I'm getting ready to get out the door. I could call them back on the cell, or I could hit a button on my phone, and the call will ring my phones again so I can pick up the cell. Again on the cell-minute-saver, if I'm outside mowing the lawn, and get a call on the cell, I can take it, walk into the house, hit a button, switch the call to the house phone, and save the minutes...
I've noticed two annoyances so far with GrandCentral:
  1. I'd like to be able to send all calls from my own cell to voice mail, so I can use my phone to capture thoughts and ideas as I drive. This works with MaxEmail, but GrandCentral handles all calls from my cell number as a request to check my voice mail.

  2. Given #1 I think it won't work to add my home number as a GC number, if I do that then nobody using my home phone will be able to reach me. I suspect the GC team were too young to have children.

  3. I wish they supported RSS for notification instead of email. I can work around this though because Bloglines supports creating an email address that generates a feed. So I use this as my GrandCentral notification email.

  4. They don't support fax-in, I'd be glad to pay for this service.

  5. There's no integration with the Gmail contact service and the Gmail import is very old fashioned (doesn't use the Gmail API at all).
GrandCentral is obviously ripe for a vast amount of improvement; we'll have to see how clever Google gets with the service.

GrandCentral introduces visual voice mail for any cell phone

I don't think Google's GrandCentral is open to new subscribers yet, but it's interesting that in advance of Google Android they now have visual voice mail.

Why hasn't anyone improved Blogger's BlogThis! tool?

Blogger is certainly a proletariat blogging tool, but even so it does have a vast number of users, some of whom must be qualified geeks. It also has a well documented API.

So I'm surprised that we're still using the same crummy bookmarklet that we used before Google owned Blogger:
What is BlogThis! ?

....BlogThis! is an easy way to make a blog post without visiting blogger.com. Once you add the BlogThis! link to your browser's toolbar, blogging will be a snap. Or rather, a click. Clicking BlogThis! creates a mini-interface to Blogger prepopulated with a link to the web page you are visiting, as well as any text you have highlighted on that page. Add additional text if you wish and then publish or post from within BlogThis!...
The Google Firefox toolbar includes a similar function (SendTo Blogger) that may actually be inferior to the original Blogger bookmarklet.

I've used these two solutions for years. They're crummy. Let me name a few of the problems:
  1. No access to tags (labels) from the SendTo Blogger UI or the bookmarklet.
  2. Variable bugs -- lately the SendTo Blogger window has aquired its own redundant scrollbars when used in the latest version of Firefox.
  3. Limited toolbar (no bullets, no image, video, upload)
  4. Using Blockquote tags in RTF when the start of string includes a link creates an empty href tag preceding quoted text.
  5. Many bugs with copying highlighted text into the post, lately truncates text.
  6. No 'edit this post' button on the post-submit dialog. Instead need to right click on edit posts, choose open in new window, then find the draft post in list then click on draft post.
The list goes on.

So why hasn't some Googler devoted a portion of their 20% time to fixing this functionality? Why hasn't any hacker created a Firefox extension to replace the bookmarklet/toolbar function?

I think if we knew the answers to these two questions we'd understand something about a lot other modern software frustrations.

HD Photo (JPEG XR) file format: an update

Bill Crow's HD Photo Blog is an excellent information source on Microsoft's HD Photo file format. It's written by the responsible Microsoft Program Manager, and like most Microsoft blogs it's a vast improvement on the usual marketing junk.

Microsoft's stated goal is to make HD Photo into JPEG XR -- a standard they won't control. Microsoft promises a royalty free grant to patents they hold.

I'm not exactly a Microsoft fan, but I'm hoping this one works out. JPEG is really inadequate (though if you shoot raw, edit the raw, and save as JPEG you can get around some of JPEG's worst limitations), but JPEG 2000 seems to be stillborn.

I was really hoping JPEG 2000 would work, but I've read that it probably contains lethal patent bombs. (Patent holders will stay silent until JPEG 2000 is well used, then attack.)

Crow's posts also include a dense discussion of color spaces and gamma. I've read this stuff before (see also: one, two, three), and discussions come in two flavors: wrong and impenetrable. That is, most of the discussions are misleading, but the reliable ones are very dense. I'm convinced not a few famous manufacturers and programmers have messed up their color profile support because the topic was too complex for them to understand. (Trust me, very large companies can have a lot of trouble with complex topics.)

I'm disappointed though that Crow doesn't discuss metadata and HD Photo. Exif headers in JPEG have been extremely valuable -- even though there's no real standard. A wikipedia article on JPEG XR has more information:
HD Photo metadata, optional XMP metadata stored as RDF/XML, and optional Exif metadata, in IFD tags
It would be amazing if Adobe's XMP metadata standards were to make it into JPEG XR. (See also: PNG, metadata and archival formats).

If Microsoft pulls this one off as an honest broker (the devil will be the details of those patent grants) I'll have to say something nice about the Devil.

Update 1/9/10: Sadly, Microsoft waffled on its licensing. So they were true to their satanic heritage.