The following contributions where not immediately verified by others, but they were not reverted either and I think they are good.
DateProjectTypeDescription
2014-12plasticboy/vim-markdownReview patchAdd tilde-fenced code blocks
Some of the contributions are subjectively self evaluated based on:
  • How many significant lines changed (no indentation changes, moves, mass refactoring, trivial tests, etc.):
    0only trivial changes
    1< 20
    2< 150
    3
    150
  • How hard it was to make it. 4 algorithmic lines are harder than 100 web development/documentation lines.
Firstly, in 2012, while he was at École Polytechnique, Ciro Santilli was introduced to LaTeX (thank God for French mathematical obsession), and his mind was blown:
Ha, so I can write my own books, and so can anyone, for free?
he though. Why isn't everyone doing that!
One particular event stood out: Ciro made a small change to his teacher's course material, who blessed be him (dude's a legend, Ciro just noticed he has some Chinese publications with another French dude, e.g. www.amazon.co.uk/高效算法-应试与提高必修128例-克里斯托弗-Christoph-Durr/dp/B078SJQPVK "High-efficiency algorithm competitions 128 examples", did he write it the Chinese himself?? Must be of course to complement the notoriously low French professor salaries), made it available, and then Ciro gave him back the .tex file. Ciro was just a bit worried about how the teacher would be able to tell what he had changed in the file to validate the change. The teacher just said of course, "no problem, I'll just use diff". Ciro had never heard of diff. Let alone Git of course, though yes, this was a bit early in Git's history version control systems had been around since forever of course. This was 2011 or 2012, about 4 or 5 years into a superior education curricula with various courses involving computers, some requiring quite a lot of "fill these empty functions" style programming. Education is a joke. Anyways, this was a prelude to exactly what Ciro wanted to do in OurBigBook.com. This might have been the one actually: webia.lip6.fr/~durrc/Iut/Notes580.pdf
Not long afterwards, Ciro started playing with Linux. Until then, Ciro had had some contacts with the mysterious operating system at university, and was a bit puzzled what the point of it was! He clearly remembers:
University should be forced to use only open source software and hardware in undergrad teaching courses by law BTW.
Then came an Ubuntu live disk on his own machine, and finally a measly 40GB dual book partition in a Microsoft Windows machine on a laptop. At first, it took a lot of time to learn all the crazy new terminal stuff! Yes, at this point, Ubuntu was already usable enough without the terminal, an accomplishment actually. But as a programmer, Ciro felt obliged to learn. Many hours were spent reading man pages at the library. But it all just felt so right, and sometimes powerful... true wizardry.
And ten years later, Ciro was seriously considering buying a computer without Windows pre-installed. He had not used Windows a single tie on a personal machine even once in those ten years!
Finally, to finish things off Ciro found two websites that changed his life forever, and made be believe that there was an alternative: Stack Overflow and GitHub.
The brutal openness of it all. The raw high quality content. Ugliness and uselessness too no doubt. But definitely spark in a sea of darkness.
Ciro Santilli's projects Updated 2025-07-16
A summary of minor projects is given at: Ciro Santilli's minor projects.
This section is a dump for anything else, to keep those sacred first sections that show on the top of the homepage clean.
This notation is designed to be relatively easy to write. This is achieved by not drawing ultra complex ASCII art boxes of every component. It would be slightly more readable if we did that, but prioritizing the writer here.
Two wires are only joined if + is given. E.g. the following two wires are not joined:
  |
--|--
  |
but the following are:
  |
--+--
  |
Simple symmetric components:
Asymmetric components have multiple letters indicating different ports. The capital letter indicates the device, and lower case letters the ports. The wires then go into the ports:
  • D: diode
    • a: anode (where electrons can come in from)
    • c: cathode
    Sample usage in a circuit:
    --aDc--
    Can also be used vertically like aany other circuit:
    |
    a
    D
    c
    |
    We can also change the port order, the device is still the same due to capital D:
    --cDa--
    
     |
    Dac--
    
     |
    Dca--
    
       |
    --caD
  • DC DC source. Ports:
    • p: positive
    • n: negative
    E.g. a 10 V source with a 10 Ohm resistor would be:
    +---pDC_10_n---+
    |              |
    +----R_10------+
    If only one side is given, the other is assumed to be at a the ground G. We can also omit p and m in that case and assume that p is the one used, e.g. the above would be equivalent to:
    DC_10---R_10---G
    If the voltage is not given, it is assumed to be a variable voltage power supply.
  • LED: same as diode
  • I: electric current source. Ports:
  • P: potentiometer source. Ports:
    • 1: one of the sides
    • 2: the middle
    • 3: the other side
  • T: transistor. The ports are sgTd:
    • s: source
    • g: gate
    • d: gate
    Sample usage in a circuit:
    ---+
       |
    --sgTd--
    All the following are also equivalent:
       |
       g
    --sTd--
    
        |
    --Tsgd--
       |
  • V: Voltmeter. Ports:
    • p: positive
    • n: negative
    If we don't need to specify explicit positive and negative sides, we can just use:
    ---V---
    without any ports. This is notably often the case for AC circuits.
    Optionally, we can also add the sides as in:
  • ports can also be separated by double underscores from the component names to increase readability. Single underscores can also be used to increase readability of longer multi-word component names e.g.:
    RPI_PICO_W__1gp0__3gnd
                |       |
                R_2k    |
                |       |
                +-aLEDc-+
    which is the same as:
    RPI_PICO_W
    1gp0  3gnd
    |       |
    R_2k    |
    |       |
    +-aLEDc-+
    represents a circuit linking port 1 of a Raspberry Pi Pico W, which is GPIO pin 0, through a resistor and an LED, back to pin 3 of the board, which is ground.
Numbers characterizing components are put just next to each component with an underscore. When there is only one parameter, standard units are assumed, e.g.:
+-----+
|     |
C_1p  R_2k
|     |
+-----+
means:
Micro is denoted as u.
Wires can just freely come in and out of specs of a component, they are then just connected to the component, e.g.:
DC_10---R_10---G
means applying a voltage of 10 V across a 10 Ohm resistor, which would lead to a current of 1 A
If a component has more than two parameters, units are used to distinguish them when possible, e.g.:
AC_1kV_2MHz
means an AC source with:
Bitcoin addresses are by convention expressed in Base58, which is a human readable binary-to-text encoding invented by Bitcoin.
It is a bit like Base64, but obsessed with eliminating characters that look like one another in popular but stupid fonts like capital "I" and lower case ell "l". As such, any embedded text is rather obfuscated due to this limitations, and people often resort to leet-like replacements such as '1' to represent 'I'.
This seems to be one of the earliest strategies used to encode messages into the Bitcoin blockchain. The first known example appears in 2011. Then starting November 2011, a large number of messages were inscribed n short successsion, presumably by a single person or small group.
The interest in Base58 encoding might have initially arisen with people's desire to have "vanity addresses", that is Bitcoin addresses that have real words in them, much like vanity plates or vanity numbers. Such addresses with long words in them are hard to find while keeping the address spendable, because they have to correspond to a private key. An extreme notable example is:which contains the awkward 13 letter word:
embarrassable
in it. TODO: proof that it is pendable?
Perhaps inspired by this, some people also decided to use Base58 addresses as a way to create more general unspendable inscriptions, even even though the method is much more clumsy and complicated than P2FKHS. There is however a certain art to working under limitations.
Figure 1. . Although it is not solely focused on inscriptions and may also contain functional burn addresses, it is likely that the methods of Khatib/Legout capture the overall trend of base58 inscription counts.
These messages were originally found with: github.com/cirosantilli/bitcoin-inscription-indexer#payload-size-out-utxo-2vals which tracks the largest transactions with unspent outputs.
Bitcoin Burn Addresses: Unveiling the Permanent Losses and Their Underlying Causes later revealed many new ones.
Finding Base58 messages is intrinsically hard for a few reasons
The interesting following transactions contain base58 encoded messages on addresses, sorted chronologically, and heighlighted either due to their earliness or historical or artistic quality:
Related:
Ciro Santilli's selfish desires Updated 2025-07-16
Just enough money to raise 3 kids in a rich country without having to work (so he can focus on whatever project he wants) and no more. Then maximize fame.
Fame is slightly convertible into money with generally little liquidity, but is more valuable if money becomes useless in a TEOTWAWKI.
Of course, in the end, one just does whatever seems cool and useful, and the Gods decide what proportion of fame/money/power they will get. Due to Ciro's love of open source software however, a higher fame percentage seems more likely than money.
Searching just for just "Santilli" on Google does not give any Ciro Santilli hits. The name appears to be a minor variation of the much more common "Santini". Since the name is not that common, it is possible to go over all noteworthy hits. Some relevant ones are shown at: interesting members of the Santilli family.
Searching just for just "Ciro" on Google does not give any Ciro Santilli hits, mostly some smaller brands that could be beaten, this is Ciro's main initial fame metric goal. Reaching it would require doing things known much beyond the programming community however, as Ciro has done until of 2019. ciro.com is from an electromechanics consultancy as of 2019, so it's not bad, let them be.
At the next useless gamified level, an honorary OBE and more ambitiously ForMemRS from the Royal Society post nominal letters would be nice.
The ultimate dream however would be to beat Cyrus the Great himself on Google searches ("Ciro" == "Cyrus" in Portuguese), maybe becoming "Cyrus the Greater"? That one will be a bit harder though. Maybe if Falung Gong becomes the dominant religion in 2000 years like Christianism did, catapulting the Judaism benefactor Cyrus into greater fame, then there is some hope for Ciro as well.
Ciro Santilli fantasizes that he is more compassionate than average.
He feels that this manifests itself notably through his desire/ability to create amazing documentation content and notably for free.
Also related is Ciro's worry about social inequality and how to reduce it.
In school, especially before university, Ciro felt that he always treated "the ugly/unpopular" (it is horrifying that such perception of a person exists! but true) girls really well, which led some of them to like him romantically. In part this was de to Ciro Santilli's self perceived compassionate personality and enter through the narrow gate approach to life. But was also partly Ciro's fault, he should have been clearer that he was not truly interested, but he was also lonely, curious about how it was like having girlfriend, and it feels good to have someone like you. This was a sin.
He also feels like he treated working class employees (and don't forget, this is Brazil, e.g. his building janitors in São Paulo lived in the nearby favela!) with extreme equality, sometimes even better, than other richer people.
One thing Ciro does not do however is give money to beggars on the street. Those beggars do make Ciro feel extremely bad for not giving, but he feels that they must be drug addicts to be out on the street like that, and that this money would be better invested in OurBigBook.com. But maybe this is just wrong. How fucked up the world is, how far away are we from unconditional basic income???
Once Ciro was hanging out with one of his father's on a group tourist, and she was a lesbian borderline/actually activist social reform person, and she promptly gave to a beggar without batting an eye, and that made a big impression on Ciro, making him feel even worse about himself.
It must be said that at times this compassion can be a weakness see Ciro's trip to the Municipal Market of São Paulo.
Ciro like to interpret this as him having "a creative personality" with the tradeoff of generally not being amazing at his well defined jobs.
Ciro is a high flying bird scientist. As mentioned at by Tommaso Fontana at zom.wtf/about/
I'm what happened when you can't choose a single career path
Ciro is obsessed by that which is "quirky". This also often has a parallel with "naughty". He often fantasizes about an imaginary parallel between that feeling and Jobs and Wozniak's blue box.
Ciro's natural fight-or-flight response is to hide in a little corner, and try to solve the problem out. Then get distracted and start procrastinating. And then he tries to solve the unsolvable. Someone Ciro barely new once told him quite correctly:
In the event of war, you would be the type that hides away and makes the bombs.
This is also perhaps why Ciro likes prison decks in Magic: The Gathering. You just sit on your corner, making yourself safer and safer, until the opponent can't do you any harm and concedes.
There are of course infinitely many videos on the "entrepreneurial mindset" online, and it is impossible to know if they are bullshit, or if everyone just feels like that, but OK, just let Ciro feels that he is specially creative will you?
In the words of Rob Pike[ref]:
mostly building weird stuff no one uses, but occasionally getting it right, such as with UTF-8 and Go
Video 1.
What Predicts Academic Ability? by Jordan B Peterson (2017)
Source. Good quotes:
Creative people continuously step outside of the domain of evaluation structures
and:
If you are creative and you go off on tangents all the time, there's some probability that one of those tangents is going to be exactly what is needed at the time, and you are going to become hyper-successful as a consequence
[but the probability of that being the right time and place for the idea is extraordinarily low]
The sensible thing to tell anybody is "you shouldn't do it, your probability of success is so low, that its better to just to something sensible".
But the problem with that, is that creative people can't do that, because they are creative. A creative person who isn't being creative, they just wither and die.
Which brings Here's to the crazy ones to mind.
Ciro also one heard a story, likely apocryphal, but still nonetheless resonated with him, that went something like this (TODO find source, Google wasn't helping, stuff that happened before website as usual):
The newly hired manager of some subsection of DuPont (or some other gigantic chemical company) came into the office, and found a chemical engineer, completely drunk in the middle of the day.
Outraged, the manager searched for this colleagues who explained.
Ah, don't mind John (or some other name), the guy invented Teflon (or some other substance) which accounted for 20% of our revenue last year. Even if he does not do anything else in his entire career, his salary won't make any difference compared to those gains, and we take the chance that he might invent something else later.
Ciro likes this story because although he does not drink, he feels his work mind works in a related way. Often, when there is something really hard he knows needs doing he hides, and distracts himself with less important tasks, or by watching crap on YouTube, because he knows that the hard task will hurt his mind. Then one day he wakes up and says: OK, fuck it, let's do it, and does it.
Once Ciro got a performance review from a colleague that said:
If Ciro spent as much effort on his job as he does on side projects, he'd be the most amazing worker.
This is closely related to effortless effort.
Yes, low conscientiousness, give it to me.
Video 2.
And I am not and never have been 'familiar' scene from The Big Short (2015)
. Source.
People want an authority to tell them how to value things, but they choose this authority not based on facts or results. They choose it because it seems authoritative and familiar. And I am not and never have been familiar.
blog.sbensu.com/posts/high-variance-management/ High Variance Management:
Like movies, software projects have parts that require high variance and parts that don't. For most projects, the logging system can be off-the-shelf and predictable. But core parts of the product that require novel design should be as good as they can be.
Ciro Santilli's sinophily Updated 2025-10-27
Two things come to mind when Ciro Santilli thinks about his sinohpilia.
There is a strong "Ciro Santilli's knowledge hoarding" side to it. Ciro has decided that he has to know EVERYTHING about China. It's culture. It's people. It's art. And so once that has been decided, it becomes inevitable.
But of course, there is also the "which part of Ciro's inner being led to that hoarding decision" part of things. Mishima's quote often comes to mind:
Every night I return to my desk precisely at midnight. I thoroughly analyze why I am attracted to a particular theme. I drag it into my conscious mind. I boil it into abstraction.
Exoticism is undoubtedly part of it.
Maybe it has something to do with growing up observing 5th+ generation Japanese Brazilians immigrants, well, being Asians and crushing it academically. But also being quiet people, and sometimes misfits. I.e., nerds.
Maybe there is also something to do with the influence Japanese anime, highly popular during Ciro's childhood in Brazil. Ciro, unlike many of his friends, left that relatively early, as he got into the deeper pleasures of natural sciences and then more traditional Asian culture. But still.
Of course, "Ciro Santilli" with quotes, since all of those are either taken directly from others, or had been previously formulated by others.
Ciro Santilli's sport practice Updated 2025-07-16
Playing soccer just feels amazing, because you are constantly running around, but with a more specific goal in mind: to get that ball into that goal!
Playing soccer was specially amazing in the flat wet sand beach of Santos. weekend, the sea, feet touching the sand, the sun going down, and your school mates next to you. Nirvana.
It is also true that under those conditions, the skin of your feet will get ripped off due to running on the slightly wet and flat sand no matter how thick it has become. But it is worth it.
Teams would often be slit between "the team with shirts vs the team without shirts", who would just take off their shirts. The two best players would take turns picking players into their teams, the first one to pick would be decided by odds and evens (par ou ímpar).
A pair of Havaianas, or Havaianas rip-offs, stuck into the sand, or even just some school bags, would do as a goal posts. More organized people, especially adults, would have their own water pipe goal with a proper net and all. But doing so would spoil the fun of endless discussions if a non flat ball had gone in or not into an imaginary rectangle.
That's how soccer was meant to be played.
Ciro became however disillusioned with soccer after his injury. It is a shame.
And so after that, Ciro decided to dedicate himself to sports where you can't hurt your knee.
Ciro hates water, so swimming is out of the question. What could be more boring than going back and forth on a fixed location a million times to gain some milliseconds?
And so Ciro has been left with the gym as the only main option for a while.
Running would have been a consideration, but Ciro Santilli's legs sometimes itch when he runs.
This is until he ended up living in a place with decent roads for cycling in the late 2010's, which led to Ciro Santilli's cycling.
Video 1.
Adults playing soccer in Santos, São Paulo, Brazil beach on a rainy day
. Source. It is still warm though as you can see from their clothing.
Ciro Santilli's Twitter accounts Updated 2025-07-16
Accounts controlled by Ciro Santilli on Twitter:
Ciro's call hierarchy notation Updated 2025-07-16
This is a simple hierarchical plaintext notation Ciro Santilli created to explain programs to himself.
It is usuall created by doing searches in an IDE, and then manually selecting the information of interest.
It attempts to capture intuitive information not only of the call graph itself, including callbacks, but of when things get called or not, by the addition of some context code.
For example, consider the following pseudocode:
f1() {
}

f2(i) {
  if (i > 5) {
    f1()
  }
}

f3() {
  f1()
  f2_2()
}

f2_2() {
  for (i = 0; i < 10; i++) {

    f2(i)
  }
}

main() {
  f2_2()
  f3()
}
Supose that we are interested in determining what calls f1.
Then a reasonable call hierarchy for f1 would be:
f2(i)
  if (i > 5) {
    f1()

  f2_2()
    for (i = 0; i < 10; i++) {
      f2(i)

    main
    f3
f3()
  main()
Some general principles:
  • start with a regular call tree
  • to include context:
    • remove any blank lines from the snippet of interest
    • add it indented below the function
    • and then follow it up with a blank line
    • and then finally add any callers at the same indentation level

Unlisted articles are being shown, click here to show only listed articles.