Issue 143 2019-01-24
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.
Hakyll Pt. 3 — Generating RSS and Atom XML Feeds by Robert Pearce
We dove in to generating Atom & RSS XML feeds with hakyll, uncovered a nice refactor opportunity via
feedCompiler, learned how to validate our feeds and ultimately learned about how a seemingly harmless
updateddate could prevent us from having a totally valid feed!
An in-depth look at
quickcheck-state-machineby Edsko de Vries
In this blog post we will take an in-depth look at
quickcheck-state-machine, a library for testing stateful code. Our running example will be the development of a simple mock file system that should behave identically to a real file system.
Building a Blog Part 5: Continuous integration with CircleCI by Gabriel Aumala
Every time I push to the master branch of my GitHub repository, a web hook is triggered and CircleCI checks out the latest code, runs a few tests, and finally deploys it. The process isn’t that simple under the hood, and I want to explain in this post how it works.
Post-Christmas Advent of Code In Haskell - Day 2 by Tobias Pflug
Today’s post is about Day 2: “Inventory Management System” . We are given a file containing random looking strings and are asked to calculate some checksums and also find a certain pair among them.
Purely Functional GTK+, Part 2: TodoMVC by Oskar Wickström
In the last episode we built a “Hello, World” application using
gi-gtk-declarative. It’s now time to convert it into a to-do list application, in the style of TodoMVC.
State of WebGHC, January 2019 by Will Fancher
WebGHC has undergone some significant improvements in the past year. Time has been quite scarce for all those involved, but we’ve managed to eek out some really useful progress.
Towards Interactive Data Science in Haskell: Haskell in JupyterLab by Matthias Meschede & Juan Simões
This post presents Jupyter and JupyterLab - both important ingredients of the Python ecosystem - and shows how we can take advantage of these tools for interactive data analysis in Haskell.
When Rust is safer than Haskell by Michael Snoyman
A large part of the higher safety of Haskell is its expressive type system. You can simply state more invariants, in general, in Haskell than in Rust. However, I’d like to point out a situation where Rust’s safety guarantees are in fact stronger than Haskell’s, and how the compiler naturally pushes us towards the correct, safe solution.
Galois is looking for Software Engineers/Researchers and Project Managers! We collaborate with organizations like NASA, DARPA, and Amazon Web Services to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, binary analysis, cryptographic algorithms, domain specific languages, programming languages theory, abstract interpretation, type theory, formal verification and software correctness, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome (see https://lifeatgalois.com).
Standard Chartered bank is hiring Haskell developers for Strats roles at all levels. We’re now always hiring; if you have demonstrated typed functional programming experience, and if you are interested in a position in New York, London, Singapore, or Hong Kong, please consider applying.
We’re looking for internship candidates who are enthusiastic and passionate about learning programming. Even basic familiarity with Haskell is welcome, as our developers are dedicated to helping you learn and grow as you work on projects that will be used by people in the real world.
Package of the week
This week’s package of the week is Typograffiti, text rendering library that uses OpenGL and freetype2 to render TTF font strings quickly.