Your sites Log in Sign up Menu

Principles

When I started working on Blot, I did not know how to program. I did less research than I ought to have done. I wasted time creating tools that others had already made.

Infrastructure

  • I avoid using tools that have been around for less than a decade.
  • I try to understand the environment in which Blot's code runs.

Back-end

  • Reliability is the most important attribute of your software. I dislike software that is not dependable.
  • Speed is the second most important attribute. I dislike software that is slow. Blot involves lots of i/o, like reading files from a disk or syncing a file over a network. Because of this, most of what really needs to be optimized is i/o. Nothing is especially computationally intensive. Avoiding even one external HTTP request from a function saves much more time than endless language-level performance optimizations.

Front-end

  • Speed above everything. I run almost everything send to the client through as many build-time minifiers and compressors as is reasonable. I want to improve the speed of Blot. I also use a neat script called instant.page to begin fetching a page when the user hovers over a link.

  • As little JavaScript as possible. In general, I want to do as much computation as possible on the server, as little as possible on the client. This is because I control the server, but not the client.