Newsletter
Issue 122 2018-08-30
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
-
I recently watched a video from The Coding Train on 3D rendering with rotation and projection. It was written in JavaScript using the
p5
library, and showed how to draw 3D graphics using a 2D graphics library. It got me wondering if I could recreate it in Haskell. -
Bit-manipulation operations for high-performance succinct data-structures and CSV parsing
In this blog post I will properly introduce the
popcnt
,pext
,tzcnt
andpdep
operations and how they relate to the performance of our conceptual succinct data-structure based CSV parser. -
Marrying Haskell and hyper-threading
In this blog post, I’d like to tell one story that had happened with one Haskell application. Then explain how we can start threaded RTS, so it is aware of the CPU layout on your system.
-
The post is about the most obvious things a user will run into when upgrading. Thus, we will talk about breaking changes and new ways of doing certain things. Finally, there a bit of benchmarking bravura, because yes, we’re now faster than ever (sometimes a bit faster than Attoparsec).
-
Notes from reading Type Driven Development with Idris
These notes compare Idris code in the book against Haskell. My goal is to write Haskell code very closely mimicking Idris to see the value added by dependent types.
-
Notes on Agda’s termination checker
I’m positively surprised about Agda’s termination checker. I’m working on a larger exercise, and Agda believes my main lemma (which does all the work for one liner theorem) terminates. But I don’t, yet.
-
Package environment files run counter to reproducibility
The “package environment file” feature (silently) introduced into GHC and cabal-install has caused a good deal of discussion already. But it seems we have so far missed one more fundamental issue.
-
Taking a look back: My mistakes in learning Haskell
The course starts next week. But before it does, I wanted to take this opportunity to tell a little bit of the story of how I learned Haskell. I want to share the mistakes I made, since those motivated me to make this course.
-
Roles, safe zero-cost coercions, and
DerivingVia
(Monoid
andFoldable
included) -
What I’ve learned since quitting Elm
In 2015, I spent some of my spare time trying out Elm, to render something simple in the browser and also to run some programs in Node. In this post, I’ll just highlight some of the most important things I’ve learned since the beginning of 2016 by using PureScript.
Jobs
-
Senior User Interface Developer at Awake Security in Sunnyvale, California
We are an early stage startup with a newly released product that is growing and changing as we continue gathering more customer feedback. Our small team of extremely talented and friendly folks is working closely with customers to ensure their success.
In brief
- Announcing Eta v0.8.6b2
- Announcing
genvalidity-hspec-optics
- Eta GSoC 2018 wrap up
- Haskell development workflows 4 ways
- HaskellRank 7: Purely functional solutions to imperative problems
- Kids coding: Part 3
- PureScript: Instance chains and overlapping Instances
- The abstract calculus
- What’s the consensus on Unicode symbols these days?
Packages of the week
- Abstract Calculus: A minimal programming language and model of computation
- BuBBLE: A DSL/LISP dialect written
emacs-module
: A Haskell package for writing Emacs moduleshttp2-client-grpc
: A native HTTP2 gRPC client library- Kiwi: A B+ tree based persistent key-value store
- Termonad: A terminal emulator configurable
- Yaar: An experimental type level framework for bulding type safe web applications