FLOSS Project Planets

This weekend I am contributing to Transitous. You should too.

Planet KDE - Sat, 2024-03-16 07:41
Transitous is a new community-driven routing service. Add your own city and help make it great.
Categories: FLOSS Project Planets

Dolphin 24.02

Planet KDE - Sat, 2024-03-16 06:30

Since last Dolphin version 23.08, I spent a lot of my time making sure the transition to KF6/Qt6 went smoothly for dolphin and its dependencies and plugins and thanks to many others contributions, in particular Alexander and Nicolas, this went well. The objective being no-one would notice despite much code has changed and this mostly worked out.

Changes

A few behaviors and default have changed.

Files and folders are now selected with a single-click and opened with a double-click. This will mainly affect Neon Users, since most distros already had this behavior default. You can select the single-click-open mode on the first page of systemsettings, as it concerns also Plasma, file/open dialog and other applications.

The extract here option in the menu now has the behavior of the old "extract here and detect subfolders". This makes the menu less heavy on text while making the action more accessible.

Service menus will need some adaptation unfortunately, you will need to Moving them to a new location. Usually mv ~/.local/share/kservices5/ServiceMenus/* ~/.local/share/kio/servicemenus. (Ensure to have destination directory created: mkdir -p ~/.local/share/kio/servicemenus) You can read the updated documentation.

The F10 shortcut now opens the menu, instead of creating a directory. That's an important change to improve accessibility by providing standard shortcuts. You can change it back if you want, and you can also use the the standard shortcut for this action Ctrl+Shift+N.

New features

The settings have been reorganized making it easier to find what you are looking for. The Interface section regroups setitings regarding the UI elements of dolphin, and the view those that influences how the main view will display your files and folders.

Shoutout to Dimosthenis Krallis for pulling it off, this wasn't an easy task especially for a not yet regular contributor.

Thanks to Carl, we got a very nice visual improvement to KDE application with breeze. I really enjoy the change to Dolphin. Looking back at dolphin in plasma5 makes it glaring.

A small new feature, I added, is you can now middle click on a file to open it in the second application associated with its type. Let's say you have an html file you normally open with your browser, but sometimes you want to edit it. Now instead of going to the open-with menu you can middle-click it. This works for scripts as well, opening them in your default editor instead of the second application assoctiated with their type.

This was inspired by the fact that folders benefit from middle-click activations to open new tabs. Making this behavior configurable might make sense, suggestions welcome, but this seems like a sensible default at least.

Felix, my fellow dolphin co-maintainer, did a bunch of ui-refinement, like the free space label in the status bar and some very nice accessibility improvements, including the F10 shorcut change that now triggers the app menu by default.

You can open now open containing folders for files in the Recent Files.

Bug fixed

Akseli Lahtinen made sure to Resort directory size count after refreshing.

And in total 32 were fixed between Dolphin 23.08.05 and Dolphin 24.02.0. 480098 441070 477897 479596 478724 476670 473999 478117 477607 477288 476742 172967 452587 475547 422998 423884 440366 474951 474999 393152 473775 473377 473513 420870 472912 468445 469354 462778 417930 464594 471999 47197

New code, new bugs

Unfortunately whenever you ship new code, you risk introducing new bugs, and even months of testing didn't iron them all.

One I think you could have spotted earlier, was that on X11, panels are hidden after minimizing Dolphin window. Thanks to Nicolas fella, this was swiftly fixed and will reach users in next Dolphin release. In the meantime, this is a good time to learn about the shortcuts for panels:

  • F9: toggle places panel
  • F11: toggle information panel

We now have a need process to build packages for Windows and Mac OS, Dolphin has not made the transition though. I am working on it to bring latest dolphin to its Window and MacOS users.

Categories: FLOSS Project Planets

Completing the KDE Frameworks 6 transition

Planet KDE - Sat, 2024-03-16 05:45

Getting the KDE Mega Relase 6 out was a key milestone in the transition to Qt 6 and KDE Frameworks 6, but it doesn’t mean we are done yet. There’s still components to port and scaffolding to remove.

Porting remaining applications

While KDE Frameworks and Plasma switched completly to Qt 6 with the release, there’s still a number of components in KDE Gear using Qt 5 by default. The following modules still need work:

  • Artikulate
  • Cantor (MR)
  • Kalzium - has Qt6 CI already
  • Kig
  • KmPlot - has Qt6 CI already
  • KTouch (MR)
  • Marble (branch)
  • Minuet - has Qt6 CI already
  • Rocs (QtScript porting MR)
  • Step - has Qt6 CI already
  • KolourPaint (MR)
  • K3b - has Qt6 CI already
  • KMix
  • Kwave
  • Cervisia - partially ported
  • Lokalize (MR)
  • poxml
  • Umbrello
  • KDevelop (MR)
  • KRDC - has Qt6 CI already
  • KImageMap Editor - has partial Qt6 CI already
  • Kamoso
  • Kirigami Gallery (branch)
  • Calindori - CI is Qt6 only but default build is still Qt5?
  • ghostwriter - has Qt6 CI already

This list doesn’t include modules that are basically ported but cannot switch yet due to other things depending on them, ie. there is more than those not released for KF6 yet. Same goes for modules providing plugins that are still needed for both versions.

The complexity of the remaining work here ranges from putting on finishing touches and taking the decision to make the switch all the way to dealing with potentially difficult to port dependencies such as QtScript. So there’s something for everyone here ;)

And then there’s of course even more outside of the KDE Gear release automation that also needs to be looked at, Krita for example recently posted their plans for the migration to Qt 6.

Cleaning up porting aids

But even in the modules released exclusively for Qt6 and KF6 already there is still work to be done, namely removing the remaining uses of porting aids such as Qt5Compat.

While the need for this might not seem that pressing anymore there’s many good reasons for doing this sooner rather than later:

  • We have many people around still familiar with how to do that and its potential pitfalls. That knowledge tends to fade away over time.
  • We pay extra in download, storage and runtime cost for carrying around those dependencies. That matters especially for bundled apps, e.g. for some of our APKs this lead to a 20% size reduction.
  • Future-us will hate us for not doing this, in the same way as we were unhappy about past-us not having cleaned up after themselves during the 4 -> 5 migration.
QtCore5Compat

On the C++ side that’s basically QRegExp, QTextCodec and the SAX XML parsing API.

QTextCodec:

  • Uses for small chunks of UTF-8, Latin-1 or local 8 bit encoded strings can be replaced by QString API (not that common).
  • Use for larger amounts of data or different codecs can be replaced by QStringEncoder and QStringDecoder (the most common case).
  • Uses for listing all codecs needs new API in Qt 6.7 and cannot be replaced just yet (rare).
  • Uses in combination of QTextStream for non-Unicode content have no replacement (fortunately very rare by now).

QRegExp:

  • Fully replaceable by QRegularExpression.
  • Wildcard and exact match support might need changes to the actual expressions, either manually or via corresponding QRegularExpression helper methods (somewhat common by now as most easy case have long been converted).

Things get a bit more tricky for both of those when these types are used in API and thus propagate through larger parts of the code, but fortunately we only have a few of those cases left. The vast majority of uses is very localized.

SAX XML parser:

  • Replaceable by QXmlStreamReader.
  • Can require larger code changes and needs extra care when dealing with XML namespaces.
  • Fortunately rare by now.
Qt5Comapt.GraphicalEffects QML module

The other big part of Qt5Compat are about 25 graphical effects for QML.

  • DropShadow and RectangularGlow can in many cases be replaced by Kirigami.ShadowedRectangle, which is probably the most common case here. MultiEffect covers the rest, ie. shadows on anything else than (rounded) rectangles.
  • LinearGradient in any other orientation than vertical needs a nested and rotated `Rectangle` now to hold the gradient, see e.g. Kirigami.EdgeShadow for an example in horizontal or vertical orientation can be replaced by a Rectangle with associated Gradient (few cases left).
  • For anything else you have to hope that the Qt6 MultiEffect provides a suitable replacement. For the most common cases (blur and opacity masks) that’s the case fortunately, for more exotic effects you might need to get creative.
Plasma5Support

Qt5Compat isn’t the only porting aid though. Plasma5Support is another one to look at, with still hundreds of uses left just within KDE code.

Plasma5Support contains some of the former Plasma Framework functionality, such as the data engines. I have no experience porting away from that myself though, maybe the Plasma team can provide some guidance for that :)

You can help!

In particular removing the remaining porting aid uses in many cases doesn’t need in-depth knowledge of the affected applications but consists of separate and localized changes, so it’s the ideal side-task while waiting for longer compile runs for example.

LXR is a very useful tool for finding the remaining uses and the KDE Development channel on Matrix is the place to ask if you need help. Among my merge requests from the past two weeks you’ll also find 30+ examples for such changes.

Categories: FLOSS Project Planets

This week in KDE: Dolphin levels up

Planet KDE - Sat, 2024-03-16 00:36

In addition to lots and lots of Plasma 6 stability work and the beginning of Plasma 6.1 feature work, Dolphin received large amount of development this week, resulting in some nice improvements. Check it out!

New Features

KSSHAskPass (which has the best name of any app in the world, change my mind) now supports SK-type SSH keys (Franz Baumgärtner, KSSHAskPass 24.05. Link)

Gave the Web Browser widget the option to always load a specific page every time, or remember the last-browsed-to one (Shubham Arora, Plasma 6.1. Link):

Info Center has a new page showing you technical audio information for debugging purposes (Shubham Arora, Plasma 6.1. Link)

The icon chooser dialog how has a filter so you can see only symbolic icons, or no symbolic icons (Kai Uwe Broulik, Frameworks 6.1. Link):

UI Improvements

Dolphin’s icon once again changes with the accent color (Kai Uwe Broulik, Dolphin 24.02.1. Link)

Most of Dolphin’s bars are now animate appearing and disappearing (Felix Ernst, Dolphin 24.05. Link):

https://i.imgur.com/S9FcNzq.mp4

Some folders in Dolphin get special view settings applied by default, such as the Trash and Downloads folders. Now these special view settings get applied to those folders even if you’re using the “use same view settings for all folders” setting (Jin Liu, Dolphin 24.05. Link)

Dolphin now has a new tab in its settings window for settings about its panels, which were previously hidden away in a context menu. So far just the Information Panel is represented there, but others may be added later! (Benedikt Thiemer, Dolphin 24.05. Link):

Made touch scrolling in Konsole work better (Willian Wang, Konsole 24.05. Link)

Improved the way Konsole’s text cursor scales on Wayland, especially with fractional scale factors (Luis Javier Merino Morán, Konsole 24.05. Link)

Okular already lets you scroll around a document with the hjkl keys. Now if you hold down the Shift key while doing it, it scrolls 10 times faster! (Someone going by the pseudonym “GI GI”, Okular 24.05. Link)

KRunner-powered search fields in Overview and the Search widget show the same search ordering that other ones already do (Alexander Lohnau, Plasma 6.0.2. Link)

The Power and Energy widget now hides its “Show Battery percentage on icon when not fully charged” option when the system has no batteries (Natalie Clarius, Plasma 6.0.2. Link)

With non-random wallpaper slideshows, Plasma now remembers the last-seen one and starts from there the next time you log in (Fushan Wen, Plasma 6.0.2. Link)

Improved keyboard navigation Kirigami sidebars powered by the GlobalDrawer component (Carl Schwan, Frameworks 6.1. Link)

Increased the size of the “Get new Plasma Widgets” dialog (Me: Nate Graham, Frameworks 6.1. Link)

Bug Fixes

Fixed one source of issues with the lock screen breaking on X11 by showing a black background. There may be more, and we’re on the case for those too (Jakob Petsovits, Plasma 6.0.2. Link)

Fixed a way that the Battery Monitor widget could cause Plasma to crash (Natalie Clarius, Plasma 6.0.2. Link)

Fixed a way that Plasma could crash when you middle-click tasks in the Task Manager, or rapidly left-click on random audio-playing tasks (Fushan Wen, Plasma 6.0.2, Link 1 and link 2)

On X11, clicks no longer get eaten on part of top panels (Yifan Zhu, Plasma 6.0.2. Link)

On X11, lock and sleep inhibitions once again work (Jakub Gocoł, Plasma 6.0.2. Link)

Fixed most of the incorrectly-colored System Tray icons when using mixed dark/light themes. There’s still one remaining source of this that we found, which is also being worked on (Nicolas Fella, Plasma 6.0.2. Link)

You can once again scrub through songs played in Spotify using the Media Player widget (Fushan Wen, Plasma 6.0.2. Link)

Fixed several issues with panel widgets (including Kickoff) incorrectly passing focus to their parent panel when activated (Niccolò Venerandi, Plasma 6.0.2. Link)

Dragging widgets to or from panels no longer sometimes causes Plasma to crash or makes the widget get stuck in ghost form on the desktop (Marco Martin, Plasma 6.0.3. Link 1 and link 2)

On Wayland, adding a second keyboard layout now causes the relevant System Tray widget to appear immediately, rather than only after Plasma or the system was restarted (Harald Sitter, Plasma 6.0.3. Link)

Fixed a way that Bluetooth pairing could fail (Ajrat Makhmutov, Plasma 6.0.3, Link)

On X11, the screen chooser OSD works again (Fushan Wen, Plasma 6.0.3. Link)

Breeze GTK is once again the default GTK theme (Fabian Vogt, Plasma 6.0.3. Link)

Yet again fixed the login sound so that it actually plays (Harald Sitter, Plasma 6.0.3. Link)

Reverted to an older and better way of sending pointer events on Wayland, which fixes multiple issues involving windows and cursors teleporting unexpectedly while dragging to maximize or de-maximize windows (Vlad Zahorodnii, Plasma 6.1. Link 1, link 2, and link 3)

Fixed a bunch of weird cursor issues with GPUs that don’t support variable refresh rate properly (Xaver Hugl, Plasma 6.1. Link)

Fixed a source of xdg-desktop-portal crashes on boot (David Redondo, Frameworks 6.1 Link)

Fixed two issues with the “Get New [thing]” dialogs that caused them to not show installation progress correctly, and get stuck after uninstalling something (Akseli Lahtinen, Frameworks 6.1. Link 1 and link 2)

System Monitor charts now appear properly for users of 10+ year-old Intel integrated GPUs (Arjen Hiemstra, Frameworks 6.1. Link)

More UI elements throughout QtQuick-based KDE software stop animating when animations are globally disabled, which also fixes an issue where Plasma button highlights would disappear with animations are globally disabled (me: Nate Graham, Frameworks 6.1. Link 1 and link 2)

Other bug information of note:

Performance & Technical

Fixed a source of 25-second Plasma startup delays when using KDE Connect with Bluetooth disabled or absent (Simon Redman, the next KDE Connect release, though most distros have already backported it. Link)

Fixed another source of slow Plasma startups caused by using the Bing picture of the day wallpaper (Fushan Wen, Plasma 6.0.2. Link)

KWin now does direct scan-out even for rotated screens (Xaver Hugl, Plasma 6.1. Link)

Reduced the size of all the wallpapers in the plasma-workspace-wallpapers repo by 10 MB (Martin Rys, Plasma 6.1. Link)

Ported Kile to KDE Frameworks 6. Hopefully this should presage a new release soon (Carl Schwan, link)

Automation & Systematization

Wrote a tutorial about setting up your app’s continuous integration system to package and publish to the Windows store (Ingo Klöcker, link)

Added some autotests for X11-specific window behavior (Vlad Zahorodnii, link)

Other

Rewrote a some chunks of text on KDE neon’s website to make it reflect reality: it is a distro, its target users are those who want KDE stuff fast and can tolerate some instability, and you shouldn’t use the package manager to get apps (me: Nate Graham, link 1, link 2, link 3, and link 4)

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

Please help with bug triage! The Bugzilla volumes are extraordinary right now and we are overwhelmed. I’ll be doing another blog post on this tomorrow; for now, if you’re interested, read this.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!

Categories: FLOSS Project Planets

Patryk Cisek: OpenPGP Paper Backup

Planet Debian - Fri, 2024-03-15 17:42
openpgp-paper-backup I’ve been using OpenPGP through GnuPG since early 2000’. It’s an essential part of Debian Developer’s workflow. We use it regularly to authenticate package uploads and votes. Proper backups of that key are really important. Up until recently, the only reliable option for me was backing up a tarball of my ~/.gnupg offline on a set few flash drives. This approach is better than nothing, but it’s not nearly as reliable as I’d like it to be.
Categories: FLOSS Project Planets

Robin Wilson: How to speed up appending to PostGIS tables with ogr2ogr

Planet Python - Fri, 2024-03-15 13:28

Summary: If appending to a PostGIS table with GDAL/OGR is taking a long time, try setting the PG_USE_COPY config option to YES (eg. adding --config PG_USE_COPY YES to your command line). This should speed it up, but beware that if there are concurrent writes to your table at the same time as OGR is accessing it then there could be issues with unique identifiers.

As with many of my blog posts, I’m writing this in the hope that it will appear in searches when someone else has the same problem that I ran into recently. In the past I’ve found myself Googling problems that I’ve had before and finding a link to my blog with an explanation in a post that I didn’t even remember writing.

Anyway, the problem I’m talking about today is one I ran into when working with a client a few weeks ago.

I was using the ogr2ogr command-line tool (part of the GDAL software suite) to import data from a local Geopackage file into a PostGIS database (ie. a PostgreSQL database with the PostGIS extension).

I had multiple files of data that I wanted to put into one Postgres table. Specifically, I was using the lovely data collated by Alasdair Rae on the resources page of his website. Even more specifically, I was using some of the Local Authority GIS data to get buildings data for various areas of the UK. I downloaded multiple GeoPackage files (for example, for Southampton City Council, Hampshire County Council and Portsmouth City Council) and wanted to import them all to a buildings table.

I originally tested this with a Postgres server running on my local machine, and ran the following ogr2ogr commands:

ogr2ogr --debug ON \ -f PostgreSQL PG:"host=localhost user=postgres password=blah dbname=test_db" \ buildings1.gpkg -nln buildings ogr2ogr -append -update --debug ON \ -f PostgreSQL PG:"host=localhost user=postgres password=blah dbname=test_db" \ buildings2.gpkg -nln buildings

Here I’m using the -f switch and the arguments following it to tell ogr2ogr to export to PostgreSQL and how to connect to the server, giving it the input file of buildings1.gpkg and using the -nln parameter to tell it what layer name (ie. table name) to use as the output. In the second command I do exactly the same with buildings2.gpkg but also add -append and -update to tell it to append to the existing table rather than overwriting it.

This all worked fine. Great!

A few days later I tried the same thing with a Postgres server running on Azure (using Azure Database for PostgreSQL). The first command ran fine, but the second command seemed to hang.

I was expecting that it would be a bit slower when connecting to a remote database, but I left it running for 10 minutes and it still hadn’t finished. I then tried importing the second file to a new table and it completed quickly – therefore suggesting it was some sort of problem with appending the data.

I worked round this for the time being (using the ogrmerge.py script to merge my buildings1.gpkg and buildings2.gpkg into one file and then importing that file), but resolved to get to the bottom of it when I had time.

Recently, I had that time, and posted on the GDAL mailing list about this. The maintainer of GDAL got back to me to tell me about something I’d missed in the documentation. This was that when importing to a brand new table, the Postgres COPY mode is used, but when appending to an existing table individual INSERT statements are used instead, which can be a lot slower.

Let’s look into this in a bit more detail. The PostgreSQL COPY command is a fast way of importing data into Postgres which involves copying a whole file of data into Postgres in one go, rather than dealing with each row of data individually. This can be significantly faster than iterating through each row of the data and running a separate INSERT statement for each row.

So, ogr2ogr hadn’t hung, it was just running extremely slowly, as inserting my buildings layer involved running an INSERT statement separately for each row, and there were hundreds of thousands of rows. Because the server was hosted remotely on Azure, this involved sending the INSERT command from my computer to the server, waiting for the server to process it, and then the server sending back a result to my computer – a full round-trip for each row of the table.

So, I was told, the simple way to speed this up was to use a configuration setting to turn COPY mode on when appending to tables. This can be done by adding --config PG_USE_COPY YES to the ogr2ogr command. This did the job, and the append commands now completed nice and quickly. If you’re using GDAL/OGR from within a programming language, then have a look at the docs for the GDAL bindings for your language – there should be a way to set GDAL configuration options in your code.

The only final part of this was to understand why the COPY method isn’t used all the time, as it’s so much quicker. Even explained that this is because of potential issues with other connections to the database updating the table at the same time as GDAL is accessing it. It is a fairly safe assumption that if you’re creating a brand new table then no-one else will be accessing it yet, but you can’t assume the same for an existing table. The COPY mode can’t deal with making sure unique identifiers are unique when other connections may be accessing the data. whereas individual INSERT statements can cope with this. Therefore it’s safer to default to INSERT statements when there is any risk of data corruption.

As a nice follow-up for this, and on the maintainer’s advice, I submitted a PR to the GDAL docs, which adds a new section explaining this and giving guidance on setting the config option. I’ve copied that section below:

When data is appended to an existing table (for example, using the -append option in ogr2ogr) the driver will, by default, emit an INSERT statement for each row of data to be added. This may be significantly slower than the COPY-based approach taken when creating a new table, but ensures consistency of unique identifiers if multiple connections are accessing the table simultaneously.

If only one connection is accessing the table when data is appended, the COPY-based approach can be chosen by setting the config option PG_USE_COPY to YES, which may significantly speed up the operation.

Categories: FLOSS Project Planets

The Drop Times: Drupal is Alive and Well in India: Tim Doyle

Planet Drupal - Fri, 2024-03-15 09:49
Tim Doyle, CEO of Drupal Association, reflects on a vibrant gathering of industry leaders and young talents in India, showcasing the potential and enthusiasm within the country's Drupal community.
Categories: FLOSS Project Planets

Acquia Developer Portal Blog: Running Nightwatch tests in Acquia Code Studio

Planet Drupal - Fri, 2024-03-15 09:49

Nightwatch is an automated testing framework for web applications and websites. It uses the W3C WebDriver API to simulate real user interactions in a web browser environment, such as Chrome, to test the complete flow of an application, end-to-end.

In this tutorial, we'll see how we can extend the Acquia AutoDevOps template that comes out-of-the-box with Code Studio to also run Nightwatch tests for our application so we can ensure critical features remain functional as we further develop and maintain it.

  1. A simple Nightwatch test

    To start, let's first add a simple Nightwatch test to verify Drupal is up and running by navigating to the Drupal login page and

Categories: FLOSS Project Planets

Acquia Developer Portal Blog: EvolveDrupal Guide

Planet Drupal - Fri, 2024-03-15 09:49
About the Host, Evolving Web

Evolving Web is the agency partner that empowers organizations to adapt to the ever-changing digital landscape. We’re a team of 90+ technologists, storytellers and creatives who believe that a dynamic and adaptable digital presence is the most powerful way for clients to create meaningful connections. Through strategy, technology, design, marketing, and training, we set stories in motion through digital platforms designed for growth. 

Evolving Web was founded in 2007 by two passionate Drupalists on the ideals that define the open source ethos: transparency, collaboration, and continuous improvement. Then and now, we believe in the power of open source to drive innovation and growth. Our team regularly contributes to the open source community through code, documentation, sponsorship, strategic initiatives, and events like EvolveDrupal. 

Categories: FLOSS Project Planets

Acquia Developer Portal Blog: Getting Started with Acquia Cloud IDE: A Code Editor as a Service

Planet Drupal - Fri, 2024-03-15 09:49

There are two main challenges developers face when setting up and managing their local environments: 

  1. Lack of local resources (You need a powerful machine to run Docker.)
  2. Lots of time spent configuring environments, especially if you want to build something more sophisticated

While it may be fun experimenting with Linux and everything related to DevOps, sometimes you just don’t have the time. Sound familiar?

Don’t take my word for it. Check out this Twitter poll conducted by a former colleague:

The results could not be more clear. Developers want simplicity. Fair, right? You have enough stress and problems to solve as you work to meet tight deadlines.

Categories: FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #196: Exploring Duck Typing in Python & Dynamics of Monkey Patching

Planet Python - Fri, 2024-03-15 08:00

What are the advantages of determining the type of an object by how it behaves? What coding circumstances are not a good fit for duck typing? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.

[ 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 ]

Categories: FLOSS Project Planets

Web Review, Week 2024-11

Planet KDE - Fri, 2024-03-15 07:59

Let’s go for my web review for the week 2024-11.

The Getty Makes Nearly 88,000 Art Images Free to Use However You Like | Open Culture

Tags: foss, culture, art

This is a big and relevant release for open and freely accessible culture.

https://www.openculture.com/2024/03/the-getty-makes-nearly-88000-art-images-free-to-use-however-you-like.html


Announcing Speedometer 3.0: A Shared Browser Benchmark for Web Application Responsiveness

Tags: tech, browser, frontend, web, performance, benchmarking

This is nice to see a new benchmark being published. This seems to follow real life scenarios. We can expect browser engines performance to increase.

https://browserbench.org/announcements/speedometer3/


Rebuilding FourSquare for ActivityPub using OpenStreetMap – Terence Eden’s Blog

Tags: tech, fediverse, map, geospatial

Neat early experiments on query OSM for nearest potential point of interests and of geolocation support in ActivityPub implementations.

https://shkspr.mobi/blog/2024/01/rebuilding-foursquare-for-activitypub-using-openstreetmap/


S3 is files, but not a filesystem

Tags: tech, cloud, storage, amazon

A good explanation of the S3 pros and cons.

https://calpaterson.com/s3.html


Not so quickly extending QUIC

Tags: tech, networking, protocols, standard, quic

Interesting stuff coming in that space, but at a very slow pace. This is unfortunate since it makes adoption slower too.

https://lwn.net/Articles/964377/


Cloning a laptop over NVME TCP

Tags: tech, storage, networking

Very interesting trick! I didn’t know you could use NVME over TCP. This is indeed perfect for cloning a laptop. This sounds slow but this is the kind of things you can run over night.

https://copyninja.in/blog/clone_laptop_nvmet.html


How HEAD works in git

Tags: tech, tools, git, version-control

Good explanations on how HEAD works in git and what it means. It’s indeed one of those terms where the consistency isn’t great in git.

https://jvns.ca/blog/2024/03/08/how-head-works-in-git/


A TUI Git client inspired by Magit

Tags: tech, git, command-line

Looks like an interesting Git user interface. I’ll take it out for a spin.

https://github.com/altsem/gitu


C++ safety, in context – Sutter’s Mill

Tags: tech, c++, memory, safety

Excellent piece from Herb Sutter once again. This is a very well balanced view about language safety and how far C++ could go in this direction. This is a nice call to action, would like to see quite some of that happen.

https://herbsutter.com/2024/03/11/safety-in-context/


A Tale of Two Standards

Tags: tech, standard, portability, unix, linux, posix, windows, history

An old article, but a fascinating read. This gives a good account on the evolution of POSIX and Win32. The differences in design and approaches are covered. Very much recommended.

https://www.samba.org/samba/news/articles/low_point/tale_two_stds_os2.html


Screen Space Reflection

Tags: tech, 3d, shader

Interesting walk through of a shader to compute reflections in a scene.

https://zznewclear13.github.io/posts/screen-space-reflection-en/


My favourite animation trick: exponential smoothing | lisyarus blog

Tags: tech, graphics, animation

A deep dive in the properties of exponential smoothing for animations. It’s often overlooked.

https://lisyarus.github.io/blog/programming/2023/02/21/exponential-smoothing.html


cohost! - “Rotation with three shears”

Tags: tech, graphics, history

Fascinating trick in 2d graphics. Not really useful nowadays, but interesting.

https://cohost.org/tomforsyth/post/891823-rotation-with-three


What Mob Programming is Bad At • Buttondown

Tags: tech, optimization, pairing, mob-programming

Interesting take and theory about pair and mob programming. Indeed finding the right path to optimize a piece of code is likely harder in such setups.

https://buttondown.email/hillelwayne/archive/what-mob-programming-is-bad-at/


40 years of programming

Tags: tech, craftsmanship, career

Very interesting insights from someone who’s been practicing this trade for a long time. I agree with most of it, it’s inspiring.

https://liw.fi/40/


On The Importance of Getting The Foundations Right - Cybernetist

Tags: tech, engineering, craftsmanship, architecture

Definitely this. The difference between a well performing team and one delivering subpar software is the basics of our trade. Minding your data models, your architectures and the engineering practices will get you a long way.

https://cybernetist.com/2024/03/11/importance-of-getting-the-foundations-right/


Work on tasks, not stories | nicole@web

Tags: tech, project-management, agile

Definitely this. The distinction between stories and tasks is an important one. Don’t confuse them.

https://ntietz.com/blog/work-on-tasks-not-stories/


Breaking Down Tasks - Jacob Kaplan-Moss

Tags: tech, project-management, estimates

This is indeed an important aspect of estimating work. The smaller you manage to break down tasks the easier it will be to estimate. Breaking down work is a skill in itself though.

https://jacobian.org/2024/mar/11/breaking-down-tasks/


Futility of Shortening Iterations | by Aviv Ben-Yosef | Mar, 2024 | Medium

Tags: tech, product-management, project-management

There’s some truth to this. Shorter optimized iterations with no good learning opportunities lead to busy work.

https://avivby.medium.com/futility-of-shortening-iterations-af4d3a3d9b3d


So you’ve been reorg’d… - Jacob Kaplan-Moss

Tags: management, organization

A bit US centric at times, but there are some more generally applicable advices in this piece. This can help you navigate in the time of a company reorganization (not always called out as such).

https://jacobian.org/2024/mar/12/reorg/


Bye for now!

Categories: FLOSS Project Planets

PyCharm: Pytest vs. Unittest: Which Is Better?

Planet Python - Fri, 2024-03-15 06:47
Python, being a versatile and widely used programming language, offers several testing frameworks to facilitate the testing process. Two prominent choices are pytest and unittest, both of which come with their own sets of features and advantages. In this article, we’ll be covering the following sections: This will help you determine which testing framework is […]
Categories: FLOSS Project Planets

RESTful Client Applications in Qt 6.7 and Forward

Planet KDE - Fri, 2024-03-15 03:39

Qt 6.7 introduces convenience improvements for implementing typical RESTful/HTTP client applications. The goal was/is to reduce the repeating networking boilerplate code by up to 40% by addressing the small but systematically repeating needs in a more convenient way. 

These include a new QHttpHeaders class for representing HTTP headers, QNetworkRequestFactory for creating API-specific requests,  QRestAccessManager class for addressing small but often-repeating pieces of code, and QRestReply class for extracting the data from replies and checking for errors. QNetworkRequestFactory, QRestAccessManager, and QRestReply are released as Technical Previews in Qt 6.7.

Categories: FLOSS Project Planets

Lullabot: Lullabot Podcast: Ease of Updates, Compounded Peace of Mind

Planet Drupal - Thu, 2024-03-14 23:00

We look into the challenges and solutions in managing Drupal and other website updates across hundreds of websites, a topic brought to life by members of Lullabot's Support and Maintenance team and Jenna Tollerson from the State of Georgia.

Learn how Lullabot deals with update processes, drastically reducing manual labor while enhancing security and efficiency through automation.

"It's almost like adding another whole developer to your team!"

Categories: FLOSS Project Planets

New Release Team Blog

Planet KDE - Thu, 2024-03-14 20:00
This blog will be used by the Release Team for communally maintained projects which need a release announcement. KDE Frameworks, Plasma and KDE Gear will remain on kde.org. But individual releases of apps and libraries which get their own releases can be announced here.
Categories: FLOSS Project Planets

Ruqola 2.1.1

Planet KDE - Thu, 2024-03-14 20:00
Ruqola 2.1.1 is a bugfix release of the Rocket.chat app. Improvements: Preview url fixed I implement "block actions" (it's necessary in RC 6.6.x when we invite user) Fix OauthAppsUpdateJob support (administration) Fix update view when we translate message (View was not updated in private channel) Show server icon in combobox server Fix show icon for displaying emoji popup menu when we display thread message Fix jitsi support Fix dark mode URL: https://download.
Categories: FLOSS Project Planets

Paolo Melchiorre: Pybites Podcast #155

Planet Python - Thu, 2024-03-14 19:00

Episode 155 of Pybites podcast with the title “Django, Open Source & Pycon Conferences, Paolo Melchiorre’s Developer Odyssey”

Categories: FLOSS Project Planets

GNUnet News: GNUnet 0.21.1

GNU Planet! - Thu, 2024-03-14 19:00
GNUnet 0.21.1

This is a bugfix release for gnunet 0.21.0. It primarily addresses some connectivity issues introduced with our new transport subsystem.

Links

The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A

Note that due to mirror synchronization, not all links may be functional early after the release. For direct access try https://ftp.gnu.org/gnu/gnunet/

Categories: FLOSS Project Planets

Gregor Herrmann: teamwork in practice

Planet Debian - Thu, 2024-03-14 18:10

teamwork, or: why I love the Debian Perl Group:

elbrus has introduced a (very untypical) package into the Debian Perl Group in 2022.

after changes of the default compiler options (-Werror=implicit-function-declaration) in debian, it didn't build any more & received an RC bug.

because I sometimes like challenges, I had a look at it & cobbled together a patch. as I hardly speak any C, I sent my notes to the bug report & (implictly) asked for help. – & went out to meet a friend.

when I came home, I found an email from ntyni, sent less than 2 hours after my mail, where he friendly pointed out the issues with my patch – & sent a corrected version.

all I needed to do was to adjust the patch & upload the package. one more bug fixed, one less task for us, & elbrus can concentrate on more important tasks :)
thanks again, niko!

Categories: FLOSS Project Planets

Pages