The Season of KDE is a 3 weeks long program that provides an opportunity for people to do mentored projects for KDE.
We are still looking for more mentors for SoK 2021. So please consider mentoring for this year season and adding ideas related to the project you are working on in the Wiki page. And joining the #kde-soc channel.
Possible ideas includes but not limited to:
In part 1 of this post we showed how to create a multi-platform Qt Quick application project in Visual Studio targeting Windows and Embedded Linux. We will now show how to run the application on an embedded device. We will then continue developing the project into the full embedded application that we set out to create. Finally, we will use the VS debugger to remotely debug the application's C++ and QML code.
Today, we’re releasing Krita 4.4.0 beta 2: we found a number of regressions and release blocking bugs.
This beta has Android builds too, since we fixed many issues with accessing files on Android: however, because we now add translations the APK files are too big for the Play Store, and you will have to download them from download.kde.org
NOTE for Windows Users: Microsoft has changed the way applications signed with certificates are handled. Only Digicert certificates are automatically trusted, other certificates will only be trusted if enough people bypass smartscreen to run the signed application. Our builds are absolutely safe, so you can safely do that. If you see the “Windows protected your PC” screen, press “More Info”, then select “Run anyway”.
If you’re using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.
(If, for some reason, Firefox thinks it needs to load this as text: to download, right-click on the link.)
Note: the gmic-qt is not available on OSX.
This time, the Android releases are made from the release tarball, so there are translations. We consider Krita on ChromeOS and Android still beta. There are many things that don’t work and other things that are impossible without a real keyboard.
For all downloads:
If you read between the lines…
Some long-time subscribers may remember that I am teaching math to 10-18 year old students. The COVID-19 situation nearly made me quit and look for an alternative to earn my rent, but my love for the kids and teaching them was stronger. After a few months of shortage, we found ways to responsibly resume the meetings, either online or with safety measures.
When schools were closed, some parents wondered what they could do to drag their offsprings away from computers; playing computer games seemed to be the new all-time favorite hobby. Of course, resistance was expected. Why not turn this interest into something useful? I didn’t expect that kids as young as eight are interested to learn how to create games. But why not? I learned from electronic magazines and books how computers, MS BASIC, and Z80 assembly worked when I was ten, and I am sure I would have been interested with eight, if my classmate had broken his leg two years earlier… But that’s not the story I want to tell.
Today I was again supporting a just-turned-thirteen year old in his journey to learn Python. Earlier, we had already mastered coordinate geometry to move colorful images with PyQt on key presses, so variables, arithmetics, and conditionals in Python are well understood. We also used lists of strings to write simple “guess the correct answer” games. To automatically label the answers with A, B, C, etc. I showed him ord and chr functions, so he was aware that letters are internally stored as numbers.
But for me learning to code is not only about writing games. What I call “theory” is writing programs that solve seemingly uninteresting tasks. Showing him the specification and a partial implementation of a “orderNumbers” function, today’s exercise was to solve the same task for two strings.
def orderNumbers(n1, n2): ''' Decide about the ordering of two numbers Result: -1, when n1 comes before n2, 0, when n1 is the same as n2, 1, when n1 comes after/behind n2 ''' if n1 < n2: return -1 elif n1 == n2: return 0 # ... def orderStrings(s1, s2): # ...
Intuitively, he started by typing “if s1 < s2:”, then he paused, and said: “No, this won’t work!”, and erased the faulty line. His understanding of strings is that they are a sequence of letters, each of them represented by a number, so his conclusion was that a single comparison cannot determine the ordering of complete words or names.
I could have simply said “It works, Python is that easy!”, but I didn’t. My evil plan was to make him implement that function the hard way. And I got rewarded, because he had to solve every single challenge this task offers.
Here is his final function (reformatted and variables renamed for brevity, his version was a bit messy).
def orderStrings(s1, s2): ''' Decide about the ordering of two strings, ignoring case Result: -1, when s1 comes before s2, 0, when s1 is the same as s2, 1, when s1 comes after/behind s2 ''' pos = 0 while True: if pos >= len(s1) or pos >= len(s2): if len(s1) < len(s2): return -1 elif len(s1) > len(s2): return 1 else: return 0 c1 = ord(s1[pos]) c2 = ord(s2[pos]) if c1 > 90: c1 -= 32 if c2 > 90: c2 -= 32 if c1 < c2: return -1 elif c1 > c2: return 1 else: pos += 1
Of course his case checks are not really correct; I will have to introduce him to Unicode and Python’s built-in ways to handle case-ignoring comparisons sometimes later.
Exercise solved, well done!
The submitted installers are always taken 1:1 from our very lovely Binary Factory. They just get some test drive if they behave well and then are submitted like described here with the KDE e.V. account.
Therefore the most work was done by all the people that created and keep the Craft tooling & Binary Factory working! Thanks a lot to our awesome system administrators, Hannah and all other involved people ;=)
Hannah reminded me that it is time for an updated version of Kate, too, the last submission was the 20.04 release. Therefore at the moment the 20.08 release is in the submission queue and should arrive in the store in the next days. It will featuring all nifty new 20.08 features and some post 20.08 bug fixes.
Since the initial submission to the store, Kate has now been installed 60,346 times. That means roughly 5,000 new installations per month!
This might pale compared to a lot of other projects out there, but given we are for example a lot longer available on Windows via e.g. Chocolatey, but have there only 8,796 downloads since ever, this is really awesome.
Perhaps we are even more often installed via direct downloads from the Binary Factory installers as linked on our Get Kate page, but still, it is nice to see that there is actually interest in our software on Windows, and not just by a handful of people.
I hope this interest in our text editor will expand in the future and might result in more contributors on Windows for both Kate and the overall KDE community.
Now, after a lot of self-praise, let’s take a look at our reviews in the Windows Store.
The internal store web interface shows that we have overall 96 reviews since we are in the store and that the overall rating is 4.7 stars. The concrete results breakdown can be seen below.
For me, this is actually a very nice feedback. Unlike some comments we got on reddit and Co. after the initial publishing, no, we didn’t end up with just one star ratings in no time.
Here some examples of reviews that should make our contributors happy to read (without any names & with some grave spelling mistakes that Kate’s spell checker underlined for me fixed, and no, I didn’t add that heart smiley Unicode char, that was there in that one review, it is a 1:1 copy):
Wow! Finally. This superb, multifunctional and so very feature rich editor from Linux is now available on Windows! And as an app, so we get automatic updates along with other Windows apps! Sweet💖
The perfect app to substitute the default notepad of Windows 10.
A powerful text editor with viewer option and code editor
I was a user of KDE plasma I thought before downloading this I thought there will be a new interface but the fonts tabs themes were all KDE Plasma THIS IS FAR MORE BETTER THAN NOTEPAD….
Works flawlessly, easily replaces windows notepad, notepad++. Plus its free AND open source. Comes from KDE so that’s another great thing. Really loved the work from KDE into this product. Thanks Developers & contributors
It’s always my first choice for a text editor. I really appreciate KDE’s work
The best editor, on any platform. It’s my favorite on any platform. First used it on Linux with KDE3, and been in love with it ever since. Highly recommended!
This is a very powerful open-source editor (and works great on high-DPI monitors too).
It feel in love with Kate on Kubuntu and now I use it everywhere! Thanks KDE for making great software
This is Kate from KDE, now on Windows. HiDPI works (I’d say better than fractional scaling in Kubuntu, even), everything works, and it’s a nice editor.
I love Kate Text Editor, been using it on Windows and Linux for a year or two now. I like having a reliable, simple-like-notepad, yet with multi-tabs, sessions, and plenty of additional features if I want them (coding, etc.), thanks to the team for keeping this excellent application up to date! Glad there’s a Windows Store (for better or worse) version to make it easier for Windows users / those confused by the web-site’s download setup, to get it, and for it to auto-update also.
Yet, there is not just praise, naturally. Here some reviews that point to areas we shall improve:
The application is very good and complete but the graphical user interface is not really polished for Windows which if it causes me conflict, fix that, keep it up.
There are some rendering issues. I loved Kate on Linux. Also my system language settings are set to English, yet it displays in a different language.
I’m used to KDE applications from Linux, and I’m very glad that it is now available on Windows as well. I really like these kind of oldschool editors compared to e.g. Visual Studio Code, because of their simple interface and exactly the right amount of features. The only thing I miss from Linux is the terminal-integration. Would be great to have KDevelop in the store as well!
It is one of the best note editor that can be found in the Microsoft Store. But I think the size of the app is too big without any reason.
Amazing app from KDE, but I have to admit it looks much better in Linux
Very good. However, it does not save the changes we do the editor’s fonts and colors, which makes it unusable for me.
A good editor, I uses it in Linux and now that I have to work in windows, I’m glad to find it here also. I dislike the Microsoft store version because I cannot set it as default editor for .java files making it very tiresome to use. Uninstalling it.
This is a very clean port to Windows. It maintains its core-feature parity between Linux, Windows and Mac. That’s not such a bad thing, if you are looking strictly for a text editor. Where things start to distinguish are the lack of terminal support, and or plugins. When you have options like VS Code (Insiders) which have WSL coding options (remote WSL from Windows), I don’t see why I would go with Kate. But, I expect good things to come, as they work to include WSL, and get the feature parity back
Perfect! Just a small issue: in 4K monitors the icon seems too small (this is not an issue if you install it normally by downloading the installer). Not sure where should I report this bug :\
When using a dark theme, the icons keep dark as they are in light theme, there is no light icons to use with a dark theme
The code highlight feature is great. It would be better if you could have embedded terminals like the Linux version.
I was waiting for this day. KDE is awesome. I use KDE Neon everyday. KDE has a lots of features that Windows can’t offer. Kate is one of my favorite program since I found Kate. I just want a feature on Kate which is, like notepad++ when we close the program it automatically saves all tabs and files. So next time when we start the program. It starts like the last session and automatically loads everything for you. Thanks…
One star deducted as Dark theme icons are black (should be white or at least not black) otherwise awesome quick editor. Thanks
If somebody has time to work on any of the above issues, please consider to contribute improvements to our stuff. Some small stuff like improving the shipped icon or enhancing which file extensions we support was already done. Other stuff like better handling of dark/light mode for icons is still work in progress and any help wanted!
I hope more people will join the effort to bring KDE software to Windows. As you can see above, it is appreciated by Windows users, if the port is done in a reasonable way.
I think having more of our stuff there (and on any other platform) will help to keep our software relevant by broadening our user & contributor base.
Beside this, it improves the quality of our software, as alone having to compile it with a very different compiler and different underlying libraries often uncovers existing issues.
Many fixes done for Windows will benefit other platforms, too, like e.g. the better deployability of our KDE Frameworks we worked on in the past. This was driven a lot by the needs of the Windows (and macOS) packaging that is very different to how Linux distributions deploy our stuff.
This month a few cool things happened to the KDE websites.
The wiki instance we use was migrated to MediaWiki 3.34 (latest LTS version), bringing a few improvements in the translations module and fixing the problem where translated pages couldn’t be moved around. The commenting plugin was sadly discountinued in this version and instead the Echo extension was added which provides a way to ping people.
Another improvement related to the wikis is the creation of a small module allowing user to authenticate with the Identity replacement. The source code can be found here. This brings us a step closer to the replacement of identity.kde.org.
This month, a completely rewritten backend for Season of KDE was merged. This was part of the work Anuj did during GSoc this year. It is not yet deployed into production, but I host a demo so you can try it. The new features allow for a mentor to comment on proposals, and mentees can now use markdown when writing a proposal. The new system now uses Symfony, one of the biggest PHP frameworks, and is integrated in MyKDE too, so mentors and mentees get a badge after completing SoK. The admin interface was also significantly improved. Great work Anuj!
And while at it, please consider mentoring for this year’s SoK program. It is a good opportunity to bring new blood to KDE. community.kde.org/SoK/Ideas/2021.
The new developer documentation website also got a few updates and now contains a complete tutorial about how to write a Plasma Widget. Thanks to Zren for this contribution.
Elisa, everyone’s favorite music player, also got a new website developed by Anubhav Choudhary and Nikunj Goyal. You can check it out at elisa.kde.org.
Subtitle Composer, a subtitle editor, also got a new website developed by Thiago Sueto. You can check it out at subtitlecomposer.kde.org/.
The atelier website was also updated by Lays Rodrigues.
KDEMail.net now uses the Aether theme.
Full stack tracing is a tool that should be part of every software engineer’s toolkit. It’s the best way to investigate and solve certain classes of hard problems in optimization and debugging. Because of the power and capability it gives the developer, we’ll be writing a series of blogs about it: when to use it, how to get it set up, how to create traces, and how to interpret results. Our goal is to get you capable enough to use full stack tracing to solve your tough problems too.
When do you need full stack tracing? Since it gives you visibility across a running system, it’s a great solution anytime you need to do things like:
To put all of this in context, let’s walk through an example where we used full stack tracing to solve a show-stopping problem for a client. In this case, it was an automotive customer creating an infotainment system with a rather complex software stack. The main application was created in Qt and ran on a Nvidia Tegra X1, which is an extremely powerful processor for an embedded system. The GPU rivals that of laptops with a quad core CPU. Because the software required integration from many partners, developers unfortunately realized very late during integration that despite all of the power, the infotainment system was taking over five seconds to show the application’s first screen. This was completely unacceptable, and we were asked to diagnose why it was taking so long.
That’s a question that the QML profiler can’t answer. While you can make many educated guesses to figure out exactly what’s happening, it is this type of problem where full stack tracing is invaluable. It can tell you what Qt, C++, kernel, driver, or hardware interactions are happening underneath the QML so you can see where the time is being spent.
By turning on full stack tracing for the kernel, syscalls, and C++, adding tracepoints within Qt, and rerunning the application, we were able to find that those long bindings were occurring because many libraries were being loaded for image plug-in formats. Since the application only used PNG files, we were able to eliminate a huge number of these unnecessary loads for other file plug-ins. That included the SVG plugin, which was especially heavy. Although the application was a Qt Quick app that didn’t use Qt Widgets, the SVG plugin was pulling in the relatively big Qt Widgets library, which was unneeded. (This is because the plugin was compiled with QtWidgets support enabled.) But while eliminating the plug-ins made a dramatic improvement, it still wasn’t fast enough, and it was taking far longer to boot than it should.
Again, full stack tracing was able to show us that the disk I/O was a huge culprit and many applications were hammering the disk during startup. However, most of those applications accessing the disk were background tasks that weren’t critical to the startup procedure. Furthermore, most of the disk I/O was coming through a single call within syslog: the processes were emitting reams of debug output, going through syslog to write the data out to the flash drive. The CPU and GPU had more than enough horsepower to manage this, but the on-board flash was really cheap…and pretty slow.
While it might have been better to remove unnecessary logging from those background tasks, that change would have required a lot of coordination and testing because many distinct software suppliers were involved. That would have introduced a good deal of risk to a project that was already perilously close to the production deadline. Instead, we settled for bumping up the main application’s priority. The increased priority let the GUI beat out those background tasks during boot up. The background tasks were able to harmlessly finish their work slightly later. This change was now able to bring the splash screen up within one second, meeting the customer requirements to everyone’s great relief.
While full stack tracing was critical to the technical understanding of the problem, it was also necessary for the project management. With the high pressure of the impending deadline, engineers had to convincingly explain that the corrective actions being taken had a high degree of probable success. Full stack tracing indicated precisely what the problems were and exactly where in the software stack they were, avoiding any finger-pointing between suppliers.
Hopefully you’ll agree that full stack tracing could be a valuable skill to add to your repertoire. Stay tuned – our next blog will show you how to get it set up.
If you’d like to learn more about Debugging and Profiling, you might be interested in one of our training classes. Visit this page to find out some of the areas and correlating tools with which we are used to working, and with which we can help you.
We are happy to let you know that the very first edition of Qt Desktop Days 2020 was a great success! Having pulled together the event at very short notice, we were delighted at the enthusiastic response from contributors and attendees alike.
Over 500 registered attendees could enjoy five days of technical talks. The program shows the range and depth of offerings that kept people coming back.
We started off the event week with an introduction from Kalle Dalheimer, KDAB’s CEO, followed by a Keynote on Qt 6 for the desktop from Giuseppe D’Angelo, an Approver of the Qt Project and a software engineer at KDAB. You can see this session already on our KDAB TV channel, here.
After that, there was a series of varied topics that roughly fit into three tracks: QML, Testing and Widgets.
A lot of attention was given to QML, ranging from how you migrate from widgets to QML, to showcasing QML or showcasing part of the QML design framework. There were two very interesting presentations about testing: one on behavior-driven testing and another on code coverage and how you drive your testing effort there, presented by our long time partner froglogic. We were introduced to KDDockWidgets, an advanced docking framework and a presentation from Bluescape showing how to add touch and pen input to an application.
Two standalone sessions that come to mind were a fascinating account of the history of Qt and VLC (you likely know it best as Youtube) and a very interesting session from Microsoft presenting their Windows Subsystem for Linux, which included information on the new Windows insider program. More on all of that in the upcoming recordings…
The whole show ended with a Q&A session, where the audience could ask questions to a number of people on anything relating to Qt. Lots of very good and interesting questions, both for where we are today and what’s going to be in the future.
For those of you who missed the presentations this year – Stay tuned! We did record them all and will put them on YouTube as soon as we’re done with the post-production. Subscribe to our YouTube channel, and you’ll be the first to know when they’re out there.
week report on O²
In a nutshell, did some stuff, then done it again was happy with parts of it, and finaly ended the week on a positive note with a talk on QtCon brazil 2020
New version for light Bg's using extra noise generated from the 2 active colours.
Made some progress in the internal rules for palette generation, as I have said on of my prime objectives is to be able to create extremely simple palettes with no more of 5-7 colours that area able to be translated in to fully working pallets. something I'm planing to start testing in qml next week.
In that note more work on the QML components that test the mock-ups and animate the features, notice the progress bar deal with small values
here you can see a zoomed version of the UI 2x notice the outline on the progress bar that changes the colour, flowing the edge of the progress all the way to the end.
Finally Saturday I had the pleasure to participate in the QtCon brazil were I could use my native Portuguese :) sory guys ;).
All the talks available here ...https://www.youtube.com/channel/UCpnk1I7ThHtKn4UYkuaO7Qg I highly recommend ... most of them are in English so ..
Cheers and see you all next week .)
We are pleased to announce the launch of Nitrux 1.3.3. This new version brings together the latest software updates, bug fixes, performance improvements, and ready-to-use hardware support.
Nitrux 1.3.3 is available for immediate download.
sudo apt install -yy nvidia-driver-450 nvidia-settings nvidia-prime sudo apt install -yy --reinstall nx-desktop-settings-legacy
sudo apt update sudo apt purge --remove -yy calamares-qml calamares-qml-settings-nitrux sudo apt install -yy calamares calamares-settings-nitrux --no-install-recommends sudo -E calamares -d
To report bugs, please use our bug tracker at GitHub.