Dercuano
Dercuano is a self-contained downloadable HTML tarball containing a
book’s worth of disorganized notes I’ve made over the last few years.
Buried among the errors, red herrings, and ratholes, there
are numerous wonderful insights (perhaps even a few of them original),
many fascinating facts about the world (many of which are true, and a
few of which are original observations), and a wide variety of
inventive ideas about what is possible and what could be done, in
particular ideas about how to improve the world with new hardware and
software — a few of them workable. I’ve published little of it
previously.
Disclaimer, preface, and warning
Mostly, I made
these notes for myself, though with the intention of someday getting
most of them into shape for publication, but lacking the discipline of
regular publication, that’s probably not going to happen. It may not
happen anyway. So, fuck it! Here it is, incomplete as it is — I hope
you enjoy it!
Beware, this is (almost) all wrong
Much of what is written here is wrong in a variety of ways.
- Some of it is factually wrong;
- some of it was factually correct at one point but has since become outdated;
- some of it is okay at a factual level but has led me to incorrect
conclusions due to my misunderstanding of the relationships between
the facts;
- some of it is just a farrago of incoherent sentence fragments;
- some of it is a collection of atomic facts that are individually
coherent and could, in theory, be assembled into a meaningful whole,
but so far have not been;
- some of it documents the embarrassingly long path of reasoning by
which I eventually argued myself around to a reasonable conclusion
which was, in retrospect, obvious from the start; and
- some of it, perhaps most of it, amounts to getting distracted from
the most important aspects of an issue by some minor detail.
Most of these notes are about things I barely understood, or
didn’t really understand at all, when I wrote the notes. In some
cases, I later came to understand them better, but in other cases I’ve
lost even what understanding I had. Nearly every note is incomplete;
of those that are complete, very few have been checked for correctness
or revised for readability. So, beware.
Many of the dates are only approximate.
Size and public-domain dedication
On 2019-05-05 as I write this, the Dercuano tarball is 1.5 megabytes
and contains some 570,000 words in 256 notes,
about 2000 paperback pages’
worth of text. This is about a third of the total amount
of text I have here and intend to include. I’m still importing notes
to add to it.
As far as I’m concerned, everyone is free to redistribute Dercuano, in
whole or in part, modified or unmodified, with or without credit; I
waive all rights associated with it to the maximum extent possible
under applicable law. Where applicable, I abandon its copyright to
the public domain. I wrote and published Dercuano in Argentina.
Notes
- Why John Backus Was on the Wrong Track 2007 (updated 2007 to 2009) (7483 words)
- Some notes from playing 20q.net 2007 to 2009 (3657 words)
- Air conditioning 2007 to 2009 (3235 words)
- I think I understand how to use libart’s antialiased rendering API now 2007 to 2009 (1503 words)
- Using bytecode won’t make your interpreter fast 2007 to 2009 (4019 words)
- Notes on reading eForth 1.0 for the 8086 2007 to 2009 (933 words)
- Error Reporting is Part of the Programmer's User Interface 2007 to 2009 (2774 words)
- Eur-Scheme: a simplified Ur-Scheme 2007 to 2009 (1984 words)
- Forth looping 2007 to 2009 (2474 words)
- HTML is terser and more robust than S-expressions 2007 to 2009 (630 words)
- Learning low level stuff is not just fun, but also useful 2007 to 2009 (755 words)
- A filesystem design sketch modeled on Lucene 2007 to 2009 (6571 words)
- Index set inference or domain inference for programming with indexed families 2007 to 2009 (4243 words)
- Developing Win32 programs on Debian 2007 to 2009 (1851 words)
- Quasiquote patterns 2007 to 2009 (1511 words)
- Notes on Raph Levien's "Io" Programming Language 2007 to 2009 (1635 words)
- Improving "science" in eSpeak's lexicon 2007 to 2009 (1593 words)
- A survey of small TCP/IP implementations 2007 to 2009 (618 words)
- Additive smoothing for Markov models 2007 to 2009 (1660 words)
- The economics of solar energy 2007 to 2009 (4058 words)
- Maybe Counting Characters in UTF-8 Strings Isn't Fast After All! 2007 to 2009 (2425 words)
- The Problem: Writing With One Access Pattern, Reading With Another 2007 to 2009 (2955 words)
- Programming paradigms for tiny microcontrollers 2007 to 2009 (905 words)
- OMeta contains Wadler's "Views" 2007 to 2009 (2089 words)
- bytecode interpreters for tiny computers 2007-09 (9630 words)
- Predictions for future technological development (2008) 2008-04-19 (1693 words)
- mechanical computation: with Merkle gates, height fields, and thread 2010-06-28 (3777 words)
- Food storage 2013-05-11 (updated 2013-05-17) (8608 words)
- Only a constant factor worse 2013-05-17 (2545 words)
- Ghettobotics: making robots out of trash 2013-05-17 (6241 words)
- The Tinkerer’s Tricorder 2013-05-17 (updated 2014-04-24) (4054 words)
- Personal notes from 2013-06-06 2013-06-06 (updated 2014-04-24) (1687 words)
- Embedding objects inside other objects in memory, versus by-reference fields 2014-02-24 (1929 words)
- Stuff I’ve posted to kragen-tol over the years about post-HTTP 2014-02-24 (1917 words)
- Twingler 2014-02-24 (1230 words)
- Notes from a Buenos Aires blackout, summer 2013-2014 2014-04-24 (2328 words)
- The future of the human energy market (2014) 2014-04-24 (2920 words)
- 2025 manufacturing and economics scenario 2014-04-24 (3785 words)
- Inflatable stool 2014-04-24 (871 words)
- lattices, powersets, bitstrings, and efficient OLAP 2014-04-24 (2625 words)
- Nobody has yet constructed a mechanical universal digital computer 2014-04-24 (834 words)
- Offline datasets 2014-04-24 (2289 words)
- How to use “correct horse battery staple” as an encryption key, including a recommended 4096-word list 2014-04-24 (6671 words)
- Plato was not particularly democratic; ἄρχειν is not “participating in politics” 2014-04-24 (736 words)
- Polynomial-spline FIR kernels by integrating sparse kernels 2014-04-24 (1886 words)
- Some speculative thoughts on DSP algorithms 2014-04-24 (2967 words)
- In a world with ubiquitous surveillance, what does politics look like? 2014-04-24 (1611 words)
- 50 ideas to ship in 2014 2014-04-24 (5330 words)
- An extremely simple electromechanical state machine 2014-04-24 (2538 words)
- Heat exchangers modeled on retia mirabilia might reach 4 TW/m³ 2014-07-16 (updated 2016-07-27) (2030 words)
- Keyboard-powered computers 2014-10-25 (updated 2018-10-28) (3996 words)
- A mechano-optical vector display for animation archival 2014-12-28 (updated 2015-09-03) (4227 words)
- Entry-C: a Simula-like backwards-compatible object-oriented C 2015-04-05 (updated 2017-04-03) (4017 words)
- Alphanumerenglish 2015-04-06 (updated 2016-07-27) (1148 words)
- A principled rethinking of array languages like APL 2015-05-16 (updated 2018-10-28) (3493 words)
- You can’t sort a file whose size is cubic in your RAM size in two passes, only quadratic 2015-05-28 (763 words)
- Fault-tolerant in-memory cluster computations using containers; or, SPARK, simplified and made flexible 2015-05-28 (updated 2016-06-22) (2388 words)
- Editor buffers 2015-07-15 (updated 2015-09-03) (2407 words)
- We should use end-to-end optimization algorithms for 3-D printing design 2015-09-03 (2217 words)
- drag-and-drop calculator for touch devices 2015-09-03 (743 words)
- Memoize the stack 2015-09-03 (739 words)
- A one-motor robot 2015-09-03 (1891 words)
- Simplified computing, down to the level of mining raw materials 2015-09-03 (3305 words)
- Very fast FIR filtering with time-domain zero stuffing and splines 2015-09-03 (updated 2015-09-07) (1986 words)
- Simplifying computing systems by having fewer kinds of graphics 2015-10-13 (1470 words)
- Minimal GUI libraries 2015-11-14 (updated 2015-11-15) (823 words)
- Designing an archival virtual machine 2016-05-12 (879 words)
- A variety of code fragments for testing proposed language designs 2016-05-18 (3639 words)
- Spring energy density 2016-05-28 (updated 2016-06-06) (1934 words)
- Do visually expanding images evoke an orienting response or the startle response, and what does that mean for ZUIs? 2016-06-03 (2175 words)
- Gaussian spline reconstruction 2016-06-05 (updated 2016-06-06) (718 words)
- The book written in itself 2016-06-12 (updated 2016-06-14) (2686 words)
- Phase-change heat reservoirs for household climate control 2016-06-14 (updated 2016-06-17) (2028 words)
- Mechanical buck converter 2016-06-20 (748 words)
- Circle-portal GUI 2016-06-28 (1740 words)
- Thermodynamic systems in housing 2016-06-28 (3663 words)
- Making a logic gate of a single MOSFET 2016-06-28 (779 words)
- String cutting cardboard 2016-06-30 (808 words)
- Flux deposition for 3-D printing in glass and metals 2016-07-03 (2329 words)
- Jellybean ICs 2016 2016-07-14 (updated 2016-07-17) (2509 words)
- Kogluktualuk: an operating system based on caching coarse-grained deterministic computations 2016-07-23 (3220 words)
- A one-operand stack machine 2016-07-24 (updated 2016-07-25) (1999 words)
- 2016 outlook for automated fabrication and 3-D printing 2016-08-11 (3003 words)
- Executable scholarship, or algorithmic scholarly communication 2016-08-11 (2029 words)
- Opacity holograms 2016-08-16 (1232 words)
- Phosphorescent laser display 2016-08-16 (1275 words)
- Hot oil cutter 2016-08-16 (updated 2016-08-17) (1253 words)
- Heckballs: a laser-cuttable MDF set of building blocks 2016-08-17 (updated 2016-08-30) (3456 words)
- Flexures 2016-08-24 (updated 2016-08-26) (1004 words)
- Affine arithmetic has quadratic convergence when interval arithmetic has linear convergence 2016-08-24 (updated 2017-01-18) (1546 words)
- Starfield servo 2016-08-30 (updated 2018-11-07) (1910 words)
- Rosetta opacity hologram 2016-09-05 (1221 words)
- Robust hashsplitting with sliding Range Minimum Query 2016-09-05 (1097 words)
- State of the world 2016 2016-09-05 (1488 words)
- Regenerator gas kiln 2016-09-05 (updated 2017-04-10) (1353 words)
- The internet is probably not going to collapse for economic reasons 2016-09-06 (1432 words)
- Notes on higher-order programming on the JVM 2016-09-06 (858 words)
- Subterranean glazing 2016-09-06 (3825 words)
- Sun cutter 2016-09-06 (1303 words)
- House scrubber 2016-09-06 (updated 2018-05-05) (1835 words)
- Low-power microcontrollers for a low-power computer 2016-09-06 (updated 2018-10-28) (2699 words)
- DHT bulletin board 2016-09-07 (1007 words)
- Filling hollow FDM things with other materials 2016-09-07 (790 words)
- Toward a language for hacking around with natural-language processing algorithm 2016-09-08 (1161 words)
- Circuit notation 2016-09-08 (updated 2017-04-18) (1110 words)
- Graph construction 2016-09-08 (updated 2017-07-19) (3695 words)
- Queueing messages to amortize dynamic dispatch and take advantage of hardware heterogeneity 2016-09-17 (1980 words)
- Further notes on algebras for dark silicon 2016-09-17 (updated 2017-04-18) (3468 words)
- Solar-powered portable computers 2016-09-17 (updated 2018-10-28) (2254 words)
- Simple state machines 2016-09-19 (updated 2016-09-24) (1284 words)
- Gradient rendering 2016-09-24 (1800 words)
- Immersion plating of copper on iron with blue vitriol 2016-09-24 (1266 words)
- Usability of scientific calculators 2016-09-29 (2867 words)
- Compressed sensing microscope 2016-10-06 (1023 words)
- Freeze distillation at 1 Hz 2016-10-06 (1052 words)
- What’s the dumbest register allocator that might give you reasonable performance? 2016-10-11 (2385 words)
- Generalizing my RPN calculator to support refactoring 2016-10-17 (1823 words)
- Installing Debian GNU/Linux on an ASUS E403S 2016-10-23 (1593 words)
- Topics to study in 2016 2016-10-27 (updated 2016-11-15) (5612 words)
- Academic lineage 2016-10-30 (1606 words)
- The problem is not that people are not turning to real journalism anymore 2016-11-15 (1252 words)
- Approaches to limiting self-replication 2016-11-30 (1104 words)
- Jello printing 2016-12-14 (1170 words)
- A design sketch of an air conditioner powered by solar thermal power 2016-12-22 (updated 2017-01-04) (4384 words)
- The ultimate capacity of human memory if spaced-practice memorization works as advertised 2017-01-04 (updated 2017-01-08) (2093 words)
- Quicklayout 2017-01-10 (updated 2017-01-18) (479 words)
- Similarities between Golang and Rust 2017-01-11 (updated 2017-01-17) (1018 words)
- Millikiln 2017-01-17 (updated 2017-03-02) (529 words)
- My attempt to learn about jellybean electronic components 2017-02-08 (updated 2018-08-16) (2857 words)
- Non-inverting logic 2017-02-18 (1303 words)
- Lab power supply 2017-02-21 (updated 2018-06-18) (2601 words)
- 3-D printing by flux deposition 2017-02-24 (updated 2017-02-25) (2463 words)
- Electric micro kiln 2017-02-25 (updated 2017-03-02) (1558 words)
- Set hashing 2017-03-09 (1442 words)
- Burst computation 2017-03-20 (1875 words)
- Passive dehumidifier 2017-03-20 (2069 words)
- Thredsnek 2017-03-20 (1084 words)
- A sketch of a minimalist bytecode for object-oriented languages 2017-03-20 (updated 2017-06-20) (2068 words)
- Ice pants 2017-04-04 (updated 2019-01-22) (2659 words)
- The history of NoSQL and dbm 2017-04-10 (2395 words)
- Secure, self-describing, self-delimiting serialization for Python 2017-04-11 (1290 words)
- Parallel DFA execution 2017-04-18 (1431 words)
- Quasicard: a hypothetical reimagining of HyperCard and TiddlyWiki 2017-04-18 (updated 2017-06-09) (2764 words)
- Hipster stack 2017 2017-04-28 (updated 2017-05-04) (4192 words)
- Pattern matching and finite functions 2017-05-10 (2333 words)
- Relational modeling 2017-05-17 (updated 2017-06-01) (980 words)
- A plotter language of 9-bit bytes 2017-05-29 (updated 2017-06-01) (1599 words)
- Caching screen contents 2017-06-14 (294 words)
- What’s wrong with CoAP 2017-06-15 (476 words)
- Micro pubsub 2017-06-15 (1163 words)
- Nova RDOS 2017-06-15 (3618 words)
- Golomb-coding operands as belt offsets likely won’t increase code density much 2017-06-15 (updated 2017-06-20) (1004 words)
- Fast message router 2017-06-15 (updated 2017-07-06) (2325 words)
- Pixel stream 2017-06-15 (updated 2018-10-26) (574 words)
- Service-oriented email 2017-06-20 (updated 2017-06-21) (2178 words)
- A stack of stacks for simple modular electronics 2017-06-27 (715 words)
- Cheap frequency detection 2017-06-29 (updated 2018-07-05) (8070 words)
- Coolants 2017-07-04 (updated 2017-07-12) (1679 words)
- Xor 1 to 1 hashing 2017-07-19 (updated 2017-08-03) (1494 words)
- Real time windowing 2017-08-03 (1349 words)
- Cached SOA desktop 2017-08-03 (updated 2018-10-26) (919 words)
- What does a futuristic OS look like? 2017-08-18 (updated 2018-10-26) (881 words)
- Deep freeze 2017-08-22 (updated 2019-01-22) (955 words)
- General purpose layout syntax 2017-11-10 (updated 2018-12-25) (3512 words)
- Interactive calculator 2018-04-26 (2422 words)
- Interactive geometry 2018-04-26 (153 words)
- Two-thumb quasimodal multitouch interaction techniques 2018-04-26 (1623 words)
- Some notes on reverse-engineering The Wizard’s Castle 2018-04-26 (1319 words)
- Absurd household materials 2018-04-26 (updated 2018-05-18) (1140 words)
- Bench trash power supply 2018-04-27 (1359 words)
- Rarely are function-local variables in Forth justified 2018-04-27 (1611 words)
- Incremental recomputation 2018-04-27 (1847 words)
- Some notes on FullPliant and Pliant 2018-04-27 (1445 words)
- Compressing REST transactions with per-connection state 2018-04-27 (1684 words)
- Laser cut next step 2018-04-27 (updated 2018-04-30) (1134 words)
- 2017 [Provisional English translation of intercepted transmission] 2018-04-27 (updated 2018-07-14) (2049 words)
- A minimal window system 2018-04-27 (updated 2018-10-26) (1777 words)
- Exploration of using RF current sources instead of ELF voltage sources for mains power 2018-04-30 (updated 2018-07-05) (4340 words)
- Notes on a possible household air filter 2018-05-05 (updated 2018-05-15) (1537 words)
- Ideas to pursue 2018-05-05 (updated 2018-08-16) (979 words)
- You can stuff a UHMWPE hammock in your wallet 2018-05-15 (updated 2018-10-28) (1657 words)
- Home dehumidifier 2018-05-20 (updated 2019-04-02) (1788 words)
- Whistle detection 2018-06-06 (updated 2018-12-02) (2690 words)
- Arduino curve tracer 2018-06-17 (1435 words)
- Diode logic 2018-06-17 (2367 words)
- Word stream architecture 2018-06-17 (1965 words)
- Transistors vs. Microcontrollers 2018-06-17 (updated 2018-07-05) (1187 words)
- Why is there so much anti-plastic sentiment? Visibility, Arcadian primitivism, conspicuous consumption, and profit. 2018-06-21 (999 words)
- The TWI and I²C buses and better alternatives like CAN and RS-485 2018-06-28 (updated 2018-07-05) (3585 words)
- Notes on the STM32 microcontroller family 2018-06-30 (updated 2018-10-28) (6264 words)
- Electric hammer 2018-07-02 (updated 2018-07-05) (2034 words)
- Capacitors: some notes on tradeoffs 2018-07-05 (702 words)
- Quasimode keyboard 2018-07-14 (3645 words)
- Microlens vibrating lightfield 2018-07-14 (updated 2018-07-15) (1617 words)
- Notes on circuitry for the Nutra seed activator 2018-08-16 (2996 words)
- Gradient pixels 2018-08-16 (updated 2018-10-28) (1454 words)
- Caustics 2018-08-18 (updated 2018-11-04) (1184 words)
- You can’t construct optical systems with arbitrary light transfers, but you can do some awesome shit 2018-09-10 (1681 words)
- Caustic simulation 2018-09-10 (updated 2018-11-04) (291 words)
- Immediate mode productive grammars 2018-09-13 (1383 words)
- Window systems 2018-10-26 (106 words)
- A nonscriptable design for the Wercam windowing system 2018-10-26 (updated 2018-11-13) (919 words)
- Scriptable windowing for Wercam 2018-10-26 (updated 2018-12-13) (4056 words)
- Bit difference array 2018-10-28 (1587 words)
- Cheap textures 2018-10-28 (838 words)
- Text editor design for e-ink displays 2018-10-28 (3516 words)
- Speculative plans for BubbleOS 2018-10-28 (updated 2019-02-24) (1817 words)
- Dilating letterforms 2018-11-04 (2207 words)
- Gauzy shit 2018-11-04 (643 words)
- Performance properties of sets of bitwise operations 2018-11-06 (updated 2018-11-07) (3334 words)
- A simple virtual machine for vector math? 2018-11-06 (updated 2018-11-09) (2325 words)
- Bootstrapping instruction set 2018-11-06 (updated 2019-05-03) (2991 words)
- Atmospheric pressure harvesting phoenix egg 2018-11-23 (2165 words)
- Tagging parsers 2018-11-23 (updated 2018-12-10) (1778 words)
- Household thermal stores 2018-12-02 (4012 words)
- Constant space lists 2018-12-10 (1515 words)
- Minimal imperative language 2018-12-10 (1153 words)
- Toward a lightweight, high-performance software prototyping environment 2018-12-10 (2326 words)
- Bleep 2018-12-10 (updated 2018-12-11) (1155 words)
- A two-operand calculator supporting programming by demonstration 2018-12-11 (3690 words)
- Improving Lua #L with incremental prefix sum in the ∧ monoid 2018-12-18 (1093 words)
- Evaluating DSP operations in minimal buffer space by pipelining 2018-12-18 (updated 2018-12-19) (3307 words)
- Commentaries on reading Engelbart’s “Augmenting Human Intellect” 2018-12-24 (updated 2018-12-25) (3798 words)
- IMGUI programming compared to Tcl/Tk 2018-12-24 (updated 2018-12-31) (1219 words)
- Yeso notes 2018-12-25 (updated 2019-01-01) (1672 words)
- Dehydrating processes and other interaction models 2018-12-28 (updated 2019-01-01) (5436 words)
- IMGUI programming language 2019-01-01 (updated 2019-02-04) (3275 words)
- Bresenham erosion 2019-01-04 (updated 2019-03-19) (1988 words)
- Median filtering 2019-01-17 (1711 words)
- Transactional event handlers 2019-01-24 (2086 words)
- Transactional memory, immediate-mode structured graphics, serialization, backtracking, and parsing 2019-01-25 (1102 words)
- The uses of introspection, reflection, and personal supercomputers in software testing 2019-02-04 (updated 2019-03-11) (1756 words)
- A review of Wirth’s Project Oberon book 2019-02-04 (updated 2019-03-19) (9558 words)
- My notes from learning Golang standard library 2019-02-08 (2975 words)
- Immutability-based filesystems: interfaces, problems, and benefits 2019-02-08 (updated 2019-03-19) (3439 words)
- Friction-cutting plastic 2019-02-25 (1183 words)
- Ultralight tunnel personal rapid transit 2019-03-11 (2193 words)
- Elastic metamaterials 2019-03-19 (2599 words)
- Tabulating your top event of the month efficiently using RMQ algorithms 2019-03-19 (1191 words)
- Accelerating Euler’s Method on linear time-invariant systems by exponentiating matrices 2019-03-24 (updated 2019-04-02) (1153 words)
- Fractal palettes 2019-04-02 (1061 words)
- Groping toward a high-efficiency speaker driver 2019-04-02 (2318 words)
- Gardening machines 2019-04-02 (updated 2019-04-24) (4818 words)
- Paper foil relays 2019-04-02 (updated 2019-04-24) (1625 words)
- Maximal-flexibility designs for printable building blocks 2019-04-20 (2632 words)
- A note on meditation 2019-04-20 (216 words)
- Why Minetest is so addictive 2019-04-20 (1177 words)
- Fencepost cognitive interface errors in text editing 2019-04-24 (3661 words)
- Dercuano stylesheet notes 2019-04-28 (updated 2019-05-03) (9987 words)
- Dercuano formula display 2019-04-30 (756 words)
- Three-stack generic macro assembler (design sketch) 2019-04-30 (1214 words)
- Dercuano drawings 2019-04-30 (updated 2019-05-01) (2392 words)
- Cold plasma oxidation 2019-05-01 (1037 words)
- Dercuano calculation 2019-05-01 (468 words)
- Why the Cartesian product of fields isn’t a field 2019-05-02 (262 words)
- Measuring submicron displacements by pitch bending a slide guitar 2019-05-05 (2667 words)