March 23, 2017

Now that Qt 5.9 is getting closer, let’s take a look at a minor but immensely useful improvement to the basic OpenGL enablers that form the foundation of Qt Quick and the optional OpenGL-based rendering path of QPainter.

Those looking at the documentation snapshots for 5.9 may have already come across some new functions in the venerable QOpenGLShaderProgram. What is more, most internal usages in Qt have been switched over to the new API. What does this mean in practice?

As explained here, such shader programs will attempt to cache the program binaries on disk using GL_ARB_get_program_binary or the standard equivalents in OpenGL ES 3.0. When no support is provided by the driver, the behavior is equivalent to the non-cached case. The files are stored in the global or per-process cache location, whichever is writable. The result is a nice boost in performance when a program is created with the same shader sources next time.

How big is the improvement? It varies. Some drivers have already been doing some sort of caching for the past couple of years, while some others have similar features in the pipeline. However, the gains turn out to be quite significant in practice on devices that are out in the field right now:


Do not read too much into the actual numbers. What is important is the difference between Qt 5.8 and 5.9. Also, a simple Qt Quick or GL-backed QPainter scene will definitely not use 10 programs, but as complexity grows, with Qt Graphical Effects and custom ShaderEffect items entering the picture, getting similar improvements does not look far fetched anymore.

In fact we gain something even on systems that employ shader caching already. Therefore every application’s startup and view switching times are expected to benefit with Qt 5.9 – without having to change anything.

Applications that use QOpenGLShaderProgram on their own can usually switch to the cacheable function variants by just changing the name in the function call. The change have to be a conscious decision, though, since some of the APIs change semantics when program binaries are used. Most notably, QOpenGLShader, addShader(), and removeShader() are incompatible with the program-level caching since they rely on individual shader compilation.

That’s it for now, stay tuned for more posts about exciting upcoming Qt 5.9 and 5.10 features.

The post Boosting performance with shader binary caching in Qt 5.9 appeared first on Qt Blog.

A raíz de presentaros hace unos días el curso de Audacity de Podcast Linux, pensé que no estaría de más dar la mayor publicidad posible a este proyecto De esta forma me he decidido realizar una entrada en el blog promoviendo cada uno de los capítulos que ha creado el gran Juan Febles. Así pues, bienvenidos al episodio del Curso de Audacity de Podcast Linux #01 Graba y edita tu voz con el que se inicia esta más que interesante serie.

Curso de Audacity de Podcast Linux #01 Graba y edita tu voz

Curso de Audacity de Podcast Linux #01 Graba y edita tu vozEn el primer capítulo del curso de Audacity, que Juan ha titulado “Graba y edita tu voz” se nos plantean las bases del proyecto, explicando el nacimiento del mismo, así como las fuentes en las que se ha basado para realizar el mismo, que no son otras que el Curso básico de Audacity de 9 decibelios realizado por David Arribas y la serie de vídeos titulada Manuel Audacity del gran Juan Luis Fernández Gallo, conocido como Jenofonte.

También en este episodio nos recomienda el tipo de micrófonos más adecuado para la realización de podcast, que para él son los dinámicos, y explica las conexiones de su micrófono actual. Del mismo modo, nos explica los consejos básicas para realizar un correcto registro de nuestra voz: ambiente de grabación, distancia y posición respecto al micrófono, disminuir eco gracias a estanterías con libros, espumas amortiguadoras de sonidos explosivos, etc.

Tras esas explicaciones, Juan se encarga de mostrarnos las partes básicas de Audacity como el medidor de decibelios o el registro de su propia voz en forma de onda sonora. Posteriormente nos muestra algunos retoques que realiza sobre dicha grabación: eliminación del  ruido de ambiente, realzar las zonas más bajas gracias Chris’s Dynamic Compressor, ecualizar un poco su voz y limitar las zonas con alta intensidad sonora.


Sin más, os dejo disfrutar de la visualización del vídeo:

Más información: Curso de Audacity de Podcast Linux #01 Graba y edita tu voz

I am glad to announce the release of KStars 2.7.6 release for Windows & OSX. Linux users using the official PPA can install the latest release as well.

In this release, we introduce the Ekos Mount Modelling tool developed by Robert Lancaster. It's currently in Beta now and we would appreciate any feedback. The tool enables you to build a comprehensive mount model if supported by your mount. Any mount that improves its internal pointing model after a SYNC command is applicable. Furthermore, INDI mounts that supports INDI Alignment Subsystem (EQMod, Nexstarevo, Synscan..etc) are also applicable.

Along with the advanced mount modelling tool comes the new Solution Results plot in the Align Module. It displays the quality of your GOTO after each solve and it can help you to identify if there are issues with your mount or the quality of the image..etc.

You can zoom, pan, and drag to explore the plot in details. Annotation for the quality of each GOTO is available on mouse over.

Ekos Polar Alignment Assistant tool also received a few bug fixes from the community feedback. Most users were able to achieve impressive results using the this easy to use Polar Alignment tool.

While Ekos is designed for ease of use, it can be intimidating for new users unfamiliar with the architecture of Ekos/INDI on several operation systems. Therefore, a new Ekos Profile Wizard is now available to guide the users to setting up their equipment for the first time in Ekos across several operating systems and connection topologies.

With INDI v1.4.1+, figuring out which port to use for your mount & focuser is now trivial across Linux & OSX. INDI automatically scans ports on your system and can even automatically connect to all potential available ports as well until a successful connection is established.

Last, but not least, KStars' NEO (Near-Earth-Object) data query from NASA's JPL is now properly working again thanks to our newest KStars developer Valentin Boettcher. Valentin (aka Hiro) is only 18 years old but is quite brilliant and experienced with KDE/Qt development environment. Welcome abroad!

March 22, 2017

One of my pet peeves with teaching FP in C++ is that if we want to have efficient code, we need to catch functions and other callable objects as template arguments.

Because of this, we do not have function signatures that are self-documenting. Consider a function that outputs items that satisfy a predicate to the standard output:

template <typename Predicate>
void write_if(const std::vector<int> &xs, Predicate p) {
                 std::ostream_iterator<int>(std::cout, " "));

We see that the template parameter is named Predicate, so we can imply that it needs to return a bool (or something convertible to bool), and we can deduce from the function name and the type of the first argument that it should be a function that takes an int.

This is a lot of reasoning just to be able to tell what we can pass to the function.

For this reason, Bartosz uses std::function in his blog posts – it tells us exactly which functions we can pass in. But std::function is slow.

So, we either need to have a bad API or a slow API.

With concepts, the things will change.

We will be able to define a really short (and a bit dirty) concept that will check whether the functions we get are of the right signature:

Edit: Changed the concept name to Callable to fit the naming in the standard [func.def] since it supports any callable, not just function objects

template <typename F, typename CallableSignature>
concept bool Callable =
    std::is_convertible<F, std::function<CallableSignature>>::value;

void foo(Callable<int(int)> f)
   // or Callable<auto (int) -> int>
        std::cout << std::invoke(f, 42) << std::endl;

We will be able to call foo with any callable that looks like a int-to-int function. And we will get an error ‘constraint Callable<int(int)> is not satisfied’ for those that do not have the matching signature.

An alternative approach is to use std::is_invocable type trait (thanks Agustín Bergé for writing the original proposal and pointing me to it). It will provide us with a cleaner definition for the concept, though the usage syntax will have to be a bit different if we want to keep the concept definition short and succulent.

template <typename F, typename R, typename ...Args>
concept bool Callable =
    std::is_invocable<R, F, Args...>::value;

void foo(Callable<int, int> f)
    std::cout << std::invoke(f, 42) << std::endl;

When we get concepts (C++20, hopefully), we will have the best of both worlds – we will have an optimal way to accept callable objects as function arguments, and not sacrificing the API to do it.

Book discount

Today, Functional Programming in C++ is again the Deal of the Day – you get half off if you use the code dotd032317au at


KDE Project:

Are you looking for a C++/Qt/Linux developer job in Germany ?
Then maybe this is something for you: Sharp Reflections

I'm looking forward to hear from you. :-)

A few months ago, Helio blogged about building KDE 1 (again) on modern systems. So recently while cleaning up some boxes of old books, I found the corresponding books — which shows that there was a time that there was a market for writing books about the Linux desktop.

Particularly the top book, “Using KDE” by Nicholas Wells, is interesting. The first page I opened it up to was a pointer to the KDE Translation teams, and information on how to contribute, how to get in touch with the translation teams, etc. You can still find the translation info online, although the location has changed since 2000.

There’s also tips and tricks on getting your .xinitrc right, and how to safely fall back to twm. I find this amusing, because I still use the same techniques when testing new Plasma 5 packages in a FreeBSD VM. It’s good that the old standalone twm is still there, but it would be much more amusing to fall back to KDE 1.1.2 if Plasma 5 doesn’t start right, I think.

I did a day’s training at the FLOSS UK conference in Manchester on Chef. Anthony Hodson came from Chef (a company with over 200 employees) to provide this intermediate training which covered writing receipes using test driven development.  Thanks to Chef and Anthony and FLOSS UK for providing it cheap.  Here’s some notes for my own interest and anyone else who cares.

Using chef generate we started a new cookbook called http.

This cookbook contains a .kitchen.yml file.  Test Kitchen is a chef tool to run tests on chef recipes.  ‘kitchen list’ will show the machines it’s configured to run.  Default uses Virtualbox and centos/ubuntu.  Can be changed to Docker or whatever.  ‘kitchen create’ will make them. ‘kitchen converge to deploy. ‘kitchen login’ to log into v-machine. ‘kitchen verify’ run tests.  ‘kitchen test’ will destroy then setup and verify, takes a bit longer.

Write the test first.  If you’re not sure what the test should be write stub/placeholder statements for what you do know then work out the code.

ChefSpec (an RSpec language) is the in memory unit tests for receipes, it’s quicker and does finer grained tests than the Kitchen tests (which use InSpec and do black box tests on the final result).  Run with  chef exec rspec ../default-spec.rb  rspec shows a * for a stub.

Beware if a test passes first time, it might be a false positive.

ohai is a standalone or chef client tool which detects the node attributes and passes to the chef client.  We didn’t get onto this as it was for a follow on day.

Pry is a Ruby debugger.  It’s a Gem and part of chefdk.

To debug recipes use pry in the receipe, drops you into a debug prompt for checking the values are what you think they are.

I still find deploying chef a nightmare, it won’t install in the normal way on my preferred Scaleway server because they’re ARM, by default it needs a Chef server but you can just use chef-client with –local-mode and then there’s chef solo, chef zero and knife solo which all do things that I haven’t quite got my head round.  All interesting to learn anyway.


Facebooktwittergoogle_pluslinkedinby feather

Ryou is the amazing artist from Japan who made the Kiki plastic model. Thanks to Tyson Tan, we now have an interview with him!

Can you tell us something about yourself?

I’m Ito Ryou-ichi (Ryou), a Japanese professional modeler and figure sculptor. I work for the model hobby magazine 月刊モデルグラフィックス (Model Graphics Monthly), writing columns, building guides as well as making model samples.

When did you begin making models like this?

Building plastic models has been my hobby since I was a kid. Back then I liked building robot models from anime titles like the Gundam series. When I grew up, I once worked as a manga artist, but the job didn’t work out for me, so I became a modeler/sculptor around my 30s (in the 2000s). That said, I still love drawing pictures and manga!

How do you design them?

Being a former manga artist, I like to articulate my figure design from a manga character design perspective. First I determine the character’s general impression, then collect information like clothing style and other stuff to match that impression. Using those references, I draw several iterations until I feel comfortable with the whole result.

Although I like human and robot characters in general, my favorite has to be kemono (Japanese style furry characters). A niche genre indeed, especially in the modeling scene — you don’t see many of those figures around. But to me, it feels like a challenge in which I can make the best use of my taste and skills.

How do you make the prototypes? And how were they produced?

There are many ways of prototyping a figure. I have been using epoxy putty sculpting most of the time. First I make the figure’s skeleton using metallic wires, then put epoxy putty around the skeleton to make a crude shape for the body. I then use art knives and other tools to do the sculpting work, slowly making all the details according to the design arts. A trusty old “analogue approach” if you will. In contrast, I have been trying the digital approach with ZBrushCore as well. Although I’m still learning, I can now make something like a head out of it.

In case of Kiki’s figure (and most of my figures), the final product is known as a “Garage Kit” — a box of unassembled, unpainted resin parts. The buyer builds and paints the figure by themselves. To turn the prototype into a garage kit, the finished prototype must first be broken into a few individual parts, make sure they have casting friendly shapes. Silicon-based rubber is then used to make molds out of those parts. Finally, flowing synthetic resin is injected into the molds and parts are harvested after the injected resin settled. This method is called “resin casting”. Although I can cast them at home by myself, I often commission a professional workshop to do it for me. It costs more that way, but they can produce parts of higher quality in large quantity.

How did you learn about Krita?

Some time ago I came across Tyson Tan’s character designs on and immediately became a big fan of his work. His Kiki pictures caught my attention and I did some research out of curiosity, leading me to Krita. I haven’t yet learned how to use Krita, but I’ll do that eventually.

Why did you decide to make a Kiki statuette?

Ryou: Before making Kiki, I had already collaborated with a few other artists, turning their characters into figures. Tyson has a unique way of mixing the beauty of living beings and futuristic robotic mechanism that I really liked, so I contacted him on Twitter. I picked a few characters from his creations as candidates, one of them was Kiki. Although more ”glamorous” would have been great too, after some discussion we finally decided to make Kiki.

Tyson: During the discussions, we looked into many of my original characters, some cute, some sexy. We did realize the market prefer figures with glamorous bodies, but we really wanted to make something special. Kiki being Krita’s mascot, a mascot of a free and open source art software, has one more layer of meaning than “just someone’s OC”. It was very courageous for Ryou to agree on a plan like that, since producing such a figure is very expensive and he would be the one to bear the monetary risk. I really admire his decision.

Where can people order them?

The Kiki figure kit can be ordered from my personal website. I send them worldwide:

Anything else you want to share with us?

I plan to collaborate with other artists in the future to make more furry figures like Kiki. I will contact the artist if I like their work, but you may also commission me to make a figure for a specific character.

I hope through making this Kiki figure I can connect with more people!

Ryou’s Personal Website:


Tras unos meses desde su lanzamiento y ya tenemos la cuarta actualización de Plasma 5.9. Y es que alguna cosa no se le puede reprochar al equipo de desarrollo de KDE es su capacidad de trabajo y mejora constante.

Cuarta actualización de Plasma 5.9

El 31 de enero de 2017, la Comunidad KDE se complacióe en presentar su escritorio para entornos GNU/Linux Plasma 5.9. Esta nueva versión fue el fruto de un intenso trabajo por parte de los desarrolladores y probadores que siguen dos líneas básicas de acción: añadir nuevas funcionalidades y mejorar el funcionamiento de Plasma eliminando bugs y optimizando el consumo de recursos.

cuarta actualización de Plasma 5.9

Un mes más tarde, ayer 21 de marzo de 2017, se anunció en la página oficial de la Comunidad el lanzamiento de la cuarta actualización de Plasma 5.9, la cual conlleva un buen número de errores resueltos, mejoras en las traducciones y pequeños cambios realizados por parte de los desarrolladores.

Como es habitual, este tipo de actualizaciones son muy recomendables e incluyen errores solucionados como:

  • Los errores al añadir o eliminar repositorios en Discover.
  • Corregido el renombrado de escritorios.


Más información:

Las novedades de Plasma 5.9

De esta forma, y como la forma más sencilla de conocer todas las novedades, os aconsejo a ver el siguiente vídeo con las novedades más destacadas de Plasma 5.9, muchas de las cuales comento en el siguiente apartado del artículo:


Además del regalo que es tener un nuevo fondo de escritorio de la mano de Ken Vermette del que ya hablamos en el blog, Plasma 5.9 nos traerá nuevas funcionalidades:

Tercera actualización de Plasma 5.9

  • Retorno de la barra de menús globales para el escritorio y para las ventanas. Con ello podemos tener el menú de opciones principales bien en la parte superior del escritorio o bien como un botón en la barra de la ventana de la aplicación.
  • Posibilidad de conmutar entre ventanas con el Gestor detareas utilizando Meta + número ventana.
  • Posibilidad de añadir nuevos temas globales para Plasma (los llamado Look-and-Feel Packs) descargados directamente desde internet con la posibilidad de editarlos.
  • Nuevo diseño de la barra de desplazamiento de Breeze, mucho más fina y elegante ya que se integra mejor con el tema Plasma seleccionado.
  • El Quick Launch applet ahora soporta listas de acciones, con lo que podremos seleccionar qué hacer con el elemento seleccionado.

  • Las ventanas emergentes de las barras de tareas mostrarán información más detallada.
  • Notificaciones interactivas en las previsualizaciones: A partir de ahora, las notificaciones no solo nos informan sino que también podemos realiza acciones con ellas como capturar una imagen y arrastrarla al visor de imágenes.
  • Mejoras en el plasmoide icono de escritorio con el retorno de las opciones de configuración: general, permisos y opciones de la aplicación.
  • Posibilidad de agrupar plasmoides en uno solo mediante pestañas.
  • Mejoras en el gestor de tareas que ahora añade el control multimedia. De esta forma podemos incluso silenciar directamente una aplicación.
  • Las Preferencias del Sistemas mejoran la gestión de redes.

En definitiva, muchas novedades para Plasma 5.9 que hará que nuestro escritorio funcione mejor y sea más funcional. No puedo a esperar a probarlo en mis distribuciones favoritas.

March 21, 2017

WireGuard is participating in Google Summer of Code 2017. If you're a student who would like to be funded this summer for writing interesting kernel code, studying cryptography, building networks, or working on a wide variety of interesting problems, then this might be appealing. The program opened to students on March 20th. If you're applying for WireGuard, choose "Linux Foundation" and state in your proposal that you'd like to work on WireGuard with "Jason Donenfeld" as your mentor.

Seguimos con la tercera temporada de los vídeos de la Comunidad KDE española. En esta ocasión los integrantes del Grupo de Comunicación de KDE España han decidido que el tema elegido sea uno muy genérico “Cómo contribuir a que tu aplicación de Software Libre funcione correctamente. De esta forma os invito a participar con nosotros en la realización del nuevo podcast que emitiremos el próximo 28 de marzo a las 22:00, hora de España peninsular.

Cómo contribuir a que tu aplicación de Software Libre funcione correctamente nuevo podcast de KDE España

Hace tiempo que al Grupo de Comunicación le ronda la idea de realizar un podcast en el que se hable desde el punto de vista del desarrollador y desde el punto de vista del usuario de un tema capital en el desarrollo del sofware: cómo contribuir a que tu aplicación de Software Libre funcione correctamente.

De tal forma en el tiempo que dure el podcast pensamos a hablar del reporte y gestión de errores, de contribuciones a las traducciones, diseño gráfico, difusión de proyectos, organización de eventos, etc. Todo ello desde los dos lados de la contribución: usuario y desarrollador.

Cómo contribuir a que tu aplicación de Software Libre funcione correctamente

De esta forma. si no ocurre algún problema, el  próximo 28 de marzo a las 22:00 hora de España Peninsular os invito a escucharnos (y vernos) en directo hablar sobre este apasionante tema, crucial para la conquista del escritorio de los usuarios

Para poder disfrutar del podcast en directo seguiremos utilizando los servicios de acontecimiento en vivo de Youtube  y contestaremos, si podemos, vuestras preguntas en directo. Por cierto, este podcast será el tercero de la tercera temporada.

¡Os esperamos el martes 28 de marzo a las 22:00!

Los podcast de KDE España

Ayúdanos a decidir el temaEn un afán de acercarnos más a todos los simpatizantes de KDE hace un tiempo que empezamos a realizar podcast. En ellos varios miembros de la Comunidad KDE de España nos reunimos para hablar un poco de los diversos proyectos.

Hemos hablado de muchos temas como por ejemplo Akademy, KDE Connect, Plasma Mobile, etc.

Podéis seguirnos en  el canal de Youtube de KDE España o en Ivoox, donde estamos subiendo poco a poco los audios emitidos. Esperamos que os gusten.

Kdenlive development might look a bit slow these last months, but we are very busy behind the scene. You can join us tonight on our monthly café to get an insight of the current developments, follow the discussions or ask your questions.

Café will be at 21pm, european time, on, channel #kdenlive

More news on the next releases will follow soon, so keep tuned.

If you read my recent blog post, I defined a file type (*.webapp) that contains instructions to build an Electron Web App, I wrote a script to install *.webapp files (nativefier-freedesktop) and a script/wizard to build *.webapp files starting from a URL. And I published a first Web App in KDE Store / Opendesktop / Linux-Apps.

What inspire me was AUR (Arch Linux User Repository): since it’s not safe to install binaries distributed by users, AUR hosts instead instructions to automatically download sources, build an Arch package and install it. The principle of *.webapp is the same: instructions that let the users build web apps locally, eventually with custom CSS/JS to have, for example, a dark version of some famous site like YouTube.

Also, when I use KDE Neon or other distros I miss AUR a lot: on it you can find everything and install it quickly, you can find also Git versions of apps that are in the official repos in their stable release. So I thought: since now there are distro-agnostic packages, like Flatpak, Snap and AppImage, why not create the “distro-agnostic AUR”? It would work exactly like AUR but at the end of installation process it doesn’t create an Arch package but a Flatpak/Snap/AppImage one.

So a developer could distribute i.e. the Flatpak of the 1.0 stable version of his app and an user could decide to write a DAUR (“Distro-agnostic User Repository” �� package with the recipe to build a Flatpak using the sources from Git, so other users will be able to install the official 1.0 version in Flatpak and the development version also in Flatpak. Or maybe an user could write a recipe for Snap because he don’t like that the developer distributes only a Flatpak etc, use cases are many.

The DAUR packages could be hosted as a category in Opendesktop / Linux App / KDE Store and software centers like Discover could support them… here there is a mockup to explain what I mean:

If you like the idea, please share it to grow the interest.

KDevelop 5.1.0 released

We are happy to announce the release of KDevelop 5.1! Tons of new stuff entered KDevelop 5.1. Here's a summary of what's new in this version:

LLDB support

We had a great student for GSoC 2016 implementing LLDB support in KDevelop. The end result is that we now have a debugger framework which can be used both for the GDB & LLDB MI communcation. The LLDB plugin teaches KDevelop to talk to the standalone LLDB MI Driver (lldb-mi); so now it's possible to use LLDB as an alternative debugger backend for KDevelop. One interesting thing with LLDB that it's also potentially useful on OS X & Windows for us, especially when the Windows port of LLDB is getting more and more stable.

Analyzer run mode

With 5.1, KDevelop got a new menu entry Analyzer which features a set of actions to work with analyzer-like plugins. During the last months, we merged analyzer plugins into kdevelop.git which are now shipped to you out of the box:


Cppcheck is a well-known static analysis tool for C/C++ code. Cppcheck is useful for taking a closer look at your source code checking for common programming faults such as out of bounds accesses, memory leaks, null pointer dereferences, uninitialized variables, etc. pp. With the Cppcheck integration in KDevelop running the cppcheck executable is just one click away. KDevelop will pass the correct parameters to cppcheck including potential include paths and other options.

KDevelop with Cppcheck integration KDevelop with Cppcheck integration

Other analyzers in the pipeline: Valgrind, clang-tidy, krazy2

While the Cppcheck plugin is shipped out of the box, other analyzers are not considered 100% stable yet and still reside in their own repositories. The clang-tidy plugin looks super promising (another static analysis & refactoring tool for C/C++) as it really easy to use from the command-line and thus easy to integrate into our IDE. We plan to import more of those analyzers into kdevelop.git so they'll be part of the kdevelop tarball and are thus available to you without having to install yet another package.

Initial OpenCL language support, CUDA support upcoming

Since 5.1 KDevelop is able to parse code written in the Open Computing Language (OpenCL). The OpenCL language support inside KDevelop is backed by our Clang-based language support backend and thus just required minimal changes in KDevelop to start supporting it. Support for handling NVidia's CUDA files will be part of 5.2 instead. Stay tuned.

KDevelop with OpenCL language support Properly highlighted OpenCL file in KDevelop


Note that for KDevelop to detect .cl files as OpenCL files, an up-to-date shared-mime-info package which contains this patch is required. Alternatively, you can add the mime type yourself by creating the file /usr/share/mime/text/x-opencl-src.xml with appropriate contents and re-running update-mime-database yourself.

Improved Python language support

Python language support now supports Python 3.6 syntax and semantics. In addition, thanks to the work of Francis Herne, various long-standing issues in the semantic analysis engine have been fixed:

  • Loops and comprehensions infer types correctly in many more cases, including on user-defined types with __iter__ and __next__ methods.
  • Type guessing works for arguments named by keywords (not only **kwargs), and works better for class/staticmethods.
  • Property accesses get the return type of the decorated method.
  • Types are inferred correctly from PEP-448 syntax in container literals.
  • Unsure types are handled in subscripts and tuple unpacking.
  • Uses are found for __call__() and __get/setitem__().

These improvements were accompanied by cleaning up dusty code, making future changes simpler as well.Furthermore, our style checker integration has been rewritten, making it much faster and easier to configure.

Screenshot of advanced features under kdev-pythonSome of the newly-handled Python language features.

Perforce integration

Thanks to Morten Danielsen Volden we now have Perforce integration in kdevplatform.git, which can be used freely starting with KDevelop 5.1. Perforce is a commercial, proprietary revision control system. The Perforce integration in KDevelop simply works by running a local version of the p4 executable (needs to be installed independently of KDevelop) with appropriate parameters. This is similar to how KDevelop integrates with other VCS, such as Git & Bazaar.

Color scheme selection inside KDevelop

It is now possible to select the current color scheme from within KDevelop, a feature which has been requested several times in the past. This is especially useful for when KDevelop is run under a different desktop environment than KDE Plasma, where the color scheme settings may not be easily accessible.

Screenshot of KDevelop's color scheme selection menuSelecting the current color scheme inside KDevelop 

Ongoing support for other platforms

We're continuously improving the Windows version of KDevelop and we're planning to release a first KDevelop version for OS X soon (yep, we're repeating us here, please stay tuned!). For the Windows version, we upgraded the KF5 version to 5.32 and the LLVM/Clang version to 3.9.1.

Get it

Together with the source code, we again provide a prebuilt one-file-executable for 64-bit Linux, as well as binary installers for 32- and 64-bit Microsoft Windows. You can find them on our download page.

The 5.1.0 source code and signatures can be downloaded from here.

Please give this version a try and as always let us know about any issues you find via our bug tracker.



  • Codegen: Fix crash when documenting template func. Commit. Fixes bug #377036
  • Grepview: Fix search in project root with trailing slash. Commit. Phabricator Code review D4774
  • Fix project tree state not being saved. Commit. Phabricator Code review D4665
  • Trim identifiers before triggering rename action. Commit. Fixes bug #376521
  • Update tab colors when the palette changes. Commit. Fixes bug #358776
  • Grepview: Fix crash on exit with grep dialog open. Commit. Fixes bug #348784
  • Template file dialog: kill old widgets on re-entering TemplateOptionsPage. Commit. Phabricator Code review D4413
  • GrepOutputView: show older search results fully expanded initially. Commit. Phabricator Code review D4605
  • Toolbar state was not being saved / restored. Commit. Phabricator Code review D4122
  • Fix Bug 374458 by properly blocking signals on debugger combo box. Commit. Phabricator Code review D4555
  • Prevent progress notifications on copying and writing back project files. Commit. Phabricator Code review D4409
  • Fix preview for file templates with options: add vars with default values. Commit. Phabricator Code review D4384
  • TemplatePreviewRenderer: inject also some dummy test data. Commit. Phabricator Code review D4369
  • Fix bug 374921: Tool view grouping no longer works in 5.1 branch. Commit. Fixes bug #373213. Phabricator Code review D4219
  • Enable "Open Config"/"Close Project" always if just one project is loaded. Commit. Fixes bug #375234. Phabricator Code review D4216
  • Fix bug 375007 - Asserts when pressing "Show Imports" button in problems tool view. Commit. Phabricator Code review D4152
  • Container types: do not write lock when calling addContentType(). Commit. See bug #374097
  • Fix progress widget flags. Commit. Fixes bug #374357
  • Don't hit assertion with "View Diff". Commit. Fixes bug #373763
  • Remove KDEV_USE_EXTENSION_INTERFACE. Commit. Phabricator Code review D3774
  • Add button to re-run search in files. Commit. Phabricator Code review D3550
  • Add "Documentation" settings category. Commit. Phabricator Code review D3700
  • Shell env script: Read user bashrc again. Commit. Fixes bug #373419
  • Add zsh support for kdevplatform konsole integration. Commit. Phabricator Code review D3171
  • Save/Restore Tool Views order. Commit. Phabricator Code review D3002
  • Fix context help for template data types. Commit. Phabricator Code review D3205
  • Port kdev_format_source script to C++/Qt. Commit. Phabricator Code review D2925
  • Documentation: small UI fix. Commit. Phabricator Code review D3255
  • Feature "Diff From Branch" on BranchManager. Commit. Phabricator Code review D3073
  • Add filtering for ProblemsView. Commit. Fixes bug #339839. Phabricator Code review D3108
  • More helpful error message when failing to load project plugin. Commit. See bug #369326
  • Add "Analyze" group to ContextMenuExtension. Commit. Phabricator Code review D3013
  • Add keyboard shortcut for "Switch Header/Source". Commit. Fixes bug #359136. Phabricator Code review D2757
  • Process QML runtime errors. Commit. Phabricator Code review D2735
  • Use folder prefix is filename is not unique. Commit. Phabricator Code review D1947
  • Implement color scheme selection from these installed in the system using KColorSchemeManager. Commit. Code review #127979. Fixes bug #279592
  • KDevPlatform changes for supporting the -iframework and -F header search path. Commit. Code review #128284
  • [OS X] Show job progress in the Dock tile. Commit. Code review #128188
  • Project controller: make displaying project config dialog async. Commit. Fixes bug #364433
  • Integrate kdev-perforce into kdevelop. Commit. Phabricator Code review D2001
  • Fix variable toolview not sync with framestack view. Commit. Phabricator Code review D1351
  • Respect KDE HIG. Commit. Fixes bug #360503
  • [GCI] Add buttons "jump to first (last) item" to standardoutputview/outputwidget. Commit. Fixes bug #338153. Phabricator Code review D750
  • Remove QtQuick1 dependency. Commit. Code review #125782
  • Don't close documents when saving. Commit. Fixes bug #351895


  • Qmljs: Fix crash access internal function context. Commit. Fixes bug #376586
  • CustomBuildSystemConfigWidget: clear configs before reloading. Commit. Fixes bug #376523
  • Add basic support for parsing OpenCL. Commit. Phabricator Code review D4930
  • Add path escaping to cmake completion. Commit. Fixes bug #338196. Phabricator Code review D4760
  • Return immediately with unsupported custom-build-job arguments. Commit. Fixes bug #376833
  • Improve the Qt5 QtQuick template and make it available in CMake as well. Commit. Phabricator Code review D4721
  • Fix a crash when gdb produces malformed output. Commit. Phabricator Code review D4714
  • Clang: Don't insert new include beyond moc include. Commit. Fixes bug #375274
  • Avoid utimes() in custommake projects, remove unsermake support. Commit. Phabricator Code review D4612. Fixes bug #376432
  • Ninjabuilder: Don't crash on `sudo ninja install`. Commit. Fixes bug #372888
  • Specify generator whenever there's no CMakeCache.txt. Commit. Fixes bug #349877
  • C/C++ Compilers config page: use KUrlRequester, focus edit field on Add. Commit. Phabricator Code review D4582
  • Switch to new X-KDevelop-Languages key. Commit. Phabricator Code review D4424
  • Add ClangClassHelper, to restore features of CppClassHelper. Commit. Phabricator Code review D4359
  • More unit tests and fixes for lldb formatters. Commit. Phabricator Code review D3942
  • Fix segfault when analyzing source code issue. Commit. Code review #129767. Fixes bug #374525
  • Add an app_template for a simple KDevelop plugin. Commit. Phabricator Code review D3785
  • Advanced configuration settings for the CMake ProjectManager. Commit. Code review #129416
  • QtHelp page loading fix. Commit. Phabricator Code review D3671
  • Add zsh support for kdevelop konsole integration. Commit. Phabricator Code review D3172
  • Assert if the gdb plugin was unloaded. Commit. See bug #370314. Code review #129131
  • Cmake manager: fix incorrect settings import from existing build directory. Commit. Phabricator Code review D2964
  • Remove non-existing include dir. Commit. Phabricator Code review D2898
  • Consider showing CppCheckPreferences page under "Analyzers" category in session global config menu. Commit. Phabricator Code review D2821
  • Report man pages loading error. Commit. Code review #128943
  • Fix KDevelop crashes when trying to debug from command-line. Commit. Fixes bug #367837
  • LLDB/GDB plugin: add support for coredumpctl in unittests, and fix LldbTest::testCoreFile. Commit. Phabricator Code review D2604
  • GDB/LLDB plugin: correctly handle string escaping and unescaping. Commit. Phabricator Code review D2375
  • Merge LLDB plugin into master. Commit. Phabricator Code review D2293
  • Reapply some patches to 5.0 that are lost when merging into master. Commit. Phabricator Code review D2292
  • Implement color scheme selection from these installed in the system using KColorSchemeManager. Commit. Code review #127980. Fixes bug #279592
  • Support -iframework and -F header search path options. Commit. Code review #128272
  • Recognise #import directive in the context browser. Commit. Code review #128276
  • Qmljs: Don't hold locks while performing filesystem accesses or calling qmlplugindump. Commit. Fixes bug #363509. Code review #128227
  • Fix issue with kdev-cppcheck selecting wrong project. Commit. Phabricator Code review D1116
  • Always show recursive "missing include" errors in problem view. Commit. See bug #358853
  • Add a testcase for BUG: 358853. Commit. See bug #358853
  • Preserve existing windowIcons via QIcon::fromTheme's fallback. Commit. Code review #126759
  • Make kdevelop-app and kdev-plugins use Qt5 resources for splash, rc, knsrc. Commit. Phabricator Code review D529
  • Make qmljs kdevelop plugin compile on OSX. Commit. Phabricator Code review D456
  • Use IProject->path() instead of folder() which is deprecated and will be removed. Commit. Code review #123117


  • Restore compile-time support for Python 3.4.3+. Commit. Phabricator Code review D4936
  • Very basic property getter support. Commit. See bug #372273. Phabricator Code review D4207
  • Fix OOM condition in style checking: move buffer processing out of read loop. Commit. Fixes bug #375037
  • Style checking: read data from stdin as bytes, not in some encoding. Commit. See bug #375037
  • Completion: wrap expression visitor into a read lock. Commit. Fixes bug #374097
  • Yet more range fixes. Commit. See bug #373850
  • Completion hint: Correct default-argument index for non-static methods. Commit. Fixes bug #369369
  • PEP-448 for list and set literals. Commit. Phabricator Code review D3868
  • PEP-448 unpacking in dict literals. Commit. Phabricator Code review D3867
  • Add types from unpacked dict argument to **kwargs parameter. Commit. Phabricator Code review D3861
  • Lambda expression improvements. Commit. Fixes bug #306212. Phabricator Code review D3555
  • Set mostly-correct endCol on numbers, single-quoted strings and subscripts. Commit. See bug #373850
  • Skip explicit `self` argument when calling via class. Commit. Fixes bug #369364
  • Make ExpressionVisitor::visitCall() clearer. Commit. Phabricator Code review D3524
  • Shorten class context range by one line. Commit. Fixes bug #309817
  • Pass docstring into `docstringContainsHint()` rather than declaration. Commit. Phabricator Code review D3535
  • Show uses for __call__() and __{get,set}item__(). Commit. Phabricator Code review D3512
  • Rename functionDeclarationForCalledDeclaration -> functionForCalled and tweak types. Commit. Phabricator Code review D3534
  • Get iterable content using __iter__() and __next__(). Commit. Fixes bug #369363. Phabricator Code review D3540
  • Make the hack for finding attribute ranges more robust. Commit. Phabricator Code review D3437
  • Get more possible types when subscripting unsure-types. Commit. Phabricator Code review D3427
  • Pass AbstractType::Ptr, not Declaration*, to accessAttribute(). Commit. Fixes bug #359912. Phabricator Code review D3422
  • Improved unpacking and iteration. Commit. Fixes bug #359915. Phabricator Code review D3352
  • Allow configuring a per-project Python interpreter for search paths. Commit. Fixes bug #368970
  • Support expanding widgets in the completion list. Commit. Fixes bug #368263
  • Fix porting bug: path for docfile generator files. Commit. Fixes bug #359905
  • Lock parse lock for a short moment when destroying language support. Commit. Fixes bug #359263
  • Fix path in docfile KCM. Commit. Fixes bug #358036


  • Support of Class::{expr}() syntax from Php 5.4. Commit. Phabricator Code review D4902
  • Support for $this as an array when implementing ArrayAccess. Commit. Phabricator Code review D4776
  • Php7 IIFE syntax parsing. Commit. Fixes bug #370515. Phabricator Code review D4391
  • Fix compile issue due to recent changes in kdevplatform. Commit. Phabricator Code review D3411
  • Fix parsing of the ::class constant. Commit. Phabricator Code review D988
  • Fix parsing of the ::class constant. Commit. Phabricator Code review D988
kfunk Tue, 03/21/2017 - 11:00


Wonderful release, lots of things I like on the C/C++ side. Sadly there's still no Perl support which previous incarnations of KDevelop had (pre-5.x). Would be really nice, if that could be added. ;-)


In reply to by Drizzt (not verified)

KDevelop 4 did not have Perl support, and what KDevelop 3 (over 10 years ago) had in terms of language support was much more simplistic than what we consider a supported language nowadays. In this sense I wouldn't say KDevelop ever supported perl.
It's a lot of work to get a language supported, and we don't have the resources to add support for Perl at the moment. If you are interested in working on that, you are very welcome of course!

I found signatures for the source code but where are the signatures for the AppImage files?

Big thanks for python support enhancements.

Hi! Thanks for you work, I used KDevelop 4 and seems 5.x version made a great progress. Just a couple of questions:

1. Are there any support for building and deploying for Android and iOS, like QtCreator has? Or are there any plans to implement it?
2. Have you plans to integrate a tool like clazy?


In reply to by Nikita (not verified)

(1): Not really, at this point
(2): Yes, it's theoretically possible to integrate clazy so the internal parser of KDevelop actually reports clazy issues, but there are some difficulties to do this with a distro-packaged libclang. So, plans, yes, but they haven't materialized yet.

Timothée Giet has finished his latest training course for Krita. In three parts, Timothée introduces the all-new animation feature in Krita. Animation was introduced in Krita 3.0, last year and is already used by people all over the world, for fun and for real work.

Animation in Krita is meant to recreate the glory days of hand-drawn animation, with a modern twist. It’s not a flash substitute, but allows you to pair Krita’s awesome drawing capabilities with a frame-based animation approach.

In this training course, Timothée first gives us a tour of the new animation features and panels in Krita. The second part introduces the foundation of traditional animation. The final part takes you through the production of an entire short clip, from sketching to exporting. All necessary production files are included, too!

Animate with Krita is available as a digital download and costs just €14,95 (excluding VAT in the European Union) English and French subtitles are included, as well as all project files.

Get Animate with Krita

As a professional mobile application developer you probably already know by now how awesome Qt makes most of your daily job.

Yet, things like finding that useful (but undocumented) qmake option, deciding upon the application architecture to use for your next project, implementing native extensions on Android and iOS, checking whether a suitable library for your component already exists, might prove quite difficult if you are on your own.

The forums, IRC and mailing lists are great places to start from for one-shot questions, but sometimes you need a dedicated environment with peers where you can have a more focused and ongoing discussion about your daily matters. Here is where QtMob comes in.

QtMob is a global community of professional Qt mobile application developers that are willing to share their pains, knowledge and resources.

QtMob is a Slack chat, so that you can leverage all the goodies that modern-day, computer-mediated conversation has to offer.

It is a tool that you can open in the morning while sipping your coffee/tea, to likely find a bunch of fresh new mobile-related resources that someone just posted.

It sports a good mix of professional Qt mobile app developers, relatively fresh Qt users who love being on the cutting edge and sharing what they just discovered, Qt veterans who are looking for a smooth transition to newer topics like mobile and Quick, members of the QtCompany who want a direct channel with a group of mobile devs for feedback, as well as professionals from companies which have invested in Qt on mobile to provide middleware and services to application developers.

Members come from industries as diverse as game development, medical software, geographic informations systems, you name it. That’s just as diverse as the Qt users spectrum.

QtMob is also a place for collaborations, where members get feedback about new packages and tools they are offering or plan to offer to the community (among others, Cutehacks’ qpm package manager, Qt Champion Benlau’s many utility libraries, Grecko’s SortFilterProxyModel qml wrapper, Esri’s ArcGIS SDK, VPlay’s mobile SDK or just recruit consultants for their next project.

QtMob is the right place to start an in-depth discussion about strategies to prevent memory warnings on iOS, choosing the right push notifications component, talking about Qt and Redux, implementing CI, making .pro changes to support your build, or just shouting your frustation in the #bottomlesspit channel.

Here are a few first impressions from a community member, Sassan from Teheran:

“After joining this group I was able to ask questions, and there was always someone who responded quickly, either with the solution or the reason why it was not possible yet to achieve what I needed. A question may initiate discussions about the topic, and you’ll end up knowing much more than what you asked for, which is good because it will save you lots of time not doing the wrong things others have tried before. Your question may end up as a feature request on the Qt bugtracker.

After joining this group I was able to know about the latest technologies, packages, related softwares, etc around Qt. It’s really nice to know for example the time you spend to release your app can be reduced 5 times by using tools people discuss about here… and that’s just an example.

After joining this group I had the chance to know about the latest up-to-date documents (pdfs, videos, tutorials, etc.) people create about coding in Qt.

After joining this group I had the chance to meet so many nice people, many of whom spend part of their time to contribute to this open source project.

After joining this group I learned about best practices for doing things I already knew how to do, but which I can now do better.”

We recently celebrated user #100 (while I write the count is 130), Jeff Galbraith from iMirror: a good example of using Qt for mobile in innovative settings like fitting rooms. But QtMob members use cases are just so many…

Come along and see, it’s free!

The only requirement: be willing to give at least as much as you get, in whatever form is best suited to your level of experience and job constraints.

The post QtMob: Qt mobile application development becomes easier appeared first on Qt Blog.

March 20, 2017

Twitter seems ever dominant and important for communication. Years ago I added a microblogging feed to Planet KDE but that still needed people to add themselves and being all idealistic I added support for anything with an RSS feed assuming people would use more-free But went away and Twitter I think removed their RSS ability but got ever more important and powerful.or the relaunched theme a couple of years ago we added some Twitter feeds but they were hidden away and little used.

So today I’ve made them show by default and available down the side.  There’s one which is for all feeds with a #kde tag and one with @kdecommunity feed. You can hide them by clicking the Microblogging link at the top. Let me know what you think.

Update: my Bootstrap CSS failed and on medium sized monitors it moved all the real content down to below the Twitter feeds rather than floating to the side so I’ve moved them to the bottom instead of the side.  Anyone who knows Bootstrap better than me able to help fix?

I’ve also done away with the planetoids.,, and several others. These were little used and when I asked representatives from the communities about them they didn’t even know they existed. Instead we have categories which you can see with the Configure Feed menu at the top to select languages.

I allowed the <embed> tag which allow for embedding YouTube videos and other bits.  Don’t abuse it folks ��

Finally Planet KDE moved back to where it belongs: Because KDE is a community, it should not be afraid of its community.

Let me know of any issues or improvements that could be made.

Facebooktwittergoogle_pluslinkedinby feather

This announcement is also available in Spanish and Taiwanese Mandarin.

It's only been days since our latest release Goedel 2017.03 was announced, but KDE software updates fully roll in Chakra and we could not delay this any further. As always, simply upgrading your system after installation will provide you with the latest available software in our repositories.

The most recent updates for KDE's Plasma, Applications and Frameworks series are now available to all Chakra users. All of these have been built against an important update of Qt to version 5.8.0.

The Calligra suite has also been updated to, so it is now fully ported to Frameworks 5 and will be provided as a single package. However this means that applications like author, braindump, flow and stage are no longer actively maintained and are dropped from our repositories.

Plasma 5.9.3 provides another round of bugfixes and translation updates to the 5.9 release, with changes found mostly in kwin, plasma-desktop and plasma-workspace.

Applications 16.12.3 ship with more than 20 recorded bugfixes and include improvements to kdepim, ark, filelight, gwenview, kate, kdenlive and okular. kdelibs have also been updated to 4.14.30.

Frameworks 5.32.0 provide the usual bugfixes and improvements to breeze-icons, kio, ktexteditor, plasma-framework and syntax-highlighting, among other packages.

Other notable package upgrades and changes:

bash 4.4.012
btrfs-progs 4.8.5
hplip 3.16.11
mariadb 10.1.22
vala 0.34.6

qupzilla 2.1.2

pidgin 2.12.0
skypeforlinux We now ship the bundled web application which unfortunately misses some features and lacks in system integration, but at least it works.

wine 2.4

It should be safe to answer yes to any replacement question by Pacman. If in doubt or if you face another issue in relation to this update, please ask or report it on the related forum section.

Most of our mirrors take 12-24h to synchronize, after which it should be safe to upgrade. To be sure, please use the mirror status page to check that your mirror synchronized with our main server after this announcement.

In February, KDE's Plasma team came together in for their yearly in-person meeting. The meeting was kindly hosted by von Affenfels GmbH, a webdesign agency in Stuttgart, Germany. The team discussed a wide variety of topics, such as design, features new and old, bugs and sore points in the current implementation, app distribution, also project management, internal and outward-facing communication and Wayland.

Plasma team at the sprint: Clemens, Ronald, Martin, Kai Uwe, Sebas, Jonathan, Martin, David, Bhushan, Dan, Aleix, Roman, Ken

New features...

KDE is experimenting with new ways to deploy applications. Under consideration are technologies such as Flatpak, Snap and AppImage, which all have their distinct advantages. Support for bundled applications is being built into Discover, Plasma's software management center, and the KDE Store. An idea is to allow software developers more control over their applications' lifecycle, and to get updates shipped much quicker into the hands of users. Similar as with packages automatically created from our Git code repositories. This can dramatically cut down on the complexity of the deployment chain.

Browser integration in Plasma will be improved by integrating notifications and download progress and multimedia natively into Plasma by providing a browser extension that relays this information to the Plasma shell.

The Plasma team also discussed using touchpad gestures to control the window manager, so users can use specific multitouch gestures to trigger effects like the "desktop grid", "present windows" or swiping between virtual desktops.

Plasma Mobile Ported to Nexus 5X

Plasma Mobile, KDE's ongoing product to provide a Plasma implementation suitable for mobile phones was made to run on the Nexus 5X. The previous reference device, the Nexus 5 (sans "X") was getting a bit dated, and since it's not easily available on the market anymore, a new reference device that people can get their hands on was needed. Bhushan Shah solved the last problems keeping us from using this newer and faster device as a development platform. Images will be appearing shortly, and the team is looking forward to receiving (and addressing) feedback about Plasma on the 5X.

New Website

While not strictly Plasma, the team made a final push to getting KDE's websites at updated. A tireless effort by Ken Vermette with the help of Harald Sitter and a few more helping hands lead to the shiny new design being revealed during the course of the sprint.

Soft Internals

On the less technical side, a sprint such as this is always a good opportunity to talk about how we work together, and how we present ourselves to the outside world. While we have made great strides to improve our software by applying more thorough review processes, continuous testing and integration and paying more attention to the wishes and problems of our users, we want to put more focus on stability. One way to achieve this is to move bigger feature merges more towards the beginning of a development cycle, thereby increasing the amount of time we have for testing and ironing out problems.


Sprints like this are only possible with the support of our community. We would like to thank the KDE e.V. for making this sprint (as many others before) possible. A special note of appreciation goes out to all those who donated to KDE e.V., without your support, we cannot get together in person to discuss and work. Personal interaction, while not necessary on a daily basis helps us to improve our collaboration, communication, team-work, and not at least the software we create for our users.

Linux Action Show

The Linux Action Show did an interview with the team at the sprint, watch this episode from 5 minutes in to meet the crew.

Dot Categories:

Hi all, you may have read my post on Nativefier, a script to build Electron web apps from URLs. If not, check it for advantages of Electron web apps, like low RAM consumption.

Instead a disadvantage of Nativefier is that on Linux it doesn’t “install” the app, but just create a portable folder, so you have to manually create the launcher with name, icon etc.

So I decided to “define” a file type with the metadata to install the app following Freedesktop specifications: *.webapp files.

Then I wrote a script, nativefier-freedesktop, that takes *.webapp file as input, build the app with Nativefier and install it, so you can launch it from your app menu. It can include custom CSS style and JavaScript code to be injected during the building. The icon can be themed by icon themes.

Here there is an example of KDE Phabricator with Breeze style (*.webapp file included in the repo):

That has native notifications:

Can be unistalled with a right-click on its entry in the app menu:

And there is also a Service Menu for Dolphin to perform “right-click > Install” on *.webapp files:

For more informations and instructions check the repo.

I hope you like the idea, I will distribute more *.webapp files, maybe of sites with Breeze style.

March 19, 2017

Today, KBibTeX 0.6.2 has been released. It replaces the never published 0.6.1 release, where a show-stopping bug was detected after tagging the release.

tl;dr: source tar ball, ChangeLog in Git

Read more... )

comment count unavailable comments 2017 was held in the big and beautiful campus of IIT, Guwahati in Assam. During 10th to 12th March, the conference schedule was 2 days of talks followed by a day of workshop. Talks were lined-up in single track which helps attendees not to miss any talk. Conference pictures from my camera are available at flickr.


1st Day

The first day started with inaugural ceremony where college professors and Valorie lightened up candle to start the conference.
Later, Valorie Zimmerman gave a keynote on Your Superpower. This talk was to motivate everyone to believe in themselves because each one of us have got superpower. To do something, it is very important to first believe in yourself.
33505439955_a0fd2bf847_m       33121738790_38b47982c0_m
Further, Shantanu gave an introductory talk on Qt and QML and showed some live demo explaining how easily UI can be created using QML. This talk was one of the important base for 3rd day workshop.
Bhushan gave talk on different KDE projects where one can contribute like KDevelop, Plasma, Krita, Kstars, Calligra, etc. He also provided some important information useful for beginners like how to get a KDE project’s source code, joining project related mailing lists and asking questions on respective IRC channel on freenode. Also talked about junior bugs associated with project – an easy way to start contributing to a project.
First day ended with Pradeepto’s talk of his 11 years experience with KDE and how he made so many friends across different parts of world. I feel that this is one of the best part of any conference, we meet friends with whom we work remotely and also make some new ones.

2nd Day

The 2nd day started with my talk on how I use KDE software to survive. I started using KDE desktop as my primary desktop since I was in college in around 2009. I strongly believe that to start with contribution to any software, it is very important to first use it and understand it. This gives new contributors a better idea where she can start contributing.
In my talk I discussed some KDE software which I use everyday for my personal as well as professional work. Slides for my talk are available at github.

Photo Credit – Srijan Agarwal

I liked Shantanu’s talk on using GammaRay to debug QtQuick applications. He showed how he uses GammaRay to debug his office project called SoStronk – desktop application written in Qt and QML.
Another interesting and amazing talk was given by Aditya Mehra on Mycroft integration with KDE in the form of a plasmoid. Mycroft is an open source voice assistant application which can run anywhere – on a desktop computer, inside an automobile, Raspberry Pi and so on. One can view a pre-recorded video available on YouTube and yes if you don’t like the voice, you can add your own custom voice.
33505577155_065d890933_m        33348927352_5fc88ff6c6_m
There were other several interesting talks on topics like GCompris, GSoC 2017 and how one can participate, Journey of SuperX – Linux based OS + KDE software started in Assam, India.


Most of the attendees were college students and it was important to give them some hands-on experience to help them to start with contributing to Open Source. Ashish Madeti started with explaining importance of git and how create a project with git version control setup, doing commits and other basic stuff. Attendees were trying in parallel on their laptop and we helped attendees individually to make sure they are able to do it themselves.
Later, Shantanu Tushar and Tony Thomas started with creating basic UI project using QML in Qt Creator. They explained how to browse documentation in Qt Creator for available components. Attendees tried on their own laptop and we all helped them to solve problems that they were facing.
There were many other interesting things discussed during the conference which is hard to cover in a single blogpost.
A big thanks to all volunteers who helped from start of the conference till end. Special thanks to Bhushan Shah for organizing it and KDE eV for sponsoring my travel.
With each conference, we get some awesome KDE contributors and hoping the same this year!

USNO NOMAD star catalog which contains ~100 million stars has been available in KStars for many years, but it appears many KStars users do not know how to get the catalog up and running.

The primary problem is its sheer size (1.4 GB) which tends to fail when being downloaded via KStars Download New Data tool. So here is a quick guide on how to obtain this catalog.

USNO NOMAD requires Tycho-2 catalog to be installed first. It is a relatively smaller download at only 32MB and can be safely installed using the Download New Data tool. Using the keyboard, click Ctrl + N to bring up the dialog, or go to Data → Download.

Navigate to Tycho-2 and click Install.

Wait until Tycho-2 is downloaded and installed. Now download the USNO NOMAD Catalog. Please either use a download manager to download the file, or use wget from the console. To use wget, open a console and type:


Alternatively, you might want to checkout the mirror list first to download the files from a mirror close to you. After downloading the file, extract it and copy USNO-NOMAD-1e8.dat to ~/.local/share/kstars

If you are using console:

tar -xzf USNO-NOMAD-1e8-1.0.tar.gz
cp USNO-NOMAD-1e8.dat ~/.local/share/kstars

Now restart KStars, and go to Settings → Configure KStars. You'll see the Star Catalogs density slider, move it up and click Apply. You can control how many stars KStars draw on the screen, the more stars, the more resources it would take to render them, so adjust the slider carefully.

And if all goes well, you should have millions of stars on in your KStars Sky Map, enjoy!

March 18, 2017

Today at 15:58 UTC the Kubuntu Council approved Darin Miller’s application for becoming a Kubuntu Member.

Darin has been coming to the development channel and taking part in the informal developer meetings on Big Blue Button for a while now, helping out were he can with the packaging and continuous integration.  His efforts have already made a huge difference.

Here’s a snippet of his interview:

<DarinMiller> I have contributed very little independently, but I have helped fix lintian issues, control files deps, and made a very minor mod to one of the KA scripts.
<clivejo> minor mod?
<acheronuk> very useful mod IIR ^^^
<clivejo> I think you are selling yourself short there!
-*- clivejo was very frustrated with the tooling prior to that fix
<DarinMiller> From coding perspective, it was well within my skillset, so the mod seemed minor to me.
<clivejo> well it was much appreciated
<yofel> when did you start hanging out here and how did you end up in this channel?
<DarinMiller> That’s another reason I like this team. I feel my efforts are appreciated.
<DarinMiller> And that encourages me to want to do more.

He is obviously a very modest chap and the Kubuntu team would like to offer him a very warm welcome, as well as greeting him with our hugs and the list of jobs / work to be done!

For those interested here’s Darin’s wiki page: and his Launchpad page:

The meeting log is available here.

March 17, 2017

Since January I'm participating on events on Rio de Janeiro area. The one that every month is scheduled in my calendar is PythonRio. A Python(obviously =P ) event, but you can talk about everything that you want that fit the goal of the event: Share knowledge. And every two weeks before the event, they open [...]

As I’m trying to keep improving the flatpak backend in discover I decided to add support for reviews. To do so I implemented support for GNOME’s Open Desktop Ratings which is rating/review system used by gnome-software. Result of this is now fully functional review system, where you can read user comments and ratings and submit your own reviews. We also use same mechanism as in gnome-software for generating user_hash which identifies you in odrs server and given that you are able to modify/delete your reviews from both discover and gnome-software (note that discover doesn’t support this yet). You can also vote for already existing reviews so others get feedback on how useful each review is. We also decided to use same review system in our PackageKit backend and replace current Ubuntu Popularity Contest system so not only flatpak users will benefit from this. During testing of this review support we’ve hit many UI issues related to review system causing users not to be able see reviews or write new ones which were introduced during transition to kirigami. We fixed all of them and you can look forward to improved experience in the upcoming discover release. To improve this further, we or at least I, would like to also add a new widget showing current total app ratings as of now you can only see reviews with comments only, not overall app rating, but this needs some discussion and design consideration.

Here are some screenshots to prove that this is already working:

If you want to test it, which we would like you to do, you can just compile discover from master branch (with -DBUILD_FlatpakBackend=ON cmake parameter for flatpak support). That’s all from me for now. Have a nice weekend :).

Akademy is the KDE Community conference. If you are working on topics relevant to KDE or Qt, this is your chance to present your work and ideas at the Conference from 22nd-27th July in Almería, Spain. The days for talks are Saturday and Sunday, 22nd and 23rd July. The rest of the week will be BoFs, unconference sessions and workshops.

What we are looking for

The goal of the conference section of Akademy is to learn and teach new skills and share our passion around what we're doing in KDE with each other.

For the sharing of ideas, experiences and state of things, we will have short Fast Track sessions in a single-track section of Akademy. Teaching and sharing technical details is done through longer sessions in the multi-track section of Akademy.

If you think you have something important to present, please tell us about it. If you know of someone else who should present, please encourage them. For more details see the proposal guidelines and the Call for Papers.

The submission deadline is 10th April, 23:59:59 CEST.

About Akademy

For most of the year, KDE—one of the largest free and open software communities in the world—works on-line by email, IRC, forums and mailing lists. Akademy provides all KDE contributors the opportunity to meet in person to foster social bonds, work on concrete technology issues, consider new ideas, and reinforce the innovative, dynamic culture of KDE. Akademy brings together artists, designers, developers, translators, users, writers, sponsors and many other types of KDE contributors to celebrate the achievements of the past year and help determine the direction for the next year. Hands-on sessions offer the opportunity for intense work bringing those plans to reality. The KDE Community welcomes companies building on KDE technology, and those that are looking for opportunities. For more information, please contact The Akademy Team.

Dot Categories:

March 16, 2017

In the ever expanding catalog of applications based upon the Kirigami framework and design language, I’ve just published a small one, tough quite useful if you like me have the weird hobby of rock climbing ��

It’s called Klimbgrades and it’s not much more than a conversion table between different grading systems for rock climbs (separed by lead and bouldering) used around the world.

At the moment the supported grade scales for lead are French, YDS, UIAA, British Tech and British Adjectival

the grades for Bouldering are Fontainebleu, Hueco and B Grade

You can grab it on Android from the Play Store, or build it from source for yourself either for your desktop or cross-compile it over Android.

From the screenshots you can see there is some amount of automatic adjustment between the mobile and desktop versions, both in terms of style and layout/functionality.

On Android:

On a Plasma Desktop:

Hi! A few days ago we had the International Women's day. And that day would not pass in blank here in Rio de Janeiro, so the Google Development Group of Rio organized a Women Tech Makers Rio meetup. And on that meetup I made my second version of my presentation: Qt - Your Toolkit for C++ [...]

For the longest time, the plan was to equip KDE neon’s Developer Editions with translations. As the Developer Editions are built directly from our Git repositories and we do not maintain translations alongside the source code, there is a bit of a problem as the build somehow needs to bridge the gap between code and translations.

It’s fortunate that I also happen to work on ReleaseMe, a KDE tarball release application, and rebuilt it from scratch years ago already, so it supports third party usage of some of its functionality.

At this year’s FOSDEM, Plasma developer David Edmundson asked for translations in the Developer Editions. And, so, here we are. Both KDE neon Developer Editions now include translations live from our Subversion repository. They also include our x-test language allowing you to easily find improperly internationalized strings. Coverage is currently limited to KDE Frameworks and Plasma software.

The majority of tech to accomplish this is hidden in the internals of ReleaseMe itself. On the high-level this entails nothing more than resolving the KDE project and then getting its translations into the Git tree.

projects = ReleaseMe::Project.from_repo_url(url)
unless projects.size == 1
  raise "failed to resolve project #{repo_name} :: #{projects}"
project = projects[0]

l10n =, project.identifier,
l10n.default_excluded_languages = [] # Include even x-test.

(Underneath there’s, of course, lots of fiddly nonsense going on ;))


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.