KDE Planet - Latest News

  • Web Search Keywords (2024/11/26 15:32)
    Did you know about a small but very useful feature from KDE? Open krunner via Alt+Space and type qw:KDE to search Qwant for KDE: Pressing Enter will open up your browser with the specified KDE search on Qwant! There are a lot of other Web Search Keywords like: Wikipedia: Invent: Translate from English to German on dict.cc You can find all of them by opening Web Search Keywords on krunner: Extra: Create your own! I use often a Fedora tool called COPR, so let’s use it as an example to create our own web search keyword. Do your search in the webpage: And now the important part you need: Now back to the Web Search Keyword settings: Fill in the data needed taking care of the placeholder for our input!: Now we have our own Web Search Keyword: NOTE: for some reason I had to click on Apply and OK until all the different setting windows were closed before the new custom Web Search Keyword worked And the result: I hope it’s useful to somebody!
  • Ruqola 2.3.2 (2024/11/26 00:00)
    Ruqola 2.3.2 is a feature and bugfix release of the Rocket.chat app. It includes many fixes for RocketChat 7.0. New features: Fix administrator refresh user list Fix menu when we select video conference message Fix RocketChat 7.0 server support Fix create video message Fix update cache when we change video/attachment description Fix export message job Fix show userOffline when we have a group Fix enable/disable ok button when search room in team dialog Fix crash when we remove room in team dialog Fix update channel selection when we reconnect server URL: https://download.kde.org/stable/ruqola/ Source: ruqola-2.3.2.tar.xz SHA256: 57c8ff6fdeb4aba286425a1bc915db98ff786544a3ada9dec39056ca4b587837 Signed by: E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Riddell jr@jriddell.org https://jriddell.org/jriddell.pgp
  • KDE Plasma 6.2.4, Bugfix Release for November (2024/11/26 00:00)
    Tuesday, 26 November 2024. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.2.4. Plasma 6.2 was released in October 2024 with many feature refinements and new modules to complete the desktop experience. This release adds three weeks' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include: libkscreen Doctor: clarify the meaning of max. brightness zero. Commit. Fixes bug #495557 Plasma Workspace: Battery Icon, Add headphone icon. Commit. Plasma Audio Volume Control: Fix speaker test layout for Pro-Audio profile. Commit. Fixes bug #495752 View full changelog
  • Akademy 2024 in Würzburg (2024/11/26 00:00)
    In order to prepare for the Akademy I started some days before to give my Librem 5 ( an Open Hardware Phone) another try and ended up with a non starting Plasma 6. Actually this issue was known already, but hasn't been addressed. In the end I reached the Akademy with my Librem 5 having phosh installed (which is Gnome based), in order to have something working. I met Bushan and Bart who took care and the issue was fixed two days later I could finally install Plasma 6 on it. The last time I tested my Librem 5 with Plasma 5 it felt sluggish and not well working. But this time I was impressed how well the system reacts. Sure there are some things here and there, but in the bigger picture it is quite useable. One annoying issue is that the camera is only working with one app and the other issue is the battery capacity, you have to charge it once a day. Because of missing a QR reader that can use the camera, getting data to the phone was quite challenging. Unfortunately the conference Wifi separated the devices and I couldn't use KDE Connect to transfer data. In the end the only way to import data was taking five photos from the QR Code to import my D-Ticket to Itinerary. With a device with Plasma Mobile, it directly was used for a experiment: How well does Dolphin works on a Plasma Mobile device. Together with Felix Ernst we tried it out and were quite impressed, that Dolphin does work very well on Plasma Mobile, after some simple modifications on the UI. That resulted in a patch to add a mobile UI for Dolphin !826. With more time to play with my Librem 5 I also found an bug in KWeather, that is missing a Refresh option, when used in a Plasma Mobile environment #493656. Akademy is a good place to identify and solve some issues. It is always like that, you chat with someone and they can tell you who to ask to answer the concrete question and in the end you can solve things, that seems unsolvable in the beginning. There was also time to look into the travelling app Itinerary. A lot people are faced with a lot of real world issues, when not in their home town. Itinerary is the best traveling apps I know about. It can import nearly every ticket you have and can get location information from restaurant websites and allow routing to that place. It does add many useful information, while traveling like current delays, platform changes, live updates for elevator, weather information at the destination, a station map and all those features with strong focus on privacy. In detail I found some small things to improve: If you search for a bus ride and enter the correct name for the bus stop, it will still add some walk from and to the station. The issue here is that we use different backends and not all backends share the same geo coordinate. That's why Itinerary needs to add some heuristics to delete those paths. Instead of displaying just a small station map of one bus stop in the inner city, it showed complete Würzburg inner city, as there is one big park around the inner city (named "Ringpark"). Würzburg has a quite big bus station but the platform information were missing in the map, so we tweaked the CSS to display the platform. To be sure, that we don't fix only Würzburg, we also looked at Greifswald and Aix-en-Provence if they are following the same name scheme. I additionally learned that it has a lot of details that helps people who have special needs. That is the reason why Daniel Kraut wants to get Itinerary available for iOS. As spoken out, that Daniel wants to reach this goal, others already started to implement the first steps to build apps for iOS. This year I was volunteering in helping out at Akademy. For me it was a lot of fun to meet everyone at the infodesk or help the speakers setup the beamer and microphone. It is also a good opportunity to meet many new faces and get in contact with them. I see also room for improvement. As we were quite busy at the Welcome Event to get out the badges to everyone, I couldn't answer the questions from newcomers, as the queue was too long. I propose that some people volunteer to be available for questions from newcomers. Often it is hard for newcomers to get their first contact(s) in a new community. There is a lot of space for improvement to make it easier for newcomers to join. Some ideas in my head are: Make an event for the newcomers to get them some links into the community and show that everyone is friendly. The tables at the BoFs should make a circle, so everyone can see each other. It was also hard for me to understand everyone as they mostly spoken towards the front. And then BoFs are sometimes full of very specific words and if you are not already deep in the topic you are lost. I can see the problem, on the one side BoFs are also the place where the person that knows the topic already wants to get things done. On the other side new comers join BoFs, are overwhelmed by to many new words get frustrated and think, that they are not welcome. Maybe at least everyone should present itself with name and ask new faces, why they joined the BoF to help them joining. I'm happy, that the food provided for the attendees was very delicious and that I'm not the only one mostly vegetarian with a big amount to be vegan. At the conference the KDE Eco initiation really caught me, as I see a lot of new possibilities in giving more reasons to switch to an Open Source system. The talk from Natalie was great to see how pupils get excited about Open Source and also help their grandparents to move to a Linux system. As I also will start to work as a teacher, I really got ideas what I can do at school. Together with Joseph and Nicole, we finally started to think about how to drive an exploration on what kind of old hardware is still KDE software running. The ones with the oldest hardware will get an old KDE shirt. For more information see #40. The conference was very motivating for me, I also had still energy at the evening to do some Debian packaging and finally pushed kweathercore to Debian and started to work on KWeather. Now I'm even more interested in the KDE apps focusing the mobile world, as I now have some hardware that can actually use those apps. I really enjoyed the workshop how to contribute to Qt by Volker Hilsheimer, especially the way how Volker explained things in a very friendly way, answered every question, sometime postponed some questions but came back to them later. All in all I now have a good overview how Qt is doing development and how I can fix bugs. The daytrip to Rothenburg ob der Tauber was very interesting for me. It was the first time I visited the village. But in my memory it feels like I know the village already. I grew up with reading a lot of comic albums including the good SiFi comic album series "Yoku Tsuno" created by the Belgian writer Roger Leloup. Yoku Tsuno is an electronics engineer, raised in Japan but now living in Belgium. In "On the edge of life" she helps her friend Ingard, who actually lives in Rothenburg. Leloup invested a lot of time to travel to make the make his drawings as accurate as possible. In order to not have a hard cut from Akademy to normal life, I had a lunch with Carlos, to discuss KDE Neon and how we can improve the interaction with Debian. In the future this should have less friction and make both communities work together more smoothly. Additionally as I used to develop on KDEPIM with the help of Docker images based on Neon I ask for a meta kf6 dev meta package. That should help to get rid of most hand written lists of dev packages in the Docker file in order to make it more simple for new contributors to start hacking on KDEPIM. The rest of the day I finally found time to do the normal tourist stuff: Going to the Wine bridge and having a walk to the castle of Würzburg. Unfortunately you hear a lot of car noises up there, but I could finally relaxe in a Japanese designed garden. Finally at Saturday I started my trip back. The trains towards Eberswalde are broken and I needed to find alternative routing. I got a little bit nervous, as it was the first time I travelled with my Librem 5 and Itinerary only and needed to reach the next train in less than two mins. With the indoor maps provided, I could prepare my run through the train station so I reached successfully my next train. By the way, also if you only only use KDE software, I would recommend everyone to join Akademy ;)
  • Qt support on Apple platforms (2024/11/25 13:53)
    With the release of Qt 6.8.1 and 6.5.8, we are updating our documentation to clarify Qt’s support for newly released Apple operating system versions. 
  • This Week in KDE Apps: Bugfixing Week (2024/11/25 11:20)
    Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps. This week, we are continuing to prepare for the KDE Gear 24.12.0 release, with a focus on bugfixing now that we've entered the feature freeze period. Meanwhile, and as part of the 2024 end-of-year fundraiser, you can "Adopt an App" in a symbolic effort to support your favorite KDE app. This week, we are particularly grateful to mdPlusPlus and txemaq for supporting Dolphin; mdPlusPlus, Greg Helding and Archie Lamb for Okular; Henning Lammert and Thibault Molleman for Filelight; Nithanim, Dominik Perfler, and Thibault Molleman for Spectacle; Vladimir Solomatin, Akseli Lahtinen, Haakon Johannes Tjelta Meihack, and Nithanim for Kate; Henning Lammert and Marco Ryll for Kasts; GhulDev, Anders Lund Tobias Junghans, and William Wojciechowski for Konsole; Piwix for KWrite; Gabriel Klavans for Tokodon; Matthew Lamont for Kontact; and Gabriel Karlsson for Itinerary. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world. So consider donating today! Getting back to all that's new in the KDE App scene, let's dig in! Global Changes The KIO implementation for SFTP used by many KDE applications like Dolphin, Gwenview, and many others, now correctly closes the network connection when if a fatal error occurs, which means it is now possible to reconnect immediately without having to wait a few minutes. (Harald Sitter, 24.12.0. Link) Many apps received some small bug fixes to ensure they work correctly on Haiku OS. (Luc Schrijvers, Link 1, link 2 and many more) Dolphin Manage your files Dolphin now sorts more naturally when comparing filenames by excluding extensions. So now "a.txt" appears before "a 2.txt". (Eren Karakas, 24.12.0. Link) Haruna Media player Left-clicking on a video now plays or pauses it by default. (Nate Graham, 25.04.0. Link) Karp KDE arranger for PDFs Karp is a new PDF arranger and editor by Tomasz Bojczuk which has just finished the incubation phase. Tomasz was active this week and added an option to select the PDF version of the resulting PDF (Link) and made it possible to move multiple pages at the same time (Link). Kate Advanced Text Editor The build plugin — which allows you to trigger a rebuild from Kate's interface — now supports multiple projects being open at the same time without having to constantly reload the list of targets every time you switch projects. (Waqar Ahmed, 25.04.0. Link) The ctag indexing doesn't happen anymore on the root and home folder as it makes no sense and just wastes CPU cycles. (Waqar Ahmed, 24.12.0. Link) Fix getting a PATH when launching Kate outside of the console on macOS. (Waqar Ahmed, 24.12.0. Link) KMyMoney Personal finance manager based on double-entry bookkeeping It is no longer possible to apply category filters on the "Net Worth report" of KMyMoney as this was resulting in erroneous results. (Thomas Baumgart, 5.2, Link) KRDC Connect with RDP or VNC to another computer Fix loading the gateway server address in the settings. (Fabio Bas, 24.12.0. Link) Fix a crash when scrolling; the app was previously sending empty scroll events which were rejected by the remote server. (Fabio Bas, 24.12.0. Link) Konqueror KDE File Manager & Web Browser Stefano fixed various issues with the Plasma Activities integration inside Konqueror. We now, for example, wait for the Plasma Activity service to be ready, before restoring activities when starting Konqueror. (Stefano Crocco, 24.12.0. Link) Konsole Use the command line interface We added the Campbell color scheme from Microsoft. (Mingcong Bai, 25.04.0. Link) We fixed a few font rendering issues in Konsole. (Matan Ziv-Av, 24.12.0. Link) Okular View and annotate documents Changed the default value of the "scroll overlap" feature from 0% to 10%, which means that when you scroll down in a document using Page Down or Space Bar, the bottom 10% of the previous page will remain visible at the top of the view. This helps you retain your spatial awareness when quickly navigating. (David Cerenius, 25.04.0. Link) Merkuro Calendar Manage your tasks and events with speed and ease Claudio fixed many issues with the day and month views. Now, clicking on a day in the month view will open the day view on the selected day and not just a random one, the current day will be correctly highlighted, some sizing issues are fixed, and the month view won't appear as disabled anymore in some situations. (Claudio Cambra, 24.12.0. Link 1, link 2 and link 3) When double-clicking on an empty space in the month view, the incidence editor will use the selected date as its start date. (Claudio Cambra, 24.12.0. Link) NeoChat Chat on Matrix We fixed the sed-edit feature in NeoChat, which allows you to type a sed expression like s/foo/bar to edit your previous message. (James Graham, 24.12.0. Link) On mobile devices, NeoChat won't open the space homepage when trying to just switch the selected space. (James Graham, 24.12.0. Link) Implemented MSC4228: Search Redirection to harmlessly redirect searches for harmful and potentially illegal content. OptiImage Image optimizer to reduce the size of images It is now possible to remove an image from the list of images to optimize. (Soumyadeep Ghosh, Link) Soumyadeep also fixed an issue where it was possible to add the same image multiple times (Soumyadeep Ghosh, Link) Skanpage Scan multi-page documents and images Ported the export dialog in Skanpage to use Kirigami.Dialog, giving it a nicer and more consistent appearance. (Thomas Duckworth, 25.04.0. Link) Ported Skanpage to use KIO, which allows saving scanned documents to remote folders. (Alexander Stippich, 25.04.0. Link) Telly Skout A convergent Kirigami TV guide Fix the list of favorite TV channels being empty after opening a different page. (Plata Hill, 24.12.0. Link) Tokodon Browse the Fediverse Joshua added titles to the profile pages, so that it is not empty anymore. (Joshua Goins, 24.12.0. Link) Quote post are now better detected. (Joshua Goins, 24.12.0. Link) It is now possible to start a new chat from the conversation page. (Joshua Goins, 24.12.0. Link) …And Everything Else This blog only covers the tip of the iceberg! If you’re hungry for more, check out Nate's blog about Plasma and be sure not to miss his This Week in Plasma series, where every Saturday he covers all the work being put into KDE's Plasma desktop environment. For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors. Get Involved The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable. You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things. You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world. To get your application mentioned here, please ping us in invent or in Matrix.
  • UX Insights (that we cannot get right now) (2024/11/24 12:50)
    After the criticism in the last post about the limitations of KUserFeedback (KUF) for doing data-driven UX work — let’s get more detailed and constructive: What insights do we as KDE UX people need to do even better than we are currently doing? Let us start with what we already get from KUF. We get usage data, like how many people are using Wayland vs. X11. But we only get usage data according to our telemetry policy. So we do not get any deeper insight into how users configure their sessions when using Wayland compared to X11. But this is the kind of information we would need to do proper data-driven UX. What settings are users changing? How many users have icons on their desktop, and which ones? Are people manually mounting network drives? Which System Tray icons are interacted with the most? And so on. But while this information is already impossible to gather with our current approach, we’re only scratching the surface. We need even deeper UX insights, like understanding where people click. And where they click next (in terms of Markov chains). That way we can understand if people are using Plasma the way we intended when we designed it. Or, how long does it take them to get from point A to point B? Are they taking detours because we’ve laid out paths that users don’t understand in the way we intended? None of these questions can be answered with our current approach to telemetry. The basic problem is that we currently send all the raw data to the KDE servers to get the answers we need. And the data we need to collect in order to get the above described desired user insights could of course be used to “identify a specific user” – which is not allowed by our telemetry policy for good reason. And yet we need even more data. We want to target all users, or only users who exhibit certain behaviors. We want them to fill out questionnaires to better understand why they behave the way they do, to understand their goals and intentions. This would be extremely helpful in understanding bug reports. Or to support our design discussions with relevant data from real users. All of this can only be achieved with a fundamental change in the way we do telemetry. Existing alternatives, such as the opt-out Endless OS metrics system, also do not allow enough user insights and share the problem that the data leaves the property of the data owners, the users. That is why we have been working on the privact ecosystem, which allows all the insights described above, while fully preserving users’ privacy. And because of that, we can not only ask for more intimate data, but we can also make participation opt-out and so get data from substantially more people. And why is that? Because with the privact ecosystem, there is no technical possibility that any individual’s personal data can ever be shared remotely. Never. But it would finally enable good user-data-driven UX work. For the sake of KDE and our users. Please also join the discussion about this issue on invent.kde.org.
  • Welcome to My Blog (2024/11/24 00:00)
    Heyho together! I am from now on writing my posts on GitHub pages. Apart from it being useful to keep my posts versioned using git, I had some issues with my previous blog. The idea was to simply use write.as and publish a post from time to time. This worked well except for more than a month ago me wanting to do a post about my KRunner plugins. It naturally contained a lot of links and thus the publishing was prevented and even the account blocked due to apparent spam. There was no response via mail for over a month. So here we are not on another blog where I hopefully write more often and also be able to spent more time on KDE!
  • This Week in Plasma: Battery Charge Cycles in Info Center (2024/11/23 04:00)
    This week we of course continued the customary bug-fixing, but got some nice new features and UI improvements too! Let me also remind folks about KDE's end-of-year fundraiser. We're 84% of the way to our goal, and it would be amazing to get all the way to 100% before December! Then we can focus on those stretch goals from December to January. Anyway, enough of the sales pitch, back to the free stuff! And isn't that amazing? Let's zoom out a bit here and remind ourselves just how incredible it is that this software is made available for free, with no contract or license agreement, to everyone. To you, to your school, to community organizations, businesses, governments, even our direct competitors to study and examine (which goes both ways, and helped me fix a bug in GTK this week; read on for details). It's kind of wild, if you think about it. But, here we are, and we want to keep on being a light in a tech world that sometimes seems to be darkening. Help us keep that light glowing! Notable New Features Info Center now shows your battery's cycle count. (Kai Uwe Broulik, 6.3.0. Link 1 and link 2) Added the ability to convert to and from the CFP franc currency in KRunner-powered searches. (someone going by the pseudonym "Mr. Athozus", Frameworks 6.9. Link) Notable UI Improvements Middle-clicking on the Brightness and Color widget no longer does anything when the Night Light hasn't been turned on. (Elias Probst, 6.2.4. Link) Improved some sources of visual awkwardness in System Monitor: now the loading screen no longer sometimes has a scrollbar; and clicking something selected in a table view visibly de-selects it. (Akseli Lahtinen, 6.2.4. Link 1 and link 2) Improved the way Discover presents external links to be less visually heavy. (Nate Graham, 6.3.0. Link) Re-did the "Apply Plasma Settings" dialog on System Settings' Login Screen page to look better and more consistent with other dialogs in QML-based software these days. (Oliver Beard, 6.3.0. Link) Notable Bug Fixes Fixed a regression in the Power and Battery widget that broke its ability to notice that power-profiles-daemon was installed instead of TLP after some porting work. (Méven Car, 6.2.4. Link) Fixed a regression that caused the Disks & Devices widget to not show the correct actions for non-mounted optical discs after some porting work. (Kai Uwe Broulik, 6.2.4. Link) Fixed an issue that caused screenshots and screen recordings to look too dim while using HDR mode. (Xaver Hugl, 6.2.4. Link) Fixed a case where Plasma could crash when logging in with an external screen connected to a laptop via HDMI. (Marco Martin, 6.2.4. Link) Fixed a rare case where Plasma could crash when copying data to the clipboard. (David Edmundson, 6.3.0. Link) Fixed a bug affecting people using panels in "Fit content" mode that could, under certain circumstances, cause them to be too small until you manually entered Edit Mode once. (Niccolò Venerandi, 6.3.0, Link) KWin now behaves better when you plug in a weird defective TV that asks for an inappropriate resolution. (Xaver Hugl, 6.3.0. Link) Discover once again shows update-able "Get New [Stuff]" content on the updates page. (Harald Sitter, 6.3.0. Link) XWayland-using apps can no longer crash KWin with ludicrously large icon sizes. (David Redondo, Frameworks 6.9. Link) Fixed a bizarre and annoying bug that caused text displayed at fractional scale factors in Plasma and QtQuick-based KDE apps and to look, for lack of a better term, wobbly. Wobbly windows good, wobbly text bad! Text has now been put on the straight and narrow. (David Edmundson, Frameworks 6.9. Link) Fixed a strange Qt bug that manifested as Plasma notifications sometimes being vertically squished. (David Edmundson, Qt 6.8.1. Link) GTK 3 apps once again have the correct icon for their spinboxes' "decrease the value" buttons when using the Breeze icon theme or any other icon theme whose list-remove icon isn't a minus sign. (Nate Graham, GTK 3.24.44. Link) Other bug information of note: 2 Very high priority Plasma bugs (same as last week). Current list of bugs 35 15-minute Plasma bugs (down from 36 last week). Current list of bugs 94 KDE bugs of all kinds fixed over the last week. Full list of bugs Notable in Performance & Technical The feature to let you record the screen without re-approval now also works for virtual outputs. Additionally, virtual outputs now have a better name that indicates which app records them. (David Redondo, 6.3.0. Link) Fixed a memory leak caused by having a lot of OverlayFS mounts, e.g. from Docker containers. (Joshua Goins, Frameworks 6.9. Link) How You Can Help KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable. You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either. Many other opportunities exist: Filter and confirm bug reports, maybe even identify their root cause Contribute designs for wallpapers, icons, and app interfaces Design and maintain websites Translate user interface text items into your own language Promote KDE in your local community …And a ton more things! You can also help us by donating to our yearly fundraiser! Any monetary contribution — however small — will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world. To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.
  • Web Review, Week 2024-47 (2024/11/22 12:49)
    Let’s go for my web review for the week 2024-47. The Big Data Center Water Problem Tags: tech, hardware, ecology, economics, energy, water We always think about the energy consumption, but large data centers gobble billion liters of water too. This would need to be improved. https://www.asianometry.com/p/the-big-data-center-water-problem Relativty an Open-source VR headset for $200 Tags: tech, vr, hardware, foss Nice to see open hardware for VR hitting such a price point. https://www.relativty.com/ Bridgy Fed Tags: tech, social-media, fediverse, tools You’re on the fediverse and you want to reach out bluesky users? This might be the right tool for you (unclear if it’ll scale yet though). At least if and when Bluesky turns bad, people will know where to reach friends next. https://fed.brid.gy/ Why Not Bluesky Tags: tech, social-media, business, politics Excellent post showing reasons to be skeptical about Bluesky’s future. Despite all their likely sincere claims I don’t see how they’ll escape enclosure and enshittification when their sketchy VCs will want to see money back. https://www.tbray.org/ongoing/When/202x/2024/11/15/Not-Bluesky Elon Musk’s X is hemorrhaging users to Threads and Bluesky Tags: tech, social-media, politics, twitter Sad to see people predominantly jumping from Twitter to other tech moguls walled gardens. This feels more and more like a missed opportunity for the fediverse. That said I’m amazed at how efficient Musk has been at killing the network effect of his platform. This proves it’s actually doable. https://fortune.com/2024/11/14/x-elon-musk-leaving-election-trump-threads-bluesky-social-media-fragmentation/ A computational analysis of potential algorithmic bias on platform X during the 2024 US election Tags: tech, social-media, politics, twitter This is what we get for refusing to regulate social media and for not auditing their algorithms. Their owners can game and bias the platforms as they see fit for their own gains. They became massive forces of manipulation in the process. https://eprints.qut.edu.au/253211/ ChatGPT is Slipping Tags: tech, ai, machine-learning, gpt, vendor-lockin Good reminder that models shouldn’t be used as a service except maybe for prototyping. This has felt obvious to me since the beginning of this hype cycle… but here we are people are falling in the trap today. https://adriano.fyi/posts/chatgpt-is-slipping/ FireDucks : Pandas but 100x faster Tags: tech, python, performance, pandas, data, data-science OK, the numbers are indeed impressive. And it’s API is fully compatible apparently, looks like a good replacement if you got Pandas code around. https://hwisnu.bearblog.dev/fireducks-pandas-but-100x-faster/ Seer - a gui frontend to gdb Tags: tech, tools, debugging Looks like a nice tool. Maybe it’ll replace my trusty cgdb in some cases. https://github.com/epasveer/seer Retrofitting spatial safety to hundreds of millions of lines of C++ Tags: tech, c++, security Will we see more deployments of C++ standard library with bound checking by default? It definitely looks tempting. https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html?m=1 Upcoming hardening in PHP Tags: tech, php, security Seeing the amount of PHP code open on the internet, it’s indeed important to harden the runtime (at long last). https://dustri.org/b/upcoming-hardening-in-php.html AAA - Analytical Anti-Aliasing Tags: tech, graphics, gpu Really nice in depth post. Everything you ever wanted to know about antialiasing but didn’t dare asking. https://blog.frost.kiwi/analytical-anti-aliasing/ I don’t have time to learn React Tags: tech, framework, career, learning Good advice, no one should be a “React developer”. Make sure you learn more fundamental skills. https://www.keithcirkel.co.uk/i-dont-have-time-to-learn-react/ Going a Little Further Tags: tech, craftsmanship, learning If you’re just doing the minimum to deal with a task to “mark it done” you’re probably not doing enough and missing out on learning opportunities. https://edanparker.hashnode.dev/going-a-little-further What Is a Senior Engineer, Anyway? Tags: tech, career, learning, engineering This can change from organization to organization. This post proposes a career ladder which will work in some contexts. What’s clear is that it’s all about scope and impact. https://matt.blwt.io/post/what-is-a-senior-engineer-anyway/ Real Ways To Maintain Your Technical Edge As An Engineering Manager Tags: tech, engineering, management, learning Interesting tips to keep learning on the technical side of the job as you get more managerial responsibilities. https://medium.com/engineering-managers-journal/real-ways-to-maintain-your-technical-edge-as-an-engineering-manager-25652fa1495c Bye for now!
  • Krita for Android Update (2024/11/22 00:00)
    We have updated Krita for Android and ChromeOS in the Google Play Store to 5.2.8, an Android/ChromeOS-only emergency release. This release fixes startup problems that happened on some devices with 5.2.6. Krita 5.2.8 for Android is now available both for beta-track users as well as in the "stable" release track. Note, however, that we still recommend treating Krita on Android as a beta release that might have bugs that impair your work, as well as a user interface that is not optimized for touch devices.
  • This Week in KDE Apps: Python bindings (2024/11/18 07:20)
    Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps. This week, we release the first beta of what will become KDE Gear 24.12.0. If your distro provides testing package, please help with testing. Meanwhile, and as part of the 2024 end-of-year fundraiser, you can "Adopt an App" in a symbolic effort to support your favorite KDE app. This week, we are particularly grateful to George Fakidis, tmpod, Paxriel for showing their support for Okular; Ian Lohmann, Anthony Perrett, Linus Seelinger and Nils Martens for Dolphin, Erik Bernoth for Arianna and Daniel Lloyd-Miller and mdPlusPlus for KDE Connect. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world. So consider donating today! Getting back to all that's new in the KDE App scene, let's dig in! Global Changes KWidgetsAddons, a collection of add-on widgets for QtWidgets, and KUnitConversion now have Python bindings. (Manuel Alcaraz Zambrano, KDE Frameworks 6.9.0. Link 1 and link 2) Call to ActionKDE has over 70 frameworks, we need your help to add Python bindings to the relevant remaining frameworks. See metatask. The "About" page of Kirigami applications now provides helpful "Copy" button that lets you copy system information, which can be useful when filling a bug report. The same feature was also implemented for QtWidgets-based applications. (Carl Schwan, Kirigami Addons 1.6.0 and KDE Frameworks 6.9. Link for Kirigami apps and link for QtWidget apps) Additionally Joshua added icons to the "Getting involved", "Donate", and other actions for the Kirigami version. (Joshua Goins, Kirigami Addons 1.6.0. Link) The "share" context menu of many applications can now copy the data to clipboard. (Aleix Pol Gonzalez, Frameworks 6.9.0. Link) Alligator RSS feed reader Alligator now lets you bookmark your favorite posts. (Soumyadeep Ghosh, 25.04.0. Link) The selected feed will also now be highlighted correctly and the text of an article can now be selected and copied. (Soumyadeep Ghosh, 24.12.0. Link and link 2) AudioTube YouTube Music app Fix parsing certain playlists. (Eren Karakas, 24.12.0. Link) Clock Keep time and set alarms Fix a crash of the Clock Daemon when waking up. (Devin Lin, 24.12.0. Link) digiKam Photo Management Program Digikam 8.5.0 is out! This releases improves the Face Management system, adds colored labels to identify important items, increases its list of supported languages to 61, and fixes over 160 bugs. Read the full announcement Dolphin Manage your files When Dolphin is started on a location which does not report a storage size (for example "remote", or "bluetooth") the status bar will no longer pointlessly show a empty storage size indicator for a split second before hiding it again. (Felix Ernst, 25.04.0. Link) Gwenview Image Viewer We fixed a bug where indexed-color or monochrome-palette images (e.g. from pngquant) would render with garbled colors or black and white noise when zoomed. (Tabby Kitten, 24.12.0. Link) KDE Itinerary Digital travel assistant Itinerary's Matrix integration now uses encrypted Matrix rooms by default and Itinerary can now do session verification, which is going to be mandatory in the future. (Volker Krause, 25.04.0. Link 1 and link 2). Volker also fixed various small issues with the Matrix integration (too many to list them all) and backported these fixes for the 24.12.0 release. Kate Advanced Text Editor It is now possible to disable the autocompletion popup which appears when you are just typing. (Waqar Ahmed, 25.04.0. BUG 476620) KCalc Scientific calculator We redesigned the bit edit feature of KCalc. (Tomasz Bojczuk, 25.04.0. Link) Kdenlive Video editor Several Kdenlive effects got the capacity to animate their parameters with keyframes. (Bernd Jordan, Julius Künzel, and Massimo Stella, 25.04.0. Link 1, link 2, link 3 and link 4) Keysmith Two-factor code generator for Plasma Mobile and Desktop Keysmith can now import OTPs from andOTP's backup files. (Martin Reboredo, 25.04.0, Link) Akonadi Background service for KDE PIM apps Fixed a crash when migrating old iCal entries in Akonadi to be properly tagged. (Daniel Vrátil, 24.12.0. Link) Fix style of configuration dialogs for Akonadi agents on platforms other than Plasma. (Laurent Montel, 24.12.0. Link) Port away IMAP resource from KWallet and use QtKeychain instead. This ensures your email's credentials are correctly stored and retrieved on other platforms like Windows. (Carl Schwan, 24.12.0. Link) KMail A feature-rich email application Reduce temporary memory allocation by 25% when starting KMail. If you are curious how, the merge requests are super interesting. (Volker Krause, 24.12.0. Link 1, link 2, and link 3) Kodaskanna A multi-format 1D/2D code scanner Kodaskanna was ported to Qt6/KF6. (Friedrich W. H. Kossebau. Link) KRDC Connect with RDP or VNC to another computer We added various options related to security of the RDP connection and the redirection of smartcards to the remote host. (Roman Katichev, 25.04.0. Link) Kup Backup scheduler for KDE's Plasma desktop We rephrased all yes/no buttons in Kup's notifications to use more descriptive names. (Nate Graham, 25.04.0. Link) NeoChat Chat on Matrix When receiving stickers with NeoChat, they will be displayed with a more appropriate size (256x256px). Same with custom emoticons, which are now displayed with the same height as the rest of the message. (Joshua Goins, 24.12.0. Link) We don't show the filename underneath images anymore, and also make the download file dialog fill out the filename by default. (Joshua Goins, 24.12.0. Link 1 and link 2) We redesigned the list of accounts in the welcome page. Now we show the display name and avatar of your accounts there, which makes it easier to recognize. (Joshua Goins, 24.12.0. Link) We rearranged the room, file and message context menus. (Joshua Goins, 24.12.0. Link 1 and link 2) Tokodon Browse the Fediverse Add "Open in Browser" action to profile pages. (Sean Baggaley, 24.12.0. Link) Fix various issues on Android, most prominently ensure all icons required by Tokodon are packaged correctly. (Joshua Goins, 24.12.0) ... And Everything Else This blog only covers the tip of the iceberg! If you’re hungry for more, check out Nate's blog about Plasma and be sure not to miss his This Week in Plasma series, where every Saturday he covers all the work being put into KDE's Plasma desktop environment. For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors. Get Involved The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable. You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things. You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world. To get your application mentioned here, please ping us in invent or in Matrix. Thanks to Tobias Fella and Michael Mischurow for the proofreading.
  • Testing application first use experience (2024/11/16 10:15)
    When working on an application it’s not uncommon to be testing with your own configuration and data, and often more in a power-user setup of that application. While that has advantages it’s easy to lose sight of how the application looks and behaves when first opened in a clean environment. Testing in a clean environment Testing the first use experience is technically easy, you just have to delete the entire application state and configuration, or create a new user account. However that’s very cumbersome and thus wont be done regularly. Fortunately there are more convenient and less invasive shortcuts. Isolated XDG environment For many applications we get very far already by separating the XDG directories. That includes configuration files, application data and state as well as cached data. This means creating four new directories and pointing the following environment variables to one of those: XDG_CACHE_HOME (cached data) XDG_CONFIG_HOME (configuration files) XDG_DATA_HOME (application data) XDG_STATE_HOME (application state) Running an application in such an environment will make it not see any of its existing state and configuration (without destroying that). That is, as long as the entire state and configuration is actually stored in those locations. A somewhat common exception is credential storage in a platform service like Secret Service or KWallet. Those wont be isolated and depending on the application you might not get a clean first use state or you might be risking damaging the existing state. Multi-instance Akonadi Other services used by an applications might need special attention as well. A particularly complex one in this context is Akonadi, as it contains a lot of configuration, state and data. Fortunately Akonadi has built-in support for running multiple isolated instances for exactly that reason. All we need is setting the AKOANDI_INSTANCE environment variable to a unique name and we get our own separated instance. Automation Given the above building blocks we can create a little wrapper script that launches a given application in a clean ephemeral environment: import os import subprocess import sys import tempfile xdgHome = tempfile.TemporaryDirectory(prefix='testing-') for d in ['CACHE', 'CONFIG', 'DATA', 'STATE']: os.mkdir(os.path.join(xdgHome.name, d)) os.environ[f"XDG_{d}_HOME"] = os.path.join(xdgHome.name, d) os.environ['AKONADI_INSTANCE'] = 'testing' subprocess.call(sys.argv[1:]) subprocess.call(['akonadictl', '--instance', 'testing', 'stop', '--wait']) xdgHome.cleanup() I’ve been using this on Itinerary since some time, and it became additionally useful with the introduction of Appium-based UI tests, as those run in a similarly isolated environment. If you need something slightly longer living, launching a shell with this wrapper is also possible. In that you then can launch your application multiple times, e.g. for testing whether changes are persisted correctly. Limitations There’s one unsolved issue with how this isolates applications though: D-Bus. Applications claiming a unique D-Bus service name wont be able to run alongside a second instance this way, so you will have to shut down an already running instance during testing. In most cases that’s not a big deal, but quite inconvenient when working on one of your main communication apps. I looked at two possible ways to isolate D-Bus (both relatively easy to integrate in a wrapper script): xdg-dbus-proxy: This can limit access to certain host services, but has no way of having a second isolated instance of a service. Running a separate D-Bus session bus: Having a second instance of a service is no problem then, but we have no way to access host services anymore (which means also no credential storage service etc). Neither of those help with the applications I work on, but they might nevertheless be viable in other scenarios. Overall, the more entangled an application is in platform state, the harder it becomes to achieve this kind of isolation, and the more you’ll need to customize how to do this. It quickly pays off though, an easy and always available way to quickly test things in a clean state has been super helpful.
  • This Week in Plasma: Discover and System Monitor with a side of WINE (2024/11/16 04:00)
    This week no major new features were merged, so we focused on polishing up what we already have and fixing bugs. That's right, Phoronix readers; we do in fact regularly do this! And let me also remind folks about our ongoing 2024 fundraiser: in it, you can adopt a KDE app to have your name displayed as an official supporter of that app. If you love KDE or its apps, this is a great way to show your appreciation. We're almost halfway to our year-end goal with 6 weeks to go. That's not bad, but I know we can get there quickly and unlock the stretch goals. So check it out! And after that, check out this stuff too: Notable UI Improvements When using a color scheme with Header colors such as Breeze Light and Breeze Dark, the color scheme editor no longer confusingly offers the opportunity to edit the Titlebar colors, which aren't used for such color schemes. Instead, you need to edit the Header colors. (Akseli Lahtinen, 6.2.4. Link) The System Tray no longer shows tooltips for items in the hidden/expanded view that would be identical to the visible text of the item being hovered with the pointer. (Nate Graham, 6.2.4. Link) The first time you use Plasma to create a network hotspot, it gets assigned a random password by default, rather than no password. (Albert Astals Cid, 6.3.0. Link) In KRunner-powered searches, you can now jump between categories using the Page Up/Page Down and Ctrl+Up/Ctrl+Down. (Alexander Lohnau, 6.3.0. Link 1 and link 2) Implemented support for the "Highlight changed settings" feature for most of System Settings' Drawing Tablet page. (Joshua Goins, 6.3.0. Link) Discover now shows installation progress more accurately when downloading an app that also requires downloading any new Flatpak runtimes. (Harald Sitter, 6.3.0. Link) When you have multiple Brightness and Color widgets, adjusting the screen brightness in one of them now mirrors this change to all of them, so they stay in sync. (Jakob Petsovits, 6.2.4. Link) Added a new symbolic icon for WINE, which allows the category that WINE creates in Kickoff to use a symbolic icon that matches all the others. Also improved the existing colorful icon to better match the upstream branding. (Andy Betts, Frameworks 6.9. Link) Notable Bug Fixes Speaking of WINE, we fixed a recent regression that caused WINE windows to display black artifacts around them. (Vlad Zahorodnii, 6.2.4. Link) The feature to save a customized Plasma System Monitor widget as a new preset once again works. And we added an autotest to make sure it doesn't break again! (Arjen Hiemstra, 6.2.4. Link) Fixed an extremely strange issue that could cause an actively focused XWayland window to lose the ability to receive keyboard and pointer input when the screen was locked using the Meta+L keyboard shortcut. (Adam Nydahl, 6.2.4. Link) Fixed a recent regression that caused System Monitor to stop gathering statistics for some ARM-based CPUs. (Hector Martin, 6.2.4. Link) Discover once again allows you to update update-able add-ons acquired using the "Get New [thing]" windows, which had gotten broken in the initial release of Plasma 6. (Harald Sitter, 6.3.0. Link 1 and link 2) Fixed a case where the real session restoration feature in the X11 session wouldn't restore everything correctly. (David Edmundson, 6.3.0. Link) Fixed a visual glitch affecting Kirigami's SwipeListItem component which would give it the wrong background color when using Breeze Dark and other similar color schemes, and could be prominently seen on Discover's Settings page. (Marco Martin, Frameworks 6.9. Link) Fixed a major Qt regression that caused the lock and login screens to become non-functional under various circumstances. (Olivier De Cannière, Qt 6.8.1, but distros will be back-porting it to their Qt 6.8.0 packages soon, if they haven't already. Link) Fixed a Qt regression that caused the error dialog on "Get New [Thing]" windows to be visually broken until the window was resized. (David Edmundson, Qt 6.8.1. Link) Fixed another Qt regression that caused clicking on a virtual desktop to switch to it in KWin's overview effect to stop working after you use the Desktop Cube at least once. (David Edmundson, Qt 6.8.1. Link) Other bug information of note: 2 Very high priority Plasma bugs (down from 4 last week). Current list of bugs 36 15-minute Plasma bugs (down from 37 last week). Current list of bugs 119 KDE bugs of all kinds fixed over the last week. Full list of bugs Notable in Performance & Technical We've re-enabled the ability to turn on HDR mode when using version 565.57.1 or later of the NVIDIA driver for NVIDIA GPU users, or version 6.11 or later of the Linux kernel for Intel GPU users. These are the versions of those pieces of software that have fixed the worst bugs affecting HDR on those GPUs. (Xaver Hugl, 6.2.4. Link 1 and link 2) Fixed a performance issue that affected users of multi-monitor setups while using a VR headset. (Xaver Hugl, 6.2.4. Link) Reduced the slowness and lag that you could experience when drag-selecting over a hundred items on the desktop. (Akseli Lahtinen, 6.3.0. Link) Implemented support for the xdg_toplevel_icon Wayland protocol in KWin. (David Edmundson, 6.3.0. Link) How You Can Help KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable. You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either. Many other opportunities exist: Filter and confirm bug reports, maybe even identify their root cause Contribute designs for wallpapers, icons, and app interfaces Design and maintain websites Translate user interface text items into your own language Promote KDE in your local community …And a ton more things! You can also help us by donating to our yearly fundraiser! Any monetary contribution — however small — will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world. To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.
  • digiKam 8.5.0 is released (2024/11/16 00:00)
    Dear digiKam fans and users, After five months of active maintenance and many weeks triaging bugs, the digiKam team is proud to present version 8.5.0 of its open source digital photo manager. Generalities More than 160 bugs have been fixed and we spent a lot of time contacting users to validate changes in pre-release versions to confirm fixes before deploying the program to production.
  • Web Review, Week 2024-46 (2024/11/15 15:47)
    Let’s go for my web review for the week 2024-46. No GPS required: our app can now locate underground trains Tags: tech, mobile, sensors, gps, transportation Now this is definitely a smart trick to estimate position in tunnels. https://blog.transitapp.com/go-underground/ OpenAI, Google and Anthropic Are Struggling to Build More Advanced AI - Bloomberg Tags: tech, ai, machine-learning, gpt More signs of the generative AI companies hitting a plateau… https://www.bloomberg.com/news/articles/2024-11-13/openai-google-and-anthropic-are-struggling-to-build-more-advanced-ai Releasing the largest multilingual open pretraining dataset Tags: tech, ai, machine-learning, gpt, data, copyright, licensing It shouldn’t be, but it is a big deal. Having such training corpus openly available is one of the big missing pieces to build models. https://simonwillison.net/2024/Nov/14/releasing-the-largest-multilingual-open-pretraining-dataset/#atom-blogmarks Everything I’ve learned so far about running local LLMs Tags: tech, ai, machine-learning, gpt, foss This is an interesting and balanced view. Also nice to see that local inference is really getting closer. This is mostly a UI problem now. https://nullprogram.com/blog/2024/11/10/ When Machine Learning Tells the Wrong Story Tags: tech, cpu, hardware, security, privacy, research Fascinating research about side-channel attacks. Learned a lot about them and website fingerprinting here. Also interesting the explanations of how the use of machine learning models can actually get in the way of proper understanding of the side-channel really used by an attack which can prevent developing actually useful counter-measures. https://jackcook.com/2024/11/09/bigger-fish.html Abusing Ubuntu 24.04 features for root privilege escalation Tags: tech, linux, security Nice chain of attacks. This shows more than one vulnerability needs to be leveraged to lead to root access. This provides valuable lessons. https://snyk.io/blog/abusing-ubuntu-root-privilege-escalation/ Way too many ways to wait on a child process with a timeout Tags: tech, unix, linux, system The title says it all. This is very fragmented and there are several options to fulfill the task. Knowing the tradeoffs can be handy. https://gaultier.github.io/blog/way_too_many_ways_to_wait_for_a_child_process_with_a_timeout.html The CVM Algorithm Tags: tech, databases, algorithm This is a nice view into how a query planner roughly works and a nice algorithm which can be used internally to properly estimate the number of distinct values in a column. https://buttondown.com/jaffray/archive/the-cvm-algorithm/ Mergiraf Tags: tech, version-control, git, tools, conflict Looks like a nice way to improve handling of merge conflicts. I’ll test this one out. https://mergiraf.org/ Opposite of Cloud Native is? Tags: tech, cloud, complexity, vendor-lockin, self-hosting Definitely a good post. No you don’t have to go all in with cloud providers and signing with your blood. It’s often much more expensive for little gain but much more complexity and vendor lock in. https://mkennedy.codes/posts/opposite-of-cloud-native-is-stack-native/ Booleans Are a Trap Tags: tech, design, type-systems Avoiding boolean parameters in library APIs should be a well known advice by now. Still they should probably be avoided when modeling domain types as well. https://katafrakt.me/2024/11/09/booleans-are-a-trap/ Complex for Whom? Tags: tech, design, complexity Good musing about complexity. Very often we need to move it around, the important question is where should it appear. For sure you don’t want it scattered everywhere. https://notes.billmill.org/link_blog/2024/11/Complex_forWhom.html What makes concurrency so hard? Tags: tech, distributed, complexity Interesting reasoning about what is hard in systems with concurrency. It’s definitely about the state space of the system and the structure of that space. https://buttondown.com/hillelwayne/archive/what-makes-concurrency-so-hard/ Algorithms we develop software by Tags: tech, programming, craftsmanship, engineering, problem-solving Interesting musing on the heuristics we use when solving problems. There are good advices in there to make progress and become a better developer. https://grantslatton.com/software-pathfinding Bye for now!
  • KDE Gear 24.12 Beta Testing (2024/11/15 14:26)
    KDE Gear is our release service for many apps such as mail and calendaring supremo Kontact, geographers dream Marble, social media influencing Kdenlive and dozens of others. KDE needs you to test that your favourite feature has been added and your worst bug has been squished. You can do this with KDE neon Testing edition, built from the Git branches which get used to make releases from. You can download the ISO and try it on spare hardware or on a virtual machine to test them out. But maybe you don’t want the faff of installing a distro. Containers give an easier way to test thanks to Distrobox. Install Distrobox on your normal computer. Make sure Docker or podman are working. Download the container with distrobox create -i invent-registry.kde.org/neon/docker-images/plasma:testing-all Then start it withdistrobox enter all-testingAnd voila it will mount the necessary bits to get Wayland connections working and keep your home directory available and you can run say kontact and test the beta for the mail app.
  • Conclusion of KDE and Google Summer of Code 2024 (2024/11/15 00:00)
    All of KDE's Google Summer of Code (GSoC) projects are complete. GSoC is a program where students or people who are new to Free and Open Source software make programming contributions to an open source project. This post summarizes the outcomes of KDE project participating in GSoC 2024. Projects Arianna Port Arianna to Foliate-js: Ajay Chauhan worked on porting Arianna from epub.js to use Foliate-js. The work will hopefully be merged soon. A screenshot of Arianna using Foliate-js to render a table of contents (Courtesy of Ajay Chauhan, CC BY-NC-SA 4.0) Frameworks Python bindings for KDE Frameworks: Manuel Alcaraz Zambrano, implemented Python bindings for KWidgetAddons, KUnitConversion, KCoreAddons, KGuiAddons, KI18n, KNotifications, and KXmlGUI. This was done using Shiboken. In addition, Manuel wrote a tutorial on how to generate Python bindings using Shiboken. The complicated set of merge requests are still being reviewed, and Manuel continues to interact with the KDE community. Unit conversion example created using Python and KUnitConversion (Courtesy of Manuel Alcaraz Zambrano, CC BY-NC-SA 4.0) KDE Connect Update SSHD library in KDE Connect Android app The main aim of ShellWen Chen's project was to update Apache Mina SSHD from 0.14.0 to 2.12.1. The older version has a few listed vulnerabilities. The newer library required additional code to enable it to work on older Android phones, up to Android API 21. KDE Games Implementing a computerized opponent for the Mancala variant Bohnenspiel: João Gouveia created Mankala engine, a library to enable easy creation of Mancala games. The engine contains implementations for two Mancala games, Bohnenspiel and Oware. Both games contain computerized opponents, João also started on a QtQuick graphical user interface. The games are functional, but additional investigation on computerized opponents may help improve their effectiveness. Image of text user interface for Bohnenspiel (Courtesy of João Gouveia, CC BY-SA 4.0) Kdenlive Improved subtitling support for Kdenlive: Subtitling support has been improved for Kdenlive. Chengkun Chen added support for using the Advanced SubStation (ASS) file format and for converting SubRip files to ASS files. To support this format, Chengkun Chen also made subtitling editor improvements. The work has been merged in the main repository. Documentation has been written, and will hopefully be merged soon. The new Style Editor Widget (Courtesy of Chengkun Chen, CC BY-SA 4.0) Krita Creating Pixel Perfect Tool for Krita: Ken Lo worked on implementing Pixel Perfect lines in Krita. As explained by Ricky Han, such algorithms remove corner pixels from L shaped blocks and ensure the thinnest possible line is 1 pixel wide. Implementing such algorithms well is of use not only in Krita, but also in rendering web graphics where user screen resolutions can vary significantly. The algorithm was implemented to work in close to real time while lines are drawn, rather than as a post processing step. Ken Lo's work has been merged into Krita. An image showing that pixel perfect lines are obtained most of the time (Courtesy of Ken Lo, CC BY 4.0) Labplot Improve Python Interoperability with LabPlot Israel Galadima worked on improving Python support in LabPlot. Shiboken was used for this and it is now possible to call some of LabPlot functions from Python and integrate these into other applications. An image of a plot produced using Python bindings to Labplot (Courtesy of Israel Galadima, CC BY-SA 4.0) 3D Visualization for LabPlot: Kuntal Bar added 3D graphing capabilities to LabPlot. This was done using QtGraphs. The work has yet to be merged, but there are many nice examples of 3D plots for bar charts, scatter and surface plots. A 3D bar chart (Courtesy of Kuntal Bar, MIT license) Okular Forms/Javascript support improvement for Okular: Pratham Gandhi worked on improving the forms/Javascript support in Okular. Around 25 requests have been merged to improve various features, some in the backend and some directly visible, such as fixing the size of the radio buttons or check boxes, or the one pictured below to improve the handling of floating numbers in different locales. An image of showing an incorrect total sum calculation fixed during GSoC (Courtesy of Pratham Gandhi, CC BY-SA 4.0) Snaps Improving Snap Ecosystem in KDE: Snaps are self contained linux application packging formats. Soumyadeep Ghosh worked on improving the tooling necessary to make KDE applications easily available in the Snap Store. In addition, Soumyadeep improved packaging of a number of KDE Snap packages, and packaged MarkNote. Finally, Soumyadeep created Snap KCM, a graphical user interface to manage permissions that Snaps have when running. Snap KCM (Courtesy of Soumyadeep Ghosh, CC BY-NC-SA 4.0) Next Steps The 2024 GSoC period is finally over for KDE. A big thank you to all the mentors and contributors who have participated in GSoC! We look forward to your continuing participation in free and open source software communities and in contributing to KDE.
  • MinGW and Side-by-Side Manifests (2024/11/14 15:44)
    Qt Creator 14 has removed support for its Python 2 pretty printers.
  • Presenting privact at KDE Akademy (2024/11/14 15:25)
    Earlier this year I had the pleasure of visiting the KDE Akademy 2024 in Würzburg. It had been a few years since my last visit to Akademy and it was great to see old friends and meet new ones. Besides socializing, my main task was to talk to as many KDE people as possible about the privact project and its integration into KDE. Knowing the KDE community, not surprisingly this resulted in lots of interesting discussions. Most importantly, I gave a talk about the current state of privact’s integration with KUserFeedback. If you missed it, here is the recording: As a follow-up, we had 2 BoFs on Monday to discuss the next steps. Felix was kind enough to join me to provide more technical developer insights than I can give. As a first teaser for you: In the short term, the privact approach will allow KDE to do proper user research, thereby enabling us to do data-driven UX without compromising user privacy. In the longer term, privact aims to restore digital privacy for everyone, even outside of KDE, even outside of FLOSS. You can learn more in upcoming posts or on the privact homepage. The individual feedback on the privact approach during Akademy was very good, which is why we now want to start communicating with the larger KDE community. So this post is not only to report about my attendance at Akademy, but also to start blogging again on Planet KDE and to check if the aggregation works. Hello World Planet KDE!
  • Qt Creator 15 RC released (2024/11/14 12:45)
    We are happy to announce the release of Qt Creator 15 RC!
  • Metafont, MetaPost and Malayalam font (2024/11/14 12:21)
    At the International TeX Users Group Conference 2023 (TUG23) in Bonn, Germany, I presented a talk about using Metafont (and its extension Metapost) to develop traditional orthography Malayalam fonts, on behalf of C.V. Radhakrishnan and K.H. Hussain, who were the co-developers and authors. And I forgot to post about it afterwards — as always, life gets in between. In early 2022, CVR started toying with Metafont to create a few complicated letters of Malayalam script and he showed us a wonderful demonstration that piqued many of our interest. With the same code base, by adjusting the parameters, different variations of the glyphs can be generated, as seen in a screenshot of that demonstration: 16 variations of the same character ഴ generated from same Metafont source. Hussain, quickly realizing that the characters could be programmatically assembled from a set of base/repeating components, collated an excellent list of basic shapes for Malayalam script. Excerpts from the Malayalam character basic shape components documented by K.H. Hussain. I bought a copy of ‘The Metafontbook’ and started learning and experimenting. We found soon that Metafont, developed by Prof. Knuth in the late 1970’s, generates bitmap/raster output; but its extension MetaPost, developed by his Ph.D. student John Hobby, generates vector output (postscript) which is required for opentype fonts. We also found that ‘Metatype1’ developed by Bogusław Jackowski et al. has very useful macros and ideas. We had a lot of fun programmatically generating the character components and assembling them, splicing them, sometimes cutting them short, and transforming them in all useful manner. I have developed a new set of tools to generate the font from the vector output (SVG files) generated by MetaPost, which is also used in later projects like Chingam font. At the annual TUG conference 2023 in Bonn, Germany, I have presented our work, and we received good feedback. There were three presentations about Metafont itself at the conference. Among others, I also had the pleasure to meet Linus Romer who shared some ideas about designing variable width reph-shapes for Malayalam characters. The video of the presentation is available in YouTube. The article was published in the TUGboat conference proceedings (volume 44): https://www.tug.org/TUGboat/tb44-2/tb137radhakrishnan-malayalam.pdf Postscript (no pun intended): after the conference, I visited some of my good friends in Belgium and Netherlands. En route, my backpack with passport, identity cards, laptop, a phone and money etc. was stolen at Liège. I can’t thank enough my friends at Belgium and back at home for their unbridled care, support and help, on the face of a terrible affliction. On the day before my return, the stolen backpack with everything except the money was found by the railway authorities and I was able to claim it just in time. I made yet another visit to the magnificent Plantin–Moretus Museum (it holds the original Garamond types!), where I myself could ink and print a metal typeset block of sonnet by Christoph Plantijn in 1575, which now hangs at the office of a good friend.
  • Setting C++ Defines with CMake (2024/11/13 09:00)
    The goal When building C++ code with CMake, it is very common to want to set some pre-processor defines in the CMake code. For instance, we might want to set the project’s version number in a single place, in CMake code like this: project(MyApp VERSION 1.5) This sets the CMake variable PROJECT_VERSION to 1.5, which we can then use to pass -DMYAPP_VERSION_STRING=1.5 to the C++ compiler. The about dialog of the application can then use this to show the application version number, like this: const QString aboutString = QStringLiteral("My App version: %1").arg(MYAPP_VERSION_STRING); QMessageBox::information(this, "My App", aboutString); Similarly, we might have a boolean CMake option like START_MAXIMIZED, which the user compiling the software can set to ON or OFF: option(START_MAXIMIZED "Show the mainwindow maximized" OFF) If it’s ON, you would pass -DSTART_MAXIMIZED, otherwise nothing. The C++ code will then use #ifdef. (We’ll see that there’s a better way.) #ifdef START_MAXIMIZED w.showMaximized(); #else w.show(); #endif The common (but suboptimal) solution A solution that many people use for this is the CMake function add_definitions. It would look like this: add_definitions(-DMYAPP_VERSION_STRING="${PROJECT_VERSION}") if (START_MAXIMIZED) add_definitions(-DSTART_MAXIMIZED) endif() Technically, this works but there are a number of issues. First, add_definitions is deprecated since CMake 3.12 and add_compile_definitions should be used instead, which allows to remove the leading -D. More importantly, there’s a major downside to this approach: changing the project version or the value of the boolean option will force CMake to rebuild every single .cpp file used in targets defined below these lines (including in subdirectories). This is because add_definitions and add_compile_definitions ask to pass -D to all cpp files, instead of only those that need it. CMake doesn’t know which ones need it, so it has to rebuild everything. On large real-world projects, this could take something like one hour, which is a major waste of time. A first improvement we can do is to at least set the defines to all files in a single target (executable or library) instead of “all targets defined from now on”. This can be done like this: target_compile_definitions(myapp PRIVATE MYAPP_VERSION_STRING="${PROJECT_VERSION}") if(START_MAXIMIZED) target_compile_definitions(myapp PRIVATE START_MAXIMIZED) endif() We have narrowed the rebuilding effect a little bit, but are still rebuilding all cpp files in myapp, which could still take a long time. The recommended solution There is a proper way to do this, such that only the files that use these defines will be rebuilt; we simply have to ask CMake to generate a header with #define in it and include that header in the few cpp files that need it. Then, only those will be rebuilt when the generated header changes. This is very easy to do: configure_file(myapp_config.h.in myapp_config.h) We have to write the input file, myapp_config.h.in, and CMake will generate the output file, myapp_config.h, after expanding the values of CMake variables. Our input file would look like this: #define MYAPP_VERSION_STRING "${PROJECT_VERSION}" #cmakedefine01 START_MAXIMIZED A good thing about generated headers is that you can read them if you want to make sure they contain the right settings. For instance, myapp_config.h in your build directory might look like this: #define MYAPP_VERSION_STRING "1.5" #define START_MAXIMIZED 1 For larger use cases, we can even make this more modular by moving the version number to another input file, say myapp_version.h.in, so that upgrading the version doesn’t rebuild the file with the showMaximized() code and changing the boolean option doesn’t rebuild the about dialog. If you try this and you hit a “file not found” error about the generated header, that’s because the build directory (where headers get generated) is missing in the include path. You can solve this by adding set(CMAKE_INCLUDE_CURRENT_DIR TRUE) near the top of your CMakeLists.txt file. This is part of the CMake settings that I recommend should always be set; you can make it part of your new project template and never have to think about it again. There’s just one thing left to explain: what’s this #cmakedefine01 thing? If your C++ code uses #ifdef, you want to use #cmakedefine, which either sets or doesn’t set the define. But there’s a major downside of doing that — if you forget to include myapp_config.h, you won’t get a compile error; it will just always go to the #else code path. We want a solution that gives an error if the #include is missing. The generated header should set the define to either 0 or 1 (but always set it), and the C++ code should use #if. Then, you get a warning if the define hasn’t been set and, because people tend to ignore warnings, I recommend that you upgrade it to an error by adding the compiler flag -Werror=undef, with gcc or clang.  Let me know if you are aware of an equivalent flag for MSVC. if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(myapp PRIVATE -Werror=undef) endif() And these are all the pieces we need. Never use add_definitions or add_compile_definitions again for things that are only used by a handful of files. Use configure_file instead, and include the generated header. You’ll save a lot of time compared to recompiling files unnecessarily. I hope this tip was useful. For more content on CMake, we curated a collection of resources about CMake with or without Qt. Check out the videos. To get into this topic even in more detail, watch this complimentary video on YouTube: About KDAB If you like this article and want to read similar material, consider subscribing via our RSS feed. Subscribe to KDAB TV for similar informative short video content. KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us. The post Setting C++ Defines with CMake appeared first on KDAB.
  • API documentation porting sprint (2024/11/13 00:00)
    It was once said over the grapevine that: "Our C++ API documentation has some issues, our QML API documentation has a lot of issues." And it was true, but that is to change soon! As you might know, there is an ongoing effort to port our documentation from Doxygen to QDoc, and you can help with that. This is a task that has been adopted by the Streamlined Application Development Experience championed by Nicolas Fella and Nate Graham as part of the KDE Goals initiative. We would like to invite you to join our porting sprint effort to finish this task. On November 14th at 1PM UTC, we'll be hanging out in the Matrix room working on this. Hope to see you there. Some prerequisites: Ability to use a terminal Extra disk space (30GB minimum) Some familiarity with APIs Check out the instructions prepared by Thiago Sueto on how to get started porting a project to QDoc.
  • Krita Monthly Update - Edition 20 (2024/11/12 00:00)
    Welcome to the @Krita-promo team's October 2024 development and community update. Development Report Android-only Krita 5.2.8 Hotfix Release Krita 5.2.6 was reported to crash on startup on devices running Android 14 or later. This was caused by issues with an SDK update required for release on the Play Store, so a temporary 5.2.7 release reverting it was available from the downloads page only. However, the issue has now been resolved and 5.2.8 is rolling out on the Play Store. Note that 5.2.8 raises the minimum supported Android version to Android 7.0 (Nougat). Community Bug Hunt Started The development team has declared a "Bug Hunt Month" running through November, and needs the community's help to decide what to do with each and every one of the hundreds of open bug reports on the bug tracker. Which reports are valid and need to be fixed? Which ones need more info or are already resolved? Read the bug hunting guide and join in on the bug hunt thread on the Krita-Artists forum. Community Report October 2024 Monthly Art Challenge Results For the "Buried, Stuck, or otherwise Swallowed" theme, 16 members submitted 18 original artworks. And the winner is… Tomorrow, contest… I’m so finished by @mikuma_poponta! The November Art Challenge is Open Now For the November Art Challenge, @mikuma_poponta has chosen "Fluffy" as the theme, with the optional challenge of making it "The Ultimate Fluffy According to Me". See the full brief for more details, and get comfortable with this month's theme. Featured Artwork Best of Krita-Artists - September/October 2024 8 images were submitted to the Best of Krita-Artists Nominations thread, which was open from September 14th to October 11th. When the poll closed on October 14th, moderators had to break a four-way tie for the last two spots, resulting in these five wonderful works making their way onto the Krita-Artists featured artwork banner: Sapphire by @Dehaf Sci-Fi Spaceship by @NAKIGRAL Oracular Oriole by @SylviaRitter Air Port by @agarad Dancing with butterflies 🦋 by @Kichirou_Okami Best of Krita-Artists - October/November 2024 Nominations were accepted until November 11th. The poll is now open until November 14th. Don't forgot to vote! Ways to Help Krita Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors. Visit Krita's funding page to see how user donations keep development going, and explore a one-time or monthly contribution. Or check out more ways to Get Involved, from testing, coding, translating, and documentation writing, to just sharing your artwork made with Krita. The Krita-promo team has put out a call for volunteers, come join us and help keep these monthly updates going. Notable Changes Notable changes in Krita's development builds from Oct. 10 - Nov. 12, 2024. Stable branch (5.2.9-prealpha): Layers: Fix infinite loop when a clone layer is connected to a group with clones, and a filter mask triggers an out-of-bounds update. (Change, by Dmitry Kazakov) General: Fix inability to save a document after saving while the image is busy and then canceling the busy operation. (bug report) (Change, by Dmitry Kazakov) Resources: Fix crash when re-importing a resource after modifying it. (bug report) (Change, by Dmitry Kazakov) Brush Presets: Fix loading embedded resources from .kpp files. (bug report, bug report, bug report) (Change, by Dmitry Kazakov) Brush Tools: Fix the Dynamic Brush Tool to not use the Freehand Brush Tool's smoothing settings which it doesn't properly support. (bug report) (Change, by Mathias Wein)(Change, by Dmitry Kazakov) Recorder Docker: Prevent interruption of the Text Tool by disabling recording while it is active. (bug report) (Change, by Dmitry Kazakov) File Formats: EXR: Possibly fix saving EXR files with extremely low alpha values. (Change, by Dmitry Kazakov) File Formats: EXR: Try to keep color space profile when saving EXR of incompatible type. (Change, by Dmitry Kazakov) File Formats: EXR: Fix bogus offset when saving EXR with moved layers. (Change, by Dmitry Kazakov) File Formats: JPEG-XL: Fix potential lockup when loading multi-page images. (Change, by Rasyuqa A H) Keyboard Shortcuts: Set the default shortcut for Zoom In to = instead of +. (bug report) (Change, by Halla Rempt) Brush Editor: Make the Saturation and Value brush options' graph and graph labels consistently agree on the range being -100% to 100% with 0% as neutral. (bug report) (Change, by Dmitry Kazakov) Unstable branch (5.3.0-prealpha): Bug fixes: Vector Layers: Fix endlessly slow rendering of vector layers with clipping masks. (bug report) (Change, by Dmitry Kazakov) Layers: Fix issue with transform masks on group layers not showing until visibility change, and visibility change of passthrough groups with layer styles causing artifacts. (bug report) (Change, by Dmitry Kazakov) Brush Editor: Fix crash when clearing scratchpad while it's busy rendering a resource-intensive brushstroke. (bug report) (Change, by Dmitry Kazakov) File Formats: EXR: Add GUI option for selecting the default color space for EXR files. (Change, by Dmitry Kazakov) Transform Tool: Liquify: Move the Move/Rotate/Scale/Offset/Undo buttons to their own spot instead of alongside unrelated options, to avoid confusion. (bug report) (Change, by Emmet O'Neill) Move Tool: Fix Force Instant Preview in the Move tool to be off by default. (CCbug report) (Change, by Halla Rempt) Pop-Up Palette: Fix lag in selecting a color in the Pop-Up Palette. (bug report) (Change, by Dmitry Kazakov) Scripting: Fix accessing active node state from the Python scripts. (bug report) (Change, by Dmitry Kazakov) Usabillity: Remove unnecessary empty space at the bottom of Transform, Move and Crop tool options. (bug report) (Change, by Dmitry Kazakov) Nightly Builds Pre-release versions of Krita are built every day for testing new changes. Get the latest bugfixes in Stable "Krita Plus" (5.2.9-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64 Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64 Have feedback? Join the discussion of this post on the Krita-Artists forum!
Enter your comment. Wiki syntax is allowed:
C E Q​ X F
 
  • news/planet/kde.txt
  • Last modified: 2021/10/30 11:41
  • by 127.0.0.1