July 23, 2018

Este año estoy dejando de lado a los eventos que organiza los chicos de Barcelona Free Software y pero este será una excepción. Y es que tendremos a Tor en los meetups de Barcelona Free Software que se va a celebrar el próximo 24 de julio en la ciudad Condal.  Si pudiera, no me lo perdería.

Tor en los meetups de Barcelona Free Software

Tor en los meetups de Barcelona Free SoftwareSegún podemos leer en la página de la Wikipedia, Tor “es un proyecto cuyo objetivo principal es el desarrollo de una red de comunicaciones distribuida de baja latencia y superpuesta sobre internet, en la que el encaminamiento de los mensajes intercambiados entre los usuarios no revela su identidad, es decir, su dirección IP (anonimato a nivel de red) y que, además, mantiene la integridad y el secreto de la información que viaja por ella.”

Así que si quieres saber más Tor te propongo que asistas al próximo Meetup del Barcelona Free Software donde miembros de la Comunidad Tor explicarán detalles sobre su proyecto.

Los datos importantes de Tor en los meetups de Barcelona Free Software son los siguientes:

Además, recuerda que tendremos el usual “networking” con cerveza gratis incluida. Este meetup está organizado por KDE España, la asociación nacional de usuarios y desarrolladores de KDE, un proyecto de software libre que crea el Plasma Desktop y cientos de aplicaciones usando Qt y QML

No te lo pienses. ¡Te esperamos el martes 24 de julio!

Más información: Barcelona Free Software

¿Qué es Meetup?

Las charlas de Barcelona Free Software se organizan mediante Meetup, una red social que tiene una diferencia básica respecto a otras redes sociales, ya que  promueve la formación de grupos en torno a intereses con el fin de que sus miembros se conozcan cara a cara.

Es decir, los usuarios establecen contacto a través de grupos digitales nuevos o ya creados, partiendo de intereses comunes como política, libros, juegos, películas, salud, mascotas,

Could you tell us something about yourself?

Well, I’m not really sure what to tell about myself. My name is Takiro, I’m from Germany and I’ve liked drawing since I was a little kid although it wasn’t very easy because I never had decent paper and pens. Art wasn’t seen as an actual thing in my family, I guess. I started to take art more serious as a teenager, when I was 14 or 15, with traditional art. Everyone was into Mangas and Anime back then and so was I. I started out with poorly drawn fanarts of my favorite anthropomorphic characters before doing my own thing, and my style was typical Manga style until just a few years ago, when I transitioned to a more painterly style, trying to emulate the look of traditional paintings. I still do fanarts sometimes but nowadays I mostly paint anthropomorphic and feral animals often in magical fantasy settings inspired by video games and books.

Do you paint professionally, as a hobby artist, or both?

At the moment I’m more of a hobby artist, I sometimes do commissions for private clients but that rarely happens. I’d love to be a professional artist some day but I’m still not sure if I have what it takes because there is more to being a professional than just being good at art.

Timelapse of this painting

What genre(s) do you work in?

I love drawing pretty much anything animal and fantasy related. When I was a child I read a lot of books about Reynard the Fox and the other animals from the German fables. This influence lasts on and today I almost exclusively draw paintings of two-legged and four-legged anthropomorphic animals with foxes being my most recurring characters.

Whose work inspires you most — who are your role models as an artist?

To be honest, I never really thought about that. Definitely not one of the old masters. I had a pretty bad art education (maybe this is a German thing) and probably couldn’t tell a Picasso from a Da Vinci if my life depends on it. I think, when it comes to style, the artist who inspired me most in the early days was Michaela Frech with her realistic paintings.

Later, when I discovered that there is a whole community around anthropomorphic animals, I also found Tess Garman, who is part of Blotch, and Yee Chong, to just name a few. All of which had big influence on my style how it is now.

I had the amazing opportunity to meet Michaela Frech at an Art Show we both attended a year ago and later become friends with her. She helped me a lot with her professional advice and critique and enabled me to reach the skill level I now have.

As for my ideas, I get them mostly from fantasy movies and series, the novels and fables I read in my childhood and from video games. I often like to switch the characters with animals and think about how their animal behavior and characteristics could influences the plot.

Timelapse of this painting

How and when did you get to try digital painting for the first time?

Gosh, I think it was when I was in vocational school, 16 or so years ago. We had a class in PaintShop Pro, where we learned basic photo editing. Drawing and painting wasn’t really part of the class but shortly after a few lessons I discovered that it is fun, bought my very fist graphics tablet and made some baby steps in digital drawing and painting.

What makes you choose digital over traditional painting?

There are a few things. But I think what I like most about working digital is that it’s very forgiving. You can just throw some paint onto the digital canvas and look what sticks, then work with it and improve on it. For a long time my work flow was more like when you do a traditional painting, now I work more like a sculptor who adds or takes some clay and approximate the final result.

Another thing that made me choose digital over traditional is that you don’t need much space. As a teenager, I had only a small room and no real desk for a long time. Also didn’t had much space to store all my painting stuff.

And colors. I love the bright colors you usually only can have on a screen, which unfortunately is also a drawback when you print a painting.

How did you find out about Krita?

I just checked and it looks like I started using Krita in 2013. I’m not exactly sure how it happened but I remember that I was frustrated about all the other tools I tried by then, PaintShop, Corel, Photoshop, SAI, you name it. I already was almost completely transitioned to Linux, except for the painting part and then I remembered that my computer science teacher once mentioned a tool for Linux that was not gimp. Unfortunately I couldn’t remember the name so I typed “good painting tool for Linux -gimp” into a search engine and BAM! Krita.

What was your first impression?

I vaguely remember that it was like: “OMG, I can just draw. And brushes, it has nice brushes by default. And the example artworks are not shit.” Seriously, I looked into some other open source tools and the artworks they used to advertise the software often looked like they where made by someone who never held a pen and I thought: “That doesn’t look like you can do amazing stuff in that program.” But Krita made an amazing first impression.

What do you love about Krita?

I loved and still love that you can just pick it up and start painting. It’s default brushes already did a great job when I started to use it. I later found David Revoy’s brush pack which was awesome and I love what he did with the 4.0 brushes (although I had to bring two old friends back from 3.0). I think one of the greatest strengths of Krita today is the good choice of brushes that come with it. I still remember that it took me hours to configure some brushes in all the other tools I tried, before I could even start properly.

What do you think needs improvement in Krita? Is there anything that really annoys you?

If you have asked me back when I started using it, with version 2.7 I would have given you a page long list. There is an occasional crash now and then but now most of the major bugs are fixed and often, when I find a bug and want to report it, it’s already marked as resolved and I just have to wait for the next release.

The palette docker still has some issues and is a bit doggy. One of my favorite tools is the assistant tools, especially the vanishing points. I would like to group them and deactivate/move/hide whole groups. It can be very tricky if you have a lot of vanishing points in a picture.

What sets Krita apart from the other tools that you use?

For me it is the feeling that Krita is made with the artist in mind. Often when I use a tool I think: “Yeah that’s a cool tool with nice features but how am I supposed to use that?” This is a thing that I often find in a lot of Open Source software. Programmers put a lot of amazing know-how in the software that often can do awesome stuff but then the UI is terrible and the whole feel is off. And then an otherwise cool piece of software is unnecessary hard to use. I still find a few unpolished corners like that in Krita sometimes but other than that I felt comfortable from the start. It gives you just what you need.

If you had to pick one favourite of all your work done in Krita so far, what would it be, and why?

Hm, I have a few but I think my latest is “About to Fail”, an artwork I just finished recently. It shows my character in a typical situation where he is careless and about to mess up an experiment. I like it because, not only is it a typical artwork that includes a lot of things i like (fantasy, magic, animals) but also because it was a milestone in my personal development as an artist.

What techniques and brushes did you use in it?

First I did a rough sketch with the “Charcoal Rock Soft” brush, slowly working out the details until I have a grayscale image, then I keep refining details with the “Bristles Wet”, a brush that is originally from the Krita 3.0 default brush pack. After that I use “Wet Bristles Rough” to add the fluffyness of the fur. The smear brushes are my favorites and I use them mostly like you would in traditional painting. I love how they mix colors directly on the canvas. After the whole grayscale image was done I added textures, like the wood of the desk or the cracks in the wall. I used the default texture brushes for that. I try to use the default brushes as much as I can to concentrate on drawing and not wasting to much time on creating a brush that I maybe never use after that. Sometimes I tweak them a little of course. At last I add color with some layers set to Color blending mode, more rendering after that because some colored areas have to overlap and than it’s usually done. I have some recordings that illustrate pretty well how I work, unfortunately not for this particular artwork.

Where can people see more of your work?

I have a website but it’s pretty much a work in progress and just a pet project I rarely find time for, but I plan to make it fully functional in the future. I also have other galleries, for example on FurAffinity, which unfortunately does not allow high resolution uploads – and on InkBunny. I only post my finished works to my galleries. For sketches, WIPs and other stuff I use my twitter @Takiro_Ryo. On my YouTube channel I upload timelapsed recordings of my paintings, and some day maybe tutorials but I haven’t decided yet.

Anything else you’d like to share?

Krita is already an amazing Program and I sense a bright future for it in my twitchy tail. If you’re just starting out with digital painting, you should definitely start with Krita. Save the 300 bucks Photoshop would cost you and invest it in a decent tablet instead. Once you spend some time in Krita, you probably don’t want to switch to something else. Whereas Photoshop crushes you under a pile of functionality you never need as a painter, Krita will give you everything you need, and just that without wanting anything in return.

I also want to thank the Krita team for being amazing and for this interview opportunity, which is my first interview as an artist ever. Keep on the good work. I definitely will keep spreading the word about Krita.

At last I want to thank Michaela Frech for her help and also my boyfriend who had to bear a lot of my art related frustrations over the years.

July 22, 2018

Los fondos de pantalla son la carta de presentación de cualquier escritorio, siendo foco de odios y amores, y Plasma no es una excepción, aunque hay que reconocer que mucho usuarios sea lo primero que cambian cuando se instalan su sistema operativo o cambian de móvil. No obstante, me complace presentar el nuevo fondo de pantalla para Plasma 5.14. Además, y siguiendo con la tradición que inicié hace unos cuantos lanzamientos, he preparado un histórico de los otros wallpapers que ha disfrutado Plasma 5. Espero que os guste tanto como a mi me ha gustado ampliar esta entrada.

Nuevo fondo de pantalla para Plasma 5.14

De nuevo me toca presentaros el nuevo fondo de pantalla para Plasma 5.14 que nos ha vuelto a preparar Ken Vermette. Y en esta ocasión el cambio es notable, y aunque he de reconocer que en una primera impresión me ha parecido soso (creo que es por la elección de colores) debo reconocer que tiene algo que me ha llamado la atención. Además, estoy seguro que con pantallas de gran calidad mejorará ostensiblemente.

Se trata de “Cluster“, un fondo de pantalla que parece mostrarnos un cielo encaptado a base de capas de nubes hexagonales de colores rosaceos (y pastelosos) que deja un claro para mostrarnos un cielo estrellado. No obstante, mejor con palabras mejor visualizarlo vosotros mismos. Pinchad en la imagen para verla a pantalla completa.

Nuevo fondo de pantalla para Plasma 5.14

Ken Vermette comenta en la entrada de presentación de “Cluster” que es su primer fondo creado con Krita, aplicación que le ha gustado y que piensa utilizar en futuras creaciones. Además, ha dejado una discusión abierta en reddit para comentar el fondo de pantalla.

Los fondos de pantalla de Plasma 5

Es el momento de echar un vistazo al pasado y realizar una compilación de los fondos de pantalla que el equipo de diseño de la Comunidad KDE (KVDG) nos ha ido ofreciendo en los lanzamientos mayores del escritorio Plasma.

Veamos las grandes creaciones para Plasma en versión reducida, aunque pinchando en ellos podrás obtener una versión de mayor tamaño, y al final del artículo tendrás el enlace a la carpeta virtual donde están todos en varios tamaños.

Plasma 5.0

Fue Nuno Pinheiro, el veterano diseñador de la Comunidad KDE y responsable del aspecto visual de KDE 4, el encargado de iniciar la serie con un fondo de pantalla elegante en tonos pastel. Fue una excelente tarjeta de presentación durante el primer año de existencia del entorno de trabajo más moderno y avanzado del mercado, asentando la idea visual inicial de colores y triángulos como base de los diseños, aunque fue una idea que ha ido evolucionando a lo largo de tiempo.

Plasma 5.0 de Nuno Pinheiro_600

Plasma 5.2

Para la primera revisión anual de Plasma nos obsequiaron con “Vibrant”, un  fondo de pantalla que seguía la estética triangular iniciada por Nuno pero añadía colores más vivos. Empieza la era de Ken Vermette, el diseñador que ha tomado las riendas de los fondos de pantalla oficiales de Plasma 5 y nos está proporcionado grandes lienzos.

Plasma 5.2 Vibrant de Ken Vermette_600

Plasma 5.3

El orden empezó a perderse con la nueva versión del fondo de pantalla para Plasma 5.3 llamado “Deep” . De nuevo formas triangulares y colores todavía más vivos en un precioso diseño de Ken Vermette. Se intuye la evolución hacia un diseño ligeramente 3D ya que los triángulos empiezan a superponerse y a crearse sombras.

Plasma 5.3 Deep de Ken Vermette_600

Plasma 5.4

“Horizon”  fue el nombre elegido para el siguiente fondo de pantalla, que continúa con los triángulos de colores vivos pero en los que se muestra las primeras deformaciones. Si se observa bien, el título viene definido por la línea del horizonte que separa las dos superficies. Sigue subiendo la variedad de colores.

Plasma 5.4 Horizon Ken Vermette_600

Plasma 5.5

Para el lanzamiento de la quinta versión de Plasma se siguió evolucionando y se dio otra vuelta de tuerca más a la idea inicial. Seguimos con una base de triángulos pero ahora con una deformación que le da un aspecto 3D, con la aparición de una textura que cogerá protagonismo en las próximas versiones. Así se consigue un tema precioso y colorido que Ken tituló como “Event Night” y que fue lanzado con otros dos: “Event day” y “Pastel Hills”.

Plasma 5.5 Event de Ken Vermette_600

Más información: Ken Vermette – Spooky Scary Post-Halloween Monster Post

Plasma 5.6

“Graphite”, el sexto fondo de la serie,  es un tema que “aparta” los triángulos a un segundo plano, quedando en un primer las grandes superficies de colores fuertes pero sobrios. Otro excelente fondo que simboliza la transición entre los dos estilos que conviven en esta serie de fondos de pantalla.

Plasma 5.6 Graphite de Ken Vermette_600

Plasma 5.7

Cambio de tercio. Los triángulos dejaron de ser protagonistas aunque siguen apareciendo en el diseño de este fondo de pantalla llamado “Skylight”. Ahora los colores vivos pero sobrios son los  predominantes en el penúltimo fondo de pantalla oficial de Ken para Plasma 5.

Plasma 5.7 Skylight de Ken Vermette_600

Más información: Ken Vermette – That Time of the Cycle

Plasma 5.8

Ken Vermette nos presentó el noveno fondo de pantalla oficial para el escritorio Plasma 5.8. Un fondo llamado “Bizmuth” que sigue con las formas abstractas geométricas, con centenares de triángulos y colores vivos pero que incorpora curvas. Un soplo de aire precioso para la primera versión de largo soporte de Plasma que además venía con la novedad de ser el primer fondo de pantalla con resolución 4K UHD.

Nuevo fondo de pantalla para Plasma 5.8

Más información: Ken Vermette – Queueing up for Plasma 5.8

Plasma 5.9

Ken Vermette siguen presentándonos unos espectaculares fondos de pantalla para Plasma 5. En esta ocasión lo llamo “Canopee” y sigue con formas abstractas geométricas, con centenares de triángulos y paralelepípedos, donde dominan los colores azul y verde, con una cinta marrón y toques amarillos.

Un fondo de pantalla menos vistoso pero un poco más sobrio que el anterior. Espero que os guste tanto como a mi. Lo cierto es que me estoy aficionando a este tipo de fondos. Podéis pinchar en la imagen inferior para descargaros el nuevo fondo de pantalla para Plasma 5.9.

Nuevo fondo de pantalla para Plasma 5.9

Por si tenéis curiosidad en el proceso de creación de Canopee os recomiendo que os leáis la entrada que ha escrito el mismo Ken Vermette – Plasma 5.9 Wallpaper “Canopee” donde relata con pelo y señales el nacimiento del mismo.

Plasma 5.10

Y siguió el gran Ken Vermette presentándonos unos espectaculares fondos de pantalla para Plasma 5. En esta ocasión lo llamó “Cascade”, y continua con las forma de “Canopee” en su parte derecha pero que presenta una más que interesante ola casi plana azulada en su parte izquierda. Personalmente me recuerda a la transición entre corteza continental a oceánica, con su plataforma continental y su talud.

Nuevo fondo de pantalla para Plasma 5.10

Más información y descarga: Store.kde

Plasma 5.11

“Opal” fue el nombre con el que Ken Vermette bautizó el  fondo de pantalla para Plasma 5.11. Un fondo que seguía con formas geométricas y colores apastelados pero que se desmarca de los anteriores por la elección de un tono mucho más oscuro en la composición. Podéis leer parte de las impresiones de Ken en la entrada de su blog donde presenta el fondo.

Nuevo fondo de pantalla para Plasma 5.11

Puedes descargar el fondo de pantalla “Opal” para casi cualquier resolución que desees desde este enlace.

Plasma 5.13

En esta ocasión Jens lo bautizó con el nombre de “Kokkini” y viene a querer representar una playa roja que hay en Grecia, pero pasada por el filtro habitual de la gama de wallpapers de la serie Plasma 5:

Nuevo fondo de pantalla para Plasma 5.13

Más información y descarga: Opendesktop

Y para ver la evolución ahora debéis subir al inicio y ver el nuevo fondo de pantalla de Plasma 5.14

En definitiva, espero que os haya gustado este recorrido por los wallpapers de Plasma tanto como a mi. Por cierto, si queréis descargarlos para casi cualquier resolución os dejo el siguiente enlace que me ha proporcionado el mismo Ken Vermetten.

Here’s another big week for KDE’s Usability and Productivity initiative. We’re getting ready for the release of KDE Applications 18.08–the second of our three yearly Applications releases. As the numbers in the version suggest, it will be released in August of 2018, about a month from now. As such, there’s been a lot of focus on new features and polish for core KDE apps such as Dolphin, Gwenview, Konsole, and Spectacle. We’re also ramping up our work for KDE Plasma 5.14, which is scheduled for release in October.

To learn more about KDE’s software release schedule, check out https://community.kde.org/Schedules. To learn more about what we did last week, keep reading!

New Features


UI Polish & Improvement

Wanna be a part of this? Of course you do, because you want to make a difference, and you want to help make the world’s best free operating system even better. It’s more important than ever. So hop on over to https://community.kde.org/Get_Involved! There’s room for everyone, and you don’t even need to be a programmer! I’d never written a line of C++ or QML before getting started in the KDE community. You can do it!

If my efforts to perform, guide, and document this work seem useful and you’d like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal. Also consider making a donation to the KDE e.V. foundation.

July 21, 2018

The time for a new Plasma wallpaper is here, so for 5.14 I’m excited to offer up “Cluster”.

But first, please allow me to gush for a moment. In tandem with Inkscape, this is the first wallpaper for KDE produced using the ever excellent Krita. For graphic design my computer has a bit of beef to it, but when I work with Inkscape or GIMP things always chug just a bit more than I feel they should. Whenever I’ve had the distinct pleasure of opening Krita, even on my lesser powered laptop, it’s always been productive, rewarding, and performant. I’m looking forward to using Krita more in future wallpapers. *claps for Krita*

Now, with pixmaps there’s always a valid concern that higher-resolution monitors will suffer blurring because of low native resolutions. The master file for this slightly larger than 8k, so hopefully this will not be an issue. The only potential problem this causes is the large size of the master files. The Inkscape source will be published when the final wallpaper is released as per usual (just under 50MB), but the Krita-based assets are only going to be available on request. This is because the .kra is 135MB, and I have a feeling a few people might be angry if I load that onto the shared server. Unless they read this and tell me it’s fine. Who knows!

The wallpaper still has a polish pass, so rough edges or things that might feel awkward will be ironed out before it’s committed. If you have feedback you can comment here or over on the Reddit thread: https://www.reddit.com/r/kde/comments/90syno/plasma_514_wallpaper_cluster/

Here it is;


Click here for 8K image

Días calurosos y pre-vacacionales, donde la desisida nos incita a personalizar mi escritorio Plasma. Afortunadamente, Plasma de KDE tiene opciones más que sobradas, como podéis comprobar en la sección correspondiente de la Store de KDE o en la categoría de iconos de este mismo blog. Hoy os quiero presentar Ultimate Maia Icons un pack colorido plano con el que dar alegría a tu escritorio.

Ultimate Maia Icons, pack colorido para tu plasma

De la mano de Bolimage nos  llega Ultimate Maia Icos, un excelente tema de iconos  disponible hasta en 6 colores (zule, verde, gris, naranja, negro y violeta) que se adaptará como un guante a tu entorno de trabajo diario, tanto si es el gran Plasma como si es Gnome.

Ultimate Maia Icons, pack colorido para tu plasma


Lo cierto es que su estilo monocromático le da un toque de elegancia que no suele ser habitual en muchas de las colecciones de iconos de la actualidad. De momento no es instalable desde el instalador desde la Store de KDE, así que deberemos bajarnos el archivo comprimido y después utilizar la opción “Instalar desde el archivo” de las Preferencias del Sistema, tal y como expliqué hace un tiempo en el blog.


Y como siempre digo, si os gusta el pack de iconos Ultimate Maia Icos, podéis “pagarlo” de muchas formas en la página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente (si eres supporter), hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.


Más información: KDE Store

KDE Project:

Upgrading from Leap 42.3 to Leap 15.0... How hard can it be? Well, there was a bit of fighting necessary. One fight due to an encrypted root partition, another one due to NVIDIA and libGL.

I used the zypper upgrade method, from a text virtual terminal (after stopping X), which always seems safer to me than booting on a USB disk and hoping the partition setup is correct.

After a successful zypper dup, the first reboot led to an error like
"Failed to start systemd.cryptsetup@long_name_here.service, see systemctl status blah blah" (yeah right, with no root partition mounted, there are no logs anywhere)

Booting in rescue mode on a USB key and doing `cryptsetup luksOpen /dev/sda6 cr` worked, so no issue with crypto libraries or something, it was just systemd being stupid. I mounted the root partition into /mnt and edited its /etc/crypttab. Turns out the last argument on each line was timeout=0 (due to something I tried a long ago, it's supposed to work, but it doesn't seem to), which I replaced with none, and while at it I also replaced the /dev/disk/by-id device name with a UUID (found with `blkid /dev/sda6`), as suggested on a forum. After the usual `mkinitrd` and `update-bootloader --refresh`, and a reboot, it worked, it's now asking my for my crypto password! Much better. I'm not happy about systemd-cryptsetup's error handling here....

Next problem: I got a mouse cursor, but sddm doesn't show up, can't log in.
`journalctl -S today` says sddm-greeter crashed.
gdb on a core dump shows it crashed in glXMakeCurrentReadSGI
`rcxdm stop` and `startx` gets me an X session, but kwin_x11 crashes often, also in glXMakeCurrentReadSGI

Clearly a GL problem. glxinfo says:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Using `strace -e file glxinfo |& grep -i libgl`, I found the problem.
/usr/lib64/libGL.so.1 was a symlink to libGL.so.1.2.0, which rpm -qf said it didn't come from any RPM.
On the other hand there was a libGL.so.1.0.0 in that directory too, coming from Leap 15's libglvnd.
Removing libGL.so.1.2.0 and making the symlink point to libGL.so.1.0.0 fixed the issue. After a reboot I finally have sddm and plasma working.

Maybe this helps someone out there....

I’m going to Akademy 2018, which will start in less than one month. I couldn’t attend last year’s Akademy in Almería, so this time I will make sure to enjoy it fully: I’ll be in Vienna from 10th to 19th August.

This is what I’m planning to do this year:

As for the BoFs, I’ll probably attend the sessions about Phabricator, Flatpak, OpenQA, Wayland, as well as the Config Workshop.

See you in Vienna!

July 20, 2018

Happy to participate in a tradition I’ve admired from afar but never been able to do myself… until this year. My tickets are bought, my passport is issued, and I’m going to Akademy! Hope to see you all there!

I’m going to Akademy!

Kubuntu Linux has been my preferred Linux distribution for more than 10 years. My attraction to the KDE desktop and associated application set, has drawn from Kubuntu user, to a tester, teacher, developer, community manager and councilor. I feel really privileged to be part of, what can only be described as, a remarkable example of the free software, and community development of an exceptional product.

This latest release 18.04, effectively the April 2018 release, is a major milestone. It is the first LTS Long Term Support release of Kubuntu running the “Plasma 5” desktop.
The improvements are so considerable, in both performance and modern user interface ( UI ) design, that I was really excited about wanting to tell the world about it.

Which is why I was completely ecstatic when I was commissioned by Linux Magazine to write a 2000 word article, spanning some 4 pages, as a major review center piece in their magazine.

Published as “Linux Pro Magazine” in the US and “Linux Magazine” in Europe.

In the article I dive into one of the greatest and most unsung features of KDE Plasma 5; “Activities”. The introduction of activities in KDE has been a revelation to me, and completely changed the way that I work on a day to day basis. I encourage you whole heartedly to explore them, if you haven’t done so already.

Published in the August 2018 edition, and from which the introduction is available online at http://www.linux-magazine.com/Issues/2018/213/Kubuntu-18.04 or of course you can buy the August issue from http://www.linux-magazine.com/Issues/2018/213.

It is fantastic to see Kubuntu hitting the main stream publishing and to have an in-depth review article in one of the global leading Linux magazines is wonderful.

by Rick Timmis

July 19, 2018

We are happy to announce version 1.12.0 of the Qbs build tool.

What’s new?

Generating Interfaces for Qbs and pkg-config

When distributing software components such as libraries, you’d like to make it as simple as possible for other projects to make use of them. To this end, we have added two new modules: The Exporter.qbs module creates a Qbs module from a product, while the Exporter.pkgconfig module generates a .pc file.

For example:

DynamicLibrary {
    name: "mylib"
    version: "1.0"
    Depends { name: "cpp" }
    Depends { name: "Exporter.qbs" }
    Depends { name: "Exporter.pkgconfig" }
    files: "mylib.cpp"
    Group { 
        fileTagsFilter: "dynamiclibrary"
        qbs.install: true
        qbs.installDir: "lib"
    Group { 
        fileTagsFilter: "Exporter.qbs.module"
        qbs.installDir: "lib/qbs/modules/mylib" 
    Group {
        fileTagsFilter: "Exporter.pkgconfig.pc"
        qbs.install: true
        qbs.installDir: "lib/pkgconfig"

When building this project, a Qbs module file mylib.qbs and a pkg-config file mylib.pc will be generated. They contain the information that is necessary to build against this library using the respective tools. The mylib.qbs file might look like this (the concrete content depends on the target platform):

Module {
    Group {
        filesAreTargets: true
        fileTags: "dynamiclibrary"
        files: "../../../libmylib.so.1.0.0"

As you can see, the library file is specified using relative paths in order to make the installation relocatable.

Now anyone who wants to make use of the mylib library in their Qbs project can simply do so by declaring a dependency on it: Depends { name: "mylib" }.

System-level Settings

Until now, Qbs settings were always per-user. However, some settings should be shared between all users, for instance global search paths. Therefore, Qbs now supports system-level settings as well. These are considered in addition to the user-level ones, which take precedence in the case of conflicts. System-level settings can be written using the new --system option of the qbs-config tool. This operation usually requires administrator rights.

Language Improvements

We have added a new property type varList for lists of objects. You could already have those by using var properties, but the new type has proper list semantics, that is, values from different modules accumulate.

The FileInfo extension has two new functions suffix and completeSuffix.

Two changes have been done to the Rule item:

C/C++ Support

The cLanguageVersion and cxxLanguageVersion properties are now arrays. If they contain more than one value, then the one corresponding to the highest version of the respective language standard is chosen. This allows different modules to declare different minimum requirements.

Autotest Support

The AutotestRunner item has a new property auxiliaryInputs that can help ensuring that additional resources needed for autotest execution (such as helper applications) are built before the autotests run.

The working directory of an autotest is now the directory in which the respective test executable is located or AutotestRunner.workingDirectory, if it is specified. In the future, it will also be possible to set this directory per test executable.

Various things

All command descriptions now list the product name to which the generated artifact belongs. This is particularly helpful for larger projects where several products contain files of the same name, or even use the same source file.

The vcs module no longer requires a repository to create the header file. If the project is not in a repository, then the VCS_REPO_STATE macro will evaluate to a placeholder string.

It is now possible to generate Makefiles from Qbs projects. While it is unlikely that complex Qbs projects are completely representable in the Makefile format, this feature might still be helpful for debugging purposes.

Try It!

The Open Source version is available on the download page, and you can find commercially licensed packages on the Qt Account Portal. Please post issues in our bug tracker. You can also find us on IRC in #qbs on chat.freenode.net, and on the mailing list. The documentation and wiki are also good places to get started.

Qbs is also available on a number of packaging systems (Chocolatey, MacPorts, Homebrew) and updated on each release by the Qbs development team. It can also be installed through the native package management system on a number of Linux distributions including but not limited to Debian, Ubuntu, Fedora, and Arch Linux.

Qbs 1.12.0 is also included in Qt Creator 4.7.0, which was released this week as well.

The post qbs 1.12 released appeared first on Qt Blog.

July 18, 2018

Today we’re releasing Krita 4.1.1, the first bug fix release for Krita 4.1.0.

  • Fix loading PyKrita when using PyQt 5.11 (patch by Antonio Rojas, thanks!) (BUG:396381)
  • Fix possible crashes with vector objects (BUG:396145)
  • Fix an issue when resizing pixel brushes in the brush editor (BUG:396136)
  • Fix loading the system language on macOS if more than one language is enabled in macOS
  • Don’t show the unimplemented color picker button in the vector object tool properties docker (BUG:389525)
  • Fix activation of the autosave time after a modify, save, modify cycle (BUG:393266)
  • Fix out-of-range lookups in the cross-channel curve filter (BUG:396244)
  • Fix an assert when pressing PageUp into the reference images layer
  • Avoid a crash when merging layers in isolated mode (BUG:395981)
  • Fix loading files with a transformation mask that uses the box transformation filter (BUG:395979)
  • Fix activating the transform tool if the Box transformation filter was selected (BUG:395979)
  • Warn the user when using an unsupported version of Windows
  • Fix a crash when hiding the last visible channel (BUG:395301)
  • Make it possible to load non-conforming GPL palettes like https://lospec.com/palette-list/endesga-16
  • Simplify display of the warp transformation grid
  • Re-add the Invert Selection menu entry (BUG:395764)
  • Use KFormat to show formatted numbers (Patch by Pino Toscano, thanks!)
  • Hide the color sliders config page
  • Don’t pick colors from fully transparent reference images (BUG:396358)
  • Fix a crash when embedding a reference image
  • Fix some problems when saving and loading reference images (BUG:396143)
  • Fix the color picker tool not working on reference images (BUG:396144)
  • Extend the panning range to include any reference images



Note for Windows users: if you encounter crashes, please follow these instructions to use the debug symbols so we can figure out where Krita crashes.


(If, for some reason, Firefox thinks it needs to load this as text: to download, right-click on the link.)

When it is updated, you can also use the Krita Lime PPA to install Krita 4.1.1 on Ubuntu and derivatives. We are working on an updated snap.


Note: the touch docker, gmic-qt and python plugins are not available on OSX.

Source code


For all downloads:


The Linux appimage and the source tarball are signed. You can retrieve the public key over https here:
. The signatures are here (filenames ending in .sig).

Support Krita

Krita is a free and open source project. Please consider supporting the project with donations or by buying training videos or the artbook! With your support, we can keep the core team working on Krita full-time.

July 17, 2018

Cutelyst a C++ web framework based on Qt got a new release. This release has some important bug fixes so it’s really recommended to upgrade to it.

Most of this release fixes came form a side project I started called Cloudlyst, I did some work for the NextCloud client, and due that I became interested into how WebDAV protocol works, so Cloudlyst is a server implementation of WebDAV, it also passes all litmus tests. WebDAV protocol makes heavy use of REST concept, and although it uses XML instead of JSON it’s actually a good choice since XML can be parsed progressively which is important for large directories.

Since the path URL now has to deal with file paths it’s very important it can deal well with especial characters, and sadly it did not, I had tried to optimize percent encoding decoding using a single QString instead of going back and forth toLatin1() then fromUTF8() and this wasn’t working at all, in order to better fix this the URL is parsed a single time at once so the QString path() is fully decoded now, which will be a little faster and avoid allocations. And this is now unit tested ��

Besides that there was:

  • Fix for regression of auto-reloading apps in cutelyst-wsgi
  • Fix csrf token for multipart/form-data (Sebastian Held)
  • Allow compiling WSGI module when Qt was not built with SSL support

The last one and another commit were to fix some build issues I had with buildroot, which I also created a package so soon you will be able to select Cutelyst from buildroot menu.

Have fun https://github.com/cutelyst/cutelyst/releases/tag/v2.5.0

July 16, 2018

Make sure you commit anything you want to end up in the KDE Applications 18.08 release to them :)

We're already past the dependency freeze.

The Freeze and Beta is this Thursday 19 of July.

More interesting dates
August 2: KDE Applications 18.08 RC (18.07.90) Tagging and Release
August 9: KDE Applications 18.08 Tagging
August 16: KDE Applications 18.08 Release


July 15, 2018

At the company I’m working at, we’re employing Qt WebChannel for remote access to some of our software. Qt WebChannel was originally designed for interfacing with JavaScript clients, but it’s actually very well suited to interface with any kind of dynamic language.

We’ve created client libraries for a few important languages with as few dependencies as possible: pywebchannel (Python, no dependencies), webchannel.net (.NET/C#, depends on JSON.NET) and webchannel++ (header-only C++14, depends on Niels Lohmann’s JSON library).

Python and .NET are a pretty good match: Their dynamic language features make it possible to use remote methods and properties like they were native. Due to being completely statically typed, C++ makes the interface a little more clunky, although variadic templates help a lot to make it easier to use.

As with the original Qt WebChannel C++ classes, transports are completely user defined. When sensible, a default implementation of a transport is provided.

Long story short, here’s an example of how to use the Python client. It’s designed to talk with the chatserver example of the Qt WebChannel module over a WebSocket. It even supports the asyncio features of Python 3! Relevant excerpt without some of the boilerplate:

async def run(webchannel):
    # Wait for initialized
    await webchannel

    chatserver = webchannel.objects["chatserver"]

    username = None

    async def login():
        nonlocal username
        username = input("Enter your name: ")
        return await chatserver.login(username)

    # Loop until we get a valid username
    while not await login():
        print("Username already taken. Please enter a new one.")

    # Keep the username alive
    chatserver.keepAlive.connect(lambda *args: chatserver.keepAliveResponse(username))

    # Connect to chat signals
    chatserver.userListChanged.connect(lambda *args: print_newusers(chatserver))

    # Read and send input
    while True:
        msg = await ainput()
        chatserver.sendMessage(username, msg)

loop = asyncio.get_event_loop()
proto = loop.run_until_complete(websockets.client.connect(CHATSERVER_URL, create_protocol=QWebChannelWebSocketProtocol))

pywebchannel can also be used without the async/await syntax and should also be compatible with Python 2.

I would also really like to push the code upstream, but I don’t know when I’ll have the time to spare. Then there’s also the question of how to build and deploy the libraries. Would the qtwebchannel module install to $PYTHONPREFIX? Would it depend on a C# compiler (for which support would have to be added to qmake)?

In any case, I think the client libraries can come in handy and expand the spectrum of application of Qt WebChannel.

I am very happy that the third phase of coding phase has begun. The following work is done in eighth & ninth week:

  • UserScript API
  • Ability to register external QtObject
  • ExtensionScheme API

UserScript API

The API to interact with browser user-scripts. This will enable the plugin to create, register, remove, and get all the user-scripts loaded in the browser. Also the scripts registered by it will automatically gets unregistered when the plugin unloads.

Ability to register external QtObject

Since the UserScript API is developed, so the next step was to develop a channel between qml-plugin and webengine. The ExternalJsObject type will enable a QtObject to register as external js object as Falkon.ExternalJsObject.registerExtraObject ({id, object}) and Falkon.ExternalJsObject.unregisterExtraObject({object}) to unregister the object.

ExtensionScheme API

Now as both UserScript and ExternalJsObject APIs are developed, the next step as suggested by my mentor was to implement an extension:// page for qml-plugins.

This time, unfortunately I am yet to add the documentation & tests of the following APIs, but I will complete it soon.

Happy Monsoon :-)

Latte Dock v.0.8 released!!! The third stable release has just landed! 

Go get it from, download.kde.org * ! 

- youtube presentation -

Features in Video
  • Multiple Layouts simultaneously
  • Smart Dynamic Background
  • Unify Global Shortcuts for applets and tasks 
  • User Set Backgrounds
  • Download Community Layouts
  • Smooth Animations

Latte v0.8

if you dont want to build it yourself, you can wait a few days to launch on your distro repositiories!

Take notice, Latte v0.8 is compatible only with:

  • Plasma >= 5.12
  • KDE Frameworks >= 5.38
  • Qt >= 5.9

Except the video features what you can find in this release, you may ask...

multiple launchers and their separators

Multiple Tasks Separators

Drag n' Drop separator widget on tasks in order to distinguish your launchers

Unity layout is read-only and its maximized windows
do not have borders

New Layout Settings

Lock/Unlock your layouts in order to make them read-only or writable.

Borderless maximized windows according the current layout

three different dolphin instances

Dont group tasks

The user can choose to not group its tasks through Tasks configuration tab

the active indicator will be a line and all indicators will
have a glow with opacity 55% and 3D style

New Appearance Settings

Active Indicator and Glow Sections were added in order to adjust them accordingly at your preference

Dock mode

Panel/Dock mode

Change between Panel and Dock
mode with one click

some "Unity" and "Dock with TopBar" layouts

Community Layouts

Download community provided layouts from store.kde.org to customize your Latte

telegram with 679 unread messages

Bigger Badges

A badge can have up to 9.999 size
in order to improve accessibility

access Latte layouts from plasma taskmanager

Improve Plasma Taskmanagers Experience

Access your Latte options through context menu when you are using plasma taskmanagers

load default layout, access installed layouts etc.

Command Line Options

Use your command prompt in order to handle Latte startup

fixes / improvements
  • Various Wayland improvements. I use it daily in my system with Plasma 5.13 and it provides a fantastic experience with fantastic painting.
  • Smoother parabolic animation
  • Support KWin edges when hiding the dock or panel by default
  • New improved splitters icons in Justify (Edit Mode) 
  • Improve the entire experience at Layouts/Latte Settings window 
  • Filter Windows by Launchers, show only windows that there is already a launcher present for the current running activity 
  • Vastly improve the experience in !compositing environments. No more showing an 1px line at the screen edge when the dock is hidden. 
  • New Global Shortcuts to open/hide dock settings and Latte settings (Meta+A, Meta+W, Meta+E) 
  • New Kwin script to trigger the application menu from a corner-edge 
  • Hide the audio badge when there no audio is coming from a pulseaudio stream 
  • various fixes for RTL languages 
  • New more robust animations all over the place
  • Plenty of bug fixes and improvements

For new Latte users it might be a good idea to read/watch also Latte Dock v0.7 - " ...a tornado is coming... "

      "Papirus" from Alexey Varfolomeev 
 Plasma Theme
      "Materia" from Alexey Varfolomeev
      "Sea, Ocean, Water and Wave" from Josh Withers
      "Dock And TopBar" at, store.kde.org
      1. Scott Holmes - "Our Big Adventure" at, freemusicarchive.org
      2. Scott Holmes - "Ukulele Whistle" at, freemusicarchive.org 
      3. Scott Holmes - "Kiss The Sky" at, freemusicarchive.org

* Archive Signature :
       gpg key: 325E 97C3 2E60 1F5D 4EAD CF3A 5599 9050 A2D9 110E

Get ready for a humongous week for KDE’s Usability and Productivity initiative! KDE developers and contributors squashed a truly impressive number of bugs this week, all the while adding features and polishing the user interface.

New Features


UI Polish & Improvement

There are still more bugs I’d like to get fixed ASAP, though, including a number of high-profile regressions with the mouse and touchpad settings in Plasma 5.13. I hope very much that we can fix these soon. If anyone reading this feels like they could help out, please do so! We’re happy to lend a hand when first getting started as a KDE contributor. There are lots of other ways to get involved, too.

If my efforts to perform, guide, and document this work seem useful and you’d like to see more of them, then consider becoming a patron on Patreon, LiberaPay, or PayPal. Also consider making a donation to the KDE e.V. foundation.

July 14, 2018

Hi! I've passed in the second evaluation of Google Summer of Code 2018. I am ready for the third phase, but before that I'll give some updates about how my progress with RAID on kpmcore is going. This post will explain how RAID management works on Linux. Linux and RAID devices First of all, you … Continue reading GSoC 2018 – Coding Period (June 26th to July 15th): RAID on Linux

July 13, 2018

Hi! I am going to Akademy this year. It will happen in Vienna, Austria between August 11th and August 17th. I will talk there about my experiences during Season of KDE 2018 and Google Summer of Code 2018, explaining my work and progress in KDE Partition Manager, kpmcore and Calamares. This will be a great … Continue reading Going to Akademy 2018

One of the things that every old application suffers is from old code. It’s easier to keep something that works than to move to something new, even if the final result is better. Take a look at the current Tabbar + Buttons of Konsole.


Now compare with the one I’m working on:

Everything is working (of course I still need to test many things, but open, close, rearrange and detach are working), it’s prettier and it’s around 1.5k lines less to maintain.

The Elisa team is happy to announce our new bugfix release, version 0.2.1.

Elisa is a music player developed by the KDE community that strives to be simple and nice to use. We also recognize that we need a flexible product to account for the different workflows and use-cases of our users.

We focus on a very good integration with the Plasma desktop of the KDE community without compromising the support for other platforms (other Linux desktop environments, Windows and Android).

We are creating a reliable product that is a joy to use and respects our users privacy. As such, we will prefer to support online services where users are in control of their data.

In parallel to the development of the next stable release, we have been pushing a few fixes to the current stable version.

Screenshot_20180713_1747310.2.1 version of Elisa

We have fixed the layout of the playlist in Windows build. They should now be identical to the Linux builds. Here we are using the ability to tune some parts of the interface by providing specific qml components for a given platform.

We fixed issues that could lead to wrong data shown for albums with multiple discs.

The buttons in the header on top of the views are now aligned with the top and bottom of the big icon.

Screenshot_20180713_174753Improvements in the views header

We will continue to fix issues in the stable version for some weeks and may produce a second bugfix release in one month.

Get Involved

The team would like to thank everyone who contributed to the development of Elisa, including code contributions, testing, and bug reporting.

We are already working on new features for the next release. If you enjoy using Elisa, please consider becoming a contributor yourself. We are happy for any contribution!

We have tagged some tasks as junior jobs. They are a perfect way to start contributing to Elisa (Elisa Workboard)

The flathub Elisa package allows an easy way to test this new release.

Elisa source code tarball is available here.

0.2.1 release tarball

A Windows installer is also available thanks to Craft and binary-factory teams.


Less than a month left until KDE Akademy 2018. As part of the local organization team, this is going to be a busy time, but having Akademy in such a great city as Vienna is gonna be awesome.

You will over the next weeks find many more “I’m going to Akademy” posts on Planet KDE detailing the Akademy plans of other people. So here in this post I don’t want to look forward, but back and tell you the story of the (in retrospect quite long) process of how a few people from Vienna decided to put in a bid to organize Akademy 2018.

The story starts 5 years ago, around this time, in the beautiful city of Bilbao at Akademy 2013. There I met Joseph from Vienna & Kevin from Graz, the first two Austrian KDE contributors I met. It was probably somewhen during that week, that Joseph & me talked about organizing an Akademy in Vienna. Joseph worked at TU Wien at that time and I was a student there, so we already had good connections to the university.

Later that year Joseph & me met at TU to further talk about a possible Akademy in Vienna, it was at that time clear that this would happen earliest 2015, also because the Call for Locations were sent out quite late (in autumn, after Akademy).

Not much happened until Akademy 2014, where we had the “KDE (in) Austria BoF”, about which I wrote a few years ago. There the plan was to have more KDE/Qt talks and a bigger KDE presence at the Linuxwochen Wien, thus organizing a sort of “Akademy AT”. Unfortunately we didn’t do this. And Joseph & me did also not really pursue our plan to organize Akademy in Vienna. But while those things never happened, since then the Austrian KDE community meets up more or less regularly.

The following years I always attended Akademy and also volunteered at QtCon 2016, already with the intent to get a bit of an insight into how Akademy is organized.

In April 2017, surprisingly early, the Call for Locations for Akademy 2018 was published, and I knew: Now or never �� While still being a student and having contact to TU Wien, I already worked part-time as a freelancer and knew I can manage to dedicate time on the organization. And so discussions on the kde-at mailinglist followed and some first draft content for the proposal was gathered.

And it nearly was put on the pile of unfinished projects again, if weren’t for a students BBQ at TU Wien, where I met Lukas, who in 2017 was a GSoC student. I already knew him before from university, where he attended a course I organized and he was going to his first Akademy in Almeria. We talked about the idea to bring Akademy 2018 to Vienna and the later the evening and the more beer we had, the more sure we were: We are going to do this.

So when coming home from the BBQ it was already the 2nd of June (announcing interest should have been done until 1st of June), but I sat down and wrote a mail that Vienna would be interested in hosting Akademy.

Two intensive weeks of research, meetings with FSINF (TU Wien computer science students council) and proposal writing followed until the full proposal was sent half an hour before the deadline.

Afterwards a long waiting period followed (at that time I wasn’t yet a member of KDE eV, so I couldn’t even see the discussions on the members mailing list or other proposals).

Until Akademy 2017, where Lukas sent me near-real time updates about the status of our Akademy 2018 proposal. On Sunday he got the information that the Vienna proposal was selected and that it will be announced that day on the closing session. He even had to get up on stage, during his first Akademy and give a first spoiler for Akademy 2018.

So this is the story, of the long journey from idea to realization of an Akademy in Vienna. I hope you enjoyed it and look forward to seeing you all at Akademy 2018.

See you in Vienna!

In about a month I’ll be in the beautiful city of Vienna, giving a talk on the weird stuff I make using ImageMagick, Kdenlive, Synfig and FFmpeg so I can construct videos so bad and campy you could almost confuse them for being ironic…


The Performance Analyzer

You may have heard about the Performance Analyzer (called “CPU Usage Analyzer” in Qt Creator 4.6 and earlier). It is all about profiling applications using the excellent “perf” tool on Linux. You can use it locally on a Linux-based desktop system or on various embedded devices. perf can record a variety of events that may occur in your application. Among these are cache misses, memory loads, context switches, or the most common one, CPU cycles, which periodically records a stack sample after a number of CPU cycles have passed. The resulting profile shows you what functions in your application take the most CPU cycles. This is the Performance Analyzer’s most prominent use case, at least so far.

Creating trace points

With Qt Creator 4.7 you can also record events for trace points, and if your trace points follow a certain naming convention Qt Creator will know they signify resource allocations or releases. Therefore, by setting trace points on malloc, free, and friends you can trace your application’s heap usage. To help you set up trace points for this use case, Qt Creator packages a shell script you can execute and prompts you to run it. First, open your project and choose the run configuration you want to examine. Then just select the “Create trace points …” button on the Analyzer title bar and you get:

Memory Profiling: Creating trace points

How does it work?

In order for non-privileged users to be able to use the trace points the script has to make the kernel debug and tracing file systems available to all users of the system. You should only do this in controlled environments. The script will generally work for 32bit ARM and 64bit x86 systems. 64bit ARM systems can only accept the trace points if you are using a Linux kernel of version 4.10 or greater. In order to set trace points on 32bit x86 systems you need to have debug symbols for your standard C library available

The script will try to create trace points for any binary called libc.so.6 it finds in /lib. If you have a 64-bit system with additional 32-bit libraries installed, it will try to create trace points for both sub-architectures. It may only succeed for one of them. This is not a problem if your application targets the sub-architecture for which the script succeeded in setting the trace points.


If the trace point script fails, you may want to check that your kernel was compiled with the CONFIG_UPROBE_EVENT option enabled. Without this option the kernel does not support user trace points at all. All 32-bit ARM images shipped with Qt for Device Creation have this option enabled from version 5.11 on. Most Linux distributions intended for desktop use enable CONFIG_UPROBE_EVENT by default.

Using trace points for profiling

After creating the trace points, you need to tell Qt Creator to use them for profiling. There is a convenient shortcut for this in the Performance Analyzer Settings. You can access the settings either for your specific project in the “Run” settings in “Projects” mode, or globally from the “Options” in the “Tools” menu. Just select”Use Trace Points”. Then Qt Creator will replace your current event setup with any trace points it finds on the target system, and make sure to record a sample each time a trace point is hit.

Memory Profiling: Adding trace events to Qt Creator

After this, you only need to press the “Start” button in the profiler tool bar to profile your application. After the application terminates, Qt Creator collects the profile data and displays it.

Interpreting the data

The easiest way to figure out which pieces of code are wasting a lot of memory is by looking at the flame graph view. In order to get the most meaningful results, choose the “Peak Usage” mode in the top right. This will show you a flame graph sorted by the accumulated amount of memory allocated by the given call chains. Consider this example:

Memory Profiling: Flame Graph of peak usage


What you see here is a profile of Qt Creator loading a large QML trace into the QML Profiler. The QML profiler uses a lot of memory when showing large traces. This profile tells us some details about the usage. Among other things this flame graph tells us that:

  • The models for Timeline, Statistics, and Flame Graph views consume about 43% of the peak memory usage. TimelineTraceManager::appendEvent(…) dispatches the events to the various models and causes the allocations.
  • Of these, the largest part, 18.9% is for the Timeline range models. The JavaScript, Bindings, and Signal Handling categories are range models. They keep a vector of extra data, with an entry for each such range. You can see the QArrayData::allocate(…) that allocates memory for these vectors.
  • Rendering the Timeline consumes most of the memory not allocated for the basic models. In particular Timeline::NodeUpdater::run() shows up in all of the other stack traces. This function is responsible for populating the geometry used for rendering the timeline categories. Therefore, QSGGeometry::allocate(…) is what we see as direct cause for the allocations. This also tells us why the QML profiler needs a graphics card with multiple gigabytes of memory to display such traces.

Possible Optimizations

From here, it’s easy to come up with ideas for optimizing the offending functions. We might reconsider if we actually need all the data stored in the various models, or we might temporarily save it to disk while we don’t need it. The overwhelming amount of geometry allocated here also tells us that the threshold for coalescing adjacent events in dense trace might be too low. Finally, we might be able to release the geometry in main memory once we have uploaded it to the GPU.

Tracing Overhead

Profiling each and every malloc() and free() call in your application will result in considerable overhead. The kernel will most likely not be able to keep up and will therefore drop some of the samples. Depending on your specific workload the resulting profile can still give you relevant insights, though. In other words: If your application allocates a huge amount of memory in only a handful of calls to malloc(), while also allocating and releasing small amounts at a high frequency, you might miss the malloc() calls you are interested in because the kernel might drop them. However,  if the problematic malloc() calls form a larger percentage of the total number of calls, you are likely to catch at least some of them.

In any case, Qt Creator will present you with absolute numbers for allocations, releases, and peak memory usage. These numbers refer to the samples perf actually reported, and therefore are not totally accurate. Other tools will report different numbers.

Special allocation functions

Furthermore, there are memory allocation functions you cannot use for profiling this way. In particular posix_memalign() does not return the resulting pointer on the stack or in a register. Therefore, we cannot record it with a trace point. Also, custom memory allocators you may use for your application are not handled by the default trace points. For example, the JavaScript heap allocator used by QML will not show up in the profile. For this particular case you can use the QML Profiler, though. Also, there are various drop-in replacements for the standard C allocation functions, for example jemalloc or tcmalloc. If you want to track these, you need to define custom trace points.


Profiling memory usage with Qt Creator’s Performance Analyzer is an easy and fast way to gain important insights about your application’s memory usage. It works out of the box for any Linux targets supported by Qt Creator. You can immediately browse the resulting profile data in an easily accessible GUI, without any further processing or data transfer. Other tools can produce more accurate data. However, for a quick overview of your application’s memory usage the Performance Analyzer is often the best tool.

The post Profiling memory usage on Linux with Qt Creator 4.7 appeared first on Qt Blog.

Hi Everyone,

I am working on the GSoC project Verifying signatures of pdf files and since the last blog post I have made number of improvements. They are listed below.

1. Signature Properties Dialog

This is an improved version with better layout and messages.

Signature Properties Dialog

2. Signature Panel

This is a sidebar widget in okular which will list all digital signatures present in a document. In future, I plan to add a context menu to allow verifying a single signature as well as all signatures at once and viewing the signed revision.

Signature Panel

3. Revision Viewer

This is a dialog similar to print preview dialog but instead of previewing what is about to be printed it loads the data covered by a signature in a read-only KPart. In its current state this dialog is pdf specific. This is problematic since okular is a universal document viewer. So I plan to make it a bit more generic.

Revision Viewer

4. API changes

Poppler does not provide any details of the signing certificate. So I’ve filed two bugs (107055 and 107056) with patches attached for the said task.

Things I dropped

  • Revision manager

    It turned out to be a mishmash of signature panel and revision viewer. So I dropped it.

  • Signature Summary Dialog

    Initially I liked the idea but now I don’t.

Finally, the animation below sums up my progress.

Phase2 GIF

Thanks for reading :)

Forgot to post last week…

In this 2 weeks, I have been adding features.

The first step is to change the underlying data structure for the palettes to enable modification of entries based on their row and columns. As mentioned before, now the data structure is a vector of maps (red-black trees). I’m considering adding panning to this docker, and that means horizontally, the view needs to be able to show columns with relatively large indices. If the panning is actually achievable, I’ll try to make the model able to handle larger row numbers.

Then it’s GUI. The docker structure haven’t changed too much. All elements are still there, will some minor change in the structure of the interface. The view now stretches to fill the horizontally available space. I personally feel it’s easier to handle than before for users. Right clicking the swatches now can give user options to modify the palette. The palette now shows empty entries, as designed before.

The new palette list widget is now functioning. Instead of giving the GUI used to add a new palette in the widget itself, these GUI elements are now placed in a dialog. I feel this will help user to better handle what they have done. Hope others feel the same. New “export” and “edit” buttons are added, too. The later should help users to change the name and number of columns of a palette; of course, if the panning is done, the number of columns would be handled by the MVC system itself.

I wonder if the palettes still need the tag system. All right, a question to ask in the next meeting.

These 2 weeks have been great for me, because I had a change to really get myself familiarized with the Qt MVC system. I believe I’ll be confident when I need to use it in future projects.

The next step is too make Krita store palettes used in a painting in its .kra file. There seems to be some annoying dependency stuff, but I should be able to handle.

July 12, 2018

I’m pleased to announce the immediate availability of Kube 0.7.0

Over the past year or so we’ve done a lot of work and building and maturing Kube and it’s underlying platform Sink.
Since the last publicly announced release 0.3.0 there have been 413 commits to sink and 851 to Kube. Since that diff is rather large I’ll spare you the changelog and will do a quick recap of what we have instead:

  • A conversation view that allows you to read through conversations in chronological order.
  • A conversation list that bundles all messages of a conversation (thread) together.
  • A simple composer that supports drafts and has autocompletion (assisted by the addressbook) for all recipients.
  • GPG support for reading and writing messages (signing and encryption).
  • Automatic attachment of own public key.
  • Opening and saving of attachments.
  • Rendering of embedded messages.
  • A read-only addressbook via CardDAV.
  • Full keyboard navigation.
  • Fulltext search for all locally available messages.
  • An unintrusive new mail hint in the form of a highlighted folder.
  • Kube is completely configuration free apart from the account setup.
  • The account setup can be fully scripted through the sinksh commandline interface.
  • Available for Mac OS.
  • Builds on Windows (But sadly doesn’t completely work yet).
  • The dependency chain has been reduced to the necessary minimum.

While things still change rapidly and we have in no way reached the end of our ever growing roadmap, Kube has already become my favorite email client that I have ever used. YMMV.


Turns out we’re not done yet. Among the next plans we have:

  • A calendar via CalDAV (A first iteration is already complete).
  • Creation of new addressbook entries.
  • A dedicated search view.

While we remain committed to building a first class email experience we’re starting to venture a little beyond that with calendaring, while keeping our eyes focused on the grander vision of a tool that isn’t just yet another email client, but an assistant that helps you manage communication, time and tasks.


Get It!

Of course the release is already outdated, so you may want to try a flatpak or some distro provided package instead:


“Kube is a modern communication and collaboration client built with QtQuick on top of a high performance, low resource usage core. It provides online and offline access to all your mail, contacts, calendars, notes, todo’s and more. With a strong focus on usability, the team works with designers and UX experts from the ground up, to build a product that is not only visually appealing but also a joy to use.”

For more info, head over to: kube.kde.org

The story As I described in the introductory post, KDE has been working towards a trinity of goals and I have been responsible for pushing forward the Streamlined onboarding of new contributors one. Half a year has passed since my initial blog post and with Akademy, KDE’s annual conference, coming up in a month this is a great time to post a quick update on related developments. Progress so far Over the past months I tried to organize some key objectives related to this goal, which sounded ambitious to begin with.

The Debian community meets at Debconf 6 in Mexico. Photo by Joey Hess, licensed under CC By 4.0.

Since the KDE Advisory Board was created in 2016, we have been encouraging more and more organizations to join it, either as patrons or as non-profit partner organizations. With Ubuntu (via Canonical) and openSUSE (via SUSE) we already had two popular Linux distributions represented in the Advisory board. They are now joined by one of the biggest and oldest purely community-driven distributions: Debian.

KDE has a long-standing and friendly relationship with Debian, and we are happy to formalize it now. Having Debian on our Advisory Board will allow us to learn from them, share our experience with them, and deepen our collaboration even further.

As is tradition, we will now hand over the stage to the Debian Project Leader, Chris Lamb, who will tell you a bit about Debian and why he is happy to accept our invitation to the Advisory Board:

Chris Lamb.
Debian is a stable, free and popular computer operating system trusted by millions of people across the globe, from solo backpackers, to astronauts on the International Space Station, and from small companies, to huge organisations.

Founded in 1993, Debian has since grown into a volunteer organisation of over 2,000 developers from more than 70 countries worldwide collaborating every day via the Internet.

The KDE Plasma desktop environment is fully-supported within Debian and thus the Debian Project is extremely excited to be formally recognising the relationship between itself and KDE, especially how that will greatly increase and facilitate our communication and collaboration.

Older blog entries



Planet KDE is made from the blogs of KDE's contributors. The opinions it contains are those of the contributor. This site is powered by Rawdog and Rawdog RSS. Feed readers can read Planet KDE with RSS, FOAF or OPML.