Made the website navbar and article lists more mobile friendly. Main motivation: improvised demos to people I meet IRL!
After breaking production and sweating for a bit hotfixing (not that anyone uses the website yet), I decided to be smart and created a staging server: ourbigbook-staging.herokuapp.com. Now I can blow that server up as I wish without afecting users. Documented at: cirosantilli.com/ourbigbook/staging-deployment
E.g.:
README.ciro
= My website

== h2

\Include[not-readme]
not-readme.ciro
= Not readme

== Not readme h2
the table of contents for index.html also contains the headers for not-readme.ciro producing:
This feature means that you can split large input files if rendering starts to slow you down, and things will still render exactly the same, with the larger table of contents.
This will be especially important for the website because initially I want users to be able to edit one header at a time, and join all headers with \Include. But I still want the ToC to show those children.
This was a bit hard because it required doing RECURSIVE SQL queries, something I hadn't done before: stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-table-into-a-tree/192462#192462 + of course the usual refactor a bunch of stuff and fix tests until you go mad.
Computer security by Ciro Santilli 40 Updated 2025-07-16
As mentioned at Section "Computer security researcher", Ciro Santilli really tends to like people from this area.
Also, the type of programming Ciro used to do, systems programming, is particularly useful to security researchers, e.g. Linux Kernel Module Cheat.
The reason he does not go into this is that Ciro would rather fight against the more eternal laws of physics rather than with some typo some dude at Apple did last week and which will be patched in a month.
AMD CPU by Ciro Santilli 40 Updated 2025-07-16
They have been masters of second sourcing things for a long time! One can ony imagine the complexity of the Intel cross licensing deals.
Zatoichi effect by Ciro Santilli 40 Updated 2025-07-16
This is a neologism by Ciro Santilli, it refers to the fact that Zatoichi was not fully blind, but extremely hard of sight, which makes him:
  • too capable for the blind people, who did not trust him
  • too incapable for non-blind people, who despised him
and metaphorically refers to similar situations where a person or group of people are in the middle of two groups and not part of either of them.
A related thing that comes to mind is Aum Shinrikyo's Prophet Shoko Asahara, who was semi blind, and would bully the fully blind people of his school for blind people.
X-inactivation by Ciro Santilli 40 Updated 2025-07-16
epigenetics mechanism.
Video 1.
X-Inactivation and Epigenetics by WEHImovies (2012)
Source. Shows how this makes every female mammal a chimera.
webpack Sass import by Ciro Santilli 40 Updated 2025-07-16
This shows how to produce a minimized fully embedded CSS file with webpack from a sass:
cd webpack/sass
npm install
npm run build
xdg-open index.html
That example produces a dist/main.css file which is a compresesd combination of:
The example under verilog/interactive showcases how to create a simple interactive visual Verilog example using Verilator and SDL.
https://raw.githubusercontent.com/cirosantilli/media/master/verilog-interactive.gif
You could e.g. expand such an example to create a simple (or complex) video game for example if you were insane enough. But please don't waste your time doing that, Ciro Santilli begs you.
Usage: install dependencies:
sudo apt install libsdl2-dev verilator
then run as either:
make run RUN=and2
make run RUN=move
Tested on Verilator 4.038, Ubuntu 22.04.
In those examples, the more interesting application specific logic is delegated to Verilog (e.g.: move game character on map), while boring timing and display matters can be handled by SDL and C++.
Vimium by Ciro Santilli 40 Updated 2025-07-16
Since you can't escape shitty browser GUIs and live in the command line, the next best thing you can do is to bring Vim bindings to your browser :-)
There is one major annoyance: you can't use ESC to leave the address bar focus, but using Tab as a workaround works:

There are unlisted articles, also show them or only show them.