Notes concerning “Performance”
- Bicicleta maps 2007 to 2009 (2 minutes)
- Using bytecode won’t make your interpreter fast 2007 to 2009 (27 minutes)
- A cute algorithm for card-image templates 2007 to 2009 (2 minutes)
- Forth looping 2007 to 2009 (16 minutes)
- Git data 2007 to 2009 (5 minutes)
- Git learnings 2007 to 2009 (3 minutes)
- A filesystem design sketch modeled on Lucene 2007 to 2009 (44 minutes)
- Schimmler parallelism asymptotic gain 2007 to 2009 (1 minute)
- Maybe Counting Characters in UTF-8 Strings Isn't Fast After All! 2007 to 2009 (16 minutes)
- Why Thunderbird is inadequate for opening a 7-gigabyte mbox 2007 to 2009 (2 minutes)
- The Problem: Writing With One Access Pattern, Reading With Another 2007 to 2009 (20 minutes)
- Index set inference or domain inference for programming with indexed families 2007 to 2009 (updated 2019-05-05) (28 minutes)
- Predictions for future technological development (2008) 2008-04-19 (11 minutes)
- How should we design a UI for a new OS? 2012-10-10 (updated 2012-10-11) (4 minutes)
- Worst-case-logarithmic-time reduction over arbitrary intervals over arbitrary semigroups 2012-12-04 (5 minutes)
- a logarithmic-time alternative to summed-area tables for reducing arbitrary semigroup operations over arbitrary ranges (a generalization of RMQ segment trees) 2012-12-06 (updated 2013-05-17) (11 minutes)
- Use crit-bit trees as the fundamental string-set data structure 2013-05-17 (3 minutes)
- Cycle sort 2013-05-17 (1 minute)
- Optimizing the Visitor pattern on the DOM using Quaject-style dynamic code generation 2013-05-17 (updated 2013-05-20) (22 minutes)
- Instant hypertext 2013-05-17 (updated 2013-05-20) (14 minutes)
- Distinguishing natural languages with 3-grams of characters 2013-05-17 (updated 2013-05-20) (8 minutes)
- Embedding objects inside other objects in memory, versus by-reference fields 2014-02-24 (13 minutes)
- Simple persistent in-memory dictionaries with log² lookups and logarithmic insertion 2014-02-24 (6 minutes)
- Square wave synthesis 2014-02-24 (2 minutes)
- lattices, powersets, bitstrings, and efficient OLAP 2014-04-24 (18 minutes)
- Precisely how is 3 “optimal” for one-hot state machines, sparse FIR kernels, etc.? 2014-04-24 (8 minutes)
- Some speculative thoughts on DSP algorithms 2014-04-24 (20 minutes)
- Archival with a universal virtual computer (UVC) 2014-06-29 (18 minutes)
- Rendering iterated function systems (IFSes) with interval arithmetic 2014-09-02 (6 minutes)
- Keyboard-powered computers 2014-10-25 (updated 2018-10-28) (27 minutes)
- A principled rethinking of array languages like APL 2015-05-16 (updated 2019-05-05) (24 minutes)
- You can’t sort a file whose size is cubic in your RAM size in two passes, only quadratic 2015-05-28 (5 minutes)
- Automatic dependency management 2015-05-28 (updated 2015-09-03) (5 minutes)
- Fault-tolerant in-memory cluster computations using containers; or, SPARK, simplified and made flexible 2015-05-28 (updated 2016-06-22) (16 minutes)
- Editor buffers 2015-07-15 (updated 2015-09-03) (16 minutes)
- Parsing a conservative approximation of a CFG with a FSM 2015-09-03 (7 minutes)
- Storing CSV records in minimal memory in Java 2015-09-03 (6 minutes)
- Memoize the stack 2015-09-03 (5 minutes)
- Parallel NFA evaluation 2015-09-03 (6 minutes)
- Rhythm codes 2015-09-03 (4 minutes)
- Ternary mergesort 2015-09-03 (2 minutes)
- Very fast FIR filtering with time-domain zero stuffing and splines 2015-09-03 (updated 2015-09-07) (13 minutes)
- Bitstream dsp 2015-09-03 (updated 2019-06-23) (3 minutes)
- Simplifying computing systems by having fewer kinds of graphics 2015-10-13 (10 minutes)
- Viral wiki 2015-10-15 (3 minutes)
- A type-inferred dialect of JS 2016-04-22 (4 minutes)
- Circle-portal GUI 2016-06-03 (12 minutes)
- Gaussian spline reconstruction 2016-06-05 (updated 2016-06-06) (5 minutes)
- Kogluktualuk: an operating system based on caching coarse-grained deterministic computations 2016-07-23 (21 minutes)
- Compact namespace sharing 2016-07-25 (7 minutes)
- Improving lossless image compression with basic machine learning algorithms 2016-07-27 (2 minutes)
- Append only unique string pool 2016-07-27 (2 minutes)
- Internal determinism 2016-08-17 (2 minutes)
- Low-power microcontrollers for a low-power computer 2016-09-06 (updated 2018-10-28) (18 minutes)
- An almost-in-place mergesort 2016-09-07 (5 minutes)
- Queueing messages to amortize dynamic dispatch and take advantage of hardware heterogeneity 2016-09-17 (13 minutes)
- Further notes on algebras for dark silicon 2016-09-17 (updated 2017-04-18) (23 minutes)
- Gradient rendering 2016-09-24 (12 minutes)
- Counting the number of spaces to the left in parallel 2016-10-11 (6 minutes)
- What’s the dumbest register allocator that might give you reasonable performance? 2016-10-11 (16 minutes)
- Chintzy depth of field 2016-10-27 (1 minute)
- Bitsliced operations with a hypercube of shuffle operations 2016-11-30 (2 minutes)
- The paradoxical complexity of computing the top N 2017-01-04 (7 minutes)
- Quicklayout 2017-01-10 (updated 2017-01-18) (3 minutes)
- Set hashing 2017-03-09 (10 minutes)
- The continuous-web press and the continuous press of the WWW 2017-03-20 (6 minutes)
- Amnesic hash tables for stochastically LRU memoization 2017-04-03 (1 minute)
- The history of NoSQL and dbm 2017-04-10 (16 minutes)
- Incremental persistent binary array sets 2017-04-10 (4 minutes)
- Reflections on rebraiing calculators with this RPN calculator code I just wrote 2017-04-11 (4 minutes)
- Parallel DFA execution 2017-04-18 (10 minutes)
- Reduced affine arithmetic raytracer 2017-05-10 (1 minute)
- Caching screen contents 2017-06-14 (2 minutes)
- What’s wrong with CoAP 2017-06-15 (3 minutes)
- Web prefetch 2017-06-15 (1 minute)
- Fast message router 2017-06-15 (updated 2019-07-23) (16 minutes)
- Compressing a screen update with a tree of dirty bits 2017-06-21 (1 minute)
- Can you make a vocoder simpler using CIC filters? 2017-06-28 (updated 2018-06-17) (2 minutes)
- Double heap sequence 2017-07-19 (2 minutes)
- Parametric polymorphism and columns 2017-07-19 (2 minutes)
- Vector instructions 2017-07-19 (2 minutes)
- Vectorized prefix sum 2017-07-19 (5 minutes)
- Multiplication with squares 2017-07-19 (updated 2019-07-09) (5 minutes)
- Real time windowing 2017-08-03 (9 minutes)
- Cached SOA desktop 2017-08-03 (updated 2018-10-26) (6 minutes)
- Another candidate lightweight frequency tracking algorithm 2017-08-18 (4 minutes)
- A minimal dependency processing system 2017-09-21 (3 minutes)
- Framed-belt DSP 2018-04-27 (3 minutes)
- Mail reader 2018-04-27 (updated 2018-06-18) (7 minutes)
- A minimal window system 2018-04-27 (updated 2018-10-26) (12 minutes)
- Patterns for failure-free, bounded-space, and bounded-time programming 2018-04-27 (updated 2019-07-23) (33 minutes)
- Accelerating convolution and correlation with short periodic waveforms using OLAP marginal prefix sums 2018-06-05 (5 minutes)
- Word stream architecture 2018-06-17 (13 minutes)
- Is a phase vocoder or a bunch of PLLs a more efficient way to listen to all FM radio stations at once? 2018-06-17 (updated 2019-07-29) (7 minutes)
- The TWI and I²C buses and better alternatives like CAN and RS-485 2018-06-28 (updated 2018-07-05) (24 minutes)
- Notes on the STM32 microcontroller family 2018-06-30 (updated 2018-10-28) (42 minutes)
- Comparable counters 2018-08-16 (1 minute)
- A nonscriptable design for the Wercam windowing system 2018-10-26 (updated 2018-11-13) (6 minutes)
- Bit difference array 2018-10-28 (11 minutes)
- Quintic upsampling of time-series with 1½ multiplies per sample 2018-10-28 (3 minutes)
- Text editor design for e-ink displays 2018-10-28 (23 minutes)
- Speculative plans for BubbleOS 2018-10-28 (updated 2019-02-24) (12 minutes)
- Notes on the Intel N3700 i915 GPU in this ASUS E403S laptop 2018-10-28 (updated 2019-05-05) (3 minutes)
- Cheap textures 2018-10-28 (updated 2019-05-05) (6 minutes)
- The details of the GPU in this laptop 2018-10-29 (2 minutes)
- Recurrent comb cascade 2018-11-09 (updated 2018-11-10) (2 minutes)
- Fast gsave 2018-11-27 (5 minutes)
- Toward a lightweight, high-performance software prototyping environment 2018-12-10 (16 minutes)
- Improving Lua #L with incremental prefix sum in the ∧ monoid 2018-12-18 (7 minutes)
- Matrix exponentiation linear circuits 2018-12-18 (4 minutes)
- Evaluating DSP operations in minimal buffer space by pipelining 2018-12-18 (updated 2018-12-19) (22 minutes)
- Real-time bokeh algorithms, and other convolution tricks 2018-12-18 (updated 2019-08-15) (40 minutes)
- Dehydrating processes and other interaction models 2018-12-28 (updated 2019-01-01) (36 minutes)
- Median filtering 2019-01-17 (11 minutes)
- Transactional event handlers 2019-01-24 (14 minutes)
- Transactional memory, immediate-mode structured graphics, serialization, backtracking, and parsing 2019-01-25 (7 minutes)
- The uses of introspection, reflection, and personal supercomputers in software testing 2019-02-04 (updated 2019-03-11) (12 minutes)
- Fast secure pubsub 2019-02-04 (updated 2019-07-24) (2 minutes)
- Immutability-based filesystems: interfaces, problems, and benefits 2019-02-08 (updated 2019-03-19) (23 minutes)
- Hardware multiplication with square tables 2019-02-08 (updated 2019-07-09) (4 minutes)
- Karatsuba 2019-04-20 (2 minutes)
- An algebra of textures for interactive composition 2019-05-08 (5 minutes)
- Granite texture 2019-05-08 (updated 2019-05-09) (5 minutes)
- Dercuano rendering 2019-05-11 (updated 2019-05-12) (3 minutes)
- Dercuano backlinks 2019-05-22 (7 minutes)
- Profile-guided parser optimization should enable parsing of gigabytes per second 2019-05-23 (8 minutes)
- Midpoint method texture mapping 2019-06-01 (3 minutes)
- Using the Goertzel algorithm, the Minsky algorithm, PLLs, and prefix sums for frequency detection 2019-06-16 (updated 2019-07-05) (41 minutes)
- Separating implementation, optimization, and proofs 2019-06-26 (updated 2019-07-22) (43 minutes)
- Kernel code generation 2019-07-02 (6 minutes)
- $1 recognizer diagrams 2019-08-11 (updated 2019-08-17) (16 minutes)
- The miraculous low-rank SVD approximate convolution algorithm 2019-08-14 (updated 2019-08-15) (32 minutes)
- Robust hill climbing in vector spaces using adaptive step sizes 2019-08-17 (13 minutes)
- Complex linear regression (in the field ℂ of complex numbers) 2019-08-17 (updated 2019-08-18) (9 minutes)