What we do

Earlier this week, the loved one of a man I used to babysit was pushed into the path of an oncoming subway train car, by a stranger, and soon after died of their injuries.

While the death seems random, even cruelly so, it's one of many like it: Every year, people die on Berlin's various railways. Across Germany hundreds do, many of them similarly at metro train stations.

When disaster strikes, my thoughts soon dwell on analysis and prevention. For this particular case a well-demonstrated solution already exists: Platform screen doors, which I strongly hope the Berlin subway will eventually be retrofitted with.

As engineers, we deal in the makeup of the world all of us collectively inhabit. We help make and hammer away at the stuff of civilization.

We should all be offended by ill effects that may be prevented by means of better engineering. Our labor facilitates culture, but it's also on us to keep culture and its agents - people - safe.

It feels good that we enjoy many opportunities to act on our responsibility: Pick what we work on, weigh our concerns well, work diligently and pass on our knowledge. Make better engineering more affordable and available in this way.

This is true for any application of civil engineering, like a railway system, but just as much for any software system that users commute their thoughts and concerns through, if not their bodies.


New C++/Qt code checks in clazy static analyzer

About two months ago I blogged about clazy, a Qt oriented static analyser.

Since then it has moved to an official KDE repo http://anongit.kde.org/clazy, got an IRC channel (#kde-clazy @ freenode) and also many fun new checks.

Here's a quick dump of the new features (be sure to see the README for the old checks too):

**** Performance related checks ****


Kexi 3 object icons

Intro or what are Kexi objects?

Kexi objects are the top-level entities of type Table, Query, Form, Report, Script or Macro. They are compared to perhaps separate document types except of course they are not physical files (in Kexi nothing touches physical files except the database that handles the actual storage but this is rather an implementation detail).

The latter two objects aren't in official use: Script is experimental and subject to rework; Macros (MS Access style, see old dev docs) are only planned.

If you're new RAD world, for info on what these types of objects are, google for MS Access objects. Many of its concepts and naming make sense with the exception of Modules -- Kexi tends to use Scripts term instead.


QRegExp + QStringLiteral = crash at exit

If you're seeing crashes lately, and they look like:

(gdb) bt
#0 0x00007ffff6790913 in QString::~QString() () from /usr/x86_64-pc-linux-gnu/lib/libQt5Core.so.5
#1 0x00007ffff680fd89 in QHashData::free_helper(void (*)(QHashData::Node*)) () from /usr/x86_64-pc-linux-gnu/lib/libQt5Core.so.5
#2 0x00007ffff6828e14 in (anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::Holder::~Holder() ()
from /usr/x86_64-pc-linux-gnu/lib/libQt5Core.so.5


Announcement: Marble ships the oldest existent historic Globe

Today I have the pleasure to announce that Marble is the first popular virtual globe that ships and visualizes the Behaim Globe. The Behaim Globe is the oldest surviving terrestrial globe on earth. It was created between 1492 and 1493 - yes at the same time when Christopher Columbus made his first voyage towards the west and "discovered" America.


Cool features in Kexi 2.9.8

This week database apps builder Kexi that competes with MS Access and Filemaker has been released with cool new features.

Version 2.9.8 finally fixes world's issues with SQL! 22 typical scalar functions now work portably across SQLite, MySQL, PostgreSQL. No other general purpose software I know does this.

Here's the list and it will be growing:


The Future of Kontact

Supplemental to what we reported previously about the work in Randa [1, 2] there was a session on the future of Kontact, KDE’s personal information manager (PIM). Over the years this tool has evolved into a monster making both development as well as usage sometimes tricky. It’s time to cut hydra’s arms.


Konsole's new "Manage Profiles" Configure dialog

One of the goals I've had with Konsole was to combine all the configure dialogs: 1) Configure Konsole; 2) Manage Profiles; 3) Edit Profile. Currently, in the branch config_dialog, the Manage Profiles is now combined with the main Configure dialog. The only downside is that the Konsole part can't open the Manage Profiles dialog. If and when the Edit Profile gets combined, I'll have to make sure the parts can open those dialogs.



KSnapshot is getting an overhaul.

It's actually a little more complicated than that. I started to work on the KF5 port of KSnapshot (EDIT: no, contrary to what Phoronix claims this port is not my work; I simply wanted to fix anything that needed fixing) sometime in early March this year, before I realised that the codebase, while perfectly in order for being a X11-only screenshot taker for KDE (yes, KSnapshot actually has a complete and fairly decent KF5 port in its frameworks branch on KDE Git), was in need of a major overhaul if we were going to get proper Wayland support in.



[Skip if you're not a git user]

You will often want to have more than one build environment in parallel, for example if you want to work on stable and various feature branches. Recommended way so far was to use a git-new-workdir script. This solution saves space (e.g. ~300MiB for a calligra branch instead of ~1200MiB) and time.