Weekly Review - Week 36

This post is a summary of my activities related to coding and software in the past week. Its purpose is both to serve as a high-level personal log and as a potential source of interesting (or not so interesting) links. Entries are provided in no particular order with minimal comments...

solo-io/squash: The debugger for microservices

: A tool to coordinate debugging of a bunch of processes running inside docker containers. Only for gdb and dlv based programs with VS Code editor

jrclogic/SMCDEL: A symbolic model checker for Dynamic Epistemic Logic.

: I have been fascinated by model-checking and non standard logics since I discovered this in 2000. Too bad I never invested the time to genuinely master that field. Looks like past years have seen much advance in the field and this MC for epistemic logic interested me because it's written in Haskell and implements BDD, something I might need for work I am currently doing on distributed systems testing.

apfelmus - Reasoning about space leaks with space invariants

: Thanks to my coworker Alex Babkin for this post. It helped me get a deeper understanding of laziness and space-time tradeoffs in Haskell.

Monad transformers, free monads, mtl, laws and a new approach

: An interesting approach to offer the best of both free monads/effects and monad transformers. Materialized in the transformers-eff package

Asymptotic Improvement Of Computations Over Free Monads

: An important stop in my journey towards better understanding of free monads.

Handlers in action

: An alternative approach to composable effects and transformers, based on a custom DSL for expressing effects. Uses TH's quasi-quoters which I am not a big fan of...

Parameterized Effects

: Follow-up over extensible effects paper taking into account parametric monads. The goal is to be able to embed and check state transitions at the type level making it impossible to write things like reading a file before opening it

A concurrent perspective on smart contracts | the morning paper

: This week's TMP was dedicated to a series of papers on Smart Contracts, a subject I have a keen interest in given that I am currently working for a company developing a platform for Smart Contracts! Also of interest is Adding concurrency to smart contracts and Step by step towards creating a safe smart contract: lessons from a cryptocurrency lab | the morning paper

Why3

: A platform for theorem-prover-based program verification providing a "front-end" on top of 2 dozens theorem proving tools, including Coq.

Tweag I/O - Compact normal forms + linear types = efficient network communication

: Nice insights on linear types from the people implementing them in GHC. Did I say how cool the people at http://tweag.io were?

jship - Monad Transformer Commutativity

: Understanding how to stack your monad transformers

Web Design - The First 100 Years

: Read this great talk thanks to my friend Bernard. Contains some important insights on how much we suck at predicting the future and an implicit call to arms to steer the future of the internet in the right direction

barrucadu/dejafu: Systematic concurrency testing meets Haskell.

: Discovered this package thanks to Mathieu Boespflug from tweag.io! A great tool to systematically check concurrent programs.

Review: Information Effects :: Reasonably Polymorphic

: Mind-boggling blog post on how to implement a language to define typed reversible computations in Haskell

Partial Order Reduction

: State explosion is the bane of model-checkers. This paper proposes algorithms (implemented in dejafu) to reduce the number of states to explore based on some notion of equivalence relations between states.