Canonical Voices

Posts tagged with 'development'

David

Ubuntu App Developer Week – Day 1 Summary

The first day of Ubuntu App Developer Week is over and we’re ramping up to day 2! A great start and lots of interest in the audience. Here is a small summary from yesterday’s schedule.

Making Ubuntu a Target for App Developers

By Jonathan Lange

Jono, who has recently started working on the Ubuntu developer programme after having been developing and defining the strategy on Launchpad for the last 5 years, started off explaining that to cross the chasm and to get our OS from 20 million to 200 million users, we need more and better apps on Ubuntu. There are some key aspects to this goal, coinciding with areas of ongoing work:

  • A place – making some place that app developers can go to in order to learn how to develop for Ubuntu (developer.ubuntu.com)
  • A definition – defining a platform for developers to target
  • A channel – a smooth, short, safe path from developers to their users and back again (the Ubuntu Software Centre and MyApps)

After expanding on the subjects of automatic packaging and security, the conclusion is that with all of these pieces in place -Software Centre, developer portal, a defined platform, automagic packaging, safe mechanisms for distributing new apps & paying developers- then Ubuntu becomes something that developers can seriously start to target

Check out the session log here.

Introducing Bazaar Explorer: Version Control for your Apps

By Jonathan Riddell

“Bazaar is the world’s finest revision control system” – an awesome quote to start an equally awesome session. With this, and with the idea that Bazaar needs to be available to anyone, not only to those already comfortable with the command line, Jonathan Riddell provided a tour of the most feature-rich GUI for Bazaar. Illustrating the most common commands for everyday use and with plenty of pictures, he provided an excellent overview of how this powerful, cross-platform, graphical interface for bzr can make life much easier to app developers.

Check out the session log here.

Your App & Launchpad best practices

By Jason DeRose

Jason’s session on how to make the best use of Launchpad, the online collaboration and hosting suite for your projects, was structured around 3 central points: 1. Why should you host your project in Launchpad? To which his answer was: because PPAs, daily builds and lots of users; 2. How to set up your app to use Launchpad, where he guided participants through the process of creating a Launchpad project and offering some insights on best practices. Finally, on 3. Using Launchpad to engage developers he wrapped up with a series of recommendations and tips to ease and foster contributions to your project. More on the session log :)

Check out the session log here.

Getting Started With Python: a Hello World App

By Alan Bell

As a grand finale to the day, Alan delivered a beginner-friendly session on the basics of the Python programming language. Assuming no prior knowledge, he walked participants through the classical “Hello world” example in Python, which universally greets programming novices on the terminal with a friendly welcome message. Along the way, he explained in detail all the extra bits to make this simple application run and be useful as a kickstart to becoming a full-blown Python programmer.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 2

More app development goodness for fun and profit: here’s today’s schedule.

16.00 UTCMaking Your App Speak Languages with Launchpad Translations

Did you know that along with code hosting, release management, bug tracking and support, you can also use Launchpad to get your app translated?. David Planella will explain you how to set up your app in Launchpad for translations and give you some advice on building a translator community around it.

17:00 UTCThe Making of Unity 2D

Unity needs to run on every type of desktop, from those with powerful 3D graphics processors to those only able to run in 2D. Unity 2D was born out of the need to provide a near identical experience as its 3D counterpart on systems which cannot rely on 3D graphical processing, such as ARM computers. Florian Boucault will talk about what Unity 2D is, how it was designed, and the technologies used to implement it.

18:00 UTCMaking App Development Easy: Gedit Developer Plugins

Gedit is Ubuntu’s lightweight yet powerful default text editor. Its flexible plugin architecture means that it can easily be extended to meet any need. Curtis Hovey will guide you through his Gedit Developer Plugins to help you convert a general-purpose editor into the perfect programming editor.

19:00 UTCPublishing Your Apps in the Software Center: the MyApps Portal

Canonical is taking app developers very seriously,and one of the important aspects of ensuring a smooth workflow for submitting and publishing applications into the Ubuntu Software Centre is providing the right set of tools. Anthony Lenton will tell you the story behind the MyApps tool and how app authors can use it to submit their apps.

20:00 UTC – Publishing Your Apps in the Software Center: The App Review Board

If you are an open source developer and want to publish your libre + gratis app into the Ubuntu Software Centre, the App Review Board (ARB) will take care of reviewing it, ensuring it is up to the Ubuntu standards and help you publishing it for all users to install. Stéphane Graber is a member of the ARB and will explain how the Board works and the steps to successfully submit an app for review.

Looking forward to seeing you all there in a few hours!


Read more
David

Ubuntu App Developer Week

I’m thrilled to announce the next edition of Ubuntu AppDeveloperWeek, from the 5th to 9th September 2011 at #ubuntu-classroom on IRC.

Ubuntu App Developer Week is a week of sessions aimed at enabling and inspiring developers to write applications that scratch their itches. Our goal is to give all attendees a taste of the wide variety of tools on the Ubuntu platform that can be used to create awesome applications, and to showcase some applications that have been created and explain how they were put together.

The Sessions

The whole week is packed with interesting subjects, aimed both at new and experienced developers. During the sessions you’ll get a solid overview on a broad range of the Free Software technologies that will enable you to create your applications in Ubuntu. At the same time, you’ll be able to chat and ask your questions directly to the true rockstars on those subjects.

Here are some of the highlights:

  • The Ubuntu App Developer strategy
  • Integrating applications with Ubuntu tech: Unity, AppIndicators, Ubuntu One
  • Enabling multitouch support in GTK applications
  • Publishing your apps in the Ubuntu Software Center
  • Getting started writing your first app with Python
  • Rapid Application Development with Quickly
  • Using the Bazaar revision control to track source code history
  • Using Launchpad integration features to develop applications
  • Bazaar Explorer, Universal GRUB Recovery, Unity Lenses, Unity 2D, Gedit Developer Plugins, the App Review Board, developer.ubuntu.com, Unity Mail, Launchpad Daily Builds, Vala, GooCanvas and PyGame, Python Libraries for Desktop Integration, Internationalization… you name it. Learn more about the hottest topics and how to use the coolest technologies to write your applications, straight from the best experts in the Free Software world.
  • Check out the complete schedule.

Joining The Week

Getting involved is simple. You can connect using any IRC client or your browser. Simply go to:

Looking forward to seeing you all at App Developer Week!


Read more
David

App Developer Week

What an awesome week for application developers. Ubuntu App Developer Week was a week of great speakers, great sessions, great participation, Multitouch, Unity, GObject, Introspection, PyGI, Qt, Qt Quick, QML, Internationalization, KDE, Phonon, Multimedia, Touchegg, Plasma Widgets, Python, Testing, Rapid Prototyping, Thunderbird, GStreamer, Zeitgeist, D-Bus, Ubuntu One, Bazaar, Lenses, Launcher API, Indicators, Launchpad, Translations, Application Review Process, Packaging, pkgme, the Sound Menu, and much much more.

Here’s a recap of the whole week:

If you happened to miss any of the sessions, simply head to the Ubuntu App Developer Week page where you’ll find the logs for all of them.

Ubuntu App Developer Week – Day 5 Summary

Here comes the last of the summaries for your reading pleasure. Enjoy!

Qt Quick: Extend with C++

By Jürgen Bocklage-Ryannel

In this session Jürgen did another brief intro to Qt Quick: a declarative language to creat user interfaces on top of Qt C++. The subject was to extend it using the C++ language, and for this he introduced QtDeclarative, a UI runtime provided in a Qt module Qt Quick is based on. After this, he walked us through code examples: the first step – include QtDeclarative in the project in order to be able to use it in a C++ main.cpp file. Starting with basic tasks such as changing properties such as the colour of a rectangle from the C++ side, he went into more advanced ones, such as create a new qm element. Even more advanced tasks, such ad creating own elements, were left as a reading exercise with a pointer to the exhaustive Qt Quick documentation and tutorials.

Check out the session log here.

Phonon: Multimedia in Qt

By Harald Sitter

For the third time this week, Harald rocked the house with an entertaining and enlightening session: Phonon, a multimedia abstraction library. First, he showed how to get the environment set up and tools installed; next: an intro to Phonon – an abstraction layer between multimedia apps and a multimedia library backend in the form of a plugin. And next up some coding: the famous 3-line example to create a Phonon-based video player with C++. He showed us how to write a simple audio player, to which then video was progressively added. As a finale he pointed to a way to create a video player with no code at all!

Check out the session log here.

Integrating music applications with the Sound Menu

By Conor Curran

Conor started off explaining that sound menu integration in the next cycle will be made much easier through libunity, and talked a bit about the sound menu spec and the resources for contributors. He then explained that this cycle he concentrated on settling the architecture, making it easier for clients to provide integration. The only thing for a client to care about is to raise an MPRIS interface with a desktop entry, which will then allow it to be shown in the sound menu, and if available, any D-Bus menu items with it. He wrapped up with a description of some of the new features this cycle and an outlook on the next.

Check out the session log here.

pkgme: Automating The Packaging Of Your Project

By James Westby

On to packaging: James introduced pkgme, an almost magic tool to package your application to be distributed to users. Assuming your project uses a standard layout and pkgme has heard of it, it will use one of its backend to create the packaging structure tailored to your layout and toolset. New backends can be created upon request. As the finale, a recursive example: he showed us how to use pkgme to package pkgme itself!

Check out the session log here.

Unity Technical Q&A

By Jason Smith and Jorge Castro

Jason and Jorge started off this exciting session with an introduction to the cool things you can do in Unity: Lenses – bits of pluggable UI to mash up websites and applications in the dash, the Launcher API. After that questions started to kick in: What’s dee? Can you add multiple progress bars to the launcher? What’s the status of progress bars, badges and counters in the launcher? What search backend does the dash use? … if want to know the answer to these and more questions check out the session log :)

Check out the session log here.

Lightning Talks

By Stefano Palazzo, David Callé, Dustin Kirkland, MeanEye, Christian Muehlhaeuser, Nathan Handler

As the grand finale for a week packed with great sessions, even more concentraded content on a set of lightning talks to showcase cool projects created using the technologies available in Ubuntu: StackExchange App – a Unity Lens designed to work with Ask Ubuntu; Unity Book Lens – a Unity Lens to search through free online libraries; Bikeshed – a breeding ground for new/interesting/even-trivial-but-helpful scripts and programs; Sunflower FM – a twin-panel file GTK+ manager; Tomahawk – a social music player written in C++ and Qt; ClassBot – an IRC bot to help with running classroom sessions in #ubuntu-classroom

Check out the session log here.

Thanks!

I’d like to thank all session leaders for taking the time to prepare awesome content and deliver the sessions, and all participants for their attention and their interesting questions. You all made Ubuntu App Developer Week possible, and a success!

We’ll be back in 6 months time with a newer and cooler App Developer Week edition for you. See you then!




Read more
David

Ubuntu App Developer Week – Day 4 Summary

Ramping up to the end of the week we had another full app development goodness day, and one where the session topics fitted together in a nice workflow as well: creating bling, creating apps with Rapid Prototyping, getting them into Ubuntu, adding indicator support and translating them. Here’s the report of yesterday’s app development journey:

Qt Quick: Elements/Animations/States

By Jürgen Bocklage-Ryannel

The next Qt Quick session was all about creating attractive and usable user interfaces. Jürgen went through the QML tutorial documentation and code examples, showing us how to position elements with anchors, columns, rows and grids. Then onto states and transitions: describing the changes in an element’s properties and how to switch between them. To finalize, the most impressive stuff: QML animations, in which he teached us the different types of animations and how to use them.

Check out the session log here.

Qt Quick: Rapid Prototyping

By Jürgen Bocklage-Ryannel

In Jürgen’s words, Qt Quick was designed to bridge the gap between designers and developers, letting both groups to work with the same technologies and code base. He explained how Qt Creator provides a design mode which allows easy dragging and dropping of UI elements, and separation between code and interface. All through a natural and agile prototyping workflow.

Check out the session log here.

Rapid App Development with Quickly

By Michael Terry

Michael started introducing what Quickly at the heart is: a robust yet simple system of templates with boilerplate code and commands. The available templates are ubuntu-application, ubuntu-cli, ubuntu-pygame and ubuntu-flash-game, and on the Natty version, Quickly will feature the ‘submitubuntu’ command to help getting applications into the Software Center. All that being set straight, he then showed how to use Quickly and what it can do: from creating the first example application, to modifying the UI with ‘quickly design’ and Glade, into debugging and finally packaging.

Check out the session log here.

Getting Your App in the Distro: the Application Review Process

By Allison Randal

Linking from the previous session on how to create an app, Allison explained in a very clear way how to get your applications into Ubuntu, so that they make their way into the OS in a matter of weeks instead of having to wait until the next release. The first step is to submit a ticket to the App Review Board, giving them the essential details for the proposal. They’ll then do the initial review, in which one of the reviewers will volunteer to walk you through the process and help you with suggestions or improvements, to bring the app to a state ready for the final review. There the board will vote in a meeting for the inclusion of the application. After the process description she answered the questions from the audience and wrapped up with some useful tips to application submitters.

Check out the session log here.

Adding Indicator Support to your Apps

By Ted Gould

Ted kicked off with an explanation of what indicators are and their intended use: they should not be used just because they are available – rather as a feature for long running applications, those that are more services to users, to expose that functionality. The next step was to describe how to create indicators through libappindicator, with any language supported by GObject Introspection, such as Python or Javascript, and how to add more features to a basic indicator: accessible labels and attention state. After that he described fallbacks, and how platforms not using Unity can nevertheless use indicators. The final minutes were dedicated to the future of indicators, that for now will focus on API cleanup and stabilization, and introspection improvements.

Check out the session log here.

Using Launchpad to get your application translated -

By Henning Eggers

As a follow up to the talk on how to add native language support to your applications on Monday, Henning described the next step: how to make them translatable in Launchpad and grow a translation community around them. In the first part he showed how to set up a demo project using Launchpad’s staging server, and shared some recommendations on how to make sure the application is correctly set up for translations, followed by an overview on some Gettext concepts Launchpad relies upon. From there, it was straight into business: setting up a translatable project in Launchpad, getting translatable templates imported and exposed to translators, creating a translation community for your project and the workflow for translation. A very detailed overview to get your application to talk any language.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 5

The last day and the quality and variety of the sessions is still going strong. Check out the great content we’ve prepared for you today:

16:00 UTC
Qt Quick: Extend with C++ – Jürgen Bocklage-Ryannel
Sometimes you would like to extend Qt Quick with your own native extension. Jürgen will show you some ways how to do it.

17:00 UTC
Phonon: Multimedia in Qt - Harald Sitter
Harald, as the lead developer of the Qt/KDE multimedia library Phoon will tell you about the awesomeness that Phonon provides and how it achieves ultimate portability, so that it can even run on vending machines. He’ll also tell you hos to create a video player with 3 lines of code (or in 30 seconds without any code) and much more.

18:00 UTC
Integrating music applications with the Sound Menu - Conor Curran
So you’ve seen the slick sound menu in Ubuntu, and you’re developing a multimedia application, right? You’re then wondering how to seamlessly integrate it into Ubuntu and use all the nice features from the menu as well? Wonder no more, for Conor is the man behind the sound menu and he’ll be delighted to teach you how.

19:00 UTC
pkgme: Automating The Packaging Of Your Project - James Westby
Once you’ve developed a cool application you’ll want to package it and distribute it to users so that they can easily install it in their favourite platform. James will show you how this can be both easy and fun letting pkgme do all the work for you.

20:00 UTC
Unity Technical Q&A - Jason Smith and Jorge Castro
You’ve heard about Unity, the new UI concept which is going to improve several orders of magnitude how you interact with your computer in Ubuntu. You are probably using it already, and you’ll surely have questions and will want to learn more about the coolness it brings. Jason Smith, from the Unity development team, and Jorge Castro, from the Community team know all about Unity and they’ll be here to chat with you.

21:00 UTC
Lightning Talks - Nigel Babu
As the final treat to close the week, Nigel has organized a series of lightning talks to showcase a medley of cool applications: CLI Companion, Unity Book Lens, Bikeshed, circleoffriends, Algorithm School, Sunflower FM, Tomahawk Player, Classbot – your app could be in this list next time, do check them out!

Looking forward to seeing you all there!


Read more
David

Ubuntu App Developer Week – Day 3 Summary

Right into the middle of the week and still delivering the most diverse set of sessions from the most interesting technologies. QML, Cloud, D-Bus, Multitouch, Unity, Bazaar… Wednesday had a bit of everything. Most importantly, this sessions are for you all, so I was really glad to hear feedback on how people liked the content of App Developer Week! So here’s a new summary for all of those who couldn’t attend.

Qt Quick: QML the Language

By Jürgen Bocklage-Ryannel

In his first session, Jürgen gave a short intro to Qt Quick’s QML language and how to use it. The first steps were to install Qt and Qt Creator, followed by a description of what Qt Quick is and how developers came up with a declarative way, similar to CSS or JSON to write in the language. All that clear, he then started with the Qt Quick tutorial and code examples that could be run with qmlviewer, the qml interpreter. Onto the second part, he focused on the QML languate, and going into the detail on how to create custom QML components. There were also lots of pointers to the excellent Qt documentation.

Check out the session log here.

Make your applications work in the cloud with Ubuntu One

By Stuart Langridge

Stuart gave a great overview on how to add the cloud to existing apps and how to make new apps for the cloud, letting Ubuntu One do all the hard work for you: from managing identities, password renewal to sharing data between applications. And all that on the web, the desktop, mobile… all your stuff everywhere! He then showed us some simple code to sync playlists on the cloud, ready for streaming. File sync is also an important Ubuntu One feature apps can make use of for sharing, and he also went through a couple of the many cool ways you can use it. The last mention was on API documentation, something Stuart is working on in this cycle.

Check out the session log here.

Take control of your desktop easily with DBus

By Alejandro J. Cura

In this session Alejandro showed us in a hands-on and easy to follow way different bits and pieces of D-Bus, and how applications in the desktop can communicate through it. He went through real life examples to show how to do simple tasks and explained how they can be achieved with D-Bus.

Check out the session log here.

Touchégg: Bringing Multitouch Gestures to your Desktop

In the second multitouch session of the week, app developer José Expósito started showcasing Touchégg, how it works and its features: recognizing multitouch gestures and getting the most of multitouch devices. He then went on describing which gestures it supports, such as tap, drag, pinch or tap & hold, and the different actions that can be associated to gestures, showing us a really cool video of Touchégg in action. The second part of the talk focused on describing the technologies used to develop Touchégg: uTouch-GEIS, through its simplified interface, and Qt.

By José Expósito

Check out the session log here.

Unity: Integrating with Launcher and Places

By Mikkel Kamstrup Erlandsen

Mikkel used the intro of the talk to set a couple of things straight: “Places” are going to be called “Lenses” in the next cycle, and libunity does not yet guarantee API or ABI stability. He then followed with the Unity Launcher integration, and how applications can use static quicklists, and more advanced features such as count, progress bar, window flashing and dynamic quicklists. The second part were Places: remote databases that provide data for Unity to render. Through a Python code example he showed us in detail all the aspects of creating a Unity Place.

Check out the session log here.

Tracking Source Code History with Bazaar

By Jelmer Vernooij

Jelmer, in his experience of seasoned Bazaar hacker started off introducing what bzr is: a modern distributed version control system. He then went on with the basics with a hands-on example, going through the creation of a branch, the first commit, and describing several of the most handy bzr commands. As a wrap-up, he showcased more advanced features such as source recipes: scripts that combine branches and build daily Debian packages from them.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 4

We’re featuring a Qt Quick Marathon today: 2 sessions in a row. Following that, how to do RAD with yet another framework: Quickly, how to get your applications in Ubuntu, and how to get them translated in Launchpad. Enjoy!

16:00 UTC
Qt Quick: Elements/Animations/States – Jürgen Bocklage-Ryannel
Another day and more featured Qt content: this time Jürgen will take us through different elements/animations and states Qt Quick provides, and will show us through examples how to make use of them.

17:00 UTC
Qt Quick: Rapid Prototyping – Jürgen Bocklage-Ryannel
If one session weren’t enough, here’s the continuation: more Qt goodness, this time a hands-on session to develop a small application from start to finish and experience the whole process from the front row.

18:00 UTC
Rapid App Development with QuicklyMichael Terry
Mike will show you how to write applications in no time with the power of Python and Quickly: bringing back the fun in programming.

19:00 UTC
Getting Your App in the Distro: the Application Review ProcessAllison Randal
A while back we created an easy process defining how to get applications into Ubuntu, so in order to be able to add them in a matter of weeks, rather than waiting for the next release. Allison, in her Ubuntu Technical Architect and Application Review Board member hat, will walk you through the Application Review Process

20:00 UTC
Adding Indicator Support to your AppsTed Gould
Join the man who knows most about indicators in a session that will teach you how to integrate your application even more into Ubuntu. They’re slick, robust and consistent: bringing indicator support to your apps.

21:00 UTC
Using Launchpad to get your application translatedHenning Eggers
One of the coolest features of Launchpad is that it helps growing a translation community around your project. You can make your application translatable in Launchpad and be able to deliver it into almost any language. Henning will teach you how to do this, picking up where the previous session on translations left.

Looking forward to seeing you all there!


Read more
David

Ubuntu App Developer Week – Day 2 Summary

Wow, what a great follow-up to the first day! The second Ubuntu App Developer Week brought lots of awesome: great speakers and sessions, great participation, improvisation, Python, GTK, KDE, Qt, PyGI, Zeitgeist, Gstreamer, Introspection, Thunderbird, Unity, API Integration, hacking, fun… all the buzzwords you can associate when developing in your favourite Free Software Platform.

PyGTK is dead, long live PyGI! Using gobject-introspection in Python

By Martin Pitt

Martin’s complementary session to the GObject Introspection (GI) one on Monday was very popular. He started off with a recap of what GI is and the importance of the availability of several programming language bindings in any modern development platform. He provided an overview on how GI works in practice, and then delved into how it actually works in Python through the use of Pygobject and the gi.repository module, with lots of coding examples and comparison with traditiona GTK+ C code. After that he described other API differences, in particular the caveats with contructoirs, passing arrays, output arguments, GDestroyNotify and what to do with non-introspectable functions or methods. The next topic where overrides: how to provide custom code to override the introspected library’s objects. The second part of the session focused on explaining in detail how to migrate old PyGtk code to GTK3 and PyGI, in a series of easy guidelines: renaming, checking and repeating, and packaging changes. He wrapped up with a series of pointers on how to learn more and a Q+A session with lots of interesting questions from the audience.

Check out the session log here.

Zeitgeist API & Zeitgeist Application Integration

By Manish Sinha (???? ??????) and Seif Lotfy

For this session we had the luxury of having two key members of the Zeitgeist project to explain us all the details on how to integrate it to your own projects.  Manish, one of the Zeitgest developers, kicked off with an introduction on what Zeitgeist is: an automatic event logger which logs the events that happen on your computer. He then went on through the details of the Zeitgest terminology (events, manifestations, actors, timestamps…), architecture, and its interaction with D-Bus, with an overview of the API interface and the existing bindings: Python, C/Vala and C#. The session went on with examples of how real world applications and data providers use Zeitgeist, such as EOG plugins or Tomboy. Seif then chipped in with an example of  how Zeitgeist support was integrated into a GEdit plugin. Throughout the session lots of interesting questions were raised by the audience.

Check out the session log here.

GStreamer+Python: Multimedia Swiss Army Machete

By Jason DeRose

A very intersesting session indeed. In it, Jason explained all the points why GStreamer is the multimedia framework due to its economy of scale and why Python is the perfect complement with its simplicity and language clarity. According to him, together they provide the ultimative multimedia development tool, and this was why he chose to use them in hos own project: Novacut, the distributed video editor. From this point on, it was “Learning by doing”, and he then walked thorugh the code examples he’d set up for the session, showcasing how simple it is to work with multimedia streams with his swiss army machete :)

Check out the session log here.

KDE Development Intro: Q+A

By Harald Sitter and Jonathan Riddell

I’d especially like to mention this session due to a change of schedule. The original speaker, KDE/Kubuntu ninja Joathan Thomas could not make if due to last-minute commitments. But no worries, KDE/Kubuntu friends are always there to lend a hand, and in no time Harald and Jonathan stepped up to fill the gap and do an impromptu KDE Development Intro and Q+A session. In there they gave an overview on the essentials every prospective KDE developer should know and answered in detail the questions in the audience. All in all a great insight on how to get started developing KDE apps.

Check out the session log here.

Thunderbird + Unity = Awesome, and how JSCtypes lets you get to the candy

By Mike Conley

Mike has been working over the last 3 months at Mozilla on ways in which Thunderbird can integrate nicely into Ubuntu, in particular with Unity. He started explaining the main points he’s been focusing on: the messaging menu, the Unity launcher adn Ubuntu One, and for the rest of the session he covered the first two. Going straight to the subject, the next topic was to explain what a Thunderbird extension is, and how they are written using a mixture of Javascript, the XUL mark-up language and CSS, all executed by the Gecko engine. He then introduced JS-CTypes, which allow developers to access C libraries directly from Chrome-level Javascript code. and how he used them to write a Unity launcher add-on. the resto of the session focused on this subject, with plenty of code examples.

Check out the session log here.

STORY: Unity, hacking on a real-world app

By Marco Trevisan

The last session of the day was one of my favourite ones: an inspiring personal story. Marco is a community contributor to Unity who told us about his journey since he found an application itch to scratch and until his own feature was landed. He started with a very easy to understand overview of the Unity architecture and how all the pieces fit together, following with the story on how he found something that needed improvement and how he went about fixing it: indicator-sound not being precise when setting the volume with the mouse wheel. Do read it, as it is going to be a great help to all of you who are looking on how to get started contributing to Ubuntu development.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 3

A quick look at today’s session lineup for your development pleasure:

16:00 UTC
Qt Quick: QML the Language – Jürgen Bocklage-Ryannel
Here’s a special treat for anyone interested in Qt development: Jürgen Bocklage-Ryannel, from Nokia, the maker of Qt, will be introducing Qt Quick and QML as the language used in Qt Quick. He’ll be showing some elements of the UI and the general process, and tell you the right places to go to to get more information.

17:00 UTC
Make your applications work in the cloud with Ubuntu OneStuart Langridge
Who else than the Ubuntu One mastermind himself could tell you better about supercharging your apps with cloud functionality? Join Stuart in this talk where he’ll be describing how to integrate Ubuntu One into your applications and bring your users to cloud 9 ;)

18:00 UTC
Take control of your desktop easily with DBusAlejandro J. Cura
D-Bus, the cross-desktop message bus system, is becoming more and more ubiquitous in any Free Software distribution. You can bring your applications to a whole new level letting them talk to other ones in a desktop session, and Alejandro can tell you exactly how to do that.

19:00 UTC
Touchégg: Bringing Multitouch Gestures to your DesktopJosé Expósito
It’s always great to see real-world examples of how the newest and coolest technologies are being used. José will be showcasing his multitouch-based application, Touchégg, introducing its features, describing how to add new multitouch gestures, the technologies used to develop it, and how it uses the uTouch-GEIS API. Check out the summary and the logs from the other Multitouch session on Monday to learn more.

20:00 UTC
Unity: Integrating with Launcher and PlacesMikkel Kamstrup Erlandsen
Do you want your application to seamlessly blend into the new Ubuntu user interface experience? Do you want it to provide all interaction capabilities that Unity provides? Then join Unity developer Mikkel Kamstrup in his walkthrough with examples on how to plug your app into the Launcher and Places API.

21:00 UTC
Tracking Source Code History with BazaarJelmer Vernooij
Learn how to control the history of your source code with a distributed and modern revision control system. Bazaar is powerful, fast, and most importantly, easy and fun to use. Jelmer has had a lot to do in developing Bazaar, so he knows well what he’s talking about. Join him in this session where he’ll tell you the basics and more sophisticated uses of the revision control system used to develop Ubuntu and thousands of other projects in Launchpad.

Looking forward to seeing you all there in a few hours!


Read more
David

Ubuntu App Developer Week – Day 1 Summary

A great start for a great week. Looking at the lots of participation and questions during the first day shows that developing applications in Ubuntu is a hot topic. Here is a small summary from yesterday’s schedule.

Enabling Multitouch and Gestures Using uTouch

By Chase Douglas and Stephen Webb

Chase and Stephen delivered an overview on the whole stack of touch technologies focusing on two main aspects: gestures/uTouch and multitouch. On gestures, they showed us how there is a difference between general-purpose stroke gestures and defined gestures primitives, such as “drag”, “pinch/expand”, “rotate”, “tap”, and “touch”, which enable the possibility of defining a gesture language. A high-level overview of uTouch followed, with a description of the API and a couple of code examples showing how to integrate applications with it. To wrap up the session, they explained how Ubuntu will be the first distro to bring multitouch in 11.04 and how this was made possible, such as extending xorg’s XInput to version 2.1 to add multitouch support and. On the app developer side of multitouch, they announced a pre-release addition to the Qt framework that will support multitouch.

Check out the session log here.

GObject Introspection: The New Way For Developing GNOME Apps in Python, JavaScript and Others

By Tomeu Vizoso

On this session we saw the initial problem GNOME developers were facing in the past to provide and maintain bindings in multiple programming languages, and how introspection came to the rescue. The reason for having several bindings had always been to enable interaction with the GNOME platform using other languages than C. With introspection, there is no need for external bindings, as the C API itself contains all the required information. Not only that, but this information is also available at runtime without a considerable performance cost. He then went on to describe the workflow changes, the new typelibs and .gir files, and describing what annotations are. Following that, the changes required for library and, most especially application writers, sharing some tips on how to port applications to use GObject Introspection. He finished the session with a few pointers on where to go from here and to the resources to get more info about introspection.

Check out the session log here.

From English to any language: internationalizing your apps

By David Planella

The session started of with the description of some of the main players in the internationalization game: gettext, intltool, Launchpad, followed by a bit more insight on the gettext concepts and terminology. The idea was to deliver a hands-on session that could be nevertheless used generically to provide i18n support to any application in any programming language. The second part of the session focused on making a choice of a programming language and framework to showcase a practical example on how to internationalize an app. So Python and Quickly were used as an easy way to develop an internationalized application in a matter of minutes. From that example the session then focused on describing the main bits to provide native language support.

Check out the session log here.

Widgetcraft: The Art of Creating Plasma Widgets

By Harald Sitter

On this session packed with code examples, Harald started with the description of the technologies involved in developing widgets for Plasma, otherwise known as the KDE desktop or the KDE workspace, and how Plasma comes in several different flavours for different form factors. Next were Plasmoids, the name by which Plasma widgets go, which can be written in Javascript, C++ (both always available), Python,  and Ruby. He then moved on to hacking, creating an easy-to-follow, bare setup for a Plasmoid, mentioning how the plasmoidviewer tool can be used to test them prior to deployment. The next steps involved extending the Plasmoid, adding UI functionality such as buttons and other visual elements. All the code is available here.

Check out the session log here.

Rock solid Python development with unittest/doctest

By Barry Warsaw

Barry delivered a great overview to unit- and doc- testing Python applications, and how to hook these into Debian packages as well. After briefly pointing out to resources for background reading on testing, he then delved into the coding example he had set up to as an aid to the session. Starting with unittesting, he showed us the tests were set up in the code and how to run them, as well as what a failing test looks like. Next on the list were doctests, emphasizing that they are testable documentation, written in restructured text (.rst), and that they do not replace, but rather are a complement to unittests. Again, he showed us how they were written and run. He wrapped up explaining in detail how to integrate them all in setup.py and to a Debian package.

Check out the session log here.

The Day Ahead: Upcoming Sessions for Day 2

Well, you thought that was all? Lots of additional app developer goodness are waiting for you today. Let’s have a look at what’s in store for day 2:

16.00 UTC
PyGTK is dead, long live PyGI! Using gobject-introspection in PythonMartin Pitt
PyGTK might be dead, but only to be succeeded by the power of introspection. Join Martin to learn all you ever wanted to know about using the new cool stuff in the Python/GTK world: PyGI. He tells us about the focus of his talk: “[...] how to use the GI typelibs in Python, and how to port PyGTK2 applications to PyGI. For the most part these sessions are distribution neutral (we don’t have any special sauce for this in Debian/Ubuntu, it all happened right upstream :-) ); only a very small fraction of it (where I explain package names, etc.) will be specific to Debian/Ubuntu, but shouldn’t be hard to apply to other distributions as well.

17:00 UTC
Zeitgeist API & Zeitgeist Application IntegrationManish Sinha (???? ??????) and Seif Lotfy
The Zeitgeist Project is taking many important projects and distributions by storm. It’s all about seamlessly tracking user data and events in a way that is revolutionizing the way they interact with their desktop. Do you want to know more about Zeitgest? Or even better: do you want to use Zeitgeist features in your application? Project leader Seif Lotfy and developer Manish Sinha will tell you all about it and be willing to hear your questions

18:00 UTC
GStreamer+Python: Multimedia Swiss Army MacheteJason DeRose
When you hear GStreamer and Python in the same sentence you know for sure that you’re up for something awesome. Join the power of Rapid Application Development with Python with the most popular multimedia framework in Free Software, and you’ll end up with a versatile tool to tackle all your multimedia needs. Jason knows well what he’s talking about

19:00 UTC
Creating a KDE app with KAppTemplateJonathan Thomas
Second day in and we get the luxury of having the second KDE/Kubuntu ninja delivering content straight from the source. Do you know how easy is to create full featured KDE applications with KAppTemplate? Put on your developer hat and join Jonathan on a hands-on session where you’ll learn to write beautiful KDE apps in a matter of minutes.

20:00 UTC
Thunderbird + Unity = Awesome, and how JSCtypes lets you get to the candyMike Conley
We’re seeing more and more major upstreams providing integration with the new way of interacting with computers: Unity. The story of integrating Thunderbird and Unity is full of awesome, and Mike will be on a quest to tell you all about it and hear your questions.

21:00 UTC
STORY: Unity, hacking on a real-world appMarco Trevisan
Would you like to become the next Unity rockstar? How would you get started? In this session Marco will tell us his journey on how he got involved in hacking on Unity, from the day he found the itch to scratch until his branch fixing it was landed. I’m personally very much looking forward to this session, as I believe it will be inspiring not only to prospective Unity contributors, but for developers in general who want to know how to start hacking on a particular application.

Looking forward to seeing you all there in a few hours!


Read more
David

Ubuntu App Developer Week kicks off today with a rich set of interesting sessions to showcase and teach how to develop awesome applications on the Ubuntu Platform.

It’s going to be on the #ubuntu-classroom IRC channel on Freenode, during the whole week, so be sure to add it to your calendars. If you can’t make it to a session, don’t worry: there will be logs and session summaries available for you to read and learn on your own time.

16.00 UTC
Enabling Multitouch and Gestures Using uTouch – Chase Douglas and Stephen Webb
Join the future of computing and how humans interact with computers on a daily basis. Multi-touch technologies are the next step in this area, and in this talk Chase and Stephen will show you how your applications can make use of it

17:00 UTC
GObject Introspection: The New Way For Developing GNOME Apps in Python, JavaScript and Others – Tomeu Vizoso
Tomeu says: “The talk will be oriented to developers that use or want to use GNOME technologies and still haven’t fully grasped how GObject Introspection is changing the game. It won’t contain any distro specificities, so join without fear even if you don’t use Ubuntu, if it’s of your interest.  It should be of special interest to those willing to contribute to GNOME Shell or that plan to attend Martin Pitt’s talk about life after PyGTK this Tuesday at 16 UTC

18:00 UTC
From English to any language: internationalizing your apps – David Planella
You want your applications reach millions, to be usable by anyone regardless of their language or writing system, and for this to happen transparently. Good news for you then: this is already possible using stable and proven internationalization technologies. It’s Free Software and it’s easy to integrate in your application. Learn how to prepare your applications to go international with David.

19:00 UTC
Widgetcraft: The Art of Creating Plasma Widgets – Harald Sitter
Plasma is the shell of the KDE Software Collection and available for many different form factors; it is almost entirely built out of widgets. Harald will show you how to create such amazing widgets, with surprisingly little code, to enrich your desktop experience and maybe even share with others.

20:00 UTC
Rock solid Python development with unittest/doctest – Barry Warsaw
If you’re asking yourself how to make your Python applications more robust and how to make your development workflow much more effective, here’s your answer. In this session, Python legend Barry Warsaw will show you how to easily add tests using the most popular modules from the Python Standard Library: unittest and doctest

Looking forward to seeing you all there in a few hours!


Read more
David

Just a quick reminder that the next Ubuntu App Developer Week starts next Monday on the #ubuntu-classroom IRC channel on Freenode.

So get ready for a week packed with sessions on how to develop awesome applications in Ubuntu, straight from the best experts!

Here’s a sneak peek at the sessions the week is kicking off with:

Looking forward to an awesome week. See you there!


Read more
David

Ubuntu App Developer Week

I’m thrilled to announce the next edition of Ubuntu AppDeveloperWeek, from the 11th to 15th April 2011 at #ubuntu-classroom on IRC.

Ubuntu App Developer Week is a week of sessions aimed at enabling and inspiring developers to write applications that scratch their itches. Our goal is to give all attendees a taste of the wide variety of tools on the Ubuntu platform that can be used to create awesome applications, and to showcase some applications that have been created and explain how they were put together.

The Sessions

The whole week is packed with interesting subjects, aimed both at new and experienced developers. During the sessions you’ll get a solid overview on a broad range of the Free Software technologies that will enable you to create your applications in Ubuntu. At the same time, you’ll be able to chat and ask your questions directly to the true rockstars on those subjects.

Here are some of the highlights:

  • Integrating applications with Ubuntu tech: Unity, AppIndicators, Ubuntu One, the Sound Menu
  • Enabling multitouch support in applications
  • Application development and testing with Python
  • Rapid Application Development with Qt Quick and QML
  • Rapid Application Development with Quickly
  • Using the Bazaar revision control to track source code history
  • Using Launchpad integration features to develop applications
  • GObject Introspection, PyGI, Plasma, Zeitgeist, GStreamer, Touchégg, KDE, Thunderbird, Internationalization, the Application Review Process, Pkgme, Phonon… you name it. Learn more about the hottest topics and how to use the coolest technologies to write your applications, straight from the best experts in the Free Software world.
  • Check out the complete schedule.

Joining The Week

Getting involved is simple. You can connect using any IRC client or your browser. Simply go to:

Looking forward to seeing you all at App Developer Week!


Read more