rosscarter.com

Recent comments

  • A better iPad keyboard, 27 June 2010:

    The idea of a “flickeyboard” sounds great, but I have to say it still leaves me a bit hesitant. I know that the iPad will never be a true computer replacement, at least as far as typing is concerned, but typing is one of the things I do a lot of, and I can’t help but think that having to learn a “new” way of typing would put me off…

  • A better iPad keyboard, 13 May 2010:

    I meant the original article….not the first comment.

  • A better iPad keyboard, 13 May 2010:

    Ditto.

  • A better iPad keyboard, 24 April 2010:

    Ross,

    interesting idea, but if you look at your mock-up, PC keyboards and Mac keyboards, you’ll se that Apple generally doesn’t print additional characters on a keyboard. Your mock-up illustrates why: The additional glyphs are *very* distracting and make it harder to pick out the main glyphs. I could see a smaller selection of glyphs like on a Mac keyboard, though. And maybe have a little scrolling animation to change the contents of the key caps while keeping the layout the same, and showing the current glyph bigger than the other one.

    The select key feels too geeky for me. Mode switches are *evil*. Tap-and-hold to get the selection with handles, and then moving both nodes sounds just fine to me.

    Oh, and simple correction: “decide I want to change I to we, when I delete the I the shift key is engaged and I end up typing You instead of you.” ‘You’ should be ‘We’.

  • Snow Leopard’s Giant Step Backward, 16 April 2010:

    Don’t you have a way in the Mac to specify which extensions are opened with which applications? In Windows, in the File Types dialog box, you can map an extension to an app. e.g., if you want gifs to always open in PhotoShop instead of Microsoft Office Picture Manager. I would suspect if they changed the underlying code to open by extension, then they should have added that capability, too.

  • iPad: the world has changed, 29 January 2010:

    It’s still lacking tactile feedback. I can type very fast even with my eyes closed on my computer, but there’s no way this can work without feeling the keys under my fingers. So I’d say that this keyboard is suited only for casual typing.

    That said, many people need to look at the keys even on a physical keyboard. To those people, it’ll make much less of a difference. Context-dependent keyboard arrangements are great too. This isn’t something you can do well with a physical keyboard.

    So, I’d probably put Excellent instead of Outstanding for the iPad’s keyboard. It’s better on the flexibility that a regular physical one because it can rearrange itself, but worse for heavy typing where you can benefit a lot from tactile feedback.

  • Snow Leopard’s Giant Step Backward, 21 January 2010:

    Peter, I think LaunchCodes will work great for you. I use TextMate every day, and I no longer have the problem of files opening in TextEdit.

Feeds

Recent articles

2 August 2009 | No Comments

Let’s all go to the Microsoft Store!

Microsoft retail stores are going to open soon, and I can’t wait.

I simply love going to an Apple store and browsing through all the cool Apple hardware: Macbooks, iMacs, the Mac Pro, Time Capsule, iPods, iPhones.

So when the Microsoft store opens, I want to go get my hands on all that cool Microsoft hardware, like Read more »

24 July 2009 | No Comments

Great iPhone app: Years

For the last few weeks I’ve been beta-testing my friend John Eddie’s iPhone app, Years. It’s now been released. I recommend it.

Years quickly became the iPhone app I use most frequently. I hadn’t realized how often I simply want to look at a year’s calendar. Not a month, not a week, not a bunch of detail about appointments, but just the current year, scrolled so today is in the middle.

Years

That’s exactly what Years does. It defaults to the current year, and allows you to view other years. There’s a month view where you can scribble on a date to mark it.

Years points up the problem with most calendar apps: they do too much. There’s no end of enhancements you can add to a calendar: appointments, alarms, view as list, and so on. Those are useful features and I’m grateful that Calendar provides them.

The brilliance of Years is its restraint: it recognizes that most of the time, I just want to look at a calendar. Apple’s Calendar app displays at most one month at a time, so I frequently have to flip between months. It’s not really a calendar, but rather an appointment book.

Years reminds us that some useful things work best when they remain simple. How many weeks until Christmas? What day of the month was last Friday? How many days until we leave on our trip? That’s the sort of question I ask every day, and the answers have never been as easy to find. With Years, there’s no punching around to get the correct month and layout. It just pops up the calendar I want.

I wonder how I got along without it.

25 June 2009 | No Comments

Fan of Steve Jobs? Sign an organ donor card

When I learned that Steve Jobs received a liver transplant, I realized that I had not signed the organ donor card on the back of my drivers license.

I’ve often wished I could thank Steve for fostering this wonderful Apple world in which I spend so much of my life. I don’t imagine that sending him a get well card or a bunch of flowers would do either of us any good. So I’ve resolved to sign up to be an organ donor.

Steve’s health situation brought home to me how many people have to watch their life slip away day by day while hoping desperately that an organ will become available. We’ve all read about the lengthy waiting lists. Invariably, the lists have been reported as mere numbers: 80, in this state, 200 in that state, and so on. But this is not about numbers, is it? It’s about human lives, about real people whose approaching death can be prevented only by the kind act of a stranger.

If you are a Mac fanatic, I encourage you to resolve this moment to sign an organ donor card.

20 April 2009 | 3 Comments

NSNirvana 2009

I have just returned from the best conference of all time. NSConference 2009, in Hatfield, U.K., was perfect in so many ways I hardly know where to begin.

The facility: The deHavilland Conference Center seem to have recruited their employees from the Society of Happy Helpful People. The room was just right, the food was excellent, the beer was real, and my stay there was delightful.

The speakers: I’ve written about how programmers are smart. The speakers were the smartest of the smart. The presentations were engaging, informative, useful, and well planned.

The organizers: The entire event reflected Scotty’s infectiously jolly character. As it turns out, he’s quite an organizer, too. For a first-time event, the smooth and efficient operation was remarkable. His motto could have been, “All needs anticipated, all preferences accommodated.”

The design competition: The conference closed with an inspired idea: two teams of developers were given a set of requirements and had to design, but not build, an application. It was all the fun of Iron Coder without the work. Scotty kept saying the idea might be a disaster. It wasn’t.

The attendees: NSConference 2009 was populated by developers from all over Europe, with a few North American infiltrators added to the mix. What made the group especially cohesive was our shared experience with the loneliness of being a Cocoa developer. Here in Kentucky I am certainly never going to meet another Cocoa developer, and I’m sure my European counterparts know the feeling. We don’t have a NSCoder Night to attend. Our wives and girlfriends might listen sweetly as we talk about AppKit, but it’s not the same, really. So, you throw a hundred of these guys together and you can be sure they are going to have a great time.

All the folks I met at the conference write code and inhabit a spot somewhere along the trajectory of application development: from the thinking about it stage, to the actively working on it stage, to the selling it and making money stage. At other conferences I’ve attended there were writers and CEOs and representatives from big companies mingled among the coders. At NSConference, we were all coders.

And that might explain why, from the opening moments of the conference, we were all talking about next year. It’s just inconceivable that such a wonderful event would be a one-off; there simply has to be one next year. Banks may fail and economies may sour, but please oh please let there be NSConference 2010.

When the taxi driver took me to the train station on the morning after the conference, he shook my hand and wished me a pleasant journey. It had to end just that way. The taxi driver’s little pleasantry was emblematic of the time I spent in Hatfield.

The friendships forged at NSConference 2009 will last a very long time. Thanks, Scotty.

10 April 2009 | No Comments

Fairness Doctrine, will ye no come back again?

Funniest thing I’ve read recently: today’s letter to the editor from a guy complaining that our local paper is too liberal:

In a little over two months, President Barack Obama’s administration committed more missteps and faux pas than in all of Bush’s eight years, yet hardly a word of this is mentioned in your paper. If it wasn’t for Fox News, I wouldn’t have known about it.

31 March 2009 | No Comments

When Programmers Dream

For the past four years I have been engaged pretty heavily in developing a computer application. A typical day, seven days a week, finds me at work shortly after I’ve finished reading the morning paper, and still programming ten hours later.

During this period I have grown familiar with trained and experienced Mac developers. I follow their blogs and tweets, and meet up with them at conferences. As I continue to know and understand developers, I find myself comparing them to the other profession that I know fairly well: lawyers.

I practiced law for twenty years or so. Happily, I am now fully recovered. The lawyers that I knew were without exception trained in the law (well, they had three years of law school) and many were quite highly experienced. You might think that with all that education, and all that mental exercise, lawyers as a whole would be fairly smart. Maybe they are. All I know is, Mac programmers are smarter.

Most of the Mac developers I know have a computer science background, but it is not at all unusual to find one who, like myself, is self-taught. One cannot say that programmers are smarter than lawyers because programmers are better educated. Yet on the whole, when I think of the conversations I’ve had with members of the two professions, the programmers seem altogether more articulate, better informed, and more adept at reasoning to their own conclusions. I had much rather talk to programmers, on any subject, than to lawyers.

As for myself, well into middle age, my logical faculties seem to be increasing. I’m slower, but sharper than I ever was. The thought struck me this morning when I remembered a dream I had last night. I was running along a beach, being chased by a pack of angry savages. I outran them and paused to ponder their next move. “Spears and arrows,” I thought. “What can I do for protection against the incipient barrage of spears and arrows?” I spied a thicket, and crawled into it as the projectiles became tangled in the brush over my head. Then I thought, “They know where I am, and will track me by my footprints. How can I escape from this spot without leaving footprints?” Then I remembered the beach. “I’ll swim!”

Whether the pursuers would have seen me in the water was left unresolved. What is clear is that in this dream, I stopped to reason things out. This dream is not at all unusual. I realized that these days my dreams are more likely to place me in a situation where I have to think my way out, than to place me in a situation where I merely observe events.

Is that a consequence of the type of thinking I’ve been doing lately? I certainly never had such dreams when I was practicing law.

And here, I posit, is why. We expect computers always to produce the same result for the same input. There are few, if any, anomalies; if something unexpected happens, then it’s a bug and we fix it. The operating system or the network might not provide the result I expected, but it will always produce that result, and once I know the result I can deal with it.

In law, anomalies are commonplace. Two judges, both competent (just imagine, if you will), might rule differently on precisely identical questions. Tomorrow they might rule differently. I remember one day early in my career when a lawyer in motion hour made the same argument I was going to make in my case. He won. When my case was called, I made the same argument and lost.

I think that if judges were as predictable as computers, I would have been the sharpest lawyer in town.

Over time my professional judgment improved, but I never worked in a cycle where I proposed a solution, evaluated the result, and proposed another solution until I got it right. Many times I knew beyond question that a proposed law was unconstitutional, but no court in the state would be willing to strike it down. I was a better lawyer for knowing that, but not any smarter.

I learn more in one day of programming than I learned in six months of practicing law. I learn how to think through problems and how to reach the true solution rather than just finding something I can argue with a straight face.

This entire essay is mere subjective speculation, and I am blithely unobligated to cite corroborative facts. Form your own opinion whether programmers are, on the whole, smarter than lawyers. For me, there’s no doubt. You’re a lawyer? Nice to meet you, but I really have to be going. You write Mac software? Come on over, I’ll buy you a beer.

18 February 2009 | No Comments

NSConference 2009

I’ll be there!

17 January 2009 | No Comments

After 39 years, I finally use the quadratic equation

When I was in high school, my buddies had a simple test to tell when we’d had too much to drink. If you could could recite the quadratic equation, you could have another beer.

Whether the test kept us sober I can’t recall, but it did drill the incantation into my memory: “negative b plus or minus the square root of b squared minus four a c all over two a.”

If I ever knew what you would use the equation for, it quickly faded along with a thousand facts like the population of Guyana, retained only for the duration of a geography test. Over the years, though, I’ve caught myself checking my mental state by reciting the quadratic equation, so those words stuck, like the first stanza of “O Captain My Captain.”

Yesterday I needed to convert a linear scale to a logarithmic scale. I’d set up an NSSlider control that allowed the user to select values between 0 and 1. I wanted to weight the values so that the halfway value would be .75 instead of .5, the three-quarters value would be .95, and so on.

After some trial and error I found that I could get the logarithmic scale I wanted by taking the slider’s value x and running it through this formula:

y = x + x * (1.0 – x)

That’s exactly what I wanted: the slider values 0, .1, .2, .3, .4 .5,.6, .7, .8, .9, and 1.0 came out as 0, .19, .36, .51, .64, .75, .84, .91, .96, .99, and 1.0.

Then it dawned on me that I also had to perform that operation in reverse.

At first I was totally bewildered. I tried rewriting my little formula to get x on one side by itself so I could solve for it. No luck. y = x * (2.0 – x), y = 2x – x squared, -y = x squared – 2x; I just couldn’t come up up a solvable expression.

Then I remembered the quadratic equation.

Hmm. I tinkered with my formula and got it into the form 0 = x squared – 2x + y. Aha! In the quadratic equation, a would be 1 (the value that you multiply times x squared), b would be 2, and c would be my y value. I could then solve the quadratic equation and get x.

A little tinkering with the quadratic equation reduced it to this: x = -(((square root of (4.0 – (4.0 * y) )) – 2.0) / 2.0). Imagine my joy when I plugged in the logarithmic y values I had calculated earlier and got the linear x values.

I learned the quadratic equation as a sophomore in high school. That was thirty-nine years ago. I’d never encountered a practical application for it until yesterday. I guess high school taught me useful things after all.

Now, excuse me while I go look up the population of Guyana.

9 January 2009 | No Comments

Write your Help files before you release your beta

That’s what I learned this week. Fortunately I made the right decision. Read more »

15 October 2008 | No Comments

Without a comma, the clause isn’t subordinate

In Microsoft’s description of their Open Specification Promise they state:

We listened to feedback from community representatives who made positive comments regarding the acceptability of this approach.

Because the sentence implies that they didn’t listen to feedback from representatives who made negative comments, I’m inclined to believe that the omission of a comma after “representatives” was deliberate.