Daily Shaarli

All links of one day in a single page.

August 29, 2026

PURR signale au niveau européen les mauvaises pratiques de la CNIL — Association P·U·R·R

La CNIL est signalée par PURR au Comité Européen pour la Protection des Données le 7 août 2026.

Le signalement est disponible à l'adresse https://asso-purr.eu.org/assets/media/20260807-cepd-incoherences.pdf

Exponential Backoff And Jitter | AWS Architecture Blog

Different algorithms can be used:

Full jitter:

sleep = random(0, min(cap, base * 2 ** attempt)

Equal jitter:

temp = min(cap, base * 2 ** attempt)
sleep = temp / 2 + random_between(0, temp / 2)

Decorrelated Jitter (based on the last sleep value):


sleep = min(cap, random_between(base, sleep * 3)
Parsing the Infamous Japanese Postal CSV

The official CSV file contains comment in parentheses. Why not using a dedicated field per row for it?

If the line is longer, then the text is split to multiple line. The postcode, names are repeated.

issues. There are catch-all postal codes for many areas, where the neighborhood is given as "except the following", and the only thing to do is look for that exact string and exclude it.

The separate romaji file is of low quality.

That's why posuto aims to simplify this.

Civic Hygiene – Terence Eden’s Blog

It's bad civic hygiene to build technologies that could someday be used to facilitate a police state. - Bruce Schneier

All you need is PostgreSQL

In this post, I’ll walk through a set of common misconceptions that drive teams to introduce new infrastructure when they don’t need to. All of these can be solved with vanilla PostgreSQL 18 using standard extensions available on RDS, with no special infrastructure and no distributed-systems cosplay.

The database can be used for many things people often miss:

  • user roles (finance) for modularity. In particular, a proper role can be used for defining very precise interfaces on top of database objects
  • domains can be defined as an application of the abtract data type to database management
  • a table for transfers can be stored with a system-time temporal table
  • account audits (store old versions for logs)
  • transaction state machine with functions
  • record size estimation
  • Heap-Only Tuple to avoid write amplification when primary keys are aligned with immutable columns. It enables faster updates. See https://ebellani.github.io/blog/2026/all-you-need-is-postgresql/#introduction:~:text=Enabling%20HOT%20Updates%20for%20Transfers,-By
  • excellent OLTP (quick read and write individual rows) with a primary key reflecting the access pattern
  • view to reuse queries from multiple tables
  • excellent OLAP: large volumes of data while allowing quick query response times: a finance.balance_ledger table stores a snapshot of both balances after every transaction.
  • incremental maintenance via triggers
  • correct isolation with alter role finance set default_transaction_isolation = 'serializable';. If a cyclic transaction is detected, then one of the transaction fails. The application must be prepared to retry aborted transactions, but the invariants are never violated.

Key takeaways:

  • 766 TPS overall with 0 failed transactions. The startup target of 10,000 transfers/day is ~0.12 TPS. We exceed that by over 6,000x, confirming massive headroom on modest hardware.
  • 0 serialization failures: Despite 10 concurrent clients writing to 100 accounts under SERIALIZABLE isolation, no transactions were aborted. The working set is distributed across enough accounts that write contention is negligible at this scale.
  • 8ms average read latency: The UNION ALL view over 4 tables plus the balance ledger lookup completes well within interactive response time, even as the tables grow throughout the 60-second run.
  • 33ms average write latency: Each write transaction exercises the full constraint set that implements complex business logic (audit trails, time constraints, balances, etc) all within 33ms. This is the true cost of enforcing every business rule at the data level, and it is more than acceptable.

The full SQL is provided at the end.

Child Safety on Federated Social Media - 20230724-fediverse-csam-report.pdf

The paper describe child sexual abuse material (CSAM) on the Fediverse. It relates CSAM exists across essentially every sufficiently large online communications environment. Rather, the researchers argue that federation creates a distinctive set of technical, organizational, and legal problems for detecting, reporting, and removing CSAM: removing content (or stopping content propagation), different rules are used accross the Fediverse,

The existing child-safety technologies designed for centralized platforms do not map cleanly onto federated networks. The researchers conducted an investigation 325 000 posts during two post days.

Human moderators are important for the Fediverse but it's also a burden placed on volunteer administrators. CSAM detection is not enough and account enforcement is also difficult because one user can create another account on another instance.
The report promotes:

  • easier access to CSAM hash-matching technologies;
  • standardized reporting procedures;
  • better tools for volunteer moderators;
  • training and support for administrators;
  • mechanisms for sharing threat information;
  • stronger cross-instance blocking;
  • better detection of abusive accounts and repeat offenders; and
  • improved coordination with organizations and authorities responsible for child protection.
Debian Linux developers vote to allow "Responsible Use of Generative AI" | GamingOnLinux