{"acronym":"bobkonf2022","aspect_ratio":"16:9","updated_at":"2026-03-29T13:15:06.030+02:00","title":"BOB Konferenz 2022","schedule_url":"","slug":"conferences/bobkonf/2022","event_last_released_at":"2022-09-06T00:00:00.000+02:00","link":"","description":"","webgen_location":"conferences/bobkonf/2022","logo_url":"https://static.media.ccc.de/media/unknown.png","images_url":"https://static.media.ccc.de/media/events/bobkonf/2022","recordings_url":"https://cdn.media.ccc.de/events/bobkonf/2022","url":"https://api.media.ccc.de/public/conferences/bobkonf2022","events":[{"guid":"367c2883-a31c-4aa2-bc41-2345b71cf9d3","title":"Haskell :heart: Lua","subtitle":null,"slug":"bob2022-haskell-hearts-lua-krewinkel","link":"https://bobkonf.de/2022/krewinkel.html","description":"Haskell and Lua share some similarities, like\n\tsupport for functional programming, but are otherwise very\n\tdifferent. Nonetheless, the two complement each other in\n\tinteresting ways. This is demonstrated by pandoc, the\n\tuniversal document converter, which is written in Haskell and\n\tuses Lua as extension language. Pandoc’s behavior can be\n\tmodified through Lua filters, custom readers, and custom\n\twriters, leveraging the power of Haskell and flexibility of\n\tLua.\n\n        While combining the two languages is made easy by the hslua\n        package, the internals of that package are not always\n        straight-forward and a testament to the powers of Haskell’s\n        Foreign Function Interface. We will take a look at the\n        encountered impedance mismatch and how it was overcome,\n        compare it to efforts in adjacent languages like OCaml, and\n        see how hslua can be used to expose application internals to\n        scripts effectively and conveniently.\n\n\t","original_language":"eng","persons":["Albert Krewinkel"],"tags":["bob2022","104","2022","Talk","BOB","BOBKonferenz"],"view_count":123,"promoted":false,"date":"2022-03-11T15:05:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2026-03-03T08:15:06.322+01:00","length":2132,"duration":2132,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/104-367c2883-a31c-4aa2-bc41-2345b71cf9d3.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/104-367c2883-a31c-4aa2-bc41-2345b71cf9d3_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/104-367c2883-a31c-4aa2-bc41-2345b71cf9d3.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/104-367c2883-a31c-4aa2-bc41-2345b71cf9d3.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-haskell-hearts-lua-krewinkel","url":"https://api.media.ccc.de/public/events/367c2883-a31c-4aa2-bc41-2345b71cf9d3","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"742830b2-4e1f-4620-ae2a-8f75f8536dbd","title":"Event-getriebene Architekturen @ Allianz","subtitle":null,"slug":"bob2022-event-getriebene-architekturen-junker","link":"https://bobkonf.de/2022/junker.html","description":"\nDer Beitrag diskutiert, ob und wie man event-getriebene Architekturen\nals eine Form der reaktiven Architekturen in einer Beratungssoftware\neinsetzen kann. Dabei wird der Bogen von den Geschäftsanforderungen\nbis hin zur technischen Umsetzung gespannt. Warum wurde für diese\nBeratungssoftware der event-getriebene Ansatz gewählt? Es werden\nsowohl die geschäftlichen als auch die technischen Anforderungen\ndiskutiert, die zur Wahl dieses Architekturansatzes geführt\nhaben. Weiterhin wird ein Ansatz diskutiert, wie event-getriebene\nArchitekturen in Übergängen von Legacy-Anwendungen in neue\nArchitekturen unterstützen können.\n\t","original_language":"deu","persons":["Annegret Junker"],"tags":["bob2022","93","2022","Talk","BOB","BOBKonferenz"],"view_count":114,"promoted":false,"date":"2022-03-11T12:35:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2024-11-20T11:00:02.982+01:00","length":1925,"duration":1925,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/93-742830b2-4e1f-4620-ae2a-8f75f8536dbd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/93-742830b2-4e1f-4620-ae2a-8f75f8536dbd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/93-742830b2-4e1f-4620-ae2a-8f75f8536dbd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/93-742830b2-4e1f-4620-ae2a-8f75f8536dbd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-event-getriebene-architekturen-junker","url":"https://api.media.ccc.de/public/events/742830b2-4e1f-4620-ae2a-8f75f8536dbd","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"5eb135e3-ed8d-4b8d-a6d8-4859f222fb93","title":"Keeping CALM – Konsistenz in verteilten Systemen leichtgemacht","subtitle":null,"slug":"bob2022-keeping-calm-braun-bieniusa","link":"https://bobkonf.de/2022/braun-bieniusa.html","description":"\n Eric Brewers CAP-Theorem besagt, dass im Falle von\n Netzwerkpartitionen nur eine von zwei Garantien erreicht werden kann:\n Konsistenz oder Verfügbarkeit. Zehn Jahre später legt Joseph\n Hellerstein das CALM-Theorem nach, und beweist das, was wir\n eigentlich schon immer alle schon geahnt haben: Im Falle von\n Netzwerkpartitionen sind Konsistenz UND Verfügbarkeit unter\n bestimmten Bedingungen eben doch möglich! Wie das geht, zeigen wir\n euch in diesem Vortrag, und nehmen euch mit auf eine Journey vom\n CAP-Theorem hin zum CALM-Theorem. Wir räumen mit gängigen Mythen auf\n und zeigen euch, wie ihr das CALM-Theorem praktisch anwenden\n könnt. Basierend auf unseren empirischen Erfahrungen aus\n verschiedenen Studien (Case Studies und Action Research Studies) und\n unserer laufenden Forschung entwickeln wir Architektur-Empfehlungen\n und Entwurfsmuster für das Design von daten-intensiven, verteilten\n Anwendungen. Der Vortrag gibt konkrete Hilfestellungen für\n Architekt:innen, demonstriert Entwurfsmuster mit laufendem Code und\n teilt mit den Teilnehmern unsere frei verfügbaren open access\n Architektur-Guidelines. ","original_language":"deu","persons":["Annette Bieniusa"," Susanne Braun"],"tags":["bob2022","95","2022","Talk","BOB","BOBKonferenz"],"view_count":95,"promoted":false,"date":"2022-03-11T11:45:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-08-27T09:30:04.826+02:00","length":2794,"duration":2794,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/95-5eb135e3-ed8d-4b8d-a6d8-4859f222fb93.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/95-5eb135e3-ed8d-4b8d-a6d8-4859f222fb93_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/95-5eb135e3-ed8d-4b8d-a6d8-4859f222fb93.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/95-5eb135e3-ed8d-4b8d-a6d8-4859f222fb93.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-keeping-calm-braun-bieniusa","url":"https://api.media.ccc.de/public/events/5eb135e3-ed8d-4b8d-a6d8-4859f222fb93","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"e5a1674a-c90d-400e-bed3-b6b7d028e845","title":"Python Gradual Typing: The Good, The Bad and the Ugly","subtitle":null,"slug":"bob2022-python-gradual-typing-clifford","link":"https://bobkonf.de/2022/clifford.html","description":"Python is well known as a dynamically typed\n\tlanguage, but it has an increasingly mature system of type\n\tannotations which can be gradually introduced to an existing\n\tcode base. I’d like to tell you some good stuff, some bad\n\tstuff and some terrible stuff - based around my experience\n\tadding type annotations to a large Python codebase over the\n\tlast few years.\n\t","original_language":"eng","persons":["Ben Clifford"],"tags":["bob2022","111","2022","Talk","BOB","BOBKonferenz"],"view_count":105,"promoted":false,"date":"2022-03-11T16:20:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2026-03-19T18:30:07.502+01:00","length":2116,"duration":2116,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/111-e5a1674a-c90d-400e-bed3-b6b7d028e845.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/111-e5a1674a-c90d-400e-bed3-b6b7d028e845_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/111-e5a1674a-c90d-400e-bed3-b6b7d028e845.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/111-e5a1674a-c90d-400e-bed3-b6b7d028e845.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-python-gradual-typing-clifford","url":"https://api.media.ccc.de/public/events/e5a1674a-c90d-400e-bed3-b6b7d028e845","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"b272476e-c7bb-4350-8371-f67f565a51f6","title":"Keynote: RustBelt: Securing the Foundations of the Rust Programming Language","subtitle":null,"slug":"bob2022-rustbelt-securing-the-foundations-dreyer","link":"https://bobkonf.de/2022/dreyer.html","description":"The Rust systems programming language promises to\n\tovercome the seemingly fundamental tradeoff in language design\n\tbetween high-level safety guarantees and low-level control\n\tover resource management. Unfortunately, none of Rust’s safety\n\tclaims have been formally proven, and there is good reason to\n\tquestion whether they actually hold. Specifically, Rust\n\temploys a strong, ownership-based type system, but then\n\textends the expressive power of this core type system through\n\tlibraries that internally use unsafe features.\n\nIn this talk, I will present RustBelt, the first formal (and\nmachine-checked) safety proof for a language representing a realistic\nsubset of Rust. Our proof is extensible in the sense that, for each\nnew Rust library that uses unsafe features, we can say what\nverification condition it must satisfy in order for it to be deemed a\nsafe extension to the language.\n\nWe have carried out this verification for some of the most important\nlibraries that are used throughout the Rust ecosystem. The secret\nweapon that makes RustBelt possible is the Iris framework for\nhigher-order concurrent separation logic in Coq.\n\nThe talk will not assume any prior familiarity with concurrent separation logic or Rust.\n\n\n\t","original_language":"eng","persons":["Derek Dreyer"],"tags":["bob2022","999","2022","Talk","BOB","BOBKonferenz"],"view_count":181,"promoted":false,"date":"2022-03-11T09:00:00.000+01:00","release_date":"2022-09-06T00:00:00.000+02:00","updated_at":"2026-02-18T19:45:06.993+01:00","length":3609,"duration":3609,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/999-b272476e-c7bb-4350-8371-f67f565a51f6.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/999-b272476e-c7bb-4350-8371-f67f565a51f6_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/999-b272476e-c7bb-4350-8371-f67f565a51f6.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/999-b272476e-c7bb-4350-8371-f67f565a51f6.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-rustbelt-securing-the-foundations-dreyer","url":"https://api.media.ccc.de/public/events/b272476e-c7bb-4350-8371-f67f565a51f6","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"bd81ac78-466f-482e-a186-345853f4afd2","title":"Compiling Anything to Categories","subtitle":null,"slug":"bob2022-compiling-anything-to-categories-pfeil","link":"https://bobkonf.de/2022/pfeil.html","description":"\nConal Elliott’s Compiling to Categories sparked interest in novel\ninterpretations of Haskell programs that are accessible to a casual\nuser of the language. Conal also created some proofs of concept with\nvery compelling examples. However, many potential users were stymied\nby some limitation or other in the PoCs. At Kittyhawk, we were also\nattracted to the approach. Thankfully, we had the resources to commit\nto it, which allowed us to extend the PoC and even the original paper\nto make it work for us. And now, hopefully, it can work for you as\nwell. This talk will introduce the approach, our use of it as a code\ngenerator for the flight control system of our electric aircraft, the\nlimitations we ran into, and our solutions to them.\n\t\t","original_language":"eng","persons":["Greg Pfeil"],"tags":["bob2022","101","2022","Talk","BOB","BOBKonferenz"],"view_count":141,"promoted":false,"date":"2022-03-11T11:45:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2026-02-14T20:45:29.833+01:00","length":2163,"duration":2163,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/101-bd81ac78-466f-482e-a186-345853f4afd2.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/101-bd81ac78-466f-482e-a186-345853f4afd2_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/101-bd81ac78-466f-482e-a186-345853f4afd2.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/101-bd81ac78-466f-482e-a186-345853f4afd2.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-compiling-anything-to-categories-pfeil","url":"https://api.media.ccc.de/public/events/bd81ac78-466f-482e-a186-345853f4afd2","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"48658336-215b-4957-93d5-98bba8684de0","title":"Composable UI Components","subtitle":null,"slug":"bob2022-composable-ui-components-schlegel","link":"https://bobkonf.de/2022/schlegel.html","description":"It has now been a decade since React revolutionized\n\tfrontend GUI programming with ideas from functional\n\tprogramming. After ten years, however, the promise of simple\n\tprogram logic for complex apps is still not fulfilled. State\n\tmanagement remains an unsolved problem. In this talk I propose\n\tthat we take to functional programming again to escape this\n\tmisery. We analyze code “in its transient nature not less than\n\tits momentary existence” so that at the end of our journey we\n\tfind lenses and stores and true lossless\n\tcomposability. ","original_language":"eng","persons":["Markus Schlegel"],"tags":["bob2022","109","2022","Talk","BOB","BOBKonferenz"],"view_count":129,"promoted":false,"date":"2022-03-11T10:15:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-12-11T21:00:08.243+01:00","length":1940,"duration":1940,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/109-48658336-215b-4957-93d5-98bba8684de0.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/109-48658336-215b-4957-93d5-98bba8684de0_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/109-48658336-215b-4957-93d5-98bba8684de0.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/109-48658336-215b-4957-93d5-98bba8684de0.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-composable-ui-components-schlegel","url":"https://api.media.ccc.de/public/events/48658336-215b-4957-93d5-98bba8684de0","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"d7b66364-d749-4529-9daf-41f8ff76b5e0","title":"Event Sourcing without Responsibility","subtitle":null,"slug":"bob2022-event-sourcing-without-responsibility-sperber","link":"https://bobkonf.de/2022/sperber.html","description":"\n\t  This is a follow-up to Andreas Bernauer’s talk from BOB\n\t  2016: The talk examines the implementation of event-sourcing\n\t  in a highly distributed application for configuration\n\t  management in a large network of car shops among mobile\n\t  devices that are only sporadically connected.\n\nWhen building an event-sourced systems, it’s a common reflex to\nconstruct projections to answer queries instead of sifting through the\nevent stream, using the CQRS paradigm. However, CQRS might not quite\nbe the best way to organize an event-sourced system: The concept of\n“responbility” is foggy in many contexts, and the separation between\n“read models” and “write models” is the wrong axis to use for\norganizing storage and indexing. Moreover, CQRS may lead to\nimplementing read models prematurely and unnecessarily.\n\nWe demonstrate how the implementation of event sourcing and CQRS\nplayed out in our configuration-management application, and reflect\nthe implications for the architecture of future systems.\n\t\n\n\n\t","original_language":"eng","persons":["Michael Sperber"],"tags":["bob2022","1","2022","Talk","BOB","BOBKonferenz"],"view_count":61,"promoted":false,"date":"2022-03-11T10:15:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-04-25T15:00:04.189+02:00","length":1799,"duration":1799,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/1-d7b66364-d749-4529-9daf-41f8ff76b5e0.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/1-d7b66364-d749-4529-9daf-41f8ff76b5e0_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/1-d7b66364-d749-4529-9daf-41f8ff76b5e0.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/1-d7b66364-d749-4529-9daf-41f8ff76b5e0.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-event-sourcing-without-responsibility-sperber","url":"https://api.media.ccc.de/public/events/d7b66364-d749-4529-9daf-41f8ff76b5e0","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"5975f68c-5abd-4c9a-89e0-86d903c8b790","title":"Detecting Oxbow Code in Erlang Codebases with the Highest Degree of Certainty","subtitle":null,"slug":"bob2022-detecting-oxbow-code-in-erlang-castro-brujo","link":"https://bobkonf.de/2022/castro-brujo.html","description":"Learn how to clean up your large Erlang projects by\ndetecting and removing code that’s no longer needed with the highest\nlevel of confidence using Hank, an open-source plugin for rebar3.\n\nThe presence of source code that is no longer needed is a handicap to\nproject maintainability. The larger and longer-lived the project, the\nhigher the chances of accumulating dead code in its different forms.\n\nManually detecting unused code is time-consuming, tedious,\nerror-prone, and requires a great level of deep knowledge about the\ncodebase. In this talk, we examine the kinds of dead code\n(specifically, oxbow code) that can appear in Erlang projects, and\nformulate rules to identify them with high accuracy.\n\nWe also present an open-source static analyzer that implements these\nrules, allowing for the automatic detection and confident removal of\noxbow code in Erlang codebases, actively contributing to increasing\ntheir quality and maintainability.","original_language":"eng","persons":["Laura M Castro","Brujo"],"tags":["bob2022","98","2022","Talk","BOB","BOBKonferenz"],"view_count":13,"promoted":false,"date":"2022-03-11T16:20:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2024-12-03T18:15:03.895+01:00","length":1883,"duration":1883,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-detecting-oxbow-code-in-erlang-castro-brujo","url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"e6b315a9-4f29-4ef6-acb8-081b4121fb27","title":"Tiger kommt: Weglaufen!","subtitle":null,"slug":"bob2022-tiger-kommt-weglaufen-starke","link":"https://bobkonf.de/2022/starke.html","description":"Unser Gehirn wurde von der Evolution über Hunderte\nGenerationen auf “Überleben” optimiert. Dabei haben sich einige\nEigenschaften herausgebildet, die uns in Softwareentwicklung und\n-architektur unbewusst eine Menge Schwierigkeiten bereiten. Wir\nschauen im Vortrag auf einige dieser komischen Phänomene des Gehirns\nund betrachten Zusammenhänge zu typischen Situationen in der\nSoftwareentwicklung.\n\nDie Erforschung mancher dieser Gehirneigenschaften haben einigen\nLeuten Nobelpreise eingebracht - und bieten uns in der\nSoftwareentwicklung gute Ansätze, unsere eigene Arbeitsweise und\nunsere Architekturentscheidungen systematisch zu verbessern.\n\t","original_language":"deu","persons":["Gernot Starke"],"tags":["bob2022","114","2022","Talk","BOB","BOBKonferenz"],"view_count":89,"promoted":false,"date":"2022-03-11T15:05:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-06-05T21:45:03.820+02:00","length":2655,"duration":2655,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/114-e6b315a9-4f29-4ef6-acb8-081b4121fb27.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/114-e6b315a9-4f29-4ef6-acb8-081b4121fb27_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/114-e6b315a9-4f29-4ef6-acb8-081b4121fb27.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/114-e6b315a9-4f29-4ef6-acb8-081b4121fb27.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-tiger-kommt-weglaufen-starke","url":"https://api.media.ccc.de/public/events/e6b315a9-4f29-4ef6-acb8-081b4121fb27","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"24a3523a-b9e4-4352-9316-00ccd2a00416","title":"Local-first Distributed Applications with REScala","subtitle":null,"slug":"bob2022-local-first-distributed-applications-with-rescala-mogk","link":"https://bobkonf.de/2022/mogk.html","description":"Local-first software is a new term for interactive\nend-user applications, which provide data ownership and privacy while\nstill enabling data to be shared, and which allow working offline\nwhile ensuring data consistency. Developing such applications is often\nperceived as hard, because of the use of unsuited general purpose\nprogramming models. REScala is a mature research project that\naddresses these issues and provides a specialized programming model\ndesigned to be understandable by developers while still providing the\nflexibility for efficient implementations that automatically ensure\nall desired properties.\n\nIn this talk, we will show how a combination of functional reactive\nprogramming (the mostly classical variant) and conflict-free\nreplicated data types (specifically join semilattices) provide\nabstract reasoning about all points in space and time for local-first\napplications. Specifically why reasoning in the abstract is actually\nmuch easier for developers than reasoning about all the hundreds and\nthousands of possible special cases their implementation admits.\n\nWe hope that this talk helps to spread such better suited programming\nmodels, thus leading to most software being local-first by\ndefault. Then, we may see a future where individuals own their data\nand not have it stolen by advertisers, and companies keep their\nsovereignty without being at the mercy of the biggest players.","original_language":"eng","persons":["Ragnar Mogk"],"tags":["bob2022","113","2022","Talk","BOB","BOBKonferenz"],"view_count":50,"promoted":false,"date":"2022-03-11T17:10:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2026-02-22T20:45:10.349+01:00","length":2444,"duration":2444,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/113-24a3523a-b9e4-4352-9316-00ccd2a00416.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/113-24a3523a-b9e4-4352-9316-00ccd2a00416_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/113-24a3523a-b9e4-4352-9316-00ccd2a00416.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/113-24a3523a-b9e4-4352-9316-00ccd2a00416.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-local-first-distributed-applications-with-rescala-mogk","url":"https://api.media.ccc.de/public/events/24a3523a-b9e4-4352-9316-00ccd2a00416","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"692fd4a3-0881-47f7-a054-90a14010e125","title":"An Enigma Machine in Elm","subtitle":null,"slug":"bob2022-an-enigma-machine-in-elm-liu","link":"https://bobkonf.de/2022/liu.html","description":"The Enigma machine was an encryption device that was\n\tused by German forces during WW2 to send secret messages. In\n\tthis talk, we will explain exactly how the encryption process\n\tworks and go through an implementation of it in Elm. We will\n\tdemonstrate how to encrypt and decrypt a message. Then we will\n\tgo over the weaknesses that made it exploitable by Alan Turing\n\tand the other fine folks in Bletchley Park. By the end of the\n\ttalk, you’ll be able to point out all the inaccuracies in “The\n\tImitation Game”.","original_language":"eng","persons":["Ju Liu"],"tags":["bob2022","107","2022","Talk","BOB","BOBKonferenz"],"view_count":38,"promoted":false,"date":"2022-03-11T17:10:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-10-03T23:45:04.829+02:00","length":2287,"duration":2287,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/107-692fd4a3-0881-47f7-a054-90a14010e125.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/107-692fd4a3-0881-47f7-a054-90a14010e125_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/107-692fd4a3-0881-47f7-a054-90a14010e125.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/107-692fd4a3-0881-47f7-a054-90a14010e125.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-an-enigma-machine-in-elm-liu","url":"https://api.media.ccc.de/public/events/692fd4a3-0881-47f7-a054-90a14010e125","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"36f133c3-fe79-453f-a103-d3e28c3551a0","title":"io-sim: testing, simulating, and prototyping concurrent programs in Haskell","subtitle":null,"slug":"bob2022-concurrent-programs-in-haskell-kant","link":"https://bobkonf.de/2022/kant.html","description":"We present applications of the Haskell library\n\tio-sim. This library provides type classes with concurrency\n\tprimitives that can either be run in IO, or executed in\n\tsimulation. The library has been developed to help with\n\tQuickCheck-style property based testing of concurrent code,\n\twhere the determinism of the simulations is helpful to get\n\tminimal failing test cases. Subsequently, it has also turned\n\tout to be quite useful for prototyping distributed systems,\n\tgetting performance estimates and prediction points of\n\tcongestion before starting a full implementation.\n\t\n\n\n\t","original_language":"eng","persons":["Philipp Kant"],"tags":["bob2022","110","2022","Talk","BOB","BOBKonferenz"],"view_count":34,"promoted":false,"date":"2022-03-11T12:35:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-11-02T06:15:03.291+01:00","length":1896,"duration":1896,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-concurrent-programs-in-haskell-kant","url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"6b1f42ce-9c34-4662-aa02-8061b6d8e431","title":"Specification-driven design","subtitle":null,"slug":"bob2022-specification-driven-design-breitner","link":"https://bobkonf.de/2022/breitner.html","description":"Do you, too, think that “implementation-defined” is\na derogary term? Let me describe how I have pushed againt that, and\nfor development model that puts an abstract specification of the\nsystem to be built in a central, pivotal position, flanked by a\nclean-room, decoupled “reference implementation” and a “specification\nacceptance test”, using functional programming for good effect in both\ncases.\n\nMany developers tend to focus on the “how”, and less on the “what”, of\nwhat they are building. This is not bad per se, but if left unchecked,\nthis may lead to systems with an “implementation-defined surface”,\nwith a organically grown interface that leaks abstractions and exposes\nimplementation details.\n\nTo counter this effect, one can write a proper specification for the\nsystem. A document that, in prose and or math, precisely describes the\ninterface of the system, but also its behavior, i.e. its\nsemantics. This decouples the outward-facing aspects of the system\nfrom the internals.\n\nOn top of that one can write a reference implementation of the system,\nbased only on the specification. This checks and clarifies the\nspecification, and by comparing the behavior of the two\nimplementations, one can triangulate bugs and detect when\nimplementations and spec went out of sync.\n\nTo make things even more rigid, one can add a conformance test suite,\nagain based soley on the specification, and probes an implementation\nand checks for certain behaviours. This can be integrated into the\ndevelopent process, e.g. as a CI check, and additionally keep the\nimplementations honest.\n\nAll in all, this gives you a clear picture of the essence of your\nsystem or service, a place to discuss changes between stakeholders on\neither side of the interface without getting distracted by\nimplementation designs, insulates your users from implementation\nchanges and gives your developers a clearly demarked space to go wild\nwithin.\n\t\t","original_language":"eng","persons":["Joachim Breitner"],"tags":["bob2022","88","2022","Talk","BOB","BOBKonferenz"],"view_count":58,"promoted":false,"date":"2022-03-11T14:15:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2026-01-19T02:15:06.369+01:00","length":2078,"duration":2078,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/88-6b1f42ce-9c34-4662-aa02-8061b6d8e431.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/88-6b1f42ce-9c34-4662-aa02-8061b6d8e431_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/88-6b1f42ce-9c34-4662-aa02-8061b6d8e431.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/88-6b1f42ce-9c34-4662-aa02-8061b6d8e431.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-specification-driven-design-breitner","url":"https://api.media.ccc.de/public/events/6b1f42ce-9c34-4662-aa02-8061b6d8e431","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]},{"guid":"23da2ed0-c750-4ded-a812-422d3b0907bc","title":"Infrastructure as Code - Betrieb ohne Handarbeit","subtitle":"","slug":"bob2022-infrastructure-as-code-digel","link":"","description":"Der Mehrwert jeder Software kann frühstens erlangt\r\nwerden, wenn sie betrieben wird. In vielen Fällen ist das dann\r\nder Fall, wenn sie auf entsprechender Infrastruktur\r\ninstalliert und betriebsbereit ist. Dafür benötigen wir die\r\nInfrastruktur, müssen diese mit Betriebssystemen und nötigen\r\nSoftwarekomponenten versehen und konfigurieren. Dies ist bei\r\nkleinen Systemen oft trivial, doch bei zunehmender Komplexität\r\nstellt sich schnell heraus, dass der Aufbau und die Wartung\r\neiner stabilen Infrastruktur schwierig ist.\r\n\r\nDaher sollen alle nötigen Schritte automatisiert werden,\r\nnachvollziehbar sein und jederzeit reproduzierbar durchgeführt werden\r\nkönnen. Dafür kommt Infrastructure as Code zum Einsatz. Alle nötigen\r\nDefinitionen und nötigen Schritte werden mit Konfigurationsdateien,\r\nals Code oder mit Domain Specific Languages (DSL) zum eigentlichen\r\nQuellcode der Software festgehalten.\r\n\r\nMit Terraform wird die Infrastruktur an sich definiert. Dabei wird\r\nz. B. festgelegt, wie viele virtuelle Maschinen mit welchen\r\nRessourcen benötigt werden, wie die Netzwerk- und IP-Konfiguration\r\nerfolgen oder in welchem Rechenzentrum die Software betrieben\r\nwerden soll.\r\n\r\nSobald die Infrastruktur vorhanden und zugänglich ist, muss diese\r\nkonfiguriert werden. Mit Ansible und NixOS gibt es zwei Ansätze\r\njeden Installations- und Konfigurationsschritt zu definieren und\r\nautomatisch zur Anwendung zu bringen.\r\n\r\nIm Betrieb stellt man sich dann der nächsten Herausforderung:\r\nSoftware muss häufig und regelmäßig aktualisiert werden. Eine\r\nAutomatisierung ist nahezu unumgänglich. Mit Continuous Deployment\r\nund als Code definierten Schritten in z. B. Github Actions gelangt\r\ndie Software vollautomatisch auf die Infrastruktur.","original_language":"eng","persons":["Tim Digel"],"tags":["bob2022","2022","Talk","BOB","BOBKonferenz"],"view_count":171,"promoted":false,"date":"2022-03-11T14:15:00.000+01:00","release_date":"2022-03-12T00:00:00.000+01:00","updated_at":"2026-03-29T13:15:06.027+02:00","length":2709,"duration":2709,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/97-23da2ed0-c750-4ded-a812-422d3b0907bc.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/97-23da2ed0-c750-4ded-a812-422d3b0907bc_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/97-23da2ed0-c750-4ded-a812-422d3b0907bc.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/97-23da2ed0-c750-4ded-a812-422d3b0907bc.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-infrastructure-as-code-digel","url":"https://api.media.ccc.de/public/events/23da2ed0-c750-4ded-a812-422d3b0907bc","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[]}]}