Wednesday 2008/04/30
9:53 PM

Categories:

Apple, Tech, Technology's Betrayal

1 Comment

Keyboards Extended II

Update 2008-05-02: Got a SteelSeries 7G to try. It’s a non-starter, because on the Mac the “SteelSeries” function key occupies the left-hand Alt/Option key position and can’t be remapped. When ordering it I thought they had just put the SteelSeries logo over the standard Windows key. So I’m sending it back. Just for reference, the keys are the black Cherry switches with no click. Now I’m looking at importing a Filco Majestouch FKBN104M/EB from Japan.

My previous post brought me a bunch of emails and comments with keyboard suggestions, so I decided to do a quick rundown of their recommendations in a separate post.

John Gruber (whose tag-team podcast episode with Dan Benjamin kicked off all of this typing) has put up a flickr set of his retired Apple Extended Keyboard II. Note the well-worn groove in the spacebar.

A while back while disappearing into this rabbit-hole of a keyboard search I read this overview of the different keyswitch types. The article also has a good note on how most keyswitches require less force to actuate than people apply, and this is due to the amount/type of tactile feedback that the typist receives. It also refers to the Strongman switch, which I believe is in my Matias Tactile Pro 1.0. Interestingly enough, my Tactile Pro looks exactly like a rebranded Strongman board. Hrm. Speaking of the original Tactile Pro, here’s Khoi Vinh’s review from 2005, which led me to both the Tactile Pro and the Macally iceKey.

The new Apple Aluminum Keyboard got more than a few mentions, for a variety of reasons: some cited the small form factor, others the handy OS X-specific function keys. My bosses gave the office a nice surprise a few months ago and bought every employee one of these, and I think only two people (myself being one of them) declined to use it after trying it out. My other coworker said the Caps Lock behavior (where it requires a long press for activation) drove him batty, and that was enough for him to reject it. I found the key travel too short — I had expected it to feel like my Macbook’s keyboard, since it’s basically the same layout, but the keyfeel is different in my opinion.

Jake Seliger, Eric Hood, and Perrin Haley all recommended the buckling-spring (using the same tech as the IBM Model Ms) models from Unicomp. I may order one of these Unicomp boards and see whether it’s an acceptable noise level for the office. Jake Seliger also has a good review of the Matias Tactile Pro 2.0. His review mentions the “shadow/ghost keys” issue with the original Tactile Pro, which I use at home. I haven’t had it happen all that often, but it is annoying when it does since it’s usually when you’ve built up a good head of steam.

I got two mentions for the Das Keyboard II, which has no markings, only scooped F and J keys so you can center your hands. I had thought about ordering one about six months ago but my ever-increasing reliance on TextMate key commands means that this would be an exercise in frustration since that’s the one time I look at the keys and need to see the characters. The Das Keyboard uses keyswitches from Cherry.

Ryan Singer mentioned the Happy Hacking Pro 2. It can be ordered unlabeled, just like the Das Keyboard II.

The one that I’m most itching to try was suggested by Sam Lentz: a SteelSeries 6G. Sam wrote me: “…the keyboard you are looking for exists, but comes from an unlikely place. It is designed by a hardcore computer game hardware manufacturer called SteelSeries.” A blog post from SteelSeries has all the hype over the 6G. Once again, Cherry keyswitches make another appearance. Sam pointed me to this review which mentions the relative noise level, but sadly the recorded sound files are dead links. I’m not sure if there’s a difference in keyswitches between the 6G and the newer 7G; the 7G appears to be easier to find from online retailers. I think I know where part of that economic stimulus check is headed.

Finally, there’s the waffle keyboard.


Monday 2008/04/28
8:25 PM

Categories:

Apple, Tech, Technology's Betrayal

19 Comments

Keyboards, Keyboards

tactile pro

Update 2008-05-08: Jake Seliger just posted a review of the Unicomp (Model M-type) Customizer

Update 2008-05-06: Found the geekhack.org forums, which provided some nice feedback on different mechanical keyswitch models.

Update 2008-05-01: I’ve compiled most of people’s suggestions in a follow-up post.

This is why I love The Talk Show: in Episode 20, Dan Benjamin and John Gruber spend an entire hour discussing keyboards, specifically the Apple Extended and Extended II . If you’re someone content to hammer away at a sponge-y membrane keyboard like the ones that ship with virtually every computer these days, then dedicating an entire hour listening to two guys talk about keyboards seems insane. If, like me, you’ve spent years looking for the ideal keyboard, then starting today’s podcast was like being in the desert and seeing a faint reflection, (just there!) over there on the horizon. Could it be water?

I had hoped the podcast would bring news of a new, magical keyboard, one combining the precise feel of mechanical keyswitches (like the old IBM buckling-spring Model Ms or the aforementioned Apple Extended line) with the lower noise of scissor switch or membrane keyboards. Sadly, they confirmed my own suspicions: in a perfect twist of irony, computer makers have let the single most important input device stagnate.

I have a few good keyboards, both of which are mentioned in the podcast. The Matias Tactile Pro pictured above is what I use at home, and I like the feel of the mechanical keyswitches. Unfortunately, the super-clacky metallic ringing is a little too much noise for the office, even one that blasts music over office-wide wireless speakers. I’m don’t know how the feel compares to the revised Tactile Pro 2.0, but I will say that I enjoy this keyboard the most of all the ones I’ve tried the last few years.

Not wanting to force everyone around me to wear headphones all the time, I switched to the Macally iceKey, which uses scissor-switch keys like you would find on a laptop. The feel is pretty good and snappy and noise is fairly low, so it makes a decent compromise. It isn’t a pleasure to type on, however — if it were a hockey player it’d be a good second-line player: 25-30 goals a year, maybe 35 in a contract season. But that’s about it. I tried the new low-profile Apple Aluminum keyboard for an afternoon, but the feel was inferior to the iceKey so I’m right back where I started.

Benjamin and Gruber end the episode with an offer to buy mint-condition Apple Extended/Extended II keyboards from whoever still owns one. I’m casting an eye to the future, however. Experiments like the programmable, LED-tastic Optimus Maximus are great, but surely it’s time for some company out there to start putting some thought into core keyboard technology again — something with a precise mechanical feel that’s also well damped for sound. Something like the Leica of keyboards — built like a tank, mechanically precise, and whisper quiet.


Friday 2008/04/25
4:05 PM

Categories:

Flash/Actionscript, Technology's Betrayal, Web Dev, Work

So Flash, the Registered TM Symbol, and a URLRequest walk into a bar…

At work we ran into a little issue on how to pass the registered trademark symbol ® from flash to the user's mail client via a mailto: call. We originally tried jamming it into the string like so:

Actionscript:
  1. var tmessage:String = "%26%23174%3B";
  2. var _req:URLRequest = new URLRequest("mailto:?subject=hello&body=" + tmessage);
  3. navigateToURL(_req);

We had hoped that the email client would receive the string and decode it properly, but instead it simply rendered it as ®. Searching the web for help was complicated because "register" and "registration" appear so often in forms and unrelated content.

In the end, some experimentation and reading of the documentation for the URLRequest class led us to this solution:

Actionscript:
  1. package
  2. {
  3.     import flash.net.URLRequest;
  4.     import flash.net.*;
  5.     import flash.display.Sprite;   
  6.    
  7.     public class SendToFriend extends Sprite
  8.     {
  9.        
  10.         private const MESSAGE:String = "This message is from dirtystylus®";
  11.        
  12.         public function SendToFriend(): void
  13.         {
  14.             send();
  15.         }
  16.    
  17.         private function send():void
  18.         {
  19.             var _req:URLRequest = new URLRequest("mailto:");
  20.             var variables:URLVariables = new URLVariables();
  21.             variables.subject = "hello";
  22.             variables.body = MESSAGE;
  23.             _req.data = variables;
  24.             _req.method = URLRequestMethod.GET;
  25.             navigateToURL(_req);
  26.         }
  27.     }
  28. }

The URLRequest class has a data property, to which one can assign a URLVariables object containing stuff that we were trying to jam into the string as name/value url-encoded values. Assigning the variables to the data property also automatically urlencodes them before the URLRequest is sent, so in the final solution we just plugged the "®" symbol directly into the string, and it was urlencoded properly and emerged in the email body intact.


Tuesday 2008/04/22
11:33 AM

Categories:

Family, Friends, Photos, Travel

Wedding Weekend

Back from Malvern, PA, where Jordan and I attended Caroline and Brad's wedding. Photos from the digicam are here. I shot a few rolls of film with the Leica that I'll get developed this week.

It was a beautiful weekend — on the drive down on Friday it seemed that everyone had played hooky to take advantage of the weather. I was shuttling several boxes of cupcakes from Joyce bakeshop for the rehearsal dinner, and they were an absolute hit. I felt kinda bad for eating three, considering I can get them here anytime. But the feeling went away after a few bites.

The day of the wedding we were apparently within spitting distance of an Obama rally in Paoli, the next town over. Caroline wanted to show up in her wedding dress for a photo op with Barack.


Wednesday 2008/04/09
2:19 PM

Categories:

Apple, Flash/Actionscript, OS X, Ruby/Rails, Web Dev

Plugout - Flash Player Version Switcher

Update 2008-12-16: A coworker found that simply typing "plugout" has the (unintentional?) effect of deleting the flash plugin entirely, which is useful for testing with no Flash plugin at all.

While developing the recent AllStateGarage.com site I had to do regression testing on different versions of the Flash Player, to make sure that both the swfobject embedding script and the built-in ExpressInstall upgrade functionality were working properly. After doing a bit of searching I found Plugout, which in a brilliant twist of fate was written by Aaron Smith (the guy behind RubyAMF that we used on the AllstateGarage.com project).

Plugout is a command-line utility that makes switching to different versions of the flash player easy. You can specify the plugin, version number, and browser. It's smart enough to restart and run the browser under Rosetta if the plugin version is PPC-only. For example, to switch to Flash Player version 9.0.28 in Safari I fire up Terminal and run:

CODE:
  1. plugout -p flash -v 9.0.28

You can also add different plugin versions as they get released, including debugger versions of the plugin (the debugger versions are denoted by a "d" following the version number). For example:

CODE:
  1. plugout -p flash -v 9.0.115d

The only wrinkle I ran into when using Plugout was that Ruby is required for it to work. This isn't a big deal to Leopard users, since Ruby is included, but before I upgraded to OS X 10.5 I just ran the plugout command in a shell session launched from within a Locomotive Ruby context. Speaking of Locomotive: development has been halted on the project, mostly because of Ruby's inclusion in OS X Leopard.