Canonical Voices

Posts tagged with 'ubuntu'

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
jono

Recently the Ubuntu newswires have been buzzing with the news that we have won our first smartphone partner.

Now, let’s get the elephant in the room out of the way – I am not telling you who it is. It is not my place here to share confidential details about business-to-business relationships such as this. Rest assured though, I know the folks working on these relationships and there is a tremendous amount of opportunity for Ubuntu in these discussions; OEMs, carriers, ISVs and more are very interested in exploring Ubuntu for future products.

This is…spoiler alert…fantastic news.

But what does this news really mean for Ubuntu, and to what extent do our community play a part? Let’s dig into this a little bit.

I joined Ubuntu because I want to help an effort to bring technological elegance and freedom to people. Both of these are essential; elegant proprietary software and complex Free Software are both limited in the opportunities they bring to people and who can harness them. A good balance of both is what we strive to achieve in Ubuntu.

For many years Ubuntu has been available to download and install on your computer. Today you can download Ubuntu for your desktop computer, phone, tablet, and you can deploy it to your public or private cloud.


Soon.

While this provides a reliable distribution point for those in the know, it remains an unknown service for those not in the know. Put simply: most normal people don’t do this. People like you and me, who read nerdy blogs like mine, often do this.

Now, we often talk about how we have around 20million Ubuntu users. To be fair, this will always be something of an informed estimation (made up from sales, downloads etc). As an example, if one person downloads Ubuntu they may install it on one computer. Alternatively, they could do the kind of work that Project Community Computers and Partimus do and use that download to install Ubuntu on hundreds of computers that potentially thousands of people will use. Again, put simply, it is difficult to get a firm idea of current numbers of users.

Irrespective though, whatever figure we have…such as 20million…this number is fundamentally defined by our available distribution mechanisms. The formula here is simple: if we increase the opportunity for Ubuntu to be distributed, we get more users…

…and this is where the chain reaction begins.


Wrong chain reaction.

If we have more users, we get more ISVs such as Adobe, Autodesk, Zynga, Rovio and others who want to use Ubuntu as a channel. If we get more apps from ISVs we get more interest from OEMs, carriers, and others. If we get more OEMs and carriers, we get more enterprise, creative-industry, and educational deployments. If we get more deployments we see more businesses selling support, services, training, people writing books, seminars, and other areas of focus. This effectively creates an eco-system around Ubuntu which in turn lowers the bar enough that any consumer can use and try it…thus putting Free Software in the hands of the masses.

Put simply once more: if we make Ubuntu commercially successful, it will put Free Software in the hands of more people.

Now, on the desktop side of things we have Ubuntu pre-installed on four of the largest OEMs on the planet, and while industry-wide annual PC shipments are dropping more and more each year, fortunately, we have positioned ourselves in a sweet spot. We can continue to fulfill our position as the third most popular Operating System for desktop/laptop computers, while providing a simple on-ramp to bring Ubuntu to these other devices as part of our wider convergence story.

As such, our first commercial smartphone partner is where we light the touch-paper that starts that chain reaction. This is good for Ubuntu, consumers, app developers, small businesses selling services, and for other OEMs/carriers who are exploring Ubuntu. All of this is good for Free Software.

So where does the community fit into this? Surely all of this work is going to be the domain of paid Canonical engineers delivering whatever the secret smartphone partner wants?


Recent Canonical sprint at the Marriott City Center, Oakland

Not at all.

Delivering a shippable device has many different technology components: hardware enablement, display server (Mir), shell (Unity 8), developer platform and SDK, core applications that ship with the device, quality assurance, language packs, third-party scopes and services, and more.

This is just what sits on the device. Outside of it we also need effective governance, event planning, local user group advocacy and campaigns, app developer growth and support, general documentation and support, web and communications services, accessibility, and more.

Every one of these areas (with the probable exception of specifically working with customers around enabling their specific device) welcomes and needs our community to help. Some of these areas are better set up collaboratively with our community than others…but not working collaboratively with our community is a bug, not a feature.

Believe me when I say there is no shortage of things for us to do. We have a long but exciting road ahead of us, and I am looking at my team to help support our community in finding something fun, rewarding, and productive to work on. There are few things in life more satisfying than putting your brick in the wall as part of a global effort to bring technological change to people. I hope you are joining us for the ride.

If you want to help and get stuck, email me at jono@ubuntu.com. I am happy to help get you started.

Read more
Victor Palau

Since I lead the Ubuntu Edge campaign, I have been trying to keep up with other crowd funding projects.  I am mainly interested on technology and gadgets, and I have found it hard to navigate Kickstarter, but also to have to keep hoping between Kickstarter and Indiegogo to see what is going on.  Specially since now, seems like interesting projects are evently split between them.  You might share my friction on this… so I give you Techfunder:

Get it on Google Play

Techfunder is an Android app that provides an easy way to browse crowd funding projects launched across the main industry websites. Techfunder gathers Technology and Design projects from Kickstarter and Indiegogo.

Using Techfunder side navigation you can easily switch between:

  •  Popular
  •  New this week
  •  Staff Picks
  •  Design – Popular

Then you can browse as many projects on a compact scrollable list. Just click on the project you are interested to expand into a full screen view.From there you can tell the world about it using the share button. 

If you want to contribute or found out more about it, click on the “browse” button and Techfunder will launch the project page in your web browser. When you are finished, just press the Android back button to return to Techfunder.

I am currently planning to add a favourites/watchlist functionality and looking into a way to select additional crowd sourcing platform. I hope you enjoy it!


Read more
Daniel Holbach

packaging.ubuntu.com

I’m please to announce the following changes have landed in the Ubuntu Packaging Guide:

  • The Packaging Guide is now fully translated into French! Bravo, équipe français! Thanks a lot everyone who helped out here!
  • We moved from developer.ubuntu.com/packaging to our new home http://packaging.ubuntu.com – don’t despair, redirects are in place!This was done, because developer.ubuntu.com more and more moved into the direction of delivering tutorials for people who want to create content (apps, scopes, charms, etc.) on top of Ubuntu.
    This also gives us the benefit that we don’t have to integrate the guide into a wordpress installation somehow, but maintain it all on our own.
    Thanks a lot Tom Haddon for helping set this up and Andrew Starr-Bochicchio for beautifying the landing page. Great work everyone!
  • We are finally going to get rid of the old wiki guide. Andrew had announce the move many months ago and we should now be safe to remove the content.

Our journey is far from over. If you want to help out, please do!

  • We have bugs filed against the packaging guide and need help. Some are tagged as ‘bitesize‘ already.
  • Please also help translating the guide. Many teams have already put some work into this. You can help out by either translating or reviewing translated strings.

Keep up the good work everyone. This is great! :-)

Read more
jono

In every release cycle we have a number of events organized that brings our community together to create things, share ideas and knowledge, and more. I just wanted to share the latest raft of planned events:

  • Ubuntu App Development Sprint – 12th Dec – an online sprint where we will continue where we left off at UDS to discuss pieces we need to deliver as part of the Ubuntu App Developer platform.
  • Ubuntu App Developer Week – 20th – 25th Jan – a week of tutorials for getting started with the Ubuntu SDK. Perfect for developers new to the Ubuntu SDK!
  • Ubuntu Developer Week – 3rd – 7th March – a week of sessions designed for Ubuntu developers who want to fix bugs, deliver new packages, and other Operating System-level tasks.
  • Ubuntu Global Jam – 4th – 6th April – the primary event where our LoCo teams get together to collaborate, share ideas, and share knowledge. Be sure to organize an event near you!
  • Ubuntu Open Week – 21 – 25th April – a week of tutorials the week after a new release for new users how to get started.

If you are interesting in helping with these events, be sure to let me know in the comments!

Read more
bmichaelsen

Sometimes I wonder if the world’s so small,
Can we ever get away from the sprawl?

Sprawl II — Arcade Fire

So these days, most people prefer to use an IDE to navigate their source code. This has often been greeted with some defensive elitism of the “real programmers” kind since the early days of the open sourcing of StarOffice. One does not simply load a code base the size of LibreOffice in your wimpy IDE: while it is possible somehow in the end, its a lot more trouble than its worth to manually set up e.g. all the include path manually to get the fancy stuff like autocompletion. Add to that, that e.g. UNO headers are generated during the build and header were at distributed over multiple IDE unfriendly locations, with many headers even available as copies from multiple locations, before we fixed that.

All these things are fixed now. And while LibreOffice still is a huge beast with our new build system we can get a holistic view of what needs to get build where, how and when. This makes it easy, almost trivial to generate an IDE project file from the build system. And to prove this point, I did just that for the kdevelop IDE. This isnt limited in principle to this one IDE — in fact the kdevelop specific part of this is some 150 lines of Python. So no matter what IDE you use: Eclipse, Netbeans, Anjuta, Visual Studio, Code::Blocks or XCode — you should be able to adapt this. In fact, while writing this, I find there is already work going on for XCode. Feel invited to join the party and make LibreOffice trivially buildable in your favourite IDE!

So as announced to the developer list, this allows you to make navigating, editing, building, testing and running LibreOffice much easier, giving you features like:

  • autocompletion
  • building a module from the IDE
  • building all of LibreOffice from the IDE
  • nondebug and debug build configs for the above
  • starting LibreOffice from the IDE
  • running unitchecks, slowchecks and subsequentchecks from the IDE

Dont believe it? Here is a video featuring a stuttering german guy (me) on the audio track showing this:

If you want to show this around on social media, there is also a shorter version featuring the essentials (make sure to link to the HD versions).

A closing note: A long time, common IDEs embrace and extended into the buildsystems so once you used an IDE, you could only use this one IDE and no other. In retrospect, this is obviously doing it wrong. With the current approach, we can make LibreOffice easily buildable in any IDE on any platform. A very important fact for a product available on so many platforms.

addendum: As Karl Fogel wrote LibreOffice is now ridiculously easy to build. before we even had this, it just shows that one can always do better. ;)


Read more
David Planella

Ubuntu loves Evernote

We’ve been making good progress with Reminders, the Ubuntu app powered by Evernote. While our team of developers have been busy working on the UI, a set of other equally awesome individuals have been working in parallel to implement the backend pieces.

Today, I’m thrilled to announce that the Evernote Online Accounts provider is now available for Ubuntu as a preview. This plugin enables secure login to Evernote via OAuth, and handles the authentication process via the standard Ubuntu platform APIs, so that the Reminders app does not even have to care about the logic.

Big thanks to Alberto Mardegan and Chris Wayne for making this possible.

For developers only

At this point, the authentication plugin is provided for the purpose of developing the Reminders app only, and it will intentionally not work with regular Evernote accounts. Support for regular Evernote accounts will be enabled when the Reminders app reaches the stable release status.

The plugin talks to the Evernote sandbox service, so before using it you’ll need to create a developer account there first. Create a free Evernote developer account ›

Installing the Evernote account provider

As the required packages have not yet landed in the archive, we’ll need to install them from the core apps repository. You can open a terminal and run these commands to do the installation, either on the phone or on the desktop:

On the phone, before you can install a package you will need to switch to RW mode

sudo add-apt-repository ppa:ubuntu-touch-coreapps-drivers/daily
sudo apt-get update
sudo apt-get install account-plugin-evernote signon-plugin-oauth2

Logging into the Evernote sandbox

Evernote Account

The next step in using the plugin is to log into the Evernote sandbox. The Evernote login process, as for any other Ubuntu online account, takes place in the System Settings app. Once the plugin is installed, you’ll be able to add new Evernote accounts from the New Account screen. While the screenshots above show how to do it on the phone, this works equally well on the desktop.

Using the Evernote account provider

To enable Evernote account support in QML apps, you’ll only require an instance of the Ubuntu Online Accounts AccountServiceModel. You should check out the online API reference for more information, but in essence, an adapted version of the snippet from the documentation will do the trick:

Item {
    AccountServiceModel {
        id: accounts
        // Use the Evernote service
        service: "evernote"
    }
    ListView {
        model: accounts
        delegate: Rectangle {
            id: rect
            Text { text: rect.model.displayName }
            AccountService {
                id: accountService
                objectHandle: rect.model.accountServiceHandle
                // Print the access token on the console
                onAuthenticated: { console.log("Access token is " + reply.AccessToken) }
                onAuthenticationError: { console.log("Authentication failed, code " + error.code) }
            }
            MouseArea {
                anchors.fill: parent
                onClicked: accountService.authenticate()
            }
        }
    }
}

With this code, you’ll get your Evernote account listed in the UI. Clicking on it, and upon successful authentication you’ll obtain an Evernote authentication token, that can then be passed to the Evernote API to access the NoteStore and manage notes for the account associated to that token.

This is however the first step, as you’ll need a working backend to pass that token to and to talk to the Evernote API before you can manage any notes. Read on to learn more on this.

Setting up the Evernote API Taskforce

The next phase in the project is now to focus on the creation a QML plugin that will talk to the Evernote service. This is a key piece of the infrastructure that will enable performing the essential operations of fetching, modifying and updating notes while online.

The unstoppable Michael Zanetti has been helping us bootstrapping the process, and he’s already put together an Evernote API QML plugin that performs the basic communication with the Evernote servers.

Taking this work as a foundation, we want to extend the plugin to perform all necessary operations to cover the needs of the Reminders app. With this goal in mind, we’re putting together the Evernote API taskforce: a team of developers tightly focused in developing the Evernote API QML plugin and working very closely with the Reminders app developers to ensure backend and UI perfectly fit.

So if you’ve got Qt and C++ experience, this is a call for you: join the team of core developers who bring Evernote support to Ubuntu and millions of users!

If you’re interested in participating, let us know in the comments or or drop us an e-mail on the Core Apps mailing list.

Looking forward to welcoming new developers to the team, and stay tuned for more updates!

The post Ubuntu Reminders app gets Evernote authentication appeared first on David Planella.

Read more
bmichaelsen

He asked me if I’d seen a road with so much dust and sand.
And I said, “Listen, I’ve travelled every road in this here land!”
I’ve been everywhere, man.
I’ve been everywhere, man.

I’ve been Everywhere, Johnny Cash

So about a month ago I travelled in one week from Hamburg via Zürich and San Francisco to Oakland and then via San Francisco, Munich and Basel to Freiburg to attend the LibreOffice Hackfest Freiburg 2013 and back to Hamburg. The Freiburg Hackfest is the third and last Hackevent we had in Germany this year (after the Impress Sprint in Dresden and the Hackfest in Hamburg) nicely accompanying the international events like the LibreOffice conference in Milan and our usual presence at FOSDEM.

Bags packed to get back to Europe

I have to admit that I arrived at this event with some travel fatigue and some upcoming Ubuflu, so I was not too productive myself, but its good to see fixes like for example in the kde integration (Jan-Marek), in Calc (Eilidh), for enabling bitcoin donations (Florian), to mail merge (again Jan-Marek), to Math (Marcos), for the build system (Michael and David) happening (or at least be prepared at the event). A big “Thank You” to all the angels of the Chaos Computer Club Freiburg that organized the event — when I learned that I would need to travel to the US right before this, I had some doubts if it would result in “remote-organization-troubles” given this was a first time in Freiburg. This was completely unfounded, the support of our hosts was amazing and they seemed to have made a deal with Eris to take revenge for the original snub somewhere else on this weekend. ;)

So, given that I did not do much coding (just some preparation for the KDevelop integration for LibreOffice, more on that later), what can I offer you? Catcontent was not available (no cats at this Hackfest), so I give you the second best thing: the deputy chairman of the board of the Document Foundation patrolling the premises on a skateboard:

skateboard patrol

So, whats next? FOSDEM! We will of course be there again, and back-to-back with the event we will have a user experience Hackfest in Bruessels. So come and join us:


Read more
Michael Hall

Convergent File ManagerConvergence is going to be a major theme for Ubuntu 14.04, not just at the OS and Unity 8 levels, but also for the apps that run on it. The Core Apps, those apps that were developed by the community and included by default in the last release, are no exception to this. We want to make sure they all converge neatly and usefully on both a tablet and on the desktop. So once again we are asking for community design input, this time to take the existing application interfaces and extend them to new form factors.

How to submit your designs

We have detailed the kind of features we want to see for each of the Core Apps on a Convergence wiki page. If you have a convergence design idea you would like to submit, send it as a file attachment or link to it online in an email to design@canonical.com along with any additional notes, descriptions, or user stories.  The design team will be reviewing the submitted designs live on their bi-weekly Design Clinics (Dec 4th and Dec 18th) at 1400 UTC.  But before you submit your ideas, keep reading to see what they should include.

Extend what’s there

We don’t want to add too many features this cycle, there’s going to be enough work to do just building the convergence into the app.  Use the existing features and designs as your starting point, and re-imagine those same features and designs on a tablet or desktop.  Design new features or modify existing ones when it makes the experience better on a different form factor, but remember that we want the user to experience it as the same application across the board, so try and keep the differences to a minimum.

Form follows function

There’s more to a good design than just a good looking UI, especially when designing convergence.  Make sure that you take the user’s activity into account, plan out how they will access the different features of the app, make sure it’s both intuitive and simple.  The more detail you put into this the more likely you are to discover possible problems with your designs, or come up with better solutions that you had originally intended.

Think outside the screen

There is more to convergence that just a different screen size, and your designs should take that into consideration.  While it’s important to make good use of the added space in the UI, think about how the user is going to interact with it.  You hold a tablet differently than you do a phone, so make sure your designs work well there.

On the desktop you have even more to think about, when the user has a keyboard and mouse, but likely not a touch screen, you want to make sure the interface isn’t cumbersome.  Think about how scrolling will be different too, while it’s easy to swipe both vertically and horizontally on a phone or tablet, you usually only have a vertical scroll wheel on a desktop mouse.  But, you also have more precise control over a mouse pointer than you do with a finger-tip, so your interface should take advantage of that too.

Resources available to you

Now that you know what’s needed, here are some resources to help you.  Once again we have our community Balsamiq account available to anybody who wants to use it to create mockups (email me if you need an account).  I have created a new project for Core Apps Convergence that you can use to add your designs.  You can then submit links to your designs to the Design Team’s email above.  The Design Team has also provided a detailed Design Guide for Ubuntu SDK apps, including a section on Responsive Layouts that give some suggested patterns for different form factors.  You can also choose to use any tools you are comfortable with, as long as they Design Team and community developers can view it.

Read more
Timo Jyrinki

Background

I upgraded from Linux 3.8 to 3.11 among with newer Mesa, X.Org and Intel driver recently and I found a small workaround was needed because of upstream changes.

The upstream change was the Add "Automatic" mode for "Broadcast RGB" property, and defaulting to the Automatic. This is a sensible default, since many (most?) TVs default to the more limited 16-235, and continuing to default to Full from the driver side would mean wrong colors on the TV. I've set my screen to support the full 0-255 range available to not cut the amount of available shades of colors down.

Unfortunately it seems the Automatic setting does not work for my HDMI input, ie blacks become grey since the driver still outputs the more limited range. Maybe there could be something to improve on the driver side, but I'd guess it's more about my 2008 Sony TV actually having a mode that the standard suggests limited range for. I remember the TV did default to limited range, so maybe the EDID data from TV does not change when setting the RGB range to Full.

I hope the Automatic setting works to offer full range on newer screens and the modes they have, but that's probably up to the manufacturers and standards.

Below is an illustration of the correct setting on my Haswell CPU. When the Broadcast RGB is left to its default Automatic setting, the above image is displayed. When set to Full, the image below with deeper blacks is seen instead. I used manual settings on my camera so it's the same exposure.


Workaround

For me the workaround has evolved to the following so far. Create a /etc/X11/Xsession.d/95fullrgb file:
 
if [ "$(/usr/bin/xrandr -q --prop | grep 'Broadcast RGB: Full' | wc -l)" = "0" ] ; then
/usr/bin/xrandr --output HDMI3 --set "Broadcast RGB" "Full"
fi
And since I'm using lightdm, adding the following to /etc/lightdm/lightdm.conf means the flicker only happens once during bootup:

display-setup-script=/etc/X11/Xsession.d/95fullrgb

Important: when using the LightDM setting, enable executable bits (chmod +x) to /etc/X11/Xsession.d/95fullrgb for it to work. Obviously also check your output, for me it was HDMI3.

If there is no situation where it'd set back to "Limited 16:235" setting on its own, the display manager script should be enough and having it in /etc/X11/Xsession.d is redundant and slows login time down. I think for me it maybe went from 2 seconds to 3 seconds since executing xrandr query is not cheap.

Misc

Note that unrelated to Full range usage, the Limited range at the moment behaves incorrectly on Haswell until the patch in bug #71769 is accepted. That means, the blacks are grey in Limited mode even if the screen is also set to Limited.

I'd prefer there would be a kernel parameter for the Broadcast RGB setting, although my Haswell machine does boot so fast I don't get to see too many seconds of wrong colors...

Read more
pitti

Today’s autopilot release provides a new feature for test case writers. Unless the widget you want to test has a direct object name (GtkBuilder ID/Qt objectName), it is often not that easy to find a widget in a deeply nested hierarchy in autopilot vis.

With the new version, if you have some parent widget (like the containing dialog) w in your test, you can now call w.print_tree() to dump the paths and properties of that widget and all its children to stdout. That’s easy enough to grep, so provides a “poor man’s full tree search”. You can also specify a different output sink, like a file object or a file name: w.print_tree('/tmp/dump.txt').

This is a first step towards making it easier to find widgets and properties you are interested in. Arguably this is mostly just a crutch, but I found it to be rather effective. Before this feature I often wrote little snippets like in LP#1241312, now this becomes much easier. A better solution for this would certainly be a “full tree search” in vis itself, but that’s not that easy to implement. It is on the roadmap for this cycle, though.

I am also currently working on a real-time property change monitor for autopilot-gtk, which may also help in some cases. Unfortunately we cannot build such a thing for autopilot-qt, as due to the nature of Qt object properties, changes of them cannot be monitored.

Read more
Gavin Panella

Preparing for Python 3 in MAAS

Something we've done in MAAS — which is Python 2 only so far — is to put:

from __future__ import (
absolute_import,
print_function,
unicode_literals,
)

__metaclass__ = type

str = None

at the top of every source file. We knew that we would port MAAS to Python 3 at some point, and we hoped that doing this would help that effort. We'll find out if that's the case soon enough: one of our goals for this cycle is to port MAAS to Python 3.

The str = None line forces us to use the bytes synonym, and thus think more about what we're actually doing, but it doesn't save us from implicit conversions.

In places like data ingress and egress points we also assert unicode or byte strings, as appropriate, to try and catch ourselves slipping up. We also encode and decode at these points, with the goal of using only unicode strings internally for textual data.

We never coerce between unicode and byte strings either, because that involves implicit recoding; we always encode or decode explicitly.

In maas-test — which is a newer and smaller codebase than MAAS — we drop the str = None line, but use tox to test on both Python 2.7 and 3.3. Unfortunately we've recently had to use a Python-2-only dependency and have had to disable 3.3 tests until it's ported.

maas-test started the same as maas: a Python 2 codebase with the same prologue in every source file. It's anecdotal, but it turned out that few changes were needed to get it working with Python 3.3, and I think that's in part because of the hoops we forced ourselves to jump through. We used six to bridge some gaps (text_type in a few places, PY3 in setup.py too), but nothing invasive. My fingers are crossed that this experience is repeated with MAAS.

Read more
Daniel Holbach

Another UDS, a new world to discover

As part of the Ubuntu community, I’ve been part of many UDSes and a growing number of vUDSes and while it’d be easy to say “Another UDS, more new work items.” and be done with it, I’m very excited about this UDS.

In the last years I’ve mostly been involved with the Ubuntu Developer community, so the people who build Ubuntu itself, which is what other people install, deploy and build on. Last cycle I helped with managing the software store project, which got me involved in many discussions about apps on Ubuntu. This cycle I’m diving much deeper into the waters of Ubuntu App development and I’m looking forward to it.

Beautiful clocks

Beautiful clocks

My major task will be to improve the materials we have for app development and generally raise awareness of Ubuntu as a great app platform. For this I will obviously have to learn a bit more about app development, so expect me to ask lots of questions in the next weeks. :-)

If this sounds like something you’re interested in or would like to help out with, here’s what I have noted down on my schedule for UDS, which starts tomorrow, 19th Nov 2013 and goes until 21st Nov 2013:

Tuesday

Wednesday

Thursday

 

There will be a number of sessions, like the Community Council meeting, I’m going to attend as well, as I’ll be track lead for Community together with Jono.

Sign up for UDS, check out the complete schedule and find out how to participate.

Looking forward to seeing you there! :-)

Read more
David Planella

Ubuntu French LoCo Team

The challenge

With Ubuntu now running across all form factors and devices and entering the mobile space, a new era begins. While our values remain the same, we’ve now faced with a unique opportunity to drive adoption of our favourite Free Software OS to a user base that could potentially be one or two orders of magnitude bigger.

We’ve layed out the foundations of an innovative and scalable platform that provides a stunning experience for regular and power users, and that is a delight for developers to use. Years of experience, user testing and design on the desktop, pioneering work on the cloud and the app development story for the phone are some of the key aspects that have made it possible.

In this new era our community is more important than ever, with LoCo teams and the LoCo Council at the forefront. Ubuntu contributors, enthusiasts, evangelists, advocates… with your events, initiatives across the globe you are all making it happen.

With virtual UDS happening this week, we’d like to kick off a series of discussions to come up with a solid plan on how to re-energize and empower LoCo teams to scale up to these new challenges, and to involve them in the technologies and projects that are driving this new chapter in Ubuntu. The contribution of leaders in our LoCo community and the LoCo Council will be key to our success here.

The sessions

From the 19th to 21th of November, both the Community and the App Development tracks at UDS will be full with LoCo team sessions, and we’d like all advocates and everyone involved in Ubuntu local community teams to participate and contribute to our LoCo plans this cycle. Here are the sessions this week:

LoCo projects

An initiative to work with LoCos to provide projects and outcomes for those teams and individuals looking for ways of contributing to Ubuntu. We’d like to create “LoCo projects”, a pool of projects LoCo teams can participate in as a team.

LoCo Portal promotion

The LoCo Portal is the window to the vibrant activity of our Ubuntu teams, and we want to come up with a plan to promote it and use it to highlight the awesome work that’s going on in the LoCo world.

Join this session >

LoCo Leadership growth

New challenges require leadership, and we’d like to work with the LoCo Council to grow a team of leaders to drive the global LoCo community.

Join this session >

LoCo community involvement in App Development

App development is an exciting new area that is becoming key to the success of Ubuntu among mobile users. We’re at a point where the platform and infrastructure is ripe for LoCo teams to get involved and start spreading the word and running Ubuntu app development events.

Join this session >

Build materials for the App Dev Schools initiative

Growing the number of learning materials to write apps for Ubuntu will be a key focus for next cycle, and it offers a great opportunity to share knowledge and help others getting started creating content for the platform. Join us to discuss the plan to create a set of materials and presentations for the App Dev Schools.

Join this session >

Campaign to grow the number of tutorials videos

As an extension to the App Dev Schools initiative, we’d like to come up with a plan to publish a series of short, topic-based app development tutorial videos.

Join this session >

Looking forward to seeing you all at UDS this week!

Image ‘Photo de grouple’ by rocknpol under CC BY-NC-SA 2.0

The post Empowering LoCo teams at UDS appeared first on David Planella.

Read more