Canonical Voices

Victor Palau

I decided to run some browser performance benchmarks from http://peacekeeper.futuremark.com/ in the Nexus 7 running Ubuntu, mainly to see how it compares with other platforms. Here are my basic conclusions as a result of the test:

  • In general Ubuntu + Nexus 7 performs pretty well
  • The Nexus 7 with Ubuntu and Chromium (629) performs better that the Android Nexus 7 (489)
  • Firefox performance (257) is pretty bad compare with Chromium (629). I have tested it in my laptop and the same different exist, however the more powerful hardware makes it not as relevant.

Unfortunately, I wasn’t able to access the detailed results (it displays blank), any suggestions why? My results are the bottom firefox (257) results, and the top Chrome (629):


Read more
Victor Palau

I just proposed the following blueprint  for UDS-R, and I though I will share it here to give it more visibility:

https://blueprints.launchpad.net/ubuntu/+spec/topic-raring-desktop-targets-for-embedded

What does it take to run Ubuntu Desktop on mobile devices?

It’s time to look at the core of Ubuntu and review it through a mobile lens. During 13.04, we will like to measure and improve how the guts of our platform performs against mobile metrics.

Things like battery life, memory footprint, support for sensors… are areas where needs and expectation widely vary between a PC and a mobile devices. 13.04 will be a cycle of exploration and learning. Because there is no better way to learn that getting your hands dirty, our practical exercise will be to get Ubuntu Desktop working on the Nexus 7.

The Nexus 7 exercise will be less like a 100 meters sprint (if you don’t cross the finish line you don’t get a score) and more like Javelin competition. The further that we can throw it, the higher the score!

On those basis, here are 8 types of Javelins to throw and some distance markers to hit for Ubuntu Desktop on Nexus 7:

*Memory Usage* ->Desktop runs well with 1GB RAM ->Desktop, Web Browser and email app all run well within 1GB -> Desktop runs well with 512MB -> Desktop, Web Browser and email app all run well within 512MB

*Power Mangement* -> Instant on ->Suspend/Resume 100 cycles with only 1 error -> boot up time <1 min -> Sensible Auto Suspend policy

*Battery Life* -> CPU on idle <1% -> Standby battery life is > 150 hours -> Battery life while browsing is > 8 hours -> Battery life playing HD video is > 5 hours -> Standby battery life is > 275 hours

*Testing* -> Functional shell test that can be loaded manually into the ROM ->Performance tests can be run -> Automated battery life test -> Automated battery life test

*Desktop Apps* -> Web browser boots < 3 sec -> Email client (local or web apps) -> Music Player -> Video Player -> Games

*Desktop Unity Performance* -> Fast App-Stack switching -> Launcher Reveal time < 2 secs -> Dash Reveal time < 3 secs ->Dash search < 5 sec ->Unity performs >60 FPS

*Functionality* -> Unity Desktop works ->touch input performs well -> Play a youtube video of a cat -> Play an HD movie -> Ubuntu one

*Sensors* -> Mic & Wifi -> Touch -> Camera -> position awareness sensors -> NFC

Click in the blueprint to see a summary of other releated UDS-R sessions.


Read more
Victor Palau

Oh my, seems that the Canonical team has been busy ;)

link to youtube video -  Here


Read more
Victor Palau

If you thought I had concluded my blog series on demonstrating how Ubuntu is the best environment to write up “connected” or “cloud backend” Android Apps, think again!

So far this is what we covered:

  • Proof that you can access a Juju local environment from the Android Emulator  done!
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps - done!
  • Develop a TODO list android app and connect it to the web service, so they talk to each other. – done!

The next step is “How to test that it all works on a production environment”.  If you have tested to death both your Android application and your web service locally, it is time to check if they will still work in real life. How do we do this? With few simple commands, we are going to deploy the same web service into the Amazon Cloud, and  the application in a mobile phone. All managed from the comfort of my Ubuntu Desktop.

Deploying to Amazon Web Services (AWS)

The only pre-requisite here is that you do have an AWS account. Once you are logged into the AWS website, you can find the credentials that you will need to set up your juju environment.  You can find a tutorial on how to set up your Elastic Compute Cloud (ec2) environment –> here.

The required information for Juju is stored in the environment.yaml file in the ~/.juju folder. In the following sample file you can see that two environments have been defined:

  • “local” is the environment that I have been using in my PC to test my web service using LXC containers.
  • “aws” gives Juju the information required to deploy services using my Amazon account.
  • “local” is set as default. This means that if I just run “juju bootstrap” this command applies to the local environment. To bootstrap the AWS environment, I would do “juju bootstrap -e aws”.
default: local
environments:
 aws:
  type: ec2
  access-key: YOUR-ACCESS-KEY-GOES-HERE
  secret-key: YOUR-SECRET-KEY-GOES-HERE
  control-bucket: juju-faefb490d69a41f0a3616a4808e0766b
  admin-secret: 81a1e7429e6847c4941fda7591246594
  default-series: precise
  juju-origin: ppa
  ssl-hostname-verification: true
 local:
  type: local
  control-bucket: juju-a14dfae3830142d9ac23c499395c2785999
  admin-secret: 6608267bbd6b447b8c90934167b2a294999
  default-series: precise
  juju-origin: distro
  data-dir: /home/victorp/myjuju_data

With my environments now configured, it’s time to deploy my services. This first step is to bootstrap my environment:

juju bootstrap -e aws

With the command completed successfully, I can check the status and I will see that the juju control instance is now up and running in Amazon:

juju status -e aws
2012-09-19 11:43:34,248 INFO Connected to environment.
machines:
  0:
    agent-state: running
    dns-name: ec2-75-101-189-208.compute-1.amazonaws.com
    instance-id: i-0e4f7174
    instance-state: running
services: {}
2012-09-19 11:43:35,322 INFO 'status' command finished successfully

Lets continue deploying the services. As I am only doing testing, I want to pay the minimum for it, it will ask juju to set a constrain to only use micro instances. Then I will deploy a mysql and a lamp service:

juju set-constraints instance-type=t1.micro -e aws
juju deploy mysql -e aws
juju deploy --repository ~/mycharm local:lamp -e aws
juju set lamp website-database="android_todo" -e aws
juju set lamp website-bzr="lp:~vtuson/+junk/mytodo_web" -e aws
juju expose lamp -e aws
juju add-relation lamp mysql -e aws

With all my services now running I can go to the Amazon EC2 instance console and see how they have been deployed as micro instances. I can now also enter the public address for my lamp service and see the ToDo list table as expected.

Testing the Android App on a real phone

Running Juju status, I can retrieve the public url for the lamp service and I replace the uri vairable in the TodoSourceData class with “ec2-107-22-151-171.compute-1.amazonaws.com/database.php”.  The next step is to plug a HTC Desire set up on debug mode into my laptop’s usb port. The rest is taken care by the Android Eclipse plug-ins. When I click  the run project button, I am presented with a choice of targets:

I just need to press “OK” and my ToDo app is launched in the handset. Opening the menu options and pressing “Sync” fetches the ToDo data from the Amazon services, as expected:

That is all for today! Let me know if you have any suggestions on what else I should cover on this blog series.


Read more
Victor Palau

Droidcon – London

Just a brief post to say that I will be talking at DroidCon on 26th October in London. This is what I will be covering:

Most Android apps nowadays are a front or local client for online services, from backing up data to the cloud to providing a cross platform service. This requires developers to have access to not just an Android environment, but also to a staging server that they can mess with. This requires the app developer to either gain knowledge of how to set up this complex web, or wait for someone to do it for them.

Juju is a service orchestration tool that allows you to deploy cloud applications like WordPress or Mysql to live clouds such as Amazon Web Services (AWS). Juju Charms package the wisdom of experience Dev Ops so anyone can deploy a complex apps with few simple commands. This can first be done to a local environment running in your laptop, and once you are confident on the service, deploy it to a live cloud. Ubuntu ,the leading linux desktop distribution, brings together the best support for Android app development (used by the Google Android team) with an easy to use cloud deployment toolset.

This talk will explore the simplicity of developing an android app that needs to talk to a cloud service. The talk will be framed around an example of a “TODO list” android app that locally stores information into a SQLite database, and then backs-up user data to the cloud. The talk will show how a android developer can deploy, in his or her laptop, a complex web service with just a handful of commands, and then get the application talking to the service form within the android emulator. Join us to grasp how Ubuntu can provide android developers a full test environment in a box.

My Droidcon talk profile


Read more
Victor Palau

Time for the next chapter of my blog series about demonstrating how Ubuntu is the best environment to write up “connected” or “cloud backend” Android Apps.  As you might know, the Android SDK allows you to set up a sandboxed environment to develop Mobile apps in your desktop, using Juju  you can do the same for Cloud apps.

To walk you through how to put these great development tools together, I set out to accomplish:

  • Proof that you can access a Juju local environment from the Android Emulator  done!
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps  - done!
  • Develop a TODO list android app
  • Connect the android app and the webservice, so they talk to each other.

Today I am going to cover the bottom two bullet points in one go!  For this post, I am going to assume that you know a bit of Android development. If you want a great source of introductory material check Lars Vogel’s website.

I have created a simple ToDo Android application that can store tasks into a local SQLite db and allows you to “Star” important items. The code for my Simple Todo app is hosted in Launchpad. I have written my application for Android 2.3, but you can use a later version.

Reading remote data from the MySQL server is confined to a small class that retrieves a JSON object and translates it into a TodoItem object.  Equally , the server code that prints that content table into a JSON object is extremely simple. Beyond this, you can go crazy and implement a RESTfull API to sync the databases.

At the moment, I am just inserting Server side data into the Local database and making sure I don’t add duplicates.Here is a video that shows how easy is to work and test both environments:

Or Click Here for the video.

The same environment should then work if you are running the Android application on an external phone. But that is another blog post ;)


Read more
Victor Palau

It is time to continue with my blog series on demonstrating how Ubuntu is the best environment to write up “connected” or “cloud backend” Android Apps.  As you might know, the Android SDK allows you to set up a sandboxed environment to develop Mobile apps in your desktop, using Juju  you can do the same for Cloud apps.

To walk you through how to put these great development tools together, I set out to accomplish:

  • Proof that you can access a Juju local environment from the Android Emulator  done!
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps
  • Develop a TODO list android app
  • Connect the android app and the webservice, so they talk to each other.

Today is time to set-up our own Cloud environment in a PC.  A good starting point for a web application is a LAMP stack. If you hope for you service to get popular, you might want to split out the database service and the web service into their own instances so they can be scaled easily.

When I set out to do this, I wanted to write an extremely simple PHP page that would expose a data table from a Mysql server.  I looked up the available charms on the store. I found that you had a lot of charms for existing apps, but none that had  the bare bones of a LAMP stack and just allowed you to install your own web pages. However, I did find a charm to deploy Mysql and a very handy tool to manage it (phpmyadmin). Taking this as a starting point I developed a generic LAMP charm.

The first thing the LAMP charm does is to install and configure a new instance with Apache and PHP5 in an LXC container. The new charm will then copy any files under /website  inside the charm folder structure, into /var/www. It also allows you to specify a Bazaar branch. It will clone the branch into the webserver and copy the contents to /var/www. I keep my TODO application for this exercise here.

Using juju, you can set up a relationship with a Mysql service. A Mysql database is created by default at this time. You can change the name of the database as a configuration options. If you provide a file called mysql_config either on the /website folder or in the root of you Bazaar branch, this will be used to configure further the Mysql database.

The charm will store the details of the relationship in /var/webconfig. In there you can also find opendb.php, a basic script that will open the connection to the MySQL database for you.

So lets get started! Clone the Lamp branch to a folder of your choice. I have it under “~/Mycharm/precise/lamp”. (If you need to get started with juju check my previous post here)

juju bootstrap

#step1 - deploy Mysql as a service.
juju deploy mysql

#step2 - deploy phpmyadmin tool
juju deploy phpmyadmin
juju set phpmyadmin password="password"

#this makes phpmyadmin public - exposes port 80/tcp
juju expose phpmyadmin

#step3 - link phpmyadmin and mysql so the can talk to each other
juju add-relation phpmyadmin mysql

#step4 deploy lamp from your local folder
juju deploy --repository ~/mycharm local:lamp

#step5 set up your bazaar branch and publish your website
juju set lamp website-bzr="lp:~vtuson/+junk/mytodo_web"
juju expose lamp

#step6 configure your database and link lamp and mysql services
juju set lamp website-database="android_todo"
juju add-relation lamp mysql

Once Juju has completed all the commands, run “juju status”. Now go to the ip address for the LAMP services and visit the databaseweb.php page (e.g. http://192.168.122.174/databaseweb.php) , you get this rather ugly table:

Id Todo Is it starred
1 hello this is a sample 1
2 yes it works! 0

This table is displaying the contents of a Mysql database. You will get the same data if you visit your Myphpadmin service:

So there you are a full and scalable LAMP stack in your PC!

If you want to update the web service by pulling the latest version of the Bazaar branch, just run the following commands:

juju set lamp bzr-update="yes"
juju set lamp bzr-update=

With my web developer “hat” on, I can now hand this charm over to my Android app developer. They will be able to set up exactly the same environment locally to test their app without using expensive server time.

So “Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps” – DONE!


Read more
Victor Palau

When it come to ARM Servers one thing that everyone agrees is that the new 64 bit architecture, introduced in ARMv8, will be a significant milestone for this market.

It seems that 14.04 LTS will be a big release for ARM Servers, as it is likely to be the first Long Term Support with ARMv8. However, the road to 14.04 starts now!

The first set of ARMv8 licensees are starting to be announced, so it is time to get Ubuntu ready for hardware bring up. What better place to start that with an ARMv8 kernel? and that is what Jeremy Kerr from Canonical has just published.

As he says: “Most of the components of the 64-bit ARM toolchain have been released, so I’ve put together some details on building a cross compiler for aarch64. At present, this is only binutils & compiler (ie, no libc), so is probably not useful for applications. However, I have a 64-bit ARM kernel building without any trouble.”

If you want to find out more about Jeremy’s work, see:

With the test kernel builds, we’re able to start low-level testing of ARMv8 hardware as soon as they become available. So, we are ready for ARMv8 hardware bring up, Are you?


Read more
Victor Palau

Have you ever wondered what is all the fuss about ARM Servers? Yes? good , good.

Have you ever wish you had some crazy Zooming UI presentation that told you all about it? what.. no!? Well though.. because now you have one :)

If you haven’t heard of Prezi, it is a new way to generate more dynamic presentations. I will give you a few tips:

  • When viewing a Prezi, make sure you click on the “Full Screen” for maximum effect (under More..)
  • You can also click on autorun if you fancy the animation to happen on its own
  • You can also use the right and left arrows to move around the animation at your leisure
  • If you want to zoom into something, just double click on it!

Without further ado, I give you ARM Server on  a Prezi:

url: http://prezi.com/_zwqpnowk8cv/arm-server/


Read more
Victor Palau

In my previous entry, I argued that Ubuntu is possibly the best development environment to write connected android apps, thanks to Juju. Although using WordPress was possibly not a great example :) I still think that this idea has legs! Hence, I have decided to build an example project.

The example will mainly  be a simple and plan ToDo list app for Android, that gets its items from a back-end MySQL server.

So here is my list of things to get done for this example project:

  • Proof that you can access a Juju local environment from the Android Emulator
  • Develop a TODO list android app
  • Using a few charms from the charm store plus a custom one, set up a MySQL database that can be exposed through a web service with simple commands/steps
  • Connect the android app and the webservice, so they talk to each other.

And as there is no time like the present, here is the first bullet point!

Accessing a Juju Local Environment from the Android Emulator

As I was working on my wordpress charm, the easiest thing for me to do was to access the local webserver set-up for the blog.  I first installed the Android SDK, which turned out to be pretty easy to do by just following the instructions posted at http://developer.android.com/sdk/index.html . Apart of the sdk tools that download you the emulator, build tools and so on.. you can also choose to use Eclipse as your IDE. If you do this, you can then install an Android plug-in that is *very very* complete.  Having had previous experience with Eclipse, I choose this root and unless you feel very strongly against it, I recommend that you do the same.

Once I had the SDK installed, I run the 2.2 emulator (because that happens to be the version in the spare Android phone that I plan to use later on) and open the local IP address of the WordPress service.  That just worked fine.

Then I decided to create a sample android project and tried some code to do the same. I found that the following method within the main activity of the project was able to ping and then open in a browser window the wordpress app:

private String hostip = "192.168.122.137";

...

public void pingme(View view) {
 TextView info = (TextView) findViewById(R.id.mytext);
 WebView mweb = (WebView) findViewById(R.id.webView1);
 InetAddress in = null;

 Log.w("PING","trying to reach" + hostip);
 info.setText("trying to reach" + hostip);
 in = InetAddress.getByName(hostip);

 if (in.isReachable(5000)) {
   info.append("\nHost found");
   Log.w("FOUND",in.getCanonicalHostName());
 } else {
   info.append("\nHost found");
 }
 mweb.getSettings().setJavaScriptEnabled(true);
 mweb.loadUrl("http://"+hostip);
}

So in a nutshell, the first bullet point (and the easiest) of my list is completed!


Read more
Victor Palau

[Juju adventure] Android

I have been playing for Juju for a bit before my nice and long holidays on the Costa Brava!

Back into action and I was thinking that I would be losingmy wordpress mobile app once I deploy my own wordpress instance, no? (please correct me if I am wrong). Would I be better of writting something simple for my own use on Android?

Then it dawned on me. Most phone apps today are mainly a front end to a web/cloud service. In that case, Ubuntu and Juju are the perfect development enviroment for an Android developer.

Think about it. You can write your app using the Android Linux SDK, then you can write your web service and deploy it locally with Juju. You can test that your end to end system works well and then deploy it. You just need to push your app to the android market and “juju deploy” your service into the public cloud.

I was curious, Has anyone tried this? Did it work well for you?


Read more
Victor Palau

In my previous post, Jorge Castro commented that a new super wordpress charm is in the works, and I want to keep working on my blog site configuration (theme and plug-ins) without missing out on any updates. This means that I needed to stop forking the wordpress plugin and find a way to just use the one in the charm store and then ,onto the same instance, roll-out my configuration.

I mentioned that I might try splitting my configuration out into a Subordinate service, and that is what I done :) It was actually pretty easy.

I created a new charm called wordpress-conf.  I set the metadata.yaml file to contain:

name: wordpress-conf
summary: "WordPress configuration"
subordinate: true
description: |
Provides configuration for wordpress blogs
- Plugin:
- WordPress importers
- super cache plug-in
requires:
logging:
 interface: logging-directory
 scope: container
juju-info:
 interface: juju-info
 scope: container

As you can see it has a line calling out that this charm is a subordinate, and has two requirement.  The two requirements are for testing purposes really. The “logging” requirement is an explicit requirement that the charm that you are “subordinating” to must have defined, while “juju-info” is an implicit requirement that is define for all charms. What this mean is that using “juju-info”, I can deploy my charm against any service. The key is to define the scope as container.

The magic happens not when you deploy a subordinate charm, but when you add a relationship to another service. For example the following commands result on a wordpress instance setup following the WP charm in the charm store, but with my plugin and theme set up:

juju bootstrap
juju deploy wordpress
juju deploy mysql
juju add-relation wordpress mysql
juju expose wordpress
juju deploy --repository=~/mycharm local:precise/wordpress-conf
juju add-relation wordpress-conf wordpress

Pretty cool, eh!? I should be able to upgrade the two charms now independently


Read more
Victor Palau

Reposting here the blog entry that I uploaded to blog.canonical.com

Have you been wondering if your Web application will work with the new generation of Hyperdense ARM Servers? Now you can easily find out by using Ubuntu and Amazon Web Services. Canonical has made available in Amazon Web Services an AMI image for developers wishing to experiment with Ubuntu ARM Server. Dann Frazier is the engineer behind this initiative. I took some of his time today to asking a few questions:

How did this came about?
We were wanting to do some internal functional testing of the 12.04 release across our global team without shipping hardware around. We had a QEMU model with us and using cloud systems to host it seemed like an excellent way to grow our (emulated) machine count.

Can you give me some examples of what could I do with it?
Basically, anything you can do with Ubuntu Server. You can install packages, deploy Juju charms, test your web applications, etc. However, I would strongly suggest not using it for any production work or performance testing – being an emulated environment, you will notice some overhead.

Who do you expect will use this new AMI?
Developers looking to test their applications on ARM, people wanting to test Juju charm deployments in a multi-architecture environment, and anyone just looking to kick the tires.

This is all great, How do I get my hands on it?
Canonical has published an AMI on Amazon EC2. You will need an Amazon Web Services account, then just go into your Management Console for EC2 and launch a new instance.  Select “Community AMIs” and look for AMI ID ‘ami-aef328c7′. (We’ll keep the latest AMI ID posted at http://wiki.ubuntu.com/ARM/Server). Or click here.

Are there any limations compared to a real hardware box?
The AMI provides an Ubuntu 12.04 (‘armhf’) system running on an emulated hardware system. Performance is limited due to the emulation overhead. This AMI requires the use of an m1.large instance type due to memory requirements.

Once again, thanks to Dann and the Canonical team for sharing this neat tool with the community. It sounds great and easy to set up. So, What are you waiting for?


Read more
Victor Palau

For a while now, I have being toying with the idea to move away from a WordPress.com hosted site for this blog. The main reason: I am not really happy to have to pay for every single simple stuff.. add an additional URL to the site, take aways advertising, edit a CSS… it really stops me from playing :)

What had prevented me from doing this in the past was that I haven’t really got much experience setting up WordPress or MySQL. What I really needed was a save (and free) sandbox to try changes to my site, until I was happy with it, and then easily deploy it live… Can you say Juju?

With Juju you can do all your playing locally using LXC, save all the changes into a Charm and then just deploy them into a public cloud. Perfect!

 

The first thing I did was to set-up an Amazon AWS account and configure my juju environment to deploy to the public cloud. My rationale here was: if I can’t get vanilla WordPress in a live public site, then there is little point continuing with the experiment.

This was actually pretty easy, I just followed the Getting Started guide. The only stumbling block was that I was using my travel laptop at the time that didn’t have my launchpad ssh keys. You need to create ssh keys to use Juju, but apparently you also need to publish them into your launchpad account. Once this was done, I had a public WordPress instance in just 5 commands.

Next step: destroy the environment and stop paying :) Now I needed to bring up my cheap sandbox.

Again this is pretty easy to setup, just follow the Getting Started guide. I hit another road block once my deployment instances seemed not be doing much, “juju status -e local” showed them in pending state and the logs did not display any activity…A bit of Googling later , I found that Jorge Castro had hit the same problem and found the solution in Ask Ubuntu.

With my WordPress local instance now fully up and running, now I needed to upload my own content. To do this, I just needed to upload the wordpress importer plugin. Fairly trivial to get gone by hand, thanks to the very useful “juju scp” and “juju ssh” commands, but how to do it via a Charm. I wanted to make sure that the next time a deploy wordpress, it would have already this plugin install. Crudly this is what I did:

  • Using the charm-tools I got the wordpress charm loc ally (charm get wordpress)
  • I then edited the install file under hooks/ to include:
    apt-get -y install wordpress pwgen wget unzip
    wget http://downloads.wordpress.org/plugin/wordpress-importer.0.6.zip
    sudo unzip wordpress-importer.0.6 -d /usr/share/wordpress/wp-content/plugins/
  • redeploy using locally stored charm. juju deploy –repository=~/charms local:precise/wordpress -e local

Guess what, it worked. I did get some warnings (WARNING Charm ‘.mrconfig’ has an error) that I am yet to iron out, but when the wordpress instance came up the new plugin was there:

That is all for today, and before I go, one last useful hint courtesy of James Page: Add “default: {name of your env}” if you have multiple environments  but you normally always use one. Save me having to type “-e local” all the time.


Read more
Victor Palau

I had a CR-48 Chromebook for a while, which has recently fallen in disuse. While I have never being totally convinced about Chrome OS being a polished, well designed, interface that simplifies the “always connected” user journey that Google was envisioning, I liked the concept.

Now I am reading in ArsTechnica that Chrome OS is getting a brand new look, that is … basically.. well, not new. While I am sure there are many technical advantages of a fully hardware accelerated windows managers, my issue is with the [lack of] concept.

Google has spent much energy convincing users that they do not need to have local apps, that they can do everything in the cloud and that the portal to this experience is Chrome. Having an OS which the only application that could possibly run, and at full screen, was the browser was a controversial but bold move. More over, it really hit home the user experience they were targeting.

This new UI seems to be sending the opposite message. It seems to be saying: “OK, we were wrong.. but  maybe if we make Chrome OS look more like windows you will like it better?”. Is that really the message? Well if you give me an app launcher in a desktop, I am bound to ask for local apps. If you give me off-line sync for Google apps, I am bound to ask for local apps.

I fear Google is paving the road to [windows vista] hell with good window manager intentions. I am primary an Ubuntu user, and what I like about it is that every single release over the last few years has continue to build on a design concept. Every new release is closely wrap on a consistent user message. Take as an example the HUD introduced in 12.04: it is new and different, but somehow it feels like it always belonged in Unity.

I am bought into the Ubuntu user experience, and I am excited to see what a new release will bring. If I had bought into the Chrome OS experience, I think I will be asking for a refund.

Anyway, I am looking forward to the new Chrome OS UI being available for the CR-48. Maybe I will change my mind once I get my hands on it.


Read more
Victor Palau

I have been using Scrum for a while. Back at my previous role, we tried using Scrum within the integration team that was creating the nightly builds and our bi-weekly releases. It brought good results, the team specially liked the visibility of the task board and the daily stand-ups.

We did found a bit artificial to have a cadence. We were suppose to put out a release every two weeks but we end up doing it as often as we could (or made sense), as we were not in control of when the new software was landing in our plate.

Since then, I’ve this nagging thought that Scrum might not be appropriated to service teams or teams with a large portion of maintenance/customer support work. I have found iterations shorter than 2 weeks, can be over burden by the demo, planning and sizing overheads. In the other hand, two weeks is too much time for teams with Service Level Agreements of days or hours. It also seems a bit cumbersome for short project (~1 month), were you end up with 2 or 1 iterations… What to do!?

In Canonical several teams have used Kanban in order to improve their development processes, so I started reading up on it when I stumbled on this excellent article on Kanban vs Scrum.

The author won me over straight away by not trying to decide which of the two practices is best but instead doing a great job at remaining impartial.

Looking back at the Symbian Foundation’s integration team it seems that Kanban would have been better suited. It retains the focus on making information visible while concentrating on reducing WIP.  It seems better suited to a “specialist” team, where most members share the same skills and work on similar tasks. Scrum seems to work better for cross-discipline project teams.

Also, the emphasis on managing constant flow of work is one that resonates with teams that have a work “currency” measured in days of effort (bugs?) rather in large projects lasting months at the time.

While Scrum has been very successfully adopted by the Certification team at Canonical, My previous experience with the Integration team had stopped me from cheering on Scrum in teams that have a constant flow of work. Now, we are thinking on going Kanban! Don’t get me wrong, we are going to continue using Scrum. It is just a case of using the right tool for each job. I will keep you posted on how it goes.

If you have any advice, tips or gotchas that you could share with us, I would be most grateful if you could drop your comments here!

Time to try something new (by theonlyanla)

 


Read more
Victor Palau

The Ubuntu Certification Website has just got better. We have roll-out improvements to how we list systems and provided a powerful search feature. We want to ensure that you get as quick as possible to the information that you need.

As part of the Certification website, we provide a feedback mechanism through Launchpad Answers. Over the last year, we have seen a trend of questions around:

  • Most models are sold with different graphics cards , processors… so which one is the one listed as certified?
  • Does the system listed as certified works with a version of Ubuntu that I can download from Ubuntu.com? Or only with the one that the manufacturer sales?
  • What release is this model certified for?

To address these questions, we have introduced some changes to the website. We now display what components are included on the certified system in the search results. We’ve also added a icon to indicate if the system is only certified with a vendor image or with the standard Ubuntu image.

The new and simpler search interface eliminates confusion on what data is presented. A small filter box has been added to the website allowing  users to select the device type, Ubuntu release and image type that they are interested in.

If you have any comments on the new website design, I would really like to hear from you!



Read more
Victor Palau

Coinciding with the 2011 Ubuntu Hardware Summit, we are launching a new portal aimed to help engineers at device manufacturers shipping Ubuntu systems: odm.ubuntu.com

The Ubuntu community is great. It provides users and developers with lots and lots of useful information. This means that sometimes finding the right informationfor you can take a bit longer than expected.

The odm.ubuntu.com portal content is a selection of the best articles in the Ubuntu community sites that are relevant to device manufacturers (OEM and ODMs) engineers. The content has been selected by the Canonical Hardware Enablement team and builds on the good work of the Ubuntu Kernel team.

We will continue to add and improve the content of the portal over the coming months, including news on tools and techniques to help you better integrate Ubuntu with your hardware. Please let us know if there is specific content you would like to see there.


Read more
Victor Palau

Asus and Ubuntu in Portugal


Read more
Victor Palau

I have previously complained about the about the amount of gadgets that seem to be piling by my bedside table charging quietly every night.. Laptops, Tablets, phones, kindle (yes the plural is not a typo).

On top of that I am growing frustrated with my DVR. Last week the new series of “The Mentalist” was broadcasted in the UK. I did set the record in advance but somehow it clashed and did not get recorded. Even with the missed show only one-click away, in the TV channel’s website, it turns out that my only options were to wait for a repeat on TV in 4 days or go upstairs and watch it in the office desktop. Why is it so complicated!?

All of this frustration got me thinking and I have come up to some conclusions of what the future of my home computing is going to look like.

Centralised Content &  Specialised Consumption Devices

So it turns out that I am not going to give up my E-Ink screen for reading books. Why? Because it doesn’t hurt my eyes like an  tablet screen does. Neither I am going to convince my son that watching Peppa Pig in the iPad is not any better than watching it on TV. Why? Dunno, he isn’t talking yet.

The future for me looks like it is going to involve a lot of different devices, and I am fine with that as long as:

  1. I don’t have to charge them too often – once a month would about right,
  2. They are flexible and powerful enough to get them to do what I need them to do when I need it done,
  3. I can get all my content in all of them!

The good news is that the technology to allow all of this to happen is already being designed. Point number 3, is the easy one! you just need an Ubuntu One account. Point 1&2, I have considered them incompatible for a long time, until I heard about big.LITTLE.

big.LITTLE is going to be BIG

How do you make a low powered device that gives you plenty of battery life, yet is capable of processing complex tasks? ARM seems to have a pretty good answer: big.LITTLE.

Big.LITTLE is a System-on-a-Chip (SoC) that pairs up to four top notch dual-core A15 processors with four very low powered  dual-core A7 processors. The beauty is that they have very similar feature-set and architecture. ARM expects to be able to switch between them depending on the tasks asked to performed without the operating systems noticing the difference.

In a nutshell, it’s like being able to choose between a Prius or a Ferrari engine without having to change cars! Just choose the one that suits your needs better for today’s journey.

This is one of the technologies that is going to ignite the next personal computing revolution. I’ll tell you all about the other ones soon ;)


Read more