Ubuntu and Touch

Watching this video of Ubuntu’s touchscreen functionality in action is pleasing, but not exciting. There’s nothing really revolutionary going on here. Open-source has been dragging it’s feet on touch for a while, and this is just Ubuntu finally catching up to where it should have been a couple years ago. On the other hand, it also highlights a significant problem with a lot of current thinking about touch, and consequently casts Ubuntu in a pretty good light.

There’s no shortage of screeds and critiques aimed at the very concept of the tablet. These devices have been dismissed as toys, fads & unnecessary luxuries. But all the criticisms I’ve seen so far miss the point. Touch isn’t about tablets vs notebooks. In a few years, computers will just all have touchscreens, and users will operate them by keyboard, mouse or touch as needed. This video demonstrates that Ubuntu is being designed in this direction, as are iOS, Windows 8 & Android.

Users of all systems will benefit from touch, not as an alternative input option, but an additional one. And in this respect I think Ubuntu has a pretty good lead. Apple is carefully building iOS up to being it’s de-facto operating system for casual use. Google is pushing Android and Chrome OS in the same direction. Microsoft is offering both Metro and it’s regular desktop in Windows 8. These are all interesting strategies, but just don’t seem all that compelling next to Ubuntu. With Ubuntu you get a fully-fledged OS, with the same interface and applications on whatever device you happen to be using. And all this for free.

Hopefully, Canonical will get this to where “it just works” ASAP, and Zareason will finally start selling that open-source tablet it’s got waiting in the wings.

CSS3 3D Slide Bugs

I made the rash decision to do the slides for my Wordcamp 2011 presentation using 3D CSS and touch events on an iPad. I felt this was in the spirit of things, since I was talking about mobile theming. I realized, too late to change my mind, that it would be harder than I thought.

The main problem was getting the touch powered buttons to work with the 3D structure. Both of these things, by themselves, are easy to set up. The code I used for my touch powered buttons I mostly just stole from this post by developer Seb Lee-Delisle. The 3D stuff I mostly learned from this article on 24 Ways by David DeSandro.

My plan was to be able to rotate the carousel by touch: just drag it back and forth and have it snap into place. But while tracking the movements of a finger across the screen was easy, taking that value and turning it into degrees of rotation for the carousel was a bit much to have done in time for Wordcamp. So instead I just stuck in some buttons that rotated the carousel by 36 degrees (there are 10 slides, so 360 / 10 = 36.)

The result of this harried, hackish approach is that my slides are pretty buggy. As it turns out, this isn’t such a bad thing; these are easily the most interesting CSS bugs I’ve ever seen:

  • If you tap the left and/or right buttons as quickly as you can, the entire carousel gets narrower and narrower. This works with mouse clicks as well>
  • The up and down buttons on slides 3, 4, 8 & 9 only respond to taps along their left edges. Mouse clicks work normally. The only thing these slides have in common is that 3 and 8 lie along the same axis, as do 4 and 9 (when viewing slide 3, 8 is directly behind it; when viewing slide 4, 9 is directly behind it.)