• Mauro Bieg - pandoc: converting documents for fun and profit!

    ETH Zurich / Zentrum / CAB H 52

    Pandoc is probably the most well-known Haskell project outside the Haskell community. It's a universal document converter, converting to and from a large number of document formats, including Markdown, RST, Orgmode, HTML, LaTeX, Word and many more. Pandoc is both a Haskell library (useful to create documents) and a command-line program that uses that library. In this talk, I'm going to give an interactive demo of some of the cooler things you can do with pandoc, as well as talk a bit about its Haskell internals. Its code-base and community are quite beginner-friendly, and contributing to pandoc is a great way to get started with real-world Haskell development. Website: https://pandoc.org Repo: https://github.com/jgm/pandoc/

    1
  • Jonas Wälter - Functional Programming for Web and Mobile

    Functional Programming for Web and Mobile – A Review of the Current State of the Art In recent years, the importance of web and mobile apps has increased massively and the trend continues. In addition, web and mobile development is changing faster than many other fields of programming. That is the chance for functional programming to become established in this area, isn't it? In this talk, we will examine the current state of the art of functional programming for web and mobile. In the first part, I will present the results of my corresponding seminar work. It is about advantages and disadvantages, the influence, the spread and the future of functional programming in web and mobile development. Furthermore, we will also take a short look at existing functional solutions in this field (e.g. Elm). In the second part, we will discuss these findings together and talk about your own experiences on this topic. (Note: This talk as final presentation is also part of the seminar work.)

    5
  • Jasper Van der Jeugt - Implementing In-memory Caches in Haskell

    ETH Zurich / Zentrum / CAB H 53

    Caches come in all sorts of shapes and sizes. They appear in lots of layers, from low-level backend services, to fetched assets in the frontend, and anywhere in between. Especially in larger organizations, they are often extremely application-specific, which results in programmers throwing something together in a bunch of places. In this talk, I'll talk about in-memory caching in Haskell. We will focus on the psqueues library, and we will talk about some of the interesting algorithms powering it. Then, we'll see how we can use this data structure to build a number of custom caches, from simple ones we can use in pure code to fast concurrent ones. There should be something in this talk for everyone, both beginners and people who have a bit more experience with Haskell.

    1
  • Niklas Hambüchen - hatrace: A syscall tracing library in Haskell

    ETH Zurich / Zentrum / CAB H 53

    The Linux system call tracing program, strace, is very useful for understanding what a program does and for investigating bugs. Unfortunately, it is not very scriptable. hatrace, which is strace-as-a-library, aims to address this. In this talk I explain what system calls are, how they work on Linux, how strace works, and how you can use hatrace's Haskell API to do things that are hard to do with strace. I also show how I can reliably reproduce rare GHC bugs with it, how to use it for testing, some of the implementation details, and interesting potential use cases.

    3
  • Artem Chirkin - Experimenting with Constraints

    ETH Zurich / Zentrum / CAB H 53

    This talk is about things we can do with ConstraintKinds. First, we will have a look at the constraints library [1]: how it uses (Dict :: Constraint -> *) to move around instances of type classes. Then, we will follow an amazing reflection [2] tutorial by Austin Seipp [3] explaining how to dynamically construct type-class instances. Finally, I will present my experimental GHC plugin that turns a manually-constructed Dict into a vanilla type-class instance. Also I will try to justify why I need such a weird trickery by means of an intersting example: implementing a type-class instance for a closed type family. [1] http://hackage.haskell.org/package/constraints [2] http://hackage.haskell.org/package/reflection [3] https://www.schoolofhaskell.com/user/thoughtpolice/using-reflection

    1
  • Zurich Friends of Haskell - General Assembly

    ETH Zurich / Zentrum / CAB H 53

    Have you been curious what the newly founded Zurich Friends of Haskell Association (https://zfoh.ch/) has been doing in 2018? Would you like to help the Zurich Haskell community grow? The General Assembly gives you the ability to get a glimpse into the Zurich Friends of Haskell and its roles. It is not a big event, but an important one. The agenda follows the statutes of the association: https://docs.google.com/document/d/1-8eHAK40hiH5jv79AscWtf3pyUNxx4Ls1LwkpLYK--8/edit 1. The board will present a summary of the association's activities in 2018. 2. We will discuss the goals and aspirations of the association for 2019. 3. The treasurer will present the financial report for 2018. 4. We vote to discharge the board for their work in 2018. 5. We elect the board for 2019. Looking forward to seeing you there :) Note there will be a HaskellerZ talk following the GA. That talk will be announced separately. This meetup is for the GA only. Note also members of the ZFoH have received an invitation via e-mail separately. It would nevertheless be good to RSVP to this event so we get an accurate picture of who will be attending. Thanks.

    4
  • Michal Terepeta - Implementing Immutable Vectors in Haskell

    ETH Zurich / Zentrum / CAB H 52

    This talk will focus on RRB Vectors -- Relaxed-Radix-Balanced Vector is a data structure with good cache locality supporting fast indexing, appending, splitting and concatenation. We will discuss how to implement them in Haskell and, along the way, will also dive into a few low-level aspects of GHC in the quest to make everything fast.

    1
  • Scala eXchange London

    Needs a location

    We’ve got two tickets to Europe's largest annual Scala conference to give away! Discover the future of Scala from creator Martin Odersky as well as Simon Peyton Jones in London on 13-14 December. See the full line up here http://bit.ly/2OsxkNb Simply click attending to go into the draw. Winners to be announced Monday 26th November.

    1
  • Safe programming in Industry, Testing in Haskell (Guest Lecture at the HSR)

    I would like to invite anyone on the HaskellerZ meetup who is interested, to a guest lecture given by Tom Sydney Kerckhove for my functional programming module at the HSR. He will speak on the following topics: 1. Safe programming in Industry (08h10-08h55) We explore the trade-offs that show up in industrial software engineering, in particular with respect to software that has a safety requirement, and discuss the technical considerations and conclusions that follow. As it happens, using Haskell is frequently one of those results, so we will also dive into examples where using Haskell and Haskell-like languages were the chosen option. Examples include work at Spam fighting at Facebook, Design of cities at ETH Zuerich, crypto currency at the Cardano Foundation, etc. 2. Testing in Haskell (09h05-09h50) Testing, expensive and tedious as it may seem, need not be so. In this talk we explore how standard testing methods translate into Haskell. After that we go further and show how Haskell allows for much more powerful, cheaper and more effective testing. Topics include: • Unit testing • Property testing • Property combinators • Test suite combinators • Teaser: signature inference Location: HSR, Room 5.003 (See https://www.hsr.ch/de/die-hsr/campus/ for directions) You are welcome to attend in case one of these topics interests you. Please note that this will take place at the HSR in Rapperswil, and will be more in the form of a lecture than a get-together. Please also note, that the lectures will take place in the *morning*, and not in the evening. I look forward to seeing you there, Farhad

    1
  • Beth Aitman - A practical guide to making good documentation

    ETH Zurich / Zentrum / CAB H 52

    Documentation is the major way that developers learn how to use a new technology(1) (with Stack Overflow a close second, obviously). And good docs make a huge difference to usability - all of us have struggled to use something because of poor documentation(2). In particular, docs for Haskell libraries have a reputation for being pretty opaque. So we know that documentation is important. But writing it is kind of a pain. And so many developers don't really bother. The goal of this talk is to make it much less painful for you to write documentation - and possibly even enjoyable. I'll give you a practical guide to writing effective documentation, and the conceptual background you need to understand the problem space. We'll cover: what to write, and how to work out what you need to write tips for making your writing clear and easy-to-read making docs work for your audience (aka - when it is and isn't appropriate to talk about category theory) how to put docs together in the Haskell ecosystem, and what should go where maintenance and testing with plenty of examples of good and bad along the way. (1) https://insights.stackoverflow.com/survey/2018/#developer-profile-ways-developers-learn-on-their-own, https://insights.stackoverflow.com/survey/2017#developer-profile-ways-developers-teach-themselves (2) https://insights.stackoverflow.com/survey/2016#work-challenges-at-work

    5