Add your blog

If you are a KDE contributor you can have your blog on Planet KDE. Blog content should be mostly KDE themed, English language and not liable to offend. If you have a general blog you may want to set up a tag and subscribe the feed for that tag only to Planet KDE.

To have your blog added file a bug in Bugzilla listing your name, svn account (if you have one), IRC nick (if you have one), RSS or Atom feed and what you do in KDE. Attach a photo of your face for hackergotchi.

Alternatively, Planet KDE is kept in KDE's SVN. If you have an account you can add or edit your own feed:

  • svn checkout svn+ssh://@svn.kde.org/home/kde/trunk/www/sites/planet/
  • Put your hackergotchi in website/hackergotchi/. A hackergotchi should be a photo of your face smaller than 80x80 pixels with a transparent background. svn add the file.
  • At the end of the planetkde/config file add your details (the name in brackets is your IRC nick):
  • feed 15m http://path.to/my/feed.rss define_name Konqi Konqueror (konqi) define_face hackergotchi/konqi.png define_facewidth 80 define_faceheight 80
  • svn commit

If you want to add a Twitter microblog to the Microblogging sidebar add define_microblog true and follow your name with [twitter]. Currently only Twitter is known to work, please contact Jonathan Riddell before adding non-Twitter microblogs to check it works.

Planet KDE Guidelines

Planet KDE is one of the public faces of the KDE project and is read by millions of users and potential contributors. The content aggregated at Planet KDE is the opinions of its authors, but the sum of that content gives an impression of the project. Please keep in mind the following guidelines for your blog content and read the KDE Code of Conduct. The KDE project reserves the right to remove an inappropriate blog from the Planet. If that happens multiple times, the Community Working Group can be asked to consider what needs to happen to get your blog aggregated again.

If you are unsure or have queries about what is appropriate contact the KDE Community Working Group.

Blogs should be KDE themed

The majority of content in your blog should be about KDE and your work on KDE. Blog posts about personal subjects are also encouraged since Planet KDE is a chance to learn more about the developers behind KDE. However blog feeds should not be entirely personal, if in doubt set up a tag for Planet KDE and subscribe the feed from that tag so you can control what gets posted.

Posts should be constructive

Posts can be positive and promote KDE, they can be constructive and lay out issues which need to be addressed, but blog feeds should not contain useless, destructive and negative material. Constructive criticism is welcome and the occasional rant is understandable, but a feed where every post is critical and negative is unsuitable. This helps to keep KDE overall a happy project.

You must be a KDE contributor

Only have your blog on Planet KDE if you actively contribute to KDE, for example through code, user support, documentation etc.

Do not inflame

KDE covers a wide variety of people and cultures. Profanities, prejudice, lewd comments and content likely to offend are to be avoided. Do not make personal attacks or attacks against other projects on your blog.

For further guidance on good practice see the KDE Code of Conduct.

People Aggregated

FeedRSS
A. L. Spehr (blauzahl) feed
A. L. Spehr (blauzahl) [identi.ca] feed
Aaron Seigo (aseigo) feed
Aaron Seigo [identi.ca] feed
Aaron Seigo [twitter] feed
Adam Kidder (thekidder) feed
Adam Pigg feed
Adam Treat (manyoso) feed
Adenilson Cavalcanti (Savago) feed
Adriaan de Groot (adridg) feed
Adrien Facelina feed
Agustin Benito Bethencourt feed
Agustin Benito Bethencourt [twitter] feed
Ahmed Ghonim feed
Aike Sommer feed
Akarsh Simha (kstar) feed
Akarsh Simha [twitter] feed
Alan Alvarez (clsk) feed
Alan Pope (popey) feed
Albert Astals Cid (TSDgeos) feed
Aleix Pol (apol) feed
Alejandro Wainzinger (xevix) feed
Alessandro Diaferia (alediaferia) feed
Alessandro Sivieri (Siv) feed
Alex Fiestas (afiestas) feed
Alex Fiestas [identi.ca] feed
Alex Merry feed
Alexander Dymo (adymo) feed
Alexander Neundorf feed
Alexander Rieder (arieder) feed
Alexandr Goncearenco feed
Alexandra Leisse (troubalex) feed
Alexandra Leisse [twitter] feed
Alexis Menard (darktears) feed
Alexis Menard (Qt Development Frameworks) feed
Allan Sandfeld Jensen (carewolf) feed
Allen Winter feed
Alvaro Soliverez (Hei_Ku) feed
Ana Cecilia Martins (annieC) feed
Ana Guerrero (ana) feed
Andi Clemens (aclemens) feed
Andras Mantia feed
Andrea Diamantini (adjam) feed
Andreas Aardal Hanssen (bibr) feed
Andreas Hartmetz feed
Andreas Marschke feed
Andreas Pakulat feed
Andreas Ramm (psychobrain) feed
Andreas Schneider (gladiac) feed
Andrew Coles (coles) feed
Andrew Lake (Jamboarder) feed
Andrew Manson ( mansona aka real_ate ) feed
Andrew Stromme (astromme) feed
Anne Wilson (annew) feed
Anne-Marie Mahfouf (annma) feed
Anselmo Lacerda S. de Melo (anselmolsm) feed
Antonio Aloisio feed
Antonio Larrosa Jimenez (antlarr) feed
Arindam Ghosh feed
Ariya Hidayat feed
Arjen Hiemstra (ahiemstra) feed
Arnd Baecker feed
Arno Rehn (pumphaus) feed
Artur Souza (MoRpHeUz) feed
Artur Souza (MoRpHeUz) [identi.ca] feed
Ashley Winters feed
Aurelien Gateau feed
Bart Cerneels (Stecchino) feed
Bart Coppens (BCoppens) feed
Bartosz Wadolowski feed
Bastian Holst (bholst) feed
Ben Klopfenstein (benklop) feed
Ben Martin (monkeyiq) feed
Benjamin Meyer (icefox) feed
Benjamin Reed (RangerRick) feed
Benoit Jacob (bjacob) feed
Bertjan Broeksema feed
Bjørn Erik Nilsen (bnilsen) feed
Boudewijn Rempt (boud) feed
Brad Hards (bradh) feed
Brad Hughes feed
Carlos Leonhard Woelz (cwoelz) feed
Carlos Licea feed
Carsten Niehaus (carsten) feed
Carsten Pfeiffer (gis) feed
Casey Link (ramblurr) feed
Casey Link [twitter] feed
Casper Boemann feed
Casper van Donderen (cvandonderen) feed
Celeste Lyn Paul [twitter] feed
Celeste Paul (seele) feed
Chani Armitage (Chani) feed
Harald Sitter [twitter] feed
Charles huet (Packadal) feed
Charles Samuels (njaard) feed
Chris Lee (clee) feed
Christian Ehrlicher feed
Christian Loose feed
Christian Muehlhaeuser (muesli) feed
Christian Weilbach (whilo) feed
Christoph Cullmann (cullmann) feed
Christoph Feck (kdepepo) feed
Cies Breijs (cies) feed
Cláudio da Silveira Pinheiro (Taupter) feed
Clarence Dang feed
Colin Guthrie (coling) feed
Constantin Berzan (exit) feed
Cornelius Schumacher feed
Cornelius Schumacher [twitter] feed
Cristian Tibirna (Inorog) feed
Cyrille Berger feed
Cyrille Berger feed
Dan Jensen (leinir) feed
Daniel Duley (mosfet) feed
Daniel Jones feed
Daniel Laidig (dani_l) feed
Daniel Meltzer (hydrogen) feed
Daniel Molkentin (danimo) feed
Daniel Molkentin [Qt Labs] (danimo) feed
Daniel Molkentin [twitter] feed
Daniel Nicoletti (dantti) feed
Daniel Winter (DanielW) feed
Danny Allen (dannya) feed
Danny Kukawka feed
Dario Freddi (drf__) feed
Dario Freddi [identi.ca] feed
Dario Massarin feed
David Faure (dfaure) feed
David Faure [identi.ca] feed
David Miller feed
David Nolden feed
David Vignoni (davigno) feed
Davide Bettio (WindowsUninstall) feed
Dennis Nienhüser (Earthwings) feed
Derek Kite (dkite) feed
Detlev Casanova (Cazou) feed
Diederik van der Boor feed
Diego Iastrubni feed
Dion Moult (Moult) feed
Dirk Mueller feed
Dmitry Ivanov (vonami) feed
Dmitry Kazakov (dmitryK) feed
Dmitry Suzdalev (dimsuz) feed
Dominik Haumann feed
Dominik Seichter feed
Duncan Mac-Vicar (duncanmv) feed
Eduardo Robles Elvira (Edulix) feed
Egon Willighagen feed
Ellen Reitmayr (el) feed
Elvis Stansvik (estan) feed
Emil Sedgh (emilsedgh) feed
Enrico Ros feed
Erlend Hamberg feed
Esben Mose Hansen (esben) feed
Espen Riskedal feed
Eva Brucherseifer feed
Evgeniy Ivanov (powerfox/pfx) feed
Fabio A. Locati (flocati) feed
Fabrice Mous (fab) feed
Fabrizio Montesi (fmontesi) feed
Fathi Boudra feed
Felix Lemke (HobbyBlobby) feed
Flavio Castelli feed
Florian Graessle (holehan) feed
Francis Giannaros (apokryphos) feed
Frank Karlitschek (karli) feed
Frank Osterfeld (fosterfeld) feed
Frank Osterfeld [identi.ca] feed
Frans Englich (FransE) feed
Franz Keferboeck feed
Fred Emmott (fred87) feed
Frederik Gladhorn (fregl) feed
Frederik Gladhorn (fregl) feed
Frederik Gladhorn [identi.ca] feed
Frederik Schwarzer feed
Fredrik Höglund feed
Fredy Yanardi feed
Frerich Raabe feed
Friedrich Kossebau (frinring) feed
Gary Cramblitt (PhantomsDad) feed
Gary Greene (greeneg) feed
George Goldberg (grundleborg) feed
George Goldberg [twitter] feed
George Kiagiadakis (gkiagia) feed
George Wright (gw280) feed
Germain Garand feed
Gilles Caulier feed
Girish Ramakrishnan feed
Girish Ramakrishnan feed
Gokmen Goksel (gokmen) feed
Gopala Krishna feed
Gran Canaria Desktop Summit [twitter] feed
Greg Meyer (oggb4mp3) feed
Gregor Iaskievitch feed
Gregory Haynes feed
Guillaume DE BURE (gdebure) feed
Guillermo Antonio Amaral (gamaral) feed
Guillermo Antonio Amaral [twitter] feed
Gustavo Boiko feed
Hamish Rodda (blackarrow) feed
Hanna Skott (hannaskott) feed
Hans Chen (Mogger) feed
Harald Fernengel feed
Harald Hvaal (metellius) feed
Harald Sitter (apachelogger) feed
Harri Porten feed
Helio Castro (heliocastro) feed
Henrique Pinto feed
Holger Freyther (zecke) feed
Ian Geiser (geiseri) feed
Ian Monroe (eean) feed
Ian Monroe [twitter] feed
Inge Wallin (ingwa) feed
Ingo Malchow (neverendingo) feed
Isaac Clerencia feed
it-s feed
Ivan Čukić [twitter] feed
Ivan Cukic (ivan) feed
Jacob Rideout (rideout) feed
Jakob Petsovits (jpetso) feed
James Ots feed
Jan Hambrecht (jaham) feed
Jan Kundrat (jkt) feed
Jan Muehlig (janushead) feed
Janet Theobroma (theobroma) feed
Jarle Akselsen feed
Jarosław Staniek (jstaniek) feed
Jaroslav Řezník (jreznik) feed
Jason A. Donenfeld (zx2c4/jdonenfeld) feed
Jason Harris (LMCboy) feed
Jason Kasper (vanRijn) feed
Jason McDonald (Qt Development Frameworks) feed
Jeff Mitchell (jefferai) feed
Jeremias Epperlein feed
Jeremy Whiting (jpwhiting) feed
Jeremy Whiting [identi.ca] feed
Jes Hall (canllaith) feed
Jesper Pedersen (blackie) feed
Jesper Thomschutz feed
Jesper Thomschutz [twitter] feed
Joern Ahrens (jokele) feed
Johan Thelin feed
Johann Ollivier Lapeyre feed
Johannes Bergmeier (joselb) feed
John Layt feed
John Ratke feed
John-Paul Stanford (jp) feed
Jonathan Riddell (riddell) feed
Jonathan Riddell [twitter] feed
Jonathan Thomas (JontheEchidna) feed
Joon-Kyu Park feed
Jordi Polo (jordl) feed
Jorge Mata (mata) feed
Jos Poortvliet feed
Jos van den Oever (vandenoever) feed
Josef Spillner feed
Joseph Wenninger feed
Juan Carlos Torres (jucato) feed
Jure Repinc (JLP) feed
Jure Repinc [identi.ca] feed
Justin Kirby (neomantra) feed
Justin Kirby [identi.ca] feed
Kamoso feed
Kashyap Puranik (kashthealien) feed
Keith Rusler (comawhite) feed
Kenneth Wimer (kwwii) feed
Kent Hansen feed
Kevin Krammer feed
Kevin Ottens (ervin) feed
Klaas Freitag (dragotin) feed
Koos Vriezen feed
Kurt Hindenburg feed
Kurt Pfeifle (pipitas) feed
Lars Knoll feed
Leo Franchi (lfranchi) feed
Leo Franchi [twitter] feed
Leonardo Sobral Cunha (lsobral) feed
Lim Yuen Hoe (moofang) feed
Loic Corbasson feed
Lorenzo Villani feed
Lorn Potter feed
Lubos Lunak (llunak) feed
Luca Beltrame (einar77) feed
Lucas Murray (lmurray) feed
Lucas Murray [identi.ca] feed
Lucijan Busch (lucijan) feed
Luis Augusto Fretes Cuevas feed
Lukas Appelhans feed
Lukas Appelhans [twitter] feed
Lukas Kropatschek feed
Lukas Tinkl feed
Lukas Tvrdy (lukast) feed
Lydia Pintscher (Nightrose) feed
Lydia Pintscher [twitter] feed
Mahfuz062 feed
Maksim Orlovich (SadEagle) feed
Manfred Mislik (tictric) feed
Marc Cramdal feed
Marcel Wiesweg feed
Marco Gulino (RockMan) feed
Marco Martin (notmart) feed
Marco Martin [twitter] feed
Marcus Hanwell (cryos) feed
Marijn Kruisselbrink feed
Mario Fux (unormal) feed
Mark Kretschmann (markey) feed
Mark Kretschmann [twitter] feed
Mark Ziegler (rakekniven) feed
Martijn Klingens feed
Martin Gräßlin feed
Martin Konold (Mortimer) feed
Martin Meredith feed
Martin Sandsmark (sandsmark) feed
Martin Sandsmark [twitter] feed
Martin Wilke (miwi) feed
Martyn Circus feed
Mathieu Chouinard (chouimat) feed
Matt Broadstone feed
Matt Rogers (mattr) feed
Matt Williams feed
Matthias Ettrich feed
Matthias Fuchs (mat69) feed
Matthias Kretz (Vir) feed
Matthias Kretz [identi.ca] feed
Mauricio Piacentini (piacentini) feed
Maurizio Monge feed
Mauro Iazzi (iazzi) feed
Max Howell (mxcl) feed
Mehrdad Momeny (mtux) feed
Mensur Zahirovic (Nookie) feed
Michael Jansen feed
Michael Krog feed
Michael Leupold (lemma) feed
Michael Pyne (mpyne) feed
Mike Arthur (mikearthur) feed
Mike Arthur [twitter] feed
Mikolaj Machowski (mikmach) feed
Milian Wolff (milianw) feed
Mirko Boehm (miroslav) feed
Morten Sørvig feed
Myriam Schweingruber (Mamarok) feed
Myriam Schweingruber [twitter] feed
Nadeem Hasan feed
Navindra Umanee feed
Nick Shaforostoff (shaforostoff) feed
Nicola Gigante (gigabytes) feed
Niels van Mourik (nielsvm) feed
Nikhil Marathe (nsm) feed
Niko Sams (nsams) feed
Nikolaj Hald Nielsen feed
Nikolaj Hald Nielsen [twitter] feed
Nikolas Zimmermann (WildFox) feed
Nuno Pinheiro (pinheiro) feed
Nuno Povoa (npovoa) feed
Olivier Goffart (Gof) feed
Orville Bennett (illogic-al) feed
Paolo Capriotti feed
Patrick Aljord (patcito) feed
Patrick Spendrin (SaroEngels) feed
Pau Garcia i Quiles (pgquiles) feed
Paul Adams feed
Paul Giannaros (Cerulean) feed
Paul Pacheco (paulpach) feed
Peter Penz feed
Peter Simonsson (psn) feed
Peter Zhou (peterzl) feed
Petr Rockai (mornfall) feed
Petr Vanek feed
Petri Damstén feed
Philip Rodrigues (PhilRod) feed
Pierre Ducroquet feed
Pino Toscano (pinotree) feed
Piyush Verma feed
Pradeepto [twitter] feed
Pradeepto Bhattacharya feed
Prakash Mohan (praksh) feed
Rafał Miłecki (Zajec) feed
Rafael Fernández López (ereslibre) feed
Rainer Endres (physos) feed
Ramon Zarazua (_killerfox_) feed
Raphael Kubo da Costa (rakuco) feed
Reinhold Kainhofer feed
Remi Villatel feed
Rex Dieter (rdieter) feed
Riccardo Iaconelli (ruphy) feed
Riccardo Iaconelli [twitter] feed
Richard Dale feed
Richard Johnson (nixternal) feed
Richard Johnson [twitter] feed
Richard Moore (rich) feed
Rivo Laks feed
Rob Buis (rwlbuis) feed
Rob Scheepmaker (pinda) feed
Robert Knight feed
Roberto Raggi feed
Robin Burchell (w00t) feed
Robin Burchell [identi.ca] feed
Roland Wolters (liquidat) feed
Rolf Eike Beer (Dakon) feed
Roopesh Chander feed
Ryan Bitanga feed
Ryan Rix (PhrkOnLsh) feed
Sacha Schutz (DrIDK) feed
Sam Duff (Socceroos) feed
Samuel Rødal feed
Sander Koning feed
Sandro Andrade (sandroandrade) feed
Sascha Manns (saigkill) feed
Sascha Peilicke (saschpe) feed
Sascha Peilicke [twitter] feed
Sayak Banerjee (sayakb) feed
Sayak Banerjee [identi.ca] feed
Scott Collins feed
Scott Wheeler (wheels) feed
Seb Ruiz (sebr) feed
Seb Ruiz [twitter] feed
Sebastian Kügler (sebas) feed
Sebastian Kuegler [twitter] feed
Sebastian Kügler [identi.ca] feed
Sebastian Pipping (sping) feed
Sebastian Sauer (dipesh) feed
Sebastian Trueg feed
Sebastian Trueg feed
Sebastian Trueg (trueg) feed
Shashank Singh (ssingh) feed
Shashank Singh [twitter] feed
Shaun Reich (sreich) feed
Shawn Starr (spstarr) feed
Simon Edwards feed
Simon Esneault feed
Simon Hausmann (tronical) feed
Simon St James (SSJ_GZ) feed
Sri Ramadoss M (amachu) feed
Stefan Eilers feed
Stefan Majewsky (majewsky) feed
Stefan Teleman feed
Stephan Binner (Beineri) feed
Stephan Binner [twitter] feed
Stephan Kulow (coolo) feed
Stephen Kelly (steveire) feed
Steve Stalcup (vorian) feed
Stuart Jarvis feed
Sujith H [twitter] feed
Sune Vuorela (pusling) feed
Sven Langkamp (slangkamp) feed
Téo Mrnjavac (Teo`) feed
Tejas Dinkar (gja) feed
Tejas Dinkar [twitter] feed
Thiago Macieira (thiago) feed
Thomas Abthorpe (tabthorpe) feed
Thomas Capricelli (orzel) feed
Thomas McGuire feed
Thomas McGuire [identi.ca] feed
Thomas Thym (ungethym) feed
Thomas Zander (ThomasZ) feed
Thomas Zander [twitter] feed
Till Adam feed
Timo Hoenig feed
Tina Trillitzsch feed
Tobias Hunger feed
Tobias Koenig (tokoe) feed
Tobias Koenig (tokoe) feed
Tom Albers feed
Tom Albers [identi.ca] feed
Tomaz Canabrava (tomaz) feed
Tony Murray (murrant) feed
Tor Arne Vestbø feed
Torsten Rahn (tackat) feed
Trever Fischer (workman161) feed
Trever Fischer [twitter] feed
Troy Unrau feed
Unai Garro (uga) feed
Urs Wolfer feed
Valerio Pilo (Amroth) feed
Vlad Codrea feed
Vladimir Kuznetsov feed
Vladimir Prus feed
Vyacheslav Tokarev (vtokarev) feed
Wade Olson feed
Waldo Bastian (zogje) feed
Wang Hoi (wkai) feed
Wendy Van Craen feed
Wesley Stessens feed
Will Stephenson feed
Will Stephenson [twitter] feed
William Viana (Liw-) feed
Witold Wysota feed
Xavier Vello (xvello) feed
Zack Rusin (zrusin) feed

Microblogging from KDE

November 20, 2009

Marco Martin (notmart)

Another Plasma netbook screencast

Another screencast of yours truly: this shows the Plasma netbook shell running on a bog standard Asus EeePc 1005Ha.

It can be seen the new neat animations of the search and launch interface when results are loaded. What's neat is that it seems to run quite well on this pretty basic hardware and animations are just as smooth as they should be :)

OGG version

22:40, Friday, 20 November UTC

Cyrille Berger

Krita and XCF


Last week, I blogged about the removal of the graphics magick file format filter in Krita, and that it would mean that we need to write directly our own support for many file formats, using low-levels library when relevant and available. And by forcing us to do this work, the support for file formats in 2.2 will rock.

Among the three mostly usefull file formats that were delivered by the gmagick file format filter, there is XCF, the file format of the Gimp. After my blog, pusling (Sune Vuorela of the debian KDE team) reminded me about xcftools, a tool written by Henning Makholm that extract information from XCF files. Despite not being a library, the code to parse XCF files is well seperated from the command line logic, and I imported it in Krita (might be a good idea to turn it into a real library ?).

As mentioned, the previous filter was not really good, we were only able to get the layers, but no masks or no composite information, or opacity, as reported in this bug 106730. And with the xcftools based filter, we can read all that information, making XCF a first class citizen in Krita. There might be some issues with composite ops that behaves differently on some cases between application, but that something that we would need to fix as well.

For the other way around, to import from Krita into the Gimp, the OpenRaster Archiving format would be the way to go.

About other file formats, Boudewijn is already working on PSD support. The last important one is GIF support, which will probably be done using libgif.

22:03, Friday, 20 November UTC

Chani Armitage (Chani)

me too me too


Yep, I’m a Nokia Certified Qt Developer too.

Also, I'm going to CampKDE :)

Life’s been crazy busy for me as well these days. last time I blogged was the end of devdays, right? well, the day after I got home I had a midterm. still managed to get an above average mark despite having ignored half the material. ;) then there were assignments, and projects, and all sorts of meetings… I also seem to have got myself volunteered for my friend’s school project. they let me borrow an n900 to help out; how could I resist? ;) Then there were the people from devdays aaron mentioned, and I’m trying to do one more redesign of my mouse plugin UI before feature freeze, and there are other plasma things I’m praying I can sneak in under that deadline (let’s not jinx it by saying what they are ;) – and on top of all *that*, I’m starting something at school as well… oh yeah, and my social life finally seems to have returned to the level it was at before I went off to china. :)

Still, there are only two weeks of classes left. soon, soon I will have a break. :) a few weeks of relaxing and bugfixing (I need my plasma fix!), then back to school for what will likely be an even crazier semester. I’ll be taking four courses instead of three, one will be a Writing course (with a capital W!), there’s campkde and tokamak (assuming no conflicts with midterms), and several other things to keep me busy. I need to get back to my german practice, too; I’ve been letting that slide for most of this semester.

I think I’m pushing the limits of how much I can do without burning out. It’s fun. :)

21:27, Friday, 20 November UTC

Mike Arthur (mikearthur)

License to be Qt

Like my esteemed colleague at KDAB I’m also now a Nokia Certified Qt Developer!

Nokia Certified Qt Developer

Given that I just was an assistant on my first KDAB Qt training course in Berlin last week I’m happy I haven’t let down my fellow Qt experts at KDAB; I’m at the company meeting in Iceland so would never hear the end of it if I’d not passed…

There’s been some horse riding (which I boycotted in favour of cake), whale eating (tastes like moist beef and was a non-endangered species, absolving my guilt), soaking in the Blue Lagoon and much banter has been had. I’ve also been fighting with our time-tracking tool, Charm (which is in KDE SVN) to try and get Carbon and Cocoa events working nicely side-by-side (Carbon is the C-based API that is not supported for 64-bit applications, which are the default on 10.6). I was pleased to see that Qt Creator (my current C++ IDE of choice) also supports limited amounts of Objective C which has made things slightly less confusing for a certified Qt Developer ;)

20:36, Friday, 20 November UTC

Cyrille Berger

OpenGTL 0.9.12 and Shiva noise


OpenGTL 0.9.12

Earlier today I made a new release of OpenGTL (download page), version 0.9.12, for that release 23 tasks were completed, the main changes are:

  • Fixing thread safety issues at run time.
  • Progress report.
  • Many new mathematical functions for the Shiva standard library.
  • Replacement of the Shiva kernels random functions.
  • OpenGTL is now compiling and running on Mac OS X.

The first two points are important changes for krita, since the first one meant that with the previous releases we had to use mutex while executing Kernels, preventing to benefit from multi-core. The second one means the user can see something is happening in Krita when a filter is processed.

Random functions in Shiva

This new release also break the Shiva language compared to previous release, I try to prevent that, but since the language is still very young it was bound to happen. In previous releases I quickly introduced a rand() function, because I wanted to write a perlin noise generator. The problem with rand() is that it does not take a seed parameter, meaning that the function use the global seed, meaning that two consecutive call to ther perlin noise generator kernel gives two different results, without any kind of control. For graphics, we need to make sure that the result are reproductible, so now in 0.9.12, the function rand() has been replace by one that takes a seed parameter rand(output int seed).

Such a function is usefull at init time, to construct random structures, like those needed by the perlin noise. But this is not sufficient, we also need a random function that can be used while processing a pixel, and one that would always return the same value for a given pixel and a given seed, for instance to write a salt and pepper noise generator.

The problem of the rand(output int seed) function is that it works by incrementing the seed parameter, so that next time you call it, it gives a different result, so as long as the call are made sequentially it would work fine. But in case of Shiva (or Krita, for that matter), we cannot guarantee that those call will be made sequentially, and it is not possible to keep a value between the computation of two different pixels. Because we might just be interested in generating part of the image, or we might be executing the kernel in a multi-threaded environment. To solve this problem, about six monthes ago, in Krita, we developed an algorithm that takes the pixel coordinate and the seed, and return a pseudo-random number. For 0.9.12, I copied that algorithm in Shiva, giving birth to the second new function for random number generation, which is rand(int x, int y, int seed).

The code for the salt and pepper noise generator is:

kernel Noise
{
  void evaluatePixel(out pixel4 result)
  {
    int x = result.coord.x;
    int y = result.coord.y;
    for(int i = 0; i < 3; ++i)
    {
      result[i] = frand(x, y, 32);
    }
    result.setAlpha( 1.0);
  }
}

The code for the perlin noise generator is slightly more complicated and can be watch in the opengtl mercurial repository.

And the resulting images, salt and pepper noise on the left, and perlin noise on the right:

 

20:14, Friday, 20 November UTC

Sandro Andrade (sandroandrade)

Yes, certification rulez !


So, I’m also very very glad to become an official-certified-real-proven-* :) Nokia Certified Qt Developer. For sure a great boost in our effort and motivation to make Qt and KDE even better and better here in Brazil. Congratulations to Albert, Sebastian, Leinir, Ahiemstra, and the other guys.

19:44, Friday, 20 November UTC

Albert Astals Cid (TSDgeos)

Nokia Certified Qt Developer


So i just got a mail saying i'm now a Nokia Certified Qt Developer. Great!

19:29, Friday, 20 November UTC

Tomaz Canabrava (tomaz)

Promoting KDE in Brazil, November…


Engrish

We have 2 congress in the same week , same day. the second Festival de Software Livre de Belo Horizonte will happen in UNATEC, the Una Institute of Tecnology that helps opensource and will begin at 8a.m, 11/28. In the event there will be talks, workshops and activities to beginners and advanced users.

The Reason to be of the event is gather each time more professionals and entusiasts from all groups of tecnology, and spreading the word and filosofy of Free Software.

This one is being organized by the KDE-MG Group, and annma is already in love with them, so you should be in love with them too.

The other congress is SoliSC, The Catarninense Congress of Free Software, and it will present to the society from Santa Catarina the concepts that are behind FSF, showing that open solutions are not just an alternative but a reality in busness in information tecnology and information areas. days 26 and 27, current month. I will be giving a talk on this one, so stay tooned.

Brazilian Portuguese:

FSL – BH 2

“O 2º Festival de Software Livre de Belo Horizonte acontecerá na UNATEC – Instituto UNA de Tecnologia que apoia o Software Livre e terá início das atividades às 8:00hs de 28/11. No evento, serão realizadas palestras, oficinas e install fests tanto para iniciantes quanto para usuários avançados. O intuito do evento é agrupar cada vez mais os profissionais e entusiastas das diversas áreas da tecnologia, divulgando e ampliando o alcance da filosofia do Software Livre.

Local: UNATEC – Instituto UNA de Tecnologia Campus Barro Preto Rua Goitacazes n. 1159, Barro Preto – Belo Horizonte – MG” [referência: srv.fslbh.org] [www.br-linux.org ]

—- Solisc 2009

O Congresso Catarinense de Software Livre (SoLiSC) apresentará para a sociedade catarinense os conceitos que estão por trás do Software Livre, demonstrando que soluções abertas e livres deixaram de ser uma alternativa para ser uma realidade de negócio na área de tecnologia da informação e comunicação.
Software Livre é denominação dada a todos os programas de computador que permitem que seus usuários usem, copiem, modifiquem, aperfeiçoem e compartilhem os códigos de acordo com suas necessidades. [http://www.solisc.org.br]

19:19, Friday, 20 November UTC

Sebastian Kügler (sebas)

I’m a *real* developer …

… not just a marketing guy. :-) During the Qt Developer Days in Munich, I took the Qt certification exam (actually as one of the first people to take it). It was my birthday, so they let me pass:

Nokia Certified Qt Developer Also, right now I’m in Reykjavik, Iceland for the KDAB company meeting and 10 year anniversary. Preliminary conclusions: Watch out for roastbeef, it tastes like whale, riding on a horse feels like riding a square-wheeled bicycle (but slightly more scary) and having infinite amounts of energy under your rearside makes for interesting and relaxing uses and given a large-ish island with tectonic and seismic activity, you’ll find the capital at the most likely spot for an earthquake.

17:13, Friday, 20 November UTC

Stephen Kelly (steveire)

Akonadi applications sharing notes


There has been movement lately on getting notes into and out of Akonadi and sharing them between several applications. Currently in progress is porting of KJots to Akonadi, and creating a desktop notes solution based on Akonadi.

Sounds like an excuse for a screencast.

Ogg Link

Here again I can demonstrate that data is shared between the desktop notes and KJots, as both are using Akonadi. When I update a note in either KJots or on the desktop, the other views on the note is updated automatically and instantly.

The data is shared, not copied.

On display is actually two different Plasma widgets. One of the widgets shows a single note at a time. There are several such notes in the screencast. The other widget is the notes listing widget. This widget shows all of the Notes in a particular Collection, or seen another way, pages in a KJots Book.

The drag and drop of pages or notes onto the desktop works because of the recent work by sebas in that area. Individual plasmoids can advertise that they can handle particular types of URLs, and when a drop occurs, an instance of that plasmoid can be created. All Items in Akonadi have a unique URL for these kinds of use cases.

Also on show is a KJots plasmoid, which is a simple mini KJots stuffed into a plasmoid. It too can be configured to show the books and pages below a chosen book. It would be possible to have a different KJots book on each of your activities with different scraps of information in each organized however you like it.

This is part of a wider effort to improve notes in the KDE ecosystem and make use of some of our pillars, Akonadi, Plasma and Nepomuk. It’s all at prototyping and concept stage at the moment, so if you have any ideas about how you should be able to access your notes, now is the time to speak up.

There is also some discussion started to attempt to unify the the storage format we use for notes, and hopefully make it easier to share notes between more different applications and devices. Possibly even Tomboy notes could be shared if they are stored in a shared location and someone steps up to write an Akonadi resource for it. :)

16:41, Friday, 20 November UTC

Adriaan de Groot (adridg)

Privacy and metrics

On Wednesday the Washington Post’s “Security Fix” blog had a small item on privacy issues with the smart grid. It was most interesting for me because of the graph that was included: by looking at a simple metric (power draw in the house) one could reach conclusions on what was happening inside. Breakfast, lunch and dinner can be spotted. This isn’t much of an issue if the data is available only to the power company, stored securely, and applied only to its intended purpose for which it is collected. Presumably that’s to optimize power delivery.

But when the information is used outside of that context, then bad things can happen.

This kind of concern applies to all kinds of metrics that indirectly show what is happening inside a closed box. Consider an active developer on software project where the source repository is available publicly. This applies to lots of them — and CIA.vc makes relevant stats for many even more public. By looking at time stamps you can find out roughly when the developer is active. How accurate this is depends on the style of development, but I know I’m a commit-early, commit-often guy so you can (or used to be able to) find out when I’m awake by watching commits. No commits? I must be elsewhere. Commits skewed by three hours? I must be in Brasil, hacking.

Even that information isn’t all that bad, although it’s a derived piece of information that possibly wasn’t intended to be public. But you can use it for nefarious purposes (e.g. housebreaking). Power consumption of an encryption chip was once used to determine whether it was doing a multiply cycle or an add — and knowing that revealed bits of the key being used, and so extracted the key from the chip. That’s the kind of ancillary information leakage that we can also worry about.

All in all I think it comes down to: data collection technology isn’t bad per se, but the safeguards around the collected data and the purposes to which the data is put might be. Privacy then is a matter of trust in the people that hold the data to do the right thing (regrettably humans are susceptible to temptation).

11:43, Friday, 20 November UTC

Colin Guthrie (coling)

PulseAudio Phonon Support now in KDE trunk and heading towards 4.4

I’ve very pleased to announce that my work on Phonon to integrate support for PulseAudio has now been committed to trunk and will form part of KDE 4.4 \o/

There were a few teething problems due to some last minute merges I did (which I clearly didn’t test properly – my bad) and which I then went on to mis-interpret which led me to commit two rather silly things in phonon (a revert and then a revert of that revert!). What can I say… I need more caffeine obviously!

The slightly annoying news is that the support needed for this to work is not yet in a released version of PA. I do however have a simple patch for you here, that distro packagers are welcome to stealliberate from the Mandriva SVN. If you do this, you’ll also need to apply this minor patch to phonon:

diff --git a/phonon/CMakeLists.txt b/phonon/CMakeLists.txt
index c5ce57a..50a3851 100644
--- a/phonon/CMakeLists.txt
+++ b/phonon/CMakeLists.txt
@@ -8,7 +8,6 @@ endif (PHONON_BUILD_EXAMPLES)

 add_subdirectory(experimental)

-set(PULSEAUDIO_MINIMUM_VERSION "0.9.21")
 macro_optional_find_package(PulseAudio)
 macro_log_feature(PULSEAUDIO_FOUND "PulseAudio" "A cross-platform, networked sound server." "http://www.pulseaudio.org" FALSE "" "Allows audio playback via the PulseAudio soundserver when it is running")
 macro_optional_find_package(GLIB2)

Just so that it recognises your PA build.

There don’t seem to be any specific bugs yet, although I am dealing with something relating to streams going AWOL with Xine, but I’m not sure the problem is in this code. Further testing and feedback is much appreciated. Feel free to report problems to me directly or assign bugs to my kde (at) <this domain> account in b.k.o.

Have fun!

10:48, Friday, 20 November UTC

Alejandro Wainzinger (xevix)

Open Source Coding Hiatus


Where have you been?

So lately I've been occupied by a few things:
  • Family issues
  • Working for a startup company
  • University bureaucracy
  • Jobhunting
Which is not to say I've been without free time. What have I been using my free time for?
  • Studying natural languages more in-depth
  • Reading technical books, and inspiring books
  • Being with friends, having fun and discussing the near and long-term future
So where does this leave open-source coding, for which I've even been given the honor of being listed as author for a great project like Amarok? After all, I have a vested interest in continuing to improve something I spent so much time on. I'll explain a few factors of the times that I've tried to get back into coding for it.

Have you been coding in secret?

The nice thing about using git for development is that I can continue to work on a feature or large fix on the side, and then deploy it when ready. That said, this is the cycle I usually go through when I feel I'm going to have enough time and effort to code on Amarok:

  1. git pull
  2. make install
  3. Check out new stuff
  4. Figure out what I want to fix/add/work on
  5. Start working on it in a git branch
  6. Realize after a few hours, that this is going to take 1-2 weeks of dedicated coding, and stop.
I then may come back in a week or two, delete the old branch because I feel I was going about things the wrong way, and repeat this cycle. This is by no means productive, but is something I end up getting caught in lately.

Clearly this doesn't work, so what now?

So this time around I'm trying something new. I'm fully-documenting the issues I want fixed and how to go about them, and sitting on them a bit to see if I can mature them before coding. Also I'm trying to break them up into doable smaller pieces, so I can at least get checkpoints in progress, otherwise this isn't going to work at all.

And in the immediate future?

I am now entering my last two trimesters of undergraduate studies before graduation. Between work, school and family, I highly doubt I'll have the motivation to work on open source on the side. I'm aware there are others who can do this, and have that motivation, and I look up to and respect them, but I lack that. I hope that this next summer, I'll find myself more motivated and free.

07:25, Friday, 20 November UTC

Frederik Gladhorn (fregl)

Dead Stars

Fitting my earlier post about rating and stars in Get Hot New Stars Stuff , I just listened to “Dead Stars” by Covenant…

So this is all about stars. At first I wanted to answer the comments individually, but there are just too many.

A few points keep coming up:

  • The number of items in the Hot New Stuff Dialog is limited: not any more, the dialog will fetch more items if you scroll down. (I’ll do a screencast soon, promise!)
  • Updates: There is a category that shows only installed items, here it’s easy to update individual ones. Applications will have the possibility to query for updates without invoking the gui at some point, probably not in the initial release though.
  • Displaying the Rating of an item will most likely be the “five stars, just as in Nepomuk/Dolphin” variant. It shows the numerical rating in a tooltip (yeah, we all love numbers, don’t we?? though I would still download what I like, not what the rating tells me to like). I stretched the scale a bit, since ratings from 0-20 and 80-100 are nowhere to be seen.
  • The user will be able to rate items, but only gets to choose “I like it” or “Don’t like it”, same as on openDesktop.org.
  • Different categories (as seen on openDesktop.org for example) will probably return, I would like to see some mockup how to integrate that into the dialog without having lots of combo boxes around…
  • The scrolling is badly broken, I really need to look into that.
  • It’s getting late, I should be in bed ;)
The mouse is on the second item with the actual rating as tooltip.

The mouse is on the second item with the actual rating as tooltip.

01:53, Friday, 20 November UTC

Hans Chen (Mogger)

Starting with Git


Recently I’ve started to use Git more and more for various projects – code, university stuff and important dotfiles, just to name a few examples. Not completely used to the workflow yet, but I feel pretty comfortable with the basic Git commands now.

In the beginning I had a hard time grasping the concept of Git and version control systems in general. Two online resources helped me a lot in understanding Git, which I also want to share with you:

  • The Git Parable
    After reading it, you’ll still have no clue how to use Git. But you will know for what purposes Git was designed, and what Git is. From here it’ll be much easier to learn the commands to use Git.
  • Pro Git
    Online version of the Pro Git book; well written text and many pretty pictures make it easy to understand what happens “behind the scenes”. Goes through most stuff you’ll need to get started with Git.

Thanks go to Luca (einar77) and Ingo (neverendingo) for the tip about Pro Git.

My own learning experience

Prior to Git, I had no experience with version control systems at all (checking out trunk doesn’t count). Sometimes I copied directories manually, but it would always end up in a mess.

First I tried to go for the “learn by doing” way. This wasn’t very successful – when working on a something I would rather focus on finishing it than messing around with Git, in particular if deadlines were involved. In the end I didn’t get to use Git that often.

One day I stumbled upon The Git Parable which I linked to above. After reading it, I felt motivated to learn Git again – especially after hearing that KDE eventually is going to be moved to Git. I got the link to the Pro Git site on IRC and read through the first chapters. Git finally started to make sense.

I hope you’ll find these two links as useful as I did. Happy gitting!

01:03, Friday, 20 November UTC

November 19, 2009

Jonathan Riddell (riddell)

KDE Licensing Policy Changes

Today I updated the KDE Licensing Policy with a couple of changes following requests from folks. Most notably Creative Commons is now allowed. This is only for standalone media files (such as an image for a splash screen) and not for anything which might want to be mixed with GPL material such as icons. "Attribution-Share Alike 3.0 Unported" is the version allowed. The other change is requiring BSD licencing for CMake modules, which brings the policy into line with existing practice.

23:01, Thursday, 19 November UTC

Aaron Seigo (aseigo)

Javascript plasmoids

The other day I met with a couple of local entrepreneurs whom Chani had met at the recent Qt Dev Days in California. The four of us gathered around some tasty vegetarian vittles and discussed small devices, Qt and Plasma. It was a good time and we found a lot of common ground .. including agreeing that Javascript is a great language for writing little user interface elements quickly that will run reliably.

In that vein, I've been working on getting the Simplified Javascript API for writing Plasmoids ready for creating more than just toys. To that end, all the Plasma user interface elements (pushbuttons, etc) are available including the complex ones like the TabBar, Animations are fully supported, we have AnchorLayouts (and maybe even GridLayouts soon) in addition to LinearLayouts and, perhaps most exciting, we now have the ability to load API extensions.

An API extension is a security controlled set of functions and objects that are loaded on demand. These extensions are requested by the widget by listing the required and/or the optional extensions it wants loaded in its metadata.desktop file. This way, even prior to the widget being loaded we can know what it will want. The Simplified Javascript Engine then decides if the widget will actually get that extension or not.

There are a set of built-in extensions currently defined: FileDialog, LocalIO, NetworkIO, HTTP and LaunchApp. They each do what you expect, with NetworkIO being a generalization of HTTP. I'm busy implementing each of them between now and the end of next week. We aren't limited to these built-ins, however: any QScriptEngine extension plugin can be loaded, security willing, just by listing it in the metadata.desktop file. This means that widgets can be extended with arbitrary functionality.

The security framework is still in development, but all the hooks are there with some of the pieces in place now. Most importantly, we know exactly how we want to implement the missing bits. I'll be working on filling in the gaps as I can, and hopefully when Rob returns with hacking time again (or someone else steps up in the meantime) that will go a bit faster.

The other important bit has been to actually document what the Simplified Javascript API provides. The relevant file in kdebase/workspace/plasma/design/ has been morphing into increasingly comprehensive API documentation. What I need to do is turn this mammoth file int a nice set of web pages that I can add to a revamped plasma.kde.org. Any one out there up to doing some HTML slicing and dicing?

There are also a growing number of examples to augment the documentation and which are just begging for Techbase tutorials to be written around.

Add to this the progress being made with Plasmate and the ability to script plasma-desktop itself with Javascript and things are looking better and better for Javascript in 4.4. Huzzah.

In an unrelated side note, Markey's blog entry on finding a balance in software configurability is really well written and makes several excellent points with great clarity. A must read if you haven't already seen it, in my humble opinion. :)

22:54, Thursday, 19 November UTC

Jonathan Riddell (riddell)

How are you? Kubuntu in Dallas

The Ubuntu Developer Summit is happening this week in Dallas. The theme of the discussions is LTS and what it will take to have a release in six months which can be supported for three years hence. We've been having sessions on packaging, development, bugs policy, translations and more. You can find the schedule and how to take part in sessions on the summit website, there are icecast streams for all the rooms. The Kubuntu specs are on this wiki page still works in progress of course. It's going to be great to have a KDE 4 release suitable for LTS, just six months to do it!


Some of the Kubuntu Team take to the ice rink

20:06, Thursday, 19 November UTC

Aaron Seigo (aseigo)

let's do coffee ;)

Things have been crazy busy lately on every single front in my life. This has come at the expense of not blogging much at all, which has sucked. So much has been going on, a lot of it very interesting and fun and which I would have liked to share with you as it was happening. Such is life, but we need to catch up. So grab a coffee (or whatever you prefer, tea maybe? :) and let's catch up!

I ended up at a fencing competition as a spectator this weekend cheering on S. (and editing text from the sidelines for the Akademy sponsorship brochure that Claudia, Kenny and Nuno are working on; it's looking great!) and then out for dinner with old friends here in Vancouver the day after that. I also completed one of the last I-just-moved-to-a-new-province tasks as well: I got my car registered and insured with the locals here in B.C. Turns out that my B.C. drivers license expired the same year I got my now previous car insurance in Alberta, which led them to give me 14 years of safe driving and pushing me into the highest discount bracket (and one year away from the highest rating bracket over all). Still, it was one more thing that filled in my schedule.

The KDE promo team is in high gear as well, and that's keeping me a bit more busy. The promo sprint they just had was a great way to punctuate the increase in activity we've been seeing. A Dot story will apparently appear sometime soon detailing what went on at the sprint, but there have already been a number of blog entries on planet.kde.org about it. One outcome of the sprint is that we're starting to organize our communication strategies a bit more. This was not, by far, the most important result of the sprint, but it's the one that's kept me busiest. I was really impressed, and surprised even, to see how many people were at the promo sprint and, as a result, how much they accomplished. But when you have a larger group of people, you need to step up the coordination as well.

I remember the first KDE release announcement I ever wrote. It was just me and a text editor and Coolo reminding me it needed to be ready in a day or two, latest. My how things have changed (and for the better).

I've also been hacking my brains out in a few different areas for 4.4, though I'll blog about some of that later. With the feature freeze behind us, it's become apparent just which items are going to drop off my "can do for 4.4" list, however. Most notably, I'm not going to get to notification queueing or a replacement for the desktop zoom in/out feature. These will have to wait for 4.5 as I work on other items that I hope will have bigger pay offs for 4.4. The items that are being left on the cutting room floor for 4.4 will fit in well with 4.5, though, I think.

I've already come to a determination as to what the focus for the Plasma family will be in 4.5. We've already discussed it a bit on the mailing list, but I won't be announcing it publicly until Tokamak IV which will be in February in Nuremberg. We'll be toasting with the OpenSuse people (congrats on 11.2, btw!) and hopefully enjoying the company of a few friends from elsewhere in industry as well. Most importantly, we'll be setting the Plasma agenda for 4.5. Much love will be had. (Or something, it just sounded like a good ending.)

I'm also in another "prep for shows" cycle. I'm going to hopefully be making it to Fedora's FUDCon in December (congrats on F12 and the KDE spin, btw! Seems to be the most popular spin by a kilometer! :) and am gearing up for one or two others.

One show that caught my eye is the Linux Audio Conference. The people involved in getting it going are quality folk (a big shout out to Armijn!) and if there's an area that F/OSS needs attention it's audio. Our stack is a mess at the moment, and not because of API issues but because we're doing a poor job of system integration, shoving features out to our users way before the software is ready for that and the like. I'm hoping that LAC will be well attended and some positive, useful results that will lead to improvements in how we handle our audio stack with care and respect will emerge as a result. I think it's really interesting that LAC will also focus on using media and will be striving to get media content creators there as well. This should help widen the scope beyond infrastructure navel gazers when it comes to audio and get a lot of great feedback as well as grow our shared community around F/OSS audio.

Now, I couldn't mention shows without talking about the most important gathering in the next six months as far as KDE is concerned. Yes, I'm talking about Camp KDE. I'll be there and I plan to bring a truck load of hugs and inspiration with me. I hope to see you there!

19:50, Thursday, 19 November UTC

Andrew Coles (coles)

The negative-height barrier of helping out

This evening, #kde-edu on IRC was host to a meeting between various KDE-Edu developers and interested parties, concerning the state of KDE-Edu, and future directions. Whilst annma was unable to make it, Nightrose did a great job chairing the evening, and the meeting was very productive.

The reason I write about it is not due to KDE-Edu per sé (though watch planetkde.org for other people's posts on the topic), but rather about how people can help out in KDE for anyone thinking of doing so. Simply put, under the right conditions, the barrier for helping out has negative height, i.e. helping out is so easy that it's almost easier than not doing. At the meeting (bearing in mind I'm not an edu developer) I was planning mainly to watch, maybe contribute any observations I'd made, and so on. But, when it turned out I'd been doodling a list that people would like, I found myself taking minutes. Similarly, fregl realised he'd just volunteered to mentor people doing junior jobs in KDE-Edu, and so on and so forth.

So, I'd encourage anyone lurking who'd like to help out in KDE, in any way - development, documentation, promotion, feedback, testing, etc. etc. - to have a chat to people already doing something along those lines. Heck, bring a friend, too. And, who knows, you might find the right job for you has landed in your lap.

17:14, Thursday, 19 November UTC

Stefan Majewsky (majewsky)

Blog’s better than backup


It’s very common that people post the scripts they’ve written for their daily tasks. Seems like blogs have become the leading backup solution for Bash scripts these days. I’ve decided to join this growing group of people, and share with you a tiny script from my ~/bin which is called “cleanup”. The code is at the bottom of the post.

When you launch cleanup, it will remove any files that match “*~” (i.e., the backup files which KWrite, Kate and many other apps create), and it will print out any files that have been removed. Additionally, it will look for a Makefile, and execute “make clean” if it has a clean rule. Everything operates on the pwd only. All in all, a very handy tool to clean the ls output.

Disclaimer: The “*~” backup files have use cases, and the “clean” rule may not do what you think it does. So when using the cleanup script, be aware of the possible consequences.


#!/bin/sh
function hasMakeClean()
{
    FALSE=1; TRUE=0
    [ -f Makefile ] || return $FALSE
    grep '^clean *\:' Makefile &>/dev/null || return $FALSE
    return $TRUE
}

case $1 in
    --help|-h|--usage|-u)
        echo Usage: $0 '[-s|--simulate]'
        ;;
    --simulate|-s)
        find . -name '*~'
        hasMakeClean && echo "> make clean located."
        ;;
    *)
        find . -name '*~' -exec rm {} \; -exec echo {} \;
        hasMakeClean && echo "> make clean" && make clean
        ;;
esac

Posted in The command line and I

15:18, Thursday, 19 November UTC

Thomas Zander (ThomasZ)

Two conferences about ODF

In the week of November 2nd I travelled to a little village in Italy called Orvieto. The reason for going to this lovely town is two conferences in a row.
The first one is the OpenDocument plugfest. The second is the openOffice.org conference, both of which were new experiences for me.

The ODF plugfest is a meeting where different implementors of a standard come together and come up with user scenarios and test how well they port between the implementations.
So you’ll see a document created in KWord being opened in OpenOffice.org and Microsoft Office and investigations started when the resuls are not as expected.

I did a presentation at the event of the progress made in the Qt (QTextDocumentWriter) and KOffice implementations of ODF and naturally the Maemo Office reader and last mentioned the Nokia sponsored officeshots.org node we are preparing.
The next day I had another presentation where I showed an interoperability issue with right-to-left languages. Several bugs were found in OpenOffice.org and MSOffice and a discussion followed to share the concepts of right-to-left text and (visual) text-alignment. These are tricky things so its important to all have the same ideas on how it should work.

The event had lots of talks, essentially making is clear we are not the only ones doing ODF and showing whats going on in this space. It was interesting to see how far MSOffice has come with ODF, and at the same time how much we need KOffice to become the big second implementor. MS said several times that for optimum interoperability they choose a solution that works better with OOo and not what the specification says it should do. Having a second independent implementation will benefit us all by keeping the standard authoritative, not the most popular implementation.

The event consisted of several interoperability scenarios, essentially manual testing of making a document, saving it in your app and adding it to the wiki. Then loading everyone else’s document and checking whats broken. Followed with an investigation how you can do better. Its a good way to keep the developers focussed so they don’t spent all their time on one feature and being bad overall. KOffice did pretty well here, except for the areas that were already marked as experimental anyway (like change tracking, which is work-in-progress).

Joining the OpenOffice.org conference was making me a bit uneasy, on going there I felt like I’m a spy in the opposite camp. How wrong I could be! The conference was indeed called OpenOffice.org but essentially is a collection of people interested in the open document format as well as the main implementation. There were lots of people from governments and other stakeholders that made clear they were just as interested in KWord as in any other ODF implementation.
This is a stark contrast to the usual events I go to where the majority of participants are volunteers or students. For I went through my business cards quite fast and wished I had brought more.
As usual I get a lot of good energy from these conferences, so many friendly faces, good talks and this being Italy, I had quite good food too ;)

I’m always happy to get a face to a name I’ve been emailing with and nothing works better than a conference in a country where wine is as cheap as water during dinner.

15:07, Thursday, 19 November UTC

Frederik Gladhorn (fregl)

KNewStuff3

Finally LibAttica has landed in kdesupport (that’s where additional libraries are kept, that are not by definition part of kdelibs). Téo promised to bring his price winning Amarok about dialog into KDE-Land for KDE 4.5 :)

I am just about to finish the first big big re-factoring of our Get Hot New Stuff framework. Since it got ported to KDE 4, Jeremy kept it up and running but didn’t have a chance to run with it due to some issues that belong to the land of “real life”. I poked at it two years ago, but then I’m a lazy bummer, so nothing at all happened there either.

Finally, Frank pushed me to get around and do work work on the dialog. The version in our re-factoring branch is ready to be merged into kdelibs, take advantage of LibAttica and just wants to put a smile on your face. Well, it’s not quite there yet, some features are missing - just the ones that are important to me :( that is the social community interaction part. Rating items, seeing more information about the author and so on. But with LibAttica doing the actual work, it’s at the tips of my fingers. Just need to do the right connections. So far I’ve been redoing all the backend stuff.

It’’s time to start polishing our good old dialog a bit. And here I’d like feedback from you! I have experimented with different ways of showing the rating of an item. Let’s say, we get a number between 0 and 100, how should we represent that in the user interface? In the original version we showed the number “Rating: 79″. Maybe not the most visual way. How about a progress bar? Nope, doesn’t really fit. Nepomuk uses stars. Those fit very well with the “Get Hot New Stars” icon that we have for “Get Hot New Stuff”. So why not go and borrow the widget? In the first iteration, I used 5 stars, just like Nepomuk. But it didn’t seem quite right to reduce the large range 0-100 to that. Plus the widget looks insanely huge and dominates the dialog just a bit too much for my taste. So I personally prefer the ten-little-stars variant.

But I probably think much too limited, knowing what goes on in the background… And I still have the old dialogs in mind. So dear reader, let me see some creative mockups, ideas and fresh ways to go about this dialog and it’s layout, contents and so on. Why not layout items in a grid? Something completely different? Throw it at me. Maybe the next version will be yours! Should we have different layouts for showing Wallpapers (images in general) and things that don’t necessarily have preview pictures? Vocabulary files usually are not that visible. Plasma Applets should have a preview, but here the text is important.

You can reach me at lastname@kde.org. Since Frederik is my firstname, use the other one ;)

And if you ask yourself as developer, what will change, that’s easy to explain. Instead of having the somewhat strange logic of going through a class to give you a dialog, you will use the new dialog just like any other KDialog - either modal or not. When you’re done with it, ask it for a list of changed or updated items and be happy ;) The only thing you need as well is a appname.knsrc file which is just a KConfig file that contains a bit of information about where to download from, how to install the items. That’s usually two lines and I’ll put an updated tutorial on techbase. Speaking of which, I started a small Attica tutorial, let me know if you’d like to read on or there’s something unclear about it. Porting an application that uses the Hot New Stuff framework already should take no longer than ten minutes.

Many thanks to Frank and hive01.com for making this possible!

11:49, Thursday, 19 November UTC

Adriaan de Groot (adridg)

Who is the FSFE?

The FSFE stand at FSCONS was staffed by a mix of full-time employees, interns, volunteers, Fellows, country team leads and (occasionally) anyone who would stand there for a few minutes while the rest took off for a food break. In order to show who the FSFE is, I took to drawing little portraits on the whiteboard. Now, my artistic skills are well known — I believe I’ve written of my sheer awesomeness with Kolourpaint; phrases like “skillz like a road-kill hedgehog” apply. Nonetheless, here is a little flash-card which you can use to identify FSFE people at your next conference.

people of FSFE flashcard

10:58, Thursday, 19 November UTC

Mark Kretschmann (markey)

Micro-Options, Many-Options, No-Options? A practical guide to help you decide.

Not very long ago, Aaron wrote an article about improving our user experience, stating that "Micro-Options Suck". Coincidentally, an article appeared on dot.kde.org only a few hours later, stating the following: "Choice Is Not A Usability Problem".

Ardent readers will notice that there is possibly a contradiction here. In this article I would like to explain why this is not really a contradiction, but rather a misunderstanding. To get us started, let's make a jump back in time (using Flux Capacitor technology):

The year is 2004. It's cold. You are alone. There is a house in the north (called "KDE"), and a house in the south ("GNOME"). Press "n" or "s".

> n

You have entered the house of KDE. It's a big house, full of obscure items. The sheer number of items is highly impressive, but you get confused. It is too much. What is your next step? Press "n" or "s".

> s

You have entered the house of GNOME. This house is neat, clean, but also kind of empty. There are very few things to play with. You get confused. What is your next step?

> I give up. User reboots into Windows.


The gist of this little analogy:

KDE was wrong. GNOME was wrong. Also - they both were right!


This is quite obviously another contradiction. Obviously this means that Mark is not quite right in the head! Well, you're possibly right on both accounts, but let me explain why it actually makes sense: The truth is somewhere in between.

KDE has historically been known for being "the nerd's desktop". Basically, we were so proud of having our own desktop that we quickly determined that giving everyone as much freedom as possible is ideal. After all, the competition (Windows) did not offer this. Developer A came along, going "Hey, I have this fancy idea. It's a bit weird, but let me show you!". Developer B was quick to reply: "Hell yeah, why not? After all this is our own desktop. We can make all of our dreams come true. Let's do it!"

GNOME has historically been known for being very sparse with options. They did this for a good reason: Someone smart realized that KDE was totally going overboard with options. Too much is too much. Let me show you a classical example:




Now let me show you an example of the Dolphin settings dialog:



Dolphin has won 2009's Akademy Award for "Best Application". The above screenshot demonstrates one of our reasons for choosing it: Peter Penz realized what generations of GUI developers (both in KDE and GNOME) got wrong: The true secret to getting your settings right is choosing the essential ones, while making good choices for defaults that don't need micro-options.

Unfortunately, this is not easy, and it separates the good GUI designer from the bad one. In fact making these choices is bloody damn hard, I kid you not. It requires a lot of thought, experience, and taste. But in the end, you, as a developer, are responsible for making these choices. Creating software is not about giving the user a LEGO blocks game. If options get too complex, the users might as well learn programming and do it all by themselves. That's because, if you think about it, choosing an option is programming: You make the program use one code path, or a different one. This is essentially the same as an "if() {}; else() {};" block wrapped in GUI sugar.

To sum it up:

  • Before adding an option, think hard about it. Could the same be achieved with a smarter algorithm? Often options are bad excuses for deciding between one bad implementation and another bad one. Find a good one!


  • Don't try to solve the problem by removing all options. Some options are very useful, and they are actually needed. Finding out which of these are needed is the developer's task. It's a hard task, but it can be done.


  • Consider asking professionals. We have a KDE Usability team, comprised of real experts on this topic. Among them is Celeste, a member of the KDE board. She knows what she's talking about, and she's generally very helpful. Don't be shy, ask them!


  • That's it for this time, I hope you will be able to get something useful out of this blog. Remember, it's not meant as bashing, but rather as useful advice, stemming from many years of experience with these things (we Amarok developers have made our good share of mistakes as well, there is little doubt about that).


    Thanks for reading :-)

    10:21, Thursday, 19 November UTC

    Matt Rogers (mattr)

    kde bugzilla ui changes: feedback wanted

    If you’ve been reading the kde-core-devel mailing list, there’s been some talk recently about bugzilla, how much it sucks, whether we should switch, and alternative tools to switch to. However, only one person told me about something that could be improved. So, in order to get feedback on whether or not our customizations that are currently live on bugs.kde.org are hindering vs. helping, I’ve changed the layout on bugstest.kde.org back to the standard default bugzilla layout.

    Please, if you use kde’s bugzilla currently, take some time to test out bugstest.kde.org. When you do this, please send feedback. The feedback should be something that we’re doing on the live site that is done better by the test site.  It can be good or bad!This can be in the form of a bug report in bugs.kde.org against the bugs.kde.org product, or sending me a simple email. Please include changes that you want made, or specific issues with the site so that I can at least look at fixing them.

    I get that a lot of KDE folks are not happy with our current Bugzilla. I’m glad that you want to have good tools to work with. So far, I haven’t really seen anything that’s better. I’ve only seen systems that do things differently, which means that we can emulate that with Bugzilla, most likely. That’s after using Jira, Mantis, Flyspray, Bugzilla, and Redmine, and an old version of RT. Why not work on improving our current tool? If you think that Bugzilla has fundamental problems that require switching, I want to know what those are too.

    05:29, Thursday, 19 November UTC

    November 18, 2009

    Adriaan de Groot (adridg)

    An alternative to KRecipes

    Every now and then I post a recipe on this blog, and sometimes I muse about KRecipes, and there have been a few KDE events (the launch event in Mountain View, or CampKDE) where I’ve baked cookies or done other foodie-oriented activities. You can usually count on me to go looking for interesting food (there is no guinea-pig to eat in London, BTW) at events as well. But this winter season, I’m looking at something different. We are looking at something different. The “we” here is the FSFE, and we’ve decided that there’s worse things to do than cook a lovely dinner for some of our friends. So as part of our 2009 Fundraiser the executive team (comprised of at least three affirmed foodies — I’m not sure we have anyone who can function as a sommelier though) will be cooking a lovely dinner for one lucky sponsor of the FSFE.

    Perhaps I’ll be able to practice this weekend with Claudia in Berlin — I seem to remember we got along pretty well cooking dinner in Paul’s appartment last year, but it’s a little hazy. Otherwise I’m left to come up with something creative to do with the rutabaga in this week’s vegetable hamper all on my own.

    So watch out: Freedom Food might be coming your way.

    21:47, Wednesday, 18 November UTC

    Adriaan de Groot (adridg)

    The Science of Innovation

    A somewhat odd article that touches on patents and science crossed my desk last week in the weekend science section of my newspaper, the NRC. It’s about an experiment used to detect dark matter, the DAMA experiment undertaken under the Gran Sasso mountain. Science is largely about reproducibility, at least in the physical sciences: an experiment must be repeatable for it to have any weight as a data point. The reporting might be a little sketchy here, but it claims that the experiment is not repeatable (by researchers elsewhere) because there’s a *patent* on some parts of the original experiment and no-one can deliver the parts to another group of researchers without violating the patent license. The patent holders in this case are the research group who did the experiment in the first place.

    Now, this might simply come down to a basic patent licensing dispute (which might be resolved either by granting special permission by the patent holder to another research group, or by re-using some of the original equipment, or by working around the experiment design entirely), but it’s certainly an illustration of how patents can stand in the way of even basic science questions asking “is this true?”

    21:31, Wednesday, 18 November UTC

    Kamoso

    We are still alive! summary of the last weeks in kamoso land.


    We have been quite quiet the last weeks on blog posting, but that doesn’t mean that we’re not working on kamoso. So if you are one of those who think that kamoso is “yet another dead kde webcam project” you’re wrong :)
    Here we have some heads up.

    Basic webcam control arrived:

    Now, the brightness, contrast, hue, saturation and gamma could be configured by using the Kkamoso options. Those settings are saved per webcam, which means that you’ll be able to adjust these properties to get the best of each webcam do you have.
    As always a picture is worth than a thousands of words:

    Kamoso basic controls

    First effects landed on kamoso:

    When developing the basic controls, we decided to create a PoC (Proof of concept) of what will be the effects in kamoso. We don’t have an interface to add them (yet) but we should get some before the next release if everything works fine.
    Of course the mandatory screenshoot here:

    Kamoso first effect

    Kamoso is now using kipi-plugins:

    Kamoso is now using kipi-plugins, so what does that mean to you? This means that with a little of effort kamoso will be able to export to flickr, ipod and basically anything that kipi-plugins support (you can check digikam where it’s been deployed for years). As well, kipi-plugins will receive support for Youtube. :)

    Hey we need your help!

    If you’re willing to help but you’re not a developer don’t worry! We have plenty of work for you.

    1. Translations! if you want to contribute by translating kamoso please, contact to “aleixpol at kde dot org”
    2. A new semaphore design
    3. An interface to add effects

    Thats all for the moment! maybe in some days we’ll release a new version of the stable branch with a few fixes related to video+voice synchronization. Stay tunned!

    18:34, Wednesday, 18 November UTC

    Andrea Diamantini (adjam)

    rekonq 0.3.0. Ending point, starting point.


    Just a micro blog today to say some facts. In case you live under the rocks, rekonq is a software that has just reached the “perfect social browser” status. In fact all rekonq users tend to try contacting me asking for bugs to fix or features to implement… :D

    Ok, stop joking and let’s see facts:

    • rekonq 0.3.0 has been released today. I’m aware that a lot of distro are just releasing some packages about. If yours is not on the list or you prefer compiling code, you can find it through kde-apps or sf.
    • With this release I can proudly say I reached my first goal: I feel I’m having “something” in my hands and a lot of people to share with. And I’m really happy about.
    • We have a lot of things in our TODO list here and I really can’t wait starting implementing them. So, I really need this release to restart my happy developing nights :D

    Enjoy!

    Posted in international, rekonq

    02:11, Wednesday, 18 November UTC

    Older blog entries