99% of Keyboards Suck

Published at 20:50 on 28 January 2012

Really, it’s amazing how crappy computer keyboards generally are. I was just at Fry’s getting the capacitor I’m going to try replacing, and had a chance to try out their keyboard selection.

The dominant “rubber dome” technology provides absolutely horrible tactile feedback: the electrical action takes place after the main mechanical action that one feels. Therefore, the only recourse if you want to type quickly is to bang on the keyboard like crazy, to ensure each key stroke hits home and causes a character to be entered. This causes fingers to get much more tired than they need to, because one is exerting on average far more force than one needs.

The only keyboard technologies that provided proper tactile feedback were ones made using IBM’s “buckling spring” technology (which I think is the best), and some mechanical keyswitches (which can get pretty darn good, too). Every subsequent technology has had no advantages for the user whatsoever: the only advantages newer keyboard technologies have has been for the manufacturer’s drive to cut costs.

What astounds me is not that the cheapest keyboards feel like crap (one would expect that, you’re getting pure “dollar engineering”), but how many keyboards with $100-and-up price tags (even ones advertised as “ergonomic”) also felt like complete crap when I tried them. Making a fancy curving layout so one’s hands can be held at a natural angle but using a technology that forces (at the cost of failing to enter the random character) users to use unnecessary force is like having a restaurant that serves a turd as dessert, but frosts it elegantly in icing and serves it on a sterling plate.

The only keyboards that weren’t absolute crap were two models by Razer geared towards the gamer crowd. While spendy, they were still less expensive than many of the crappy ones.

Oh, Crap

Published at 12:57 on 28 January 2012

My expensive Unicomp keyboard has been acting up as of recently. For a few hours this afternoon I thought I had fixed it simply by reseating a loose connector inside the keyboard itself. Now it’s acting up again.

I’m going to try replacing the one electrolytic capacitor in the thing, even though it looks OK, just on the off chance it is infested with capacitor plague. But at this stage I’m decidedly pessimistic about its prognosis. Everything else on the thing is a surface-mount component, and the most likely culprit is the single proprietary IC on the logic board.

Meaning that it’s probably replacement time.

Update: Yup, definitely replacement time. Just tried replacing the capacitor, and the quirky behavior remains.

Learning Cocoa is Slow

Published at 16:54 on 5 January 2012

(For the non-geeks, Cocoa is the user interface library on the Macintosh. It’s what lets you write programs that use the familiar windows, menus, alerts, and whatnot that a typical Mac program has.)

Part of it is learning a new language (and not precisely a nice, clean one: Objective-C is almost as crufty as C++), part of it is that the innards of the Mac just seem counterintuitive to me.

On the former issue, there are actually alternatives to Objective-C, including as of recently C#, a language which is far more modern and easy to use. Unfortunately, most of those are open-source projects as opposed to things with Apple’s explicit sanction and blessing, and as I’ve said before, shoddy documentation is the Achilles’ heel of open-source software.

Which raises the latter issue: the documentation and design of Xcode seems to be based on an assumption that both Xcode and Cocoa are intuitive. It documentation keeps talking about how Xcode makes everything easy and logical. For me at least, it certainly is not.

However, slow as the process of fighting with Xcode is, at least Xcode and Objective-C are fairly comprehensively documented by Apple. I hate to think of how much more difficult trying to learn Cocoa in C# would be.

My Irony Meter Exploded

Published at 14:36 on 22 December 2011

… when reading a Craigslist job posting titled “PHP Programmer & Fine-Code Connoisseur // $110,000 (Seattle)”. PHP is a textbook example of the hazards of someone who has insufficiently studied language design designing a language. No genuine “fine-code connoisseur” would want to touch PHP with a 10-foot pole.

The unrealistic salary indicates that it’s a pretty transparent example of a sleazy recruiter trolling for résumés. PHP jobs tend to pay less than those using most other platforms, precisely because anyone with enough smarts to be a good programmer doesn’t want to touch the language.

Can XP be as Rigid as the Waterfall Model?

Published at 11:39 on 28 September 2011

I think that, ironically enough, it can.

I interviewed at some anonymous company that was big on XP (aka “Extreme Programming”): pair programming, test-driven development, etc. One thing I will say is that they did a very good job if interviewing, giving candidates an actual opportunity to try the techniques they use out.

And one thing that struck me about test-driven development was that it makes it very difficult to write code in a bottom-up fashion. The basic response was something along the lines of “you just don’t do that.” Lovely. A powerful and productive technique that you “just don’t do” because the methodology you have required people to adhere to does not allow for it.

And what if programmers sometimes come up with better ideas on their own? Sorry, no can do, either. Pair programming doesn’t allow for alone time.

“Sorry, we’d like to incorporate that feature change, but we’ve frozen the feature set because the software is now in alpha test. We just can’t do that.” Funny how the supposed diametric opposite of the traditional waterfall model ends up sounding so much like it.

The problem here is one of taking rules too seriously. Any set of rules — it fundamentally does not matter which ones. You cannot fix such a problem merely by choosing the right set of fixed rules, no matter how enlightened the motivation behind the choice of them might happen to be.

If you can’t make exceptions for exceptional cases, you’re going to end up sometimes forcing people to act like stupid robots, doing something suboptimally because that’s the only way The Rules allow for it to be done.

Unproductive Social Parasitism

Published at 10:50 on 23 September 2011

Really, can there be any other succinct summary of the highly dubious practice of cybersquatting (or “domain investing” if you’re a fan of the Newspeak of the pro-cybersquatter crowd)?

If you don’t need an Internet domain name yourself, simply don’t buy it and it will be available for purchase by someone who does. Buying a domain just because you think someone else might want to buy it later and be willing to pay an inflated price contributes absolutely nothing to society. In fact, it harms others, by complicating the process of obtaining a domain and compelling them to pay more than they otherwise would have.

Sure, it’s legal, but it’s neither ethical or socially useful.

Safari Javascript Sucks

Published at 13:43 on 16 September 2011

I’ve known about it for some time, of course, but my recent move to WordPress has driven it home yet again. The WordPress screen to create and edit blog posts makes heavy usage of Javascript. It also hangs about 50% of the time one hits the “Publish” or “Update” buttons when using Safari. I have yet to have it hang on me when using Firefox, and of couse (after being burned by Safari during my first few attempts), I use Firefox much more often than Safari to post here.

Really, this has to be one of those “what’s their problem, anyway?” moments. Safari has had an absolutely lousy Javascript engine (by far the worst one of any major browser) for years.

It’s a pity, as it’s otherwise a very nice browser.

Some Notes on the Transition

Published at 17:15 on 13 September 2011

  • I decided to pay money to host the blog myself, because that option allowed me to avoid Google/Blogger’s creepy terms of use while also avoiding WordPress’ broken CMS (which the hosting site WordPress.COM forces you to use) for hosting the old entries.
  • Regarding those old entries, I eventually gave up on trying to import them into the new blog software. It’s too much of a headache to do with WordPress (which perverts imported HTML in strange and unpredictable ways).
  • Regarding the blog software, I settled on WordPress, because it’s a popular platform, and of the popular platforms it can run on the least expensive hosting services.
  • My main motivation for the transition was to join the modern world and have my blog available for syndication with RSS.

And We’re Up at Last

Published at 16:31 on 13 September 2011

It was a process fraught with difficulties, both in converting the old blog to a new format (something I essentially gave up on), and in getting this blog hosted (there were a number of hiccups in the process, you should have been seeing this message on Saturday). And there’s still a fair amount of configuring to do.

Ah, well. The main part of the deed is done at last.