Thursday, April 29, 2010

21st century divorce – pixels, points and screen resolution

Once upon a time, pixels and points were happily married. In the days of the Mac Plus and, a bit later, 17” 1024x768 CRTs, developers could expect a 10 pixel line would be 10 points long.

That’s no longer true. The 9 pixel fonts that were readable in 2000 are now impossibly small, but the 9 point fonts of 2000 should be as readable as ever. (Assuming well behaved software and same aged users!)

This seems rather esoteric, but many of us still carry habits and assumptions from that old world. Happily I just wrote up a refresher for my own use, so I’m happy to share :-).

First a quick refresh for non-specialists (see [1] for definitions):

  • A pixel is an attribute of the computer screen. Higher resolution screens have smaller pixels.
  • A point is a unit of length with a laughable history. The current “point” is the “DTP” point popularized by Warnock/PostScript – 1/72 of the anglo-saxon “inch” [2].
  • Pixels and points correspond when a screen has 72 pixels per inch (PPI [3]). The original Mac had a screen res of 72 PPI (pixels/inch). So did the old 17” 1024x786 CRT. On those screens, a 9 pixel font looked like a 9 point font.  Some UI standards may be based on 72 PPI screens where 9 points = 9 pixels

Modern screens have much higher resolutions, and thus more than 72 PPI. Apple’s 30” cinema display is 100 ppi and the 27” iMac is 108 ppi. The iPad is 132 ppi, the iPhone has 160 ppi, the Droid has 265 ppi, and the next generation iPhone is rumored to be 330 ppi (so HD video might fit in the phone)

A 9 pixel font that was readable at 1024x760 on a 17” CRT would be about ¼ the size on iPhone 4. Obviously, it would be unreadable. Of course that wouldn’t happen right? Developers would specify everything in points and apps and OS would translate to pixels properly.

In practice the latter happens a lot – often for good reasons [4]. OS X 10.6 applications, for example, have fonts that render at too small points on a 108 ppi display. XP is similar. Windows 7 and OS X were supposed to both be resolution independent, but it didn’t seem to take [4].

Things are different on new age computers. The Droid, iPad and iPhone expect and respect points, not pixels. That’s good, if they didn’t then documents would be unreadable on those high PPI devices.

If we’re lucky, a few years from now, only OS designers will need to know the difference between pixels and points …

[1] http://stackoverflow.com/questions/604203/twips-pixels-and-points-oh-my

PIXEL

The smallest dot you can draw on a computer screen

POINT

996 points are equivalent to 35 centimeters, or one point is equal to .01383 inches. This means about 72.3 points to the inch. We in electronic printing use 72 points per inch

1 point (Truchet) = 0.188 mm (obsolete today)

1 point (Didot) = 0.376 mm = 1/72 of a French royal inch (27.07 mm)

1 point (ATA) = 0.3514598 mm = 0.013837 inch

1 point (TeX) = 0.3514598035 mm = 1/72.27 inch

1 point (Postscript) = 0.3527777778 mm = 1/72 inch

1 point (l’Imprimerie nationale, IN) = 0.4 mm

[2] 72 has a LOT of divisors. That’s probably why it was chosen.

[3] PPI is pixels per inch, not points per inch. Unfortunate ambiguity there.

[4] I’m simplifying a topic that’s really beyond my ken. Fonts are the easy part of resolution independence. The real problem is all the raster images that are a part of a “modern” UI. If you want your font to scale along with it’s nice “tab “background, it has to be specified in pixels, not points. Maybe one day SVG 6.0 will take care of the rest of the problems …

Tuesday, April 27, 2010

Bento 3 (desktop) has encrypted fields

[This is not new -- it came out Oct 2009. I even wrote about it then. Looks like I simply lost this one in the noise. I'll put it on my task list to try.]

At long, long last ...
Mac Software | Bento 3
... Bento 3 now lets you create encrypted fields to store sensitive data, like web site logins and banking details...You can assign a password to your entire database and shared libraries to keep your valuable information more secure...
Sniff. I could cry. This has taken eons.

I despise Bento, but clearly FileMaker is dead (no iPhone client = dead). So this feature means I have to think about whether I can use Bento. It all depends on iPhone support for encrypted fields.

FM claims that the encrypted fields in Bento 3 will "sync" with Bento for iPhone 1.0.3. Does that mean they're still encrypted on the iPhone? Seems logical, but I wouldn't make a bet either way. This will take testing to verify.

Incidentally, it's funny to read about "meal planner" in the Bento 3 Family Organizer.That's how personal databases were sold in the 1980s.

Update: With Bento 1.3 the database encryption doesn't work (stupid but not shocking - the comment to "use pass code lock" makes me grind my teeth though) but supposedly the field level encryption does work.

... No, you cannot change an existing non-encrypted field directly to an encrypted field. However, you can create a new encrypted field. Then, go to Table view and display the non-encrypted field next to the encrypted field. Copy the column contents of the non-encrypted field and paste into the encrypted field. You can then remove the old non-encrypted field and rename your new encrypted field back to the name of the old field....

Saturday, April 24, 2010

Social wrestling: Google Reader, Twitterfeed, Blogger and Facebook

I might be close to a use for Twitter, bringing Google Reader closer to what Buzz should have been, and distancing Facebook.

The most important of these is distancing Facebook. For the past year I've been reluctantly using Facebook. Why reluctant? It's not distrust. I trust Facebook completely. I trust Facebook to lock in my data, and to exploit any information I provide. So while I like some of the things FB gives me, I want to keep it at a good distance. I want to be able to leave at any time, and I don't want to entangle friends in FB's world.

My latest solution is to combine blogger with the misnamed twitterfeed social network routing service. Twitterfeed consumes feeds, and generates output updates to (currently) Facebook, Twitter, Ping.fm (a rival actually), Loconica/Status.net and Hellotxt (another rival). Unlike rivals I've looked at before (Ping.fm), twitterfeed understands and implements Oauth and OpenID. Twitterfeed doesn't Fail by storing my credentials.

Oauth and OpenID are imperfect, but just right for this task. Now the equivalent of my Facebook Profile page is a special purpose Blogger page. I own the blog, I own the posts -- Google Data Freedom means I can even move the blog. That's where I post stories I want to remember, and where I post about albums I've put on Picasa web albums (or anywhere else). Twitterfeed consumes the RSS (Atom, technically) freed from my blogger "Profile" page and creates posts to Facebook with a shortened URL. It could also create posts to Twitter from the same source. (I used to do similar things with the uber-geek-cool Yahoo Pipes, but they have been shut out of FB and seem to be waiting for an acquisition.)

Twitterfeed does all this with modern authentication protocols - I never gave 'em a password. I write my posts using blogger tools and the updates show up, about 30 minutes later, in Facebook (no pubsubhubbub or even ping support yet - hence the delay). They come out pretty well in FB.

In a related experiment I'm using twitterfeed and my little used twitter account to create prefix-tagged tweets from my Google Reader Shared Items. So far I'm just experimenting, but I might find something useful there. (Back when it worked, I used to share the Reader Share feed with Facebook -- see the long list of post refs below for other permutations).

This approach looks promising, but of course Facebook may break it at any time and, sooner or later, Twitterfeed will either run out of money or become part of Google or Twitter. In the meantime I continue to wait for Google to publish a GR Share API (maybe as a special case of a Buzz API, though I fear Google's tweet to Buzz feature will forestall this). Then someone is sure to make it possible to tweet to Google Reader notes.

More to come I'm sure ...


Update: The Twitter feed of shares doesn't really fly. It chops off my annotations, and the link, of course, goes to the unannotated original.

Update 10/26/10: I switch to using Feedburner to do tweet my reader shared items.


See also other stuff:
my stuff:

Thursday, April 22, 2010

Typing tutorial software for OS X (Mac) – oddly confusing (and web alternative!)

[See update. This functionality has largely migrated to Flash apps on the web, like the BBC's Dance Mat Typing.]

I thought it would be easy to choose OS X based typing tutor software for our kids. The more I looked though, the weirder things got. I found a plethora of “Mavis Beacon” tutorial software from different vendors. Turns out it’s all related to the late 20th century collapse of the American empire (seriously).

The leading typing package for the past twenty years (really) is, and has been, “Mavis Beacon”. Today, on Amazon, you will find three different versions sold for OS X:

The Apple store also sells MacKiev – Mavis Bacon Teaches Typing 2009 Deluxe Edition for $40.

As far as I can tell the MacKiev product is the only Mavis Beacon version that actually works on OS X. The others just sort of flail about. The working Mavis Beacon app is, you will note, twice the cost of the current Encore version.

Amazon also sells Typing Instructor Platinum “for Mac OS X Intel” but the limited number of Mac reviews are very negative.

In the shareware side we find a few programs still being updated. Some of them have very crude UIs – probably Java apps.

My current conclusion is that that you should either buy Mavis Beacon/MacKiev for $40 or try out some of the < $14 shareware options (free is good too).

[1] The product description is confusing, but you can see the product name on the pictured box.

[2] MacKiev has a real web site. This Ukrainian company now sells Print Shop, World Book and Kid Pix. I wonder if they’re buying up old decrepit Mac titles and refurbishing them. If so, that’s an interesting business model.

Update: I looked at the lower cost and shareware apps and decided they wouldn't work for our needs. I'll probably buy Mavis Beacon the next time I have an Amazon order or I drop by an Apple store. There's an update on the MacKiev site you should install.

Update 4/25/2010: If you can live with Flash the BBC has an app for teaching typing (thanks Andrew). In retrospect I erred in my searches by searching on "OS X" and "typing tutor". It should have occurred to me that this type of service is a natural for migration to the web. A search on "typing tutor web" finds a lot of solutions, including "typingweb". Strangely, the BBC's Dance Mat typing doesn't show up until the bottom of page 4 in Google -- which in search terms is the nether world. There's some evil search optimization going on here.

Update 4/30/2010: The BBC app isn't bad for free, but I want my kids to learn. That Flash app pales next to a well done desktop product. So we bought the $40 MacKiev Mavis Beacon product.

Wednesday, April 21, 2010

Google sites: assign a public page to the www.domainname.com url

Once upon a time our eNom managed family domain Google Apps included an html wysiwyg editor called "Page Creator". Page Creator was bare bones, but flexible. Later, after many fits and starts and delays and bugs and a presumably painful acquisition, Google retired Pages and substituted "Sites".

Pages were forcibly migrated into the Sites framework, often appearing within a new "www" "subsite". The transition scrambled some web sites. It was a good lesson in how far one can trust the Cloud.

That was months ago, and I thought I was done with the migration, but I ran into some delayed fallout today. Here's how I sorted it out.

To begin with, I wanted www.faughnanlagace.com to point to the original Page Creator "start" page that was now a sites page. This is intended to be a public page that orients my "clients" (Emily, kids, etc) to the domain services. It replaces the awful "start" page Google provides.

I managed this in 3 steps:

  1. First I logged into the domain dashboard and via 'Advanced DNS Settings' I signed into the DNS console and reviewed the eNom domain settings. As expected the www CNAME directs to ghs.google.com. I left that alone.
  2. I then reviewed the Dashboard Sites controls. I didn't want the Sites view to own "www" so I changed the sites URL to sites.faughnanlagace.com. (There ought to be a standard way to make a subsite "landing" page the default page for all sites, but I couldn't find this in Google's awkward Sites options. I did see where you can specify which subsite page should be the landing page for the subsite.)
  3. Lastly I went to the Dashboard Sites control web address mapping. That's where I found the Pages migration bug. The www.faughnanlagace.com "location" was mapped to my old, nonexistent, Page Creator URL. I removed that. Then I mapped the name of the subsite I was interested in to www.faughnanlagace.com. (Confusingly the subsite I wanted to use is titled "www". That is a Pages to Sites migration artifact, it could have been anything.)
It takes an hour or so for Google DNS to recognize these changes, but OpenDNS picked it up in about a half hour.

Note that there's a glitch that can be very confusing. When you use "www" as the "Sites URL", you can't map it to one of your subsites (and thus to the default "landing" page for that subsite). That makes sense; but there's a bug. Even if change the "Sites URL" back to the sites.faughnanlagace.com you will still see a warning on the web address mapping page saying your can't use www.faughnanlagace.com as the URL. This is incorrect; you can. Eventually that warning goes away.

Google multi-calendar CalDAV - did it change recently?

There are two ways to sync an iPhone calendar to Google calendar.

The best method is using ActiveSync (exchange server standard). This lets you edit appointments with invitations and it lets you add invitations. You can sync multiple calendars, but you need to configure this through a fairly obscure mobile-only web page (there's support for both Google standard and Google Apps calendars).

The next best option is to use CalDAV. With iPhone OS 3 you need to do this if you use ActiveSync for another account (such as your corporate calendar). CalDAV works pretty well, but you can't edit items that have guests (this hurts, might be a Google bug) and you can't invite people.

Here's where it gets weird. I feel I used to be able to select which CalDAV calendars to use from my iPhone. Maybe that was in an alternate universe, because it doesn't work now. You have to use another obscure web page, but at least this one is not mobile specific.

Incidentally, there's yet another way to configure iPhone CalDAV support -- use Apple's iPhone Configuration Utility. It apparently works at home as well as in a corporate settings.

--
My Google Reader Shared items (feed)

Sunday, April 18, 2010

Joys of a modern router

[In a dysfunctional cognitive state I originally titled this "Joys of an all mac network". See comments for my mea culpa]

It's been a while since I've run Gibson Research's free security testing tool ...
GRC ShieldsUP! — Internet Vulnerability Profiling

... Shields UP! is now attempting to contact the Hidden Internet Server within your PC...

Preliminary Internet connection refused!

This is extremely favorable for your system's overall Windows File and Printer Sharing security. Most Windows systems, with the Network Neighborhood installed, hold the NetBIOS port 139 wide open to solicit connections from all passing traffic. Either this system has closed this usually-open port, or some equipment or software such as a 'firewall' is preventing external connection and has firmly closed the dangerous port 139 to all passersby.

Unable to connect with NetBIOS to your computer.

All attempts to get any information from your computer have FAILED. (This is very uncommon for a Windows networking-based PC.) Relative to vulnerabilities from Windows networking, this computer appears to be VERY SECURE since it is NOT exposing ANY of its internal NetBIOS networking protocol over the Internet...
It's a nice service, but with most modern routers the default configuration is pretty secure. In my case I have two - a Qwest DSL modem/router and an Airport.