Simple Test for Revealing Fake Rubyists in the Rails Community

Here is a very easy test for figuring out if someone in the Rails community is a Real Rubyist who truly gets Ruby and its unique benefits 100% compared to other programming languages or a Fake Rubyist who is just riding the Ruby on Rails bandwagon because it is “cool” or because they heard about it from an acquaintance without thinking for themselves…

OpenSMTPD table protocol changes, now with the backstory

Regular readers will be aware that OpenBSD ships with its own mail server implementation, OpenSMTPD in its base system.

In a recent message to the tech@ mailing list, Omar Polo (op@) asked for comments or oks for a patches implementing a change of table protocols. A little later, Gilles Chehade (gilles@) posted the backstory to the misc@opensmtpd.org mailing list with the backstory for this change.

The message follows in full below (apparently the otherwise fine marc.info archive site no longer archives the list):

Date: Fri, 03 May 2024 08:22:03 +0000
From: gilles@poolp.org
To: misc@opensmtpd.org
Subject: smtpd: change the table protocol

Hello,

This is a copy of a mail I sent to OpenBSD hackers a few days ago so you are aware of work
being done on OpenSMTPD by Omar Polo.

~~~

TL;DR: proposal to change table backends wire protocol to one that's closer to filters, it
       has proven to work for years now, comes with many benefits and it is a very trivial
       change that we can pull in a handful of hours:
       https://tmp.omarpolo.com/smtpd-tables.7.html

Read more…

Dude, Where’s My Archive?

TWIF generated on Thursday, 02 May 2024, Week 18

F-Droid core

Four weeks ago in the 14-th TWIF we announced the start of 1.20 testing and the repository management improvements that it brings. Over the years, the concept of a “repository archive” kinda stayed the same. Basically, instead of serving the users the full list of all the versions of all the apps, we give them only the latest three versions for each app, as users will just update to the latest one anyway. This keeps an index update easy to download, and this was improved again a couple of years ago by offering diff-updates (not the full index, just the difference compared to your local index), so if you update once a week you’ll end up downloading 200Kb or less.

Since the Archive will collect old versions continuously, its size grows each cycle, and the index as expected, making working with it a heavy task for your device. For this reason we don’t encourage its use unless it’s really needed, eg. for running on old Android versions, and to disable it when done.

As the Client focus is to draw users to the actual main repo, and not to emphasis the Archive, with the latest repository management design it was decided to treat Archive as an option that users can toggle on, instead of having a separate repo entry. This toggle is in the repo details, “in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying ‘Beware of the Leopard.’“, 🙂 oh, I mean under the mirror list. This list is under a work in progress redesign of its own, so it’s a bit finicky to scroll right now, leaving even astute Android users to wonder how an Archive can be added or used.

To be fair, the linked Fedi post above has this information in the first picture, but we understand that we’ve looked a lot at these strings and we are biased to consider them “good enough”. One reason to test these changes as early as possible is to gather feedback from users. If you have thoughts on a better wording, feel free to ping us.

Community News

Aurora Store was updated to 4.4.4 and will deemed stable in the next-next index update. You can update now manually if you wish.

Grazer Linuxtage Schedule has changed its application identifier due to some, ahem, alternative centralized store policy. Its users are advised to uninstall and install the new app aptly named: Grazer Linuxtage

NewPipe is reproducible again and was updated to 0.27.0 fixing a lot of bugs users were waiting for months already. We hope future versions get delivered faster.

Updated Apps

72 more apps were updated

Thank you for reading this week’s TWIF 🙂

Please subscribe to the RSS feed in your favourite RSS application to be updated of new TWIFs when they come up.

You are welcome to join the TWIF forum thread. If you have any news from the community, post it there, maybe it will be featured next week 😉

RISC OS Open 5.30 arrives with Raspberry Pi Wi-Fi support

This is, in a way, a mature OS with an ecosystem and an aftermarket. (Which, we feel we must explicitly spell out, means that quite a few of those third-party applications and drivers will cost you money.) There are emulators that will let you run 20th century Acorn apps that you can find online, but this isn’t an emulated vintage environment like Amiga Forever. It’s not meant for running games from thirty years ago. This is a native bare-metal OS, built on 1980s roots but updated for 21st century hardware. It’s also not an experimental project with little practical use, like Redox OS or Serenity OS, interesting though those are. ↫ Liam Proven at The Register I grew up with RISC OS and still run a RISC OS machine to this day. As Liam Proven explains affectionately in this article, while as an operating system it’s missing many features we now take for granted (memory protection, pre-emptive multitasking, compositing), some of the user interface ideas it implements still manage to feel advanced compared to modern-day desktops (no need for menu bars, no clunky file dialogues, elegant mouse button assignments). The fact it’s found a home on the Raspberry Pi and continues to support an active community is testament to its enduring appeal and the amazing work of the RISC OS Open project. Some additional notes from Thom: this new release supports 7 ARM platforms, most notably the Raspberry Pi Zero, 1, 2, 3 and 4 (but not the 5), and it even supports WiFi on the 3 and 4, which is an absolutely incredible achievement. The number of fixed bugs and addressed issues is massive, and there’s even more to come later during the year, as The Register’s article notes. I was waiting on this release to spur me on to buy a new Raspberry Pi (my only other Pi is our Pi-Hole), so I’ll definitely be on the lookout for a good deal. This release deserves my full attention for OSNews.

CRA standards request draft published

The European Commission recently published a public draft of the standards request associated with the Cyber Resilience Act (CRA). For those who depend on incorporating or creating Open Source software, there is an encouraging new development found here. For the first time in a European standards request, there is an express requirement to respect the needs of Open Source developers and users.

Drupal Core News: The new Navigation module and Layout Builder

Navigation module makes use of Layout Builder to construct the navigation toolbar.

There have been some questions about this decision in Slack. This post discusses the background.

In #3397058: Convert navigation sections to blocks and use the menu system the navigation module added a plugin system and config entity for ‘navigation blocks’. These were very nearly identical to block plugins and block config entities. The primary difference was the config entities did not depend on a theme like block config entities do.

In #3411099: Create an administration UI for managing Navigation Blocks a UI was added for editing and managing navigation blocks. This duplicated further code from the block module.

#3438895: Add the new Navigation to core as an Experimental module was the issue to add the navigation module to core. This point was the first time that many core committers had looked at the code. As part of a Framework Manager review of the issue, the amount of duplication between the block and navigation modules was raised.

Until this point the navigation module lived in contrib and did not have a chance to change code in core. But now that it was a merge request against core, changing core was a possibility. As a result the Framework Managers made an attempt to modify the theme-assumption in the block system to support the navigation use-case. This resulted in a less than ideal scenario where Block::getTheme() could return null or an empty string in some scenarios. Whilst it was possible to fix all calls in core, the impact this could have on contrib and custom code felt like it would be problematic.

At this point the idea of using Layout Builder’s section storage as a data-model for the blocks in navigation was floated. Layout Builder’s section storage provides a data-model that allows placing and configuring block plugins but without block config entities. There is no dependency between these block placements and a theme. Layout Builder also includes an API for limiting which blocks can be used where, which was also a requirement for the navigation module. Not all block plugins would work inside the navigation toolbar.

The Framework Managers worked on the core merge request to assess the feasibility of this change. The net result was the removal of 4,000 lines of code but with largely the same functionality. As a result, the version of the navigation module that was committed to Drupal 10.3.0 and 11.x depends on the Layout Builder module.

Sites who don’t use Layout Builder for building entity displays can continue to use their preferred approach. Having Layout Builder enabled doesn’t change how entities are rendered unless you enable it on a per entity-bundle-display basis. Prior to 10.3 there were performance issues from the number of block plugins derived by Layout Builder. But from 10.3 sites can now control and prevent this.

The Navigation initiative has created a list of follow-up issues for the usability of Layout Builder when configuring the navigation toolbar. Some of these overlap with existing usability issues for Layout Builder. In addition the recently announced Experience builder initiative will invest in improving Layout Builder usability. Finally, the Dashboard initiative is also using Layout Builder for handling block placements. When we standardise on a solution and work together to improve it, it will lead to improvement across the board.