Canonical Voices

Daniel Holbach

Ubuntu Apps in China

The last weeks have been very exciting. New features have been added to the SDK (among other things these things were added: cross-compiling through ‘click chroot’ support, running the click reviewers tools automatically), HTML5 support was improved a lot (update to Cordova 3.4, new JavaScript APIs surfaced and many other great things) and new docs went up on developer.ubuntu.com as well. To me it feels like it’s getting easier and easier to write great apps every day. The choice of technology is sound (enables app authors very quickly), the design choices are both beautiful and consistent and the technology around it (packaging and publishing is so fast and easy!) just takes care of so many things for you.

It will be great to see more and more apps for Ubuntu coming in soon, and it will be especially fantastic since all of them are going to work on all current and future form-factors, being written in the same code.

What I was really happy to be involved with was our push for Ubuntu Apps in China. For the Ubuntu App Showdown (which is still running for around 3.5 weeks, until 9th April) we added a prize category for Chinese apps, which became the starting point for other activities.

App Showdown Judges

I’m super happy we have a diverse judges for the Ubuntu App Showdown. Jack Yu from Ubuntu Kylin, Joey Chan from the Ubuntu Core Apps team and Shuduo Sang from the PES team at Canonical. All of them have helped with lots of different questions and bits of organisation. Thanks a lot for your help!

App Development Events

We had a fantastic Ubuntu App Developer Week some two weeks ago, and while having the videos on YouTube works great for a lot of us, it’s not the best choice for China. Thanks a lot Shuduo for uploading all of the videos to youku.

This means that if you’re in China, you can just go ahead and get all the video goodness from there and learn all about Ubuntu App Development.

More events

I’m very grateful for all the help from the people at Ubuntu Kylin.

ubuntukylin

In no time they invited Joey Chan (who has worked on the RSS Reader Core App, among others) to give a talk at the NUDT university in Chansha. The event was well-attended and well-received – around 100 Ubuntu enthusiasts turned up and Joey explained about Ubuntu for phones and using QML to write apps.

Joey Chan in action

Videos are available here.

More events are planned, so stayed tuned for more news there. China was one of the first LoCos to have Ubuntu App Dev School events! :-)

Translations of Chinese App Development Docs

The Ubuntu Community in China was super helpful in translating an initial set of developer documentation up at developer.ubuntu.com/zh. Translations, peer review and getting the docs online was done in just a couple of days, which is just fantastic. Right now we are looking at translating more content, which should make translations a lot easier. Thanks a lot everyone!

Getting involved

If you have more ideas for what we could do for Ubuntu apps being more interesting to and in China, get in touch with me.

If you are into writing apps yourself, there is still 3.5 weeks to get into the Ubuntu App Showdown. What you have to do is simple:

Read more
Colin Ian King

Keeping cool with thermald

The push for higher performance desktops and laptops has inevitably lead to higher power dissipation.  Laptops have also shrunk in size leading to increasing problems with removing excess heat and thermal overrun on heavily loaded high end machines.

Intel's thermald prevents machines from overheating and has been recently introduced in the Ubuntu Trusty 14.04 LTS release.  Thermald actively monitors thermal sensors and will attempt to keep the hardware cool by modifying a variety of cooling controls:
 

* Active or passive cooling devices as presented in sysfs
* The Running Average Power Limit (RAPL) driver (Sandybridge upwards)
* The Intel P-state CPU frequency driver (Sandybridge upwards)
* The Intel PowerClamp driver

Thermald has been found to be especially useful when using the Intel P-state CPU frequency scaling driver since this can push the CPU harder than other CPU frequency scaling drivers.

Over the past several weeks I've been working with Intel to shake out some final bugs and get thermald included into Ubuntu 14.04 LTS, so kudos to Srinivas Pandruvada for handling my patches and also providing a lot of timely fixes too.

By default, thermald works without any need for configuration, however, if one has incorrect thermal trip settings or other firmware related thermal zone bugs one can write one's own thermald configuration. 

For further details, consult the Ubuntu thermald wiki page.

Read more
Daniel Holbach

App development for Ubuntu is a hot topic and many have blogged and talked about this in the past months. Still I’d like to point out two things which never cease to amaze me:

  • Writing the code of the app once and have it work on everything from a phone to a TV.
  • It’s easy. We had people join the Ubuntu Core Apps team, who had never written apps using QML or HTML5. These people now delivered some of the apps which will come preinstalled with Ubuntu phones in stores this year. Getting their feet wet and initial drafts of the apps up and running was a matter of days only.

This is just fantastic and something we should share.

Ubuntu App Dev Schools?

 

At UDS we had a really nice discussion about how to bring more App Development training events to our Ubuntu community. We came up with a number of work items, focusing on

  • improving our presentation materials,
  • making it easier for newcomers to step in, learn and present,
  • reaching out to app developer communities and our LoCo teams at the same time.

With the Ubuntu Global Jam coming up in just 3 weeks and soon followed by the 14.04 release and its release parties, we have to move fast to make this happen. To coordinate this better, David and I decided to have a daily standup meeting on Google Hangout at 9:30 UTC. Let us know (maybe on #ubuntu-locoteams) if you want to join the conversation.

We need help.

Obviously we need teams to organise events, but we need other help as well:

  • Planning. Join our planning events mentioned above.
  • Hosting. If you are interested in running an event, you should check our docs and see if there’s anything missing in there.
  • Collaborating. Talk to your LoCo team and see if you can host an Ubuntu App Dev School for Ubuntu Global Jam or your local 14.04 release party. Give us feedback on how it’s going.
  • Slightly unrelated. Help me with a VirtualBox question: I set up a VirtualBox image using Trusty, so we can have an up-to-date image with the newest SDK preinstalled, so we’re prepared if Mac or Windows users turn up to an event. Unfortunately the resolution is just up to 640×480, even with the Guest Additions loaded. Can anyone help me out?

If you are preparing to run the event, please check our Materials section, review what we have and give us feedback. Either leave a comment on this page, or…

On the following days we are going to have some Feedback / Q&A sessions on Ubuntu on Air:

There you will not only have the opportunity to ask questions about organising your event, but also all the technical questions you should have for running your presentations.

Another opportunity to find out more, is the LoCo Teams Update on Air on Saturday at 19 UTC.

Bringing more apps to Ubuntu is lots of fun and will make Ubuntu for phones/tablets/laptops/desktops/TVs/everything else a lot more interesting! :-)

Read more
Inayaili de León Persson

This post is part of the series ‘Making ubuntu.com responsive‘.

The rules document we drafted proved a useful and good guide for those few development days, and a proof of concept was created and presented to the rest of the team.

When we all sat down to review the result, a few things were clear:

  • Even though lots (and lots) of tweaks and design thinking were needed, our desktop style guide did not look bad at all in small screens — the result was promising
  • The main places where things looked broken were custom hero and background images
  • Some one-off overriding styles applied in some pages did not play well in small screens, as they might have been added in absolute sizes (like pixels) or weren’t flowing as they should
  • Some pages that were long on the desktop quickly became very long at small screen sizes

First responsive prototypeFirst ubuntu.com responsive prototype.

Since this was a ‘quick and dirty’ test of some common-sense responsive rules, a lot had not been done in the code that would eventually have to be done, such as:

  • Refactoring the original Sass files to be mobile-first
  • Cleaning up the existing Sass files as much as possible: as websites grow, the need for custom, one-off exceptions increases, so we needed to set aside some time to rationalise some of these sneaky overrides

However, the exercise showed us that our existing framework was indeed flexible enough to be converted to be responsive, but it also showed us that we still had a lot of work to do!

Read the next post in this series: “Making ubuntu.com responsive: pilot projects”

Reading list

Read more
Inayaili de León Persson

This post is part of the series ‘Making ubuntu.com responsive‘.

Making www.ubuntu.com responsive has been an ongoing goal of ours for a while, and we’ve been discussing and preparing for it for over a year. However, the rest of the world doesn’t wait, and the work doesn’t stop coming in!

We knew that a couple of other projects, namely Ubuntu Resources and the new Canonical site, were going to have to be completed before the main site, and that they would have to follow mobile-first and responsive philosophies, which posed a few questions:

  • How were we going to manage three consecutive projects trying to find solutions for similar problems?
  • Which project was going to influence which? If we did something new on a new project, how was that going to affect ubuntu.com in the future?
  • In the case of canonical.com, the site structure was much simpler than ubuntu.com: how would solutions developed for such a case apply to something more complex?
  • Ubuntu Resources had a start date before the responsive ubuntu.com project, but a completion deadline after it: how would this impact the responsive solutions we were going to try to come up with?

These and other questions seemed to us tricky to solve at the time. However, we had time and resourcing constraints, and deadlines that we just had to work with.

In the end, the work that we did (and are still doing) on the two other sites helped and influenced the work that we’d be doing on ubuntu.com.

Ubuntu Resources

We launched the alpha version of Ubuntu Resources in November last year. This was our first look into creating a mobile-first website. We’ve recently released the beta version, which is still focused on improving the small screen experience. Right now, we are working on the medium screen size layouts of the site, which should be going live very soon.

Even though work on this project started before work on responsive ubuntu.com, we knew the deadline for completion of its final stages (adapted to large screen sizes) was likely to be after the first release of the retrofitted ubuntu.com.

Ubuntu Resources beta homepageUbuntu Resources homepage.

These are some of the lessons we’ve learnt whilst working on this project:

  • To save space at the top of the screen and allow for more content to be visible, the global navigation (which links to other sites within the Ubuntu universe) could be relegated to the bottom of the screen, in small screens. To keep its visibility, we added a link from the site’s main navigation
  • Simply decreasing the typographic scale that we were using in our style guide wasn’t enough for small screens. We had to slightly reduce the largest sizes and increase the smallest ones to improve readability
  • Space is at a premium in small screens, so we massively reduced row and box padding and margins between elements
  • We’ve reused the grid from the Ubuntu phone, which divides the portrait phone screen in 40 square grid units (horizontally) and where spaces between elements are usually counted as one or more grid units. Since the objective was to have a more condensed version of margins and padding across the small screen version of the site, using this grid allowed for more flexibility, with much smaller spaces between elements, without having to create a new grid — reuse and recycle!
  • It was important to keep the strong Ubuntu brand at the top of the screen, even on small screens, and to keep the navigation as straightforward to use as possible. This meant keeping the Ubuntu orange navigation background and a clear Ubuntu logo (when at first we tried a simplified version of the logo without the Ubuntu wordmark, user feedback revealed landing on the site was confusing, as they didn’t recognise the simplified logo or why the word “resources” was in the navigation)

Phone gridThe phone grid.

Ubuntu Resources navigation before
Ubuntu Resources navigation afterBefore (top) and after (bottom) Ubuntu Resources navigation: with and without the full Ubuntu logo.

Canonical.com

Early this year we launched the new and improved canonical.com, which is mobile-first and responsive.

While we were working on canonical.com, work on Ubuntu Resources was paused, which meant we could borrow some of the learnings from Resources but we’d need to find solutions to other problems we hadn’t yet addressed, such as scaling from small to medium and large screen sizes and defining those breakpoints.

From this project, we took away:

  • The medium screen size font sizes, again slightly adjusted for readability
  • Improved spacing between elements and padding on medium sized screens, which can be larger than in smaller screens, but slightly tighter than large screens
  • The use of the new folded paper background, developed for the phone designs
  • The use of flat colour blocks (mainly white and dark aubergine) to divide content, as opposed to divider lines
  • The use of SVG images for interface elements and icons, and a PNG fallback for non-supporting browsers
  • Patterns for reflowing images next to text in small screens: in most instances, when the image is to the left of the text, it can be moved above it in smaller screens; if the image is to the right of the text, it can be moved below it in smaller screens
  • An accordion pattern for small screens and tabs for larger screens

Margins in small, medium and large screensFrom left to right: comparison between margins and padding in small, medium and large screens.

Folded paper backgroundThe new folded paper background.

Small and large tabsTabs in small screens (left) and large screens (right).

Once canonical.com was launched, it was time to get back onto making ubuntu.com responsive. We felt that testing out ideas and strategies in smaller responsive projects before going full speed on our largest site was a positive experience, and would advise teams in similar scenarios to try and follow a similar strategy if the prospect of starting with your most popular site seems daunting or is simply impractical.

Read the next post in this series: “Making ubuntu.com responsive: lessons learned”

Reading list

Read more
facundo

Algunas herramientas piolas


Hace rato que vengo con ganas de hablar acerca de una serie de herramientas interesantes que he encontrado.

Son de lo más variadas. Lo único que tienen en común es que solucionan un problema específico que tuve o tengo. Y que me parece que son piolas :)

Limitando el ancho de banda: ¿Tienen una aplicación que les usa mucho la red? Aunque la misma no esté preparada para autolimitarse, siempre se puede hacer desde afuera, y para ello nos viene a ayudar trickle, un utilitario que hace justamente lo que queremos: ejecutar otro programa limitándo su ancho de banda usable para download, para upload, o ambos.

Midiendo uso de recursos: Muy relacionado con lo anterior, a veces vemos que la red se está usando, pero no sabemos por qué proceso. Para contestarnos esto tenemos dos herramientas, IPTraf y NetHogs,  que nos muestran la info pertinente de forma bastante distinta, por lo cual está bueno tener ambas a mano, para probar cual nos va mejor en cada momento. También nos pasa parecido con el uso del disco. en este caso nos salva las papas el iotop. Para recursos como memoria y CPU tenemos el clásico top, obviamente, pero muchas veces uso htop que es más interactivo y me facilita la exploración.

Fijate si cambió:¿Alguna vez les pasó que tiran un comando en la terminal cada algunos segundos para monitorear algo, tratando de ver si algún dato cambia o viendo cómo cambia? En estos casos lo mejor es usar watch, que nos ejecuta el programa que queremos, cada los segundos que le especificamos, y encima nos resalta los lugares donde hubo cambios con respecto a la ejecución anterior. Más útil de lo que parece.

Mandando muchos mails:Me pasa seguido, para organizar jodas en casa, o eventos en PyAr, o cursos, etc, que tengo que mandar el mismo mail a mucha gente. Mandar uno por uno es mucho trabajo; mandar todos en "copia oculta" es muy impersonal; y ponerlos a todos en "copia visible" es una mala práctica. Por suerte está Mail Merge, un plug-in para Thunderbird que hace todo sencillo: uno pone todos los destinatarios en el campo de "Para:", pero luego en lugar de hacer click en "Enviar", se elige la opción de MailMerge, y en vez de salir uno para todos, el plug-in manda un mail a cada uno. Limpio, y útil. Y tiene opciones para lograr cosas más complejas, pero no lo exploré demasiado, con esta funcionalidad básica por ahora me alcanza.

Seguridad, seguridad: Por último, la herramienta que más me tiene fascinado estos últimos tiempos. Se llama KeePassX, y marcó un antes y un después en mi administración de contraseñas. En el pasado, yo tenía tres o cuatro claves... una genérica, una para lugares de "alta seguridad" como el banco, etc, y las repetía en varios sitios. Así y todo, las claves no eran demasiado complejas (usaba mayúsculas, minúsculas y números, pero no caracteres extraños, y nunca superaba los 10-12 caracteres). ¿Por qué? ¡Por que me las tenía que acordar! Con KeePassX, sin embargo, ya no me las tengo que acordar: se guardan en un archivo (cifrado con una clave que sí tengo que acordarme, y la hice complicada y larga, pero es una sola). El programa no es mucho más que eso, pero también te permite relacionar campos con la clave (en qué sitio va, el nombre de usuario,etc), y también tiene campos genéricos donde uno puede escribir cualquier cosa. Ah, y también te autogenera claves... entonces, la realidad es que ni siquiera veo las alguna vez! Todo esto, sumado a la facilidad de uso (por ejemplo, ctrl-B sobre una entrada te copia el nombre del usuario, y ctrl-C te copia la clave) y que tiene clientes para muchas plataformas (incluida Android), hace que sea una herramienta maravillosa.

Read more
Sally Radwan

A few years ago, the cloud team at Canonical decided that the future of cloud computing lies not only in what clouds are built on, but what runs on it, and how quickly, securely, and efficiently those services can be managed. This is when Juju was born; our service orchestration tool built for the cloud and inspired by the way IT architects visualise their infrastructure: boxes representing services, connected by lines representing interfaces or relationships. Juju’s GUI simplifies searching, dragging and dropping a ‘Charm’ into a canvas to deploy services instantly.

Today, we are announcing two new features for DevOps seeking ever faster and easier ways of deploying scalable infrastructure. The first are Juju Charm bundles that allow you to deploy an entire cloud environment with one click. Secondly we are announcing Quickstart which spins up an entire Juju environment and deploys the necessary services to run Juju, all with one command. Juju Bundles and Quickstart are powerful tools on their own but offer enormous value comes when they are used together: Quickstart can be combined with bundles to rapidly launch Juju, start-up the environment, and deploy an entire application infrastructure, all in one action.

Already there are several bundles available that cover key technology areas: security, big data, SaaS, back office workloads, web servers, content management and the integration of legacy systems. New Charm bundles available today include:

Bundles for complex services:

  • Instant Hadoop: The Hadoop cluster bundle is a 7-node starter cluster designed to deploy Hadoop in a way that’s easily scalable. The deployment has been tested with up to 2,000 nodes on AWS.

  • Instant Mongo: Mongodb, a 13-node (over three shards) starter MongoDB cluster and has the capability to horizontally scale all of the three shards.

  • Instant Wiki: Two Mediawiki deployments; a simple example mediawiki deployment with just mediawiki and MySQL; and a load balanced deployment with HAProxy and memcached, designed to be horizontally scalable.

  •  A new bundle from import.io allows their SaaS platform to be instantly integrated inside Juju. Navigate to any website using the import.io browser, template the data and then test your crawl. Finally, use the import.io charm to crawl your data directly into ElasticSearch.
  • Instant Security: Syncope + PostgreSQL, developed by Tirasa, is a bundle providing Apache Syncope with the internal storage up and running on PostreSQL. Apache Syncope is an open source system for managing digital identities in enterprise environments.

  • Instant Enterprise Solutions: Credativ, experts in Open Source consultancy, are showing with their OpenERP bundle how any enterprise can instantly deploy an enterprise resource planning solution.

  • Instant High Performance Computing: HPCC (High Performance Computing Cluster) is a massive parallel-processing computing platform that solves Big Data problems. The platform is Open Source and can now be instantly deployed via Juju.

Francesco Chicchiriccò, CEO Tirasa / VP Apache Syncope comments; “The immediate availability of an Apache Syncope Juju bundle dramatically shortens the product evaluation process and encourages adoption. With this additional facility to get started with Open Source Identity Management, we hope to increase the deployments of Apache Syncope in any environment.”

 

Bundles for developers:

These bundles provide ‘hello world’ blank applications; they are designed as templates for application developers. Simply, they provide templates with configuration options to an application:

  • Instant Django: A Django bundle with gunicorn and PostgreSQL modelled after the Django ‘Getting Started’ guide is provided for application developers.

  • Instant Rails: Two Rails bundles, one is a simple Rails/Postgres deployment, the ‘scalable’ bundle adds HAProxy, Memcached, Redis, Nagios (for monitoring), and a Logstash/Kibana (for logging), providing an application developer with an entire scalable Rails stack.

  • Instant Wildlfy (The Community JBoss): The new Wildfly bundle from Technology Blueprint, provides an out-of-the-box Wildfly application server in a standalone mode running on openjdk 7. Currently MySQL as a datasource is also supported via a MySQL relation.

Technology Blueprint, creators of the Wildfly bundle, also uses Juju to build its own cloud environments. The company’s system administrator, Saurabh Jha comments; “Juju bundles are really beneficial for programmers and system administrators. Juju saves time, efforts as well as cost. We’ve used it to create our environment on the fly. All we need is a quick command and the whole setup gets ready automatically. No more waiting for installing and starting those heavy applications/servers manually; a bundle takes care of that for us. We can code, deploy and host our application and when we don’t need it, we can just destroy the environment. It’s that easy.”

You can browse and discover all new bundles on jujucharms.com.

Our entire ecosystem is hard at work too, charming up their applications and creating bundles around them. Upcoming bundles to look forward to include a GNU Cobol bundle, which will enable instant legacy integration, a telecom bundle to instantly deploy and integrate Project Clearwater – an open source IMS, and many others. For sure you have some ideas about a bundle that gives an instant solution to some common problems. It has never been easier to see your ideas turn into reality.

==

If you would like to create your own charm or bundle, here is how to get started: http://developer.ubuntu.com/cloud/ or see a video about Charm Bundles:  https://www.youtube.com/watch?v=eYpnQI6GZTA.

And if you’ve never used Juju before, here is an excellent series of blog posts that will guide you through spinning up a simple environment on AWS: http://insights.ubuntu.com/resources/article/deploying-web-applications-using-juju-part-33/.

Need help or advice? The Juju community is here to assist https://juju.ubuntu.com/community.

Finally, for the more technically-minded, here is a slightly more geeky take on things by Canonical’s Rick Harding, including a video walkthrough of Quickstart.

Read more
mitechie

The Juju UI team has been hard at work making it even easier for you to get started with Juju. We’ve got a new tool for everyone that is appropriately named Juju Quickstart and when you combine it with the power of Juju bundles you’re in for something special.

Quickstart is a Juju plugin that aims to help you get up and running with Juju faster than any set of commands you can copy and paste. First, to use Quickstart you need to install it. If you’re on the upcoming Ubuntu Trusty release it’s already there for you. If you’re on an older version of Ubuntu you need to get the Juju stable ppa

sudo add-apt-repository ppa:juju/stable
sudo apt-get update

Installing Quickstart is then just:

sudo apt-get install juju-quickstart

Once you’ve got Quickstart installed you are ready to use it to deploy Juju environments. Just run it with `juju-quickstart`. Quickstart will then open a window to help walk you through setting up your first cloud environment using Juju.

Quickstart can help you configure and setup clouds using LXC (for local environments), OpenStack (which is used for HP Cloud), Windows Azure, and Amazon EC2. It knows what configuration data is required for each cloud provider and provides hints on where to find the information you’ll need.

Once you’ve configured  your cloud provider, Quickstart will bootstrap a Juju environment on it for you. This takes a while on live clouds as this is bringing up instances.

Quickstart does a couple of things to make the environment nicer than your typical bootstrap. First, it will automatically install the Juju GUI for you. It does this on the first machine brought up in the environment so that it’s co-located, which means it comes up much faster and does not incur the cost of a separate machine.  Once the GUI is up and running, Quickstart will automatically launch your browser and log you into the GUI. This saves you from having to copy and paste your admin secret to log in.

If you would like to setup additional environments you can re-launch Quickstart at any time. Use juju-quickstart -i to get back to the guided setup.

Once the environment is up Quickstart still helps you out by providing a shortcut to get back to the Juju GUI running. It will auto launch your browser, find the right IP address of the GUI, and auto log you in. Come back the next day and Quickstart is still the fastest way to get back into your environment.

Finally, Quickstart works great with the new Juju charm bundles feature. A bundle is a set of services with a specific configuration and their corresponding relations that can be deployed together via a single step. Instead of deploying a single service, they can be used to deploy an entire workload, with working relations and configuration. The use of bundles allows for easy repeatability and for sharing of complex, multi-service deployments. Quickstart can accept a bundle and will deploy that bundle for you. If the environment is not bootstrapped it will bring up the environment, install the GUI, and then deploy the bundle.

For instance, here is the one command needed to deploy a bundle that we’ve created and shared:

juju-quickstart bundle:~jorge/mongodb-cluster/1/mongodb-cluster

If the environment is already bootstrapped and running then Quickstart will just deploy the bundle. The two features together work great for testing repeatable deployments. What’s great is that the power of Juju means you can test this deployment on multiple clouds effortlessly.  For instance you can design and configure your bundle locally via LXC and, when satisfied, deploy it to a real environment, simply by changing the environment command-line option when launching Quickstart.

Try out Quickstart and bundles and let us know what you think. Feel free to hop into our irc channel #juju on Freenode if you’ve got any questions. We’re happy to help.

Make sure to check out Mat’s great YouTube video walk through as well over on the Juju GUI blog.


Read more
Inayaili de León Persson

This post is part of the series ‘Making ubuntu.com responsive‘.

The front end framework that powers www.ubuntu.com represents the visual evolution of the site over the past few years: designs have become cleaner, lighter and more open. It was designed without responsiveness in mind, but it has proven flexible, robust and great for our needs: user experience designers can quickly create wireframes for new and updated pages based on existing patterns and developers can create new pages that look good with little input from designers.

Web style guideWeb style guide front page.

Even though the framework uses a fixed-width container to wrap the content, the containers within it were built to percentages, which means that if that surrounding container were to be removed, the site would become fluid.

Ubuntu.com with no wrapperOne page of the current site without a wrapping container.

We didn’t want to lose the work that has been put into this style guide. After a long discussion, we agreed that even though we were going to convert the CSS powering the site into mobile-first — so the media queries would be added for larger screen sizes instead of the other way around —, we were going to keep the desktop version as it was initially defined in the style guide.

This is likely a restriction that many other teams share: where there is a will and need to make an existing site responsive, but no budget and/or resources to start from scratch.

We decided that it would be a good idea if our developers, Anthony, Graham, and Karl, could sit in a room for a few days and create a ‘quick and dirty’ prototype of what our current site, using the current styles, would look like in a responsive world.

The main goals of this exercise were:

  1. To see how disastrous, or indeed how well, the style guide would play when a handful of responsive guidelines were applied
  2. To give the developers a better understanding of the effort required and issues involved in converting the existing stylesheets into a mobile-first, responsive format

We created a Google doc, structured in the same way as our style guide, where we laid out some rules that would get the developers started on the prototype.

The document started with the more broad and general rules:

  • Try to create breakpoints that fit our content, instead of just random device-specific sizes
  • Try to keep breakpoints to a minimum, with fluid designs in between each breakpoint

We then laid out some scaffolding (layout and grid) rules:

  • Content that is divided in half or thirds should convert into single column when it becomes too narrow
  • If the content is divided into quarters, there might be a step in the middle (halfs)
  • In rows that include an image to the left or right of the text, the image should move above or below the text, respectively
  • Hero images might need to be looked at individually rather than a single rule for all
  • Experiment reducing padding inside rows and boxes incrementally as the screen size decreases
  • Remove column dividers at smaller screen sizes

We then moved on to forms rules:

  • Our forms are already quite vertical, at this stage, make sure we are using correct HTML5 input types

And tables rules:

And finally JavaScript rules:

  • No forcing of equal-height boxes
  • Make tabbed content into expanding/collapsing accordion widgets

Many of our styles didn’t need changing at this stage and this was all written down in the doc too.

We also knew that, at this point, we couldn’t look into trickier problems such as the navigation, the typographic scale or how our multiple footers would play in a small screen, so we decided to leave this for later.

Multiple navigation levels in ubuntu.com
Multiple footers on ubuntu.com

Navigation and multiple footers were too complex an issue to be solved at this early stage.

Now it was time for the developers, with this doc in hand, to take a first go at making www.ubuntu.com responsive!

Read the next post in this series: “Making ubuntu.com responsive: making the rules a reality”

Reading list

Read more
Inayaili de León Persson

Making ubuntu.com responsive: intro (1)

We’ve known for a while it was time to convert our main site, www.ubuntu.com, into a responsive site, and we’re now nearing the end of the project!

The main www.ubuntu.com site receives millions of visitors every month and it holds information on the variety of Ubuntu products and services, allowing people to download Ubuntu, get in touch with Canonical or find support.

In an ideal scenario, if you were going to convert a non-responsive site into a responsive one, you would start from scratch and do everything right and perfectly from the beginning. But what would be the fun in that?

In reality, starting from scratch on a site the size of ubuntu.com is just not practical or easily achievable. We evolve, grow and iterate the site constantly for releases, upgrades, launches and design updates. It is a living, breathing site, and we can’t really afford to stop, and start again. We realise other teams will also be faced with this reality, so we want to share the journey we have taken and some lessons we learned along the way.

In this series of posts, we’ll document the process we’re following in making that transition. We hope to give others an insight into what’s going on behind the scenes, the obstacles we’re facing, the solutions we’ve tried, the questions we have, and basically the nitty gritty of a real world responsive retrofitting project.

We will be covering:

  1. Intro (this post!)
  2. Setting the rules
  3. Making the rules a reality
  4. Pilot projects
  5. Lessons learned
  6. Scoping the work
  7. Approach to content
  8. Making our grid responsive
  9. Adapting our navigation to small screens
  10. Dealing with responsive images
  11. Updating font sizes and readability
  12. Ensuring performance
  13. JavaScript considerations
  14. Testing on multiple devices

I’ll update the list above with links to new posts as we go along. We’d love to hear your thoughts, questions and solutions you’ve tried in your own projects, and how we can make this series more useful: leave your comments below, and we hope you enjoy the posts!

Read more
Sally Radwan

Q&A on OpenStack + VMware

We recently held a webinar on “Architecting OpenStack in your enterprise” together with Gigaom, which produced quite a lot of buzz. Our many attendees had a lot of questions which we weren’t able to answer due to time restrictions. We promised to follow up, so here is a list of these questions and answers. We hope you find them informative!

1. How do you monitor network traffic from VMs moving dynamically between multiple hosts without losing visibility of moving VMs?
Assuming the instance id remains constant between migrations, you can query the instance id using OpenStack Ceilometer, the OpenStack metering service,  linked to OpenStack Neutron.

2. Are there any plans to provide warm-upgrades for OpenStack? As you know, even cold upgrades didn’t work till now as it should and its a real pain point.
At the OpenStack Summit in San Diego in 2012 Mark Shuttleworth demonstrated live on stage upgrading from a live Essex based cloud to Folsom in 3 minutes using Juju. Warm upgrades are certainly possible with the right tooling although clouds with sophisticated virtual networking (Neutron) setups are still tricky. See: http://www.youtube.com/watch?v=bcwqvAFBQVg

3. Could you please provide any insights to TripleO project, does TripleO going to become some kind of default Distro for OpenStack? and could someone use TripleO to deploy OpenStack on baremetal?
TripleO is not an OpenStack distribution but a project to create a common set of tools for deploying and maintaining OpenStack. TripleO can be used to deploy OpenStack onto baremetal using another OpenStack related project called Ironic. Both TripleO and Ironic are relatively new solutions to requirements that Canonical has been addressing with Juju & MAAS for over a year.

4. Does OpenStack support IPv6?
Yes it does. Havana has limited support for IPv6 in Neutron. Advanced support is one of the key objectives of IceHouse.

5. Can you show the results of the last survey – is OpenStack ready for enterprise?
Yes, we are currently working on analysing the results and will post a summary on insights.ubuntu.com in due course, so stay tuned!

6. If we deploy openstack using packstack, so can we configure individual OpenStack component or add OpenStack component later?
It would be best to check with the Packstack development team regarding their intentions with packstack  https://wiki.openstack.org/wiki/Packstack.
On Ubuntu, Juju and MAAS, are two mature OpenStack deployment    technologies that provide this capability today.

7. How can we plan to deploy OpenStack on large scale enterprise IT?
Canonical is a in privileged position because Ubuntu is the reference platform for OpenStack deployment and development.  We have helped service providers, telcos, and large financial institutions in every phase of their OpenStack deployment.
The projects that moved the fastest had representation and sign-off from every stakeholder within the IT (network, storage, compliance) and IT end users (apps dev, test team, etc.) to investigate and pilot the environment.  Canonical professional services can assist with the pilot, address concerns and provide clarifications, and help teams jump the chasm from pilot to production.

8. Is juju intelligent enough to understand if its tier 1 data vs tier 2 data and move data b/w public and private cloud?
Juju itself does not distinguish between data tiers. Nor does it move data around between clouds — but Juju charms can do whatever they want, and it’s possible to connect proxy charms to remote services and use charm logic to automate such things.

9. In term of a) application point of view b) IaaS point of view. what is the difference between (vmware , hyperv) vs OpenStack?
That’s a broad question indeed, and depending on your use case and the VMware/hyperv technologies involved, somewhat difficult to answer easily. We address some of the differences between VMware and OpenStack in our upcoming webinar which you can register for here.

10. Any tool to make sure dependencies between different projects and versions are compatible – I don’t want to break the system with ”non compatible” installation or upgrade by one component ? Any configuration mgmt tools integrated to OpenStack – Puppet etc.?
Interoperability between OpenStack components is a concern for OpenStack users and the challenge grows as the number of technologies in the OpenStack ecosystem expands. Many configuration management tools work with OpenStack, including Puppet, Chef and Juju and each can help deploy and manage an OpenStack environment although true interoperability or integration requires comprehensive testing of all the various permutations of OpenStack technologies. To address this Canonical launched the OpenStack Interoperability Lab (OIL) which tests OpenStack in different configurations using hardware and software from across the OpenStack ecosystem. OIL now tests over 3000 permutations per week to be able to quickly identify non compatible components. Juju manages this environment and is the tool we’d recommend you use to manage deploying compatible components

11. How much better is OpenStack Compute, networking and storage (in performance, in costs) compared to competitors ? Any measurements or benchmarks really available?
This is very tricky to answer as everyone can find different results based on their needs and usage and no truly independent benchmarking between competitive solutions exists as far as we’re aware. In terms of momentum though, as an open source cloud solution OpenStack is the undoubted leader with the support of many vendors and huge growth in adoption.

12. What is the monitoring component of OpenStack (monitoring all layers, HW, SW, connectivity, storage, security, end to end application performance, databases etc )?
There is no single tool for managing every layer of the OpenStack environment. The reality is that most users have combinations of tools that suit their requirements or are provided as part of their OpenStack distribution of choice. We see many users using standard tools like Nagios for monitoring of services and the OpenStack documentation has good examples of how to set this up. For other layers in the stack, people use hardware specific tools for hardware monitoring and OS specific tools for monitoring of individual server status. With Ubuntu we recommend Landscape to manage and monitor your Ubuntu OpenStack cloud.

13. If a customer has virtualized on vmware (who are the large virt. vendor in the market today), why should they build a cloud on OpenStack rather than vcloud?
Many organisation are looking to retain the use of their VMware virtualisation estate while wanting to reap some of the benefits of an open cloud platform like OpenStack.
Things like open APIs, the fast moving innovation, open SDN solutions and many other features are driving people to consider new options in their datacentres.

14. Why should I build an OpenStack private cloud rather than just use readymade amazon AWS?
There are two main reasons that an organisation may choose to switch from public cloud providers to private cloud, including cost and privacy/data protection. With respect to cost, many organisations start out small in AWS, prototyping and testing things out, not necessarily providing production services.
Developers/admins very quickly get used to the ability to rapidly deploy new instances and services which causes costs to ramp up very quickly, often almost organically production services end up getting “accidentally” deployed there. Once the usage hits a certain tipping point there’s a decision to make between continuing to allow the costs to increase externally, or bring the services into the organisation’s own datacentres, it’s purely a case of comparing the cost metrics to ensure that it makes sense to do so. If a decision is made to bring the services in-house then the organisation will need a comparable IaaS platform, of which OpenStack is an obvious solution.
Regarding data privacy, many organisations have regulatory, compliance or security regulations that state they must maintain internal control of sensitive data which may be related to customers, R&D or finance. This data may not be suitable for hosting on public cloud environments.

15. Do you foresee a trend migrating from cloudstack to OpenStack? Any foreseeable timelines?
We have seen a couple of examples of customers moving from CloudStack to OpenStack, but in general, most customers are using OpenStack as their first experience with Open Source cloud infrastructure.

16. Would virtualization have an advantage over bare metal when it comes to hosted hadoop as a service in a private cloud enviro?
Virtualization has an extra overhead not found when using bare-metal.  This overhead comes from creating and managing the virtualized operating system.  As such, from a pure, outright performance perspective,  hadoop on bare-metal is currently going to be the optimal option. However, from a cost and ROI point of view, many customers see the flexibility offered by using virtualised infrastructure outweighing the performance advantages.

17. I think a big question for enterprise is i/o performance for the guests. In particular, what is the current best practice for enterprise? OpenStack block level storage, something zfs based, or a more traditional solution (SAN or NAS)- what are people seeing out in the real world?  What is and isn’t fully baked?
There are two different levels to cover:
The physical storage infrastructure: Here the best practice is to follow VMware vSphere recommendations of your storage vendor. Shared storage in any enterprise-level setup is highly recommended. It needs to be capable of handling a large number of IOPS that will be produced by the OpenStack instances OS and by vSphere when creating, deleting or doing any operation in the vSphere datastores (VMFS operations)
The OpenStack infrastructure: As the instances sit on top of vSphere, which is already a very mature technology, the recommendation for OpenStack volume/block storage is to use Cinder with the VMware VMDK driver which will take advantage of all the underlying optimizations and unique features transparently, such as VAAI or Thin Provisioning. The same applies for the ephemeral storage which will natively use vSphere storage.
It is technically possible to set up a separate storage environment for Cinder but it introduces complexity to the architecture and it is recommended to study carefully the potential benefits vs complexity.

18. When will we start seeing comparisons between OpenStack and other Cloud management tools such as from VMware or other vendors?
Gartner and others have offered their views on the comparative maturity of solutions but so far there have not been any in depth, feature by feature comparisons made publicly available. We expect these to come soon as OpenStack gains in maturity and popularity although the really interesting questions are how these different environments can be connected and integrated as rarely is a customer making a straight either/or comparison.

19. Do I need to use Vcenter if I use OpenStack for provisioning on ESX?
It depends. You will need it if you want the vCenter management capabilities to extend to OpenStack for a cluster of vSphere hosts.  The Havana version of the vSphere OpenStack Virtual Appliance includes the new vCenter Server plug-in for OpenStack frameworks. The plug-in provides vSphere administrators the ability to identify OpenStack instances and some of their respective properties from the vCenter Server. The plugin is jointly supported and certified by Canonical and VMware.

Read more
David Murphy (schwuk)

Zach Holman writes about how GitHub communicates:

here’s a look at most of the communication that happened at GitHub on one random recent day: February 4, 2014

The expected methods are all there: chat (Campfire in their case), email, and – of course - GitHub itself.

One thing that piqued my interest was their internal-only social network “Team” which seems very reminiscent of how Automattic use WordPress & P2. Since I learned how Automattic use P2, I’ve been wondering if we could do something similar at Canonical. Perhaps we could use Google+  for this as we already use it for internal HangoutsUbuntu Developer Summit, and to power Ubuntu On-Air. There are ways to limit Google+ communities to members of your Google Apps domain.

(Side note: I hate having two Google+ accounts!)

I really need to finish coalescing my thoughts and put them into their own post…

The other point I noted was that their use of email was both minimal and individual – Team and GitHub itself are their primary ways of disseminating information.

It always interesting to see how others do achieve similar goals to yourself.

The post How GitHub communicates appeared first on David Murphy.

Read more
David Murphy (schwuk)

Zach Holman writes about how GitHub communicates:

here’s a look at most of the communication that happened at GitHub on one random recent day: February 4, 2014

The expected methods are all there: chat (Campfire in their case), email, and – of course – GitHub itself.

One thing that piqued my interest was their internal-only social network “Team” which seems very reminiscent of how Automattic use WordPress & P2. Since I learned how Automattic use P2, I’ve been wondering if we could do something similar at Canonical. Perhaps we could use Google+  for this as we already use it for internal Hangouts, Ubuntu Developer Summit, and to power Ubuntu On-Air. There are ways to limit Google+ communities to members of your Google Apps domain.

(Side note: I hate having two Google+ accounts!)

I really need to finish coalescing my thoughts and put them into their own post…

The other point I noted was that their use of email was both minimal and individual – Team and GitHub itself are their primary ways of disseminating information.

It always interesting to see how others do achieve similar goals to yourself.

The post How GitHub communicates appeared first on David Murphy.

Read more
Nicholas Skaggs

Keeping ubuntu healthy: Core Apps

Continuing our discussion of testing within ubuntu, today's post will talk about how you can help the community core apps stay healthy.

As you recall the core apps go through a series of QA before being released to the store. However bugs in the application, or in the platform itself can still be exposed. The end result is that the dashboard contains tests failures for that application. To release a new stable image, we need a green dashboard, and more importantly we need to make sure the applications work properly.

Getting plugged in
So to help out, it's important to first plug into the communication stream. After all, we're building these applications and images as a community! First, join the ubuntu phone group on launchpad and sign up for the phone mailing list. The list is active and discussing all issues pertaining to the ubuntu phone. Most importantly, you will see landing team emails that summarize and coordinate issues with the phone images.

From there you can choose a community core app to help improve from a quality perspective. These applications all have development teams and it's helpful to stay in contact with them. Your merge proposal can serve as an introduction!

Finding something to work on
So what needs fixing? A landing team email might point out a failing test. You might notice a test failure on the dashboard yourself. In addition each application keeps a list of bugs reported against it, including bugs that point out failing tests or testing needs. For example here's the list of all new autopilot tests that need to be written for all of the core apps. Pick an app, browse the buglist, assign a bug to yourself, and fix it.

For example, here's the list of bugs for music app. As of this writing you can see several tests that need written, as well as a bug for a test improvement.

You can also simply enhance the app's existing testsuite by fixing a flaky test, or improving the test to use best practices, etc. As a bonus for those reading this near it's original publication date, we just had a session @ vUDS covering the core apps and the testing needs we have. Watch the session / browse the pad and pick something to work on.

Fixing things
Look into any failures you find and have a look at the tests. Often the tests can use a little improvement (or maybe an additional test), and you can help out here! Sometimes failures won't happen every run -- this is the sign of a weird bug, or more likely a flaky test.  Fix the test(s), improve them, or add to them. Then commit your work and submit a merge proposal. Follow the guide on the wiki if you need help with doing this.

Remember, you can iteratively run the tests on your device as you work. Read my post on click-buddy for help with this. If you are lacking a device, run the tests on your desktop instead and a reviewer can test against a real device before merging.

Getting Help
For realtime help, check out #ubuntu-quality and #ubuntu-autopilot on freenode. You'll find a group of folks like yourself working on tests, hacking on autopilot and sharing advice. If IRC isn't your thing, feel free to contact us through another method instead. Happy hacking!

Read more
niemeyer

Go QML Contest

A couple of weeks ago a probe message was sent to a few places questioning whether there would be enough interest on a development contest involving Go QML applications. Since the result was quite positive, we’re moving the idea forward!

OpenGL Gopher

This blog post provides further information on how to participate. If you have any other questions not covered here, or want technical help with your application, please get in touch via the mailing list or twitter.

Eligible applications

Participating applications must be developed in Go with a graphic interface that leverages the qml package, and must be made publicly available under an Open Source license approved by the OSI.

The application may be developed on Linux, Mac OS, or Windows.

Review criteria

Applications will be judged under three lenses:

  • Quality
  • Features
  • Innovation

We realize the time is short, so please submit even if you haven’t managed to get everything you wanted in place.

Deadline

All submissions should be made before the daylight of the Monday on April 21st.

Sending the application

Applications must be submitted via email including:

  • URL for the source code
  • Build instructions

If necessary for judging, a screencast may be explicitly requested, and must be provided before the daylight of Wednesday 23rd.

Prizes

There are two prizes for the winner:

Judging and announcement

Judging will be done by well known developers from the Go community, and will take place during GopherCon. The result will be announced during the conference as well, but the winner doesn’t have to be in the conference to participate in the contest.

Learning more about Go QML

The best places to start are the package documentation and the mailing list.

Read more
Tom Macfarlane

Last month at Mobile World Congress Ubuntu’s presence was stronger than ever. Our third year at MWC and we made some significant design changes to our stand.

In such a large exhibition space, strong branding is key. We designed five large banners – made from fabric and stretched across metal frames – that were suspended above the stand. Each banner was then individually illuminated by a series of spotlights creating maximum impact and high level brand presence, while still maintaining the stands open and welcoming feel.

MWC_blog_1

The back walls and a new hanging aisle banner all featured the folded paper background with large graphics showcasing app and scope designs from the phone and tablet. We also dedicated one wall to the Ubuntu Carrier Advisory Group (CAG).

MWC_blog_visual

Continuing our clean and precise design approach we used the Ubuntu shape (the squircle) to create bespoke pods, reception desk and demo unit – with warm white LED down lighting around the top and base and lightboxes to illuminate the Circle of Friends on the reception desk.

CAN MWC Reception Desk RevA.vwx

Integrating elements from our phone and tablet design across print and 3D environments builds a strong brand/design coherence in everything we do. We’re very happy with the new stand design and feedback from MWC has been very positive.

http://news.softpedia.com/news/Ubuntu-s-Booth-at-MWC-2014-Looks-Spectacular-428834.shtml

MWC_blog_2

Read more
Daniel Oliver

New Apps header

The new apps header features max. 4 slots that can be arranged and combined in order to fulfil user needs in every screen.

Header_slots

Header’s values

We want to provide our users with the right amount of contextual information for them to know:

1- Where they are at (inside the app, in a particular view).

2- Where they can go inside the app in order to find content (navigate across different views).

3- What they can achieve in any given view (compose a message, crop a picture…).

The new header provides clarity by always showing the user where they are at, consistency by providing a way to navigate across main views inside the apps, and priority by surfacing the most important actions in every screen.

header_balance

Header’s elements

The elements are the building blocks of the header, the controls that can placed inside the slots mentioned above.

There’s different categories of elements and each of them have to be positioned carefully in the header in order to create slick experiences across our apps.

header_glossary

 

Title

One of the main values behind the new header is Clarity: we want the user to be clear about where they are at any moment.

That’s why the only mandatory element for our header is the title; you can leave some other slots empty, but every header has to have a title.

header_title

Tabs

A Tab is a control that allow users to navigate across views directly from the header.

The main views of your app are the different faces  in how content is organised and visualised.

header_telephonyExample: 

Our telephone app has two main views: Dialer and Contacts. Placing a tabs on the telephony header, allows users to toggle between this two views quickly.

Tabs placement

Place the tabs right to the title.

According to our interface values “right” means moving forward, and that’s what a tab precisely is, moving forward to the next view represented by the tab icon.

header_actions_tabs

Actions

Actions allow users to accomplish a direct goal in every screen (compose a message , edit, crop a picture…) Give priority to the actions that will be used more often and place them in the header.

header_AB

Example: Our address book app has a clear primary action which is add a new contact to the list.Placing that action straight to the header will make the user accomplish the goal quicker and smoother.

Actions placement

Place the actions right to the title as well.

header_actions_placement

In case you want to mix tabs and actions on the same header,  keep the tabs as close to the title as possible, creating a natural block to navigate across the views; place the actions after them.

header_actions_tabs

Back

After the main views of your app, subsequent views will use a back button in the header to navigate back to the main views. Back always returns to the previous view of an app, until the user reaches the main view again.

header_gallery

Example: Our gallery app has 3 main views: Photos, events and albums. Once the user gets to a detail view, the header of that view has a back button that returns the user to them main view where he came from.

Back placement

There’s only one place where you can place the back, and that’s the top left slot. According to our interface values, that’s a place where user has to intentionally stretch the finger and make an effort to trigger.

header_back_placementDrawer

So we’ve already introduced a few elements, but what happens when there’s not enough free slots on the header to place all your tabs and actions? Our solution is the drawer: an overflow where users will find all the controls not available straight on the header.

header_drawer_g

Example: Our gallery app has 3 main views: Photos, events and albums; and it also has the “take a picture” action on the header. In order to keep the header clear, we’ve decided to place the main views inside a drawer, and surface “take a picture” on the header. In this particular case, the drawer contains the main views of the app.

Inside the drawer

The drawer can contain some of the elements that couldn’t fit in the header’s slots. If  the drawer is placed on the top left slot, then it will contain tabs (main views); if the drawer is placed on the top right slot, then it will contain extra actions.

header_drawer

 

Drawer placement

The drawer works as a metaphorical extension of the header, so placing it at the first or last slot helps reinforce that idea.

header_drawer_placement

 

 

Search

Search is a special action that allows users to rapidly locate a desired piece of content. And since search can be a really important use case in apps, we are providing a special experience for it.Triggering search will refresh the standard header into a search header, displaying the osk at the same time, and removing the focus from the content. (for more information on search read search pattern)

header_search

Example: Our notes app presents search as one of the main action in the header. Once the user hits on the search icon the header transitions to the search header.

Search placement

There’s only one place in the header where you can place search: top right slot.

 

header_search_placement

 

Implication with the drawer:  In the scenario where you need a back button, a drawer and a search; the search will need to be kept in the top left slot in order to reinforce the search pattern across all our system.

 

header_search_p_2

Header layout

The four slots on the header can be arranged as follows:

Layout A

1 slot at the left of the title and max. 2 slots on the right

header_gallery_A

When to use it

  • You need to use a Back button in order to display detail screens for your app content.
  • Your app has a large number of main views and you need the drawer to display all of them.
  • You prefer to use the slots on the right to display actions, then you have to use a drawer to place the main views.

Layout B

max. 3 slots right to the title

header_telephony B When to use it

  • You don’t need a back button.
  • You want to place tabs at the right for the user to be able to switch views easily.
  • Most of the actions to be performed on the app are contextual (related to the content) and there’s no need to surface those actions on the header.

Behaviour

According to our user interface values, content is always the priority; that’s why the header is just a tool the disappears when users don’t need it. By scrolling down, the header will disappear. By scrolling up  the header will slide in again.

 

header_behavIt might be scenarios where users will need the header present at all times (i.e. Header with tabs) in that justified case, it’s possible to set the header fixed on the screen.

 

 

 

Read more
Pat Gaughen

The Server team just finished up the second day of the Ubuntu Developer Summit (UDS) March 2014 (see http://summit.ubuntu.com/uds-1403/track/servercloud/ for the Server track). I may be biased (well, actually, I know I am), but I think its been very interesting – lots of good, thoughtful discussions around where we are and where we’re heading. Check out the videos and let us know what you think.

One video from today’s UDS sessions, I wanted to specifically highlight is the demo Robie Basak gave on uvtool.  Uvtool is, as Robie explains in the video, a very simple tool for setting up kvm guests – he calls it the glue that brings together several existing tools.  Just go watch it – http://www.youtube.com/embed/Ue0C2ssp450 and then go try it.

In December, Serge did a writeup on uvtool, I think that’s worth a read also – http://s3hh.wordpress.com/2013/12/12/quickly-run-ubuntu-cloud-images-locally-using-uvtool/

Anyhow, time to prepare for the last day of UDS. Enjoy!

Read more
alex

One of the key design goals we had in mind when we set out to create Ubuntu for phones and tablets (henceforth abbreviated here as Ubuntu Devices (vs Ubuntu Desktop)) was how to balance continuing our rich heritage of downstreams, be they community remixes or commercial products, against the idea of preventing platform API and UI fragmentation, which is the Android antipattern.

A while back, my boss Victor wrote a blog entry titled Differentiation without fragmentation which gives a key insight as to why fragmentation occurs:

Fragmentation occurs when the software platform fails to provide a supported mechanism to differentiate.

Victor then goes on to describe our Scopes framework which is a core design concept that spans implementation, functional, and visual layers to enable our downstreams to differentiate.

Part of my job is making what Victor says actually come true, and as we started thinking through the actual mechanics of how our downstreams would start with a default Ubuntu Device image and end up with a customized version of it, we realized that the nuts and bolts of what an OEM engineer or enthusiastic community member would have to learn and understand about our platform to actually make a working device image were too complex.

So we roughed out some ideas and after several months of iterating in private, I’m pleased to announce the preview of the Ubuntu Savvy phone customization suite. It consists of several parts:

The prototype of Tailor, our tool to manipulate the Savvy source tree and deploy to your phone is definitely in early stages. But click on the screenshots below to get a sense for where we are going. We want it to be painless and fun for anyone to make their own version of Ubuntu for devices in an officially supported manner.

tailor-1   tailor-2

If you are interested in learning more about our plans or you have ideas for ways that you’d like to customize your version of Ubuntu or you’re interested in improving code, tests, or docs, please come to our vUDS session.

Carrier/OEM Customizations on 2014-03-13 from 15:00 to 15:55 UTC.

A final note, Ubuntu Savvy builds upon a lot of work, from the fine folks in UE who helped design a flexible, decoupled image architecture, to the SDK team for providing some nice QML code for us to re-purpose, and to my entire team, both present and emeritus (such as mfisch and sfeole). Thanks to all.

We invite the broader Ubuntu community to help tinker with and tailor Ubuntu.

Upward and onward!

Read more
pitti

Our current autopkgtest machinery uses Jenkins (a private and a public one) and lots of “rsync state files between hosts”, both of which have reached a state where they fall over far too often. It’s flakey, hard to maintain, and hard to extend with new test execution slaves (e. g. for new architectures, or using different test runners). So I’m looking into what it would take to replace this with something robust, modern, and more lightweight.

In our new Continuous Integration world the preferred technologies are RabbitMQ for doing the job distribution (which is delightfully simple to install and use from Python), and OpenStack’s swift for distributed data storage. We have a properly configured swift in our data center, but for local development and experimentation I really just want a dead simple throw-away VM or container which gives me the swift API. swift is quite a bit more complex, and it took me several hours of reading and exercising various tutorials, debugging connection problems, and reading stackexchange to set it up. But now it’s working, and I condensed the whole setup into a single setup-swift.sh shell script.

You can run this in a standard ubuntu container or VM as root:

sudo apt-get install lxc
sudo lxc-create -n swift -t ubuntu -- -r trusty
sudo lxc-start -n swift
# log in as ubuntu/ubuntu, and wget or scp setup-swift.sh
sudo ./setup-swift.sh

Then get swift’s IP from sudo lxc-ls --fancy, install the swift client locally, and talk to it:

$ sudo apt-get install python-swiftclient
$ swift -A http://10.0.3.134:8080/auth/v1.0 -U testproj:testuser -K testpwd stat

Caveat: Don’t use this for any production machine! It’s configured to maximum insecurity, with static passwords and everything.

I realize this is just poor man’s juju, but juju-local is currently not working for me (I only just analyzed that). There is a charm for swift as well, but I haven’t tried that yet. In any case, it’s dead simple now, and maybe useful for someone else.

Read more