Blog.

The typed-process library

  • Michael Snoyman
  • 25.02.2017
In October of last year, I published a new library - typed-process. It builds on top of the veritable process package, and provides an alternative API (which I'll ...
READ MORE

Immutability, Docker, and Haskell's ST type

  • Michael Snoyman
  • 13.02.2017
In managing projects at FP Complete, I get to see both the software development and devops sides of our engineering practice. Over the years, I've been struck by the ...
READ MORE

MonadMask vs MonadBracket

  • Michael Snoyman
  • 06.02.2017
The exceptions package provides three typeclasses for generalizing exception handling to monads beyond IO:
READ MORE

Green Threads are like Garbage Collection

  • Michael Snoyman
  • 07.01.2017
Many common programming languages today eschew manual memory management in preference to garbage collection. While the former certainly has its place in certain use ...
READ MORE

Comparative Concurrency with Haskell

  • Michael Snoyman
  • 22.11.2016
Last week, I was at DevConTLV X and attended a workshop by Aaron Cruz. While the title was a bit of a lie (it wasn't four hours, and we didn't do a chat app), it was a ...
READ MORE

Covariance and Contravariance

  • Michael Snoyman
  • 09.11.2016
Typeclasses such as Bifunctor are often expressed in terms of whether they are covariant or contravariant. While these terms may appear intimidating to the unfamiliar, ...
READ MORE

Exceptions Best Practices in Haskell

  • Michael Snoyman
  • 07.11.2016
Over the years, I've written a number of different documents, tutorials, comments, and libraries on how to do proper exception handling in Haskell. Most of this has ...
READ MORE

Docker demons: PID-1, orphans, zombies, and signals

  • Michael Snoyman
  • 05.10.2016
There are a number of corner cases to consider when dealing with Docker, multiple processes, and signals. Probably the most famous post on this matter is from the ...
READ MORE

Updated Hackage mirroring

  • Michael Snoyman
  • 27.09.2016
As we've discussed on this blog before, FP Complete has been running a Hackage mirror for quite a few years now. In addition to a straight S3-based mirror of raw Hackage ...
READ MORE

Practical Haskell: Simple File Mirror (Part 2)

  • Michael Snoyman
  • 21.09.2016
This is part 2 of a three part series. If you haven't seen it already, I'd recommend starting with the first part, which covers communication protocols and streaming of ...
READ MORE