Canonical Voices

Posts tagged with 'kde'

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
Marcin Juszkiewicz

Normally I use KDE 4.6 but recently Kmail started to have serious problems with fetching my email from IMAP so I decided that enough is enough and started checking other options.

As on efika smartbook I am using XFCE I installed it, logged into and configured to be more or less proper environment for me. Also tried Unity and GNOME but none of them fit me.

What is definition of “what fits me”? I use 3-4 virtual desktops:

  1. terminals, editors
  2. web (chromium now)
  3. mailer
  4. short work related apps

Jabber client (psi) is set to appear on all desktops. I switch using +[1-9] keys or by scrolling mousewheel over desktop. I move windows with +LMB and resize them with +RMB. Doubleclick on window title == roll and same for mousewheel unless there is tabbing support in WM (then it switches tabs).

So first which failed was Unity. I saw it before on other people laptops but did not took much time to play with it. Logged into session and after ~hour uninstalled everything. No application menu (I do not like “type a name” type icon launchers), no virtual desktops in old way. I felt lost – no idea how to get rid of storage icons from launcher, how to add new entries.

Next one was classic GNOME. Lot of time passed since v1.4 which was last version used by me (then switched to Windowmaker + rox-filer + gnome-panel, then kde 3 and kde 4). Indicators, settings applets split into user and admin ones, lack of Polish language by default (I thought that I installed it but visit in settings/admin/languages told different thing). Had few hard system crashes but with help of #ubuntu-x guys I found that one of mesa libraries was still from xorg-edgers ppa. After reverting to natty one compiz was stable. But I did not found a way to get +RMB for resizing window. Spent some time configuring system but I did not felt good in this system.

Went back to XFCE as this is simple, clean and fast starting. Now my set of tools is mix of KDE, XFCE, GNOME ones as I use Okular, XFCE-Terminal and Evolution ;D

But Evolution shows own problems after few days. I am unable to use Canonical LDAP for addressbook even it is properly configured. I suppose that some dependency is missing which is fulfilled in standard GNOME desktop. Lack of ability to change keyboard shortcuts is a serious limitation for me as I am used to other then default ones. There is no way (or I did not found it yet) to set same way of displaying emails for all folders (including sort order). Some confirmation requests should have “Do not ask anymore” checkboxes — for example “mark all emails in this folder as read” one. And GMail contacts addressbook is not working — but this can be work around by exporting from web interface and importing VCards.

But the most annoying thing is weird way to decide when mail is read. I set it to 0 seconds as this allows me to quickly slip though emails which I do not found interesting enough to reply but instead Evolution forgets to mark some of them as read. And there is no code to detect repeated shortcuts (as somehow I got to the point where I could change some) so I have “Ctrl-D” as “mark as read” which also deletes email (which is not listed in menu)… And why do I have to configure whole account just to add identity… Or why I can not define one SMTP server for all incoming accounts?

So far I am fine with this setup. Will have to check other email applications again (Claws maybe, definitely not Thunderbird) as Evo is not so good as people are describing it.


All rights reserved © Marcin Juszkiewicz
Switched to XFCE was originally posted on Marcin Juszkiewicz website

Share/Bookmark

Related posts:

  1. KDE 4.1? No, thanks
  2. I am old fashioned
  3. I got Efika MX Smartbook from Genesi

Read more
Marcin Juszkiewicz

I am old fashioned

I use KDE since 2004 (do not remember which version it was). Lot of things changed during that time. But not my X11 session use.

Since beginning of my Linux use (in 2000) I use one set of virtual desktop. Their amount changes from time to time but there are always at least 4 of them (six at the moment):

  1. “work area” — terminal, gvim (few copies of each)
  2. “web area” — here I have web browser (now it is chromium, was firefox, galeon in past)
  3. “mail/news are” — mail/news reader (kontact with kmail/knode, was sylpheed-claws at some time)
  4. “misc area” — here I run software which do not fit to first three

Terminal application changes from time to time. First it was GNOME-Terminal from GNOME 1.4, then Konsole, xterm, uxterm, rxvt-unicode, eterm and few others but after experimenting with many I stayed with Konsole. It has tabs so allows me to run many sessions in one window. Some of tabs have “screen” attached as this allows me to quickly get another shell in working directory and also easy way to log any output (“tee” sometimes got blocked). With recent KDE 4.x changes I started to using “window grouping” to split tabs related to other tasks from main terminal. This gives me one terminal window on screen with few tabbed windows in it which can have own tabs which can have screen sessions in them. May sounds strange but it works. And I always have screen with “irssi” running in it (on local or remote machine).

As editor I use gVim mostly. I kind of mastered it and do not feel good in Kate, Eclipse, JEdit or other “so called normal” editor. Never tried Emacs but do not plan to.

During UDS-M when I told that I am using MPlayer for all videos reaction was interesting. I got list of modern video players (mostly GStreamer based ones) which I should switch to. But I really do not see a need for it. MPlayer maybe is pain in the ass sometimes but it plays everything I have, adds subtitles in a way which I like, has controls on keyboard which I remember and allows me to seek instead of fast forwarding during watching film. Ok, on devices like BeagleBoard I probably can get better results with GStreamer based apps but thats due to codecs which can use DSP.

I never liked Konqueror — always used Gecko based browser. It was Galeon 1.x in past, Phoenix/Firebird/Firefox later, Chromium now. Tried Opera (UI never managed to integrate with look&feel of my desktop) and few other browsers. Chromium is nice but has some drawbacks. Maybe some will be fixed/changed.

Even removable storage I most of time handle with “pmount” command. It works fine for me and I do not like to have all my pendrives/memory cards/etc to be auto mounted. How will I notice which is which in situation when I plug 2 same ones… And UUIDs or filesystem labels are not solution probably. But maybe I will change that in next months.

But back to desktops. KDE 4 has widgets on desktops, activities and few other buzz words. I do not use them. Ok, panel has few widgets integrated but it is still panel. I simply do not see a use case on my desktop for most of widgets. Even after trying them.

So if someone wonder why I do not use something which “everyone is using” then I hope that I gave an answer.


All rights reserved © Marcin Juszkiewicz
I am old fashioned was originally posted on Marcin Juszkiewicz website

Related posts:

  1. KDE 4.1? No, thanks
  2. Back in KDE 3.5
  3. Going back to KDE 3?

Read more
pitti

So far, Apport package hooks were limited to collecting data from the local system. However, a lot of debugging recipes and standard bug triage ping pong involves asking the reporter further questions which need reponses from a human. This can range from a very simple information message box “Now, please plug in the camera which is not detected” until a complex decision tree based on the symptoms the user sees.

As discussed at UDS Barcelona, Apport will grow this functionality in Karmic. A first preview is available in my PPA. The GUI looks horrible, but the API for hooks won’t change any more, so you can now begin to develop your interactive hooks.

Example:

import apport.hookutils

def add_info(report, ui):
    apport.hookutils.attach_alsa(report)

    ui.information('Now playing test sound...')

    report['AplayOut'] = apport.hookutils.command_output(['aplay',
            '/usr/share/sounds/question.wav'])

    response = ui.yesno('Did you hear the sound?')
    if response == None: # user cancelled
        raise StopIteration
    report['SoundAudible'] = str(response)

Please see the package-hooks.txt documentation for details.

I implemented all currently existing UI functions (information, yes/no question, file selector, multiple choice dialog) for GTK and CLI, and all except the multiple choice dialog for Qt. Anyone willing to hack on an implementation of ui_question_choice() similar to what the GTK frontend is doing?

Update:I merged Richard Johnson’s branch (thanks!) and uploaded a new package into my PPA. apport-qt is now fully functional.

Read more