What is ZuriHac?

ZuriHac is the biggest Haskell community event in the world: a completely free, three-day grassroots coding festival co-organized by the Zürich Friends of Haskell and the OST Eastern Switzerland University of Applied Science. It is not your standard conference with papers and presentations, but features fantastic keynotes, hands-on tracks, hacking on many of your favourite projects, and of course lots of socializing!

ZuriHac takes place Saturday 8 June — Monday 10 June 2024 as a physical event at the beautiful Rapperswil-Jona campus of OST located right next to lake Zürich. We hope to see you there!

Speakers

Ningning Xie
Ningning Xie
“Algebraic Effect Handlers with Parallelizable Computations”

Ningning is an Assistant Professor at the University of Toronto and a Research Scientist at Google DeepMind. Her research focuses on functional programming languages and type systems.

Alex McLean
Alex McLean
“Making people dance with Haskell”

Alex is a Research Fellow at non-profit studio Then Try This, and co-founder of the Algorave and TOPLAP live coding communities. He is the author of the TidalCycles live coding environment for music, implemented as a Haskell EDSL.

Ivan Perez
Ivan Perez
“Haskell in Space: A New Horizon”

Ivan is the founder of Keera, a game studio using Haskell. He is known for his work around Functional Reactive Programming, and more recently, he has been working as a Principal Research Scientist at NASA Ames Research Center.

Mary Sheeran
Mary Sheeran
“Fun with Functional Hardware Description and Verification”

Mary is a professor at the Chalmers University of Technology. In her research, she applies ideas from functional programming to hardware design and high-performance computing.

Domen Kožar
Domen Kožar
“Developer Experience Matters”

Domen is the founder of Cachix and devenv.sh. He has contributed to many Haskell libraries, and is also well known in the Nix community, as a Nix.dev writer and NixOS Weekly editor.

Andres Löh
Andres Löh
“Practical datatype-generic programming in Haskell”

Andres is a partner at Well-Typed. He has been a active contributor, speaker and organizer in the Haskell community for over 20 years. Currently he hosts the Haskell Unfolder and chairs the Haskell Foundation board.

Jesper Cockx
Jesper Cockx
“Programming and Proving in Agda”

Jesper is an assistant professor at the programming languages group at TU Delft, where he works on on dependently typed languages. He is one of the core contributors to Agda.

Manuel Bärenz
Manuel Bärenz
Functional Reactive Programming Track

Manuel loves combining types and reactive systems. He is the main author of the Rhine FRP library and essence-of-live-coding, and a co-maintainer of Dunai and Bearriver.

Eliane Schmidli
Eliane Schmidli
Beginner Track

Eliane is a Research Assistant at OST and Zurich Friends of Haskell contributor. Her research interests include Functional Programming and the application of FRP in the field of robotic art.

Schedule

ZuriHac is primarily a community event and a hackathon, rather than 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. Trying to attend everything may a bit too much, just pick what you find interesting!

Here is a list of projects participants are planning to work on—feel free to add your own!

This schedule is tentative and minor changes may still need to happen as we get closer to the event.

Start End Title Link Kind
2024-06-08T09:00:00+02:002024-06-08T10:00:00+02:00Registration Opens admin
2024-06-08T10:00:00+02:002024-06-08T11:00:00+02:00Talk by Ivan Perez #talk-ivan-perez talk
2024-06-08T11:00:00+02:002024-06-08T12:00:00+02:00Opening Presentation & Project Pitches admin
2024-06-08T12:00:00+02:002024-06-08T14:00:00+02:00Food Truck food
2024-06-08T13:30:00+02:002024-06-08T15:30:00+02:00Beginner Track #track-beginner beginner
2024-06-08T14:00:00+02:002024-06-08T16:00:00+02:00FRP Track by Manuel Bärenz #track-frp advanced
2024-06-08T17:00:00+02:002024-06-08T18:00:00+02:00Talk by Ningning Xie #talk-ningning-xie talk
2024-06-08T18:00:00+02:002024-06-08T20:30:00+02:00Food Truck food
2024-06-09T10:00:00+02:002024-06-09T11:00:00+02:00Talk by Mary Sheeran #talk-mary-sheeran talk
2024-06-09T12:00:00+02:002024-06-09T14:00:00+02:00Food Truck food
2024-06-09T13:30:00+02:002024-06-09T15:30:00+02:00Beginner Track #track-beginner beginner
2024-06-09T14:00:00+02:002024-06-09T16:00:00+02:00Generic Programming Track #track-generic advanced
2024-06-09T17:00:00+02:002024-06-09T18:00:00+02:00Talk by Alex McLean #talk-alex-mclean talk
2024-06-09T18:00:00+02:002024-06-09T20:00:00+02:00BBQ by Jane Street food
2024-06-10T10:00:00+02:002024-06-10T11:00:00+02:00Talk by Domen Kožar #talk-domen-kozar talk
2024-06-10T12:00:00+02:002024-06-10T14:00:00+02:00Mensa food
2024-06-10T13:00:00+02:002024-06-10T15:00:00+02:00Agda Track by Jesper Cockx #track-agda advanced
2024-06-10T15:30:00+02:002024-06-10T16:15:00+02:00Project presentations admin
2024-06-10T16:15:00+02:002024-06-10T17:00:00+02:00Closing admin

Talks

“Haskell in Space: A New Horizon” by Ivan Perez

In this talk, we'll discuss how Haskell is being used for runtime verification of systems in safety critical domains, what steps are needed to make Haskell adopted by engineers, and how we could build the next generation of tools to keep systems and humans safe as we venture towards space.

“Algebraic Effect Handlers with Parallelizable Computations” by Ningning Xie

Algebraic effects and handlers are a powerful way to incorporate effects in programming languages. Algebraic effect handlers can express any free monad in a concise and composable way, and can be used to express complex control-flow, like exceptions, asynchronous I/O, local state, backtracking, and many more. However, existing designs of algebraic effects often require effects to be executed sequentially.

In this talk, I give an overview of algebraic effect handlers, and discuss how to combine effect handlers with parallelizable computations.

“Fun with Functional Hardware Description and Verification” by Mary Sheeran

This talk will explain why I am still fascinated by the combination of hardware description and functional programming. I will show some examples that I have had fun with, and explain what embedded domain specific languages can do for us. I will also talk about my slightly crazy ongoing work with space and time vectors.

“Making people dance with Haskell” by Alex McLean

TidalCycles is a DSL embedded in Haskell that has got musicians embracing functional composition for music. Alex will tell its backstory, including its representation of musical pattern in types, and the international live coding and algorave culture around it.

“Developer Experience Matters” by Domen Kožar

We will dive into why focusing on Developer Experience leads to better software through the lens of Nix and Haskell.

Track Information

Beginners Track by Eliane Schmidli

The beginners’ track this year will be loosely structured around the book Programming in Haskell. We plan to have a handful of copies of this book available for participants of the beginners' track, but since we do not know how many people plan on attending, we recommend that you get yourself your own copy if possible and start reading on your way to ZuriHac. The slides are freely available online. Please give us a thumbs up in the #beginners channel on the ZuriHac Discord as well so we know how many people to expect.

We will reserve a special room for this, where in addition to the two planned sessions by Eliane Schmidli, we will have some other experienced Haskellers present who can help you with all sort of issues from installing GHC to how to structure your first project.

For this track, you have to have a working Haskell installation. We recommend that you use ghcup to install all tools labelled "recommended" for your OS, together with VSCode and the Language Server extension. We recommend that you do this before coming to ZuriHac. In case you have problems, you can ask for help on the discord channel, or when you are here.

Generic Programming Track by Andres Löh

Practical datatype-generic programming in Haskell

Datatype-generic programming is a programming technique which allows us to define functions systematically for large classes of datatypes, but taking the structure of the datatype into account. Common examples include all the functions that can be "derived" in Haskell, so one can think of datatype-generic programming as an extensible "deriving" construct.

In this workshop / tutorial, we are going to look at how to write a number of interesting datatype-generic functions using the generics-sop library. Unlike previous workshops I have given on similar topics, I'm going to focus more on applications and actual generic functions than on the background and theory of datatype-generic programming.

FRP Track by Manuel Bärenz

In this workshop, you can learn how to write FRP (Functional Reactive Programming) applications. They can be console tools, webservers, or even graphical applications. You will be guided along small, self-contained exercises that lead you through the basics of the Rhine framework. There is also advanced material that you can learn in your own time, with Manuel available to help you with any Rhine or Haskell question.

To come prepared, you should bring a laptop, have the repository rhine-koans cloned, and all the prerequisites listed there installed.

Programming and Proving in Agda by Jesper Cockx

Agda is a purely functional programming language that is similar to Haskell but has a more powerful dependent type system. With dependent types, you can express logical properties of your programs in their types and enforce them statically.

This workshop is aimed at people with at least a basic knowledge of Haskell who want to learn more about Agda and dependent types in general. By the end of this workshop, you will be able to use dependent pattern matching and equational reasoning to write formally verified programs in Agda.

Preparation: If you want to follow along with the exercises, please install Agda beforehand (cabal install Agda or stack install Agda). Detailed installation instructions can be found here.

Lecture notes are also available.

2024 Haskell Ecosystem Workshop

The Haskell Foundation, the OST Eastern Switzerland University of Applied Sciences, are organizing a two-day ecosystem workshop to be held immediately prior to Zurihac at the same venue. You can find more information and register for the event here.

Venue

OST, Campus Rapperswil
Oberseestrasse 10
8640 Rapperswil

OST

The hackathon takes place at the beautiful Rapperswil-Jona campus of OST (formerly HSR), about 40 minutes outside of Zürich city:

The venue is located right next to the lake, and weather has been superb (25°C, 77℉) during the pre-COVID19 years, so feel free to bring your swimming gear!

Getting There

How to get there by train

We recommend attendees to use public transportation. You can take the S5, S7 or S15 trains to get from the Zürich main station to Rapperswil. These trains run regularly in 30 minute intervals.

What train tickets do I need?

If you stay in Zürich city, the easiest option is to get a 24 hour pass for all zones. It's good for all public transportation around Zürich, up to Rapperswil. A one-way ticket costs 17.20CHF, the 24 hour pass 34.40CHF.

Please note that the 24 hour pass is literally a 24 hour pass and can be used over multiple days: e.g. if you buy one on the first day of the Hackathon at e.g. 9.00 AM, you can still use it to take the train at 8.00 AM the next day. This way, it is possible to buy only two tickets for the three-day conference.

A lightly cheaper alternative to the 24 hour pass is the 9 O'Clock day pass which works more like a regular day pass. However, this requires you to take the train to Rapperswil after 09:00 AM on weekdays, as described on the website.

You can buy tickets from the SBB or ZVV vending machines, which have a button to use them in English rather than German on the home screen. Alternatively, you can use the SBB website, SBB mobile app on Android or iOS.

How to get there by car

There are some paid public parking lots in walking distance from the campus (see here for a map). It can be difficult to find a free parking spot in these lots, and you can expect to pay about CHF 20 per day. We therefore recommend that you come via public transport if possible.

Accomodation

Where to stay

The accommodation situation in and around Rapperswil is, unfortunately like every year, tight. Summer, regardless of the weekend, is a very popular time in the area, with something or the other always going on.

What alternatives are there to Rapperswil?

The nearby city of Zurich has a much larger capacity of hotels and accommodations of varying types. The public transport to Rapperswil is frequent, convenient, and fast. The following stations have direct train connections to Rapperswil every 30 minutes:

  • Zurich Hardbrücke
  • Zurich Hauptbahnhof
  • Zurich Stadelhofen
  • Zurich Oerlikon
  • Zurich Altstetten

During previous years, attendees have also shared accomodation (e.g. on Airbnb). In order to get in touch with fellow attendees, we recommend using the #accomodation channel in our Discord (which you can join upon registration).

If weather allows for it, camping is also a very affordable and beautiful option for the ultimate grassroots ZuriHac festival fans. Several people have stayed at this campsite since 2017.

Supported by

IOG Jane Street OST Serokell Standard Chartered Tweag I/O Valora .digital Well-Typed

Community Partners

BOB Konf Haskell Foundation Swiss Dev Jobs
We are still looking for sponsors for this year's event! Since we atttract many strong functional programmers from all over the world, it is an excellent place to do recruiting. Please contact zurihac at zfoh.ch for more info. Individual donations are accepted as well.

About

Contact

The main organizers for ZuriHac 2024 are Jasper Van der Jeugt, Farhad Mehta and Alex Drake. Additional key people include Adam Bratschi-Kaye, Andreas Herrmann, Benjamin Plattner, Bieke Hoefkens, Eliane Schmidli, Felix Morgner, Jeremy Stucki. John Rodewald, Lucia Kundig, Lukas Buchli, Olivier Lischer, Raphael Das Gupta, Raphael Rotondari, Roman Cviljanovic, and Timon Erhart.

If you have any questions before the event, please reach out to to the organizers. We also monitor our official Twitter account.

Legal

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

ZuriHac uses the Berlin Code of Conduct.