Contents

1 About

On Thursday, 29 August 2013 the Zurich HaskellerZ Meetup group will hold the "Zurich FP Afternoon". This will be a half-day event consisting of talks themed "Functional Programming in Industry". It will be held at ETH and will start with a keynote from Simon Marlow!

The Zurich FP Afternoon is followed by ZuriHac 2013, a three day Haskell Hackathon from Friday, 30 August until Sunday, 1 September hosted at the Erudify offices.

The Haskell Hackathon is an international, grassroots collaborative coding festival with a simple focus: build and improve Haskell libraries, tools, and infrastructure.

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

5.1 Getting around

Follow signs to the Tram 10 from the Airport arrivals.
Take the Tram 10 direct to the stop "ETH/Universitätsspital"

Getting to the Zurich Youth Hostel from the Airport

Take any train that stops at Zurich Bahnhof Hardbrücke, transfer to the 33 Trolley bus going direction Morgental. Take 33 to Jugendherberge and you will see the Hostel.

Getting from the Youth Hostel to the FP Afternoon Talks

Walk to Morgental and take the number 7 Tram direction Bahnhof Stettbach. Change to the Number 10 or Number 6 Tram at the stop "Central" (direction Flughafen/Oerklion and Zoo) and get off at "ETH/Universitätsspital"

A note on day tickets:

Day tickets in Zurich run for 24 hours and can be used on all forms of transport, bus, train, tram.

5.2 Accommodation

We have spoken with the local Youth Hostel in Zurich and they will be able to group Haskellers together if you mention the code "ZuriHac2013" when booking and when you check in.

6 Schedule

6.1 FP Afternoon

Time

Speaker

Title

Abstract

13:00

Registration

Food and drinks provided by Google

13:30

Simon Marlow

Keynote: The Haxl Project at Facebook

Writing code in an environment as large and complex as Facebook involves talking to many different back-end services, including databases, search engines, caches, and so forth. Each of these data sources has different characteristics and requires different access patterns to make best use of its resources. Typical front-end code will need to access many of these resources concurrently, but the programmer doesn't want to be concerned with the details of how best to access each resource. Moreover, we want to be able to write our code in a modular way and yet have concurrent accesses to the back-end services automatically batched and overlapped for us.

This talk describes a system that we're building using Haskell that allows the
front-end programmer writing business logic to access all the back-end
services in a concise and consistent way, while the system handles batching
and overlapping of requests to multiple data sources behind the scenes. The
programming model is one of implicit concurrency: there's no fork or async
operation, all external data access is implicitly performed in parallel where
possible.

At Silk we've been using functional programming for about 4 years now. We've used it to build a web application, coding in Haskell and Javascript. I will explain what we do, how we do it, and what we've found to be the strengths and weaknesses of Haskell and Javascript.

It's a common problem to share user environments (editor, compiler, browser, etc.) between GNU/Linux computers: laptop on the move and desktop at home, or different engineering workstations of a product team. This is usually solved by using the GNU/Linux distribution's package manager. That fails if the

different engineers use different distributions or different versions. Ceh,
building on Nix provides the same version controlled, reproducible power-user
environment on top of any modern GNU/Linux, be it 64-bit or 32-bit. What
makes it interesting for Haskellers is the fact that Nix applies the concept
of purity and laziness on the filesystem level and package management level,
and Ceh also has excellent GHC support with ~80 cabal packages included.

The Glasgow Haskell Compiler is a very good static compiler, but the code it produces is often large and it can be difficult to predict performance.

Furthermore, profiling a program often requires recompiling the program and
all libraries it uses. This talk describes Lambdachine, a virtual machine and
trace-based just-in-time (JIT) compiler for Haskell, which attempts to address
these problems. Lambdachine reuses GHC for type checking and (optional)
static optimisations, and complements it with additional optimisations
performed at runtime based on the program's behaviour. This talk describes
some of the challenges of the design and implementation of Lambdachine.

GHCJS is a Haskell to JavaScript compiler that supports many modern Haskell features, including lightweight threads, exceptions, Template Haskell and STM. Since It's based on GHC, we also get all recent type system extensions for free!

In this talk I will explain how GHCJS hooks into the GHC pipeline to translate
Haskell to JavaScript and discuss the challenges of compiling to a high level
language. We will see how we can interact with JavaScript code from the
Haskell world, in particular how GHCJS lets us avoid callback hell for HTTP
requests and event handling in the browser.

17:50

Prizegiving

Announcement of Google prizes

6.2 ZuriHac

The official hacking hours for ZuriHac are 10:00 to 20:00 on Friday, 09:00 to 20:00 on Saturday and Sunday.

Please come before 11:00 on Friday. At 11:00 there will be projects introduction and discussion.

If the weather is good during ZuriHac we will stop a little earlier to go to Lake Zurich to have a BBQ. Make sure to pack your swimming suit!