Canonical Voices

Posts tagged with 'opensource'

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
Michael Hall

Today we had a lot of good discussions around app development, starting off with an update on the state of GoLang support and what was needed to get the Go/QML bridge packaged and available for people to start using.

From there we moved on to the future of Content Hub, which is really set to reach it’s full potential now and we will hopefully see a wide range of system, core and 3rd party apps providing it with content.

After lunch Nick gave us all a quick lesson in how to properly use Autopilot, something I think we’re all going to become more familiar with in the coming months.  The key takeaway: Don’t Sleep.

Then we discussed QtCreator itself, and our various plugins for it.  We identified some easy fixes, and did a lot of brainstorming on how to attack the harder ones.  We saw the new packaging and cross-compilation support that’s being added to it now. Zoltan topped it all off by giving us a very short demonstration, going from the creation of a new project all the way, through creating a package, running package verification tests on it, copying it onto a phone and installing it, all in about 30 seconds!

We also discovered that the current SDK packages in the PPA were broken for Saucy and older releases (Trust was okay).  Daniel, Zoltan and David Barth spent much of the day intensely debugging the problem, providing a fix, shepherding those fixes though Launchpad and into the PPAs so that we could get it all working by the end of the day.  We then set aside time for a new session where we discussed what happened and what we can do to prevent it from happening again.  I’m pleased to say that some of those steps have already been implemented, and the rest will soon follow.

Finally we wrapped up the evening with chicken wings and beer, plus another fantastically entertaining card game courtesy of Alan Pope’s deranged humor.

Read more
Michael Hall

Another day packed with meetings and discussions today.  Here’s some of the highlights:

We decided that SDK version numbering should mirror distro numbering, so instead of Ubuntu SDK 2.0 we will have Ubuntu SDK 14.04.

We worked out more details on the next App Developer Showdown, including what additions and changes to the SDK and store will be ready for the contest, and what prizes we will try to get for it.

After reviewing the current documentation on developer.ubuntu.com, we identified some areas where we need to improve it before the App Showdown.

Alan Pope and I guest starred in Jono’s weekly Q&A session, from the hotel bar, which was loads of fun.  Watch the full video to hear more about what we’ve been discussing here and maybe find answers to some of your own questions.

Read more
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
Michael Hall

A funny thing happened on the way to the forums, I was elected to serve on the Ubuntu Community Council. First of all I would like to thank those who voted for me, your support is a tremendous morale booster, and I look forward to representing your interests in the council.  I’d also like to congratulate the other council members on their election or re-election, I can’t imagine a better group of people to be working with.

That’s it, short and sweet.  Thanks again and let’s all get back to building awesome things!

Read more
Michael Hall

Last month I announced a contest to win a new OPPO Find 5 by porting Ubuntu Touch to it.  Today I’m pleased to announce that we have a winner!

Below is a picture tour of what Ubuntu Touch running on the device, along with descriptions of what works and what doesn’t. If you’re impatient, you can find links to download the images and instructions for flashing them here.

First a disclaimer, these aren’t professional pictures.  They were taken with my Nexus 4, also running Ubuntu Touch, and the colors are slightly shifted horizontally for some reason.  I didn’t notice it until I had already gone through and taken 58 pictures and downloaded them to my laptop.  Apologies for that.  But you can still get a feel for it, so let’s carry on!

Edge Swiping

The touch screen and edge swiping worked perfectly, as was neatly demonstrated by going through the new introduction tour.

Dash & Launcher

The Dash also works exactly as expected.  This build has a low enough pixel/grid-unit, and high enough resolution, that it fits 4 icons per row, the same as you get on Asus Nexus 4. The icons on the Launcher felt a little small, but everything there worked perfectly too.

Indicators

The indicators were missing some functionality, which I assume is a result of Ubuntu Touch not working with all of the Find 5′s hardware.  Specifically the WiFi isn’t working, so you don’t see anything for it in the Network indicator, and the screen brightness slider was non-functional in the Battery indicator.  Sound, however, worked perfectly.

Apps

Not having WiFi limited the number of apps I could play with, but most of the ones I could try worked fine.  Sudoku and Dropping letters don’t work for some reason, but the Core Apps (except Weather, which requires network access) worked fine.

 

Hardware

As I already mentioned, WiFi doesn’t work on this build, nor does screen brightness.  The camera, however, is a different story. Both the front and back cameras worked, including the flash on the back.

Final Thoughts

While this build didn’t meet all the criteria I had initially set out, it did so much more than any other image I had received up until now that I am happy to call it the winner.  The developer who built it has also committed to continuing his porting work, and getting the remaining items working.  I hope that having this Find 5 will help him in that work, and so all Find 5 owners will have the chance to run Ubuntu Touch on their device.

Read more
Michael Hall

Do you want a new OPPO Find 5?  Of course you do!  Well the awesome team at OPPO have given us a brand new Find 5 (x909 to be exact) for us to give you.  So here’s the deal, the first person to provide a working Ubuntu Touch image for this device gets to keep it.

Last weekend both Ubuntu and OPPO had booths at the first ever XDA Developers Conference in Miami.  While discussing both of our new products, the idea came up to hold a porting contest to get Ubuntu Touch running on the Find 5.  Jono announced the initial contest during his presentation on Saturday, with an initial challenge to have a winner claim the prize during the conference itself.  Despite having three separate developers build images and flash them onto the phone, none were able to boot into Ubuntu Touch.

So now we’re extending the contest and making it available to everybody!  To enter, you will need to send me an email containing links to the necessary files and detailed step-by-step direction for loading them on the phone.  I don’t have much experience with flashing ROMs, so treat me like a complete newbie when writing your instructions.  If your images don’t work, I will send you the output from adb logcat as well as any other information you request.  If your images do work, and meet the requirements below, I’ll be asking for a mailing address so I can send you your prize!

In order to win your phone, you need to get Ubuntu Touch running on the OPPO Find 5. Not just booting, but running, and is a way that makes it usable for other Find 5 owners.  So I’ve set out the following things that I will be checking for:

  • The phone boots into Ubuntu Touch (obviously)
  • I can launch multiple apps and switch between them
  • I can make phone calls (I have a SIM that works)
  • I can send and receive SMS
  • I can connect to Wifi, using WPA2
  • The screen goes to sleep when pressing the power button or after the set timeout period, and wakes up again when pressing the power button
  • I can play audio with the Music app
  • I can take pictures with the front and rear cameras

So, you want to take a crack at it?  Well the first step is to read the Ubuntu Touch Porting Guide.  Once you have an image you want me to try, send an email to mhall119@gmail.com with “OPPO” somewhere in the subject (just to help me out, I get a lot of email).  In that email include all of the steps necessary to download and install your image.  Again, be detailed, I’m a newb.  If you image meets the above requirements, I’ll put it in the mail to you!  After that, we can work on getting your image available for easy installation via our phablet-flash tool, so all the other OPPO Find 5 owners can try it too.

Read more
Michael Hall

This is it, the final day of the Ubuntu Core Apps Hack Days!  It’s been a long but very productive run, and it doesn’t mean the end of your chance to participate.  You can always find us in #ubuntu-app-devel on Freenode IRC, and for today either myself (mhall119) or Alan Pope (popey) will be at your beck and call from 9am to 9pm to help you get setup and started working on the Core Apps.

The last of the Core Apps, and the one we will be focusing on today, is the Stock Ticker. Originally developed by independent developer Robert Steckroth, we recently invited the Stock Ticker into the Core Apps project where we have been focused on refining the UI and setting it up for automated testing.  Feature wise, the Stock Ticker was already dogfoodable when we brought it under the Core Apps umbrella:

  • Search for stocks. DONE!
  • Add stocks to your portfolio. DONE!
  • Browse current stock prices. DONE!
  • Browse stock information. DONE!

For the UI we asked community designer Lucas Romero Di Benedetto to produce some new visual designs for us, which are looking incredible!  But it’s going to take a lot of work to implement them all, so we really need some more developers, especially those who know their way around QML, to help us with this.

Read more
Michael Hall

We only have 2 days left in the Ubuntu Core Apps Hack Days!  I hope everybody who has participated has enjoyed it and found it informative and helpful.  If you haven’t participated yet, it’s not too late!  Come join us in #ubuntu-app-devel on Freenode’s IRC network anytime from 9am to 9pm UTC and ping either myself (mhall119) or Alan Pope (popey) and we’ll help you get setup and show you where you can start contributing to the Core Apps.

Mmmmmm, Pie....Today we get another chance to play while we work, because the focus is going to be on Dropping Letters, a simple, fun, yet surprisingly addictive little app written by Stuart Langridge.  Stuart has since handed off development of the app to others, but not before having it already in perfectly usable state.  Because of it’s simplicity, our list of dogfooding requirements wasn’t very long:

  • Start a new game. DONE!
  • View high scores.

Short as the list may be, it’s only half done!  We still need to integrate a high scores screen, which means we need you Javascript and QML developers!  Dropping Letters also needs to be tested, which means Autopilot, which of course means we have something for you Python hackers too!  So come and join us today in #ubuntu-app-devel and help make this great game even better.

Read more
Michael Hall

We’re back again for another Ubuntu Core Apps Hack Day!  As always you can find us in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC, you can ping me (mhall119) or Alan Pope (popey) and we’ll help you get setup with a development environment and a copy of the Core Apps source code so you can start hacking.

Today’s app is one that was most requested when we announced Ubuntu on phones, and has since proven to be one of the most often used by developers and testers the like.  That’s right, I’m talking about the Terminal!  The Terminal went through very rapid development, thanks to the herculean efforts of one very talented developer, and the ability to re-use the KTerminal QML component from KDE’s Konsole project.  Because of both, the Terminal app has been dogfoodable for a while now.

  • Issue commands. DONE!
  • Use case: ssh into another computer. DONE!
  • Use case: edit a file with vi. DONE!
  • Use case: tail a log file. DONE!
  • Use case: apt-get update. DONE!

But that doesn’t mean that the work here is done.  For starters, we need to make sure that changes to the KTerminal code are submitted back upsteam, something we could certainly use some help from somebody who is familiar with either Konsole’s development specifically or KDE in general.  We also want to improve the availability of special keys like the function keys and ctrl+ combinations that are oh so useful when interacting with the command line, so anybody with QML/Javascript experience or who is familiar with the on-screen keyboard specifically would be able to help us out quite a bit here.

Read more
Michael Hall

Last week was certainly an exciting one, between the Ubuntu Edge campaign announcement and several coworkers being at OSCON, I wasn’t able to keep the Hack Days going.  So we’ve decided to pick up where we left off this week, covering the remaining Core Apps on our list.  Just like before we’ll be hanging out in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC, and will be more than happy to walk you through the process of getting started.

Today we’re going to work on the Document Viewer, a necessary app for most people, which is at the same time both simple and very complicated.  The app itself doesn’t require a lot of functionality, but it does need a lot of behind-the-scenes components to load and render documents of different formats.  Great progress has already been made on our dogfooding requirements list:

  • Load a text file. DONE!
  • Load an image file. DONE!
  • Load a PDF.
  • View the file. DONE!
  • Forward/back pages on PDF.
  • Pinch to zoom.

Until just yesterday, there wasn’t a released version of our desktop PDF library (Poppler) that had Qt5 bindings.  However, with the release of Poppler 0.24 yesterday, we should not be ready to start implementing the PDF support.  We also need to replace the existing C++ wrapper used to launch the app with the new Arguments QML component, but when we do that we’ll need another QML plugin that will give us the mime-type of the files that are being loaded.  And of course we need to make sure we have full Autopilot test coverage for all of these parts.  So whether your skill set is Python, QML, Javascript or C++, there is something you can contribute to on this app.

Read more
Michael Hall

So you may have heard (seriously, how could you not?) that Canonical is crowd-funding a showcase phone called Ubuntu Edge.  This is very exciting for a number of reasons, which I will get to below, but first go look at the Indie GoGo campaign page to see what I’m talking about.

Back? Good.  Did you contribute?  For the first 24 hours you can get a phone for a highly discounted contribution of $600 USD, rather than the $830 USD it will cost you tomorrow, so if you really want one of these it’s best to put your money on the table now.

Hardware Innovation

The phone hardware is impressive on it’s own, with more CPU, RAM and storage space than the laptop I was using for daily work last year.  Not only that, but it’s going to feature advances in the glass and battery that I haven’t seen on other phones.  Sapphire crystal glass, which can only be scratched by diamond, will keep your screen looking brand new for years to come.  And the silicon-anode battery promises faster charging and longer runtime without increasing the size of the handset.  You can see the full spec list on our other announcements.

I like this because we’re not asking you to contribute to making just another ordinary phone like all the rest you can buy already.  Instead we’re pushing the envelope to pioneer a new class of convergent superphones, a market that Ubuntu is uniquely positioned for.  This hardware will run Ubuntu Touch, Ubuntu for Android, and (when docked) a full Ubuntu Desktop.  But we’re not just playing the “make it bigger, make it faster” game, the design of Ubuntu Edge’s hardware is deliberate, everything choice was made based on what would provide the best user experience, what would make the edge-swipe gestures easy and responsive, what would let us show more of an app’s content while still fitting into the palm of the user’s hand.  This is a device designed from top to bottom for Ubuntu.

The margin on most production phones is thin enough to see though, which means that an OEM can’t afford to take risks with emerging technology or markets.  That’s why it’s so important that we prove both the capabilities of Ubuntu for convergence, and the consumer appeal for such a device.  Apple had to do it with the original iPhone, Google does it with their Nexus line of devices, and now it’s our turn to show what’s possible.

Community Campaign

Instead of seeking private capital to build these phones, then trying to sell them (at a profit or loss), we’ve decided to take it directly to the user community, which is why we’re asking you to pledge some amount to our campaign.  We couldn’t build Ubuntu without our community, and we can’t build Ubuntu Edge without you either.

Our target goal is $32 million, which sounds like a lot, but only because it is.  It really is.  But it’s still only a fraction of the cost of an actual production line of phones.  In order for an OEM to ship an Ubuntu phone (or any new phone), they would typically invest multiple times this amount.  So as big as our target goal is, and I don’t think anybody’s crowd-sourced more, it’s certainly not an unreasonable amount for what we’re offering.

The target amount will allow us to manufacture just 40,000 handsets, most of which I would imagine will already be claimed by those contributing $830 or more (only $600 if you do it the first day!).  All of the money raised in this campaign will go directly towards manufacturing and shipping these devices, it won’t be used for other Canonical business or even future Ubuntu development.  When you do the math, which I did, you see that it comes out to $800 per device to manufacture, and we’re only asking for $830 to get it (again, in the first 24 hours, you can get it below that cost).  This is an effort to build a new class of superphone, not a way of making Canonical rich.  If we reach our goal, you should have your Ubuntu Edge in hand sometime in May 2014!

Non-monetary contributions

I know that $830 is a lot of money, even $600 is a lot of money, but those aren’t the only ways you can help.  In addition to giving smaller amounts in support of this campaign (for which there are other perks) you can help make it a success by spreading the word.  No doubt it will be picked up by the usual online news sources, forums and blogs but let’s break it out of our usual Linux/FLOSS sphere.

So share links to the Indie GoGo campaign page on Facebook, Twitter and Google+.  Tell your friends, especially any tech savvy ones, about it.  Send an email to your local newspaper, radio or television stations, you never know who might think it’s an interesting story (and wouldn’t you just love to see Ubuntu on TV?).  Every person you tell about the campaign brings us one step closer to reaching our goal, and it doesn’t cost you a penny.

Read more
Michael Hall

We’ve had a great week running the Ubuntu Core Apps Hack Days so far, we’ve seen several new contributors join our development teams, and lots of merge proposals coming in and landing.  But we’re not done yet, we’ll be in #ubuntu-app-devel again today from 9am to 9pm UTC to help anybody who is interested in getting started contributing to these apps.

Today we’ll be focusing on an app that may not be high on the average user’s list of mobile apps, but is indispensable for anybody working on a ported image or writing an app for Ubuntu Touch, that is the File Manager App!

Thanks to reusing the Folder List Model QML Plugin from the Nemo Mobile project, the File Manager developers were able to get a very functional application working in a very short amount of time.  That means that our dogfooding list is already complete!

  • Browse folders. DONE!
  • View files within folders. DONE!
  • View file information. DONE!
  • Copy files. DONE!
  • Delete files. DONE!
  • Move files. DONE!

But don’t let that list fool you, there’s still plenty of work to be done.  The biggest one is making sure that any changes we’ve made to the Nemo plugin are sent back upstream.  If anybody from the Nemo project can help us with this, please find me (mhall119 on IRC).  We also need to make sure we have full Autopilot test coverage, and fix any remaining bugs that have been reported.

Read more
Michael Hall

I hope you all enjoyed spending some time playing Sudoku yesterday, because we’re back to work again for another Ubuntu Core App Hack Day!  As always you can find us in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC to answer all of your app hacking questions, help get you setup and started contributing, or just generally discuss how to write Ubuntu Touch apps in general.

Today we leave behind yesterday’s light hearted fun and games and turn to the (only slightly) more serious work of reading news with the RSS Reader app!  Another one of the original Core Apps, the RSS Reader got some unexpected designs from the Canonical Design team that converted it from the typical list-of-headlines to a beautiful organic grid seen here.

Because of these very recent and very major changes to the UI, there’s a lot of work to be done to get all of the previous functionality working again at the same level.  For dogfooding the RSS Reader, these are our goals:

  • Add a feed.
  • Browse feeds. DONE!
  • View a feed.
  • Select an item to view from within the feed.

Because of the major changes, this app can use a lot of help from people who are simply willing to use it and report bugs so that the developers (and all of you new contributors) have a list of things to work on.  Then we need you QML/Javascript hackers to pick things from that list and start making and submitting your fixes.  Finally we need Autopilot tests written or updated for this new look, so I’m looking at you Python guys and gals to lend us a hand too.

Read more
Michael Hall

We’re continuing our Ubuntu Core Apps Hack Days again today in the #ubuntu-app-devel channel on Freenode IRC, from 9am to 9pm UTC.  If you want to learn more about the Core Apps and how you can get involved, jump into the channel and give myself (mhall119), Alan Pope (popey) or David Planella (dpm) a shout.

We’ve been working hard on the Core Apps lately, which is why I’m glad that today we get spend time on something a little more fun: the Sudoku App!  Sudoku was originally developed outside of the Core Apps umbrella, but it progressed so quickly and fit Ubuntu Touch so well, that we invited it’s developer to join the rest of our Core Apps.

Sudoku was so far along before joining the Core Apps, that our dogfooding list was already largely complete:

  • Start a new game DONE!
  • Record and display game statistics DONE!
  • Provide hints DONE!

But even as complete as it is, there are still a few bugs to squash and some final Autopilot tests to write, so if you have QML and Javascript skills or Python skills and can spare a little bit of your time, you can help us put the finishing touches on this classic game.  And if you want to help us, you know, “test” it for a few hours of your day, we’ll totally consider that a contribution too.

Read more
Michael Hall

It’s day 5 of the Ubuntu Core Apps Hack Days!  We’ve seen a tremendous amount of work coming into the Core Apps, and have several new contributors joining the initiative.  We’re keeping that momentum going throughout the week in #ubuntu-app-devel on Freenode from 9am to 9pm UTC, so come and be a part of this exciting project.

Today we’ll turn our attention to the Weather application, another one of the original Core Apps, and another one that is already largely complete.  The Weather app gained multi-city support and a long range forecast early on, and has more recently added the ability to toggle between Celsius and Fahrenheit temperature displays.  Between those, it met all of the criteria we set for dogfooding:

  • Choose a location to view weather from. DONE!
  • View current weather conditions. DONE!
  • View a 10 day forecast. DONE!
  • Configure C or F and display that chosen setting for all locations. DONE!

Since the features are complete, we now need to put the rest of our effort towards polish and quality.  This means we need those of you with QML and Javascript knowledge to help fix the reported bugs in Launchpad, and those of you with Python knowledge to help us finish the Autopilot test coverage, so that we can make this app rock solid and reliable for every day use.

Read more
Michael Hall

Welcome back to another week of Ubuntu Core Apps Hack Days!  As always we will be in #ubuntu-app-devel on Freenode’s IRC from 9am to 9pm UTC to answer all of your questions, help you get your development environment setup, and get started contributing to the Core Apps projects.

To start off this week we will be taking a look at the Calculator app.  The Calculator was another one of the original core apps, made some of the fastest progress and was one of the first to make it onto the device images’ default install.  The Calculator is as simple as it is beautiful, and thanks to this and the hard work put in by it’s developers, that means it’s already feature-complete as far as our dogfooding list was concerned:

  • Create a common calculation (subtraction, addition, multiplication etc). DONE!
  • Create a new calculation. DONE!
  • Keep previous calculations across reboots of the app and device DONE!

But even though the main features are complete, there is still some work left to be done.  Most importantly, with Ubuntu’s focus on quality these days, we need to finish up our Autopilot test coverage, which means we need the help of all your Python developers out there.  We also have a list of reported bugs that need to be fixed, which is going to require somebody with QML and/or Javascript knowledge.  If either of those suits you, please join us in #ubuntu-app-devel today to get started!

Read more
Michael Hall

Today is the last Ubuntu Core Apps Hack Day of the week, but don’t worry because we’re coming back every day next week to cover more of our amazing Core Apps.  Like previous days, we’ll be in #ubuntu-app-devel in Freenode IRC from 9am to 9pm UTC to help you get setup and contributing to these apps.

Today our focus will be the Clock app, one of the original Core Apps, and while you might think that a clock app would be simple, there’s a lot going on in this one.  In addition to showing you the current local time, the Clock app also sports a world clock, a timer, a stopwatch, and soon the ability to set alarms.  Our dogfooding goals for the clock are:

  • View local time. DONE!
  • View times in different cities. DONE!
  • Stopwatch (start, stop, pause, lap) DONE!
  • Set alarm, be notified when the alarm time arrives
  • Set timer, be notified when the time runs out

As you can see, the first 3 are already done and working.  The remaining two are blocked on platform work for setting alarms that will be triggered by the system even when the Clock app itself isn’t active.

But that doesn’t mean there’s nothing for new contributors to do.  One of the Clock’s most active developers, Nekhelesh Ramananthan, has helpfully provide me with a list of things that he needs your help with:

  • Getting autopilots tests ready for the timer, stopwatch and clock
  • Bug fixes for timer, clock and world clock
  • Caching support for sunrise/sunset times. The sunrise/sunset should only be retrieved once a day or when the location is changed. I will create a bug report to track this and also tag it hackday.

He even went so far as to tag bugs that would make good hack day targets and provide some insight into how to solve them, so you can go grab one from this list and give it a shot.  Some of these will require QML and Javascript knowledge, others are for needed Autopilot tests that need Python, so we’ve got something for everybody.  Nekhelesh (nik90) will also be in the IRC channel tomorrow to help you work on these items and review your contributions.

Read more
Michael Hall

Welcome to day 2 of the Ubuntu Core Apps Hack Days!  Once again we will be in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC to help you get started contributing to Ubuntu Touch’s Core Apps.

Today we’re going to turn our attention to the Music app.  This app is a little bit different in the fact that it didn’t start off as a Core App, or even as a single app.  Several people had started on music apps or mockups for music apps, so we brought them together to combine their efforts into a single app.  Because of this, instead of progressing through the usual steps of defining requirements, designing user experience and then implementing features, we had all three things coming together at the same time.  This put the Music app both ahead and behind the others in different ways.

The feature targets we set out for dogfooding the Music app are all larely half-done, as a result of how the app is the amalgamation of several formerly independent efforts.  You’ll find that many of them are complete on the back-end but need to be integrated with the new front-end work, or vice-versa.  As such, this is a project where a little bit of effort can make a very large impact.  To get the Music app ready, we want to get the following working:

  • Read in music from ~/Music.
  • Browse a list of artists.
  • Browse albums by an artist.
  • Browse songs by an artist.
  • Play a song, with transport controls (Play, Stop/Pause, Skip Back/Forwards).
  • Shuffle.
  • Bonus: pull in album cover/details from the net.

To do these, you’ll need some working knowledge of QML and Javascript.  The Music app also re-uses the File Manager App’s plugin to find and read metadata of music files, so if you have C++ experience there are things you can work on there too.  And of course our Python developers can help by working on Autopilot tests to make sure that the above features work (and continue to work) as expected.

Just like the Calendar app, there are some things that we want the Music app to do that require work to be done on the platform side.  Specifically, we want the Music app to continue playing songs when you switch away from it or turn off the phone’s screen.  Currently the platform will suspend the Music app’s process when this happens, so playback stops.  However Canonical’s Jim Hodapp, who has already done a lot of work on multimedia integration and gstreamer, will soon begin work on a system-wide media playback service that the Music app will be able to hand songs off to.  Until then we will continue using the Qt Multimedia APIs to play songs while the application is still active.

Read more