Thursday, July 09, 2009

Industrial Breakfast Robots

My mental model of how manufacturing works is basically the Sesame Street video of a crayon factory, with everything queued up just so, and feeding one at a time into the next step of the process. Thanks to advances in computer vision and robotics, modern manufacturing can look a lot more disorganized since it's apparently easier to make robots that can tolerate variations in their input than to keep everything perfect throughout the pipeline. Here's a video of robots toiling in some sort of breakfast factory:

It's especially cool that the sausage-aligning robot (at 0:30) doesn't need to line things up parallel to the conveyor because the next robot is also capable of picking up the whole set at different angles.

One more video, of a series of robots stacking pancakes. They don't appear to be following any particular pattern as they grab pancakes from the conveyor, but by the end of the line of robots nearly all the pancakes are neatly stacked.

[via Singularity Hub]

Monday, July 21, 2008

Predictably Irrational

I really enjoyed this talk by Dan Ariely (author of Predictably Irrational). The most interesting part to me starts at the 25:30 mark, where he discusses how an unattractive third option can influence people's choices between two better options. The example he uses is a subscription offer from the Economist:
  • Online-only subscription for $59
  • Print-only subscription for $125
  • Print and online subscription for $125
Since the print and web combination is the same price as the print subscription alone, no one chose the print-only option. However, when the print-only option was present 84% opted for the print/web combination, compared to only 32% when that option was removed. It's counterintuitive, but I've noticed myself doing the same thing. When you're making objective comparisions between different kinds of apples, it's tempting to leave oranges out of the picture entirely.

[via Reza]

Thursday, May 08, 2008


I've been playing with Google App Engine and I've created a little app to make the experience of using FriendFeed with Google Reader a little nicer. This app, called FriendFork, lets you create separate feeds for different groups of friends, so you have a little more fine-grained control over them in Reader, as well as providing a little integration with Reader's shared items.

The app can be found at I've created a separate blog for FriendFork-related announcements (the spliced "me" feed linked from this page includes both this blog and the FriendFork one)

Sunday, March 09, 2008

Muscle memory and a broken keyboard

Last week I moved to a new office, and in the process somehow the left alt key on my keyboard got broken. The right alt key still works, but my brain isn't compatible with it. Whenever I would try to use a keyboard shortcut that would normally use the left alt key, I'd accidentally type the mirror-image version. I'd hit alt-backslash instead of alt-tab, and in emacs I'd mix up M-d and M-k or M-space and M-backspace.

Some of you may be noticing that space and backspace aren't mirror images on your keyboard. The keyboard in question is a Kinesis contoured keyboard, which moves several keys to more convenient (but apparently more vulnerable) thumb-accessible positions. I highly recommend it for anyone concerned about Emacs Pinky.

Now that I've moved the ctrl and alt keys to my thumbs, I think it might be nice to do something about the shift keys (especially since I've never been able to break myself of the bad habit of typing capital letters one-handed). For my replacement keyboard I traded up to the "Pro" model which includes a foot pedal that can be used as a shift key. (This possibility came up at a recent lunchtime discussion about keyboards in which I uttered the completely ridiculous sentence "I need a memory upgrade for my keyboard so it can work with a foot pedal.") I'm not sure I'd have any better luck training myself to use a foot pedal than I have training myself to use normal shift keys properly, but it's an interesting idea.

Thursday, September 13, 2007

A tale of two shooters

Mike Bostock writes:

I just played Metroid Prime 3 for thirty minutes, and now have a crippling pain in my right hand from mashing the A button. Not to worry, I can still type, especially when livid enough to rant; I'll type through the pain for this.

Amen. I'm a little more positive than Mike (I lasted longer than him before getting frustrated), but my enjoyment of Metroid Prime 3 is still limited by my tolerance of the terrible ergonomics of the Wiimote as a first-person-shooter controller. I loved the original Metroid Prime, and liked Metroid Prime 2, but when I'm thinking "your save points are too far apart" because I cannot physically endure the controller any longer, there's a problem. (Unlike Mike, I think the problem has less to do with repeatedly mashing the A button and more to do with holding the wiimote on a target while mashing the A button, but either way it's a poor design).

I admit that part of my problem is that after an hour I thought "'normal' mode is too easy, I'll try 'veteran'". I have since switched back to 'normal' mode from 'veteran', and when/if I catch up with my previous saved game I'll see how that turned out.

My experience with Metroid Prime 3 has really put my experience with the other hot first-person-shooter of the moment, Bioshock in perspective. When I finished Bioshock, I thought it was too easy and it wasn't as good as my memories of System Shock 2. So I reinstalled and replayed System Shock 2. After that experience, I decided that Bioshock was close to the right difficulty, and even System Shock 2 wasn't as good as my memories of System Shock 2. SS2's story still holds together a little better than Bioshock's under close scrutiny, but of all the games I've mentioned in this post, Bioshock is the one I'm most likely to play again.

Thursday, April 12, 2007

Remap Macbook Pro Enter key to Exposé

Apple's laptop keyboards have an "Enter" key to the right of the space bar and command key (it's different from the "Return" key which is in the usual place). I have no idea what it's supposed to be useful for, but since it's so easy to reach from the touchpad, I like to assign it to the Exposé function. You can reassign the Exposé hotkeys in System Preferences, but it limits you to the F-keys. This tip explains how to assign Exposé to other keys, but it doesn't work for the Enter key on a Macbook Pro because the keycode has apparently changed. I used Full Key Codes to determine that the correct keycode for the Enter key on a Macbook Pro is 76 (it was 52 on the G4 Powerbooks).

I assign "Expose all windows" to Enter, and "Expose desktop" to Command-Enter (I don't use "Expose application windows", so I left it on the default, F10). If you want to use this setup, you can save my configuration file to ~/Library/Preferences.

If you try to edit this file yourself, be aware that there's some incorrect information in the tip linked to above (it's corrected in a later comment). Here's my summary of the process:
  • Go to the Dashboard/Exposé System Preferences pane and touch every hotkey setting to ensure that the file is created.
  • Open ~/Library/Preferences/ You can either use Property List Editor (included with Xcode, I think) or any text editor (it's xml).
  • The sections within this file are numbered, and they're in a strange order:
    • 32: Expose all windows (default F9)
    • 33: Expose application windows (default F10)
    • 34: Slow motion expose all windows (default Shift-F9)
    • 35: Slow motion expose application windows (default Shift-F10)
    • 36: Expose desktop (default F11)
    • 37: Slow motion expose desktop (default Shift-F11)
  • There are three parameters in each section.
    • The first is always -1 as far as I can tell; I don't know what it does.
    • The second is the keycode (F9=101, F10=109, F11=103, Enter=52 for Powerbooks and 76 for Macbook Pros. Use Full Key Codes to find codes for other keys).
    • The third is the modifier key: None=0, Shift=131072, Control=262144, Option=524288, Command=1048576. You can add these numbers together for multiple modifiers (for example, 1179648 is Shift+Command)
  • After you've edited this file, save it and log out. Once you've done this, don't touch anything in the Dashboard/Exposé preferences, or you might lose your customizations.

Sunday, March 18, 2007

Updated Gmail search bookmark script

Recently, Gmail changed the URLs they use for domains (i.e. Google Apps). This change meant that my Gmail search bookmarks were reloading the page more often than they should (which slows things down and interferes with Gmail's chat features). I've fixed it now, so if you use my Gmail search bookmark script with a customized domain, you should recreate your bookmarks to pick up the change.

Friday, March 02, 2007

Happy Birthday, Dr. Seuss

I grew up reading Dr. Seuss. I especially liked the elaborate machines like the ones in The Sneetches. Years later, when I was learning about computers and programming, I would visualize computers working like some sort of Seussian contraption. The longer I've been in the software business, the more appropriate the analogy seems. The Star-On and Star-Off machines started out as small boxes and expanded via an outgrowth of components that never quite fit together correctly. Sylvester McMonkey McAfee McBean also pioneers the business model of fixing problems with software by selling more software.

The animated version of the Sneetches is difficult to find on DVD, but it's available on Youtube:

Monday, February 26, 2007


I've had my Wii for a little over a month now, and thanks to Gamefly, I've been able to sample a number of games for it. I think the system has a lot of potential, but it will be a while before developers really take advantage of the system, and the best games for the Wii will almost certainly be very different from the best games for other systems.

Wii Sports is the best Wii game I've played so far. Zelda may be a better game overall, but it's not really a Wii game - it's a conventional game that happens to be available on the Wii. Going through the motions in Wii Sports is a lot of fun, and shows once again that having the right controller can make or break a game. It's unclear how well the software is actually modeling your actions, since random motions are often rendered as well-formed swings in the game, but Wii Sports demonstrates that the underlying model doesn't have to be perfect to be fun.

The controller is really three devices in one - a conventional controller with a joystick and buttons, a pointing device (using the sensor bar), and a motion sensor (using the accelerometers in the the two parts of the controller). The trouble is that these modes don't work together all that well - you can't really wave the wiimote around and hold the pointer on the screen (although Rayman's "point with the remote and act with the nunchuck" pattern works fairly well), and no matter how you hold the controller some of the buttons are going to be awkward to reach. The relative lack of easily-reachable buttons is the biggest problem for games designed with other systems in mind - developers have to use motions like "shake the nunchuck" to accommodate the variety of actions found in many games. This hidden-button syndrome doesn't really add anything to the games and probably makes them less approachable to novice gamers than they would be on a more conventional system (in contrast to Wii Sports, which is the epitome of approachability).

My biggest disappointment in the controls has been the pointer mode. It takes a steady hand to, for example, pick a letter from the on-screen qwerty keyboard and press the button without moving the pointer, and I find the hand position required to keep the pointer on the screen to be very uncomfortable. I've put the sensor bar on top of my TV but configured the Wii to think it's below the screen. This way I'm always aming into the space above the screen, which I find to be a more natural hand position. Playing this way isn't as weird as it sounds. You already have to watch the on-screen cursor instead of the angle of the remote (since there's no calibration for the size of your screen), so you don't really notice the added vertical offset.

I had hoped that the pointer mode would mean that the Wii could accommodate the kinds of games that are still at their best on PCs with a mouse and keyboard (primarily real-time strategy and first-person shooters), but now I'm not so sure. The control scheme used in Red Steel is worse than the usual two-joystick approach in my opinion. To turn your character, you have to position the cursor near the edge of the screen and leave it there while your character turns. It's like having a mouse you can't pick up when it reaches the edge of the pad. The Rayman-on-Rails plunger-shooting levels were a lot more fun because you could focus on aiming and shooting; movement was out of your control.

Taking movement out of the player's control is a recurring theme in the Wii's best moments. Wii Sports Tennis removes tennis video games from their Pong-based roots by making the challenge not about putting your player in front of the ball (the game moves for you), but just about making each shot (which mostly means timing). Conventional games have used most of their control "bandwidth" for controlling character movement (often using two analog sticks for position and orientation), while the actions you take once you're in position are abstracted behind simple button presses. The Wii turns that around, with the potential for richer and more immersive control of your actions, but less control of movement (at least in comparison). This is a relatively unexplored area of game design, although some of the best games I've played recently fall into the "actions, not movement" category: Guitar Hero and Trauma Center (DS). Now that the Wii has become a commercial success, I'm hopeful that we'll see some interesting new ideas for it.

Quick comments on the games I've tried:
  • Wii Sports - Simple and fun; the best reason to own a Wii.
  • Zelda - Excellent as usual, but doesn't break any new ground.
  • Elebits - Katamari Damacy meets the Half-Life 2 gravity gun, although it's not quite as awesome as that sounds. The controls can be frustrating when you're doing anything but flinging objects around the room.
  • Warioware - By far the most varied use of the wiimote. Slightly less frantic and unpredictable than other games in the series since it has to tell you how to hold the wiimote in each round.
  • Rayman Raving Rabbids - Great sense of style and humor.
  • Excite Truck - It's no Mario Kart, but it's enjoyable as long as you don't care about realism in your racing games.
  • Red Steel - It's an OK game, but I got really frustrated with the controls.

Tuesday, January 09, 2007

Grey Legoo

Legos don't need humans to reproduce anymore - check out this automated Lego car factory. Of course, this Lego duck assembly line still has a long way to go before it catches up with the old-fashioned duck factory. [via Laurence and zefrank]