Tuesday, September 21, 2010

The Growing Linux Multi-touch Community


There has been a lot happening with the intersection of the Linux and HCI communities of late; it seems that the Linux community is getting more and more involved in not just multi-touch, but human computer interaction as well. It's not just for researchers anymore :-)

X.org

The X.org recently held XDS in Toulouse, France and by all accounts it was absolutely fabulous. I hear folks had some great discussions a day or two prior to the event and hope we get to hear about those :-) I'm watching Peter's blog for an update and hope that Chase will do the same when he gets back from Taiwan.

Point-of-Sale

A few weeks ago, I was delighted to hear from Gene Mosher (inventor of touchscreen point-of-sale) on the multi-touch mail list. We had a good conversation about his use case and I am really looking forward to checking out the work he's done.

Community Support

Folks have been popping into IRC (#ubuntu-touch on Freenode) on a more regular basis, asking everything from beginners' questions to exploring deeply involved technical issues. Fabián Rodríguez has been helping out with community support, as have the core developers. In combination, the team is able to get most folks up and running, sometimes even with non-supported hardware. (Oh hell, they're gonna hate me for saying that publicly! Here comes the flood...)

PyMT, Qt, and GTK

Of particular note, we've been having really amazing interactions with PyMT and Qt folks, and it's great to see those relationships growing. Mathieu Virbel of PyMT has done some fantastic work on adding Python support to mtdev and is currently running PyMT on those bindings. Christopher Denter (another PyMT-er) has shared some really great stuff about Movid, a project he co-founded and one that we're keeping a close eye on.

On the Qt side of the house, Denis Dzyubenko and Zeno Albisser have been making great strides in MT development. Originally working on the gestures API for QT, Denis has recently taken over for Bradley Hughes on the multi-touch support in Qt. Zeno is a project lead for improving the gesture API. Stephen Webb from the DX multi-touch team will be working with them closely in the coming cycle.

Cody Russell has started chatting with Carlos Garnacho, Ryan Lortie, and others in the GTK community about getting full support of MT in GTK (continuing on Carlos' excellent work). These conversations are expected to ramp up at GTK Hackfest in Spain, and continue at UDS in Orlando, FL. With most of Cody's Maverick work done now, he's been able to pick up some prototyping he did last month and run with it some more. I can't wait to see the results :-)

Ubuntu on the Phone?!

And for dessert, I have saved this amazing bit of info: we recently received an email on the multi-touch list from Lukas-David Gorris who is working on the HTC Linux project. It turns out, he is running Maverick on the HTC HD2 (Leo) and is testing the uTouch framework with this device. Henrik Rydberg is helping him debug issues in his spare time. We were completely stunned to not only to hear about Maverick running on an HTC, but attempts to use uTouch on it!

The HTC Linux project looks really awesome. I hope they get more community interest, as this is the sort of project that gives Linux its power base: development and support from the community that large companies rarely invest in themselves. HTC Linux is a major step towards the prevalence of Linux on phones.

Though not Ubuntu, this is also a perfect time to mention MeeGo: another effort being made with the Linux community, and a rare exception to the "rule" of big companies not putting their money on the line. MeeGo is a joint effort between Nokia and Intel to produce a Linux distro for phones (and other devices). MeeGo has a focused touch effort, as well (I'm subscribed to the mail list).

This is a huge boon to Linux, and like the HTC Linux project, very, very cool stuff.


Thursday, September 02, 2010

HCI at Canonical


uTouch

Back in March, I blogged about future possibilities (in a blue-sky sense) of multi-touch, mentioning the project management I was doing for MT hardware kernel driver support in Lucid (and then proceeding to dive into the deep end of speculation). It's now an Ubuntu cycle later, and holy crap... I'm having a hard time finding the words. I think the blog title says it all. But I'll try to elaborate :-)

Unless you've been living under a rock, you've probably noticed the big announcements we made a few weeks ago:
For the next few days, we were all over Google news. This was quite a shock, given that we'd been heads-down into the project for so long and hadn't really come up for air nor fully anticipated the impact (to others or ourselves). Needless to say, after the intense amount of work that the team had engaged in over the previous couple months, this was quite gratifying, if somewhat unexpected.

There has been a lot of discussion in blog posts, mail lists, IRC (#ubuntu-touch on freenode.net), Launchpad bugs and merge proposals, etc., so much so that touchscreens now pursue me feverishly when I sleep at night. I'm really not interested in writing more of the same :-)

As such, I want to mix things up a bit...

HCI Remixed

I've been reading an amazing anthology of essays on human-computer interaction. I still haven't finished the book (yeah, I've got about 10 in-progress titles on my nightstand), but am relishing every word in this particular collection. The book is HCI Remixed: Reflections on Works That Have Influenced the HCI Community.

While doing some research at the beginning of the Maverick development cycle, I came across HCI Remixed at the local library -- the title intrigued me and I couldn't resist. Weeks later, after having maxed out the number of times I could renew the book, I just purchased it -- I simply couldn't get enough of the book. Every essay I'd read up to that point was fantastic; each one provided volumes of information, experiences, insights, ideas for follow-up, etc. Whenever I finished one essay, I spent days and sometimes weeks reading up on references, pondering the past and future of human-computer interaction.

Due to the unusual nature of the book, describing it is surprisingly difficult. That being said, the MIT Press page gives you a great taste:
Over almost three decades, the field of human-computer interaction (HCI) has produced a rich and varied literature. Although the focus of attention today is naturally on new work, older contributions that played a role in shaping the trajectory and character of the field have much to tell us. The contributors to HCI Remixed were asked to reflect on a single work at least ten years old that influenced their approach to HCI. The result is this collection of fifty-one short, engaging, and idiosyncratic essays, reflections on a range of works in a variety of forms that chart the emergence of a new field.
If you're into HCI, learning from others, and discovering new sources of inspiration for your own work, this is simply a must-have book :-)

A Small Piece of History

By the time I checked the book out of the Golden public library, it was May and we had begun building the MT team. By July -- once it became clear how astounding the team's work was -- I realized that in 10 or 20 years I could very well be writing an article about Henrik, Chase, Stephen, Ikbel, and Rafi. Much like those in the book, I could be sharing the conversations I'd had with Stéphane Chatty, Mark Shuttleworth, Neil Patel, David Siegel, and John Lea. And that's only the crew which which I was collaborating or discussing directly. There are a lot of folks who've been working very hard on multi-touch infrastructure solutions and exploring ways of integrating these for several years (e.g., Peter Hutterer and Carlos Garnacho).

Though many foundations have been laid, as of yet (to the best of my knowledge), no Linux distribution has released a multi-touch stack that integrated gestures in a unified manner across everything from applications to window managers and beyond. This was something that Mark wanted us to provide to the open source world. In this spirit, the multitouch team hasn't just hacked things together to get a product out in time. A lot of generative, creative thought and care has gone into uTouch. A lot of original problem solving has taken place. Physics PhDs, kernel hackers, X.org hackers, driver creators, application integrators, toolkit gurus -- all of this knowledge was concentrated, applied, and used to distill a first approximation of what a gesture stack in Linux could look like, using the latest available technology and methodologies.

To be honest, we weren't really sure we could pull it off. There was a very good chance we could have failed at our task, quietly chalking up the loss as a lesson learned. Now that we've managed to shape these ideas into actual software, taken the threads of dreams and woven something real, we are thrilled to be engaging with others to see where all of us can take multi-touch and gestures from here.

Thanks to expert input from the wider open source community, we're already looking at ways in which we can improve upon the first version, ways of bringing new ideas and experiences to developers and users of multi-touch hardware running Linux. Things are only just warming up, and the greatest contributions have yet to be made. Every single person in the community has before them a world of possibilities for getting involved and creating the future human-computer interfaces for the free and open source world in the coming weeks and months. These are indeed exciting times.