Newsletter
Issue 432 2024-08-08
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
- 
Abusing Haskell: Executable Blog Posts by Sinan I post my notes on my blog, Hashnode and dev.to, which require slightly different markdown formats. I have been doing the sane thing to fix formats so far. But it is a rainy Sunday and I am bored, so I decided to make this blog post an executable Haskell program to do the same. 
- 
Episode 54 – Dominic Orchard by The Haskell Interlude In this episode, Wouter and Sam interview Dominic Orchard. Dominic has many roles, including: senior lecturer at the University of Kent, co-director of the Institute of Computing for Climate Science, and bye-fellow of Queen’s College in Cambridge. We will not only discuss his work on Granule - graded monads, coeffects, and linear types - but also his collaboration with actual scientists to improve the languages with which they work. 
- 
Introduction to typed-session by Miao Yang Typed sessions are used to ensure desirable properties in concurrent and distributed systems, i.e. absence of communication errors or deadlocks, and protocol conformance. 
- 
Parallel property-based testing with a deterministic thread scheduler by Stevan This post is about how to write tests that can catch race conditions in a reproducible way. The approach is programming language agnostic, and should work in most languages that have a decent multi-threaded story. It’s a white-box testing approach, meaning you will have to modify the software under test. 
- 
Skeletest - A new batteries-included, opinionated test framework by Brandon Chinn I’m excited to announce the first release of a test framework I’ve been musing about for over a year! Skeletest takes inspiration from pytest and jest, two test frameworks that IMO are some of the best test frameworks out there. Skeletest is batteries-included and opinionated, but it’s also extendable and hookable. 
- 
The Quest to Completely Eradicate StringAwkwardness by Flame WanesI have been recently reminded of this thread: Informal discussion about the progression of base. These are some of the most awkward parts when it comes to handling strings in Haskell right now:Show,StringvsText,OverloadedStrings, and string interpolation.
- 
-XMultilineStrings merged! by Brandon Chinn !12089: Implement multiline strings · Merge requests · Glasgow Haskell Compiler / GHC · GitLab 449 just merged, which adds multiline string support to Haskell! Not only does it add support for multiline strings, it also refactors string literal parsing that improves both compile-time performance + memory usage by 25%! 
Jobs
Trying to hire a Haskell developer? You should advertise with us!
In brief
- 
homodoro: a simple pomodoro TUI program by Leonardo Conrado A very simple terminal application to use the pomodoro technique and keep track of daily tasks. 
- 
hs-opentelemetry-instrumentation-servant by Domen Kožar Experimental WAI middleware to instrument OpenTelemetry spans with Servant routing information. 
- 
Monthly DevOps Logs by Bryan Richter My first month on the new schedule started with a bang, as an OpenSSH vulnerability demanded upgrades of every Linux system everywhere. 
- 
Packdeps needs new hosting by Janus Troelsen I just noticed that packdeps.haskellers.com is no longer available. It used to be a site where you could explore reverse dependencies of Hackage packages. 
Show & tell
- 
Hexdim: A simple CPU in Haskell-Clash by loopmempool Hexdim is a 8-bit CPU with 16 instructions. Despite its simple instruction set, it is implemented with a 3-stage pipeline structure. One of the main features is that the project is both an emulator and a hardware description at the same time, which allows most of the debugging and testing to be done at software level. 
- 
mockcat: A simple and flexible mock for test by funnycat mockcatprovides capabilities for generating stub functions and verifying them.
- 
Ray Tracing in One Weekend by dpwiz There are some post hoc notes I’ve written down if you’re interested in reading a stream of grumpy remarks (with pictures of the intermediate steps!).