Tuesday, October 19, 2010

Probabilistic Input for uTouch?

Well, it seems to be the season for a flurry of multi-touch posts. Guess that's helped along by the release of uTouch in Maverick and next week's Ubuntu Developer Summit multi-touch buffet :-)

One of the talks that John, Mark and I enjoyed greatly at UIST was Julia Schwartz's presentation on "A Framework for Probabilistic Input". Julia's an HCI PhD student at Carnegie-Mellon and works in their exciting dev lab. The UIST paper was written by Julia, Professor Hudson, Professor Mankoff, and Andrew Wilson (the latter of Microsoft Research).

One of the reasons I was personally so deeply appreciative of the paper was that when we were building the uTouch framework, Henrik Rydberg and Chase Douglas brought up issues around input uncertainty, and started proposing ways that might be employed to counter this. Getting plugged into folks who are working on this actively and thoroughly is phenomenal.

Since UIST 2010, the uTouch team has been in contact with Julia, sharing ideas and asking questions. Today we had a call with her and Professor Scott Hudson; as such, we have now started exploring possible avenues of development for probabilistic input support in uTouch. Scott and Professor Jen Mankoff will be attending part of UDS this year, and we've set up a session where they can share their research with us and engage in discussions, Q&A, etc., about it, and explore ways in which we can start moving forward on this in Ubuntu (and Linux in general).

The UIST talk slides and related paper are available here:

Monday, October 18, 2010

A Visit with System76

Earlier today, I had the pleasure of visiting Carl Richell and part of the System76 crew in their Denver offices today. Pictured to the left is their very sweet Starling NetBook. I became an instant fan, due to the sleek good looks, a fantastic keyboard, and a flawless installation of Ubuntu. Carl also showed me the Starling EduBook, which I completely fell in love with. There's a charter school in Colorado that bought a whole mess of these guys, and the kids at school adore them... and how could they not? A rugged, easy-to-use Linux netbook with Edubuntu installed on it? Total win.

Before getting a device, personnel, and facilities tour, Carl and I talked shop: uTouch, the future of multi-touch in Linux, Unity, Ubuntu on a plethora of devices. You know, the usual good stuff. I asked him what he'd like to see in Ubuntu that he feels would be necessary to totally rock out the tablet experience. His list of top picks echoes the sentiments of many people with whom I have had similar conversations. In no particular order, the list goes something like this:
  • fully-working auto-rotate
  • a great on-screen keyboard
  • browser, music, video, photo, and document apps -- all with a user interface designed for touch
  • the ability to deliver and play games
  • a sweet note taking app that integrates with email
  • TV remote control support
Much of this is already scheduled for discussions in UDS sessions next week :-)

Carl's excited about UDS and the continued conversations that will take place there. As am I. But I also can't stop thinking about that Starling NetBook... I'm going to be replacing my ailing AspireOne with System76's gorgeous offering...

Saturday, October 16, 2010

Multitouch and Qt

It's been 11 days since the Qt announcement of new gesture support, and I wanted to blog about it right away... but alas, now will have to do. The folks at Qt have been working on multi-touch support for a while now. They blogged about gestures, multi-touch, Mac support, Windows support, and then at UDS in Brussels (May 2010), they shared their 4.8 plans for multi-touch with the Ubuntu community.

Until recently, there has been no MT stack for Linux. The great news is that the folks at Qt are very interested in getting Qt to work with uTouch. Stephen Bregma has been working on the GEIS API that toolkits will have the option of taking advantage of, and we were delighted to hear from Zeno and Denis that the Qt API they have envisioned and planned is very similar to GEIS, and should make for an excellent match. They are going to be talking with the community about this at UDS two weeks from now, in fact :-)

In support of Qt's commitment to multi-touch and gestures, I wanted to encourage folks to take a look at their post about Qt Quick, Qml, and Gestures. The source code is now available for viewing, and we've started to dive into it ourselves, and it seems that others are as well (I know some GTK guys who are double-checking their own plans by looking at what Qt has done so far).

Also, if you haven't taken Qt Creator for a drive yet, do so; it's an impressive GUI editor/IDE for Qt, and I've really enjoyed it so far. You can enable GUI visual design for Qml projects by going to the "Help" menu and selecting "About Plugins..." after which, you will need to check the box next to "QmlDesigner" (under "Qt Quick"). Also, a nice cherry on top: the Qt Quick design interface looks stunning with the Ambiance theme in Ubuntu -- the color scheme is a perfect match :-)

Q & A: The Ubuntu Developer Summits

Last week I had a nice email exchange with a good friend of Ubuntu, Professor Michael Terry at the University of Waterloo. We met at UIST 2010, but he and Ivanka Majic have been conferring about design and usability in Ubuntu for a while. Delighted with UIST in general and specifically with conversations Mark, John, and I had with Michael and one of his students, we invited them to UDS in Orlando at the end of October.

Coming from an academic institution (and an HCI lab in particular), Micheal had some questions about UDS, how to prepare, and the ways in which it might be different from various academic conferences. I asked him if it would be alright to share our conversation with the wider open source, academic, and professional communities, many of whose members will be attending UDS in Orlando for the first time. He was only too glad our conversation might benefit others :-)

I've edited the content slightly for a blog format (and for improved clarity), but it remains in essence unchanged:

Q: Since we're all kind of new to UDS, could we pick your brain a bit? :-) As we plan for attending, we're trying to envision how to best use UDS.

A: UDS is very practical in spirit, so it's actually fairly straight-forward to make good use of it. The purpose of attendees is to:

  1. Engage with developers, community members, users, etc., on well-defined topics for software in Ubuntu, the software that builds Ubuntu, Ubuntu itself, the community, or the prominent tools and technologies that are build on Ubuntu.
  2. Assemble and execute. After each discussion, each topic should have enough information and feedback such that the direction forward in any given project is clear. Next steps can be taken immediately (whether that's actual development, coordination, etc.).
The enormous amount of discussion that takes place there is recorded (some sessions with video, all with shared notes), so very often folks formalize this information as a spec.

For a list of the wide range of categories covered at UDS, check out this page (still in progress): http://uds.ubuntu.com/tracks/

To give you more of a sense of things:
  • There are lots of rooms, each with two projected screens: an IRC channel for that physical room, and a network-shared communal notes screen.
  • Sessions are about 50 minutes long, with breaks every few sessions.
  • Large monitors are placed in the halls with the schedule for the day displayed, so that folks can more easily find the sessions/rooms they want to be in.
  • There are topical plenaries for two hours after lunch that take place in a auditorium so that all who want to attend, can.
In other words, it's very active :-) Lots of moving about. Lots of intense discussion in short sessions.

Q: What is an ideal outcome from your perspective (and from our perspective)?

A: The ideal outcome is consensus on the discussed topics, unblocking all involved, and moving forward with a shared vision.

Q: What kind of work or goals do we want to accomplish while we're there?

A: In general, you want to attend the sessions that are meaningful to you, share your views during the discussion, and hopefully convince those present of the necessity of what you envision :-) If your vision needs adjustment, then UDS is the perfect place to get it tweaked and reach a mutual agreement with community members about a form suitable for an action plan.

Q: You just saw us in our "native" environment -- an academic conference; how is qualitatively different from such conferences?

A: Yes, that sort of scenario is a prototypical academic environment: disseminating of memes for processing and adoption in a particular field. The essence of that exists in the open source world: meme's are very important to us, but often implicit in nature; they arise as generalizations of practical experiences with implementation. However, they are only the first step (or a supporting factor for other steps).

The primary focus of the attendees at UDS is pragmatic: "Let's do X." As such, UDS attendees partake in a meme-disseminating event, the object of which is to generate project plans, task lists, direction changes, etc., within each given project (be it software, governance, or others).

Q: Any ideas/guidance on how to think about and plan for UDS?

A: Hopefully what I wrote above should give you enough of an intuitive feel for the environment that you'll have a good idea of what you can do... but just in case, I'd focus on doing the obvious, like putting together notes/supporting material for the sessions that you are interested in. In addition, though, you want to spend some time thinking about how to engage session attendees such that they are motivated to attend the session(s) and speak up while attending.

Well, that's all there is to this Q & A. I hope folks new to UDS will find this conversation useful.

We look forward to seeing Micheal and the rest of you at UDS!

Wednesday, October 13, 2010

Ubuntu 10.10 Multi-touch Video

As many are aware, we released our maverick Maverick a few days ago. Part of what comes with Ubuntu 10.10 is the new uTouch stack. We been having lots of really great talks in the public IRC channel (#ubuntu-touch, Freenode.net) and on the general multi-touch mail list (subscription info at the bottom of that page). More and more folks are trying it out, experimenting, and contributing.

As part of the "Maverick Movies" initiative, fellow employees Gerry Carr, John Lea, and Neil Patel worked on getting this little gem produced (embedded to the left; here's the full-sized version). Gerry has written an excellent blog post about it here.

This video shows off most of the touch capabilities that were integrated into Unity for Maverick. Neil Patel (fellow Big Lebowski fan) and John Lea will be working very closely together during Natty to expand this feature set to take more advantage of the gesture capabilities of uTouch. Simlarly, Henrik Rydberg will be working with them to enhance the uTouch gesture engine. And all of us will be working on the newest addition to the uTouch family that Mark mentioned in his blog post: a gesture language. More on that later :-)

For right now, let's check out this video! For the impatient, the target list of gestures in Unity is available in a gestures guidelines document, lovingly put together by John Lea and Mark. As one might expect, there's a lot there. If you skip to section 5, you'll be able to get a nice visual overview of most of the gestures with some descriptive text. For those who chose to watch the video first, here's what you saw:
  • single taps (i.e., a touch "mouse click")
  • a window grab (three-finger touch, let one up)
  • moving the window (three-finger touch, let one up, move it around)
  • drag up to maximize
  • drag up and right (or left) to fill the right (or left) half of the screen
  • un-maximize (use the drag gesture on the maximized window)
  • bring up the dash (4-tap)
  • bring up all windows for one app (three-pinch)
  • bring up all windows (three-pinch again)
Have fun playing with Unity on your touch devices! There's lots more to come...

Thursday, October 07, 2010

Multi-touch at UDS-N in Orlando, October 25th-29th

The up-coming UDS in October is looking to be quite fantastic. The community around the Ubuntu distro is, as always, deeply involved, passionate, and eager to break new ground... but lately there seems to be even more than the usual anticipation. We're seeing folks getting involved for more than Ubuntu, and this is an interesting change.

At UDS people tend to focus on Ubuntu and the Ubuntu community. As the "Ubuntu Developer Summit" this makes obvious sense :-) Maybe it's just my own perceptions, but it seems that when we engineers get deeply involved in something, less and less of the outside world makes it through the filters, potentially leading to situations of isolated development. Reflecting on how our interests are connected to others' can open the view back up, and I think lots more people are doing that these days.

Ubuntu is not just a community; it's also part of a community. Part of many communities, in fact -- very large and thriving ones. The obvious candidates come to mind: Linux, GNOME, KDE, GTK, Qt, the massive collection of upstream applications. But there are more and subtler ones.

All the work that Ivanka and the Design team have done over the past year and a half has brought open source software into a new place with regard to aesthetics and how to make our applications more appealing to people across the globe, folks who don't have the same engineering-based perspective on software that we have. This is hugely important and I personally feel that I owe the Design team a HUGE debt of gratitude for what they are doing for something I hold dear to my heart: open source software.

The other big change I've noticed (perhaps mostly because I'm neck-deep in it!) is the rallying that has happened around multi-touch. Hackers, academics, industrial researchers, casual enthusiasts and business folk alike are interacting on IRC and the multi-touch mail list to a greater and greater degree. Amazing cross-project cooperation is taking place, and setting really excellent precedences. It seems that the field of Human-Computer Interaction is starting to find and hold its own in the larger open source community. And we're reaching out more, too -- some of us from Ubuntu recently attended UIST 2010 in NYC and had fantastic discussions with the other attendees there. I expect that we'll be more and more present at events like these.

There are other examples of this sort of thing happening elsewhere in the open source world, within projects as well as companies that sponsor them. It's very encouraging to see such new forms of growth and evolution in our midst :-)

Now down to business! If you can make it to UDS, you'll be in for a treat. The Platform team has been hard at work refactoring the UDS experience. Tracks are no longer based on and named after teams inside Canonical who are primarily responsible for the tech. Instead, a series of brainstorms have resulted in a very natural and organic approach to community discussions: areas of interest. This was done in such a way as to encourage very strong cross-pollination of ideas and development strategies. Projects from all across the open source world, team members inside and outside of Canonical, and passionate individuals will have new opportunities to impact decisions about the software that not only goes into Ubuntu, but which gets incorporated into many other distros and projects as well.

The tracks are listed at this UDS page, but I will duplicate that here for the lazy :-)
  • Application Developers
  • Cloud Infrastructure
  • Performance
  • Multimedia
  • Hardware Compatibility
  • Application Selection and Defaults
  • Ubuntu the Project
  • Other
As a particular example, the sessions focusing on multi-touch technology in Linux and its toolkits, applications, etc., intersect with many of these (Application Developers, Performance, Multimedia, Hardware Compatibility, Ubuntu the Project, etc.). The same is true for other projects. Tracks that used to be dedicated to Desktop, Server, Foundations, etc., are now going to be exposed to a more diverse audience that focuses on individual's interests, brining community members even closer to the goodness they love :-)

If you're interested in tracking multi-touch sessions, you can watch our session planning evolve at the link below:

We've still got one more blueprint coming: A Gesture Language. I haven't had a chance to compile my notes about this yet, but when I do, there will likely be another blog post just discussing the exploration we want to do around the idea of such a language at UDS.

If you can't make it to UDS, remember that we broadcast live streaming audio and project IRC channels for each room up on a screen so that all present can read remote comments and respond to listeners' questions.

Hope to see you there!