26 Jul 2017

feedPlanet KDE

Artful Alpha 2 release candidate is ready for testing!

Test if you can, on real hardware if possible, in virtual machines if not.

Kubuntu Desktop amd64 testcases in Artful Daily:

The label "Daily" will change once the Alpha 2 has been milestoned. Remember to report bugs and link them on the qa site. The easy way to file bugs is in the commandline: ubuntu-bug packagename. Ask us in IRC (#kubuntu-devel) if you need a package name.

Kubuntu Desktop i386 testcases in Artful Daily:

It is so important to get this preliminary testing done if we want a 32-bit Alpha 2 ISO! We could not do an alpha 1 of Artful for this reason.

Thank you folks. That alpha 2 ISO will be spun on the 27th -- IF we have all tests done. If not.......


PS: sorry for the late notice; I'm currently in Spain at KDE Akademy. You can subscribe to get the testing notices directly: http://iso.qa.ubuntu.com/qatracker/subscription

26 Jul 2017 3:56pm GMT

25 Jul 2017

feedPlanet KDE

Go support in KDevelop. GSoC week 8. Formatting and linting.


Sidenote: I'm working on Go language support in KDevelop. KDevelop is a cross-platform IDE with awesome plugins support and possibility to implement support for various build systems and languages. The Go language is an cross-platform open-source compiled statically-typed languages which tends to be simple and readable, and mainly targets console apps and network services.

During last week I worked on fixed some bugs:

  • Wrong struct declaration color - the problem was with misuse of setting declaration isTypeAlias property to true and not inheriting StructureType in class used for structs handling;
  • Bug which caused syntax highlighting disappear sometimes after restart;
  • Some fails related to retrieving info from method declaration.
Also, I worked on adding support for formatting using "go fmt" - a Go language standard tool which formats code. After implementing this I noticed that source highlighting disappears every time I apply formatting - this was a bug I mentioned before. Without formatting I rarely could reproduce that bug, but given the ability to easy reproduce that situation I was able to fix it.

After that I worked on linting support via Go Meta Linter - a tool which runs and aggregates an output from various linters \ analyzers \ normalizers. Usage of that tool allow to not worry about different output format of different analyzers and easy call them concurrently. Sadly, it has it own downsides - it isn't able yet to detect all duplicates in errors\warnings - but it tries to do so (see first error on screenshot, there is a list of linters that detected that problem in braces)

Go Meta Linter output
Screenshot shows some examples of Go Meta Linter output - error regarding not used variable (yep, it's error in Go language world) and warning about missing documentation comment on Test function which is exported to outerscope.

P.S. Also, now it's possible to build kdev-go using clang. :)

Looking forward to next week!

25 Jul 2017 4:56pm GMT

Akademy BoFs

Here at Akademy in Almería, we have moved from the conference portion - two days of talks at the University - to the hacking week portion. The conference days were very busy; most of the talks were recorded and those recordings will be up when they're done post-processing. I haven't heard a date for that yet.

Cake is a theme. I don't know who bakes them or where they come from, but the shout on IRC that there is fresh-baked, still-warm cake and coffee in the hall near the team room is an event to drop everything for.

I missed BoFs yesterday that I wanted to go to - I guess I was wrapped up in hacking and talking to people outside of the scheduled activities. Today I spotted a Calamares BoF - not one I scheduled, mind, but apparently people think I should be doing more work.

At the end of each hack-week day, there is a BoF wrap-up for those attendees who could not be everywhere at once, and also for people outside of Akademy who want to know what has been worked on. Yesterday's wrap-up was lots of "we discussed this-and-that", I imagine today is going to start moving into "we built something". So, for everyone at Akademy: be in the big hall downstairs at 18:00; for others, catch the video later (yay, shameless self-promotion!)

25 Jul 2017 2:28pm GMT

Bug parity achieved

Riddell: "Hey, Ade, don't touch your quassel for a minute, ok? Right, switch to a different channel." Me: "Sure" Riddell: "OK, see the Quassel notification icon?" Me: "Yeah, it's throbbing."

He walks over, checks that the notification icon is throbbing in the systray, and that I've got a konsole window at hand. "So, run top." I switch windows, type "top" and hit enter.

Silence. "Um, what operating system is this?"

So Plasma 5 on FreeBSD looks sufficiently indistinguishable from KDE Neon, that it can fool even the conoisseur. But top(1) is different enough. This makes me really happy, since it shows that packaging vanilla upstream KDE software is the right thing to do for FreeBSD. Even better, the KDE Neon bug Riddell was trying to illustrate to me, is also present on FreeBSD with Plasma 5 on Intel graphics (although I use the scfb driver for now). Achieving bug parity is quite a milestone.

25 Jul 2017 10:54am GMT

Plasma’s Vision

Plasma -- Durable, Usable, Elegant.Plasma - Durable, Usable, Elegant.Over the past weeks, we (KDE's Plasma team) have distilled the reasons why we do what we do, and what we want to achieve into a vision statement. In this article, I'd like to present Plasma's vision and explain a bit what is behind it. Let's start with the statement itself, though:

Plasma is a cross-device work environment by the KDE Community where trust is put on the user's capacity to best define her own workflow and preferences.

Plasma is simple by default, a clean work area for real-world usage which intends to stay out of your way.
Plasma is powerful when needed, enabling the user to create the workflow that makes her more effective to complete her tasks.

Plasma never dictates the user's needs, it only strives to solve them. Plasma never defines what the user is allowed to do, it only ensures that she can.

Our motivation is to enable actual work to happen, across devices, across different platforms, using any application needed.

We build to be durable, we create to be usable, we design to be elegant.

I've marked a few bits which are especially important in a bold font, let's get into a bit more detail:

Cross-device - Plasma is a work environment for different classes of devices, it adapts to the form-factor and offers a user interface which is suitable for the device's characteristics (input methods such as touchscreen, mouse, keyboard) and constraints (screen size, memory and CPU capabilties, etc.).

Define the workflow - Plasma is a flexible tool that can be set up as the user wishes and needs to make her more effective, to get the job done. Plasma is not a purpose in itself, it rather enables and gets out of the way. This isn't to say that we'll introduce every single option one can think of, but we strive to serve many users' use cases.

Simple by default means that Plasma is self-explanatory to new users, and that it offers a clean and sober interface in its default state. We don't want to overwhelm the user, but present a serene and friendly environment.

Powerful when needed on the other hand means that under the hood, Plasma offers tremendous power that allow to get almost any job done efficiently and without flailing.

We build to be durable, we create to be usable, we design to be elegant. - The end result is a stable workspace that the user can trust, that is friendly and easy to use, and that is beautiful and elegant in how it works.

25 Jul 2017 10:52am GMT

Qt 3D Short Presentation

Qt now provides a new module named Qt 3D. In this very short talk Giuseppe D'Angelo introduces some of the design ideas behind Qt 3D, discuss its use cases, and shows how simple it is to get 3D content in an application when using Qt 3D APIs.…

The post Qt 3D Short Presentation appeared first on KDAB.

25 Jul 2017 10:04am GMT

Clang Tidy, part 2: Integrate qmake and other build systems using Bear


This article is part of a blog series about Clang Tidy. In the previous article we learned about the general usage of Clang Tidy to automatically refactor source code for projects using the CMake build system. In this particular episode we'll discuss using Clang Tooling on projects using different build systems with the help of Bear.

Motivation: So you want to use Clang Tooling on your project - but what if your particular project of interest is using …

The post Clang Tidy, part 2: Integrate qmake and other build systems using Bear appeared first on KDAB.

25 Jul 2017 9:20am GMT

The achievements during the second GSoC period in KStars

In this month, I have been working on fixing bugs found by static code analyzers in KStars. All of the tools are open-source or they can be used for free by open-source projects:

- cppcheck: C++ source code analyzer.
- Clazy: Qt-oriented static code analyzer by KDE for C++ based on Clang.
- Clang Static Analyzer: Clang Static Analyzer is a Clang-based static code analyzer for C++.
- Krazy: Code analyzer by KDE.
- Coverity: Coverity is a commercial C++ static code analyzer from Synopsys, but it is free for open-source projects.

If you want to give these analyzers a try, you can pick the build scripts from the tools directory of KStars Git repository and try in your project following our wiki page on the bottom.

Meanwhile I keep fixing memory handling bugs what I find when I test KStars built with runtime sanitizers and adding C++ smart pointers to certain places to make pointer-handling more safe. I also try to minimize the unnecessary includes over the codebase to cut the build time although sometimes I break the Jenkins CI build for FreeBSD or some other esoteric platforms. Ops. :) But I fix those problems as soon as possible.

More details are on our wiki page:

25 Jul 2017 9:11am GMT

KStars 2.8.0 is released for Windows, MacOS, and Linux

Here comes another KStars release: v2.8.0 For Windows, MacOS, and Linux.

This is a minor bugfix release to increase stability of KStars on all supported platforms. Nevertheless, there were few significant updates:

  • Default NGC/IC catalog is now replaced by OpenNGC project. Christian Dersch compiled this catalog from OpenNGC. KStars now include more objects with accurate positions!

  • Lots of C++11/C++14 code migration work by GSoC 2017 student Csaba Kertész. This also included memory management clean-up, usage of smart pointers, valgrind suppression file and other fixes.

  • Adding support to selection of telescopes from Ekos equipment profile directly. This facilitates having different profiles when utilizing different telescopes on the same mount.
  • Michael Fulbright, KStars & INDI latest developer, added the ability to have a scheduled refocus every N minutes during a capture sequence. Michael also added dither size in pixels and dither timeout to UI.
Many small bugs were fixed, thanks to our users who are making use of KDE Bug Tracking facilities effectively.

25 Jul 2017 8:54am GMT

24 Jul 2017

feedPlanet KDE

KDE Slimbook and FreeBSD

Yesterday I picked up my new KDE Slimbook. It comes with KDE Neon pre-installed. Of course it also works well with openSUSE, and Manjaro, and Netrunner Linux (some things I've at least booted the Live CD for). But for me, "will it run FreeBSD" is actually the most important bit.

Yes. Yes it does, and it does so beautifully.

Photo of two laptops

That is at least one advantage of choosing a Free Software friendly laptop, one designed for GNU/Linux: it is likely to be supported by many more operating systems that you might like. No, I have not tried OpenSolaris / Illumos on it .. there's really no desktop distro in that corner anymore.

So, here's how to breakupgrade your Slimbook to FreeBSD (no warranty implied):

This concludes my laptop-futzing-about at Akademy this year: I have a laptop that dual-boots Linux and FreeBSD, and gives me an up-to-date Plasma 5 Desktop and KDE Applications on both - but that leaves me free to hack on whatever my work requires in the OS best suited to it each day of the week.

24 Jul 2017 10:52am GMT

Wiki, what’s going on? (Part 24-Badges and books)

Books, badges and new functionalities are coming!

Hey WikiToLearn-ers! It has been a while, but now "What's going on?" is back.

This last period was really difficult for all of us but we never forgot of WikiToLearn. In spite of personal commitments and exams, the members of our community kept working day after day and now we see the results!

Electromagnetism is now ready!

In the first episode of "Meet the authors" we have come to know Dan, a long term contributor of ours. It is now a pleasure to announce that his book about electromagnetism is ready! Dan is one of the most active editors in our community and on our website he wrote several books on the italian portal: analysis, physics I, mechanics and electromagnetism! Kudos Daniele for your strong dedication to the project and for your contributions!

We have badges!

The tech team never stops, the platform is always at his best and our sysadmins work hard to provide you great services. When we had problems we were able to solve them very quickly and to get back on our feet! In this period

our devs worked on a long-term requested feature for our website: badges! Yeah, now WikiToLearn has badges! Since our project was born we were asked a way to certify an imported or reviewed book and to give its author/reviewer the proper merit. We are very happy to announce that this feature is now ready! When you donate a book to be imported, a proper tag will be associated to it on the website.

Professors always asked us a tag to certify their books authority. To accommodate this request now we have the "Reviewed" tag. Are you the author of a specific book and you would like it to be certified? Now with WikiToLearn you can! One step further to guarantee high-quality content and to monitor revisions on our dynamical textbooks!

Let's celebrate!

We never forget where we belong: that's why we remind you that during this week Akademy2017 is taking place in Almeria! Akademy is the annual conference of the KDE community. WikiToLearn was born under the KDE umbrella and still today we fell part of the KDE family. This year WikiToLearn is represented at Akademy by Vasudha, a GSoC student of ours working on Ruqola. Today we remember Akademy with extreme pleasure: two years ago, during Akademy2015 our project was officially born!

Since the first official announcement to the public, so much happened. We can consider ourselves satisfied for the hard work we did and for the initial outreach we had. People feedbacks pushed us to work better and better to improve functionalities and to satisfy users' needs. In this period we had the occasion to spread the word about WikiToLearn and we could obtain substantial involvement in our projects. We are extremely grateful to all the members of our community for events organized, books donated for importation, reviews and creation of new material on the platform.

For us now it's time to work even harder. During these two years we came up to realize what we were doing properly and what has to be modified. In the next few months we are working on communication and style improvements to enlarge our community.

Content creation and usability are the two main issues we are facing right now. Any kind of user should be aware of what the platform offers and should be encouraged to write on it. WikiToLearn collects dynamical textbooks and in the incoming future this innovative feature of our product has to become our strength point!

We are working for you, WikiToLearn-ers! Stay tuned, spread the word, join.wikitolearn.org and start sharing your knowledge in a completely innovative way!

L'articolo Wiki, what's going on? (Part 24-Badges and books) sembra essere il primo su Blogs from WikiToLearn.

24 Jul 2017 10:30am GMT

clazy 1.2 released

In the previous episode we presented how to uncover 32 Qt best practices at compile time with clazy. Today it's time to show 5 more and other new goodies present in the freshly released clazy v1.2.

New checks

1. connect-not-normalized

Warns when the content of SIGNAL(), SLOT(), Q_ARG() and Q_RETURN_ARG() is not normalized. Using normalized signatures allows to avoid unneeded memory allocations.


    // warning: Signature is not normalized. Use void mySlot(int) instead of void mySlot(const int) 

The post clazy 1.2 released appeared first on KDAB.

24 Jul 2017 8:42am GMT

Fifth Blog Gsoc 2017

Hello, this is the report for the second phase of the GSOC. The last month was not easy. Some things had to be re-written because they were not very well written. For example, I wrote a system of "sensors", the logic of which was laid in the destructors of objects....

24 Jul 2017 7:00am GMT

Polkit Support in KIO - Progess so far

It has been more than a month since I last blogged. This is not really a good situation. Nevertheless, for the remaining period of GSOC I will try to be more regular.

In this post I intend to report the whereabouts of my project. First of all me not posting any updates about my project was due to two problems that showed up when I was two weeks into the coding period. One, which I had anticipated, was to decide from where to show a warning dialog during the brief period of time when privileges are elevated. The problem was that showing the prompt from KIO::Slave resulted in repetition and to show it from KIO::JobUiDelegate permissions of destination folder was needed beforehand which required additional computation. So for this I decided to add a signal in KIO::Slave and all the necessary code for additional prompts in KIO::Job. This way the KIO slave emits the signal whenever it encounters ACCESS DENIED error and then job decides whether or not to show the prompt. The other problem was to figure out how to modify files created by a privileged process by an underprivileged one. By the way the latter was completely uncalled-for and it took me around two weeks to decide on a solution. To send data between processes I tried every possible IPC mechanism involving shared memory, pipes and sockets. At last I decided on sharing file descriptor between the privileged and under-privileged process and to accomplish that I used Unix local domain sockets.

Now fast-forward to today, I have found solutions to my problems and I can say I have finally made some real progress. To be precise with my current state of project dolphin's context menu is very much usable inside a read-only folder. Most of the action in dolphin's context menu, which includes copy/cut/paste, rename, creating new file, creating new folder, creating links, trash and delete, are working without any issues whatsoever. The actions that are not working are Creating desktop files, Creating Link to Application (technically both involves creating desktop files but have two separate menu options), Compressing files, Drag and Drop, Undoing and Renaming multiple files in one go. The first two need changes in KIO::KPropertiesDialog in order to work. For compressing to work changes have to be done from ark's side. DnD requires changes in KIO::DropJob. Undoing and renaming many files kind of challenge my current solution but I have explained their case and the possible workaround in the end of post.

I have created a phabricator task in which I have listed all the related revisions and also tried to explain how everything is going to work. If anyone has a kde build environment set up and is interested to try out the changes then apply the patches listed in this repo. Unlike my previous patches which required separate branch for every file operation, all of my current patches can be applied at once and changes can be tested without having to checkout to a new branch.

Now coming back to the issue with undoing and renaming files. My design assumes one top-level parent job and many sub-jobs. However while undoing changes and renaming files, jobs are created in a loop. This means creation of many top-level jobs (like KIO::CopyJob) and that many sub jobs (like KIO::SimpleJob). So a possible workaround is to introduce a new KIO::Job that can be placed outside the loop body and would serve as a parent job for all the jobs created inside the loop. But I will consider this only after my current changes are reviewed by KIO developers.

Till then cheers.

24 Jul 2017 12:00am GMT

23 Jul 2017

feedPlanet KDE

Preview: Multi-Cursor support in the Kate Text Editor

I started to implement multiple cursor and selection support in KDE's famous text editor kate a while ago, but eventually didn't quite have the time to finalize it. I am currently at Akademy in Spain, KDE's annual developer conference, and decided that would be a good time to pick it up again and make it actually work. Here it is in action:

Multiple cursors in kate

What does it do?

It allows you to have an arbitrary amount of cursors and selections in KTextEditor. They all mirror what you do with the primary one - text input, text removal, navigation, text selection, …

Features include:

What is it good for?

You decide.

Multiple selections of different sizes

How do I use it?

Usage is relatively simple; the shortcut for controlling multicursors is currently Ctrl+Meta (Meta is the key with the Windows icon on it). Press Ctrl+Meta and click in your document to place a secondary cursor. Then, just do whatever you would normally do with the keyboard. Press Esc to clear all secondary cursors.

You can place cursors with just the keyboard by pressing Ctrl+Meta+D ("toggle secondary cursor at current position"). Doing that will freeze all secondary cursors, and the keyboard now only moves the primary cursor until you unfreeze them again with Ctrl+Meta+F.

You can also create multiple and additional selections by pressing Ctrl+Meta, and then just using the mouse to select text.

Multiple cursors in a Kate document

What's the state?

Most things work, there will be some issues I'm not aware of. What is at the moment completely broken is persistent selection, and the block selection mode. Both just do random things. I will need to fix that - or do you want to help? Assistance is very welcome.

If you want to test things, I'm sure you can find issues around static and dynamic word wrap, and folding.

How do I try it?

Check out the "multicursor" branch in the ktexteditor repo and build it, then start kate or any other application using the katepart editor component. Or, get a kate AppImage with multicursor support from here: http://files.svenbrauch.de/kate-linux/multicursor/

Please leave feedback in the comments if you try it out!

23 Jul 2017 5:46pm GMT

KDE Slimbook!

Yesterday I picked up my new KDE Slimbook from the Slimbook.es stand at Akademy.

Photo of slimbook being handed over

First thing I did, of course, was boot it with my FreeBSD 11.0 SD card, to see if it works with my favorite operating system (with Plasma 5 desktop, of course). Nope: 11.0 hangs after finding acpi_ec0, so I will write about that later this week.

Second thing I did was boot KDE Neon (pre-installed) on it, to see how it works out-of-the-box. I collected a bunch of tiny-little-irritations, papercuts if you will, from the basic installation - which have disappeared after an update and reboot.

It's a really nice and slick machine. I wanted a machine that would still fit in the train or plane, for work, but a little larger than my Thinkpad x121e. I bought that machine in 2012(?) from Hettes, a Dutch shop specializing in hardware with Linux preinstalled (now gone, since they could no longer source hardware without a Windows license). So I'm really happy to buy a new machine from a Free Software supporting shop in 2017.

There's a bit of a weird-ass dongle in the box for wired ethernet, SD card slot, HDMI and two USB ports on the sides, and a DC in - I don't think I will miss USB-C at all, although that would be neat for a refresh. I have not tried the webcam, which is in the bezel at the top of the screen (no nostril shots like some Dell machines). Speaking of bezels, they're pretty wide compared to current "design" laptops, Not any wider than the x121e, so relatively more narrow.

The touchpad is a big change for me personally, since I am - or shortly will have been - an IBM TrackPoint™ fan. On the other hand, the touchpad is solid and clicky. The keyboard is nice, with perhaps a little too much flex in the right-hand alt and delete keys. The arrow keys are arrowy, not the fat-left-and-right that (I think) HP uses.


Having discovered that the machine is shiny and nice and fast and works well .. my next step is to try to break it. With the blessing of Alejandro and César - it's good to have the best possible tech support right at hand.

(Oh, I forgot to mention: I'm pleased as punch with the ordering process, too, for instance the special "deliver to Akademy" shipping option, and the fact that I got email informing me of progress as the laptop was assembled and installed.)

23 Jul 2017 10:57am GMT