What is ZuriHac?

ZuriHac is the biggest Haskell Hackathon in the world: a completely free, three-day grassroots coding festival organized by Zürich Friends of Haskell. It features fantastic keynotes, interesting tracks, and of course lots of hacking and socializing!

ZuriHac takes place Friday 12 June — Sunday 14 June 2020.

Holding an event for 500 people in a physical location is clearly not an option this year. Instead, we are happy to inform you that the hackathon will take place as an online event. Read on below for the details, we're very eager to tell you how we intend to make it into a great event.

What will the online version look like?

For the talks, we are streaming them live on YouTube. We will even hold the usual Q&A at the end, where our friendly moderators will pass your questions from the chat to the speaker.

For the general hacking and socializing, we will be using Discord. It provides both chat channels like Slack and IRC, as well as voice channels with optional video/screen sharing. This gives us an online space where we can:

We also plan to host the beginner and advanced tracks online. More info about that will follow!

How do I attend?

I'm glad you asked! You still need to register, so that we can provide a good experience to everybody. If you're privacy minded, feel free to choose any username you want.

After you register, you will find an invite link to our Discord server on your registration page.

Finally, make sure to head over to our projects page, and have a look at what interests you. If you submit your own project, we will even create a channel on Discord just for you!

But what about my T-Shirt?

The economics of an online conference are very different from an on-site event, so we have decided to offer reimbursements to all our sponsors. This means we cannot offer any free T-Shirts this year.

However, we've seen in our post-events surveys that a lot of people really like the T-Shirt! That is why we have opened a webshop this year, so you can still get the ZuriHac swag you deserve.

Take me to the webshop

All profits we make on these T-Shirts will be donated to a COVID-19 related charity. Shipping may be slow due to the pandemic, and we are obviously also very new to selling items online, so please be patient.

Program

Timetable

ZuriHac is a community event and a hackathon over a conference. Aside from the talks and tracks, attendees are encouraged to work together on all sorts of Haskell-related open-source projects and socialize. Since ZuriHac is an online event this year, our Discord instance will serve as a digital hub for this. Register for the event to get access to this, it's completely free!

There is also a public Google calendar that you can use.

Speakers

Alexis King
Alexis King

“Effects for Less”

Alexis writes a lot of open source Haskell and Racket code. She is the author of Hackett, an experimental language that attempts to combine the best aspects of both languages. Currently, she works for Hasura, building a realtime GraphQL server on top of Postgres.

Rob Rix
Rob Rix

“Languages all the way down”

Rob works at GitHub and leads the development of semantic, an advanced static analysis tool that understands many programming languages. He is also known for bringing advanced effect handler research to the industry in the form of the fused-effects package.

Philip Wadler
Philip Wadler

“(Programming Languages) in Agda = Programming (Languages in Agda)”

Philip is a professor at the University of Edinburgh who played a critical role in the design of Haskell and worked on many things that we now take for granted such as type classes and Monads. He also made important contributions to languages other than Haskell—for example introducing Generics in Java 5.

Gabriel Gonzalez
Gabriel Gonzalez

“A bare-bones Twitter clone implemented with Haskell + Nix”

Gabriel is a long-time Haskell Enthusiast and programmer at Awake Security. He is the author of a host of Haskell libraries and tools including pipes and Dhall, and writer behind the well-known Haskell for all blog.

Simon Meier
Simon Meier

“Can Haskell Be the World's Database?”

Simon Meier is one of the founding members of the Zurich Haskell Community. He works at Digital Asset as an engineering lead of DAML, an ecosystem for building distributed applications quickly. His older work includes bytestring builders and the Tamarin security protocol verifier.

Ognjen Marić
Ognjen Marić

Joint talk with Simon Meier

Ognjen works at Digital Asset, building a distributed protocol for DAML smart contracts that provides strong integrity and privacy guarantees. Previously, he did academic research on formal methods, distributed systems, and security.

Tracks

Advanced track

The Haskell experts from Well-Typed will teach a two-part course in the advanced track. The two sessions cover different subjects and are completely independent.

Saturday session: Datatype-Generic Programming by Andres Löh

Datatype-Generic programming is a powerful tool that allows the implementation of functions that adapt themselves to a large class of datatypes and can be made available on new datatypes easily by means such as "deriving".

In this workshop, we focus on the ideas at the core of two popular approaches to generic programming: GHC.Generics and generics-sop. Both can be difficult to understand at first. We will build simpler versions of both approaches to illustrate some of the design decisions taken. This exploration will lead to a better understanding of the trade-offs and ultimately also make using these libraries easier.

This presentation will involve various type-level programming concepts such as type families, data kinds, GADTs and higher-rank types. It's not a requirement to be an expert in using these features, but I will not focus on explaining them in detail either; so having some basic familiarity with the syntax and semantics will be helpful.

Sunday session: Haskell and InfoSec by Tobias Dammers

In this workshop, we will look at Haskell from an information security point of view. How do security vulnerabilities such as SQL Injection (SQLi) or Cross-Site Scripting (XSS) work? How does a hacker exploit them? What can we, as Haskell programmers, do to prevent them, and how can Haskell help us with that? And what principles can we extract from this to develop more security-aware coding habits?

No knowledge of or experience with information security is required for this course, but participants are expected to have a working knowledge of practical Haskell. If you can write a simple web application with, e.g., Scotty, you should be fine.

GHC track

Write a GHC extension in 30 minutes by Richard Eisenberg

This live-coding session will witness a brand-new (mostly useless) extension to GHC. By watching, you will get a road map of how this is done and what the moving pieces in GHC's front end are: parsing, name resolution, type checking, and error messages.

A tour of linear types and linear base by Divesh Otwani

In this talk, I'll briefly present what linear types are and how you can use them with linear base. We'll follow the example of doing a topological sort of a DAG represented by a linear hashmap from linear-base that allows update-in-place. Along the way, we'll notice how linear types enable a safe API for mutable hashmaps and build some intuition on how to use linear types and tools from linear-base.

QualifiedDo: customizable 'do' syntax without fuss by Facundo Dominguez

In this talk I'm going to present the upcoming QualifiedDo language extension for the GHC compiler.

The 'do' syntax is a well-known device to improve the legibility of code manipulating monadic computations. QualifiedDo allows to use the 'do' syntax with other types than intances of the Monad type class. Unlike the old alternative based on the RebindableSyntax language extension, QualifiedDo only affects individual 'do' blocks selected by the programmer.

We will go over some motivating examples and discuss the implementation.

On "simple" constraints for typechecker plugins by Nicolas Frisby

This short talk introduces GHC's representation of constraints in its constraint solver. This is a good place to start if you're interested in how the typechecker works or considering extending it. The talk also doubles as an Experience Report as a typechecker plugin author; I offer lessons learned and identify some pitfalls.

Beginner track

We're excited that Julie Moronuki from Joy of Haskell and Type Classes will be teaching the beginners course again this year.

The beginners course focuses on Haskell language fundamentals and is really aimed at complete beginners, so it requires no prior experience with the language. It will take place in two parts, on Saturday and Sunday afternoon, please see the calendar for the exact times.

The lessons will be structure such that you can do the follow-along exercises on repl.it. This means you don't have to install anything on your local machine.

The course will be a mix of video lessons, interactive exercises, and plenty of support from your fellow Haskellers in the chat. The interactive part will be done in its own channel on our Discord server. The invite to the server is sent when you register for ZuriHac.

Mob Programming: Space Invaders

By Caroline Gaudreau (Fretlink) and Gaël Deest (Tweag)

The goal of this workshop is to collectively implement a small “space invaders” clone, starting from a rudimentary skeleton. Its format is that of a “coding dojo” or “mob programming” event: there is only one computer building and running the code, shared among all participants via collaborative editing.

Volunteers successively get to implement a small part of the game, while receiving advice from the rest of the group. The direction of the development is entirely driven by the audience: they get to decide what features they want to implement, and in what order.

The workshop is targeted toward programmers, but no prior experience with functional programming is assumed; in fact, the code is extremely simple (thanks to the Gloss library), and the core logic is free from “scary” features such as applicative functors, monads, lenses, etc. This allows guests to focus on simple, pure functions.

Requirements : To participate, you'll need VSCode setup with the LiveShare extension. Make sure to have it configured before joining the session ! The collaboration link will be sent to Discord at the beginning of the event.

Sponsors

supported by

Digital Asset IOHK Fretlink Google Hackworth HSR Serokell Tweag I/O Well-Typed

Interested in sponsoring? Contact us!

Registration

Due to the COVID-19 pandemic, ZuriHac 2020 will be an online event. We will be increasing the number of participants beyond the 500 that we could fit in the physical location, but we still require registration.

Once we reach maximum capacity you will be queued into a wait list. In case that somebody cancels we will fill up the seats from the wait list in first come first serve order and let you know.

Contact

If you have any questions before the event, please reach out to Jasper Van der Jeugt, Juri Chomé or Farhad Mehta. We also monitor our official Twitter account.

The primary medium to communicate with other participants is our Discord server. You will receive an invite to that after you register. We use the hashtag #zurihac on Twitter, and you can discuss the Hackathon on IRC in #zurihac channel on Freenode.

Who are we?

The main organizers for ZuriHac 2020 are Jasper Van der Jeugt, Juri Chomé, Farhad Mehta and Bieke Hoefkens.

Additional volunteers include Andreas Herrmann, Artem Chirkin, Arvin Moezzi, Bieke Hoefkens, Charles Till, Gleb Peregud, Ingrid Vettiger, Ivan Kristo, Mathias Koerner, Niklas Hambüchen, Silvio Böhler, Simon Meier and Tomas Carnecky.

Terms and Conditions

Each participant will retain ownership of any and all intellectual and industrial property rights to his or her work created or used during the Hackathon.

ZuriHac uses the Berlin Code of Conduct. In addition to that, HSR has an IT security policy which you are required to follow when using the wireless network.