FP Complete

Haskell Library Audit Reports

Since December, FP Complete has been working with Cardano Foundation on an audit of the Cardano settlement layer. The audit work is ongoing, with the currently released reports available on Cardano’s website. The primary codebase we have been reviewing, cardano-sl, depends on many packages from the Haskell ecosystem. As a result, a significant portion of […]

Pantry, part 3: Specifying Dependencies

This is part three of a series of blog posts on Pantry, a new storage and download system for Haskell packages. You can see part 1 and part 2. What’s wrong with this stack.yaml file? resolver: lts-12.0 Not sure? OK, try this: resolver: lts-12.0 extra-deps: – acme-missiles-0.3 Well, that one is a bit easier to […]

Streaming UTF-8 in Haskell and Rust

Since I seem to be a one-trick pony, I decided to write yet again to compare streaming data in Haskell and Rust. This was inspired by a cool post I saw on Reddit about converting characters in the Latin alphabet into look-alikes in the Cyrilic alphabet. When reviewing the original code, I noticed that it […]

Guide to open source maintenance

This blog post is a cross post from a guide I wrote on the Commercial Haskell Github account. That URL is the authoritative location for this document. If you want to send any updates and recommendations, pull requests certainly welcome! Maintaining an open source project is not trivial. It requires not only technical skill, but […]

Pantry, part 2: Trees and keys

This is part two of a series of blog posts on Pantry, a new storage and download system for Haskell packages. You can see part 1. In March of last year, there was a bug on Hackage that went something like this: Author uploads a package tarball, let’s call it foo-1.2.3.tar.gz, at 5:00am. Both the […]

Pantry, part 1: The Package Index

Back in January, I published a two part blog post on hash-based package downloads. Some project needs at FP Complete have pushed this to the forefront recently, and as a result I’ve gotten started on implementing these ideas. I’m hoping to publish regular blog posts on the topic as I continue implementation. There are a […]

DevSecOps – Putting the Sec in DevOps

We did something very different this month for our monthly webinar. We invited Ford Winslow, CEO of ICE Cybersecurity, and the new security platform, Aeonian, to present the topic of DevSecOps, or as Ford puts it “Putting the Sec in DevOps”. Ice Cybersecurity is a strategic business partner of FP Complete and our companies are […]

Deploying Rust with Docker and Kubernetes

Deploying rust with Docker and Kubernetes Hello! My name is Chris Allen and I’m going to use a tiny Rust app to demonstrate deploying Rust with Docker and Kubernetes. Rust and Haskell apps are deployed in similar ways. Much of this is because the compilers for both languages generate native binary executables. Here are the […]

Why blockchain and cryptocurrency audits?

FP Complete now does blockchain audit services. Why have we chosen to work in this field, and what are we aiming to accomplish? Our corporate mission is to drive the successful adoption of better IT engineering tools and practices. Experience shows us again and again: quality and productivity are driven more by these substantive improvements […]

Sed: a debugging story

This blog post is a semi-complete retelling of my debugging adventures on a particularly crazy bug. Consider it a combination of fun story telling for the audience and catharsis for myself. This affects anyone trying to use AppVeyor and Stack for projects that use the network package with GHC 8.4 and up. If you want […]