ZuriHac 2018, 8-10 June

About

Beginning of June 2018, the Zürich Friends of Haskell association will organize ZuriHac 2018, a three day Haskell Hackathon hosted at the HSR Hochschule für Technik Rapperswil. This is the seventh Haskell Hackathon organized in Zürich and and the second one which is hosted at the HSR. This fantastic venue is located right at lake Zürich and provides space for 400 participants.

The Haskell Hackathon is a free (as in beer), international, grassroots collaborative coding festival whose goal is to expand the community and to build and improve Haskell libraries, tools, and infrastructure.

This is a great opportunity to learn more about Haskell, meet fellow Haskellers in real life, find new contributors for your project, improve existing libraries and tools or even start new ones!

This event is open to any experience level, from beginners to gurus. In fact, one of the goals is to bring beginners in contact with experts so that the former can get a quick start in the Haskell community. This year, we will have a dedicated beginners' course, and there will be mentors on site whom you can directly approach during the whole event with any Haskell-related question you have.

Supported by

Adjoint LogoDigital Asset LogoDFINITY LogoGoogle Open Source Programs Office, Google LogoHSR LogoTweag Logo

Speakers

Niki Vazou

Niki Vazou

Liquid Haskell: Refinement Types for Haskell: Saturday, 10:00
Niki Vazou is a post-doc scholar at PLUM of University of Maryland, focusing mostly on refinement types, static program verification, and type systems. She is the author of Liquid Haskell, a type system extension to GHC that lets you add sophisticated predicates to type signatures.
Stephen Diehl

Stephen Diehl

Building compilers with llvm-hs: Friday, 14:00
Stephen is a Haskell developer, entrepreneur, and financial systems architect from Boston. His open source work is around numerical computing, compilers, security, and improving Haskell documentation. Author of the amazing What I Wish I Knew When Learning Haskell.
Edward Kmett

Edward Kmett

Combinators Revisited: Sunday, 10:00
Prolific Haskell programmer, mathematician, lapsed graphics guru and demo scener, defense contractor, financial toolsmith, author of the widely-known lens library.
Gabriel Gonzalez

Gabriel Gonzalez

Fast and parallel state machines: Friday, 10:00
Haskell Enthusiast and programmer at Awake Security. Author of a host of Haskell libraries and tools including pipes and Dhall, and writer behind the Haskell for all blog.
Joachim Breitner

Joachim Breitner

A promise checked is a promise kept: Inspection Testing: Saturday, 13:30
Post-doc researcher at the University of Pennsylvania and one of the core contributors to the Glasgow Haskell Compiler. Author of The Incredible Proof Machine and not afraid to try funky ideas.

Schedule

All talks and keynotes take place in the aula (building 4). Lunch is served in the mensa (building 4). BBQ and Ramen will be consumed outside (in front of building 1).

9:0021:00
Friday
June 8
Doors open
9:00
Keynote: Gabriel Gonzalez
10:00 – 11:00
Opening ceremony
11:00 – 12:00
Lunch
12:45 – 14:00
Keynote: Stephen Diehl
14:00 – 15:00
Beginner track
15:00 – 18:00
BBQ
18:00 – 21:00
Saturday
June 9
Keynote: Niki Vazou
10:00 – 11:00
Lunch
12:00 – 13:30
Keynote: Joachim Breitner
13:30 – 14:30
Beginner track
15:00 – 18:00
Ramen
18:00 – 21:00
Sunday
June 10
Keynote: Edward Kmett
10:00 – 11:00
Lunch
12:00 – 13:30
Project demos
15:00 – 16:00
End of event
17:00

Food

Lunch coupons are sold during registration. A coupon costs CHF 35 and includes lunch for three days. Vegetarian options are available during every lunch. Of course, you are always free to go to nearby restaurants and/or supermarkets, like the past years.

The exact menu will be announced here before the event.

  • Friday: Sliced Veal with Rösti or Vegetable Lasagna gratinated with cheese
  • Saturday: Pasta Italian Style (Bolognaise, Pesto or Mushroom sauce)
  • Sunday: Roasted Chicken Breast with herb sauce, rice & carrots or Quorn Curry with fruit and rice

On Friday evening, there is a bring-your-own meat BBQ. Meat (or vegetarian/vegan alternatives) can be obtained from nearby supermarkets. Migros is nearby and has a decent selection, but it does not sell alcoholic beverages.

We are working with SudelNuppe to provide an on-site Ramen (Japanese Noodle Soup) dinner option for Saturday. The prospective menu can be viewed here. Coupons for this can be bought directly from the vendor on Saturday evening.

Coffee and refreshments

We have three coffee machines to serve free coffee during the event. These are located in the common hacking area in building 1 (first floor). RedBull has also provided a fridge with 600 cans free of charge.

C++ Standardisation Committee

The HSR is also hosting the spring session of the C++ standardisation committee from 04.06.2018 - 09.06.2018. In order to promote the cross-fertilisation of ideas between the two communities, the attendees of the C++ standardisation committee meeting will be welcome to attend the ZuriHac2018 keynote speeches. In turn, ZuriHac2018 attendees are welcome to take a peek at the meetings of the C++ standardisation committee. For more information on the C++ standardisation committee meeting, please refer to this link. In case you plan on attending a session, please send a short email to Peter Sommerlad (peter.sommerlad at hsr.ch).

Projects

In between the talks you can join one of these projects and help the maintainers out with bug fixes or new features. We have plenty of space available in 10 separate rooms where you can team up with your peers and work on your favourite project.

To submit your project, please open a pull request.

Beginner
Advanced
Expert
Manuel Chakravarty

Haskell SpriteKit

 — 
Haskell SpriteKit is a Haskell binding for the SpriteKit framework available on macOS/iOS/tvOS, encompassing an animation framework, physics engine, and game engine. It not only makes a state-of-the-art 2D game engine accessible from Haskell, but it does so in a manner that the client code is purely functional without the need to be embedded in a state monad or to use advanced structuring mechanisms, such as FRP. It is indeed suitable for use by Haskell beginners. The binding covers a lot of interesting functionality, but it is still rather incomplete and some help would be much appreciated.
Remy Goldschmidt

eqsat

 — 
eqsat is a Haskell library for equality saturation-based superoptimization of arbitrary referentially-transparent languages, with a focus on performance. Equality saturation is a method of optimization based on automated theorem proving (congruence closure) in propositional equational logic.
Bas van Dijk

haskell-opencv

 — 
opencv is a Haskell library providing a binding to the OpenCV-3.x C++ library. It binds directly with the C++ API using the inline-c Haskell library.
Dierk König

Frege

 — 
Learn how to use Frege (a Haskell to JVM compiler) in your Java projects, incl. type-safe interaction with Java libraries.
Andrew Lelechenko

arithmoi

 — 
arithmoi is a Haskell library for number theory: modular arithmetic, primes, elliptic curves, etc. It is also an excellent tool for Project Euler.
Alexey Kuleshevich

massiv

 — 
massiv is a Haskell library for manipulating multi-dimensional Arrays. It features fusion, stencils and parallel computation.
Lucas DiCioccio

http2-client-grpc

 — 
A native gRPC client for Haskell. Needs some updating to a more recent proto-lens, helpers, and some CI-runnable examples.
Leon Coto Rodriguez

Labyrinth

 — 
WIP: A clone of Ravensburger's Labyrinth.
Tobias Dammers

Ginger

 — 
Jinja2-style HTML template engine
Alexander Diemand

Secure Haskell Programming with LiquidHaskell

 — 
Let's dig into Haskell code (libraries, apps or yours) and have a look at how we can prove termination and correct behaviour with LiquidHaskell. Beyond 'head', there are a lot of pitfalls. A vivid discussion and hands-on coding is envisaged.
Vaibhav Sagar

IHaskell

 — 
A Haskell kernel for Jupyter notebooks
Mikhail Glushenkov

Cabal

 — 
Common Architecture for Building Applications and Libraries
Tommaso Piazza

Rome

 — 
Binary dependency cache specialized for macOS/tvOS/watchOS/iOS
Corentin

Nomyx

 — 
The game in which you can change the rules!
Enzo Haussecker

DFINITY

 — 
We have developed a cryptographic protocol that allows a network of computers to reach a consensus on a stream of random values. A probabilistic mechanism for leader ranking is applied to these random values, which drives the production of blocks for a public blockchain.
Dmitry Bushev

stackage2nix

 — 
Generate Nix build instructions from a Stack file
Dmitrii Kovanikov

life-sync

 — 
CLI tool which helps you to synchronize dotfiles repositories
Matt Parsons

Haskell Project Project

 — 
Are you curious about doing Haskell, but not sure where to start? This is a Haskell project that is designed to connect beginners, mentors, and ideas.
Pasqualino Titto Assini

Quid2

 — 
Open, evolvable, consistent and efficient distributed systems
Vidas Pleta

News Engine

 — 
Self-driving news engine that would help to personalize user content.
Luka Horvat and Nikola Henezi

Basic

 — 
Database first database library with focus on: type safety, ease of use, flexibility and user friendly error messages
Dominic Steinitz

Differential Equation Solvers

 — 
Small project for different ODE solvers for haskell, in particular symplectic solvers.
Csaba Hruska

GRIN

 — 
The name GRIN is short for Graph Reduction Intermediate Notation, and it is an intermediate language for graph reduction. It can be used as a Haskell backend replacing STG.
Juan Carlos Saenz-Carrasco

Purely functional data structures

 — 
Since Okasaki's book and PhD thesis, few efforts have been done towards the design and analysis of purely data structures, specifically the field of dynamic environment
Anthony Sheldon

haskell-wasm

 — 
Haskell compiler infastructure for WebAssembly
Pawel Szulc

Quasar-lite

 — 
It's an abstraction for a File System build with Free. Attendees will write interpreters for storages of their choice (like HDFS, Elasticsearch, PostgreSQL). At the end of hackhaton we will get a nice website that allows you to connect (mount) to specific storage, list, write and read its content
Adrian Sieber

Transity

 — 
The plain text accounting tool of the future. Written in PureScript.
Drew Krause

Building music types

 — 
Modeling compositional forms (pitch &/or rhythm) using algebraic data types
Marco Zocca

sparse-linear-algebra

 — 
A native linear algebra library with multiple backends
Mauro Bieg

pandoc

 — 
Pandoc is a free and open-source software document converter written in Haskell
Oskar Wickström

Haskell Documentation Improvements

 — 
Get together and improve documentation for central Haskell packages where we think it could be better — not only API references, but tutorials, how-tos/cookbooks, and full executable examples. Let's create some pull requests!
Sergey Mironov

vindinium-rage

 — 
Game agent for vindinium.org on-line AI competition
Pepe Iborra

Debug

 — 
A debugging toolkit for Haskell
Artem Chirkin

easytensor

 — 
Strongly-typed multidimensional numerical data and operations
Philip Kamenarsky

Refract

 — 
Optical Purescript UI library based on React and the Elm architecture, but without the boilerplate.
Pawel Kruszewski

Haskell CodingBat

 — 
CodingBat like website for exercising Haskell.
Phil de Joux

Flare Timing

 — 
Scoring for Free Flight Competition
Stephen Diehl, Moritz Kiefer

Compiler Development

 — 
We will informally hack on various tooling on llvm-hs toolchain and related projects.
Gabriel Gonzalez

Dhall

 — 
Non-Turing-complete configuration language
Jeremy Barisch-Rooney

Distributed Algorithms Framework

 — 
It's all in the homepage :)
Jan van Brügge

Media Goggler

 — 
A media server (similar to Plex/Emby) written in Haskell. Will support more than just movies/series in the future. Very much work in progress.
Christina Zeller

Game Programming for all

 — 
Dive into game programming with Keera Studios. We'll guide you to add features to existing open source games using SDL2, Functional Reactive Programming and Nintendo wiimote. We'll also show you how to create your own games, starting with a template that works for all kind of games, from simple board games to advanced games with physics and collisions.
Robin Kay

Baxter Text

 — 
Cross-platform binding for laying out and rendering text using each platform's native text engine and fonts. Avoids the need to bundle FreeType and custom fonts with applications.

Beginner track

Mentor T-Shirt

We want to make the event accessible to Haskellers at all levels, which is why we will have dedicated mentors, and an introductory course by Julie Moronuki. and beginner-level Haskell exercises.

You can identify mentors from the black Zurihac shirt. They welcome any questions you may have, so please grab them if you have any issues or questions.

Beginner course

Julie Moronuki

Julie Moronuki, the co-author of both Haskell Programming from first principles and The Joy of Haskell, has kindly agreed to teach a beginners course for people who are just getting started with Haskell. This beginner track will run on Friday and Saturday afternoon and will not conflict with any keynotes.

In case you are interested in the beginners track, we kindly ask you to fill in this very short poll so we have a better idea of how many people will attend the track and what the level of the audience is.

GHC DevOps track

It's hard to overstate how important GHC is to the Haskell ecosystem. That's why we are extremely proud that we will have a special GHC DevOps track at ZuriHac 2018.

This track is all about getting new contributors into GHC's code and the surrounding tooling. You do not need to bring any experience in working on GHC, we will introduce you to it and show that working on GHC is not as hard as you might expect.

Some GHC contributors will be present to help you find your way around the projects, and there will be hacking sessions to improve the tooling in particular.

Manuel Chakravarty

Long-time GHC contributor Manuel Chakravarty will be present, and we'll have a few talks about GHC internals.

If you are interested, then please consider filling out this poll to help the track organizers prepare.

The GHC DevOps track is located in room 1.271, but the Saturday talk will take place in the aula.

Venue

This year the hackathon takes place at the HSR Hochschule für Technik Rapperswil. The location is about 40 minutes outside of the Zurich city.

HSR campus

HSR Hochschule für Technik Rapperswil
Oberseestrasse 10
8640 Rapperswil-Jona

The Hackathon mainly takes place in two buildings: Building 1 and Building 4. For a detailed overview, please use this PDF map of all rooms. The ones highlighted in green are the areas available for ZuriHac.

Please use this document for per-project Room Allocation.

The venue is located right next to the lake, and weather is predicted to be superb (25°C, 77℉), so feel free to bring your swimming gear!

Getting there

You can take the S7 or S15 to get from the Zurich main station to Rapperswil. These trains run regularly in 30 minute and 60 minute intervals, respectively. Google maps works well for directions if you use the "public transport" tab.

If you arrive at the Zurich airport, first take the train to the Zurich main station and then continue with S7 or S15. Trains from the airport towards the city run every few minutes.

Train tickets

If you stay in Zurich city, the easiest option is to get a 24 hour pass for all zones. It's good for all public transportation around Zurich, up to Rapperswil. A one-way ticket costs 17.20CHF, the 24 hour pass 34.40CHF. If you want to stay closer to the venue and save on transportation, please see the section further below with accomodation suggestions around Rapperswil.

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, you can still use it to take the train at 8.00 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 on Friday, 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 ZVV ticket app on Android or iOS.

Getting around

See this map for more information on accomodation, grocery stores, and other useful places.

VenueVenueVenueVenueVenueVenue

Registration

To the registration form

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. Do not book anything before we have confirmed a seat for you (in a confirmation email) though. Confirmation emails are sent out in batches and this is a manual process, so expect some delay there.

Contact

If you have any questions before the event, please reach out to Jasper Van der Jeugt, Simon Meier or Farhad Mehta.

Before the event, and in particular during the event, you can find us and other participants on our (attendees only) mailing list, the Zurihac Slack or on the #zurihac channel on freenode (open in your IRC client. In addition, feel free to post on Twitter and Google+ using the hashtag #ZuriHac2018.

Who are we?

Organizing ZuriHac would not be possible without the help of all volunteers involved.

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.