The Functional Style (2018)
Functional programming explained for the pragmatic programmer. Part 1. An introduction.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,837 posts.
Functional programming explained for the pragmatic programmer. Part 1. An introduction.
A merge workflow for activating multiple branches simultaneously using Jujutsu, an alternative VCS to Git.
I’ve been programming in Clojure for a long time, but I haven’t been using transducers much. I learned to mechanically transform (into [] (map f coll)) to (into [] (map f) coll) for a slight performance gain, but not much beyond that. Recently, however, I’ve found myself refactoring transducers-based code at work…
Some weird legacy behavior in JavaScript
GitLab first became the standard for self hosting git with two-thirds of the market, then became the next generation CI system, and the next step is creating Auto DevOps.
Sublime Text 2 Build 2111 is available now , with new features including indent guides, improved project support, new commands for working with HTML, and last but not least, Vintage Mode , adding support for vi key bindings.
Since I first started working on my website at age fourteen, the site has gone through many revisions, and hopefully changed for the better. This blog was originally dynamically served using a Python/Flask backend, having a custom login system and post “editor” (just an input box). One of the more strange things about…
There is a new release of Is Parallel Programming Hard, And, If So, What Can You Do About It? . This release features a number of formatting and build-system improvements by the indefatigible Akira Yokosawa. On the formatting side, we have listings automatically generated from source code, clever…
As a result of a long sequence of coincidences I entered the programming profession officially on the first spring morning of 1952 and as far as I have been able to trace, I was the first Dutchman to do so in my country. In retrospect the most amazing thing was the slowness with which, at least in my part of the…
I learned Java and C at school, I learned Python by myself and it was a relief. After 8 years working and doing side projects in Python and JavaScript (mostly web dev, Django/Flask/AngularJS/Vuejs), I am not satisfied anymore by the overall experience so I’m making Common Lisp my language of choice.I am not here…
A full overview of what Ethereum is, how it works, what it does and how to start using or building on it. Explained in simple terms.
Today, we are thrilled to announce the release of Angular v22. We continue to be proud of the work we do with each release. Our goal is to…
Note: This post and our new engineering blog can be found at lumi.dev
I’m not sure of the exact date, but 20 years ago, around now, I started my first professional programming job. It’s weird to think about having done anything for 20 years. That’s as long as all my schooling put together.
Fiber, a less known concept compared with coroutine, is a pretty powerful addition to cooperative multitasking. As a graphics programmer in game industry, I totally appreciate the great flexibility that fiber brings on the table. As a matter of fact, I feel the tech is a little bit underappreciated due to the lack of…
A closer look at non-elementary group-by aggregations
In previous posts, we covered the most popular implicit use cases. What is left to complete the picture is the mechanics of implicits itself.
If you grew up in the UK and went to school during the 1980’s or 1990’s there’s a good chance that this picture brings back fond memories:
I want terminal keypresses to Just Work. What do I mean Just Work? I mean programs in a simple orthogonal way, can determine the key that was pressed, and this model should easily map to the user's expectation.
No-one really likes engineering war stories, but this one's relevant because there's a moral to it. I've talked before about defining technical debt as technical decisions that provide immediate value, but with long-term negative impact if they aren't cleaned up. Sometimes introducing technical debt
Hi all. Here is (an extract of) a short summary paper about my current position on Software Transactional Memory as a general tool in the ...
The Pragmatic Pragmatic Programmer - Rogério Chaves
Describing the way architectures for UIs have evolved over the years, in particular the many and often misunderstood definitions for Model-View-Controller.
What if you could let Claude and Codex work together as pair programmers, talking to each other directly? One of them as the main worker and the other as a reviewer.