Canonical Voices

Leann Ogasawara

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

* Rebase to v3.3.2
* Revert seccomp_filter patches
* Switch CONFIG_GPIO_TWL4030=y back on arm[el|hf]
* Add Hyper-V modules to virtual inclusion list

The full changelog can be seen at:

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

Read more
jono

I just wanted to provide a quick update on how the team is doing on our set of commitments in the 12.04 cycle. Feel free to ask questions in the comments.

In terms of general team progress, this is how our burndown chart looks today:

I asked each of the guys on the team to follow up with their respective community members to start moving the needle on those work items. As such, if you committed to something in 12.04 for our team’s burndown, expect Jorge, Daniel, or David to come knocking on your door soon.

With Nick and Michael joining the team recently, their work is not reflected in this burndown – their work will appear in the 12.10 burndown.

Developer Growth

Daniel’s core focus in this cycle is developer growth. The first step here is ensuring that our developer processes are working effectively. Over the holiday period the sponsorship queue got a little out of shape, so I asked Daniel to work with the patch pilots to get this back on track. Good progress is being made:

You can see how the queue is falling back down at the end of the graph since Daniel started hammering on this over the last few weeks. Thanks to all the patch pilots for their hard work.

Daniel has also been fixing up some metrics so we can track this work more effectively, and putting together a developer outreach team to provide a more personal level of support to get developers through the process. He will be speaking more about this in the coming weeks.

Cloud and Juju

Jorge is focused on growing the Juju charming community and is making great progress. A tour of events is planned and Jorge has a hit-list of upstream projects which he is focusing on to get charms put together for. We are seeing good progress on this list and I am confident Jorge will hit his goals in this cycle.

Juju really is awesome. You should check it out.

App Developers

David has been focusing on app developers in this cycle. A first chunk of work here is helping the App Review Board to get in shape. The ARB has a large queue of content to get through, so in Budapest we sat down and dissected the ARB process and made a bunch of optimizations. David has been coordinating with the team to help coordinate this work, and we are seeing progress happening.

We have recently seen three lenses get through the ARB, and David is going to be starting a regular cadence of queue reviews to keep the ball rolling. Thanks to the ARB for all your contributions.

David originally planned a Phase II set of additions to developer.ubuntu.com, but with some re-structuring from the Canonical web team, those plans have been put on hold a little. Instead d.u.c is now being put into maintenance mode and we identified a set of things that need fixing (particularly on the publishing side), and David is coordinating those changes.

The next chunk of work will be outreach to grow our app developer community. Stay tuned for more…and an up-coming competition…

Upstream Relations

Michael is the new upstream community coordinator, and will be focusing on Unity in particular as he gets started. I have asked him to first work with the Desktop Experience team to help get their community merge proposals in shape. There are a number of branches that have been sitting around for a while, and Michael is coordinating a patch pilot scheme to ensure these get reviewed regularly. We expect to see this in place over the next week.

Michael has also been performing an assessment of Mozilla’s SUMO for a potential solution for help in Ubuntu. He has put together an extensive report and a test instance to play with and he will be working with the docs team to continue assessing this as a solution. I am excited to see what work happens here.

Finally, next week we will be putting together an upstream target list for Michael to reach out to to start engaging app authors more effectively around our technology. I am excited to see this work progressing.

…oh, and one other thing: Michael is working with Didier to merge Singlet into Quickly. This should make creating Unity lenses a piece of cake. Bring it!

QA

Finally, the latest addition to the team has been Nick Skaggs. Nick has been working with the QA around a few core pieces of work:

  • Getting our manual test infrastructure in place. We are going to be piloting Case Conductor as a solution that will fit alongside Jenkins.
  • Consolidating our QA community teams. Nick is evaluating our current QA on-ramp and then we will put together a proposal for bringing more efficiencies and consistency to the QA community.
  • Building a take-and-bake testing process so Ubuntu Engineering can reach out to Nick to facilitate community testing more effectively.

The former two items will take time to put in place, but the latter item should be in place in the next week. As such, you should see a regular stream of testing campaigns driven by Nick in 12.04. Be sure to keep an eye on his blog.

. . .

Of course, there are lots of other things going on, but these summarize some of the key themes.

Read more
facundo

Estatua en una fuente


Esta foto me gusta por el contraste entre lo estático de la estatuita, y lo dinámico del agua cayendo sobre ella.

Pero más que eso, me encantó el paseo que hicimos... eso es en el laberinto de Los Cocos, en una salida durante el PyCamp 2009, en la que sacamos un montón de fotos, y charlamos mucho con Dave sobre cómo sacarlas...

Estatua en la fuente

Me dan ganas de salir a pasear y tomar fotos con gente que también saque fotos, creo que se aprende un montón en esas situaciones.

Read more
jono

The Ubuntu Developer Summit (UDS) is the most important event in the Ubuntu calendar. It is where we get together to discuss, design, and plan the next version of Ubuntu; in this case the Ubuntu 12.10 release.

The next UDS takes place at The Oakland Marriott City Center, Oakland, California, USA from the 7th – 11th May 2012. You can find out more about why UDS is interesting from the perspective of a member of the community, an upstream contributor, and a vendor. We also welcome everyone to participate remotely if you can’t attend the event in person. More more details on how to get there, see this page.

At the heart of a great UDS is a diverse group of attendees who can bring their experience and expertise to the discussions. You don’t have to be technical, or be a programmer or packager to attend – UDS is open to everyone (including non-Ubuntu folks) and free to attend. We encourage everyone with an interest in Ubuntu to attend.

Sponsorship

For every UDS Canonical sponsors the hotel and accommodation of a set of community members to ensure they are free to contribute and bring value to the discussions. We have a limited budget so we can’t sponsor everyone, but we are always keen to have a capable and diverse group to sponsor:

  • We strive to support community members who are actively involved in Ubuntu and who are providing significant and sustained contributions to the Ubuntu project.
  • We always welcome Upstream contributors who are bring value to Ubuntu indirectly via active participation in their upstream project, but who are keen to see quality support for that upstream in Ubuntu.
  • Contributors are willing to actively participate not only throughout the full Ubuntu Developer Summit week, but also following with active contributions throughout the release cycle.
  • We are always keen to welcome members of the community who have never been to UDS before and are keen to participate and experience the event.
  • You don’t have to provide technical contributions to apply – if you have participated in the areas of advocacy, documentation, testing, art, design etc, you are encouraged to apply.
  • UDS is an event that encourages diversity – we welcome everyone to apply for sponsorship, irrespective of gender, race, impairment, technical expertise, or other factors.

If you are participating in the Ubuntu community, we would love you to apply for sponsorship. This is how it works:

  1. You can apply for sponsorship by following these instructions. Apologies for the different forms you need to fill in – we are going to consolidate these forms at the next UDS. The deadline for submissions is Wed 22nd February 2012 so be sure to get yours in!
  2. When the deadline is reached we will assess the applications and finalize who we will be able to sponsor.
  3. You will then receive an email outlining whether we can sponsor you or not.

Simple! I look forward to seeing your applications, and seeing many of you in Oakland!

Read more
Inayaili León

If you’ve ever had to create Ubuntu or Canonical related design materials, chances are you had a look at the Brand Guidelines, which, until now, have only existed in the form of bulky PDFs. Those days are over, as we happily introduce the brand new Ubuntu Brand Guidelines site, where you can read the guidelines and download the assets necessary to create your projects.

Ubuntu Brand Guidelines homepage
Ubuntu Brand Guidelines homepage

You can learn more about the Ubuntu brand values and the brand assets, such as our logos, colour palette and pictograms, and how to use them. You can also consult some of our Web-specific guidelines, look at examples of design work that has been done, and download assets like the logos and pictograms.

Ubuntu Brand Guidelines - Brand assets section
Brand assets section on the Brand Guidelines site

This is the first iteration of the site: lots of content is being prepared and will be added later on, and we will also work on some refinements to the asset download process, as well as adding many more useful downloads, such as templates and photography.

Among the more frequently requested assets are HTML and CSS snippets and templates that can simply be copied and pasted on internal and external projects, so the designer or developer can be certain everything looks as it should. This is in the works, but it’s something that takes a little bit more time to get just right, so please bear with us.

For now, we’d be delighted to get your feedback on this first version: have you found anything particularly useful on the site? What would you like to see there that you think it’s missing? How do you think it can be improved?

We hope we enjoy the online Ubuntu Brand Guidelines!

Read more
jriddell

Kubuntu has packages for 4.8 bringing updates to Plasma workspaces and a load of KDE Applications.

To quote a nice user posting on kde-devel

"I upgraded to Ubuntu's Precise Alpha 1 a few days ago. After the upgrade completed, I tried out KDE 4.8 RC 2. It worked great until the final release of KDE 4.8 Final. KDE 4.8 Final is even better than the RC!"

or later in the same thread

"KDE 4.8 is rocking for me too.Using the Kubuntu PPA's on Sandy Bridge system and it's just lightning fast to do anything. "

Read more
Curtis Hovey

Social private teams

The title may sound like a contradiction, but I assure you that it is not. You can now use private teams in social contexts in Launchpad. Private teams can collaborate with public projects and other teams if they choose to reveal the existence of the private team.

  1. Private teams can me members of other teams.
  2. Other teams can be members of private teams.
  3. Private teams can subscribe to bugs, blueprints, branches, and merge proposals
  4. Private teams  can be in public project roles,  such as maintainers, drivers, and bug supervisors.
  5. You can change the branch owner to be a private team.
  6. Private team personal branches (+junk) are always private.

When a member places the private team in a social situation, a the member is asked to confirm that it is okay to reveal the team’s identifying information. This information is the team’s Launchpad Id used in URLs, the displayname, icon, and logo. A user can visit the private team’s Launchpad page and will only see that information. The rest of the page is not shared. Anonymous users cannot see a private team’s page because that user is not being social; logged in users can see the private team’s page

Private team page seen by a non-member

Launchpad did not permit these interactions previously because it was not clear who should know about the team. Someone has to know. If Launchpad permitted private teams to subscribe to bugs or be members of teams without anyone knowing of them, they would be unaccountable. Private teams could spy on organisation, or learn about security vulnerabilities to exploit. Launchpad will not ever permit such asocial behaviour. The resolution for social interactions was to permit other parties to know enough of the private team to make an informed decision. For example, when I choose to make a bug private, I want to know who was already seen the bug through a subscription. I may choose to unsubscribe the private team if I do not trust them.

Private teams may invite exclusive teams to be members. Exclusive teams (moderated or restricted teams) review all members so they are accountable. If a team admin trusts the admins of another team, and that team is accountable, Launchpad permits the other team to be a member. This is actually a rule that applied to all exclusive teams. private teams are always exclusive (restricted membership policy). The only nuance with private teams is when it is a member of another team; the super team may know the members of the private sub team because the super team has the right to audit all its members so that it too can be accountable.

Read more
Nicholas Skaggs

A bug's tale

Have you ever filed a bug with ubuntu? Software is merely a reflection of our humanity and as such it is not perfect. Still assuming you make your way through the bug reporting process, you may be left wondering what next? As a user it's unclear what will happen to your report once submitted.  Charles Profitt has done us a wonderful favor by not only visually laying out the process, but in addition has taken a step back and examined a good workflow for what to do when we have a "problem" using ubuntu. Check it out here: Problem Lifecycle

It's important to note that indeed not every problem is a bug and as such the simplest workflow thru the chart is to get help and solve the problem without creating a bug report :-) Ubuntu has a wonderful community with a variety of outlets to get help. Don't let this bog you down! Interact with the community in whatever way is preferable for you. In addition, in the diagram Charles doesn't mention all of the states a bug can be in. In the past, a bug you reported might have been marked as invalid or won't fix. These states can be really confusing and upsetting for a bug reporter. In future posts, I hope to share more information about how a bug is worked once it has been reported, and more importantly how you as a user can help get your bug resolved as quickly as possible.

For now, if you want to learn more about the the ubuntu problem lifecycle check out Charles's session on "Problem Lifecycle" at 21:30 UTC on 2 Feb 2012. Thanks for giving a talk Charles!

Read more
Inayaili León

Warm grey is one of the neutral colours from Ubuntu and Canonical’s colour palette. It has been added to the palette for balance, being a bridge between the vibrant orange and aubergine.

The brand guidelines specify that warm grey (hex value: #AEA79F) can be used for: backgrounds, graphics, pictograms, dot patterns, charts and diagrams, and large size text.

Even though its use has been tried and tested on some of our print design materials, we are still finding the best way of applying it on the screen, with accessibility considerations in particular being something we want to get right.

Ubuntu Server brochure
Warm grey used in a brochure spread and diagrams

I made a quick example of warm grey text on white and buttons with white text on warm grey and showed it to the Ubuntu accessibility team, who promptly gave me some feedback.

Warm grey text on white and white text on warm grey
Example used to showcase warm grey text on white and white text on warm grey

Here are the conclusions of this discussion, and what we will now try to follow as a rule:

  • Warm grey is easier to read on white and at larger sizes, such as 24-36px
  • It can be used for short, less important pieces of information (for example the date or author of a post or news piece below the main title)
  • It can also be used in buttons that are deactivated and therefore less relevant

Guidelines can change though. If something doesn’t evolve, or is at least reassessed at certain intervals of time, it can very easily stagnate. So we will test these conclusions and follow these simple rules for now, knowing that later on we may decide there is a better way of achieving the same results.

Read more
pitti

Suppose you install Ubuntu and select a language other than English (it’s known to happen!). This will install the general and the GNOME language packs, translated LibreOffice help, and so on. Now, install a KDE package or GIMP. You’ll notice that the new application is not translated and has no help available for your language. The next time you open the language selector from control-center it would tell you that you miss some language support and offer to install it, but this has been pretty indiscoverable, and we really can do better.

Today’s language-selector upload provides an aptdaemon plugin which automatically marks corresponding language support packages (translated help, dictionaries, spell checker modules, and translations themselves) for installation for any newly installed package, for all languages that are configured on your system.

For example, I have German and English locales on my system, and no KDE packages. Before, installing GIMP got me just that:

$ aptdcon -i gimp
The following NEW package will be installed (1):
gimp

Now it automatically installs the corresponding localized help:


$ aptdcon -i gimp
The following NEW packages will be installed (4):
gimp gimp-help-common gimp-help-de gimp-help-en

I am using aptdcon here as it points out the effect better than software-center doing all this in the background, but both use aptdaemon, so the effect will be the same.

Likewise, installing the first KDE-ish package will automatically install the KDE language packs:


$ aptdcon -i kate
The following NEW packages will be installed (71):
kate kate-data [...] kdelibs5-data [...] language-pack-kde-de language-pack-kde-en [...]

This is now possible because I rewrote the check-language-support logic from scratch; the old code was very slow, hard to read and a nightmare to maintain, and also depended on a lot of data files. The new code is very fast (figuring out all missing language support packages for all installed packages for all available locales takes 8 ms on my system), and has full test coverage.

While the check-language-support program still works (I rewrote it using the new API), it is easier and probably a lot faster to just use the new API now, e. g. in our Ubiquity installer.

Say goodbye to this 2.5 year old bug!

Read more
Nicholas Skaggs

A bug's tale

Have you ever filed a bug with ubuntu? Software is merely a reflection of our humanity and as such it is not perfect. Still assuming you make your way through the bug reporting process, you may be left wondering what next? As a user it's unclear what will happen to your report once submitted.  Charles Profitt has done us a wonderful favor by not only visually laying out the process, but in addition has taken a step back and examined a good workflow for what to do when we have a "problem" using ubuntu. Check it out here: Problem Lifecycle

It's important to note that indeed not every problem is a bug and as such the simplest workflow thru the chart is to get help and solve the problem without creating a bug report :-) Ubuntu has a wonderful community with a variety of outlets to get help. Don't let this bog you down! Interact with the community in whatever way is preferable for you. In addition, in the diagram Charles doesn't mention all of the states a bug can be in. In the past, a bug you reported might have been marked as invalid or won't fix. These states can be really confusing and upsetting for a bug reporter. In future posts, I hope to share more information about how a bug is worked once it has been reported, and more importantly how you as a user can help get your bug resolved as quickly as possible.

For now, if you want to learn more about the the ubuntu problem lifecycle check out Charles's session on "Problem Lifecycle" at 21:30 UTC on 2 Feb 2012. Thanks for giving a talk Charles!

Read more
Leann Ogasawara

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

Read more
Jussi Pakkanen

The four stages of command entry

Almost immediately after the first computers were invented, people wanted them to do as they command. This process has gone through four distinct phases.

The command line

This was the original way. The user types his command in its entirety and presses enter. The computer then parses it and does what it is told. There was no indication on whether the written command was correct or not. The only way to test it was to execute it.

Command completion

An improvement to writing the correct command. The user types in a few letters from the start of the desired command or file name and presses tab. If there is only one choice that begins with those letters, the system autofills the rest. Modern autocompletion systems can fill in command line arguments, host names and so on.

Live preview

This is perhaps best known from IDEs. When the user types some letters, the IDE presents all choices that correspond to those letters in a pop up window below the cursor. The user can then select one of them or keep writing. Internet search sites also do this.

Live preview with error correction

One thing in common with all the previous approaches is that the input must be perfect. If you search for Firefox but accidentally type in “ifrefox”, the systems return zero matches. Error correcting systems try to find what the user wants even if the input contains errors. This is a relatively new approach, with examples including Unity’s new HUD and Google’s search (though the live preview does not seem to do error correction).

The future

What is the next phase in command entry? I really have no idea, but I’m looking forward to seeing it.

Read more
olli

Welcome to the HUD

Today we are releasing one of the first projects I was involved in and I wanted to share some of the goodness with you. One of the first topics in my new job was a project called HUD. The project has been talked about in length and design have been created, reviewed and started over [...]

Read more
Colin Ian King

open() using O_WRONLY | O_RDWR

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.


Read more
jono

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!

Read more
Nicholas Skaggs

Testing the HUD! (Heads up display)

I hope everyone has seen the announcement about the upcoming Heads Up Display feature hopefully landing in 12.04. If not, go read about it here: http://www.markshuttleworth.com/archives/939 I'll wait.

Great, now in order for this feature to show up in precise it needs some more work and refinement. Our focus on quality continues and this feature is not excluded -- in order to ensure its of release quality for precise, we're asking the community to help test and evaluate the feature. Here's everything you need to know to get started:

Prerequisites: Make sure you are running the latest version of precise, and all your packages are up to date. Unfortunately this cannot be installed on oneiric or any previous ubuntu release.

1) Add the HUD ppa (https://launchpad.net/~unity-team/+archive/hud). You can do this by issuing the following command:

sudo add-apt-repository ppa:unity-team/hud
2) Update apt and run a dist upgrade -- this should prompt you to upgrade unity and some indicators
sudo apt-get update && sudo apt-get dist-upgrade
3) Restart your unity session by logging out and logging back in again.

Now you should be up and running. Invoke the HUD using the 'alt' key. Go and try out your favorite apps and see how things work. When you find a bug, at this point please do not use the ubuntu-bug command or apport -- these tools are not setup to handle working within a ppa. Instead file a bug using launchpad against one of the following projects depending on the nature of the bug:

For anything related to the user interface, ie directly unity related, file a bug against unity:http://bugs.launchpad.net/unityWhen filing, tagging the bug with 'HUD' would be helpful to streamline visibility to the unity developers.

For any issues with matching or other issues core to the tool itself, file them against the appmenu indicator.http://bugs.launchpad.net/indicator-appmenu

Still stuck or have more questions? Visit the wonderful folks on #ubuntu-unity on Freenode. And remember, HUD will also land with unity 5.2 coming soon!

Read more
Joseph Salisbury

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.

Read more
Nicholas Skaggs

Testing the HUD! (Heads up display)

I hope everyone has seen the announcement about the upcoming Heads Up Display feature hopefully landing in 12.04. If not, go read about it here: http://www.markshuttleworth.com/archives/939 I'll wait.

Great, now in order for this feature to show up in precise it needs some more work and refinement. Our focus on quality continues and this feature is not excluded -- in order to ensure its of release quality for precise, we're asking the community to help test and evaluate the feature. Here's everything you need to know to get started:

Prerequisites: Make sure you are running the latest version of precise, and all your packages are up to date. Unfortunately this cannot be installed on oneiric or any previous ubuntu release.

1) Add the HUD ppa (https://launchpad.net/~unity-team/+archive/hud). You can do this by issuing the following command:

sudo add-apt-repository ppa:unity-team/hud
2) Update apt and run a dist upgrade -- this should prompt you to upgrade unity and some indicators
sudo apt-get update && sudo apt-get dist-upgrade
3) Restart your unity session by logging out and logging back in again.

Now you should be up and running. Invoke the HUD using the 'alt' key. Go and try out your favorite apps and see how things work. When you find a bug, at this point please do not use the ubuntu-bug command or apport -- these tools are not setup to handle working within a ppa. Instead file a bug using launchpad against one of the following projects depending on the nature of the bug:

For anything related to the user interface, ie directly unity related, file a bug against unity:http://bugs.launchpad.net/unityWhen filing, tagging the bug with 'HUD' would be helpful to streamline visibility to the unity developers.

For any issues with matching or other issues core to the tool itself, file them against the appmenu indicator.http://bugs.launchpad.net/indicator-appmenu

Still stuck or have more questions? Visit the wonderful folks on #ubuntu-unity on Freenode. And remember, HUD will also land with unity 5.2 coming soon!

Read more

Searching Menus

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

Read more