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