This post introduces timecond, a TypeScript library I created to represent, evaluate, and describe complex conditions on time ranges. The support for time ranges is what makes it different from many other popular time scheduling libraries that focus on events (points in time). Note In contrast to all my prior …| dr knz @ work
Once upon a time, I spent multiple months implementing a graphing calculator using GW-BASIC (manual). Would I be able to do the same more quickly and effectively today using generative AI? ❦❦❦ Let’s give it a go, using Claude AI to start: Implement a simple graphing calculator in GW …| dr knz @ work
Abstract In the Bubbline project we are trying to build readline-like semantics on top of Charm’s Bubbletea. As of Bubbletea v0.23, we discovered this is currently impossible to do in a way that preserves input continuity reliably across readline invocations. This result is general. Any Bubbletea-based program or …| dr knz @ work
I published an article on the Cockroach Labs Blog: Nested transactions in CockroachDB 20.1. In this article, I explain how I implemented nested transactions and SQL savepoints in CockroachDB v20.1. Also available via the Wayback Machine.| dr knz @ work
I published an article on the Cockroach Labs Blog: Memory Usage in CockroachDB. In this article, I explain how I designed approximate memory usage restrictions in CockroachDB v1.0, despite the lack of allocation pools in the Go’s language runtime system. Also available via the Wayback Machine.| dr knz @ work
I published an article on the Cockroach Labs Blog: Squashing a Schrödinbug With Strong Typing. In this article, I explain how I discovered a bug in CockroachDB whose existence was enabled by Go’s lack of proper algebraic data types. Also available via the Wayback Machine.| dr knz @ work
In any comparative discussion about programming languages, the probability that the conversation will mention Brainfuck or INTERCAL approaches 1 over time. (Based on years of empirical evidence as a scientist, programmer and unix hacker.)| dr knz @ work
My friend Nathan and I published an article on the Cockroach Labs Blog: Revisiting SQL typing in CockroachDB. In this article, we explain the type system we implemented for CockroachDB v1.0’s SQL dialect. It implements a large subset of PostgreSQL’s own dialect and performs inference using a …| dr knz @ work
I published an article on the Cockroach Labs Blog: DIY Jepsen Testing CockroachDB. In this article, I report on the first testing of CockroachDB (pre-v1.0) using Aphyr’s Jepsen test suite. Also available via the Wayback Machine.| dr knz @ work
On November 17th, 2012, a link to a Brainfuck interpreter written using the C preprocessor language was posted to Hacker News. In the necessary flurry of HN comments that followed, the question of CPP’s Turing Completeness came up, to be answered negatively: the proposed interpreter needs to be extended …| dr knz @ work
Two days ago I started to investigate whether C was Turing Complete. With help from two serious people also interested in the topic, I came to the preliminary conclusion that it is probably not. Here is a summary of the arguments so far. Turing Completeness is a property of languages …| dr knz @ work
Ivan Godard from Out-of-the-Box Computing is currently touring the US talking about his Mill CPU architecture, based on a new machine model called the “Belt”. I just finished watching the 2nd talk on the machine model and its realization in the processor’s micro-architecture. OotB’s contribution is a machine …| dr knz @ work
I need to pick a programming language to prototype some initial ideas for my next research project, an interactive shell to program and control lightweight process networks. I initially started with Python, but I stumbled into the need for efficient and concise pattern matching on tree-like data structures, which Python …| dr knz @ work
Note The latest version of this document can be found online at https://dr-knz.net/on-the-future.html. Alternate formats: Source, PDF. Prologue A famous researcher once said that a scientist should not work more than 5-6 years in the same research area. The argument had something to do with losing …| dr knz @ work
CockroachDB happens to be somewhat compatible with PostgreSQL, meaning that software written to use PostgreSQL can sometimes (often!) be used with CockroachDB without changes. Why was CockroachDB designed to be compatible with PostgreSQL? Perhaps surprisingly, the answer to this question is currently (as of early May 2018) not documented publicly …| dr knz @ work
Using Emacs and advanced Emacs customization for editing Go.| dr knz @ work
Hillel proposed on Twitter today: “Expressiveness” is how easily we can ‘do’ things in a system. “Tractability” is how easily we can assert properties on things we ‘do’. F.ex DFAs are tractable, Turing machines are expressive. The expressiveness vs tractability tradeoff is one of the most fundamental in CS …| dr knz @ work