Where is my mind (2023)

Snapshot of the (technical) problems I’m thinking about right now: AWS: Logging is a special case of telemetry (or vice-versa). Unify telemetry logging client. Incremental step: logging system is a “sink” for the telemetry, and the source of truth for querying metrics logs. Reimplement the metrics “collector” to be browser-compatible. Currently it uses nodejs async_hooks. Need to get this done before another 6+ months of technical debt accrues. 1 week of work....

3 Dec 2023 · Justin M. Keyes

Task management

Problem Task management is how you decide when and what to work on—in life, business, projects. In compsci terms this is a priority queue. But unlike a textbook priority queue, the dimensions and measurements are unspecified, amorphous, and dynamic. And the cost of failure is high: The most pernicious and subtle bugs are from mismatched assumptions made by authors of various components. — Fred Brooks, MMM For many this is like diet fads: try lots of hopeless methodologies, give up, repeat....

1 Feb 2023 · Justin M. Keyes

VimConf 2019

I presented a keynote at VimConf 2019. The organizers wrote some notes here. The first part of the talk is a sermon about the state of text-editing art. The rest is an exposition of recent Neovim tech. The main themes are: System vs Application Legacy paradox Leverage = (impact / cost) There were too many slides. I spent years thinking about the topics, and weeks building the presentation. But I ran out of time....

5 Nov 2019 · Justin M. Keyes

Vim's social life

Vim is a shell command, and its fast startup supports that use-case: shell tasks, whether ad-hoc (interactive) or orchestrated (pipeline, script), are cheap and thus frequent. Yet Vim’s startup story is relatively unpolished. We expect shell tools to consume standard input (“stdin”) and emit to standard output (“stdout”)—but Vim supports this awkwardly, at best. The endeavor is never mentioned in Vim tutorials, including the “Unix as IDE” hymnals. And it is puzzled out of Vim’s documentation only by careful inspection....

1 Jan 2018 · Justin M. Keyes

Performance Profiling

Random pausing is all you need: https://scicomp.stackexchange.com/questions/2173/what-are-some-good-strategies-for-improving-the-serial-performance-of-my-code/2719#2719 https://www.youtube.com/watch?v=xPg3sRpdW1U&feature=youtu.be http://gernotklingler.com/blog/gprof-valgrind-gperftools-evaluation-tools-application-level-cpu-profiling-linux/

1 Jul 2017 · Justin M. Keyes

Terminal Control

Unix “TTY” terminal programming is a hodgepodge of tribal lore. There’s no “Best Practices” guide nor canonical “quick start” tutorial. Even Bash (the shell) has wooledge and set -x. But terminal programming is a tenuous détente of undocumented conventions. This is my attempt to present a low-friction, self-contained tutorial for tinkering with your TTY and quickly seeing results. You can skip to the Two-minute tutorial to start trying things immediately....

19 Dec 2016 · Updated 23 Jan 2024 · Justin M. Keyes

Artifact System

Software projects produce artifacts—a concept less particular than package which has a version, manifest and structure conforming to some package system. Package systems are smart, and thus complex. The key feature of an artifact is that it is dumb. Package management is a hard problem, with lots of half-broken systems serving particular ecosystems: Cargo for Rust, pip for Python, NPM for node.js, Maven for Java. Artifact systems are not so well-studied, though the concept is high-leverage: unlike package systems, an artifact system can:...

6 Jul 2016 · Updated 29 Oct 2019 · Justin M. Keyes

Economies of scale and self-interested cooperation

Quietly tucked away in the last slide of a 2011 Netflix cloud talk (Mr. Cockcroft talks a lot): Cloud Standardization? Cloud features and APIs should be a commodity not a differentiator Differentiate on scale and quality of service Competition also drives cost down This is a claim that competition and standardization are desirable and beneficial at the individual level—an insight perhaps also employed by Google with its Chrome and Android strategy....

17 Mar 2016 · Justin M. Keyes

What I've Learned From GitHub

technically superior plugin isn’t always the most popular. hard to gain traction with users. signify is better than gitgtutter, but it didn’t hit the front page of HN sneak is better than seek, but seek hit the front page of HN plugins with better marketing/branding don’t always win. sneak has better branding. (but signify doesn’t really do much to market itself) you can announce the same thing every month and it will be completely new or at least newly-compelling to many people....

17 Feb 2014 · Justin M. Keyes

The Philosopher's Pile of Stones

The generalization of this is “communication”, but trying to focus on “improving communication” leaves important stones unturned. Like “end poverty”, it is a mission that begins without a fully-formed thought. There is no supply of communication that can be buttressed; rather, to improve communication, instances of the abstract must be identified. Shannon crystallized this as the problem of encoding information. We know from practice of information theory that information encoding benefits from semantic awareness:...

14 Dec 2013 · Justin M. Keyes

How to make Vim like Sublime Text

disadvantages: I became familiar with Vim very gradually. By the time I found out about pico, I had long been editing X86Config with i and :wq. I was thankful for the syntax highlighting and remote availability writing C and Java on a Solaris ssh account. I embraced visual-block-mode during late nights at the CMOS lab after editing hspice input vectors manually became intolerable. I internalized [hjkl] by using Gmail shortcuts. And on OS X, actively-developed open source editors are few....

5 Oct 2013 · Justin M. Keyes

Java parser

I wrote a toy parser (or rather a parser specification in the syntax of a parser-generator) for COOL, and I’m wondering if mature, popular languages actually use these things to generate their parsers. The PMD project makes use of a (modified) copy of the JavaCC parser-generator definition for the Java grammar. Inspection of that file reveals the initial 1997 timestamp by author Sriram Sankar. According to Advances in Software Engineering, “The Java 1....

27 Jun 2013 · Justin M. Keyes

Brendan Eich comments on Dart, JavaScript

I stashed this away long ago and can’t find the source (HN? reddit? a blog?). Funny how lossy the web can be… Brendan Eich: Performance gaps in JS engines get filled all the time. This is different in kind from potentially adding a second VM, requiring cross-VM-heap cycle GC, etc. See https://lists.webkit.org/pipermail/webkit-dev/2011-December/018811.html Dennis described some of C’s flaws (which JS inherited) in typically humble style here: http://cm.bell-labs.com/cm/cs/who/dmr/chist.html JS has too many gaffes and WTFs, but at this point, for most developers, they are (mostly) avoidable paper-cuts....

12 Jun 2013 · Justin M. Keyes

Low-level programming discourages automatic optimization

Frances Allen: C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. Example from HN user ‘waps’: one example [vs Haskell] that C can never hope to optimize : deforestation. Before optimization : the programmer requests a list to be created, fill it by calling functions and then passes the completed datastructure list (or tree) along to another function, which executes commands according to what the list contains....

8 Jun 2013 · Justin M. Keyes

Impossible Ideas

Corollary to Paul Graham’s frighteningly ambitious startup ideas: a list of impossible ideas that interest me personally. ubiquitous, secure, painless (one-click) bitcoin payment ubiquitous, effortless, anonymous, encrypted communication painless, anonymous, decentralized internet access effortless expense/receipt management effortless information management / mind mapping Working on the impossible is like exercise: if you produce something half good then you have something better than any existing similar product.

4 Nov 2012 · Justin M. Keyes

Piñata Programming

We’ve all been there, perhaps some never leave: Having wandered the halls of a haunted debugging session for most of a day, you happen upon a room containing a piñata. In delirium and desperation, you ctrl-v and f5 the piñata until a cookie falls out. Somehow, your mad key-strokes have busted the ghost bug; time to go home, yay! Sometimes software code doesn’t fit perfectly. Third-party integration, protocol bugs, opaque libraries, timing and async bugs, and Katamari technical debt preclude a true understanding of the cause of the program behavior....

3 Nov 2012 · Justin M. Keyes

Computer security

hardening your system: remove/disable “root CAs belonging to the U.S. government” on OS X: “DoD Root CA 2” and “DoD CLASS 3 Root CA” why? carnivore, echelon, Clipper chip, NSA data center, (update 2023) may become illegal in the EU: eIDAS hardening network access: set up port knocking https://github.com/moxie0/knockknock

30 Aug 2012 · Updated 21 Nov 2023 · Justin M. Keyes

You say priori, I say posteriori

Levels of aspiration: Arguments like “but it works” or “it gets the job done” are tell-tale signs of someone happy at the lowest level of the technical hierarchy and your cue to just quietly back out of the debate. —DHH  I bet you over-engineered your startup: Of the three startups I've worked with, two of the three were ridiculously over-engineered monstrosities that were way over time budget. It was clear that the CIO/CTO wanted to do cool fun stuff and not build a marketable product....

10 Jul 2012 · Justin M. Keyes

Talk: Silicon Carbide and Body-Machine Interfaces

Notes from Dr. Stephen E. Saddow's presentation, "Silicon Carbide Biomedical Technology for Bone Implants, Stents and Brain-Machine Interfaces". Electrical Engineering Department Department of Molecular Pharmacology and Physiology University of South Florida Abstract: Amorphous silicon carbide (SiC) has been used for several years as a non-biofouling coating in biomedical devices such as coronary stents and bone implants. However, up to recently, the biocompatibility of single crystal SiC, which presents appealing bio-sensing potentialities, has been in question....

28 Oct 2011 · Justin M. Keyes


human singularity: compulsive excellence (Fountainhead) neuro-chic: designer DNA trivializes current human cognitive limiations, perhaps changes human nature such that current human inclinations are obsolete technological singularity: AI, self-replicating nanobots = telekinesis energy singularity: near-perpetual motion One who overcomes his apparent nature is far more interesting than one whose nature is effortlessly extraordinary. The extraordinary are the drivers of stability and improvement.

28 Sep 2011 · Justin M. Keyes

The Most Interesting Things

In the spirit of Hilbert’s problems, here are the most interesting things I currently know of: Emergence fundamental (non-contact) forces & particles (muons, quarks, …) ⇨ fluid dynamics, etc. Collatz Ecologies “how structure emerges out of iteration” “When stable patterns emerge in some iterated system, it’s possible to build new systems on top of the old ones. Moreover, these new systems can be seen as independent of the old ones.” Collatz conjecture: Pick any (nonzero, whole) number....

1 Sep 2011 · Updated 21 Nov 2023 · Justin M. Keyes

Why write?

It is a question that you will face, should you deign to start a blog (or column, journal, etc.). EUTHYPHRO: Why do you have a blog? YOU: Because it exercises my urchin mind and I want to share my meager kibbles with SearchEngineGod. Weak answer. Too cliché. We must find a better answer. 10 weeks later… YOU: Friend, ask me “Why do you have a blog?” again! EUTHYPHRO: You still have a blog?...

18 Jan 2011 · Justin M. Keyes

The Holographic Principle

I am reading about and attempting to discuss the holographic principle, a conjecture in theoretical physics that the three-dimensional universe is a projection of a two-dimensional (i.e., surface area) encoding¹. This would imply that all the particles and properties and everything of our universe may be compressed substantially without losing information: reality is a (logical, not literal) projection of a very large bitmap. The theory also could “explain” surprising properties of the universe, such as the discrete (i....

22 Oct 2010 · Justin M. Keyes

Learning Asymptote

Learning without thought is labor lost; thought without learning is perilous. - Confucius It is said that some people are “quick learners”. Does that mean they can learn anything quickly? No step in the path of learning challenges them? No; rather, they learn quickly compared to others, but that quickness is nevertheless measured in mortal units. For slow and quick learners alike, the process of learning requires some time and concentration....

5 Oct 2010 · Justin M. Keyes

Tomato in, IPCop out

It even shows inodes usage. A 100 MHz P1 was overkill. I've bid vale to my beige-box IPCop firewall. I had built it in 2004 out of a circa-1996 Pentium machine and a couple NICs. For 6 years I've wondered when this little choo-choo would die... it never did. Some neat things about IPCop compared to its contemporaries: usage graphs, port forwarding, intrusion detection, dynamic DNS; plus other things I never used, such as traffic shaping....

20 Aug 2010 · Justin M. Keyes

How to call a Cygwin bash command from Windows CMD

Using Cygwin on Windows, sometimes you need to run a bash command or script from the Windows command line (CMD, DOS, shell). This is particularly useful if you want to use the Task Scheduler instead of messing with cron on cygwin. If you’re going to schedule tasks on a Windows system, then the Windows Task Scheduler is probably the sane way to do it. To run a bash script or command from outside of cygwin, you need to pass it to the bash executable with a little prep work....

13 Aug 2010 · Justin M. Keyes

Sunset Rubdown

Big Time invented a new adult beverage à la plage. Its working title was “Frankenberry”; the release title is “Sunset Rubdown”. Drink recipe: a good splash of Malibu coconut rum a grave splash of Cointreau (triple sec) a lil’ can of pineapple juice put the ice in now a nice bath of sangria on top The bedrock of ice breaks the fall of the sangria, and the two forbidden flavors are stratified like an ice-cream cake sunset....

3 May 2010 · Justin M. Keyes

The Secret History

Tartt, Donna. The Secret History. New York: Knopf Books for Young Readers, 2004. The original copyright year is 1992, so that explains why everyone uses payphones, and most knowledge–or rather, information–still, is available only at a premium, that is, by the study of untranslated primary texts, or contact with the educated. The book is dedicated to Bret Easton Ellis; it turns out that Ellis mentions the characters in one of his own novels....

27 Mar 2010 · Justin M. Keyes


There is a plane at the end of the road on a planet. I found it by driving as far as possible. I drove undeterred towards the bushes. I followed the path to an opening. I pointed towards the water. I watch the silent traffic on the bridge. Palm trees with wild hair watch the water and the traffic. The big flat plain of water is a hole in the land, a dip in the high frequency, a pending project, an ignored part, ear-marked but forgotten....

5 May 2008 · Justin M. Keyes