09 Nov 2011

feedPlanet KDE

Cool new stuff in CMake 2.8.6 (2): pkg-config compatible mode added for use e.g. with autotools

After introducing the automoc feature in my last blog, here comes the next part of this series. More will follow.

The new --find-package mode of CMake

Typically, in projects which are built using autotools or handwritten Makefiles, the tool pkg-config is used to find whether and where some library, used by the software, is installed on the current system, and prints the respective command line options for the compiler to stdout.

Since CMake 2.8.6, also CMake can be used additionally to or instead of pkg-config in such projects to find installed libraries.

With version 2.8.6 CMake features the new command line flag --find-package. When called in this mode, CMake produces results compatible to pkg-config, and can thus be used in a similar way.

E.g. to get the compiler command line arguments for compiling an object file, it can be called like this:

   $ cmake --find-package -DNAME=LibXml2 -DLANGUAGE=C -DCOMPILER_ID=GNU -DMODE=COMPILE
   -I/usr/include/libxml2
   $

To get the flags needed for linking, do

   $ cmake --find-package -DNAME=LibXml2 -DLANGUAGE=C -DCOMPILER_ID=GNU -DMODE=LINK
   -rdynamic -lxml2
   $

As result, the flags are printed to stdout, as you can see.

The required parameters are

So, you can insert calls like the above in your hand-written Makefiles.
For using CMake in autotools-based projects, you can use cmake.m4, which is now also installed by CMake.
This is used similar to the pkg-config m4-macro, just that it uses CMake internally instead of pkg-config. So your configure.in could look something like this:

   ...
   PKG_CHECK_MODULES(XFT, xft >= 2.1.0, have_xft=true, have_xft=false)
    if test $have_xft = "true"; then
        AC_MSG_RESULT(Result: CFLAGS: $XFT_CFLAGS LIBS: $XFT_LIBS)
    fi

   CMAKE_FIND_PACKAGE(LibXml2, C, GNU)
   AC_MSG_RESULT(Result: CFLAGS: $LibXml2_CFLAGS LIBS: $LibXml2_LIBS)
   ...

This will define the variables LibXml2_CFLAGS and LibXml2_LIBS, which can then be used in the Makefile.in/Makefiles.

What does that mean for developers of CMake-based libraries ?

You don't have to install pkg-config pc-files anymore, just install a Config.cmake file for CMake, and both CMake-based and also autotools-based or any other projects can make use of your library without problems.
Documentation how this is done can be found here:

What does that mean for developers working on e.g. autotools-based projects, and using a project built with CMake ?

Take a look at the cmake_find_package() m4-macro installed since CMake 2.8.6 in share/aclocal/cmake.m4, it contains documentation, and will help you using that library.
Thanks go to Matthias Kretz of Phonon fame, now working on HPC stuff, who wrote the cmake.m4 from scratch (which was necessary since it had to be BSD-licensed in order to be included in CMake).

Internals

Internally, CMake basically executes a find_package() with the given name, turns the results into the command line options for the compiler and prints them to stdout.
This means it works basically for all packages for which a FindFoo.cmake file exists or which install a FooConfig.cmake file.
There is one issue though: FindFoo.cmake files, which execute try_compile() or try_run() commands internally, are not supported, since this would required setting up and testing the compiler toolchain completely.
It works best for libraries which install a FooConfig.cmake file, since in these cases nothing has to be detected, all the information is already there.

All this stuff is still very new, and has not yet seen wide real world testing.
So, if you use it and find issues, or have suggestions how to improve it, please let me know.

Alex

09 Nov 2011 9:15pm GMT

Debugging nepomuk/virtuoso’s CPU usage

There was a lot of bug fixing regarding nepomuk and its indexing. However you might still get a high CPU-usage. Reporting this is a bit useless unless you can at least give some info about what's happening.

So what you can do is query virtuoso's status. On openSUSE it works like this: first find the .ini file currently in usage to get the port virtuoso is using, connect to virtuoso and finally query virtuoso for its status and running statements. The latter are unfortunately truncated so I would appreciate some hint on how to get around that.

ps aux | grep virtuoso

finds /usr/bin/virtuoso-t +foreground +configfile /tmp/virtuoso_T18122.ini +wait

cat /tmp/virtuoso_T18122.ini | grep Port

finds ServerPort=1111

isql-vt -H localhost -P 1111 -U dba -P dba

which connects to virtuoso

status();

which shows you some info and which queries are keeping the process busy. isql-vt is part of the virtuoso-server package but it might be that only recent packages have it compiled and older packages lack the tools.

Further you can do the following:

If you have any other hints regarding this piece of software feel free to mention them and I will add them to the post.


09 Nov 2011 3:10pm GMT

Help KDE e.V. secure funding for a sprint with just a few clicks

Some weeks ago Lydia blogged about a German bank giving away 1000 euros for each 1000 associations who can get the most votes. Well, until four days ago we were at postion 320, now we are at 735 and falling. Please, read Lydia's post about how to vote and help KDE e.V., it is just a few clicks.

It surprises me KDE e.V. have had only 3652 votes so far. If each people voted three times, which is allowed by the rules, it would give ~1218 people. Is there only 1218 people using KDE in the world?

Just the poll page is in German, but the poll is not limited to German citizens. Anybody can vote and according to the rules you can vote three times with your e-mail.

09 Nov 2011 12:22pm GMT

libmygpo-qt 1.0.5 released

Amarok 2.5 is nearby, gpodder.net getting more features every few
weeks, so it is time for a new Version of libmygpo-qt including some
bugfixes & new features.

I'm also looking for contributors, so if you wanna work on a
interesting library used atm by Amarok & Nokia Podcasts, drop me a line.

Changes in libmygpo-qt 1.0.5:
-) fixed a bug in downloadSubscriptionsJson()
-) changed the way http basic auth information is transmitted to
gpodder.net to no longer getting annoying popups when using
libmygpo-qt with KIO from KDE 4.7.X
-) implemented functions to access the new API for retrieving
synchronization information of devices
-) implemented functions to retrieve toplist and search results in
gpodders custom XML format
-) added "ConfigStyle" package finding to CMake Buildsystem

Where to get libmygpo-qt?

Tarball:
http://stefan.derkits.at/files/libmygpo-qt/libmygpo-qt.1.0.5.tar.gz
md5sum: 37af04b1e944f982e35b69c04b5d1b0f
sha1sum: a38d0ac08cc4601634b3cda3851226aabcff9638

Some more important Links for libmygpo-qt:

Project Website: http://wiki.gpodder.org/wiki/Libmygpo-qt
Git Repo: https://github.com/gpodder/libmygpo-qt
Doxygen Documentation: http://stefan.derkits.at/libmygpo-doc/
gpodder.net API: http://wiki.gpodder.org/wiki/Web_Services/API_2
Bugreports: http://bugs.gpodder.org
Contact: gpodder@freelists.org

General Infos about libmygpo-qt

What is libmygpo-qt?

libmygpo-qt is a Qt/C++ Library wrapping the gPodder.net Webservice. It
was created as part of a University Course & it is used in
Amarok (since 2.4.1) with the new gpodder.net
Service, that makes the gpodder.net Podcast Directory available from
within Amarok.

One of the next Versions of Amarok (2.5) require libmygpo-qt 1.0.5 for the
gPodder PodcastProvider, with which you can synchronize your local
Podcasts between Amarok and gpodder.net (and other podcatchers with
gpodder.net integration).

09 Nov 2011 11:43am GMT

Help KDE e.V. secure funding for a sprint with just a few clicks

Some weeks ago Lydia blogged about a German bank giving away 1000 euros for each 1000 associations who can get the most votes. Well, until four days ago we were at postion 320, now we are at 735 and falling. Please, read Lydia's post about how to vote and help KDE e.V., it is just a few clicks.I'll include the directions here for speed. Remember, you'll be sent an email with a link, which you must click, and click a button on that page too. AND you can do this three times! I've done my three votes, have you?

A German bank is giving away 1000 Euro each to the 1000 associations who can get the most votes. Everyone has 3 votes. Please do vote with all 3 for KDE. With just a few clicks you can make a difference!
Here's what you have to do:
1) go to https://verein.ing-diba.de/sonstiges/10115/kde-ev and click "Stimme abgeben"
2) enter your email and the captcha it asks for and then click"absenden"
3) you'll get an email to confirm your vote - click the link in the email
4) you'll get to a website - click "Stimme abgeben"

You can do this 3 times in a row. If KDE is among the top 1000 associations we'll get 1000 Euro.

09 Nov 2011 11:23am GMT

EmergeActivity gets a graphical interface: releasing 2.0

I'm still using this small utility that displays the activity of 'emerges' on the misc gentoo boxes I'm admin for. I've wanted to add a graphical interface for very long, but did not have the time… until recently. So here it is. It is available for download from the homepage and as a mercurial clone.

09 Nov 2011 2:10am GMT

08 Nov 2011

feedPlanet KDE

Pairs and ugly applications

Hi!
Some time ago I blogged about a new game for KDE Edu, a memory-enhancing cards game. It was getting dusty in my scratch repository until Marco Calignano had the strength to push some features that it desperately needed and at the same time pushed me into gaining interest in the project again.

A lot has happened since: the name changed to Pairs (can be found in kde:pairs now) and it's quite awesome already, I'd say. It lets us download themes from the Internet, supports different game types like image->image, image->word and some others, etc.

A couple of weeks ago we discussed about moving it to KDE Edu finally, although we decided not to and port it to QtQuick so that we can make it work in touch screens and we can get to have fancy GUI. In few days we managed to port it to QtQuick (somehow, there are some hacks :D ) but now it's a little ugly. WTH, not a little ugly, very ugly. It makes your eyes hurt and it's on purpose.

Why would someone make such an ugly beast? Well, because we're looking forward to find someone who can make it look nice. Now, those of you who have some pride in your artistic skills, please consider it: Could you please dedicate some time in your life to a community of hardcore developers without this sparkle for beauty? We don't have much to offer other than considering your idea and hopefully it will get to be used by children from all around the world (now that I think of it, maybe it is something!).

What we need is quite simple:

  1. Check the video, when your eyes hurt just stop it.
  2. Think of what you think the GUI should look like.
  3. Here I'd love to say that you should be able to provide a QML file, if you can't then just a mockup.
  4. Optionally (and preferably) you can check what it looks like by modifying the qml GUI and compiling the program. Here there are some instructions: http://techbase.kde.org/Getting_Started/Build/KDE_Applications
  5. Send it to me at aleixpol@kde.org. You can also send me any questions you have, as well as posting them as comments below, so that we can discuss it all together.

Cheers, for beauty! :)

PS: And elegance ;)

08 Nov 2011 10:48pm GMT

Kraft 0.45 released

A couple of days after the release of Kraft 0.44 with new features I had to prepare a bugfix release. It's labeled 0.45 and was released today. It fixes a bug that prints wrong decimal places on the PDF documents which results in wrong calculations on the document.

That is a very severe and not acceptable bug, as the wrong documents could make it to a customer of a Kraft user and as a result harm the business. I apologize for any inconvenience.

Please skip Kraft 0.44 and use version 0.45 instead.

08 Nov 2011 10:03pm GMT

12.1 closing in!

We're about to put the finishing touches on openSUSE 12.1 and the amount of activity in the openSUSE IRC channels is impressive. I see people working 12-14-16 hours a day, fixing the last issues, writing release notes, and in short getting this release ready for our users. Respect!

I myself have upgraded my laptop to openSUSE 12.1 RC2 now and I got to see the new Plasma Desktop. Overall, the difference between Tumbleweed and 12.1 are minimal. As expected, considering Tumbleweed (openSUSE's cool rolling release repository) was a hair away from 12.1, the biggest differences are probably artwork and of course Plasma 4.7 instead of 4.6...


KMail2 and Feeding Nepomuk

Ok, there is KMail2 which gave some work. It is really a mixed blessing. A bit slower in opening mails and folders, MUCH faster in checking and downloading new mail (awesome for bad network connections!), painfully big memory usage. There is a problem with the akonadi_nepomuk_email_feeder (yes, feeds mail from Akonadi in Nepomuk for indexing and search) where the queue fills up memory. My 6GB of mail surely doesn't fit in my 2GB ram so that's painful! But it fills up slowly while processing mail so restarting it every 30 min during the night (akonadictl restart) gave it a chance to index all my mails. And this problem is being worked on...

Less nice is the constant use of memory (MySQL alone is 120 MB), but I hope there is room to optimize things further. At least it's pretty much stable, which is a bigger deal than memory usage to me. Thanks to Sebastian being supported by donations we have a faster and more stable Nepomuk, making search finally usable for me. Also nice.

Talking about faster and more stable, KWin is noticeably faster again, and blur works great now :D

Other new things

I've also installed the 3rd beta of Calligra which is available from the KDE updated applications repo. It is not perfectly stable (reported my first Tables crash already) but Stage now works with all the standard openSUSE 12.1 presentations, unlike the older KPresenter version. That is good news as it's still quite a bit faster than LibreOffice. Not more stable, yet, both are unfortunately quite crash-happy.

I haven't had time to check out Snapper myself, mostly because but I've seen a demo at Brainshare and let's just say I greatly look forward to Desktop Integration! Being able to see previous versions of files and to roll back is really cool, especially once you don't have to go to a separate app anymore but can do it from the file manager.

Played with SAX3 a bit, broke my xorg.conf. Looks like the automatic configuration works better than my manual one...

And yes, systemd boots up marginally faster. And it doesn't seem to break things for me so I'm content with it.

Now, I have to finish some more writing!

08 Nov 2011 9:55pm GMT

more plasma workspaces 4.8 news

In my last blog entry on Plasma Workspaces 4.8 I talked about a number of things that we've worked on in the last six months. I promised a follow up with more news in it, and so here we are.

Before we get to that, however, here's a little interlude showing Plasma Active One running on a Nokia N950 on Mer. You can read more about it here on Martin "vgrade" Brook's blog.



Plasma Active One on the n950


... and now back to the regularly scheduled topic of Plasma Workspaces 4.8. ;)

OpenGL ES and Compositing Performance

Compositing window management in 4.8 can be built with support for OpenGL ES. This means hardware acceleration using a more modern revision of OpenGL and one that is supported on mobile devices.

During development of this feature, Martin Gräßlin did a lot of clean up to the existing code bringing performance enhancements to how effects are handled and windows are painted. The blur implementation also received a significant improvement to its performance thanks to improved caching written by Philipp Knechtges; this provides quite noticeable results on many systems. In all, many fewer cycles are spent rendering and displaying the beauty that is the Plasma Desktop.

Thomas Lübking also helped simplify writing effects by introducing the new AnnimationEffect class so that development in this area can progress with less effort required to achieve results.

Power Management

There was a developer sprint was held for hardware and power management in KDE software and it was quite a success. A large number of bugs related to stability and predictability were fixed, but perhaps my favorite two things are that power management became multi-screen aware (so, for instance, plugging a laptop into an external monitor and closing the lid works a lot more like you'd expect ;) and power management became Activity aware so that you can have different settings per activity. I love this for when I'm doing things like giving presentations or watching videos: just switch to the activity with all the relevant files and apps and I don't have to worry at all about touching the power management settings.

Bug Fixes Galore

As the version numbers climb, one would expect so would the bug fixes. KRunner got a number of bug fixes, including fixing the kill runner and making sure all runners always respect their settings. The microblogging widget escapes HTML properly, the virus wallpaper works more consistently compared to the other wallpaper options, the location DataEngine works with newer versions of gpsd now and on and on. Lots of little things that one might never notice because they now just silently work .. and others you may notice because you stubbed your toe on them constantly.

I'm really looking forward to the 4.8.0 release due to all of these improvements, and I hope you are too! :) Thanks to everyone who helps make this possible by contributing their finances, their time, their imagination, their passion ... and remember that you, too, can Join the Game even if you don't have the time or energy to get involved directly.


08 Nov 2011 7:08pm GMT

Received my Nokia N950

While I was in Prague, at the GStreamer Conf, Nokia sent me a Nokia N950. It wasn't hard to get a cellular phone through Argentine customs, so I appreciate the effort of everyone involved.

Now, I get to work on it to make a mobile version of KMyMoney. My plan is to at least make a stripped down version that I can use to register transactions while on the go.

I also realized I had 4 generations of Nokia phones at hand, so here is the pic:

read more

08 Nov 2011 6:55pm GMT

Help needed: how to write geographic coordinates in $YOUR language?

As blogged about before, in KDE Apps 4.8 you will be able to enter geographic coordinates in Plasma Runner and then have Marble show it to you.

But there is a problem: the current code is only detecting coordinates where more or less the symbols for degree, minutes and seconds are °, , and and where the directions are given as a single word/letter (with letter the first letter of the word, like North, South, East and West in English).

But looking e.g. at the Wikipedia pages about London in some different languages, where the coordinates is given in the DMS format (degree-minutes-seconds), I can see that the parser will fail, perhaps:

Japanese: 北緯51度30分28秒 西経0度07分41秒
Persian: ‏۳۹″ ۷′ ۰°غربی ‏۲۶″ ۳۰′ ۵۱°شمالی
Russian: 51°30′26″ с. ш. 0°07′39″ з. д.
Czech: 51°30´25´´ s. š. 0°07´37´´ z. d.
Georgian: 51°30′00″ ჩ. გ. 0°07′00″ ა. გ.

(no idea why the center of London is different in each language ;) ).

So, to support as many languages as possible and to know what is needed, could you please help me with yours?

Please post a comment with a sample how the geographic coordinates are constructed in your language, and which symbols for degrees, minutes and seconds are used and which terms to describe the directions?

Template to use:

Language (in English):
Degree symbol:
Minutes symbol:
Seconds symbol:
Term(s) for North:
Term(s) for South:
Term(s) for East:
Term(s) for West:
Some example(s) (e.g. London):

Examples could be also additionally in DM or D format.

Looking forward to many examples, best today/tomorrow :)


08 Nov 2011 5:15pm GMT

Plasma NM: libnm-qt working

I thought it would take me more time to make Plasma NM work with libnm-qt :-) I have just commited the last bugs fixes for the bugs I have found so far and Plasma NM/libnm-qt works. There are no visual changes, so there is no point in showing a screenshot :-P

Updating my post about the work to port Plasma NM to NM-0.9 we have:

  1. Create the new Solid's NM-0.9 backend outside kde-workspace repository so that we could change it freely without KDE's freature freeze/ABI restrictions. (DONE)
  2. Make it compile against NM-0.8.999. (DONE)
  3. Remove #ifdef COMPILE_MODEM_MANAGER_SUPPORT and #ifdef NM_0_8 from the source code. (DONE)
  4. Make everything compile/work when the old NM-0.7 backend from KDE SC 4.{6,7} is installed. (DONE)
  5. Create code to import existing NM-0.8 connections to NM-0.9. (DONE)
  6. Make it really work with NM0-0.9.0. (DONE)
  7. First Plasma NM release. (DONE)
  8. Convert code to use libnm-qt instead of Solid::Control::*Nm09. (DONE)
  9. Finish to implement libnm-qt and libmm-qt. (DONE)
  10. Apply usability changes. (IN PROGRESS)
  11. Implement the new interface types: LTE, Wimax and OlpcMesh. (IN PROGRESS)
  12. Fix "paper cuts" bugs (IN PROGRESS)
  13. Improve VPN support. (TO BE DONE)
  14. Improve support for Pppoe (DONE), Cdma and IPv6. (TO BE DONE)
  15. Improve notifications support. Hmm after some thoughts and testing I honestly do not know how to improve it. (TO BE DONE)
  16. Implement automatic proxy re-configuration. I think this should be done in NM itself to make it work with system connections and with non-KDE programs, such as Firefox, Chromium, Opera, etc. (UPSTREAM)
  17. Implement option to run scripts before and after connection's (de)activation like in WICD. I think this should be done in NM itself so that it works with system connection. (UPSTREAM)
Libnm-qt works very well in my notebook, it can be considered stable now. I still need to add pkgconfig support though. I may release Plasma NM 0.9.0 final (no libnm-qt) probably next week if no other important bug appears. Talking about bugs, yesterday I fixed the last crash bug assigned to Plasma NM in bugs.kde.org. Now we only have one major bug (related to importing old settings from Plasma NM for NM-0.8), several normal bugs and wishes.

None of the remaining 27 bugs are related to crashes and they are mostly wishes, so please, distributions, use Plasma NM 0.8.95 instead of shipping outdated Plasma NM versions full of bugs that were fixed months ago. I also need more people testing the three releases I already made. Of course 0.8.95 is the most important one, so report bugs in 0.8.95 so that I can release a really rock solid Plasma NM 0.9.0.

08 Nov 2011 4:41pm GMT

Current Status: Still unavailable

Hi All

Just a short status update. I am still offline courtesy of Deutsche Telekom. A simple provider switch from another provider to them seems to totally overwhelm their infrastructure. For now 2 month i am without any landline connection and there is no end to be seen. They kept blaming my old provider until last week when someone noticed the problem is on their side. Easy to be seen if someone is willing to look for solutions instead of blaming others.

I hope to come back to anyone contacting me during this time but if you did please resend the messages after my hopefully coming soon 'I am back' message. I am not sure i will be able to recover everything from that pile of spam, scam and mailing list stuff that is building up on my email account.

Mike

08 Nov 2011 3:12pm GMT

What I Did on my Rotation

Canonical has a company scheme where after working there for a few years you can
rotate to work at another part of the company for 6 months. Having worked on
the desktop team for over five years I decided to do a rotation to Bazaar. My
hopes for this were to build up my own programming skills by learning more
Python and by experiencing different programming practices from the ones I'm
used to in KDE.

I started off with some fixes to the developer documentation. This got me used
to the process that you can not commit directly to bzr's trunk, instead all
committers are required to make merge proposals on Launchpad, have those
approved by a fellow developer, then send it to a programme called Patch Queue
Manager which will integrate the patch and run the test suite to check
everything still works.

Next I started fixing a few easy command line UI bugs, improving error messages
or stopping exception output and so forth. This got me into the world of
writing test cases. Everything in bzr needs a test case, merge proposals will
not be accepted without them. Like much of bzr I find that the test cases lack
API documentation and comments but it turns out they are easy enough to read
and similarly easy to write. There are both internal test cases, which run a
small part of the code within bzr, and blackbox test cases which run a bzr
command.

Bazaar is the version control system used by top open source project hosting
site Launchpad so I was surprised to come accross a bug which prevented
bzr from talking to Launchpad properly on errors
. "This is really important
to fix. We need error reporting." said Jonathan Lange over 2 years before.
Pleasingly I could fix it, very satisfying. I had to learn about the hooks
mechanism in bzr which shows up some of the downside of Python, you have to
guess the arguments to send the hook. But who needs API documentation when you
can just read the code? :)

Bazaar's main GUI is qbzr (which provides GUIs for individual commands) and
Bazaar Explorer (which provides a complete GUI). I worked with Martin Gz to
make these two talk to the normal Ubuntu crash system, Apport, rather than
showing a nasty crash backtrace to the user.

Then I noticed that Bazzar Explorer has a lot of "Refresh" toolbar buttons about
the place, any time you make a change to the file you have to click one before
the UI will update. Not very user friendly. So I added file watchers about
the place to make it magically update. Nifty, except that after release it
turns out this breaks horribly when doing some commands outside of Bazaar
Explorer, oops. Quick fix and message to packagers, hang head in shame.

The first large feature I worked on was GPG signing of commits. The
documentation for Bazaar promised that this was implemented and all you need do
was set the various options in the config file. Alas it lied. I fixed up the
documentation and started looking into the GPG python bindings, which turn out
to be completely undocumented on the Python side and surprisingly badly
documented on the C side. Security critical code which is badly documented
seems scary to me, mistakes could easily be made which go unnoticed until it
appears on full-disclosure. But I manage to implement signing and adding a GUI
to Bazaar Explorer being cautious as I go.

Bazaar has a scheme called patch pilot where we review patches submitted by the
community and help them on their way to being integrated. I started out with
this by following John Meinel who can write code faster than I can write English
prose. We made small changes to some patches and integrated them, we gave
feedback to newer patches that needed some work and we chased up contributors
who had not responded. The barrier to entry in Bazaar is pleasingly small, if
you don't have the skills to write a perfect patch it's encouraged to say so
and someone else will finish it off.

Why, I wondered, is bzr (the command line UI to Bazaar) not translated? There
were parts of gettext scattered around the code, and some code to extract
strings but it didn't get used. Turns out this code was a half completed
feature that had never been taken to completion. I finished off translations
by adding gettext()s throughout the code, ensuring tests still pass, fix the
installation of .mos and enable the generation of .pot. This missed the 2.4
release so I'm still waiting to see how it works for 2.5, I suspect some
strings will be missing context needed to do a good translation and of course
the occationally technical output of bzr might need some thought on how to
translate but it should make bzr easier to use for non-English speakers.

Ubuntu Distributed Development is the project to put all of Ubuntu's packages
and history into Bazaar branches and change our packages processes to use
Bazaar. This makes a lot of sense, the Ubuntu archive is already a primitive
revision control system (you upload for each new version, often its useful to
look at older versions). This project has been a long time coming and is one
of the original reasons why Canonical started Bazaar back in the day. It
suffers from a number of problems, notably the failure of quite a lot of
packages to import into Bazaar including currently the whole of KDE due to a
patch into openSUSE's bz2 package. Also the quilt patch system we use tends to
clash with being held within a revision control system so you end up with diffs
of diffs. I tend to think that would have been an easier win to import only
the debian/ packaging into Bazaar branches.

I tidied up the new Ubuntu Packaging Guide which is a guide to packaging with
UDD branches (named in the hope that UDD will soon become the definitive way to
do packaging). I also added a new command bzr get-orig-source to make it
easier to do packaging in the current directory rather than a separate
directory as used by bzr builddeb. I also added a hook to set the bzr
changelog from the debian/changelog entry which is the current behaviour with
debcommit. I got mixed feedback on this so I added a config option to disable
it too. I also tidied up some of the bzr-builddeb code by removing weird terms
like "larstiq" and removing acronyms by default.

My Python programming has improved a lot and I'm a convert to the cause of unit
tests. Python is a fun and productive language but the lack of culture for
documenting APIs is disappointing and being dynamic it's that much easier to
make mistakes without realising it. My productivity is nothing like as high as
others on the Bazaar team but it seems I'm better at improving (graphical and
command) user interfaces than my colleagues who can memorise internal data
structures trivially. My six months is now up, I've enjoyed them and now I'm
looking forward to getting back into Kubuntu and KDE.

08 Nov 2011 1:47pm GMT

Talk about open source games at PUC-SP

Hi. Yesterday I talked a little bit about open source games and educational apps at the "Semana Acadêmica PUC-SP". This is a week-long event promoted by the computer science and digital games departments of one of the top universities in Brazil. Initially I was going to talk only to the students of the digital games course, but at the end the talk was transferred to the main auditorium, where the computer science students could also attend.
It was a very interesting talk: my initial goal was to present the idea that doing your final work for university inside an open source project (and in particular, KDE) was a very good thing. The labs at PUC-SP are already equipped with dual-boot machines, Windows and OpenSUSE. Last year, when I was helping one of the courses as part of my masters program, I could show students how satisfying it was to boot one of the machines into OpenSUSE, fire up KMahjongg, and check your name as one of the AUTHORS :)
The end result was very good, there was genuine interest on the part of some students, and we had a very good conversation afterwards as well. Hopefully we will see some of them soon in the kde-br list!

08 Nov 2011 12:50pm GMT