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.
Speakers
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.
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.
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.
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.
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
Keynote: Gabriel Gonzalez
10:00 – 11:00
Opening ceremony
11:00 – 12:00
Keynote: Stephen Diehl
14:00 – 15:00
Beginner track
15:00 – 18:00
Keynote: Niki Vazou
10:00 – 11:00
Keynote: Joachim Breitner
13:30 – 14:30
Beginner track
15:00 – 18:00
Keynote: Edward Kmett
10:00 – 11:00
Project demos
15:00 – 16: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.
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
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, 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.
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.
- Friday 15:00: Niklas Hambüchen
- Friday 16:00: Andreas Herrmann (Newcomers Tutorial)
- Saturday 15:00: Manuel Chakravarty
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 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.
- Building 1 has the welcome area (where you sign in) on the ground floor, a large open space for hacking on the first floor, and 13 classrooms that are available for projects on the second floor.
- Building 4 has the mensa (for lunch) on the ground floor, and on the second floor there is the aula (where the keynotes happen) and a large classroom (4.113) for the beginner track.
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.
Registration
To the registration formOnce 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.
Who are we?
Organizing ZuriHac would not be possible without the help of all volunteers involved.
- Main Organizers: Jasper Van der Jeugt, Farhad Mehta, Simon Meier
- Beginner Track: Nicolas Gagliani, Martin Huschenbett
- GHC DevOps Track: Andreas Herrmann, Niklas Hambüchen
- Website: Tomas Carnecky
- T-Shirts: Carl Baatz
- Sponsoring: Arvin Moezzi, Ivan Kristo
- Statistics: Gleb Peregud
- HSR Location and Facilities: Ingrid Vettiger, Farhad Mehta
- Food and Beverages: Niklas Hambüchen
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.