Canonical Voices

Michael Hall

This is my third Core Apps update, you can go back and read about the Clock and Calendar apps if you missed them.  Today I’m going to show off the Calculator app.

Calculator Features

Basic Functions

The Calculator does exactly what you would expect a calculator to do.  It’s a four-function calculator and does it’s job perfectly well.  But it has a few unique features that make it so much more useful.  Using the old paper-roll calculators as inspiration, the calculator lets you label the numbers in your calculation, so you can go back and see “7 what?”.  When you’re done with a calculation, instead of clearing it off, you simply drag upwards to “tear off” that individual calculation.

Calculation History

Just because you’ve torn off a calculation, doesn’t mean you’ve thrown it away.  Instead, your calculation is stored in a browseable history.  This makes the labels even more useful, because you can go back hours, days, even months to an old bit of calculating.  You can even tap on any number in any of those calculations to insert it into your current one.  If you really are done with a calculation, you can swipe it to the right or left to delete it from your history.

Visual Designs

The Design team says we’ll have visual designs for the Calculator later this week, so the developers will be able to start on implementing those.  Keep an eye on the design team blog and Google+ to see them when they come out.

Release Schedule

The release schedule for the Calculator is the same as the Clock.  It’s already well past what would be considered an Alpha release, so we just called May for that milestone.  Going forward, we plan on delivering a Beta in July that includes the visual designs, followed by a final release in August.

Read more
bigjools

A few years ago I wrote a contrib script for Launchpad’s launchpadlib called ‘close-my-bugs.py’ which attempted to close (aka mark them ‘fix released’) all of your bugs in a project that were targeted to a particular milestone.

For various reasons it grew out of date and when I needed to use it recently, it didn’t work!  Long story short, I just fixed it up and added a couple of new features:

  • You can optionally close just your own bugs, or all the bugs in the milestone
  • You can search for bugtasks targeted against a series in your project (these are not normally picked up when searching in a project’s milestone)

You can grab the code here:

bzr branch lp:launchpadlib

contrib/close-my-bugs.py

Read more
Nicholas Skaggs

A few months ago the ubuntu touch core apps project was launched. For those of you following along with Michael's regular updates have gotten to see these applications grow up rather quickly.

Autopilot Says: How can I help?
Now it's time to add some more testing around these applications as they have reached a basic functional level of usability. Automated testing via autopilot to the rescue!

To help kickstart this process we've put together a recipe for writing autopilot tests specific to QML applications and added it to developer.ubuntu.com. In addition, we'll be hosting a hackfest next week on June 13th to help add basic autopilot testcases for each of the core apps. Folks will be on-hand ready to field your questions and hack together on the autopilot testcases needed for the applications. Join us and help support the wonderful community of application developers making awesome applications for ubuntu!

So how can you help? 
  1. First, go read through the recipe on writing autopilot tests for QML applications. It's also a good idea to have a look through the official tutorial for autopilot and bookmark the API reference link so it's handy.
  2. Armed with your new knowledge, start hacking on some autopilot tests for the core apps. Here's a list of core applications along with the status of autopilot tests. Choose something that looks interesting to you and add some tests.
  3. Follow the contributing guide to help you get your work contributed into the ubuntu touch core application project you chose.
  4. Finally come out to the hackfest! It's your chance to share your work, ask questions, get your tests sorted and merged and socialize and meet other members of the community.
  5. Don't forget there is a wonderful quality community you can be a part of and get help from if you get stuck! There's a mailing list for ubuntu-touch, and ubuntu-quality as well as IRC channels #ubuntu-touch, #ubuntu-autopilot and #ubuntu-quality. Use these resources to help you!
See you next week and happy testing!

Read more
Gavin Panella

Workaround for uploading files to MAAS

It turns out that it's not possible to use maas-cli to upload files to MAAS. It's not something that most people need to do because tools like Juju use MAAS's API directly to upload files. However, the following workaround can be used like so: upload.py http://example.com/MAAS/api/1.0/ my:api:key my_filename < my_file

Read more
Rick Spencer

The Social Phone

Yesterday I blogged about how psyched I was to have cellular data on my phone. Then I listed some things that the Ubuntu Touch needed to reach parity with my old Android phone, for me, personally. One of those missing things was a way to share images from my phone. But look! This actually works already. It turns out that there is a good start of social integration already started and working. 

Thanks to Bill Filler for walking me through the simple steps. Here's what to do if you want to get Twitter working.

Step 1: In your terminal, run the command $uoa-create twittter . So for me, I did "uoa-create twitter rickspencer3".(to get Facebook integration use $uoa-create facebook . 


Step 2: Wait for the Twitter auth web page to open. For some reason it is really tiny and you can't zoom it. The Facebook page is also tiny, but you can zoom it. However, be careful, the Facebook page requires you to click the commit button, which is way down on the bottom right. 

Step 3: Go to the Application lens. Search for the Friends app, and launch it.
Step 4: Glory in having your timeline on your phone!


Note that only Twitter and Facebook are integrated so far, more networks coming soon. Also note that you can't tweet pics from your gallery yet, but that is coming soon as well.

Of course, we can't rely on using a terminal to set up things like this. I'll be excited to see more social networks and a a GUI configurator land in the image.

Read more
Michael Hall

Yesterday I posted the first in a new series of Core App Update, featuring the Clock App’s development.  Today I’m going to cover the status of the Calendar

Calendar Features

Calendar View

The calendar now provides several different views you can choose from.  You start off with a full month at the top, and your events for the day below.  Swiping left and right on the month will take you back or forward a month at a time.  Swiping left or right on the bottom half will take you back and forward a day at a time.

Pull the event area down and let it go, and the month will collapse down into a single week. Now swiping left and right there will move you back and forward a week at a time.  Pull down and let it go again and it will snap back to showing the full month.

Finally, you have an option in the toolbar (swipe up from the bottom edge) to switch from an event list to a timeline view of your events.

Adding Events

You can current add events to the calendar app, and they will be stored in a local database.  However, after discussions with Ubuntu Touch developers, the Calendar team is refactoring the app to use the Qt Organizer APIs instead.  This will allow it to automatically support saving to Evolution Data Server as a backend as soon as it’s integrated, making calendar events available to other parts of Ubuntu such as the datetime indicator.  Being able to import your ical feeds is also on the developer’s TODO list.

Visual Designs

We don’t have new visual designs for the Calendar yet, but it is one of the apps that the Design team has committed to providing one for.  Now that they are done with the Clock’s visual designs, I hope to see these soon for the Calendar.

Release Schedule

Once again I worked with the Calendar developers to set release targets for their app.  The alpha release is targeted for month-2, this month, and should include the switch to Qt Organizer.  Then we plan on having a Beta release in August and a Final in September.

Read more
Prakash

Honda has launched the Honda Amaze which looks like a good alternative to Maruti Swift Dzire. Here is what looks interesting:

  • First, it is designed as a Sedan unlike the Dzire. The Dzire looks like a hatch-back with a boot, while the Amaze is a proper Sedan.
  • Best mileage. Honda has worked hard to provide the best mileage since that is such a big thing for Indians.
  • Diesel option, Honda’s first Diesel car in India offers a choice of both Diesel and Petrol.
  • Automatic option (only in petrol). In heavy traffic condition, Automatic is a pleasure to drive and this is a good option if you prefer to drive on your own.
  • It also has a bigger boot than the Dsire but smaller than the Etios.

More when I get to test drive, until then drool.

Read more
Rick Spencer

Dog Fooding Success

Last week I was in Washington DC house hunting (successfully, I might add ;) ). Since I abandoned my Android phone for full time Ubuntu Touch phone, the lack of cellular data was painful, but not as painful as I thought it would be because there was wireless everywhere. However, there were a couple of times that I would have liked to have checked email and such when I wasn't around wireless. Also, I get lost easily, so not being able to check a map was a painful regression once or twice.

So, today, I was really happy to get the cellular data set up on my phone, and knock around Seattle a bit trying it out. It worked really well. It was interesting to see how so much of the slowness of my old phone was the phone itself, and not the cellular network speed as I had thought. I got a nice snappy experience on Ubuntu Touch.

In the image above, you can see that one needs to use the terminal to turn the cellular data connection on and off. I wish we had co-developed the GUI with the backend support. I would like us to start thinking more across the team, seeing if we can bring experiences out in full. That said, I know it was a huge amount of work to get data working, and having the back end working and keeping it working is certainly a solid way to develop. So, great job to the Phonedations team!

Having cellular data completes the "daily driver" goals we set! Never one to rest, now I am thinking about what would bring parity for my Ubuntu Touch phone in terms of the features that I actually used on my Android phone. The list is modest:

  1. My phone sometimes gets hot and then the batter runs down faster than it should. Would love to figure out what is going on there and get longer batter life.
  2. Getting pictures *off* my phone. I can take pictures, but can't share them yet.
  3. Loading up and watching videos. I like to take videos to the gym and on trips and watch them on my phone sometimes.
  4. Euchre. I know this is silly, but I have passed a lot of time playing this card game on my last phone. Maybe I can make my own implementation, but programming a card game seems like it would best be done with a framework, and it's not really up my ally.
I'm sure everyone has a different list like this, but I bet I am the only one with Euchre on their list. :)

Read more
Joseph Salisbury

Meeting Minutes

IRC Log of the meeting.

Meeting minutes.

Agenda

20130604 Meeting Agenda


ARM Status

Q/master: lp1176977 (“XFS instability on armhf under load”) – cherry picked
more fixes for the preallocation code, rerun the swift benchmark with different
fs sizes but unfortunately some xfs tests failed, under investigation.
*/highbank: lp1182637(“cpu_offlining fails to run on ARM”) – little progress on
this one, but i’m still working on it.
There was a question whether we had helped test the Nexus 7 kernel for phonedations.
They stated they didn’t have the hw
That was the only blocker from it landing in the touch images
Will sync with rtg upon his return then


Release Metrics and Incoming Bugs

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

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


Milestone Targeted Work Items

It appears not all the blueprints are setting the series properly and thus we may be missing some
work items for our team. I’ll review any oversights and update the table next week.

   ogasawara    foundations-1305-kernel    1 work item   
      mobile-power-management    1 work item   
   rtg    foundations-1303-phablet-kernel-maintenance    2 work items   
   sforshee    foundations-1303-phablet-kernel-maintenance    1 work item   
   smb    servercloud-s-virtstack    1 work item   


Status: Saucy Development Kernel

Our Saucy unstable branch has been rebased to the latest v3.10-rc4
upstream kernel. Saucy master-next is currently at v3.9.4. We are
debugging some boot issues with the v3.10-rc4 rebase, so will hold off
on uploading a v3.10 based kernel until those are resolved.
We still anticipate an AppArmor pull request this week from the security
team to get the latest AppArmor patches into our phablet kernels.
Important upcoming dates:
Thurs June 20 – Alpha 1 (opt in)


Status: CVE’s

Currently we have 71 CVEs on our radar, with 2 CVEs added and 0 CVEs retired in the last week.
See the CVE matrix for the current list:

  • http://people.canonical.com/~kernel/cve/pkg/ALL-linux.html

    Overall the backlog has decreased slightly this week:

  • http://people.canonical.com/~kernel/status/cve-metrics.txt

  • http://people.canonical.com/~kernel/cve/pkg/CVE-linux.txt


Status: Stable, Security, and Bugfix Kernel Updates – Raring/Quantal/Precise/Lucid/Hardy

Status for the main kernels, until today (Jun. 04):

  • Lucid – In Verification;
  • Precise – In Verification;
  • Quantal – In Verification;
  • Raring – In Verification;
    Current opened tracking bugs details:
  • http://people.canonical.com/~kernel/reports/kernel-sru-workflow.html

    For SRUs, SRU report is a good source of information:

  • http://people.canonical.com/~kernel/reports/sru-report.html

    Future stable cadence cycles:

  • https://wiki.ubuntu.com/RaringRingtail/ReleaseInterlock


Open Discussion or Questions? Raise your hand to be recognized

Thanks everyone

Read more
Ben Howard

Ubuntu Server 11.04 has proven to be a venerable server platform, it has nonetheless, reached its end of life on October 28, 2012. Whether or not you are blissfully unaware, end-of-life means that updates and security patches have been discontinued.

As part of the EOL'ing of a release, the mirrors are retired over time. Last week the mirrors for 11.04 were retired from archive.ubuntu.com, which in turn propagated through to the S3 EC2 mirrors. Any person using Ubuntu 11.04 and the S3 mirrors or archive.ubuntu.com will be unable to install software.

Over the last week, the Cloud Image team has fielded several questions from distraught users caused by the continued use of 11.04. We strongly suggest that those running Ubuntu Server 11.04 and the recently expired 11.10 and 8.04 LTS upgrade to a supported release to prevent any disruptions to their infrastructure. The current supported LTS is 12.04 with 13.04 being the latest stable release. Ubuntu 10.04 LTS is supported until April of 2015.

Those who continue to run expired Ubuntu releases may experience issues and may be required to mitigate the movement of mirrors from the S3 and main archive servers to old-releases.ubuntu.com/ubuntu [2]. While Ubuntu 8.04 LTS and 11.10 are currently available at the main archive and S3 locations, they will be removed anytime, per policy [3]

The Symptom

For those who are still running 11.04 and are running the 11.04 Cloud Image, you mostly likely have encountered or will encounter some ugly error messages when you try to access the S3 archives for EC2 images in the form of 404 and 403 errors. For example:

Err http://security.ubuntu.com natty-security/main Sources
  404  Not Found [IP: 91.189.92.201 80]
Err http://security.ubuntu.com natty-security/universe Sources
  404  Not Found [IP: 91.189.92.201 80]
Err http://security.ubuntu.com natty-security/main amd64 Packages
  404  Not Found [IP: 91.189.92.201 80]
Err http://security.ubuntu.com natty-security/universe amd64 Packages
  404  Not Found [IP: 91.189.92.201 80]
Ign http://security.ubuntu.com natty-security/main Translation-en_US

And....

Err http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ natty-updates/main libapr1 amd64 1.4.2-7ubuntu2.1
  403  Forbidden
Err http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ natty/main libaprutil1 amd64 1.3.9+dfsg-5ubuntu3
  403  Forbidden

The reason for this is that when the archives were expired the S3 mirrors themselves replicated the expiration. This is a friendly way to let you know that you should upgrade [3]  to the Ubuntu Server 12.04 LTS.



If, however, you are unable to upgrade, there are two options. 

Fix Option 1:

sudo sed -i 's,http://.*ubuntu.com,http://old-releases.ubuntu.com,g' /etc/apt/sources.list
sudo apt-get -y update

If you intend on rebundling the image, you will need to run the following commands to ensure that bundled images retain the settings:

dpkg-divert --local --rename --add /etc/cloud/templates/sources.list.tmpl
sed -i  's,http://.*ubuntu.com,http://old-releases.ubuntu.com,g' \
     /etc/cloud/templates/sources.list.tmpl.distrib \
    | sudo tee /etc/cloud/templates/sources.list.tmpl

Fix Option 2: Starting new instances

If you are starting a new instance, you can configure your cloud-config to default to the new mirrors. The relevent option is the 

#cloud-config
bootcmd: 
- sed -i 's,\$mirror,http://old-releases.ubuntu.com/ubuntu,g' -e 's,http://security.ubuntu.com.,http://old-releases.ubuntu.com,g' /etc/cloud/templates/sources.list.tmpl.distrib > /etc/cloud/templates/sources.list.tmpl

References

[1] http://fridge.ubuntu.com/2012/10/28/ubuntu-11-04-natty-narwhal-end-of-life-reached-on-october-28-2012/ 
[2] http://old-releases.ubuntu.com/ubuntu/dists/
[3] https://help.ubuntu.com/community/PreciseUpgrades


Read more
Daniel Holbach

In many Ubuntu conversation I’ve been part of many of the participants agreed  that we need “more transparency”. It’s very easy to agree on as transparency is a good thing, it feels good and it makes things better. Achieving it in a meaningful way is a hard problem to solve though. Meaningful to me means not just “all information is available”, but also “relevant information is easy to find”. In Ubuntu development where hundreds of people put of lots of hard work into Ubuntu, we depend on thousands of other open source projects, where there’s discussions on IRC, on mailing lists, hangouts, in specifications and elsewhere, it’s incredibly easy to lose track of what’s important or relevant.

A lot of teams forming the core of Ubuntu send out weekly summaries of their work, which is great. Among them the Mir and Unity 8 team, the kernel team, Unity APIs team, the Ubuntu Touch team and there’s bits of information everywhere. While this is a great start in being able to get a more complete picture, it also takes some time to read, digest, understand and probably talk to people. To help with this we came up with an idea we already discussed at UDS.

The plan is to read and digest the news and have regular hangouts to which invite engineers to talk about what they’ve been doing, show what’s new and answer questions from the audience. To make this even a bit more interesting, we’d like to invite people from tech blogs and tech news sites. The idea being that they know what their readers would like to hear about and what’s interesting. This would bring together the best of many worlds: what’s new in Ubuntu, the new devices, apps, great stuff from the tech press and live interviews with engineers.

What I’d need now is a bit of help with organising this and setting this up. Please leave a comment or drop me a mail, if you think this is a great idea too and would like to help. :-D

Read more
rvr

In my daily work at Canonical I use VM's quite often to test Ubuntu Web Apps and new browser releases in different environments. I use a MacBook Pro 15" (mid 2012) as the main computer, currently running Ubuntu 13.04. This computer had rEFIt to boot and the default OSX system. Of the 500 GB, just 75 were dedicated to Linux, so I was forced to delete VM's or backup them in an external hard disk to re-use them. Finally, I decided to buy a SSD, which are quite cheap nowadays.

The SSD I bought was a Samsung 840 250 GB (not Pro version, which has some additional features). It costs 179 €.

This are the steps I followed to move my Ubuntu setup from a HD to a SSD.

  1. Burn a DVD with Ubuntu. I reused an old 12.04 disk, the -mac version.
  2. Boot Ubuntu from the DVD.
  3. Attach an external USB drive. This is used to (backup and) copy the partition from the HD to the SSD.
  4. Run gparted as root to copy the Linux partition (in my case, an ext4).

To copy the partition, I resized the USB drive partitions to live room to the HD's Linux partition, which is 75 GB. Then, in gparted I selected the partition from the HD, selected "Copy" from the partition menu and then "Paste" it in the spare space in the USB drive. This step took +40 minutes. At this point, the Linux partition is available in the external disk.

After that, I switched off the computer and replaced the HD with the SSD. Follow the link to see how. Now, the second part: to move and setup the system to the solid state disk. The SSD disk was blank, so it needed proper configuration.

  1. Boot Ubuntu from the DVD.
  2. Attach the external USB drive.
  3. Run gparted.
  4. Create a partition table in the SSD. I used GUID Partition Table (gpt) format, the one the original HD uses.
  5. Partition the SDD.
    • Create an EFI partition. The first partition has FAT32 format, 200 MB in size, "EFI" as label and "grub_boot" flag. 
    • Create the swap partition. At the end of the disk, I created a 10 GB "linux-swap" partition.
    • The rest of the disk will be available for the main Linux partition.
  6. Copy the Linux partition to the SSD. In gparted, select the Linux partition in the USB drive, copy and paste it in the SSD. This takes +45 minutes.
  7. Resize the Linux partition to fill the entire disk and flag it as "boot".

Congratulations! The Linux partition is now copied bit-by-bit in the SSD. However, it cannot boot. The reasons are: rEFIt (the bootloader) is not installed; the Linux partitions  are not properly configured. To do that, we need to modify the file /etc/fstab in the Linux partition (SSD).

And this is the final third step: setup the system to properly boot. In my SSD, /dev/sda1 is the EFI partition, /dev/sda2 the Linux partition and /dev/sda3 the swap partition. You may have different setup. /etc/fstab must be changed to reflect this addresses. From a terminal:

$ sudo mkdir /media/root 

$ sudo mount /dev/sda2 /media/root

The Linux partition is accesible in the directory /media/root/. The file /etc/fstab/ of the Linux partition can be edited now at /media/root/etc/fstab/

$ gksu gedit /media/root/etc/fstab

This is the original content:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda5 during installation
UUID=24acabd4-2fcb-49aa-9fb3-ce9e657d4465 / ext4 errors=remount-ro,user_xattr 0 1
# swap was on /dev/sda7 during installation
UUID=c40532ab-5716-47bc-9b95-3672b834c6a2 none swap sw 0 0

Here, the modifications:

# / was on /dev/sda5 during installation
/dev/sda2 / ext4 discard,errors=remount-ro,user_xattr 0 1
# swap was on /dev/sda7 during installation
/dev/sda3 none swap sw 0 0

The blkid command can be run as root to find out the UUID strings of the devices and use them instead.

Then, I downloaded the compiled version of rEFInd, which is a fork of the rEFIt bootloader and able to run from Linux, Mac and Windows.

$ cd /media/root/root/

$ sudo wget http://downloads.sourceforge.net/project/refind/0.6.11/refind-bin-0.6.11.zip

This is almost done. We now "log" into the Linux partition (SSD) to apply the changes and setup the bootloaders. In order to do that successfully, the /proc and /dev from the live DVD are mounted to the Linux partition and the EFI partition (this is needed by rEFInd).

$ sudo mkdir /media/root/boot/efi

$ sudo mount -B /proc /media/root/proc

$ sudo mount -B /dev /media/root/dev

$ sudo mount /dev/sda1 /media/root/boot/efi

$ sudo chroot /media/root/

Now we're "logged" in the Linux partition as the root user. This is when GRUB and rEFInd are installed in the SSD to be able to boot Linux from the Mac.

# mount -t sysfs sysfs /sys

# cd /root/

# unzip refind-bin-0.6.11.zip

# cd refind-bin-0.6.11

# ./install-bin.sh --esp --alldrivers

# grub-install /dev/sda

# update-grub

# exit

And that's all. The system should be able to boot the Linux partition from the SSD.

Some caveats and open questions:

  • I installed rEFInd first, without GRUB. rEFInd and the system wasn't able to boot.
  • For some reasons, rEFInd in my system is much slower than rEFIt. It takes around 40 seconds to show up.
  • After installing GRUB, I'm not able to mount the EFI partition. Now has an unkown partition format.
  • Does GRUB really needs rEFInd?

References

Read more
Michael Hall

The Ubuntu Touch Core Apps project is a new kind of collaboration between Canonical and the wider Ubuntu community, with a goal of developing high-quality applications for Ubuntu Touch. A couple of months ago I set out the Core Apps roadmap to October, and it’s high time I got around to giving you an update on our progress.

I had originally planned on giving an update of each of the core apps in a single blog post, but I realized that was going to get very, very long.  And nobody has time to read a giant wall of text.  So instead I’ll be breaking them up, one post per apps, so you can spread your reading time over multiple days.

To kick this off, here are the latest developments going on in the Clock app:

Clock Features

Sunrise & Sunset

Recently added to the main Clock tab is a way to check the sunrise and sunset times for the day.  Simply tap on the clock face and it will switch to the sunrise/sunset view.  Tap it again to switch back.  Swipe up from the bottom to reveal the toolbar, where you can set your location (which is used to calculate your specific sunrise and sunset times).

Alarms

The Clock app developers are still waiting on a platform API to support registering alarms that will work even when the Clock app isn’t running.  But while they’re waiting on that, they’ve still be working hard on the interface for managing your alarms.  Their approach is both minimal and obvious, you drag the hour and minute hands around to the time you and and click Done in the center.  If you need more options, you can pick how often to repeat, what alarm tone to use, and whether or not to vibrate.

Now these won’t actually work until the platform API is in place, but you can already see how it will look to the user, and how simple it is to do.

Timer

Like the alarms, setting a timer is both minimal and obvious.  Unlike alarms, the timer is working today.  Drag the hand around to set how many seconds, tap the minutes part of the time and drag the hand to set the minutes.  Make more than one revolution around the dial and it will start adding hours as well.

Another nice feature is the ability to define custom timers that you can use again and again.  Swipe up from the bottom to reveal the toolbar again, select Add Preset, and set the duration using the same simple dragging motions on the dial.

Stopwatch

Finally we come to the stopwatch part of the app.  In addition to simple start, pause and reset functionality, the stopwatch lets you mark laps as it goes, and keeps a log of each one that you can view both while the stopwatch is running and after.

Visual Designs

Some of you may have seen the new visual concepts that the Design Team published last month, which received quite a bit of positive feedback.  Well this week they sent the Clock developers the completed visual designs for the Clock app, so we should start to get our first taste of those designs in action in the next few weeks.

Release Schedule

Starting a couple of weeks ago, I started working with each of the Core Apps developer teams to set release targets for Alpha, Beta and Final releases of the app, with a goal to have them all at a 1.0 version before the October release of Ubuntu 13.10.  For the clock, we decided to mark the month-1 milestone (May) as an alpha release, because of the progress they had already made.  We then picked month-3 (July) for beta and month-4 (August) for our final release target.  Furthermore we have work items assigned on a monthly release basis to track the progress we are making.

Read more
jono

Smart Scopes Update

One feature that didn’t land in Ubuntu 13.04 was the new Smart Scopes functionality in the Ubuntu dash. This feature greatly widens the scope (pun intended) of the dash returning results for a wide range of online services as well as local results. The whole system was re-architected to be more efficient, and designed to scale across our multi-device strategy.

Although the feature didn’t land in 13.04, the team assured us that it would land in the 13.10 cycle early yet it hasn’t appeared yet. I reached out to the team to get some clarity on why this hasn’t arrived yet, and Thomas Strehl, engineering manager for the feature has provided an update:

When we tried to complete scopes for 13.04 back in March we also introduced some issues which needed quite some time during April to resolve. Especially, resolving the result update flickering and completing all reviews with design (mostly related to previews) took us until the second week of May; that was after our sprint in Oakland. During a review session with Mark Shuttleworth at the sprint it became also apparent that the current way we do scopes isn’t exactly the right one, so we started investigating the right approach also in preparation for a scopes sprint end of May. That preparation work in combination with some more fixing and a lot of merging (around 10 branches), bumping versions etc and having mhr3 leaving for vacation slowed down the progress until 17th of May.

Trying to get everything landed was then suddenly blocked by too many autopilot failures which then turned out to not be the scopes fault but rather a regression when upgrading autopilot 1.3 (as well as problems in jenkins for a few days). Good news is that all those issues had been resolved last week, meaning that after autopilot was fixed the reported autopilot issues of scopes went below the required threshold.

However, it still hasn’t landed as of today, as everything has been prepared for making the switch from raring to saucy so a big chunk is waiting for landing, including the scopes (as discussed at vUDS, everything needs to be moved at the same time as autopilot 1.3, hud touch are backward incompatible). To land all this all dependencies (libhybris, ofono, …) of the entire stack have to be resolved first and tests need to continue to pass. We will get there soon…didrocks, sil2100, rsalveti, and cyphermox are heavily working on it as we speak.

So, in a nutshell, things have been delayed due to an intricate web of dependencies, the switch to saucy, and some infrastructure gremlins. Fortunately though, we should see this land soon. Thanks to the team for all their efforts, and to Thomas for providing a thorough update!

Read more
Victor Palau

So a few months later, the game I was working on has now got to Beta stage. Since last time, I have added a few extra things:

  • Proper dogfight with a T50 fighter
  • Plane shadows
  • Scaling for multiple size screens
  • Revamp and multitouch controls
  • Collisions and explosions
  • Full keyboard control
  • Added 13 levels, loaded from level.txt JSON file
  • Tutorial walkthrough
  • and lots of bug fixes

Still only a Beta, but all the game play is now completed, now it is just fixing bugs ;) All the code is here, and some screen shots.

https://code.launchpad.net/~vtuson/+junk/dogfight

screenshot2
screenshot3
screnshoot1


Read more
jono

For some time now we have wanted to improve the community pages on ubuntu.com. While the pages there provided an overview of the community they really didn’t serve us or our new community members very well.

At UDS in Copenhagen back in November we agreed to work on a project to build a new set of community pages, but in a more scalable and accessible way, and in a way that is easier to maintain and improve. We worked together as a community to coordinate a docs jam, to identify what content was needed, start building some of the core material, put together a WordPress instance, get it themed and prettified, and then review the content and get it trimmed, concise, and accessible. The final result is fantastic, detailed, and provides a wonderful springboard for contributing. I plan on having a regular session at every forthcoming UDS to discuss improvements and refinements to the pages to ensure they serve our community well.

Many people contributed their time to this project, and I want to offer my thanks to everyone who helped drive it forward. I want to highlight one person in particular though, Daniel Holbach on my team, who I gave a very explicit goal of pulling together these many threads into a completed product by the end of May. Daniel deftly delivered this coordination with our community contributors, while also balancing the many other projects he is coordinating too. As ever, fantastic work, Daniel!

You can visit the site by simply going to ubuntu.com and clicking the Community link at the top. ;-)

Read more
jono

A while back I blogged about dogfooding Ubuntu Phone; that is, eating our own dogfood by using it on a daily basis. I have been tracking this here.

The phone team were setting the end of May as a goal for getting the phone into this daily driver state, and they have delivered most of what is needed.

In summary:

  • The phone OS is reliable and doesn’t crash.
  • Making and receiving calls works great. The phone now switches the screen on and off when you get a call/SMS, it switches to the phone app when you get a call, and switches the screen on and off when on a call based upon the proximity of your ear to the screen.
  • Sending and receiving text messages works great.
  • The messaging menu works great. Missed calls and texts appear there and I can reply or call back directly from messaging menu. I can also view my SMSes in the conversations list in the phone app.
  • Connecting to wireless networks works well.
  • Mobile data has landed but currently needs manual configuration to be used. I am waiting on the phone team to publish how to test this. UPDATE: Read how to test this here. They will be working on automating this next.
  • Power management is much better; when the phone is not used for 30 secs the screen is automatically shut off.
  • The camera works great (with flash) and photos appear as expected in the gallery. There is a shortcut from the camera app to the gallery.
  • The browser works well, now has a progress bar and overlayed history based upon the URL entered.
  • Orientation support has been added to a number of apps (phone, gallery, notepad, browser etc) so when you turn the phone the UI adjusts.
  • You can now easily add an unknown number as a contact.
  • Most of the fake apps and contact data have been removed.

All in all great progress is being made and I am continuing to use my Galaxy Nexus full time and now most of the bugs that made it a little difficult are fixed. As soon as mobile data arrives that will make life much easier, and the missing link for me is GPS, but the team are working on a location service to serve GPS needs.

Read more
Marcin Juszkiewicz

My time at Linaro is over

Today is my last day at Linaro. And this time it is for real (compared to “So long, and thanks for all the fish” post).

Often people asked me what I like at Linaro. It is openness with the “upstream first!” motto and the team. People with wide experience, open to share their knowledge, many FOSS world celebrities… I will miss those guys.

And this time I will not write summary of what I did at Linaro — most of the things worth mentioning were already mentioned (see archives).

So today I am changing mailing lists subscriptions, pass over maintenance of OpenEmbedded layers to Riku Voipio and other things related to my leave.

But who knows when our tracks will cross again. I think we will meet at FOSS conferences…


All rights reserved © Marcin Juszkiewicz
My time at Linaro is over was originally posted on Marcin Juszkiewicz website

Read more
jono

Fortunate

My parents came out to visit this week and I took a week off work to spend with them. We had not seen them for 18 months in person (pregnancy and babies make travel to England rather challenging), but we Skype video-chat pretty regularly. It was the first time they were meeting Jack and they absolutely fell in love with him. The feeling was definitely mutual on the baby side of the bargain.

It was a fantastic week. We took a weekend trip to Tahoe, had an evening with Erica’s dad and her brother and his girlfriend, another evening with Erica’s mum and step-dad, and of course, plenty of time with them with Erica, Jack and I.

They left to go back home today.

This afternoon I have felt rather empty; I miss them both.

I am tremendously thankful for my life, and thankful every day for my beautiful wife and baby, and my wonderful British, American, and Italian families. I knew I would feel this way when they left, but an awesome week with my family was well worth it for a shitty few days missing them.

Sometimes the empty moments just make you realize how full your life really is.

Mum and dad, I love you both, and can’t wait to see you in September. :-)

Read more
Colin Ian King

Kernel tracing using lttng

LTTng (Linux Trace Toolkit - next generation) is a highly efficient system tracer that allows tracing of the kernel and userspace. It also provides tools to view and analyse the gathered trace data.  So let's see how to install and use LTTng kernel tracing in Ubuntu. First, one has to install the LTTng userspace tools:

 sudo apt-get update  
 sudo apt-get install lttng-tools babeltrace
LTTng was already recently added into the Ubuntu 13.10 Saucy kernel, however, with earlier releases one needs to install the LTTng kernel driver using lttng-modules-dkms as follows:

 sudo apt-get install lttng-modules-dkms  
It is a good idea to sanity check to see if the tools and driver are installed correctly, so first check to see the available kernel events on your machine:

 sudo lttng list -k  
And you should get a list similar to the following:
 Kernel events:  
 -------------  
    mm_vmscan_kswapd_sleep (loglevel: TRACE_EMERG (0)) (type: tracepoint)  
    mm_vmscan_kswapd_wake (loglevel: TRACE_EMERG (0)) (type: tracepoint)  
    mm_vmscan_wakeup_kswapd (loglevel: TRACE_EMERG (0)) (type: tracepoint)  
    mm_vmscan_direct_reclaim_begin (loglevel: TRACE_EMERG (0)) (type: tracepoint)  
    mm_vmscan_memcg_reclaim_begin (loglevel: TRACE_EMERG (0)) (type: tracepoint)  
 ..  
Next, we need to create a tracing session:
 sudo lttng create examplesession  
..and enable events to be traced using:
 sudo lttng enable-event sched_process_exec -k  
One can also specify multiple events as a comma separated list. Next, start the tracing using:
 sudo lttng start  
and to stop and complete the tracing use:
 sudo lttng stop  
 sudo lttng destroy  
and the trace data will be saved in the directory ~/lttng-traces/examplesession-[date]-[time]/.  One can examine the trace data using the babeltrace tool, for example:
 sudo babeltrace ~/lttng-traces/examplesession-20130517-125533  
And you should get a list similar to the following:
 [12:56:04.490960303] (+?.?????????) x220i sched_process_exec: { cpu_id = 2 }, { filename = "/usr/bin/firefox", tid = 4892, old_tid = 4892 }  
 [12:56:04.493116594] (+0.002156291) x220i sched_process_exec: { cpu_id = 0 }, { filename = "/usr/bin/which", tid = 4895, old_tid = 4895 }  
 [12:56:04.496291224] (+0.003174630) x220i sched_process_exec: { cpu_id = 2 }, { filename = "/usr/lib/firefox/firefox", tid = 4892, old_tid = 4892 }  
 [12:56:05.472770438] (+0.976479214) x220i sched_process_exec: { cpu_id = 2 }, { filename = "/usr/lib/libunity-webapps/unity-webapps-service", tid = 4910, old_tid = 4910 }  
 [12:56:05.478117340] (+0.005346902) x220i sched_process_exec: { cpu_id = 2 }, { filename = "/usr/bin/ubuntu-webapps-update-index", tid = 4912, old_tid = 4912 }  
 [12:56:10.834043409] (+5.355926069) x220i sched_process_exec: { cpu_id = 3 }, { filename = "/usr/bin/top", tid = 4937, old_tid = 4937 }  
 [12:56:13.668306764] (+2.834263355) x220i sched_process_exec: { cpu_id = 3 }, { filename = "/bin/ps", tid = 4938, old_tid = 4938 }  
 [12:56:16.047191671] (+2.378884907) x220i sched_process_exec: { cpu_id = 3 }, { filename = "/usr/bin/sudo", tid = 4939, old_tid = 4939 }  
 [12:56:16.059363974] (+0.012172303) x220i sched_process_exec: { cpu_id = 3 }, { filename = "/usr/bin/lttng", tid = 4940, old_tid = 4940 }  
The LTTng wiki contains many useful worked examples and is well worth exploring.

As it stands, LTTng is relatively light weight.   Research by Romik Guha Anjoy and Soumya Kanti Chakraborty shows that LTTng describes how the CPU overhead is ~1.6% on a Intel® CoreTM 2 Quad with four 64 bit Q9550 cores.  With measurements I've made with oprofile on a Nexus 4 with 1.5 GHz quad-core Snapdragon S4 Pro processor shows a CPU overhead of < 1% for kernel tracing.  In flight recorder mode, one can generate a lot of trace data. For example, with all tracing enabled running multiple stress tests I was able to generate ~850K second of trace data, so this will obviously impact disk I/O.

Read more