Thoughts on In-Flight Entertainment systems

I recently spent a lot of time using two different in-flight entertainment systems: one on Eva Air, and another on Virgin Atlantic. For people who haven’t flown recently, I should explain that these systems consist of a touch-sensitive TV monitor combined with a remote-control-sized controller. The systems typically offer music, TV, movies, flight status, and video games.

I believe both systems were based on Linux. I saw the Eva system crash and reboot, and the Virgin Air system has a number of Linux freeware games.

The GUI frameworks were pretty weak – both systems made poor use of the touch screen and had obvious graphical polish issues. The Virgin system was much higher resolution, and was 16:9 aspect ratio. I expect it was running on slightly higher-spec hardware.

Both systems worked pretty well for playing music and watching TV or movies. The media controls were pretty limited - neither system allowed seeking to a particular point in a movie, or even reliably fast forwarding. Both systems provided enough media to entertain your average customer for the duration of the flight.

One cool feature of the EVA system was backwards compatibility mode with the older “channel” music system from the 70’s. The controller came with the traditional “channel” UI. If you used the channel buttons, the system simply acted like the old system, cycling through a limited number of preset channels. One nice difference from the old channel system is that these new virtual channels always started when you switched to them, rather than having to join the looping presentation at whatever point it happened to be in.

The game portions of both sysetems were very weak. None of the games were very good. Perhaps the best game was a port of the shareware Doom game on the Virgin Atlantic system. (I used an in-flight entertainment system on Singapore Air many years ago that had Nintendo games. It was more fun.)

The Virgin system allowed you to order food and drink, which was nice. Both systems had credit card swipers, and offered some for-pay options.

Both systems allowed you to make in-flight phone calls. EVA allowed you to send SMS messages and emails. Both systems allowed you to create “play lists” of music tracks that would then be played while you did other tasks. I enjoyed this, but I suspect it’s not used much, as anyone with the sophistication and interest to use this UI would probably have their own MP3 player.

The Virgin system had two other very nice features: 1) laptop power in most seats (although only two plugs for every three seats), and 2) Ethernet connections. Unfortunately the ethernet connections were not yet active.

Virgin allowed you to “chat” between seats. I didn’t try this, but it seems like it would be fun for some situations (e.g. when a high school class takes a trip.) I expect that the Doom game can play between seats as well, but didn’t investigate.

Virgin also had normal mini stereo headphone plugs, which I think was a good idea. Eva had two kinds of audio plug, but neither one was the normal mini stereo plug. I tried using “Skull candy” noise-canceling headphones with the Virgin system, and while they helped suppress the airplane noise, they didn’t eliminate it completely.

It will be interesting to see how these systems evolve over time. I think that once in-plane internet access becomes practical people will prefer to surf the Internet to using most of the other services. (besides movie watching) And with the in-seat power, I think many people will prefer using their own laptop to the in-seat system. On the other hand, the in-seat system is very space efficient. There’s a chance people will use it as a remote display for their own laptop or mobile phone, which could then remain tucked away in the carry-on luggage.

Wii long term strategy

Here’s a very long, quite good post on Nintendo’s strategy with the Wii: http://malstrom.50webs.com/birdman.html

The thesis is that the mainstream video game market arms race of every-more- complicated games ended up overshooting enough of the potential game market to allow an opening for simpler “down-market” games, and that Wii was able to exploit this opening. The article predicts that Nintendo will now move up- market, producing more complicated games over time, pushing PS3 and Xbox 360 into very up-market niches. Sort of how consoles took over from PC games.

OS X will hang if your VPN connection is flakey

OS X is by and large a good OS, but once you get past the sexy UI you find a lot of rough edges.

For example, this month I’ve been working remotely over a flakey DSL connection. I ran into a very frustrating problem: if you’re using a PPTP-based VPN, and your network connection is poor quality, the whole Apple UI will frequently freeze up with the “Spinning beachball” cursor for minutes at a time.

Luckily for me the work-around is to reboot my DSL modem. But it seems like poor system design for the VPN packet performance to affect the UI of non-networked applications.

Yegge's rant on dynamic languages

Another superb rant by Steve Yegge on dynamic languages:

http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html

The comment section’s good too – especially the long comment by Dan Weinreb of Lisp / ITA software fame. Steve’s got the same problem some of my self-taught friends do (hi Bob, hi Jim!): he’ll say something in a strongly opinionated way, without giving supporting evidence. I think that makes people think he doesn’t know what he’s talking about. So people tend to write him off. But if you talk with him, it almost always turns out his strong opinions are backed by some pretty deep experience and insight. I’ve learned to give Steve (and my self-taught friends) the benefit of the doubt.

Wow, TVs are complicated

Check out this teardown of a Sony OLED TV. It looks like Sony has a standardized architecture for their TVs, which makes sense, but which also means that some TVs have unused capabilities (such as a multi-core CPU powerful enough to run a web browser. I wish an enterprising hacker would figure out how to download code and run them on the TVs – my understanding from reading Sony’s GPL web site is that they already have Linux and busybox installed. Oh well, maybe GPL 3.0 will force Sony to make their TVs user- upgradable in the future.

It’s significant that Sony’s not using the Cell CPU in their TVs. That was part of the justification for spending so much on Cell. I assume this means that Cell’s just not cost-effective for TVs.

Tom Forsyth on Larrabee

Tom Forsyth, who recently left RAD to work at Intel on the Larrabee project, has posted to his tech blog explaining that Larrabee is going to be primarily a traditional OpenGL/DirectX rasterizer, not some crazy raytracer: Larrabee and Raytracing

Dusty Decks

Back in the ’90s I had a home page where I posted some of my code hacks and articles. If you want to see what I was doing 10 years ago, check out:

Jack’s Hacks

(Mostly Java and Anime. Both of which were leading-edge back then, but are kind of main-stream now.)

ThinLisp

Some notes on ThinLisp, a dialect of Lisp for real-time systems. Thin Lisp was written by Gensym Corporation in the ’90s. The general idea is that you develop your program using a subset of Common Lisp, and then compile it into efficient C. Garbage collection is avoided by using object pools, arenas, and similar tricks familiar to advanced C programmers.

The current home of ThinLisp seems to be Vladimir Sedach’s Code Page . Vladimir seems to have used it for “one small OpenGL” project before abandoning it. He seems to be happily hacking ParenScript (a Lisp to Javascript translator) these days.

The Scheme guys have similar, but more modest, sysems: Schelp, and PreScheme (part of Scheme48).

One year at Google!

Happy Anniversary to me! Google’s automated HR script just emailed me its congratulations.

Although I miss my friends and former colleagues at Microsoft, and I miss the games industry, overall I’m still glad I made the switch. I’m enjoying the new work, and learning all the cool Google technologies. Now if only the stock price didn’t keep going down. :-)

Some things I like:

  • Switching from Window to Macintosh. It took me six months to get used to the subtle differences, but as a user I’m just happier with the Mac. It’s easier for me to use. Now, to be fair, at home I still maintain a Windows Vista machine for the excellent Windows Media Center, but for everything else I use the Mac.
  • Better corporate politics. There seems to be less infighting between groups. And while my overall compensation is about the same as it was at Microsoft, the way it’s managed and delivered makes it seem less competitive than MS. Perhaps it’s an illusion, but it feels better.
  • Better equipment. I love using a 30” LCD monitor and a high-end laptop, and I love the “we’ll just give it to you” technical support. At MS sometimes I felt that I had to fight to justify minor hardware purchases.
  • Fancier food in the cafeterias. I usually eat lunch and diner at work, so the tasty and relatively healthy food is much appreciated. Interestingly enough, I think Google Seattle uses the same food caterer as Microsoft does. I guess we just asked them to cook different food.
  • More connected to the Web / Valley culture. Microsoft’s pretty insular. It was good to get closer to the Silicon Valley culture again.
  • Able to use open-source projects. Sometimes the open-source projects are the best way of doing something. But Microsoft’s not able to use it, due to a combination of pride, loyalty to its own products, and fear of viral licenses. For example, using Linux for embedded devices is much better than Windows CE. I also find I liked using non-Microsoft technologies like Java, Python and Ruby.

Since you may be wondering, what do I miss from Microsoft?

  • I miss the Xbox project. Right now my old team is probably starting to plan the next generation of Xbox, and it would have been a blast to have been a part of that process.
  • I miss the free game betas, and using beta software in general. (I’m a sucker for new features!)
  • I miss some of the Microsoft-specific technologies like C# (still better than Java), Visual Studio (still better than Eclipse), and F#.
  • Surprisingly, I don’t miss my old single-person office very much. It’s true that a group office is distracting. But it’s also helpful for sharing ideas and for keeping focused on the project.

Well, that’s it, better get back to work!

Insomniac Games Shares Technology

One very nice habit of Western game companies is that many of them share their technical knowledge with competitors. Insomniac Games is a very good third party console game developer that has concentrated mostly on the PlayStation platform. Their recent games include the shooter “Resistance Fall of Man” and the action platform Rachet and Clank series.

At this year’s GDC they announced the “Nocturnal” initiative. It’s not a whole game engine, but rather a collection of useful utilities. Things like logging code, C++ object serialization, and a cross-platform performance monitor. Some of the utilities are Playstation 3 specific, but most are applicable to any modern game platform.

Much of this code would be right at home in a “Game Gems” book, but it’s even better to have it freely available, on the web, with a BSD-style license. Good for you Insomniac!

Insomniac also publishes technical papers in a GDC-presentation-like format on their Game R & D Page.

Why do so many game companies share information like this? I think it’s for a number of mutually supportive reasons:

  1. It’s a form of advertising, to show off how smart and competent the developers are. This is helpful in attracting job applicants and impressing publishers and game reviewers.
  2. It educates all game developers, some of whom will eventually end up working for the original developer.
  3. It encourages other developers to share their technology, which benefits the original game developers.
  4. It reduces the value of middleware, driving down the cost of middleware.

Game developers can give away source code because, unlike other kinds of software, the major intellectual property in the game is in the copyrighted and trademarked art assets, (the data) rather than in the code. Yet, at the same time, game quality is directly tied to the performance of the code. This creates a unique economy in which it is profitable for game developers to exchange performance tips with their competitors.

And it’s a lot of fun for armchair developers like me. Now if only we can get Naughty Dog to open-source their GOOL and GOAL Lisp-based game engines. :-)