Talks
Property-Based Testing The Ugly Parts: Case Studies from Komposition
Events
- flatMap(Oslo), May 8-9, 2019, Oslo
Abstract
Property-based testing has been praised and explored in both functional and object-oriented programming communities. Despite the papers and talks that tell inspiring stories of curious bugs being found by random tests, it can be hard to see how it applies to your day-to-day work. How do you go beyond testing small pure functions?
This talk describes techniques that you can use to test the “ugly” parts of your system, and dig deeper into a few case studies from Komposition, a screencast video editor written in Haskell.
Domain Modeling with Haskell Data Structures
Events
Abstract
Haskell is an amazing language for domain modeling, with its purely functional foundation, expressive type system, and highly reusable abstractions. With Haskell data types as a starting point, this talk will explore how we can leverage this power when building and maintaining “bread and butter” business applications.
Writing a Screencast Video Editor in Haskell
Events
- Lambda World, October 25-26, 2018, Cádiz
Abstract
In dire need of better tools when producing screencasts for Haskell at Work, I started building Komposition, the video editor for screencasters. This desktop application automatically detects scenes in screen capture video, detects sentences in audio parts, and features and a high-productivity editing workflow keyboard-driven navigation.
I’ll talk about why I started this project, and share my experiences building Komposition using Haskell. I’ll describe its architecture, what packages and techniques I’ve used, and outline the plans for its future.
Declarative GTK+ Programming in Haskell
Events
- LambdAle, September 1, 2018, London
Abstract
Functional programming has made a substantial impact on user interface programming for the web, with virtual DOM technologies and unidirectional data flow. Can the same be done in Haskell without compiling to Javascript and Electron? In this talk you will learn about declarative programming of GTK interfaces with Haskell.
https://lambdale.org/
Fast and Fearless Evolution of Server-Side Web Applications
Events
- f(by), December 17, 2017
Abstract
When evolving web applications, in most programming languages and frameworks, we risk introducing programming errors. Undefined values, parsing failures, broken links, invalid markup, and good old null pointers, are all things that can break our applications. Manually writing and maintaining tests to catch programming errors is a time consuming effort, and we would rather spend that time testing our application logic. This talk takes you on a whirlwind tour of mature technologies that offer static guarantees for modern web applications.
Finite-state machines? Your compiler wants in!
Events
- Foo Cafe, November 1, 2017, Malmö
- CodeMesh, November 7-9, 2017, London
- Lambda Days, February 22, 2018, Krakow
- BOB konferenz, February 23, 2018, Berlin
Abstract
When modeling problem domains, we collect different possible states, legal transitions between states, and relevant data for each state. Finite-state machines emerge. To verify that programs are constructed correctly, and to have a living machine-verified documentation, we should let the compiler in on our trade secrets.
In this talk we will look at motivations and examples of encoding finite-state machines, using expressive type systems in functional languages.
The Power of Functional Programming and Static Type Systems in Server-Side Web Applications
Events
- flatMap(Oslo), 2-3 May 2017, Oslo, Norway
- GOTO Nights CPH, February 22, 2017, Copenhagen, Denmark
- Kats Conf 2, February 18, 2017, Dublin, Ireland
Abstract
Single-page web applications have been spreading like wildfire, with an endless amount of frameworks and libraries, and functional programming together with static types fueling the fire with great ideas like pure functions, monads, and strong type checking. But what happened to Progressive Enhancement? Some parts of our applications might require Javascript to function, but the majority could be built with ordinary links and forms. In this talk we will explore how we can build web applications using established web technology, and the power of functional programming and PureScript on the server-side, with strong correctness guarantees.
Oden - A Functional Programming Language for the Go Ecosystem
Events
Abstract
This talk will introduce Oden, an experimental, statically typed, functional programming language being built for the Go ecosystem. We will look at how Oden aims to leverage the great features of Go — static linking, cross-compilation, goroutines, channels and the great set of libraries and tools — and enable higher-level abstractions, generics and a safer yet more flexible type system.
Designing and Building the Oden Programming Language
Events
Abstract
This first part of this talk will introduce Oden, an experimental, statically typed, functional programming language being built for the Go ecosystem. We will look at how Oden aims to leverage the great features of Go — static linking, cross-compilation, goroutines, channels and the great set of libraries and tools — and enable higher-level abstractions, generics and a safer yet more flexible type system.
The second part will delve more deeply into the implementation of the Oden compiler. Why was it first written in Racket and then rewritten in Haskell? What pros and cons are there in writing compilers in Haskell? We will look at how the type system can help us build safe and robust intermediate representations and transformations between them.