Issue 108
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.
Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.
Featured
-
Typesafe, Polymorphic, Parallel Map Algebra in Haskell
Repeated, sequential operations over large imagery have been a thorn in the side of Raster processing systems for a long time. The new library
mapalgebra
leverages the Array librarymassiv
to bring rigour and efficiency back to GIS, outperforming similar libraries in the field written in C and Scala. -
Writing a forum software is one of a few things that I-wish-I-had-but-hadn’t in the last of couple of years. For example, among a gazillion of abandoned repos on this GitLab account,
Forum
is one of them. If you take a glance of it, you will see that it’s an unfinished forum software. So, I decided to take a different approach to finally do it, no matter what it takes. -
Suppose you want to analyze your local election results and visualize them using a choropleth but you’d like to use Haskell. You could try using the shapefile package but you will have to do a lot of the heavy lifting yourself.
-
In basic Haskell it is straightforward to add new functions over a data type. We can independently add an evaluator function, potentially in another module. However if we want to add a new case to the data type, we have to modify both the data type definition and the functions using it.
-
Fast Haskell coding with cushions
I like to say ComponentM implements a Monad to avoid the usual pyramid of withResourceX functions at the beginning of your application. It composes them all together once, so you don’t need to worry about it.
-
Ghcid is — at the current moment — the most important tool for Haskell development environments. It is fast, reliable, works on all kinds of projects, and is remarkably versatile. You can use it with any editor workflow, primarily by not integrating your editor!
-
Haskell lens operator onboarding
Lenses are immensely useful to the Haskell programmer, but suffer from a discovery problem — without enough exposure or experience, it’s hard to know which operator to use in a given situation. This post provides explanations for common lens operators as well as example-driven references for developers just getting started with lenses.
-
How I evaluate Haskell packages
This post summarizes the rough heuristics that I use for evaluating Haskell packages. Usually I use these rules of thumb when choosing between multiple similar packages or deciding whether to depend on a package at all. Some of these guidelines work for other programming languages, too, but some of them are unique to Haskell.
-
The Hillelogram Verifier Rodeo I (LeftPad)
A month ago, Hillel Wayne posted a verification challenge comprising three problems that might sound frivolous, but which, in fact, hit the sweet spot of being easy to describe and yet interesting to implement and verify. I had a lot of fun hacking them up in LH, and learned some things doing so.
-
Tintin: A softer alternative to Haddock
People like to get things done, and to do so, they have to use awesome libraries like yours. And to do so, they consume lots of tutorials and guides, which are a kind of soft documentation.
Jobs
-
Software engineer at ITProTV in Gainesville, Florida
ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.
-
Weever Apps Is Hiring Haskell Developers
Weever Apps is a software company based in Hamilton, Ontario Canada. We build cloud-based software products that large enterprises use to capture data, manage workflows, and access actionable reports. We replace clipboards and filing cabinets with tablets and databases and provide alerts, analysis, and other features that make data useful.
In brief
- BayHac 2018 videos
- Building packages outside snapshots
- Church encoding
- Dear Haskell: It’s not you, it’s your tooling
- Game of Life on a Raspberry Pi and a LED board in Haskell
- In Memory of Ertugrul Söylemez
- Monadic profunctors for bidirectional programming
- Nix: Haskell concepts for package managment
- Performance and feature case studies in Ecstasy
- require: Scrap your qualified import clutter
- Why I am not a fan of Cabal or Stack
Package of the week
This week’s package of the week is Haxl, a library for efficient, concurrent, and concise data access.
Call for participation
- dejafu: Highlight failures in tests
- psc-package: Dependencies field should be ordered in packages.json and psc-package.json
- echidna: Inconsistent test results in a simple contract
Events
- May 24: Quality assurance and testing with Validity in Eindhoven, Netherlands
- May 25: LilleFP10: À l’assaut des TypeClasses (Scala à la rescousse)! in Lille, France
- May 26: May Day-Convoluted Weekend in Los Angeles, California, United States
- May 28: Haskell peer study group in Vancouver, British Columbia, Canada
- May 29: Functional life cycles for state management during interactive development in Göteborg, Sweden
- May 30: Haskell web frameworks in Gainesville, Florida, United States