Canonical Voices

Posts tagged with 'ubuntu'

Michael Hall

Last week I posted on G+ about the a couple of new sets of QML API docs that were published.  Well that was only a part of the actual story of what’s been going on with the Ubuntu API website lately.

Over the last month I’ve been working on implementing and deploying a RESTful JSON service on top of the Ubuntu API website, and last week is when all of that work finally found it’s way into production.  That means we now have a public, open API for accessing all of the information available on the API website itself!  This opens up many interesting opportunities for integration and mashups, from integration with QtCreator in the Ubuntu SDK, to mobile reference apps to run on the Ubuntu phone, or anything else your imagination can come up with.

But what does this have to do with the new published docs?  Well the RESTful service also gives us the ability to push documentation up to the production server, which is how those docs got there.  I’ve been converting the old Django manage.py scripts that would import docs directly into the database, to instead push them to the website via the new service, and the QtMultimedia and QtFeedback API docs were the first ones to use it.

Best of all, the scripts are all automated, which means we can start integrating them with the continuous integration infrastructure that the rest of Ubuntu Engineering has been building around our projects.  So in the near future, whenever there is a new daily build of the Ubuntu SDK, it will also push the new documentation up, so we will have both the stable release documentation as well as the daily development release documentation available online.

I don’t have any docs yet on how to use the new service, but you can go to http://developer.ubuntu.com/api/service/ to see what URLs are available for the different data types.  You can also append ?<field>=<value> keyword filters to your URL to narrow the results.  For example, if you wanted all of the Elements in the Ubuntu.Components namespace, you can use http://developer.ubuntu.com/api/service/elements/?namespace__name=Ubuntu.Components to do that.

That’s it for today, the first day of my UbBloPoMo posts.  The rest of this week I will be driving to and fro for a work sprint with the rest of my team, the Ubuntu SDK team, and many others involved in building the phone and app developer pieces for Ubuntu.  So the rest of this week’s post may be much shorter.  We’ll see.

Happy Hacking.

Read more
Michael Hall

So it’s not February first yet, but what the heck I’ll go ahead and get started early.  I tried to do the whole NaBloPoMo thing a year or so ago, but didn’t make it more than a week.  I hope to do better this time, and with that in mind I’ve decided to put together some kind of a plan.

First things first, I’m going to cheat and only plan on having a post published ever week day of the month, since it seems that’s when most people are reading my blog (and/or Planet Ubuntu) anyway, and it means I don’t have to worry about it over the weekends.  If you really, really want to read a new post from me on Saturday……you should get a hobby.  Then blog about it, on Planet Ubuntu.

To try and keep me from forgetting to blog during the days I am committing to, I’ve scheduled a recurring 30 minute slot on my calendar.  UbBloPoMo posts should be something you can write up in 30 minutes or less, I think, so that should suffice.  I’ve also scheduled it for the end of my work day, so I can talk about things that are still fresh in my mind, to make it even easier.

Finally, because Europe is off work by the end of my day, I’m going to schedule all of my posts to publish the following morning at 9am UTC (posts written Friday will publish on Monday morning).  I’ve been doing this for a while with my previous posts, and it seems to get more views when I do. For example, this post was written yesterday, but posted while I was still sound asleep this morning.  The internet is a magical place.

So, today being Friday, I will be writing my first actual UbBloPoMo entry this evening, and it will post on Monday February 3rd.  What will it be about I wonder?  The suspense is killing me.

 

Read more
jono

Recently Randall did some research into what people want to see on Planet Ubuntu. This has been followed up by Stuart with a set of concerns.

I agree with both of them.

I think the gist of Randall’s view is that he would like to encourage more fun, interesting, and diverse Ubuntu-related content. I think Randall wants to see fun stories of LoCo events, interesting Ubuntu work going on, cool Ubuntu apps, details of new features, and more. I agree with Randall here, and would love to see the same.

I think the gist of Stuart’s view is that the personal stories on Planet Ubuntu is a wonderful part of being in a community. Ubuntu is not just about Ubuntu, it is about the stories and the lives of the people who contribute to our community. I agree with Stuart here too.

I think we need a mix. Ideally we want to see interesting posts about people’s contributions to Ubuntu, but also about their non-Ubuntu lives too.

I would like to see Planet Ubuntu stick to its core goal: to be a place where you can look into the lives of Ubuntu members and explore their Ubuntu work as well as their non-Ubuntu thoughts and views.

The problem here is really with Ubuntu membership. Some people are still Ubuntu members who haven’t contributed to Ubuntu for a long time and thus we see lots of non-Ubuntu content, but rarely hear about their contributions. I would recommend we deactivate membership for those who are not actively contributing (active being significant and sustained contributions, as per our charter); this will then tighten up which feeds appear on planet and we will get a nice mix of both Ubuntu and person content.

Read more
David Planella

Ubuntu emulator guide

Following a recent announcement, the Ubuntu emulator is going to become a primary Engineering platform for development. Quoting Alexander Sack, when ready, the goal is to

[...] start using the emulator for everything you usually would do on the phone. We really want to make the emulator a class A engineering platform for everyone

While the final emulator is still work in progress, this month we are also going to see a big push in finishing all the pieces to make it a first-class citizen for development, both for the platform itself and for app developers. However, as it stands today, the emulator is already functional, so I’ve decided to prepare a quickstart guide to highlight the great work the Foundations and Phonedations teams (along with many other contributors) are producing to make it possible.

While you should consider this as guide as a preview, you can already use it to start getting familiar with the emulator for testing, platform development and writing apps.

Requirements

To install and run the Ubuntu emulator, you will need:

  • 512MB of RAM dedicated to the emulator
  • 4GB of disk space
  • OpenGL-capable desktop drivers (most graphics drivers/cards are)

Installing the emulator

If you are using Trusty Tahr, the Ubuntu development version, installation is as easy as opening a terminal, pressing Ctrl+Alt+T and running this command, followed by Enter:

sudo apt-get install ubuntu-emulator

Alternatively, if you are running a stable release such as Ubuntu 13.10, you can install the emulator by manually downloading its packages first:

Show me how

  1. Create a folder named emulator in your home directory
  2. Go to the goget-ubuntu-touch packages page in Launchpad
  3. Scroll down to Trusty Tahr and click on the arrow to the left to expand it
  4. Scroll further to the bottom of the page and click on the ubuntu-emulator_* package corresponding to your architecture (i386 or amd64) to download in the ~/emulator folder you created
  5. Now go to the Android packages page in Launchpad
  6. Scroll down to Trusty Tahr and click on the arrow to the left to expand it
  7. Scroll further to the bottom of the page and click on the ubuntu-emulator_runtime_* package corresponding to download it at the same ~/emulator folder
  8. Open a terminal with Ctrl+Alt+T
  9. Change the directory to the location where you downloaded the package writing the following command in the terminal: cd emulator
  10. Then run this command to install the packages: sudo dpkg -i *.deb
  11. Once the installation is successful you can close the terminal and remove the ~/emulator folder and its contents

Installation notes

  • Downloaded images are cached at ~/.cache/ubuntuimage –using the standard XDG_CACHE_DIR location.
  • Instances are stored at ~/.local/share/ubuntu-emulator –using the standard XDG_DATA_DIR location.
  • While an image upgrade feature is in the works, for now you can simply create an instance of a newer image over the previous one.

Running the emulator

Ubuntu emulator guide

The ubuntu-emulator tool makes it again really easy to manage instances and run the emulator. Typically, you’ll be opening a terminal and running these commands the first time you create an instance (where myinstance is the name you’ve chsen for it):

sudo ubuntu-emulator create myinstance
ubuntu-emulator run myinstance

You can create any instances you need for different purposes. And once the instance has been created, you’ll be generally using the ubuntu-emulator run myinstance command to start an emulator session based on that instance.

There are 3 main elements you’ll be interacting with when running the emulator:

  • The phone UI – this is the visual part of the emulator, where you can interact with the UI in the same way you’d do it with a phone. You can use your mouse to simulate taps and slides. Bonus points if you can recognize the phone model where the UI is in ;)
  • The remote session on the terminal – upon starting the emulator, a terminal will also be launched alongside. Use the phablet username and the same password to log in to an interactive ADB session on the emulator. You can also launch other terminal sessions using other communication protocols –see the link at the end of this guide for more details.
  • The ubuntu-emulator tool – with this CLI tool, you can manage the lifetime and runtime of Ubuntu images. Common subcommands of ubuntu-emulator include create (to create new instances), destroy (to destroy existing instances), run (as we’ve already seen, to run instances), snapshot (to create and restore snapshots of a given point in time) and more. Use ubuntu-emulator --help to learn about these commands and ubuntu-emulator command --help to learn more about a particular command and its options.

Runtime notes

  • At this time, the emulator takes a while to load. During that time, you’ll see a black screen inside the phone skin. Just wait a bit until it’s finished loading and the welcome screen appears.
  • By default the latest built image from the devel-proposed channel is used. This can be changed during creation with the --channel and --revision options.
  • If your host has a network connection, the emulator will use that transparently, even thought the network indicator might show otherwise.
  • To talk to the emulator, you can use standard adb. The emulator should appear under the list of the adb devices command. Due to a known bug, you’ll need to run adb kill-server; adb start-server on the host before you can see the emulator listed as a device.

Learn more and contribute

I hope this guide has whetted your appetite to start testing the emulator! You can also contribute making the emulator a first-class target for Ubuntu development. The easiest way is to install it and give it ago. If something is not working you can then file a bug.

If you want to fix a bug yourself or contribute to code, the best thing is to ask the developers about how to get started by subscribing to the Ubuntu phone mailing list.

If you want to learn more about the emulator, including how to create instance snapshots and other cool features, head out to the Ubuntu Emulator wiki page.

And next… support for the tablet form factor and SDK integration. Can’t wait for those features to land in the emulator!

The post A quickstart guide to the Ubuntu emulator appeared first on David Planella.

Read more
David Planella

App-Dev-Schools

Following the call for volunteers to organize App Dev Schools across the globe, we’re excited to say that there are already events planned in 3 different countries. Every single App Dev School will help growing our community of app developers and drive adoption of our favourite free OS on all devices, everywhere.

Our LoCo community has got an incredible track record for organizing release parties, Ubuntu Hours, Global Jams, and all sorts of meet-ups for Ubuntu enthusiasts and folks who are new to Ubuntu. Ubuntu App Developer Schools are very new, but in the same way LoCos are, they’re going to become crucial in the new era of mobile devices and convergence. So we would like to see more of them and we need your help!

You can run an App Dev School too

If you’ve already organized an event, you already know the drill, but if it’s your first one, here are some guidelines on how you can put one together:

  1. Find a place to run an event and pick a date when to run it.
  2. Find some other folks in your LoCo who would be interested in helping.
  3. To promote it, remember to add it to the LoCo Directory
  4. Get the material and tune it for your event if needed.
  5. Promote the event locally and encourage people to join.
  6. Practice the material a few times before the big day, then show up, run the class and have fun.
  7. Take lots of pictures!

The ever awesome José Antonio Rey has made it even easier for Spanish-speaking LoCos to run events by having translated the materials into Spanish, so do get in touch with him if you’d like to use them.

And finally, for those of you who don’t have mobile devices to show Ubuntu on, the emulator is a nice alternative to use for app development and presentations. To help you get started, I’ve put together a quickstart guide to the Ubuntu emulator.

If you’re thinking about organizing one and you’ve got questions or need help, get in touch with me at david.planella@ubuntu.com

Looking forward to seeing all your App Dev Schools around the world!

The post Announcing the first Ubuntu App Dev Schools appeared first on David Planella.

Read more
David Planella

Ubuntu Core Apps Hack Days

Core Apps Hack days are an easy way for app developers to get started contributing to one of the most important and visible parts of Ubuntu, and learn and share knowledge with an exciting community of some of the best Open Source developers around. As core app developer Riccardo Padovani, puts it:

I started to contribute to Ubuntu Touch with a Core App Hack Day in July and I still have not stopped!

Driven by the success of previous editions, we’re thrilled to announce another week of Ubuntu Core Apps Hack Days starting tomorrow, Friday the 24th of January

The goals

In one month’s time, the Mobile World Congress will bring a unique opportunity to present the Ubuntu phone and tablet to some of the most influential names in the mobile industry. It is also an opportunity to showcase a truly free OS and the stunning work our community of core app developers (and many others!) have already achieved.

Thus we’d like to set the theme for these Hack Days to Sprinting to MWC, and use them to focus on convergence and finishing off the set of features agreed upon at the last Ubuntu Developer Summit (UDS).

The schedule

We’ll be running a week’s worth of Hack Days, online at the #ubuntu-app-devel IRC channel, from 9:00UTC to 21:00UTC, focusing on two apps a day:

Get involved

There are many ways to making core apps even more awesome! If you want to contribute, choose the one that best matches your interests or skills. The first thing I’d recommend would be to run the apps on a device to get a feel for how they work. If you don’t have a real device to test, a good alternative is to use the Ubuntu emulator.

Once you’re familiar with them, here’s how you can start your journey to becoming a core apps contributor:

  1. Join the #ubuntu-app-devel IRC channel and say hi! >
  2. Find something to work on or ask someone on the channel. Here are some examples to get started

To learn more about contributing, check out the Hack Days page >.

Looking forward to seeing the new faces in the core apps project!

The post The Ubuntu Core Apps Hack Days are back! appeared first on David Planella.

Read more
bmichaelsen

Numbers

“Eins, zwei, drei, vier, fuenf, sechs, sieben, acht”

– Nummern, Computerwelt, Kraftwerk

So LibreOffice 4.2.0 release candidate 3 has been tagged yesterday evening. A good time to look back at the cycle and look at some numbers. The number of issues fixed in the 4.2 series are in line with our historic trends:

There is no page for the third release candidate yet, but I assume it to be no exception. Fixing issues is mainly done by development, although QA does the preparation for that by triaging a bug well. But QA also does quite a bit of work before a bug is triaged, and this is not directly locked to changes in code. So I had a look at the numbers simply in the timeframe between the tagging of 4.1.0 rc3 (2013-07-17) and 4.2.0 rc3 (yesterday). In this timeframe, QA did:

  • confirm 3114 bugs (change of ever_confirmed).
  • resolve 3393 bugs (change of resolution and not unresolved now, this includes the bugs fixed by development).

Naturally, these can not be simply be added up: for example, a bug can be confirmed and then be resolved by fixing it. If all of that happens in the timeframe (as it likely will for a relevant bug), it will appear in all the above counts. Meanwhile, in this timeframe 4092 bugs have been filed by endusers. Of those new bugs filed, 9.3% where enhancement requests. Since not all resolved bugs need to be confirmed (e.g. invalid bugs), these numbers add up nicely.

Speaking of quality, another thing to look at is regressions. How many of those will be fixed in 4.2 as of now? Here is the rundown:

  • 1 regression introduced in 3.4 or before
  • 2 regressions introduced in 3.5 or before
  • 3 regressions introduced in 3.6 or before
  • 2 regressions introduced in 4.0 or before
  • 8 regressions introduced in 4.1 or before
  • 51 regressions introduced on master or found in betas and release candidates

As you can see, most of the regressions fixed with this have actually never been released. This should be encouraging news to those testing daily builds: If you do that, you will be rewarded with quick bug fixes. Still, only fixing 16 regressions that were visible in previous releases seems a rather low count for a release. Well, this is because this count does not count fixed regressions that are also backported to the updates on the 4.1 stable series. As regressions are usually worth that effort, this is usually done unless it is to risky a change for that. If you look for regressions that were fixed in 4.2 and also backported to 4.1, you as of now get a count of:

  • 230 regressions fixed in 4.2 that were also backported to the 4.1 series

in addition. See this earlier post for more details on how the backporting works and some numbers on it.

Speaking of regressions, we have a pretty unique tool to corner them: bibisect. How well does this work? I keep tracking these in bugzilla for the last months. Currently 176 bugs have been bibisected, with the number of unresolved bibisected bugs staying constant in the 60-70 range. That is encouraging, as it means that for each regression bibisected, a developer fixes a bibisected regression. This happens currently at a rate of ~2 bugs per week, which is not too bad, as such regressions might be quite hard cornercases that without bibisect would be tricky to pin down. However, only ~14% of our unresolved regressions are bibisected as of now. Clearly, we can improve that ratio with more bibisecting and get more regressions fixed even quicker.

Ok, admittedly, this was a boring and dry post on bug numbers. What can I do to lighten you up? Here is catcontent, presented in LibreOffice Draw 4.2 running on Ubuntu trusty with the awesome new libreoffice-style-sifr icon theme:

More info about the upcoming 4.2 release can be found in the still evolving release notes and in this nice sneak peak video on 4.2. by Leif Lodahl.

tl;dr: We are doing well, but could use even more people testing daily builds and do bibisects.

addendum: The LibreOffice 4.2.0 release candidate 3 page is populated — additional 29 bugfixes. And the final release candidate 4 has 12 more.

addendum: Michael wrote a nice wrap-up what happened elsewhere in the (now released) LibreOffice 4.2.0.


Read more
Victor Palau

I am pleased to announced that Logviewer is now published in the Ubuntu Touch store.  The app no longer runs unconfined but uses “read_path” pointing to “/var/log/” and “/home/phablet/.cache/”. If you think there is another interested log path let me know and I will try to include it.

Also, one feature that landed by popular request is submitting a selected section of a log to pastebin , thanks to Popey for the image:

pastebin


Read more
jono

Like many of you, I am tremendously excited about Ubuntu’s future. We are building a powerful convergence platform across multiple devices with a comprehensive developer platform at the heart of it. This could have a profound impact on users and developers alike.

Now, you have all heard me and my team rattling on about this for a while, but we also have a wonderful advocacy community in Ubuntu in the form of our LoCo Teams who are spreading the word. I want to explore ways to help support and grow the events and advocacy that our LoCo Teams are doing.

I had a conversation with Jose on the LoCo Council about this today, and I think we have a fun plan to move forward with. We are going to need help though, so please let me know in the comments if you can participate.

Step 1: Ubuntu Advocacy Kit

The Ubuntu Advocacy Kit is designed to provide a one-stop shop of information, materials (e.g. logos, brochures, presentations), and more for doing any kind of Ubuntu advocacy. Right now it needs a bit of a spring clean, which I am currently working on.

I think we need to get as many members of our community to utilize the kit. With this in mind we are going to do a few things:

  • Get the kit cleaned up and up to date.
  • Get it linked on loco.ubuntu.com and encourage our community to use it.
  • Encourage our community to contribute to the kit and add additional content.
  • Grow the team that maintains the kit.

Help needed: great writers and editors.

Step 2: Advocacy App

The Ubuntu Advocacy Kit works offline. This was a conscious decision with a few benefits:

  1. It makes it easier to know you have all relevant content without having to go to a website and download all the assets. When you have the kit, you have all the materials.
  2. The kit can be used offline.
  3. The kit can be more easily shared.
  4. When people contribute to the kit it feels like you are making something, as opposed to adding docs to a website. This increases the sense of ownership.

With the kit being contained in an offline HTML state (and the source material in reStructured Text) it means that it wouldn’t be that much work to make a click package of the kit that we can ship on the phone, tablet, and desktop.

Just imagine that: you can use the click store to install the Ubuntu Advocacy Kit and have all the information and materials you need, right from the palm of your hand on your phone, tablet, or desktop.

The current stylesheet for the kit doesn’t render well on a mobile device, so it would be handy if we could map the top-level nav (Documentation, Materials etc) to tabs in an app.

We could also potentially include links to other LoCo resources (e.g. a RSS feed view of news from loco.ubuntu.com) and a list of teams.

If you would be interested in working on this, let me know.

Help needed: Ubuntu SDK programmers and artists.

Step 3: Hangout Workshops

I am going to schedule some hangout workshops to go through some tips of how to organize and run LoCo events and advocacy campaigns, and use the advocacy kit as the source material for the workshop. I hope this will result in more events being coordinated.

Help needed: LoCo members who want to grow their skills.

Step 4: LoCo Portal

We also want to encourage wider use of loco.ubuntu.com so our community can get a great idea of the pule of advocacy, events, and more going on.

Help needed: volunteers to run events.

Feedback and volunteers are most welcome!

Read more
David Planella

Human Touch-700px

It’s going to be one of the most exciting years in the history of Ubuntu. We’re seeing innovation and stunning work across the board, and a huge momentum and interest from OEMs and carriers to ship a phone with Ubuntu, with already a confirmed partner.

With our favourite OS expanding to yet another order of magnitude, every contribution is becoming even more important. And with phones shipping all over the globe, multilingual support and Ubuntu translators are going to be one of the keys to Ubuntu’s success.

In the same way you’ve helped us bring an excellent localized experience to the desktop throughout the years, we now need your help ensuring the phone reaches that level of excellence too. Once more, you can bring Ubuntu on phones to millions in their language.

To make it easier to focus on the most important parts, here’s a summary of the main Ubuntu components that can be translated in Launchpad, our collaborative translation tool.

And if you’re new to translating Ubuntu, you can also help! Check out our Translations Quickstart guide >

Unity and scopes

Unity is essentially Ubuntu’s UI, and version 8 is what is currently running on the phone and will ultimately run on all form factors once we achieve full convergence.

By translating Unity, the most visible user interface parts will appear in your language. Scopes are also part of Unity, and enable bringing content to users in a natural and organized way. The Click Update Manager is launched in the Applications scope when you install a new app.

Indicators

Indicators are another Unity technology that enables quick access to system settings that you access every day, such as networking, location, sound, etc., as well as the messaging menu. Translating indicators will localize their menus when you swipe from the top edge.

Core and system apps

You can think of core and system apps as being the same thing: a set the essential apps every user would expect preinstalled on their devices. Translating core apps, you’ll make it possible to have a richer localized experience with clock, camera, weather, calculator and more.

Testing translations

With the addition of multiple supported form factors, testing is important not only to ensure that translations are correct, but also that they fit in UI components of different widths. So please double-check that long texts fit in in the smaller factors such as the phone.

Translation testing on a running phone or on the emulator deserves an article of its own, so please stay tuned for the next update coming soon.

Happy translating!

Image: Human touch, by David Planella, under a CC BY-SA 2.0 license

The post Make Ubuntu speak your language appeared first on David Planella.

Read more
David Murphy (schwuk)

Although I still use my desktop replacement (i.e., little-to-no battery life) for a good chunk of my work, recent additions to my setup have resulted in some improvements that I thought others might be interested in.

For Christmas just gone my wonderful wife Suzanne – and my equally wonderful children, but let’s face it was her money not theirs! – bought me a HP Chromebook 14. Since the Chromebooks were first announced, I was dismissive of them, thinking that at best they would be a cheap laptop to install Ubuntu on. However over the last year my attitudes had changed, and I came to realise that at least 70% of my time is spent in some browser or other, and of the other 30% most is spent in a terminal or Sublime Text. This realisation, combined with the improvements Intel Haswell brought to battery life made me reconsider my position and start seriously looking at a Chromebook as a 2nd machine for the couch/coffee shop/travel.

I initially focussed on the HP Chromebook 11 and while the ARM architecture didn’t put me off, the 2GB RAM did. When I found the Chromebook 14 with a larger screen, 4GB RAM and Haswell chipset, I dropped enough subtle hints and Suzanne got the message. :-)

So Christmas Day came and I finally got my hands on it! First impressions were very favourable: this neither looks nor feels like a £249 device. ChromeOS was exactly what I was expecting, and generally gets out of my way. The keyboard is superb, and I would compare it in quality to that of my late MacBook Pro. Battery life is equally superb, and I’m easily getting 8+ hours at a time.

Chrome – and ChromeOS – is not without limitations though, and although a new breed of in-browser environments such as Codebox, Koding, Nitrous.io, and Cloud9 are giving more options for developers, what I really want is a terminal. Enter Secure Shell from Google – SSH in your browser (with public key authentication). This lets me connect to any box of my choosing, and although I could have just connected back to my desk-bound laptop, I would still be limited to my barely-deserves-the-name-broadband ADSL connection.

So, with my Chromebook and SSH client in place, DigitalOcean was my next port of call, using their painless web interface to create an Ubuntu-based droplet. Command Line Interfaces are incredibly powerful, and despite claims to the contrary most developers spending most of their time with them1. There are a plethora of tools to improve your productivity, and my three must-haves are:

With this droplet I can do pretty much anything I need that ChromeOS doesn’t provide, and connect through to the many other droplets, linodes, EC2 nodes, OpenStack nodes and other servers I use personally and professionally.

In some other posts I’ll expand on how I use (and – equally importantly – how I secure) my DigitalOcean droplets, and which “apps” I use with Chrome.


  1. The fact that I now spend most of my time in the browser and not on the command-line shows you that I’ve settled into my role as an engineering manager! :-) ?

The post HP Chromebook 14 + DigitalOcean (and Ubuntu) = Productivity appeared first on David Murphy.

Read more
Shuduo

  1. start from official tutorial http://developer.ubuntu.com/scopes/tutorial/

    1. implement search function

    2. implement preview function

    3. modify data/XXXX.scope

    4. modify data/unity-scope-XXXX.service.in

    5. modify XXXX.pro

    6. build executable file, and dbus service file out

    7. install executable file, scope file and service file.

    8. killall unity-scope-home to restart the Home scope so that it loads the new scope

  2. what’s scope? what’s master scope?

    1. Scope

The search engine itself, talking to a web service or a local database. It can be exposed to the user in two ways in the Dash: as a standalone scope or as part of a master scope.

  1. Master scope

The architecture used to merge multiple scopes in the same Dash view.

  1. how to debug?

    1. use libunity-tool -g

  2. My first scope project

    1. lp:~sangshuduo/+junk/scope500px

 

  1. BKMs and tips

    1. recommend C language to programming scope for performance although python and vala still working

      1. http://askubuntu.com/questions/310669/what-programming-languages-are-scopes-written-in

    2. Ubuntu SDK do not show Unity Scope project in project list

      1. apt-get remove all QT related packages and reinstall Ubuntu SDK

    3. dbus name limitation

      1. https://bugs.launchpad.net/libunity/+bug/1269256

    4. unreliable libunity-tool

      1. sometime libunity-tool can’t list all running scopes’ dbus name. we can fill its group name and unique name manually

      2. use master scope to list all results.

    5. manually add headers path and libraries to link

      1. XXXX.pro

    6. check name matched in all place

      1. config.h

      2. data/XXXX.scope

      3. data/unity-scope-XXXX.service.in

    7. who familiar Unity API

      1. Michal Hruby (mhr3)

    8. build and install. some files will be not installed if only run ‘sudo make install’

      1. qmake

      2. make

      3. sudo make install

Read more
jono

On Monday 13th Jan starting at 6pm UTC (10am Pacific / 1pm Eastern) I will be doing an AMA on Reddit. For those unfamiliar with this – this is where you can ask me anything on Reddit, and the most popular questions and responses are up/down voted.

The post will go live about 30mins before that time so you can start adding questions.

I welcome questions about absolutely anything to do with Ubuntu, Canonical, community management, working in the Open Source industry, writing books, podcasting, free culture, heavy metal, moving from England to America, or anything else. Let’s have some fun!

For those of you who are unfamiliar with my work, I work at Canonical as the Ubuntu Community Manager, I am the author of The Art of Community by O’Reilly, founder of the annual Community Leadership Summit, and have spoken around the world about community leadership and encouraging people to get together to create awesome things.

Outside of my work, I co-founded the Bad Voltage, Lugradio, and Shot Of Jaq podcasts, founded the Creative Commons metal band Severed Fifth, wrote an archive of Creative Commons music, built the BBQ website BBQpad, write for various magazines (Linux Format / Ubuntu User), and have contributed to various Open Source projects.

I will follow up on Twitter/Google+ with a link to the thread when it is published.

Read more
Victor Palau

[Ubuntu Touch] Logviewer

I have been recently doing some android development for Techfunder, one thing that I have found really useful when testing my app is using CatLog. CatLog allows you to check the app and system logs on the go. This is extremely useful when you have a crash while you are not close to your laptop.

This motivated me to look into writing a similar app for Ubuntu Touch. So here it is: LogViewer!

logslogsettingsunitylog

This app, like CatLog, is for developers and requires unconstrained running. You will need to install it manually:

  • Download click package from launchpad
  • transfer to your device and install:
  1. adb push com.ubuntu.developer.vtuson.logviewer_0.1_armhf.click /home/phablet/
  2. adb shell

  3. su phablet
  4. cd ~
  5. pkcon -p install-local com.ubuntu.developer.vtuson.logviewer_0.2_armhf.click

When you launch the app, you will get a list of .log files in /home/phablet/.cache/upstart/ , if you click on an specific log, it will be displayed in a similar manner to tail -f. You can pause the autoreading, clear the screen and copy to clipboard parts of the logs from the bottom menu.

You can also access other files, change font size of the logs and the size of the text buffered from the settings page.

You can see the code and contribute :) in launchpad:

https://launchpad.net/logviewer


Read more
jono

2014 is going to be a great year for Ubuntu App Developers. We laid down some fantastic foundations in 2013, but this year we want to extend and grow our community in multiple directions…building a solid, empowered on-ramp for creating awesome apps for Ubuntu.

…but we can’t do this alone, we need your help!

One effort here is to work with our fantastic LoCo Team Community to run a series of Ubuntu App Developer schools across the world. We have one of the greatest advocacy communities anywhere, so this seems like a perfect match.

Fortunately, David Planella has already created some awesome slides and a good tutorial that these schools can work from (he did this for a previous event), and we are here to help provide help and guidance about how to run an event.

As such, we are looking for volunteers to run a local Ubuntu App Dev school in your area. Doing this is as simple as:

  • Find a place to run an event and pick a date when to run it.
  • Find some other folks in your LoCo who would be interested in helping.
  • Get the material and tune it for your event if needed.
  • Promote the event locally and encourage people to join.
  • Practice the material a few times before the big day, then show up, run the class and have fun.
  • Take lots of pictures!

The last step is really important as we would like to create a montage of the events. :-)

So, if you are interested in participating, send me an email to jono@ubuntu.com and mention which LoCo team you are part of and where you would run the event, and lets make the magic happen!

Read more
jono

Happy new year, friends!

2013 was a phenomenal year for Ubuntu. It is difficult to believe that it was just a year ago today that we announced Ubuntu for phones. Since then we have built and released the first version of Ubuntu for phones complete with core apps, delivered Mir in production on the phone, built a vastly simplified and more powerful new app delivery platform complete with full security sand-boxing, created a powerful smart scopes service to bring the power of native search and online content to devices, delivered a new SDK with support for QML, HTML5, and Scopes, built an entirely new developer.ubuntu.com, created extensive CI and testing infrastructure to ensure quality as we evolve our platform, shipped two desktop releases, extended the charm store, delivered Juju Gui, spun up multiple clouds with Juju, and much more.

In terms of Ubuntu for devices, I mentally picture 2013 as the year when we put much of the core foundational pieces in place. Everything I just mentioned were all huge but significant pieces of delivering a world-class Free Software convergence platform. Building this platform is not as simple as building a sexy GUI; there is lots of complex foundational work that needs doing, and I am incredibly proud of everyone who participated in getting us to where we are today…it is a true testament of collaborative development involving many communities and contributors from around the world.

So, 2013 was an intense year with lots of work, some tough decisions, and lots of late (and sometimes stressful) nights, but it laid down the core pillars of what our future holds. But what about 2014?

This time next year we will have a single platform code-base for phone, tablet, and desktop that adapts to harness the form-factor and power of each device it runs on. This is not just the aesthetics of convergence, it is real convergence at the code level. This will be complemented by an Ubuntu SDK in which you can write an app once and deliver it to any of these devices, and an eco-system in which you can freely publish or sell apps, content, and more with a powerful set of payment tools.

These pieces will appear one phase at a time throughout 2014. We are focusing on finishing the convergent pieces on phone first, then bringing them to tablet, and then finally bringing our desktop over to the new convergent platform. Every piece of new technology that we built in 2013 will be consumed across all of these form-factors in 2014; every line of code is an investment in our future.

Even more importantly though, 2014 will be the year when we see this new era of Ubuntu convergence shipping to consumers. This will open up Ubuntu to millions of additional users, provide an opportunity for app developers to get in on the ground floor in delivering powerful apps, and build more opportunity for our community than ever before.

I wish I could tell you that 2014 is going to be more relaxing than 2013. It isn’t. It is going to be a roller-coaster. There are going to be some late nights, some stressful times, some shit-storms, and some unnecessary politics, but my goal is to help keep us working together as a community, keep us focused on the bigger picture, keep our discourse constructive, and to keep the fun in Ubuntu.

Let’s do this.

Read more
Victor Palau

We announced today a new solution to dual boot Android and Ubuntu on the same device. Over the last few weeks I have recently blogged about a Contacts import app for Ubuntu and  Techfunder, an Android app for crowd funding projects. What I didn’t mention before is that I have been developing and testing both in the same device!

I have been dog-fooding and developing a small part of our dual boot solution for a couple weeks now.  During that time, I’ve not only been able to boot between Android and Ubuntu as a user, but also as an application developer.

Dual boot brings no compromise to the SDK experience of either operating system.  I run Ubuntu SDK with QTCreator and Android’s ADT (eclipse-based) on my 12.04 LTS laptop.  And while the SDK for Android is more mature and fully featured, I still find Ubuntu (an particularly QML) much faster to prototype apps.

Dual boot is also about making the application developers life easier and cheaper.  Having to buy extra devices for testing new apps can be a put you off. You can now develop for Ubuntu by jusr re-using your Android device.. without having to disrupt your android projects!  For example,  yesterday I was working on applications on both sides, and I was easily booting back and forward and collecting logs in each side.

I hope to see more integration in between both development environments, I think it will be particularly neat to have something like  Android Monitor tool (aka DDMS) working for both OSs.

Btw, I have just released version 2.0 of Techfunder! Including home screen widgets, search and more categories. Don’t forget to check it out:

Get it on Google Play


Read more
Victor Palau

I have a lot of contacts in my phone… I am sure you will have more, but syncing over 500 contacts to Ubuntu phone using the command line for Syncevolution gets tedious.

So I wrote a little QML app to do the trick for you. Unfortunately, to run a system command the application has to run unconfined, so I have not yet submitted it to the store.

But if you want to install it yourself it is pretty simple:

  1. Download this file
  2. push the downloaded file to your phone, like so: adb push com.ubuntu.developer.vtuson.contactsimporter_0.9_armhf.click /home/phablet
  3. then run this to install it: adb shell “sudo -u phablet pkcon -p install-local  /home/phablet/com.ubuntu.developer.vtuson.contactsimporter_0.9_armhf.click”

You should be good to use it now, the app looks like this: (and if you want to check out the code is here)

contactsimp


Read more
Nicholas Skaggs

Trusty Cycle Updates

First things first, we have our burndown up for the trusty cycle! If your name appears on the list next to a work item, congratulations! Let's work through the items and make it happen ;-) If your name doesn't appear, don't worry! Feel free to help complete the tasks anyway, or jump in an get started on something you love. The mailing list is always open and we love to hear new ideas. See a blueprint that looks interesting and want to help? Get in touch!

What's happening now?
Now, for an update as to what is going on in quality. This week starts Alpha 1 for the flavors that are participating. In addition, the first work items are starting to see completion.

Ali has been working on getting the wiki pages and workflow ready for our community calls for testing. You can check out the page on the wiki here, and schedule testing events. The page explains the basic workflow -- I'd encourage you to schedule events for your favorite packages and let others know about the event on the mailing list. Be sure and report the results once you've completed.

Alberto has been working on getting the papercuts project running for the trusty cycle and ensuring the buglist is maintained and accessible.

Dan has been working on getting our automated testing in place and we're meeting with the CI team this week to get this implemented as part of the release process. Excellent work Dan!

Dan has also been working on the autopilot gtk emulator, which seeks to do the same thing as we've done with the autopilot ubuntu sdk emulator. Both of these frameworks help make writing tests easier.

Speaking of tests, Carla and others have been busy adding and fixing tests to make sure our dashboard stays green. And look at it! We're over 99% passing tests for the ubuntu touch platform. I want to personally thank everyone who's helped write and maintain these tests. Kudos to you all!

On the desktop side, Dan is helping new folks land tests, and the ubuntu desktop default apps continue to run and provide feedback on the desktop.

We also saw several new members join the ubuntu community via ubuntu quality recently. Congrats to Jean-Baptiste, Dan Chapman and Daniel Kessel (my apologies if I missed you!). 

Finally we have Thibaut and other folks looking at refactoring and improving ubuntu startup disk creator. Checkout the full blueprint for more information.

So, what's next?
Well for most of us, it's the Holiday season. Looking beyond the Holidays, , there's several big items in my list to work on in January:

  1. Continue to keep the dashboard green all the time
  2. Do wiki, mailing list, launchpad integration with bugsquad
  3. Add wiki documentation and videos for exploratory testing
What am I doing?
Well, you dear reader, I trust is getting involved in some of the work items and other activities. It starts with installing the development version of ubuntu and then diving in from there. Perhaps you want to write some tests, triage or fix some bugs, or schedule a testing event. If you are interested in making a contribution to ubuntu, we can always use good testers, test writers, developers and triagers!

If you are celebrating holidays this time of year, enjoy your time!  Thanks everyone and Happy Testing!

Read more
Victor Palau

Hi,

I found myself trying to build a QML Ubuntu Touch app project that includes a qml c++ extension and I found that I some how stumble a bit along the way. So, here are some of my notes on how I got it done. Hope that helps.

Creating the project.

Using QtCreator, create a new project and select – QML Extension Library + Tabbed Touch.  I found that it was easier to change the QML side of things than start with an extension and then add the whole project structure.

Build and Run your project locally

In QtCreator click on projects.  In Build, I set up the build path as my project root path. In run,  the executable is “/usr/bin/qmlscene” (make sure there is no spaces trailing) and then Arguments is set to “-I  ../backend/modules $@ yourapp.qml”, with a working directory of “projectroot/app”

Now if you try to run your project it should build it locally and run your app. After that you are on a roll.

Build on target device

Click Ctrl+f11 should install the platform developer tools in your device. However, I how found that this lately does not work.

Instead from the terminal:

first we will need to make the image in your device writeable:
adb shell touch /userdata/.writable_image  --> and reboot the phone.
then:
cd /usr/share/qtcreator/ubuntu/scripts
adb devices
./device_developertools_install <device_id>

Now you are ready to build, so back to QtCreator:

Build>Ubuntu>Build Application on Device

This should build the application with only some test problems, but the main binaries would be created. To package your app you will need to get

/home/phablet/dev_tmp/<yourapp>/backend/modules/lib<yourlib>.so

Creating a click package

create a manifest standard manifest file. Manifest.json

{
"description": "your text",
"framework": "ubuntu-sdk-13.10",
"hooks": {
"yourappname": {
"apparmor": "yourappname.json",
"desktop": "yourappname.desktop"
}
},
"maintainer": "your name<yourname@yourmail.com>",
"name": "com.ubuntu.developer.yourname.yourappname",
"title": "yourappname",
"version": "0.1",
"architecture": "armhf"
}

You will also need a yourapp.desktop file:

[Desktop Entry]
Name=yourappname
Comment=description
Exec=qmlscene -I plugin $@ yourapp.qml
Icon=icon.png
Terminal=false
Type=Application
X-Ubuntu-Touch=true

Note that Exec= has a -I plugin part to it. This is very important, will see later.

Now yourapp.json file that contains your confinement profile:

{
"policy_groups": [
"networking"
],
"policy_version": 1
}

Now time to setup a folder with all this stuff, not that the plugin folder is going to contain your lib which your are importing with -I option on the desktop file:
myproject>
-./click/
--icon.png
--manifest.json
--yourapp.json
--yourapp.desktop
--./plugin/
---./yourlib/
----lib(yourlibname).so
----qmldir

Now you are ready to build from your project root folder:
click build ./click

This should create a .click file in your project folder.

Installing in your device

adb pull your.click /home/phablet/
adb shell
su phablet
cd ~
pkcon -p install-local your.click

This should be enough, but sometimes I find that you need to restart unity:
pkill unity8 (you might need sudo)


Read more