Skip to main content
BOB Konferenz 2018

Logo of BOB Konferenz 2018 BOB Konferenz 2018

23rd February 2018

Berlin, Germany

Part of the BOB series
Lohmann & Birkner »

Main Room

Sessions in this room

  1. in Main Room

    Keynote: A Language for Making Movies

    Video is a language for making movies. It combines the power of a traditional video editor with the capabilities of a full programming language. Video integrates with the Racket ecosystem and extensions for DrRacket to transform it into a non-linear video editor.

    Racket enables developers to create languages (as libraries) to narrow the gap between the terminology of a problem domain and general programming constructs. The development of the video editing language cleanly demonstrates how the Racket doctrine naturally leads to the creation of language hierarchies, analogous to the hierarchies of modules found in conventional functional languages.

  2. in Main Room

    May contain DTraces of FreeBSD feat. Spectre

    Systems are getting increasingly complex and it’s getting harder to understand what they are actually doing. Even though they are built by human individuals they often surprise us with seemingly bizarre behavior. DTrace lights a candle in the darkness that is a running production system giving us unprecedented insight into the system helping us to understand what is actually going on.

    We are going implement strace-like functionality, trace every function call in the kernel, watch the scheduler to its thing, observer how FreeBSD manages resources and even peek into runtime systems of high level programming languages. If you ever wondered what software is doing when you are not looking, this talk is for you.

  3. in Main Room

    Einführung in Agda

    Viele Programmierer führen nur ungern Beweise: Agda verwendet das Curry-Howard-Prinzip “Beweise sind Programme”, so dass es ausreicht ein typkorrektes Programm zu schreiben um zu zeigen, dass ein Programm seine Spezifikation erfüllt.

    Agda ist eine funktionale Programmiersprache mit abhängigen Typen und gleichzeitig ein interaktives Beweissystem. Das mächtige Typsystem erlaubt, auch substanzielle Eigenschaften direkt ins Programm zu schreiben.

    Nach einer Einführung in die funktionale Programmierung mit Typen und das Curry-Howard-Prinzip führen wir anhand von Beispielen die wichtigsten Features von Agda vor. Zum Abschluss beleuchten wir einige Anwendungen von Agda und geben Hinweise auf Informationsquellen zum Thema.

  4. in Main Room

    Hedgehog - QuickCheck, but better

    hedgehog is a Haskell library for writing property-based tests similar to the more established QuickCheck: instead of “when passed [3, 1, 2], this function returns [1, 2, 3]”, you write “when passed a list of numbers, this function returns a list with the same elements in order”. properties are tested on a range of random values and provide far wider test coverage.

    In this tutorial, you will get acquainted with the concepts of property-based testing and the specific benefits of hedgehog, like better error reporting and sound shrinking for free. With a little luck we’ll get as far as state machine testing like in the BOB QuickCheck talk.

    Some experience with software development and writing tests would be great. Knowledge of QuickCheck is not required. Material and exercises will be provided soon.

  5. in Main Room

    Understanding the realtime ecosystem

    It’s 2018, the time of data-driven realtime applications. With the applications increasingly becoming data dependent, realtime technology has suddenly gained momentum as opposed to a steady pace through the previous years. It is important to understand the main underlying concepts that make an application work in realtime. This talk will walk the audience through concepts such as data-sync, pub/sub, websockets, etc while clearly underlining the differences between other technologies, paradigms and protocols. This talk will be summarized with a live example of how realtime systems truly function using deepstream.io, an open realtime server that provides all the realtime features discussed right out of the box, thus limiting the developer’s role to use case specific implementation.