Older blog entries for oubiwann (starting at number 260)

Uncle Canonical Wants U!

you and uTouch, that is. And more!

Do you love Ubuntu? Are you an HCI freak? Are you an X hacker, kernel driver maintainer, Linux input enthusiast, Qt or GTK application developer, C/C++ hacker?

Do you enjoy being part of online technical communities? Are you actively involved in open source projects? Do you enjoy advocating for software?

Do you love test-driven development and thirst for high-quality open source software running on devices with touch interfaces?

Does the idea of working from home in your own time-zone, on cutting-edge, strategic projects at Canonical have you sitting on the edge of your seat?

If so, then please send me your resumé/CV! I'm looking for a few brilliant engineers as we grow our Product Strategy teams (DX, Design, and others).

Syndicated 2011-01-21 14:08:00 (Updated 2011-01-21 15:09:28) from Duncan McGreggor

Canonical and Codethink at Bostom GNOME Summit

Today is the second day of the Boston GNOME Summit, and the second day of Canonical providing morning sustenance for the hackers here. Codethink and Canonical coordinated these efforts, with Codethink sponsoring food later today. It warms my heart that we can do this sort of thing.

Yesterday Cody Russell and I held a session about getting a gesture API into GTK 3.x. There were a great many questions about the uTouch framework, how we're handling multi-touch in the absence of MT support in X (coming in XInput 2.1), and what sort of dependencies would be needed (none! if GEIS is present on the system, gesture support will be added at build-time). At the end of the session, there was a consensus for Cody to present his plans to the GTK developers list and then to start getting branches reviewed for merge. We're hoping to make it for GTK 3.2.

In this vein, Cody and I have been hacking on libgrope for GTK compatibility, and this is serving as the sandbox for the GTK 3 gesture API development. My efforts have been focused on creating the GTK 2 Python C extension for grope. Given that the last time I coded C was in 1989 (and then a bit later in the mid-90s, when I had to hack a slackware driver to get ethernet working), this has been quite an effort. However, after a night and morning of hacking, I've got a handle on C extensions and am using the example code I wrote as the basis for pygrope. I've even managed to rope Barry Warsaw into reviewing the C extension code for us, to be sure we're not doing anything too crazy :-)

The Python C extension will be of immediate use to us in our test harness for gestures and exercising the stack. We will be creating a GTK app for recording user gestures for later playback and inclusion in test suites.

Syndicated 2010-11-07 16:54:00 (Updated 2010-11-07 17:19:22) from Duncan McGreggor

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:

Syndicated 2010-10-19 18:10:00 (Updated 2010-10-19 18:42:16) from Duncan McGreggor

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...

Syndicated 2010-10-18 20:04:00 (Updated 2010-10-19 05:17:32) from Duncan McGreggor

16 Oct 2010 (updated 19 Oct 2010 at 02:06 UTC) »

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 :-)

Syndicated 2010-10-16 20:17:00 (Updated 2010-10-19 01:35:42) from Duncan McGreggor

16 Oct 2010 (updated 16 Oct 2010 at 19:08 UTC) »

Q


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!

Syndicated 2010-10-16 16:41:00 (Updated 2010-10-16 18:10:09) from Duncan McGreggor

14 Oct 2010 (updated 3 Nov 2010 at 21:05 UTC) »

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...


Syndicated 2010-10-13 13:45:00 (Updated 2010-11-03 21:03:07) from Duncan McGreggor

7 Oct 2010 (updated 16 Oct 2010 at 19:08 UTC) »

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!

Syndicated 2010-10-07 20:41:00 (Updated 2010-10-16 18:09:36) from Duncan McGreggor

21 Sep 2010 (updated 16 Oct 2010 at 18:08 UTC) »

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.


Syndicated 2010-09-21 12:31:00 (Updated 2010-10-16 18:07:50) from Duncan McGreggor

251 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!