Ciro Santilli
๐Ÿ”—

Ciro Santilli (ไธ‰่ฅฟ็Œด)

๐Ÿ”—
Software engineer. Passion for computers, natural sciences and education. Opinions are my own.
๐Ÿ”—
๐Ÿ”—
This website is written in Cirodown and its source code is located at: https://github.com/cirosantilli/cirosantilli.github.io
๐Ÿ”—
ID_photo_of_Ciro_Santilli_taken_in_2013.jpg Ciro_Santilli's_learn_teach_apply_logo.png
๐Ÿ”—

1. Ciro Santilli ไธ‰่ฅฟ็Œด | โ‡‘ toc | โ†‘ parent "Ciro Santilli (ไธ‰่ฅฟ็Œด)"

๐Ÿ”—
๐Ÿ”—
Quick facts:
๐Ÿ”—
Figure 1. Sun Wukong (ๅญ™ๆ‚Ÿ็ฉบ) is a playful and obscenely powerful monkey. He protects a Buddhist monk, and likes eating fruit, just like Ciro. Oh, and Goku from Dragon Ball is based on him. His Japanese name is "Sun Wukong" (same Chinese characters with different Japanese pronunciation) for the love. His given name "Wukong" means literally "the one who mastered the void", which is fucking awesome. Source.
๐Ÿ”—

1.1. The most important projects done by Ciro Santilli | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด has sometimes wasted time with low impact projects such as those listed at Ciro Santilli's minor projects instead of doing higher impact projects such as those mentioned at: Section 1.2. "The most important projects Ciro Santilli wants to do".
๐Ÿ”—
But maybe "Everything you did brought you where you are now." applies, maybe it is during the "low impact activities" that one gets the inspiration and experience required for the "high impact ones".
๐Ÿ”—

1.1.1. Linux Kernel Module Cheat (LKMC) | โ‡‘ toc | โ†‘ parent "The most important projects done by Ciro Santilli"

๐Ÿ”—
๐Ÿ”—
This is the most important technical tutorial project that Ciro Santilli ไธ‰่ฅฟ็Œด has done in his life so far as of 2019.
๐Ÿ”—
The scope is insane and unprecedented, and goes beyond Linux-kernel-land alone.
๐Ÿ”—
It ate up every system programming content he had previously written, including:
๐Ÿ”—
so that this repo would better be called "System Programming Cheat". But "Linux Kernel Module Cheat" sounds more hardcore ;-)
๐Ÿ”—
Other major things that could be added there as well in the future are:
๐Ÿ”—
Due to this project, some have considered Ciro to be (archive):
some kind of Linux kernel god.
๐Ÿ”—
which made Ciro smile, although "Linux kernel documenter God" would have been more precise.
๐Ÿ”—
Code 1. Terminal dump of a LKMC session with two tmux panes with QEMU on left and GDB on right showing a backtrace of the Linux kernel code currently being under QEMU.
[    1.451857] input: AT Translated Set 2 keyboard as /devices/platform/i8042/s1โ”‚loading @0xffffffffc0000000: ../kernel_modules-1.0//timer.ko
[    1.454310] ledtrig-cpu: registered to indicate activity on CPUs             โ”‚(gdb) b lkmc_timer_callback
[    1.455621] usbcore: registered new interface driver usbhid                  โ”‚Breakpoint 1 at 0xffffffffc0000000: file /home/ciro/bak/git/linux-kernel-module
[    1.455811] usbhid: USB HID core driver                                      โ”‚-cheat/out/x86_64/buildroot/build/kernel_modules-1.0/./timer.c, line 28.
[    1.462044] NET: Registered protocol family 10                               โ”‚(gdb) c
[    1.467911] Segment Routing with IPv6                                        โ”‚Continuing.
[    1.468407] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver              โ”‚
[    1.470859] NET: Registered protocol family 17                               โ”‚Breakpoint 1, lkmc_timer_callback (data=0xffffffffc0002000 <mytimer>)
[    1.472017] 9pnet: Installing 9P2000 support                                 โ”‚    at /linux-kernel-module-cheat//out/x86_64/buildroot/build/
[    1.475461] sched_clock: Marking stable (1473574872, 0)->(1554017593, -80442)โ”‚kernel_modules-1.0/./timer.c:28
[    1.479419] ALSA device list:                                                โ”‚28      {
[    1.479567]   No soundcards found.                                           โ”‚(gdb) c
[    1.619187] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100                 โ”‚Continuing.
[    1.622954] ata2.00: configured for MWDMA2                                   โ”‚
[    1.644048] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ P5โ”‚Breakpoint 1, lkmc_timer_callback (data=0xffffffffc0002000 <mytimer>)
[    1.741966] tsc: Refined TSC clocksource calibration: 2904.010 MHz           โ”‚    at /linux-kernel-module-cheat//out/x86_64/buildroot/build/
[    1.742796] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x29dc0f4sโ”‚kernel_modules-1.0/./timer.c:28
[    1.743648] clocksource: Switched to clocksource tsc                         โ”‚28      {
[    2.072945] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8043โ”‚(gdb) bt
[    2.078641] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibisโ”‚#0  lkmc_timer_callback (data=0xffffffffc0002000 <mytimer>)
[    2.080350] EXT4-fs (vda): mounting ext2 file system using the ext4 subsystemโ”‚    at /linux-kernel-module-cheat//out/x86_64/buildroot/build/
[    2.088978] EXT4-fs (vda): mounted filesystem without journal. Opts: (null)  โ”‚kernel_modules-1.0/./timer.c:28
[    2.089872] VFS: Mounted root (ext2 filesystem) readonly on device 254:0.    โ”‚#1  0xffffffff810ab494 in call_timer_fn (timer=0xffffffffc0002000 <mytimer>,
[    2.097168] devtmpfs: mounted                                                โ”‚    fn=0xffffffffc0000000 <lkmc_timer_callback>) at kernel/time/timer.c:1326
[    2.126472] Freeing unused kernel memory: 1264K                              โ”‚#2  0xffffffff810ab71f in expire_timers (head=<optimized out>,
[    2.126706] Write protecting the kernel read-only data: 16384k               โ”‚    base=<optimized out>) at kernel/time/timer.c:1363
[    2.129388] Freeing unused kernel memory: 2024K                              โ”‚#3  __run_timers (base=<optimized out>) at kernel/time/timer.c:1666
[    2.139370] Freeing unused kernel memory: 1284K                              โ”‚#4  run_timer_softirq (h=<optimized out>) at kernel/time/timer.c:1692
[    2.246231] EXT4-fs (vda): warning: mounting unchecked fs, running e2fsck isdโ”‚#5  0xffffffff81a000cc in __do_softirq () at kernel/softirq.c:285
[    2.259574] EXT4-fs (vda): re-mounted. Opts: block_validity,barrier,user_xatrโ”‚#6  0xffffffff810577cc in invoke_softirq () at kernel/softirq.c:365
hello S98                                                                       โ”‚#7  irq_exit () at kernel/softirq.c:405
                                                                                โ”‚#8  0xffffffff818021ba in exiting_irq () at ./arch/x86/include/asm/apic.h:541
Apr 15 23:59:23 login[49]: root login on 'console'                              โ”‚#9  smp_apic_timer_interrupt (regs=<optimized out>)
hello /root/.profile                                                            โ”‚    at arch/x86/kernel/apic/apic.c:1052
# insmod /timer.ko                                                              โ”‚#10 0xffffffff8180190f in apic_timer_interrupt ()
[    6.791945] timer: loading out-of-tree module taints kernel.                 โ”‚    at arch/x86/entry/entry_64.S:857
# [    7.821621] 4294894248                                                     โ”‚#11 0xffffffff82003df8 in init_thread_union ()
[    8.851385] 4294894504                                                       โ”‚#12 0x0000000000000000 in ?? ()
                                                                                โ”‚(gdb)
๐Ÿ”—

1.1.2. Ciro Santilli's Stack Overflow contributions | โ‡‘ toc | โ†‘ parent "The most important projects done by Ciro Santilli"

๐Ÿ”—
๐Ÿ”—
Figure 2. Ciro Santilli's amazing Stack Overflow profile.
๐Ÿ”—
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 a Git, Python, Bash and Ubuntu.
๐Ÿ”—
His best answers are listed at: Section 1.4. "The best articles by Ciro Santilli".
๐Ÿ”—
Stack Overflow has been the initial centerpiece of Ciro Santilli's campaign for freedom of speech in China.
๐Ÿ”—
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 It also happens that Ciro:
๐Ÿ”—
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 rep on widely known subjects.
๐Ÿ”—
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, who had about 16 times more answers than Ciro in total! From this query: https://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!
๐Ÿ”—
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: https://stackexchange.com/leagues/1/year/stackoverflow/2018-01-01?sort=reputationchange&page=4 (archive). 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: http://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.
๐Ÿ”—
For example, Ciro's most upvoted answer as of July 2019 is https://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.
๐Ÿ”—
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 Santilli or even simpler answers such as:
๐Ÿ”—
Ciro's deep understanding of Stack Overflow mechanisms and its shortcomings also helped shape his ideas for: write free books to get famous website. 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: https://meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers/326746#326746 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.
๐Ÿ”—
Ciro also made a question title style guide: https://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 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 looks forward to is legendary (archive).
๐Ÿ”—
Figure 4. Ciro Santilli with his Stack Overflow 100k reputation cup.
๐Ÿ”—
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 write free books to get famous website aims to do: for each small section of a tutorial, gather the best answers by multiple people.
๐Ÿ”—
Ciro feels that his Stack Overflow alter ego is the user kenorb, which has a surprisingly similar contribution pattern (one of the top necromancers) and subjects (Python, Bash). Ciro tried to contact him to say hi, but it was hard to find a contact. kenorb, feel free to send Ciro a hi one of those days.
๐Ÿ”—
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:
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.
๐Ÿ”—

1.1.3. Ciro Santilli's campaign for freedom of speech in China | โ‡‘ toc | โ†‘ parent "The most important projects done by Ciro Santilli"

๐Ÿ”—
๐Ÿ”—
Since 2015 Ciro Santilli ไธ‰่ฅฟ็Œด has carried out a campaign to promote freedom of speech in China.
๐Ÿ”—
The campaign has centered around publishing censored keywords on his Stack Overflow username, thus using his considerable Stack Overflow presence to sabotage the website in China. Here is an early web archive.
๐Ÿ”—
Figure 5. Chrysanthemum Xi Jinping with ๅ…ญๅ›› spice added by Ciro Santilli.
๐Ÿ”—
Like most people in the West, Ciro has always been for political freedom of speech, and therefore against the Chinese government's policies.
๐Ÿ”—
However, the seriousness of the matter only fully dawned on him in 2015 when, his mother-in-law, a then a 63-year-old lady, was put into jail for 15 days for doing Falun Gong.
๐Ÿ”—
And all of this was made 100 times worse because Ciro deeply loves several aspects of China, such as food, language, art and culture, and saw it all being destroyed by the Communists.
๐Ÿ”—
The rationale of this is to force the Chinese Government to either:
  • leave things as they are, and let censored keywords appear on Stack Overflow (most likely scenario)
  • block Stack Overflow, and lose billions of dollars with worse IT technology
  • disable the Great Firewall
๐Ÿ”—
In the beginning, this generated some commotion, but activity reduced as novelty wore off, and as he collected the reply to all possible comments at: https://github.com/cirosantilli/china-dictatorship.
๐Ÿ”—
This campaign has led him to have an insane profile view/reputation ratio, since many people pause to look at his profile. He is point "A" at the top right corner of Figure 6. "Scatter plot of Stack Overflow user reputation vs profile views in March 2019 with Ciro Santilli marked as A.":
Figure 6. Scatter plot of Stack Overflow user reputation vs profile views in March 2019 with Ciro Santilli marked as A.
๐Ÿ”—
Ciro feels that the view count started increasing more slowly since 2020 compared to his reputation, likely every single Chinese user has already viewed the profile.
๐Ÿ”—
๐Ÿ”—
Figure 7. Ciro Santilli with a stone carved Budai in the Feilai Feng caves near the Lingyin Temple in Hangzhou taken during his legendary 2012 touristic trip to China. Will he ever be able to go to China again to re-experience such marvelous locations?
๐Ÿ”—

1.1.4. Ciro Santilli's minor projects | โ‡‘ toc | โ†‘ parent "The most important projects done by Ciro Santilli"

๐Ÿ”—
๐Ÿ”—
These are some smaller projects that Ciro Santilli ไธ‰่ฅฟ็Œด carried out. They are all either for fun, or misguided use of his time done by an younger self:
๐Ÿ”—
๐Ÿ”—
  • Vim: sometimes Ciro want crazy and wasted his time with Vimscript:
    • Vim Markdown: the owner plasticboy was really nice and made Ciro a collaborator for his contributions, notably a live ToC outline and the header mappings
    • Vundle Plugin Tester, which he used to start the testing system of Vim Markdown
๐Ÿ”—
๐Ÿ”—

1.2. The most important projects Ciro Santilli wants to do | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
These are projects which Ciro seriously considering doing, and which he believe could have a considerable impact in the world, given a few months of work.
๐Ÿ”—
They are sorted in order of "most likely to get done first".
๐Ÿ”—

1.2.1. Write free books to get famous website | โ‡‘ toc | โ†‘ parent "The most important projects Ciro Santilli wants to do"

๐Ÿ”—
๐Ÿ”—
In this project, Ciro Santilli ไธ‰่ฅฟ็Œด wants to explore if it is possible to create a sustainable website that will make people write free university-level natural science books for free.
๐Ÿ”—
The initial incentive for those people is to make them famous and allow them to get more fulfilling jobs more easily, although Ciro also wants to add money transfer mechanisms to it later on.
๐Ÿ”—
The key intended technical innovation of the website is a PageRank-like algorithm that answers the key questions:
  • who knows the most about subject X
  • what is the best content for subject X
๐Ÿ”—
where any user can create any new subject X.
๐Ÿ”—
Ciro envisioned a Wikipedia-like page, where you can fork a version of any subject or header to improve it, suggest changes via a "GitHub-pull-request-like" mechanism, and create bug reports under any given header.
๐Ÿ”—
Then, while reading an article about a subject, say, "The Fundamental Theorem of Calculus", you would be able to click a button, and easily view the other best articles about that subject.
๐Ÿ”—
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!
๐Ÿ”—
More than that however, if such project succeeds, it could fundamentally change the way university is organized, enormously improving its efficiency.
๐Ÿ”—
It could destroy the current educational system and replace it by one that lets people choose what they want to learn.
๐Ÿ”—
Ciro decided to start with a decent markup language with a decent implementation: Cirodown. Once that gets reasonable, he will move on to another attempt at the website itself.
๐Ÿ”—
1.2.1.1. Write free books to get famous website motivation | โ‡‘ toc | โ†‘ parent "Write free books to get famous website"
๐Ÿ”—
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:
You remind me of a friend of mine. He always wanted to understand the deeper reason for things. He now works at NASA.
๐Ÿ”—
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.
๐Ÿ”—
Another interesting anecdote is how Ciro'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, 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.
๐Ÿ”—
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.
๐Ÿ”—
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:
  • reputation points for doing useful work for society
  • how much money you make
๐Ÿ”—
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 open source software Enlightenment.
๐Ÿ”—
Firstly, he was introduced to LaTeX, 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!
๐Ÿ”—
Then he 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.
๐Ÿ”—
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:
He who teaches one thousand, saves one million.
๐Ÿ”—
which like everything else is likely derived subconsciously from something else, here Schindler's list possibly adapted quote from the Talmud: "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, worked on it for an year, noticed the idea was dumb, and then started building this new idea and the courage to do it.
๐Ÿ”—
Ciro is basically a librarian at heart, and wants to be the next Jimmy Wales or Brewster Kahle.
๐Ÿ”—
Video 1. Jimmy Wales' 2005 TED Talk about Wikipedia. Source.
๐Ÿ”—
Video 2. Brewster Kahle's 2007 TED Talk about the Internet Archive. Source.
๐Ÿ”—
Video 3. Sal Kahn from Khan Academy 2016 TED talk. Ciro is not a big fan of the "basis on top of basis focus" because of his obsession with backward design, but "learn to mastery at your own pace" and "everyone can be a world class innovator" are obviously good. Source.
๐Ÿ”—

1.2.2. Large cohesive game world for robotic-like artificial intelligence development | โ‡‘ toc | โ†‘ parent "The most important projects Ciro Santilli wants to do"

๐Ÿ”—
๐Ÿ”—
๐Ÿ”—
Video 4. Ciro's 2D continuous game. Source.
๐Ÿ”—
Figure 9. Screenshot of the basketball stage of Ciro's 2D continuous game. Big kudos to game-icons.net for the sprites.
๐Ÿ”—
Less good discrete prototype: https://github.com/cirosantilli/rl-game-2d-grid YouTube demo: Video 5. "Ciro Santilli's 2D discrete game.".
๐Ÿ”—
Video 5. Ciro Santilli's 2D discrete game. Source.
๐Ÿ”—
Video 6. Two Minute Papers coverage of Google DeepMind's 2019 Capture the Flag paper. DeepMind does some similar simulations to what Ciro wants, but TODO do they publish source code for all of them? If not Ciro calls bullshit on non-reproducible research. Does this repo contain everything? Source.
๐Ÿ”—
Video 7. Two Minute Papers coverage of OpenAi's 2019 hide and seek paper. OpenAI does some similar simulations to what Ciro wants, but TODO do they publish source code for all of them? If not Ciro calls bullshit on non-reproducible research, and even worse due to the fake "Open" in the name. Does this repo contain everything? Source.
๐Ÿ”—
Video 8. The Primer YouTube channel contains several 2D continuous simulations and explains AI techniques used. Notably, they have several interesting multiagent game ideas. TODO once again, are all sources published? Claims Unity based, so another downside, relying on non-FOSS engine. Ciro became mildly jealous of this channel when he found out about it, because at 800k subscribers at the time, the creator is likely able to make a living off of it, something which Ciro thought impossible. It hinges a large part of the amazing 3D game presentation, well done. Source.
๐Ÿ”—
The goal of this project is to reach artificial general intelligence.
๐Ÿ”—
A few initiatives have created reasonable sets of robotics-like games for the purposes of AI development, most notably: OpenAI and Google DeepMind.
๐Ÿ”—
However, all projects so far have only created sets of unrelated games, or worse: focused on closed games designed for humans!
๐Ÿ”—
What is really needed is to create a single cohesive game world, designed specifically for this purpose, and with a very large number of game mechanics.
๐Ÿ”—
Notably, by "game mechanic" is meant "a magic aspect of the game world, which cannot be explained by object's location and inertia alone". For example:
  • when you press a button here, a door opens somewhere far away
  • when you touch certain types of objects, a chemical reaction may happen, but not other types of objects
๐Ÿ”—
Much in the spirit of http://www.gvgai.net/, we have to do the following loop:
  • create an initial game
  • find an AI that beats it well
  • study the AI, and add a new mechanic that breaks the AI, but does not break a human!
๐Ÿ”—
The question then becomes: do we have enough computational power to simulation a game worlds that is analogous enough to the real world, so that our AI algorithms will also apply to the real world?
๐Ÿ”—
To reduce computation requirements, it is better to focus on a 2D world at first. Such world with the right mechanics can break any AI, while still being faster to simulate than a 3D world.
๐Ÿ”—
The initial prototype uses the Urho3D open source game engine, and that is a reasonable project, but a raw Simple DirectMedia Layer + Box2D + OpenGL solution from scratch would be faster to develop for this use case, since Urho3D has a lot of human-gaming features that are not needed, and because 2019 Urho3D lead developpers disagree with the China censored keyword attack.
๐Ÿ”—
Simulations such as these can be viewed as a form of synthetic data generation procedure, where the goal is to use computer worlds to reduce the costs of experiments and to improve reproducibility.
๐Ÿ”—

1.2.3. Videos of all key physics experiments | โ‡‘ toc | โ†‘ parent "The most important projects Ciro Santilli wants to do"

๐Ÿ”—
It is unbelievable that you can't find easily on YouTube recreations of many of the key physics/chemistry experiments and of common laboratory techniques.
๐Ÿ”—
Experiments, the techniques required to to them, and the history of how they were first achieved, are the heart of the natural sciences. Without them, there is no motivation, no beauty, no nothing.
๐Ÿ”—
School gives too much emphasis on the formulas. This is bad. Much more important is to understand how the experiments are done in greater detail.
๐Ÿ”—
The videos must be completely reproducible, indicating the exact model of every experimental element used, and how the experiment is setup.
๐Ÿ”—
A bit like what Ciro Santilli ไธ‰่ฅฟ็Œด does in his Stack Overflow contributions but with computers, by indicating precise versions of his operating system, software stack, and hardware whenever they may matter.
๐Ÿ”—
It is understandable that some experiments are just to complex and expensive to re-create. As an extreme example, say, a precise description of the LHC anyone? But experiments up to the mid-20th century before "big science"? We should have all of those nailed down.
๐Ÿ”—
We should strive to achieve the cheapest most reproducible setup possible with currently available materials: recreating the original historic setup is cute, but not a priority.
๐Ÿ”—
Furthermore, it is also desirable to reproduce the original setups whenever possible in addition to having the most convenient modern setup.
๐Ÿ”—
Lists of good experiments to cover be found at: the most important physics experiments.
๐Ÿ”—
This project is to a large extent a political endeavour.
๐Ÿ”—
Someone with enough access to labs has to step up and make a name for themselves through the huge effort of creating a baseline of amazing content without yet being famous.
๐Ÿ”—
Until it reaches a point that this person is actively sought to create new material for others, and things snowball out of control. Maybe, if the Gods allow it, that person could be Ciro.
๐Ÿ”—
Tutorials with a gazillion photos and short videos are also equally good or even better than videos, see for example Ciro's How to use an Oxford Nanopore MinION to extract DNA from river water and determine which bacteria live in it for an example that goes toward that level of perfection.
๐Ÿ”—
The "Applied Science" YouTube channel by Ben Krasnow does well in that direction: it deals with materials, chemistry, microscopy, electronics. Uber practical, well described setups deep science stuff, he is awesome and has been at Google since 2016: https://www.linkedin.com/in/ben-krasnow-6796a94/
๐Ÿ”—
๐Ÿ”—

1.2.4. Website front-end for a mathematical formal proof system | โ‡‘ toc | โ†‘ parent "The most important projects Ciro Santilli wants to do"

๐Ÿ”—
When Ciro Santilli ไธ‰่ฅฟ็Œด first learnt the old Zermeloโ€“Fraenkel set theory and the idea of formal proofs, his mind was completely blown.
๐Ÿ”—
Formalization of mathematics
๐Ÿ”—
Finally, there it was: a proper and precise definition of mathematics, including a definition of integers, reals and limits!
๐Ÿ”—
Theorems are strings, proofs are string manipulations, and axioms are the initial strings that you can use.
๐Ÿ”—
Once proved, press a button on your computer, and the proof is automatically verified. No messy complicated "group of savants" reading it for 4 years and looking for flaws!
๐Ÿ”—
There are a few formal proof systems with several theorems in their Git tracked standard library. The hottest ones are:
๐Ÿ”—
And here are some more interesting links:
๐Ÿ”—
However, it is unbelievable mind, that there isn't one awesome and dominating website, that hosts all those proofs, possibly an on the browser editor, and which all mathematicians in the world use as the one golden reference of mathematics to rule them all!
๐Ÿ”—
Just imagine the impact.
๐Ÿ”—
Standard library maintainers don't have to deal with the impossible question of what is "beautiful" or "useful" enough mathematics to deserve merged: users just push content to the online database, and star what they like!
๐Ÿ”—
Interested in a conjecture? No problem: just subscribe to its formal statement + all known equivalents, and get an email on your inbox when it gets proved!
๐Ÿ”—
Are you a garage mathematician and have managed to prove a hard theorem, but no will will read your proof? Fuck that, just publish it on the system and let it get auto verified. Overnight fame awaits.
๐Ÿ”—
Notation incompatibility hell? A thing of the past, just automatically convert to your preferred representation.
๐Ÿ”—
Such a system would be the perfect companion to write free books to get famous website. Just like computer code offers the backbone of Linux Kernel Module Cheat Linux kernel tutorials, a formal proof system website would be the backbone of mathematics tutorials!
๐Ÿ”—
Furthermore, it would not be too hard to achieve this system!
๐Ÿ”—
All we would need would be something analogous to a package registry like Python's PyPI or NodeJS' registry.
๐Ÿ”—
Then, each person can publish packages containing proofs.
๐Ÿ”—
Packages can rely on other packages that contain pre-requisites definition or theorem.
๐Ÿ”—
Packages are just regular git repos, with some metadata. One notable metadata would be a human readable description of the theorems the package provides.
๐Ÿ”—
The package registry would then in addition to most package registries have a CI server in it, that checks the correctness of all proofs, generates a web-page showing each theorem.
๐Ÿ”—
All proofs can be conditional: the package registry simply shows clearly what axiom set a theorem is based on.
๐Ÿ”—
๐Ÿ”—

1.3. The next big thing | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
If you are going to live, you might as well chase one of them.
๐Ÿ”—
You might not achieve them in your lifetime, but you never know. At some point, the pieces just "fall into place", and they happen.
๐Ÿ”—
And they will all come from deep tech.
๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด would like to contribute to them. but this is a bit less realistic than software projects.
๐Ÿ”—
But who knows? Maybe he can code some stuff in those areas.
๐Ÿ”—
And one can at least have some fun by learning deeply about those subjects.
๐Ÿ”—

1.3.1. Molecular biology technologies | โ‡‘ toc | โ†‘ parent "The next big thing"

๐Ÿ”—
๐Ÿ”—
As of 2019, the silicon industry is ending, and molecular biology technology is one of the most promising and growing field of engineering.
๐Ÿ”—
Figure 10. 42 years of Microprocessor trend data by Karl Rupp. Only transistor count increases, which also pushes core counts up. But what you gonna do when atomic limits are reached? The separation between two silicon atoms is 0.23nm and 2019 technology is at 5nm scale. Source.
๐Ÿ”—
Such advances could one day lead to both biological super-AGI and immortality.
๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด is especially excited about dNA-related technologies, because DNA is the centerpiece of biology, and it is programmable.
๐Ÿ”—
First, during the 2000's, the cost of dNA sequencing fell to about 1000 USD per genome in the end of the 2010's: Figure 11. "Cost per genome vs Moore's law from 2000 to 2019.", largely due to "Illumina's" technology.
๐Ÿ”—
The medical consequences of this revolution are still trickling down towards medical applications of 2019, inevitably, but somewhat slowly due to tight privacy control of medical records.
๐Ÿ”—
Figure 11. Cost per genome vs Moore's law from 2000 to 2019. Source.
๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด predicts that when the 100 dollar mark is reached, every person of the First world will have their genome sequenced, and then medical applications will be closer at hand than ever.
๐Ÿ”—
But even 100 dollars is not enough. Sequencing power is like computing power: humankind can never have enough. Sequencing is not a one per person thing. For example, as of 2019 tumors are already being sequenced to help understand and treat them, and scientists/doctors will sequence as many tumor cells as budget allows.
๐Ÿ”—
Then, in the 2010's, CRISPR/Cas9 gene editing started opening up the way to actually modifying the genome that we could now see through sequencing.
๐Ÿ”—
What's next?
๐Ÿ”—
Ciro believes that the next step in the revolution could be could be: de novo DNA synthesis .
๐Ÿ”—
Other cool topic include: simulations of cell metabolism, protein and small molecule, microscopy (crystallography, cryoEM), analytical chemistry (mass spectroscopy), single cell techniques (Single-cell RNA sequencing), ...
๐Ÿ”—
It's weird, cells feel a lot like embedded systems: small, complex, hard to observe, and profound.
๐Ÿ”—
Ciro is sad that by the time he dies, humanity won't have understood the brain, maybe not even a measly E. Coli... Heck, even key molecular biology events are not yet fully understood, see e.g. transcription regulation.
๐Ÿ”—

1.3.2. Quantum computing could be the next big thing | โ‡‘ toc | โ†‘ parent "The next big thing"

๐Ÿ”—
As of 2020, Ciro Santilli ไธ‰่ฅฟ็Œด is getting excited about quantum computing, which is a deep tech field.
๐Ÿ”—
He's a bit lazy to explain why here, but Googling will be more than enough.
๐Ÿ”—
There is a risk it will fizzle and the bubble pop, like any revolution.
๐Ÿ”—
But recent developments are making it too exciting to ignore.
๐Ÿ”—

1.3.3. Brain computer interfaces | โ‡‘ toc | โ†‘ parent "The next big thing"

๐Ÿ”—
๐Ÿ”—
This is one of the deep tech bets that Ciro Santilli ไธ‰่ฅฟ็Œด would put his money in as of 2020.
๐Ÿ”—
How hard could it be? You just have to learn the encoding of the neural spine/eyes/ear, add an invasive device that multiplexes it, and then the benefits could be mind blowing.
๐Ÿ”—
๐Ÿ”—
Interestingly and obviously, the initial advances in the area are happening for people that have hearing or vision difficulties. Since they already have a deficient sense, you don't lose that much by a failed attempt.
๐Ÿ”—
Hearing is likely to be the first since it feels the simplest. Ciro heard there are even already clinical applications there. TODO source.
๐Ÿ”—

1.3.4. Fusion power could be the next big thing | โ‡‘ toc | โ†‘ parent "The next big thing"

๐Ÿ”—
Main section: fusion power.
๐Ÿ”—
This is a long haul. But we have to give it a shot.
๐Ÿ”—

1.4. The best articles by Ciro Santilli | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
These are the articles ever authored by Ciro Santilli ไธ‰่ฅฟ็Œด, most of them in the format of Stack Overflow answers.
๐Ÿ”—
Ciro posts updates on Twitter when new considerably cool ones are published: https://twitter.com/cirosantilli.
๐Ÿ”—
๐Ÿ”—

1.5. How to contact Ciro Santilli | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
To contact Ciro Santilli ไธ‰่ฅฟ็Œด publicly about any general subject that is not covered in a more specif repository, including saying hi or suggestions about his website, create a GitHub issue at: https://github.com/cirosantilli/cirosantilli.github.io/issues/new
๐Ÿ”—
๐Ÿ”—
๐Ÿ”—
If you need private contact, extract his email from on of his GitHub repos or use LinkedIn.
๐Ÿ”—
Disqus comments were removed from his website in 2019-05-04, a manual dump is available here, removal rationale at: why Ciro Santilli removed Disqus comments from his website in 2019-05-04.
๐Ÿ”—

1.6. Accounts controlled by Ciro Santilli | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด controls the following accounts.
๐Ÿ”—
๐Ÿ”—
Other accounts:
๐Ÿ”—
๐Ÿ”—
๐Ÿ”—

1.7. Ciro Santilli's ideology | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Welcome to the wonderful world of Cirism!
๐Ÿ”—

1.7.1. Unconditional basic income | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
Unconditional basic income is Ciro Santilli ไธ‰่ฅฟ็Œด's ultimate non-transhumanist technological dream: to reach a state of technological advancement and distribution of resources so high that everyone gets money for doing nothing, enough for:
  • basic survival needs: food, housing, clothes, hygiene, etc.
  • two children to keep the world going. Or immortality tech, but is harder and borderline transhumanist :-)
  • high speed computer and Internet
๐Ÿ”—
Once a person has that, they can "learn, teach" and create whatever they want. Or play video games all day long if they wish.
๐Ÿ”—
Ciro santilli will not live to see this, and is content with helping it happen faster by increasing the efficiency of the world as. And having at least two well educated kids to carry on the project after he dies :-)
๐Ÿ”—
Technologies which would help a lot towards unconditional basic income, and might be strictly required required are:
๐Ÿ”—
So in the worst case we can just grow brainless bodies and replace the cavity hole with a computer that controls the body, possibly with high level decisions coming from a remote building-sized genetically engineered biological AGI brain.
๐Ÿ”—
Of course, it is all about costs. A human costs about 130k 2010 USD / year. So how cheap can we make the AGI / robot human equivalent / year for a given task?
๐Ÿ”—
AGI + humanoid robots likely implies AI takeover though. It would then come down to human loving bots vs human hating bots fighting it out. It will be both terrifying and fun to watch.
๐Ÿ”—
AGI alone would be very dangerous, in case it can get control of our nuclear arsenals through software zero days or social engineering. Although some claim that is unlikely.
๐Ÿ”—
Humanity's best bet to achieve silicon AGI today is to work on: large cohesive game world for robotic-like artificial intelligence development.
๐Ÿ”—

1.7.2. Having more than one natural language is bad for the world | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
Natural language diversity is beautiful, but useless.
๐Ÿ”—
Figure 31. Even the Bible writers already know that multiple languages suck as seen from the Tower of Babel parable. Source.
๐Ÿ”—
The fact that in poor countries a huge number of people do not speak the economically dominating language of the world (currently English), is a major obstacle to the development of those countries.
๐Ÿ”—
Despite us being in the information age, the people in those countries cannot fully benefit from it at all!
๐Ÿ”—
Teaching its people English should be the number one priority of any country. Without that, there can be no technological development. Everything else is secondary and can be learnt off the Internet once you know English.
๐Ÿ”—
And the most efficient way to do that, is that every country should create amazing free open source English learning material for their own language.
๐Ÿ”—
Also consider the European countries.
๐Ÿ”—
What big companies have been created in Europe in the past 50 years, that have not been bought out by American or Japanese companies? Solexa (600M USD in 2007)? CSR (2.5B USD in 2015)? Arm Holdings (32B USD in 2016)?
๐Ÿ”—
The key problem is that there are so many small countries in Europe, that any startup has to deal with too many incompatible legislation and cannot easily sell to the hole of Europe.
๐Ÿ”—
So then a larger company from a more uniform country comes and eats it up!
๐Ÿ”—
So why can't Europe unify its laws?
๐Ÿ”—
Because the countries are still essentially walled off by languages.
๐Ÿ”—
There isn't true mobility of people between countries.
๐Ÿ”—
You just can't go study or work in any other country (except for the UK, when it was still in the EU) without putting a huge effort into learning its language first.
๐Ÿ”—
Without this, there isn't enough mixing to truly make cultures more uniform, and therefore allow the laws to be more uniform.
๐Ÿ”—
Europe can't even unify basic things like a marriage registry, or the posting of parcels, which often get lost and require you to contact people who may not speak English.
๐Ÿ”—
Equally so, it can't force little fiscal paradises like Ireland, Luxembourg and Switzerland to not offer ridiculously low taxes and incentives which make them entry points for foreign companies to rape Europe.
๐Ÿ”—
For this reason, Europe will only continue to go downhill with the years, and the United Kingdom will continue to try and endosymbiose into a state of the USA (although at times it seems that it would rather endosymbiose with China instead).
๐Ÿ”—
The Sapirโ€“Whorf hypothesis is bullshit outside of poetry, and the ending of Arrival (2016) makes one want to puke, where learning a language changes not only your brain, but also Ciro's precious "laws" of Physics!
๐Ÿ”—
Much more likely are To Serve Man / A Small Talent for War events!
๐Ÿ”—
Remember that those ideas come from a person who speaks 3.5 languages in 2019, and see absolutely no practical difference between them.
๐Ÿ”—
Ciro does however believe that spoken Chinese is a better language than English overall from a purely "ease of learning from scratch point of view" as mentioned at: https://github.com/cirosantilli/china-dictatorship/tree/6fdeb5aa3826c69f7c058de4e6f652a6924bc08a#does-ciro-santilli-speak-chinese. But as mentioned before, Ciro just doesn't think that the different is that great to justify replacing English. Chinese writing is completely insane of course, completely out of the question.
๐Ÿ”—
One interesting anecdote is that Ciro met his wife in French, and talking to her primarily in English feels really weird, so language does matter in love.
๐Ÿ”—
๐Ÿ”—

1.7.3. Don't be a pussy | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
๐Ÿ”—
If you want to do something, but you are afraid to do it, then that is likely what you should do.
๐Ÿ”—
๐Ÿ”—
Don't bend; don't water it down; don't try to make it logical; don't edit your own soul according to the fashion. Rather, follow your most intense obsessions mercilessly.
๐Ÿ”—
For example, when Ciro Santilli ไธ‰่ฅฟ็Œด was deciding what to do in university, he wanted mostly to do pure physics.
๐Ÿ”—
But because he was afraid he was going to die poor and unemployed because of that, he picked engineering instead.
๐Ÿ”—
That was a mistake.
๐Ÿ”—
His family was not even poor. He was young and did not have a family to support. His father even told him: "do whatever the fuck you want, we support your decision".
๐Ÿ”—
But he was a coward.
๐Ÿ”—
It was also in part because a physicist uncle which he respected suggested that as an engineer Ciro might be able to make useful contributions to tooling required by physics. When Roberto Salmeron died in 2020, Ciro's friends shared this 2013 video interview with the late professor, where he explains he first went to the University of Sรฃo Paulo, Brazil to study engineering (like Ciro), but then fell for his passion for physics (like Ciro?), his first task being to build a Geiger counter, thus explaining the likely origin of the uncle's theory. But who knows, maybe he was right. Maybe Ciro's write free books to get famous website will become huge and help a lot of people, and it might not have had Ciro not done engineering and learnt programming. Destiny operates in weird ways sometimes.
๐Ÿ”—
Furthermore, while in University, Ciro learnt about a fantastic full time course that any student could transfer to called Molecular Science Course (Curso de Ciรชncisa Moleculares, CCM) (good Portuguese overview)that teaches various natural sciences topics which Ciro loves (Mathematics, Physics, Chemistry, Biology) and which students from the entire university can apply to transfer to only after joining the university, with the guarantee that they can go back to their original courses if they didn't adapt to the new course.
๐Ÿ”—
But did Ciro do it? Nope, he remained an even larger coward.
๐Ÿ”—
Had he studied more sciences, he might have been happier, and might have had greater achievements later in life, in particular when he went to ร‰cole Polytechnique.
๐Ÿ”—
Maybe not, but now this doubt will never leave his mind until the final day.
๐Ÿ”—
Similar thoughts crossed his mind when he started his campaign for freedom of speech in China, but this time he had learnt the lesson, and went for it, and it felt very good.
๐Ÿ”—
If you have a day job, but also have a dream, and want to keep the day job for a reason, try to reserve the time of the day that your brain works best before or after work for your dream.
๐Ÿ”—
Work a little less well for you boss, and a little better for yourself. Ross agrees: "I hated working for someone else and trading my time for money with no investment in myself". Selling drugs online is not advisable however.
๐Ÿ”—
Maybe you will be fired, but long term, having tried, or even succeeded your dream, or a one of its side effects, will be infinitely more satisfying.
๐Ÿ”—
The same goes for school, and maybe even more so because your parents can still support you there, some Gods who followed this advice:
  • George M. Church "[We] hope that whatever problemsโ€ฆ contributed to your lack of success... at Duke will not keep you from a successful pursuit of a productive career." Lol, as of 2019 the dude is the most famous biotechnologist in the world, those "problems" certainly didn't keep him back.
  • Freeman Dyson proved the equivalence of the three existing versions of quantum electrodynamics theories that were around at his time, and he has always been proud of not having a PhD!
    Video 12. "Freeman Dyson - Why I don't like the PhD system (95/157)" published by by Web of Stories on Sep 6, 2016. Source.
  • Person that Ciro met personally and shall remain anonymous for now for his privacy: once Ciro was at a bar with work colleagues casually, it was cramped, and an older dude sat next to his group.
    The dude then started a conversation with Ciro, and soon he explained that he was a mathematician and software engineer.
    As a Mathematician, he had contributed to the classification of simple finite groups, and had a short Wiki page because of that.
    He never did a PhD, and said that academia was a waste of time, and that you can get as much done by working part time a decent job and doing your research part time, since you skip all the bullshit of academia like this.
    Yet, he was still invited by collaborating professors to give classes on his research subject in one of the most prestigious universities in the world. Students would call him Doctor X., and he would correct them: Mister X.
    As a software engineer, he had done a lot of hardcore assembly level optimizations for x86 for some mathematical libraries related to his mathematics interests. He started talking microarchitecture with Ciro's colleagues.
    And he currently worked on an awesome open source project backed by a company.
    At last but not least, he said he also fathered 17 children by donating his sperm to lesbian mothers found on a local gay magazine, and that he had met most/all of those children after they were born.
    A God. Possibly the most remarkable person Ciro ever met, and his jaw was truly dropped.
๐Ÿ”—
Companies can help you grow because you see real problems from within them, but their end goal is to consume you as much as possible. Don't let that happen. Invest part of what you gain, in yourself.
๐Ÿ”—
Don't be a pussy. Be a based God.
๐Ÿ”—
Figure 32. Dilbert "A small brain irrationally puts more weight on a small loss than on a huge opportunity" cartoon published on 2000-02-03. Source.
๐Ÿ”—
Figure 33. Jake Likes Onions "Slowly" cartoon. This is what trying to reach a dream part time feels like. The cartoon reads: "The tiger pursues its prey. Slowly. The human pursues its life goals. Slowly. Very slowly.". Source.
๐Ÿ”—
Video 13. Excerpt from the documentary film "Steve Jobs: Secrets of Life" (1994) by "Silicon Valley Historical Association" published on 2011-10-06. Source.
๐Ÿ”—
When you grow up you tend to get told that the world is the way it is and your life is just to live your life inside the world. Try not to bash into the walls too much. Try to have a nice family life, have fun, save a little money. That's a very limited life. Life can be much broader once you discover one simple fact: Everything around you that you call life was made up by people that were no smarter than you. And you can change it, you can influence itโ€ฆ Once you learn that, you'll never be the same again.
๐Ÿ”—
Of course, survivorship bias applies.
๐Ÿ”—
Video 14. Alan Watts "If Money Were No Object What Would You Do". Source.
๐Ÿ”—
1.7.3.1. Steve Jobs 2005 Stanford Commencement Address | โ‡‘ toc | โ†‘ parent "Don't be a pussy"
๐Ÿ”—
Ciro feels that this resonates a lot with his write free books to get famous website.
๐Ÿ”—
Supercut:
The minute I dropped out I could stop taking the required classes that didn't interest me, and begin dropping in on the ones that looked far more interesting.
And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on.
Because I had dropped out and didn't have to take the normal classes, I decided to take a calligraphy class to learn how to do this.
None of this had even a hope of any practical application in my life.
If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts.
Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backward 10 years later.
Again, you can't connect the dots looking forward; you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future. You have to trust in something โ€” your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.
๐Ÿ”—
Then:
You've got to find what you love.
And that is as true for your work as it is for your lovers.
Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work.
And the only way to do great work is to love what you do. If you haven't found it yet, keep looking.
Don't settle. As with all matters of the heart, you'll know when you find it.
And, like any great relationship, it just gets better and better as the years roll on.
So keep looking until you find it.
Don't settle.
๐Ÿ”—
And:
When I was 17, I read a quote that went something like: "If you live each day as if it was your last, someday you'll most certainly be right."
It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?"
And whenever the answer has been "No" for too many days in a row, I know I need to change something.
๐Ÿ”—
And then he quotes form the Whole Earth Catalog, a paper Atlas from the '70s he admired:
Stay Hungry. Stay Foolish
๐Ÿ”—
Video 15. Source.
๐Ÿ”—

1.7.4. Backward design | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
๐Ÿ”—
This is one of Ciro Santilli's most important principles.
๐Ÿ”—
Steve Jobs has a great quote about this. He's totally right on this one!
๐Ÿ”—
You've got to start with the customer experience and work backwards to the technology. You can't start with the technology and try to figure out where you're going to sell it.
๐Ÿ”—
Video 16. "Steve Jobs Insult Response" excerpt from the 1997 WWDC. Source.
๐Ÿ”—
Decide your goal first, and then do whatever is needed to how to reach it.
๐Ÿ”—
Don't start randomly learning tech, because that means you will waste a lot of time learning useless stuff.
๐Ÿ”—
There is of course some level chicken-and-egg paradox in this, as highlighted by Dilbert, since choosing an achievable goal in the first place requires some level of technical understanding.
๐Ÿ”—
Figure 34. Dilbert cartoon about Designing a nuclear power plant from user requirements published on 2002-02-20. Source.
๐Ÿ”—
However, it is much more common that people will get way too involved in learning useless stuff and lose sight of the useful end goals.
๐Ÿ”—
Rather, take an iterative approach:
๐Ÿ”—
There is some truth to the counter argument that "but if you don't spend a lot of time learning the basics, you can never find solutions".
๐Ÿ”—
However, these people underestimate your brain. The brain is beautiful, and human intuition is capable of generating interest towards the things that are actually useful to reach your goal. When you feel like learning something related to your goal, by all means, give yourself the time to do so. But this still be much more efficient than just learning random things that other people tell you to learn.
๐Ÿ”—
๐Ÿ”—
1.7.4.1. How to become a good programmer? | โ‡‘ toc | โ†‘ parent "Backward design"
๐Ÿ”—
Or: how to learn X.
๐Ÿ”—
This pops up on Reddit every week.
๐Ÿ”—
That is the wrong question.
๐Ÿ”—
The right question is: what is the most awesome project I can do to improve the world?
๐Ÿ”—
Then, once you decide to try one, if that involves programming, learn to program to achieve that goal.
๐Ÿ”—
And if doesn't involve programming, then don't learn to program, and learn whatever you actually need to reach that goal instead.
๐Ÿ”—
Having that goal is the only way to be motivated to do something.
๐Ÿ”—

1.7.5. The side effects of ambitious goals are often the most valuable thing achieved | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
A quote by Ciro's Teacher R.:
Sometimes, even if our end goals are too far from reality, the side effects of trying to reach them can have meaningful impact.
๐Ÿ”—
If the goals are not ambitious enough, you risk not even having useful side effects so show in the end!
๐Ÿ”—
By doing the prerequisites of the impossible goal you desire, maybe the next generation will be able to achieve it.
๐Ÿ”—
This is basically why Ciro Santilli has contributed to Stack Overflow, which has happened while was doing his overly ambitious projects and notice that all kinds of basic pre-requisites were not well explained anywhere.
๐Ÿ”—
This is especially effective when you use backward design, because then you will go "down the dependency graph of prerequisites" and smoothen out any particularly inneficient points that you come across.
๐Ÿ”—
Ciro often has the following metaphor in his mind:
New discoveries are like very rough trails where you have to cut through heavy bushes (an original research paper).
After a brave explorer goes through this rough path for the first time and charts it, it does become much easier for others to follow it later on, but it still requires a lot of effort to go through them, because there are still a lot of rush bushes and some parts of the map are not very clear (reading and reproducing the research paper to further advance the art).
As enough people start going through, the probability that someone with a bad memory ends up walking it increases, and that person ends up pounding the earth into a beaten track and increasing the trail clearance of the beginning of the trail at least (review paper).
There finally comes a point when even the local government starts to notice this trail is important, and pays someone to add some stone pavement and rails on the most exposed parts of the trail (post and undergrad education).
๐Ÿ”—

1.7.6. Ciro Santilli's best random thoughts | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
These are "original" thoughts that Ciro had which at some point in the past amused him. Some would call them pieces of wisdom, others self delusion. All have likely been thought by others in the past, and some of them Ciro thinks to himself after a few years: "why did I like this back then??".
๐Ÿ”—
After Ciro's colleague was doing that in a project:
Chuck Norris can parse pseudocode.
๐Ÿ”—
On the theory vs practice of computer science:
Whereas Turing completeness is enough for mathematicians, humans need "run-on-Debian-complete".
๐Ÿ”—
How software engineers view science:
Science is the reverse engineering of nature.
๐Ÿ”—
But Ciro later found that Wikipedia actually says exactly that: https://en.wikipedia.org/wiki/Reverse_engineering so maybe that is where Ciro picked it up unconsciously in the first place.
๐Ÿ”—
On how human perception of media is completely unrelated to the computer's transmission mechanism:
Media for humans is not byte streams. It is magic.
๐Ÿ”—
This is of course just another version of one picture is worth a thousand words.
๐Ÿ”—

1.7.7. Animal rights | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด has mixed feelings about animal rights.
๐Ÿ”—
On one hand, his irrational side wants of course all animals to be happy.
๐Ÿ”—
On the other, he does not care about this enough to not kill and eat them, even though he believes that you could live off plants relatively well.
๐Ÿ”—
His more rational side says: humans are sacred. Either because you believe in the soul, or because your built-in empathy behaviours. If it is not a human, do whatever you want to it. Killing is already undoubtedly the greatest sin. It is not OK to kill a human painlessly is it? So if torturing it brings humans good, then do it.
๐Ÿ”—
Of course, this does get use close and closer to "the what is a human" question, which is more relevant than ever in the awakening of genetics: all species are after all a continuum right?
๐Ÿ”—
And Ciro does not have a simple solution to this problem, besides that in 99.9999% the answer is obvious to 99.9999% of the people, and for the others cases, we have to do it like the law and make flawed rules to cover the remaining 0.000099999% cases and let juries decide the rest.
๐Ÿ”—
The only other sensible sacredness barrier is the common vegetarian "nervous systems are sacred" one. But how can you believe that if you also follow the religion of physics, where everything is just made of atoms?
๐Ÿ”—
Is it evil to take one neuron and torture it? What does that even mean? It will be fun when pain and pleasure are fully understood.
๐Ÿ”—
And you are going to have a really hard time when mosquitoes start transmitting deadly diseases that kill your family.
๐Ÿ”—
Laws in most 2020 Western modern societies have converged to a hypocritical balance between not offending people too much by hiding the killing and minimizing the pain when possible at low cost. Killing animals painlessly is basically always fine if it brings any "non sadistic" pleasure to humans. And torturing animals is fine with approval e.g. to make medicines.
๐Ÿ”—
This has the downside of increasing costs for society. Maybe there are practical benefits besides people feeling bad about animals? Maybe we would have more serial killers if people were free to torture animals? Maybe people in butcher shops would become depressive if their bosses weren't forced to use more expensive painless killing methods? Neither of those seems like huge arguments though.
๐Ÿ”—
It eventually comes down to: "how much more is a human life worth than that of an animal" which brings Jesus's Matthew 6:25-34 "Do Not Worry" (archive) quote to mind:
Therefore I tell you, do not worry about your life, what you will eat or drink; or about your body, what you will wear. Is not life more than food, and the body more than clothes? Look at the birds of the air; they do not sow or reap or store away in barns, and yet your heavenly Father feeds them. Are you not much more valuable than they?
๐Ÿ”—
Non-vegetarian pets owners also baffle Ciro, as most of them basically extend the sacred human line further arbitrarily to certain other cute looking animals like dogs, cats or rabbits, but will gladly kill a cow indirectly by paying someone to pay someone to pay someone to cut it into small pieces. Or they believe that certain specific individuals are sacred. Admittedly, the latter is more rational, and looks a lot of how we treat our own families well, and can accept that other families are not doing so well.
๐Ÿ”—
Ciro's even more rational evil side says: the real reason why humans are sacred is a practical one: people have families that love them, and they come to kill you if you kill them, and this starts endless chains of violence that make society unbearable.
๐Ÿ”—
While animals feel pain when their children are killed, their memory and logic is just not good enough to fully understand that humans in general have an evil plot to it, and they don't have a method to communicate between themselves and fight back.
๐Ÿ”—
For similar reasons, Ciro is pro-abortion.
๐Ÿ”—
Futurama's S02E15 "The Problem With Popplers" episode blew Ciro's mind so much.
๐Ÿ”—
Ciro should stop discussing topics in which infinite argument has already been had. Sometimes he writes things down so he can stop caring the next time the subject comes up, as there's no need to say it again once it is written.
๐Ÿ”—

1.7.8. University entry quotas | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด is against affirmative action university entry quotas that reserve spaces e.g. for students from discriminated races or poor families. Instead, he believes that affirmative action should take place on earlier stages of education.
๐Ÿ”—
Notably, Brazil has implemented a very heavy university entry quota system after Ciro had left university there: https://www.bbc.co.uk/news/business-23862676
๐Ÿ”—
This is of course easy for a white male from a privileged background to say, and infinite debate has already been had on this matter, but here goes again.
๐Ÿ”—
First, in defense to the personal attack, Ciro raises the fact that he has dedicated large chunks (all?) of his life to open source software and knowledge in general, which Ciro believes is the only way to actually make the world fairer to poor countries. His money (time) is where his mouth is.
๐Ÿ”—
One good argument in favor of the Brazilian quota system, is that the kids who enter university because of quotas do just as well as those who don't.
๐Ÿ”—
๐Ÿ”—
Both the top end of the quota and non-quota kids are basically equally capable of doing useful stuff therefore.
๐Ÿ”—
Only a tiny fraction of what you learn in high school is useful for university or your career.
๐Ÿ”—
And possibly more importantly than knowledge, Ciro saw many of his colleagues (basically all of which were from relatively privileged backgrounds) "do badly" in university, because of lack of motivation, because they had chosen a course only to find that they were not interested in it because the existing high school educational system is crap and does not help them find what they love and because it costs you several years of your life to change your choice in most universities (long live ร‰cole Polytechnique).
๐Ÿ”—
Maybe the fact that poor kids know that they are fucked if they fail, and so they have to succeed at any cost, might also help with motivation. Which is a terrible terrible thing, because only those who have to leeway to take risks end up taking them and making the the next big thing.
๐Ÿ”—
Ciro believes instead that only once kids have learnt university level stuff in their area of interest for free on the Internet should they go through selection based on that specific and much more concentrated useful knowledge.
๐Ÿ”—
And this competition must only be used to distribute resources which you can't learn from fucking computers:
  • laboratories. Actually, one of Ciro's most important advices to kids nowadays is that if you are in doubt about what course to choose, make the choice that includes laboratories, because you can learn already learn computer stuff for free whenever you want, but if you don't take it now, that will likely be your last opportunity to set foot on a laboratory
  • one to one mentorship on advanced master thesis/PhD level projects
๐Ÿ”—
Once this point knowledge is reached however, it starts to become unclear if a single "everyone takes the same test to avoid discrimination" test is feasible anymore, and we start entering the much more relevant (and potentially discriminatory) "I am a teacher trying to advance the state of the art, and I need a person mildly skilled in the art to do some slave labor for me", which is PhDs selection work.
๐Ÿ”—
If quota are in place, what will happen is that parents of the rich kids will start investing less in education, and possibly just put their kids in high schools, and do home schooling instead. This would therefore reduce the total investments the country makes in education!
๐Ÿ”—
Outside of the obvious technical evolution proposed, Ciro recommends the following:
  • create a few select high quality free K-12 schools in densely populated areas with many unprivileged students living in them, and give huge quotas there to poor/discriminated kids such that only exceptional kids can get in without those quotas.
  • pay the teachers of those select excellence schools as much as the good private schools so you actually get comparably good teachers
  • implement an early selection based on quotas and entry examinations for those schools
  • allow kids from outside of the local region to come to those schools by giving them free accommodation
๐Ÿ”—
Then let those kids pass exactly the same university entry exams, and watch them crush the average privileged kids.
๐Ÿ”—
This advice is similar to what is mentioned at: what poor countries have to do to get richer. When you don't have money to do everything, you must select a few good bets and focus on them. You can't pay a lot to every public school teacher, so you must select a few select places that need it the most. As those smart bets pay off, you start to have more and more money to expand the system further.
๐Ÿ”—

1.7.9. Students must have a flexible choice of what to learn | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
๐Ÿ”—
Ciro believes that the only thing students must be forced to learn is to speak read and write English and that a teacher's main job after that is to help students find their next big goals and also ties into the backward design philosophy.
๐Ÿ”—
Everything else, the student must choose.
๐Ÿ”—
This is most notable in University entry examinations of poor countries, where students often have to wast one extra year of their lives to go through preparation for the useless university entry exams. And then, surprise surprise, if they actually get in, they find that this is not what they really wanted to do, and they just go through to the end miserably because they understandably they don't want to risk another year of their lives.
๐Ÿ”—
Ciro saw this first hand ร‰cole Polytechnique which was way freer than his university in Brazil.
๐Ÿ”—
Steve Jobs's university dropout stories from Steve Jobs 2005 Stanford Commencement Address also come to mind.
๐Ÿ”—
๐Ÿ”—

1.7.10. Rooting for sport teams | โ‡‘ toc | โ†‘ parent "Ciro Santilli's ideology"

๐Ÿ”—
Since Ciro Santilli ไธ‰่ฅฟ็Œด is Brazilian, this is understandably a common conversation opener.
๐Ÿ”—
And rightly so, since soccer in particular is truly ridiculously popular in Brazil, where "what is your local soccer team?" is just a valid a question as "which city are you from?".
๐Ÿ”—
So here goes Ciro's current ironic answer:
I currently root actively against Brazil.
๐Ÿ”—
The ironic reason is simple: maybe is Brazil loses more on this useless art, then maybe people will get tired of it, and instead invest on more useful and beautiful arts.
๐Ÿ”—
Notably, what Ciro really wants people to root for are:
  • the number of Brazilian Nobel Prizes, which is zero, yes, zero, as of 2020, despite a population of 210 million people. But thank God for our one Field Medal, what an epic start, even though Mathematics is useless.
  • the number of high tech companies that have a global impact, which is likely very low, and must contain only a few mammoths that dominate some local market and therefore got enough money from that to expand a bit of technology worldwide. But they were mostly not classic tech startups that did world innovation from the start.
  • how low your country's Gini coefficient is
๐Ÿ”—
Don't get Ciro wrong.
๐Ÿ”—
๐Ÿ”—
Observing professionals who do it amazingly can be beautiful.
๐Ÿ”—
But why the F do you have to root for a team unless your wife or children are playing in it (and even then..., how will that help?)?
๐Ÿ”—
What will you get from that?
๐Ÿ”—
Even if it is your national team, why does it matter if they win or lose?
๐Ÿ”—
Hooliganism just takes that uselessness to a hole new level.
๐Ÿ”—
Now some confessions.
๐Ÿ”—
A five year old Ciro will never forget when the feeling of Brazil won the 1994 World Cup on the penalties and everyone went mad.
๐Ÿ”—
A nine year old Ciro stopped watching the 1998 World Cup Final of Brazil vs France half way during the 3-0 massacre and went to his front garden to kick his soccer ball on the metallic fence gate which represented a goal.
๐Ÿ”—
After that, Ciro went through puberty he guesses, and noticed that the natural sciences are just cooler.
๐Ÿ”—

1.8. Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—

1.8.1. How to develop Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
Ciro's website is powered by GitHub Pages and Jekyll Asciidoc.
๐Ÿ”—
๐Ÿ”—
Build locally, watch for changes and rebuild automatically, and start a local server with:
๐Ÿ”—
git clone --recursive https://github.com/cirosantilli/cirosantilli.github.io
cd cirosantilli.github.io
bundle install
npm install
./run
๐Ÿ”—
Source: run
๐Ÿ”—
The website will be visible at: http://localhost:4000.
๐Ÿ”—
Tested on the latest Ubuntu.
๐Ÿ”—
Publish changes to GitHub pages:
๐Ÿ”—
git add -u
git commit -m 'make yourself look sillier'
./publish
๐Ÿ”—
Source: publish
๐Ÿ”—
GitHub forces us to use the master branch for the build output... so the actual source is in the branch dev.
๐Ÿ”—
Update the gems with:
๐Ÿ”—
bundle update
git add Gemfile.lock
git commit -m 'update gems'
๐Ÿ”—
His website was originally written in Markdown, however those were deprecated in favour of Asciidoctor when Ciro saw the light, rationale shown at: markdown-style-guide#use-asciidoc
๐Ÿ”—
๐Ÿ”—

1.8.2. Unmigrated sections of the old version of Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
It is interesting to see how your own ideas shift with time, and Ciro Santilli ไธ‰่ฅฟ็Œด doesn't think the following are very important anymore, so he was lazy to migrate them:
๐Ÿ”—
When he did the original website Ciro was in a "I must show off my skills to get a job mindset", but then after he landed a few jobs he moved to a "CV websites are useless, just do amazing projects and showcase them on your website to help them succeed" mindset.
๐Ÿ”—

1.8.3. Why Ciro Santilli removed Disqus comments from his website in 2019-05-04 | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
๐Ÿ”—
As Ciro started getting a lot of comments on his home page about China, he decided that Disqus does not scale, and that it would be more productive long term to remove it and point people to GitHub issues instead.
๐Ÿ”—
Upsides of removal:
  • Disqus discoverability is bad:
    • there is no decent way to search existing issues, you have to do JavaScript infinite loading + Ctrl + F. So every reply that he wrote is a waste of time, as it will never be seen again.
    • comments don't have: decent URLs, titles, metadata like tags or open / close
  • Disqus archival is bad: http://web.archive.org/ does not work, and no one knows how to export the issues: https://www.archiveteam.org/index.php?title=Disqus
  • before, there were two places where people could comment, Disqus and GitHub issues. Now there is just one.
  • Disqus has ads if you ever reach enough traffic, which unacceptable, especially if the website owner don't get paid for them! It also makes page loads slower, although that likely does not matter much.
๐Ÿ”—
Downsides:
  • people are more likely to comment on Disqus than to create an issue on GitHub, especially because most people use GitHub professionally. But this has the upside that there will be less shitposts as well.
  • with Disqus you can see all issues attached to a page automatically, which is nice. But for as long as Ciro is alive, he intends to just solve the issues, cross link between content and issues and tag things appropriately.
๐Ÿ”—
Ciro's stance towards China hasn't changed, and China comments and corrections about his website are still welcome as always.
๐Ÿ”—
๐Ÿ”—

1.8.4. DNS configuration of Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
AKA how this GitHub page gets served under the domain: https://cirosantilli.com
๐Ÿ”—
Ciro only touches this very rarely, and always forgets and go into great pain whenever a change needs to done, so it is important to document it.
๐Ÿ”—
The last change was of 2019-07-07, when Ciro moved from the www subdomain https://www.cirosantilli.com to the APEX https://cirosantilli.com. A redirect is setup from the www subdomain to APEX.
๐Ÿ”—
GoDaddy DNS entries:
๐Ÿ”—
Type    Name    Value                   TTL
A       @       185.199.108.153         1 Hour
A       @       185.199.109.153         1 Hour
A       @       185.199.110.153         1 Hour
A       @       185.199.111.153         1 Hour
CNAME   www     cirosantilli.github.io  1 Hour
๐Ÿ”—
๐Ÿ”—
๐Ÿ”—
  • Custom domain: cirosantilli.com
  • Enforce HTTPS: checked
๐Ÿ”—
And the CNAME file is tracked in this repository: CNAME.
๐Ÿ”—

1.8.5. The CSS of Ciro Santilli's website looks broken | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
That which does not exist, cannot be broken.
๐Ÿ”—
๐Ÿ”—

1.8.6. Ciro Santilli's website is not mobile friendly | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
True art cannot be consumed in mobile format.
๐Ÿ”—

1.8.7. Mathematics typesetting setup of Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
KaTeX is automatically used in Cirodown.
๐Ÿ”—

1.8.8. Media rationale of Ciro Santilli's website | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
1.8.8.1. One page to rule them all | โ‡‘ toc | โ†‘ parent "Media rationale of Ciro Santilli's website"
๐Ÿ”—
It is true that one image is worth a thousand words, but unfortunately it is also true that one image takes up at least as much bytes as a thousand words!
๐Ÿ”—
Having one single page to rule them all is of course the ideal setup for a website, as you can Ctrl + F one ToC and quickly find what you want.
๐Ÿ”—
And, with Linux Kernel Module Cheat Ciro noticed that it is very hard to write so much intelligent prose that becomes larger than reasonable to load on a single webpage.
๐Ÿ”—
He then started using this technique for everything he writes, including this page and Chinese government.
๐Ÿ”—
However, if there are too many images on the page, the loading of the last images would take forever in case users want to view the last sections.
๐Ÿ”—
There are two solutions to that:
๐Ÿ”—
Ciro is still deciding between those two. The traditional approach works for sure but loses the one page to rule them all benefits.
๐Ÿ”—
The innovative approach will work for interactive viewing, but archive.org will fail to load the images for example, and there may be other unforseen consequences.
๐Ÿ”—
Wikimedia Commons is awesome and automatically converts and serves smaller versions of images, so always choose the smallest images size needed by the output document. Readers can then find the higher resolution versions by following the page source.
๐Ÿ”—
This also comes to mind: https://motherfuckingwebsite.com
๐Ÿ”—
1.8.8.2. Where to store images | โ‡‘ toc | โ†‘ parent "Media rationale of Ciro Santilli's website"
๐Ÿ”—
Since images are large, they bring the following challenges:
  • keeping images in the main Git repository with text content makes the repository huge and slow to clone, and should not be done
  • storing and serving images could cost us, which we want to avoid
๐Ÿ”—
To solve those problems, the following alternatives appear to be stable enough and should be used decreasing preference:
  • for all images, use the separate GitHub repository: https://github.com/cirosantilli/media
    This way, the entire website is relies on a single third party: GitHub, so we have a simple single point of failure.
    We are at the mercy of GitHub's 1GB size policy: https://help.github.com/en/articles/what-is-my-disk-quota, but it will take a while to hit that.
    GitLab however has a 10Gb maximum size: https://about.gitlab.com/2015/04/08/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo/ so we could move there is we ever blow up 1Gb on GitHub.
    Both GitLab and GitHub allow uploading files through the web UI, so downloading a large repo is never needed to contribute.
    GitHub does not serve videos like it does images however as of 2019.
  • Wikimedia Commons for videos if the following conditions are met:
    • in scope: "educational material in a broad sense", but not e.g. "Private image collections, e.g. private party photos, photos of yourself and your friends, your collection of holiday snaps and so on.". I don't think they will be too picky even with low quality photos.
    • allowed format, e.g. images or videos, but not ZIPs
    • allowed license: CC BY SA, but no fair use
    Since Wikimedia Commons has a higher level of curation and is an educational not-for-profit, it is the method most likely to remain available for the longest time.
    For this reason, we highly recommend uploading any acceptable files there as well as an additional backup.
    The downside is that its tooling is not as good, e.g. there are a bunch of messy unofficial tools for batch operations, and upload takes more effort.
    Another downside of Wikimedia Commons is that while we can choose the basename of files, it also adds some extra SHA crap to the beginning of URLs, making them harder to predict.
  • https://archive.org for anything else, e.g. videos that Wikimedia commons does not accept.
    All content will be tracked under the cirosantilli collection: https://archive.org/details/cirosantilli
    archive.org has a very convenient upload and lax requirements. The generated URLs are predictable (single SHA prefix for the entire collection).
    Never trust a website that is not on GitHub Pages, for-profit companies will take down everything immediately as soon as it stops making them money.
    Every external link to non-GitHub pages must be archived. And GitHub links must be forked.
    We should also backup images that Wikimedia Commons does not accept here in addition to the https://github.com/cirosantilli/media repository.
๐Ÿ”—
The following alternatives seem impossible because Ciro could not find if they expose direct links to the images:
๐Ÿ”—
The following do have direct links:
๐Ÿ”—
๐Ÿ”—

1.8.9. Download Ciro's website for offline viewing | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
First install NVM/NPM as shown at and then:
git clone https://github.com/cirosantilli/cirosantilli.github.io
cd cirosantilli.github.io
npm install
cirodown .
xdg-open index.html
๐Ÿ”—

1.8.10. Why Ciro Santilli refers to himself in the third person | โ‡‘ toc | โ†‘ parent "Ciro Santilli's website"

๐Ÿ”—
Because when this gets converted to a write free books to get famous website page, it will be easier for people to copy paragraphs/fork and write a canonical page about Ciro.
๐Ÿ”—
Also, what do you do when creating a pull request? Do you say I, which is not true because Ciro did not say that, or do you say "John Doe thinks" bla bla?
๐Ÿ”—
And because his name is awesome! :-) Just kidding.
๐Ÿ”—

1.9. Ciro Santilli's skills | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—

1.9.1. Ciro Santilli's documentation superpowers | โ‡‘ toc | โ†‘ parent "Ciro Santilli's skills"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด has the power to document stuff in a way that makes using them awesome, as evidenced by his his Stack Overflow contributions and other web presences.
๐Ÿ”—
If your project does something awesome, hiring Ciro means that more people will be able to notice that it is actually awesome, and use it.
๐Ÿ”—
He likes to do this in parallel to contributing new features, quickly switching between his "developer" and "technical documentor" hats.
๐Ÿ”—
This means of course that he will develop new features a bit slower than others, but he feel it is more valuable if end users can actually use your project in the first place.
๐Ÿ”—
His technique is to provide upfront extremely interactive and reproducible getting started setups that immediately show the key value of the project to users.
๐Ÿ”—
He backs those setups with:
  • scripts that automate the setup much as possible to make things enjoyable and reproducible
  • a detailed description of the environment in which he tested: which OS, version of key software, etc.
  • a detailed description of what is expected to happen when you take an action, including known bugs with links to bug reports
  • theory and rationale on the sections after the initial getting started, but always finely interspersed with concrete examples
  • all docs contained in a Git-tracked repo, with the ability to render to a single HTML with one TOC
  • short sentences and paragraphs, interspersed with many headers, lists and code blocks
A prime example of kind of setup is Ciro's Linux Kernel Module Cheat.
๐Ÿ”—
While he create this setup, he inevitably start to notice and fix:
  • bugs
  • annoyances on the public interface of the project
  • the devs were using 50 different local scripts to do similar things, all of them semi-broken and limited. Every new hire was copying one of those local scripts, and hacking it up further.
  • your crappy build / test / version control setup
๐Ÿ”—
Exploiting this skill, however, requires you to trust him.
๐Ÿ”—
When he tells to managers that he's good at documenting, they always say: great, we need better documentation! But then, one of the following may happen:
  • managers forget that they wanted good documentation and just tell him to code new features as fast as possible
  • they don't let him own the getting started page, but rather and expect him to try and fix the existing crappy unfixable existing getting started, without stepping on anyone's pride in the process >:-)
    This makes him tired, and less likely to do a good job.
    Good documentation requires a large number of small iterative reviews, and detailed review of every line is not always feasible.
    Too many cooks.
๐Ÿ”—
Ciro's passion for documentation and tooling has the effect that if you have crappy documentation and tooling and don't want them to be fixed, Ciro will end up trying to fix those tools instead of doing what you tell him to do anyways, which might lead to him quitting because he can't stand the tools, or you firing him because he's not doing the job you think I should be doing. So please, don't bother hiring Ciro if you have crappy documentation and tooling.
๐Ÿ”—
๐Ÿ”—

1.9.2. Ciro Santilli's natural languages skills | โ‡‘ toc | โ†‘ parent "Ciro Santilli's skills"

๐Ÿ”—
๐Ÿ”—
When asked, Ciro likes to say that he speaks something between 1.5 and 3.5 languages in total, depending on how you count, because Portuguese, French and English are 99.99% the same, and Chinese is completely different but Ciro only knows about 50% of it if counted optimistically.
๐Ÿ”—

1.10. Ciro Santilli's psychology and physiology | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Ciro Santilli's energy throughout the day varies as follows:
  • morning: highest
  • 11AM: peak exercise performance
  • after lunch: brain death. Possibly due to Ciro's partial Spanish descent?
  • late afternoon and evening: can do some stuff
๐Ÿ”—
Ciro has low tolerance to sleep deprivation which makes him very irritable, and low ability to sleep if there is any light. It must have to do with those damned ganglion cell photoreceptors.
๐Ÿ”—
Ciro has olfactory synesthesia for star anise (ๅ…ซ่ง’, bajiao), which is widely used in Chinese cuisine and makes Ciro think uncontrollably of the color blue. Ciro does not have any other known synesthesias.
๐Ÿ”—
Ciro is a reptilian-like being with cold hands and feet and low blood pressure. For this reason he believes that he will die of cancer or some respiratory problem. If the Chinese government doesn't get him first that is. This also partly explains why Ciro is not a big fan of swimming.
๐Ÿ”—
Besides Chinese food, Ciro really likes eating fruits and nuts, maybe partly because he was born in Brazil, and partly because of monkey nature, see his Chinese name. At home he is known as "ๆฐดๆžœๅคง็Ž‹" (the big king of the fruits). Ciro is also a sucker for yoghurt (natural without added sugars and full fat, fat-tree yoghurt is terrible, often eaten with fruits). Ciro's "favorite drink" could be tonic water with freshly squeezed lemon. Tied with fresh fruit juices. Chocolate-wise, although not a huge fanatic, a Lindt dark chocolate whole hazelnut pieces bar will do the job.
๐Ÿ”—
Like LDS believers, Ciro does not drink coffee or smoke, and only drinks alcohol and tea sparingly, because they are all addictive drugs and bring no overall benefit to energy and concentration. Ciro prefers to only enjoy a glass of tea when going out cycling, and one half pint of beer when going out with friends to a pub.
๐Ÿ”—
Ciro does not like receiving or giving gifts on expected social situations like birthdays or Christmas. Ciro believes that every day is equally precious, and can be a day to give, be it through awesome open source software contributions, or if you find something that your friend will like
๐Ÿ”—
When Ciro was a teenager, he was extremely cheap e.g. for clothes, food and video games, even tough his family didn't have bad financial conditions. This was mostly to save the world by not wasting resources that other people in need could use, and to save money so he could have more money to do more of whatever he wanted without the obligation to work. But Ciro admits that shocking people with the incredible level of low quality goods was also fun. Ciro changed after he came to Europe, especially in regards to food, perhaps corrupted by the fact that now the best chocolates, cheeses and breads in the world were not much more expensive than the cheapest brand you could buy. He still hates clothes that are just to look good like costumes though.
๐Ÿ”—
Living close to a small favela in Sao Paulo helped Ciro get frighteningly cheap goods on the shop frequented by the favela neighbours. One legendary story is that of when his flatmate dropped some past on the kitchen floor, and the bowl broke, but Ciro prevented the flatmate from throwing it away and ate some of it nevertheless. What spooked them out the most was Ciro's statement that the pasta now had a crunchy glass shard texture to it.
๐Ÿ”—
Ciro has some respiratory allergies. When he was around 5, he had relatively serious asthma crisis which scared parents were scared to death. Throughout his life, he appears to be allergic at an intermediate level to: mold or dust mites (or whatever it is that old books / pillows have), cats (itching on touch), hay fever (in May in the UK, likely grass pollen). Ciro believes however that this also gives him higher resistance to viral infections, since it has been many many years since he had a cold/flu, and when everyone in the office is going down with it, he's just fine. Ciro wonders if his active immune system will actually kill off cancers early, which he ranks as his most likely causes of death, along with respiratory and gastro-intestinal problems. Ciro has low blood pressure and cannot get fat, so cardio vascular problems seem much less likely.
๐Ÿ”—
Ciro is generally Democrat due to his high compassion level. He believes that politics is highly genetically determined, and that just like you enter a room full of people and immediately like some and dislike others, the same goes for politics. People just vote for whoever they want to see more of because their way of speaking makes them feel good. There is not rationality involved in it at all.
๐Ÿ”—
In the field of Love and Friendship, Ciro is a big believer in the merciless application of tit for tat. Never desire someone's love, if you give and what comes back is not proportional. Cut your attempts to reach out immediately in such cases.
๐Ÿ”—
Good employers must allow employees to do whichever the fuck "crazy projects", "needed refactorings or other efficiency gains" and "learn things deeply" at least 20% of their time if employees want that: https://en.wikipedia.org/wiki/20%25_Project. Employees must choose if they want to do it one day a week or two hours per day. One day per month initiatives are bullshit. Another related name: genius hour.
๐Ÿ”—

1.10.1. Ciro Santilli's self perceived creative personality | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
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'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 once told him quite correctly:
In the event of war, you would be the type that hides away and makes the bombs.
๐Ÿ”—
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?
๐Ÿ”—
Video 17. "What Predicts Academic Ability? Jordan B Peterson" published on Aug 3, 2017. Source.
๐Ÿ”—
Some quotes from the above:
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 Steve Jobs's quote to mind:
Because the people who are crazy enough to think they can change the world are the ones who do.
๐Ÿ”—
Video 18. Apple's "Think Different" commercial "Here's to the Crazy Ones". Source.
๐Ÿ”—
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.
๐Ÿ”—
Yes, low conscientiousness, give it to me.
๐Ÿ”—

1.10.2. Effortless effort (็„ก็ˆฒ, wuwei) | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
๐Ÿ”—
Ciro feels that all really important and productive activities come spontaneously, without being internally forced upon people.
๐Ÿ”—
You may say that this is because Ciro is lazy, but Bill says (archive) this isn't necessarily bad:
I will always choose a lazy person to do a difficult job because a lazy person will find an easy way to do it.
๐Ÿ”—
You may also say that Ciro is an idealist, because what to do when the food will run out and you have to hunt? To which Jesus replies at Matthew 6:25-34 "Do Not Worry" (archive):
Therefore I tell you, do not worry about your life, what you will eat or drink; or about your body, what you will wear. Is not life more than food, and the body more than clothes? Look at the birds of the air; they do not sow or reap or store away in barns, and yet your heavenly Father feeds them. Are you not much more valuable than they? Can any one of you by worrying add a single hour to your life?
And why do you worry about clothes? See how the flowers of the field grow. They do not labor or spin. Yet I tell you that not even Solomon in all his splendor was dressed like one of these. If that is how God clothes the grass of the field, which is here today and tomorrow is thrown into the fire, will he not much more clothe you - you of little faith? So do not worry, saying, "What shall we eat?" or "What shall we drink?" or "What shall we wear?" For the pagans run after all these things, and your heavenly Father knows that you need them. But seek first his kingdom and his righteousness, and all these things will be given to you as well. Therefore do not worry about tomorrow, for tomorrow will worry about itself. Each day has enough trouble of its own.
๐Ÿ”—
Ciro is also fond of the description of the work method of some writer that his father told him about, possibly Haruki Murakami ๆ‘ไธŠ ๆ˜ฅๆจน. Could not find sources, to treat as apocryphal for now. Basically something like:
Don't rush the work. Just let it happen. Every day at midnight, I would boil a teapot of tea. I would watch the steam rise, and with it feel my consciousness deepen. Everything was pure silence. When the hand was ready, it would, by itself, pick up the brush, and writing would start, by itself.
๐Ÿ”—
Another good one is Hemingway's work method:
Always stop while you are going good and dont think about it or worry about it until you start to write the next day. That way your subconscious will work on it all the time. But if you think about it consciously or worry about it you will kill it and your brain will be tired before you start.
๐Ÿ”—
Video 19. Alan Watts has a wuwei talk. During this, he quotes Jesus: Matthew 18:3 "Truly I tell you, unless you change and become like little children, you will never enter the kingdom of heaven.". Source.
๐Ÿ”—
Video 20. Alan Watts "How to turn work into play" video. Source.
๐Ÿ”—

1.10.3. Ciro Santilli's bad old event memory | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด has a bad memory for events that happened a medium time ago, for example in order of months / years. Especially if they are one-off things that have no relation to anything else.
๐Ÿ”—
For example, Ciro never remembers which places he travelled to just once, and who was in each trip! He has images of several places he travelled to in his head, and would recognize them, but he just doesn't know where they were!
๐Ÿ”—
The same goes for scenes from movies and passages from music, which explains why Ciro's art consumption focuses on innovative discrete "what happened" and "general gist" ideas, rather than, analog details such as colors and shapes.
๐Ÿ”—
Going back even further in time, Ciro starts to forget the less close friends he had, because the events start to fade away.
๐Ÿ”—
Paradoxically however, Ciro believes that this bad memory is one of his greatest strengths and key defining characteristics, because it leads Ciro to want to write down every interesting thing he learns, which motivated write free books to get famous website and his Stack Overflow contributions.
๐Ÿ”—
It also somewhat leads Ciro to like physics and mathematics, because in these fields you "can deduce everything" from very few base principles, so if you forget them, it does not matter that much as you can re-deduce stuff over and over.
๐Ÿ”—
Ciro believes that there are two types of people, and most notably software engineers, which are basically data wranglers: those with bad memory and those with good memory.
๐Ÿ”—
Those with bad memory, tend to focus on automating and improving their processes a lot. They take much longer to do one-off specific deep knowledge tasks however.
๐Ÿ”—
The downside of the good memory ones is that sooner or later they will find tasks that no matter how much memory they have, they cannot solve without automation, and they will fail at those.
๐Ÿ”—
Also, good memory people don't enable others to join the project efficiently as much.
๐Ÿ”—
This dichotomy also explains why Ciro sucks at code reviews, but is rather the person who runs the interesting patches by himself and finds some critical problems that the more theoretical code reviewers missed.
๐Ÿ”—
If Ciro had become a scientist, he would without doubt be an experimentalist, just like in this reality he is a GDB/runtime person rather than a "static source analysis" person. Those who have bad memory prefer to just run experiments over and over and observe system state at runtime.
๐Ÿ”—
๐Ÿ”—

1.10.4. Ciro Santilli's selfish desires | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
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.
๐Ÿ”—
Ciro Santilli's full name is quite unique and already dominated by this Ciro Santilli ไธ‰่ฅฟ็Œด.
๐Ÿ”—
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. http://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 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.
๐Ÿ”—

1.10.5. Ciro Santilli's ideal city to live in | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
Ciro's ideal city to live in contains the following in order of decreasing importance:
๐Ÿ”—
Could California be Ciro's Mecca?
๐Ÿ”—

1.10.6. Cirodance | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
During his teenage years, Ciro created an innovative new dance style combining elements of the various corporal practices that he studied a bit of across the years:
๐Ÿ”—
Ciro later called this style Cirodance.
๐Ÿ”—
Ciro's legendary dance style was famous during his university years, when Ciro would go to parties and dance like made while mostly unsuccessfully trying to woo girls.
๐Ÿ”—
Ciro has always been critical of dancing conditions in University parties, where people would always be cramped up doing boring non-creative moves. Rather, Ciro would go to to the edges of the dance floor to have enough space for his amazing moves. There is a perhaps a parallel between such tendencies and Ciro's highly innovative personality. Also perhaps being cramped would have helped wooing said girls.
๐Ÿ”—
Ciro later quit dancing, to a large extent because it is too hard to find suitable dancing locations outside: Europe is too cold, also ground conditions have to be perfect, and no patience to book a dance room somewhere. Kid's playgrounds are ideal, but Ciro is afraid of dancing there because kids parent's would freak out.
๐Ÿ”—
Therefore, all evidence of Cirodance seems to have disappeared into the depths of the Internet. There used to be a notorious video on YouTube entitled "A Piriguete da Poli" ("Poli's bitch" in Portuguese) but Ciro lost the link/it was deleted? But in any case, the title gives an idea of the amazing style of Ciro's furor poeticus Axรฉ performance on that day.
๐Ÿ”—
One legendary episode linked to Cirodance was when Ciro was living in Paris and jobless around 2014 (but not destitute as he leached from his girlfriend). Cirodance was his main physical activity at the time, and Place de la Rรฉpublique, where the skateboarders hung out due to the perfect wide concrete floor and relatively close to Bastille where Ciro lived, was the perfect place for it. One cold dark winter evening, Ciro was practicing Cirodance with his headphones and crappy clothes (dirty public square floor, remember), when someone took him for a homeless person and offered him a bowl of soup! It must be said that Place de la Rรฉpublique had many events of giving food to the poor. Ciro was a bit stunned, declined, and continued dancing. And so that was the day when a prestigious Polytechnicien was mistaken for a homeless person. And Ciro liked that.
๐Ÿ”—

1.10.7. Ciro Santilli's knee | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
If Achilles' had his heel, Ciro had his knee.
๐Ÿ”—
First during University in Brazil while trying a kick up during the development of Cirodance his knee went a bit weird for a few weeks.
๐Ÿ”—
Then, just after arriving in France for ร‰cole Polytechnique, the boys were playing indoor soccer, and to impress the girls Ciro was playing really hard, even took off his shirt, and suddenly when he was running by himself his knee snapped, he fell and it hurt like hell.
๐Ÿ”—
Ciro was on crutches for a few weeks, but the inflammation went away, but then he tried to play more soccer, but the knee was not as stable as before, and so he gave up. And for some reason it was not visible on the tomography.
๐Ÿ”—
So from this day on Ciro gave up on all interesting sports, and confined himself to more repetitive stuff like gym weights and cycling: Section 1.10.8. "Ciro Santilli's sport practice".
๐Ÿ”—
This defect is likely genetic since a close relative had similar problems.
๐Ÿ”—
But oh well, his then not-even girlfriend was impressed enough by the soccer or sorry enough for the sucker to marry him, so it worked out.
๐Ÿ”—

1.10.8. Ciro Santilli's sport practice | โ‡‘ toc | โ†‘ parent "Ciro Santilli's psychology and physiology"

๐Ÿ”—
๐Ÿ”—
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.
๐Ÿ”—
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?
๐Ÿ”—
Also, Ciro has an unidentified condition where his upper legs and lower torso often start to itch when he runs, to the point of being extremely annoying. If some doctor knows why this could be, please tell him.
๐Ÿ”—
And so Ciro has been left with the gym as the only main option for a while.
๐Ÿ”—
This is until he ended up living in a place with decent roads for cycling in the late 2010's.
๐Ÿ”—
1.10.8.1. Ciro Santilli's cycling | โ‡‘ toc | โ†‘ parent "Ciro Santilli's sport practice"
๐Ÿ”—
First he was just cycling to work. But then he started to adventure out of town, and it just felt so good.
๐Ÿ”—
Like other drugs, you will have some bad trips, e.g. went the wrong way on a highway and are afraid you are going to die crushed by fast cars, got flat tire on 1 hour ride and have no repair kit, destination cafe is closed and you are hungry, wind got so strong you can barely ride, half an hour in you find out that it is way colder than what you expected.
๐Ÿ”—
But for every such experience you survive, you learn something to reduce the chances it will happen.
๐Ÿ”—
Cycling just gives you an amazing sense of freedom!
๐Ÿ”—
The prospect of being able to reach nice new places keeps the experience fresh for a very long time.
๐Ÿ”—
Each time you try to find a new cool location, and sometimes you just stumble into amazing stuff without knowing about it.
๐Ÿ”—
It is funny, but sometimes this gives Ciro the same feeling that he had as a child playing 2D exploration RPGs such Pokemon and Final Fantasy VI as you explore the wild. Except that the world of cycling is much much more detailed and diverse, and the freedom is much more real. And if you die on a car crash there are no continues.
๐Ÿ”—
Also, as you start cycling, you can feel the endorphins rise little by little, until you reach a point where you fell like you are part of the road.
๐Ÿ”—
It is amazing how you feel much less cold and hunger when cycling, to the point of being dangerous: always carry some chocolate bars in case you hit the wall!
๐Ÿ”—
As a friend of Ciro once said: you start to become like a wolf, who knows every cyclable little road in a 30km radius around your home.
๐Ÿ”—
As of 2020, Ciro is at that "should I buy a more reasonable road bike" moment. Let's see how it goes. If he does, cycling trips with the bike on a plane are likely.
๐Ÿ”—
As a software engineer, trying to repair a mechanical system like his bike reminds Ciro very strongly of how the physical engineering is brutal. Millimetric changes can make huge differences, it is mind blowing! Good lesson to have in mind.
๐Ÿ”—
Another thought that often comes to Ciro's mind is that bicycles are not regular possessions because they break a lot. Rather, they must be seen as a kind of transportation tax that you have to pay to feel amazing riding them rather than feel crappy riding a bus or train.
๐Ÿ”—
One interesting feeling that Ciro gets from cycling is that it is an intermediate between walking and riding a car. Ciro felt this especially strongly when he lived near work, at a distance that you could either walk or cycle. When you walk, you can just see so much more of the surroundings, it is astonishing. When you cycle, you just go much faster, and you attention is much more towards the front, so you feel surroundings much less. On the other side, cycling allows you to feel different things. E.g. in wider open areas, there isn't much detail to see anyway, so you can better feel those areas on the faster speed of the bike. A similar feeling applies to how pedestrians feel like flies when you are on a bike, just like you must feel like a fly to car drivers. Ciro later learnt that a person of similar literary ability to his, Ernest Hemingway, had a famous related similar quote:
It is by riding a bicycle that you learn the contours of a country best, since you have to sweat up the hills and can coast down them.... Thus you remember them as they actually are, while in a motorcar only a high hill impresses you, and you have no such accurate remembrance of country you have driven through as you gain by riding a bicycle.
๐Ÿ”—
Although Ciro does not run because of his itchy legs issue, he finds it interest to contrast cycling with running, notably:
  • cycling has a much higher setup time or wearing appropriate clothes, unlocking your bike, and of course, bike maintenance
  • running allows you to go into many more small paths that are not accessible by bike, thus offering a different sense of freedom. You can't go as far however. So maybe the ultimate sport would be to cycle to a good cross-country running location and then run over there?
๐Ÿ”—
Video 21. GCN video about the interesting Bingley Harriers & AC "harriers vs cyclists" race held annually in the UK, in which you can either run or cycle! The course attempts to balance rough uphill terrain where runners get an advantage, with less rough downhill where cyclists have an advantage. Source.
๐Ÿ”—
1.10.8.1.1. Ciro Santilli's bicycle wisdom | โ‡‘ toc | โ†‘ parent "Ciro Santilli's cycling"
๐Ÿ”—
Sometimes, these are more than just mechanics, but also have deeper life analogues. The title of Zen and the Art of Motorcycle Maintenance comes to mind. Sometimes they are just mechanics.
๐Ÿ”—
With more philosophical metaphors:
  • when your bike breaks, that provides an unique opportunity to learn how to fix it: try to fix your own bike before taking it to the shop
  • if the wind is blowing against you on the way out, it will likely blow behind you on the way back. But remember that the other way around also applies.
  • always take one extra clothing layer than what you think you will need in your back pocket or sport bag, especially when time is changing fast in Sprint and Autumn. The weather on the road outside of town can change very quickly!
  • if you took a turn, and it feels wrong, stop to check the map, and possibly backtrack to safety. When it feels wrong, it usually is a bad idea, e.g. roads where cars are too fast/too many. But if you take a wrong turn and it feels right, then follow it without fear and see what it leads to!
  • don't carry a speedometer on your bike. Analysis can be done afterwards on Strava. The only measurement that matters is "how awesome am I feeling right now?". Live in the moment instead of checking your speedometer every 10 seconds.
๐Ÿ”—
With less philosophical metaphors:
  • correct saddle hight is fundamental, your legs must be almost fully stretched at the bottom position
  • it is impossible to reach the correct tire pressure with (cheap?) hand pumps, their only purpose is to fill up a flat tire so you can get home after a long ride. But a track pump.
  • clean and lube your chain. The speed benefit is instantaneous and mind blowing. It also greatly improves gear shifting.
    This also prevents the chain from rusting, because the lube takes up the place where water would stay, and the muck makes it harder for water to evaporate.
    This is the most common bike maintenance mistake you see on the streets: people with that high pitched overly dry chain noise.
    Video 22. "How To Get A Perfectly Clean Chain - GCN's Top Tips For Cleaning Your Drivetrain". Source.
  • when a piece on your bike breaks and has no clear name written on it, you can try to identify it Google images
  • the more you watch YouTube maintenance videos without haste, the more you end up learn random new stuff that unexpectedly saves you later
  • if you took a turn, and it feels wrong, stop to check the map, and possibly backtrack to safety. When it feels wrong, it usually is a bad idea, e.g. roads where cars are too fast/too many
  • public place with lots of people are hell, because due to anonymity and the large number of distractions, it becomes exponentially more likely that someone will fuck you bike somehow, e.g. by dropping it on the ground. Always search a bit for a reasonable place to park, and avoid overcrowded parking spaces at all costs.
  • when you get on your bike to start riding, start riding slowly and gradually switch up pedal forces and gears. Things may have shifted in a weird position as it gets kicked around in parking. Ciro managed to bend his derailleur like that!
  • spin to win
  • it is not shameful to ride on your lower gears on a hill. You can actually go surprisingly fast with them, and conserve energy for later. Learn when to use each gear ratio.
  • learn to identify your suppliers:
    • https://www.wiggle.co.uk/: in Europe, this is best place to buy clothing from, and also good for some bike parts. It is the most organized website, and contains non-generic shit which Amazon is full of.
      For bike parts Amazon is also worth looking into however. Bike parts a bit different from clothing because you have to make sure that stuff fits, so you hopefully know exactly the part name before before buying it, and therefore website organization is not as crucial.
      Wiggle is however guilty of shameless: discounts that happen more often than not
๐Ÿ”—
1.10.8.1.1.1. Try to fix your own bike before taking it to the shop | โ‡‘ toc | โ†‘ parent "Ciro Santilli's bicycle wisdom"
๐Ÿ”—
Sometimes you get annoyed to death with your bike not breaking or changing gears perfectly as you would like, and the people at the bike shop never do the job well enough.
๐Ÿ”—
The problem with bike shops is that the employees are already swamped with work, and they don't get paid any extra for doing more work.
๐Ÿ”—
As a result, paradoxically, they are often happier, and respect you more if you are trying to get them to help you to fix your own bike!
๐Ÿ”—
Also, for the same reason, they don't have the time to go for a quick test ride after a fix to ensure that the bug was actually fixed.
๐Ÿ”—
So they ignore things that would obviously be huge ridability benefits (although they might not be obvious to newbie customers), for which customers would gladly pay more money for.
๐Ÿ”—
But you start to learn how to do stuff yourself and it feel amazing when you finally get there (after infinite trial and error).
๐Ÿ”—
Ciro dreams of a bike shop that actually calls you for the appointment and then teaches you how to fix the thing.
๐Ÿ”—
So the best strategy is to have a backup bicycle, and when your main one breaks, you just try to to the fix yourself. That means: identifying the broken piece, watching YouTube videos of how to do the job, buying a replacement on Amazon, and giving it a shot.
๐Ÿ”—
Then, if you fail to do the fix, that is OK, just take it to the bike shop, with the piece you've bought, and ask them to do it for you. At least this way you did not waste a golden opportunity to learn!
๐Ÿ”—

1.11. Ciro Santilli's biography | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Ciro Santilli was born in Brazil in a small / medium city in the State of Sรฃo Paulo in 1989 AD.
๐Ÿ”—
When Ciro was very young, about 6, he was fatty, and other evil boys picked on him. Ciro was a bit stupid, and continued to try and hang out with those evil kids, and continued to get hurt. Advice to his children: stay away from evil people. If you come across evil people, smile a fake smile to them, and walk away, but never give your back to them, and always be ready to fight. If they laugh at you, know that you are shit like everyone else, pretend to laugh with them, and get out. Never show any weakness. If a fight is likely, always be ready, always have your friends and never be outnumbered. On the Internet, never care about e-bully posts, either block them immediately, and anyone that likes their posts, or follow Ciro's reply policy. Call parents or other authorities as soon as the situation becomes seriously bad, better a living free pussy than dead or youth detention for murder. Similar advice applies if you are going to jail I guess. If a physical fight is inevitable however, ignore Jesus this once and don't give the other face, but rather follow the Talmud and fight all out on the beaches:
If someone comes to kill you, rise and kill first.
๐Ÿ”—
๐Ÿ”—
The Sikh knife Kirpan also comes to mind.
๐Ÿ”—
Non-violence only works when you have bodies to spare from your followers.
๐Ÿ”—
In the year 2000, Ciro lived with his parents for 10 months in the Coventry, United Kingdom because his father took some courses at the University of Warwick. This was Ciro's most important educational experience, because it taught him the Holy Language of English, which infinitely expanded Ciro's Internet horizons, and shaped Ciro's having more than one natural language is bad for the world philosophy. When he came back to Brazil, Ciro skipped dozens of levels in his English school, and was put to study with much older teenagers who marveled at Ciro's incredibly cute, but since lost, British accent.
๐Ÿ”—
Another huge advantage of Coventry is that the Hearsall Community Primary School had two classes dedicated to foreign students to learn English before integrating with the British students. There were a lof of kids from Kosovo there due to the Kosovo war which was just ending, and it was there that Ciro made his first Chinese friend, yet unaware of course of the role the country would later play in his life. One particularly fun memory was that of playing soccer on the school playground with a sponge ball to avoid breaking the windows. Then one day it was raining, but Ciro still went for a header, and the soaked sponge ball was soaked and splashed Ciro with dirty water. Good days.
๐Ÿ”—
Nothing summarizes that period of Ciro's life better than anything: Ali G interview with David and Victoria Beckham https://www.youtube.com/watch?v=jIic9_ZhyC8
๐Ÿ”—
Video 23. Source.
๐Ÿ”—
After Coventry, Ciro's family lived in the city of Santos, Sรฃo Paulo, Brazil, which made a deep impression on Ciro, until he left to go to the University of Sรฃo Paulo, Brazil in 2007.
๐Ÿ”—

1.11.1. Ciro Santilli's formal education | โ‡‘ toc | โ†‘ parent "Ciro Santilli's biography"

๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด did a double degree program, and obtained degrees in both:
๐Ÿ”—
Ciro participated in a double degree program, so he obtained have engineering degrees in both:
๐Ÿ”—
Despite studying in great institutions with great teachers, Ciro feels that:
๐Ÿ”—
This motivated Ciro to work on write free books to get famous website.
๐Ÿ”—

1.11.2. Ciro Santilli's musical education | โ‡‘ toc | โ†‘ parent "Ciro Santilli's biography"

๐Ÿ”—
Ciro's parents put him to play the piano. This is partly influenced by Ciro's paternal grandfather, an energetic Italian descendant who liked music
๐Ÿ”—
Figure 35. Six year old Ciro Santilli when his grandfather offered him an electronic keyboard.
๐Ÿ”—
The piano was fine, but a bit boring due to how it was taught.
๐Ÿ”—
The teachers were nice old ladies who followed a very traditional and methodic approach which was just like regular school, instead of doing what actually needed to be done: inspire kids into becoming creative musical geniuses that can compose their own stuff.
๐Ÿ”—
While in Santos, before going to university, Ciro somehow got into acoustic and electric guitar.
๐Ÿ”—
The electric guitar environment was much less formalized in general, and he took courses with an awesome teacher (archive), who actually tried to inspire his students to create their own music and improvisation.
๐Ÿ”—
And so a young teenage Ciro once seriously considered becoming a professional guitar player.
๐Ÿ”—
In his early teens, Ciro listened to the usual canned music his friends listened to: music teenager Ciro Santilli liked to listen to, until he started to stumble upon Jazz.
๐Ÿ”—
Ciro remembers clearly rainy weekend days where he would go to a run down second hand shop near his home in someone's garage (Sebo do Alfaiate, R. Frei Francisco de Sampaio, 183 - Embarรฉ, Santos - SP, 11040-220, Brazil :-)), and buy amazing second hand Jazz CDs. It was just a matter of time until he would start scouring the web for "the best jazz albums of all time" and start listening to all of them.
๐Ÿ”—
Ciro ultimately decided his bad memory and overwhelming passion for the natural sciences would better suit a scientific carrier.
๐Ÿ”—
He also learnt that the computer is also an extremely satisfying artistic instrument.
๐Ÿ”—
Also, with a computer, boring dexterity limitations are no more: you can just record perfect played segments or program things note by note to achieve whatever music or action you want!
๐Ÿ”—
Although Ciro quit playing musical instruments, his passion for the music has remained, and who knows how it has influenced his life.
๐Ÿ”—

1.11.3. Ciro Santilli's wife | โ‡‘ toc | โ†‘ parent "Ciro Santilli's biography"

๐Ÿ”—
๐Ÿ”—

1.12. Interesting members of the Santilli family | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Found through Google with no direct relation known to Ciro Santilli ไธ‰่ฅฟ็Œด
๐Ÿ”—
๐Ÿ”—

1.12.1. Ciro Santilli's homonyms | โ‡‘ toc | โ†‘ parent "Interesting members of the Santilli family"

๐Ÿ”—
If any of you ever read this, do send me an email to Ciro Santilli ไธ‰่ฅฟ็Œด saying hi and we can agree on a clear separation of usernames.
๐Ÿ”—
Although if you are just starting out, maybe you should just go from scratch with a unique Internet alias.
๐Ÿ”—
A younger unrelated Argentinian homonym who likes soccer that can be found through Google:
๐Ÿ”—
Ciro used to like playing soccer too :-)
๐Ÿ”—
๐Ÿ”—

1.13. Questions for Ciro Santilli's future self | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
Future self, answer these.
๐Ÿ”—
10 years:
  • 2017-2027: did self-driving cars become big?
  • 2017-2027: did virtual reality become big?
๐Ÿ”—
20 years
๐Ÿ”—
  • 2018-2038: are companies offering free full genome decoding just to get your genomic data and sell it to pharma companies?
    Someone like Ciro then creates an open source genomic database funded by health organizations that publishes genomes + phenotypes anonymously. Genome to phenotype analytics go crazy big.
๐Ÿ”—
40 years:
๐Ÿ”—

1.14. Ciro Santilli's projects | โ‡‘ toc | โ†‘ parent "Ciro Santilli ไธ‰่ฅฟ็Œด"

๐Ÿ”—
๐Ÿ”—
A summary of minor projects is given at: Ciro Santilli's minor projects.
๐Ÿ”—

1.14.1. All GitHub Commit Emails | โ‡‘ toc | โ†‘ parent "Ciro Santilli's projects"

๐Ÿ”—
๐Ÿ”—

1.14.2. Always out-of-date and rarely update list of open source contributions by Ciro Santilli | โ‡‘ toc | โ†‘ parent "Ciro Santilli's projects"

๐Ÿ”—
This is mostly stuff from before 2016 when Ciro was anxious to document his contributions to get a job.
๐Ÿ”—
Most of the projects here are also minor contributions, or Ciro later noticed that the projects were not useful enough to work on and that he was actually wasting his time.
๐Ÿ”—
1.14.2.1. Size scale | โ‡‘ toc | โ†‘ parent "Always out-of-date and rarely update list of open source contributions by Ciro Santilli"
๐Ÿ”—
Some of the contributions are subjectively self evaluated based on:
  • How many significant lines changed (no indentation changes, moves, mass refactoring, trivial tests, etc.):
    0 only 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.
๐Ÿ”—
1.14.2.2. Patches | โ‡‘ toc | โ†‘ parent "Always out-of-date and rarely update list of open source contributions by Ciro Santilli"
๐Ÿ”—
1.14.2.2.1. Merged by others | โ‡‘ toc | โ†‘ parent "Patches"
๐Ÿ”—
Only patches which were reviewed by at least one person with push permission will be listed here.
๐Ÿ”—
This may also include patches which were rejected in favor of another patch, but strongly influenced the merged patch.
๐Ÿ”—
Date Project Size Description
2019-09 KaTeX 1 Create globalGroup option to place definitions in global scope
2018-06 raspi3-tutorial 0 Explain how to see UART1
2018-05 Buildroot 1 ltp-testsuite: add --with-open-posix-testsuite
2018-03 Buildroot 1 qemu_x86_64_defconfig: fix kernel header version after bump to 4.15
2017-11 cocos2d 1 Recreate libfmod.so.6 symlinks
2017-10 cocos2d 1 Make bullet use -fPIC
2017-07 OPenCL Headers 0 C11 anonymous structs / unions should allow xyz notation for vector types
2017-06 Linux insides 0 Mention Buildroot in addition to ivandaviov/minimal
2017-06 opengl-tutorial.org 0 Use existing empty layout on feed.xml
2017-04 Tiny Renderer 0 Add gitignore
2017-02 Vulkan Loader 0 Use nproc instead of ncpu
2017-01 Boost Geometry 1 What is "QPoint::double" in doc/example_adapting_a_legacy_geometry_object_model.qbk ?
2016-12 Freetype GL 1 GLFW Ubuntu package works on 16.10
2016-11 honza/vim-snippets 1 Add C variable printf debug snippets
2016-09 Gazebo 1 Add a world to the gui_overlay_plugin_time example
2016-07 Android Vulkan Tutorials 1 Use android API 24
2016-07 minimal linux live 0 Fix time sh instead of sh time
2016-06 gHDL 0 Typo severals -> several in Invoking doc
2016-06 gHDL 1 Document GCC backend needed to generate executables
2016-06 gHDL 0 Typo debugger -> debugged in BUILD.txt
2016-06 gHDL 0 Typo carray -> carry in full adder example
2016-05 facedetect 1 Add example to extract faces with imagemagick
2016-05 ebookFoundation/free-programming-books 0 Create data science section and add Kaggle to it
2016-05 opengl-tutorial.org 0 Add empty line before triple quotes
2016-05 Bullet Physics 1 Improve HelloWorld
2016-04 Freetype GL 1 Find out how to compile on Ubuntu and document it
2016-03 ranger (file manager) 0 gitignore install_log.txt generated by make install
2016-03 ranger (file manager) 1 Add %confdir macro
2016-03 ranger (file manager) 1 set_bookmark for directories other than the current
2016-02 Jami (software) 2 Create working Android video hardware decoding prototype
2016-02 Jami (software) 1 Started the one command build which was later made official
2016-01 leetcode 1 Java LRUCache with LinkedHashMap
2015-12 ebookFoundation/free-programming-books 0 Add InterviewBit to problem sets
2015-10 Linux insides 0 Recommend ivandaviov/minimal to generate initrd
2015-08 bare-metal-tetris 0 make clean also removes tetris.iso
2015-08 eduOS 0 README typos Binutils and NASM
2015-08 GDB 0 python: fix Linetable case to LineTable in docstrings and comments
2015-07 GDB 0 Remove outdated comment from call-rt-st.exp
2015-07 GDB 0 Fix broken CONTRIBUTE link to GNU insignificant changes
2015-07 GDB 1 py-linetable.c: Fix doc of LineTable.source_lines' return type
2015-07 Binutils 1 Clarify case requirements for gas pseudo-ops
2015-07 Capstone 0 Website typos at beyond_llvm
2015-07 Vim Session 1 auto_save_to option added
2015-05 NASM 0 doc: typo occationally
2015-05 ebookFoundation/free-programming-books 0 Computer Science from the Bottom Up
2015-05 ebookFoundation/free-programming-books 0 problem-sets: leetcode
2015-05 ebookFoundation/free-programming-books 0 Papers we love
2015-04 alternativeTo 0 icanprove.com
2015-04 ebookFoundation/free-programming-books 0 Knapsack Problems
2015-04 ebookFoundation/free-programming-books 0 LSB
2015-04 honza/vim-snippets 0 java: prinlna to print array
2015-04 ebookFoundation/free-programming-books 0 PEG Judge
2015-03 GitLab 1 Convert many JavaScript # links to buttons
2015-03 GitLab 1 Factor permission check in issuable finder
2015-03 Spring 0 Typo Gardle -> Gradle
2015-02 Linux insides 0 Make x86 paging reference title clearer
2015-02 GitLab 1 Ignore .bundle
2015-02 ebookFoundation/free-programming-books 0 Problem sets: CareerCup
2015-01 honza/vim-snippets 1 Fix false positive hyphen list item expansion
2015-01 GitLab 1 Append in place for strings and arrays
2015-01 GitLab 1 Remove unneeded password_confirmation from seed
2015-01 GitLab 0 Typo in project API events comment
2015-01 GitLab 1 Replace match via get with get on routes
2015-01 GitLab 0 Remove or prepend underscore _ to unused method arguments
2015-01 GitLab 1 Change always passing visible false tests
2015-01 GitLab 1 Make blob new and edit file editors more uniform
2015-01 GitLab 1 Replace regex methods by string ones
2015-01 GitLab 1 Simplify SSH fingerprint regexp extraction
2015-01 GitLab 1 Add tests for disabled blob edit button cases v2
2014-12 GitLab 0 permission.md align table, rm double empty line
2014-12 GitLab 0 Remove commit indicator from path on Commits tab
2014-12 GitLab 0 Make protected branch perms explicit in doc
2014-12 GitLab 0 doc workflow markdown style
2014-12 GitLab 1 Disallow POST to compare as it does not create objects
2014-12 GitLab 0 Sort .gitignore
2014-12 GitLab 1 Remove unused Project#code function
2014-12 GitLab 0 Remove unused has_gitlab_shell3? method
2014-12 GitLab 1 Add tests for tree edit routes
2014-12 GitLab 1 Disable / hide MR edit blob button if cannot edit
2014-12 GitLab 0 Use blob local instead of instance
2014-12 GitLab 1 Fix dev user seed: ID was used twice
2014-12 GitLab 0 Fix Rake tasks doc README: add top level h1
2014-12 Ruby 0 Typo close -> closes.
2014-12 commonMark 1 Add tests for normalize outer whitespace removal
2014-12 commonMark 1 spec_tests make --pattern affect --dump-tests
2014-12 commonMark 1 Add --number option to run a single test by its id
2014-12 commonMark 1 Don't raise exception on invalid UTF-8 output
2014-12 commonMark 1 spec_tests add short options for common parameters
2014-12 commonMark 0 Ignore pyc files
2014-12 commonMark 1 Expose failure to normalize whitespaces
2014-11 honza/vim-snippets 1 Markdown bold and italic
2014-11 honza/vim-snippets 1 Markdown links URLs from the clipboard
2014-11 honza/vim-snippets 1 Markdown autolinks
2014-11 honza/vim-snippets 1 Let the short version of links not have title.
2014-11 honza/vim-snippets 1 Fix markdown fenced code blocks.
2014-11 GitLab 1 Delete tags and branches that start with hyphen
2014-11 GitLab 3 Restore hooks PATH before calling ruby
2014-11 GitLab 1 Factor regex error messages with spec API tests
2014-11 GitLab 1 Move new blob commit message textarea below editor
2014-11 gitbrute 0 Usage
2014-11 GitLab 1 Factor GITLAB_SHELL_VERSION get method
2014-11 GitLab 1 Create dev fixture projects with fixed visibility
2014-11 GitLab 1 Factor using Repository#path_to_repo
2014-11 GitLab 1 Remove unused authenticate_user from project#show
2014-11 GitLab 1 Remove dead Event#new_branch? method
2014-11 GitLab 1 Don't output to stdout from lib non-interactive methods
2014-11 GitLab 2 Fix version of test seed branches to specific revisions
2014-11 GitLab 1 Factor '0' * 40 blank ref constants
2014-11 GitLab 1 Transform remove blob link into button
2014-11 GitLab 1 Update default regex message to match regex
2014-11 GitLab 0 Continue strings with backslash instead of append
2014-11 GitLab 1 Factor behaviors.scss constants
2014-11 GitLab 0 Remove unneeded backslash: "/" == "/"
2014-11 GitLab 1 Fix push not allowed to protected branch if commit starts with 7 zeros
2014-11 GitLab 1 Use require spec_helper instead of relative path
2014-11 GitLab 0 Fix doc rake import md style
2014-11 GitLab 1 Factor lib backend gitlab shell path
2014-10 GitLab 1 Run user select Js only where needed
2014-10 GitLab 1 Use button type=submit instead of input
2014-10 GitLab 1 Only run profile js on pages that need it
2014-10 GitLab 1 Better js -> URL projects map to reduce unneeded execution
2014-10 GitLab 1 Use Gitlab.config instead of Settings everywhere
2014-10 GitLab 1 Show nothing instead of unassigned on issues
2014-10 GitLab 1 Only run namespace select js when needed
2014-10 GitLab 0 Merge File basename and dirname into split
2014-10 GitLab 1 Fix import.rake failed import if project name is also an existing namespace
2014-10 GitLab 0 Remove unused variable user at lib/gitlab/markdown
2014-10 GitLab 1 Use argument list for sh instead of string
2014-10 GitLab 1 Only run avatar chooser Js on pages that need it
2014-10 GitLab 1 Remove whitespace link between user group avatars
2014-10 GitLab 0 Fix doc raketasts import md style
2014-10 GitLab 1 Remove unneeded app/finders config.autoload path
2014-10 GitLab 0 Improve grack auth hooks comment.
2014-10 GitLab 1 Remove unused admin/projects#repository method
2014-10 GitLab 1 Factor admin logs
2014-10 GitLab 1 Remove unused filter from ProjectsController
2014-10 GitLab 1 Remove unused dev_tools helper.
2014-10 GitLab 1 Factor authorize_push! and authorize_code_access!
2014-10 GitLab 1 Replace match with end_with: more readable, faster
2014-10 GitLab 1 Use @project on controllers, don't call method
2014-10 GitLab 1 Remove param[:project_id] at admin controller
2014-10 GitLab 1 DRY mentioned in magic note constant
2014-10 GitLab 1 Factor group forms
2014-10 GitLab 1 State on CONTRIBUTING that people should fix line style of touched lines
2014-10 GitLab 1 Export all coffee classes with @
2014-10 GitLab 1 Fix missing flash on file edit error from web UI.
2014-10 Capybara 0 Fix History typo.
2014-10 GitLab 1 Make new and edit file submit more uniform
2014-10 libgit2 1 Join typedef and struct definitions in single file
2014-10 GitLab 1 Factor dashboard helper methods
2014-10 GitLab 1 Factor issue and merge request services
2014-10 GitLab 1 Replace www.gitlab.com with about.gitlab.com
2014-10 GitLab 0 Improve formatting of app/finders/README.md
2014-10 GitLab 0 Remove outdated comment from commits_controller
2014-10 GitLab 1 Factor markup? gitlab_markdown? into new method
2014-10 GitLab 1 Remove unused title parameter
2014-10 GitLab 1 Make Spinach test names consistent
2014-10 GitLab 0 Ignore .bundle
2014-10 GitLab 0 Ignore tags file
2014-10 GitLab 0 Split one instance variable per line
2014-10 GitLab 1 Factor commit message textareas
2014-10 GitLab 1 Remove outdated comment on the project test seed
2014-10 GitLab 0 Remove assignment without effect.
2014-10 GitLab 1 Add parenthesis to function def with arguments.
2014-10 GitLab 1 Remove test line without effect because no should.
2014-10 GitLab 1 Improve remove file commit message textarea placeholder
2014-10 GitLab 1 Replace :erb filter with plain HAML
2014-10 GitLab 1 Remove blame lines added leading whitespace
2014-10 GitLab 1 Improve new file commit message textarea placeholder.
2014-10 GitLab 1 Simplify custom MR good commit message hint
2014-10 GitLab 1 Move group feature step to match test location
2014-10 GitLab 1 Titleize blob action buttons.
2014-09 GitLab 0 Remove statement without effect.
2014-09 GitLab 0 Fix dev merge seed: update testme to gitlab-test.
2014-09 GitLab 0 Remove trailing whitespace from views.
2014-09 GitLab 1 Remove def project from tests that inherit it.
2014-09 GitLab 1 Replace testme with gitlab-test.
2014-09 GitLab 1 Add predictable merge requests on dev seed.
2014-09 GitLab 1 Prevent email sending on admin dev seed.
2014-09 GitLab 1 Only show text wrap and diff notes for text in merge requests.
2014-09 GitLab 1 Add web UI file CRUD tests.
2014-09 GitLab 1 Remove type submit from button_tag since default.
2014-09 GitLab 1 Replace empty? nil? with blank?.
2014-09 GitLab 0 Typo indiciated -> indicated.
2014-09 GitLab 1 Remove unnecessary page. from tests.
2014-09 GitLab 1 Remove ununsed CONTRIBUTING link on edit MR form.
2014-09 GitLab 1 Add g++ dependency to ubuntu install.
2014-09 GitLab 0 Hound prefer single quotes.
2014-09 libgit2 0 Remove unused buf variable from path/core test.
2014-09 GitLab 1 Only clone GitLab Shell on tests if necessary.
2014-09 GitLab 1 Factor fork button view.
2014-09 GitLab 1 evaluate -> execute_script when return not needed.
2014-09 GitLab 1 evaluate_script history -> go_back and go_forward.
2014-09 GitLab 1 Factor current_url + URI.path into current_path.
2014-09 GitLab 1 Replace javascript:; links with buttons.
2014-09 GitLab 1 Factor .add-diff-note active state.
2014-09 GitLab 1 Fix link_to_reply_diff.
2014-09 GitLab 1 Factor issue and MR edit form error list.
2014-09 GitLab 1 Factor error and success methods from services.
2014-09 GitLab 1 Set textarea resize:vertical by default.
2014-09 GitLab 1 Factor out commit list from compare and new MR.
2014-09 GitLab 1 Prefix Spinach features with Spinach::Features::.
2014-09 GitLab 0 Typo it -> its.
2014-09 GitLab 1 Factor zen mode.
2014-09 GitLab 0 Ignore tags file.
2014-09 GitLab 1 Improve zen mode internals.
2014-09 GitLab 0 CONTRIBUTING typos.
2014-09 Marked 1 Add browser usage to README
2014-09 GitLab 0 Typo herlper -> helper.
2014-09 libgit2 1 Factor 40 and 41 constants from source.
2014-09 libgit2 1 Replace void casts with GIT_UNUSED.
2014-09 libgit2/rugged 0 Typo "di ff" -> diff.
2014-09 libgit2/rugged 0 Remove trailing whitespace.
2014-09 libgit2/rugged 0 Gitignore rdoc/.
2014-09 libgit2/rugged 0 Factor File.join in test sandbox_init.
2014-09 Ruby on Rails 1 Explain ERB space removal.
2014-09 GitLab 0 Update README to match Md style in CONTRIBUTING.
2014-09 GitLab 0 Typo localy -> locally
2014-09 vader.vim 1 Add run-tests script.
2014-09 vader.vim 2 Add SyntaxAt and SyntaxOf helpers.
2014-09 libgit2/rugged 0 Remove trailing whitespace.
2014-09 libgit2/rugged 0 Gitignore rdoc/.
2014-09 libgit2/rugged 0 Factor File.join in test sandbox_init.
2014-09 Pro Git book 1 Mention packed-refs.
2014-09 GitLab 1 Add link to fixed SHA version on blob.
2014-09 GitLab 1 Factor new issue and edit MR forms.
2014-09 GitLab 1 Fix missing to on reassign Merge Request text email to unassigned.
2014-09 GitLab 1 Fix missing to on reassign Merge Request email to unassigned.
2014-09 karlcow/markdown-testsuite 1 Run multimarkdown in compatibility mode.
2014-09 karlcow/markdown-testsuite 1 Link to stmd.
2014-09 GitLab 1 Add users with deterministic username and password to development seed.
2014-09 Ruby on Rails 0 Shorten ActionView::Base doc summary line.
2014-09 Ruby on Rails 1 Clarify Rails uses erubis not stdlin ERB.
2014-08 honza/vim-snippets 1 Rename node p to pipe
2014-08 GitLab 0 Typo.
2014-08 honza/vim-snippets 1 README improvements: md style, typos, fix links.
2014-08 honza/vim-snippets 1 Add tex hyperlink snippets.
2014-08 GitLab 1 Remove HAML eval for const strings.
2014-08 softcover (LaTeX) 1 Ignore template top level tex file.
2014-08 softcover (LaTeX) 1 Fix failing PDF fontsize verbatim test.
2014-08 honza/vim-snippets 1 Add tex listings snippets.
2014-08 GitLab 0 Fix Md style for API docs.
2014-08 GitLab 0 Fix Md style for projects API doc.
2014-08 GitLab 1 Restrict commit area resize to vertical.
2014-08 GitLab 0 Update README Markdown style to match CONTRIBUTING
2014-07 Pro Git book 1 Set dummy merge driver merge ours .gitattributes.
2014-07 GitLab 2 Add project stars.
2014-07 GitLab 1 Increase diff byte highlight contrast.
2014-07 GitLab 0 Clarify squash comes after review.
2014-07 GitLab 0 Enforce Markdown style.
2014-07 Octokat.js 1 Gitignore fixtures and dist/commonjs.
2014-07 GitLab 1 Fix username validation message to match regexp.
2014-06 GitLab 1 Add trailing newline to all text files.
2014-06 GitLab 0 Typo.
2014-06 markdownlint/markdownlint 0 Typo.
2014-06 Ruby on Rails 0 Typo.
2014-06 GitLab 1 Replace HTML5 obsolete center element with CSS.
2014-06 developper.github.com 1 Explain :user is username not ID.
2014-06 Prose 0 Correct CONTRIBUTING typos.
2014-06 Octokat.js 1 Fix repo to repos in README examples.
2014-06 Octokat.js 1 Fix typos and style on README.
2014-06 octokit.js 0 Remove trailing whitespace.
2014-06 octokit.js 1 Add grunt watch.
2014-06 Octokat.js 0 Remove unneeded semicolon.
2014-06 Octokat.js 1 Add grunt watch.
2014-06 karlcow/markdown-testsuite 2 Add Vagrantfile.
2014-06 karlcow/markdown-testsuite 1 Remove hoedown options.
2014-06 honza/vim-snippets 1 Add HTML ac Anchor from Clipboard.
2014-06 RVM 0 Correct some doc typos.
2014-06 GitLab 1 Clarify that bbastov is the style of Hound CI.
2014-06 GitLab 2 Update docs to match new markdown style guide.
2014-05 karlcow/markdown-testsuite 1 Add blackfriday, lunamark, maruku and rdiscount.
2014-05 karlcow/markdown-testsuite 1 Add autolink-no-bracket extension test.
2014-05 karlcow/markdown-testsuite 0 Add showdown engine.
2014-05 karlcow/markdown-testsuite 1 Title attribute is significant at normalization.
2014-05 karlcow/markdown-testsuite 1 Add design goals.
2014-05 karlcow/markdown-testsuite 0 Add Python Markdown 2 engine.
2014-05 karlcow/markdown-testsuite 0 Add peg-markdown engine.
2014-05 GitLab 1 Commit message textareas have 72 char mark line.
2014-05 karlcow/markdown-testsuite 1 Add autolink-no-bracket extension test.
2014-05 karlcow/markdown-testsuite 1 Add link-idref-implicit-no-bracket test.
2014-05 karlcow/markdown-testsuite 1 Minor fixes to addition of hoedown.
2014-05 karlcow/markdown-testsuite 1 Remove no-auto-id argument for kramdown.
2014-05 karlcow/markdown-testsuite 1 Add markdown_pl Markdown.pl engine.
2014-04 GitLab 0 Remove redundant signin link from signin page.
2014-04 GitLab 1 Add help link to header.
2014-04 karlcow/markdown-testsuite 1 Improve output normalization with custom parser.
2014-04 karlcow/markdown-testsuite 1 Add ordered-list-inner-par-list test.
2014-04 GitLab CI 1 Add application.yml.example.development.
2014-04 Boost Graph 1 Explicitly use vertex type on quick tour example.
2014-04 karlcow/markdown-testsuite 1 Add list-code-1-space test.
2014-04 karlcow/markdown-testsuite 1 Add md2html engine.
2014-04 karlcow/markdown-testsuite 1 Remove email tests because output is random.
2014-04 karlcow/markdown-testsuite 2 Run only tests that contain string in title.
2014-04 karlcow/markdown-testsuite 1 Add marked engine.
2014-04 GitLab 1 Add markdown styleguide.
2014-04 GitLab 1 Include SASS in subdirectories with glob.
2014-04 tig (git UI) 1 Add refs bind ! to delete branch.
2014-04 GitLab 1 Rename issue form tags to match MR and params.
2014-04 GitLab 1 Say issues are accepted at both GitLab and GitHub.
2014-03 karlcow/markdown-testsuite 1 Document config_local.py on README.
2014-03 karlcow/markdown-testsuite 1 Factor out engines that are commands on PATH.
2014-03 karlcow/markdown-testsuite 1 Add sample run-tests.py output to README.
2014-03 karlcow/markdown-testsuite 1 Check if are no engines enabled to avoid exception.
2014-03 plasticboy/vim-markdown 1 Add Toc commands.
2014-03 karlcow/markdown-testsuite 0 One disable per line commented out on conf.
2014-03 karlcow/markdown-testsuite 0 Add multimarkdown support.
2014-03 karlcow/markdown-testsuite 0 Typo conten -> content.
2014-03 karlcow/markdown-testsuite 2 Automated tests.
2014-03 GitLab CI 0 Remove config/puma.rb from gitignore.
2014-03 GitLab CI 0 Ignore config/unicorn.rb.
2014-03 GitLab CI 0 Tell users to install bundle locally without sudo.
2014-03 GitLab CI 0 Document where to find the registration token.
2014-03 karlcow/markdown-testsuite 0 Remove space from simple list, specify asterisk.
2014-03 karlcow/markdown-testsuite 1 Add script to cat all input files.
2014-03 karlcow/markdown-testsuite 0 Remove newline from empty files.
2014-03 GitLab 1 Start development Key seed id from 1.
2014-03 GitLab 1 Show link to public projects for new users.
2014-03 GitLab cookbook 1 Correct bindfs metal dev init script.
2014-03 GitLab CI 0 Organize gitignore.
2014-03 GitLab cookbook 1 Correct metal install home share technique.
2014-03 GitLab cookbook 0 Uniform markdown headers
2014-03 GitLab cookbook 0 Typo ommited -> omitted.
2014-03 GitLab 0 Documentation Typos
2014-02 plasticboy/vim-markdown 1 Add contributing guidelines and started tests as required by them.
2014-02 plasticboy/vim-markdown 0 Add Vundle install to README, updated pathogen URL to GitHub.
2014-02 plasticboy/vim-markdown 0 Create credits section, remove link to old homepage.
2014-02 GitLab 1 Remove dir prefix from filename of tests under dir.
2014-02 karlcow/markdown-testsuite 0 Make title more readable.
2014-02 karlcow/markdown-testsuite 0 Make readme intro more direct.
2014-02 karlcow/markdown-testsuite 1 Add extensions.
2014-02 GitLab 2 Blob and tree markdown links to anchors work.
2014-02 git-browse-remote 0 Add install instructions.
2014-02 overleaf 1 Remove latexmk install instructions from README.
2014-02 overleaf 1 Remove dollars from readme bash code.
2014-02 overleaf 1 Add dummy version to package.json to fix install.
2014-02 overleaf 1 Add .nvmrc
2014-02 GitLab 2 User can leave group from group page.
2014-02 GitLab 2 Add anchors to markdown rendered headers.
2014-02 GitLab 2 User profile pages are publicly visible.
2014-01 GitLab cookbook 1 Development install documentation correction.
2014-01 GitLab cookbook 2 Create metal development install documentation.
2014-01 GitLab cookbook 0 Improve docs.
2014-01 GitLab cookbook 1 Add option to control the SSH port used.
2013-12 GitLab cookbook 1 Improve production install docs.
2013-11 plasticboy/vim-markdown 1 Header navigation mappings work for Setext headers.
2013-10 okular 1 Add shortcut to Change Colors on a page.
2013-09 plasticboy/vim-markdown 2 Add mappings to navigate across headers.
2013-02 SciPy 1 Improve documentation.
2013-01 Django Userena 1 Add new configuration option.
2012-11 DataTables 1 Improved a doc example.
๐Ÿ”—
1.14.2.2.2. Merged by Ciro | โ‡‘ toc | โ†‘ parent "Patches"
๐Ÿ”—
Patches which were merged by Ciro himself on repositories which eh feels have large public visibility, e.g. those to which he has been given push permission.
๐Ÿ”—
Repositories to which Ciro gained push permission because of his contributions:
๐Ÿ”—
๐Ÿ”—
1.14.2.3. Bug reports and feature requests | โ‡‘ toc | โ†‘ parent "Always out-of-date and rarely update list of open source contributions by Ciro Santilli"
๐Ÿ”—
  • I opened and was confirmed or generated considerable interest
  • I wrote comments pointing out a non obvious cause/fix/duplicate.
  • I reviewed the patch
๐Ÿ”—
This shall not list bugs solved by my accepted pull requests.
๐Ÿ”—
1.14.2.3.1. Closed source | โ‡‘ toc | โ†‘ parent "Bug reports and feature requests"
๐Ÿ”—
Disclaimer: closed source vendors tend to be highly secretive, solving small issues without any reply, so I use my best judgement given the lack of feedback.
๐Ÿ”—
Date Project Type Description
2019-07 https://zenodo.org/ Security bug Cross-Site Scripting vulnerability. Also mentioned at: https://invenio-software.org/blog/security-advisor-20190715/
2015-09 GitHub Support Add ability to fork and edit files from external URL
2015-05 GitHub Bug 500 when listing GCC mirror branches
2015-04 Free Software Foundation Bug Duplicated paragraph at Octave at description of high priority projects
2015-03 GitHub Bug @about and @pricing generate at mentions even though they are reserved
2015-03 Jenkov tutorials Typo typo boolean -> long
2015-03 GitHub Bug 502 on homepage on long streak
2015-02 GitHub Bug If a CONTRIBUTING.md that is a symlink is present, the link to it should not show on new issue forms
2015-02 GitHub Feature Allow to reopen pull requests after a force push
2015-02 GitHub Bug If a CONTRIBUTING.md that is a symlink is present, the link to it should not show on new issue forms
2014-12 My Science Work Typo Typos on settings page
2014-12 GitHub Bug Merge pull request window appears after rebase even if I don't have permission
2014-12 GitHub Feature Repository Traffic Analytics API
2014-12 GitHub Support Pin issues or add header text to issues page
2014-12 GitHub Bug Tree show links blobs to the last commit that contained the blob instead of commit that introduced the file
2014-12 GitHub Duplicate Deal properly with uppercase .GIT file basenames on web editor like for lowercase .git
2014-12 GitHub Duplicate Add a "I have this issue too" button
2014-11 gitBook Bug 500 on /edit without access
2014-11 GitHub Feature View non-rendered markdown source with line numbers on blob show
2014-11 GitHub Bug 500 on branch index for long branch name pushed together with other branch
2014-11 GitHub Bug GFM ordered list with inner unordered paragraph list generates two ordered lists
2014-11 GitHub Bug Glitches for filenames that contain only spaces
2014-11 GitHub Bug 500 on raw and 414 on blob show of long file name with 1024 characters
2014-11 GitHub Feature Highlight bytes / words in diffs on adjacent multi-line modifications
2014-11 GitHub Duplicate Allow following of groups similar to following users
๐Ÿ”—
1.14.2.3.2. Open source | โ‡‘ toc | โ†‘ parent "Bug reports and feature requests"
๐Ÿ”—
Date Project Size Description
2019-04 gnuplot Why does plotting with point labels make plot generation extremely slow?
2019-04 GDB Dashboard Limit the size of shown arguments in the Stack display
2018-03 QEMU 2 Test record and replay feature. Also here
2018-02 pandoc Add option to produce asciidoc output without explicit heading ids
2017-10 Android GLES3 content gles3jni from ndk examples fails with "java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG"
2017-09 Mozilla rr How to automatically start replay and go directly to main instead of _start?
2017-09 Mozilla rr Reverse step over time(NULL) enters rr/src/preload/syscall_hook.S and leads to "Cannot find bounds of current function"
2017-08 xsel Why maximum 4000 characters output with xsel -b ?
2017-06 Buildroot Don't print mutiline struct function arguments on stack when set pretty print on
2017-04 GDB Dashboard Add style option to print stack arguments on a single line
2017-05 Buildroot Build fails with "unexpected EOF while looking for matching "'" if PATH contains a newline
2017-04 GDB Dashboard Add style option to print stack arguments on a single line
2017-03 clBLAS .s[0] + CL_DEVICE_TYPE_ALL
2017-01 game-icons.net Use multiple separate paths, allow customizing the color of each component, and give a default color
2017-01 game-icons.net delapouite/originals/svg/brick-wall.svg has some whitespace on top
2017-01 OpenAI Gym examples/agents/keyboard_agent.py fails with "AttributeError: 'TimeLimit' object has no attribute 'viewer'"
2016-12 Simple DirectMedia Layer Add C variable printf debug snippets
2015-03 tig (git UI) Accepted feature.
2014-11 GitLab Duplicate
2014-11 GitLab Bug.
2014-11 GitLab Support.
2014-11 Bootstrap Hover Dropdown Bug confirmed.
2014-11 GitLab Bug confirmed.
2014-11 GitLab Triaging.
2014-11 GitLab Problem with the display icons in the left block
2014-11 sass (stylesheet language) Bug confirmed.
2014-10 GitLab Point duplicate.
2014-10 GitLab Bug confirmed.
2014-10 GitLab Bug confirmed.
2014-10 Semaphore CI Bug confirmed.
2014-10 libgit2 Bug confirmed.
2014-10 GitLab Support.
2014-10 GitLab Point duplicate.
2014-09 vader.vim Accepted feature.
2014-09 GitLab Point already fixed.
2014-09 vader.vim Accepted feature.
2014-09 GitLab Bug confirmed.
2014-09 GitLab Bug confirmed.
2014-09 GitLab Point duplicate.
2014-09 GitLab Point already fixed.
2014-08 markdownlint/markdownlint Accepted feature.
2014-08 softcover (LaTeX) Accepted feature.
2014-08 markdownlint/markdownlint Accepted feature.
2014-07 GitLab Bug confirmed.
2014-07 GitLab Accepted feature.
2014-07 GitLab Accepted feature.
2014-06 GitLab Accepted feature.
2014-06 GitLab Point duplicate.
2014-06 karlcow/markdown-testsuite Bug confirmed.
2014-06 plasticboy/vim-markdown Close issue.
2014-06 plasticboy/vim-markdown Review patch.
2014-06 plasticboy/vim-markdown Review and patch patch.
2014-05 softcover (LaTeX) Accepted feature.
2014-04 karlcow/markdown-testsuite Close issue with better issues.
2014-03 tig (git UI) Accepted feature.
2014-03 GitLab Accepted feature.
2014-03 softcover (LaTeX) Accepted feature.
2014-03 GitLab Add useful information.
2014-03 GitLab Point duplicate.
2014-03 GitLab Point duplicate.
2014-03 GitLab Accepted feature.
2014-02 GitLab Point duplicate.
2014-02 GitLab Accepted feature.
2014-02 overleaf Feature generated considerable interest.
2014-02 GitLab Point already fixed.
2014-02 GitLab Link feature request to patch.
2013-10 yakuake Bug confirmed.
2013-10 okular Bug confirmed.
2013-06 krusader Bug confirmed.
2013-05 numPy Bug confirmed + inner cause.
2012-05 krusader Accepted feature.
2012-05 krusader Bug confirmed.
2012-05 AutoKey Bug confirmed.
๐Ÿ”—
1.14.2.3.3. Not verified | โ‡‘ toc | โ†‘ parent "Bug reports and feature requests"
๐Ÿ”—
The following contributions where not immediately verified by others, but they were not reverted either and I think they are good.
๐Ÿ”—
Date Project Type Description
2014-12 plasticboy/vim-markdown Review patch Add tilde-fenced code blocks
๐Ÿ”—
1.14.2.4. Security | โ‡‘ toc | โ†‘ parent "Always out-of-date and rarely update list of open source contributions by Ciro Santilli"
๐Ÿ”—
Date Project Size Description
2016-05 All GitHub Commit Emails 1 Password disclosure grep password on email data. Gmail password worked and user confirmed.
๐Ÿ”—

2. Physics | โ‡‘ toc | โ†‘ parent "Ciro Santilli (ไธ‰่ฅฟ็Œด)"

๐Ÿ”—
๐Ÿ”—
Ciro Santilli ไธ‰่ฅฟ็Œด doesn't know physics. He writes about it partly to start playing with some scientific content for: write free books to get famous website, partly because this stuff is just amazingly beautiful.
๐Ÿ”—
Ciro's main intellectual Physics fetishes are to learn quantum electrodynamics and condensed matter.
๐Ÿ”—
Physics is the art of predicting the future by modelling the world with mathematics.
๐Ÿ”—
Every science is Physics in disguise, but the number of objects in the real world is so large that we can't solve the real equations in practice.
๐Ÿ”—
Luckily, due to emergence, we can use uglier higher level approximations of the world to solve many problems, with the complex limits of applicability of those approximations.
๐Ÿ”—
Therefore, such higher level approximations are highly specialized, and given different names such as:
๐Ÿ”—
Figure 36. xkcd 435: Fields arranged by purity. Source.
๐Ÿ”—
As of 2019, all known physics can be described by two theories:
๐Ÿ”—
Unifying those two into the theory of everything one of the major goals of modern physics.
๐Ÿ”—

2.1. How to teach and learn physics | โ‡‘ toc | โ†‘ parent "Physics"

๐Ÿ”—
The approach many courses take to physics, specially "modern Physics" is really bad, this is how it should be taught:
  • start by describing experiments that the previous best theory did not explain
  • then, give the final formula for the next best theory
  • then, give all the important final implications of that formula, and how it amazingly describes the experiments
  • then, give some mathematical intuition on the formulas, and how the main equation could have been derived
  • finally, then and only then, start deriving the outcomes of the main formula in detail
๐Ÿ”—
This is likely because at some point, experiments get more and more complicated, and so people are tempted to say "this is the truth" instead of "this is why we think this is the truth", which is much harder.
๐Ÿ”—
But we can't be lazy, there is no replacement to the why.
๐Ÿ”—

2.2. The most important physics experiments | โ‡‘ toc | โ†‘ parent "Physics"

๐Ÿ”—
Videos should be found / made for all of those: videos of all key physics experiments
๐Ÿ”—
๐Ÿ”—

2.2.1. Michelson-Morley experiment | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
Video 24. "Michelson Interferometer - Amrita University" Published on Jan 30, 2013. Source.
๐Ÿ”—

2.2.2. Double slit experiment | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
When done with individual electrons it amazingly confirms the wave particle duality of quantum mechanics.
๐Ÿ”—
Here are a few non well specified demonstrations. TODO how do they know that there is just a single photon though? single photon production and detection experiments.
๐Ÿ”—
๐Ÿ”—
2.2.2.1. Davisson-Germer experiment | โ‡‘ toc | โ†‘ parent "Double slit experiment"
๐Ÿ”—
๐Ÿ”—
Shows electron interference patterns using a crystal as slit, thus confirming that not just light, but also matter, is wave-like.
๐Ÿ”—

2.2.3. Blackbody radiation experiment | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
Video 25. "Blackbody Radiation Experiment" by "sciencesolutions". A modern version of the experiment with a PASCO scientific EX-9920 setup. Source.
๐Ÿ”—
TODO original setups.
๐Ÿ”—
Led to: Planck's law
๐Ÿ”—

2.2.4. Compton scattering | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
Video 26. "Compton Scattering" by "Compton Scattering" experiment with a Cesium-137 source. Source.
๐Ÿ”—
Classic theory predicts that the output frequency must be the same as the input one since the electromagnetic wave makes the electron vibrate with same frequency as itself, which then irradiates further waves.
๐Ÿ”—
But the output waves are longer because photons are discrete and energy is proportional to frequency:
Video 27. "L3.3 Compton Scattering" by "MIT OpenCourseWare". Source.
๐Ÿ”—
The formula is exactly that of two relativistic billiard balls colliding.
๐Ÿ”—
Therefore this is evidence that photons exist and have momentum.
๐Ÿ”—

2.2.5. Photoelectric effect | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
No matter how hight the wave intensity, if it the frequency is small, no photons are removed from the material.
๐Ÿ”—
This is different from classic waves where energy is proportional to intensity, and coherent with the existence of photons and the Planck-Einstein relation.
๐Ÿ”—

2.2.6. Lamb shift | โ‡‘ toc | โ†‘ parent "The most important physics experiments"

๐Ÿ”—
๐Ÿ”—
2s/2p energy split, not predicted by the Dirac equation, but explained by quantum electrodynamics, which is one of the first great triumphs of that theory.
๐Ÿ”—

2.3. International System of Units (SI) | โ‡‘ toc | โ†‘ parent "Physics"

๐Ÿ”—
๐Ÿ”—
The key is to define only the minimum number of measures: if you define more definitions become over constrained and could be inconsistent.
๐Ÿ”—
Learning the modern SI is also a great way to learn some interesting Physics.
๐Ÿ”—

2.3.1. "Origins of Precision" YouTube video by Machine Thinking | โ‡‘ toc | โ†‘ parent "International System of Units"

๐Ÿ”—
Great overview of the earlier history of unit standardization.
๐Ÿ”—
Gives particular emphasis to the invention of gauge blocks.
๐Ÿ”—
Published on 2017-11-22.
๐Ÿ”—
Video 28. Source.
๐Ÿ”—

2.3.2. Versions of the international System of Units | โ‡‘ toc | โ†‘ parent "International System of Units"

๐Ÿ”—
2.3.2.1. 2019 redefinition of the SI base units | โ‡‘ toc | โ†‘ parent "Versions of the international System of Units"
๐Ÿ”—
๐Ÿ”—

2.3.3. Kilogram | โ‡‘ toc | โ†‘ parent "International System of Units"

๐Ÿ”—
๐Ÿ”—
๐Ÿ”—
This was possible due to the development of the kibble balance.
๐Ÿ”—
2.3.3.1. Kibble balance | โ‡‘ toc | โ†‘ parent "Kilogram"
๐Ÿ”—
๐Ÿ”—
Measures weight from a voltage.
๐Ÿ”—

2.3.4. Meter | โ‡‘ toc | โ†‘ parent "International System of Units"

๐Ÿ”—
๐Ÿ”—
2.3.4.1. Gauge block | โ‡‘ toc | โ†‘ parent "Meter"
๐Ÿ”—
๐Ÿ”—
๐Ÿ”—

2.3.5. Geiger counter | โ‡‘ toc | โ†‘ parent "International System of Units"

๐Ÿ”—
๐Ÿ”—

2.4. Particle physics | โ‡‘ toc | โ†‘ parent "Physics"

๐Ÿ”—
๐Ÿ”—
Currently an informal name for the Standard Model
๐Ÿ”—
Chronological outline of the key theories:
๐Ÿ”—

2.4.1. Standard Model | โ‡‘ toc | โ†‘ parent "Particle physics"

๐Ÿ”—
๐Ÿ”—
As of 2019, the more formal name for particle physics, which is notably missing general relativity to achieve the theory of everything.
๐Ÿ”—
2.4.1.1. Are there more than 3 generations of particles in the Standard Model?? | โ‡‘ toc | โ†‘ parent "Standard Model"
๐Ÿ”—
๐Ÿ”—
Video 29. "PHYS 485 Lecture 5: Standard Model and Feynman Diagrams" published by Roger Moore on 2016-04-06. t=1474 gives an argument why there might only be 3 generations of particles.
๐Ÿ”—

2.4.2. Maxwell's equations | โ‡‘ toc | โ†‘ parent "Particle physics"

๐Ÿ”—
๐Ÿ”—
Unified all previous electro-magnetism theories into one equation.
๐Ÿ”—
Explains the propagation of light as a wave, and matches the previously known relationship between the speed of light and electromagnetic constants.
๐Ÿ”—
The equations are a limit case of the more complete quantum electrodynamics, and unlike that more general theory account for the quantization of photon.
๐Ÿ”—
TODO: what does it mean that it is coherent with special relativity?
๐Ÿ”—
The equations are a system of partial differential equation.
๐Ÿ”—
The system consists of 6 unknown functions that map 4 variables: time t and the x, y and z positions in space, to a real number:
  • Ex(t,x,y,z)E_x(t, x,y,z), Ey(t,x,y,z)E_y(t, x,y,z), Ez(t,x,y,z)E_z(t, x,y,z): directions of the electric field Eโ†’:R4โ†’R3\functionDomain{\E}{\RFour}{\RThree}
  • Bx(t,x,y,z)B_x(t, x,y,z), By(t,x,y,z)B_y(t, x,y,z), Bz(t,x,y,z)B_z(t, x,y,z): directions of the magnetic field Bโ†’:R4โ†’R3\functionDomain{\B}{\RFour}{\RThree}
and two known input functions:
  • ฯ:R3โ†’R\functionDomain{\rho}{\RThree}{\R}: density of charges in space
  • Jโ†’:R3โ†’R3\functionDomain{\J}{\RThree}{\RThree}: current vector in space. This represents the strength of moving charges in space.
๐Ÿ”—
Due to the conservation of charge however, those input functions have the following restriction:
Equation 1. Charge conservation.
โˆ‚ฯโˆ‚t+โˆ‡โ‹…Jโ†’=0\dv{\rho}{t} + \divergence{\mathbf{\J}} = 0
๐Ÿ”—
Also consider the following cases:
  • if a spherical charge is moving, then this of course means that ฯ\rho is changing with time, and at the same time that a current exists
  • in an ideal infinite cylindrical wire however, we can have constant ฯ\rho in the wire, but there can still be a current because those charges are moving
    Such infinite cylindrical wire is of course an ideal case, but one which is a good approximation to the huge number of electrons that travel in a actual wire.
๐Ÿ”—
The goal of finding Eโ†’\E and Bโ†’\B is that those fields allow us to determine the force that gets applied to a charge via the Lorentz force equation:
Equation 2. Lorentz force equation.
force_density=ฯEโ†’+Jโ†’ร—Bโ†’\text{force\_density} = \rho \E + \J \times \B
๐Ÿ”—
and then to find the force we just need to integrate over the entire body.
๐Ÿ”—
Finally, now that we have defined all terms involved in the Maxwell equations, let's see the equations:
Equation 3. Gauss' law.
โˆ‡โ‹…Eโ†’=ฯฮต0\divergence{\E} = \frac{\rho}{\vacuumPermittivity}
๐Ÿ”—
Equation 4. Gauss's law for magnetism.
โˆ‡โ‹…Bโ†’=0\divergence{\B} = 0
(4)
๐Ÿ”—
Equation 5. Faraday's law of induction.
โˆ‡ร—Eโ†’=โˆ’โˆ‚Bโ†’โˆ‚t\curl{\E} = -\dv{\B}{t}
(5)
๐Ÿ”—
Equation 6. Ampรจre's circuital law.
โˆ‡ร—Bโ†’=ฮผ0(Jโ†’+ฮต0โˆ‚Eโˆ‚t)\curl{\B} = \vacuumPermeability \left(\J + \vacuumPermittivity \dv{E}{t} \right)
(6)
๐Ÿ”—
and you should review the interpretation of divergence โˆ‡โ‹…\divergence{} and curl โˆ‡ร—\curl{}:
  • divergence: how much fluid goes out or into a point
  • curl: points in the direction in which a wind spinner spins fastest
๐Ÿ”—
2.4.2.1. Explicit scalar form of the Maxwell's equations | โ‡‘ toc | โ†‘ parent "Maxwell's equations"
๐Ÿ”—
For numerical algorithms and to get a more low level understanding of the equations, we can expand all terms to the simpler and more explicit form:
โˆ‚Exโˆ‚x+โˆ‚Eyโˆ‚x+โˆ‚Ezโˆ‚x=ฯฮต0โˆ‚Bxโˆ‚x+โˆ‚Byโˆ‚x+โˆ‚Bzโˆ‚x=0โˆ‚Ezโˆ‚yโˆ’โˆ‚Eyโˆ‚z=โˆ’โˆ‚Bxโˆ‚tโˆ‚Exโˆ‚zโˆ’โˆ‚Ezโˆ‚x=โˆ’โˆ‚Byโˆ‚tโˆ‚Eyโˆ‚xโˆ’โˆ‚Exโˆ‚y=โˆ’โˆ‚Bzโˆ‚tโˆ‚Bzโˆ‚yโˆ’โˆ‚Byโˆ‚z=ฮผ0(Jx+ฮต0โˆ‚Exโˆ‚t)โˆ‚Bxโˆ‚zโˆ’โˆ‚Bzโˆ‚x=ฮผ0(Jy+ฮต0โˆ‚Eyโˆ‚t)โˆ‚Byโˆ‚xโˆ’โˆ‚Bxโˆ‚y=ฮผ0(Jz+ฮต0โˆ‚Ezโˆ‚t)\dv{E_x}{x} + \dv{E_y}{x} + \dv{E_z}{x} = \frac{\rho}{\vacuumPermittivity} \\ \dv{B_x}{x} + \dv{B_y}{x} + \dv{B_z}{x} = 0 \\ \dv{E_z}{y} - \dv{E_y}{z} = -\dv{B_x}{t} \\ \dv{E_x}{z} - \dv{E_z}{x} = -\dv{B_y}{t} \\ \dv{E_y}{x} - \dv{E_x}{y} = -\dv{B_z}{t} \\ \dv{B_z}{y} - \dv{B_y}{z} = \vacuumPermeability \left(J_x + \vacuumPermittivity \dv{E_x}{t} \right) \\ \dv{B_x}{z} - \dv{B_z}{x} = \vacuumPermeability \left(J_y + \vacuumPermittivity \dv{E_y}{t} \right) \\ \dv{B_y}{x} - \dv{B_x}{y} = \vacuumPermeability \left(J_z + \vacuumPermittivity \dv{E_z}{t} \right) \\