Skip to content

Commit bdd5803

Browse files
authored
FOSDEM 2025 (#11)
1 parent 0317ceb commit bdd5803

File tree

1 file changed

+335
-0
lines changed

1 file changed

+335
-0
lines changed

content/posts/fosdem-2025.md

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,335 @@
1+
---
2+
title: "FOSDEM 2025"
3+
date: 2025-02-14T10:43:48+01:00
4+
categories: [conference]
5+
tags: [conference, meetup, free software]
6+
draft: false
7+
---
8+
9+
# FOSDEM 2025
10+
11+
In February 2025 I attended [FOSDEM](https://www.fosdem.org) in Brussels, Belgium for the first time. During two days, 1052 events/talks were held with 933 speakers. As you can imagine, I only attended a fraction of the sessions. As part of FOSDEM, many free software projects have booths, and I also spent time working around in the booth areas to get an impression of the diversity of the free software community today.
12+
13+
## Devroom: tools the docs
14+
15+
### Orgmode witchcraft at Spritely
16+
17+
Presenter: Amy Grinn, tech admin, [Spritely Institute](https://spritely.institute/)
18+
19+
The talk was a general overview on how Spritely Institute uses Emacs in many tasks, include documentation. The entire presentation was done from Emacs!
20+
The documentation is written as org-mode files, and one trick is to use Emacs as shell in Makefiles to write build scripts in Elisp, Scheme, or [WISP](https://github.com/skeeto/wisp):
21+
22+
```
23+
SHELL = emacs
24+
SHELLOPTIONS = -Q --batch --l setup.el --eval
25+
```
26+
27+
To support multiple programming languages, a picker is added to the documentation. It is primarily using CSS to pick the language, and if JavaScript is disabled in the browser (the Tor browser in particular), a default language is shown only.
28+
Org-mode and Emacs on mobile, the presenter recommends using `termux` and Syncthing is a good option to sync between laptop/desktop and mobile.
29+
For bookkeeping, Spritely is using the ledger [Beancount](https://github.com/beancount/beancount) which has a good integration with Emacs. The Emacs package[Boxy](https://elpa.gnu.org/packages/boxy.html) (maintained by the presenter) is usedto render tree of accounts.
30+
31+
### CLI magic tricks for docs projects
32+
33+
Presenter: Lorna Mitchell, between jobs (a vim and Linux user)
34+
The take-home message in this talk is that command-line (CLI) tools are important for document. Arguments to learn CLI tools are:
35+
36+
- never go out of fashion
37+
- are searchable and the internet has many resources
38+
- are scriptable (for batch processing)
39+
40+
The talk was a primarily a demo of useful tools: `ls`, `tree`, `wc`, `grep`, `sed`, `diff` (remember to set diff tool for git: `git config diff.tool`). Due to limited time, the presenter was not able to show any advanced use cases or tools.
41+
42+
### Patterns for maintainer and tech writer collaboration
43+
44+
Presenter: Daniel D. Beck
45+
46+
The talk explained why many open source maintainers is failing to recognize (by under and overestimating) tech writers' capacity and skills, and their own support. In that way, they are failing to link resources to project's need. The consequence is that tech writers and maintainers often don't collaborate.
47+
The presenter has done research documentation project archetypes, and he has identified-
48+
49+
- Planning and evaluation
50+
- Production (manual, samples)
51+
- Revision and transformation
52+
- Tools and processes
53+
54+
#### References
55+
56+
- https://ddbeck.com/fosdem2025/
57+
- https://innersourcecommons.org/
58+
59+
### Evolving real-world AsciiDoc into a specification and how it will help the ecosystem
60+
61+
Presenter: Alexander Schwartz, Redhat
62+
AsciiDoc is a lightweight text format, and currently Eclipse Foundation is working on a formal specification.
63+
64+
The presenter explained about the three stages of a typical workflow when working with documentation: author -> convert -> publish. For documentation in AsciiDoc, [Antora](https://antora.org/) is a tool for generating static web sites.
65+
66+
#### Reference
67+
68+
- https://asciidoc.org
69+
70+
### Docs straight from the code - AST powered automation
71+
72+
Presenter: James Shubin, https://purpleidea.com/
73+
74+
With this talk, the presenter introduced and demoed his own tool to generate API documentation for Go code. As most modern languages store comments in AST, you can generate the documentation from the comments.
75+
76+
### No more broken docs: keep docs accurate with Doc Detective
77+
78+
Presenters: Jake Cahill and Ariel Kaiser
79+
80+
As a beginning, the presenters highlighted the challenges to keep docs in sync with product:
81+
82+
- product updates
83+
- share responsibilities -> no responsible
84+
- lack of knowledge: tech writers don't know the product well enough
85+
86+
When the document is out of sync with the product, the consequences can include
87+
88+
- user frustrations
89+
- support overhead
90+
- user retention
91+
92+
One solution is to use [docs as test](https://www.docsastests.com/) to automate testing of documentation.
93+
The talk explained and demoed [Doc Detective](https://doc-detective.com/) which is a test framework for CLI tools, web UI, and API calls. It used JSON as format to describe tests, and the target audience is tech writers. Features include
94+
95+
- take screenshots and do screen recordings to check if they differs from a previous screenshot
96+
- can also be used for updating documentation's screenshots
97+
- can generate test files using regular expressions
98+
- has GHA support
99+
100+
An example of a user of Doc Detective is [RedPanda Console quick start](https://docs.redpanda.com/current/console/quickstart/).
101+
102+
### API documentation testing with AI user simulation
103+
104+
Presenter: Lisa Driukova, JetBrains
105+
106+
The talk was focusing on API documentation, and the challenges of getting feedback on API doc can be
107+
108+
- time constraints
109+
- expertise of users (too skilled, not enough skilled)
110+
111+
The solution could be to use AI:
112+
113+
- test for gabs in documentation
114+
- identify edge cases and unanswered questions
115+
- reduce cognitive load of stakeholders
116+
117+
The presenter has created a PoC with a workflow starting with an OpenAPI spec. Currently, using AI is not useful for unstructured documentation.
118+
119+
### 9800 sandboxes and counting
120+
121+
Presenter: Jay Clifford, Grafana
122+
123+
The goals of deveveloper documentation are
124+
125+
- key source of truth for product
126+
- enablement: from beginner to expert user
127+
128+
Grafana is using a sandbox based on [Killercoda](https://killercoda.com/). The advances include
129+
130+
- a disposable VM
131+
- interactive docs
132+
- experiment risk free
133+
- accelate learning curve
134+
135+
Currently is it used for course material at Grafana. Killercode is using with markdown and JSON, and has engagement tracking build in.
136+
137+
## Building the next generation cloud native database
138+
139+
Presenter: Sunny Bains, PingCAP
140+
The presenter used the talk to introduce the [TiKV](https://github.com/tikv/tikv), which is implemented in Rust and is utilizing the [Raft consensus algorithm](https://raft.github.io/). The next generation of databases must be able to scale up to 200 PB - and scale down when needed!
141+
A cloud native database (TiDB serverless as an example)- in the presenter's opinion - must use
142+
143+
- S3: it is cheap to storage but can be expensive to access
144+
- Integrate the database with the cloud providers' services
145+
- Disaggregated storage
146+
- local disks or memory as write-through cache
147+
- data shared by row and column
148+
- Raft logs as the only log
149+
- spot instances to operate on immutable S3
150+
151+
## 14 years of systemd
152+
153+
Presenter: Lennart Poettering
154+
155+
The presenter's code (systemd) is used by major Linux distributions, and a few distributions have been created to use the presenter's code!
156+
157+
The title of the talk turned out to be inaccurate - it is 15 years ago systemd development was initiated.
158+
Before systemd we had
159+
160+
- sysvinit (designed in 1983, first commit can be traced back to 1992)
161+
- upstart (2006 - 2014) - used by Ubuntu
162+
- manual configuration
163+
- slow development
164+
- unfair contributor rules (copyright transfer)
165+
- babykit evolved into systemd
166+
167+
Systemd is influenced by
168+
169+
- sysvinit and upstart
170+
- Apple's launchd (from 2005)
171+
- Solaris SMF (from 2005)
172+
- UNIX?
173+
- it has a unified repository for kernel and user space
174+
- Linux is the opposite with its many distributions
175+
- systemd is heavily using `cgroup` which is close to the UNIX' philosophy that everything should be a file (or at least a directory)
176+
177+
Today, systemd is default for major Linux distributions:
178+
179+
- Fedora since 2011
180+
- openSuse and Arch since 2012
181+
- RHEL + SLES since 2014
182+
- Debian + Ubuntu since 2015
183+
184+
The project has 6 core maintainers, and 60 persons with commit rights. It consists of about 150 binaries, and it is mostly written in C (690k SLOC). It relies heavily on `dlopen()` as a way to support weak dependencies.
185+
186+
When deciding if something belongs to systemd, the following criteria are considered:
187+
188+
- generic
189+
- foundational (low-level)
190+
- common
191+
- future (no legacy)
192+
- clean (don't cut corners)
193+
- follow a common style
194+
195+
The project operates with a number of important concept. For example, a clear seperation of `/etc`, `/run`, and `/usr`. Hermetic `/usr` (`/usr` must contain everything needed to set up a minimal working system) is a cornerstone. Merging of configuration files from various locations should always work, and configuration should be declarative and not imperative. For the project, it is important to follow existing standards, and document behaviour accurately.
196+
The future - according to the presenter and not all core maintainers - could include
197+
198+
- boot and system integrity (solved by major commercial operating systems) to lock down what you can run
199+
- Pivot IPC - [varlink](https://varlink.org/) is an option
200+
- C
201+
- Rust is considered as an alternative but dynamic linking in Rust is not ready for production usage
202+
- moving from a package-based OS to an image-based OS
203+
- systemd already has [`mkosi`](https://github.com/systemd/mkosi)
204+
205+
## Forked communities: project re-licensing and community impact
206+
207+
Panel:
208+
209+
- Stephan Walli, Microsoft
210+
- Dawn M. Foster, CHAOSS
211+
- Ben Ford, Overlook InfraTech
212+
- Brian Proffitt, Redhat
213+
214+
The panel discussion was focusing on a number of commercial open projects which have in the last years re-licensed to a non-open license: MongoDB, ElasticSearch, Redis, and Terraform.
215+
216+
The re-licensing has shown gaps in the (open source) business model, and it has typically abandoned the community around the project.
217+
218+
In the last decade, forking larger open source projects haven't been common, and often the code and projects have been merged back. Recent development is that forks happen more often.
219+
220+
Corporate diversity seems to make it less likely to re-license, and for projects with multiple companies participating, the project will be more healthy. And more healthy project, forking and re-licensing is less likely.
221+
222+
According to RedMonk, there is no financial benefit by re-licensing.
223+
224+
The panel agrees that cloud providers are in their rights to use open source software. But their scale seems to be the issue as they don't contribute back to the project.
225+
226+
## Databases in the AI trenches
227+
228+
Presenter: Bruce Momjian, EDB
229+
230+
With the introduction of ChatGPT in November 2022, AI moved from discriminative AI to generative AI (GenAI). Discriminative AI is used for classification, recommendation, prediction, and translation. Generative AI gives us human-like conversations.
231+
The presenter tried to give a high-level introduction to how GenAI is implemented. From embedding vectors, vector search to transformers. The ultra-high dimensional vector spaces can consume very large data sets.
232+
The presenter used PostgreSQL and OpenAI/ChatGPT to demonstrate how you can implement your own AI applications.
233+
234+
## Devroom: JavaScript
235+
236+
### JSR - open source package registry
237+
238+
Presenters: Leo Kettmier, Deno; Luca Casonato, Deno
239+
240+
JavaScript Registry (JSP) is a new alternative to NPM, and is a reaction to NPM's lack of openness and innovation. It can work with NPM packages, and it supports Deno, Bun, Node.js, and Cloudflare Workers.
241+
TypeScript support is build in, and when you publish a package, TypeScript is transpiled to JavaScript by JSR to make it easy for NPM users to consume the package. Moreover, API documentation is extracted and published with the package.
242+
To avoid type-squatting, all packages must be published within a scope.
243+
JSR is currently setting up a governance board to ensure transparency in all decisions. In the near future, JSR will be transferred from Deno to a foundation (still unclear which one).
244+
245+
### Nobody asks "How is JavaScript?"
246+
247+
Presenter: Ujjwal Sharwa, Igalia
248+
249+
The talk was a walk-through of the standardization process around Java^H^H^H^HECMAScript. The technical committee ([TC39](https://github.com/tc39)) consists of
250+
251+
- delegates
252+
- implementors
253+
- companies
254+
- non-profit organizations
255+
- universities
256+
- invited experts
257+
- subject-matter experts
258+
- community representatives
259+
- editors and reviewers
260+
261+
All decisions are done in consensus, and each proposal goes through a number of stages:
262+
263+
- 0: Just an idea (over-simplified proposal), and many proposals will not go further.
264+
- 1: A proposal, and time is devoted to to develop it. A demo and polyfills are developed, and a champion is elected to managing the proposal. It is not a solution yet.
265+
- 2: Syntactic and semantic details are ironed out, and a formal specification is written. It is now a solution as APIs are completed.
266+
- 2.7: Conformance tests are written which will help engine implementors. The [test262](https://github.com/tc39/test262) test suite is a good place to contribute.
267+
- 3: Recommended for implementors.
268+
- 4: Finished when two implementation are passing conformance tests.
269+
270+
We can expect ECMAScript 2025 in June!
271+
272+
### Privacy-first architecture: alternatives to GDPR popup and local-first
273+
274+
Presenter: Andrey Sitnik
275+
276+
The talk was an introduction to [local-first](https://localfirstweb.dev/) as a new paradigm in developing privacy-aware software. It stands in opposition to the current server-first (cloud) paradigm, and the local-only paradigm in the early days of computing.
277+
Local-first is a spectrum as not all applications can satisfy the criteria in the [locat-first manifesto](https://www.inkandswitch.com/local-first/). The benefits include simplified server, cheap to scale up, no privacy issues, higher developer productivity and zero latency.
278+
The technical side of local-first is to have a local/client-side database and persistence storage (can be challenging for browsers), and conflict resolution when synchronizing data. Often [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) are used (the presenter didn't mention [Operational Transformation](https://en.wikipedia.org/wiki/Operational_transformation)).
279+
280+
### Demystifying Temporal
281+
282+
Presenter: Aditi Singh, Igalia
283+
284+
`Temporal` is the replacement for JavaScript's `Date`, and it has started to be implemented in popular JavaScript engine (currently in stage 3). The features are
285+
286+
- time/date computations
287+
- internationalization (including time zone and non-gregorian calendars)
288+
- strongly typed
289+
- immutable
290+
291+
The talk demonstrated how `Temporal` can be used, and solutions were compared to code using `Date`. `Temporal` seems to be a good advancement for JavaScript developers.
292+
293+
### EuroHPC FP: a Federated Platform for HPC Infrastructure in Europe, Built with Open Source Software
294+
295+
Presenter: Henrik Nortamo
296+
297+
The talk presented the work on unifying the HPC installations in Europe. Currently Europe has 9 active and 3 planned supercomputers, 7 announced AI factories and about 8 quantum computers in progress. A major challenges for users today is that they need to have separate accounts on each supercomputer or AI factory, they use. Moreover, using AI attract users with non-HPC background (read: Linux, C/C++/Fortran and command-line tools). EuroHPC wants to make it easier for researchers and companies to utilize the supercomputers and AI factories.
298+
299+
A federated platform (EFP) has been designed and is under development. We can expect it to be fully operational in Q1/2026. EFP will provide
300+
301+
- single sign-on
302+
- centralized view of resources
303+
- a software catalogue
304+
- interactive web accees
305+
306+
The platform is built on open source software, including
307+
308+
- MyAccessID - secure shell, identity management
309+
- Walder - allocation/job scheduler
310+
- Grafana and OpenSearch - monitoring
311+
- OpenOnDemand - Jupyter and remote desktop
312+
- zammad - helpdesk
313+
- Lexis and Apache Airflow - workflows
314+
315+
It is expected that later will be possible to integrate smaller regional/national installations with EFP.
316+
317+
## Running Kubernetes Workloads on HPC with HPK
318+
319+
Presenter: Antony Chazapis, Institute of Computer Science, FORTH
320+
321+
The presenter introduced his system to integrate Kubernetes workloads on classical supercomputers. The system is called HPK (High Performance Kubernetes). It creates ephemeral Kubernetes mini-clusters to run on cluster nodes allocated by [Slurm](https://slurm.schedmd.com/documentation.html).
322+
323+
## How we are defending Software Freedom against Apple at the EU's highest court
324+
325+
Presenter: Lucas Lasota, Free Software Foundation Europe
326+
327+
The presenter began his talk with talking about an awkward neighbor who
328+
329+
- eats 30 % of your pizza
330+
- never leaves
331+
- and controls who you can invite home
332+
333+
The awkward neighbor is a metafore for Apple and how they control iOS and iPadOS. In general, EU calls the awkward neighbor gateway in the Digital Market Act, and specific actions can be taken against gateways. The talk centered around how FSFE has pushed the case against Apple at EU's highest court.
334+
335+
The presenter argues that if we can talk about healthy digital ecosystems, mobile today is a digital plantation and a monoculture.

0 commit comments

Comments
 (0)