13 Dec 2018

feedPlanet KDE

Achievement of the Week

This week I gave KDE Frameworks a web page after only 4 years of us trying to promote it as the best thing ever since cabogganing without one. I also updated the theme on the KDE Applications 18.12 announcement to this millennium and even made the images in it have a fancy popup effect using the latest in JQuery Bootstrap CSS. But my proudest contribution is making the screenshot for the new release of Konsole showing how it can now display all the cat emojis plus one for a poodle.

So far no comments asking why I named my computer thus.

Facebooktwittergoogle_pluslinkedinby feather

13 Dec 2018 6:41pm GMT

Krita 4.1.7 Released

Today we're releasing Krita 4.1.7, another bug fix release in the Krita 4.1 series.

The most important fix is a weird one: it might help your wifi connection. The problem is that we started building a widget that would show you the news feed from krita.org. The widget isn't active, and doesn't make any kind of network connection… But Qt's network manager class still checks your wifi settings all the time. See these bugs: https://bugreports.qt.io/browse/QTBUG-46015 and https://bugreports.qt.io/browse/QTBUG-40332.

Apart from that, we've worked around a bug in Qt 5.12 that would cause an instant crash when using a tablet. Our own builds do not use that version of Qt, so the Windows builds, macOS build and the Linux appimage are fine, but users of rolling Linux releases like Arch would suffer from this issue.

And there are more bug fixes, of course:

Download

Windows

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

Linux

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

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

OSX

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

Source code

md5sum

For all downloads:

Key

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

Support Krita

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

13 Dec 2018 9:03am GMT

12 Dec 2018

feedPlanet KDE

A simple blank makes the difference

OFX is the Open Financial eXchange protocol used by various financial institutions in a few countries. KMyMoney provides an OFX client implementation using the open source LibOFX library allowing users to import transactions directly from the bank's server without using the detour through a web-browser and a downloaded file into the ledger of the application.

A while ago, a KMyMoney user reported a problem with a single institution using OFX transaction download. Out of a sudden, this feature did not work anymore and the bank did not allow to login anymore and provided the following error message:

We're very sorry, but that content you are looking for can't be found. Please try the homepage again. If you continue to receive this message, please call the Customer Service number on the back of your card. We apologize for any inconvenience and appreciate your patience.

Since there was no change on the KMyMoney side nor on LibOFX, the problem must have been with the institution. So he contacted their customer support but the answers did not help to solve the problem.

Not surprisingly I got nowhere talking to tech support at the bank. I don't think anyone answering the phones knows anything about direct connect ."Can you logon to our website" and "reinstall your personal finance software" is about all they could suggest.

A frustrated KMyMoney user about his banks customer support

We know these answers just to well and one can find them on mailing lists and forums of almost any open source finance applications in or another form.

Living in a country where banks don't use OFX at all, it is kind of hard to support these stranded users. We tried to log the requests and analyze them, but all just looked well according to the OFX specs.

Searching the web, I came across a posting where a GnuCash user reported, that adding a trailing blank to the username and changing the application version in the request solved the problem. This just sounded too strange, so I forwarded this information to the user and he answered:

Not surprisingly… ipwizard does it again!

I changed the APP_VER to 2400 using the KMM online settings as suggested. Then I saved my KMM file in XML, opened the XML and added a space to me user name.

Worked like a charm.

A happy KMyMoney user

I was also able to get it working with KMM 4.8.0. I just unmapped and remapped the account adding a space to the end of the user ID and using 2700 as the version. No XML hacking required.

Another KMyMoney user also being happy

As a side effect of my search, I stumbled across a posting about OFX security issues. Very interesting article which does not surprise me and shows the partial ignorance of banks regarding security on top of their sometimes non-existant customer support if it comes to home banking.

12 Dec 2018 7:54pm GMT

Calamares seeking translators

Calamares, the Linux system installer for boutique distro's, is translated into 50 or so languages. It's not a KDE project, but uses a bunch of KDE technology like the KDE Frameworks and KPMCore. It doesn't use the KDE translation infrastructure, either, but Transifex.

There's two languages for Calamares that don't have any translators - they were requested, and then added to the system, but there is noone to do the work. Those are Macedonian and Uzbek. That said, there are also translations to Lao, Farsi, Gujrati, Urdu and Swiss French (is that even a thing) that have not seen any actual translation work done.

If you're interested in any of those languages, the Calamares translators guide can get you started.

PS.: boutique distro for me means anything outside the "big five", it doesn't say anything about the size or importance of the distro itself.

12 Dec 2018 8:53am GMT

11 Dec 2018

feedPlanet KDE

SSL Certs on my sites

LetsEncrypt is wonderful - SSL certificates automatically generated and updated. CertBot does the actual work in one of its many incarnations. Most of my sites use LetsEncrypt to auto-renew certificates. Recently the CertBot at my hoster stopped updating, and now certificates are expiring. The hoster isn't responding to mail asking them to give CertBot a kick in the pants, so I'm starting to look at other options. It's weird because for the past 10 years they've been good Open-Source-Friendly hosters.

If things move there will probably be a hiccup in access, but I'll give a shout when it does. The Calamares site runs on GitHub, so is unaffected by this whole thing.

11 Dec 2018 2:44pm GMT

ROOT histograms

In one of the previous blogs we introduced the new capability of LabPlot to calculate and to draw histograms. Given a data set, the user can calculate the histogram using different binning methods and to visualize the calculated histogram in the new plot type "histogram". A different workflow is given when the histogram was already calculated in another application and the application like LabPlot is just used to visualize the result of such a calculation and to adjust the final appearance of the plot.

Couple of weeks ago Christoph Roick contributed a new input filter for ROOT histograms. ROOT is a computational environment developed at CERN that is used for data processing, statistical analysis and data visualization, mainly for purposes in the high energy physics community. With the new import filter it is possible now to import ROOT histogram files (custom binary format, compressed) into LabPlot:


Import Dialog



In the import dialog the user can specify which data to import. After the import, the data from "bin center" or from "low edge" can be used together with the bin values from the "content" for x- and y-values, respectively, to plot the data. The result of such a workflow is shown in the screenshot below by means of a very simple example:


ROOT Histogram



In this example taken from ROOT Guide for Beginners, 1000 values for the exponential function are created in ROOT and the histogram is calculated and written to a file. The import of data and the visualization are done in LabPlot as described above. Here, the imported x-y pairs are connected by the "step line" in order to get the common shape of the histogram. Other visualizations with symbols only, etc. are possible, of course, too. The plot on the left hand side was created by the built-in plotter of ROOT and is shown here for comparison purposes.

With this new feature we can utilize the power and speed of ROOT and its ability to work with very big amount of data and to use the flexibility of LabPlot to style the visualization of the calculated data. The code has reached master already and we are going to ship this new feature in the upcoming release 2.6 LabPlot.

In parallel, the work to support also the more general data container "tree" in ROOT is already in progress and we hope to finalize it soon. This would further extend the application area of LabPlot in near future.

11 Dec 2018 10:21am GMT

QtCreator CMake for Android plugin

Santa Claus is coming to … wait a minute, it's not Christmas yet!

I have the pleasure to let you know that KDAB has contributed to Qt with yet another super cool project!

It's about QtCreator CMake for Android! I know it's a strange coincidence between this article and The Qt Company's decision to ditch QBS and use CMake for Qt 6, but I swear I started to work on this project *before* they announced it ! This plugin enables painless experience when you want to create Android apps using Qt, CMake and QtCreator. It's almost as easy as Android Qmake QtCreator plugin! The user will build, run & debug Qt on Android Apps as easy as it does with Qmake.

Before I go into the boring details, let's see what the requirements are and, more importantly, when it will be available!

Requirements:

When will it be available? Well, I started the blog with the Santa on purpose, because, sadly, it's too late to push it in QtCreator 4.8 and it will be available in the next version (4.9). If you can't wait for QtCreator 4.9 and you like to try it sooner, you can apply this patch on top of QtCreator's master branch.

Now back to technical details, in order to build your Qt Android application, this plugin must do some magic:

After this step, androiddeployqt will complete your Android Qt APK by copying all the Qt dependencies (libs & resources).

Last but not least, these are qmake features that you'll not find in cmake:

Note: KDAB offers training in CMake, including all the latest tips from our trainers, who are all active developers.

The post QtCreator CMake for Android plugin appeared first on KDAB.

11 Dec 2018 10:00am GMT

KDE4 and Qt4 deprecation in FreeBSD

This is a reminder - for those who don't read all of the FreeBSD mailing lists - that KDE4 is marked deprecated in the official ports tree for FreeBSD, and will be removed at the end of this year (in about 20 days). Then Qt4 will be removed from the official ports tree in mid-march.

Since both pieces of software are end-of-life and unmaintained upstream already for several years, the kde@ team at FreeBSD no longer can maintain them. Recent time-sinks were dealing with OpenSSL 1.1.1, libressl, C++17, .. the code is old, and there's newer, nicer, better-maintained code available generally by replacing 4 with 5.

Users are encouraged to migrate to Qt5 and KDE Plasma plus KDE Applications. The easiest way to do so is to follow the instructions on the KDE-FreeBSD community wiki.

11 Dec 2018 8:19am GMT

10 Dec 2018

feedPlanet KDE

Two printers with one Rpi?

Last time I tried printing with the raspberry pi I had only one machine to try with now I have two. Lets see if the Pi can handle two instances of AtCore and control two 3d printers at the same time. This is a follow up to AtCore takes to the pi. So please read that for more about the RPi setup. This post is in video form, please enjoy.

10 Dec 2018 12:00pm GMT

09 Dec 2018

feedPlanet KDE

QtWS post (-scriptum)

This week I was briefly in Berlin for the Qt World Summit, or QtWS for short. I was there to run the KDE booth as part of the exposition at the summit, rather than to do any talks (or, for that matter, watch any). First, a bunch of thanks are in order: to Sari and Milja from Moodboard for organising most of the things, to Katica from the Qt Company for doing PR on the show floor, to Kai and Roman from KDE for standing at the booth with me, and to the 700-or-so attendees for listening to us when we talk about KDE as a community, about KDE Frameworks and Plasma in laptops, tablets, phones and embedded. Thanks also to Paul and kde-promo for getting us some nice source material for stickers and shirts.

Photo of Kai and some laptops

Kai at the KDE booth at QtWS

The picture shows some of the stuff we did for the booth: a canvas banner, demo machines, and happy T-shirts. If the Italians (from a Sardinian argricultural-technology firm?) who wanted a T-shirt get in touch with me, we'll make it happen.

One of the nice things about QtWS is meeting all the KDE people who have wandered away from the active KDE community, and are now inside the Qt Company, or KDAB, or all over the Qt ecosystem. KDAB, of course, gave a bunch of talks at the event and also contributes lots of code to both Qt and KDE; it's still good to actually meet old KDevelop people and such. When talking to "old hands" is the fordness with which they talk about the community and participating in such a large Open Source project.

So the things we mostly talked about were KDE Frameworks - a fair subset of them are useful for small-footprint devices, embedded, automotive - and that Qt is Open Source. Reminder: Qt is Open Source. And so are all the things KDE builds on top of Qt. There's a large number of very proprietary software companies around Qt in the automotive world. One really cool one does handwriting recognition, and does it well; I tested it in English, French, and Arabic with my untidy scrawl and its accuracy was pretty good. But .. no, not my cup of tea. The Pinebook got a fair amount of attention, but even more attractive to attendees was a prototype laptop that had been 3D-printed the day before. It looked like it had stepped right out of the 80s, but was running a pretty snappy Plasma desktop on top of mainline and Debian (can't say more than that for now). We installed KDE neon on my Slimbook again, alongside openSUSE, to try out Wayland, and in particular gaming with Steam under Wayland. That .. turns out to work just fine, but people look at you funny when you're playing CS:GO (please note my ambivalent and inconsistent treatment of proprietary software here) at the stand.

So, here's to the Qt community and see you next time!

09 Dec 2018 10:15pm GMT

Release month, qpropgen 0.1.1

Continuing on this release month idea started last week, here is a release of another project. Today is the first release of qpropgen, a tool to generate QML-friendly QObject-based C++ classes from class definition files.

I started this project because I did not want to manually define the dozen of properties required to represent a sound in SFXR-Qt, which itself got started because I wanted a sound effect generator for Pixel Wheels. Yes, that's a bit of Yak shaving :)

It works this way: first you define your class and its properties in a yaml file:

class: Person
properties:
    - name: firstName
      type: QString
    - name: lastName
      type: QString
    - name: birthDate
      type: QDateTime

Then you run qpropgen person.yaml. It produces two files: person.h and person.cpp.

This is person.h:

// This file has been generated with qpropgen, any changes made to it will be lost!

#ifndef PERSON_H
#define PERSON_H

#include <QObject>

class Person : public QObject {
    Q_OBJECT

    Q_PROPERTY(QString firstName READ firstName
            WRITE setFirstName
            NOTIFY firstNameChanged
    )

    Q_PROPERTY(QString lastName READ lastName
            WRITE setLastName
            NOTIFY lastNameChanged
    )

    Q_PROPERTY(QDateTime birthDate READ birthDate
            WRITE setBirthDate
            NOTIFY birthDateChanged
    )

public:
    explicit Person(QObject* parent = nullptr);


     QString firstName() const;
     void setFirstName(const QString& value);

     QString lastName() const;
     void setLastName(const QString& value);

     QDateTime birthDate() const;
     void setBirthDate(const QDateTime& value);


signals:

    void firstNameChanged(const QString& firstName);

    void lastNameChanged(const QString& lastName);

    void birthDateChanged(const QDateTime& birthDate);

private:
    QString mFirstName;
    QString mLastName;
    QDateTime mBirthDate;
};

#endif // PERSON_H

And this is person.cpp:

// This file has been generated with qpropgen, any changes made to it will be lost!
#include <person.h>

Person::Person(QObject* parent)
    : QObject(parent) {
}


QString Person::firstName() const {
    return mFirstName;
}
void Person::setFirstName(const QString& value) {

    if (mFirstName == value) {

        return;
    }
    mFirstName = value;
    firstNameChanged(value);
}

QString Person::lastName() const {
    return mLastName;
}
void Person::setLastName(const QString& value) {

    if (mLastName == value) {

        return;
    }
    mLastName = value;
    lastNameChanged(value);
}

QDateTime Person::birthDate() const {
    return mBirthDate;
}
void Person::setBirthDate(const QDateTime& value) {

    if (mBirthDate == value) {

        return;
    }
    mBirthDate = value;
    birthDateChanged(value);
}

qpropgen comes with a CMake file to include in your project. Contributions adding support for other build systems are greatly appreciated :)

There is more to it: you can define read-only properties, make setters and getters virtual and a few other tweaks. You can learn more about qpropgen from the README.

Let me know if you find this tool useful!

09 Dec 2018 10:22am GMT

This week in Usability & Productivity, part 48

This week in Usability & Productivity, our flagship Kate text editor got a lot of love-and there's more in the pipeline too! But that's not all…

New Features

Bugfixes & Performance Improvements

User Interface Improvements

Next week, your name could be in this list! Not sure how? Just ask! I've helped mentor a number of new contributors recently and I'd love to help you, too! You can also check out https://community.kde.org/Get_Involved, and find out how you can help be a part of something that really matters. You don't have to already be a programmer. I wasn't when I got started. Try it, you'll like it! We don't bite!

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

09 Dec 2018 7:01am GMT

08 Dec 2018

feedPlanet KDE

Finding insecure network connections

One obvious aspect of KDE's privacy goal is eliminating all network connections that are not using transport encryption. That's however not as straightforward to ensure as it may sound, it's easy to have a long forgotten HTTP link in a rarely used dialog that should have been changed to HTTPS many years ago already. How do we find all these cases?

Scope

First of all, this is not about intentional or malicious attempts to bypass or weaken transport encryption at any level, but about finding our own mistakes. That is, simple typos forgetting the crucial 's' after 'http', or legacy code from a time before the corresponding service even supported transport encryption.

This is also not about identifying servers that only offer weak or otherwise broken transport security, and communicating that to the user as we are used to from web browsers. All of that needs to be looked at too of course, but that's a different task.

Source Code

Naively, searching the source code for http: and replacing it with https: would be a good start. However, it's a bit more complicated than that, mainly due to http URIs being used both as resource identifiers and as addresses for resources. A common case for the former are XML namespaces, those are not actually retrieved via the network, so http URIs are actually not a problem (on the contrary, changing them might confuse the code dealing with them). In the latter case the URIs are actually URLs and are used for network operations, those we need to fix.

Still, a bit of crude grep work can turn up quite some useful results already. This can be clickable links in code (D16904, R209:33447a) or documentation (D17262), downloaded content (D7414, D17223) or access to online services (D7408, D16925, D16946). But many hits are part of code documentation, automatic tests or license information (R1007:aff001), which are less severe in their impact. Sometimes URLs also appear in translations, so those would need to be checked too.

Compiled Files

Another place to look for http: strings is in the compiled binaries. That's less complete, but seems to have a much smaller false positive rate. A simple approach is grep-ing through the output of strings and strings -l e (the latter decodes 16bit little endian Unicode strings as used by QStringLiteral), and filtering out common URIs as needed in the source code search too.

Runtime Monitoring

An entirely different approach for identifying clear text connections is observing network activity at runtime. Tools like tcpconnect of the bcc suite seems to be a good starting point, as it allows continuous monitoring without noticeable impact, unlike e.g. capturing the entire network communication with Wireshark.

With this we can also find non-HTTP connections, as well as entirely unnecessary network activity (D7410, D7438). However, we wont notice anything from code paths that aren't run.

Contribute

This is a perfect topic to get started with I think, fixing http: links is as easy as it gets, and yet that has relevant impact on the privacy or our users. But it doesn't stop there, as we also need to build the tools to identify these issues more reliably. There isn't much yet in terms of tooling, so a simple script would already be an improvement (e.g. to automatically check the KIO search provider desktop files), but if you are into elaborate runtime tracing techniques like used by the bcc tools, here's a real-world problem to use this for :)

08 Dec 2018 12:15pm GMT

06 Dec 2018

feedPlanet KDE

Cutelyst 2.6.0 released! Now on VCPKG and buildroot

Cutelyst, a Qt Web Framework has upped to 2.6.0. This release if full of important bug fixes and is the best version when targeting Windows OS so far. It reached 5 years old, 440 stars on GitHub and since the last release has had many users asking questions, reporting issues and making pull requests.

Until now Windows support was a thing I mostly trusted Appveyor compiling and running tests fine, but this changed a bit in this release, I got a freelance job where some terminals would be editing images to be printed on T-Shirts, then they sent their art to a central server which receives and print, so, after I finished the QtQuick application and managed to convince them of running the terminals on KDE/Plasma as it was basically a kiosk full screen application I went on writing the server part.

Using Cutelyst on the server was a perfect match, the process was a Qt Widgets application, that, when linked to Cutelyst::WSGI could start listening all on the same process without issues, every terminal were connected via websockets protocol, which was just awesome, whenever I changed a terminal config I could see it changing instantly on the terminal, QWebSocketServer class could indeed do the same, but, to create the T-Shirt Art Fonts and Pictures needed to be "installed" on the terminal. Now with HTTP capabilities I simply exported all those folders and the whenever I sent a new JSON with config to the terminals, it contained the URLs of all these files which where updated in a blink.

On deploy time it was clear that using Windows on the server was a better option, first I'd need to give support for them on how to configure printers and use the system, also, printer drivers could also cause me troubles, so whatever let's just compile it and get the money.

In order to make things easier I managed to get VCPKG to build a Qt5 for me, in a command line fashion, after that I saw how easy it was to create a package for Cutelyst, it's upstream now, you just need to type:

vcpkg install cutelyst2

This will pull qt5-base package, and get you a working Cutelyst that easy, sadly Qt5 packages didn't work on Linux nor on MacOS (both with issues filled).

Thanks to this project, several Windows related issues have been fixed, still work to do but I have an app on production on Windows now

I'm still no Windows fan, so I ended up configuring MXE and cross compiling Cutelyst and my application for Windows on Linux with it.

If you are doing embedded stuff, Cutelyst is also available on buildroot.

Besides that Cutelyst 2.6.0 has some other very important bug fixes.

Get it here!

06 Dec 2018 6:26pm GMT

www.kde.org

It's not uncommon to come across some dusty corner of KDE which hasn't been touched in ages and has only half implemented features. One of the joys of KDE is being able to plunge in and fix any such problem areas. But it's quite a surprise when a high profile area of KDE ends up unmaintained. www.kde.org is one such area and it was getting embarrassing. February 2016 we had a sprint where a new theme was rolled out on the main pages making the website look fresh and act responsively on mobiles but since then, for various failures of management, nothing has happened. So while the neon build servers were down for shuffling to a new machine I looked into why Plasma release announcements were updated but not Frameworks or Applications announcments. I'd automated Plasma announcements a while ago but it turns out the other announcements are still done manually, so I updated those and poked the people involved. Then of course I got stuck looking at all the other pages which hadn't been ported to the new theme. On review there were not actually too many of them, if you ignore the announcements, the website is not very large.

Many of the pages could be just forwarded to more recent equivalents such as getting the history page (last update in 2003) to point to timeline.kde.org or the presentation slides page (last update for KDE 4 release) to point to a more up to date wiki page.

Others are worth reviving such as KDE screenshots page, press contacts, support page. The contents could still do with some pondering on what is useful but while they exist we shouldn't pretend they don't so I updated those and added back links to them.

While many of these pages are hard to find or not linked at all from www.kde.org they are still the top hits in Google when you search for "KDE presentation" or "kde history" or "kde support" so it is worth not looking like we are a dead project.

There were also obvious bugs that needed fixed for example the cookie-opt-out banner didn't let you opt out, the font didn't get loaded, the favicon was inconsistent.

All of these are easy enough fixes but the technical barrier is too high to get it done easily (you need special permission to have access to www.kde.org reasonably enough) and the social barrier is far too high (you will get complaints when changing something high profile like this, far easier to just let it rot). I'm not sure how to solve this but KDE should work out a way to allow project maintenance tasks like this be more open.

Anyway yay, www.kde.org is now new theme everywhere (except old announcements) and pages have up to date content.

There is a TODO item to track website improvements if you're interested in helping, although it missed the main one which is the stalled port to WordPress, again a place it just needs someone to plunge in and do the work. It's satisfying because it's a high profile improvement but alas it highlights some failings in a mature community project like ours.

Facebooktwittergoogle_pluslinkedinby feather

06 Dec 2018 4:44pm GMT

KDAB releases Kuesa™ for 3D asset creation and integration workflow

KDAB announces the release of Kuesa™, a solution that provides an integrated and unified workflow for designers and developers to create, optimize and integrate real time 3D content in a 3D or hybrid 2D/3D software user interface.

Kuesa provides an easy, integrated and unified workflow without any compromises for designers and developers giving:

For a practical demo, have a look at the tutorials created by KDABian Timo Buske, showing a complete workflow from the designer to the developer:

Kuesa is now available under both an AGPL and Commercial license. For more details about Kuesa and how to download it, visit the Kuesa web page.

Also, at this year's Qt World Summit Berlin, KDAB's James Turner will be giving a presentation on Kuesa titled, Streamlined Integration of 3D Content straight from 3DS Max and Blender into Qt3D. You can also view a demo of Kuesa at KDAB's booth.

The post KDAB releases Kuesa™ for 3D asset creation and integration workflow appeared first on KDAB.

06 Dec 2018 9:55am GMT