March 30, 2017

Here’s Nathan with a piece of good news:

After months of work, I’m glad to announce that Make Professional Painterly Game Art with Krita is out! It is the first Game Art training for your favourite digital painting program.

In this course, you’ll learn:
1. The techniques professionals use to make beautiful sprites
2. How to create characters, background and even simple UI
3. How to build smart, reusable assets

With the pro and premium versions, you’ll also get the opportunity to improve your art fundamentals, become more efficient with Krita, and build a detailed game mockup for your portfolio.

The course page has free sample tutorials and the answers to all of your questions.

Learn more:


We are happy to announce the release of Qt Creator 4.3 Beta!

Qt Quick Designer with integrated code editor

Qt Quick

Qt Quick Designer now integrates a QML code editor. This allows you to use views like the Properties editor and the Navigator also for text based editing. When you use the split view, you directly see the effects of what you are doing. The graphical editor got support for adding items and tab bar to stacked containers like StackedLayout and SwipeView, a tool bar with common actions, and support for HiDPI displays.

When you profile your Qt Quick application with the QML Profiler, you see performance information now also directly in the QML code editor. And the profiler itself received many performance improvements as well.


If you use Qt Creator with CMake 3.7 or later, we now use the server-mode that was added to CMake 3.7 for the benefit of IDEs. It provides much better information about the project structure, include paths, and more, than what we could parse from the generators and Makefile before. As a result you also see products and targets in the project tree and can build them individually.

Regardless of CMake version we added header files to the project tree, even if they are not listed explicitly in the project files. You now can also import existing builds of a CMake project, like we already provide for QMake based projects, which sets up a kit with the information found in the CMake cache from the build, and registers new toolchains and Qt versions as needed.


Sometimes code is interpreted differently in different contexts. A file can be used by different (sub-)projects with different defines, or be included in the context of C, C++, Objective-C, or Objective-C++. You already could choose a different project in the dialog behind the little # in the editor toolbar. We moved this to a separate dropdown menu in the editor toolbar, and added the choice of language as well.

If you are up for a bit of experimentation, enable the ClangRefactoring plugin. It adds preliminary support for clang-query to Advanced Find and uses Clang for the local renaming refactoring.

Mobile Development

If you use Qt Creator for iOS development, you can now choose the developer team and provisioning profile used for signing. This overrides the default that QMake chooses and any settings you have in your project files.

Unfortunately the newest version 25.3.1 of the Android SDK does not work with current Qt and Qt Creator versions. Some essential tools that we relied on have changed. We are working on fixing the issue. You can track it through QTCREATORBUG-17814. For the time being please stay at Android SDK 25.2.5.

CDB Support

The CDB debugging support that we ship with our packages now uses a Python based pretty printing backend. That has multiple advantages. The debugger starts much faster, and the unification of pretty printing between GDB, LLDB and CDB brings more and better pretty printers to Qt Creator’s CDB support.

Other Improvements

There have been many more improvements, which are described in more detail in our change log.

Get Qt Creator 4.3 Beta

The opensource version is available on the Qt download page, and you find commercially licensed packages on the Qt Account Portal. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on, and on the Qt Creator mailing list.

Note: We now provide 64-bit offline installers for Windows.

The post Qt Creator 4.3 Beta released appeared first on Qt Blog.

Promocionar charlas es algo que quiero pensar que sirve para algo, au nque se que no generan ni demasiadas visitas ni comentarios. No obstante, con que solo una persona asista al evento en particular ya me doy por satisfecho. Es por ello que me complace anunciar que mañana 31 de marzo se realiza la charla “Por qué el Software Libre es importante” organizada en el marco de las XXX GulTalks en Leganés.

Por qué el Software Libre es importante, charla en Leganés

Por qué el Software Libre es importante, charla en LeganésEsta mañana me he enterado que se va a realizar mañana 31 de marzo a las 19:30 una charla llamada “Por qué el Software Libre es importante” a cargo de Fernando Cerezal en la que expondrá el estado actual de la implementación de GNU/Linux en la sociedad actual así como de los peligros que se ciernen sobre este modelo.

La cuestión es que gracias a esta charla que ha aparecido en mi lista de correo (que a veces descuido, como en esta ocasión) descubro la existencia de XXX GulTalks, una serie de jornadas que se organizan el Grupo de Usuarios de Linux (GUL) de la Universidad Carlos III de Madrid del 27 al 31 de marzo en Leganés.

De esta forma descubro que, hoy mismo, 30 de marzo, se celebran otras charlas a partir de las 17 horas. Concretamente se trata de:

Y que mañana no solo hacen la que os he comentado, sino que también nos encontramos con más charlas como:

En definitiva, lástima que me haya enterado tarde de la existencia de este evento y no haya podido publicitarlo como se merece. Estoy seguro que las ponencias estarán francamente bien.


Más información: GulTalks

March 29, 2017

This is a neat little trick that’s been making the rounds, and after seeing success with several people on Reddit I thought it was worth posting somewhere more visible. This will look at removing screen tearing (often entirely) when using Nvidia Proprietary graphics on the Plasma Desktop.

First, you should only do this if…

  1. You are running Proprietary Nvidia drivers.
  2. You are experiencing nasty screen tearing.
  3. You are using a recent driver version.
  4. You trust instructions from the internet.

The trick is enabling a feature called “Force Composition Pipeline”, or “Force Full Composition Pipeline”. What this does is essentially a driver-level vsync, but I haven’t found particularly good documentation on the feature. Most instructions you can find online will instruct you how to do this manually via config files, but I’ll explain how to do it via GUI as less can go wrong, and the GUI is there to be used. You can do a search online and easily find several manual sets of instructions if the GUI isn’t your thing.

  1. Open your favourite launcher and go to Applications -> Settings -> Nvidia X Server Settings.
  2. On the left side pane, select “X Server Display Configuration”. It’s second from the top.
  3. Select a monitor.
  4. Click “Advanced” to show all the options (if they are not already shown)
  5. Check “Force Composition Pipeline”.
  6. Return to step 3 if you have more than one monitor, until all the monitors are configured.
  7. Click “Apply”.
  8. If it hasn’t eaten a puppy, you’ll see the confirmation to keep the settings. If things have gone terribly wrong, wait half a minute and it will revert the changes.

If you still experience tearing, you may need to go and “Force Full Composition Pipeline”, which is a more extreme version of the feature.

As a follow-up, if the composition pipeline is on and working, the Nvidia driver is essentially providing its own flavour of vsync. You’ll likely want to turn off Kwins vsync otherwise you may experience stutter in several situations, where it essentially halfs your potential frame rate. This mostly applies to games, possibly video, and I only recommend this step if you see stutter too;

  1. In your favourite launcher go to Applications -> Settings -> System Settings.
  2. Select “Display and Monitor”.
  3. On the left side pane, select “Compositor”.
  4. Under “Tearing Prevention (‘vsync’)” select “Never”. You may wish to take note of the current setting if you need to revert it later, by default it’s “Automatic”.

Of course, there are some “gotchas” to keep in mind!

First; if you change your displays, rotate them, or anything else, you may experience tearing again, especially if you disabled Kwins Tearing Prevention. You’ll need to go back in and re-apply the settings.

Second; you may see a performance impact with games. I personally haven’t, but several articles on this subject do mention it as a drawback of this feature. Additionally it’s not quite something you can toggle on/off easily if getting your game on is impacted.

Third; on laptops with Nvidia PRIME, you may have difficulty enabling this feature. If you do, you may want to leave Kwin Tearing Prevention alone should it switch to Intel graphics and begin tearing. I’m not an expert on this and cannot test this with a PRIME-enabled machine, so your mileage may vary.

Lastly; these are instructions from someone who doesn’t know a huge amount about drivers and display servers. For all I know this heats up your GPU to 300 degrees and was meant to roast marshmallows. Proceed with caution.

Special thanks to “AbstractOperator” and “cristianadam” for letting me know this works on multiple monitors, and cristianadam for pointing out this youtube video; play this video (ideally full-screen) to test and spot tearing.


Días como el de ayer están siempre marcados en rojo en mi calendario personal. Y eso que al final no pude participar en el nuevo podcast de KDE España: Cómo contribuir a que tu aplicación de Software Libre funcione correctamente. No obstante, los participantes dejaron el listón muy alto con el decimoséptimo podcast y estoy seguro que ya están ansiosos por grabar el siguiente.

Cómo contribuir a que tu aplicación de Software Libre funcione corréctamente decimoséptimo podcast de KDE España

El tercer podcast de vídeo de la tercera temporada de KDE España titulado “Cómo contribuir a que tu aplicación de Software Libre funcione correctamente”se grabó ayer utilizando los servicios de Google sin ningún problema técnico destacable.


Los participantes del decimoséptimo vídeo podcast fueron:



A lo largo de la hora y 15 minutos que duró el vídeo podcast se habló tanto de cómo ayudar a solucionar errores como la forma de colaborar con el desarrollo de cualquier proyecto libre.


Espero que os haya gustado, si es así ya sabéis: “Manita arriba“, compartid y no olvidéis visitar y suscribiros al canal de Youtube de KDE España.

Como siempre, esperamos vuestros comentarios que os aseguro que son muy valiosos para los desarrolladores, aunque sean críticas constructivas (las otras nunca son buenas para nadie). Así mismo, también nos gustaría saber los temas sobre los que gustaría que hablásemos en los próximos podcast.

Aprovecho la ocasión para invitaros a suscribiros al canal de Ivoox de los podcast de KDE España que pronto estará al día.

March 28, 2017


Really busy time….
I really miss the time I spent on Inkscape. I hope I can find some time to go back to drawing.

p.s. do you like this emoji? ��


Cry Emoji

Quick update: Ishiiruka (fork of the Wii/GameCube emulator Dolphin for those who missed my last post) is now available on openSUSE Leap as well.

In addition to that, all openSUSE builds now build against shared wxWidgets 3.1 instead of statically linking the included one.

Get it from

Hace un tiempo hablamos de OpenExpo 2017 hoy quiero comentar que una de las novedades más destacadas de la edición anterior ya ha pasado a su segunda fase. En otras palabras, ya se inician las votaciones de los Open Awards 2017, los premios que nacieron con la intención de consolidarse en el mundo del Software Libre como un referente anual y van en camino a conseguirlo.

Se inician las votaciones de los Open Awards 2017

En 2016 nacieron los Open Awards 2016, unos premios que tienen la intención de reconocer a las empresas y administraciones que crean y fomentan grandes soluciones con tecnologías Open Source en España. Tiene por objetivo fomentar, apoyar, reconocer y premiar los proyectos de código abierto y conocer las iniciativas Open Source más destacados del año

  • Reconocer y premiar los proyectos que más han destacado durante el último año.
  • Impulsar la comunicación y la notoriedad pública de las empresas, medios y administraciones participantes en los premios.
  • Valorar el trabajo realizado por muchas empresas, medios y administraciones públicas.

Se inician las votaciones de los Open Awards 2017

En su primera edición este blog se llevó el primer puesto en la categoría de mejor medio de los Open Awards 2016, gracias a todos por vuestro apoyo, pero este año, por diversas razones, no se ha inscrito. Y eso que han insistido incluso vía telefónica, aprovecho estas líneas para agradecer este detalle.

Este año siguen con su segunda edición de los Open Awards 2017, cuya nota de prensa es la siguiente:

“La convocatoria de los premios Open Awards – el mayor reconocimiento del sector Open Source & Software Libre – organizados por la Feria y Congreso OpenExpo, ha superado con creces todas las expectativas.
Los galardones más codiciados del mundo de las tecnologías abiertas, reconocen y premian los proyectos e iniciativas de código abierto más destacados, impulsan la notoriedad pública de las empresas, proyectos y administraciones participantes en los premios y valoran el trabajo realizado por todos ellos.
El próximo 3 de mayo se darán a conocer los nombres de los finalistas de los Open Awards, que en su segunda edición ha contado con la participación de 132 empresas y proyectos del sector. Esta cifra supone un incremento del 97% de la participación con respecto al año anterior.
Empresas de renombre como Liberty Seguros, Arsys, Toyota, Petronor, Eroski, Red Hat, Agencia Tributaria, Ediciones SM, BQ, gigas y, han presentado su candidatura a los premios y junto al resto de participantes, están esperando tu voto.
Conoce a todos los nominados y vota por tus empresas y proyectos favoritos para conseguir que se coloquen entre los 5 primeros de su categoría convirtiéndose así automáticamente en finalistas.
El acto de entrega de los Open Awards tendrá lugar el jueves 1 de junio dentro del marco de OpenExpo 2017 en La N@ve (Madrid), evento al que ya han confirmado su participación empresas como Microsoft, Arsys, OVH, Exevi, OTRS, Carto, Magnolia, Hopla! Software, Docker, WhiteBearSolutions, Bacula Systems, ackstorm, Google Cloud y mdtel, entre muchas otras.

Anímate y vota, tienes hasta el 30 de abril para hacerlo.


I’ve been trying macro photography and using the depth of field to make the subject of my photos stand out more from the background. This photo of a parrotfish shows promising results beyond “blurry fish butt” quality. I’ll definitely use this technique more often in the future, especially for colorful fish with colorful coral in the background.


March 27, 2017

Could you tell us something about yourself?

My nickname is Dolly, I am 11 years old, I live in Cannock, Staffordshire, England. I am at Secondary school, and at the weekends I attend drama, dance and singing lessons, I like drawing and recently started using the Krita app.

How did you find out about Krita?

My dad and my friend told me about it.

Do you draw on paper too, and which is more fun, paper or computer?

I draw on paper, and I like Krita more than paper art as there’s a lot more colours instantly available than when I do paper art.

What kind of pictures do you draw?

I mostly draw my original character (called Phantom), I draw animals, trees and stars too.

What is easy to do with Krita? What is difficult to do?

I think choosing the colour is easy, its really good, I find getting the right brush size a little difficult due to the scrolling needed to select the brush size.

Which thing about Krita is most fun?

The thing most fun for me is colouring in my pictures as there is a great range of colour available, far more than in my pencil case.

Is there anything in Krita that you’d like to be different?

I think Krita is almost perfect the way it is at the moment however if the brush selection expanded automatically instead of having to scroll through it would be better for me.

Can you show us a picture you made with Krita?

I can, I have attached some of my favourites that I have done for my friends.

How did you make it?

I usually start with the a standard base line made up of a circle for the face and the ears, I normally add the hair and the other features (eyes, noses and mouth) and finally colour and shade and include any accessories.

Is there anything else you’d like to tell us?

I really enjoy Krita, I think its one of the best drawing programs there is!

March 25, 2017

I am extremely pleased to have confirmed the entire speaker line-up for foss north 2017. This will be a really good year!

Trying to put together something like this is really hard – you want the best speakers, but you also want a mix of local and international, various technologies, various viewpoints and much, much more. For 2017 we will have open hardware and open software, KDE and Gnome, web and embedded, tech talks and processes, and so on.

The foss north conference is a great excuse to come visit Gothenburg in the spring. Apparently, Sweden’s wildest city!

You may have heard about Dolphin, not our file manager but the GameCube and Wii emulator of the same name. What you may not have heard of is Ishiiruka, a fork of Dolphin that prioritizes performance over emulation accuracy – and clean code if comments by an upstream Dolphin author on Reddit are to be believed.

Although Ishiiruka began as a reaction to remove the Direct3D 9 renderer in the Windows version of Dolphin (which is probably why the Linux community ignored it for the most part), it also began to tackle other performance issues such as “micro stuttering”.

Recently the Git master branch of Ishiiruka shipped compilation fixes for Linux, so I decided to dust off my old dolphin-emu.spec file and give it a try (I’m hardly an expert packager). So after some dabbling I succeeded. For now only Fedora 24, Fedora 25, and openSUSE Tumbleweed are supported. The packages are available from

openSUSE Leap requires some workaround because it defaults to GCC 4. I plan to look into it at a later time. Once Tino creates a new Stable branch that incorporates the Linux fixes, I’ll post it under

If anyone of you is interested in Arch, Debian, Ubuntu,… packages (anything supported by OBS), I’ll gladly accept Submit Requests for PKGBUILD etc. files at

March 24, 2017

Hi all, I have an awesome laptop I bought from my son, a hardcore gamer. So used, but also very beefy and well-cared-for. Lately, however, it has begun to freeze, by which I mean: the screen is not updated, and no keyboard inputs are accepted. So I can't even REISUB; the only cure is the power button.

I like to leave my laptop running overnight for a few reasons -- to get IRC posts while I sleep, to serve *ubuntu ISO torrents, and to run Folding@Home.

Attempting to cure the freezing, I've updated my graphics driver, rolled back to an older kernel, removed my beloved Folding@Home application, turned on the fan overnight, all to no avail. After adding lm-sensors and such, it didn't seem likely to be overheating, but I'd like to be sure about that.

Lately I turned off screen dimming at night and left a konsole window on the desktop running `top`. This morning I found a freeze again, with nothing apparent in the top readout:

So I went looking on the internet and found this super post: Using KSysGuard: System monitor tool for KDE. The first problem was that when I hit Control+Escape, I could not see the System Load tab he mentioned or any way to create a custom tab. However, when I started Ksysguard from the commandline, it matches the screenshots in the blog.

Here is my custom tab:

So tonight I'll leave that on my screen along with konsole running `top` and see if there is any more useful information. quite possibly has one of the largest open-source websites compared to any other desktop-oriented project, extending beyond into applications, wikis, guides, and much more. The amount of content is dizzying and indeed a huge chunk of that content is about as old as the mascot Kandalf – figuratively and literally.

KandalfI personally believe he’s ripped under that cloak.

The user-facing design “Aether” is live and various kinks have been worked out, but one fact is glaringly obvious; we’ve made the layers of age and look better by adding another layer. Ultimately the real fix is migrating the site to Drupal, so I figured this post would cover some of the thoughts and progress behind the ongoing work.

Right now work is on porting the Aether theme to Drupal 8, ideally it’ll be “better than perfect port” with Drupal optimizations, making better use of Bootstrap 4, and refinements. Additionally, I’m preparing a “Neverland-style” template for those planning to use Aether on their KDE-related project sites, but it’s more of a side-project until the Drupal theme lands. Recently the theme was changed to use Bootsraps’ Barrio base theme, which has been a very pleasant decision as we get much more “out of the box”. It does require a Bootstrap library module which will allow local or CDN-based Bootstrap installations, and while at first I was asking “why can’t a theme just be self-contained?”, now I’m understanding the logic – Bootstrap is popular, multiple themes use it, this will keep it all up-to-date and can be updated itself. I do think maybe one thing Drupal should do is have some rudimentary package management that says “hey, we also need to download this”, but it’s easy enough to install separately.

If you have a project website looking to port to Aether, I would first advise you simply waiting until you can consider moving your page to the main Drupal installation when it eventually goes live; in my perfect world I imagine Drupal unifying a great amount of disparate content, thus getting free updates. Additionally, consider hitting up the KDE-www mailing list and ask to help out on content, or place feature requests for front-end UI elements. While I’m currently lurking the mailing list, I’ll try to provide whatever info I can. On an aside, I had some Telegram confusion with some people looking to contribute and concerns from administrators, so please simply defer to the mailing list.

In terms of the Aether theme, I will be posting the basic theme on our git repo; when it goes up if you have Bootstrap and Twig experience (any at all is more than I had when I started), please consider contributing, especially if you maintain a page and would migrate to Drupal if it had the appropriate featureset. I will post a tiny follow-up when the repo is up.






I’m sorry that $feature behaves differently to how you expect it. But it’s the way it is and that’s by design. The feature work exactly as it’s supposed to work. I’m sorry, this won’t be changed.


With decisions like that, no wonder KDE is still a broken mess.

I wonder why the hell I even bother reporting issues. Bugs are by design these days.

Never again.

Have a nice life.

A week ago I received my Raspberry Pi Zero W to play a bit with some IoT device. The specs of this small device computer are the following:

  • 1GHz, single-core CPU
  • 512MB RAM
  • Mini HDMI and USB On-The-Go ports
  • Micro USB power
  • HAT-compatible 40-pin header
  • Composite video and reset headers
  • CSI camera connector

But the interesting part comes with the connectivity:

  • 802.11 b/g/n wireless LAN
  • Bluetooth 4.1
  • Bluetooth Low Energy (BLE)

And especially from one of the hidden features that allows one to use the device as a headless device and connect using SSH over USB adding the following line to config.txt:
And modifying the file cmdline.txt to add:

remember to create a file called ssh to enable SSH access to your Raspberry Pi. There are plenty tutorials over the Internet showing this! ��

To build a Qt version for the device you can follow this guide.
In the following screen shot, we can see the calqlatr example running directly on the Raspberry Pi:


One of the use cases which comes to my mind using this device and this feature is being able to create portable presentations and show them on any computer without the need of installing new software.


For the presentation, I used the qml-presentation-system (link).

More use cases could be:

  • Application showcase.
  • Custom text editor for taking your notes everywhere.

Please comment if you have other ideas or use cases.

The post WebGL streaming in a Raspberry PI Zero W appeared first on Qt Blog.

March 23, 2017

Today the Kubuntu team is happy to announce that Kubuntu Zesty Zapus (17.04) Beta 2 is released . With this Beta 2 pre-release, you can see and test what we are preparing for 17.04, which we will be releasing April 13, 2017.

Kubuntu 17.04 Beta 2


NOTE: This is Beta 2 Release. Kubuntu Beta Releases are NOT recommended for:

* Regular users who are not aware of pre-release issues
* Anyone who needs a stable system
* Anyone uncomfortable running a possibly frequently broken system
* Anyone in a production environment with data or work-flows that need to be reliable

Getting Kubuntu 17.04 Beta 2:
* Upgrade from 16.10: run `do-release-upgrade -d` from a command line.
* Download a bootable image (ISO) and put it onto a DVD or USB Drive :

Release notes:

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.

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

Bringing software into a safety critical environment can be tricky, especially when using the complex APIs needed for modern 3D graphics. That’s what makes OpenGL SC (Safety Critical) so important: it bridges the gap between beautiful displays and functional safety, while trying to remain as close to existing embedded standards that we all know and love. OpenGL SC will only become more prevalent in embedded graphics work as industries increasingly try to merge safety conscious methodologies with user-friendly interfaces. continue reading

The post Safety critical drawing with OpenGL SC appeared first on KDAB.

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:


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.

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

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.