Canonical Voices

Posts tagged with 'developer'

David Callé

Now that your scope is in a working state, it’s time to get it ready for publication. In this tutorial you will learn how to make your scope look good when the user is browsing the store or the list of scopes installed on the phone.

In the next steps, we are going to prepare a few graphics, edit the <scope>.ini file located in the data directory of your project and package the scope for the store.

Read…

scope_prev_all

Read more
David Callé

Departments are a way for the user to navigate the data source exposed by a scope. A music scope can use them to allow browsing by genre, a Youtube scope could list channels and playlists, a news scope could use them for listing topics, etc. Departments can also display a full hierarchy of sub-departments.

In this tutorial, you are going to learn how to create and add them to your scope.

Read…

scope_dep8 scope_dep9

Read more
David Callé

Ubuntu has a solid location stack, allowing users to select which applications have access to the device location. This also applies to scopes and is very easy to add to your code.

In this short tutorial, you are going to learn how to bring location awareness to your scope.

Read…

scope-blue1scope-blue0

Read more
David Callé

A scope can provide persistent settings for simple customizations, such as allowing the user to configure an email address or select a distance unit as metric or imperial.

In this tutorial, you well learn how to add settings to your scope and allow users to customize their experience.

Read…

scope-settings_coffeenearby2 scope-settings_visitparis2 scope-settings_indieconcerts1

Read more
David Callé

Scopes come with a very flexible customization system. From picking the text color to rearranging how results are laid out, a scope can easily look like a generic RSS reader, a music library or even a store front.

In this new article, you will learn how to make your scope shine by customizing its results, changing its colors, adding a logo and adapting its layout to present your data in the best possible way. Read…

screenshot20145615_125616591

Read more
David Callé

A scope is a tailored view for a set of data, that can use custom layouts, display and branding options. From RSS news feeds to weather data and search engine results, the flexibility of scopes allows you to provide a simple, recognizable and consistent experience with the rest of the OS.

Scopes can also integrate with system-wide user accounts (email, social networks…), split your content into categories and aggregate into each others (for example, a “shopping” scope aggregating results from several store scopes).

unity-8-scopes

In this tutorial, you will learn how to write a scope in C++ for SoundCloud, using the Ubuntu SDK. Read…

Read more
David Callé

The SDK and Unity teams are constantly looking for ways to improve the overall performance and battery life of Ubuntu. Your app should be written in the same spirit: lightweight and fast.

The Ubuntu SDK performance overlay.

This article will show you how to measure performance in your QML app and give you some tips on avoiding common pitfalls and resource hogs. Read…

Read more
Robin Winslow

On release day we can get up to 8,000 requests a second to ubuntu.com from people trying to download the new release. In fact, last October (13.10) was the first release day in a long time that the site didn’t crash under the load at some point during the day (huge credit to the infrastructure team).

Ubuntu.com has been running on Drupal, but we’ve been gradually migrating it to a more bespoke Django based system. In March we started work on migrating the download section in time for the release of Trusty Tahr. This was a prime opportunity to look for ways to reduce some of the load on the servers.

Choosing geolocated download mirrors is hard work for an application

When someone downloads Ubuntu from ubuntu.com (on a thank-you page), they are actually sent to one of the 300 or so mirror sites that’s nearby.

To pick a mirror for the user, the application has to:

  1. Decide from the client’s IP address what country they’re in
  2. Get the list of mirrors and find the ones that are in their country
  3. Randomly pick them a mirror, while sending more people to mirrors with higher bandwidth

This process is by far the most intensive operation on the whole site, not because these tasks are particularly complicated in themselves, but because this needs to be done for each and every user – potentially 8,000 a second while every other page on the site can be aggressively cached to prevent most requests from hitting the application itself.

For the site to be able to handle this load, we’d need to load-balance requests across perhaps 40 VMs.

Can everything be done client-side?

Our first thought was to embed the entire mirror list in the thank-you page and use JavaScript in the users’ browsers to select an appropriate mirror. This would drastically reduce the load on the application, because the download page would then be effectively static and cache-able like every other page.

The only way to reliably get the user’s location client-side is with the geolocation API, which is only supported by 85% of users’ browsers. Another slight issue is that the user has to give permission before they could be assigned a mirror, which would slightly hinder their experience.

This solution would inconvenience users just a bit too much. So we found a trade-off:

A mixed solution – Apache geolocation

mod_geoip2 for Apache can apply server rules based on a user’s location and is much faster than doing geolocation at the application level. This means that we can use Apache to send users to a country-specific version of the download page (e.g. the German desktop thank-you page) by adding &country=GB to the end of the URL.

These country specific pages contain the list of mirrors for that country, and each one can now be cached, vastly reducing the load on the server. Client-side JavaScript randomly selects a mirror for the user, weighted by the bandwidth of each mirror, and kicks off their download, without the need for client-side geolocation support.

This solution was successfully implemented shortly before the release of Trusty Tahr.

(This article was also posted on robinwinslow.co.uk)

Read more
Michael Hall

Ubuntu has always been about breaking new ground. We broke the ground with the desktop back in 2004, we have broken the ground with cloud orchestration across multiple clouds and providers, and we are building a powerful, innovative mobile and desktop platform that is breaking ground with convergence.

The hardest part about breaking new ground and innovating is not having the vision and creating the technology, it is getting people on board to be part of it.

We knew this was going to be a challenge when we first took the wraps off the Ubuntu app developer platform: we have a brand new platform that was still being developed, and when we started many of the key pieces were not there such as a solid developer portal, documentation, API references, training and more. Today the story is very different with a compelling, end-to-end, developer story for building powerful convergent apps.

We believed and always have believed in the power of this platform, and every single one of those people who also believed in what we are doing and wrote apps have shared the same spirit of pioneering a new platform that we have.

As such, we want to acknowledge those people.

And with this, I present Ubuntu Pioneers.

The idea is simple, we want to celebrate the first 200 app developers who get their apps in Ubuntu. We are doing this in two ways.

Firstly, we have created http://developer.ubuntu.com/pioneers which displays all of these developers and lists the apps that they have created. This will provide a permanent record of those who were there right at the beginning.

Secondly, we have designed a custom, limited-edition Ubuntu Pioneers t-shirt that we want to send to all of our pioneers. For those of you who are listed on this page, please ensure that your email address is correct in MyApps as we will be getting in touch soon.

Thank-you so much to every single person listed on that page. You are an inspiration for me, my team, and the wider Ubuntu project.

If you have that pioneering spirit and wished you were up there, fear not! We still have some space before we hit 200 developers, so go here to get started building an app.

Original by Jono Bacon

Read more
James Westby

We’ve recently rolled out some changes to the submission process for Click Applications that should make it easier for you to submit new applications, and allow them to be approved more quickly.

Previously when submitting an application you would have to enter all the information about that application on the website, even when some of that information was already included in the package itself. This was firstly an irritation, but sometimes developers would make a mistake when re-entering this information, meaning that the app was rejected from review and they would have to go back and correct the mistake.

With the new changes, when you submit an application you will wait a few seconds while the package is examined by the system, and you will then be redirected to the same process as before. However this time some of the fields will be pre-filled with information from the package. You won’t have to type in the application name, as it will already be there. This will speed up the process, and should reduce the number of mistakes that happen at that stage.

We’ve also been working on a command-line interface for submitting applications. It’s not polished yet, but if you are intrepid you can try out click-toolbelt.

Read more
Michael Hall

App Showdown Winners

The judging is finished and the scores are in, we now have the winners of this year’s Ubuntu App Showdown!  Over the course of six weeks, and using a beta release of the new Ubuntu SDK, our community of app developers were able to put together a number of stunningly beautiful, useful, and often highly entertaining apps.

We had everything from games to productivity tools submitted to the competition, written in QML, C++ and HTML5. Some were ports of apps that already existed on other platforms, but the vast majority were original apps created specifically for the Ubuntu platform. Best of all, these apps are all available to download and install from the new Click store on Ubuntu phones and tablets, so if you have a Nexus device or one with a community image of Ubuntu, you can try these and many more for yourself.  Now, on to the winners!

Original Apps #1: Karma Machine

karma_machine_subredditkarma_machine_contentkarma_machine_commentsKarma Machine is wonderful app for browsing Reddit, and what geek wouldn’t want a good Reddit app?  Developed by Brian Robles, Karma Machine has nearly everything you could want in a Reddit app, and takes advantage of touch gestures to make it easy to upvote and downvote both articles and comments.  It even supports user accounts so you can see your favorite subreddits easily.  On top of it’s functionality, Karma Machine is also visually appealing, with a good mix of animations, overlays and overall use of colors and layouts.  It is simply one of the best Reddit clients on any platform (having written my own Reddit client, that’s saying something!), and having it as an original Ubuntu app makes it a valuable addition to our ecosystem.  With all that, it’s little wonder that Karma Machine was tied for the top spot on the judges list!

Original Apps #1: Saucy Bacon

saucy_bacon_searchsaucy_bacon_toolbarsaucy_bacon_editSomething for the foodies among us, Saucy Bacon is a great way to find and manage recipes for your favorite dish. Backed by food2fork.com, this app lets you search for recipes from all over the web.  You can save them for future reference, and mark your favorites for easy access over and over again.  And since any serious cook is going to modify a recipe to their own tastes, Saucy Bacon even lets you edit recipes downloaded from somewhere else.  You can of course add your own unique recipe to the database as well.  It even lets you add photos to the recipe card directly from the camera, showing off some nice integration with the Ubuntu SDK’s sensor APIs and hardware capabilities.  All of this mouth-watering goodness secured developer Giulio Collura’s Saucy Bacon app a tie for the #1 stop for original Ubuntu apps in our contest.

Ported Apps #1: Snake

snake_introsnake_play2snake_play

The game Snake has taken many forms on many platforms throughout the years.  It’s combination of simple rules and every-increasing difficulty has made it a popular way to kill time for decades.  Developer Brad Wells has taken this classic game from Nokia’s discontinued Meego/Harmattan mobile OS, which used a slightly older version of Qt for app development, and updated it to work on Ubuntu using the Ubuntu SDK components.  Meego had a large number of high quality apps written for it back in it’s day, and this game proves that Ubuntu for phones and tablets can give those apps a new lease on life.

Go and get them all!

The 2013 Ubuntu App Showdown was an opportunity for us to put the new Ubuntu SDK beta through some real-world testing, and kick off a new app ecosystem for Ubuntu.  During the course of these six weeks we’ve received great feedback from our developer community, worked out a large number of bugs in the SDK, and added or plan to add many new features to our platform.

In addition to being some of the first users of the Ubuntu SDK, the app developers were also among the first to use the new Click packaging format and tools as well as the new app upload process that we’ve been working on to reduce review times and ease the process of publishing apps.  The fact that all of the submitted apps have already been published in the new app store is a huge testament to the success of that work, and to the engineers involved in designing and delivering it.

Once again congratulations to Brian Robles, Giulio Collura and Brad Wells, and a big thank you to everybody who participated or helped those who participated, and all of the engineers who have worked on building the Ubuntu SDK, Click tools and app store.  And if you have a supported device, you should try out the latest Ubuntu images, and try these and the many other apps already available for it.  And if you’re an app developer, or want to become an app developer, now is your time to get started with the Ubuntu SDK!

Read more
John Pugh

Oh boy. June stormed in and the May installment is late! Not much changed at the top. The Northern Hemisphere spring storms keep Stormcloud at the top with Fluendo DVD staying put at the number two spot. Steam continues its top of the chart spree on the Free Top 10.

Want to develop for the new Phone and Tablet OS, Ubuntu Touch? Be sure to check out the “Go Mobile” site for details.

Top 10 paid apps

  1. Stormcloud
  2. Fluendo DVD Player
  3. Filebot
  4. Quick ‘n Easy Web Builder
  5. MC-Launcher
  6. Mini Minecraft Launcher
  7. Braid
  8. UberWriter
  9. Drawers
  10. Bastion

Top 10 free apps

  1. Steam
  2. Motorbike
  3. Master PDF Editor
  4. Youtube to MP3
  5. Screencloud
  6. Nitro
  7. Splashtop Remote Desktop App for Linux
  8. CrossOver (Trial)
  9. Plex Media Server
  10. IntelliJ IDEA 12 Community Edition

Would you like to see your app featured in this list and on millions of user’s computers? It’s a lot easier than you think:

Notes:

  • The lists of top 10 app downloads includes only those applications submitted through My Apps on the Ubuntu App Developer Site. For more information about of usage of other applications in the Ubuntu archive, check out the Ubuntu Popularity Contest statistics.
  • The top 10 free apps list contains gratis applications that are distributed under different types of licenses, some of which may not be open source. For detailed license information, please check each application’s description in the Ubuntu Software Center.

Follow Ubuntu App Development on:

Social Media Icons by Paul Robert Lloyd

Read more
Daniel Holbach

Yesterday we released Ubuntu Touch Preview images for four devices. This is a huge milestone for Ubuntu. We always wanted Ubuntu to be everywhere and the Preview shows quite nicely how well the vision of a design family across different form factors works.

There is quite a bit of work to be done, we all know that, but it’s a giant opportunity for us, the Ubuntu community. Everybody can contribute to the effort and we can show the world how we believe software should look like.

How you can help? Easy.

  • You can install the Ubuntu Touch preview images on a device and test them.
  • You can help out designing and shaping the Ubuntu Touch Core Apps.
  • If you are a bit more experienced with bringing software up on new devices, you can help us porting Ubuntu Touch to new devices.

Did the last point find your interest? Excellent, because we just took the wraps of our Ubuntu Touch Porting guide. This also marks the start of our Ubuntu Touch Port-a-thon. We want to get Ubuntu Touch up and running on as many devices as possible.

If you don’t mind some tinkering, maybe some kernel building, some configuration meddling and flashing your device repeatedly, you might just the person we’re looking for.

The porting guide should help you understand

  • how Ubuntu Touch works internally,
  • which bits are generally involved and where to find them
  • how to submit patches
  • how images are put together
  • how to test them and
  • where to find help

To get you started and into the mood, you might want to join us today, at Friday 22nd February at 15:00 UTC on http://ubuntuonair.com when two super heroes of the Ubuntu Touch project, namely Ricardo Salveti and Sergio Schvezov, are going to talk to us about the technical aspects of the phone and the tablet.

Reliable sources tell us, there’s going to be a surprise announce during the hangout as well.

This is the opportunity we always wanted. Let’s make it happen. Bring Ubuntu to the world in all its beauty.

Read more
John Pugh

The Unity cross-platform development tool version 4 has been released from beta into the growing world of Ubuntu game development. Every Unity developer is now only a few clicks away from publishing in the Ubuntu Software Center with Unity 4.0’s new Linux Deployment Preview. You can download a 30-day preview of all the Pro features, Linux export will always be in the free version.

Cubemen and Rochard are two examples of games built using the Unity game engine and available today through the Ubuntu Software Center. Millions of Unity developers now have the ability to easily deploy games to the most exciting open platform, Ubuntu.

If you just upgraded to Unity 4.0 or are starting out, load up your game, open the Build Settings, and choose the target “Linux” under PC, Mac, Linux Standalone. Then visit the Ubuntu MyApps developer portal, create your new account, and upload.

You say you are not using Unity 4.0 to build your applications? Geez…go get your free download today and get coding!

Read more
Daniel Holbach

I’m quite happy with the progress the Packaging Guide is making. We managed to fix a bunch of bugs this cycle and most importantly we got it into Ubuntu and made it translatable. We only opened translations a couple of weeks ago, but some language teams have been hard at work:

  1. pt_BR.po (18%)
  2. ja.po (14%)
  3. ru.po (9%)
  4. es.po (5%)
  5. id.po (4%)
    de.po (4%)
  6. nl.po (1%)
  7. sv.po (0%)
    fr.po (0%)
    lv.po (0%)
    zh_TW.po (0%)
    hu.po (0%)
    ca.po (0%)

At UDS we decided that for translations which came to a percentage of completion of >= 70% we would build separate packages for those languages. Up until to that percentage we will only keep the translations in Launchpad.

This means there is still some way to go for all of us, but this is a great great step already. Thanks a lot for your hard work on this!

There are obviously many more bugs to fix and we’d love your help.

Bitesize bugs:

Make it prettier:

One bug we’d love to see some help with is #1043232 Packaging Guide FTBFS – it looks like the build fails due to Japanese translations. Right now all translations are disabled, which serves as a workaround for now.

Thanks again to everyone who helped out with the Packaging Guide. Your help has got many many contributors on their way. Keep up the good work!

Read more
John Pugh

We’ve already written about Unity Technologies, supporting publishing applications to Linux in the next release of their platform, Unity 4.0. Canonical attended Unity’s Unite developer conference in Amsterdam, held 21-24 August, to meet with the nearly 1,200 Unity employees and developers and see first hand what to expect in Unity 4.0.

In Amsterdam, the Unite keynote kicked things off with an overview of the past few years and the evolution of Unity. Famed game designer Peter Molyneux, took to the stage and wowed the crowd with his latest game, the soon-to-be-renamed, Curiosity. The afternoon was filled with sessions geared towards developers who use Unity to create amazing games for all sorts of platforms. Thursday had a great session about how to use networking in Unity to create multiplayer games and how the new features in Unity 4.0 can make games come alive.

We already knew that Unity 4.0 is going to be unbelievable! The games that were showcased and won the Unity Awards really raised the bar for Unity development. You can get the lowdown on what Unity 4.0 has to offer, how to upgrade and what you need to run it from the FAQ. The free version of Unity 4.0 will, when released in a few months, include the new Mecanim engine and everything you need to start making incredible games right away. If you need a bit more power, additional effects, more streaming options and other tools, you’ll want to take a look at the Unity Pro 4.0 version. Either way free or pro, the great news is that publishing to Ubuntu is included.

On Friday, David Pitkin and I presented to a eager crowd about how Ubuntu and Unity’s new publish-to-Linux feature would open up their applications to millions of users who have a keen interest in getting their game on and buying games on Ubuntu machines. During and after the sessions we were bombarded with questions about how to get started with Ubuntu and submission requirements for the Ubuntu Software Center. We can’t wait for so many awesome games to arrive on Ubuntu in the coming months.

We had a great time at Unite, met some wonderful developers, played some excellent games, and got the word out on Ubuntu Software Center and publishing games to millions of Ubuntu users.

Get more information about the Ubuntu Software Center and MyApps. Be sure to like us on Facebook and follow @ubuntuappdev on Twitter.

Read more
Daniel Holbach

This morning I woke up and found the sponsoring queue at 103 items! I mailed the ubuntu-devel and ubuntu-motu lists and the current count is down to 81. This is great, but I’m sure we can get it down to 0.

Jani Monoses also filed these bugs to discuss how we can improve our sponsoring strategy:

You might want to join the conversation.

What we need most though is that if you can review code and upload changes, you head over to the sponsoring queue and help reviewing. It’s understandable that after UDS everybody is busy doing merges or jumps head-first into work items, but we also need to help newcomers get their changes reviewed. If you need some help, review our sponsorship best-practices.

If you should want to help on a regular basis, ping me or drop me an email and I’ll add you to the patch pilot schedule and you’ll get monthly reminders.

Rock on everybody! We can be happy we have so many new contributors, let’s don’t let them down! :-)

Read more
Daniel Holbach

I just went over the soon-to-be-released report of the Developer Advisory Team, where we sum up feedback from first-time contributors to Ubuntu Development and many noted that they found developer documentation easily and things generally worked out for them, but they struggled finding stuff to work on.

The Ubuntu Development team has always been good at creating new TODO lists (merges, Debian RC bugs, build failures, heaps of different bug lists and much much more), but you need to know what you are looking for.

Enter Harvest. We created it so it merely aggregates opportunities for Ubuntu developers in a simple web interface. You can select opportunity types and specific sets of packages to narrow down opportunities based on your interests.

If you got some spare time, are interested in Ubuntu development and would like to help, you would do the Ubuntu world a great favour by doing one of the following:

If you are an Ubuntu developer or would like to become one: trying it out and commenting below with your experience. (Bugs can be filed here.)

If you have a great idea on how it could be further simplified, extended or improved, write up your idea and link to it in the comments.

If you are a web developer: please get in touch. Harvest is written using Django and Python and it’s super-easy to extend, improve and fix it – so if you are looking for something to help out with, this might be a great opportunity for you.

Please consider helping out, your contributions will not only help you make better use of Harvest, but many other developers and new contributors as well. :-)

(If you tried it out and it works perfectly for you, let us know too. :-) )

Read more
Daniel Holbach

New contributors who don’t have upload rights to Ubuntu yet get their code reviewed and their packages uploaded by Ubuntu developers. This process is called “sponsoring” and our current process has been in place since pretty much forever. It has even gotten easier over time, so new branches or patches show up on our review queue.

Two years ago when we were struggling with getting code reviewed, we put in place “patch pilots”, a great concept we borrowed from the Bazaar team. We set up a monthly schedule and Canonical provided 4 hours per month per engineer with upload rights to make sure code gets reviewed. This has helped a lot.

Getting closer to the 12.04 release, it looks like we need to put some extra effort in and need some help.

Sponsoring Stats

That’s right we have been hovering around 50 for a while now, dealt with many incoming new requests, but still we don’t get down to 0. If you can review code, please help out.

We all are interested in getting new developers on board. This only works if we review each other’s work, gain each other’s trust and give each other advice.

The Sponsorship queue is where a lot of exchange about this happens and where knowledge is passed on. Help out by reviewing today and help grow our community this way.

This is one of the most valuable contributions to Ubuntu! This matters to all of us.

If you want to see at once glance how we are doing and who’s all helping out, head over to our one glance sponsoring page. (Patches to make it look more Ubuntu-y are very welcome!)

Check the instructions for code review (with lots of tips and tricks) and get your name on the page as well!

Read more
Daniel Holbach

Many engineering teams in the Ubuntu world have made extensive use of User Testing in the last years. This is an important reality check for everyone defining the experience of users. Do my assumptions still hold true? What do users expect? Are there use-cases we never considered? Which steps confuse our users?

The Ubuntu developers, so everyone who builds Ubuntu, integrates pieces to work nicely with each other, maintains packages and produces the distribution we all love, everyone is interested in this kind of feedback.

User testing of the Ubuntu Development process has, if it happened, always been ad-hoc and isolated. This is the reason why we want to look into this again and figure out which parts of the work-flows need to be improved.

Have you thought about contributing to Ubuntu Development before? Did you like the thought of helping improve the distribution millions of users love? If you did, you might be interested in this User Testing initiative. You will only have to read our documentation and send your feedback to Ubuntu Dev email. We in turn will make sure your feedback is put up for discussion and fixed eventually. Also will we will help you on your way if you should get stuck.

This initiative is not to be confused with mentoring. We are not going to do your homework for you or package your app. :-) Instead this will provide a great way for you to get started where you can share your experience with Ubuntu developers, who can help you along, while you provide valuable feedback. Your feedback will be treated confidentially and only published in an anonymised and summarised fashion.

What you need to do? Simple:

This is an experiment we will do until the release of Ubuntu 12.04 (April 26th). This should give us food for thought for the upcoming Ubuntu Developer Summit and depending on the success of the initiative, we will continue it.

Follow @ubuntudev on twitter.com, identi.ca, Google+ or facebook.com to find out more about this initiative and others.

Read more