Issue 160

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

  • Announcing the Haskell Weekly podcast by Taylor Fausak

    We select interesting articles from the Haskell Weekly newsletter to talk about. Each episode uses a conversational two-host format, typically with me and another ITProTV engineer. We try to keep episodes short, so they run for about 15 minutes. We publish new episodes every week.

  • Competitive Programming in Haskell: Scanner by Brent Yorgey

    There is another common class of problems, however, which follow this pattern: “The first line of the input consists of an integer T. Each of the next T lines consists of …” That is, the input contains integers which are not input data per se but just tell you how many things are to follow.

  • Deprecating API endpoints with Servant by Ben Weitzman

    At Co-Star, we use servant to write our backend, and we’ve had a lot of success using the type of our API to help us generate tests and documentation. I wanted to extend some of servant’s behavior to help us model deprecated endpoints as well.

  • Hoogle XSS Vulnerability by Neil Mitchell

    On Friday afternoon I got an email from Alexander Gugel with the subject line “Non-persistent XSS vulnerability on hoogle.haskell.org” — never a good thing to get.

  • Profiling in Haskell for a 10x Speedup by Jake Zimmerman

    I’ll walk through the problem I was trying to solve, my slow first solution, and how I used Haskell’s profiling tools to find and fix some egregiously slow parts of the code.

  • Purely Functional Games by Gil Mizrahi

    How I built a game in Haskell — pure functional style.

  • What is a functor? by Eric Normand

    Functors are an operation that has a structure preserving property. But what is that? Are these things practical? Does it have anything to do with the real world? Of course!

  • What Is A Monad? by Steven Watson

    Monads are often a point of frustration for learners of Haskell. The question of what a monad is leads to the question of why a monad is. The question of why a monad is leads to the question of what a monad is.

  • Writing Custom Optimization Passes by Sandy Maguire

    I’ve been paying a lot of attention to performance in polysemy. Getting it to be fast has been really hard. It’s clearly possible, but for the longest time I was afraid I’d need to fork the compiler. And that didn’t seem like a thing that would attract a large-user base.

Jobs

  • Galois is hiring for a variety of roles (ad)

    Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, Red Team Lead, Software Integration Engineer.

    We collaborate with organizations like NASA, DARPA, and AWS 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, cryptographic algorithms, abstract interpretation, type theory, formal verification, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, and statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome; see lifeatgalois.com.

  • Haskell Programmer at MasterWord in Houston

Trying to hire a Haskell developer? You should advertise with us!

In brief

Package of the week

This week’s package of the week of optparse-generic, a library that auto-generates an optparse-applicative-compatible Parser from any data type that derives the Generic interface.

Call for participation

Events

North America

Europe

Asia

South America

Oceania