Come meet us on June 27-28 2019

Join the elm Europe Conference at the Efrei Paris.

elm Europe 2019

elm Europe will be a two-day conference dedicated to elm, taking place at the EFREI Engineering School in Villejuif (near Paris, France) on June 27-28 2019.

The event is organized by the elm community, for the elm community, with the willing of sharing knowledge, news about the language, and meeting interesting people.

Speakers

Richard Feldman

Richard Feldman

Author of Elm in Action

Martin Janiczek

Martin Janiczek

Night owl and procrastinator from Czech Republic. Working with Elm full-time, woohoo!

Dan Abrams

Dan Abrams

I’m a video and livestream producer, based in the NYC-area, who loves Elm. I just finished a batch at Recurse Center and am trying to figure out how to further meld my loves of live-streaming and Elm.

Radwane

Radwane

Lead developer at Veepee (vente-privee.com) I used ELM as an introduction to Functional Programming to my team and it works like a charm so far

Manuel Fuchs

Manuel Fuchs

Manuel is a functional programming enthusiast that recently got into Elm. Besides programming, he loves retro computers and games which led him to develop a Nintendo Game Boy Emulator in Elm, combining both interests. Professionally, he is the CTO of itravel, a German digital tour operator where he uses functional programming in both back- and frontend.

Romans Potasovs

Romans Potasovs

Known as @Kalabibishkis in the Elm Slack community.

Romans started programming as a hobby in early 1999, working on registration and a shop for the Ultima Online Sphere Server. Now he works at Evolution Gaming, where he develops high-load and cross-platform UI for gambling games.

His current hobby project is a side-scrolling game in Elm, that he has been developing for the last 1.5 years.

Jonas Coch

Jonas Coch

Jonas Coch is a frontend webdeveloper at itravel, living in Cologne, Germany. He used to circumvent IE 6 bugs, then fell in love with XSLT and is an Elm user since 2015. When he is not writing Elm at work or in his spare time, he is spending time in the garden or soldering Arduinos.

Joël Quenneville

Joël Quenneville

Joël is a software developer at thoughtbot. He’s always been passionate about data modeling and has fallen in love with Elm’s tooling for this. Over the past year he’s discovered the fun of gamejams and built three games in Elm. Outside of programming you can find him buried in a history book or exploring the many neighborhoods of Boston.

Jakub Hampl

Jakub Hampl

For a few years now I’ve been working on expanding the capabilities of Elm as a tool for visualizing data of all sorts. I’ve written gampleman/elm-visualization and gampleman/elm-mapbox to address the need for a flexible data graphics and mapping package respectively. In my day job I work on using satellite technology to tackle deforestation.

Folkert de Vries

Folkert de Vries

I’m currently doing a master in computer science in Nijmegen (the Netherlands) focussing on the intersection between mathematics and computer science. My elm projects often have something to do with parsing and visualization: topics where the theory (geometry, automata, physics) gives practical (and pretty) results.

Chad Stearns

Chad Stearns

Chad Stearns is an American living in Germany with his wife, where he writes Elm code at Humio. Lately has been enjoying Haskell but usually he just likes economics.

Seiya Izumi

Seiya Izumi

A young, aspiring full-stack engineer in Fringe81, the company of advertising platform in Japan. Started career from Scala, Golang, but now big in Elm.

Andrey Kuzmin

Andrey Kuzmin

Andrey is an engineer at SoundCloud. He is a maintainer of WebGL in Elm and an organizer of the Elm Berlin meetup. Apart from work, he enjoys live music in Berlin and is a yoga newbie.

Noah Z Gordon

Noah Z Gordon

Noah is a queer technologist from Brooklyn, NY, who likes his Elm with a soft-boiled egg and black coffee. He organizes the Elm NYC meetup group and is a Recurse Center alumnus. Prolonged exposure to Noah is not recommended. Consult your primary care physician before seeking Noah.

Jordy Moos

Jordy Moos

Jordy Moos is a self-taught developer with a broad scale of interests but mainly passionate about databases, reactive-, functional- and game- programming. At the age of 12 he started with php and Javascript and at the age of 14 he built a text based browser game. At the moment he works at high traffic company PB Web Media were he increases his programming skills by combining multiple disciplines using Couchbase, Docker, Scala and Elasticsearch.

Diane Manière

Diane Manière

I’m a co-founder and developer at Spottt, a Lyon-based startup where we create innovative management solutions for rummage sales / fair trade organizers. Autodidact and passionate about computer science for ~3 years, I’m interested in functional languages in general, especially Elixir and Haskell. Studying machine learning & deep learning in my spare time and loving it!

Benoît Chiquet

Benoît Chiquet

Senior developer at Veepee, haskell meetup stewart and lifelong learner.

Jono Mallanyk

Jono Mallanyk

I’m a freelance Design Director and Product Designer. I use Elm to experiment with new kinds of design tools.

Emma Cunningham

Emma Cunningham

Emma Cunningham is a formal semanticist turned software engineer who currently is interested in thinking about distributed systems, data visualization, and DSLs. When they’re not cranking out code, Emma practices sleight-of-hand magic and ferments all kinds of things in their hometown of Los Angeles.

Liz Krane

Liz Krane

Liz Krane is a Developer Evangelist at Sentry and founder of Learn Teach Code, an organization that empowers aspiring developers to lead their own local events to create stronger, more diverse tech communities. She loves finding new ways to combine code with other disciplines like art and music, sharing everything she learns while she tries to learn everything!

Albert Dahlin

Albert Dahlin

I am a programmer, musician and photographer. I started with Elm about 2 years ago at my company Webbhuset, where I work as CTO.

Mario Rogic

Mario Rogic

I am a technology aficionado with a particular love for the web. I believe technology should make life simple and joyful, and I enjoy being able to prove so.

An Australian currently living in London, I organise and run the Elm London Meetups, and frequently teach and speak about Elm to diverse audiences.

André Dietrich

André Dietrich

Originally a robotics and embedded software developer at the University of Magdeburg, who became obsessed with programming paradigms. Due to his participation in the “Industrial eLab” project he had to shift to web-development where he got in touch with Elm…

Schedule

June 27-28

elm-europe conference. Speakers to be announced.

June 26

elm-graphql pre-conference workshop (optional).

  • Keynote

      June 27, 2019, 9:00AM,  40 minutes

    Richard Feldman

    Keynote

  • Elm compiler in Elm!

      June 27, 2019, 10:00AM,  20 minutes

    Martin Janiczek

    The (reference) Elm compiler as we know it right now is currently implemented in Haskell, and emits JavaScript code. I’ll be talking about my side-project: an Elm compiler written in Elm, emitting JavaScript—sure—but hopefully allowing for native code, WebAssembly and other possibilities!

    Topics include:

    • what it will allow us to do (hint: a lot of exciting stuff! prepack-like optimizations, interpreter, debugger, eval…)
    • how to structure a compiler
    • how it can then be exposed as a library to allow experimentation and cool extensions!
  • Fighting the Law of Physics with Elm

      June 27, 2019, 10:40AM,  20 minutes

    Andrey Kuzmin

    There is no doubt that the Elm architecture and Virtual DOM make Elm enjoyable for building web apps. When it comes to the domain of real-time graphics, it still remains underdeveloped. Even though this opens up a whole new range of opportunities, is Elm ready for such experiments?

    Having accepted a challenge of building a dice roller game, I ended up rolling my own physics engine. With no prior experience in computational physics, I studied existing implementations. Through a try and error, I programmed the necessary bits in pure Elm.

    From this talk you will learn how it was possible because of existing tooling. You will see how types and immutability make complex algorithms easier to comprehend. And of course, you will share my excitement of watching the demos on the big screen!

  • Moving to the Actor Model in Elm

      June 27, 2019, 11:20AM,  20 minutes

    Albert Dahlin

    At my company we are mainly building E-Commerce websites using Elm. Some examples in production are: - https://vanbruun.com - https://scanfast.se - https://himla.com - https://shop.izettle.com (needs iZettle account)

    Each site is built as a single monolith Elm application, sizes ranging 80-110k lines of code. About 50% of the code base is shared and reused between projects. We are about 20 developers working on these (and other) projects.

    These circumstances presents some challenges: - Re-usability & maintainability cross project - Testing - On-boarding new developers - Accessing Browser APIs - Performance (web workers) - Code splitting (soon)

    5 months ago we started discussing how we can improve our code base to meet these challenges. Our conclusion was to move away from a monolith and break up the application into several smaller apps that talks to each other (the actor model).

    This work has now started and that is what this talk is about. Was there any improvement in the end?

  • Elm for Designers

      June 27, 2019, 12:00PM,  20 minutes

    Jono Mallanyk

    I’m a product designer that always hit early roadblocks when learning code. Where do I start? How do I make changes without breaking everything? Because of the challenges, I assumed “my brain must not be wired for programming.”

    This changed when I found Elm. The experience of learning Elm gave me the confidence to add code to my design toolkit. Now I use Elm in client work and to experiment with new kinds of design tools. Designers can write more than just views: learning to think like a developer has changed the way I approach work as a designer.

    My goal is to help developers and designers work better together using Elm, and see more designers join the Elm community.

    My talk will cover: -How Elm became a valuable part of my design toolkit -Specific learning roadblocks and how I overcame them -How these lessons reveal opportunities for better shared tooling between developers & designers -What design tooling can steal from Elm

  • Building a Music Learning Game with Elm, Web MIDI, and SVG Animation

      June 27, 2019, 1:40PM,  20 minutes

    Liz Krane

    Building my first Elm app was a two-for-one deal: learn functional programming and learn to sight-read sheet music! I’ll share my greatest challenges and most valuable lessons from building this musical side project, with Elm as my first introduction to purely functional programming.

    Highlights include:

    • Using the Web MIDI API with Elm via JavaScript interop to get input from a digital piano directly in the web browser
    • Visualizing the music with Elm’s SVG package
    • Exploring SVG animations in the Elm ecosystem
    • Elm’s best features from the perspective of a beginner
    • Funny beginner mistakes (how not to use Elm!)

    Tagline for this personal project: learn to hear with your eyes and play from your heart!

  • Regrettable decisions we made in the biggest Elm app in Japan

      June 27, 2019, 2:20PM,  20 minutes

    Seiya Izumi

    It is no doubt that all Elmers are making an application that is going to be LARGE! We are also the same. The bigger our application got, the more severe, challenging decisions we were required to make in viewpoint of software architecture, design pattern - you name it.

    My talk tries to show hand-picked regrettable decisions that we made in the path of our Elm application development such as misuse of port, excessive “typing”, and so on.

    audience can learn what needs to be avoided and how to make their application scalable all the way around those blunders in the viewpoint of real world use of Elm.

    This is the true story which comes from the largest Elm application in Japan.

  • Is performance enough in Elm to create full fledged video games

      June 27, 2019, 3:00PM,  20 minutes

    Romans Potasovs

    What under water stones is when you try use Elm for games, that renders 60FPS, what must be done different. How use patterns designed for imperative programming in FP.

  • Open-courSe development with LiaScript (… or Markdown on steroids, featuring Elm)

      June 27, 2019, 3:40PM,  20 minutes

    André Dietrich

    Markdown is an ideal tool for documenting and thus a suitable format for Open Educational Resources, but as a static markup language it is also boring. So the idea was born to create a DSL that is based on Markdown but intended to be used for developing online courses, that look like screen-cast with various interactive elements. Starting this project with Elm, it was more or less an explorative journey, with rapid changes in the DSL and the interpreter that were guided by the elm compiler. Code-blocks are now executable and editable, quizzes can be defined in various ways, images are generated from ASCII-art, effects and transitions combined with text2speech that enable interactive storytelling, among other features. But the course itself is still a valid Markdown document that can be edited by any ordinary person, even without programming skills. The interpreter build around the Elm-architecture hides all complexity, such as code evaluation, internal message routing, lazy parsing, etc. - https://LiaScript.github.io

  • From experiment to production: stories of Elm at Veepee

      June 27, 2019, 4:40PM,  20 minutes

    Benoît Chiquet, Radwane Hassen

    Elm started its journey at Veepee in 2017. Since then, multiple teams have adopted it and pushed it in production. In this talk, we will tell you the technical and human story of our products through multiple anecdata:

    - How we managed to convince people to give Elm a try, and how we onboard newcomers on Elm,
    
    • What our projects are, what they do, and how this translates into Elm code,
    • Our not-elm technical environment: the backends, the operations and how it meshes with Elm.
    • The mistakes we made when starting Elm, and how we recovered.

    The hope is that after this talk, you will find your own way to start Elm in your company and build successful production stories

  • Making Impossible Video States Impossible: Streamlining a Livestream with Elm

      June 27, 2019, 5:00PM,  20 minutes

    Dan Abrams

    The most difficult part of directing a live, multi-camera video production, is avoiding mistakes. You mean to switch to Camera A, but put up the title card, instead, requiring difficult work to go back in and edit.

    But Elm’s type system lets us model our data such that we can make such mistakes impossible. Using Algebraic Data Types to model my video layers and State Machines to model my transitions, I can effectively make impossible video states impossible.

    The talk will include a live-streamed demo of controlling robotic cameras, switching video cameras, adding graphics, all from a web front-end built in Elm, while I’m speaking. It will all go out on the Elm Europe 2019 Livestream feed.

  • Elm as a service

      June 28, 2019, 9:00AM,  40 minutes

    Mario Rogic

    Elm achieves a lot by paradoxically “doing less”. It’s a really interesting effect!

    We have been experimenting for 1.5 years on expanding the “do less” ideology. Instead of a backend with an API, database, interchange format, hosting, deployment, migrations… what if we had none of those? Could we think of web development differently? While lots of discussion has been had about “putting Elm on the server” over the years – we’ve tried to explore in a different direction entirely.

    This talk will explore our soon to be released project, Lamdera; the first language-as-a-service platform (as far as we’re aware!). We’ll share discoveries we made while building it, why the web development approach we have today is as it is, and what “truths” we might be able to reconsider as we approach 2020.

    We’ll be doing some live coding in Elm and have audience participation in order to demonstrate our ideas and get live feedback from the community.

  • Emulating the Nintendo Game Boy Audio Hardware in Elm

      June 28, 2019, 10:00AM,  20 minutes

    Manuel Fuchs

    Emulating a retro game console is a many-faceted task. Besides emulating the central processing unit, there are many other components that need to be emulated and integrated before games become really playable. This talk will focus on the Game Boy’s APU, the Audio Processing Unit.

    As the Game Boy is limited in memory, computing power and storage, simply playing audio files is out of the question. To accomplish this task, the Game Boy synthesizes audio out of thin air, based on control instructions.

    You will learn what sound actually is, how computers work with it, what tradeoffs can be made and why retro computers have their own distinct sound.

    Last but not least, we will take a deep-dive into the Game Boy specifics and how its APU can be emulated with Elm.

  • Geospatial Analysis in Elm

      June 28, 2019, 10:40AM,  20 minutes

    Jakub Hampl

    More and more of our data is location aware and we are starting to care about showing and visualizing geospatial data. In this talk I will introduce a library for decoding, storing, measuring, transforming, generating, aggregating and interpolating that kind of data along with real world examples from the domain of disaster recovery using satellite technology and how these techniques can be used to build clever geospatial dashboards in Elm. I will also briefly demonstrate how one might visualize this kind of data using gampleman/elm-mapbox.

  • Working with Bytes

      June 28, 2019, 12:00PM,  20 minutes

    Folkert de Vries

    The talk will cover basic concepts of binary encoding, and then look in detail at how using binary decoders with elm/bytes is similar to using elm/json and elm/parser, and in particular where it is different. The questions I want to answer are:

    • in broad strokes, how can elm data be encoded as bytes, and decoded again
    • compared to Json decoding, what is different
    • what are the trade-offs between using binary encodings and (for instance) Json
    • what kinds of binary data can we now work with (and does it makes sense to do that)

    The content is based on my experience decoding font files. I’ve written about the topic (and some of the pitfalls) in these discourse threads:

    Part of the work can already be found on Github

  • Generative multimedia experiences and opaque types

      June 28, 2019, 1:40PM,  20 minutes

    Emma Cunningham

    In this talk, we will look at a project where multiple streams of media (audio, video, browser elements) are generated and evolve through time in sync together. We’ll do some live coding with the project to show how both user interactions and code can interact with this generative medium. After demonstrating the project, we’ll then dig into the code and review the use of opaque types, looking specifically at how they are used in the project to expose an API that can be used to easily add new elements and interactions on the fly. Let’s have a bit of fun and make some surprising, delightful art for the web!

  • Elm side effects: how adopting Elm modified our state

      June 28, 2019, 2:20PM,  20 minutes

    Diane Manière

    “A function or expression is said to have a side effect if it modifies some state or has an observable interaction with calling functions or the outside world.” - Wikipedia

    This is the story of how we adopted Elm in our young startup, and how we evolved alongside our growing codebase.

    I’ll try to debug several side effects Elm had on our world. Some that can be directly traced to Elm: how we managed to avoid writing CSS ever again, or how our quality code standards took a step up when developing our second product, and some more insidious: how functional programming sneakily influenced our coding style, how we changed our way of writing tests, or how our application backend changed as Elm took more and more place.

  • elm-search - From Pet Project to Productivity Tool

      June 28, 2019, 3:00PM,  20 minutes

    Jonas Coch

    elm-search provides a unique way to search exposed values of all published packages by approximate type signature.

    In this talk, I will at first tell the story of implementing the initial version. It was my first proper Elm application, and I not only learned the language itself, but also its tooling, ecosystem and community.

    I will then demonstrate the next version of elm-search. It’s not running completely in the browser anymore, its index contains all available package data and there are new ways to search.

    Finally I will share ideas how to use the search for additional documentation, show fun package statistics and give an outlook into possible editor integrations to improve the developer experience.

  • The Tricks of Game Programming in a Pure Functional Language

      June 28, 2019, 3:40PM,  20 minutes

    Jordy Moos

    Do you want to play your own levels in Boulder Dash? Well, you actually can! And I can tell you how it is made. This combination of gaming, functional programming, and a nip of nostalgia will give us an interesting and addictive result where you can unleash all your creativity.

    In this talk, we will discuss how you can apply the tricks of game programming to make a funny game in Elm. As kind of a fun experiment, I recreated the game Boulder Dash with my love of game programming to better learn Elm. The experiment got “a bit out of hand” and the game turned more into a game engine. Not only can we play Boulder Dash, but we can also watch the Game of Life and solve the challenge of day 15 of the Advent of Code 2018. Because why not? I would like to share my enthusiasm for the project and share how things are done. How are some challenges solved functionally? And how can you create your own games using JSON? The goal is to inspire people and to also make something funny.

  • Using Elm to Make Interactive, Generative Art

      June 28, 2019, 4:20PM,  20 minutes

    Noah Z Gordon

    Elm’s not just great for web development – it’s also a wonderful tool that you can use to make interactive, creative visuals! By following the same fundamental principles established in the Elm Architecture, you can start making HTML-based art in a matter of minutes.

    I will start my talk by giving a brief history of generative computer art from its inception. Then I will describe more modern forms of computer art, including “algorave”-style live coding.

    I will go on to explain the framework I use to achieve different effects and how Elm’s type system simplifies the production of recursive art.

    Then I will introduce some of the art that I’ve worked on in Elm, which combines the live coding style with a slider interface that allows the viewer to directly manipulate the parameters of the piece and layer many complementary effects.

    I will conclude with a live demonstration, hopefully set to music :)

  • Incremental Type-Driven Development

      June 28, 2019, 5:15PM,  10 minutes

    Dillon Kearns

    Test-Driven Development is a powerful programming technique because it:

    • Tightens feedback loops
    • Helps you get one small use case fully working before moving on to the next one
    • Let’s you start with your intention before doing the implementation

    In this talk, you’ll learn how to get those same benefits using elm’s compiler like a test framework. This isn’t a replacement for Test-Driven Development in elm, but rather a complementary technique.

    Kent Beck says that our goal is to write “clean code, that works,” but that we make it harder on ourselves by trying to start with clean code, and then make it work. Similarly, in elm it’s a lot more difficult when we try to get clean working code, and then get it compiling. Start by finding the Shortest Path to Compile. Once we’re compiling, getting the correct values (getting it working) becomes far easier! And once we have correct values, refactoring (getting it clean) becomes far easier!

  • What has excited me about audio synthesis theory

      June 28, 2019, 5:30PM,  10 minutes

    Chad Stearns

    I have written a lot of code (including some Elm code) that deals with generating audio and simulating realistic sounding musical instruments. It’s been a deep dive for me into fascinating different theories of sound. I’d like to share what I have picked up. Here is an outline:

    • Additive synthesis is really simple: just combine many sine waves
    • Saw tooth waves, square waves (show and explain a cool fourier series gif)
    • Talk about bells a little bit, and show how different bell sounds really just come down to a certain profile of sine waves
    • Talk about the really basic mechanics of whats happening in a bell as it vibrates
    • Grainular syntehesis: modelling sound as atomic sound “grains”
    • Show how a vibrating bell is more like a “grain” of sound traveling through the bell itself, and that sounds generally can be modelled as atoms expressing themselves in a medium
    • Changing a sounds speed without changing its tone is really tricky, but grainular synthesis makes it simple.
  • Building a Design System with Elm

      June 28, 2019, 5:45PM,  10 minutes

    Théophile Kalumbu

    Developer and Designer collaboration has always been a challenging subject. Designer:” Can you please make the red background slightly darker?” Dev.: “You mean #FF3300 or #FF9922 ?” What if we had a tool that designers and developers could use in order to create an efficient collaboration and avoid these kind of impediments ?

    This tool is called a Design System and has been a buzz word in the digital world for a couple of years. Material Design, IBM Carbon etc… All these are shared design rules and principle that are provided by leading tech companies in order to help their teams build cohesive and qualitative products.

    In this talk, we will see how through Elm and its great ecosystem we can build a DSM that can help Developers and Designers build great products. We will define a Design Language made of colors, typography and layouts thanks to the expressiveness of the Elm Type System.Then we will make reusable views and combine them in order to build a Pattern Library.

Tickets

Tickets Information by EventLama

Early bird elm-graphql workshop (upgrade) Discount applied

× €216.67 (€43.33 VAT) ×

We are very happy to announce that we’ll be hosting a pre-conference workshop on Elm-GraphQL. Library author Dillon Kearns will teach you everything you need to make guaranteed-correct, type-safe API requests from your Elm app! This full-day workshop will give you a deep dive on everything from GraphQL core concepts, to techniques to build elm-graphql queries quickly and easily. You’ll even pick up advanced techniques on how to effectively model data in your GraphQL Schema, and getting real-time data using Subscriptions.

Check out the full details and workshop agenda here: https://incrementalelm.com/elm-graphql-workshop

To get an overview of the library and some of its features, check out the Github project, or watch Types Without Borders from last year’s Elm Conf.

Regular workshop ticket : full-day elm-graphql workshop - June 26 (no conference ticket included) Discount applied

× €333.33 (€66.67 VAT) ×
 60 days left

We are very happy to announce that we’ll be hosting a pre-conference workshop on Elm-GraphQL. Library author Dillon Kearns will teach you everything you need to make guaranteed-correct, type-safe API requests from your Elm app! This full-day workshop will give you a deep dive on everything from GraphQL core concepts, to techniques to build elm-graphql queries quickly and easily. You’ll even pick up advanced techniques on how to effectively model data in your GraphQL Schema, and getting real-time data using Subscriptions.

Check out the full details and workshop agenda here: https://incrementalelm.com/elm-graphql-workshop

To get an overview of the library and some of its features, check out the Github project, or watch Types Without Borders from last year’s Elm Conf.

Regular ticket - elm europe 2019 Discount applied

× €299.00 (€59.80 VAT) ×
 45 days left

Combo : workshop elm-graphql + elm Europe Discount applied

× €499.17 (€99.83 VAT) ×

Getting There

Sponsors

Want to get involved and help support elm Europe 2019 ? We'd love to hear from you.

Organizers

Thibaut Assus

(organizer)

Sébastien Besnier

(Co-organizer)

Dan Abrams

(Co-organizer)

Benoit Chiquet

(Co-Organizer)

Sébastien Crème

(Co-Organizer)