New
The latest blog posts to take off on Hacker News. 14,543 posts.
I can't believe I'm praising Tcl (2008)
So the other day I both defined Tcl procedures all by myself and used them interactively, and I liked it, to the point where it felt like some kind of local optimum. This entry is an attempt to cope with the trauma of liking Tcl, by means of rationalizing it. I'll first tell the story of my fascinating adventures, and…
Compiling a Lisp to x86-64: primitive functions
Compiling Lisp primitive unary functions to x86-64
The Stack Monoid
(Updated 2020-09-06 with pointers to related work and a bit more explanation)
Massacring C Pointers (2018)
I'm taking a break from debugging books to talk about a calamitous shitshow of textbook writing: Mastering C Pointers: Tools for Programming Power , by Robert J. Traister.
List of YouTube channels for improving web development and programming skills
Discover and get inspired, explore through hundreds of tech products.
Specter – Clojure API for immutable programming (2017)
After two years of being open source and a lot of development, Specter has reached 1.0. In this po...
Rust testing or verifying: Why not both?
Dijkstra famously dissed testing by saying “Program testing can be used to show the presence of bugs, but never to show their absence!” As if you should choose one over the other. I don’t see them as opposites but as complementary techniques that should both be used to improve the quality of your code.
Writing an Efficient Vulkan Renderer
In 2018, I wrote an article “Writing an efficient Vulkan renderer” for GPU Zen 2 book, which was published in 2019. In this article I tried to aggregate as much information about Vulkan performance as I could - instead of trying to focus on one particular aspect or application, this is trying to cover a wide range of…
React is becoming a black box
The VP of Engineering at Cognition, the applied AI lab behind Devin. Building the future of software engineering with AI.
Even in Go, concurrency is still not easy
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Programming with Categories
In this course we explain how category theory—a branch of mathematics known for its ability to organize the key abstractions that structure much of the mathematical universe—has become useful for writing elegant and maintainable code. In particular, we'll use examples from the Haskell programming language to motivate…
Using Clojure in the command line with Babashka
Kari Marttila’s Blog (e.g. cloud and Clojure related articles)
On modern hardware the min-max heap beats a binary heap
The heap is a data structure that I use all the time and that others somehow use rarely. (I once had a coworker tell me that he knew some code was mine because it used a heap) Recently I was writin…
Best Practices for Testing in Java (2019)
Modern best practices for unit tests and integration tests in Java and in general
The database I wish I had
I watched the talk " Platform as a Reflection of Values: Joyent, Node.js and beyond " by Bryan Cantrill, and I think he was able to put into words something I already felt for some time: if there’s no piece of software out there that reflects your values, it’s time for you to build that softwarefootnote:talk-time[ At…
Bits of History, Words of Advice
"Why do you jackasses use these inferior linguistic vehicles when we have something here that’s so precious, so elegant, which gives me so ...
Multi-Tenant Architectures
Multi-tenancy Application Deployment Architecture could be modeled in 4 broad ways: Separate Apps & Separate Databases Shared ...
Exploring mullender.c – A deep dive into the first IOCCC winner
This post will explore the famous winner of the first IOCCC contest, dive into the story behind the code, and even display the original source programs!
Deep Dive into PHP 8's JIT
PHP 8's Just In Time compiler is implemented as part of the Opcache extension and aims to compile some Opcodes into CPU instructions in runtime. Let's understand how it works all together.
Inventing Monads
I got into a discussion about monads recently. On a search to find some resources to share, I realized that most essays explained them with type signatures and rules. A missing ingredient to grok them, I think, is to understand the intuition behind them. How could you end up inventing monads?
Don't trust default timeouts
Modern applications don’t crash; they hang. One of the main reasons for it is the assumption that the network is reliable. It isn’t. When you make a network call without setting a timeout, you are telling your code that you are 100% confident that the call is going to succeed. Would you really take that bet? If you…