Optimizations can have unexpectedly large effects when combined with caches
This post is about a non-obvious interaction between performance optimizations and LRU/time limited caching.
The latest blog posts to take off on Hacker News. 14,540 posts.
This post is about a non-obvious interaction between performance optimizations and LRU/time limited caching.
Harry Marr — Member of Technical Staff at Anthropic. Co-founded Dependabot, previously at GitHub, Monzo, and GoCardless.
Even talking about building a monolith today, is a bit taboo. It is all about microservices at the moment, and has been for a few years. But they aren’t a silver bullet…
Implementing the execution functionality of the shell
Trying out the Rust programming ecosystem as a 10+ years Python developer. How to do common programming tasks and how the tooling looks like.
I’m serious about shell startup speed. I use tmux to open and close tmux splits all day every day, so I need zsh to start quickly. I used to use frameworks like oh-my-zsh or prezto and while I was happy with the functionality they provided I wasn’t happy with their impact on my shell’s startup speed. So, what do we do…
I'm currently working on a macOS app that's built with Racket and allows the user to write small scripts to process and filter some data. While Racket is definitely my preferred language and I could easily use it for these scripts, my target audience for this app would probably appreciate a more familiar language. I…
A debugging story about a mysterious C# gzip decompression exception and what actually caused it, with investigation steps and lessons learned.
Harry Marr — Member of Technical Staff at Anthropic. Co-founded Dependabot, previously at GitHub, Monzo, and GoCardless.
Lisp REPLs are on the collective lips of the WWW lately and so I thought I’d add my little bit of chatter to the mix as well. 1
Asynchronous programming is a popular programming paradigm that allows a large number of lightweight tasks to run concurrently with very little memory overhead, compared to threads.
For web automation/testing, Selenium has been the de facto "standard" since forever. It's simple to get started with and supports almost every programming language. My problem with it has been: It's good enough, but nothing more. It doesn't work that well with modern, Javascript framework heavy sites (Angular, React
If you're interested in building a semantic search engine in Rust, this article will show you how! We'll cover building a basic engine using sentence transformers and a kd-tree.
Aliases, etc that have made rebase-based workflows in Git much less advanced feeling.
The first half introduces Rust’s language features and libraries for error handling. The second half should help you write good error handling code in Rust.
Many people keep repeating that Ruby is slow. It is. But that doesn't matter, because your database is so much slower that it is the bottleneck. So, an alternative title would be "Ruby is slow, but that doesn't matter for you."
Ben Nadel discusses one of the lessons learned from 10 years of CodePen: solve only problem at a time - a message worth amplifying.
Wikipedia cites a few different sources on what “Unix Philosophy” is. Peter Salus summarizes it as:
An eigenvalue of a square matrix $LATEX A$ is a scalar $latex \lambda$ such that $latex Ax = \lambda x$ for some nonzero vector $latex x$. The vector $latex x$ is an eigenvector of $LATEX A$ and it…
A map can always grow in memory; it never shrinks. Hence, if it leads to some memory issues, you can try different options.
Phantomderp and I have both recently been very aligned on a particular subject: being extremely angry about C ABIs and trying to fix them . Where we’re not aligned is why we’re mad about them.
You can go a long time as a JavaScript developer without ever feeling the need for generators. Hence, it’s natural to wonder: What are they good for? Why would you ever need one? What’s the point? But generators can do some neat tricks. And they may even change the way you approach certain problems.
How to disable heap (dynamic memory allocation) in an embedded application? This article goes into the details of linker files and how to detect dynamic memory allocation.
Let’s say we want to store some data on multiple drives, so that we can recover from drive failures.
While calculating certain round-trip times, here is a number I came across that is surprisingly memorable: It takes light 0.1337 seconds to travel the length of the Earth's equator via vacuum or air. Let me repeat that. It takes light "zero point leet" seconds to travel once around the equator.
A look into the hardware design of Starfish
Programming, Coffee and Indie Hacking