Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

New here?

Welcome! BoredReading is a fresh way to read high quality articles (updated every hour). Our goal is to curate (with your help) Michelin star quality articles (stuff that's really worth reading). We currently have articles in 0 categories from architecture, history, design, technology, and more. Grab a cup of freshly brewed coffee and start reading. This is the best way to increase your attention span, grow as a person, and get a better understanding of the world (or atleast that's why we built it).

14
I’ve been looking for a good solution for versioning and synchronizing my dotfiles between machines for some time. I experimented with keeping all of ~ in subversion for a while, but it never worked out well for me. I’ve finally settled on a solution that I like using git, and so this is a writeup of my workflows for working with my dotfiles in git, in the hopes that someone else might find it useful.
over a year ago

Improve your reading experience

Logged in users get linked directly to articles resulting in a better reading experience. Please login for free, it takes less than 1 minute.

More from Posts on Made of Bugs

Performance of the Python 3.14 tail-call interpreter

About a month ago, the CPython project merged a new implementation strategy for their bytecode interpreter. The initial headline results were very impressive, showing a 10-15% performance improvement on average across a wide range of benchmarks across a variety of platforms. Unfortunately, as I will document in this post, these impressive performance gains turned out to be primarily due to inadvertently working around a regression in LLVM 19. When benchmarked against a better baseline (such GCC, clang-18, or LLVM 19 with certain tuning flags), the performance gain drops to 1-5% or so depending on the exact setup.

a month ago 20 votes
Building personal software with Claude

Earlier this month, I used Claude to port (parts of) an Emacs package into Rust, shrinking the execution time by a factor of 1000 or more (in one concrete case: from 90s to about 15ms). This is a variety of yak-shave that I do somewhat routinely, both professionally and in service of my personal computing environment. However, this time, Claude was able to execute substantially the entire project under my supervision without me writing almost-any lines of code, speeding up the project substantially compared to doing it by hand.

2 months ago 31 votes
Finding near-duplicates with Jaccard similarity and MinHash

Suppose we have a large collection of documents, and we wish you identify which documents are approximately the same as each other. For instance, we may have crawled the web over some period of time, and expect to have fetched the “same page” several times, but to see slight differences in metadata, or that we have several revisions of a page following small edits. In this post I want to explore the method of approximate deduplication via Jaccard similarity and the MinHash approximation trick.

9 months ago 26 votes
Stripe's monorepo developer environment

I worked at Stripe for about seven years, from 2012 to 2019. Over that time, I used and contributed to many generations of Stripe’s developer environment – the tools that engineers used daily to write and test code. I think Stripe did a pretty good job designing and building that developer experience, and since leaving, I’ve found myself repeatedly describing features of that environment to friends and colleagues. This post is an attempt to record the salient features of that environment as I remember it.

10 months ago 20 votes
Performance engineering, profilers, and seeing the invisible

I was recently introduced to the paper “Seeing the Invisible: Perceptual-Cognitive Aspects of Expertise” by Gary Klein and Robert Hoffman. It’s excellent and I recommend you read it when you have a chance. Klein and Hoffman discuss the ability of experts to “see what is not there”: in addition to observing data and cues that are present in the environment, experts perceive implications of these cues, such as the absence of expected or “typical” information, the typicality or atypicality of observed data, and likely/possible past and future time trajectories of a system based on a point-in-time snapshot or limited duration of observation.

a year ago 24 votes

More in technology

About the time I trashed my mother's laptop

Around 2003, my mother had a laptop: the Compaq Armada 1592DT. It ran Windows Me, the worst Windows to ever exist, whopping 96 MB of RAM, and a 3 GB hard drive. My mother used it for important stuff, and I played games on it. Given the limitations of the 3 GB hard drive, this soon lead to a conflict: there was no room to store any new games! I did my best to make additional room by running the disk cleaner utility, disabling unnecessary Windows features and deleting some PDF catalogues that my mother had downloaded, but there was still a constant lack of space. Armed with a lack of knowledge about computers, I went further and found a tool that promised to make more room on the hard drive. I can’t remember what it was, but it had a nice graphical user interface where the space on the drive was represented as a pie chart. To my amazement, I could slide that pie chart to make it so that 90% of the drive was free space! I went full speed ahead with it. What followed was a crash and upon rebooting I was presented with a black screen. Oops. My mother ended up taking it to a repair shop for 1200 EEK, which was a lot of money at the time. The repair shop ended up installing Windows 98 SE on it, which felt like a downgrade at the time, but in retrospect it was an improvement over Windows Me. I had no idea what I was doing at the time, but I assume that the tool I was playing with was some sort of a partition manager that had no safeguards in place to avoid shrinking and reformatting operating system partitions. Or if it did, then it made ignoring the big warning signs way too easy. Still 100% user error on my part. If only I knew that reinstalling Windows was a relatively simple operation at the time, but it took a solid 4-5 years until I did my first installation of Windows all by myself.

9 hours ago 3 votes
Odds and Ends #65: Economic growth is core to a progressive agenda

Plus the terrifying story of what actually happened to Boeing's Starliner capsule, and a terrible Star Trek opinion.

19 hours ago 2 votes
Meta got tricky with LLM benchmarks

Oh boy, Meta released their latest llama models this weekend (I guess because they leaked, hence the rushed weekend release?), and it benchmarked quite well on LMArena. However, as Kyle Wiggers reported for TechCrunch, not all may have been on the up and up: Meta’s Benchmarks for Its

14 hours ago 2 votes
Introducing the Image Map widget: A smarter way to visualize your data

We’re excited to introduce the new Image Map Widget in Arduino Cloud! This powerful feature allows you to overlay live data onto an image, creating interactive and highly visual dashboards. Whether you’re managing a factory floor, an office space, or a piece of industrial equipment, this widget brings your data to life in a whole […] The post Introducing the Image Map widget: A smarter way to visualize your data appeared first on Arduino Blog.

12 hours ago 1 votes
VUCA Revisited: Acting Skillfully in Uncertain Times

Alas, it’s time once again to revisit VUCA. Early in the pandemic, I gave two presentations about dealing with uncertainty. Institutions were struggling to respond to COVID. Many people were freaking out. But not me: I had a conceptual framework that helped me make sense of what was going on. Now that we’re again living through uncertainty, I wanted to share what I said at the time. Turns out, I never wrote about the framework itself. Let’s correct that. When contexts shift, it’s harder to act skillfully. The end of the Cold War was such a time. The tense order that emerged after World War II had ended; military leaders had to make decisions in unfamiliar territory. In response, the U.S. Army War College produced VUCA, a framework for describing unsettling contexts. It’s an acronym of their four main characteristics: Volatility: things are changing fast and often. You may understand what’s happening, but the pace of change makes it hard to respond skillfully. Uncertainty: you may understand the challenge’s basic cause and effect, but not much else. Key knowledge might be missing, but you don’t know. Complexity: the challenge has too many factors and components to grok. You have access to information — perhaps too much to connect the dots. Ambiguity: the situation is unclear, even if you have information. Causal relationships aren’t obvious, and past experiences may not apply. These four characteristics are often rendered in a 2x2 matrix. One dimension measures the degree to which we can predict the results of our actions. The other measures how much we know. For example, if we can’t predict outcomes and lack reliable knowledge, we’re in ambiguity. If we understand the situation but things are changing rapidly, we’re facing volatility. Adapted from a diagram by Nate Bennett and G. James Lemoine in the Harvard Business Review As you may expect, different characteristics call for different responses. My understanding comes from Bob Johansen’s VUCA Prime framework, which I paraphrase here: Volatility calls for vision. Draw a clear, compelling picture of where you’re heading beyond the current turmoil. Uncertainty calls for understanding. Look past headlines to the deeper forces driving change. Complexity calls for clarity. Map the system; get a grip on the entities and relationships driving change. Ambiguity calls for agility. Take the next small step; get your bearings; correct course quickly. Keeping cool isn’t easy, but it can be done. It requires some detachment. Tune out the news and take a longer-term view. Read the Stoics. Ask yourself: what’s the worst that could happen? How much is actually under your control? How can you take care of yourself, your family, and your community? Managing and structuring information flows is crucial. You need systems that surface the right information — clear, trustworthy, timely, and aligned with your goals. Information architects can help, since our focus is designing environments that support insight and skillful action. Above all, don’t panic. Nobody guaranteed this would be an easy ride. Change is the nature of things. If you panic, you’ll freeze or thrash about; either response makes things worse. Business as usual isn’t in the cards for us, but acting skillfully can be. If you found these ideas useful, check out Johansen’s Leaders Make the Future, which offers ten skills leaders can develop to thrive in a VUCA world. Much of what I know about the subject comes from this practical, well-grounded book. (Aaand… I just realized there’s a new edition — time to re-visit!)

18 hours ago 1 votes