40 questions to ask yourself every decade(opens in new tab)
No themes match.
Latest posts from blogs I follow
Profiling is integral to any code and performance optimization. Any experience and skill in performance optimization that you might already have will not be very useful if you don't know where to apply it. So, in this article we will ...
An attempt at catharsis. This is a deeply personal blog post about the most influential project I’ve ever created: attrs, the progenitor of modern Python class utilities. I’m retelling its history from my perspective, how it begot dataclasses, and how ...
Contentful is an immensely well-featured headless content management system, but the density of its featureset can be daunting to integrate with static site generators. The great news is, Eleventy is so well-designed and modular — it doesn’t have to be ...
Okay quick disclaimer before I kick this off — this post does not cover how to use interactive Vue components in an Eleventy project. This post covers using Vue entirely server-side! The client will not receive any Vue code. All ...
The book Life of Pi, written in 2001 by Canadian author Yann Martel, tells the story of a young Indian boy fascinated by philosophy, spirituality, and religious syncretism from an early age. After a devastating shipwreck on his way to ...
This tutorial is intended for intermediate C developers who want to get some coding practice and, in the process, gain valuable insights into low-level programming and how (some) Virtual Machines operate under the hood. The reader should already be comfortable ...
Codecov’s unreliability breaking CI on my open source projects has been a constant source of frustration for me for years. I have found a way to enforce coverage over a whole GitHub Actions build matrix that doesn’t rely on third-party ...
The intended audience for this article is undergrad students who already have a good grasp of Java, or seasoned Java developers who would like to explore an in-depth analysis of various hash table implementations that use Open Addressing. The reader ...
Table of contents Contents Table of contents Code Introduction C++ (unordered_map) Java (HashMap) Python (dict) Performance: Why Size Doesn’t Matter Hash Functions Hash Collisions What makes a “Good” Hash Function? Families of Hashing Functions Division hashing Multiplicative hashing Hashing strings ...
Trying out something new: today I’m launching my own Today I Learned section. In this essay I will sum up what my plans and hopes are.
Found 99 vulnerabilities (84 moderately irrelevant, 15 highly irrelevant)
The conflict between subclassing and composition is as old as object-oriented programming. The latest crop of languages like Go or Rust prove that you don’t need subclassing to successfully write code. But what’s a pragmatic approach to subclassing in Python, ...
This post is less about teaching and more about schadenfreude amusement for you, and catharsis for me. It’s the story of how one unfortunate HTML tag kicked me off almost all search engines and my months-long way back. And why ...
Contents Introduction Working with an UCI-enabled engine from the command line Installing Stockfish (and Leela Zero) Listing supported options Changing an option Analyzing a position Writing the Java UCI Client library Opening and closing the engine process Sending commands to ...
Working around SwiftUI's CommandsBuilder limitations to conditionally show top-level menus on macOS using direct AppKit integration.
I have this weird relationship with Incredible Amounts Of Grief where, like, I’ve literally been there — I know there’s nothing to say, and nothing will heal but time. When The Bad Thing™ happened, I felt angry so often with ...
The widely used Python package cryptography changed their build system to use Rust for low-level code, which caused an emotional GitHub thread. Enthusiasts of 32-bit hardware from the 1990s aside, a vocal faction stipulated adherence to Semantic Versioning from the ...
Rendering optimizations that come naturally.
Lie and lay are infamously confusing to non-native speakers. It’s so bad that it sparked a cottage industry of click-baity articles full of sketchy ads. Since English is my third language, I stumbled a lot myself until I wrote this ...
mapneat is a library I’ve written a long time ago. I am biased. Introduction Following my previous article, I wanted to expand on the capabilities of the mapneat library. In this tutorial, I will show you how to transform an ...
Debugging and fixing a SwiftUI keyboardShortcut bug that fails when mixing SwiftUI with UIKit through reverse engineering and LLDB analysis.
mapneat is a library I’ve written a long time ago. I am biased. Introduction One of the most common challenges I’ve encountered in Software Engineering is data manipulation: taking a raw data structure, applying business logic, restructuring it, and finally ...
Implement finer control of your Git configuration.
Creating a SwiftUI button that supports both tap and long-press gestures by bridging to UIKit when SwiftUI's gesture system fails on Catalyst.
Contents Introduction Using QR Decomposition to Determine Eigenvalues Implementing the Naive Algorithm Improving the Algorithm: Practical QR with Shifts More Improvements: The Hessenberg Form But what about the Eigenvectors? References Introduction In my last two articles, I explored some fundamental ...
Contents Introduction Think of matrices as functions Matrix transformations Linear Transformations Eigenvalues and Eigenvectors Why are they “special”? Why are they important? Where to go next Introduction There are rumors saying Computer Vision Engineers consider Eigenvalues and Eigenvectors the single ...
pysert (lowercase ‘p’) is a python utility designed to generate random SQL INSERT statements from predefined templates. While its primary focus is SQL, its template-driven nature allows it to generate almost any structured format, including JSON, XML, or YAML. If ...
Contents Disclaimer Math, math The Library Source Code The data: nml_matrix Breakdown of the Structure A Note on Memory Layout Allocating / De-allocating memory for the nml_mat matrix Implementation: nml_mat_new() Implementation: nml_mat_free() Expanding the API Creating a Random Matrix Generating ...
I make sourdough bread usually at least once a week and sometimes post pictures of the result to Twitter and get asked pretty frequently about my technique. There’s a lot written about sourdough bread on the Internet these days, and ...
The absolutely best way of making a starter if you don’t already have one is to not make one at all. If you can, ask someone who already has one for a bit of theirs. Most people will be happy ...
Documenting the challenges and solutions for integrating Apple Silicon M1 Mac minis into a continuous integration system, including automation fixes and performance comparisons.
I recently* built this really cool feature for my personal website that allows me to use Netlify Functions to show my most-recently-listened-to tracks from Spotify. *It wasn’t recently, it was in July 2020, please don’t look behind the curtain. It’s ...
This morning, the atomic design GOAT Brad Frost Tweeted a question about variable naming for colors: Here’s a fun one: what variable name would you define for `rgba(0,0,0,0.9);`? I drafted up a Tweet to answer this, but it ended up ...