Friday, June 18, 2010

The 10.6.4 update breaks iMac external display function?

An iMac 27 can serve as an external monitor. Connect a DisplayPort input and it should switch to that.

It used to work. Until now ...
Apple - Support - Discussions - After 10.6.4 update I cannot use iMac ...
I've routinely connected my work laptop to my iMac via the DisplayPort to use it as an external display. This morning this is no longer working. I updated to 10.6.4 last night.
When I plug the DisplayPort cable into my laptop the iMac screen goes black as it should. I can then select dual monitors. For a moment it switches to the laptop setting. When I then click 'Apply' on the laptop to configure dual monitors it gracefully switches back to the Mac desktop (which is wrong).
There may be other causes of course. I strongly suspect a 10.6.4 bug however.
Updates to come if I learn more.

Update: I found a workaround
  1. Set iMac resolution to 800x600
  2. Plug DisplayPort cable into Laptop
  3. In laptop, click on secondary display and set external display resolution to 800x600
It then switched the iMac into display mode. It also jumped to the correct resolution.

Multi-monitor support on Windows has emergent properties, so I can't be sure this is a 10.6.4 bug. We'll have to see how many have trouble.

Update 7/25/2010: The workaround doesn't always work. I've submitted a bug report. I've also noticed that if you unplug a remote display from an iMac, the main display switches to the resolution of the removed remote display. So there are several things broken.

My current workaround is (Windows XP on Dell laptop) as below. I think behavior is different if you've never successfully connected to the external Mac monitor. The key is to switch the Mac to 800x600
  1. Laptop: set NVIDIA control panel to multiple monitor configuration screen. It will show only one monitor.
  2. Switch iMac user account to 800x600 resolution
  3. Plug in DisplayPort cable to laptop
  4. NVIDIA control panel display will switch to dual monitor view. Configure as needed.
Under some conditions you will have a very short period of time to configure the NVIDIA control panel before the iMac switches back to showing the OS X time period. My hunch is that this is the 10.6.4 bug -- a change made to the timing. In earlier releases the OS X desktop remained "black" (waiting for external input signal) for a much longer time, perhaps indefinitely. I suspect the 10.6.4 bug was introduced as a hasty hack for problems where the OS X desktop remained stuck in an inappropriate "black" mode, waiting for a signal that never came.

Update 7/28/10:

Another tip. I have the habit of turning off my iMac's OS X secondary monitor before disconnecting it and plugging in the laptop that will put the iMac in monitor mode. I think this causes problem. The iMac still thinks it has an external display and it won't switch over to being in display mode itself. If I simply unplug the external LCD, without first turning it off, the iMac goes into single display mode. I think this may make a difference.

Thursday, June 17, 2010

iPad user guide: accessibility and more

I've been puzzled that my mother's iPad accessibility seemed undocumented. Turns out it's all in the PDF iPad User Guide (manual).

Did you know there was a 150+ page manual for the iPad? It's an Apple secret.

The manual is impressive, but it's a bit too complete. It describes some VoiceOver features that didn't make it into the shipping product (some rotor controls).

Here's the current list of iPad accessibility gestures, taken from the manual:
Navigate and Read
Tap: Speak item.
Flick right or left: Select the next or previous item.
Flick up or down: The effect varies depending on the Rotor Control setting. See “Using VoiceOver” on page 110.
Two-finger tap: Stop speaking the current item.
Two-finger flick up: Read all, from the top of the screen.
Two-finger flick down: Read all, from the current position.
Three-finger flick up or down: Scroll one page at a time.
Three-finger flick right or left: Go to the next or previous page (such as the Home screen or Safari).
Three-finger tap: Speak the scroll status (which page or rows are visible).
Four-finger flick up or down: Go to the first or last element on a page.
Four-finger flick right or left: Go to the next or previous section (for example, on a webpage).
Select and Activate
Double-tap: Activate selected item. Touch an item with one finger, tap the screen with another finger (“split-tapping”):
Activate item. Double-tap and hold (1 second) + standard gesture: Use a standard gesture.
The double-tap and hold gesture tells iPad to interpret the subsequent gesture as standard. For example, you can double-tap and hold, and then without lifting your finger, drag your finger to slide a switch.
You can use standard gestures when VoiceOver is turned on, by double-tapping and holding your finger on the screen. A series of tones indicates that normal gestures are in force. They remain in effect until you lift your finger, then VoiceOver gestures resume.
Two-finger double tap: Play or pause in iPod, YouTube, Voice Memos, or Photos. Start or pause recording in Voice Memos. Start or stop the stopwatch.
Three-finger double tap: Mute or unmute VoiceOver.
Three-finger triple tap: Turn the display on or off. (This is known as the "screen curtain" feature. For my mother it's a bug, not a feature. It's too easy to go from mute/unmute VoiceOver to blanking the screen.)
There's also far more to the zoom feature than I'd realized. This User Guide deserves a bit of publicity.

I throw the magic mouse out of the house

I'd like to say I dated someone who resembled this mouse, but I didn't travel in those circles (ok, once) ...

I've used this mouse with my iMac for about seven months. During that time I've scared my kids more than once with a scream of frustration.

This is one of those things that looks beautiful, feels lovely, shows well, but has the heart of Satan. Inevitably, a slight errant motion careens windows about, loses location, or zaps the wrong set of photos.

I beg you, don't buy this mouse. Apple doesn't need the encouragement and they sure don't need the money (believe me, I give them enough).

Yes, I understand the seductive appeal. It's lovely when it works. It does fine with some apps. It's disastrous with other apps, esp. Google apps.

Apple has never made a good mouse. This is no exception. I think this explains why Jobs went to iOS (iPad, iPhone) -- he finally realized he's violently allergic to mice.

Buy a Microsoft mouse. They don't do very many things well, but they make great mice.
Even Andrew gave up on his Magic Mouse -- and he bleeds Apple.

I've gone back to using an ancient Microsoft RF mouse with scrollwheel. Maybe I'll buy a Bluetooth mouse, but for now this one works fine.

Wednesday, June 16, 2010

Microsoft Access: Datatypes and Switch vs Iff program flow statements

I think this may be the most obscure blog post I’ve ever written. I only write it because, even after I knew the answer, I couldn’t find this documented anywhere. Perhaps this will help someone searching for an answer someday.

I’ve tested this in Access 2003, but not Access 2007 (a disastrous upgrade btw).

If you’re actually reading this, you are using Microsoft Access and you have been using the "Switch” “Program Flow Built-In Function”. This is a unique to Access hack that allows one to mix a bit of programming logic into a query. In the pile of hacks that make up Microsoft Access this one’s a bit of a gem. You can mangle quite a bit of data with it. I believe it is a call out to Access Basic.

You used the Switch statement with a numeric data type. When you were done you attempted to do something with the result, such as a Join on another numeric. You then saw a “Type mismatch in expression.” error message.

It’s not documented in Access, but the Switch statement forces the result to be a string. If you don’t want to change data types to a string you should use nested IIF statements in place of the Switch statement.

You can also wrap the Switch statement in another function that casts the string to a numeric value.

That is all.

PS.

As long as you’ve read this far, here are some of my personal notes on the Switch statement…

Access has 3 Program Flow built-in functions: Choose, IIf and Switch. I use IIf and Switch.

These are taken from Access Basic. They can be used in Access Basic functions, or they can be used as functions in a column name (where I use them).

Switch has the advantage that it can handle multiple conditions cleanly, and include an error statement. It is poorly documented (see below) [1]. It can be difficult to construct a complex Switch in the Access editor or function wizard, it's better to construct it in a text editor and paste it in.

Switch can use the True and False operators. So if you want to have an error result used when all matches fail, you set "expr-n" to the operator "True" (no quotes). You might think  you should put the most common condition first to reduce execution time, but Switch always evaluates all the expressions.

Example of use of Switch (in this case the test would never be reached, Null and Not Null covers all branches):

SNAP_LOCAL_CONCEPT_TYPE: Switch([RESULT_UNITS] Is Null,"NumericObservationWithoutUnits",[RESULT_UNITS] Is Not Null,"NumericObservationWithUnits",True,"ERROR: IMPOSSIBLE")

[1] From Access Help ...

Evaluates a list of expressions and returns a Variant value or an expression associated with the first expression in the list that is True.

Switch(expr-1, value-1[, expr-2, value-2 … [, expr-n,value-n]])

The Switch function syntax has these parts:

Part Description
expr Required. Variant expression you want to evaluate.
value Required. Value or expression to be returned if the corresponding expression is True.

The Switch function argument list consists of pairs of expressions and values. The expressions are evaluated from left to right, and the value associated with the first expression to evaluate to True is returned. If the parts aren't properly paired, a run-time error occurs. For example, if expr-1 is True, Switch returns value-1. If expr-1 is False, but expr-2 is True, Switch returns value-2, and so on.

Switch returns a Null value if:

  • None of the expressions is True.
  • The first True expression has a corresponding value that is Null.

Switch evaluates all of the expressions, even though it returns only one of them. For this reason, you should watch for undesirable side effects. For example, if the evaluation of any expression results in a division by zero error, an error occurs.

Tuesday, June 15, 2010

Amazon Kindle for iPad - Accessibility fail

I'm probably the only iPad owner who didn't know iBooks isn't pre-installed. It showed up when I visited the App Store from the iPad.

In the meantime I tried Amazon Kindle for iPad. It didn't look bad at first, but then I tried VoiceOver. It didn't work at first - then it crashed hard. I had to reset the iPad.

Since I bought the iPad for my visually impaired mother, this was not good.

That's a shame, because I would have liked to have bought books for her on Amazon then put them into a shared Kindle account.

Update: This is weird. Ever since the Kindle debacle, if I try to use VoiceOver the screen goes black. Turns out I'd activated the top secret "screen curtain" feature (limited documentation). A 3 finger triple tap turns it on and blanks the screen. I think this only happens if accessibility is turned on. If VoiceOver is off then three finger tap zooms the screen (not so useful actually, just enlarges pixels). For my mother the "Screen Curtain" will be a bug, not a feature!

Monday, June 07, 2010

iPad for low vision elderly

My 80 yo mother's macular degeneration is limiting her ability to read printed books. I took her to an Apple store this past weekend to see how she'd do with an iPad.

It took us a while to figure out how to configure it. The default accessibility settings assume no vision, so each letter is spoken before it can be selected and entered. Accessibility mode also changes gesture behavior to a less natural mode with a steeper learning curve.

We got the best results with the following setup:
  • From the accessibility menu, configure the screen "home button" to enable VoiceOver on 3 consecutive pushes. (Her arthritis and neuropathy made this a bit tricky, but counting "1, 2, 3" as she pressed did the trick. Once she had the rhythm she could do it reliably.) This lets us turn it on and off as needed, and stay with the standard gestures much of the time.
  • Enable three finger tap to zoom -- and three fingers to move the zoom image. This just magnifies pixels so it's of limited use but it can come in handy. It's normally not compatible with VoiceOver, but if you keep VoiceOver off normally, and enable it just when needed, this can work. From Safari you can get much nicer results from finger zooming web pages
  • Disable the keyboard Voice assist.
  • Slow the VoiceOver rate way down
In iBooks we set the book size to the largest available font. My mother was able to read the sample texts. She could also triple-tap enable VoiceOver, then double tap on the page to have VoiceOver (monotonously but clearly) read the page text.

She had less success with the Safari and Mail.app, but we didn't spend enough time practicing them. Because of the limited zooming of Mail.app and the finger zoom in Safari I wonder if she’ll do better using Gmail.

The iBook experiment was encouraging. She's a sucker for Apple look and feel so she was quite fond of the iPad.

I'm not sure it makes sense to buy her one. For one thing I'm not sure how I can get content on her iPad from my home. If Apple does a bit more work, next year's iPad would be a much better option (though in her age and health, a year is a very long time). If I do go ahead I'll configure it at my home then transfer the paired iTunes Library to her Mac Mini.

See also:
Update 6/11/2010: I did buy her one. Some quick notes from today:
  • Darn. I forgot my AMEX card with its 1 year warrantee extension.
  • There are no ear buds in the box.
  • The charger cable is hard to insert initially. I expect it will be easier with practice. I’ll modify the standard connector (tape, etc) so it’s easier for her to grip and insert.
I’ll write a post later (see update) on how I configure, which apps I use, book buying, how I manage iTunes prep here and then transfer to her, etc. (For one thing, I’ll setup a user account on a laptop for her iPad’s iTunes sync during initial configuration.)


Update 6/14/10: The Kindle is a dismal failure.

Update 6/17/10: Accessibility gestures are documented in the secret User Guide.

Update 8/18/10Grandma's iPad - A user guide and review

Google search result rendering scrambled in Safari

This is what Safari 4 is showing me when I search Google (click for larger image):

A non-moveable "sponsored links" drop down ad is obscuring the left side of the screen and the text below the search button is jumbled.

This is in plain old Safari 4.

WTF?!

Bing works perfectly.

Update: It's broken in Safari 5 too on this machine_account, but it's fine on other machines and other user accounts on this machine. Emptying the cache didn't help. So I reset Safari - restoring default font sizes, clearing cookies, etc. That worked:

I'll change my fonts to larger sizes and see if the bug returns.

Parental controls: Apple and Google joint fail

After an epic struggle, I've given up on Apple's parental controls. They never worked very well, but Google's change to https seems to have broken them completely. I can't enable Google Calendar or Gmail access without also enabling image search. I'm not even sure I can allow allow Google access while blocking YouTube (the rules seem to be changing quickly).

It's a bleedin' mess.

I'm currently evaluating Net Nanny and Safe Eyes, but really I don't want either of them. I need a net appliance I can configure for our entire network. Those devices, however, costs thousands. Or I need to give up on Google.

I'm seriously considering the latter. If MobileMe were to offer Google-class calendaring I could use Bing for family search. I think OS X Parental Controls may still work with Microsoft's offerings.

I have to imagine Windows 7 parental controls are far better than Apple's, otherwise vast numbers of parents must be in full denial ...

Update 6/9/10: xkcd - Now I get it. So this is how things work for those that don't realize quite how bad things are ...

Update 6/14/10: I might be having some limited success with the combination of ...
  1. OS X Parental Controls: whitelist only, with the https://74.125.45.100 trick and our Google Apps family domain.
  2. Google's lock safe search set to the most severe filtering. It's not obvious, but I think you can log in with a parent's personal iGoogle account, lock safe search, then log out. You must, however, enable always receive cookies which is probably a serious security risk. Clearing cookies will clear this, but Parental Controls makes that harder to do.
Update 6/17/11: A comment suggests iBoss Home, a combination of wireless router and a subscription service.

Friday, May 28, 2010

Buzz - getting closer, still not there

Last February Buzz was ailing. Google's been trying to fix it ever since.

I gave it another try today, and there have been real improvements. You can almost achieve, with significant pain, the equivalent of separating Buzz posts from your public google profile. (Google has not implemented the obvious fix -- an option to exclude all Buzz activity from the public profile.)

The main fix so far is that each of the routes to a Buzz post can be configured so the default post is restricted to a set of contacts with associated email addresses that belong to one or more Gmail (Google) Contact Groups.

This includes Buzz posts from Gmail's Buzz UI, from the iPhone Buzz web app, and from each of the "Connected Sites"you can define in Gmail Settings (Buzz).

Configuring these Buzz posts routes, however, is complex and tedious. Each has its own independent settings. So you have to enter the same sets of Groups in Gmail as in iPhone as in Connected Sites. For Connected Sites you must first click "Add", then click "Edit" then apply the settings.

Of course if you later create a new Contacts Group for limited (Private) Buzz sharing, you'll need to revisit all previous settings.

Yech.

Google still needs to:
  1. Have a single Buzz configuration that's shared among all clients.
  2. Allow users to separate their user profile from their Buzz stream.
  3. Ask the guy they hired away from Palm to fix Google Contacts. Puh-lease.
There's certainly progress, but we're still a long way from where we need to be.

Thursday, May 27, 2010

Windows Live Writer - beware the Trojan Horse updater

I received a notice to update my beloved Windows Live Writer* yesterday. I unthinkingly downloaded the installer.

Fool.

It was a Trojan Horse. No, not a "Trojan" as in a carrier for anonymous malware, "Trojan Horse" in the historic sense of a gift containing unwanted vermin.

The installer has plagued my system with a suite of Windows Live products that I don't want and that are almost certain to reduce system stability. Now I have to tediously uninstall:
  • Live Call
  • Live Messenger
  • Photo Gallery
  • Live Family Safety
  • Mail
  • various Outlook add-ins
  • heaven knows what else
Now you know. Don't make my mistake.

*The only good, new, Microsoft product in five years. An acquisition of course. Microsoft has since abandoned it; I think the original (Minnesota?) team is gone. Microsoft is doomed to immense wealth and mediocrity.

Thursday, May 20, 2010

Google Calendar vs. iPhone: My reminders are gone

It's been a while since I've had a good Synchronization is Hell story. This one is just a small reminder of the nastiness of divergent application and data models.

The reminders on some of my yearly recurring (birthday) Google Calendar events are gone. The Reminder heading shows up, but there are no choices beneath it.

Google Calendar syncs with my iPhone using the CalDAV standard (built on iCalendar data model, so really iCalendar is what I care about) [1]. If I inspect the same event on my iPhone I see reminders set for 2 days and 14 days.

The 2 day reminder is a valid choice on the iPhone. The 14 day reminder is not [2] - it is supported only on Google Calendar. If I edit the event on iPhone I lose the 14 day reminder (probably doesn't work anyway).

No big deal. I'm sure my relatives understand why I don't get their 80th birthday cards to them on time.

Not.

Sigh. One more reminder that synchronization really is hellish.

[1] The Wikipedia page on CalDAV is ancient. At this time ActiveSync works better with Google/iPhone than CalDAV/iCalendar , but with OS 3 there's only one ActiveSync source per phone. That one is taken by work/Exchange Server.

See also:
--My Google Reader Shared items (feed)

Saturday, May 15, 2010

Appigo ToDo.app has lost RTM sync services

Appigo has a very fine task management application called "ToDo.app". I've used it for about two years. It allowed me to synchronize tasks to one of two cloud services: Toodledo and Remember the Milk.

About a year ago Toodledo introduced their own task management application, but Appigo's sync still worked on both RTM and Toodledo. Appigo also added a desktop sync app, though it's remained in 'beta'.

More recently RTM introduced their own iPhone app. On May 12th they turned off sync support for all their customers who used Appigo ToDo.app.
Appigo Todo and RTM
... Late Tuesday night, May 11, 2010, we (Appigo) were contacted by the folks at Remember The Milk via email in which they informed us they had disabled sync access for both Todo for iPad and Todo for iPhone. This service has been available in two of our apps previously (Todo and Todo Lite for iPhone). Todo for iPad was a natural extension and no sync code was changed to support Todo for iPad. We don't agree with their assessment, but including this service in Todo for iPad violated their developer agreement, which was only valid for Todo for iPhone...
A recent ToDo.app update disables RTM support -- since it's no longer available.

There's nothing about this on the RTM web site. For that matter, it's very hard to find anything about this on Appigo's web site either! The release history page, for example, says nothing about this update.

I doubt RTM will be in business in six months.

As for Appigo, they're not handling this very well. They need a lot more material on their main web site pages about what's going on.

Toodledo, where I'm a paying customer, is the only party that's coming out of this looking good. I like their "data freedom" approach to managing customer information.

Saturday, May 08, 2010

Buzz update: still floundering

The default Buzz behavior is to make all posts public and viewable by your Google Profile (here's mine). Google Profiles are trivially discoverable by design, this is one heck of a problem.

Google has been stubbornly obtuse about this. It's the corporate Asperger's syndrome.

Even though I haven't heard of a fix, it's been long enough to be worth a restest. As of today I found:
  1. Within Gmail, if you set the scope of a Buzz update to a contacts group, that will be the default for you next post. Only members of the authorized groups will see Buzz posts on your Google profile. There is, however, no way to scope profile visibility to one's "followers".
  2. If you use the email feature to send a Buzz to buzz@gmail.com it will be public and it will appear in your Google profile for any visitor. Your last used scope setting is ignored. There does not appear to be a "group" equivalent to "everyone who I have allowed to follow me on Google Reader".
  3. There doesn't appear to be a Google (official) share in Buzz bookmarklet so I couldn't test that behavior.
  4. There's still no Google Reader/Buzz integration story.
In other words, very little has changed, Buzz is still not a plausible Facebook alternative. Google deserves whatever FTC hassles it might get.

See also:
--My Google Reader Shared items (feed)

Tuesday, May 04, 2010

Kateva.org home page offline

I don't visit the modest Kateva.org - home page very often -- but I do reference it from some of my blogger pages.

I guess I should visit more often, because today I learned it was offline. It's probably been offline for months. It looks like it was a forgotten casualty of Google's botched retirement of Page Creator. During the transition the domain was reset to block public pages and the layout was garbled.

I've made the page public again and given it a new, simple, layout.

Sunday, May 02, 2010

Google search tip: eliminating the wikipedia based splogs

Great tip in a rich but rambling article ...
Nerd Skill Number One (Dans Data)

... suppose you're looking up some fairly obscure subject, and the "best" page Google finds for you is a small, badly-written Wikipedia article with no references. The PageRank-zero personal site with the answer to your question is out there somewhere, but it'll be pushed well off the first results page by umpteen copies of that Wikipedia article on podunk ad-farm "encyclopedia" sites that take advantage of - or completely ignore - Wikipedia's generous licensing terms.

To avoid seeing all those, you need only add -"[some string from the Wikipedia article]" to your Google search. Usually, it only takes one such minused phrase to clear sufficient of the copies that the page you really want will bubble up onto the first page of results.

This is connected to an interesting, and immensely useful, property of human language, which is that the combinatorial explosion of possible grammatical sentences (as opposed to random strings of words, or of letters) means that most sentences of only six words are likely to be unique...
There are more tips in the essay. This one's a gem though.

It's a bit surprising Google can't dump the wikipedia splogs though.