Feeds
FSF Blogs: FSD meeting recap 2024-10-11
FSD meeting recap 2024-10-11
Steve McIntyre: Rock 5 ITX
It's been a while since I've posted about arm64 hardware. The last machine I spent my own money on was a SolidRun Macchiatobin, about 7 years ago. It's a small (mini-ITX) board with a 4-core arm64 SoC (4 * Cortex-A72) on it, along with things like a DIMM socket for memory, lots of networking, 3 SATA disk interfaces.
The Macchiatobin was a nice machine compared to many earlier systems, but it took quite a bit of effort to get it working to my liking. I replaced the on-board U-Boot firmware binary with an EDK2 build, and that helped. After a few iterations we got a new build including graphical output on a PCIe graphics card. Now it worked much more like a "normal" x86 computer.
I still have that machine running at home, and it's been a reasonably reliable little build machine for arm development and testing. It's starting to show its age, though - the onboard USB ports no longer work, and so it's no longer useful for doing things like installation testing. :-/
So...
I was involved in a conversation in the #debian-arm IRC channel a few weeks ago, and diederik suggested the Radxa Rock 5 ITX. It's another mini-ITX board, this time using a Rockchip RK3588 CPU. Things have moved on - the CPU is now an 8-core big.LITTLE config: 4*Cortex A76 and 4*Cortex A55. The board has NVMe on-board, 4*SATA, built-in Mali graphics from the CPU, soldered-on memory. Just about everything you need on an SBC for a small low-power desktop, a NAS or whatever. And for about half the price I paid for the Macchiatobin. I hit "buy" on one of the listed websites. :-)
A few days ago, the new board landed. I picked the version with 24GB of RAM and bought the matching heatsink and fan. I set it up in an existing case borrowed from another old machine and tried the Radxa "Debian" build. All looked OK, but I clearly wasn't going to stay with that. Onwards to running a native Debian setup!
I installed an EDK2 build from https://github.com/edk2-porting/edk2-rk3588 onto the onboard SPI flash, then rebooted with a Debian 12.7 (Bookworm) arm64 installer image on a USB stick. How much trouble could this be?
I was shocked! It Just Worked (TM)
I'm running a standard Debian arm64 system. The graphical installer ran just fine. I installed onto the NVMe, adding an Xfce desktop for some simple tests. Everything Just Worked. After many years of fighting with a range of different arm machines (from simple SBCs to desktops and servers), this was without doubt the most straightforward setup I've ever done. Wow!
It's possible to go and spend a lot of money on an Ampere machine, and I've seen them work well too. But for a hobbyist user (or even a smaller business), the Rock 5 ITX is a lovely option. Total cost to me for the board with shipping fees, import duty, etc. was just over £240. That's great value, and I can wholeheartedly recommend this board!
The two things that are missing compared to the Macchiatobin? This is soldered-on memory (but hey, 24G is plenty for me!) It also doesn't have a PCIe slot, but it has sufficient onboard network, video and storage interfaces that I think it will cover most people's needs.
Where's the catch? It seems these are very popular right now, so it can be difficult to find these machines in stock online.
FTAOD, I should also point out: I bought this machine entirely with my own money, for my own use for development and testing. I've had no contact with the Radxa or Rockchip folks at all here, I'm just so happy with this machine that I've felt the need to shout about it! :-)
Here's some pictures...
Real Python: The Real Python Podcast – Episode #223: Exploring the New Features of Python 3.13
Python 3.13 is here! Our regular guests, Geir Arne Hjelle and Christopher Trudeau, return to discuss the new version. This year, Geir Arne coordinated a series of preview articles with members of the Real Python team and a showcase tutorial, "Python 3.13: Cool New Features for You to Try." Christopher's video course "What's New in Python 3.13" covers the topics from the article and shows the new features in action.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
Web Review, Week 2024-41
Let’s go for my web review for the week 2024-41.
Why I use KDETags: tech, kde, foss, ux
Looks like we properly live by the “simple by default, powerful when needed” tagline. Now there are also challenges, this article gives a nice balanced view.
https://www.osnews.com/story/140538/why-i-use-kde/
Tags: tech, programming, performance, energy
Nice paper which debunks the choice of the language as an important factor for energy efficiency. The previous papers had a too simple model, this one puts forth a more complete causal model. There are many factors at play regarding energy efficiency, the programming language itself is not really one of them.
https://arxiv.org/abs/2410.05460
Tags: tech, google, android, surveillance
It’s really time to get as many people as possible out of those toxic ecosystems…
https://pluralistic.net/2024/10/08/water-thats-not-wet/#pixelated
Tags: tech, ai, machine-learning, gpt, business, scam
Indeed, we should stop listening to such people who are basically pushing fantasies in order to raise more money.
https://www.theatlantic.com/technology/archive/2024/10/sam-altman-mythmaking/680152/
Tags: tech, web, self-hosting, complexity
Excellent point, we made the web too complex for regular users. This is actually an issue in term of access and democracy for people to write content there.
https://kristoff.it/blog/static-site-paradox/
Tags: tech, web, html, self-hosting
There is hope! Nice intro for regular people who want to get into publishing a web site. Good way to bring some democracy back to the web.
Tags: tech, web, frontend, htmx
I don’t think I would side with the conclusion. It’s a worthwhile article to get a better idea of the pain points around htmx.
https://chrisdone.com/posts/htmx-critique/
Tags: tech, linux, wayland, foss, governance
Yes, the governance of Open Source projects can be tricky. This is part of the job though, and properly embraced we all go further. An example from the Wayland space.
https://www.supergoodcode.com/My-Wayland-Your-Wayland-Our-Wayland/
Tags: tech, unix, system
Indeed, we should likely revisit what we put in our PATH environment variable. Some of it is old cruft which is now unnecessary.
https://blog.izissise.net/posts/env-path/
Tags: tech, c++, coroutine, performance
Several ways to deal with the task, which are the performance implications? Clearly coroutines aren’t the best tool for the job here.
Tags: tech, multithreading
This is a neat broad introduction about the problems you will encounter when multiple threads are involved and how to approach them.
https://underlap.org/approaches-to-concurrent-programming
Tags: tech, cpu, performance, memory
Data layout is essential for performance reasons. It is too often overlooked. If you want real speed you need to help the memory subsystem.
https://cedardb.com/blog/optimizing_data_layouts/
Tags: tech, gpu, graphics, shader
Another good tutorial about global illumination. Make sure to read part 2 as well.
Tags: tech, colors, shader
Neat little introduction on color manipulation using matrices. Mentions the things to pay attention to.
https://lisyarus.github.io/blog/posts/transforming-colors-with-matrices.html
Tags: tech, data-visualization
Nice catalogue of ideas for data visualisation tasks.
Tags: tech, tech-lead, engineering, decision-making
Nice post, and indeed it’s not about Python if you read until the end. It shows that it’s important to be able to make informed choices and not just pick your tech stack based on knee-jerk reactions.
https://jerf.org/iri/post/2024/not_about_python/
Tags: tech, databases, design, performance
I’m not sure I’m sold on this one. Interesting food for thought but I’ll have to mull it over for a while I think. I’m concerned about the performance implications of querying like this.
Tags: tech, codereview, psychology, cognition, anxiety, research
Still very early days on this topic, clearly more studies are required. Still this one is interesting and indicates are clear link between code review anxiety and code review avoidance. If you’re often procrastinating or rubber stamping code reviews, a workshop to reduce biases and showing you can manage your anxiety could improve things greatly.
https://link.springer.com/article/10.1007/s10664-024-10550-9
Tags: tech, science
The latest Nobel prizes indeed say something about the presence of computer scientists in other fields. Do we risk to delve too much on theoretical model? For sure using computers helps a lot, we have to be careful about not loosing empirical validation in the process.
https://lemire.me/blog/2024/10/09/from-software-to-reality/
Bye for now!
ListenData: How to Automate WordPress using Python
This tutorial explains how to use Python to automate tasks in WordPress. It includes various functions to perform tasks such as creating, extracting, updating and deleting WordPress posts, pages and media items (images) directly from Python.
Table of Contents To read this article in full, please click hereThis post appeared first on ListenDataFreexian Collaborators: Monthly report about Debian Long Term Support, September 2024 (by Roberto C. Sánchez)
Like each month, have a look at the work funded by Freexian’s Debian LTS offering.
Debian LTS contributorsIn September, 18 contributors have been paid to work on Debian LTS, their reports are available:
- Abhijith PA did 7.0h (out of 0.0h assigned and 14.0h from previous period), thus carrying over 7.0h to the next month.
- Adrian Bunk did 51.75h (out of 9.25h assigned and 55.5h from previous period), thus carrying over 13.0h to the next month.
- Arturo Borrero Gonzalez did 10.0h (out of 0.0h assigned and 10.0h from previous period).
- Bastien Roucariès did 20.0h (out of 20.0h assigned).
- Ben Hutchings did 20.0h (out of 12.0h assigned and 12.0h from previous period), thus carrying over 4.0h to the next month.
- Chris Lamb did 18.0h (out of 18.0h assigned).
- Daniel Leidert did 23.0h (out of 26.0h assigned), thus carrying over 3.0h to the next month.
- Emilio Pozuelo Monfort did 23.5h (out of 22.25h assigned and 37.75h from previous period), thus carrying over 36.5h to the next month.
- Guilhem Moulin did 22.25h (out of 20.0h assigned and 2.5h from previous period), thus carrying over 0.25h to the next month.
- Lucas Kanashiro did 10.0h (out of 5.0h assigned and 15.0h from previous period), thus carrying over 10.0h to the next month.
- Markus Koschany did 40.0h (out of 40.0h assigned).
- Ola Lundqvist did 6.5h (out of 14.5h assigned and 9.5h from previous period), thus carrying over 17.5h to the next month.
- Roberto C. Sánchez did 24.75h (out of 21.0h assigned and 3.75h from previous period).
- Santiago Ruano Rincón did 19.0h (out of 19.0h assigned).
- Sean Whitton did 0.75h (out of 4.0h assigned and 2.0h from previous period), thus carrying over 5.25h to the next month.
- Sylvain Beucler did 16.0h (out of 42.0h assigned and 18.0h from previous period), thus carrying over 44.0h to the next month.
- Thorsten Alteholz did 11.0h (out of 11.0h assigned).
- Tobias Frost did 17.0h (out of 7.5h assigned and 9.5h from previous period).
In September, we have released 52 DLAs.
September marked the first full month of Debian 11 bullseye under the responsibility of the LTS Team and the team immediately got to work, publishing more than 4 dozen updates.
Some notable updates include ruby2.7 (denial-of-service, information leak, and remote code execution), git (various arbitrary code execution vulnerabilities), firefox-esr (multiple issues), gnutls28 (information disclosure), thunderbird (multiple issues), cacti (cross site scripting and SQL injection), redis (unauthorized access, denial of service, and remote code execution), mariadb-10.5 (arbitrary code execution), cups (arbitrary code execution).
Several LTS contributors have also contributed package updates which either resulted in a DSA (a Debian Security Announcement, which applies to Debian 12 bookworm) or in an upload that will be published at the next stable point release of Debian 12 bookworm. This list of packages includes cups, cups-filters, booth, nghttp2, puredata, python3.11, sqlite3, and wireshark. This sort of work, contributing fixes to newer Debian releases (and sometimes even to unstable), helps to ensure that upgrades from a release in the LTS phase of its lifecycle to a newer release do not expose users to vulnerabilities which have been closed in the older release.
Looking beyond Debian, LTS contributor Bastien Roucariès has worked with the upstream developers of apache2 to address regressions introduced upstream by some recent vulnerability fixes and he has also reached out to the community regarding a newly discovered security issue in the dompurify package. LTS contributor Santiago Ruano Rincón has undertaken the work of triaging and reproducing nearly 4 dozen CVEs potentially affecting the freeimage package. The upstream development of freeimage appears to be dormant and some of the issues have languished for more than 5 years. It is unclear how much can be done without the aid of upstream, but we will do our best to provide as much help to the community as we can feasibly manage.
Finally, it is sometimes necessary to limit or discontinue support for certain packages. The transition of a release from being under the responsibility of the Debian Security Team to that of the LTS Team is an occasion where we assess any pending decisions in this area and formalize them. Please see the announcement for a complete list of packages which have been designated as unsupported.
Thanks to our sponsorsSponsors that joined recently are in bold.
- Platinum sponsors:
- TOSHIBA (for 108 months)
- Civil Infrastructure Platform (CIP) (for 76 months)
- VyOS Inc (for 40 months)
- Gold sponsors:
- Roche Diagnostics International AG (for 118 months)
- Akamai - Linode (for 112 months)
- Babiel GmbH (for 102 months)
- Plat’Home (for 101 months)
- CINECA (for 76 months)
- University of Oxford (for 58 months)
- Deveryware (for 45 months)
- EDF SA (for 30 months)
- Dataport AöR (for 5 months)
- CERN (for 3 months)
- Silver sponsors:
- Domeneshop AS (for 123 months)
- Nantes Métropole (for 117 months)
- Univention GmbH (for 109 months)
- Université Jean Monnet de St Etienne (for 109 months)
- Ribbon Communications, Inc. (for 103 months)
- Exonet B.V. (for 92 months)
- Leibniz Rechenzentrum (for 87 months)
- Ministère de l’Europe et des Affaires Étrangères (for 70 months)
- Cloudways by DigitalOcean (for 60 months)
- Dinahosting SL (for 58 months)
- Bauer Xcel Media Deutschland KG (for 52 months)
- Platform.sh SAS (for 52 months)
- Moxa Inc. (for 46 months)
- sipgate GmbH (for 44 months)
- OVH US LLC (for 42 months)
- Tilburg University (for 42 months)
- GSI Helmholtzzentrum für Schwerionenforschung GmbH (for 33 months)
- Soliton Systems K.K. (for 30 months)
- THINline s.r.o. (for 6 months)
- Copenhagen Airports A/S
- Bronze sponsors:
- Evolix (for 123 months)
- Seznam.cz, a.s. (for 123 months)
- Intevation GmbH (for 120 months)
- Linuxhotel GmbH (for 120 months)
- Daevel SARL (for 119 months)
- Bitfolk LTD (for 118 months)
- Megaspace Internet Services GmbH (for 118 months)
- Greenbone AG (for 117 months)
- NUMLOG (for 117 months)
- WinGo AG (for 116 months)
- Entr’ouvert (for 107 months)
- Adfinis AG (for 105 months)
- Tesorion (for 100 months)
- GNI MEDIA (for 99 months)
- Laboratoire LEGI - UMR 5519 / CNRS (for 99 months)
- Bearstech (for 91 months)
- LiHAS (for 91 months)
- Catalyst IT Ltd (for 86 months)
- Supagro (for 81 months)
- Demarcq SAS (for 80 months)
- Université Grenoble Alpes (for 66 months)
- TouchWeb SAS (for 58 months)
- SPiN AG (for 55 months)
- CoreFiling (for 51 months)
- Institut des sciences cognitives Marc Jeannerod (for 46 months)
- Observatoire des Sciences de l’Univers de Grenoble (for 42 months)
- Tem Innovations GmbH (for 37 months)
- WordFinder.pro (for 36 months)
- CNRS DT INSU Résif (for 35 months)
- Alter Way (for 28 months)
- Institut Camille Jordan (for 18 months)
- SOBIS Software GmbH (for 3 months)
Reproducible Builds (diffoscope): diffoscope 280 released
The diffoscope maintainers are pleased to announce the release of diffoscope version 280. This version includes the following changes:
[ Chris Lamb ] * Drop Depends on deprecated python3-pkg-resources. (Closes: #1083362)You find out more by visiting the project homepage.
KDE Ships Frameworks 6.7.0
Friday, 11 October 2024
KDE today announces the release of KDE Frameworks 6.7.0.
KDE Frameworks are 72 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.
New in this version Breeze Icons- Delete 32px colorful folder action icon symlink. Commit. Fixes bug #478493
- Add new knotes-symbolic.svg icon (22/32/48). Commit. Fixes bug #398901
- Format system-suspend-inhibited, system-suspend-uninhibited. Commit.
- Redesign system-suspend-inhibited, system-suspend-uninhibited. Commit.
- Fix recoloring in applications-multimedia-symbolic and applications-engineering-symbolic. Commit. Fixes bug #492879
- Add show-background icon. Commit. See bug #472863
- Merge output targets from multiple qt6_target_qml_sources() calls. Commit.
- Don't install QML files on Android. Commit.
- Propagate OUTPUT_TARGETS of qt6_target_qml_sources to the caller. Commit.
- Port Qt doc generation to qhelpgenerator. Commit.
- Correctly forward the OUTPUT_TARGETS argument of qt6_add_qml_module(). Commit.
- Set install destination for object files. Commit.
- Upstream FindGLIB2.cmake changes from Qt. Commit.
- KDEClangFormat: Ignore source files being in _install folder. Commit.
- Reenable individual targets for clang-format to enable better status reporting an parallelization. Commit.
- K7zip: prevent crash when archive has no modification times for files. Commit.
- Silence false positive clazy checks. Commit.
- Drop obsolete includes and HAVE_X11. Commit.
- Always show title and caption in tooltip if truncated. Commit.
- Make unit tests work with a static Qt build. Commit.
- General/widgetStyle -> KDE/widgetStyle. Commit.
- Make unit tests work with a static Qt build. Commit.
- Kcoreaddonsplugin: Link against Qt6::Network. Commit.
- Restore KProcess on Android. Commit.
- Don't build kprocesstest for Android/iOS. Commit.
- Fix build on ios. Commit.
- Qpixmapitem: prevent a crash when there are no window yet. Commit.
- Provide option to enable relocatable docbook files on non WIN32 platforms. Commit.
- KCountryFlagEmoji: Improve fitting to the icon's bounding box. Commit.
- KCountryFlagEmoji: Fix emoji representation for non-country codes. Commit.
- KCountryFlagEmoji: Add test and demo cases for non-coutry codes. Commit.
- Fix window insets foreground coloring on older Android versions. Commit.
- Fix build with Qt < 6.7. Commit.
- Fix color luma computation for Android window insets. Commit.
- WaylandClipboard: fix QMimeData::urls() not working. Commit.
- Update version for window insets API to match reality. Commit.
- Add QML bindings for KWindowInsetsControllert. Commit.
- Add KWindowInsetsController. Commit.
- WaylandClipboard: make sure format list doesn't have duplicate items. Commit.
- Holiday_si_sl: added missing Slovenian commemoration day. Commit.
- Make KTranscript work in static builds. Commit.
- Make QML API unit test work with static Qt builds. Commit.
- Fix endianness bug in PCX reader on big endian architectures. Commit.
- Fixed read of BGR32 and RGB555 formats. Commit.
- FIxed comparison of unsigned expression. Commit.
- Raw: Getting the image size does not need unpacking. Commit.
- [OpenFileManagerWindowJob] Fix crash when falling back to KRunStrategy. Commit. Fixes bug #486494
- Previewjob: Use .cache as temp folder, delete temp file after use. Commit. Fixes bug #494096. See bug #494061
- KFileItemActions: Try reading X-KDE-Show-In-Submenu as bool instead of string. Commit.
- KFilePlacesView: have setUrl() handle trailing slashes in place URLs. Commit.
- KFilePlacesItem: Use Solid to find home mount point. Commit.
- Fileitem,file_unix: simplify types for stat. Commit.
- Remove one level of three nesting in kdevtemplate. Commit.
- Knewfilemenutest: cleanup. Commit.
- Knewfilemenutest: test files and folders in ~/Templates. Commit.
- ConnectionBackenp: fix passing errorString. Commit.
- Knewfilemenu: Make ~/Templates work by simply placing files and folders there. Commit. Fixes bug #191632
- KFilePlacesItem: Cache groupType. Commit.
- Previewjob: avoid calling mkdir for path with two slashs. Commit.
- Add since info for new API. Commit.
- Re-enable cachegen on Android. Commit.
- Create CMake config file only once all build parameters are known. Commit.
- Fix unit tests when using a static build. Commit.
- PlatformTheme: fix crash when item is being destroyed. Commit.
- OverlaySheet: make default title vertically center aligned. Commit. Fixes bug #489357
- Fix clang-format version imcompatibilities and avoid turning formatting of. Commit.
- Dialog: Take header width into account, small fix for footerToolbar width. Commit.
- Workaround on incorrect palette update. Commit. Fixes bug #493654
- Platform: Check if weak pointer is expired in PlatformThemeChangeTracker ctor. Commit. Fixes bug #493652
- Dialog: Use footer buttons width if its wider than content. Commit.
- Fix sidebar text color in systemsettings. Commit.
- Use disabled text colors also for inherit-ing Theme instances. Commit. Fixes bug #433256
- Autotests/tst_theme: Add a test that verifies only one signal emission happens. Commit.
- Autotests/tst_theme: Remove waiting for events. Commit.
- Autotests/tst_theme: Explicitly mark root test objects as not inheriting. Commit.
- Add PlatformThemeChangeTracker to BasicTheme::sync(). Commit.
- Platform: Replace PlatformTheme::queueChildUpdate with ChangeTracker::Data flag. Commit.
- Platform: Don't use queued signals for batching change signals in PlatformTheme. Commit.
- Fix NavigationTabBar sizing on mobile. Commit.
- ContextualHelpButton: Clip to avoid text overflow. Commit.
- ContextualHelpButton: Fix flickering when the popup covers the button. Commit. Fixes bug #489688
- ColumnView currently allows having a QObject item inside its children list. Commit.
- ToolBarLayout: Add support for actions that are separators. Commit.
- Don't emit twice slotEntryChanged. Commit. See bug #492557
- Qtquick: make sort/filter buttons like Discover/kcms. Commit.
- Fix Android notification permission check. Commit.
- Ensure notification permission request callback is run on the right thread. Commit.
- Document flatpak manifest requirements. Commit.
- Fix typo in docs. Commit.
- Port away from deprecated KPluralHandlingSpinBox. Commit.
- Fix unexpected space indentation in Go var group. Commit. Fixes bug #487054
- Read dir kateconfig on view creation. Commit. Fixes bug #489600
- Fix pressing on } inserts two lines instead of one. Commit. Fixes bug #479717
- Dont remove trailing spaces in markdown by default. Commit. Fixes bug #451648
- Multicursors: Avoid indenting the sameline twice. Commit.
- Blockmode: repair indent when the cursor is in the first column. Commit.
- Multicursor: Fix indent with multiple cursors. Commit.
- With latest syntax definition, more tests pass for ruby. Commit.
- Use more views. Commit.
- Avoid double signal emission. Commit.
- Less deprecated calls, works locally. Commit.
- Store multiline ranges spanning multiple blocks in TextBuffer. Commit.
- Remove MovingRange caching in TextBlock. Commit.
- Add hint the file might got moved. Commit. Fixes bug #476071
- Dont create selection highlights with multiple selections. Commit.
- Optimize killLine for multiple cursors. Commit.
- Completion: Allow async population of documentation. Commit.
- More const to avoid wrong use of these members. Commit.
- Ensure modify the renderer that is used for printing. Commit. Fixes bug #465526. Fixes bug #488605. Fixes bug #487081. Fixes bug #483550
- Fix text insertion with multiple cursors at same position. Commit. Fixes bug #492869
- Add command names for "Remove Spaces" and "Keep Extra Spaces". Commit.
- Minimap now follows the theme also for search matches. Commit.
- Run clang-format. Commit.
- Fix merging of selections in opposite directions. Commit. See bug #492869
- Fix secondary cursor at boundary of selection doesn't get removed. Commit. See bug #492869
- Fix warnings. Commit.
- Build master ECM as part of the Flatpak build. Commit.
- Fix crash with older Qt. Commit. Fixes bug #493060
- Fix build against a static Qt. Commit.
- KDateComboBox: emit dateEntered() on FocusOut. Commit.
- Correctly read manually-specified ipv6 addresses from Networkmanager. Commit. Fixes bug #476008. Fixes bug #453453
- Simplify loops and avoid creating iterator on temporary. Commit.
- Use static regex for reusable objects. Commit.
- [imgur] Restrict to actually supported MIME types. Commit.
- Add extraJsonTranslationPaths.txt file for purpose specific translations. Commit.
- Ensure KPlugin object contains no unstandardized keys. Commit.
- Kquickstyleitem: Don't crash if colors changed and style option is null. Commit.
- Kirigamiintegration: Track changes to PlatformTheme where needed. Commit.
- TextFieldContextMenu: Open menu by keyPressed at TextField.cursorRectangle position. Commit.
- Fstab: add missing signal override. Commit.
- Fstab: Emit accessibilityChanged only when actually changed. Commit.
- Get rid of implicit QString and QChar conversions. Commit.
- Get rid of implicit QByteArray to const char* conversions. Commit.
- [Fstab] Minor cleanups (new style connect, extraneous include). Commit.
- [Fstab] Remove mntent wrapper macros. Commit.
- [Fstab] Remove remnants of Solaris support. Commit.
- Fail if none of the plugins can be build. Commit.
- Search for private link dependencies in static builds. Commit.
- Upload the uncompressed files. Commit.
- Odin: add missing items, fix attribute, add directive. Commit.
- Swift: fix detection of end of protocol method declaration. Commit. Fixes bug #493459
- Indexer: treats 1-character StringDetect as a DetectChar for unreachable rules and the merge suggestion. Commit.
- Indexer: check that WordDetect does not contain spaces at the beginning and end of text. Commit.
- Simplify installed xml syntax files to speed up reading. Commit.
- Indexer: replace some QString with QStringView and QLatin1Char with char16_t literal. Commit.
- Indexer: fix default value for char with LineContinuation. Commit.
- Orgmode.xml: Fix orgmode syntax highlighting not ending properly. Commit.
- Jira, Markdown, Org Mode: use rhtml syntax with erb language. Commit.
- Haml: complete the syntax and fix the highlighting of Ruby line following the change in ruby.xml. Commit.
- Ruby: fix %W, dot member, some parenthesis ; add ?c, escape char, etc. Commit. Fixes bug #488014
- Gleam: Minor modifications to syntax and example file. Commit.
- Remove truncase from Common Lisp. Commit.
FSF Events: Executive director Zoë Kooyman speaks on free software being the tech we want at The Tech We Want Online Summit on October 17 at 13:30 UTC
KDE neon Rebased on Ubuntu 24.04 LTS
We have just switched on the upgrade for KDE neon to rebase on Ubuntu 24.04 LTS.
We do this every two years and the 22.04 LTS base was getting increasingly crusty with old Pipewire causing problems and packages like Krita not compiling at all.
Follow the Noble Upgrade instructions or just click the notification that should appear soon.
mark.ie: Cloning Content in a LocalGov Drupal website
This week as part of my "Editor Experience" work for LocalGov Drupal, I worked on creating a feature to allow editors to clone pages of their sites.
Kubuntu 24.10 Oracular Oriole Released
The Kubuntu Team is happy to announce that Kubuntu 24.10 has been released, featuring the new and beautiful KDE Plasma 6.1 simple by default, powerful when needed.
Codenamed “Oracular Oriole”, Kubuntu 24.10 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.
Under the hood, there have been updates to many core packages, including a new 6.11 based kernel, KDE Frameworks 5.116 and 6.6.0, KDE Plasma 6.1 and many updated KDE gear applications.
Kubuntu 24.10 with Plasma 6.1Kubuntu has seen many updates for other applications, both in our default install, and installable from the Ubuntu archive.
Applications for core day-to-day usage are included and updated, such as Firefox, and LibreOffice.
For a list of other application updates, and known bugs be sure to read our release notes.
Wayland as default Plasma session.The Plasma wayland session is now the default option in sddm (display manager login screen). An X11 session can be selected instead if desired. The last used session type will be remembered, so you do not have to switch type on each login.
Download Kubuntu 24.10, or learn how to upgrade from 24.04 LTS.
Note: For upgrades from 24.04, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.
Qt for Python release: 6.8 is out now!
We’re very happy to announce the latest release of Qt for Python 6.8. With every new release, we try to bring great things with Qt's new features and new trending ideas. For your convenience, you can check out what's new in Qt for Python 6.8 and what’s improved, along with the entire change log.
Real Python: Quiz: Structural Pattern Matching
In this quiz, you’ll test your understanding of Structural Pattern Matching in Python.
You’ll revisit the syntax of the match statement and case clauses, explore various types of patterns supported by Python, and learn about guards, unions, aliases, and name binding.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
Rahmat Akintola: Voices of the Open Source AI Definition
The Open Source Initiative (OSI) is running a blog series to introduce some of the people who have been actively involved in the Open Source AI Definition (OSAID) co-design process. The co-design methodology allows for the integration of diverging perspectives into one just, cohesive and feasible standard. Support and contribution from a significant and broad group of stakeholders is imperative to the Open Source process and is proven to bring diverse issues to light, deliver swift outputs and garner community buy-in.
This series features the voices of the volunteers who have helped shape and are shaping the Definition.
Meet Rahmat AkintolaWhat’s your background related to Open Source and AI?
Sure. I’ll start with Open Source. My journey began at PyCon Africa in 2019, where I participated in a hackathon on Cookiecutter. At the time, I had just transitioned into web development, and I was looking for ways to improve my skills beyond personal projects. So, I joined the Cookiecutter Academy at Python Africa in 2019. That’s how I got introduced to Open Source.
Since then, I’ve been contributing regularly, starting with one-off contributions to different projects. These days, I primarily focus on code and documentation contributions, mainly in web development.
As for AI, my journey started with data science. I had been working as a program manager and was part of the Women in Machine Learning and Data Science community in Accra, which was looking for volunteers. Coincidentally, I had lost my job at the time, so I applied for the program manager role and got it. That experience sparked my interest in AI. I started learning more about machine learning and AI, and I needed to build my domain knowledge to help with my role in the community.
I’ve worked on traditional models like linear and logistic regression through various courses. Recently, as part of our community, we organized a “Mathematics for Machine Learning” boot camp, where we worked on projects related to reinforcement learning and logistic regression. One dataset I worked with involved predicting BP (blood pressure) levels in the US. The task was to assess the risk of developing hypertension based on various factors.
What motivated you to join this co-design process to define Open Source AI?
The Open Source AI journey started when I was informed about a virtual co-design process that was reaching out to different communities, including mine. As the program lead, I saw it as an opportunity to merge my two passions—Open Source and AI.
I volunteered and worked on testing the OpenCV workbook, as I was using OpenCV at the time. I participated in the first phase, which focused on determining whether certain datasets needed to be open. Unfortunately, I couldn’t participate in the validation phase because I was involved in the mathematics boot camp, but I followed the discussions closely.
When the opportunity came up to participate in the co-design process, I saw it as a chance to bridge my work in Open Source web development and my growing interest in AI. It felt like the perfect moment. I was already using OpenCV, which happened to be part of the AI systems under review, so I jumped right in.
Through the process, I realized that defining Open Source AI goes beyond just using tools or making code contributions—it involves a deep understanding of data, legality, and the broader system.
How did you get invited to speak at the Deep Learning Indaba conference in Dakar? How was the conference experience? Did you make any meaningful connections?
As for speaking at Deep Learning Indaba, the opportunity came unexpectedly. One day, Mer Joyce (the OSAID co-design organizer) sent an email offering a chance to speak on Open Source AI at the conference. I had previously applied to attend but didn’t get in, so I jumped on this opportunity. We used a presentation similar to one May had given at Open Source Community Africa.
I made excellent connections. The conference itself was amazing—though the food and the Senegal experience also played a part! There were many AI and machine learning researchers, and I learned new concepts, like using JAX, which was introduced as an alternative to some common frameworks. The tutorials were well-targeted at beginners, which was perfect for me.
On a personal level, it was great to connect with academics. I’m considering applying for a master’s or Ph.D., and the conference provided an opportunity to ask questions and receive guidance.
Why do you think AI should be Open Source?
AI is becoming a significant part of our lives. I work with the Meltwater Entrepreneurial School of Technology (MEST) as a technical lead, and we use AI for various training purposes. Opening up parts of AI systems allows others to adapt and refine them to suit their needs, especially in localized contexts. For example, I saw someone on Twitter excited about building a GPT for dating, customizing it to ask specific questions.
This ability for people to tweak and refine AI models, even without building them from scratch, is important. Open-sourcing AI enables more innovation and helps tailor models for specific needs, which is why I believe it should be open to an extent.
Has your personal definition of Open Source AI changed along the way? What new perspectives or ideas did you encounter while participating in the co-design process?
One new perspective I gained was on the legal and data availability aspects of AI. Before this, I had never really considered the legal side of things, but during the co-design process, it became clear that these elements are crucial in defining Open Source AI systems. It’s more than just contributing code—it’s about ensuring compliance with legal frameworks and making sure data is available and usable.
What do you think the primary benefit will be once there is a clear definition of Open Source AI?
A clear definition would help people understand that Open Source AI involves more than just attaching an MIT or Apache license to a project on GitHub. There’s more complexity around sharing models, data and parameters.
For instance, I was once asked whether using an “Open Source” large language model like LLaMA meant the data had to be open too. A well-defined standard would provide guidance for questions like these, ensuring people understand the legal and technical aspects of making their AI systems Open Source.
What do you think are the next steps for the community involved in Open Source AI?
In Africa, I think the next step is spreading awareness about the Open Source AI Definition. Many people are still unaware of the complexities, and there’s still a tendency to assume that adding an Open Source license to a project automatically makes it open. Building collaborations with local communities to share this information is important.
For women, especially in Africa, visibility is key. When women see others doing similar work, they feel encouraged to join. Representation and community engagement play significant roles in driving diversity in Open Source AI.
How to get involvedThe OSAID co-design process is open to everyone interested in collaborating. There are many ways to get involved:
- Join the forum: share your comment on the drafts.
- Leave comment on the latest draft: provide precise feedback on the text of the latest draft.
- Follow the weekly recaps: subscribe to our monthly newsletter and blog to be kept up-to-date.
- Join the town hall meetings: we’re increasing the frequency to weekly meetings where you can learn more, ask questions and share your thoughts.
- Join the workshops and scheduled conferences: meet the OSI and other participants at in-person events around the world.
Kirigami Addons 1.5
Kirigami Addons is out. This releases contains mostly code cleanup and minor improvements. There is netherless a few relevant changes. Thanks to everyone who contributed some code.
New KAppTemplate’s templateA new KAppTemplate is available as a good starting point for application that manage multimedia libraries. It is based on shared design of Peruse, Arianna and the WIP Calligra Launcher.
Hopefully it helps people who want to develop game launchers and other type of specialized multimedia applications.
More templates are planned (e.g. for chat applications), so stay tunned!
FormCardFormCard is the part of Kirigami Addons that received the most changes in this release. First of all, FormCard now use more consistent spacing and padding, which slighly less horizontal padding. Descriptions for radio and checkbox delegates are also put underneath the delegate’s main text and checkbox, in an effort to make FormCard a bit more compact.
Before AfterAdditionally FormComboBoxDelegate now lets you display an inline status similar to that is available in other FormCard’s delegates.
Finally FormCard.AboutKDE was renamed to FormCard.AboutKDEPage. This improve the naming consistency with other page compoenents. A compatibility wrapper on top of AboutKDEPage named AboutKDE is still available to not break any existing applications.
DeprecationsThe Banner component is now deprecated. Kirigami.InlineMessage now has a position parameter which can be set to Header or Footer. Additionally with KDE Frameworks 6.8 Kirigami.InlineMessage will look exactly the same as Banner! So there is no more reasons for this component to exists in Kirigami Addons.
OtherKirigami Addons supports static builds with a recent enough version of extra-cmake-modules.
Packager SectionYou can find the package on download.kde.org and it has been signed with my GPG key.
PyCharm: How I do Django APIs in PyCharm
I learn so much from watching conference talks, especially live, when I’m vibing with the crowd. But sometimes I watch and think: “Wow, I wish I could show you how awesome that would be in PyCharm.”
That just happened. Here’s the explainer, with a little special something at the end.
Hello, DjangoConfI recently attended DjangoConf 2024 which kicked off this year’s DSF-PyCharm fundraiser. I attended Felipe’s DRF tutorial where he showed off using PyCharm and even a little bit about endpoints.
Afterwards, I ran into a PyCharm fan who told me what he really likes when using PyCharm for Django. It matched what I really like. Hence, a blog post.
The end is the pointMy superfan friend was an early adopter of endpoints, our feature for rethinking the API developer experience (DX) in Django, FastAPI, and Flask. Me too. It’s cool to have a listing of endpoints, jumping to the definition, and most of all – issuing an HTTP request right there in the IDE. No going out to Postman.
I covered endpoints and the HTTP client in my previous blog post. One extra point: he said Postman pricing is going up. I guess I should talk more about the HTTP Client.
Always be debuggingMost folks know that I’m a debugger stan, probably because I just won’t shut up about it. It turns out that he also uses the debugger first, meaning he runs the Django server, under the debugger, all the time, even when he isn’t debugging.
Why? First, it’s so fast, you don’t notice the speed hit. As he also knew, Python 3.12 lowers the impact of debugging and PyCharm uses this automatically. The bigger point though: when you want to poke around, you don’t need to stop the regular “run”, launch under “debug”, then return to “run.” That’s disruptive, so people just do print. Which makes me a sad panda.
If you’re always debugging, then poking around is already RIGHT THERE. Even if you don’t have a bug and just want to investigate. Even if you are in a template.
This is great with endpoints, as you can click a breakpoint in your code and issue a request without leaving the tool.
He made one last point – PyCharm’s Django support and debugger is more mature and polished. We’ve been doing this for a while!
I didn’t know there would be a testThere’s one more step to the higher-zen of using PyCharm to the fullest with Django. Why use the browser or an HTTP client at all? Why not just sit in a test module and let PyCharm + pytest bring joy to your world? In fact – don’t even run Django. No server process, less hassle.
Django makes it really easy to issue fake requests in a test, get the results back, and make sure things are cool. I like having my code on the left, my test on the right, and the test output on the bottom. In fact, I also like combining Always Be Testing with Always Be Debugging, which makes it crazy-easy to stop in the middle of a view and see what’s going on.
I like it so much, here’s a little video:
This works great for how code works. You can skip going to the browser, reloading, and poking around. You stay in the IDE, the flow. But there’s a catch.
Seeing is believingSometimes you need to see how the page looks. In the browser. With your eyeballs. Any chance PyCharm can improve the DX for this?
As it turns out, in 2023.3 we shipped Django Preview, a feature-rich browser in the IDE that keeps up as you type.
A love letter to DjangoThis concludes my speaking from the heart about my way of doing Django API development in PyCharm: endpoints, debugger, testing, and preview.
But I’d like to close by speaking from the heart about Django, leading with an odd little twist of fate about Django killing my project.
Annertech: DrupalCon Barcelona: Our highlights
DrupalCon Barcelona 2024 was one of our busiest yet. We were a platinum sponsor, sponsored the contribution room, had numerous social activities (including Trivia Night), and Annertechies took to the mic at least seven times.
Gunnar Wolf: Started a guide to writing FUSE filesystems in Python
As DebConf22 was coming to an end, in Kosovo, talking with Eeveelweezel they invited me to prepare a talk to give for the Chicago Python User Group. I replied that I’m not really that much of a Python guy… But would think about a topic. Two years passed. I meet Eeveelweezel again for DebConf24 in Busan, South Korea. And the topic came up again. I had thought of some ideas, but none really pleased me. Again, I do write some Python when needed, and I teach using Python, as it’s the language I find my students can best cope with. But delivering a talk to ChiPy?
On the other hand, I have long used a very simplistic and limited filesystem I’ve designed as an implementation project at class: FIUnamFS (for “Facultad de Ingeniería, Universidad Nacional Autónoma de México”: the Engineering Faculty for Mexico’s National University, where I teach. Sorry, the link is in Spanish — but you will find several implementations of it from the students 😉). It is a toy filesystem, with as many bad characteristics you can think of, but easy to specify and implement. It is based on contiguous file allocation, has no support for sub-directories, and is often limited to the size of a 1.44MB floppy disk.
As I give this filesystem as a project to my students (and not as a mere homework), I always ask them to try and provide a good, polished, professional interface, not just the simplistic menu I often get. And I tell them the best possible interface would be if they provide support for FIUnamFS transparently, usable by the user without thinking too much about it. With high probability, that would mean: Use FUSE.
But, in the six semesters I’ve used this project (with 30-40 students per semester group), only one student has bitten the bullet and presented a FUSE implementation.
Maybe this is because it’s not easy to understand how to build a FUSE-based filesystem from a high-level language such as Python? Yes, I’ve seen several implementation examples and even nice web pages (i.e. the examples shipped with thepython-fuse module Stavros’ passthrough filesystem, Dave Filesystem based upon, and further explaining, Stavros’, and several others) explaining how to provide basic functionality. I found a particularly useful presentation by Matteo Bertozzi presented ~15 years ago at PyCon4… But none of those is IMO followable enough by itself. Also, most of them are very old (maybe the world is telling me something that I refuse to understand?).
And of course, there isn’t a single interface to work from. In Python only, we can find python-fuse, Pyfuse, Fusepy… Where to start from?
…So I setup to try and help.
Over the past couple of weeks, I have been slowly working on my own version, and presenting it as a progressive set of tasks, adding filesystem calls, and being careful to thoroughly document what I write (but… maybe my documentation ends up obfuscating the intent? I hope not — and, read on, I’ve provided some remediation).
I registered a GitLab project for a hand-holding guide to writing FUSE-based filesystems in Python. This is a project where I present several working FUSE filesystem implementations, some of them RAM-based, some passthrough-based, and I intend to add to this also filesystems backed on pseudo-block-devices (for implementations such as my FIUnamFS).
So far, I have added five stepwise pieces, starting from the barest possible empty filesystem, and adding system calls (and functionality) until (so far) either a read-write filesystem in RAM with basicstat() support or a read-only passthrough filesystem.
I think providing fun or useful examples is also a good way to get students to use what I’m teaching, so I’ve added some ideas I’ve had: DNS Filesystem, on-the-fly markdown compiling filesystem, unzip filesystem and uncomment filesystem.
They all provide something that could be seen as useful, in a way that’s easy to teach, in just some tens of lines. And, in case my comments/documentation are too long to read, uncommentfs will happily strip all comments and whitespace automatically! 😉
So… I will be delivering my talk tomorrow (2024.10.10, 18:30 GMT-6) at ChiPy (virtually). I am also presenting this talk virtually at Jornadas Regionales de Software Libre in Santa Fe, Argentina, next week (virtually as well). And also in November, in person, at nerdear.la, that will be held in Mexico City for the first time.
Of course, I will also share this project with my students in the next couple of weeks… And hope it manages to lure them into implementing FUSE in Python. At some point, I shall report!