Skip to content

Monday, 27 November 2023

We're happy to announce the new release 5.12.0 of KPhotoAlbum, the KDE photo management program!

20 years KPhotoAlbum

This is some kind of "special" release, as exactly 20 years ago, on 2003-11-27, version 1.0 was tagged (we tagged this release already on saturday, so that it will hit the mirrors and we can publish this release announcement at this very date though ;-).

20 years is quite a long time for such a "small" FLOSS project. Enough times, nice programs die from bit rot, because the only dev or too many of the few lose interest in it, don't need it anymore and/or nobody wants to take over maintainership. Happily, this is not the case for KPA! After all these years, the project is still alive and kicking, and – when the family, the job and everything else allow it (after all, we're all not fulltime KPA devs), we work on it to make it better.

Just speaking of me, I joined the project back in 2014, almost ten years ago now (which is arguably also quite a long period of time). And I'm really proud to still be a part of this great project :-)

So, I think it's time to especially thank Jesper Pedersen for initiating the project back then, and Johannes Zarl-Zierl for taking over the maintainership and being the project leader since 2019! Joyfully, Jesper never really stopped contributing to KPA and still works on it until now.

After all, we're still – without too much self-laudation – a small but excellent crew of FLOSS enthusiasts ;-)

But about the release itself:

What's new?

Bugfixes

Most notably, we could fix a really big amount of crashes and unexpected behavior. The following bug reports could be closed as "fixed": #472427, #472523, #473231, #473324, #473587, #473762, #474151, #474392, #475387, #475388, #475529, #475585, #476131, #476561, #476651, #476862 and #477195. That's quite an impressive list, isn't it?!

Kudos to our new super-diligent beta tester Victor Lobo for filing 17 of those bug reports alone, always providing meaningful information about how to reproduce the issue and tirelessly testing the fixes. Thank you! As a dev, you really appreciate this! Apart from that, also big thanks to Pierre Etchemaïté and Andreas Schleth for providing equivalently excellent bug reports!

Thanks to you all for helping making KPhotoAlbum better!

New features and changes

Apart from that, there are also some new interesting features:

  • Support annotating images from the viewer by using letters to assign tags. Use the context menu and select "Annotate | Assign Tags" to enable. More information is available in the KPhotoAlbum handbook.
  • Add option to sort category page by natural order (feature #475339). Natural sort order takes the locale into account and sorts numeric values properly (e.g. sort "9" before "10").
  • Allow selecting a date range in the DateBar via keyboard (Use "Shift + Left|Right")
  • Allow closing the annotation dialog's fullscreen preview using the Escape key.

… as well as sone changes:

  • In the viewer window, using the letters A-Z to assign tokens now needs to be explicitly enabled. You can do this by opening the context menu and selecting "Annotate | Assign Tokens".
  • When KPhotoAlbum is started in demo mode and a previously saved demo database exists, the old demo database is no longer overwritten.
  • The ui.rc file (kphotoalbumui.rc) is now deployed as a Qt resource instead of an on-disk file.
  • Improved usability of "Invoke external program" menu (#474819)
  • No longer set the default shortcut for "Use current video frame in thumbnail view" to Ctrl+S and avoid shortcut conflict.
  • Restrict context menu entries for fullscreen preview of annotation dialog to a sane set of actions.
  • It is no longer possible to annotate images from the viewer by pressing "/" and typing tag names.
  • It is no longer possible to change an image through the annotation dialog's fullscreen image preview.

Thanks to everybody involved!

According to git, the following individuals pushed commits:

  • Yuri Chornoivan
  • Friedrich W. H. Kossebau
  • Nicholas Leggiero
  • Tobias Leupold
  • Alexander Lohnau
  • Scarlett Moore
  • Jesper K. Pedersen
  • Johannes Zarl-Zierl

Thanks for spending your time with coding on KPA and for contributing your work!

Have a lot of fun with the new release, and keep KPA the best photo management program out there, also for the 20 years to come :-)

— Tobias

We’re already in November, but I managed to do a lot of work this month which I’m really happy about.

Quickly something that’s not strictly programming: I was accepted as a member of KDE e.V. early this month, thank you all very much! I was also given moderation powers on Discuss so maybe it will stop rate limiting me when moving posts around.

I also went on a crusade of merging and triaging merge requests on Invent, which some of you might’ve seen. Notably I was able to take care one or two pages worth of open MRs, which I’m really happy about.

Without further ado, let’s begin.

Plasma

[Feature] Merged the Game Controller KCM into Plasma, starting with a simple rewrite in QML. I’m aiming to add back the visual representation in 6.1 (which still exists in the standalone repository if you want to take a shot at it.) At least for right now the code is much better and it supports more devices than the 5.X Joystick KCM ever could. [6.0]

The new and not much improved Game Controller KCM

My hope is that since it’s much cleaner and easier to work with, it would invite more contributors… and it’s already doing that as we speak! :-)

NeoChat

[Feature] Blockquotes now look more like quotes, and no longer just somewhat indented blocks of text. [24.02]

New blockquote stylings

[Bugfix] You can now right-click (or long tap) on rooms to access the context menu without switching to it. I gave the treatment for spaces a while back. [24.02]

[Feature] Added UnifiedPush support! It’s functional already and I have used it to receive push notifications even when NeoChat is closed. [24.02]

Tokodon

[Feature] I merged the post redesign I was teasing on Mastodon, which includes better margins and standalone tags. [24.02]

The new post design, which includes standalone tags!

[Feature] The language selector is now a regular dialog and not the buggy custom combo box we had before. It now displays the native language name, if available. [24.02]

The new language selector

[Feature] Muting and blocking users has been accessible through profile pages, and now those actions are present in the post menu like on Mastodon Web. Useful for taking action against harmful users without navigating to a cesspool of a profile too. [24.02]

[Feature] Added a report dialog. It’s a little basic right now, which I want to improve before release. [24.02]

The new report dialog

[Feature] Rebased and merged Rishi’s Moderation Tool, which works fantastic and I used this to test my reporting feature! [24.02]

[Feature] Added a way to filter out boosts and replies from timeline pages. [24.02]

New filter controls

[Feature] Added supports for lists. You can’t add people to lists (you must use another client to do that) but you can at least view and manage them. [24.02]

New list management

Kiten

[Bugfix] Marked the X11 socket as fallback. This removes a warning on the Flathub page about the deprecated windowing system. [23.08]

Now the Flathub page is all green!

[Bugfix] Numerous UI improvements, such as improving the margins of configuration dialogs. I also redid the toolbar layout. [24.02]

The new toolbar layout

[Feature] Added a search function to the Kanji browser. [24.02]

Kirigami

[Bugfix] Fixed an edge cases of ToolBar incubation, which liked to spam logs. I squashed some other log spam, so Kirigami applications should be less noisy. [6.0]

[Feature] Added a property to FlexColumn that allows you to read the inner column’s width. We use this in Tokodon to set the width of the separator between posts. [6.0]

Craft

I’m getting addicted to fixing Craft recipes, and there’s a lot to fix in the upcoming 6.0 megarelease:

KUnifiedPush

[Feature] Improved the look of it’s KCM. Not only does it look nice, and it’s design is more in line with other list based ones.

The new look for the Push Notifications KCM!

PlasmaTube

[Feature] Added better hover effects for video items. I did a bunch of refactoring to unify the two types (list and grid) so they work better in general (especially for keyboard-only navigation.) [24.02]

[Feature] Added a video queue system, which is exactly what you think it is. You can queue up an entire playlist, or add videos manually like on YouTube. [24.02]

[Feature] Different types of search results is supported now, so you can find channels and playlists. [24.02]

[Feature] Public Piped instances are now fetched and displayed on initial setup. [24.02]

[Feature] Features of PlasmaTube that are unsupported by the current video source are now disabled or hidden. This should result in less buggy and broken looking behavior depending on which video source you use. [24.02]

[Feature] Added support for MPRIS, which is used by the Media Player applet, the lockscreen and KDE Connect. [24.02]

Accessibility

[Bugfix] Fixed our spinboxes not being read correctly by screen readers, since they were editable by default. Now the accessible descriptions and other data is passed down to the text field. Fixed in QQC2 Desktop Style (used on Plasma Desktop) and QQC2 Breeze Style (Plasma Mobile and Android.) [6.0]

Documentation

Found lots more missing Bugzilla links in Invent, and did some more README updating!

KWeather

[Bugfix] Fixed the setup wizard. [24.02]

Upcoming

[Feature] Not merged yet, but I’m adding a pen calibration tool to the Tablet KCM. If you have the required equipment and can test, please help out! It’s cutting it close to the feature freeze, so this will most likely be pushed off until 6.1.

The new calibrator

See you in December!

Friday, 24 November 2023

Let’s go for my web review for the week 2023-47.


What OpenAI shares with Scientology

Tags: tech, ai, criticism

Ironically, I think this is one of the best analysis I’ve seen regarding OpenAI and the recent turmoil around of one of its founders.

https://www.programmablemutter.com/p/look-at-scientology-to-understand


Oops! We Automated Bullshit. | Department of Computer Science and Technology

Tags: tech, ai, machine-learning, gpt, criticism

Excellent piece about everything which is wrong in the current industrialization moment of generative AI.

https://www.cst.cam.ac.uk/blog/afb21/oops-we-automated-bullshit


Pluralistic: Tesla’s Dieselgate (28 July 2023)

Tags: tech, automotive, DRM

Don’t you love DRMs in cars? Especially when the business people at the helm are pathological liars?

https://pluralistic.net/2023/07/28/edison-not-tesla/


Youtube has started to artificially slow down video load times if you use Firefox

Tags: tech, google, attention-economy

I guess it’s a strategy to move more people over to Chrome. Shameful.

https://old.reddit.com/r/youtube/comments/17z8hsz/youtube_has_started_to_artificially_slow_down/


Cryptographers Solve Decades-Old Privacy Problem - Nautilus

Tags: tech, cryptography, privacy

Cool results, let’s see what the future brings. This could be exciting.

https://nautil.us/cryptographers-solve-decades-old-privacy-problem-444899/


Streamlined interface for generating images with AI in Krita

Tags: tech, graphics, ai, machine-learning

I guess this will end up being a popular plugin for Krita.

https://github.com/Acly/krita-ai-diffusion


Audio Samples from StyleTTS 2

Tags: tech, ai, machine-learning, speech

The newer text to speech models are really good now.

https://styletts2.github.io/


Making an E-Paper Picture Frame

Tags: tech, raspberry-pi, e-ink

This is a cool project, not too expensive as well.

https://wolfgang-ziegler.com/blog/ink-display


Email obfuscation: What still works in 2023?

Tags: tech, web, email, spam

Good list of techniques. Some of them aren’t fully evaluated yet. Definitely worth considering.

https://spencermortensen.com/articles/email-obfuscation/


Ethernet is Still Going Strong After 50 Years - IEEE Spectrum

Tags: tech, networking, history

A bit of history behind what’s probably the most widespread local network technology.

https://spectrum.ieee.org/ethernet-ieee-milestone


RFC 9498: The GNU Name System

Tags: tech, dns, privacy, censorship

Interesting a new name system being standardized. It’s supposed to protect privacy and be censorship resistant. We’ll see how it gets adopted.

https://lists.gnu.org/archive/html/info-gnunet/2023-11/msg00000.html


How many floating-point numbers are in the interval [0,1]? – Daniel Lemire’s blog

Tags: tech, floats

Floating-point numbers are really a complicated species. This is an interesting deep dive in some of their representation.

https://lemire.me/blog/2017/02/28/how-many-floating-point-numbers-are-in-the-interval-01/


Herbie: Automatically Improving Floating Point Accuracy

Tags: tech, floats, tools

Interesting tool. Hopefully will help us manipulate floating point expressions better.

https://herbie.uwplse.org/


A close encounter with false sharing | More Stina Blog!

Tags: tech, multithreading, performance

Good reminder that false sharing is a real thing. It’s easier to encounter than you think when you start to dabble into multi-threading.

https://morestina.net/blog/1976/a-close-encounter-with-false-sharing


GWP-ASan: Sampling-Based Detection of Memory-Safety Bugs in Production - 2311.09394.pdf

Tags: tech, memory, safety, security

Nice approach to also hunt for memory safety issues while software is in production.

https://arxiv.org/pdf/2311.09394.pdf


Retries – An interactive study of common retry methods – Encore Blog

Tags: tech, networking, programming

Nice little article with simulations demonstrating why you want exponential backoff and how jitter is an extra layer of protection for the server.

https://encore.dev/blog/retries


Create RSS Feeds in Java using ROME

Tags: tech, java, rss

Yes, I have a thing for bringing RSS back. This time it’s a library enabling the feature for Java projects. Looks easy to use.

https://www.blackslate.io/articles/create-rss-feeds-in-java-using-rome


Explicit Resource Management: Exploring JavaScript’s and TypeScript’s new feature | iliazeus

Tags: tech, javascript, resources

Looks like RAII is finally making its way in Javascript. This looks like a good thing, it’s still rough around the edges though.

https://iliazeus.github.io/articles/js-explicit-resource-management-en/


The Changing “Guarantees” Given by Python’s Global Interpreter Lock · Stefan-Marr.de

Tags: tech, python, multithreading

Won’t be easy to get rid of the GIL in the Python ecosystem. There are notable differences of behavior between implementations and even versions of the same implementation… Lots of user code will unwillingly depend on a specific set of guarantees.

https://stefan-marr.de/2023/11/python-global-interpreter-lock/


It’s Time For A Change: datetime.utcnow() Is Now Deprecated - miguelgrinberg.com

Tags: tech, python, api

Since quite a lot of Python code will be impacted by this, better get ready.

https://blog.miguelgrinberg.com/post/it-s-time-for-a-change-datetime-utcnow-is-now-deprecated


Exploring a Postgres query plan | notes.eatonphil.com

Tags: tech, postgresql, databases

Ever wondered how to programmatically introspect query plans? This is a long article but good starting point on how it’s represented under the hood.

https://notes.eatonphil.com/2023-11-19-exploring-a-postgres-query-plan.html


garnix | Contextual CLIs

Tags: tech, command-line

Good food for thought to design CLI interfaces.

https://garnix.io/blog/contextual-cli


An Interactive Guide to CSS Grid

Tags: tech, frontend, browser, css

Nice guide, the interactive parts definitely help. Good way to improve CSS Grid use. It’s much more powerful than I suspected.

https://www.joshwcomeau.com/css/interactive-guide-to-grid/


How large pull requests slow down development

Tags: tech, git, version-control, complexity, risk, quality

Interesting statistics, this show how important it is to have well structured and focused change sets as much as possible.

https://graphite.dev/blog/how-large-prs-slow-down-development


Software Development and Postmortems

Tags: tech, project-management, failure, postmortem

Very good piece. Explains why postmortems are important. It also explains how to prepare your organization to conduct them and how to do them properly. This is important since a lot of pressure will happen in case of a failure.

https://vadimkravcenko.com/shorts/dealing-with-failures-and-postmortems/


75% of Software Engineers Faced Retaliation Last Time They Reported Wrongdoing - Engprax

Tags: tech, politics, law, work

This is really bad… Now, this is investigation is UK centric though. I wonder how other countries would fare.

https://www.engprax.com/post/75-of-software-engineers-faced-retaliation-last-time-they-report-wrongdoing


Performance Is Contextual - Jacob Kaplan-Moss

Tags: management, productivity

Definitely this, the context matters a lot. Sometimes I’ve seen people too quick to blame the skillset of underperforming colleagues. But the same person in a different context could probably do much better.

https://jacobian.org/2023/nov/20/performance-is-contextual/


14 Signs of a GOOD Manager. Navigating leadership excellence.

Tags: tech, management

This is a good list. I guess some of it feels obvious… at the same time it’s indeed something you don’t see every day. More awareness from managers is needed.

https://medium.com/blob-streaming/14-signs-of-a-good-manager-ea7879f8d894



Bye for now!

Hello, RHI – How to get started with Qt RHI

For some time now, Qt has been internally utilizing RHI (Rendering Hardware Interface), a new cross-platform technology for graphic rendering. Since Qt 6.6, this API has been semi-public, meaning that the API is mature for practical use but may still be subject to potential changes between major Qt versions.

In this blog post, we demonstrate how to to get started with RHI.

Continue reading Hello, RHI – How to get started with Qt RHI at basysKom GmbH.

Tuesday, 21 November 2023

Fedora 39 has been released! 🎉 So let’s see what comes in this new release for the Fedora Silverblue, Kinoite, Sericea and Onyx variants. This post is a summary of the “What’s new in Fedora Silverblue, Kinoite, Sericea and Onyx?” talk I did with Joshua Strobl for the Fedora 39 Release Party (see the full slides).

What’s new?

Welcome to Fedora Onyx!

Fedora Onyx is a new variant using the Budgie desktop, with a (nearly) stock experience. It follows up on the Fedora Budgie Spin which has been introduced in Fedora 38.

The experience is similar to other Fedora Atomic Desktops (what’s that? see below 🙂): ships toolbx out-of-the-box and access to Flatpaks.

We will hopefully re-brand it from “Onyx” to “Fedora Budgie Atomic” and later aspire at having the Atomic variant be the “Fedora Budgie” and have the “mutable” spin be re-branded.

Fedora Atomic Desktops

We have created a new Special Interest Group (SIG) focused on (rpm-)ostree based desktop variants of Fedora (Silverblue, Kinoite, Sericea and Onyx). The “Fedora Atomic Desktops” name will also serve as an umbrella to regroup all those variants under a common name.

Note that the new name is still pending approval by the Fedora Council. A Fedora Change Request has been opened to track that for Fedora 40.

We will progressively centralize the work for this SIG in the fedora/ostree GitLab namespace. We already have an issue tracker.

What’s new in Silverblue?

Silverblue comes with the latest GNOME 45 release. Loupe replaces Eye of GNOME (EOG). For now, the new Flatpaks are not automatically installed on updates so you will have to replace EOG by Loupe manually.

Fedora Flatpaks are now available ppc64le and included in the installer.

For more details about the changes that comes with GNOME 45, see the What’s new in Fedora Workstation 39 on the Fedora Magazine.

Update (2024-03-29): See also Fedora Workstation 39 and beyond from Christian F.K. Schaller.

What’s new in Kinoite?

Kinoite stays on Plasma 5.27. Plasma 6 is coming for Fedora 40.

A subset of KDE Apps is now available as Flatpaks from Fedora. They are built from Fedora RPM source and build options and are also available for all releases (not just the latest) and even other distributions due to the nature of Flatpaks.

Thanks a lot to Yaakov Selkowitz and the Flatpak SIG for making this happen!

With the Flatpaks being available in the Fedora remote, we have removed some apps from the base image: Okular, Gwenview, Kcalc. The Flatpaks are not installed on updates but you can install them from the Fedora Flatpak remote or from Flathub.

Fedora Flatpaks will be installed by Anaconda by default for new installations in Fedora 40.

What’s new in Sericea?

No major changes this release.

rpm-ostree unified core

Ostree commits are now built via rpm-ostree unified core mode. The main benefits are cleanups and stricter build constraints (that sometimes surface bugs in RPMs). This is also how Fedora CoreOS is being built right now.

This change should be completely transparent to users.

This is needed to get bootupd support and a step towards moving to ostree native container images (discussed below).

What’s next?

bootupd support

Adding bootupd support to Atomic Desktops will finally let users easily update their bootloader on their systems (issue#120). We needed the commits to be built using rpm-ostree unified core mode, which is a change that landed in Fedora 39.

We are now waiting on Anaconda installer fixes that are in progress. This should hopefully land in Fedora 40.

Ostree Native Containers

The idea behind Ostree Native Containers is to package ostree commits as OCI containers. The main benefits are:

  • OCI containers are easier to manage, deploy and mirror than ostree repos
  • It makes it possible to create derived images via a Containerfile/Dockerfile
  • As it is a regular container, you can inspect its content, scan it for vulnerabilities or run it like a container
  • Signing is made easier via support for cosign/sigstore

You can take a look at the following examples that take advantage of this functionality:

Work is currently in progress to add support to build those images via Pungi. Initially, they will be built alongside the current ostree commits. This is currently planned for Fedora 40 (the change page needs to be updated / rewritten).

We will be looking at fully transitioning to containers in a future release.

Universal Blue, Bluefin and Bazzite

Those projects build on the in-progress support for the Ostree Native Containers format and the Fedora Atomic Desktops images. All the changes that are included are made via Containerfiles/Dockerfiles.

They include lots of options, offer a wide choice of images, include additional fixes, enable more platform support, UX fixes, etc.

Universal Blue is the general project, Project Bluefin is the developer focused one and Bazzite is focused on gaming, including on the Steam Deck and other similar devices.

Check them out!

Support for Asahi Linux?

Help us make that happen! One notable missing part is support in Kiwi (issue#38) to build the images. See Fedora Asahi Remix for more details.

Where to reach us?

We are looking for contributors to help us make the Fedora Atomic Desktops the best experience for Fedora users.

Sunday, 19 November 2023

This weekend Sofia and I celebrated her birthday with her family. Lars Winnerbäck, Wicked at the opera and a wonderful dinner at Natur.

There are plenty of articles about different remote set ups written by people who work remotely, as I have been for many years now. As a home based but frequent short-term traveller kind of remote worker I have 3 basic set ups: Use case Frequently I travel to a specific destination for a week or … Continue reading My remote office set up

Friday, 17 November 2023

Let’s go for my web review for the week 2023-46.


Blender 4.0

Tags: tech, blender, 3d

Yet another very impressive release for Blender. This is really one of the best in its class.

https://www.blender.org/download/releases/4-0/


The French National Police is unlawfully using an Israeli facial recognition software

Tags: tech, france, surveillance

Welcome in France, a country scared of its own population where the police uses facial recognition illegally. But don’t worry, we can expect attempts to make it legal in the coming months or years instead of addressing the problem. Will it make it less shameful? I don’t think so.

https://disclose.ngo/en/article/the-french-national-police-is-unlawfully-using-an-israeli-facial-recognition-software


No Bing, no Edge, no upselling: De-crufted Windows 11 coming to Europe soon | Ars Technica

Tags: tech, politics, law

This is going to be interesting to see how this new regulation unfolds. Its impacts are well beyond just Microsoft.

https://arstechnica.com/gadgets/2023/11/europeans-can-soon-strip-bing-edge-other-microsoft-cruft-from-windows-11/


Moving our Encrypted DNS servers to run in RAM | Mullvad VPN

Tags: tech, dns, privacy

Excellent, looks like a public DNS server worth using.

https://mullvad.net/en/blog/moving-our-encrypted-dns-servers-to-run-in-ram


The Use Cases and Benefits of SVCB and HTTPS DNS Record Types

Tags: tech, dns

Now that they’re standardized better learn about those new record types.

https://www.domaintools.com/resources/blog/the-use-cases-and-benefits-of-svcb-and-https-dns-record-types/


RFC 9420 – A Messaging Layer Security Overview

Tags: tech, protocols, standard, security

Finally a standardized protocol for end-to-end encryption! Let’s see where this gets used.

https://www.thestack.technology/rfc9420-ietf-mls-standard/


Don’t Build AI Products The Way Everyone Else Is Doing It

Tags: tech, ai, machine-learning, design, architecture

A balanced view, that’s refreshing. Indeed we see too many “let’s call the OpenAI APIs and magic will happen”. This is very short sighted, much better can be done.

https://www.builder.io/blog/build-ai


We are drowning in Google’s magnanimity - kpassa.me

Tags: tech, google, infrastructure

Half a rant but interesting… Why are people making popular solutions to problems they’ll never have? Just because it’s been released by Google?

https://www.kpassa.me/posts/google/


We Need to Bring Back Webrings

Tags: tech, blog

I admit I miss webrings indeed. They were great to discover new blogs with nice content.

https://arne.me/articles/we-need-to-bring-back-webrings


Upgrade your Development Environments with Devbox | Alan Norbauer

Tags: tech, tools, developer-experience

Definitely looks interesting. Might be a good way to uniformize developer environment management across projects.

https://alan.norbauer.com/articles/devbox-intro


Why Rust in Production? | Corrode Rust Consulting

Tags: tech, rust

This is a well balanced view on the Rust ecosystem as of today. It highlights fairly well where it shines (safety, predictability, bugs found early) but it also mentions the current issues linked to its maturity.

https://corrode.dev/why-rust/


fx – command-line tool for JSON

Tags: tech, tools, command-line, json

Looks like a very good tool for handling JSON files. Might come in handy next to jq… maybe it’ll replace jless.

https://fx.wtf/


Tags: tech, command-line, tools

Good list of tips and aliases. Might inspire a few changes in your setup.

https://blog.meain.io/2023/navigating-around-in-shell/


How git cherry-pick and revert use 3-way merge

Tags: tech, tools, git

Ever wondered how git implements cherry-pick and revert? Here are a good way to understand them. Also explains what is the 3-way merge git uses widely.

https://jvns.ca/blog/2023/11/10/how-cherry-pick-and-revert-work/


Laurence Tratt: Four Kinds of Optimisation

Tags: tech, optimization

Not in full agreement with this, but having a rough idea of the different leverages you can use for optimizations is worthwhile.

https://tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html


67 Weird Debugging Tricks Your Browser Doesn’t Want You to Know | Alan Norbauer

Tags: tech, debugging, web, browser

A few interesting tricks in there, the web platform definitely helps in term of tooling.

https://alan.norbauer.com/articles/browser-debugging-tricks


A Very Subtle Bug - Made of Bugs

Tags: tech, bug, debugging, system, unix

Interesting subtle differences between gzip and Python expectations which leads to a tough integration bug to find.

https://blog.nelhage.com/2010/02/a-very-subtle-bug/


Push Ifs Up And Fors Down

Tags: tech, programming

Interesting heuristic to improve code structure. I definitely recommend. As every heuristic it’s not a law though, don’t overdo it either.

https://matklad.github.io/2023/11/15/push-ifs-up-and-fors-down.html


TDD Outcomes - by Kent Beck - Software Design: Tidy First?

Tags: tech, design, tdd, craftsmanship, quality

Good summary that TDD is many things… it helps for quite a few dimensions of writing code, still, it’s not a magic bullet in term of design. Your software design abilities are crucial to practice it well.

https://tidyfirst.substack.com/p/tdd-outcomes


5 Skills the Best Engineers I Know Have in Common

Tags: tech, engineering, productivity, leadership, tech-lead

Interesting list. Definitely good things to try to learn there.

https://www.developing.dev/p/5-skills-all-10x-engineers-have


Minimize global process | Organizing Chaos

Tags: tech, organization, consistency, autonomy

This is a constant trade-off to find. How in organizations give autonomy while ensuring some consistency? A couple of ideas.

https://jordankaye.dev/posts/minimize-global-process/


Your Small Imprecise Ask Is a Big Waste of Their Time | Stay SaaSy

Tags: management, decision-making

Yes, seen this kind of imprecise requests go wrong fairly quickly more than once. It requires constant awareness though, on both sides of each request. This can be taxing, so no wonder we often drop the ball.

https://staysaasy.com/startups/2023/11/10/imprecise-asks.html


How to Boss Without Being Bossy – Holy Ghost Stories

Tags: management

Interesting taxonomy on how to request things from people. Lot’s to mull over in there.

https://www.jeffwofford.com/?p=2089


How to Build Trust - Jacob Kaplan-Moss

Tags: management, trust

Good piece, this is indeed essential in managing others. If they can’t trust you then fear will ensue.

https://jacobian.org/2023/nov/16/how-to-build-trust/


4.5 Billion Years in 1 Hour - YouTube

Tags: science

They really outdid themselves this time. One hour of bliss, it’s really well done.

https://www.youtube.com/watch?v=S7TUe5w6RHo



Bye for now!

Tuesday, 14 November 2023

Graphite is a global theme that boldly goes for a starkly monochromatic aesthetic and sharp window borders.

Monday, 13 November 2023

The migration of jobs from Binary Factory to KDE's GitLab continues. Last week almost all jobs that built APKs were migrated to invent.kde.org. The only remaining Android job on Binary Factory doesn't use Craft.

The Android APK jobs running on invent are the first jobs that make use of our CI Notary Services delegating tasks that require sensitive information (e.g. the keys to sign the APKs or the credentials to upload the APKs to our F-Droid repositories) to services running outside of GitLab. Currently, the apksigner service and the fdroidpublisher service are live. The configuration of the services can be found in the sysadmin/ci-utilities repository.

As before, the APKs are published in our F-Droid repositories:

Many apps have already switched from Qt 5 to Qt 6, but the Qt 6 APKs are not yet ready for public consumption. Not even as nightly builds. Therefore many "nightly" builds are many weeks old.

The migration to invent has a few implications. On Binary Factory all APKs (release and nightly) were rebuilt once a day even if nothing changed. On invent the APKs are rebuilt whenever a change is pushed to the release/23.08 branch or the master branch of a project. Another change is that on invent any KDE developer can manually trigger a new pipeline to build the APKs (e.g. if a bug in a dependency was fixed). On Binary Factory you often needed to ask someone to trigger a build for you.

Building APKs If you want to start building APKs for your project then add the craft-android-apks.yml template for Qt 5 or the craft-android-qt6-apks.yml template for Qt 6 to the .gitlab-ci-yml of your project. Note that you must use the include:project format (example).

The jobs will build unsigned APKs. To enable signing your project (more precisely, a branch of your project) needs to be cleared for using the signing service. This is done by adding your project to the project settings of the apksigner. The master branch is cleared by default for all applications listed in the project settings, so that you only need to add two lines: The repo path on invent and the ID of your application. The key used to sign your application will best be created by us directly on the machine that does the signing.

Once you think the APKs are ready for publication you can enable publishing in our F-Droid repositories by adding your project to the project settings of the fdroidpublisher. Because some Qt 6 APKs are not yet ready for publication although their build succeeds, by default the master branch is not cleared for publishing. This means you will have to add five lines to the project settings of fdroidpublisher.

Outlook To complete the Android jobs/services a job/service for submitting APKs to Google Play will go live soon. It's currently only used by Itinerary but, in view of our Make a Living initiative, we hope to publish more apps on Google Play to create some revenue to fund our work. Creating and publishing Android Application Bundles (AAB), the new packaging format required for new applications published on Google Play, will follow soon after.

Then we'll add signing of Windows artifacts and installers and submission to the Microsoft Store, signing and publishing of Flatpaks, and signing and publishing of builds for macOS.