Canonical Voices

Posts tagged with 'ubuntu'

jono

Today we launched our next Ubuntu App Showdown.

The idea is simple: you have six weeks to build an application with the Ubuntu SDK that converges across both phone and tablet (which is simple). We have the following categories, each of which has a prize:

  • QML – a native app written in QML (wins a Nexus 7 (2013) tablet).
  • HTML5 – a native app written in HTML5 (wins a Nexus 7 (2013) tablet).
  • Ported – an app that has been ported from another platform to Ubuntu and used the Ubuntu SDK (wins a Nexus 7 (2013) tablet).

We are also delighted to include an additional category with two prizes sponsored by Meizu:

  • Chinese – an app that is written in either QML or HTML5 that would be of most interest to Chinese users, such as connecting to Chinese sites and services (2 x Meizu MX3s as prizes).

If you would like to get involved in the showdown, you can find out all the details here or for our Chinese friends here.

HTML5 Refinements

In preperation for the showdown we have also landed a number of significant improvements to HTML5 in the Ubuntu SDK. This includes:

  • Our HTML5 technology has been fully revamped and now all works from a single container.
  • A new single default template for creating your HTML5 app.
  • Full access to device sensors via cordova.
  • Full access to platform APIs via Javascript.
  • API documentation.
  • A brand new HTML5 section on developer.ubuntu.com complete with new guides, tutorials, API docs, and more.

Remember, we award extra point for blogging about and sharing on social media about your app and how it is developing, so be sure to share your work! Good luck!

Read more
Michael Hall

It’s been a crazy busy week, and it’s only Tuesday (as of this writing)!  Because I’m exhausted, this is going to be a short post listing the things that are new.

New Roof

I wrote earlierthat I was having a new roof put on my house.  Well that all starter unceremoniously at 7:30am on Monday, and the hammering over my head has been going on non-stop for two full working days.  Everybody who joined me on a Google+ Hangout has been regaled with the sounds of my torment.  It looks nice though, so there’s that.

New Developer Portal

Well, new-ish.  We heavily revamped the Apps section to include more walk-through content to help new Ubuntu app developers learn the tools, the process and the platform.  If you haven’t been there yet, you really should give it a read and get yourself started: http://developer.ubuntu.com/apps/

New HTML5 APIs

In addition to the developer portal itself, I was able to publish new HTML5 API docs for the 14.04 release of Ubuntu.  Not only does this include the UbuntuUI library from the previous release, it also introduced new platform APIs for Content Hub, Online Accounts and Alarms, with more platform APIs coming soon.  The Cordova 3.4 API docs are proving harder to parse and upload than I anticipated, but I will hopefully have them published soon. If you’re an HTML5 app developer, you’ll be interested in these: http://developer.ubuntu.com/api/html5/sdk-14.04/

New Scopes

While not exactly a secret, we did start to make some noise about the new Scopes framework and Unity Dash that bring in a lot of improvements. As much as I liked the Home lens searching everything and aggregating results, it just wasn’t reaching the potential we had hoped for it.  The new setup will allow scopes to add more information that is specific to their result types, control how those results are displayed, and more clearly brand themselves to let the user know what’s being searched. You can read more about the enhancements at http://developer.ubuntu.com/2014/02/introducing-our-new-scopes-technology/ Like I said, it’s been a crazy busy week.  And we’re not done yet!

Read more
Michael Hall

There’s been a lot of talk about Ubuntu’s phone and tablet development over the last year, and it’s great that it’s getting so much attention, but people have been getting the name of it all wrong. Now, to be fair, this is a problem entirely of our own making, we started off talking about the phone (and later tablet) developments as “Ubuntu Touch”, and put most of the information about on our wiki under a page named Touch.  But there is no Ubuntu Touch! It’s not a separate OS or platform, there is only one OS and it’s simply called Ubuntu.

Ubuntu 14.04 Stack

What people are referring to when they say Touch or Ubuntu Touch, is really just Ubuntu with Unity 8.  Other than the shell (and display server that powers it), it’s the same OS as you get on your desktop.

Everything under the hood is the same: same tools, same filesystem, even the same version of them, because it’s all built from the same source. Calendar data is stored in the same place, audio and video is played through the same system, even the Unity APIs are shared between desktop and phone.

So why is the name important?  Not only is it more accurate to call them both Ubuntu, it’s also one of the (in my opinion) most exciting things about having an Ubuntu phone.  You’re not getting a stripped down embedded Linux OS, or something so customized for phones that it’s useless on your desktop.  You’re getting a fully featured, universal operating system, one that can do everything you need from a phone and everything you need from a desktop.

Future Ubuntu Stack

This is the key to Ubuntu’s convergence strategy, something that nobody else has right now. Android makes a terrible desktop OS.  So does iOS.  Chrome OS won’t work for a phone either, nor OSX. Even Microsoft has built two different platforms for mobile and desktop, even if they’ve slapped the same interface on both.

But with Ubuntu, once Unity 8 comes to the desktop, you will have the same OS, the same platform, on all of your devices. And while you will run the same version of Unity on both, Unity 8 is smart enough to change how it looks and how it works to meet the needs and capabilities of what you’re running it on.  Better still, Unity will be able to make these changes at run time, so if you dock your convertible tablet to a keyboard, it will automatically switch from giving you a tablet interface to a desktop interface. All of your running apps keep running, but thanks to the Ubuntu SDK those too will automatically adjust to work as desktop apps.

So while “Ubuntu Touch” may have been a useful distinction in the beginning, it isn’t anymore.  Instead, if you need to differentiate between desktop and mobile versions of Ubuntu, you should refer to “Unity 8″ if talking about the interface, or “Ubuntu for phones” (or tablet) if you’re talking about device images or hardware enablement. And if you’re a developer and you are talking about the platform APIs or capabilities, you’re talking about the “Ubuntu SDK”, which is already available on both desktop and mobile installs of Ubuntu.

Read more
jono

This last weekend I was in LA at SCALE12x and gave a presentation providing a detailed update of much of the work going on as we build a convergent Ubuntu. As I have mentioned before, there is lots of other foundational pieces being built as part of this work (app insulation, SDK, click packages, developer.ubuntu.com, platform services etc), and this presentation covered where we stand today in this work.

Obviously a lot more of you couldn’t be at SCALE than couldn’t, so I have recorded the presentation to share online. You can see it below or click here to watch it. Enjoy!

Read more
Michael Hall

Ubuntu API Website

For much of the past year I’ve been working on the Ubuntu API Website, a Django project for hosting all of the API documentation for the Ubuntu SDK, covering a variety of languages, toolkits and libraries.  It’s been a lot of work for just one person, to make it really awesome I’m going to need help from you guys and gals in the community.

To help smooth the onramp to getting started, here is a breakdown of the different components in the site and how they all fit together.  You should grab a copy of the branch from Launchpad so you can follow along by running: bzr branch lp:ubuntu-api-website

Django

First off, let’s talk about the framework.  The API website uses Django, a very popular Python webapp framework that’s also used by other community-run Ubuntu websites, such as Summit and the LoCo Team Portal, which makes it a good fit. A Django project consists of one or more Django “apps”, which I will cover below.  Each app consists of “models”, which use the Django ORM (Object-Relational Mapping) to handle all of the database interactions for us, so we can stick to just Python and not worry about SQL.  Apps also have “views”, which are classes or functions that are called when a URL is requested.  Finally, Django provides a default templating engine that views can use to produce HTML.

If you’re not familiar with Django already, you should take the online Tutorial.  It only takes about an hour to go through it all, and by the end you’ll have learned all of the fundamental things about building a Django site.

Branch Root

When you first get the branch you’ll see one folder and a handful of files.  The folder, developer_network, is the Django project root, inside there is all of the source code for the website.  Most of your time is going to be spent in there.

Also in the branch root you’ll find some files that are used for managing the project itself. Most important of these is the README file, which gives step by step instructions for getting it running on your machine. You will want to follow these instructions before you start changing code. Among the instructions is using the requirements.txt file, also in the branch root, to setup a virtualenv environment.  Virtualenv lets you create a Python runtime specifically for this project, without it conflicting with your system-wide Python installation.

The other files you can ignore for now, they’re used for packaging and deploying the site, you won’t need them during development.

./developer_network/

As I mentioned above, this folder is the Django project root.  It has sub-folders for each of the Django apps used by this project. I will go into more detail on each of these apps below.

This folder also contains three important files for Django: manage.py, urls.py and settings.py

manage.py is used for a number of commands you can give to Django.  In the README you’ll have seen it used to call syncdbmigrate and initdb.  These create the database tables, apply any table schema changes, and load them with initial data. These commands only need to be run once.  It also has you run collectstatic and runserver. The first collects static files (images, css, javascript, etc) from all of the apps and puts them all into a single ./static/ folder in the project root, you’ll need to run that whenever you change one of those files in an app.  The second, runserver, runs a local HTTP server for your app, this is very handy during development when you don’t want to be bothered with a full Apache server. You can run this anytime you want to see your site “live”.

settings.py contains all of the Django configuration for the project.  There’s too much to go into detail on here, and you’ll rarely need to touch it anyway.

urls.py is the file that maps URLs to an application’s views, it’s basically a list of regular-expressions that try to match the requested URL, and a python function or class to call for that match. If you took the Django project tutorial I recommended above, you should have a pretty good understanding of what it does. If you ever add a new view, you’ll need to add a corresponding line to this file in order for Django to know about it. If you want to know what view handles a given URL, you can just look it up here.

./developer_network/ubuntu_website/

If you followed the README in the branch root, the first thing it has you do is grab another bzr branch and put it in ./developer_network/ubuntu_website.  This is a Django app that does nothing more than provide a base template for all of your project’s pages. It’s generic enough to be used by other Django-powered websites, so it’s kept in a separate branch that each one can pull from.  It’s rare that you’ll need to make changes in here, but if you do just remember that you need to push you changes branch to the ubuntu-community-webthemes project on Launchpad.

./developer_network/rest_framework/

This is a 3rd party Django app that provides the RESTful JSON API for the site. You should not make changes to this app, since that would put us out of sync with the upstream code, and would make it difficult to pull in updates from them in the future.  All of the code specific to the Ubuntu API Website’s services are in the developer_network/service/ app.

./developer_network/search/

This app isn’t being used yet, but it is intended for giving better search functionality to the site. There are some models here already, but nothing that is being used.  So if searching is your thing, this is the app you’ll want to work in.

./developer_network/related/

This is another app that isn’t being used yet, but is intended to allow users to link additional content to the API documentation. This is one of the major goals of the site, and a relatively easy area to get started contributing. There are already models defined for code snippets, Images and links. Snippets and Links should be relatively straightforward to implement. Images will be a little harder, because the site runs on multiple instances in the cloud, and each instance will need access to the image, so we can’t just use the Django default of saving them to local files. This is the best place for you to make an impact on the site.

./developer_network/common/

The common app provides views for logging in and out of the app, as well as views for handling 404 and 500 errors when the arise.  It also provides some base models the site’s page hierarchy. This starts with a Topic at the top, which would be qml or html5 in our site, followed by a Version which lets us host different sets of docs for the different supported releases of Ubuntu. Finally each set of docs is placed within a Section, such as Graphical Interface or Platform Service to help the user browse them based on use.

./developer_network/apidocs/

This app provides models that correspond directly to pieces of documentation that are being imported.  Documentation can be imported either as an Element that represents a specific part of the API, such as a class or function, or as a Page that represents long-form text on how to use the Elements themselves.  Each one of these may also have a given Namespace attached to it, if the imported language supports it, to further categorize them.

./developer_network/web/

Finally we get into the app that is actually generates the pages.  This app has no models, but uses the ones defined in the common and apidocs apps.  This app defines all of the views and templates used by the website’s pages, so no matter what you are working on there’s a good chance you’ll need to make changes in here too. The templates defined here use the ones in ubuntu_website as a base, and then add site and page specific markup for each.

Getting Started

If you’re still reading this far down, congratulations! You have all the information you need to dive in and start turning a boring but functional website into a dynamic, collaborative information hub for Ubuntu app developers. But you don’t need to go it alone, I’m on IRC all the time, so come find me (mhall119) in #ubuntu-website or #ubuntu-app-devel on Freenode and let me know where you want to start. If you don’t do IRC, leave a comment below and I’ll respond to it. And of course you can find the project, file bugs (or pick bugs to fix) and get the code all from the Launchpad project.

Read more
Michael Hall

It may surprise some of you (not really) to learn that in addition to being a software geek, I’m also a sci-fi nerd. One of my current guilty pleasures is the British Sci-Fi hit Doctor Who. I’m not alone in this, I know many of you reading this are fans of the show too.  Many of my friends from outside the floss-o-sphere are, and some of them record a weekly podcast on the subject.

Tonight one of them was over at my house for dinner, and I was reminded of Stuart Langridge’s post about making a Bad Voltage app and how he had a GenericPodcastApp component that provided common functionality with a clean separation from the rest of his app. So I decided to see how easy it would be to make a DWO Whocast app with it.  Turns out, it was incredibly easy.

Here are the steps I took:

  1. Create a new project in QtCreator
  2. Download Stuart’s GenericPodcastApp.qml into my project’s ./components/ folder
  3. Replace the template’s Page components with GenericPodcastApp
  4. Customize the necessary fields
  5. Add a nice icon and Suru-style gradients for good measure

That’s it! All told it took my less than 10 minutes to put the app together, test it, show it off, and submit my Click package to the store.  And the app doesn’t look half bad either.  Think about that, 10 minutes to get from an idea to the store.  It would have been available to download too if automatic reviews were working in the store (coming soon).

That’s the power of the Ubuntu SDK. What can you do with it in 10 minutes?

Update: Before this was even published this morning the app was reviewed, approved, and available in the store.  You can download it now on your Ubuntu phone or tablet.

Read more
Nicholas Skaggs

Recently the ubuntu core app developers and myself have been on an adventure towards adopting cmake for the all the core applications. While some of the applications are pure qml it's still been useful to embark on adopting a singular build system for all of the projects. Now that (most) of the pain of transitioning is gone, I'm going to talk about one of the useful features of setting up cmake for your project; click-buddy!

Click-buddy is an evolving tool that helps you build and deploy click packages to your phablet device. In addition, it has the ability to setup the device to run your autopilot test suite. So, rather than writing anything further, let's cover an example. You are going to need phablet-tools installed for this to work. I'm going to branch the clock app, build the click package, install it on my device, and finally run the tests.

bzr branch lp:ubuntu-clock-app
cd ubuntu-clock-app
click-buddy --dir . --provision
phablet-test-run -v ubuntu_clock_app

Click-buddy is also gaining the ability to build your project, even it involves a plugin and you are interested in building for your phablet device (armhf). Once landed you will be able to run something like this for non-qml applications.

sudo click chroot -a armhf create
click-buddy --arch armhf --provision

This will setup a chroot automagically for you and compile and build your application. Give it a try!

Note, as of this writing, emulator support for the ubuntu-ui-toolkit emulator is not yet built in. If your tests fail with a module import, run this line from your connected pc. It will copy over the ubuntu-ui-toolkit emulator (provided you have it installed on your pc :-) ) and your tests should now properly run.

adb push /usr/lib/python2.7/dist-packages/ubuntuuitoolkit /home/phablet/autopilot/ubuntuuitoolkit

Read more
Michael Hall

Yesterday, in a conference call with the press followed immediately by a public Town Hall with the community, Canonical announced the first two hardware manufacturers who are going to ship Ubuntu on smartphones!

Now many have speculated on why we think we can succeed where so many giants have failed.  It’s a question we see quite a bit, actually.  If Microsoft, RIM/Blackberry and HP all failed, what makes us think we can succeed?  It’s simple math, really.  We’re small.  Yeah, that’s it, we’re just small.

Unlike those giants who tried and failed, we don’t need to dominate the market to be successful. Even just 1% of the market would be enough to sustain and continue the development of Ubuntu for phones, and probably help cover the cost of developing it for desktops too.  The server side is already paying for itself.  Because we’re small and diversified, we don’t need to win big in order to win at all.  And 1%, that’s a very reachable target.

 

Read more
jono

I am sure that you have all seen the exciting news about the first partners to ship Ubuntu smart-phones. For those who haven’t seen it:

19th February 2014, London: Canonical today announces it has signed agreements with mobile device manufacturers bq (www.bqreaders.com) (Spain) and Meizu (China) to bring Ubuntu smartphones to consumers globally. Canonical is working with these partners to ship the first Ubuntu devices on the latest hardware in 2014. Ubuntu has also received significant support from the world’s biggest carriers, some of which intend to work with OEM partners to bring phones to market this year.

Development programmes have begun with the partners to provide smartphones with a superior user experience on mid to high end hardware for consumers around the world. Devices will be available to buy online through bq, Meizu and at Ubuntu.com.

Today was a hectic day, starting with our Ubuntu town hall hangout and spent in a wealth of meetings. As such I haven’t had a chance to write a blog post about this announcement yet, but I wanted to throw something out on my blog before I go to bed.

Naturally this is tremendously exciting news. As I posted about before, 2013 was an intense year as we not only started building our convergent platform, but also the many inter-connecting pieces too such as our SDK, image based updates, Mir, app developer platform, platform services, app insulation, developer portal, and more. As a result of this work, since May 2013 I have been running Ubuntu full-time on my phone and we are in great shape.

In the last year my team has been heavily focused on building a new community; our Ubuntu app developer community. I have directed many resources in my team here for a number of reasons that I believe are of strategic importance to the future health, growth, and opportunity of Ubuntu and our community.

Firstly, we want Ubuntu to instill a level of simplicity, elegance, and power that is not just present in the default platform, dash, scopes, and services, but also emphasized across the apps that users want to use. This means kickstarting a new generation of apps inspired by the design and development principles that are driving our convergence vision and using a simple and powerful app developer platform so devs can go from idea to app store as quickly and easily as possible.

Secondly, I personally believe that apps are key to our success. I suspect that OEMs and carriers will be even more motivated by a platform with great apps and a powerful developer platform, I believe that users will be attracted to a platform with great apps, and I believe that developers will want to build apps for a platform that is both fun to use and develop for.

Thirdly, I believe there is a huge opportunity to refine and innovate in so many areas of our app developer platform and community. Everything from the tooling to knowledge and support to publishing can be optimized and refined to build the very best developer platform.

As such, in my peanut-sized brain the apps are where much of my team’s strategy should be focused.

I am delighted by the progress we are making here. As I wrote about a few days ago, there is lots of wonderful work going on and fresh features and improvements landing soon. Our Ubuntu app developer platform is growing in leaps and bounds and I am really proud of the efforts of so many people.

Now, while I am proud of where we are today, I am not going to compromise until we have the best developer platform in the world.

So, how does this all relate to the bq and Meizu news?

Well, this news starts the ball rolling on the first set of devices that are going to be hitting the market. This in-turn will result in a general consumer audience starting to use Ubuntu on smart-phones. While today we have thousands of developers flashing their phones with Ubuntu and eagerly writing apps and using other people’s apps, the injection of general consumers will build even more motivation and momentum for our app developers to create apps they are truly proud of and that will be of interest to a new generaton of Ubuntu smart-phone users. As a musician I can tell you that having an audience makes everything that much more worthwhile, and I think it is the same our developers who are about to get a new audience growing around them.

These are tremendously exciting times. Our vision is ambitious but every day the momentum grows and I delighted you are all joining the journey with us. Let’s do this, friends!

Read more
Canonical

 

  • bq and Meizu sign agreements to deliver and ship Ubuntu phones

  • Online campaigns with bq and Meizu will make Ubuntu phones available globally

  • Strong support for Ubuntu devices has also been received from carriers worldwide

19th February 2014, London: Canonical today announces it has signed agreements with mobile device manufacturers bq (www.bq.com) (Spain) and Meizu (China) to bring Ubuntu smartphones to consumers globally. Canonical is working with these partners to ship the first Ubuntu devices on the latest hardware in 2014. Ubuntu has also received significant support from the world’s biggest carriers, some of which intend to work with OEM partners to bring phones to market this year.

Development programmes have begun with the partners to provide smartphones with a superior user experience on mid to high end hardware for consumers around the world. Devices will be available to buy online through bq, Meizu and at Ubuntu.com.

Ubuntu introduces a new UI paradigm for mobile devices. Ubuntu puts content and services at the centre of the experience, rather than hiding them behind stores and apps. This gives consumers a fresh and rich way to engage with their favourite videos, music and other mobile activities. It also means OEMs and operators have unprecedented customisation opportunities with a common UI toolkit, which gives devices their own unique footprint and without fragmenting the platform.

Meizu is one of China’s most successful high-end smartphone manufacturers with over 1,000 employees, 600 retail stores and a global presence in China, Hong Kong, Israel, Russia and Ukraine. In January, the company announced its strategy to expand into other international markets as well as to ship phones in America later in 2014 and Ubuntu will be a key part of this expansion. Meizu designs and retails phones that are characterised by light, comfortable design as well as ease of use and functionality. “Ubuntu’s intuitive and visually stunning user interface aligns with our own ethos of producing simple, innovative mobile experiences. This partnership gives us an opportunity to develop a truly different and compelling offering that will support our strategy to deliver devices to both China as well as internationally,” says  Li Nan, Meizu’s VP Sales and Marketing.

bq is a manufacturer of multimedia devices operating in Europe and employing 600 people. In 2013, the company shipped almost 1.5 million devices and in less than a year has become the Spain’s second biggest seller of unlocked smartphones. bq will bring Ubuntu onto its latest hardware specifications. “Ubuntu’s ongoing success on PCs, as well as the huge support it has gained for its mobile proposition provides the best opportunity to bring an alternative platform to market on our hardware,” Alberto Mendez, CEO, comments.

Mark Shuttleworth, founder of Canonical and Ubuntu, adds; “The mobile industry has long been looking for a viable alternative to those that reign today. Ubuntu puts the control back into the hands of our partners and presents an exciting platform for consumers, delivering an experience which departs from the tired app icon grid of Android and iOS and provides a fluid, content-rich experience for all.”

Carriers and major industry players that Canonical has engaged with have also shown their support for Ubuntu and an alternative operating system for the mobile market. To date, Ubuntu’s Carrier Advisory Group has 16 members including Vodafone, EE, T-Mobile USA, Three Group, Deutsche Telekom, Verizon, Telstra and Portugal Telecom. Canonical is also working with a breadth of ISV partners, including The Weather Channel, GrooveShark, Evernote and more, to bring the best applications and services to Ubuntu.

Portugal Telecom: “It is our commitment to keep working closely with Canonical to build a proposition for Ubuntu devices  that will deliver a fresh, new and exciting experience for our users,” says Pedro Leitão, Member of the Board of Portugal Telecom, responsible for the Consumer Segment.

Three Group: “Ubuntu is creating an innovative mobile web experience that brings more choice for customers, and opportunities for operators and OEMs who are keen to differentiate their devices.”

Telecom Italia: “We’ve been very active in helping shape Ubuntu for the Italian market by contributing to the Ubuntu Carrier Advisory Group for many months.”

Smart: “Ubuntu’s entry to the mobile phone market is definitely exciting. We see this as an interesting opportunity to help bring mobile innovations quicker to the market, lower access barriers and provide more choices in terms of apps and devices,” says Orlando B.Vea, chief wireless advisor at Smart. “We’re very keen to work with Ubuntu and the developer community in making this happen as it supports our goal to bring the mobile Internet to every Filipino.”

Smartfren (Indonesia): “We’ve been working closely with Canonical and the Carrier Advisory Group for several months, and look forward to being able to launch Ubuntu devices in the Indonesian market,” comments Richard Tan, deputy CEO.

Ends

About Canonical
Canonical is the company behind Ubuntu and the leading provider of services for Ubuntu deployments in the enterprise. With global teams of developers, support staff and engineering centres, Canonical is uniquely positioned to help partners and customers make the most of Ubuntu. Canonical is a privately held company.

Ubuntu is a free, open-source platform for client, server and cloud computing. It is the most widely used Linux on the top 1000 websites by traffic, the reference platform for OpenStack deployments, the most popular guest OS on public clouds, and ships on PCs from Dell, Lenovo, HP and other brands. Since its launch in 2004, it has become the preferred choice for open desktop and scale-out computing, from Fortune 500 companies to hardware makers, content providers, software developers and consumers.

About bq
bq is a company dedicated to consumer electronics, which designs and develops both software and hardware. Its main division is multimedia devices (e-readers, tablets and smartphones), a market in which it is the leader in Spain. Its innovative spirit had led it to operate in emerging fields such as educational robotics, the development of reading platforms and 3D printing. In this latter market, it designs and manufactures its own 3D printer, the bq Witbox, which is distributed worldwide. www.bq.com.

About Meizu
Established in 2003 and headquartered in Zhuhai, China, MEIZU designs and produces smartphones created to provide a simple, intuitive mobile experience for people whose time is expected to be simply spent in using their devices, instead of figuring out the way of using them.

MEIZU expanded into the smartphone market in 2008 and has been committed to developing high-end smartphones ever since. Based on a business philosophy and commitment to pursuing perfection and long-term development, MEIZU remains laser focused on developing innovative and user-friendly smartphones for consumers. With more than 1,000 employees and 600 retail stores, the company has built a global presence in Hong Kong, Israel, Russia and Ukraine. www.meizu.com

Read more
Michael Hall

Today I reached another milestone in my open source journey: I got my first package uploaded into Debian’s archives.  I’ve managed to get packages uploaded into Ubuntu before, and I’ve attempted to get one into Debian, but this is the first time I’ve actually gotten a contribution in that would benefit Debian users.

I couldn’t have done with without the the help and mentorship of Paul Tagliamonte, but I was also helped by a number of others in the Debian community, so a big thank you to everybody who answered my questions and walked me through getting setup with things like Alioth and re-learning how to use SVN.

One last bit of fun, I was invited to join the Linux Unplugged podcast today to talk about yesterday’s post, you can listen it it (and watch IRC comments scroll by) here: http://www.jupiterbroadcasting.com/51842/neckbeard-entitlement-factor-lup-28/

Read more
olli

With UDS just around the corner (11-13 March 2014, 2pm-8pm UTC) we wanted to give you a quick update where things stand in the 14.04 cycle. The teams have been busy working towards the goals for the 14.04 cycle, with a focus on the Ubuntu 14.04 LTS release, the App Developer Program and of course Ubuntu for Phones. […]

Read more
jono

Last week I was in Orlando sprinting with my team as well as the platform, SDK, and security teams and some desktop and design folks. As usual after a sprint, I have been slammed catching up with email, but I wanted to provide a summary of some work going that you can expect to see soon in the Ubuntu app developer platform.

HTML5

In the last few months we have been working to refine our HTML5 support in the Ubuntu SDK.

Today we have full HTML5 support in the SDK but we are working to make HTML5 apps more integrated than ever. This work will land in the next week and will include the following improvements:

  • Consolidating everything into a single template and container. This means that when you create a new app in the SDK you have a single template to get started with that runs in a single container.
  • Updating our Cordova support to access all the devices and sensors on the device (e.g. camera, accelerometer).
  • Adding full Ubuntu platform API access via Javascript. With this you will be able to access Online Accounts, the Content Hub, the App Lifecycle support etc and more.
  • Adding a series of refinements to the look and feel of the HTML5 Ubuntu components. Before the components looked a little different to the QML ones and we are closing the loop.
  • Full API documentation for the Cordova and Platform APIs as well as a number of tutorials for getting started with HTML5.
  • On a side note, there has been some tremendous speed improvements in Oxide which will benefit all HTML5 apps. Thanks to Chris Coulson for his efforts here.

With these refinements you will be able use the Ubuntu SDK to create a new HTML5 app from a single template, follow a tutorial to make a truly native look and feel HTML5 app utilizing the Cordova and Platform APIs, then click one button to generate a click package and fill in a simple form and get your app in the store.

I want to offer many thanks to David Barth’s team for being so responsive when I asked them to refine our HTML5 support ready for MWC. They have worked tirelessly, and thanks also to Daniel Holbach for coordinating the many moving pieces here.

SDK

Our SDK is the jewel in the crown of our app development story. Our goal is that the SDK gets you on your Ubuntu app development adventure and provides all the tools you need to be creative and productive.

Fortunately there are a number of improvements coming here too. This includes:

  • We will be including a full emulator. This makes it easy for those of you without a device to test that your app will work well within the context of Ubuntu for smartphones or tablets. This is just a click away in the SDK.
  • We are also making a series of user interface refinements to simplify how the SDK works overall. This will include uncluttering some parts of the UI as well as tidying up some of the Ubuntu-specific pieces.
  • Device support has been enhanced. This makes it easier than ever to run your app on your Ubuntu phone or tablet with just a click.
  • We have looked at some of the common issues people have experienced when publishing their apps to the store and included automatic checks in the SDK to notify the developer before they submit them to the store. This will speed up the submissions process.
  • Support for “fat” packages is being added. This means you can ship cross-compiled pieces with your app (e.g. a C++ plugin).
  • Last but certainly not least, we are going to be adding preliminary support for Go and QML to the Ubuntu SDK in the next month. We want our app developers to be able to harness Go and with the excellent Go/QML work Gustavo has done, we will be landing this soon.

As ever, you can download the latest Ubuntu SDK by following the instructions on developer.ubuntu.com. Thanks to Zoltan and his team for his efforts

developer.ubuntu.com

An awesome SDK and a fantastic platform is only as good as the people who know how to use it. With this in mind we are continuing to expand and improve developer.ubuntu.com to be a world-class developer portal.

With this we have many pieces coming:

  • A refinement of the navigational structure of the site to make it easier to get around for new users.
  • Our refined HTML5 support will also get full Cordova and Platform API documentation on the site. Michael Hall did a tremendous job integrating Ubuntu and upstream API docs in the same site with a single search engine.
  • A library of primers that explain how key parts of our platform work (e.g. Online Accounts, Content Hub, App Lifecycle, App Insulation etc). This will help developers understand how to utilize those parts of the platform.
  • Refining our overview pages to explain how the platform works, what is in the SDK etc.
  • A refreshed set of cookbook questions, all sourced from our standard support resource, Ask Ubuntu.
  • We will also be announcing Ubuntu Pioneers soon. I don’t want to spoil the surprise, so more on this later. :-)

Thanks to David, Michael, and Kyle on my team for all of their wonderful efforts here.

Desktop Integration

In the Ubuntu 14.04 cycle we are also making some enhancements to how Ubuntu SDK apps can run on the desktop.

As many of you will know we are planning on shipping a preview session of Unity8 running on Mir. This means that you can open Unity8 from the normal Ubuntu login screen so you can play with it and test it. This will not look like the desktop; that work is on-going to converge Unity 8 into the desktop form-factor and will come later. It will however provide a base in which developers can try the new codebase and hack on it to converge it to the desktop more quickly. We are refreshing our Unity8 developer docs to make this on-ramp easier.

We are also going to make some changes to make running Ubuntu SDK apps on Unity 7 more comfortable. This will include things such as displaying scrollbars, right-click menus etc. More on this will be confirmed as we get closer to release.

All in all, lots of exciting work going on. We are at the beginning of a new revolution in Ubuntu where beautifully designed, integrated, and powerful apps can drive a new generation of Ubuntu, all build on the principles of Open Source, collaboration, and community.

Read more
Michael Hall

Today was a distracting day for me.  My homeowner’s insurance is requiring that I get my house re-roofed[1], so I’ve had contractors coming and going all day to give me estimates. Beyond just the cost, we’ve been checking on state licensing, insurance, etc.  I’ve been most shocked at the differences in the level of professionalism from them, you can really tell the ones for whom it is a business, and not just a job.

But I still managed to get some work done today.  After a call with Francis Ginther about the API website importers, we should soon be getting regular updates to the current API docs as soon as their source branch is updated.  I will of course make a big announcement when that happens

I didn’t have much time to work on my Debian contributions today, though I did join the DPMT (Debian Python Modules Team) so that I could upload my new python-model-mommy package with the DPMT as the Maintainer, rather than trying to maintain this package on my own.  Big thanks to Paul Tagliamonte for walking me through all of these steps while I learn.

I’m now into my second week of UbBloPoMo posts, with 8 posts so far.  This is the point where the obligation of posting every day starts to overtake the excitement of it, but I’m going to persevere and try to make it to the end of the month.  I would love to hear what you readers, especially those coming from Planet Ubuntu, think of this effort.

[1] Re-roofing, for those who don’t know, involves removing and replacing the shingles and water-proofing paper, but leaving the plywood itself.  In my case, they’re also going to have to re-nail all of the plywood to the rafters and some other things to bring it up to date with new building codes.  Can’t be too safe in hurricane-prone Florida.

Read more
bmichaelsen

LibreOffice bugzilla status

Im kind of over gettin told to throw my hands up in the air

so there

Team, Pure Herione, Lorde

So, somewhere between the LibreOffice 4.2.0 and the 4.1.5 release, bugs.freedesktop.org broke through 25.000 reported bugs. A time to throw the hands up in despair? Not at all, as the following chart shows:

LibreOffice bug states on freedesktop

LibreOffice bug states on freedesktop

  • 7% of reports are still unconfirmed or need more information
  • 22% are confirmed and unresolved issues, that are not enhancements requests
  • 6.5% are unresolved enhancement requests.

On the other hand:

  • 33% of all reports have been fixed in some way
  • and 30% are invalid or duplicates.

Its interesting to see how now a quarter of the confirmed unresolved reports are asking for new features and enhancements. Its gets even more encouraging, if you take into account that the number of bugs reports is at a long term constant 20-25 reports per day, while over 40% of the bugs intentionally or collaterally fixed changed their state in the last 12 month. So we are picking up speed in triaging and fixing bugs, while the influx of new reports stays constant.

If you are interested, please help QA quite a bit in all this by writing good bug reports, identifying duplicates, confirming new reports, bibisecting regressions, run and test daily builds and prereleases or otherwise helping with the QA Easy Hacks!


Read more
Michael Hall

Quick overview post today, because it’s late and I don’t have anything particular to talk about today.

First of all, the next vUDS was announced today, we’re a bit late in starting it off but we wanted to have another one early enough to still be useful to the Trusty release cycle.  Read the linked mailinglist post for details about where to find the schedule and how to propose sessions.

I pushed another update to the API website today that does a better job balancing the 2-column view of namespaces and fixes the sub-nav text to match the WordPress side of things. This was the first deployment in a while to go off without a problem, thanks to  having a new staging environment created last time.  I’m hoping my deployment problems on this are now far behind me.

I took a task during my weekly Core Apps update call to look more into the Terminal app’s problem with enter and backspace keys, so I may be pinging some of you in the coming week about it to get some help.  You have been warned.

Finally, I decided a few weeks ago to spread out my after-hours community a activity beyond Ubuntu, and I’ve settled on the Debian new maintainers Django website as somewhere I can easily start.  I’ve got a git repo where I’m starting writing the first unit tests for that website, and as part of that I’m also working on Debian packaging for the Python model-mommy library which we use extensively in Ubuntu’s Django website. I’m having to learn (or learn more) Debian packaging, Git workflows and Debian’s processes and community, all of which are going to be good for me, and I’m looking forward to the challenge.

Read more
jono

The Ubuntu Developer Summit is the primary place where we discuss, debate, and plan the future of Ubuntu. The entire event takes place online, is open and accessible to all, and every session is recorded so everyone can see how decisions are made. It is a useful, fun, and rewarding event to join.

My apologies for the delay in announcing the next event. The last few months have been somewhat hectic and we wanted to wait for some confirmed conference/sprint dates across Ubuntu Engineering and cross-check those with our release schedule before committing to final dates so we can ensure as many people are there as possible.

I can now confirm that our next Ubuntu Developer Summit will take place from Tues 11th March 2014 – Thurs 13th March 2014. I wanted to let you all know ASAP so you can get it in your calendars. summit.ubuntu.com is updated and ready to start having sessions added or proposed.

This next UDS will look and feel much like the last one; the same tracks and format. The feedback we have received from the last UDS suggests that the changes we made were well received. As ever, your feedback is always welcome.

If you want to have a session at UDS, please see this guide for how to propose it. As usual, feel free to ask for help from myself or Michael Hall, David Planella, or Daniel Holbach,

Read more
Michael Hall

We wrapped up the last day of our sprint with a new team photo.  I can honestly say I couldn’t think of a better group of people to be working with.  Even the funny looking guy in the middle.

I mentioned that earlier in the week we decided on naming SDK releases after distro releases, and with that information in hand I spent my last day getting the latest API docs uploaded, so if you’re writing apps for the latest device images, you’ll want to use these: http://developer.ubuntu.com/api/qml/sdk-14.04/

In the coming week I’ll be working to get the documentation publishing scripts added to the automated build and testing process, so those docs will be continuously updated until the release of Ubuntu 14.04, at which point we’ll freeze those doc pages and start publishing daily updates for 14.10.  Being able to publish  all of those docs in a matter of minutes was a particularly thrill for me, after working for so long to get that feature into production.  It certainly proves that it was the right approach.

Read more
bmichaelsen

It’s so hard when it doesn’t come easy

It’s so hard when it doesn’t come fast

– So Hard, Taking The Long Way, Dixie Chicks

So, LibreOffice 4.2 is released, FOSDEM is over, was very nice and I am back home in Hamburg after a week in London. I missed the LibreOffice UX Hackfest for that, which I heard was also awesome. So without further ado, here are the slides from my quick talk at FOSDEM:

(direct link if you are watching this on a planet that does not support embedded speakerdecks: https://speakerdeck.com/sweetshark1/liberated-build-system-mission-accomplished)

and some errata for it: On slide 13 it says “the same file is also hardlinked from workdir/” — thats not true for quite a while already. LibreOffice keeps around exactly one copy of a library, unlike the confusing three copies that we had in LibreOffice 3.3. This should be a lot less confusing to the curious first time contributor.

Reviewing all these changes in toto, it became how much we simplified getting involved with LibreOffice through this. As the lyrics quoted above say: “Back when we started, we didn’t know how hard it was”.

If there is just one number to take away from all these slides, its that a noop rebuild for LibreOffice on a three year old developer notebook with the distro provided GNU make 3.81 takes just 17 seconds(*). And slide 7 shows still some possibilities to still speed things up beyond that — and while at current speeds it might not be worth it on Linux, it might be worthwhile for e.g. Windows, which is traditionally rather slow when it comes to file I/O.

On a related note, over time we improved the way new contributors can submit their changes on our instance of gerrit in many ways. Thanks a lot to David, Norbert and Robert for the work on this. One only has to look at one of daily digests generated from activity on gerrit and imagine we would still get one mail for each change, update and merge to the mailing list for manual patch tracking as we did in the early days. Thanks a lot also to Mathias Michel for his work on the script!

So if you haven’t done that yet, consider graping an EasyHack and get started!

A copy of the original .odp is also available at FOSDEM or on the LibreOffice wiki.

(*) This includes checking 1.3GB of generated c++ dependency files for some >8000 object files, which we simplify to <350MB.


Read more
Michael Hall

Second to last day of the sprint, and we’ve been shifting gears from presenting ideas and brainstorming to making solid plans and bringing all the disparate pieces together.  The result is looking very, very promising.

I started out this morning by updating my Nexus 4 to build 166, which brings some improvements to the Unity 8 and system apps.  I’m still poking around to discover what’s new.

I had a handful of great conversations with the Jamie (security) and Ken (content-hub) about how to deliver creative content via click packages in the new store.  It looks like wallpapers will be relatively easy to support, and Ken and I (mostly Ken) will be working on adding that to the Click installer and System Settings.  Theme support is unfortunately going to be more difficult, since our QML themes are full QML themselves, and can run their own code, which makes them a security concern. We’re going to try and support a safe subset of styling to be delivered via Click packages, but that’s not likely to happen this cycle.

After lunch we had another set of presentations, this time from Florian Boucault on the SDK team about app performance.  After briefly covering performance goals we need to meet to make our UI as smooth and responsive an iOS, he stunned us all by showing off live performance graphs overlaid on top of one of the Core Apps (sadly I didn’t get a picture of that) so you can see the CPU and GPU usages while interacting with the app.  This wonderful little piece of magic should be landing in device images in the next couple of weeks, and I for one can not wait to try it out. In the mean time, he was nice enough to sit down with me and walk me through using QtCreator’s Analyse tab to see what parts of my own app might be using more resources than then should.

Among the sessions I wasn’t able to attend today: More HTML5 device APIs are coming online, contacts syncing via the Online Accounts provider for Google got it’s first cut, the SDK’s StateSaver component got some finishing work done, and AppArmor optimizations that will speed up boot times.

Read more