Commit graph

94 commits

Author SHA1 Message Date
15090bd997 Graph: explain cache coherence
simple animated box diagram -- generated by Claude,
after a short discussion to clarify and sharpen what I want, didactically
2026-08-09 05:38:56 +02:00
4de78bc2a5 A mathematican's joke ... recreated by ChatGPT
I saw this handwriting on the wall of a toilet at the
Mathematician Institute of Munich University (LMU) in the 1990ies.
2026-08-09 04:15:53 +02:00
3f1eae2e17 Talk: planning slides 2026-08-08 19:40:17 +02:00
af4c3778a3 complete the train-of-thought for the talk
...including the explanation of the Demo-Code
2026-08-05 01:14:41 +02:00
f46f117eda Graph: fabricate overview of timing scales
Content generated by Knowledge-Technology

 - collect information with the help of Claude
 - validate my own measurements with sources from the net
 - find a suitable form for the presentation
 - instructed Claude to build a SVG with a logarithmic time scale
 - instructed Claude to summarise the findings as Asciidoc table
2026-08-04 19:20:45 +02:00
7650da5d67 general considerations and further recherche to Unix design philosophies
using Claude to dig into the ''MIT vs Berkely'' divide,
then dive into various original sources.

Relevant since the Unix design is often linked to the ''Berkely'' attitude,
and this system of simple building blocks is rooted in blocking IO as an concurrency primitive
2026-08-04 03:34:48 +02:00
5068e04bd7 draft a train-of-thought for the talk 2026-08-02 23:38:55 +02:00
4c1ece977d summary of recherche regarding history of io_uring 2026-07-31 18:12:50 +02:00
3e67eeac5d summary of recherche regarding kernel calls 2026-07-31 18:11:44 +02:00
8fd1555955 summary of recherche regarding synchronisation and performance aspects 2026-07-31 00:07:00 +02:00
506cca77c9 Reflection for the conception of the talk 2026-07-31 00:07:00 +02:00
703e60c85a Review: identify and resolve problem with sync logic
''Review supported by Claude Code''

Control flow logic was scrutinised, and a race identified
in the solution to pass on the display action to the GUI thread.

Reconsidering the design, cross-thread synchronisation is now
hinged rather on a single atomic buffer pointer, where the GUI
thread notifies back completion of display work by setting that
pointer to NULL. Overall this simplifies the control logic

----
As an aside, I setup an outline of topics for documentation in `DemoSpec.txt`
and then instructed Claude to fill in the paragraphs, based on insight gained
as part of the code validation / review. Furthermore, I requested to generate
some diagrams that could be useful later when preparting the presentation
2026-07-19 03:48:16 +02:00
72e1838b36 Prototype/Demo: add IO timing measurement
- use a helper class with a series of timer variables
- these can be addressed like the buffer ring »slots«
- commit each individual measurement into an EMA
2026-07-18 01:25:17 +02:00
b92977883c Prototype: Playback parameters for a 1200px-50fps video
Search for suitable footage to show in the demo:
Using a scene from New-Year 2023/24 at the Munich "Reichenbachbrücke"
2026-07-17 19:00:14 +02:00
0cda45278c Prototype: demo works — after fixing obvious mistakes
No fundamental problem discovered thus far...
 - GTK-3 does not resize the window, need to `set_size_request()` (instead of `resize()`)
 - forgot to set slot-state to READ ⟹ submissions flood the full queue
 - condition to allow frame display was too tight, thus slipping at first frame
 - forgot to submit follow-up read tasks
2026-07-17 00:14:29 +02:00
c9f9fec117 Prototype: code improvements
- rename the states to better reflect their purpose
 - introduce getters for in BufferDispatcher
2026-07-16 19:31:34 +02:00
0cb388d4a7 Prototype: implement complete Proactor buffer state-engine
Turns out we need to add further states and transitions,
to establish full sync-link (backpressure) in both directions...
 - need to introduce a third cursor since the callback from GUI-Thread can be late
 - consequently also need a further state transition SHOW -> WAIT to create the barrier
 - furthermore, need marker state STOP to halt playback after a short read (end-of-file)
2026-07-16 04:02:18 +02:00
ae74bd323e Prototype: establish buffer data structure and initialise URing
- setup a IORING_OP_TIMEOUT to drive the frame loop
- use the status mark of buffers ahead to supply new IORING_OP_READ
- rely on two running framecount cursors with modulus to map onto buffer slots
2026-07-15 23:53:23 +02:00
2a61def8a4 Prototype: need to introduce an interface for the frame data feed
Since I want to segregate the code according to the domain,
several methods must be provided to the video display to conduct
a properly synchronised handover of video pixel data; by using
`Glib::Dispatcher` as base class, all aspects of feed synchronisation
can be packaged into a single connection interface, without having
to share implementation details between the video display and player.
2026-07-15 20:40:59 +02:00
4699ae8f03 Prototype: settle wiring and configuration of UringVideoPlayer and EglDisplay
This implies a basic decision regarding the buffer and state data to use,
and how this can be defined, parameterised and passed between threads.

I decided to place separation of domains first and to prefer
using a functional callback over using a shared data structure.
2026-07-15 18:56:37 +02:00
6bf8a0da7a Prototype: integrate EglDisplay as self-contained component 2026-07-14 20:16:18 +02:00
b92de63d25 Prototype: establish a top-level structure
leaning heavily on the similar structure used for last year's
FrOSCon talk regarding video output (by Benny Lyons and myself).

However, this time we'll use a process state object (the player)
and, furthermore, there is some cross-wiring of components involved...
2026-07-14 19:27:27 +02:00
e0d4de5737 Notes regarding a design dialog with Claude 2026-07-13 20:58:10 +02:00
dc66af56c1 Documentation skeleton to complement the example code
...reusing the template from the "Video Output" example code last year
2026-07-12 03:56:11 +02:00
be38f2a0d1 Prototype: add dependency to liburing 2026-07-12 03:35:25 +02:00
9e0f2aed6b Prototype: setup for example code ++ GPL v2+
Hereby I use the setup and framework from last year's FrOSCon talk
to bootstrap the demo example code for the talk at FrOSCon-26

Notably, the modern OpenGL output pipeline based on EGL is intended for reuse.
Insights in this code were based essentially on existing code bases under GPL.
Furthermore, using GPL is seen as a statement in support of "The Commons"
2026-07-11 20:43:45 +02:00
9de0dec9da Referenz zu den Operations-Mappings in Liburing 2026-07-10 20:41:13 +02:00
10f155d1a3 In das Thema IO-URING eingelesen 2026-07-10 02:57:34 +02:00
00e8460d1c Planung und Notizen zur LAC-2026 in Maynooth / Dublin / Irland
Will Godfry hatte mich gebeten, den Yoshimi-Workshop gemeinsam zu machen.
Zunächst hatten wir einen typischen Workshop geplant, dann aber nur 45Minuten
bekommen. Die reduzierte Version war mehr eine Demo-Session.

Hier auch einige Punkte zur Reisevorbereitung notiert,
sowie diverse praktische Erfahrungen.

Und eine Notiz zum Fazit
2026-07-06 20:33:38 +02:00
3f7baa8e24 Projektantrag eingereicht.
Hab den Text noch etwas ausgefeilt.
Auch noch einige Formulierungs-Verbesserungen gemäß ChatGPT eingearbeitet.
2026-05-23 22:56:14 +02:00
df04350e33 Textentwurf für den Call-of-Papers
Mit dem etablierten Schema war das nicht schwer...
Fehlen nur noch ein paar technische Details
2026-05-23 04:57:54 +02:00
0af1b5c355 Platz für neue Notizen.... 2026-05-12 11:36:16 +02:00
320ce94c4e __FrOSCon26__ : Planung und Vorbereitungen 2026-05-10 12:51:04 +02:00
264083ed90 Presentation-Template exctracted 2025-08-08 18:22:38 +02:00
1e290dba8f ++ FrOSCon24 ++ Vortrag erfolgreich gehalten
- noch zwei Folien rausgenommen
- auf der Reise im Hotel geübt und Übergänge optimiert
- trotzdem lande ich stets bei 60 Minuten
- beim tatsächlichen Vortrag habe ich noch fast
  5 Minuten für Fragen rausgeholt

https://media.ccc.de/v/froscon2024-3133-alt_werden_mit_c
2024-08-21 23:43:02 +02:00
30630ee3dd noch etwas gestrafft und üben, üben, üben
...trotzdem lande ich jetzt bei 60 Minuten
2024-08-14 05:01:42 +02:00
e6d886e18b besser, aber brauche immer noch viel zu lang 2024-08-13 17:44:26 +02:00
48c651f59d Probleme mit der Darstellungsweise 2024-08-13 15:45:04 +02:00
29da561568 kleine Anpassungen Reihenfolge std::function 2024-08-12 18:00:54 +02:00
b8b71de843 Tweaks an der Präsentation und Überlegungen zum Vortrag 2024-08-12 04:02:15 +02:00
59021f0030 Präsentation fertiggestellt 2024-08-11 06:28:27 +02:00
ebd5dadf6b Animation und Code für Pipeline-Builder 2024-08-11 05:25:31 +02:00
59d83efe5b Animationen Umgang mit beliebigen Argumenten 2024-08-11 03:42:30 +02:00
bb685de891 Animationen / Code für Lambda und Konsequenzen 2024-08-11 02:23:34 +02:00
492150c753 Schema für Beispiel Schleife gezeichnet 2024-08-11 00:14:25 +02:00
5d0db96134 Animationen Einleitung komplett 2024-08-10 18:16:03 +02:00
f7d9c317c9 Animation: Functor vs Lambda 2024-08-10 14:50:51 +02:00
785d713d5c Beispiel(Code): Functor und Lambda 2024-08-10 03:30:46 +02:00
667814eaa8 Folien anlegen: Schlußstück -- Traits und Concepts 2024-08-09 23:44:52 +02:00
750d0af8a8 Folien anlegen: Funktoren und Lambdas 2024-08-09 04:59:15 +02:00