Parser Combinators in Elixir
Learn what parser combinators are, what they are made of, and how to make your own CSV parser using NimbleParsec, a parser combinator library written in Elixir.
The latest blog posts to take off on Hacker News. 1,517 posts.
Learn what parser combinators are, what they are made of, and how to make your own CSV parser using NimbleParsec, a parser combinator library written in Elixir.
Most beginners in programming eventually end up with the same ingratiating message: „Programming is easy, everyone can do it”, with some threatening message that people doing the gatekeeping should stop doing that. I’m here to tell you that that is not true. Programming is hard, programming is not for everyone, and…
Maslow's pyramid can help us think about what great code reviews look like.
I have an affinity for performance optimization and making software as efficient as possible. Over the years, I've encountered specific instances and common patterns that make software or computers slow. In this post, I'll shine a spotlight on some of them.
Posted by Carlton Gibson on April 6, 2021
Over the last few years, the software development community’s love affair with the popular open-source relational database has reached a…
Have you ever heard of SEMA? It’s a fairly esoteric system for measuring how good a software team is. No, wait! Don’t follow that link! It will take you about six years just to understa…
Git’s man-pages state that it’s a stupid content tracker. It’s probably the most used version control system in the world. Which is very strange, since it doesn’t describe itself as being a source control system. And in fact, you can use git to track any
Crusader Kings III is a pretty impressive game. It’s impressive not only for its official content, but also for its extensive modding…
Thoughts on the Elixir language and its Phoenix framework after two years of professional work.
Half a year ago, I joined Pleo, a FinTech startup with around 15,000 customers (we’re always hiring at Pleo!). I joined to take on and further develop the billing infrastructure. When I joined, I was actually a bit concerned about the narrowness of the new role and the new team. I mean, really… How much […]
We’re excited to share a deep dive into how our new authentication token formats are built and how these improvements are keeping your tokens more secure. As we continue to…
For a while now I’ve been telling people that I want Polypane to be prescriptive, not descriptive. In this article I want to expand on that and explain what I mean when I say “prescriptive”. I usually explain it like this: there is no shortage of tooling that will tell you everything you do wrong […]
Many people must have heard this quote (by Phil Karlton) many times: There are only two hard things in Computer Science: cache invalidation and naming things. Two days ago, Nick Tierney mentioned it …
When it rains it pours. After making a splash with D , 1 I remembered that some time ago I began an attempt to bring the GNU Modula-2 compiler to OpenBSD . Because why not? Modula-2 is a language that exists and has compiler implementations. I guess my goal is to bring all the languages and compilers to OpenBSD. And…
This isn't a late April Fools joke. (My April Fools joke that I got hired by Apple as a Swift Evangelist backfired with a profusion of congratulations.) This blog post is a kind of follow-up to some previous blog posts. Last month I wondered what's the best way to distribute Mac apps without notarization , and I…
Before getting started with tmux, let us go over some questions to see if tmux is right for you:
Kernel modules are code components that can be loaded and unloaded by the kernel when required. They are used to extend the functionality…
This is my own collection of hard-earned knowledge about how integers work in C/C++, and how to use them carefully and correctly. In this article, I try to strike a balance between brevity (easing the reader) and completeness (providing absolute correctness and extensive detail).
never leave the comfort of your home row again
The three-step framework Shopify's Data Science & Engineering team built for evaluating new search algorithms.
Great code doesn’t save you, but bad code will kill you #HoskWisdom
In 2020, I started writing a 3D game engine from scratch in C++. This is a post about how I added skeletal animation to it. Drake is in it, so buckle up.
Suppose you need to create a function for adding two numbers together in plain C. How would you write it? What sort of an API would it have?...
There’s not a whole lot on TLA+ technique out there: all the resources are either introductions or case studies. Good for people starting out, bad for people past that. I think we need to write more intermediate-level stuff, what Ben Kuhn calls Blub studies. Here’s an attempt at that. Most TLA+ properties are…