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.

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.

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.

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!

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

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.

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

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:

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.

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.

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!

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

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.