January 26, 2012

 

Women in Ubuntu and Free Open Source SoftwareI have always been impressed by the roles women have played in the history of modern society as a whole and I’m always delighted to see women involved in the advocacy of Ubuntu and FOSS (Free Open Source Software). I’m constantly trying to encourage guys I meet to have their wives, girlfriends and women relatives get involved in Ubuntu whether it be them attending a release party or coming to a global jam.

There are so many reasons to have women involved in Ubuntu and FOSS the most important being that their ability to contribute is equal to that of men and their involvement can only lead to other women seeing contributing to FOSS as more than just something guys can do.

The Ubuntu Women project plays an excellent role in the Ubuntu Community and I personally would love to see women be more involved in the Ubuntu Oregon LoCo and I’m trying wholeheartedly to make that a reality in fact at every event we hold I distribute Ubuntu Women material in the hopes women will get ahold of it and check out the Ubuntu project.

I’m sure that Ubuntu Oregon is not the only LoCo in the world that does not yet have women involved on a regular basis and I would love to learn what other LoCo’s are doing to try to engage women and get them involved in their LoCo’s and Ubuntu in general?

 

 

Originally Posted At: Benjamin Kerensa dot Com

on January 26, 2012 03:06 AM

Welcome to the Ubuntu Weekly Newsletter. This is issue #249 for the week January 16 – 22, 2012, and the full version is available here.

In this Issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

  • Elizabeth Krumbach
  • Benjamin Kerensa
  • Chris Druif
  • Amber Graner
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

on January 26, 2012 01:02 AM

January 25, 2012

We have uploaded a new Precise linux kernel. Please note the ABI bump.
The most notable changes are as follows:

* Upstream jack detection patch set
* Add reboot_pid_ns to handle the reboot syscall

The full changelog can be seen at:

https://launchpad.net/ubuntu/+source/linux/3.2.0-11.19

on January 25, 2012 10:04 PM

We’re hitting the road in 2012 with talks and Charm Schools all over the US. Find us at Strata, POSSCon, the OpenStack Conference, railsconf, NodeConf, gluecon, Velocity, OSCON, RubyConf, SURGE, QCon, and LISA 12!

Check out our Event Calendar for dates!

on January 25, 2012 09:48 PM

The WordPress-plugins repository at Github is now updated and has all the plugins mentioned in the previous article. If you want to help with the development, test the plugins and send some feedback, including issues on the Github issues tracker. The next step at an unforeseeable date in the future, is uploading the plugins to the WordPress plugins directory. However, this needs testing and if at all possible, code review – I’m already waiting for feedback.

on January 25, 2012 08:15 PM

21

Omer Akram

So I just turned 21years old

If you are planning to send me a gift i would prefer a notebook that atleast have i3, my netbook really suck.

Or send me a Galaxy Nexus though personally I am waiting for Galaxy S3 but free is free :*

Contact me using my email ;-)

kthxbye


on January 25, 2012 07:18 PM

Keen KDE Software users can find Plasma and KDE Applications 4.8 updates in the backport PPA for 11.10 and compiling now in the main archive for our development release.

Bugs in the packaging should be reported to kubuntu-ppa on Launnchpad. Bugs in the software to KDE.

To update, use the Software Repository Guide to add the following repository to your software sources list:

on January 25, 2012 06:37 PM

4.8.0 is out :)

Sebastian Kügler

Simply the most polished, fast, flexible, beautiful and elegant desktop, ever.

KDE Plasma Workspaces, Applications and Platform 4.8 Improve User Experience

on January 25, 2012 04:25 PM

It’s everybody’s second-most favourite time of the release again. No, not the actual release, but it’s Ubuntu Developer Week!

Ubuntu Developer WeekJoin us from Tuesday, 31st January 2012 to Thursday, 2nd February 2012 for three action-packed days full of tutorial and hands-on session all around Ubuntu development. We spared no efforts to bring you a very diverse set of topics and a very diverse set of speakers as well. This time we managed get speakers from Australia, Brazil, Canada, Czech Republic, France, Germany, Hungary, India, Italy, Pakistan, Poland, South Africa, Spain, UK and USA.

No matter if you are new to Ubuntu development or quite experienced already, we are sure going to have an interesting session for you. Here’s just an excerpt of the great things to come:

  • Packaging: find out how software is put into Ubuntu and how it’s maintained. We have a variety of hands-on sessions where Ubuntu developers share their experience with you. It’s the perfect time to get involved.
    Sessions: Intro to Ubuntu development, Getting set up, Dos and Dont’s, working with Upstream projects, building packages locally, using pkgme for automatic packaging, writing good changelog entries, distributed development and loads more.
  • Quality Assurance and Bug Fixing: One of the greatest ways to contribute to Open Source is resolving problems. Not only for you, but for millions of users out there. Join in to find out from experts how to make Ubuntu even better.
    Sessions: Bug lifecycle, triaging bugs, fixing small bugs in lots of different settings, automated testing, and lots of hands-on action
  • Writing code: we will talk about apps, tools, projects and infrastructure to make writing software for Ubuntu even easier.
    Sessions: automated testing, pair programming, code review, technology overview, introductions to many cool technologies and making your apps rock.
  • Ubuntu projects and Ubuntu in the bigger picture: Ubuntu has grown dramatically and lots of different project make the awesomeness we release every six months. Find out who’s doing what and what’s new.
    Sessions: Ubuntu TV, Edubuntu, juju, the Cloud, Unity and Debian.

Joining in is trivial. Use normal IRC (even a web browser will do) or install Lernid and connect.

We put lots of effort into this great event. 31st January to 2nd February will be a great time and just for you. Bring your friends and your questions.

As this is generally asked very often: yes, we will keep logs of all the session if you shouldn’t be able to attend. We will make them available on the Ubuntu Developer Week page.

More info:

on January 25, 2012 03:02 PM

January 24, 2012

Tongue in cheek.

Should Ubuntu announcements seem like a comedy show? As far as HUD goes, I like the idea. I just find the idea of it replacing menus completely to be bonkers mad.

on January 24, 2012 10:36 PM
One of the lesser known Linux features is that one can open a file with the flags O_WRONLY | O_RDWR.   One requires read and write permission to perform the open(), however, the flags indicate that no reading or writing is to be done on the file descriptor.   It is useful for operations such as ioctl() where we also want to ensure we don't actually do any reading or writing to a device.  A bunch of utilities such as LILO seem to use this obscure feature. 

LILO defines these flags as O_NOACCESS as follows:

 #ifdef O_ACCMODE  
 # define O_NOACCESS O_ACCMODE  
 #else  
 /* open a file for "no access" */  
 # define O_NOACCESS 3  
 #endif  

..as in this example, you may find these flags more widely known as O_NOACCESS even though they are not defined in the standard fcntl.h headers.

Below is a very simple example of the use of O_WRONLY | O_RDWR:

 #include <stdio.h>  
 #include <stdlib.h>  
 #include <unistd.h>  
 #include <sys/ioctl.h>  
 #include <fcntl.h>  
 int main(int argc, char **argv)  
 {  
      int fd;  
      struct winsize ws;  
      if ((fd = open("/dev/tty", O_WRONLY | O_RDWR)) < 0) {  
           perror("open /dev/tty failed");  
           exit(EXIT_FAILURE);  
      }  
      if (ioctl(fd, TIOCGWINSZ, &ws) == 0)  
           printf("%d x %d\n", ws.ws_row, ws.ws_col);  
      close(fd);  
      exit(EXIT_SUCCESS);  
 }  

It is a little arcane and not portable but also an interesting feature to know about.


on January 24, 2012 10:17 PM

Today we announced the HUD that is landing in Unity. This is an awesome new feature. See Mark’s blog post, the coverage on PC Pro, and the interview with John Lea on OMG! Ubuntu!. Here is a video of the feature in action:

Can’t see it? See it here.

I wanted to point you folks at Nicholas’s blog post about how to test the HUD. You will need to be running Ubuntu 12.04 (which is still in development) to test.

We would like to encourage everyone to test so we can get this rock-solid for 12.04!

on January 24, 2012 08:32 PM

Dear Ubuntu Community,

During UDS-P, it was brought to the attention of the Community Council that blogs being syndicated to Planet Ubuntu included former Ubuntu Member blogs.

In order to update the what Planet Ubuntu aggregates to the public, the Community Council, with the help of Alan Bell, compared the Planet Ubuntu Blog list with the current Ubuntu members list, and removed the blogs belonging to those with lapsed memberships. Current Ubuntu Members whose blogs are syndicated to Planet Ubuntu were then matched with their Launchpad IDs. We also want to remind everyone that the “nick” field of the planet config is for your Launchpad ID.

If you are an Ubuntu Member, and you feel your blog has been removed from Planet Ubuntu in error simply add your blog with the updated information back to Planet Ubuntu.

If your Ubuntu Membership has lapsed accidentally and your blog has been removed from Planet Ubuntu please contact the membership boards (ubuntu-membership-boards@lists.ubuntu.com) to be readded to the Ubuntu Members team and then simply add your blog with the updated.

More information on adding your blog to Planet Ubuntu can be found at: https://wiki.ubuntu.com/PlanetUbuntu

If you have questions or concerns please feel free to email the Ubuntu Community Council at: community-council@lists.ubuntu.com

On behalf of the Ubuntu Community Council, Milo Casagrande

on January 24, 2012 06:47 PM

Meeting Minutes

IRC Log of the meeting.

Meeting minutes.

Agenda

20120124 Meeting Agenda

ARM Status

Nothing new to report this week.

Release Metrics and Incoming Bugs

Release metrics and incomming bug data can be reviewed at the following link:

http://people.canonical.com/~kernel/reports/kt-meeting.txt

Milestone Targeted Work Items

If your name is in the above table, please review your Alpha-2 work items. Note that Alpha-2 is next Thurs Feb 2.

apw hardware-p-kernel-boot 1 work item
hardware-p-kernel-config-review 4 work items
hardware-p-kernel-delta-review 3 work items
foundations-p-ipv6 1 work item
jsalisbury other-p-bug-workflows 1 work item
ogasawara hardware-p-kernel-config-review 3 work items
tgardner hardware-p-kernel-delta-review 1 work item

Blueprint: hardware-p-kernel-power-management

no updates this week

Status: Precise Development Kernel

Last week we uploaded the linux-3.2.0-10.17 Ubuntu kernel and we have
also just uploaded linux-3.2.0-10.18. With Alpha-2 next Thurs, Feb 2,
I’d ideally like to upload our final kernel for the Alpha-2 milestone by
this Friday. For any patches needing to land in Alpha-2, send them out
to the kernel-team mailing list immediately.
Important Upcoming Dates:

  • Thurs Feb 2 – Alpha 2 (~1 week)
    ~

Status: CVE’s

=== CVE Metrics ===

Currently open CVEs for each supported branch:

This week two new CVEs were added both of which were closed out.
Overall we have made some progress in closing the outstanding backlog.

Package Open
linux Hardy 17 (-3)
linux Lucid 12
linux Maverick 11 (-2)
linux Natty 10 (-3)
linux Oneiric 9
linux Precise 7
linux-ec2 Lucid 12
linux-fsl-imx51 Lucid 11 (-4)
linux-mvl-dove Lucid 9 (-2)
linux-mvl-dove Maverick 9 (-2)
linux-ti-omap4 Maverick 12 (-4)
linux-ti-omap4 Natty 7 (-5)
linux-ti-omap4 Oneiric 6 (-2)
linux-ti-omap4 Precise 5 (-2)
linux-lts-backport-maverick Lucid 11 (-2)
linux-lts-backport-natty Lucid 10 (-3)
linux-lts-backport-oneiric Lucid 9

Status: Stable, Security, and Bugfix Kernel Updates – Oneiric/Natty/Maverick/Lucid/Hardy

Here is the status for the main kernels, until today (Jan. 24):

  • Hardy – 2.6.24-30.98
    • In updates.
    • Nothing new to prep, there were no new commits on master-next.
  • Lucid – 2.6.32-38.84
    • Prep’d and uploaded.
  • Maverick – 2.6.35-32.65
    • Prep’d and uploaded.
  • Natty – 2.6.38-13.55
    • Prep’d and uploaded.
  • Oneiric – 3.0.0-16.27
    • Prep’d and uploaded.Current opened tracking bugs details:
  • http://people.canonical.com/~kernel/reports/kernel-sru-workflow.htmlFor SRUs, SRU report is a good source of information:
  • http://people.canonical.com/~kernel/reports/sru-report.htmlFuture stable cadence cycles:
  • https://wiki.ubuntu.com/PrecisePangolin/ReleaseInterlock

Open Discussion or Questions? Raise your hand to be recognized

No open discussions.

on January 24, 2012 05:31 PM

FOSDEM 2012

Laura Czajkowski

With less than two weeks to FOSDEM taking place a weekend of talks, catching up with old friends and making new ones nearly here.  Jan Claeys has created a wiki page if anyone is going, taking part, wants to meet up or help with the stall. As always it’s voluntary but having lots of people helping does spread the time so folks can go to talks or take part in the corridor discussions that tend to happen.

If you’re giving a talk why not let people know so they can attend, just add your details to the wiki, there is also a dinner on the night organised so keep an eye on the page for details.  See you there, I’m taking part in a panel session on working with community contributors where I’ll be discussing locoteams.

on January 24, 2012 02:41 PM

Searching Menus

Ted Gould

One of the neatest parts about starting to get more application data into the open is that we can start to use it in interesting ways. I'm happy to talk about a new way that we're using the menu data: the HUD. The idea behind the HUD is that you can quickly find functionality in an application without having to know the menu structure. But how does it do it? How can you make it better?

Getting the data

We're using the same Dbusmenu data that is currently exported to the global menu, just remixing it for search. We are searching through the labels in the menu items which gives us already localized data straight from the application. This means that it should work for the language that the application is in. In the future we hope to use information like accessibility data as well as any tooltips that might be attached to a menuitem (though we don't show tooltips in the global menu).

Any application that works with the window menus today should also work with HUD out of the box.

Matching the label

To match the label we're basically using an implementation of the Levenshtein distance with a few additions. What this allows us to do is rank possible solutions in a relevancy order, and present some solutions that might occur via "fat finger" or other similar type errors. But, this also means that there is some fuzzy algorithms involved in the matching which will have to be tuned.

We expect to tune them over the next few releases, and to do that we have a set of test cases that we're using for the tuning. The problem with those test cases? They're only in the languages I speak. You probably speak in more/different/better languages than I do, please feel free to propose merges that extend this test suite so that as we continue to tune the search algorithms we don't leave any language behind.

Remembering Favorites

One of the additions that we add to the distance calculation is an offset based on which entries you've used most recently. Your favorite functionality in the application. Quite simply we're storing a list of items you've used over the last thirty days and a timestamp of when you used them. This database is simple but it can be fun to look into for the curious and I wanted to talk a bit about a couple of the tools that you can use to see the data.

$ hud-list-applications

This will list all the applications that have data on them in your HUD usage database. They are identified by the path to their desktop file as determined by BAMF. You can then look at the menu items used in a specific application:

$ hud-dump-application /usr/share/applications/inkscape.desktop 

This shows the individual items that you've used, and the number of times that you've used them. If you want to inspect the exact file tracking the data it is available at:

~/.cache/indicator-appmenu/hud-usage-log.sqlite

While talking about various tools to work with HUD I thought I'd also mention that you can also, just for fun, work with HUD from the command line using the command line tool:

$ hud-cli

Application initial bias

Application designers have always had a problem figuring out how to promote specific functionality that is commonly used to the forefront, while still making the rest of the functionality easily available. The most recent ways that they've done this is with toolbars and ribbon style. You can't adjust the positioning even when you know that the particular toolbar isn't best for the user because it will mess up the user's spacial memory. HUD sidesteps this issue by providing all the options, just promoting certain ones based on usage. They're all in the same place (the HUD) but with always improving ordering.

What happens on first usage of the application? At that point we don't have any way to know what the user wants to do, we we've provide a way for the application designer to provide the most likely items for general users. Effectively, this is the HUD's version of the default toolbar setup in an application; though it automatically decays and adjusts to the user's usage pattern.

The files that control this initial bias are very simple and there is an example in the test suite. Basically they have the various menu items along with a value that describes how to preload the usage database. A '5' there would mean that 5 entries are added to the usage database for that item on the first time that application is used; one for today and each of the four days previous. In this way, as values drop off by being too old, there isn't a step function in how the item is ranked, it just slowly drops down in priority. Application designers should start to think about how they would rank the menu items in their application, and start getting these integrated into either the releases or the packages of those applications so that users have a good first experience with their application.

Development notes

The code for the HUD lives in the indicator-appmenu repository. Currently it exists on a branch that needs to be reviewed before merging, but that shouldn't be for long. I expect it to get merged to trunk in the next couple of weeks.

After that the biggest change will be integration with indicator-appmenu. It was originally implemented as it's own service to make development more agile, but it clearly shares a large amount of data with the global menu and there's no reason to have two repositories in memory of the same data. It also needs to synchronize heavily with the application menu and BAMF, which is also already in indicator-appmenu. Thanks to the magic of DBus no one should notice the change in processes as the names and objects will migrate over to the new process.

As this is more of a first prototype there are also some missing features that need to be added. The first of those is to simply improve the matching. We also need to get better descriptions from application indicators, today we're using their accessibility description (you set those, right?) but that typically has too much information. Lastly, we need to integrate better with applications that expect the about-to-show signal for their menus. This includes XUL applications and some Qt ones, so it's an important feature for making the HUD usable for everyone.

Merges and bugs should be directed towards the indicator-appmenu project and also make sure you've signed the Canonical Contributor Agreement for any code contributed.

Comments: Identi.ca | Twitter

on January 24, 2012 02:15 PM

The desktop remains central to our everyday work and play, despite all the excitement around tablets, TV’s and phones. So it’s exciting for us to innovate in the desktop too, especially when we find ways to enhance the experience of both heavy “power” users and casual users at the same time. The desktop will be with us for a long time, and for those of us who spend hours every day using a wide diversity of applications, here is some very good news: 12.04 LTS will include the first step in a major new approach to application interfaces.

This work grows out of observations of new and established / sophisticated users making extensive use of the broader set of capabilities in their applications. We noticed that both groups of users spent a lot of time, relatively speaking, navigating the menus of their applications, either to learn about the capabilities of the app, or to take a specific action. We were also conscious of the broader theme in Unity design of leading from user intent. And that set us on a course which lead to today’s first public milestone on what we expect will  be a long, fruitful and exciting journey.

The menu has been a central part of the GUI since Xerox PARC invented ‘em in the 70′s. It’s the M in WIMP and has been there, essentially unchanged, for 30 years.

Screenshot of the original Macintosh desktop

The original Macintosh desktop, circa 1984, courtesy of Wikipedia

We can do much better!

Say hello to the Head-Up Display, or HUD, which will ultimately replace menus in Unity applications. Here’s what we hope you’ll see in 12.04 when you invoke the HUD from any standard Ubuntu app that supports the global menu:

HUD for 12.04

Snapshot of the HUD in Ubuntu 12.04

The intenterface – it maps your intent to the interface

This is the HUD. It’s a way for you to express your intent and have the application respond appropriately. We think of it as “beyond interface”, it’s the “intenterface”.  This concept of “intent-driven interface” has been a primary theme of our work in the Unity shell, with dash search as a first class experience pioneered in Unity. Now we are bringing the same vision to the application, in a way which is completely compatible with existing applications and menus.

The HUD concept has been the driver for all the work we’ve done in unifying menu systems across Gtk, Qt and other toolkit apps in the past two years. So far, that’s shown up as the global menu. In 12.04, it also gives us the first cut of the HUD.

Menus serve two purposes. They act as a standard way to invoke commands which are too infrequently used to warrant a dedicated piece of UI real-estate, like a toolbar button, and they serve as a map of the app’s functionality, almost like a table of contents that one can scan to get a feel for ‘what the app does’. It’s command invocation that we think can be improved upon, and that’s where we are focusing our design exploration.

As a means of invoking commands, menus have some advantages. They are always in the same place (top of the window or screen). They are organised in a way that’s quite easy to describe over the phone, or in a text book (“click the Edit->Preferences menu”), they are pretty fast to read since they are generally arranged in tight vertical columns. They also have some disadvantages: when they get nested, navigating the tree can become fragile. They require you to read a lot when you probably already know what you want. They are more difficult to use from the keyboard than they should be, since they generally require you to remember something special (hotkeys) or use a very limited subset of the keyboard (arrow navigation). They force developers to make often arbitrary choices about the menu tree (“should Preferences be in Edit or in Tools or in Options?”), and then they force users to make equally arbitrary effort to memorise and navigate that tree.

The HUD solves many of these issues, by connecting users directly to what they want. Check out the video, based on a current prototype. It’s a “vocabulary UI”, or VUI, and closer to the way users think. “I told the application to…” is common user paraphrasing for “I clicked the menu to…”. The tree is no longer important, what’s important is the efficiency of the match between what the user says, and the commands we offer up for invocation.

In 12.04 LTS, the HUD is a smart look-ahead search through the app and system (indicator) menus. The image is showing Inkscape, but of course it works everywhere the global menu works. No app modifications are needed to get this level of experience. And you don’t have to adopt the HUD immediately, it’s there if you want it, supplementing the existing menu mechanism.

It’s smart, because it can do things like fuzzy matching, and it can learn what you usually do so it can prioritise the things you use often. It covers the focused app (because that’s where you probably want to act) as well as system functionality; you can change IM state, or go offline in Skype, all through the HUD, without changing focus, because those apps all talk to the indicator system. When you’ve been using it for a little while it seems like it’s reading your mind, in a good way.

We’ll resurrect the  (boring) old ways of displaying the menu in 12.04, in the app and in the panel. In the past few releases of Ubuntu, we’ve actively diminished the visual presence of menus in anticipation of this landing. That proved controversial. In our defence, in user testing, every user finds the menu in the panel, every time, and it’s obviously a cleaner presentation of the interface. But hiding the menu before we had the replacement was overly aggressive. If the HUD lands in 12.04 LTS, we hope you’ll find yourself using the menu less and less, and be glad to have it hidden when you are not using it. You’ll definitely have that option, alongside more traditional menu styles.

Voice is the natural next step

Searching is fast and familiar, especially once we integrate voice recognition, gesture and touch. We want to make it easy to talk to any application, and for any application to respond to your voice. The full integration of voice into applications will take some time. We can start by mapping voice onto the existing menu structures of your apps. And it will only get better from there.

But even without voice input, the HUD is faster than mousing through a menu, and easier to use than hotkeys since you just have to know what you want, not remember a specific key combination. We can search through everything we know about the menu, including descriptive help text, so pretty soon you will be able to find a menu entry using only vaguely related text (imagine finding an entry called Preferences when you search for “settings”).

There is lots to discover, refine and implement. I have a feeling this will be a lot of fun in the next two years :-)

Even better for the power user

The results so far are rather interesting: power users say things like “every GUI app now feels as powerful as VIM”. EMACS users just grunt and… nevermind ;-) . Another comment was “it works so well that the rare occasions when it can’t read my mind are annoying!”. We’re doing a lot of user testing on heavy multitaskers, developers and all-day-at-the-workstation personas for Unity in 12.04, polishing off loose ends in the experience that frustrated some in this audience in 11.04-10. If that describes you, the results should be delightful. And the HUD should be particularly empowering.

Even casual users find typing faster than mousing. So while there are modes of interaction where it’s nice to sit back and drive around with the mouse, we observe people staying more engaged and more focused on their task when they can keep their hands on the keyboard all the time. Hotkeys are a sort of mental gymnastics, the HUD is a continuation of mental flow.

Ahead of the competition

There are other teams interested in a similar problem space. Perhaps the best-known new alternative to the traditional menu is Microsoft’s Ribbon. Introduced first as part of a series of changes called Fluent UX in Office, the ribbon is now making its way to a wider set of Windows components and applications. It looks like this:

Sample of Microsoft Ribbon

You can read about the ribbon from a supporter (like any UX change, it has its supporters and detractors ;-) ) and if you’ve used it yourself, you will have your own opinion about it. The ribbon is highly visual, making options and commands very visible. It is however also a hog of space (I’m told it can be minimised). Our goal in much of the Unity design has been to return screen real estate to the content with which the user is working; the HUD meets that goal by appearing only when invoked.

Instead of cluttering up the interface ALL the time, let’s clear out the chrome, and show users just what they want, when they want it.

Time will tell whether users prefer the ribbon, or the HUD, but we think it’s exciting enough to pursue and invest in, both in R&D and in supporting developers who want to take advantage of it.

Other relevant efforts include Enso and Ubiquity from the original Humanized team (hi Aza &co), then at Mozilla.

Our thinking is inspired by many works of science, art and entertainment; from Minority Report to Modern Warfare and Jef Raskin’s Humane Interface. We hope others will join us and accelerate the shift from pointy-clicky interfaces to natural and efficient ones.

Roadmap for the HUD

There’s still a lot of design and code still to do. For a start, we haven’t addressed the secondary aspect of the menu, as a visible map of the functionality in an app. That discoverability is of course entirely absent from the HUD; the old menu is still there for now, but we’d like to replace it altogether not just supplement it. And all the other patterns of interaction we expect in the HUD remain to be explored. Regardless, there is a great team working on this, including folk who understand Gtk and Qt such as Ted Gould, Ryan Lortie, Gord Allott and Aurelien Gateau, as well as designers Xi Zhu, Otto Greenslade, Oren Horev and John Lea. Thanks to all of them for getting this initial work to the point where we are confident it’s worthwhile for others to invest time in.

We’ll make sure it’s easy for developers working in any toolkit to take advantage of this and give their users a better experience. And we’ll promote the apps which do it best – it makes apps easier to use, it saves time and screen real-estate for users, and it creates a better impression of the free software platform when it’s done well.

From a code quality and testing perspective, even though we consider this first cut a prototype-grown-up, folk will be glad to see this:

Overall coverage rate:
   lines......: 87.1% (948 of 1089 lines)
   functions..: 97.7% (84 of 86 functions)
   branches...: 63.0% (407 of 646 branches)

Landing in 12.04  LTS is gated on more widespread testing.  You can of course try this out from a PPA or branch the code in Launchpad (you will need these two branches). Or dig deeper with blogs on the topic from Ted Gould, Olli Ries and Gord Allott. Welcome to 2012 everybody!

on January 24, 2012 02:00 PM

Over the last years, I have developed a variety of metapackages for managing the package selections of the systems I administrate. The meta packages are organized like this:

jak-standard
Standard packages for all systems
jak-desktop
Standard packages for all desktop systems (GNOME 3 if possible, otherwise GNOME 2)
jak-printing
Print support
jak-devel
Development packages
jak-machine-<X>
The meta package defining the computer X

Each computer has a jak-machine-X package installed. This package is marked as manually installed, all other packages are marked as automatically installed.

The machine packages have the attribute XB-Important: yes set in debian/control. This creates an Important: yes field. This field is not official, but APT recognizes it and does not remove those packages (the same field is set for the APT package by APT when building the cache, as APT should not be removed either by APT). It seems to work a bit like Essential, with the exception that non-installed packages are not installed automatically on dist-upgrade.

The meta packages are created using seed files similar to Ubuntu. In contrast to Ubuntu, I’m not using germinate to create the packages from the seeds, but a custom dh_germinate_lite that simply takes a seed file and creates the correct substvars. It’s faster than germinate and really simplistic. It also does not handle Recommends currently.

The whole result can be seen on http://anonscm.debian.org/gitweb/?p=users/jak/jak-meta.git. Maybe that’s useful for some people. And if you happen to find some packages in the seeds that are deprecated, please let me know. Oh, and yes, some packages (such as the letterman one) are internal software not publically available yet [letterman is a simple GUI for creating letters using LaTeX].

While I’m at it, I also built Ubuntu’s version of wine1.2 for i386 squeeze. It can be found in
deb http://people.debian.org/~jak/debian/ squeeze main (it still needs a few changes to be correct though, I’ll upload a jak2 build soon). I also built updated sun-java6 packages for my parents (mostly needed due to the plugin, some websites do not work with the IcedTea one), but can’t share the binaries due to licensing requirements. I may push out a source repository, though, so others can build those packages themselves. I’ll let you know once that’s done.


Filed under: Debian, General
on January 24, 2012 09:43 AM

When you start your journey with Debian, you tend to have lots of questions. You’ll find some answers in various documentations but there always are remaining questions. Those can be asked on various support channels:

Those are the places where you can also start your journey as a Debian contributor… instead of asking questions, you just have to answer questions of other users! Let me share some advice if you want to do some user support.

User support is difficult…

It’s not always an easy task. Some users are more skilled than others and there might be difficulties related to the language, English is not always the native language of a user who asks a question in English.

Be respectful and courteous when you answer user questions, even if they made mistakes. You’re effectively representing Debian and you should give out a good image of the project. If you don’t have the patience or the time needed to do a good answer, don’t reply and let someone else take care of this user. I invite you to read (and follow!) the Debian Community Guidelines.

Avoid RTFM answers, instead you should show the users how they could have found (alone) the solution to their problem. We don’t want to scare people away, we want to grow our community.

But it’s also rewarding

In some cases, the problem reported by the user will be a real problem and you’ll have an opportunity to file a good bug report, thus helping to improve Debian for everybody.

Often, you don’t even have the answer to the user’s question. But you’re more skilled than him/her to do researches on the web, or you know of a good documentation that might contain the relevant bits of information, in any case you’re doing further research to help this user. In this process, you also grow your own skills since you’re learning stuff that you didn’t know yet.

At least that’s how I learned many things during my first year in the Debian community… there’s no reason why you couldn’t learn lots of stuff that way, in particular if you also read the answers of other skilled people on those channels (it takes a bit of training to learn who are the skilled people though).

I still believe that doing user support is one of the best ways to join the Debian community and to start contributing. It helps you to grow your skills, and to slowly progress from “average user” to “advanced user”.

If you want to start contributing to Debian, click here to subscribe to my newsletter and get future updates for new contributors. You can also follow me on Identi.ca, Google+, Twitter and Facebook.

No comment | Liked this article? Click here. | My blog is Flattr-enabled.

on January 24, 2012 09:00 AM

I am a pretty terrible programmer. Anyone who has read my code can see that. Unfortunately, I tend to have lots of ideas about how we can use technology in different ways, hence why I write some code. Examples of this have included Lernid, Acire, RaccoonShow, and Jokosher.

Fortunately (or unfortunately, depending on your view), I have had Python and GTK to serve my needs here. Python, with it’s awesome batteries-included range of facilities and GTK as a simple yet flexible toolkit has allowed me to create implementations of the ideas that I have dreamed of. I started using these tools many years ago, and they have always provided a simple and effective toolset for me.


My preferred toolset of choice. One day…

Having not written any code for a while, I got the itch this weekend to start writing the trophy helper app that I wrote about as part of the accomplishments system spec that I created with Stuart Langridge and Daniel Holbach. I thought this would be a good opportunity to brush up on my skills, given that PyGTK is dead and the new world is instead the GIR approach to GTK. In a nutshell, this is where the language bindings basically match the C API for GTK thus reducing the need for people to maintain different language bindings.

Of course, this is a good thing: less work for volunteers in maintaining multiple-language support for GTK and a consistent API is good. Unfortunately, I found getting started with this new world a little more complex than I imagined.

From reading the documentation it suggested that all I needed to do was to import Gtk from gi.repository and instead of creating widgets with gtk.<foo> that they would be Gtk.<foo>. The docs suggested a few other lexical adjustments, but not much more than that. There is even a pygi-convert.sh script that can convert older PyGTK code over to the new PyGI way. Unfortunately the script didn’t work for me, so I instead used it as a cheat-sheet for things that needed changing. Sadly, it seemed like some things were not covered in the script.

An example of this included when I was creating a ListStore. In PyGTK code I could add a gtk.gdk.Pixbuf to the ListStore for an icon, but I had a difficult time trying to figure out the new way to describe this. I tried Gtk.gdk.Pixbuf and Gtk.Gdk.Pixbuf but had no luck. Fortunately the awesome Ryan Lortie informed me that it needed to be GdkPixbuf.Pixbuf. Another example of this was gtk.SORT_ASCENDING in my original code and the new Gtk.SortType.ASCENDING in the new code. It seems like various functionality in GTK has been moved around and re-factored.

Unfortunately I could not find any documentation to help me with this. Sure, the C docs are available online, but I am not a C programmer; I am (in the most generous and understanding way) a Python programmer and where I previously had a pretty decent tutorial and reference guide to PyGTK, as a desktop app developer I no longer have these resources to help me. Even though I am not a fantastic programmer, I have written enough Python and GTK code to fumble my way through writing various apps, and if it stumped me as a relatively old hand, I wonder how a brand new developer would get on.


Pictured: old hand.

Now, this may sound a little critical, but it is not mean’t to be. I have tremendous respect for the GTK team, and I am hugely thankful to them for all their hard work. I am also thankful for the team that has worked on the GIR support so that multiple language support can be more efficiently provided. Thanks to all you folks for providing great tools that let a programming numpty such as myself be able to write Free Software.

I just wanted to share this because I feel like these tools are missing the final component: if we had a good solid set of reference documentation generated for each language (naturally, Python is the language I mainly care about), this would help novice and established developers use GTK more effectively. From my personal experience, my patience started wearing pretty thin when I felt like I didn’t have anywhere to find help as I navigated C documentation to try and figure out how the API fitted into my Python application. A good solid Python reference manual would have resolved this issue, and from what I understand, this could potentially be generated from the GIR files. Unfortunately, I don’t think I have the skills to help solve this problem, so I figured the best I could do was to share my story and see if anyone would be interested in helping to solve this problem.

If so, thanks in advance, and thanks again to the GTK team for all your hard work!

on January 24, 2012 06:48 AM

Hey look! Openstates data!

Paul Tagliamonte

Sweet!

npr’s site is using some OpenStates data, the project I’m currently working on at sunlight labs.

If you feel like affecting change in US politics, and know Python, we could use some help (it’s a F/OSS project!) over on github

Keep being awesome!

on January 24, 2012 01:25 AM

January 23, 2012

Looking for a CTO at CC

Greg Grossmeier

Creative Commons is looking for a new CTO. Come work with me!

Do you know anyone good? Yourself?

From the announcement:

This is a fun job that offers technical, management, and communications challenges and opportunities for growth and impact. Using technology to enhance (rather than suppress) sharing has always been an important part of the CC story.

And the job description.

Feel free to share with other FLOSSy communities!

on January 23, 2012 11:34 PM

A little while back I mentioned that Nicholas Skaggs would be joining the Community Team at Canonical. Nick is now on board but is not an Ubuntu Member yet, so his blog is not appearing on Planet Ubuntu.

On his blog he will be talking about improving our QA infrastructure and documentation, building out manual test coverage, and growing a community of QA testers.

You can read his blog here. I am going to ask Nick to apply for Ubuntu Membership in a few months when he has provided a significant and sustained contribution, and then his blog will appear on Planet Ubuntu.

on January 23, 2012 09:59 PM

The Ubuntu Community is looking for a PHP/OpenID hero to help us in a bit of a bind we have on the forums.

The forums need a branding update, as well as an update to the vbulletin software we are running. Unfortunately Vbulletin doesn’t support openid(!).

Let us please not bring alternates to Vb into the discussion just yet.

In the past there was a bit of custom php that was done in order to enable Ubuntu users to use their Ubuntu Single Sign On account. This doesn’t work with the new version of vbulletin, and this is a blocker to the upgrade.

The Forums Council is thus in search of a volunteer(s) that would be willing to work with the Canonical IS team and the Forums Council to make this happen. Ideally you’d be comfortable with PHP and vbulletin already, and wouldn’t mind a brutal security review from the IS and security teams in Ubuntu, but hey, you’d be the guy that fixed logins on the forums, with all the fame (or infamy) and glory that it entails.

Feel free to PM the Forums Council if you’re interested. The forums have always been a crucial element of Ubuntu’s success, and it’d be a great way to contribute if you’re looking for something to do.

See also: http://castrojo.tumblr.com/post/16165219934/ubuntu-forums-needs-single-sign-on-looking-for-a-php

Originally posted to The Community Cafe on ubuntuforums.org by bodhi.zazen on Mon 23 January

on January 23, 2012 07:11 PM

The previously announced KDE Platform, Workspaces and Applications 4.7.4 updates have completed QA testing and have been released to all users in the oneiric-updates repository. This is the last planned complete update for KDE SC 4.7 packages. Kubuntu developers will continue to address high priority issues with fixes meeting the Ubuntu project Stable Release Update criteria.

on January 23, 2012 06:06 PM
Regardless of the circumstances, now I'm part of Ubuntu-BR council.
I really hope that I can accomplish great things in this new phase of the Brazilian community.
I expected to be part of it board one day, but not too early. But unfortunately the council need strength right now.

André Gondim, we miss you :-(


Soon I'll be here reporting the progress of some projects that I'm putting into practice in the next weeks.

Wish me luck.
on January 23, 2012 04:22 PM

Precise Pangolin artwork

As developers all over the world sink their teeth into the new features for the next release of Ubuntu it’s time to get out our cameras, brushes and pencils out and start creating the images that will make up the wallpapers for the next release. 12.04 will be an LTS so the same super high quality that the teams delivering the desktop experience are working to should inspire us to make this the best wallpaper set we’ve released yet!

As usual there is a group on Flickr set up for your submissions – Precise Pangolin wallpaper submissions group. Simply upload your pictures to Flickr – accounts are free – and again as usual the contributors who were selected last time will be the ones asked to choose from the final selection of images. For guidance around what might make appropriate content, image resolutions to be used and the like check out the Ubuntu Artwork team wiki page on wallpapers.

You can see from the Pangolin Release Schedule that the development process is well under way so  we’ll be accepting entries until March 15th 18:00 UK time with a view to choosing the images and getting them into the release the following week as the Beta Freeze closes. Questions are welcome on my iain at ubuntu dot com address or on IRC in #ubuntu-design where you’ll find me, like-minded community members and Canonical’s designers.

So get snapping, sketching and painting! :)

View of Kinloch Rannoch in Scotland


on January 23, 2012 03:07 PM

Ubuntu Middleware Smoke:: X11/unity


Ubuntu Middleware Smoke: WIFI

The screenshots in this post capture a preview of raw results coming out of LAVA for the basic WIFI and X11 smoke tests currently developed by Ricardo’s DevPlatform Team. I like what I see so far! For now, my only suggestion on that is that the names of the tests could be improved a bit :).

So, what’s left to finish things up in time for 12.01 release?

  • Dave Pigott from the LAVA lab team to set up initial instrumentation for automated WIFI and bluetooth testing in the LAVA lab
  • Ricardo and team to finish and cut a first release of our Ubuntu middleware smoke test suite and set it up to automatically tests the ubuntu LEB images.
  • Release team to add reviewing and monitoring the middleware smoke test results to their continuous release process and the final build sign off.

Quite exciting stuff; stay tuned!

If you are interested in how to add automated tests like this to LAVA, check out the current code in bzr:

on January 23, 2012 03:01 PM

Custom Bug Listings

Over the past few months the Launchpad Orange Squad has been working to make it easier to get the information that matters to you from bug listings.

A lot of you have said in the past that you’d like to be able to filter bugs in a way that works best for you. Hopefully this new feature, with its customisable functionality should help with this goal, filling your screen with more of what you want to see.

Custom bug listings green bug

Features

You can now sort bugs by criteria such as name, importance, status and age. You can switch on the criteria that you use most and turn off criteria that you don’t use. So if you always like to see bug age, but aren’t interested in heat, you can switch on age and switch off heat, and so on.

bug column screen shot

Display

We’ve also redesigned how bug listings are displayed – fitting more information into each bug listing, and adding sort options such as bug age, assignee, reporter, and tags.

You can put your results into ascending or descending order without having to reload the page, and you’ll be able to save your preferred layout, so your settings will be saved for the next time you need to look over your bugs.

User research

This was my first main project since joining the Launchpad team back in November as the new Usability & Communications Specialist. User research has played an important part in how we’ve defined the feature and the decisions the team has made to improve the display, wording and functionality.

A number of you took part in one to one interviews, at group sessions at UDS-P and by taking part in an online survey. Thanks to everyone involved – what you told us has really helped to make this feature a more user-friendly experience. Some of our user research results (link) are already available online, with more being added soon. We’ll be carrying out some further tests in the weeks ahead, so please get in touch if you’d like to get involved.

Bugs

Every new feature has teething problems, and custom bug listings is no different. We still have a number of bugs that need tweaking, so please bear with us, and file any bugs if you spot anything that’s still out there.

on January 23, 2012 01:23 PM
Linaro Multimedia WG samplemedia repository:

Couldn’t remember the URL for the open-source multimedia test repository maintained by Linaro’s Multimedia WG for a while now. Google didn’t come up with a good direct hit either, so here it is:

Here you can get open-source video and audio content encoded in various formats and codecs. Linaro engineering and community can and do use this to verify their enablement, codec and integration work.

on January 23, 2012 11:55 AM

This week I attended through work a presentation about Endpoint Management with a focus around the whole “bring your device to work” megatrend the experts are talking about.  In case you haven’t heard this discussion is all about allowing an end user to purchase or use their own device instead of a corporate device.  Examples given in this presentation are large New York City based banks encouraging people to use their own devices (usually a Mac) as a recruiting tool to help attract top talent.  The presentation focused on how will IT manage these devices (patch, deliver software, track inventory, etc) on a non-corporate device.  In the past someone in IT decided what version of desktop/laptop (either a Dell or an HP) and then decided on an operating system (Microsoft and still for a lot of shops XP).  Now we are seeing a growth of whatever type of device the end user wants (anyone have this at their work?).

The interesting part about the discussion was the focus on Mac and how companies are managing them.  Macs in the corporate environment are growing and growing (heck I moved to one) and companies have to figure out what to do w/ them.  Thankfully the product I consult around (Altiris Client Management Suite) has perhaps the best Mac management outside of Apple. When asked about where the expers see Linux in the corporate world the expert replied it still exists within the walls of the datacenter (whether on premises or off premises in some form of cloud) and it really doesn’t exist in the corporate desktop (at least in the US).
This is a large frustration I have with Ubuntu is that it could focus on the corporate environment and potentially increase market share but instead chooses to focus on TVs and potentially mobile devices.  Canonical could partner with the various Endpoint Management software vendors (Microsoft, IBM, CA, Symantec, Dell, etc.) to support Ubuntu.
When I show up w/ my own laptop running Ubuntu there are certain things I’m required to have or report on including up to date with patches, has up to date antivirus and definitions and is able to be managed by the corporate management solution.  So Canonical, fire up those partnership agreements or whatever is needed and get your operating system supported by more vendors so the corporate desktop market share can grow

on January 23, 2012 01:56 AM

January 22, 2012

A little while back I blogged about an accomplishments system that Stuart Langridge and I designed when he came to visit a while back. The idea was simple: a de-centralized system in which we can easily define different types of accomplishments (e.g. filing a bug, submitting a patch, getting a patch sponsored, translating a string) and a means in which users can be rewarded trophies for these accomplishments as well as discovering new accomplishments and how they can be achieved.

The nice thing about the system we designed is that it is de-centralized, it uses Ubuntu One as a transport mechanism (which means we don’t have to build our own transport system and your trophies are visible across all your Ubuntu machines), and the system has a verification process to ensure that people can’t fake their community accomplishments.

I wrote this all up into a spec which you can find here.

We had an interesting session about this topic at UDS and Stuart put together a draft implementation which is at lp:~sil/+junk/libaccom-draft/. The implementation defines a set of sample accomplishments and provides a daemon that runs to maintain state on which accomplishments have been achieved and which are still yet to be completed. The system is neatly integrated into Ubuntu and accomplishments are displayed in a notify-osd bubble:

Stuart also wrote a small API (libaccomplishment) that client apps can use to query the system and present trophies achieved or those yet to be achieved. You can read more about this draft implementation here.

In the original spec there are two clients that would be in the system. A lens:

…and a helper app that is loaded when you click on a trophy in the lens which can provide more information about an accomplishment as well as showing the list of achieved accomplishments and those yet to achieve:

This weekend I decided to start writing this helper app (Michael Hall has expressed an interest in writing the lens). To get things rolling I wanted to display the list of trophies that have been accomplished. It looks like this so far:

This app is using the libaccomplishment API that Stuart provided in his draft implementation and this code could obviously used to develop the lens. There is obviously still lots to build into the app, but it provides a useful proof-of-concept for how it could work. This is a Quickly project and you can grab the code from lp:~jonobacon/junk/trophyinfo.

If you want to play with this, grab Stuart’s draft implementation (lp:~sil/+junk/libaccom-draft/) and run examples/demo.sh – this will start the daemon. You can then grab my branch (lp:~jonobacon/junk/trophyinfo) and run quickly run and see the trophies in the view.

Everything so far has been something of a proof of concept, but I wanted to see if anyone else was interested in participating. There are a number of things that we need to do:

  • Stuart’s draft implementation needs extending, and he would like to find a new owner for it. Currently the API is simple but might need fleshing out further.
  • The helper app here that I created a first cut of needs expanding and functionality added. We need to provide different ways of filtering the trophies, providing information about a specific trophy and how to achieve it, and the other features outlined in the spec.
  • Each accomplishment has a script that is run to see if you achieved something (e.g. if you filed a bug in Launchpad). In the spec, when one of these scripts returns that you accomplished the task, it creates a trophy, and syncs it via Ubuntu One to a validation server which runs the same script to verify you really did achieve the accomplishment. This then signs the trophy which then syncs back to your machine. We need someone to build this verification service.
  • We need to evaluate and extend the .accomplishment format to include documentation for how to achieve a trophy. I know Jim Campbell expressed an interest in working on this and I would love to encourage others to participate too.
  • We need to create a library of Ubuntu Community accomplishments. Stuart’s draft implementation includes an example script for filing a bug. See the list of ideas that Daniel has been working on.

Anyone interested in taking part?

UPDATE

Since I posted this I have made a bunch of improvements to the helper app. This includes:

  • The app now displays trophies achieved on the My Trophies page and those not yet achieved on the Opportunities page.
  • Locked trophies (i.e. those that need another trophy to be accomplished before it can be) now use a different icon (we will need new icons for all of these, so I am using stock icons right now).
  • Trophy/opportunities status is now updated with each page load which means that trophies are updated more dynamically.
  • Double-clicking an opportunities will take you to the WebKit page to display info about it. I just need to update the .accomplishment scheme to provide more useful info.

I pushed all these updated to lp:~jonobacon/junk/trophyinfo if you want to play with it. :-)

on January 22, 2012 11:41 PM

Recently the upstream Linux kernel released a fix for a serious security vulnerability (CVE-2012-0056) without coordinating with Linux distributions, leaving a window of vulnerability open for end users. Luckily:

  • it is only a serious issue in 2.6.39 and later (e.g. Ubuntu 11.10 Oneiric)
  • it is “only” local
  • it requires execute access to a setuid program that generates output

Still, it’s a cross-architecture local root escalation on most common installations. Don’t stop reading just because you don’t have a local user base — attackers can use this to elevate privileges from your user, or from the web server’s user, etc.

Since there is now a nearly-complete walk-through, the urgency for fixing this is higher. While you’re waiting for your distribution’s kernel update, you can use systemtap to change your kernel’s running behavior. RedHat suggested this, and here’s how to do it in Debian and Ubuntu:

  • Download the “am I vulnerable?” tool, either from RedHat (above), or a more correct version from Brad Spengler.
  • Check if you’re vulnerable:
    $ make correct_proc_mem_reproducer
    ...
    $ ./correct_proc_mem_reproducer
    vulnerable
    
  • Install the kernel debugging symbols (this is big — over 2G installed on Ubuntu) and systemtap:
    • Debian:
      # apt-get install -y systemtap linux-image-$(uname -r)-dbg
      
    • Ubuntu:
      • Add the debug package repository and key for your Ubuntu release:
        $ sudo apt-get install -y lsb-release
        $ echo "deb http://ddebs.ubuntu.com/ $(lsb_release -cs) main restricted universe multiverse" | \
              sudo tee -a /etc/apt/sources.list.d/ddebs.list
        $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
        $ sudo apt-get update
        
      • (This step does not work since the repository metadata isn’t updating correctly at the moment — see the next step for how to do this manually.) Install the debug symbols for the kernel and install systemtap:
        sudo apt-get install -y systemtap linux-image-$(uname -r)-dbgsym
        
      • (Manual version of the above, skip if the above works for you. Note that this has no integrity checking, etc.)
        $ sudo apt-get install -y systemtap dpkg-dev
        $ wget http://ddebs.ubuntu.com/pool/main/l/linux/$(dpkg -l linux-image-$(uname -r) | grep ^ii | awk '{print $2 "-dbgsym_" $3}' | tail -n1)_$(dpkg-architecture -qDEB_HOST_ARCH).ddeb
        $ sudo dpkg -i linux-image-$(uname -r)-dbgsym.ddeb
        
  • Create a systemtap script to block the mem_write function, and install it:
    $ cat > proc-pid-mem.stp <<'EOM'
    probe kernel.function("mem_write@fs/proc/base.c").call {
            $count = 0
    }
    EOM
    $ sudo stap -Fg proc-pid-mem.stp
    
  • Check that you’re no longer vulnerable (until the next reboot):
    $ ./correct_proc_mem_reproducer
    not vulnerable
    

In this case, the systemtap script is changing the argument containing the size of the write to zero bytes ($count = 0), which effectively closes this vulnerability.

UPDATE: here’s a systemtap script from Soren that doesn’t require the full debug symbols. Sneaky, put can be rather slow since it hooks all writes in the system. :)

© 2012, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.
Creative Commons License

on January 22, 2012 11:22 PM

A lot of work was done in these past couple of cycles to get the en_AU locale into shape. We were hovering around ~43% translated (around 185,000 strings to go) at the natty Ubuntu Global Jam — http://loco.ubuntu.com/events/ubuntu-au/817/detail/

Since then, we’ve managed to translate the lot, only having to search through the new strings trickling in for the Precise cycle – averaging around a couple of hundred new strings per week.

Consider the below workflow, replacing STRING with the en_US string that you’re trying to find/fix, eg. color, cell phone, meter, dialog – etc (the comprehensive list – English Translation keywords):

mkdir ~/en_AU; cd ~/en_AU
wget people.ubuntu.com/~jpickett/translations/en_AU-20120118.tar.gz
tar xvf en_AU-20120118.tar.gz
cd en_AU
grep -i "STRING" ./* > ~/STRING
grep -i "msgstr" ~/STRING > ~/result
less ~/result
...

The output in ~/result will show all the strings that may need to be fixed. The simplest way to do this is to have a tab open for each batch of templates, ie:

https://translations.launchpad.net/ubuntu/precise/+lang/en_AU?batch=300

https://translations.launchpad.net/ubuntu/precise/+lang/en_AU/+index?batch=300&memo=300&start=300

https://translations.launchpad.net/ubuntu/precise/+lang/en_AU/+index?batch=300&memo=600&start=600

https://translations.launchpad.net/ubuntu/precise/+lang/en_AU/+index?batch=300&memo=900&start=900

https://translations.launchpad.net/ubuntu/precise/+lang/en_AU/+index?batch=300&memo=1200&start=1200

This makes it super easy to Ctrl-F through the lists and find the package that the typo/mistake resides. You’ll also want to periodically check for the new tarball to make sure you have up-to-date .po’s and that you aren’t rechecking files that you’ve already fixed ;)

There’s probably a billion ways that this could be done easier/faster but for now, that’s the way it’s being fixed :)

Although translation into en_AU may not be the most important goal we have in the Ubuntu project, I firmly believe that it creates that *finishing gloss* that reflects what the Ubuntu en_AU translators have achieved.

on January 22, 2012 07:18 AM

January 21, 2012

A follow up to my 1 week with Opera

Unfortunately I didn’t make it.  I’m used to an unstable browser (I run Firefox Aurora normally), but recurring crashes are never fun.  In fact while writing this post, Xorg went a little crazy, wasn’t able to pin it definitely on Opera though.

I still use it from time to time as my secondary browser.  It’s fast and I really like the initial “Speed Dial” page.  It’s worth a look, especially on an older machine.

on January 21, 2012 10:15 PM

Lubuntu Blog

Haven't tried LxFind yet? For those who doesn't know it, it will be the default file and document search tool or Lubuntu. For trying it (remember, it's not an ultimate comilation) put this on a terminal: sudo add-apt-repository ppa:lubuntu-desktop/ppa && sudo apt-get update && sudo apt-get install lxfind  If you already added our PPA just install the package "lxfind".
on January 21, 2012 07:48 PM

Remember America Online? Remember Compuserve? Remember walled gardens? Remember when the internet was free?

All the "l337 h4ck3r$" are now moving to Diaspora*.

Be sure to follow #ubuntu and #ubuntuTV there.

Consider yourself notified.

on January 21, 2012 07:29 PM

Full Circle Magazine – Python Special Edition Volume 03

The single-topic Special Editions continue with a reprint of the Python articles parts 17 through 21

Go get it from: http://fullcirclemagazine.org/python-special-edition-issue-three/

Note: the file-size for this edition is 18.3Mb

on January 21, 2012 05:08 PM

I really should write these a bit more often.

Wow, I can't believe it was over 4 years ago that I started having occasional face to face meetings with the ISC DHCP folks.

The entire ISC DHCP team (of 5) was in town for an all-hands meeting, and Larissa Shapiro, the Product Manager for DHCP (and BIND) suggested it would be a good opportunity for another catch up. Given the current (bad) state of DHCP 4.2 in unstable, I thought this was an excellent idea, and so we all had lunch on Tuesday.

I pretty much set the agenda, and it was

  • general state of 4.2.2 in Debian
  • situation with GNU/Hurd and their patch to fix an FTBFS (#616290)
  • the current FTBFS issues with kFreeBSD (#643569)
  • the embedded BIND sources in the DHCP source
  • removal of the RFCs from the embedded BIND source (#645760)

The general state of 4.2.2 in Debian

In a nutshell, it's a bit of a mess. We've got release critical bugs, build failures, the whole cat and kaboodle. It makes me very sad, because 4.2.2 was the first 4.2 series that I had a chance to upload, and I was very excited to do so, because it contains the hotly desired LDAP patches merged upstream. Unfortunately, it's also got the beginnings of the BIND/DHCP merger that's going to be BIND 10, and that is all a bit of a mess. It's directly responsible for the kFreeBSD FTBFS and the introduction of the RFCs, which are both keeping 4.2.2 out of testing.

I gave the ISC folks a high-level overview of how Debian development works, and the normal progression of packages from unstable to testing to stable, and the release process and whatnot, and impressed upon them the implications of the current release critical bugs. I also showed them how Ubuntu development fitted into the picture. Finally, I showed them the popcon statistics for DHCP. I think they found it useful.

FTBFS issues on kFreeBSD

This was a good segue to #643569. The issue is actually with the embedded BIND sources. I'd already forwarded this bug upstream when it first happened, but I don't know what had happened to it. They seemed to act as if this was the first they'd heard of it. I'm hoping that they can get this fixed in 4.2.3, which is due around the end of the quarter.

Embedded BIND sources

Since we were already talking about an issue caused by the embedded BIND sources, we moved on to talking about #645760 and the existence of the embedded BIND sources in general. It should be pretty straightforward for them to strip the RFCs out of the source. They've already done it in the past for the DHCP sources, so I'm also hopeful that this will get resolved in 4.2.3.

The issue of the embedded BIND sources is apparently a bit more complicated, although the day before our meeting, Michael Gilbert filed #643569 and #645760, so I hope that the ISC folks can take a look at these patches and see if it's feasible to adopt them.

Patches for GNU/Hurd

Finally we talked about #616290, which I know is near and dear to the GNU/Hurd porters' hearts.

We probably spent the most time talking about this. The DHCP developers have concerns about accepting a patch for an OS that they do absolutely no testing on, and also questioned the viability of the OS in general. They stressed that they're fairly thin in numbers relative to what they have on their plate to achieve this year, and so pushed back pretty firmly on accepting the current patch.

I relayed the frustration that the Hurd folks were having about a lack of dialogue around the patch (most of the interaction has been via an ISC support person). There was actually a bit of a split between the developers, with one of them appreciating that the Hurd was unlikely to go anywhere as a platform without a working DHCP client, so in some regards, they were condemning the platform by taking the position they were taking.

They're going to go away and take another look at the patch and try to come back with some actionable feedback on what needs to change to make it more acceptable to them, so we'll see what comes of this. I'm not particularly optimistic that anything acceptable to the GNU/Hurd folks is likely to happen any time soon, but maybe if the patch gets cleaned up a bit more, I'll just bite the bullet and start applying it to the Debian package.

BIND 10

One of the guys is more involved in BIND 10 than DHCP, and asked if I could help out with the packaging of a build dependency for BIND 10. It seemed like #578387 was languishing so I offered to pick it up. I've not packaged a library before, mainly because the library packaging guide has scared me off it (I feel I lack the deep C fu that seems necessary), but I figured that this would be a good learning opportunity, so I'm going to dive in.

on January 21, 2012 02:38 PM

Desura Open Sourced

Jacob Peddicord

I've written about Desura on Linux before; it's a great game platform for both Windows and Linux. As of this morning, the client has been open-sourced and is available on GitHub as Desurium.

The license for the project is GPLv3, with an Apache-style contributor agreement for Desura to use in their main releases. The Windows counterparts appear to be included in the open-sourcing as well. It's exciting to see where this will lead.

The reasons for the copyright agreement are explained by Protektor from Desura:

Everything was pulled as much as possible from how other Open Source projects do things.

We aren't trying to trick anyone or rip anyone off of their code. We just need certain things because we know situations are going to come up where we need the ability to do thing a bit differently because of how we do things.

For the Open Source version that is a given that they go into the contributors file, but seems like a major hassle for game devs to have to figure out who to include and who not to include based on what parts of the client they might want to use.

Additionally, the default build is stripped of Desura branding, as is done with many other trademarked and open-source projects.

Join #desura on freenode to chat with some of the developers and get involved. Anyone up for packaging? :)

on January 21, 2012 01:00 PM