Ciro Santilli's Stack Overflow contributions have, unsurprisingly, centered around the subjects he has worked with: systems programming and web development, and necessary tooling to get those done, such as Git, Python, Bash and Ubuntu.
His best answers are listed at: Section "The best articles by Ciro Santilli".
Stack Overflow has been the initial centerpiece of Ciro Santilli's campaign for freedom of speech in China, until Ciro noticed that GitHub might be potentially even more effective for it.
In Stack Overflow Ciro likes to:
- answer important questions found through Google which he needs to solve an actual problem he has right now, and for which none of the existing answers satisfied him, and close duplicates.
- monitor less known tags which very few people know a lot about and where the knowledge sharing desperately lacking, but in which Ciro specializes and therefore has some uncommon knowledge to share
In practice it also happens that Ciro:
- Googles for his own answers to remember some detail he wrote down but with slightly different terms that were closer to mind at the time, and find other similar questions for which he has the perfect answer.
- learns something new by chance, e.g. some new flashy feature of a new version of the C++ standard, thinks "this is awesome, there must be a Stack Overflow question for it", and then there is a question and he answers it
When he gets an upvote on one of his more obscure answers, Ciro often re-reads it, and often finds improvements to be made and makes them.
He doesn't like to refresh the homepage looking for easy reputation on widely known subjects. See also: online forums that lock threads after some time are evil.
The result is that Ciro ends up getting relatively a lot of reputation without much work! The term passive income, much beloved by fake investment gurus, comes to mind. But now it's "passive reputation"! And it is useless! Yay!
For this reason, Necromancer is Ciro's favorite badge (get 5 upvotes on a question older than 60 days), and as of July 2019, he became the 1 user with the most of this badge. Announcement on Twitter.
The number two at the time was VonC (see also: Section "Epic Stack Overflow users"), who had about 16 times more answers than Ciro in total! From this query: data.stackexchange.com/stackoverflow/query/1072396?&Date=2019-07-01&UserId=895245 it can be seen that as of July 2019, 1216 out of his 1329 answers were answered 60 days after the questions and constitute potential necromancers! Compare that to VonC's 1643 potential necromancers out of 21767 answers!
VonC eventually took back the lead in 2022, dude's a machine!!! twitter.com/cirosantilli/status/1546389532014247936
Someone at Ciro's work once said something along:and this does ring true in Stack Overflow as well. When you are answering stuff, it means that you either didn't know, or that the information wasn't well available, and so your specific application is progressing slowly because of that. Once the generic prerequisites are well solved and answered, you will spend much more time on your business specific things rather than anything else that can be factored out across projects, and so you will get more "directly useful work" done, and less Stack Overflow answers. Of course, without the prior research in place, you can't get the final product done either.
The more patents a research project generates, the less actually working products it produces.
In terms of per year reputation ranks, Ciro was in the top 100 in of the 2018 ranking with 38,710 reputation gained in that year: stackexchange.com/leagues/1/year/stackoverflow/2018-01-01?sort=reputationchange&page=4 (archive). He reached top 50 in 2022. Note that daily reputation is mostly capped to 200 per day, leading to a maximum 73000 per year. It is possible to overcome this limit either with bounties or accepts, and Ciro finds it amazing that some people actually break the 73k limit by far with accepts, e.g. Gordon Linoff reached 135k in 2018 (archive)! However, this is something that Ciro will never do, because it implies answering thousands and thousands of useless semi duplicate questions as fast as possible to get the accept. Ciro's reputation comes purely from upvotes on important question, and is therefore sustainable without any extra effort once achieved. Interestingly, Ciro appeared on top of the quarter SE rankings around 2019-11: web.archive.org/web/20191112100606/https://stackexchange.com/leagues but it was just a bug ;-)
There is no joy like answering an old question, and watching your better answer go up little by little until it dominates all others.
Stack Overflow reputation is of course, in itself, meaningless. People who contribute to popular subjects like web development will always have infinitely more reputation than those that contribute to low level subjects.
What happens on the specialized topics though is that you end up getting to know all the 5 users who contribute 95% of the content pretty soon as you study those subjects.
Like everything that man does, the majority of Ciro's answers are more or less superficial subjects that many people know but few have the patience to explain well, or they are updates to important questions reflecting upstream developments. But as long as they save 15 minutes from someone's life, that's fine.
There is great beauty when you are involved in a programming problem, and you suddenly remember: wait, I answered something related a few years ago! And especially so when you can go back and improve your old answer with new insight. This has great value, because when you were more newbie, you would have typed different words into Google Search than you would now. So by updating posts from when you were a newbie, you are helping other newbies more, as they are more likely to be also searching for those keywords. It is also very nice to have some head start on the answer's upvote count and not have to bootstrap yet another answer from 0 upvotes and have to go through all the competition!
For example, Ciro's most upvoted answer as of July 2019 is stackoverflow.com/questions/18875674/whats-the-difference-between-dependencies-devdependencies-and-peerdependencies/22004559#22004559 was written when he spent his first week playing with NodeJS (he was having a look at Overleaf, later merged into Overleaf, for education), which he didn't touch again for several years, and still hasn't "mastered" as of 2019! This did teach a concrete life lesson to Ciro however: it is impossible to know what is the most useful thing you can do right now very precisely. The best bet is to follow your instincts and do as much awesome stuff as you can, and then, with some luck, some of those attempts will cover an use case.
Ciro tends to take most pride on his systems programming answers, which is a subject that truly relatively few people know about. He likes it when he goes insanely deep into a subject, way beyond what OP had in mind, exposing full root causes and broader causes, see e.g.:
- stackoverflow.com/questions/1778538/how-many-gcc-optimization-levels-are-there/30308151#30308151
- stackoverflow.com/questions/34519521/why-does-gcc-create-a-shared-object-instead-of-an-executable-binary-according-to/55704865#55704865
- stackoverflow.com/questions/8352535/how-does-kernel-get-an-executable-binary-file-running-under-linux/31394861#31394861
Ciro also derives great joy from his "media related answers" (3D graphics, audio, video), which are immensely fun to write, and sometimes borderline art, see answers such as those under "OpenGL" and "Media" under the best articles by Ciro Santillis or even simpler answers such as:
There is something of greater value in perfectly presented technical knowledge, that goes beyond than simply getting something done. The pleasure of understanding and mastering something, and perhaps of the explanation itself. Sometimes when answering, Ciro feels like a tailor, where ASCII is his cloth. See also: Section "The art of programming", Section "Physics and the illusion of life".
Ciro's deep understanding of Stack Overflow mechanisms and its shortcomings also helped shape his ideas for: OurBigBook.com. So it is a bit funny to think that after all time Ciro spent on the website, he actually wants to destroy it and replace it with something better. There can be no innovation without some damage. It also led to Ciro's creation of Stack Overflow Vote Fraud Script.
After answering so many questions, he ended up converging to a more or less consistent style, which he formalized at:Like any other style guide, this answer style guide, once fully incorporated and memorized, allows Ciro to write answers faster, without thinking about formatting issues.
- meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers/326746#326746. Key self-quote:Intersperse paragraphs with lists, code blocks and other block elementsBeautiful text is not just text. Beautiful text is half text, and half ASCII art. There is almost a texture, or tempo, to it.
- meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title/311903#311903. Question title style only. After a few years later more people agreeing with that post which now had -12 votes: meta.stackoverflow.com/questions/422082/should-we-add-option-use-complete-sentences-to-first-answers-queue
Ciro also made a question title style guide: meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title/311903#311903 but for some reason the Stack Overflow community prefers their semi-defined title meta-language to proper English. Go figure.
Ciro started contributing to Stack Overflow in 2012 when he was at École Polytechnique.
Like all things that end up shaping the course of one's life, Ciro started contributing without thinking too much about it.
His first answer was to the LaTeX question: Standalone diagrams with TikZ?, which reflects the fact that this happened while Ciro was reaching his Ciro Santilli's Open Source Enlightenment.
Ciro's first upvote was for his 2012 question: How to run a Python script portably without specifying its full path?
When he started contributing, Ciro was still a newbie. One early event he will never forget was when someone mentioned a "man page", and Ciro commented saying that there was a typo!
When Ciro reached 15 points and gained the ability to upvote, it felt like a major milestone, he even took a screenshot of the browser! 1k, 10k and 100k were also particularly exciting. When the 100k cup (archive) arrived in 2018, Ciro made a show-off Facebook post (archive). At some point though, your brain stops caring, and automatically filters out any upvotes you get except on the answers that you are really proud of and which don't yet have lots of upvotes. The last remaining useless gamed achievement that Ciro looked forward to was legendary (archive), and which he achieved on 2021-02-16.
From the start, Ciro's motivations for contributing to Stack Overflow have been a virtuous circle of:
- save the world through free education
- It feels especially amazing when people in the real world start taking note of you, and either close friends tell you straight out that you're a Stack Overflow God, or as you slowly and indirectly find out that less close know or came to you due to your amazing contributions.
It is also amazing when you start having a repertoire of answers, and as you are writing a new answer, you remember: "hey, the knowledge of that answer would be so welcome here", and so you link to the other answer as well at the perfect point. This somewhat achieves does what OurBigBook.com aims to do: for each small section of a tutorial, gather the best answers by multiple people.
Another one is Aaron Hall, who is also very high on the necromancer list, answers in Python which is a topic Ciro cares about, and states on his profile:so another necromancer.
Follow me on Twitter and tell me what canonical questions you would like me to respond to!
Way to go.
Ciro also asks some questions on a ratio of about 1 question per 10 answers. But Ciro's questions tend to be about extremely niche that no one knows/cares about, and a high percentage of them ends up getting self answered either at asking time or after later research.
Some fun reactions to Ciro's Stack Overflow activity:
- Eric B comments[ref] on Ciro's answer to the question "What does multicore assembly language look like?":
Holy shit, Ciro made it his masters degree to write OP an answer. What a long and detailed answer, thanks!
It ain't perfect, but it's decent enough.
From a technical point of view, it can do anything that Microsoft Windows can. Except being forcefully installed on every non-MacOS 2019 computer you can buy.
Ciro Santilli's conversion to Linux happened around 2012, and was a central part of Ciro Santilli's Open Source Enlightenment, since it fundamentally enables the discovery and contribution to open source software. Because what awesome open source person would waste time porting their amazing projects to closed source OSes?
Ciro's modest nature can be seen as he likes to compare this event Buddha's Great Renunciation.
Linux should track glibc and POSIX command line utilities in-tree like BSD Operating System, otherwise people have no way to get the thing running in the first place without blobs or large out-of-tree scripts! Another enlightened soul who agrees.
Particularly interesting in the history of Linux is how it won out over the open competitors that were coming up in the time: MINIX (see the chat) and BSD Operating System that got legally bogged down at the critical growth moment.
You must watch this: truth Happens advertisement by Red Hat.
Many subjects have changed very little in the last hundred years, and so it is mind-blowing that people have to pay for books that teach them!
If computers are bicycles for the mind, Ciro wants this website to be the Ferrari of the mind.
Since Ciro Santilli was young, he has been bewildered by the natural sciences and mathematics due to his bad memory.
The beauty of those subjects has always felt like intense sunlight in a fresh morning to Ciro. Sometimes it gets covered by clouds and obscured by less important things, but it always comes back again and again, weaker or stronger with its warmth, guiding Ciro's life path.
As a result, he has always suffered a lot at school: his grades were good, but he wasn't really learning those beautiful things that he wanted to learn!
School, instead of helping him, was just wasting his time with superficial knowledge.
First, before university, school organization had only one goal: put you into the best universities, to make a poster out of you and get publicity, so that more parents will be willing to pay them money to put their kids into good university.
Ciro once asked a chemistry teacher some "deeper question" after course was over, related to the superficial vision of the topic they were learning to get grades in university entry exams. The teacher replied something like:Ciro feels that this was one of the greatest compliments he has ever received in his life. This teacher, understood him. Funny how some things stick, while all the rest fades.
You remind me of a friend of mine. He always wanted to understand the deeper reason for things. He now works at NASA.
Another interesting anecdote is how Ciro Santilli's mother recalls that she always found out about exams in the same way: when the phone started ringing as Ciro's friends started asking for help with the subjects just before the exam. Sometimes it was already too hopelessly late, but Ciro almost always tried. Nothing shows how much better you are than someone than teaching them.
Then, after entering university, although things got way better because were are able to learn things that are borderline useful.
Ciro still felt a strong emotion of nostalgia when after university his mother asked if she could throw away his high school books, and Ciro started tearing them all down for recycling. Such is life.
University teachers were still to a large extent researchers who didn't want to, know how to and above all have enough time and institutional freedom to teach things properly and make you see their beauty, some good relate articles:
The very fact that you had very little choice of what to learn so that a large group can get a "Diploma", makes it impossible for people to deeply learn what the really want.
This is especially true because Ciro was in Brazil, a third world country, where the opportunities are comparatively extremely limited to the first world.
Also extremely frustrating is how you might have to wait for years to get to the subject you really want. For example, on a physics course, quantum mechanics is normally only taught on the third year! While there is value to knowing the pre-requisites, holding people back for years is just too sad, and Ciro much prefers backward design. And just like the university entry exams, this creates an entry barrier situation where you might in the end find that "hey, that's not what I wanted to learn after all", see also: students must have a flexible choice of what to learn.
We've created a system where people just wait, and wait, and wait, never really doing what they really want. They wait through school to get into university. They wait through university to get to masters. They wait through masters to get to PhD. They wait through PhD to become a PI. And for the minuscule fraction of those that make it, they become fund proposal writers. And if you make any wrong choice along the, it's all over, you can't continue anymore, the cost would be too great. So you just become software engineer or a consultant. Is this the society that we really want?
And all of this is considering that he was very lucky to not be in a poor family, and was already in some of the best educational institutions locally available already, and had comparatively awesome teachers, without which he wouldn't be where he is today if he hadn't had such advantages in the first place.
But no matter how awesome one teacher is, no single person can overcome a system so large and broken. Without technological innovation that is.
The key problem all along the way is the Society's/Government's belief that everyone has to learn the same things, and that grades in exams mean anything.
Ciro believes however, that exams are useless, and that there are only two meaningful metrics:
- how much money you make
- fame for doing for doing useful work for society without earning money, which notably includes creating new or better free knowledge such as in academic papers, either novel or review
Even if you wanted to really learn natural sciences and had the time available, it is just too hard to find good resources to properly learn it. Even attending university courses are hit and miss between amazing and mediocre teachers.
If you go into a large book shop, the science section is tiny, and useless popular science books dominate it without precise experiment descriptions. And then, the only few "serious" books are a huge list of formulas without any experimental motivation.
And if you are lucky to have access to an university library that has open doors, most books are likely to be old and boring as well. Googling for PDFs from university courses is the best bet.
Around 2012 however, he finally saw the light, and started his path to Ciro Santilli's Open Source Enlightenment. University was not needed anymore. He could learn whatever he wanted. A vision was born.
To make things worse, for a long time he was tired of seeing poor people begging on the streets every day and not doing anything about it. He thought:which like everything else is likely derived subconsciously from something else, here Schindler's list possibly adapted quote from the Talmud:
He who teaches one thousand, saves one million.
He who saves the life of one man saves the entire world.
So, by the time he left University, instead of pursuing a PhD in theoretical Mathematics or Physics just for the beauty of it as he had once considered, he had new plans.
We needed a new educational system. One that would allow people to fulfill their potential and desires, and truly improve society as a result, both in rich and poor countries.
And he found out that programming and applied mathematics could also be fun, so he might as well have some fun while doing this! ;-)
So he started Booktree in 2014, a GitLab fork, worked on it for an year, noticed the approach was dumb, and a few years later started building this new version. The repo github.com/booktree/booktree is a small snapshot of Ciro's 2014 brain on the area, there were quite a few similar projects at the time, and most have died.
Ciro is basically a librarian at heart, and wants to be the next:
- Jimmy Wales
- Brewster Kahle
- Tim Berners Lee
- Tim O'Reilly, who once brilliantly described O'Reilly Media as "a lifestyle business that got out of control" [ref]
- Aaron Swartz. Minus suicide hopefully.
Ciro Santilli used to play video games when he was young. But after he reached 18 he got bored of them.
The problem is that no matter how you look at, the how to become famous in the real world game is just always more interesting and fulfilling.
Therefore adult Ciro enjoys only the following types of video game content in video form, so that other people waste their lives playing the games while you only see the highlights:
- speedrunning, including:
- tool-assisted speedrun, Ciro's favorite by far
- real-time attack speedrun
- meta breaking glitches, including in speedrunning and on PvP-games.
- Magic: The Gathering
- Video game reviews
The aspect Ciro enjoys about non-PvP games is atmosphere. Not as conveyed by useless story telling, but as conveyed by music and graphics, and the context deep idea. Legend of Zelda and Metroid come to mind.
And too many games commit the sins of dependency of dexterity, no save states, how do I skip this boring part, or jump straight to the beautiful one?
Another important point is; the perfect video game is an infinitely hard one.
It also doesn't help if you are already typing on a computer all day long on your job. Hands get tired. Eyes have an infinite capacity to consume useless YouTube videos however. Medically proved.
As a result, Ciro just watches videos about video games. Notably games he played when he was a teenager and already understand the rules for.
And things got even worse as after Ciro Santilli's Open Source Enlightenment, and he started to feel bad about playing any game that is not open source.
When in doubt, choose the course that has the most experimental work Updated 2024-12-15 +Created 1970-01-01
You can always learn pure theory later on for free or very cheap from books.
And above all, you can always learn software engineering later on for free, because the programming community is so much more open than any other so far, notably e.g. with Stack Overflow and GitHub, see also: Section "Ciro Santilli's Open Source Enlightenment". Ciro Santilli is trying to change that with OurBigBook.com, but don't hold your breath. But it is increasingly hard to understand why there isn't an university that forces teachers to publish all their notes and lecture videos (which should be mandatorily recorded) with a Creative Commons License, and then let anyone take whichever exams they want for a small fee or for free.
Actually, there is a good chance you will learn to program, like it or not, because chances are that you won't be able to find as decent a job doing anything else.
But there is one thing you cannot learn for free: laboratory work. Laboratory work is just too expensive to carry out outside of an institution.
Basically, if you don't do laboratory work in undergrad, you will very likely never be able to do so in your entire life.
Because laboratories are so rare and expensive, it is laboratories that put you in the best most unfair position at creating world changing deep tech startups, which is why when in doubt, choose the course that has the most experimental work. Yes, you won't be able to achieve those insanely concentrated equities of the early-Internet, as you will need more venture capital to run your company, but those days are over now, deal with it.