January 2011 Archives

Until recently, I didn’t fit into the former category but landed squarely in the latter. As an avid Mac user, I do have a fear of losing my sight. But this article by Matt Gemmell gave me a new perspective.

The bit that did it for me:

When you first enable VoiceOver on a Mac, you’re asked if you’d like to take a brief tutorial; I did. After the first couple of minutes, I closed my eyes, and really used it. I wept.

Yes, it will be different. But all is not lost.

And now, as an iOS developer (or at least a student developer, anyway), this article provided a significant insight into the realities of the assistive technologies of Mac OS and iOS.

I will read and heed.

Go read it, no matter which category you’re in.

[Via DaringFireball.net. I swear, it must be incredible to be paid to surf the web and produce the occasional highly-insightful article as John Gruber is.]

Geeks, nerds: watch this film about IBM’s first hundred years.

It’s worth the half hour that it takes.

I promise.

[Scott Ivers via Daring Fireball.]

In this article, Gruber makes some good arguments against a double-resolution iPad 2 display, chief among them that it’s one helluva’ lot of pixels to push. I have to admit, I’m with him on that.

But I side with Engadget which thinks that the display resolution will increase, i.e., it won’t remain at 1024x768, but won’t double, either. Gruber thinks that’s unlikely, too, because that would require graphics to scale up from original iPad resolution to some new iPad resolution, a non-integer (i.e., “not easy”) multiple. And that would require developers to implement three different graphic designs for their programs in order to make it look pixel perfect.

Here’s where he and I disagree.

First, I think the iPad display looks great, but not that great. I’m comparing it to an iPhone 4 which looks absolutely frickin’ fantastic. Today’s iPad looks positively dowdy in comparison, and I think Apple knows it. A resolution bump is a good fix.

Second, I think that this change might result in a push for developers to use Core Graphics and Quartz 2D to create resolution-independent graphics. (App icons still remain a problem.) In general, I think Apple is gently pushing developers in this direction, so it kinda’ fits.

Third, where bitmap graphics are required (icons, for example), my guess is that we’ll see developers encouraged to create 2x graphics and let the hardware do scaling down, not up. That’s considerably easier to do and have decent results.

Finally, all of Quartz 2D and Core Graphics is implemented as floating point. There’s nothing special about the number “2” except that it is easier for graphic designers to deal with in the land of integral pixels. Each UIView, the iPhone container for any kind of on-screen graphics, goes through a massive amount of floating-point computation (the “transform,” if I understand things correctly) before bits are moved to the screen buffer. Because we’re not dealing with integer math, there really is nothing inherent in the system which makes dealing with one screen size and/or resolution any easier than any other.

So while I am completely on board with the “no double resolution,” I’m willing to bet John a Dogfish Head World Wide Stout (which costs considerably more than my usual nickel bet) that we’ll see a non-integer bump in resolution with the iPad 2. It’s feasible and—I believe—likely.

Sung in church this morning, and worth consideration by all, especially considering the “debate” of the last three weeks:

Though I may speak with bravest fire,
And have the gift to all inspire,
And have not love, my words are vain;
As sounding brass, and hopeless gain.

Hal H. Hopson, 1972

I’ll try to remember this.

(Copyright ©1972 by Hope Publishing Company, Carol Stream, IL 60188. International copyright secured. All rights reserved.)



Wait, what? I actually agree with a mainstream media commentator?


Read his thoughts on Obama’s speech here.

Here’s a short list of advice to remember before a massive (24”) snowfall:

  1. One gas can full of gas is fine for a typical winter storm. It would have been enough for this one, too, but other circumstances will make it into not enough.
  2. No spare belts for the snowthrower is a bad idea.

If you don’t know where this is going by now, then you’re not as smart as you think you are.

I started snowthrowing yesterday at 3:00ish as the snow slowed down. We were at about 22” by then. I dumped most of the can of gas into the tractor, and at the stunning pace of, oh, snail, I made it halfway up the long part of the driveway. This snowthrower is wonderful, and it was churning right through whatever I pointed it at. Snow, ice, lawn, you name it! Unfortunately, those belts that have been on there for nearly ten years have, for all intents and purposes, had it. Last year, I solved many problems with belt dressing. This year, the problem was the power takeoff belt (a nice short one). It… snapped.

It snapped halfway up (“up” as in “hill”) our 700’-long driveway. On the first pass. Crap.

So I backed down the driveway, which is really, really difficult and very wearing because you’re steering a very front-heavy tractor with a snowthrower full of snow on it and trying to accommodate for the slop in the steering and not be thrown so far off the path that the thrower itself starts pulling the snow back into the path which… well, is impossible to get around.

(Note to editor: forget about Strunk & White. Long one-sentence paragraphs are the norm around here.)

When I got to the bottom, I looked at all the belts I have and discovered that I have none and that none of the none that I have will replace the one that I needed. I came inside, told T. of our plight, and started calling all of the places around town. I even tried Joe and Barbara next door, but they didn’t answer. And nobody was open, so nobody could sell me a belt.

T. and I began shoveling.

After realizing the futility of the effort, which took a long, long time to realize, I called Steve B. He was out snowmobiling with the kids, so I told his wife of the broken belt and left it as “I’ll call him in about an hour.”

Meanwhile, T. kept shoveling. I rejoined her.

After a while, I realized that the bottom of the driveway, which she was clearing nicely, wasn’t the bad part. It was going to be the top. I started shoveling at the top of my plow track, got really, really down and decided that since I could see lights on in Joe’s house, I’d ask him to plow me out. He met me at the door, I in my winter gear, he in his PJs, and I ‘splained my plight. “Well, Bill, I can’t get that thing started, the lights don’t work, and it’s out of gas.” I said we could resolve those problems if he were willing. I had gas and a little auto knowhow.

We went out to his Garagemahal (literally: 30’x50’x20’—high, yes, 20’ ceilings!—with radiant floor heat and a bathroom) and, Man! was it nice in there! The F150 started eventually and he said he’d be over after he ran up and down his semi-plowed driveway. I said I’d bring over gas.

Back to my garage where I found some tubing and siphoned the gas out of the tractor into a can. I did a remarkably good job, too, but that won’t become relevant until later. Did you know you can siphon gas out without putting your mouth on the tube? Yup! I don’t know if this works in cars, and you’d probably need a very pointy chin to make it work anyway because the gas spouts are buried in the cars nowadays, but I put the tube in and blew air into the tank instead of sucking on the tube. Pushed the gas right on out!

And into the can. Fortunately.

I took the gas over, we poured it into his truck, and Joe said he’d give it a shot after he had some dinner. I took my broken belt to the basement and tried putting an electrical staple through it. Yes, it worked, but only for about 0.372 seconds, long enough to go, “Ye…” Sigh. Joe came back over with the news that he had gone ahead and worked on our driveway, but had gotten his truck stuck about 1/2 way down. Yup, right where I left off. I said I’d shovel him out while he ate some supper. Only fair, I thought.

Meanwhile, T. shoveled. I shoveled. And I was looking at what I was shoveling which was now packed down by the truck and thinking to myself many, many bad things. Mostly four-letter words, though I dug into my vocabulary and pulled out some marvelous five-, six- and seven-letter words which might have been good in Scrabble were they allowed.

As I was shoveling, a truck appeared at the top of the driveway, but it didn’t have a plow. I figured it was some guy out freelance plowing, but with no plow? As the truck drove down the driveway, I was staring into the headlights with no clue who it was.

Until I saw the farm plate. Steve B. and one of his sons were here to rescue the Eccles once again.

I damned near cried. And I woulda’, too, if my contacts hadn’t been frozen to my eyeballs.

He had a 18” walkbehind snowthrower in his truck, a few shovels, and outlined the following plan: snowthrow Joe’s truck out of the way and let him get back home. Go to Steve’s house to get more gas for the walkbehind snowthrower. And, when I told him it was the short belt, he said he might be able to match that up at his house. “Bill, I thought it was the long belt, and I have nothing for that. But the short one? Well, we’ll see! If only I’d known…”

Armed with the snowthrower, I walked up and down the driveway behind Joe’s truck while Steve and his son cleared out what I hadn’t quite gotten to behind Joe’s truck and plow. Pretty soon, Joe showed up and with a little bit of gunning it, got the truck right up out of the driveway, no trouble.

Problem 1, solved. Meanwhile, T. shoveled.

Steve went off to look for a belt and gas. There are apparently some advantages to having a farm: lots of belts hanging around and two 500-gallon tanks, one for diesel and the other for gas. These are things that we city boys would never know, although having witnessed my father replacing the furnace fan belt on many occasions… well, one, anyway… using the spare belt he had just for that purpose, you think I’d have had some brains and actually executed my plan of replacing those belts and getting spares this year.

I changed the oil… but no belts. Guess where I’m headed today?

Right. To buy a new oil filter. I used my last one.

(Seriously, I’ll have to order the belts. One of them is over six feet long and is made of a weird material. UPS quickly, please.)

I snowthrew my way down the driveway. Steve’s snowthrower was working fine.

Problem 2, solved. Meanwhile, T. shoveled.

I told her that she should go inside, call it good. It was, after all, about 7pm and she’d been shoveling for three hours non-stop—and looked it. Exhausted and sore, she said, “No, not until I know this problem is solved.” She had cleared a huge area of the driveway. At the rate that we were going, we’d have been done by midnight. But she made some snowmounds that are quite impressive and had a complete area for turning cars around to get them out.

Impressive? Yeah, you could say that.

Easy? Staples button, you can go straight to hell.

So she shoveled. I snowthrew. And Steve showed up with three belts of various sizes. One of them fit nearly perfectly and the big thrower was back in business.

Problem 3, solved.

Remember that gas problem? Still a problem. And I hadn’t told Steve that I needed gas for my tractor. No, he had gotten gas for his snowthrower, but not for my tractor because I never told him about that problem. So back home he went… It’s a good thing he lives very close, huh? …and returned with gas for the tractor, plenty to make it through the rest of the job.

Problem “the last”: solved.

And now that things were back to where they were at 3pm, only greatly improved with a new belt and much driveway already cleared, T. finally relented and went inside, exhausted, soaked, and ready to keel over. Which she did. Into a tub.

I finished the job and went over to Joe’s to help finish off his driveway, “cleanup” snowthrowing on the way down. He came outside and told me to go on home, get warm, thanks, but no thanks. And then realized that he’d locked himself out of his house.

Aw, #)%@#.

Fortunately, a spare key later, he was back in, I was on the way up the driveway (snowthrowing again—a plow is fairly limited against a 24” drift), and I finished up all the detail work on our driveway, parked things, and went inside.

It was about 8:15.

T.’s water had grown cold, the kids had let the fire die (intentionally), and it was time to regroup. I restarted the fire and took a shower to warm up, then we watched some TV, enjoyed each other’s company, and eventually went to bed.

On his way out, Steve reviewed some lessons learned for me. “Bill, there are some lessons we learned here tonight.”

“Yeah, keep spare belts on hand.”

He didn’t blink and continued.

“First, call me first and early. If I can’t help, I can at least maybe find someone who can. Second, tell me all of the problems. That way, I can prepare for all of them at once. Third, don’t hesitate to call.”

I would have hugged him right then and there, but that’s only appropriate at church. So we shook hands and off he went.

So, though one of my lessons certainly involved spare parts, the better lesson still is to have friends. Friends who can and will help or know someone who will help.

Another lesson is to know your neighbors and help them, too. I’d plowed Joe’s even-longer-than-ours driveway out once or twice before he got his truck; it was nice that he was willing to help me in return.

Third, go to church. That’s where you’ll meet the people who will be kind to you and, if you’re lucky, you’ll meet Steve and his family there. Not only can his kind of people help, but they are willing to help.

God bless you, and thank you, Steve.

(Did I mention that Steve is a superb butcher? His store is The Country Butcher at Spring Meadow Farm in Tolland on Route 74. Can’t miss it—it’s a beautiful place. Open on Fridays and Saturdays, the best grilling nights of the week, so plan ahead.)

Dear Mr. Krugman,

In your column of January 10, 2010, you blame the leadership of the Republican Party for the pervasive climate of hate in this country. Because, however, you conveniently ignore the role that the media and entertainment industries play in spreading the ideology and hate of the Democratic Party, you believe that the leadership of the Democratic Party is able to wash its hands of this issue.

You are wrong.

Instead, the leadership sits complacent as the media and entertainment industries spread the hate for them. If you are willing to tell the Republicans that it’s not good enough to not spread such hatred, then you must also tell your supporters that they, too, must abide by the same rules that you propose other citizens play by.

While Madonna and others were willing to spread hatred of our previous administration, the Democratic leadership was silent. Their silence speaks volumes.

So until you blame everybody whose rhetoric has been violent for the past nine years and demand that they all step up and take responsibility for the resulting “climate of hate,” I’d suggest you keep your one-sided and biased opinions to yourself.

Respectfully, and, coincidentally, not hatefully,
Bill Eccles
Republican, Conservative, and Non-Hater

This guy has a valid point: violent rhetoric is not necessarily a good thing. But I take exception to statements such as this one:

It’s the LEADERS of the conservative movement who use the threat/promise of violence to stoke their base and bring the voters to the polls.

True, the mouth and the head are connected here. But don’t for an instant think that just because the words aren’t emanating from the mouths of the “LEADERS” that the sentiment isn’t there—the followers of the left are just hearing it from different sources. I cite all previously-given examples of major figures in the media and entertainment industries (Madonna, Fonda, etc.) as proof, and the deafening silence from the “LEADERS” as further evidence of complicity among the liberal leadership.

If the “LEADERS” were so vehemently opposed to such rhetoric from the media and entertainment industries, they would be verbalizing their opposition to it instead of accepting in silence the resulting support of their followers.

Both sides need to shut up and talk issues—supporters and leadership alike.

This guy has a valid point: violent rhetoric is not necessarily a good thing. But I take exception to statements such as this one:

It’s the LEADERS of the conservative movement who use the threat/promise of violence to stoke their base and bring the voters to the polls.

True, the mouth and the head are connected here. But don’t for an instant think that just because the words aren’t emanating from the mouths of the “LEADERS” that the sentiment isn’t there—the followers of the left are just hearing it from different sources. I cite all previously-given examples of major figures in the media and entertainment industries (Madonna, Fonda, etc.) as proof, and the deafening silence from the “LEADERS” as further evidence of complicity among the liberal leadership.

If the “LEADERS” were so vehemently opposed to such rhetoric from the media and entertainment industries, they would be verbalizing their opposition to it instead of accepting in silence the resulting support of their followers.

Both sides need to shut up and talk issues—supporters and leadership alike.

I have never agreed with FSJ’s politics, but this is worthy of your time. He gets it.

There are too many good lines to quote just one, so trust me on this one.

Click, read, ponder, and share. You’ll be glad you did.

Why Does This Bother Me So Much?


I wrote an open note to John Gruber of DaringFireball.net taking him to task for being so quick to jump on the liberal bandwagon and to blame Saturday’s shooting on the rhetoric from Sarah Palin and others. As a rational human, I should have let it go then. But it still bothers me now.


So I’ve given this a fair amount of thought. I had a note from a reader who said that he is right, that certainly inflammatory rhetoric such as Palins’ and Kelly’s should be mentioned in the context of this shooting.

But why should it be? Because the killer heard it? Because the killer believed it? Because the killer… because the killer what? What is it, exactly, that the killer took away from Palin’s and Kelly’s messages?

Or did he even hear these messages?

I have no idea what the shooter heard—real or imagined. I have no idea what his motivations were.

But John Gruber implied that he knows what the shooter heard. He, as many others have as well, implies that the shooter heard Palin’s and Kelly’s speeches and took them to be orders to shoot to kill. He jumped on the liberal bandwagon just as fast as he could.

That bothers me… some.

See, John Gruber is a superb technical analyst. He has a head for all things Apple and, I daresay, a fair amount of the tech industry as well. His prescience is uncannily accurate when he is dealing with topics he’s grown up with. He reasons through things. He argues things openly so we, his readers, can understand how he reaches his conclusions.

Here, though, he’s gotten caught up in the emotional, in the hype, and, in my opinion, has reached a conclusion before any of the facts are known. While it may be only a matter of time before the killer’s lawyers stand up in a courtroom and finger rhetoric as the cause of the shooter’s actions, that hasn’t happened yet. John knows it, and so do I.

Is it possible that the shooter heard Sarah Palin’s speeches and divined it necessary to shoot Representative Giffords? Yes. Is it possible that he heard voices in his head that told him to do so? Yes. Is it possible that his next-door neighbor, on a sunny Sunday afternoon, mentioned in an off-handed, light sort of way that he’d like to see Representative Giffords dead for all the mess she’s made of… whatever? Yes. Is it possible that he is an anti-Semite and found a convenient target in Representative Giffords? Yes. Is it possible that…?

These are all possibilities, and the possibilities are endless and completely unknown at this point. Unlike his other writing, though, which is careful and well-thought-out, John Gruber discounts all other possibilities in favor of the one that is the most divisive and suits his liberal agenda the best.

So… what?

Well, as a commenter to my original post said, it’s his blog and he can do with it what he wishes. But for me, that’s a problem. That he can get so carried away with conclusions which defy logic makes me want to question his judgement on the subjects where he most certainly has become an expert, even though I know they are totally unrelated.

And that’s what bothers me so much. I want to write him off totally as a liberal, left-leaning looney, just like everybody has written off the Sarah Palins and Ann Coulters of the world because of their beliefs and opinions. But I can’t do it! I can’t simply write him off because of one of his beliefs, because of one of his views, because of one of his opinions.

Therein lies the bother. I want to take the irrational approach, too, but I just can’t seem to hitch my wagon to that train.

Instead, I offer up my apologies to John.


I apologize for that note of the other day. It is, after all, your blog, and you can do with it what you want to. Keep up the good work, but don’t go off the deep end too often. I look forward to reading what you have to say on all subjects and, though I will disagree with you vehemently on your political views, I will most certainly be all the better for understanding your viewpoints.


And now I can let that one go.


I respect your technical writing, but using your platform for speculative and inflammatory material such as this entry


is far beneath your standards. Please refrain from sinking to this level in the future.


In this entry which links back to the news of the shooting in Arizona, John recites two undisputed facts:

Sarah Palin’s political action committee placed ads which put a gunshot target over Giffords.

Her opponent in last year’s election held a campaign event at a gun range, to “get on target” to “remove Gabrielle Giffords from office”.

Am I off-base here in thinking that this is inflammatory and speculative? We don’t know the shooter’s motive. He could have had it in for anybody, and implicating Sarah Palin’s PAC or Giffords’ opponent is highly irresponsible.

If you use an app that is critical to your ability to conduct business, should you use the Mac App Store to buy that app?

Though the support article here says:

Apps you purchase and install from Mac App Store can also be copied to an external hard drive, USB Flash Drive, CD/DVD, or backed up via Time Machine. 

…it also says this:

…you can use Mac App Store to reinstall the app (if it’s still available) without incurring additional charges to your account.

It also says this:

If you save a copy of an app to removable media (such as an external hard drive) or file share, simply drag the app back from its storage location to your Applications folder. When you open the restored app for the first time, you may be required to sign in with the Apple ID account that was used to purchase the app.

(All emphasis is mine.)

Two very important questions arise:

What if your business-critical data requires an app which suddenly becomes not available and your favorite computer illiterate user accidentally deletes the app? Apps have been known to disappear overnight for terms and conditions violations, so this is not an unrealistic possibility.

The second is, What if you are unable to “sign in with the Apple ID account…” for some reason? Here are some scenarios that would lead to that problem:

  1. Your business got struck by lightning. Sure, your data are all backed up on an external drive in your trunk at your house, but, alas, your Keychain or 1Password file on your Mac which faithfully stores all your passwords—including the one you can’t remember to the Apple ID account—is fried.
  2. Your cable modem got struck by lightning and took out the computer. You remember the Apple ID and password, but can’t connect to the Internet until some future time that the technician can bring you a new cable modem.
  3. You have access to the Internet via iPhone tethering, so you have access to the Mac App store, but since you have to restore from the original 10.6.0 DVD, you have hundreds of megabytes to download and install. That’s slow, but certainly not insurmountable unless, of course, you are stuck in marginal 3G territory and connections are iffy at best—good enough to sign in, but not good enough for hundreds of megabytes of updates.

Possibility 2 assumes that reauthorizing the app requires an online transaction. It may not—I do not know. Does anybody know definitively?

There are certainly some production apps which require online authorization to work, most notably the Adobe Creative Suite, so this is not a problem unique to the Mac App Store. However, Adobe most likely can help you out if you are in a jam. I doubt that most Mac App Store publishers are set up to handle something like that (such as shipping you an unlocked copy of the app via FedEx or 56K dialup modem or who knows what).

Granted, it doesn’t look like there are a lot of mission-critical apps in the Mac App Store—at least in the charts, anyway. But I’d be very hesitant to buy mission-critical apps from the Mac App Store until two things occur:

  1. The activation/reactivation process is well-understood and the limitations and workarounds are known.
  2. The backup process is clearly defined in such a way so as to not be reliant on any activation process at all.

Other than that? I already love the Mac App Store. I can see that I will be much more likely to make a spur-of-the-moment purchase impulse buys than ever before—and, in fact, already have. Instant gratification is instant and seamless—no unstuffing disk images and mounting them and agreeing to licenses and… Prices are much more dynamic because sales will happen more frequently. And the interface is just as slick and easy to use as the iOS App Store.

Oh yeah, Apple has a good thing going on with the Mac App Store. No doubt about it.

But I’d think long and hard about buying CS5 from it.

Unless you’re behind a corporate firewall that restricts access to iTunes because the App Store uses the iTunes infrastructure to run.

Here’s what you’ll see instead:

App Store Fail.jpg

I have a love/hate relationship with Retrospect. At times, it is a godsend. At others, I pull my hair out by its roots because it is annoying or buggy or something.

This time, I ran into this message in the log:

!Can't read state information, error -557 ( transaction already complete)

Seriously, EMC, that’s the best you can do? When I write error messages into my programs (and, yes, I do program every now and then), I try to use the following guidelines:

  1. I use English, not Tech. What’s “state information?” And what might a “transaction” be? If the Retrospect manual doesn’t use these terms, then neither should the error message.
  2. I interpret the Tech into English where it’s important to use the Tech.
  3. I provide as much information about the error as possible. Here, “client state” would help a bunch as it would let me know that it isn’t my backup server’s state that is a problem.
  4. I provide suggestions to the user as to what might be causing the problem. If, for example, the above message were caused by, say, a network error, I’d report that a network error may have prevented the state from being read.

It turns out that the error is, in this case, caused by screwed-up client. Merely stopping and starting the Retrospect Client with the “On/Off” radio buttons won’t fix it, though. Instead, you have to kill off the retroclient process. Don’t even think of messing with /Library/Preferences/retroclient.state. You will have much heartache if you do. And sometimes it’s just darned inconvenient to restart the client, so killing the retroclient process is a good first step towards fixing this problem.

Want to kill your retroclient process? Here’s how.

Open the Retrospect Client app and turn Retrospect off with the radio button. Then quit the Retrospect Client app.

In Terminal, as an administrative user:

$ ps -ax | grep retro

which will return something like

8962 ??         0:13.91 /Applications/Retrospect Client.app/Contents/Resources/retroclient
9722 ttys001    0:00.00 grep retro

Note the process ID at the start of the retroclient line, 8962. Yours will almost certainly be different, so do the following, but substitute in your own process ID.

$ sudo kill 8962
Password: (enter your administrative password here)

That should kill retroclient. If you repeat the ps -ax | grep retro bit, you should only see grep retro returned.

Now go restart the client with the Retrospect Client application, execute the backup script that failed, and watch with fingers crossed.

If this fails? I got notin’. Sorry. And neither does Google, so you’re on your own…

Good luck!