Creative Responses to Ubuntu Phone

Reporting in the responses to the Ubuntu Phone announcement on deviantArt from creative Ubuntu users.

deviantArt Blog Post

Everyone who’s commented has been very positive and excited. There is a palpable sense of energy from the users over there and I have seen quite a few artworks, designs and posts about it too.

Excitement project successful!

Developer Kits

With the new Ubuntu Phone on the horizon I though I might pen something about developer kits. I think we’ve come to the group-conclusion that development on Ubuntu sucks, and it sucks in a few ways I’m going to ramble on through:

Coherence

The idea of Quickly was to make a few opinionated decisions about how programs should be made. But it seemed to very quickly delve into the empire of choices on libraries, languages project management and deployment strategies. And that’s a reflection on how hard it is to please everyone in the open source universe.

If we want to have a good developer kit, we need to have strong, very strong opinionated decisions which nail all the technical functionality that will be required for all sorts of apps. For the Ubuntu phone, this looks like Qt and OpenGL. For the desktop it looks like C/Vala/python and Gtk.

What we don’t have is a good story for the project management and deployment. It looks like deployment is going to be patched up with automated package testing and an automated security system. I’m not sure about project management on the developer’s work station yet, it’s still very ad-hoc with too much of the best workflow in the minds of the developers and not in the tools being used.

Investment

The developer desktop, tools, apis and workflows require an enormous amount of investment. Look at how much money and time Google has spent just on Android developer tools.

It’s practically another Ubuntu sized project. While traditionally we’ve had very little investment and have used whatever tools people have cobbled together as they went along with their own developer needs. It’s produced a very disjointed experience for new developers, where so much needed to be known in order to be a good developer.

That’s turning round with the new developer site and api documentation. but I’m not sure the size of investment is the right sort of scale for where we want to go with app development. Bringing together all the API documentation from our various libraries would go a long way towards centralising and authenticating the previous opinionated decisions.

The Klein Toolbox

It’s hard to know where a toolbox starts for app developers and ends for desktop/core developers. If you think about tools like bzr and Make; these tools are designed for core developers and not really intended for app developers. They require the developer to understand where to get the best workflows and be pre-trained. And this really means that as soon as a developer is capable of using these tools, they’re no longer capable of making good developer tools for app developers… how can someone be sympathetic to the needs of more casual developers when they were required to learn so very much?

I’ve never liked Makefiles, I don’t think they’re good enough and I’m damn petty about all the tools that generate makefiles too. I don’t see good design in that space and I know paultag disagrees with me quite strongly about how unawesome makefiles are.

Conclusion

We have a lot of work to do.

What do you conclude?

Understanding FOSS pt-br

Quick update. I have a download available for the guide to Understanding Free and Open Source for all Brazilian Portuguese readers. This is the first language to translate the majority of strings (96%). If you would like to help translating this guide into your local language; then please jump right in at the launchpad page

understanding-foss.pt_BR.pdf English and other downloads

Netflix on Ubuntu: Try this PPA

Netflix had been a bugbear of Ubuntu in the USA for a while now. I’ve long suspected a conspiracy was at work in Netflix to stop Ubuntu and other Free Desktops having access to their watch instantly service. Since ya know, they seem to have no problems with ChromeOS, Roku, Android or a bazillion other Linux distributions that don’t sun silverlight.

Only Saturday I was installing Ubuntu for someone and the one question that added doubt to their experience was Netflix watch instantly support.

So onto the good news. Over at iHeartUbuntu they’ve packaged up their wine implementation of Netflix running through Firefox. Really it doesn’t matter what wrapper or other crap is used for this, having support that is easy enough to install and quick enough to execute is the main point.

This package sorts everything out and puts an icon in the right place. That’s exactly what we needed. The performance on my machine is 80% of what it needs to be, but I’m confident that with a little more work it can be improved into something that really helps Ubuntu adoption and get over that chasm.

Have you tried it?

Being a part of the digital Aristotle

Digital Aristotle: Thoughts on the Future of Education!

CGP Grey has a video linked above that you should go watch. It explains the future of education and the direction that it’s already moving.

What I’m interested in is how Free Software and especially Ubuntu can be a part of that educational story. Currently the Ubuntu desktop is targeted towards desktop use, office productivity and social networking. While it’s true Edubuntu takes care of much of the thin client school deployment strategy; that’s not what the above video is pointing to.

Is being a college student or adult learner better on Ubuntu? The wikipedia lens would seem to suggest that we do have better integration at least of online services. But do we have better software? There’s nothing smart, yet, about the desktop that allows it to focus educational material or read-more type links towards individuals. We even struggle delivering help and guidance about the software itself directly to users, instead requiring a web browser to do these things.

But perhaps I’m getting way ahead of myself. Ubuntu could just be a simple job of delivering a web browser, with smarter and smarter servers. But somehow, a lot of this software is going to have to be on the desktop. And at this point we get to decide if that means turning the browser into a desktop and depreciating all our existing desktop APIs or building enough web enabled desktop extensions to our APIs. I just don’t know.

For now, I’m going to consider if any of the projects I’m involved with will play a part in this grander human project and how best the designs can align with that great story.

What are your thoughts?

UDS Report: Day 2

Not much to report that won’t be in other reports today. Community round Table, LEGO presentation are ommited.

Connectivity Checking [pad]

We want to be able to report to applications the status of any network connection. Specifically if you are online, behind a connective portal or just connected to a local area network. The discussion centered around these issues:

  • Privacy – Making sure that ip-addresses aren’t stored or catalogued
  • Scaling- Can Canonical servers cope with millions of connections
  • Sharing – Can we share connection checking servers with other distros, is there an RFC
  • Resistance – Making sure that applications don’t stop working when they get an offline status. But use it instead to let users over-ride in case ubuntu.com and backups are down

My jobs are to ask the design team if there is any design work to do to integrate the information. And to provide the developer documentation with the best practices when using network manager online checking.

The future for this kind of functionality looks towards added programs which can assist connectivity through captive portals, as well as security profiles for limiting service expression on certain networks.

Online API documentation website [pad]

This is a new website for API documentation which is documented on the wiki. It’s a django based website which will be constructed in a generic fashion so any project should be able to set up their own api documentation.

As the wiki explains, the website will deal with api differences between versions of ubuntu and not the differences between versions of specific libraries. So for instance the api for Gtk in 12.04 will be set at whatever the released version was and will be categorised as the “12.04” version.

There is also an idea of including ask ubuntu questions and many other resources from different places. Code snippets, screenshots and commentary are all interesting additions to bare bone api documentation.

UDS Report: Day 1

Integrating Ubuntu Online Accounts [pad]

This discussion was mostly about feedback from app developers about how to use the new api and what requirements different apps have. There is new documentation being developed which will help developers get integrated and make use of people’s online accounts without having to write their own authorisation management code.

Concerns with the API were as follows:

  • Being able to support both Gnome and Ubuntu Online Accounts; would require a wrapper to negotiate between them.
  • Support for permissions/capabilities of each account can provide each app with only the permissions it needs.
  • Allow app keys to be used so targeting a permission or token to a specific app and not just the desktop as a whole.
  • How does this relate to the Freedesktop secrets API ? GnomeKeyring etc.
  • There was a need for more plugin documentation to help developers get to grips with it all.

Ubuntu Development Videos [pad]

This session was very frenetic with many people interested in making scripts and performances to update the developer video guides.

My job this cycle will be to put together some basic media and branding for use in developer videos as well as performing in one video when the scripts are written. Tasks have been divided into the steps: 1) script, 2) performance, 3) editing, 4) publishing. There is a task which will hopefully provide the documentation on how to do each part for everyone who hasn’t done these videos before.

Others not involved in the session will be needed, we need as many different people as possible to complete the documentation refresh.

Integrate a Paper Cuts toolbelt

This session fell into a hole, no one turned up and the room didn’t do anything.

Monday Plenaries

Today we heard about design community, valve’s commitment to Ubuntu (read more on OMG) and the importance of app developers and how we’re giving them a good time.

Error handling design guidelines [pad]

We were given a presentation about some of the problems that we have on the desktop presenting information when things go wrong. [link]

When cryptic errors occur, users are left baffled, powerless and sometimes even insulted. The guidelines are there to show developers how best to communicate to users and guide users out of any problems through suggestion and allowing recovery where possible.

Tone plays an important part of a message’s ability to convay useful information. An error should be both clean enough for the user and contain enough identifiable information for any tech support. this is a serious conflict and is the reason error messages need a lot of thought and attention. Nobody expects their app to have errors, but when they happen we want users to be congenial if not happy.

Ubuntu SDK Assessment Criteria [pad]

This session was filled with caution and the consensus was generally that because we don’t control the Ubuntu stack, we can not make guarantees about the APIs that might be involved in nailing down an SDK.

Thus we want to create an Ubuntu Kit for Software Development which does not commit Ubuntu to supporting applications developed using it beyond the version it was developed on.

There are lots of parts to development which should be documentation and in cases codified i.e. made into automated tools and scripts to reduce workload. No decisions on an SDK have been made and this session is mostly about investigations into making that decision.

Tme for UDS

I’ve used the weekend to turn my time-table around for UDS. Going to bed at 6pm and up at 2am to attend sessions over in CET. I’m planning on pots and pots of tea and maybe I’ll buy in lots of finger foods to emulate that break time feeling you always get at UDS. 😉

I’m going to be focusing on developer environments for Ubuntu because while we have a super buetiful desktop, we have a super unsophisticated developer environment which is crying out for design. And my attention will be on the design community where it comes up for discussion. How people can get involved and how we can all get along.

See you there in the IRC channels, and don’t forget attendees to involve everyone who is remote!

What are you looking forward to attending? Comment below.