Newsletter
Issue 127 2018-10-04
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
Welcome to another issue of Haskell Weekly! Haskell is a safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.
Featured
-
Komposition: The video editor built for screencasters (in Haskell!)
Komposition is the video editor built for screencasters. It lets you focus on producing and publishing quality content, instead of spending all of your time in complicated video editors. Komposition automatically detects scenes in screen capture video, automatically detects sentences in voice-over audio recordings, and features a high-productivity editing workflow based on keyboard navigation.
-
Testing Our Ruby and Haskell Implementations Side-By-Side
After almost ten years of continuous development, Mpowered’s calculation engine has become a maintenance and innovation bottleneck. We decided to extract and replace the Empowerment component with a new solution built in Haskell. This posts describes how we are testing during the transition.
-
Capability: The
ReaderT
pattern without boilerplateIn this post, we’ll argue why capabilities are important, why you should use them, and tell you about what it took to design a library of capabilities with good ergonomics. It turns out that a brand new language extension that shipped with GHC 8.6,
-XDerivingVia
, has a crucial role in this story. -
Haskell in production: A GHC upgrade success story
Version upgrade nightmares are so common that they have become almost expected. Update the compiler one patch level, or a library version, and the work spirals into a much larger project. This is a story of going forward two versions in GHC, 8.0.2 to 8.4.3, and updating our libraries at the same time.
-
Introducing Haskell to a company
This post makes the assumption that the reader understands why they themselves would want to use Haskell and what its benefits are, so instead focuses on how we’ve made it a successful part of our own company’s development culture.
-
Keep your types small and your bugs smaller
The more precisely our types describe our program, the fewer ways we have to go wrong. Ideally, we can provide a correct output for every input, and we use a type that tightly describes the properties of possible outputs.
-
In one of my recent posts, I’ve mentioned gathering metrics for my Haskell application. Some people asked me about my setup, so I will try to describe how I configured and structured my application.
-
Rewrite rules and a specific fold: Use optimization techniques from
GHC.Base
Alga, a functional implementation of graphs, defines a foldable structure with a fold (named
foldg
) specialized for the graph data. Can we use the same tricks thanGHC.Base
to optimize compositions offoldg
withfmap
? Spoiler: Yes, and we can do it without any pain! -
Announcing Pure-C: A C backend for PureScript
Pure-C is an alternative backend for PureScript, a strongly typed, purely functional programming language that compiles down to native code via the Clang compiler toolchain.
-
Haskell study plan: An opinionated list of resources for learning Haskell
This guide is an opinionated list of resources for learning Haskell. It is aimed at more experienced programmers that would like a denser Haskell tutorial.
Jobs
-
Software engineer at Opolis in Denver
Opolis is hiring for a full time mid-to-senior level software engineer. We’re located in the beautiful front range of Colorado, we have an office in Denver, and are very flexible with remote work.
-
Haskell programmers at Digital Asset in New York/Zurich
I am currently working at Digital Asset, working on our DAML programming language. We’re seeking 3 additional Haskell programmers to join, 2 in New York and 1 in Zurich.
-
Developers at Groq in Portland
Come work with us! Multiple roles in compilers, software testing + validation, drivers & firmware. Doing most things in Haskell. Portland and Bay Area.
-
Interns at Tsuru Capital in Tokyo
Tsuru Capital is a proprietary trading fund focused on options market-making. In-house software is mainly developed in Haskell. We are hiring interns!
-
Engineer at Mercury in San Francisco
Mercury is building a bank for businesses. We are currently 8 people and have raised $6m from a tier A VC. We are close to alpha launch and are looking to grow our team.
In brief
- Announcing Stackage nightly snapshots with GHC 8.6.1
- Applicative functors
- GHC 8.6.1 is badly broken
- Hacktoberfest 2018: Call for participation
- Introduction to singletons: Part 3
- Mocking effects using constraints and phantom data kinds
- Monthly Hask Anything: October 2018
- Overloaded type families
- Productive Haskell in enterprise
- Stuck in the middle: Adding middleware to a Servant server
- Upcoming Haskell events: Haskell eXchange, Courses, MuniHac
Package of the week
This week’s package of the week is Hakyll, a library for generating static sites. It’s mostly aimed at small-to-medium sites and personal blogs.
Call for participation
Looking to participate in the fifth annual Hacktoberfest? Check out some of these issues with the “Hacktoberfest” label from Haskell repositories on GitHub!