Software Internals Blogs
NULL BITMAP by Justin Jaffray
Bloom Filter Sizing
blag
Rickrolling Turso DB (SQLite rewrite in Rust)
Scattered Thoughts
Go allocation probe
NULL BITMAP by Justin Jaffray
NULLBITMAPGPT
THG Tech Blog - Medium
Soteria Project Review
Scattered Thoughts
Store tags after payloads
NULL BITMAP by Justin Jaffray
Unified Memory Management
NULL BITMAP by Justin Jaffray
Caching is an Abstraction, not an Optimization
Notes on software development
Want to meet people, try charging them for it?
NULL BITMAP by Justin Jaffray
Monotone Functions and Cache Lines
Notes on software development
Debugging memory leaks in Postgres, jemalloc edition
quanttype
Compressing floating point data with Gorilla
NULL BITMAP by Justin Jaffray
Search Engine Retrieval
THG Tech Blog - Medium
Beyond Default IRQ Handling: High-Performance Packet Processing
NULL BITMAP by Justin Jaffray
Nonograms
Zaid Humayun’s Blog
The Concurrency Trap: How An Atomic Counter Stalled A Pipeline
Note: I wrote this post for Conviva. You can read the version published on Conviva’s website here
NULL BITMAP by Justin Jaffray
Edge Contractions and Join Planning
Scattered Thoughts
0053: consulting, go tips, benchmark_mode, niri, linkrot, sea of nos, llm outsourcing, books
NULL BITMAP by Justin Jaffray
Building One to Throw Away
Notes on software development
Cheerleading
Notes on software development
Debugging memory leaks in Postgres, heaptrack edition
NULL BITMAP by Justin Jaffray
Kicking the Tires on CedarDB's SQL
NULL BITMAP by Justin Jaffray
Multiplexing
Artjom Plaunov
TCP/IP in OCaml Part 2 - Concurrency Design with OCaml Multicore and EIO
In the last two sections, we went over how TUN devices work, and I showed some local network setup that allows two tun devices to forward packets between each other. In this section, I will go over an overarching sketch of the concurrency architecture for my TCP stack, and create the skeleton for the client/TCP program interaction.
quanttype
FP compression family tree
NULL BITMAP by Justin Jaffray
How To Understand That Jepsen Report
Artjom Plaunov
TCP/IP in OCaml Interlude - Connecting two TUNS
In this interlude post I go over some local network setup to allow forwarding TCP packets between two tun devices. This is a simple local network set up that allows us to test out having two separate user space programs running the custom TCP stack and establishing a connection with one another. The point with this was to have the packets actually hitting my kernel’s network stack, even in this toy implementation. Later on, I can change the local network setup if I want to have the packets be forwarded to the outside world, but I wouldn’t have to change my TUN-based TCP implementation.
NULL BITMAP by Justin Jaffray
Automating the Blue Prince Parlor Puzzle
Notes on software development
Burn your title
NULL BITMAP by Justin Jaffray
Propositional Parlor Puzzle
Artjom Plaunov
TCP/IP in OCaml Part 1 - TUN/TAP and IP Packet Parsing
As I set out to implement TCP in OCaml, I ran up against a very simple problem: where should it go? There is an existing kernel space tcp, and I want to implement my own as a user space program. The solution to this is TUN/TAP. TUN/TAP allows you to implement a user space program that can read IP packets over a virtual network device.
Notes on software development
Transactions are a protocol
Uddeshya’s Musings
My notes on CRAQ - Chain Replication with Apportioned Queries
Introduction I was reading this small summary of 3FS architecture in this blog - 3FS Performance Journal-1. In my opinion, it’s a pretty neat piece of work, and it mentioned that “Management Server” component kept track of all nodes addresses.
Transactional
SIGMOD Programming Contest Archive: In-Memory Join Pipeline (2025)
Transactional
Decomposing Transactional Systems
Every transactional system must execute, order, validate, and persist transactions.
NULL BITMAP by Justin Jaffray
Parsing is Search
Transactional
Torn Write Detection and Protection
NULL BITMAP by Justin Jaffray
Feedback Ch 5 6
Scattered Thoughts
A rough survey of compilation, recompilation, and compile-time evaluation
NULL BITMAP by Justin Jaffray
Key(anti)chains
quanttype
Storing timeseries data
Notes on software development
Things that go wrong with disk IO
Notes on software development
Phil Eaton on Technical Blogging
NULL BITMAP by Justin Jaffray
It's Time to Stop Building KV Databases
THG Tech Blog - Medium
Speaking of BGP
NULL BITMAP by Justin Jaffray
Chapter 3 & 4 of Feedback Control
Scattered Thoughts
0052: hytradboi videos and post-mortem, zest repo, no internet, on social media, my product is my garden, datafusion and clickhouse jits, books
NULL BITMAP by Justin Jaffray
Philosophy and Methodology of Experiments
Alperen Keles
Verifiability is the Limit
NULL BITMAP by Justin Jaffray
Chapters 1 & 2 of Feedback Control
Scattered Thoughts
HYTRADBOI 2025 postmortem
Uddeshya’s Musings
My experiments with WASM and OpenGL
Introduction
quanttype
Leader election with S3 and If-Match
Notes on software development
Minimal downtime Postgres major version upgrades with EDB Postgres Distributed
Transactional
Talks: Enough With All The Raft
There's better ways to replicate data than Raft.
NULL BITMAP by Justin Jaffray
More Blind Writes and Merge Operators
Scattered Thoughts
Other kinds of talks
NULL BITMAP by Justin Jaffray
What if SQL Was Informed by LSMs?
Notes on software development
From web developer to database developer in 10 years
Scattered Thoughts
0051: hytradboi program and tickets, query compilers, decorrelation encore, books, misc
NULL BITMAP by Justin Jaffray
Why Feedback Control Interests Me+Discussion Group
NULL BITMAP by Justin Jaffray
Are Correctness Conditions Descriptive or Prescriptive?
quanttype
New winds
Home on Tim Mastny
False Sharing
Scattered Thoughts
HYTRADBOI 2025 program and tickets
Artjom Plaunov
MIT Distributed Systems Pt 1. - Map Reduce and VM Fault Tolerance
I am working through the MIT distributed systems lab, and I wanted to share my experience and post on some cool things that I’ve been learning. I really appreciate courses that post all their materials online, so out of respect for the course, I wont be sharing any of my code online. I figure this will take up a big chunk of my time, however, so I want to log my journey through the course. The course is in Golang, so it will be nice to solidify my Golang skills.
Artjom Plaunov
Implementing B+ Trees On Disk With OCaml, Part 2 - Disk Layout, Memory Representation, and (De)Serialization.
Welcome back to part 2 of this series, in which we are implementing a disk backed B+ tree. In this part we will go over the B+ tree in-memory data structure, how to serialize that data structure into a disk layout, and how to deserialize the disk layout back into the in-memory node type.
Home on Tim Mastny
Tuning B+ Trees for Memory Performance
Notes on software development
Edit for clarity
NULL BITMAP by Justin Jaffray
Trampolines for SQL
Zaid Humayun’s Blog
Cache Conscious Hash Maps
Here’s a link to the code on GitHub
Notes on software development
An explosion of transitive dependencies
Notes on software development
Embedding Python in Rust (for tests)
NULL BITMAP by Justin Jaffray
A Review of Extensible Query Optimizers in Practice
Notes on software development
Logical replication in Postgres: Basics
NULL BITMAP by Justin Jaffray
A Trick That Doesn't Work and a Trick That Does
Artjom Plaunov
Implementing B+ Trees On Disk With OCaml, Part 1 - File and Storage Management
In this series we will be implementing a disk based B+ tree in OCaml. Here in part 1, we will cover the file and storage managers which we will use for our B+ tree implementation. I will start with a top down introduction that will help give an intuition for what we want out of our file/storage manager design, such that it will seamlessly integrate with the actual algorithm implementation later on. In part 2, I will go over how the B+ tree nodes are laid out on disk and serialized and deserialized between disk and the in memory node representation. Finally, part 3 will cover implementation of the B+ insertion algorithm. Beyond that there will likely be posts on implementing deletion and auxiliary operations built on top of the main insertion and deletion operations.
Scattered Thoughts
The missing tier for query compilers
quanttype
Yearnote 2024
NULL BITMAP by Justin Jaffray
Channel Sharding in Go
Notes on software development
How I run a coffee club
NULL BITMAP by Justin Jaffray
Coupled Code is Cool
blag
Collection of insane and fun facts about SQLite
Transactional
Personal: Time Tracking in Obsidian
Notes on software development
Picking up volleyball in NYC with Goodrec and New York Urban
Uddeshya’s Musings
Go-Prequel: POC for google’s prequel load balancer
Introduction
quanttype
Weeknote 19: ADRs record decisions
blag
How bloom filters made SQLite 10x faster
Home on Tim Mastny
Why Branch Prediction Needs Real Data
quanttype
Weeknote 18: Code comments
blag
In search of a faster SQLite
Artjom Plaunov
Getting Acquainted with LLVM, Part 4
Part 4 covered two big topics: registering optimization passes and setting up a JIT to compile our code on the fly. Challenge #5 - Find Examples for Optimization Passes.
Artjom Plaunov
Getting Acquainted with LLVM, Part 3
Before moving onto chapter 4, let’s tinker with the code we have so far. I am posting some easy challenges here (and the solutions will be posted as well shortly).
Artjom Plaunov
Getting Acquainted with LLVM, Part 2
Hello again! In the last blog post: Getting Acquainted with LLVM Codegen Part 1, we split up the code from the tutorial into separate modules, and also got rid of the global LLVM context, moving it locally to the codegen module. This blog post will continue the tutorial, and we will add some extensions to the code.
Artjom Plaunov
Getting Acquainted with LLVM, Part 1
I am currently looking at chapter 3 of the LLVM Kaleidoscope Language tutorial, where a simple language called Kaleidoscope is implemented to learn about how LLVM works. Here is a link to the tutorial: LLVM Tutorial Chapter 3.
quanttype
Weeknote 17: Caching Docker builds on GitHub Actions
blag
Galloping Search
Transactional
Notes On: Disaggregated OLTP Systems
Aurora, Socrates, PolarDB, and Taurus.
quanttype
Weeknote 16: Late code review
Alperen Keles
Tip Sistemleri Hakkında
blag
Building a distributed log using S3 (under 150 lines of Go)
Home on Tim Mastny
Visualizing CPU Pipelining
Notes on software development
1 million page views
Scattered Thoughts
0050: smolderingly fast b-trees, serious fun, what is the point of an online conference, it's ok to be afraid, HYTRADBOI progress, no other progress, vancouver.systems, not the incentives, llm garbage, books
quanttype
Weeknote 15: Technology radar
blag
Zero Disk Architecture
Paul Khuong: some Lisp
VPTERNLOG: when three is 100% more than two
Alperen Keles
Printf Debuggers for Free
None
CMake: The Good, The Bad, The Weird
Transactional
Modern Hardware for Future Databases
quanttype
Weeknote 14: Throwing it away
None
An idea for C++ Mixins
Scattered Thoughts
It's ok to be afraid
quanttype
Weeknote 13: Deterministic Simulation Testing
blag
PSA: Most databases do not do checksums by default
blag
PSA: SQLite does not do checksums
None
Thoughts on Logging
Transactional
How to Learn: Userland Disk I/O
Filesystems, file IO, and durability.
Notes on software development
Exploring Postgres's arena allocator by writing an HTTP server from scratch
Notes on software development
Effective unemployment and social media
quanttype
Weeknote 12: In the weeds
blag
Disaggregated Storage - a brief introduction
Notes on software development
Checking linearizability in Go
Scattered Thoughts
What is the point of an online conference?
quanttype
Weeknote 11: Weeknotes
Transactional
SIGMOD Programming Contest Archive: Hybrid Vector Search (2024)
Transactional
SIGMOD Programming Contest Archive: Approximate K-nearest-neighbor Graph Construction (2023)
Transactional
SIGMOD Programming Contest Archive: Blocking System for Entity Resolution (2022)
quanttype
Weeknote 10: Prototyping
Scattered Thoughts
Serious fun
quanttype
Weeknote 9: EuroRust 2024
Zaid Humayun’s Blog
Async Runtimes Part III
Here’s a link to the code on GitHub.
Scattered Thoughts
0049: hytradboi 2025, consulting, zest progress, labeled continue, bet against sql, zero-cost costs in debug, packed memory arrays, papers, books
Notes on software development
Intuitions for Distributed Consensus by Phil Eaton
quanttype
Weeknote 8: Feedback
Scattered Thoughts
Smolderingly fast b-trees
quanttype
Weeknote 7: Memray + k8s
Notes on software development
Build a serverless ACID database with this one neat trick (atomic PutIfAbsent)
quanttype
Weeknote 6: Heart of Clojure
Stevan's notes
Scheduling threads like Thomas Jefferson
Notes on software development
Be someone who does things
Scattered Thoughts
HYTRADBOI 2025
Zaid Humayun’s Blog
Async Runtimes Part II
Here’s a link to the code on GitHub
quanttype
Weeknote 5: Broken Input
quanttype
Weeknote 4: Debugging Tools
quanttype
Weeknote 3: Object Storage
Transactional
SIGMOD Programming Contest Archive: Entity Resolution (2021)
Scattered Thoughts
0048: zest progress, zest ordering, wasm alignment, umbra papers, future of fast code, new internet, books, other stuff
Transactional
SIGMOD Programming Contest Archive: Entity Resolution (2020)
Transactional
Erasure Coding for Distributed Systems
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
quanttype
Weeknote 2: Developer Experience
Notes on software development
Obsession
Notes on software development
What's the big deal about Deterministic Simulation Testing?
quanttype
Weeknote 1: Schema Evolution
Transactional
Database Startups
Stevan's notes
Parallel property-based testing with a deterministic thread scheduler
Zaid Humayun’s Blog
Async Runtimes
Here’s a link to the code on a GitHub repo
Transactional
Data Replication Design Spectrum
Consistent replication algorithms can be placed on a sliding scale based on how they handle replica failures. Across the three common points on this spectrum, the resource efficiency, availability, and latency are compared, providing guidance for how to choose an appropriate replication algorithm for a use case.
Notes on software development
Delightful, production-grade replication for Postgres
Scattered Thoughts
0047: babys second wasm compiler, zig honggfuzz, values can be values, dont look UB, surely you can be serious, other links, books
Scattered Thoughts
Baby's second wasm compiler
Notes on software development
A reawakening of systems programming meetups
Stevan's notes
The sad state of property-based testing libraries
Notes on software development
A write-ahead log is not a universal part of durability
Alperen Keles
Puzzles as Algorithmic Problems
Alperen Keles
Yazılımda Tecrübenin Anlamsızlığı
Zaid Humayun’s Blog
Distributed Transactions With Percolator
This post covers a course that is part of TiDB’s talent plan on building a simple implementation of Percolator. You can find the course here
blag
Why does SQLite (in production) have such a bad rep?
blag
SQLite Slaps
Zaid Humayun’s Blog
Building An LSM Engine Part I
I’m writing the posts in this series based on a course I completed. I can’t recommend the course highly enough. If you’re actually interested in really intuiting an LSM engine, I recommend you do the course yourself.
Notes on software development
The limitations of LLMs, or why are we doing RAG?
Notes on software development
Confusion is a muse
Transactional
SIGMOD Programming Contest Archive: Sorting (2019)
Transactional
Building BerkeleyDB: Introduction
Welcome to the B-Tree tutorial.
Transactional
SIGMOD Programming Contest Archive: Join Processing (2018)
Transactional
SIGMOD Programming Contest Archive: Streaming N-Gram Filter (2017)
Scattered Thoughts
Ruminating about mutable value semantics
Transactional
SIGMOD Programming Contest Archive: Shortest Path (2016)
Transactional
SIGMOD Programming Contest Archive: Transaction Processing (2015)
Transactional
SIGMOD Programming Contest Archive: Social Network Graph Processing (2014)
Transactional
SIGMOD Programming Contest Archive: Streaming Full Text Search (2013)
Alperen Keles
Solving Algorithmic Problems: Painting a Grid
Transactional
SIGMOD Programming Contest Archive: Multi-dimensional Indexing (2012)
Notes on software development
How I run a software book club
Transactional
SIGMOD Programming Contest Archive: Durable Main-Memory Index Using Flash (2011)
Transactional
SIGMOD Programming Contest Archive: Distributed Query Engine (2010)
Zaid Humayun’s Blog
Race Conditions & Data Races
I’ve been using Rust at work for the last few months and keep hearing about “fearless concurrency” in Rust. I’m still not entirely sure what that means but I mistakenly assumed that it meant that race conditions were impossible in Rust. This is obviously wrong, but it took me a while to understand why.
Notes on software development
Implementing MVCC and major SQL transaction isolation levels
Scattered Thoughts
0046: zest syntax, zest progress, sponsors-only repos, future compilers, error-handling implementations, suboperators, why we drive
Transactional
SIGMOD Programming Contest Archive: Main Memory Transactional Index (2009)
Uddeshya’s Musings
Mathematical Intuition of Phi φ Accrual Failure Detection
This post is migrated version of the one already published on Medium.
quanttype
paketoi 0.1
Scattered Thoughts
Zest: syntax
Transactional
Calling OCaml from C
None
Slayer Shock
None
The Alone Time
Alperen Keles
Introducing Devy, written using Devy!
Notes on software development
What makes a great technical blog
Transactional
Building BerkeleyDB: Point Reads
Support for searching down the tree in search of a single value.
Transactional
Building BerkeleyDB: API Basics
Opening and closing databases as a BerkeleyDB ABI-compatible library.
Notes on software development
A paper reading club at work; databases and distributed systems research
Scattered Thoughts
0045: unexplanations, business things, zest progress, internal consistency repro, why murat blogs, compiler books + papers, compiling sql to wasm, other books
quanttype
A toolbox of methods
Scattered Thoughts
Notes on compiler IRs
Notes on software development
Finding memory leaks in Postgres C code
Alperen Keles
Designing A Cryptic Language Puzzle
Scattered Thoughts
Miscellaneous ideas
Scattered Thoughts
How to trade software for small money?
Scattered Thoughts
Unexplanations: sql is syntactic sugar for relational algebra
Notes on software development
Zig, Rust, and other languages
Scattered Thoughts
Unexplanations: relational algebra is math
Notes on software development
First month on a database team
Zaid Humayun’s Blog
Build You A Raft - Part II
This post is a follow up to my previous post about how to implement the Raft consensus protocol in Rust. In the previous post I went through the basics of how to set up the Raft cluster and implement the logic required for the RPC’s.
Stevan's notes
Towards zero-downtime upgrades of stateful systems
Alperen Keles
Solving Algorithmic Problems in The Wild
Transactional
Building BerkeleyDB: Entry Format
Our next goal is to be able to walk the tree, and print out the values stored in the B-Tree.
blag
Now
blag
Learning C
blag
Snapshot Testing
quanttype
GitHub's PRs could be better
Scattered Thoughts
Zest: dialects and metaprogramming
Scattered Thoughts
0044: zest progress, unexplanations, generic dilemma, bitc retrospective, adversarial memory safety, done list, tiny muffins, anti-anti-spam, happiness, daily rituals, other books
Zaid Humayun’s Blog
Build You A Raft - Part I
What Is Raft?
Transactional
Building BerkeleyDB: Page Format
Support for parsing and printing information contained in the header for BerkeleyDB pages.
Scattered Thoughts
Unexplanations: query optimization works because sql is declarative
Uddeshya’s Musings
Krafty Raft: Deciphering KRaft consensus — 1
My attempt to decipher the Raft whitepaper and how KRaft implementation adheres to the raft philosophy and techniques.
blag
Win: contribution to libSQL (SQLite) codebase
Notes on software development
An intuition for distributed consensus in OLTP systems
Scattered Thoughts
Zest: notation and representation
None
What Moves the Dead
quanttype
Creating AWS Lambda zip files with Pex
Alperen Keles
Afet Anında Doğru Bilgiye Ulaşım
Stevan's notes
Parallel stream processing with zero-copy fan-out and sharding
Scattered Thoughts
2023
Scattered Thoughts
0043: 2023, debog, never sort, critique of sql, status game, more fuel you
quanttype
Yearnote 2023
Uddeshya’s Musings
Porting Postgres histograms to MySQL (MariaDB): Part 2
Welcome to part 2 of the series, in this post, we’ll discuss implementing a new histogram style inspired by Postgres in MySQL for estimating row selectivity.
Uddeshya’s Musings
Porting Postgres histograms to MySQL (MariaDB): Part 1
A more accurate title would’ve been porting Postgres’ conditional selectivity to MySQL, but you’d ask me what’s conditional selectivity then! This blog post series will explain both.
Notes on software development
Writing a minimal in-memory storage engine for MySQL/MariaDB
Notes on software development
Make your own way
Home on Tim Mastny
A* Tricks for Videogame Path Finding
Transactional
S3-Compatible Cloud Storage Cost Calculator
Alperen Keles
The Lies About Abstraction
Scattered Thoughts
0042: consulting lessons, there are no strings on me, buttondown, focus goof, jsfuck, 1ml
Home on Tim Mastny
Debugging MIT 6.824: Distributed Systems
Alperen Keles
Software Demystified: How does a Text Box Work?
Uddeshya’s Musings
Bustub’s extendible hash tables (CMU-15445)
Welcome to my take on the implementation of extendible hash tables (minus the code btw, owning to the educational policies)
Scattered Thoughts
There are no strings on me
Notes on software development
Exploring a Postgres query plan
Alperen Keles
Yazılım Projeleri: Kapsamlı Rehber
Scattered Thoughts
0041: columnar kernels in go, go grouches, column sketches, why user-mode threads, gross margins vs open source, celebrity worship
Alperen Keles
Algoritmik Problemler: Kapsamlı Rehber
Alperen Keles
Some Thoughts on Academia vs Industry(with a focus on Computer Science)
Notes on software development
Writing a storage engine for Postgres: an in-memory Table Access Method
quanttype
Do not use requirements.txt
Scattered Thoughts
Columnar kernels in go?
Notes on software development
io_uring basics: Writing a file to disk
Notes on software development
Go database driver overhead on insert-heavy workloads
Notes on software development
Intercepting and modifying Linux system calls with ptrace
Scattered Thoughts
0040: olap survey, lobster, feldera, innovation, wizard papers, umbra papers, olap papers
Scattered Thoughts
0040.1: meta in myanmar
Scattered Thoughts
A shallow survey of OLAP and HTAP query engines
Notes on software development
How do databases execute expressions?
Transactional
Why Full Text Search is Hard
THG Tech Blog - Medium
Morello and memory pools
THG Tech Blog - Medium
Using Capabilities
None
Ashes: Afterglow
Stevan's notes
Visualising datastructures over time using SVG
Notes on software development
Eight years of organizing tech meetups
Scattered Thoughts
0039: implementing interactive languages, baby's first wasm compiler, zig 0.11, attack of the killer features, zed, attention span, psychology's loss, privatizing sovereignty
Scattered Thoughts
Baby's first wasm compiler
Scattered Thoughts
Implementing interactive languages
Notes on software development
Thinking about functional programming
Scattered Thoughts
0038.1: consulting
Alperen Keles
Hurdles of Designing A Layout Model
None
Ashes 2063 Review
Scattered Thoughts
0038: cheap compilation, mvs-to-wasm, automatically isolating bugs, mastodone, other stuff
Uddeshya’s Musings
The curious case of MongoDB cache evictions
MongoDB is an extremely popular no SQL database solution with an interesting cache architecture. Tons of projects use MongoDB in production including ours at GoTo Financial. It has been working perfectly for quite some time until came to a point when it suddenly wasn’t and this small post is all about our misadventures with MongoDB.
Alperen Keles
Learner’s Guide to Functional Programming#0: Sum Types, Booleans and Naturals in Javascript
Alperen Keles
Extracting Signals: Playing The Inverse Waldo Game
Notes on software development
We put a distributed database in the browser – and made a game of it
None
Baby's second garbage collector
Alperen Keles
Sinyalleri Ayrıştırmak
None
Garbage Collection Handbook
THG Tech Blog - Medium
Designing Test Automation
None
What I wished I knew when learning C
Scattered Thoughts
0037: dynamic mutable value semantics, interior pointers, uninterning, functionless effects, papers, books
Uddeshya’s Musings
Pushing Redis Sentinels to their limit
Script and tips on how to set up multiple master-replica Redis instances and multiple Redis sentinels to monitor them.
Notes on software development
Metaprogramming in Zig and parsing CSS
Alperen Keles
The Technical Pie (Yet-Another-Tech-Debt-Analogy)
Alperen Keles
Visa-Exclusion as A Form of Inequality
Alperen Keles
Learner’s Guide to Dynamic Programming#2
Alperen Keles
Learner’s Guide to Dynamic Programming#1
Scattered Thoughts
0036: typescript, papers, books
quanttype
Recipes for updating poetry.lock
Notes on software development
Implementing the Raft distributed consensus protocol in Go
Notes on software development
My favorite software subreddits
Notes on software development
Two books I recommend to developers
quanttype
Branchless git workflows
Transactional
How to Learn: Philosophy of How to Learn
The background and context on why the groupings exist the way they do, and thedifferent sorts of pages you’ll find in this section. But, this is allphilosophical waxing, so quite skippable.
Transactional
How to Learn: Consensus
Paxos, Raft, and all their flavors, variations, and alternatives.
Transactional
RDMA: Soft-RoCE Requires a Specific IPv6 Address
Scattered Thoughts
0035: back to the shack
Alperen Keles
Learner’s Guide to Coq Theorem Prover#1
blag
Errata in Hekaton MVCC paper
blag
Internet is wholesome: MVCC edition
Scattered Thoughts
What is a database?
Alperen Keles
A Short Story of Inequality
Alperen Keles
2ClickMail: 2 Tıkta Dünyanı Güzelleştir
Alperen Keles
2ClickMail: 2 Clicks to Change
Andreas Kling
Making myself uncomfortable again
In early 2019, some months after completing a rehab program for drug addiction, I was in a very open-minded headspace where I wanted to challenge myself and find ways to improve as a person.
Andreas Kling
MutexProtected: A C++ Pattern for Easier Concurrency
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
Andreas Kling
Excellence is a habit, but so is failure
We often hear that making small incremental improvements every day can lead to great things. This popular piece of advice rings true, and it’s a powerful reminder to keep pushing ourselves forward.
Andreas Kling
How SerenityOS declares ssize_t
This post explores one of my favorite hacks in SerenityOS. I don’t recommend doing this in your codebase, but it has worked for us so far. :^)
Andreas Kling
15 Minutes Every Day
Someone once suggested that I set aside a small portion of my income every month. I’ve been doing this for years with an automatic bank transfer so I can’t mess it up.
Alperen Keles
Some Thoughts on Academia vs Industry(with a focus on Computer Science)
Scattered Thoughts
0034: perf handover, compaction unchained, crash harder, sketching the query engine, focus catchup, android update policies, legopunk, a world without email, nobody cares, segcache, bloomRF, existential consistency, ssd parameters, fantastic ssd internals
Notes on software development
Errors and Zig
Alperen Keles
Where did all the writers go?
None
Horrorstor
Alperen Keles
Introduction to Property Based Testing
Stevan's notes
Elastically scalable thread pools
Scattered Thoughts
0033: table sizing, bench harder, wasm first steps, sycl vancouver, breathing for warriors, move your dna, the molecule of more, how to decide, slouching towards utopia
Stevan's notes
Pipelined state machines
Stevan's notes
Hot-code swapping à la Erlang with Arrow-based state machines
Alperen Keles
AfetBilgi’nin Hikayesi.
Notes on software development
Notes from Neal Gabler's Walt Disney
Stevan's notes
Deploying and restarting state machines using supervisor trees
Stevan's notes
Simulation testing using state machines
blag
It is becoming difficult for me to be productive in Python
Scattered Thoughts
0032: undroppable tombstones, forest fuzzer, manifest race, hash_log, zig coercions, zig pointer hops, zig object notation, domain knowledge, built from broken, database internals, papers
Notes on software development
Lessons learned streaming building a Scheme-like interpreter in Go
Home on Tim Mastny
How Garbage Collection works in Crafting Interpreters
Notes on software development
An effective product manager
quanttype
Yearnote 2022
Alperen Keles
Roadmap of Concepts in Functional Programming
Stevan's notes
Erlang's not about lightweight processes and message passing...
Notes on software development
The year in books: 2022
Stevan's notes
Working with binary data
Stevan's notes
State machines with of async I/O
Scattered Thoughts
2022
Scattered Thoughts
0031: 2022, systems distributed, random ids, deleting tombstones, disorderly compaction, juggling blocks, code review woes, holiday shutdown, searching for implementors, everything is copy, sharing the page cache after fysncgate, 9/10 climbers, rise and fall of peer review, real-world concurrency
Notes on software development
Favorite compiler and interpreter resources
Notes on software development
General book recommendations
Notes on software development
In response to a frontend developer asking about database development
Paul Khuong: some Lisp
Fixing the hashing in "Hashing modulo α-equivalence"
Home on Tim Mastny
Remotely connecting to Windows 10 with an iPad
Alperen Keles
Yarım Kalan Projeler#3: Fact Checker’s Tool
Alperen Keles
Yarım Kalan Projeler#2: Learning from Learners
Alperen Keles
Yarım Kalan Projeler#1: CengBook
Transactional
Concurrent Operation Diagram Generator
Scattered Thoughts
0030: lsm perf, colorblind concurrency, tracing, evacuating preimp, reading, fixing my shoulders
Notes on software development
Is it worth writing about?
Notes on software development
A Programmer-Friendly I/O Abstraction Over io_uring and kqueue
Notes on software development
Writing a SQL database, take two: Zig and RocksDB
Scattered Thoughts
0029: san francisco, seattle, tigerbeetle, studying, links
Notes on software development
A minimal RocksDB example with Zig
Andreas Kling
How I make a living working on SerenityOS
This post describes in detail how I support myself while working on the SerenityOS project.
Alperen Keles
A Brief Essay on Change
Alperen Keles
Seçimler v2
Notes on software development
A database without dynamic memory allocation
Scattered Thoughts
0028: HYTRADBOI jam, sqllogictest in a week, how safe is zig again, rr on alder lake, google maps jank, links
Notes on software development
A minimal distributed key-value database with Hashicorp's Raft library
Andreas Kling
Ladybird: A new cross-platform browser project
This post describes the Ladybird browser, based on the LibWeb and LibJS engines from SerenityOS.
Scattered Thoughts
0027.1: hytradboi jam
Scattered Thoughts
0027: preimp, framework, dotfiles and backups, links
Notes on software development
What's the big deal about key-value databases like FoundationDB and RocksDB?
Notes on software development
SQLite has pretty limited builtin functions
Scattered Thoughts
0026: break, preimp essay, focus + clojure, zed experiments, decorrelation and nested relations, bunny, sqlite mode, reading, links
Notes on software development
Container scheduling strategies for integration testing 14 different databases in Github Actions
Alperen Keles
Doktorada 1 Yıl Sonunda Bazı Görüşler
Paul Khuong: some Lisp
Plan B for UUIDs: double AES-128
Notes on software development
Implementing a simple jq clone in Go, and basics of Go memory profiling
Scattered Thoughts
0025: preimp, focus + mach, emergent ventures, clockwork labs, success, hytradboi ideas, zig debugging tips, dev-setup.sh, clojurescript blues, analogies for end-user programming, half-arsed workflows, javascript vs serialization, links
quanttype
SQL, Clojure, and editor support
quanttype
What does `identical?` do?
Notes on software development
One year as a solo dev building open-source data tools without funding
Transactional
Darwin’s Deceptive Durability
A reminder that macOS does not respect the usual ways of making data durable on disk.
Paul Khuong: some Lisp
Hacking tips for Linux perf porcelain
Scattered Thoughts
0024: HYTRADBOI postmortem, HYTWACFI?, preimp, emergent ventures, data and reality, merkle search trees, readyset, julia compilation times
blag
MongoDB secondary only index
Andreas Kling
Memory safety for SerenityOS
This post describes how we’re going to achieve memory safety in SerenityOS.
Notes on software development
Let's build a distributed Postgres proof of concept
quanttype
Tasks of a schema migration tool
Notes on software development
SQLite in Go, with and without cgo
blag
Introducing CaskDB – a project to teach you writing a key-value store
quanttype
Schema migrations and avoiding downtime
Scattered Thoughts
HYTRADBOI 2022 postmortem
Notes on software development
HTML event handler attributes: down the rabbit hole
Scattered Thoughts
0023: HYTRADBOI teaser, dida vs datalogui, preimp cruft, dbsp, links etc
Notes on software development
Interview With Phil of DataStation
Notes on software development
Surveying SQL parser libraries in a few high-level languages
quanttype
Clojure and what could've been
Scattered Thoughts
The shape of data
Scattered Thoughts
0022: preimp, shape of data, hytradboi progress, office hours, in nyc, riffle, cue, technical dimensions, js compound keys, hop
Notes on software development
Writing a document database from scratch in Go: Lucene-like filters and indexes
THG Tech Blog - Medium
Linux kernel & driver exploration
Transactional
A Survey of Database TLS Libraries
Alperen Keles
Doktoramın İlk 6 Ayı Nasıl Geçti? Yoğun, Yorgun Ama Mutlu.
Notes on software development
Speeding up Go's builtin JSON encoder up to 55% for large arrays of objects
THG Tech Blog - Medium
Fingerprinting Network Packets
Scattered Thoughts
0021: hytradboi schedule + tickets, imp v3 ideas, real world of technology, changing minds, essence of software, typed image-based programming with structure editing, fosdem 2022, introspecting async
Notes on software development
SMTP protocol basics from scratch in Go: receiving email from Gmail
Notes on software development
The world of PostgreSQL wire compatibility
Scattered Thoughts
0020: hytradboi, milestones, data soup, airtable, self-hosting
Notes on software development
How to recommend books, or, stop recommending SICP
Alperen Keles
Doktora Kabulleri: Kapsamlı Rehber
Scattered Thoughts
0019: Refactor
Alperen Keles
Hatırlamak
Notes on software development
Bootloader basics
Scattered Thoughts
0018: last reflections, why start a new database conference, 2021 retrospective, imp schemaless db + crdt, office hours, internal inconsistency in the wild, rss feeds, salsa needs finite collections, tiddlywiki vs unigraph, multidimensional indexes, arrow, just don't fsync, testing distributeds systems, tigerbeetle perf demos, web3, explicit formal structure, zig doctests, rust arenas, semidirect products of crdts, single-program distributed systems, sqlite qpsg, valhalla, mundanity of excellence, to mmap or not to mmap, libgavran, relational e-matching
quanttype
Yearnote 2021
Alperen Keles
Lokasyon Bazlı Ödeme Hakkında Bazı Düşünceler
Notes on software development
dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
Alperen Keles
Proje Günlükleri: CVDL(CV Description Language)#1
Scattered Thoughts
Imp: heterogenous types
Notes on software development
Analyzing large JSON files via partial JSON parsing
THG Tech Blog - Medium
Remote Access
Notes on software development
The year in books: 11 to recommend in 2021
blag
Recurse Center: Winter Break
Scattered Thoughts
2021
Notes on software development
Writing a minimal Lua implementation with a virtual machine from scratch in Rust
Paul Khuong: some Lisp
Bounded dynamicism with cross-modifying code
Scattered Thoughts
Coding
Transactional
Deterministic Simulation Testing: BUGGIFY
When application code provides high-level fault injection points, fuzzing becomes significantly more effective.
Scattered Thoughts
Why start a new database conference?
Notes on software development
Running SQL Server in a container on Github Actions
Scattered Thoughts
0017: hytradboi updates, imp stonks, misparaphrasing oracle, technical books, rum, creator economy, friend groups, ub, omg design principles, zig build, fossil and indexes, flatpak, skiplang, convex, fuzzing beyond testing, tigerbeetle dev videos, wafl
blag
Recurse Center Day 24: Hacking Go compiler to add a new keyword
THG Tech Blog - Medium
Anatomy of DDoS attacks
blag
Recurse Center Day 20: Django v4 upgrade (from v1)
blag
Recurse Center Day 19
Home on Tim Mastny
Writing R tutorials with GPT-3
blag
Recurse Center Day 18
Scattered Thoughts
Testing
Scattered Thoughts
Writing
blag
Recurse Center Day 17
blag
Recurse Center Day 16: Open Source
Notes on software development
Implementing zip archiving in Golang: unzipping
Alperen Keles
Amerika’da İlk 3 Ayım Nasıl Geçti? Bu Sefer Oldu Gibi.
blag
Recurse Center Day 15: B Tree Algorithms
blag
Recurse Center Day 14: NoSQL Transactions
blag
Recurse Center Day 13: Why 'Raft'?
blag
Recurse Center Day 12: Isolation Anomalies
blag
Recurse Center Day 11: B Tree Insertions
Scattered Thoughts
0016: dida validator and debugger, focus selector perf and async children, emotional management, speed matters, moving faster, have you tried rubbing a database on it, handmade highlights, airtable scripts, bank python, napa, pollen, against markdown, zig-snapshots, exhaustive test inputs, gf, nixos debug symbols, duckdb blog
blag
Recurse Center Day 10: Learning Distributed Systems
Notes on software development
Benchmarking esbuild, swc, tsc, and babel for React/JSX projects
blag
Recurse Center Day 9: Papers We Love
blag
Recurse Center Day 8: B Tree Fill Factor (Part 2)
blag
Recurse Center Day 7: Basics of ncurses
Alperen Keles
Learner’s Guide to Property Based Testing#1
blag
Recurse Center Day 6: B Tree Root
Alperen Keles
Introduction to Learning from Learners
blag
Recurse Center First Week
Home on Tim Mastny
Why I Use Gumshoe, not D&D, for Role-playing Investigations
blag
Recurse Center Day 5: Garbage Collection Algorithms
blag
Recurse Center Day 4: B Tree fill factor
Home on Tim Mastny
How Game Mechanics Create Tension
blag
Recurse Center Day 3: Hammock Driven Development
blag
Recurse Center Day 2: BTree Node
blag
Recurse Center Day 1: init
Scattered Thoughts
Emotional management
Notes on software development
Building a fast SCSS-like rule expander for CSS using fuzzy parsing
Notes on software development
Exploring PL/pgSQL part two: implementing a Forth-like interpreter
blag
What I want to do at Recurse Center
Notes on software development
Exploring PL/pgSQL: Strings, arrays, recursion, and parsing JSON
Scattered Thoughts
Moving faster
Notes on software development
Experimenting with column- and row-oriented datastructures
Alperen Keles
Amerika’da İkinci Ayım Nasıl Geçti? Bilinmezlikten Bilinirliğe Bir Yolculuk.
Scattered Thoughts
Speed matters
Notes on software development
Notes on running Electron
Scattered Thoughts
2021 Q3 roundup
Scattered Thoughts
0015: imp internals, reflections, precedence, make mode, mutant, q3, error recovery, tonsky ui, subtext 10, factfulness, benchmarking advice, dependency hubs, independent research, zig wayland, retool, observable dependencies, ugly buildings, without scihub, wasm virtual memory, huawei breakdown, infrastructure langauges, stencil vectors, chiX
Scattered Thoughts
Better operator precedence
Scattered Thoughts
Setting goals
Scattered Thoughts
Things unlearned
Alperen Keles
Toplu Mail Linki Nasıl Hazırlanır?
Alperen Keles
Amerika’da İlk Ayım Nasıl Geçti? Öğretici, Şaşırtıcı Derecede Dürüst Bir Anı Defteri.
Scattered Thoughts
Reflections on a decade of coding
Scattered Thoughts
On bad advice
Notes on software development
Enumerating and analyzing 40+ non-V8 JavaScript implementations
blag
Accepted to the Recurse Center!
- Blog
NixOS Configuration with Flakes
Scattered Thoughts
Thoughts on benchmarking streaming systems
Scattered Thoughts
Focus: text
Scattered Thoughts
Focus: rendering
Scattered Thoughts
Focus: intro
Scattered Thoughts
0014: imp live repl + syntax + errors, focus highlighting + squigglies, dida nop, web woes, undrafting, rel, oracle encore, chidb, pinebook touchpad, toplev, use of a life, imgui accessibility, wheel reinvention jam, chibicc, files vs web silos, handwritten parsers, perf ninja
quanttype
Split tokens in Clojure
Scattered Thoughts
Imp: live repl
Notes on software development
Writing a simple JSON library from scratch: a tour through modern C++
Notes on software development
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
Scattered Thoughts
0013: till death do us part, minimum wage, dida free, implicit ordering in relational languages, ultralearning, responses to against sql, oracle decorrelation, gede improvements, antisponsoring, convivial design heuristics, knowledge transfer, crafting databases, rust complexity, antitrust, gelly, shakti, lumosql, anti-marketing, NAAL, ledger of harms, tonsky icfp, debugging stories
Scattered Thoughts
Implicit ordering in relational languages
Notes on software development
Practical? Common Lisp on the JVM: A quick intro to ABCL for modern web apps
Alperen Keles
The Story of Deviation and Returning
Alperen Keles
ODTÜ’de Bilgisayar Mühendisliği: Nedir? Ne Değildir?
Scattered Thoughts
Ultralearning
blag
Towards Inserting One Billion Rows in SQLite Under A Minute
Notes on software development
Writing an efficient object previewer for JavaScript
Alperen Keles
Vermek ve Almak: İlişkilere Yeni Bir Bakış Açısı
Scattered Thoughts
Against SQL
Scattered Thoughts
2021 Q2 roundup
Scattered Thoughts
0012: dida wasm api + indexes + reduce, food and carbon emissions, async rust, handmade seattle, ideas matter, tools for thought and dida animations, redpanda wasm, live 2021, opportunity costs of twitter, work vs jobs, sourcehut simplicity, writing tools faster, ec2 trends, the state of academia
Notes on software development
React without webpack: fast path to a working app from scratch
Home on Tim Mastny
Adding Integers in Logarithmic Time
Notes on software development
Controlled HTML select element in React has weird default UX
Notes on software development
Leaders, you need to share organization success stories more frequently
Alperen Keles
Görüşürüz ODTÜ!
Notes on software development
Languages you can run in the browser, part 1: Python, JavaScript, SQLite
Scattered Thoughts
0011: dida release, DD reading, antirez and small tech, reactive ui, how to test, doom vs memory safety, state of academia, wasm-bindgen, apl compilers, relational.ai and salsa.jl
Notes on software development
Coolest hard-tech companies in NYC 2021
Andreas Kling
I quit my job to focus on SerenityOS full time
Hello friends! :^) Let me tell you a story…
Notes on software development
Writing a Jinja-inspired template library in Python
Alperen Keles
Uzaktan Eğitimle Geçen Bir Yılın Ardından
Scattered Thoughts
Making live repls behave
Scattered Thoughts
0010: dida, live repls, query planning for streaming, rust allocators, more zig goto, database resources, guix on mac, criticising people's work, pay what you want
Scattered Thoughts
Why query planning for streaming systems is hard
blag
Marshaling Struct with Special Fields to JSON in Golang
Scattered Thoughts
0009: 2021 Q1 roundup, updates to internal consistency, garden of forking paths, push vs pull, beca, cambria
Scattered Thoughts
2021 Q1 roundup
Scattered Thoughts
Internal consistency in streaming systems
Scattered Thoughts
0008: the last internal consistency, geoffrey litt's new newsletter, business structure vs quality, aws throttling, papoc, our machinery, on twitter, injuries
Alperen Keles
Doktora Başvuruları: Kapsamlı Rehber
Notes on software development
Learning a new codebase: hacking on nginx
Alperen Keles
Lisans Araştırmaları Rehberi: AdımODTÜ Lisans Araştırmaları
Scattered Thoughts
0007: yet more internal consistency, re: how safe is zig, async performance, local-first software, fuzzers and emulators, deterministic hardware counters, zig goto
blag
I ended up adding duplicate records on a unique index in MongoDB
quanttype
Enjoying the silence
Alperen Keles
Seçimler
Scattered Thoughts
How (memory) safe is zig?
Scattered Thoughts
Utopia of rules
Scattered Thoughts
Debt
Scattered Thoughts
Bullshit jobs
Scattered Thoughts
0006: more internal consistency, how safe is zig, bullshit jobs, debt, utopia of rules, kevin's zig adventure, pinebook pro, trio
Alperen Keles
Yurt Dışı Staj: Kabul Aldınız, Peki Ya Şimdi?
quanttype
clojure.xml and untrusted input
Scattered Thoughts
Memory-mapped IO registers in zig
Notes on software development
How to get better at recursion
quanttype
clojure.spec and untrusted input
quanttype
Why take notes, anyway?
Scattered Thoughts
An opinionated map of incremental and streaming systems
Scattered Thoughts
0005: internal consistency in streaming systems, MMIO in zig, a small matter of programming, rxi, martin kleppmann's new patreon, redpanda benchmarks
Alperen Keles
Yüksek Lisans Doktora Başvuruları#2: Neden Yüksek Lisans?
Scattered Thoughts
A small matter of programming
Alperen Keles
Yüksek Lisans Doktora Başvuruları#1: Şimdi Sizin Aklınızda 2 Soru Var
quanttype
The goal is to deliver working software
Alperen Keles
Staj Rehberi#4 — Eski Stajlar
Scattered Thoughts
How Materialize and other databases optimize SQL subqueries
Scattered Thoughts
The mature optimization handbook
Scattered Thoughts
0004: map of incremental/streaming systems, draft of thoughts on benchmarking streaming systems, the mature optimization handbook, various dataflow and database talks
quanttype
Winter-posting
Alperen Keles
Staj Rehberi#3 — Projeler
quanttype
When to not use code review
Scattered Thoughts
Digital minimalism
Scattered Thoughts
0003: optimizing correlated subqueries, digital minimalism, data-oriented design
Alperen Keles
Staj Rehberi#2 — Niyet Mektubu
quanttype
Writing is a core skill for developers
Scattered Thoughts
0002: correlated subqueries intro, text editor data-structures, working in public, thoughts on independent research
Alperen Keles
Staj Rehberi#1 —  Özgeçmiş Hazırlama
Scattered Thoughts
Working in public
Scattered Thoughts
0001: welcome, text editor intro + rendering
quanttype
Clojure project automation tool of my dreams
Notes on software development
Extending gosql to supporting LIMIT and OFFSET
Alperen Keles
Ödediğimiz Bedeller Mi, Ödeyeceklerimiz Mi?
Scattered Thoughts
Why isn't differential dataflow more popular?
Alperen Keles
ODTÜ’de Uzaktan Güz Dönemi Nasıl Bitiyor.
Scattered Thoughts
2020 spending
quanttype
Yearnote 2020
Alperen Keles
Post-Covid Monologları#3: Yarını Kaçırmak
Notes on software development
The year in books: 20 to recommend in 2020
Alperen Keles
ODTÜ’de Uzaktan Eğitim Dönemi Nasıl Geçiyor?
quanttype
NixOS impressions
Notes on software development
Static analysis with semgrep: practical examples using Docker
Alperen Keles
Lisans Araştırmaları: Giriş Rehberi
quanttype
Code review in context
Scattered Thoughts
Looking for debugger
Scattered Thoughts
Looking for more debugger
Alperen Keles
Post-Covid Monologları#1: Unutulan Vedalar
Alperen Keles
Yurt Dışı Staj: Genişletilmiş Rehber
quanttype
New shell prompt with Starship
blag
Setting up Github Actions for Hugo
blag
Moving to Hugo
quanttype
Early impressions on morning pages
Notes on software development
Emulating linux/AMD64 userland: interpreting an ELF binary
quanttype
Code review is for collaboration
quanttype
Why bother with Integrant?
Notes on software development
The impact of management teams as a decision-making group, in startups and enterprise
Alperen Keles
Atam Ne Derdi
quanttype
Two albums of sad music
quanttype
What are DIDs?
Scattered Thoughts
Canada's Express Entry program
quanttype
Caching HTTP requests in Clojure
Notes on software development
Standard ML in 2020
Scattered Thoughts
Assorted thoughts on zig (and rust)
quanttype
Generating random tokens in Clojure
quanttype
clj-branca: lessons learned
quanttype
Branca and yak shaving
quanttype
Solving the diamond problem with shading
quanttype
Local memoized recursive functions
quanttype
No blog this week
Scattered Thoughts
Small tech
Notes on software development
The case for comments in code
quanttype
Is this art?
quanttype
JWT and its alternatives
quanttype
Looking good in a suit
quanttype
The minimalist program
Notes on software development
Writing a simple Python compiler: 1. hello, fibonacci
Home on Tim Mastny
Discrete Cosine Transform and Time Series Classification
Home on Tim Mastny
Dynamic Time Warping and Time Series Clustering
quanttype
Two things that make logging out hard
Home on Tim Mastny
Why you should use siuba, the dplyr of Python
quanttype
Summer reading
Home on Tim Mastny
Siuba and IPython tab-complete
quanttype
Signing .jars is worthless
Notes on software development
A single-node Kubernetes cluster without virtualization or a container registry
quanttype
On paddling
Home on Tim Mastny
Tuning and Cross-validation with tidymodels and scikit learn
Home on Tim Mastny
Syntax Highlighting
Home on Tim Mastny
Intro to Hugo: The Masterchef of Layouts
Scattered Thoughts
Imp: iteration
quanttype
Summer vacation
Notes on software development
Generating a full-stack application from a database
quanttype
Building software without hiring anyone
Notes on software development
Generating a REST API from a database
Alperen Keles
Karantina Günlerinde Akademik Dürüstlük
Scattered Thoughts
Imp: boxes
quanttype
Who is going to use the programming language?
quanttype
Automating spec-tools releases
Home on Tim Mastny
Reading for Pleasure
quanttype
Have you seen the swan?
Notes on software development
RFCs and asynchronous-first culture
quanttype
Essential features of data specification libraries
Notes on software development
Writing a SQL database from scratch in Go: 4. a database/sql driver
quanttype
Schema, Spec, and Malli
Notes on software development
Writing a SQL database from scratch in Go: 3. indexes
Scattered Thoughts
Imp: solving functions
Scattered Thoughts
Open multiple dispatch in zig
Andreas Kling
Smarter C/C++ inlining with __attribute__((flatten))
This post describes a compile-time technique for getting the benefits of aggressive inlining in hot code while protecting cool code from its downsides.
Scattered Thoughts
Pinephone first steps
quanttype
Elegant knowledge transfer
quanttype
Ricoh GR III, a year later
Scattered Thoughts
SELECT wat FROM sql
Home on Tim Mastny
Tests for Pairwise Mean Differences in R
quanttype
Put files where they are expected
Notes on software development
Writing a SQL database from scratch in Go: 2. binary expressions and WHERE filters
Home on Tim Mastny
dplyr 1.0.0
quanttype
Video calls are cool but have you tried writing
Notes on software development
Studying foreign languages with inbox zero
quanttype
Freezing deployments is risky
Notes on software development
Reviewing the Surface Book 2
quanttype
Working from home: initial impressions
Notes on software development
Writing a SQL database from scratch in Go: 1. SELECT, INSERT, CREATE and a REPL
quanttype
Programming is writing
quanttype
Making decisions without asking your boss
quanttype
No need for something to say
quanttype
Logging request IDs in Tornado
Scattered Thoughts
Imp: decorrelation
Notes on software development
A minimal REST API in Java
quanttype
Hello again, Python
quanttype
Joys of a heavy camera
quanttype
Yearnote 2019
Scattered Thoughts
2019 spending
quanttype
Standard problems, standard solutions
quanttype
Just automate syntax formatting
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 6. an x86 upgrade
quanttype
Keeping code review fast
Notes on software development
Confusion and disengagement in meetings
quanttype
The power of code review
Home on Tim Mastny
AWS Sagemaker and R
quanttype
Coercing JSON with malli
quanttype
Karhunkierros IV
Home on Tim Mastny
Funnel Charts in R with funneljoin - Gaps and Deadlines
Home on Tim Mastny
Funnel Charts in R with funneljoin
quanttype
Karhunkierros III
quanttype
Karhunkierros II
quanttype
Karhunkierros I
Scattered Thoughts
Imp: simple interpreter
Scattered Thoughts
Imp: types
Notes on software development
Interpreting Go
quanttype
The joys of coverage
Scattered Thoughts
Imp: denotational semantics
Scattered Thoughts
Imp: core language
Notes on software development
Administering Kubernetes is hard
Scattered Thoughts
Imp: intro
Notes on software development
Unit testing C code with gtest
quanttype
The hallway track conference
Alperen Keles
Kır Aynaları
quanttype
Interpreting Moriyama
Notes on software development
Writing an x86 emulator from scratch in JavaScript: 2. system calls
Alperen Keles
Kaos ve Düzen
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 6. LLVM system calls
Alperen Keles
Yurt Dışında Staj
quanttype
Ricoh GR III - initial impressions
Notes on software development
Writing an x86 emulator from scratch in JavaScript: 1. a stack and register machine
Notes on software development
Tail call elimination
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 4. LLVM conditionals and compiling fibonacci
Notes on software development
Responsibility and ownership
Notes on software development
Interpreting TypeScript
Scattered Thoughts
Frugality is non-linear
Notes on software development
Writing a web server from scratch: 1. HTTP and sockets
Notes on software development
Writing a simple JSON path parser
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 3. LLVM
quanttype
Handbrewing coffee
J. Andrew Rogers
AquaHash: Fast Hashing With AES Intrinsics
Notes on software development
AOT-compilation of Javascript with V8
J. Andrew Rogers
Fast Perfect Hashing Of Integral Types
J. Andrew Rogers
Temporary Blogging Hiatus Is Over
quanttype
Revisiting Clojure testing
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 2. user-defined functions and variables
Notes on software development
Windows
quanttype
Yearnote 2018
Notes on software development
Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
Notes on software development
On NYC, Tokyo and Seoul
quanttype
How I use tap>
quanttype
Clojure libraries I recommend
Notes on software development
Why (and how) to read books
quanttype
Why interceptors?
Notes on software development
Compiling dynamic programming languages
Scattered Thoughts
Zero-copy deserialization in Julia
quanttype
I made a backpack
Scattered Thoughts
Julia as a platform for language development
quanttype
Fully automated releases
quanttype
Migrated to Hugo
Notes on software development
btest: a language agnostic test runner
quanttype
Lead Developer London 2018
Notes on software development
Writing to be read
quanttype
A night in Nuuksio
quanttype
Edit clipboard contents in Vim
Notes on software development
Writing a simple JSON parser
Notes on software development
Finishing up a FreeBSD experiment
Home on Tim Mastny
Search Files in RStudio
Notes on software development
Book Review: ANSI Common Lisp
quanttype
How to write a talk proposal
Home on Tim Mastny
Standard Non-Standard Evaluation: Tidy Eval
Home on Tim Mastny
My First Kaggle Contest and R Package
Notes on software development
Starting a minimal Common Lisp project
Home on Tim Mastny
Embed Slides in Your Blog
Home on Tim Mastny
Use git to Blog(down) About Your Projects
quanttype
Name this conversation pattern
Notes on software development
Interview with the D Language Blog: BSDScheme
Home on Tim Mastny
Tidying Messy Spreadsheets
Notes on software development
First few hurdles writing a Scheme interpreter
quanttype
Yearnote 2017
quanttype
Secure Scuttlebutt: some technical details
quanttype
A new JSON library appears
Scattered Thoughts
Psychology vs the graphics pipeline
Scattered Thoughts
Staged interpreters in rust
Scattered Thoughts
Contrast codes are an implementation detail
Home on Tim Mastny
MRP Using brms and tidybayes
Home on Tim Mastny
Poststratification Primer with dplyr
quanttype
Break from blogging
quanttype
What is first-order logic?
quanttype
Please publish changelogs
quanttype
Write more macros
quanttype
Hiking from Pyhä to Luosto
Scattered Thoughts
A UI library for a relational language
quanttype
Summer vacation
quanttype
Focus on understandble code
Scattered Thoughts
Decision points and utility
quanttype
What is pair programming like?
quanttype
Using Beeminder to keep blogging
quanttype
What are hybrid maps?
quanttype
ZuriHac 2017
quanttype
Commit messages are worthless
quanttype
On sailing
quanttype
On JSONfeed
quanttype
clojure.spec for configuration validation
quanttype
What is functional analysis?
quanttype
JUnit output for Clojure tests
quanttype
prog1 in Clojure
quanttype
Darkroom update
quanttype
Keskustalaisuus vaalikoneessa
quanttype
How I use Anki
quanttype
Configuring Clojure apps
quanttype
Thinking about gear (acquisition syndrome)
Scattered Thoughts
Monolog
quanttype
Ice in black and white
Notes on software development
Deploying FreeBSD on Linode unattended in minutes
quanttype
The surprises of photography
quanttype
Reading highlights from 2016
quanttype
Technical tooling for making better software
quanttype
Running ClojureScript tests with Karma
quanttype
Clojure test runner of my dreams
Notes on software development
Walking through a basic Racket web service
Scattered Thoughts
Quick and dirty review of Psychology of Programming Interest Group 1989-2015
Scattered Thoughts
Vive experiments
Scattered Thoughts
A practical relational query compiler in 500 lines of code
quanttype
Curry On and ZuriHac
quanttype
Some questions (June 2016)
quanttype
On feeling guilty about not being good enough
quanttype
You'll want locally scoped CSS
quanttype
Why look beyond JavaScript?
quanttype
What is descriptive set theory?
quanttype
How I solved the Orbital Challenge
quanttype
Mamiya RB67 Pro-S
quanttype
What's the point of dependent types?
quanttype
We're in early days of software engineering
quanttype
Finding that lemma: Coq search commands
quanttype
How to divide by zero?
quanttype
Take better photos by looking carefully
quanttype
defaultdicts all the way down
quanttype
Runtime exceptions in Elm
quanttype
Multitenant Flask-SQLAlchemy
quanttype
What is forcing, anyway?
quanttype
Elementary algebra in Coq: Trivial group
quanttype
Please give demanding tech talks
blag
Catching SIGTERM in Python
blag
Git/Github fork-pull request-update cycle
quanttype
Elementary algebra in Coq: Defining a group
quanttype
What's in a proof?
quanttype
Getting started with Coq
quanttype
Helsinki Haskell User Group
quanttype
On Infinite Jest
quanttype
The bare minimum to know about RELAX NG
quanttype
Yearnote 2015
quanttype
Math is hard, let's go blogging
blag
Using uWSGI with Python 3
quanttype
Code review requires trust
quanttype
Color film update
quanttype
Python is not good enough
quanttype
Printers now work
blag
When is my Cake Day?
quanttype
Spinning while sleeping
quanttype
Joylent mini-review
quanttype
Dabbling in film photography
blag
Staying Ahead of Amazon, in Amazon Treasure Hunt Contest
quanttype
Webpacking a project
Scattered Thoughts
Complexity budgets
quanttype
Exercising is like eating
quanttype
Moral obligations of ad blocking
J. Andrew Rogers
SpaceCurve: An Unique And Fast Geospatial Database
quanttype
Commandments for code review
quanttype
Some questions I can't answer
quanttype
Everyday carry (August 2015)
quanttype
Copenhagen highlights
quanttype
Shell pro-tip: create weekly working directories
quanttype
Wash your smelly travel towel with vinegar
blag
How I Am Maintaining Multiple Emails For Git On A Same Machine
quanttype
FRP and self-adjusting computation
quanttype
Running is great for lazy people
quanttype
The Moat of Scrumbut
quanttype
Speech as art
quanttype
A Mind for Numbers
quanttype
Spend some time away from computers
quanttype
ROS: Good, bad and ugly
quanttype
The Law of Partial Test Coverage
Scattered Thoughts
Three months of rust
quanttype
Good math exercises build trust
blag
An exploit on Gaana.com gave me access to their entire User Database
J. Andrew Rogers
MetroHash: Faster, Better Hash Functions
quanttype
Quickly jumping between git branches
quanttype
Emacs: Get the path for current buffer from command-line
blag
Flashing Asus-WRT Merlin by XVortex on NetGear NightHawk R7000
quanttype
Birds and context-free grammars
quanttype
You should take lecture notes with pen and paper
quanttype
Tornien taisto is coming soon
quanttype
New theorem prover: Lean
quanttype
The value of MOOCs is not in the videos
quanttype
Are quantum computers faster than classical computers?
quanttype
This Week in Finnish Politics
J. Andrew Rogers
Why Are Geospatial Databases So Hard To Build?
Scattered Thoughts
Scaling down
quanttype
Types of JavaScript
quanttype
Setting up Coq, Ssreflect and Proof General on OS X
quanttype
Yearnote 2014
blag
Install Windows 8 UEFI on Legacy BIOS with Clover (and Dual boot with Yosemite)
quanttype
Ambronite mini-review
quanttype
Going to write a bachelor's thesis
quanttype
Guts of the Golden Pig
quanttype
Event notes: ClojuTRE 2014
quanttype
A photo essay: Haronmäki
quanttype
Customizing Nix packages
quanttype
Did taking photos teach me anything?
quanttype
Four scientific ways to hack your learning
blag
Scraping Javascript page using Python
quanttype
NP and non-deterministic Turing machines
quanttype
Why does everything fall apart so quickly?
quanttype
Practicing photography
quanttype
Houkutteleva tutkijanura
quanttype
In praise of Hiccup
quanttype
Is being normal anti-establishment?
quanttype
Electromagnetic Field 2014
quanttype
Math is programming
Scattered Thoughts
Imperative thinking and the making of sandwiches
quanttype
When is static typing worthwhile?
Scattered Thoughts
Pain we forgot
quanttype
Hard things in software engineering
quanttype
Linux problems, April 2014
quanttype
Baudrillard on Jogging
quanttype
Renaming files with zmv
quanttype
Weak views, strongly held
Scattered Thoughts
Local state is harmful
quanttype
Flappy Sine
quanttype
nix-docker and docker volumes
quanttype
Baana, Helsinki
quanttype
Compiling assembler files with avr-gcc without C runtime
quanttype
People Never Change
blag
Installing Transmission (remote and CLI) client on Raspberry Pi
quanttype
Peruna, a horse and a medicine
quanttype
Mental Attitude of the Grid
quanttype
Silver Streetcar for the Orchestra
quanttype
ferret.gif
quanttype
Why do you write commit messages?
quanttype
Setting up nginx for static content with Pallet
quanttype
Tomaatti-Sota
Scattered Thoughts
Search trees and core.logic
Scattered Thoughts
Strucjure: motivation
Scattered Thoughts
Causal ordering
Scattered Thoughts
Optimising texsearch
Scattered Thoughts
Design and analysis of a gossip algorithm
Scattered Thoughts
Examining scampy
Home on Tim Mastny
Sublime Monokai
Home on Tim Mastny
sass R package
Home on Tim Mastny
sagemaker
Home on Tim Mastny
RStudio Modern
Home on Tim Mastny
Rainbow Monokai
Home on Tim Mastny
Rainbow Github
Home on Tim Mastny
Prism Okaidia
Home on Tim Mastny
Prism Default
Home on Tim Mastny
Prism Coy
Home on Tim Mastny
Pandoc Tango
Home on Tim Mastny
leadr R package
Home on Tim Mastny
Hugo Monokai
Home on Tim Mastny
Hudl's Greatest Comebacks
Home on Tim Mastny
Highlight.js Monokai
Home on Tim Mastny
Highlight.js Github
Home on Tim Mastny
Highlight R Package Sherlock
blag
Projects
blag
About