Feeds

Call for feeds: Make your region available in our open transit router

Planet KDE - Sun, 2024-02-25 10:33

You may have already read about it on Volkers blog: we together with people from other public transport related projects are building a public transport routing service called Transitous. While of course our main motivation is to use it in KDE Itinerary, KDE’s travel planning app, it will be open for use in other apps.

We also have a little web interface running at transitous.org.

We are building this service based on great existing software, in particularly MOTIS.

Now, to make this really useful, we need data on more regions. Luckily, for most regions and countries that is fairly easy. Most transport agencies and countries make GTFS feeds available, that we can just use.

Adding an additional feed doesn’t take long and doesn’t need programming experience. It’s pretty much just creating a small text file that explains how and where to download the data from.

Those links don’t necessarily stay the same forever, so we would be happy if lots of people take care of their region, and update the link every few years. It is really little work if split up, but can’t all be handled by a small team.

To make it even easier, we can already use the Transitland Atlas feed collection, for which you just need to choose the feed to use. The url will then automatically be looked up.

You can find out how to add a feed here. Please let us know if the documentation is unclear anywhere.

If you are interested in using this service in your own application, it is probably a bit too early for production, but it makes sense to already implement support for the MOTIS API that we use. You can find an early version of our API documentation here.

If there is anything else you are interested in helping with, for example improving our ansible playbook, creating a website, improving MOTIS or working on integrating OpenStreetMap routing, you can find our open tasks here. We appreciate any help on those issues, and it of course speeds up the development of the project.

Categories: FLOSS Project Planets

Plasma Pass 1.2.2

Planet KDE - Sun, 2024-02-25 06:57

Plasma Pass is a Plasma applet for the Pass password manager

This release includes build fixes for Plasma 6, due to be released later this week.

URL: https://download.kde.org/stable/plasma-pass/
Sha256: 2a726455084d7806fe78bc8aa6222a44f328b6063479f8b7afc3692e18c397ce
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>
https://jriddell.org/esk-riddell.gpg

Categories: FLOSS Project Planets

Kushal Das: django-ca, HSM and PoC

Planet Python - Sun, 2024-02-25 04:25

django-ca is a feature rich certificate authority written in Python, using the django framework. The project exists for long, have great documentation and code comments all around. As I was looking around for possible CAs which can be used in multiple projects at work, django-ca seems to be a good base fit. Though it has still a few missing parts (which are important for us), for example HSM support and Certificate Management over CMS.

I started looking into the codebase of django-ca more and meanwhile also started cleaning up (along with Magnus Svensson) another library written at work for HSM support. I also started having conversion with Mathias (who is the author of django-ca) about this feature.

Thanks to the amazing design of the Python Cryptography team, I could just add several Private key implementations in our library, which in turn can be used as a normal private key.

I worked on a proof of concept branch (PoC), while getting a lot of tests also working.

===== 107 failed, 1654 passed, 32 skipped, 274 errors in 286.03s (0:04:46) =====

Meanwhile Mathias also started writing a separate feature branch where he is moving the key operations encapsulated inside of backends, and different backends can be implemented to deal with HSM or normal file based storage. He then chatted with me on Signal over 2 hours explaining the code and design of the branch he is working on. He also taught me many other django/typing things which I never knew before in the same call. His backend based approach makes my original intention of adding HSM support very easy. But, it also means at first he has to modify the codebase (and the thousands of test cases) first.

I am writing this blog post also to remind folks that not every piece of code needs to go to production (or even merged). I worked on a PoC, that validates the idea. And then we have a better and completely different design. It is perfectly okay to work hard for a PoC and later use a different approach.

As some friends asked on Mastodon, I will do a separate post about the cleanup of the other library.

Categories: FLOSS Project Planets

Russ Allbery: Review: The Fund

Planet Debian - Sat, 2024-02-24 22:46

Review: The Fund, by Rob Copeland

Publisher: St. Martin's Press Copyright: 2023 ISBN: 1-250-27694-2 Format: Kindle Pages: 310

I first became aware of Ray Dalio when either he or his publisher plastered advertisements for The Principles all over the San Francisco 4th and King Caltrain station. If I recall correctly, there were also constant radio commercials; it was a whole thing in 2017. My brain is very good at tuning out advertisements, so my only thought at the time was "some business guy wrote a self-help book." I think I vaguely assumed he was a CEO of some traditional business, since that's usually who writes heavily marketed books like this. I did not connect him with hedge funds or Bridgewater, which I have a bad habit of confusing with Blackwater.

The Principles turns out to be more of a laundered cult manual than a self-help book. And therein lies a story.

Rob Copeland is currently with The New York Times, but for many years he was the hedge fund reporter for The Wall Street Journal. He covered, among other things, Bridgewater Associates, the enormous hedge fund founded by Ray Dalio. The Fund is a biography of Ray Dalio and a history of Bridgewater from its founding as a vehicle for Dalio's advising business until 2022 when Dalio, after multiple false starts and title shuffles, finally retired from running the company. (Maybe. Based on the history recounted here, it wouldn't surprise me if he was back at the helm by the time you read this.)

It is one of the wildest, creepiest, and most abusive business histories that I have ever read.

It's probably worth mentioning, as Copeland does explicitly, that Ray Dalio and Bridgewater hate this book and claim it's a pack of lies. Copeland includes some of their denials (and many non-denials that sound as good as confirmations to me) in footnotes that I found increasingly amusing.

A lawyer for Dalio said he "treated all employees equally, giving people at all levels the same respect and extending them the same perks."

Uh-huh.

Anyway, I personally know nothing about Bridgewater other than what I learned here and the occasional mention in Matt Levine's newsletter (which is where I got the recommendation for this book). I have no independent information whether anything Copeland describes here is true, but Copeland provides the typical extensive list of notes and sourcing one expects in a book like this, and Levine's comments indicated it's generally consistent with Bridgewater's industry reputation. I think this book is true, but since the clear implication is that the world's largest hedge fund was primarily a deranged cult whose employees mostly spied on and rated each other rather than doing any real investment work, I also have questions, not all of which Copeland answers to my satisfaction. But more on that later.

The center of this book are the Principles. These were an ever-changing list of rules and maxims for how people should conduct themselves within Bridgewater. Per Copeland, although Dalio later published a book by that name, the version of the Principles that made it into the book was sanitized and significantly edited down from the version used inside the company. Dalio was constantly adding new ones and sometimes changing them, but the common theme was radical, confrontational "honesty": never being silent about problems, confronting people directly about anything that they did wrong, and telling people all of their faults so that they could "know themselves better."

If this sounds like textbook abusive behavior, you have the right idea. This part Dalio admits to openly, describing Bridgewater as a firm that isn't for everyone but that achieves great results because of this culture. But the uncomfortably confrontational vibes are only the tip of the iceberg of dysfunction. Here are just a few of the ways this played out according to Copeland:

  • Dalio decided that everyone's opinions should be weighted by the accuracy of their previous decisions, to create a "meritocracy," and therefore hired people to build a social credit system in which people could use an app to constantly rate all of their co-workers. This almost immediately devolved into out-group bullying worthy of a high school, with employees hurriedly down-rating and ostracizing any co-worker that Dalio down-rated.

  • When an early version of the system uncovered two employees at Bridgewater with more credibility than Dalio, Dalio had the system rigged to ensure that he always had the highest ratings and was not affected by other people's ratings.

  • Dalio became so obsessed with the principle of confronting problems that he created a centralized log of problems at Bridgewater and required employees find and report a quota of ten or twenty new issues every week or have their bonus docked. He would then regularly pick some issue out of the issue log, no matter how petty, and treat it like a referendum on the worth of the person responsible for the issue.

  • Dalio's favorite way of dealing with a problem was to put someone on trial. This involved extensive investigations followed by a meeting where Dalio would berate the person and harshly catalog their flaws, often reducing them to tears or panic attacks, while smugly insisting that having an emotional reaction to criticism was a personality flaw. These meetings were then filmed and added to a library available to all Bridgewater employees, often edited to remove Dalio's personal abuse and to make the emotional reaction of the target look disproportionate. The ones Dalio liked the best were shown to all new employees as part of their training in the Principles.

  • One of the best ways to gain institutional power in Bridgewater was to become sycophantically obsessed with the Principles and to be an eager participant in Dalio's trials. The highest levels of Bridgewater featured constant jockeying for power, often by trying to catch rivals in violations of the Principles so that they would be put on trial.

In one of the common and all-too-disturbing connections between Wall Street finance and the United States' dysfunctional government, James Comey (yes, that James Comey) ran internal security for Bridgewater for three years, meaning that he was the one who pulled evidence from surveillance cameras for Dalio to use to confront employees during his trials.

In case the cult vibes weren't strong enough already, Bridgewater developed its own idiosyncratic language worthy of Scientology. The trials were called "probings," firing someone was called "sorting" them, and rating them was called "dotting," among many other Bridgewater-specific terms. Needless to say, no one ever probed Dalio himself. You will also be completely unsurprised to learn that Copeland documents instances of sexual harassment and discrimination at Bridgewater, including some by Dalio himself, although that seems to be a relatively small part of the overall dysfunction. Dalio was happy to publicly humiliate anyone regardless of gender.

If you're like me, at this point you're probably wondering how Bridgewater continued operating for so long in this environment. (Per Copeland, since Dalio's retirement in 2022, Bridgewater has drastically reduced the cult-like behaviors, deleted its archive of probings, and de-emphasized the Principles.) It was not actually a religious cult; it was a hedge fund that has to provide investment services to huge, sophisticated clients, and by all accounts it's a very successful one. Why did this bizarre nightmare of a workplace not interfere with Bridgewater's business?

This, I think, is the weakest part of this book. Copeland makes a few gestures at answering this question, but none of them are very satisfying.

First, it's clear from Copeland's account that almost none of the employees of Bridgewater had any control over Bridgewater's investments. Nearly everyone was working on other parts of the business (sales, investor relations) or on cult-related obsessions. Investment decisions (largely incorporated into algorithms) were made by a tiny core of people and often by Dalio himself. Bridgewater also appears to not trade frequently, unlike some other hedge funds, meaning that they probably stay clear of the more labor-intensive high-frequency parts of the business.

Second, Bridgewater took off as a hedge fund just before the hedge fund boom in the 1990s. It transformed from Dalio's personal consulting business and investment newsletter to a hedge fund in 1990 (with an earlier investment from the World Bank in 1987), and the 1990s were a very good decade for hedge funds. Bridgewater, in part due to Dalio's connections and effective marketing via his newsletter, became one of the largest hedge funds in the world, which gave it a sort of institutional momentum. No one was questioned for putting money into Bridgewater even in years when it did poorly compared to its rivals.

Third, Dalio used the tried and true method of getting free publicity from the financial press: constantly predict an upcoming downturn, and aggressively take credit whenever you were right. From nearly the start of his career, Dalio predicted economic downturns year after year. Bridgewater did very well in the 2000 to 2003 downturn, and again during the 2008 financial crisis. Dalio aggressively takes credit for predicting both of those downturns and positioning Bridgewater correctly going into them. This is correct; what he avoids mentioning is that he also predicted downturns in every other year, the majority of which never happened.

These points together create a bit of an answer, but they don't feel like the whole picture and Copeland doesn't connect the pieces. It seems possible that Dalio may simply be good at investing; he reads obsessively and clearly enjoys thinking about markets, and being an abusive cult leader doesn't take up all of his time. It's also true that to some extent hedge funds are semi-free money machines, in that once you have a sufficient quantity of money and political connections you gain access to investment opportunities and mechanisms that are very likely to make money and that the typical investor simply cannot access. Dalio is clearly good at making personal connections, and invested a lot of effort into forming close ties with tricky clients such as pools of Chinese money.

Perhaps the most compelling explanation isn't mentioned directly in this book but instead comes from Matt Levine. Bridgewater touts its algorithmic trading over humans making individual trades, and there is some reason to believe that consistently applying an algorithm without regard to human emotion is a solid trading strategy in at least some investment areas. Levine has asked in his newsletter, tongue firmly in cheek, whether the bizarre cult-like behavior and constant infighting is a strategy to distract all the humans and keep them from messing with the algorithm and thus making bad decisions.

Copeland leaves this question unsettled. Instead, one comes away from this book with a clear vision of the most dysfunctional workplace I have ever heard of, and an endless litany of bizarre events each more astonishing than the last. If you like watching train wrecks, this is the book for you. The only drawback is that, unlike other entries in this genre such as Bad Blood or Billion Dollar Loser, Bridgewater is a wildly successful company, so you don't get the schadenfreude of seeing a house of cards collapse. You do, however, get a helpful mental model to apply to the next person who tries to talk to you about "radical honesty" and "idea meritocracy."

The flaw in this book is that the existence of an organization like Bridgewater is pointing to systematic flaws in how our society works, which Copeland is largely uninterested in interrogating. "How could this have happened?" is a rather large question to leave unanswered. The sheer outrageousness of Dalio's behavior also gets a bit tiring by the end of the book, when you've seen the patterns and are hearing about the fourth variation. But this is still an astonishing book, and a worthy entry in the genre of capitalism disasters.

Rating: 7 out of 10

Categories: FLOSS Project Planets

unifont @ Savannah: Unifont 15.1.05 Released

GNU Planet! - Sat, 2024-02-24 20:56

24 February 2024 Unifont 15.1.05 is now available.  This release adds the 222 CJK Unified Ideographs Extension D glyphs (U+2B740..U+2B81D) and 335 Plane 2 and Plane 3 common Cantonese ideographs, as well as other additions amounting to almost 600 ideograph additions, from Boris Zhang, Yzy32767, and others.

This release also replaces the Hangul blocks outside the Hangul Syllables range with new glyphs from Ho-seok Ee that are now consistent with the style of the Hangul Syllables glyphs.

Other minor changes are also included.  Details are in the ChangeLog file.

This release no longer builds TrueType fonts by default, as announced over the past year.  They have been replaced with their OpenType equivalents.  TrueType fonts can still be built manually by typing "make truetype" in the font directory.

Download this release from GNU server mirrors at:

     https://ftpmirror.gnu.org/unifont/unifont-15.1.05/

or if that fails,

     https://ftp.gnu.org/gnu/unifont/unifont-15.1.05/

or, as a last resort,

     ftp://ftp.gnu.org/gnu/unifont/unifont-15.1.05/

These files are also available on the unifoundry.com website:

     https://unifoundry.com/pub/unifont/unifont-15.1.05/

Font files are in the subdirectory

     https://unifoundry.com/pub/unifont/unifont-15.1.05/font-builds/

A more detailed description of font changes is available at

      https://unifoundry.com/unifont/index.html

and of utility program changes at

      https://unifoundry.com/unifont/unifont-utilities.html

Information about Hangul modifications is at

      https://unifoundry.com/hangul/index.html

and

      http://unifoundry.com/hangul/hangul-generation.html

Categories: FLOSS Project Planets

Jacob Adams: AAC and Debian

Planet Debian - Sat, 2024-02-24 19:00

Currently, in a default installation of Debian with the GNOME desktop, Bluetooth headphones that require the AAC codec1 cannot be used. As the Debian wiki outlines, using the AAC codec over Bluetooth, while technically supported by PipeWire, is explicitly disabled in Debian at this time. This is because the fdk-aac library needed to enable this support is currently in the non-free component of the repository, meaning that PipeWire, which is in the main component, cannot depend on it.

How to Fix it Yourself

If what you, like me, need is simply for Bluetooth Audio to work with AAC in Debian’s default desktop environment2, then you’ll need to rebuild the pipewire package to include the AAC codec. While the current version in Debian main has been built with AAC deliberately disabled, it is trivial to enable if you can install a version of the fdk-aac library.

I preface this with the usual caveats when it comes to patent and licensing controversies. I am not a lawyer, building this package and/or using it could get you into legal trouble.

These instructions have only been tested on an up-to-date copy of Debian 12.

  1. Install pipewire’s build dependencies sudo apt install build-essential devscripts sudo apt build-dep pipewire
  2. Install libfdk-aac-dev sudo apt install libfdk-aac-dev

    If the above doesn’t work you’ll likely need to enable non-free and try again

    sudo sed -i 's/main/main non-free/g' /etc/apt/sources.list sudo apt update

    Alternatively, if you wish to ensure you are maximally license-compliant and patent un-infringing3, you can instead build fdk-aac-free which includes only those components of AAC that are known to be patent-free3. This is what should eventually end up in Debian to resolve this problem (see below).

    sudo apt install git-buildpackage mkdir fdk-aac-source cd fdk-aac-source git clone https://salsa.debian.org/multimedia-team/fdk-aac cd fdk-aac gbp buildpackage sudo dpkg -i ../libfdk-aac2_*deb ../libfdk-aac-dev_*deb
  3. Get the pipewire source code mkdir pipewire-source cd pipewire-source apt source pipewire

    This will create a bunch of files within the pipewire-source directory, but you’ll only need the pipewire-<version> folder, this contains all the files you’ll need to build the package, with all the debian-specific patches already applied. Note that you don’t want to run the apt source command as root, as it will then create files that your regular user cannot edit.

  4. Fix the dependencies and build options To fix up the build scripts to use the fdk-aac library, you need to save the following as pipewire-source/aac.patch --- debian/control.orig +++ debian/control @@ -40,8 +40,8 @@ modemmanager-dev, pkg-config, python3-docutils, - systemd [linux-any] -Build-Conflicts: libfdk-aac-dev + systemd [linux-any], + libfdk-aac-dev Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/utopia-team/pipewire Vcs-Git: https://salsa.debian.org/utopia-team/pipewire.git --- debian/rules.orig +++ debian/rules @@ -37,7 +37,7 @@ -Dauto_features=enabled \ -Davahi=enabled \ -Dbluez5-backend-native-mm=enabled \ - -Dbluez5-codec-aac=disabled \ + -Dbluez5-codec-aac=enabled \ -Dbluez5-codec-aptx=enabled \ -Dbluez5-codec-lc3=enabled \ -Dbluez5-codec-lc3plus=disabled \

    Then you’ll need to run patch from within the pipewire-<version> folder created by apt source:

    patch -p0 < ../aac.patch
  5. Build pipewire cd pipewire-* debuild

    Note that you will likely see an error from debsign at the end of this process, this is harmless, you simply don’t have a GPG key set up to sign your newly-built package4. Packages don’t need to be signed to be installed, and debsign uses a somewhat non-standard signing process that dpkg does not check anyway.

  1. Install libspa-0.2-bluetooth sudo dpkg -i libspa-0.2-bluetooth_*.deb
  2. Restart PipeWire and/or Reboot sudo reboot

    Theoretically there’s a set of services to restart here that would get pipewire to pick up the new library, probably just pipewire itself. But it’s just as easy to restart and ensure everything is using the correct library.

Why

This is a slightly unusual situation, as the fdk-aac library is licensed under what even the GNU project acknowledges is a free software license. However, this license explicitly does not grant any patent rights, and, to quote the GNU project:

Because of this, and because the license author is a known patent aggressor, we encourage you to be careful about using or redistributing software under this license: you should first consider whether the licensor might aim to lure you into patent infringement.

AAC is covered by a number of patents, which expire at some point in the 2030s5. As such the current version of the library is potentially legally dubious to ship with any other software, as it could be considered patent-infringing3.

Fedora’s solution

Since 2017, Fedora has included a modified version of the library as fdk-aac-free, see the announcement and the bugzilla bug requesting review.

This version of the library includes only the AAC LC profile, which is believed to be entirely patent-free3.

Based on this, there is an open bug report in Debian requesting that the fdk-aac package be moved to the main component and that the pipwire package be updated to build against it.

The Debian NEW queue

To resolve these bugs, a version of fdk-aac-free has been uploaded to Debian by Jeremy Bicha. However, to make it into Debian proper, it must first pass through the ftpmaster’s NEW queue. The current version of fdk-aac-free has been in the NEW queue since July 2023.

Based on conversations in some of the bugs above, it’s been there since at least 20226.

I hope this helps anyone stuck with AAC to get their hardware working for them while we wait for the package to eventually make it through the NEW queue.

  1. Such as, for example, any Apple AirPods, which only support AAC AFAICT. 

  2. Which, as of Debian 12 is GNOME 3 under Wayland with PipeWire. 

  3. I’m not a lawyer, I don’t know what kinds of infringement might or might not be possible here, do your own research, etc.  ↩2 ↩3 ↩4

  4. And if you DO have a key setup with debsign you almost certainly don’t need these instructions. 

  5. Wikipedia claims the “base” patents expire in 2031, with the extensions expiring in 2038, but its source for these claims is some guy’s spreadsheet in a forum. The same discussion also brings up Wikipedia’s claim and casts some doubt on it, so I’m not entirely sure what’s correct here, but I didn’t feel like doing a patent deep-dive today. If someone can provide a clear answer that would be much appreciated. 

  6. According to Jeremy Bícha: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021370#17 

Categories: FLOSS Project Planets

libunistring @ Savannah: GNU libunistring-1.2 released

GNU Planet! - Sat, 2024-02-24 11:38

Download from https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz

This is a stable release.

New in this release:

  • The data tables and algorithms have been updated to Unicode version 15.1.0.
  • New functions u8_pcpy, u16_pcpy, u32_pcpy, similar to mempcpy.
  • New functions uc_indic_conjunct_break_name, uc_indic_conjunct_break_byname, uc_indic_conjunct_break.
  • New functions uc_is_property_prepended_concatenation_mark, uc_is_property_id_compat_math_start, uc_is_property_id_compat_math_continue, uc_is_property_ids_unary_operator and new constants UC_PROPERTY_PREPENDED_CONCATENATION_MARK, UC_PROPERTY_ID_COMPAT_MATH_START, UC_PROPERTY_ID_COMPAT_MATH_CONTINUE, UC_PROPERTY_IDS_UNARY_OPERATOR.
  • New constant _libunistring_unicode_version.
  • The UTF-8 decoder functions, especially u8_mbtouc, are now more Unicode Standard compliant.
  • The *printf functions no longer support the %n directive, for security reasons.
  • Fixed a bug in the *printf functions: In the %U, %lU, %llU directives, a negative width given as an argument did not trigger left-justification.
  • The functions u16_strstr and u32_strstr now operate in worst-case linear time.
Categories: FLOSS Project Planets

Drupal Association blog: The Drupal Association still stands with Ukraine

Planet Drupal - Sat, 2024-02-24 08:53

On the two-year anniversary of the Russian government’s attack on Ukraine, the Drupal Association wishes to reiterate its support for Ukraine. The invasion was an act of aggression, and our hearts are still with our Drupal Ukraine community.

We want to bring attention once more to the ways that the Drupal community can continue to support Ukraine. Here is a list of organizations* accepting donations to help people directly affected by the events in Ukraine:

  • Nova Ukraine, a Ukraine-based nonprofit, provides citizens with basic needs and resources. Donate here.

  • United Help Ukraine receives and distributes donations, food, and medical supplies to internally displaced Ukrainians and anyone affected by the war. Donate here

  • People in Need provides humanitarian aid to over 200,000 people on the ground. Donate here

  • The Ukrainian Red Cross undertakes humanitarian work, from aiding refugees to training doctors. Donate here.

  • UN Refugees Agency supports refugees. Donate here

  • UNICEF Ukraine is repairing schools damaged by the bombings and providing emergency responses to children affected by the war. Donate here.

As always, our global Drupal community is better together. We stand in solidarity and hope for peace. 

*List of resources originally compiled by Global Citizen

Categories: FLOSS Project Planets

Niels Thykier: Language Server for Debian: Spellchecking

Planet Debian - Sat, 2024-02-24 03:45

This is my third update on writing a language server for Debian packaging files, which aims at providing a better developer experience for Debian packagers.

Lets go over what have done since the last report.

Semantic token support

I have added support for what the Language Server Protocol (LSP) call semantic tokens. These are used to provide the editor insights into tokens of interest for users. Allegedly, this is what editors would use for syntax highlighting as well.

Unfortunately, eglot (emacs) does not support semantic tokens, so I was not able to test this. There is a 3-year old PR for supporting with the last update being ~3 month basically saying "Please sign the Copyright Assignment". I pinged the GitHub issue in the hopes it will get unstuck.

For good measure, I also checked if I could try it via neovim. Before installing, I read the neovim docs, which helpfully listed the features supported. Sadly, I did not spot semantic tokens among those and parked from there.

That was a bit of a bummer, but I left the feature in for now. If you have an LSP capable editor that supports semantic tokens, let me know how it works for you! :)

Spellchecking

Finally, I implemented something Otto was missing! :)

This stared with Paul Wise reminding me that there were Python binding for the hunspell spellchecker. This enabled me to get started with a quick prototype that spellchecked the Description fields in debian/control. I also added spellchecking of comments while I was add it.

The spellchecker runs with the standard en_US dictionary from hunspell-en-us, which does not have a lot of technical terms in it. Much less any of the Debian specific slang. I spend considerable time providing a "built-in" wordlist for technical and Debian specific slang to overcome this. I also made a "wordlist" for known Debian people that the spellchecker did not recognise. Said wordlist is fairly short as a proof of concept, and I fully expect it to be community maintained if the language server becomes a success.

My second problem was performance. As I had suspected that spellchecking was not the fastest thing in the world. Therefore, I added a very small language server for the debian/changelog, which only supports spellchecking the textual part. Even for a small changelog of a 1000 lines, the spellchecking takes about 5 seconds, which confirmed my suspicion. With every change you do, the existing diagnostics hangs around for 5 seconds before being updated. Notably, in emacs, it seems that diagnostics gets translated into an absolute character offset, so all diagnostics after the change gets misplaced for every character you type.

Now, there is little I could do to speed up hunspell. But I can, as always, cheat. The way diagnostics work in the LSP is that the server listens to a set of notifications like "document opened" or "document changed". In a response to that, the LSP can start its diagnostics scanning of the document and eventually publish all the diagnostics to the editor. The spec is quite clear that the server owns the diagnostics and the diagnostics are sent as a "notification" (that is, fire-and-forgot). Accordingly, there is nothing that prevents the server from publishing diagnostics multiple times for a single trigger. The only requirement is that the server publishes the accumulated diagnostics in every publish (that is, no delta updating).

Leveraging this, I had the language server for debian/changelog scan the document and publish once for approximately every 25 typos (diagnostics) spotted. This means you quickly get your first result and that clears the obsolete diagnostics. Thereafter, you get frequent updates to the remainder of the document if you do not perform any further changes. That is, up to a predefined max of typos, so we do not overload the client for longer changelogs. If you do any changes, it resets and starts over.

The only bit missing was dealing with concurrency. By default, a pygls language server is single threaded. It is not great if the language server hangs for 5 seconds everytime you type anything. Fortunately, pygls has builtin support for asyncio and threaded handlers. For now, I did an async handler that await after each line and setup some manual detection to stop an obsolete diagnostics run. This means the server will fairly quickly abandon an obsolete run.

Also, as a side-effect of working on the spellchecking, I fixed multiple typos in the changelog of debputy. :)

Follow up on the "What next?" from my previous update

In my previous update, I mentioned I had to finish up my python-debian changes to support getting the location of a token in a deb822 file. That was done, the MR is now filed, and is pending review. Hopefully, it will be merged and uploaded soon. :)

I also submitted my proposal for a different way of handling relationship substvars to debian-devel. So far, it seems to have received only positive feedback. I hope it stays that way and we will have this feature soon. Guillem proposed to move some of this into dpkg, which might delay my plans a bit. However, it might be for the better in the long run, so I will wait a bit to see what happens on that front. :)

As noted above, I managed to add debian/changelog as a support format for the language server. Even if it only does spellchecking and trimming of trailing newlines on save, it technically is a new format and therefore cross that item off my list. :D

Unfortunately, I did not manage to write a linter variant that does not involve using an LSP-capable editor. So that is still pending. Instead, I submitted an MR against elpa-dpkg-dev-el to have it recognize all the fields that the debian/control LSP knows about at this time to offset the lack of semantic token support in eglot.

From here...

My sprinting on this topic will soon come to an end, so I have to a bit more careful now with what tasks I open!

I think I will narrow my focus to providing a batch linting interface. Ideally, with an auto-fix for some of the more mechanical issues, where this is little doubt about the answer.

Additionally, I think the spellchecking will need a bit more maturing. My current code still trips on naming patterns that are "clearly" verbatim or code references like things written in CamelCase or SCREAMING_SNAKE_CASE. That gets annoying really quickly. It also trips on a lot of commands like dpkg-gencontrol, but that is harder to fix since it could have been a real word. I think those will have to be fixed people using quotes around the commands. Maybe the most popular ones will end up in the wordlist.

Beyond that, I will play it by ear if I have any time left. :)

Categories: FLOSS Project Planets

The Neon Powered Gears are Working on Plasma 6

Planet KDE - Sat, 2024-02-24 01:57

It’s high tension in Neon towers this week as the distro packagers have been given access to the source tars for Plasma 6 along with Frameworks 6 and KDE Gear 24.02. This means our cloud of build servers have been powered up to compile them into .deb packages which go into our Apt archive. In principle we already have the packaging working in Unstable and Testing edition so it should be a case of just doing a fresh build in User edition but it involves several hundred source builds all done for the three editions and for libraries and plugins (such as KIO Workers) many of them twice over, once for Qt 6 and once for Qt 5 builds. So lots of bits which need aligned. Frameworks completed yesterday morning and this morning it looks like all of Plasma is built. The KDE Gear apps are churning away now. We’ll then need to tests it all including many configurations of upgrade to make sure it doesn’t break your laptops. The releases are due on Wednesday and with any luck we will have Neon builds available very shortly after, but of course we’ll wait until it’s ready if that’s what we have to do. It’ll be just a normal upgrade available to Discover but of course with a large number of packages to download. Who’s excited?

Categories: FLOSS Project Planets

This week in KDE: real fake session restore

Planet KDE - Sat, 2024-02-24 01:21

Welp, the mega-release is pretty much carved in stone now, and set for a release in four days! Lots of people have worked really hard on it for over a year, and we hope you love it! Nevertheless, I’m sure our diligent QA-obsessed users will waste no time in finding all the issues we missed, and we’ll work as hard as we can to fix them.

But once those are fixed too, the focus will eventually begin to shift once more towards features. And we have big ideas for new features to ship in Plasma 6.1 and beyond! With the architectural work done over the past year, a lot of very exciting possibilities have been unlocked. I think we’re going to see Plasma 6 as a pretty amazing springboard for next-gen stuff very quickly.

And to start things off, we have two nice new features that are landing in Plasma 6.1 already:

New Features

Even though we don’t have real session restore on Wayland yet (it’s still waiting for the protocol to be finalized), now we have the next best thing: fake session restore that simply re-opens apps you had open at the last logout and relies on them to have internally saved their own state appropriately. This works on X11 too (where apps that remember their window positions can do that as well), and it applies to all windows not covered by real session restore. As a result, now all your apps should always re-launch properly on login, rather than only the random-seeing assortment of session-restore-supporting apps re-launching on login. This feature is controlled by the existing setting that turns on or off session restore (David Edmundson, Plasma 6.1. Link)

In the Overview and Present windows effect, the way that windows are arranged is no longer configurable between two imperfect options: now there is only one layout algorithm and it’s waaaaaaay better than the old one! Windows are now arranged much more regularly and it ditches the very haphazard feeling of the old default algorithm, fixing multiple bugs causing weird window layouts including the infamous “stairway to heaven” arrangement (Yifan Zhu, Plasma 6.1. Link 1, link 2, link 3, link 4, link 5):

UI Improvements

When dragging a file or folder over another folder in Dolphin with the option turned on that opens the folder if you hold the dragged file there for a moment, the hovered folder now displays a little animation showing it open a bit (Felix Ernst, Dolphin 24.05. Link):

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

Headsets that report their battery status properly now benefit from a nice icon in all the places in Plasma that can show battery status (Severin Von Wnuck-Lipinski Plasma 6.1. Link)

The desktop context menu has lost its “Refresh” action which was infrequently used and did not actually fix most problems of missing icons that people might want to use it for. This makes the context menu lean and mean, and now nobody will have reason to say it’s “bloated” ever again! You can still manually refresh with F5 if needed (me: Nate Graham, Plasma 6.1. Link):

Bug Fixes

When connecting an iPhone or other Apple mobile device to your machine using a cable, and that phone has a name with an apostrophe in it (e.g. “Konqi’s iPhone”), now it works (Kai Uwe Broulik, kio-extras 24.02. Link)

Fixed the most common KWin crash on X11, which was commonly seen when the screen arrangement changed (Xaver Hugl, Plasma 5.27.11. Link)

Changing the Address, Name Style, Paper Size, or Phone Numbers settings on System Settings’ Region & Language page now actually takes effect (Timo Velten, Plasma 5.27.11. Link)

Fixed an issue that could cause the screen to turn black with only a movable cursor after switching from one virtual terminal to another one with certain graphics hardware (Jakob Petsovits, Plasma 5.27.11. Link)

Wind speed is now properly refreshed over time in forecasts provided by EnvCan in the Weather widget (Ismael Asensio, Plasma 5.27.11. Link)

Fixed a bug that could causing dragging-and-dropping Task manager icons to sometimes stop working (Fushan Wen, Plasma 6.0. Link)

KWin’s Zoom effect can now fully zoom into all areas of complex multi-screen setups (Michael VanOverbeek, KWin 6.0. Link)

A process named “ksmserver-logout-greeter” no longer shows up in your Task Manager while the logout screen is visible (Akseli Lahtinen, Plasma 6.0. Link)

Fixed a visual glitch that could cause window outlines to become slightly disconnected from their windows at certain window sizes when using certain fractional scale factors (Akseli Lahtinen, Plasma 6.0.1 Link)

Fixed a visual glitch that could cause windows on rotated displays to be briefly rotated incorrectly after becoming visible when using the “Glide” effect (Vlad Zahorodnii, Plasma 6.0.1. Link)

Fixed a case where KWin could crash when using the relatively old 340-series of NVIDIA drivers (Vlad Zahorodnii, Plasma 6.0.1. Link)

Fixed a way that Plasma could crash when manually restarted using systemd (Harald Sitter, Plasma 6.1. Link)

The shortcut chooser in the panel configuration dialog now respects your Plasma style’s color scheme as expected (Marco Martin, Frameworks 6.0. Link)

Toast-style notifications sent by Kirigami-based apps no longer visually overflow when they have a large amount of text in them (Jack Hill, Frameworks 6.0. Link)

Other bug information of note:

Performance & Technical

Improved Dolphin’s startup time by between 2% and 17% (Felix Ernst, Dolphin 24.05. Link)

Automation & Systematization

Added an autotest to ensure the proper functionality of text field context menus in QtQuick-based software (Fushan Wen, link)

…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

Thanks to you, our Plasma 6 fundraiser has been a crazy success! I originally thought the goal of 500 new KDE e.V. supporting members was over-optimistic, but you’ve all proven me happily wrong. We’re now up to an amazing 850 members. Thank you everyone for the confidence you’ve shown in us; we’ll try not to screw it up! For those who haven’t donated to become members yet, spreading the wealth via this fundraiser is a great way to share the love.

If you’re a developer… sheesh, take a break for a few days. You’ve earned it!

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!

Categories: FLOSS Project Planets

cursor-shape-v1 in Chromium and Electron

Planet KDE - Fri, 2024-02-23 18:17

Just in time for KDE Plasma 6, Chromium 122 and Electron 29 have been released! They contain my patch that adds support for Wayland’s new cursor-shape-v1 extension protocol. When running natively in a Plasma 6 Wayland session, up-to-date Chromium-based browsers and Electron apps should now always use the correct mouse cursor theme and have the...

The post cursor-shape-v1 in Chromium and Electron first appeared on Ilya's Blog.

Categories: FLOSS Project Planets

Balint Pekker: The Drupal Prep Manual: Recipes!

Planet Drupal - Fri, 2024-02-23 16:38
Does the process of configuring modules and setting up content types manually from scratch sound all too familiar? Have you ever wished for a secret ingredient to simplify your Drupal development process? That's exactly what recipes bring to the table: a structured approach to site building that saves you precious hours of trial and error. After all, in the world of development, time equals money.
Categories: FLOSS Project Planets

The Drop Times: Essential Modules that Help you Create a Retail Website in Drupal

Planet Drupal - Fri, 2024-02-23 13:09
If you're crafting an e-commerce experience where storytelling and customer connection come first, Drupal with Drupal Commerce is your solution. Unlike catalogue-driven platforms, Drupal lets you seamlessly merge your brand story with the shopper's journey, building loyalty and driving sales. Here's a selection of essential modules that empower you to build a captivating online brand and turn your product features into compelling narratives.
Categories: FLOSS Project Planets

Software Heritage Symposium and FOSDEM 2024

Planet KDE - Fri, 2024-02-23 10:33
SWH Community Day I have mix feelings about Paris. In general, I go there to work, so for different reasons, I never managed to enjoy the city. This time has been no different, or almost. I went to Paris to attend to the Software Heritage Community Day on Jan 31st and the Symposium the following … Continue reading Software Heritage Symposium and FOSDEM 2024
Categories: FLOSS Project Planets

Web Review, Week 2024-08

Planet KDE - Fri, 2024-02-23 08:45

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

Paying people to work on open source is good actually - Jacob Kaplan-Moss

Tags: tech, foss, sustainability

Making sure maintainers are well paid is indeed an ongoing problem. There is currently no perfect solution within the world we live in. This is indeed no reason to blame the maintainers themselves for the approach they picked.

https://jacobian.org/2024/feb/16/paying-maintainers-is-good/


Anatomy of a whistleblowing system

Tags: tech, anonymity, security

Interesting explanation of the guarantees such a system must provide and their consequences.

https://securedrop.org/news/anatomy-of-a-whistleblowing-system/


It Was 33 Years Ago Today: Happy Birthday Lemmings! - The Scottish Games Network

Tags: tech, gaming, culture

Happy birthday indeed. Was an excellent and culturally relevant game.

https://scottishgames.net/2024/02/14/it-was-33-years-ago-today-happy-birthday-lemmings/


A vintage network attack called smurf

Tags: tech, networking, security, history

A trip down memory lane when such attacks were indeed common. Nowadays, we know better though.

https://rachelbythebay.com/w/2024/02/21/bcast/


cohost! - “I broke IKEA.”

Tags: tech, phone, spam, hacking

Very funny glitch. This anti-spam system is smart… too bad the wrong victim got in the crosshair.

https://cohost.org/sirocyl/post/2891449-i-broke-ikea


The day I canceled my Spotify subscription

Tags: tech, streaming, criticism

The streaming trap is getting obvious at this point.

https://blog.raed.dev/posts/goodbye_spotify


100 things you can do on your personal website | James’ Coffee Blog

Tags: tech, self-hosting, blog

Lots of ideas indeed. Having your own website gives so much freedom in what you can do there.

https://jamesg.blog/2024/02/19/personal-website-ideas/


Considerations for a long-running Raspberry Pi # Chris Dzombak

Tags: tech, infrastructure, reliability, self-hosting, raspberry-pi

Looks like an interesting and comprehensive reference to squeeze as much reliability as possible from a Raspberry Pi.

https://www.dzombak.com/blog/2023/12/Considerations-for-a-long-running-Raspberry-Pi.html


ActivityPub Server in a Single PHP File – Terence Eden’s Blog

Tags: tech, fediverse

A little experiment to better understand how ActivityPub works.

https://shkspr.mobi/blog/2024/02/activitypub-server-in-a-single-file/


Popular git config options

Tags: tech, git, command-line, tools

Plenty of good tips in there. I knew quite a few, but there are a few nuggets that I’ll test drive I think.

https://jvns.ca/blog/2024/02/16/popular-git-config-options/


A highly customizable changelog generator | git-cliff

Tags: tech, git, command-line, tools, project-management

Looks like a nice way to automate the creation of changelogs.

https://git-cliff.org/


If you’re just going to sit there doing nothing, at least do nothing correctly - The Old New Thing

Tags: tech, api, design

Nice advices for API design. First time I see the term “inert” used in this context. Definitely one I should keep in mind and use when appropriate.

https://devblogs.microsoft.com/oldnewthing/20240216-00/?p=109409


How to debug your initramfs init - Linus’s blog

Tags: tech, debugging, systemd, system

Nice tricks to debug the very early boot process, starting at PID 1. gdbserver saves the day here.

https://linus.schreibt.jetzt/posts/debugging-pid1.html


Writing a scheduler for Linux in Rust that runs in user-space

Tags: tech, linux, rust, system, processes

Interesting, I didn’t know that user space schedulers were coming to Linux. It opens the door to exciting experiments.

https://arighi.blogspot.com/2024/02/writing-scheduler-for-linux-in-rust.html?m=1


Floats Are Weird

Tags: tech, floats, mathematics

Or how calculus can give a feel of why approximation errors can be great or small with floats.

https://a.exozy.me/posts/floats-weird/


Blazingly 🔥 fast 🚀 memory vulnerabilities, written in 100% safe Rust. 🦀

Tags: tech, rust, bug, safety

Check out the docs branch for detailed explanations. This exhibits a loop hole in the Rust compiler allowing to break lifetime inference… and from there all the usual guarantees go through the window.

https://github.com/Speykious/cve-rs


Database Architects: SSDs Have Become Ridiculously Fast, Except in the Cloud

Tags: tech, cloud, storage, ssd, performance

This is indeed an odd situation… there is no good explanation about why this is like this.

https://databasearchitects.blogspot.com/2024/02/ssds-have-become-ridiculously-fast.html?m=1


My Notes on GitLab Postgres Schema Design – Shekhar Gulati

Tags: tech, gitlab, databases, sql, postgresql, performance

Nice exploration of the GitLab database schema. This highlights and finds quite a few of the choices made with an eye on performances.

https://shekhargulati.com/2022/07/08/my-notes-on-gitlabs-postgres-schema-design/


JavaScript Bloat in 2024 @ tonsky.me

Tags: tech, web, frontend, javascript, quality

Something is definitely bonkers regarding the use of JavaScript on the web. The amount of bloat is staggering.

https://tonsky.me/blog/js-bloat/


htmz - a low power tool for html

Tags: tech, web, frontend, htmx

Looks like an interesting trick for more dynamic HTML frontends with very limited used of Javascript. Inspired by htmx it seems to go one step further in the same direction.

https://leanrada.com/htmz/


This message does not exist | Mark J. Nelson

Tags: tech, ux

Or why wording matters… this is clearly a user design fail in this case.

https://www.kmjn.org/notes/message_existence.html


Okay, Color Spaces — ericportis.com

Tags: tech, gui, colors, mathematics

Neat article about colorspaces. Definitely worth reading if you’re curious about the topic. It also has interactive bits to ease the understanding.

https://ericportis.com/posts/2024/okay-color-spaces/


Useful Uses of cat

Tags: tech, modules, design, shell

Turns out to be an interesting discussion about modularity. It’s probably a good approach even for a one liner in a script.

https://two-wrongs.com/useful-uses-of-cat


Agile is a tainted term

Tags: tech, agile, project-management, change

Definitely true. This is why I refrain from using the term nowadays… this allows to focus on the principles instead. Takes more time to explain but allow for slow and steady change management. Indeed it’s not perceived as an all or nothing situation anymore.

https://www.pcloadletter.dev/blog/agile/


On Managing Expectations - Leadership & Work

Tags: management, business, communication

Definitely this. Managing expectations is a big part of management. It’s also important for customer relationship. In both cases, clear communication and finding misunderstandings early are key.

https://poczwardowski.substack.com/p/on-managing-expectations


Coding interviews are effective

Tags: tech, hiring, interviews

Definitely true, this is mostly about avoiding false positives. Still I don’t like online assessments platforms either… you need to see how the candidate is doing, interact with them, etc.

https://www.pcloadletter.dev/blog/coding-interviews/


Gathering Structures

Tags: management, conference

Very comprehensive list of tips and ideas to organize events and get together. Nice for inspiration if you need to organize such a thing.

https://maggieappleton.com/gathering-structures


Bye for now!

Categories: FLOSS Project Planets

Want to visit Gothenburg

Planet KDE - Fri, 2024-02-23 08:32

It’s time for another foss-north again and the Call for Papers is open (as is the Call for Sponsors, hint, hint, nudge, nudge). Make sure to save the dates (April 15-16), get yourself a ticket, and submit your talk!

Happy weekend!

Categories: FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #193: Wes McKinney on Improving the Data Stack &amp; Composable Systems

Planet Python - Fri, 2024-02-23 07:00

How do you avoid the bottlenecks of data processing systems? Is it possible to build tools that decouple storage and computation? This week on the show, creator of the pandas library Wes McKinney is here to discuss Apache Arrow, composable data systems, and community collaboration.

[ 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

Scarlett Gately Moore: Kubuntu: Week 3 wrap up, Contest! KDE snaps, Debian uploads.

Planet Debian - Fri, 2024-02-23 06:42
Witch Wells AZ Sunset

It has been a very busy 3 weeks here in Kubuntu!

Kubuntu 22.04.4 LTS has been released and can be downloaded from here: https://kubuntu.org/getkubuntu/

Work done for the upcoming 24.04 LTS release:

  • Frameworks 5.115 is in proposed waiting for the Qt transition to complete.
  • Debian merges for Plasma 5.27.10 are done, and I have confirmed there will be another bugfix release on March 6th.
  • Applications 23.08.5 is being worked on right now.
  • Added support for riscv64 hardware.
  • Bug triaging and several fixes!
  • I am working on Kubuntu branded Plasma-Welcome, Orca support and much more!
  • Aaron and the Kfocus team has been doing some amazing work getting Calamares perfected for release! Thank you!
  • Rick has been working hard on revamping kubuntu.org, stay tuned! Thank you!
  • I have added several more apparmor profiles for packages affected by https://bugs.launchpad.net/ubuntu/+source/kgeotag/+bug/2046844
  • I have aligned our meta package to adhere to https://community.kde.org/Distributions/Packaging_Recommendations and will continue to apply the rest of the fixes suggested there. Thanks for the tip Nate!

We have a branding contest! Please do enter, there are some exciting prizes https://kubuntu.org/news/kubuntu-graphic-design-contest/

Debian:

I have uploaded to NEW the following packages:

  • kde-inotify-survey
  • plank-player
  • aura-browser

I am currently working on:

  • alligator
  • xwaylandvideobridge

KDE Snaps:

KDE applications 23.08.5 have been uploaded to Candidate channel, testing help welcome. https://snapcraft.io/search?q=KDE I have also working on bug fixes, time allowing.

My continued employment depends on you, please consider a donation! https://kubuntu.org/donate/

Thank you for stopping by!

~Scarlett

Categories: FLOSS Project Planets

Kubuntu: Week 3 wrap up, Contest! KDE snaps, Debian uploads.

Planet KDE - Fri, 2024-02-23 06:42
Witch Wells AZ Sunset

It has been a very busy 3 weeks here in Kubuntu!

Kubuntu 22.04.4 LTS has been released and can be downloaded from here: https://kubuntu.org/getkubuntu/

Work done for the upcoming 24.04 LTS release:

  • Frameworks 5.115 is in proposed waiting for the Qt transition to complete.
  • Debian merges for Plasma 5.27.10 are done, and I have confirmed there will be another bugfix release on March 6th.
  • Applications 23.08.5 is being worked on right now.
  • Added support for riscv64 hardware.
  • Bug triaging and several fixes!
  • I am working on Kubuntu branded Plasma-Welcome, Orca support and much more!
  • Aaron and the Kfocus team has been doing some amazing work getting Calamares perfected for release! Thank you!
  • Rick has been working hard on revamping kubuntu.org, stay tuned! Thank you!
  • I have added several more apparmor profiles for packages affected by https://bugs.launchpad.net/ubuntu/+source/kgeotag/+bug/2046844
  • I have aligned our meta package to adhere to https://community.kde.org/Distributions/Packaging_Recommendations and will continue to apply the rest of the fixes suggested there. Thanks for the tip Nate!

We have a branding contest! Please do enter, there are some exciting prizes https://kubuntu.org/news/kubuntu-graphic-design-contest/

Debian:

I have uploaded to NEW the following packages:

  • kde-inotify-survey
  • plank-player
  • aura-browser

I am currently working on:

  • alligator
  • xwaylandvideobridge

KDE Snaps:

KDE applications 23.08.5 have been uploaded to Candidate channel, testing help welcome. https://snapcraft.io/search?q=KDE I have also working on bug fixes, time allowing.

My continued employment depends on you, please consider a donation! https://kubuntu.org/donate/

Thank you for stopping by!

~Scarlett

Categories: FLOSS Project Planets

Pages