{"acronym":"bobkonf2020","aspect_ratio":"16:9","updated_at":"2026-04-03T08:00:03.385+02:00","title":"BOB Konferenz 2020","schedule_url":"","slug":"conferences/bobkon/2020","event_last_released_at":"2020-05-07T00:00:00.000+02:00","link":"","description":"","webgen_location":"conferences/bobkon/2020","logo_url":"https://static.media.ccc.de/media/events/bobkonf/2020/bobkonf_2020.jpg","images_url":"https://static.media.ccc.de/media/events/bobkonf/2020","recordings_url":"https://cdn.media.ccc.de/events/bobkonf/2020","url":"https://api.media.ccc.de/public/conferences/bobkonf2020","events":[{"guid":"fc8a10b2-c4e5-4cc0-893c-8c59b7e92b5f","title":"The Lessons of 14 Years of Open Source Haskell","subtitle":null,"slug":"bob2020-111_the_lessons_of_14_years_of_open_source_haskell","link":"https://bobkonf.de/2020/krewinkel.html","description":"Haskell is part of the open source ecosystem and is\n\there to stay. We use pandoc, the swiss army knive of document\n\tconversion, which created in 2006 by John MacFarlane, to dive\n\tinto the effects of using Haskell in an open source\n\tproject. Pandoc enjoys widespread use among technical and\n\tless-technical users and is one of the best known open source\n\tHaskell programs with millions of downloads. Yet, even\n\tprogrammers interested in functional programming are\n\tfrequently unaware of pandoc’s implementation language.\n\n\tWe use pandoc as an example to answer many real-life questions\n\twhich surround Haskell: How did the choice of programming\n\tlanguage effect the development of the project? Do developers\n\tget scared away by a language with a reputation of being\n\tdifficult to learn? Is anyone but computer scientists and\n\tmathematicians able to contribute in a meaningful way? The\n\tanswers will help decision makers to know the pros and cons of\n\tusing Haskell for their applications.\n\t","original_language":"eng","persons":["Albert Krewinkel"],"tags":["bob2020","111","2020","Talk","BOB","BOBKonferenz"],"view_count":182,"promoted":false,"date":"2020-02-28T00:00:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-03-20T23:00:07.295+01:00","length":2402,"duration":2402,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/111-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/111-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/111-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/111-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-111_the_lessons_of_14_years_of_open_source_haskell","url":"https://api.media.ccc.de/public/events/fc8a10b2-c4e5-4cc0-893c-8c59b7e92b5f","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"b6db2133-7812-4b0c-8c7d-e92737e5bcd9","title":"Integration und Migration von unternehmenskritischen Legacy-Anwendungen","subtitle":"Ein organisatorischer und technischer Reisebericht","slug":"bob2020-107-integration_und_migration_von_unternehmenskritischen_legacy-anwendungen","link":"https://bobkonf.de/2020/ehlts-deiters.html","description":"Vor zwei Jahren sind wir mit einer PL/SQL-Anwendung\n\taufgebrochen in die funktionale Welt. Auf dem bisherigen Weg\n\tRichtung Elixir/Erlang erlebten wir viele technische und\n\torganisatorische Überraschungen, viele erfreulich, einige\n\tnicht.\n\n\tEin Erfahrungsbericht über …\n\n\t- die organisatorischen Hürden in der Umsetzung einer technischen Vision\n\t\n\t- die Migration und Integration von Legacy-Anwendungen in eine funktionale Umgebung.\n\t\n\tDie Hoffnung ist, Argumente zu liefern, um den üblichen Bedenken beim Wechsel in die funktionale Welt entgegenzutreten.","original_language":"deu","persons":["Christoph Ehlts"],"tags":["bob2020","107","2020","Talk","BOB","BOBKonferenz"],"view_count":174,"promoted":false,"date":"2020-02-28T12:50:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-02-11T18:15:11.183+01:00","length":2659,"duration":2659,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/107-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/107-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/107-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/107-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-107-integration_und_migration_von_unternehmenskritischen_legacy-anwendungen","url":"https://api.media.ccc.de/public/events/b6db2133-7812-4b0c-8c7d-e92737e5bcd9","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"7bf76d99-a6b3-46a5-bea4-705b9c342757","title":"JS, Rust, Python and the Holy Graal","subtitle":null,"slug":"bob2020-88-js_rust_python_and_the_holy_graal","link":"https://bobkonf.de/2020/hupel.html","description":"In the old times, way back, Java used to be the only\n\tJVM language. Later on, a few other players entered the field,\n\tsuch as Jython and JRuby. But those were just for scripting,\n\tright? It didn't take long for compiled languages to catch\n\tup. With Scala and Kotlin, we have definitely entered the age\n\tof polyglot programming on the JVM. The Truffle project – part\n\tof GraalVM – is a promising approach to make it easy,\n\tefficient, and seamless to run alternative languages on the\n\tsame VM as Java. This talk will look at the new age of\n\tpolyglot programming and all the cool things we can do with\n\tit.\n\t","original_language":"eng","persons":["Lars Hupel"],"tags":["bob2020","88","2020","Talk","BOB","BOBKonferenz"],"view_count":541,"promoted":false,"date":"2020-02-28T17:25:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-02-25T13:15:09.740+01:00","length":2594,"duration":2594,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/88-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/88-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/88-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/88-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-88-js_rust_python_and_the_holy_graal","url":"https://api.media.ccc.de/public/events/7bf76d99-a6b3-46a5-bea4-705b9c342757","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"033166dd-8065-4c05-b794-cdab0eb96292","title":"The essence of programming","subtitle":null,"slug":"bob2020-97-the_essence_of_programming","link":"https://bobkonf.de/2020/sundstroem.html","description":"Referential transparency is a property that lets us\n\tbetter understand computer programs, because it allows us to\n\tsafely replace expressions with their values without changing\n\tthe programs behavior in other places. To achieve referential\n\ttransparency, we have to program using pure functions and\n\tfunction composition as primary tools.\n\n\tSeen abstractly, the process of composing and decomposing of\n\tpure functions closely relate to the essential principle of\n\tproblem: “To solve a large problem, split it up into\n\tsubproblems and solve these recursively, then combine the\n\tsolutions.” What implications does this correlation have on\n\tfunctional programs?\n\n\tIn this talk, I argue why function composition is the essence\n\tof programming, and how it manifests itself through some\n\tabstractions we know from the functional world.\n\t","original_language":"eng","persons":["Ludvig Sundström"],"tags":["bob2020","97","2020","Talk","BOB","BOBKonferenz"],"view_count":224,"promoted":false,"date":"2020-02-28T16:35:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2025-12-30T13:45:12.870+01:00","length":2401,"duration":2401,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/97-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/97-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/97-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/97-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-97-the_essence_of_programming","url":"https://api.media.ccc.de/public/events/033166dd-8065-4c05-b794-cdab0eb96292","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"9e97090b-6616-4853-9158-77d7a175f35d","title":"Practical ReasonML","subtitle":null,"slug":"bob2020-109-practical_reasonml","link":"https://bobkonf.de/2020/emrich.html","description":"Static type systems have arrived in the frontend!\n\tTypescript and Flow made them popular. ReasonML - the language\n\tby React Framework inventor Jordan Walke - goes one step\n\tfurther and brings a functional programming language from the\n\tML family into the browser. ReasonML combines the semantics of\n\tOCaml with the common syntax of JavaScript.\n\n\tHow well does this work in practice? How easily can ReasonML\n\tbe integrated into the existing JS ecosystem? How well do\n\tSinglePage apps work with ReasonReact? Where does ReasonML\n\tstand in comparison to TypeScript on one side or Elm on the\n\tother? We tried it in real projects, and the talk will be\n\tabout our experience, which projects are worth using Reason\n\tand when you should rather do without it.","original_language":"eng","persons":["Marco Emrich"],"tags":["bob2020","109","2020","Talk","BOB","BOBKonferenz"],"view_count":99,"promoted":false,"date":"2020-02-28T10:30:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2024-10-05T12:15:02.530+02:00","length":2809,"duration":2809,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/109-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/109-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/109-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/109-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-109-practical_reasonml","url":"https://api.media.ccc.de/public/events/9e97090b-6616-4853-9158-77d7a175f35d","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"926bf654-6805-4226-87cc-e6390cfbbd7d","title":"Open Source Numbers Everybody Should Know","subtitle":null,"slug":"bob2020-97-open_source_numbers_everybody_should_know","link":"https://bobkonf.de/2020/miller.html","description":"\n\t  A Data-Driven Portrait of New Trends in How We Build\n\t  Software, Open Source \u0026 What Even is \"Entry-Level\" Now.\n\t\n\n\n\t","original_language":"eng","persons":["Heather Miller"],"tags":["bob2020","1","2020","Talk","BOB","BOBKonferenz"],"view_count":323,"promoted":false,"date":"2020-02-28T09:15:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-01-24T13:15:09.736+01:00","length":2877,"duration":2877,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/1-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/1-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/1-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/1-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-97-open_source_numbers_everybody_should_know","url":"https://api.media.ccc.de/public/events/926bf654-6805-4226-87cc-e6390cfbbd7d","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"b8bedd62-02eb-4e3c-ac41-a33ae523826a","title":"The Object-Oriented/Functional-Programming symmetry: theory and practice","subtitle":null,"slug":"bob2020-93-the_object-oriented_functional-programming_symmetry_theory_and_practice","link":"https://bobkonf.de/2020/scherer.html","description":"Much gets written on the internet about comparisons\n\tbetween Object-Oriented (OO) and Functional-Programming (FP)\n\tapproaches software: which one is going to solve all your\n\tprogramming problems? If we concentrate on precise, objective\n\tcomparisons and relations between the two sides, the\n\tprogramming-language folklore mentions a symmetry (often\n\tcalled a “duality”) between object-oriented and\n\tfunctional-programming styles. More precisely, a symmetry\n\tbetween program organizations based on class decompositions,\n\tand those based on sum types (also called variant types or\n\talgebraic datatypes). In this talk we propose to revisit this\n\tsymmetry, discussing both practical and theoretical\n\taspects.","original_language":"eng","persons":["Gabriel Scherer"],"tags":["bob2020","93","2020","Talk","BOB","BOBKonferenz"],"view_count":152,"promoted":false,"date":"2020-02-28T14:30:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-04-03T08:00:03.257+02:00","length":2550,"duration":2550,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-93-the_object-oriented_functional-programming_symmetry_theory_and_practice","url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"4bf29b50-aee1-490b-b85d-d087690d7201","title":"A Nokia 3310 Ringtone Player in Elm","subtitle":null,"slug":"bob2020-95-a_nokia_3310_ringtone_player_in_elm","link":"https://bobkonf.de/2020/liu.html","description":"In this talk we build a web application in Elm that\n\treads some good old school Nokia 3310 ringtones and plays them\n\tin a browser. We will explore how to write a parser to\n\tinterpret the Ring Tone Text Transfer Language (RTTTL) format\n\tand how to use modern Web Audio APIs to recreate those iconic\n\tsounds. We will conclude the talk by playing a selection of\n\ttunes, applying some effects and having a good time.\n\t","original_language":"eng","persons":["Ju Liu"],"tags":["bob2020","95","2020","Talk","BOB","BOBKonferenz"],"view_count":205,"promoted":false,"date":"2020-02-28T12:00:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-03-28T03:15:03.830+01:00","length":2516,"duration":2516,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/95-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/95-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/95-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/95-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-95-a_nokia_3310_ringtone_player_in_elm","url":"https://api.media.ccc.de/public/events/4bf29b50-aee1-490b-b85d-d087690d7201","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"3137aeb4-795c-474f-826b-dd170fee1346","title":"Effizient arbeiten mit Architecture Decision Records (ADR)","subtitle":null,"slug":"bob2020-108-effizient_arbeiten_mit_architecture_decision_records_adr","link":"https://bobkonf.de/2020/dienst.html","description":"Dokumentation gehört oft nicht zu den\n\tLieblingsaufgaben im Softwareentwicklungsalltag. Das\n\tresultiert in vielen Fällen daraus, da nicht klar ist, warum\n\tetwas dokumentiert werden sollte. Der in der Praxis gelebte\n\tAnsatz einen Dokumentationsort, zum Beispiel in Form eines\n\tWikis, ist zum Scheitern verurteilt. Entweder es wird kaum\n\tdokumentiert oder zu viel und es wird schwer Informationen zu\n\tfinden, die man sucht.\n\n\tEin leichtgewichtiger Ansatz ist arc42, bei dem je nach Bedarf\n\tdie vorgegebenen Unterpunkte ausgefüllt werden. Dort werden im\n\tUnterpunkt neun Entwurfsentscheidungen dokumentiert, also\n\tgenau die Entscheidungen, die die Softwarearchitektur\n\tentscheidend prägen. Die Auswirkungen von nicht dokumentierten\n\tEntscheidungen gehen von immer wiederkehrenden Diskussionen,\n\tbis hin zu fehlerhaften Folgeentscheidungen die das Projekt\n\tzum Scheitern bringen können. Doch wie können viele\n\tEntscheidungen effizient und nachvollziehbar dokumentiert\n\twerden?\n\n\tIn diesem Vortrag wird ein kompaktes Format namens\n\tArchitecture Decision Records (ADR) vorgestellt und gezeigt,\n\twie sie effizient eingesetzt werden können. Neben\n\tKleinigkeiten wie der Titelvergabe für eine ADR wird ein\n\tLösungsvorschlag aufgezeigt, um bei einer großen Sammlung von\n\tEntwurfsentscheidungen (\u003e50) nicht den Überblick zu\n\tverlieren. Dabei kommt der Docs-As-Code Ansatz mit AsciiDoc\n\tund JBake zum Einsatz, mit dem die technische Architektur in\n\teiner Microsite gerendert wird. Durch Tagging und eine\n\teffiziente Suche, wird die Dokumentation nicht nur lebendig,\n\tsondern zum täglichen Arbeitsmittel.\n\t","original_language":"deu","persons":["Johannes Dienst"],"tags":["bob2020","108","2020","Talk","BOB","BOBKonferenz"],"view_count":350,"promoted":false,"date":"2020-02-28T10:30:00.000+01:00","release_date":"2020-05-07T00:00:00.000+02:00","updated_at":"2025-09-29T15:00:11.642+02:00","length":2762,"duration":2762,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/108-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/108-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/108-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/108-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-108-effizient_arbeiten_mit_architecture_decision_records_adr","url":"https://api.media.ccc.de/public/events/3137aeb4-795c-474f-826b-dd170fee1346","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"a0a2e4a2-f878-46d5-b31e-31445af9ba45","title":"Self-documenting computation","subtitle":"What is the best way to present programs to non-programmers?","slug":"bob2020-98-self-documenting_computation","link":"https://bobkonf.de/2020/klinke.html","description":"Undoubtedly, the standard format of sharing computations in the business world is the spreadsheet. But this quickly becomes unwieldy when complex algorithms are involved or deeply structured data are more appropriate for the problem at hand. So how to present the inner workings of an algorithm in such a way that it may be part of an invoice, to be checked by accountants? We advertise an idea that is actually as old as spreadsheets and show how, building on top of some popular Haskell packages, one can obtain an embedded domain-specific language for self-documenting computations.","original_language":"eng","persons":["Dr. Olaf Klinke"],"tags":["bob2020","98","2020","Talk","BOB","BOBKonferenz"],"view_count":175,"promoted":false,"date":"2020-02-28T15:20:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2025-12-29T20:45:18.820+01:00","length":2261,"duration":2261,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/98-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/98-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/98-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/98-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-98-self-documenting_computation","url":"https://api.media.ccc.de/public/events/a0a2e4a2-f878-46d5-b31e-31445af9ba45","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"11e4e67b-1ac9-4f43-b5a3-b94f33a063d3","title":"Criminally fast rust and breaking safety for fun and profit","subtitle":null,"slug":"bob2020-101-criminally_fast_rust_and_breaking_safety_for_fun_and_profit","link":"https://bobkonf.de/2020/ennis-gies.html","description":"In this talk, we confess our rusty sins: memory\n\tmanipulation, unsafe code, lying to the borrow tracker,\n\tlifetime crimes, and many more. Criminally fast rust is\n\tpossible, and we share what worked for us, what didn’t, and\n\twhy we broke the safe.\n\n\tOver the past year we’ve been building Tremor - an event processing\n\tsystem used at Wayfair to process billions of messages per minute\n\t24x7x365. This is our first project as an organization and as\n\tindividuals with the Rust programming language.\n\t\n\tWe’ve learned a lot: to hate rust, to love it, to hate and love it\n\tagain; there are things we did badly, some we did terribly as we bent\n\tto the borrow trackers demands, before bending the borrow tracker to\n\tour needs.\n\t","original_language":"eng","persons":["Darach Ennis","Heinz Gies"],"tags":["bob2020","101","2020","Talk","BOB","BOBKonferenz"],"view_count":179,"promoted":false,"date":"2020-02-28T12:50:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2025-06-25T23:00:04.283+02:00","length":2358,"duration":2358,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/101-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/101-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/101-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/101-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-101-criminally_fast_rust_and_breaking_safety_for_fun_and_profit","url":"https://api.media.ccc.de/public/events/11e4e67b-1ac9-4f43-b5a3-b94f33a063d3","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"f98732d7-8f4f-4608-9439-57dce2414df6","title":"ImplicitCAD: Haskell all of the Things","subtitle":null,"slug":"bob2020-110_implicitcad_haskell_all_of_the_things","link":"https://bobkonf.de/2020/longtin.html","description":"\n\t  ImplicitCAD is a 3D modelling system used for designing\n\t  objects using CSG (Constructive Solid Geometry) in either\n\t  Haskell, or in a SCAD based language.\n\n\t  This talk will discuss ImplicitCAD’s CSG engine, it’s SCAD\n\t  language design, and provide an update on efforts to use\n\t  Haskell in more 3D printing related tasks. We will discuss\n\t  the demands that implicit CSG place on a rendering engine,\n\t  as well as the advantages that the implicit CSG approach\n\t  provides when building models.\n\n\t  ImplicitCAD’s modelling system uses implicit functions to\n\t  define and operate on objects as fields, rather than just\n\t  shapes. This approach allows for simple solutions to some\n\t  common problems in programmatic 3D design, and gives more\n\t  mathematically inclined users a powerful syntax to express\n\t  themselves in.\n\t\n\n\n\t","original_language":"eng","persons":["Julia Longtin"],"tags":["bob2020","110","2020","Talk","BOB","BOBKonferenz"],"view_count":392,"promoted":false,"date":"2020-02-28T15:20:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-03-22T22:30:06.291+01:00","length":2288,"duration":2288,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/110-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/110-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/110-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/110-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-110_implicitcad_haskell_all_of_the_things","url":"https://api.media.ccc.de/public/events/f98732d7-8f4f-4608-9439-57dce2414df6","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"c3d21a33-e939-4dfb-a705-8cfc8837e722","title":"Programming by any other name","subtitle":null,"slug":"bob2020-114-programming_by_any_other_name","link":"https://bobkonf.de/2020/guerra.html","description":"Programmers enjoy looking back and learning about\n\tthe primitive technologies used “back in the day” like\n\thexadecimal code, assembly, punched cards, paper teletypes and\n\thow complicated things were. We rarely do the inverse exercise\n\tand imagine which technologies will look primitive from a\n\tfuture perspective.\n\n\tWhat if the current state of computing is just a really low\n\tlocal maxima? Which technologies will be replaced by obviously\n\tsuperior ones, which ones will survive the test of time? What\n\tif the computer revolution hasn’t happened yet? Do we know how\n\tto compute? Have you heard of Unison, Darklang, Lasp, NetLogo,\n\tGlamourous Toolkit, Hazel, Dynamic Land?\n\n\tSomeone said that “The future is already here – it’s just not\n\tevenly distributed”, in this talk we will see if it is in fact\n\there, which tools are already available to escape the local\n\tmaxima and if not already here, which hints of that future are\n\tavailable on current research.\n\t","original_language":"eng","persons":["Mariano Guerra"],"tags":["bob2020","114","2020","Talk","BOB","BOBKonferenz"],"view_count":205,"promoted":false,"date":"2020-02-28T17:25:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2023-10-14T11:00:02.820+02:00","length":2689,"duration":2689,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/114-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/114-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/114-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/114-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-114-programming_by_any_other_name","url":"https://api.media.ccc.de/public/events/c3d21a33-e939-4dfb-a705-8cfc8837e722","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]},{"guid":"c6bfc425-bd4e-4ffc-9ae8-e74ab85b6c67","title":"Leveraging Algebraic Data Types – In Any Programming Language","subtitle":null,"slug":"bob2020-104-leveraging_algebraic_data_types_in_any_programming_language","link":"https://bobkonf.de/2020/thoma.html","description":"In functional programming languages, Algebraic Data Types and Pattern Matching\n\tare ubiquitous, and they are a very powerful and expressive tool. Unfortunately,\n\tmany mainstream languages, especially in the object-oriented spectrum, lack\n\tthese features and resort to rather cumbersome subtyping and inheritance.\n\n\tBut not all is lost! Leveraging an old GoF pattern together with Lambda syntax\n\tthat by now has spread to most modern programming languages, we can emulate ADTs\n\tand pattern matching in virtually any programming language.\n\n\tApplications range from implementation of standard ADTs like `Maybe`, Tuples and\n\t`Either` over standard functional data structures like Linked Lists and\n\tFingertrees, up to complex structures like ASTs or DSLs.","original_language":"eng","persons":["Franz Thoma"],"tags":["bob2020","104","2020","Talk","BOB","BOBKonferenz"],"view_count":94,"promoted":false,"date":"2020-02-28T14:30:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-04-03T08:00:03.382+02:00","length":2641,"duration":2641,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/104-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/104-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/104-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/104-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-104-leveraging_algebraic_data_types_in_any_programming_language","url":"https://api.media.ccc.de/public/events/c6bfc425-bd4e-4ffc-9ae8-e74ab85b6c67","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[]}]}