Issue 122
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
Call for participation
- goat-guardian: get rid of
--redir-after-login-url
command line flag and instead use a URL parameter - stack: Make
snapshot:
a synonym forresolver:
- termonad: Make sure that the example .config/termonad/termonad.hs file in the README actually compiles
Events
- 2018-08-29 in Quito, Ecuador by Quito Lambda: Clasificando algoritmos recursivos
- 2018-08-30 in Durham, NC, USA by Durham Haskell Meetup: Morning Haskell coding session
- 2018-08-30 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2018-08-30 in Seattle, USA by Seattle Area Haskell Users’ Group: Category Theory for Programmers Part 3
- 2018-08-30 in Melbourne, Australia by Melbourne Haskell Users Group: Decomposing - MHUG
- 2018-08-30 in Zürich, Switzerland by HaskellerZ: Bring Your Own Coding Problem #3
- 2018-08-30 in Sheung Wan, Hong Kong by Hong Kong Functional Programming: Fractalide
- 2018-09-01 in Chilliwack, BC, Canada by ChilliHask Haskell User Group: Weekly Haskell Coding Meetup
- 2018-09-01 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out, chat FP, work on some code
- 2018-09-03 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2018-09-03 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2018-09-03 in Sydney, Australia by Sydney Type Theory: Separation logic
- 2018-09-03 in Melbourne, Australia by Elm Melbourne: Elm hack night
- 2018-09-04 in Madison, WI, USA by Haskallywags: ReasonML & ReasonReact: X Marks the Spot
- 2018-09-04 in New Orleans, USA by NoFUN - New Orleans Functional Programming: Spark Catalyst: A Functional Query Optimization Engine
- 2018-09-04 in Bristol, United Kingdom by CodeHub Bristol: Hack Night + Haskell Study Group
- 2018-09-04 in Amsterdam, Netherlands by FP AMS: Category theory study group
- 2018-09-05 in Austin, TX, USA by Austin Haskell Users Group: Haskell Beginner-Friendly Lab
- 2018-09-05 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2018-09-05 in Seattle, WA, USA by Seattle Area Haskell Users’ Group: Haskell Learners’ Group
- 2018-09-05 in Budapest, Hungary by Budapest Haskell User Group: Haskell Book reading group (22th Ed. with Revisions)
- 2018-09-05 in London, ON, Canada by London Functional Programmers (LFP): Destroy All “If”s: An Intro to Declarative Programming
- 2018-09-05 in Chicago, IL, USA by Chicago Elm: Chicago Elm - September Code Night