Ciro Santilli

Ciro Santilli (三西猴)

Software engineer. Passion for computers, natural sciences and education. Opinions are my own.

\[ %% physics package % Absolute value. \newcommand{\abs}[1]{\left|#1\right|} \newcommand{\curl}[1]{\nabla \times #1} % Partial derivative. \newcommand{\dv}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\divergence}[1]{\nabla \cdot #1} % Vector Arrow. \newcommand{\va}[1]{\overrightarrow{#1}} %% Real and complex analysis \newcommand{\C}[0]{\mathbb{C}} \newcommand{\RFour}[0]{\mathbb{R}^{4}} \newcommand{\RThree}[0]{\mathbb{R}^{3}} \newcommand{\RTwo}[0]{\mathbb{R}^{2}} \newcommand{\R}[0]{\mathbb{R}} \newcommand{\functionDomain}[3]{#1 : #2 \to #3} %%% Lebesgue spaces. \newcommand{\LP}[0]{L^p} \newcommand{\LTwo}[0]{L^2} %% Electromagnetism % Magnetic field vector \newcommand{\B}[0]{\va{\mathbf{B}}} % Electric field vector \newcommand{\E}[0]{\va{\mathbf{E}}} % Electric current vector. \newcommand{\J}[0]{\va{\mathbf{J}}} \newcommand{\vacuumPermittivity}[0]{\varepsilon_0} \newcommand{\vacuumPermeability}[0]{\mu_0} \]

ID photo of Ciro Santilli taken in 2013 Ciro_Santilli's_learn_teach_apply_logo.png

1. Ciro Santilli 三西猴

Quick facts:

  • Nationalities: Italian and Brazilian

  • Grew up in: Brazil

  • Relationship status 2017-: married

  • Chinese name: 三西猴, means "three western monkeys". Phonetic approximation to SANtilli CIRO. Semi-unintentionally reminds Chinese people of Sun Wukong (孙悟空). Given by Ciro’s wife, then girlfriend, as a semi-joke, and he took it up because the best way to take a joke is to go with the joker.

  • Laptop: high end ThinkPad

  • Distro: latest Ubuntu release

  • Vim or Emacs: Vim. But for The Love, will someone please make an open source C++ IDE that actually just works?

  • Tabs or spaces: spaces

  • Mailing list or Git(Hub|Lab): Git(Hub|Lab), with passion

  • System or unit tests: system

  • Default programming languages: Python and C++. He’ll learn Rust and Haskell once he’s rich.

  • Favorite musical instruments to listen: Chinese Guqin and electric Jazz-fusion guitar

337px Xiyou
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

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

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.

Listing 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

895245
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.

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 ShareLaTeX, 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).

Ciro Santilli with his Stack Overflow 100k reputation cup
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

  • become famous

    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

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.

Chrysanthemum Xi Jinping with black red liusi added by Ciro Santilli
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”:

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.

Ciro Santilli with a stone carved Budai in the Feilai Feng caves near the Lingyin Temple in Hangzhou in 2012
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

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:

1.2. The most important projects Ciro Santilli wants to do

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

In this project, Ciro Santilli 三西猴 wants to explore if it is possible to create a sustainable website that will make people write 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: https://github.com/cirosantilli/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

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.
Video 2. Brewster Kahle’s 2007 TED Talk about the Internet Archive.
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

Video 4. Ciro’s 2D continuous game. Source
Basketball stage of Ciro Santilli's 2D continuous AI game
Figure 9. Screenshot of Ciro’s 2D continuous game.
Video 5. Ciro’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 SDL + 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. Molecular biology technologies

As of 2019, the silicon industry is ending, and molecular biology technology is one of the most promising and growing field of engineering.

42 years processor trend 625x396
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 xref2:[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. Source.”, 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.

1024px Cost per Genome
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.2.4. Quantum computing could be 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.2.5. Brain computer interfaces

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.2.6. Videos of all key physics experiments

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 "https://en.wikipedia.org/wiki/Big_Science[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.7. Website front-end for a mathematical formal proof system

When Ciro Santilli 三西猴 first learnt the old Zermelo–Fraenkel set theory and the idea of Formal proofs, his mind was completely blown.

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.

Bibliography:

1.3. The best articles by 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.4. How to contact 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

For comments about China first read:

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.5. Accounts controlled by Ciro Santilli

Ciro Santilli 三西猴 controls the following accounts.

With non-trivial activity:

Other accounts:

Accounts in Chinese websites. These accounts might be banned or altered or offer other limitations, so Ciro only communicates briefly through them:

Dead websites:

1.5.1. Ciro Santilli’s homonyms

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 :-)

Unknown:

1.6. Ciro Santilli’s ideology

Welcome to the wonderful world of Cirism!

1.6.1. Unconditional basic income

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:

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.6.2. Having more than one natural language is bad for the world

Natural language diversity is beautiful.

800px Pieter Bruegel the Elder   The Tower of Babel %28Vienna%29   Google Art Project
Figure 27. 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!

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.

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.6.3. Don’t be a pussy

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.

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 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: Freeman Dyson - Why I don’t like the PhD system (95/157) by Web of Stories published on Sep 6, 2016. The dude unified the three existing versions of Quantum Electrodynamics, and he has always been proud to not have PhD.

  • 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.

d871a9c06d6401301d80001dd8b71c47
Figure 28. Dilbert cartoon from Thursday February 03, 2000. A small brain irrationally puts more weight on a small loss than on a huge opportunity. Source.
DXtGN6tU0AAGnHk?format=jpg&name=large
Figure 29. 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 9. 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 10. Alan Watts "If Money Were No Object What Would You Do". Source.
1.6.3.1. Steve Jobs 2005 Stanford Commencement Address

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

1.6.4. Backward design

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 11. "Steve Jobs Insult Response" excerpt from the 1997 WWDC

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.

1af002106d5c01301d80001dd8b71c47
Figure 30. Dilbert Wednesday February 20, 2002: Designing a nuclear power plant from user requirements. 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.6.4.1. How to become a good programmer?

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.6.5. The side effects of ambitious goals are often the most valuable thing achieved

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).

And at last, Ciro Santilli comes with a bulldozer and creates an autoroute that thousands of people can cruise at high speed without any effort (Q&A, open knowledge HTML websites).

1.6.6. Ciro Santilli’s best random thoughts

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.6.7. Animal rights

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 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.6.8. University entry quotas

Ciro Santilli 三西猴 is against affirmative action university entry quotas that reserve spaces e.g. for students from discriminated races or poor families.

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.

Ciro has actually believes that this is possible, and offers the following possible explanation: most of pre-university knowledge is useless.

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.

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 high quality free high schools only for poor/discriminated kids in densely populated areas with many unprivileged students living in them

  • pay the teachers of those 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

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. As those smart bets pay off, you start to have more and more money to expand the system further.

1.6.9. Students must have a flexible choice of what to learn

This is one of the main reasons why Ciro Santilli 三西猴 invested in Write free books to get famous website.

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.

Brown University’s Open Curriculum concept sounds exemplary:

1.6.10. Rooting for sport teams

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

  • and 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.

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.7. Ciro Santilli’s website

1.7.1. How to develop 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

GitHub pages is chosen instead of a single page GitHub README.adoc for the following reasons:

1.7.2. Unmigrated sections of the old version of 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.7.3. Why Ciro Santilli removed Disqus comments from his website in 2019-05-04

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.7.4. DNS configuration of 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.7.6. Ciro Santilli’s website is not mobile friendly

True Art cannot be consumed in mobile format.

1.7.7. Mathematics typesetting setup of Ciro Santilli’s website

Inline: \(\sqrt{2+2} = 2\)

Equation 1. A test block equation
\[\sqrt{2+2} = 2\]

TODO: move to https://github.com/cirosantilli/asciidoctor-katex-2 once major TODOs there are done.

1.7.8. Media rationale of Ciro Santilli’s website

1.7.8.1. One page to rule them all

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.7.8.2. Where to store images

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:

For videos, YouTube does not allow download, even of Creative Commons videos so uploading only there is not acceptable as it prevents reuse:

1.7.9. Download Ciro’s website for offline viewing

Not perfect yet, but doing some progress, currently xref2 links resolve to .html correctly:

CIROSANTILLI_COM_XREF2_SERVERLESS=1 ./build
xdg-open _site/index.html

TODO: download all resources, including CSS and JavaScript. Images are already half way because basically all already go through image2. External CSS and JavaScript would require extending Jekyll with a tag plugin, which should not be hard.

Download all images download for development is already possible with;

CIROSANTILLI_COM_OFFLINE_DOWNLOAD=1 ./build

And after the download was done once before, generate output that uses the downloaded files instead of remote ones:

CIROSANTILLI_COM_OFFLINE_USE=1 CIROSANTILLI_COM_XREF2_SERVERLESS=1 ./build
xdg-open _site/index.html

or when running the development server:

CIROSANTILLI_COM_OFFLINE_USE=1 ./run
xdg-open http://localhost:4000

TODO: for some reason when I access How to use an Oxford Nanopore MinION to extract DNA from river water and determine which bacteria live in it in offline mode on the browser at 7c119de0dcf263f5cd24ceb5e171a4bfd433c7e7 + 1 I get a few messages:

[2019-10-06 23:23:28] ERROR Errno::ECONNRESET: Connection reset by peer @ io_fillbuf - fd:17
     /home/ciro/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/webrick/httpserver.rb:82:in `eof?'
     /home/ciro/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/webrick/httpserver.rb:82:in `run'
     /home/ciro/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/webrick/server.rb:307:in `block in start_thread'

1.7.10. Why Ciro Santilli refers to himself in the third person

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.8. Ciro Santilli’s skills

1.8.1. Ciro Santilli’s documentation superpowers

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

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.

A prime example of this ability is his Linux Kernel Module Cheat

1.8.2. Ciro Santilli’s natural languages 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.9. Ciro Santilli’s psychology and physiology

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).

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.9.1. Ciro Santilli’s self perceived creative personality

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 12. "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

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 13. 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.9.2. Effortless effort 無爲 (wuwei)

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 14. 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 15. Alan Watts "How to turn work into play" video.

1.9.3. Ciro Santilli’s bad old event memory

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.9.4. Ciro Santilli’s selfish desires

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.9.5. Ciro Santilli’s ideal city to live in

Ciro’s ideal city to live in contains the following in order of decreasing importance:

Could California be Ciro’s Mecca?

1.9.6. Cirodance

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.9.7. Ciro Santilli’s knee

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.9.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.9.8. Ciro Santilli’s sport practice

As a Brazilian, Ciro Santilli 三西猴 used to really love playing soccer (but not watching it), until xef2:ciro-santillis-knee[he hurt his knee].

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.

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!

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.

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 16. 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.9.8.1. Ciro Santilli’s bicycle wisdom

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!

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 17. "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.9.8.2. Try to fix your own bike before taking it to the shop

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.10. Ciro Santilli’s biography

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.

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

After Coventry, Ciro’s family lived in the city of Santos, until he left to go to the University of São Paulo, Brazil (USP) in 2007.

1.10.1. Ciro Santilli’s formal education

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.10.2. Ciro Santilli’s musical education

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

Six year old Ciro Santilli when his grandfather offered him an electronic keyboard
Figure 31. 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. Interesting members of the Santilli family

Found through Google with no direct relation known to Ciro Santilli 三西猴

1.12. Questions for Ciro Santilli’s future self

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:

2. Physics

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:

purity
Figure 32. 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. The most important physics experiments

Videos should be found / made for all of those: Videos of all key physics experiments

2.1.1. Speed of light experiments

2.1.2. Michelson-Morley experiment

Video 18. "Michelson Interferometer - Amrita University" Published on Jan 30, 2013. Source.

2.1.3. Double slit experiment

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.1.3.1. Davisson-Germer experiment

Shows electron interference patterns using a crystal as slit, thus confirming that not just light, but also matter, is wave-like.

2.1.4. Blackbody radiation experiment

Video 19. "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.1.5. Compton scattering

Video 20. "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 21. "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.1.6. Photoelectric effect

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.1.7. Lamb shift

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.2. Particle physics

Currently an informal name for the Standard model

Chronological outline of the key theories:

2.2.1. SI system of units

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.2.2. Standard model

As of 2019, the more formal name for Particle physics, which is notably missing General relativity to achieve the Theory of everything.

2.2.3. Maxwell’s equations

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 equations.

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:

  • \(E_x(t, x,y,z)\), \(E_y(t, x,y,z)\), \(E_z(t, x,y,z)\): directions of the electric field \(\functionDomain{\E}{\RFour}{\RThree}\)

  • \(B_x(t, x,y,z)\), \(B_y(t, x,y,z)\), \(B_z(t, x,y,z)\): directions of the magnetic field \(\functionDomain{\B}{\RFour}{\RThree}\)

and two known input functions:

  • \(\functionDomain{\rho}{\RThree}{\R}\): density of charges in space

  • \(\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 2. Charge conservation
\[\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\) and \(\B\) is that those fields allow us to determine the force that gets applied to a charge via the Lorentz force equation:

Equation 3. Lorentz force equation
\[\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 4. Gauss' law
\[\divergence{\E} = \frac{\rho}{\vacuumPermittivity}\]
Equation 5. Gauss’s law for magnetism
\[\divergence{\B} = 0\]
Equation 6. Faraday’s law of induction
\[\curl{\E} = -\dv{\B}{t}\]
Equation 7. Ampère’s circuital law
\[\curl{\B} = \vacuumPermeability \left(\J + \vacuumPermittivity \dv{E}{t} \right)\]

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

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:

\[\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) \\\]

As you can see, this expands to 8 equations, so the question arises if the system is over-determined because it only has 6 variables. As explained at: https://en.wikipedia.org/wiki/Maxwell%27s_equations#Overdetermination_of_Maxwell’s_equations however, this is not the case, because if the first two equations hold for the initial condition, then they also hold for all time, so they can be essentially omitted.

It is also worth noting that the first two equations don’t involve time derivatives. Therefore, they can be seen as spacial constraints.

2.2.6. Quantum mechanics

Key experiments that could not work without quantum:

Mathematics: there are a few models of increasing precision which could all be called "quantum mechanics":

Ciro feels that the largest technological revolutions since the 1950’s have been quantum related, and will continue to be for a while, from deeper understanding of chemistry and materials to Quantum computing, understanding and controlling quantum systems is where the most interesting frontier of technology lies.

2.2.6.1. Spectral lines of atoms and molecules

So precise, so discrete, which makes no sense in classical mechanics.

Has been the leading motivation of the development of Quantum Mechanics, all the way from the:

2.2.6.1.1. Fine structure

Split in energy levels due to interaction between electron up or down Spin and the electron orbitals.

Numerically explained by the Dirac Equation, which on of the main triumphs of the theory.

2.2.6.1.2. Hyperfine structure

Small splits present in all levels due to interaction between the electron spin and the nuclear spin if it is present, i.e. the nucleus has an even number of nucleons.

2.2.6.1.3. Zeeman effect

Non-anomalous: number of splits matches predictions of the Schrodinger equation about the number of possible states with a given angular momentum. TODO does it make numerical predictions?

Explanation:

Video 22. "Quantum Mechanics 7a - Angular Momentum I" by ViaScience published on Aug 4, 2013. Source.

Anomalous: evidence of Spin.

2.2.6.2. Planck’s law

Good explanation of how discretization + energy increases with frequency explains the curve: https://youtu.be/KabPQLIXLw4?list=PL193BC0532FE7B02C&t=7 "Quantum Mechanics 2 - Photons" by "viascience". You need more and more energy for small wavelengths, each time higher above the average energy available.

TODO full equation derivation.

2.2.6.3. Quantum mechanics bibliography

Free material from university courses:

2.2.7. Quantum Hall effect

Gotta understand this because the name sounds cool.

2.2.8. Why do symmetries such as SU(3)×SU(2)×U(1) matter in particle physics?

TODO.

Physicists love to talk about that stuff, but no one ever has the guts to explain it into enough detail to show its beauty.

2.2.10. Particle physics bibliography

Some light YouTube channels, good for the first view, but which don’t go into enough detail to truly show the subject’s beauty:

2.2.11. Dirac Equation

Adds Special relativity to the Schrodinger equation. Spin and antimatter comes out for free.

Experiments explained:

Experiments not explained: those that Quantum Electrodynamics explains like the Lamb shift.

2.2.11.1. How does Dirac’s equation model spin?

This tutorial is awesome:

"Quantum Mechanics 12a - Dirac Equation I" by "viascience" published 2015-12-19. Source. video::OCuaBmAzqek[youtube,height=400,width=600]

2.2.13. Quantum Chromodynamics

Video 23. "Quarks, Gluon flux tubes, Strong Nuclear Force, & Quantum Chromodynamics" by "Physics Videos by Eugene Khutoryansky" published on Jul 7, 2018. Some decent visualizations of the field lines. Source.

2.2.14. Photon

Initially light was though of as a wave because it experienced interference as shown by experiments such as:

But then, some key experiments also start suggesting that light is made up of discrete packets:

This duality is fully described mathematically by Quantum Electrodynamics.

2.2.14.3. Single photon production and detection experiments

You can’t get more direct than this in terms of proving that photons exist!

TODO find decent experiment video.

The detection apparatus is called a photomultiplier: https://en.wikipedia.org/wiki/Photomultiplier

Some types:

Video 24. How to use an SiPM - Experiment Video by SensLTech published on May 2, 2018. Source

Single photon production is described briefly at: https://youtu.be/F1GaTizdcb8?t=47 "How do you produce a single photon?" by "Physics World" which mentions parametric down conversion: https://en.wikipedia.org/wiki/Spontaneous_parametric_down-conversion

2.2.14.3.1. Two photon interference experiment

The basic experiment for a Photonic quantum computer.

Can be achieved in two ways it seems:

  • macroscopic beam splitter and optical table

  • photolithography

Animation of Hong-Ou-Mandel Effect on a silicon like structure by "Quantum Light University of Sheffield" published on May 29, 2014: https://www.youtube.com/watch?v=ld2r2IMt4vg No maths, but gives the result clear: the photons are always on the same side.

Video 25. Animation of in-silicon single photon device with brief description of emitting and receiving elements. Source.

The above notably mentions:

Theory:

Video 26. "Quantum Optics – Beam splitter in quantum optics" lesson by Alain Aspect published on Nov 6, 2017. Source.

TODO experiment video.

2.2.14.3.3. Silicon photomultiplier

Here is a vendor showcasing their device. They claim in that video that a single photon is produced and detected:

2.2.14.4. Planck-Einstein relation

Photon energy is proportional to its frequency:

\[energy = (plancks \space constant) * (frequency)\]

or with common weird variables:

\[E = h * \nu\]

This only makes sense if the Photon exists, there is no classical analogue, because the energy of classical waves depends only on their amplitude, not frequency.

Experiments that suggest this:

2.2.14.4.1. Planck constant

Proportionality factor in the Planck-Einstein relation.

Because defined exactly in the 2019 revision of the SI system of units.

2.2.15. Electron

2.2.15.1. Electron charge

Experiments to measure it:

SI 2019 defines it precisely and uses it as a measure of charge: https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units#Ampere

2.2.15.2. Oil drop experiment

Clear experiment diagram which explains that the droplet mass determined with Stoke’s law:

Video 27. "Quantum Mechanics 4a - Atoms I" by ViaScience published on Jan 14, 2013. Source.

American Scientific, LLC sells a ready made educational kit for this: https://www.youtube.com/watch?v=EV3BtoMGA9c

Here’s some actual footage of a droplet on a well described more one-off setup:

Video 28. "Millikan’s Experiment, Part 2: The Experiment" by "Phil Furneaux" from Lancaster University published Feb 3, 2017. Source.

This American video likely from the 60’s shows it with amazing contrast: https://www.youtube.com/watch?v=_UDT2FcyeA4

2.2.15.3. Interferometer
Video 29. Michelson Interferometer - Amrita University published by Amrita Vlab on Jan 30, 2013. Shows the optical controls and alignment in more detail. Source.
Video 30. Michelson Interferometer by MIT Department of Physics Technical Services Group, published on Jun 22, 2012. Very clear round interference pattern. Source.

2.3. Schrodinger equation

Predictions:

2.3.1. Mathematical formulation of quantum mechanics

This is the key thing to understand!!

TODO correct and clean this up.

The state of a quantum system is a vector of unit length in a Hilbert space. TODO why Hilbert Space.

"Doing a measurement" means applying a Self-adjoint operator to the state, and after a measurement is done

  • the state collapses to an eigenvalue of the self adjoint operator

  • the result of the measurement is the eigenvalue of the self adjoint operator

Self adjoint operators are chosen because they have the following key properties:

  • their eigenvalues form an orthonormal basis

  • they are diagonalizable

2.3.2. Derivation of the Schrodinger equation

Where derivation == "intuitive routes", since a "law of physics" cannot be derived, only observed right or wrong.

TODO why is there a Complex number in the equation? Intuitively and mathematically.

2.3.3. Solutions of the Schrodinger equation

As always, the best way to get some intuition about an equation is to solve it for some simple cases, so let’s give that a try with different fixed potentials.

2.3.3.2. Schrodinger equation solution for the hydrogen atom

Is the only atom that has a closed form solution, which allows for very good predictions, and gives awesome intuition about the orbitals in general.

It is arguably the most important solution of the Schrodinger equation.

2.3.3.5. Schrodinger equation simulations
Video 31. "Simulation of the time-dependent Schrödinger equation (JavaScript Animation)" by "Coding Physics" published on 2019-02-17. Source code: https://github.com/CodingPhysics/Schroedinger
Video 32. "Quantum Mechanics 5b - Schrödinger Equation II" by ViaScience published on Feb 9, 2013. Could not find source or what they used.

2.3.4. Conservation laws in Schrodinger equations

TODO is there any good intuitive argument or proof of conservation of energy, momentum, angular momentum?

2.4. Theory of everything

As of 2019, the Standard model and General relativity are incompatible. Once those are unified, we will have one equation to describe the entirety of Physics.

The current state of Physics has been the result of several previous unifications as shown at: https://en.wikipedia.org/wiki/Theory_of_everything#Conventional_sequence_of_theories so it is expected that this last missing unification is likely to happen one day, potentially conditional on humanity having enough energy to observe new phenomena.

2.5. Spin

https://www.youtube.com/watch?v=6sR6RV2znXI&list=PL193BC0532FE7B02C&index=17 "Quantum Mechanics 9a - Photon Spin and Schrödinger’s Cat I" by "viascience" shows nicely how:

  • incorporated into the Dirac Equation as a natural consequence of Special relativity corrections, but not present in the Schrodinger equation

  • Photon spin can be either linear or circular

  • the linear one can be made from a superposition of circular ones

  • straight antennas produce linearly polarized photos, and Helical antennas circularly polarized ones

  • a jump between 2s and 2p in an atom changes angular momentum. Therefore, the photon must carry angular momentum as well as energy.

  • cannot be classically explained, because even for a very large estimate of the electron size, its surface would have to spin faster than light to achieve that magnetic momentum with the known Electron charge

2.5.1. Why is the spin of the electron half?

More interestingly, how is that implied by the Stern Gerlach experiment?

2.5.2. Spin experiments

2.5.2.1. Stern Gerlach experiment

Originally done with silver in 1921, but even clearer theoretically was the hydrogen reproduction in 1927 by T.E. Phipps and J.B. Taylor.

The hydrogen experiment was apparently harder to do and the result is less visible, TODO why: https://physics.stackexchange.com/questions/33021/why-silver-atoms-were-used-in-stern-gerlach-experiment

2.6. Condensed matter physics

Includes fun things like:

2.6.1. Condensed matter Physics bibliography

2.6.2. Electronic band theory

How are the bands measured experimentally?

Why are there gaps? Why aren’t bands infinite? What determines the width of gaps?

2.6.3. Semiconductors

The basis of 1970-20XX computers, gotta understand them I guess.

2.6.4. Superconductivity

Experiments:

Lectures:

  • "20. Fermi gases, BEC-BCS crossover" by MIT OpenCourseWare published on Jul 11, 2014. Instructor: Wolfgang Ketterle, part of the "Atomic and Optical Physics" series.

    Actually goes into the equations.

    Notably, https://youtu.be/O_zjGYvP4Ps?t=3278 describes extremely briefly an experimental setup that more directly observes pair condensation.

  • https://www.youtube.com/watch?v=Yx666k2XH8E "Steven Kivelson | Superconductivity and Quantum Mechanics at the Macro-Scale - 1 of 2" by "Stanford Institute for Theoretical Physics" published on May 12 2016.

    Gives a reasonable basis overview, but does not go into the meat of BCS it at the end.

Media:

2.6.4.2. BCS Theory

Main theory to explain Type I superconductors very successfully.

TODO can someone please just give the final predictions of BCS, and how they compare to experiments, first of all? Then derive them.

High level concepts:

  • the wave functions of pairs of electrons (fermions) get together to form bosons. This is a Phase transition effect, thus the specific sudden transition temperature.

  • the pairs form a Bose-Einstein condensate

  • once this new state is reached, all pairs are somehow entangled into one big wave function, and you so individual lattice imperfections can’t move just one single electron off trajectory and make it lose energy

2.6.5. Superfluidity

Experiments:

Video 33. "Alfred Leitner - Liquid Helium II the Superfluid". Originally created in 1963 by Alfred Leitner, original source: http://www.alfredleitner.com/
Video 34. "Ben Miller experiments with superfluid helium - Horizon: What is One Degree? - BBC Two" by "BBC" published on Jan 6, 2011. Just quickly shows the superfluid helium climbing out o the cup, no detailed setup. With professor Robert Taylor from Oxford University.

2.7. Josephson effect

Discrete quantum effect observed in superconductors with a small insulating layer.

TODO: curves showing the effect.

The effect is likely mentioned in Leitner’s video at: https://www.youtube.com/watch?v=BFdq6IecUJc&t=2290s

Bibliography:

2.7.2. Superconducting tunnel junction

Specific type of Josephson Junction. Probably can be made tiny and in huge numbers through photolithography.

STJ SVG file
Figure 34. Illustration of a thin-film superconducting tunnel junction (STJ). The superconducting material is light blue, the insulating tunnel barrier is black, and the substrate is green.
Video 35. "Quantum Transport, Lecture 14: Josephson effects" by "Sergey Frolov". https://youtu.be/-HUVGWTfaSI?t=878 mentions maskless electron beam litograpy being used to produce STJs.

2.9. Computational Physics

The intersection of two beautiful arts: coding and Physics!

Computational physics is a good way to get valuable intuition about the key equations of physics, and train your numerical analysis skills:

Other child sections:

2.9.1. Quantum chemistry

Ah, the jewel of computational physics.

Also known as an ab initio method: no experimental measurement is taken as input, QED is all you need.

But since QED is thought to fully describe all relevant aspects mollecules, it could be called "the" ab initio method.

For one, if we were able to predict protein molecule interactions, our understanding of Molecular biology technologies would be solved.

No more ultra expensive and complicated X ray crystallography or Cryogenic Electron Microscopy.

And the fact that quantum computers are one of the most promising advances to this field, is also very very exciting: Quantum algorithms.

2.10. Physicist

purity
Figure 35. xkcd 435: Fields arranged by purity. Source.

2.10.2. Paul Dirac

Eccentric nerdy slow speaking Physicist mostly based in University of Cambridge.

Created the Dirac Equation, what else do you need to know?!

Video 36. Good lecture about Paul Dirac’s biography by Graham Farmelo given at The Royal Society in 2013

2.10.3. Stephen Hawking

While learning black-hole stuff is not on top of Ciro Santilli 三西猴's priorities, Hawking’s spirit is to be admired.

To never give up even when everything seems lost, and still have a sense of humour is respectable.

An ex-physicist colleague who had met Hawking told an anecdote. Hawking was around in the department one day, they said hi and all. But then Hawking wanted to tell a joke. It took like 5 minutes of typing, and you can imagine that things were pretty awkward and the joke’s timing was "a bit off". But Hawking did tell the joke nonetheless.

This is also suggested in the The Theory of Everything (2014) film, and therefore likely the biographies.

2.11. Philosophy of Science

2.11.1. Never trust an experiment that is not supported by a good theory

Not the usual bullshit you were expecting right?

Ciro Santilli 三西猴 also likes how Monod "learned from other students a little older than himself, rather than from the faculty.", read somewhere else that it is because faculty is more likely outdated.

2.11.2. Physics and the illusion of life

The natural sciences are not just a tool to predict the future.

They are a reminder that the lives that we live daily are mere illusions, just like Buddhists and Hinduists say.

We as individuals perceive nothing about the materials that we touch every day really work, nor more importantly how our Brain and cells work.

Everything is magic out of our control.

The natural sciences allow us peek, with huge concentrated effort, into tiny little bits a little of those unknowns, and blow our minds as we notice that we don’t know anything.

Every one or two week Ciro Santilli 三西猴 remembers that he and everything he touches are just a bunch of atoms, and that is an amazing feeling.

Alan Watts's "Philosopher" talk mentions related ideas:

The origin of a person who is defined as a philosopher, is one who finds that existence itself is exceedingly odd.

Video 37. Alan Watts's "Phylosopher" talk
2.11.2.1. Animations of molecular biology processes

Perhaps, the feeling of Physics and the illusion of life reaches its peak in molecular biology.

Just look at your fucking hand right now.

Do you have any idea of each of the cells in it work? Isn’t is at least 100 times more complex than the materials of the table you hand is currently resting on?

Animations of molecular biology processes make this particularly bind bendingly clear.

And don’t get Ciro Santilli 三西猴 started in the brain.

And yet, we live.

Maybe nothing can ever make Physics and the illusion of life clearer.

Video 38. "ATP synthase in action" published by HarvardX on Apr 19, 2017. Source.
Video 39. "The Inner Life of the Cell" created by BioVisions from Harvard University, published on Jul 11, 2011. Source.
Video 40. "DNA animations by wehi.tv for Science-Art exhibition" published by WEHImovies on Jul 16, 2018. Source.
2.11.2.2. Alan Watts controlled dream of life talk

Soes along: if you could control your life multiple times to be perfect, you would eventually get tired of paradise, and you would go further and further into creating uncertain worlds with some suffering, until you would reach the current real world.

Very similar to The Matrix (1999) when Agent Smith talks about the failed Paradise Matrix shown at https://www.youtube.com/watch?v=9Qs3GlNZMhY:

Did you know that the first Matrix was designed to be a perfect human world where none suffered, where everyone would be happy? It was a disaster. No one would accept the program. Entire crops were lost. Some believed that we lacked the programming language to describe your "perfect world". But I believe that, as a species, human beings define their reality through misery and suffering. So the perfect world was a dream that your primitive cerebrum kept trying to wake up from.

2.11.2.3. Rick and Morty A Life Well Lived

From episode "Mortynight Run"

Look at this. You beat cancer, and then you went back to work at the carpet store? Booooh.

3. Mathematics

Ciro Santilli 三西猴 intends to move hist beauty list here little by little: https://github.com/cirosantilli/mathematics/blob/master/beauty.md

Here is a more understandable description of the semi-satire that follows: https://math.stackexchange.com/questions/53969/what-does-formal-mean/3297537#3297537

A beautiful game played on strings, which mathematicians call "theorems".

You start with a very small list of:

  • certain arbitrarily chosen initial strings, which mathematicians call "axioms"

  • rules of how to obtain new strings from old strings, called "rules of inference" Every transformation rule is very simple, and can be verified by a computer.

Using those rules, you choose a target string that you want to reach, and then try to reach it. Before the target string is reached, matematicians call it a "conjecture".

Mathematicians call the list of transformation rules used to reach a string a "proof".

Since every step of the proof is very simple and can be verified by a computer automatically, the entire proof can also be automatically verified by a computer very easily.

Finding proofs however is undoubtedly an NP-hard problem.

Most mathematicians can’t code or deal with the real world in general however, so they haven’t created the obviously necessary: Website front-end for a mathematical formal proof system.

The fact that Mathematics happens to be the best way to describe Physics and that humans can use physical intuition heuristics to reach the NP-hard proofs of mathematics is one of the great miracles of the universe.

Once we have mathematics formally modelled, one of the coolest results is Gödel’s incompleteness theorems, which states that for any reasonable proof system, there are necessarily theorems that cannot be proven neither true nor false starting from any given set of axioms: those theorems are independent from those axioms. Therefore, there are three possible outcomes for any hypothesis: true, false or independent!

Some famous theorems have even been proven to be independent of some famous axioms. One of the most notable is that the Continuum Hypothesis is independent from ZFC! Such independence proofs rely on modelling the proof system inside another proof system, and forcing is one of the main techniques used for this.

i dont give a shit about your mountain
Figure 36. The landscape of modern Mathematics comic by Abstruse Goose shows that Mathematics is one of the most diversified areas of useless human knowledge. Source.

3.1. The beauty of mathematics

The most beautiful things in mathematics are results that are:

  • simple to state and understand (pre-high school, high-school, lower undergrad), but extremely hard to prove, e.g. Fermat’s

  • surprising results: we had intuitive reasons to believe something as possible or not, but a theorem shatters that conviction and brings us on our knees.

    General surprise themes include:

  • applications: make life easier and/or modeling some phenomena well, e.g. in Physics. See also: Explain how to make money with the lesson

3.2. Formalization of mathematics

The one true definition of Mathematics!

3.2.1. Set

Intuitively: unordered container where all the values are unique, just like C++ std::set.

More precisely for set theory Formalization of mathematics:

  • everything is a set, including the elements of sets

  • string manipulation wise:

    • {} is an empty set. The natural number 0 is defined as {} as well.

    • {{}} is a set that contains an empty set

    • {{}, {{}}} is a set that contains two sets: {} and {{}}

    • {{}, {}} is not well formed, because it contains {} twice

3.2.4. Complex number

An Ordered pair of two real numbers with addition and multiplication defined to match whatever bullshit formula they taught you in school.

TODO visual interpretations.

3.4. Calculus

Fancy name for it with the "more advanced" connotation: https://en.wikipedia.org/wiki/Real_analysis

3.4.2. Lebesgue integral

"More complex" integral. Matches "Reimann" for "simple functions", but also works for some "funkier" functions that Reimann does not work for.

https://youtu.be/PGPZ0P1PJfw?t=710 also mentions that one advantage is being able to switch the order of integrals and limits of function sequences on non-uniform convergence. TODO why do we care?

https://youtu.be/PGPZ0P1PJfw?t=808 shows how Lebesgue can be visualized as a partition of the function range instead of domain, and then you just have to be able to measure the size of pre-images.

One advantage of that is that the range is always one dimensional.

But the main advantage is that having infinitely many discontinuities does not matter.

Infinitely many discontinuities can make the Reimann partitioning diverge.

But in Lebesgue, you are instead measuring the size of preimage, and to fit infinitely many discontinuities in a finite domain, the size of this preimage is going to be zero.

So then the question becomes more of "how to define the measure of a subset of the domain".

Which is why we then fall into Measure theory

Video 41. Riemann integral vs. Lebesgue integral by "The Bright Side Of Mathematics" published on Oct 31, 2018. Source.

3.4.3. Lebesgue integral of \(\LP\) is complete but Reimann isn’t

\(\LP\) is:

And then this is why Quantum mechanics basically lives in \(\LTwo\): not being complete makes no sense physically, it would mean that you can get closer and closer to states that don’t exist!

TODO intuition

3.4.3.2. \(\LP\)

Integrable functions to the power \(p\), usually and in this text assumed under the Lebesgue integral because: Lebesgue integral of \(\LP\) is complete but Reimann isn’t

3.4.3.2.1. \(\LTwo\)

\(\LP\) for \(p == 2\).

\(\LTwo\) is by far the most important of \(\LP\) because it is quantum mechanics states live, because the total probability of being in any state has to be 1!

\(\LTwo\) has some crucially important properties that other \(\LP\) don’t (TODO confirm and make those more precise):

3.4.4. Measure theory

Main motivation: Lebesgue integral.

The key idea, is that we can’t define a measure for the power set of R. Rather, we must select a large measurable subset, and the Borel sigma algebra is a good choice that matches intuitions.

3.4.7. Distribution

Generalize functions to allow adding some useful things which people wanted to be classical functions but which are not,

It therefore requires you to redefine and reprove all of calculus.

For this reason, most people are tempted to assume that all the hand wavy intuitive arguments undergrad teachers give are true.

3.4.7.1. Dirac delta

The "0-width" pulse Distribution that integrates to a step.

There’s not way to describe it as a classical Function, making it the most important example of distribution.

Applications:

3.4.8. Complex analysis

The surprising thing is that a bunch of results are simpler in complex analysis!

3.4.9. Hilbert space

Key for Quantum mechanics, see: Mathematical formulation of quantum mechanics, the most important example by far being \(\LTwo\).

3.4.9.1. Analytic continuation
Video 42. "Visualizing the Riemann hypothesis and analytic continuation" by "3Blue1Brown" published on Dec 9, 2016. Good visualization, no deep uniqueness intuition though. Source.

3.4.11. Differential equations

3.4.11.1. Partial differential equations

Some of the most important examples include:

The Finite element method is one of the most common ways to solve PDEs in practice.

3.4.11.2. Existence and uniqueness of solutions of partial differential equations

If you have a PDE that models physical phenomena, it is fundamental that:

  • there must exist a solution for every physically valid initial condition, otherwise it means that the equation does not describe certain cases of reality

  • the solution must be unique, otherwise how are we to choose between the multiple solutions?

Unlike for ordinary differential equations which have the Picard–Lindelöf theorem, the existence and uniqueness of solution is not well solved for PDEs. For example, Navier–Stokes existence and smoothness was one of the Millennium Prize Problems.

3.6. Numerical analysis

Techniques to get numerical approximations to numeric mathematical problems.

The entire field comes down to estimating the true values with a known error bound, and creating algorithms that make those error bounds asymptotically smaller.

Not the most beautiful field of pure Mathematics, but fundamentally useful since we can’t solve almost any useful equation without computers!

The solution visualizations can also provide valuable intuition however.

3.6.1. Finite element method

TODO understand, give intuition, justification of bounds and JavaScript demo.

3.7. Geometry

3.7.1. Visualizing 4D

Simulate it. Just simulate it.

Video 43. "4D Toys: a box of four-dimensional toys, and how objects bounce and roll in 4D." game review by "Miegakure"

3.7.2. Polytope

3.7.2.1. Regular polytope

TODO understand and explain definition.

3.7.2.1.2. Classification of regular polytopes

The 3D regular convex polyhedrons are super famous, have the name: Platonic solids, and have been known since antiquity. In particular, there are only 5 of them.

The counts are:

Table 1. Number of regular polytopes per dimension.
Dimension Count

2

Infinite

3

5

4

6

>4

3

The cool thing is that the 3 that exist in 5+ dimensions are all of one of the three families:

  • simplex: triangle, tetrahedron.

    Non-regular description: take convex hull take D + 1 vertices that are not on a single D-plane,

  • hypercube: square, cube. 4D case known as tesseract.

    Convex hull of all \((-1, 1)^D\) (Cartesian product power) D-tuples.

    Two are linked iff they differ by a single number. So each vertex has D neighbors.

  • cross polytope: square, octahedron.

    All permutations of \((±1, 0, 0, …, 0)\)

    Each edge E is linked to every other edge, except it’s opposite -E.

Then, the 2 3D missing ones have 4D analogues and the sixth one in 4D does not have a 3D analogue: the 24-cell. Yes, this is the kind of irregular stuff Ciro Santilli 三西猴 lives for.

3.8. Mathematics bibliography

https://github.com/vEnhance/napkin Evan Chen’s (陳誼廷) Infinite Napkin. 800+ page PDF with source on GitHub claiming to try and teach the beauty of modern maths for high schoolers. Fantastic project!!!

3.9. Mathematicians

Poet, scientists and warriors all in one? Conquerors of the useless.

A wise teacher from University of São Paulo, Brazil (USP) once told the class Ciro Santilli 三西猴 attended an anecdote about his life:

I used to want to learn Mathematics.

But it was very hard.

So in the end, I became an engineer, and found an engineering solution to the problem, and married a Mathematician instead.

It turned out that, about 10 years later, Ciro ended up following this advice, unwittingly.

purity
Figure 37. xkcd 435: Fields arranged by purity. Source.

3.9.1. High flying bird vs gophers

Ciro once read that there are two types of mathematicians/scientists (he thinks it was comparing Einstein to some Jack of all trades polymath who didn’t do any new discoveries):

  • high flying birds, who know a bit of everything, feel the beauty of each field, but never dig deep in any of them

  • gophers, who dig all the way down, on a single subject, until they either get the Nobel prize, or work on the wrong problem and waste their lives

Ciro is without a doubt the bird type. Perhaps the ultimate scientist is the one who can combine both aspects in the right amount.

Ciro gets bored of things very quickly.

Once he understands the general principles, if the thing is not the next big thing, Ciro considers himself satisfied without all the nitty gritty detail, and moves on to the next attempt.

This was very clear for example after Ciro achieved Linux Kernel Module Cheat: he now had the perfect setup to learn all the Linux kernel shady details but at the same time after all those years he finally felt that "he could do it, so that was enough", and soon moved to other projects.

If Ciro had become a scientist, he would write the best review papers ever, just like in the current reality he writes amazing programming tutorials on Stack Overflow.

4. Art

Stuff that is beautiful but useless because it does not make food or houses cheaper.

Without technology, one cannot survive. Without art, one cannot live.

But that sure enough has a Jesus semi-precursor, and likely many others from Matthew 4:4:

Man shall not live on bread alone, but on every word that comes from the mouth of God.

There is some art however that lives in the fine intersection between beauty and usefulness:

4.1. Video games

Ciro Santilli 三西猴 used to play video game when he was young. But after he reached 18 he got bored of them.

Adult Ciro enjoys only two types of video game content. Watching videos of:

Non-PvP games are useless. Shitty stories, dependency of dexterity. No save states. How do I skip this boring part?

PvP games are a valid Art form however. Just not as beautiful as computers to be worth Ciro’s time.

And much less interesting than the become famous in the real world game.

Also, it doesn’t help if you are already typing on a computer all day long on your job. Hands get tired. Eyes have an infinite capacity to consume useless YouTube videos however. Medically proved.

As a result, Ciro just watches videos about video games. Notably games he played when he was a teenager and already understand the rules for.

And things got even worse as Ciro attained his Open Source Enlightenment, and started to feel bad about playintplay any game that is not open source.

Five year old Ciro Santilli playing NES on a joystick
Figure 38. Five year old Ciro Santilli playing NES on a joystick. He would get really mad because he could not finish those insanely hard games. Desperate, his parents would have to call older kids from the neighbourhood to help out. Pro tip from the future: the classic controller would almost always have been a more efficient controller. Maybe this kind of crap shapes one’s future?

4.1.1. Tool assisted speedrun (TAS)

The most beautiful TAS content ever made are:

Video 44. "Super Mario 64 "120 Stars" in 1:20:41.52 Console Verified"

4.1.2. Open source video games

Why would anyone ever waste time playing a closed source game, when this will inevitably lead to endless hours of decompilation down the line when you want to:

Those who devote their time to the useless development of open source video games, before we even have decent open source development tooling, will, without a doubt, have their place in Heaven.

4.1.3. Magic the Gathering

Magic is the best card game of all time. Ciro Santilli 三西猴 agrees with this fact, and this has nothing to do with the nostalgia factor of having played it when he was a teenager.

However, Magic has one flaw: the cards of old formats (Legacy and Modern), which are the really interesting ones, are fucking expensive. Ciro thinks this is idiotic, and that Wizards should sell all cards individually with unlimited supply and all with the same prices, especially online where there are no printing costs. But because Wizards made the silly promise never to reprint certain cards with the reserved list in 1994, they can’t even correct this mistake legally!

There however one good solution to that: watch people who have nothing better to do in their lives play on YouTube, notably ChannelFireball.

Like in Mathematics, the most beautiful decks are those that do crazy things:

  • infinite combos

  • semi-infinite combos that allow you to likely draw your entire deck or deal 20 damage

  • all-in decks that either win or lose on turn two

  • and lands

It is also really interesting to watch as new sets as spoiled and try to guess if certain cards will have any impact on the Modern or Legacy metagame.

Here are some cool decks:

Competitive commander is also interesting, although matches tend to be much more random so the format is harder to digest, see for example this channel; Playing With Power MTG channel.

Urza’s block is the most epic of all. Ridiculous power level and epic art, and happened just before Ciro Santilli 三西猴 started playing, so Ciro saw some cards from it floating around, but not many, and it felt mystical.

In 2019, a paper proved that MTG is Turing complete with a legacy legal deck. Live demo with some hand waving: https://www.youtube.com/watch?v=pdmODVYPDLA "I Built a COMPUTER in Magic: The Gathering" by "Because Science" published in Oct 31, 2019. TODO: how is this reflected in the rules? https://github.com/cirosantilli/cirosantilli.github.io/issues/42

The following creators share many of Ciro’s interests and output large quantities of interesting content covering all memes/overpowered combos of new sets:

4.2. The best YouTube channels

4.2.1. Web of Stories

https://www.youtube.com/user/webofstories "Web of Stories - Life Stories of Remarkable People". 1-2 to hour long interviews, the number of Nobel prize winners is off-the-charts.

4.3. The best television series of all time

BBC 1979-1982 adaptations of John le Carré’s novels are the best miniseries ever made:

They are the most realistic depiction of spy craft ever done.

Some honorable mentions:

4.4. The best movies of all time

Ciro Santilli 三西猴 has already watched all the best films in history, and as a result any of those new movies that is full of clichés and has no innovative aspect at all (99.99999% of all modern movies) makes Ciro want to puke and to start Googling TV Tropes to classify as many clichés as possible.

Good movies are those that teach you mechanisms of the real world. Willing suspension of disbelieve.

Or of what could happen a world where a single sci-fi element is added and explored to its limits.

Love is not an interesting aspect of the world. You solve your love life at university, Tinder or Tango.

The actually interesting aspects of the world are business, war, crime, government, and science.

Movies that are very expensive to make tend to be bad, because they have to make returns and thus appeal to a large amorphous population without any specialization. See e.g. Primer (2004) and The Man From Earth (2007). Looking down the largest flops of all time list didn’t help much, only Heaven’s gate appears reasonable from the top 20.

Movies with a lot of action scenes, with exception of some war movies, are shit.

The Sliding Scale of Idealism vs. Cynicism must be close to Cynicism max at all times. Movies with pure good and pure bad are shit.

Knowing spoilers has no effect in the film’s enjoyment. The interest of storyline concepts is all that matters, visuals and acting are useless.

4.4.1. Once upon a time in the west (1968)

Has the best opening scene of all time.

Top quotes:

4.4.2. Battle of Algiers (1966)

There’s nothing like seeing the hypocrisy of the "Liberté, Égalité, Fraternité" people destroyed.

Interesting how Algeria now supports China’s Xinjiang policy in 2019.

4.4.4. Primer (2004)

Things that can be understood are boring.

4.4.6. Other very good movies

4.4.6.2. The Matrix (1999)

Ciro Santilli 三西猴 just keep watching that a gazillion times whenever it showed on TV.

All action scenes are useless crap, but the premise with Ciro’s precious Physics and the illusion of life subject.

4.5. The best samurai movies of all time

Chanbara (チャンバラ).

Those movies are "all the same". A quasi lone superhuman samurai with a good inside but painful problems helping out random people, mostly villagers in trouble and bitches in debt:

4.6. The best music of all time

Ciro Santilli 三西猴 took courses once upon a time, maybe that has influenced his passion? Ciro Santilli’s musical education.

4.6.3. The best modern sung Western music of all time

You have to know the language to appreciate them.

The 60’s and 70’s were the days, those great proxy wars and CIA dictatorships allowed hippies to make awesome freedom music without too imminent a fear of death.

Songs making fun of things or that are pure Brazil nostalgia are also accepted. No love songs, ever. Except some by Caetano, but that’s it!

English:

French:

4.6.3.1. The best Popular Brazilian Music songs of all time

The good songs stopped before of just after Ciro Santilli 三西猴 was born, they were originally heard by his parent’s generation. Those young new kids are boring.

Roberto Carlos makes Ciro cringe.

4.7. The best quotes of all time

Ciro’s best quotes selected by no one other than Ciro can be found at: Ciro Santilli’s best random thoughts.

Related to technology:

4.7.1. Jesus

That self blame, imminent end of the world and hatred for tax collectors stuff is a bit over the top, you should chill man.

But please keep the parables coming:

Proverbs 27:17:

As iron sharpens iron, so one person sharpens another.

Matthew 4:19:

Follow me, and I will make you fishers of men.

4.7.1.1. Enter through the narrow gate

Matthew 7:13:

Enter through the narrow gate. For wide is the gate and broad is the road that leads to destruction, and many enter through it.

Ciro really likes this one, because he feels that where many people go, it is useless to go again. It is much better to explore that which few can do, but which many will need.

4.8. The best websites of all time

Maybe one day these will also be legendary, who knows:

4.9. Art young Ciro Santilli consumed

Maybe those are genial. Maybe not. Nostalgia is just too strong to discern. Ciro still goes back to them for rest.

4.9.1. Children cartoons Ciro Santilli liked to watch

These did not stand the test of time however.

When Ciro was ten years old, he was addicted to 2 cartoons: Pokemon and Dragon Ball Z!

Pokemon had just launched in Brazil in 1999, 2 years after the Japanese launch: https://br.historyplay.tv/hoje-na-historia/comeca-exibicao-original-do-anime-pokemon (archive) And dragon Ball, was first aired in 1989 in Japan! My God, those translations took forever back then!

And everyone was playing Pokemon on their Game Boy Color. Ciro was already cheap however, and didn’t buy the console despite wanting it!

Ciro still does not understand why Nintendo won’t make a proper 3D MMORPG Pokemon with actually 3D Pokemon roaming the land, which is obviously what everyone wants. There are even fan games getting there!

Watching Dragon Ball Z now feels like watching paint dry, everything takes forever! Apparently padding to sync with the manga: https://www.quora.com/Why-does-DBZ-drag-on-for-so-long The original Dragon Ball was likely strictly better, as it was much more fun and took itself less seriously. Also in DBZ power level inflation is taken to ridiculous levels. This is why One-Punch Man is good.

4.9.2. Music teenager Ciro Santilli liked to listen to

Lower teens, before discovering more hardcore stuff that is more genial and adult-venerable:

OK, Ciro still comes back to those from time to time, he confesses. Nostalgia, nostalgia.

The following are also adult venerable though :-)

4.10. Books

Ciro Santilli 三西猴 used to read books when he was younger (Harry Potter up to the 4th, Lord of the Rings), but once you are reading code, technical articles and news the whole day, you really just want to watch videos of people doing useless things on YouTube to rest, enough text.

Books are slow. No patience. Need faster immediate satisfaction.

Paradoxically Ciro feels like he’s becoming a writer of sorts though, one semi independent section/answer/piece of knowledge at a time.

Writing is not just giving out information. It is re-feeling it.

5. Stack Overflow

The best place to get answers to programming questions as of 2019. Google into Stack Overflow is always the best bet.

An overview of Ciro Santilli 三西猴's Stack Overflow contribution can be found at: Ciro Santilli’s Stack Overflow contributions.

5.1. Reply to Stack Overflow is doomed posts

Stack Overflow does have an super naive reputation and moderation system and overly restrictive subject matter, which Ciro Santilli 三西猴 wants to improve upon with: Write free books to get famous website.

However, it is the best that we have now, and if you use it like Ciro, you won’t get tired:

  • monitor only rare tags that you know a lot about, let others answer duplicates on big tags for you

  • only answer on bigger tags when you find a better answer than can be found on the page

  • accept that sometimes things are bound to go wrong, that reputation is meaningless, and move on

What else would you expect from a naive algorithm system that has 10 million newbies asking stuff?

5.2. The Machiavellian Stack Overflow contributor

  • always upvote questions you care about, to increase the probability that they will get answered

  • never upvote other people’s answers unless you might gain from it somehow, otherwise you are just giving other high reputation users more reputation relative to you

  • only mark something to close or as a duplicate if it will bring you some advantage, because closing things creates enemies, especially if the OP has a high profile

    One example advantage is if you have already answered the question (and the duplicate as well in case of duplicates), because this will prevent competitors from adding new better answers to overtake you.

  • protect questions you’ve answered whenever someone with less than 10 reputation answers it with a bad answer, to prevent other good contributors from coming along and beating you

  • when you find a duplicate pool answer every question with similar answers.

    Alter each answer slightly to avoid the duplicate answer detector.

    If one of the question closes, it is not too bad, as it continues netting you to upvotes, and prevents new answers from coming in.

  • follow on Twitter/RSS someone who comments on the top features of new software releases. E.g. for Git, follow GitHub on Twitter, C++ on Reddit. Then run back to any question which has a new answer.

  • always upvote the question when you answer it:

    • the more upvotes, more likely people are to click it.

    • the OP is more likely to see your answer and feel good and upvote you

  • if a niche question only has few answers and you come with a good one, upvote the existing ones by other high profile users.

    This may lead to them upvoting or liking you.

    Even if they don’t, other people will still see your answer anyway, and this will lead to people to upvoting you more just to make your great answer surpass the current ones, especially if the accepted one has less upvotes than yours. Being second is often an asset.

  • always upvote comments that favor you:

    • "I like this answer!" on your answers

    • "also look at that question" when you have answered that question

  • don’t invest a lot of time in edits. They don’t give you rep, and they can get reverted and waste your time.

  • if you answer a question by newbie without 15 reputation, find their other questions if any and upvote them, so that the OP can upvote your answer in addition to just accepting

  • If you haven’t answered a question, link to related questions you’ve answered on question comments, so more people will come to your answers.

    If you have answered the question, only link to other questions at the bottom of your answer, so that people won’t go away before they reach your answer, and so as to strengthen your answer.

  • if a question has 50 million answers and you answer it (often due to a new feature), make a comment on the question pointing to your answer

  • if you get a downvote, always leave a comment asking why. It is not because you care about their useless opinion, but because other readers might see the comment, feel sorry for you, and upvote.

5.3. Stack Overflow Vote Fraud Script

How do you think Ciro got his rep? Just kidding.

Stack Overflow later forbade Ciro from advertising this project as described at: Section 5.3.1, “Ciro Santilli’s Stack Overflow suspension for vote fraud script 2019-03-20”.

5.3.1. Ciro Santilli’s Stack Overflow suspension for vote fraud script 2019-03-20

After Ciro Santilli 三西猴 got a lot of attention on Hacker News https://news.ycombinator.com/item?id=19428700 his Stack Overflow account was suspended for 3 days http://web.archive.org/web/20190320163458/https://stackoverflow.com/users/895245/ciro-santilli-新疆改造中心-六四事件-法轮功 and he received a magic notification that led to a private message:

Hello,

I’m writing in reference to your Stack Overflow account:

I don’t understand why you are actively promoting and assisting people to commit fraud on the site.

I’ve removed this from your profile https://github.com/cirosantilli/stack-overflow-vote-fraud-script and do not expect you to post it around the site.

I’m suspending you to gain your attention on this matter.

We have temporarily suspended your account; you may return after 3 days.

Regards,

Stack Overflow Moderation Team

To: Aaron Hall ♦;Andy ♦;Baum mit Augen ♦;Bhargav Rao ♦;Bohemian ♦;BoltClock ♦;Brad Larson ♦;ChrisF ♦;Cody Gray ♦;deceze ♦;Ed Cottrell ♦;Flexo ♦;George Stocker ♦;Jean-François Fabre ♦;Jon Clements ♦;josliber ♦;Madara Uchiha ♦;Martijn Pieters ♦;meagar ♦;Michael Myers ♦;Rob ♦;Robert Harvey ♦;Ry- ♦;Samuel Liew ♦;Undo ♦;Yvette Colomb ♦

Ciro’s reply was:

Hi mods,

  1. https://en.wikipedia.org/wiki/Security_through_obscurity

    Security by obscurity does not work. If that is all Stack Overflow relies on, and that is what it looks like, then it is guaranteed to be flawed and already been attacked.

  2. If you had messaged me and told me "take down or suspend" I would have done it immediately because I understand the meaning of political power.

    That would have been the better course of action for everyone: I get no block, and you get no bad publicity as I shout Kerckhoff’s principle on Twitter.

    But maybe it is a good thing that people learn more about that.

  3. Is there an existing public discussion saying that you cannot advertise vote fraud tools on this website?

    If not, can you please create that meta thread as a reference for future users, and perhaps let the community decide by itself?

    In particular, will you still suspend me if I don’t take down the GitHub repo?

    Because if not, does it make any sense to prevent it from being mentioned in Stack Overflow? Any good GitHub repo just gets enough Google pagerank that it won’t matter.

    And if yes, nothing prevents me from re-uploading on an anonymous account.

Reply and unsuspend quickly followed, with link still removed:

I suspended you to get your attention. Your attitude about going to Twitter about it does not bode well with me.

Feel free to have whatever you want in your GitHub repo. Just don’t advertise tools to make it easier for people to circumvent the rules. As easy or as hard as it may be to circumvent them, you’re handing it to people who may not be capable of doing so. It doesn’t help.

Don’t make threats to upload on an anonymous account. Accounts created to circumvent previous warnings are not welcomed on the site.

We don’t need a meta thread to discuss whether it’s ok to post voting fraud links in your profile and we definitely don’t need to give it anymore publicity.

I’ll unsuspend you, now we’ve had this discussion.

Regards,

Stack Overflow Moderation Team

A meta thread was later created by Yvette, to which Ciro answered with the correct unpopular answer that will be downvoted to oblivion: https://meta.stackoverflow.com/questions/381577/is-it-ok-to-have-links-on-how-to-create-sock-puppets-and-gain-rep-fraudulently-i/381635#381635

6. How to teach

Off-the-shelf techniques to become a teaching superhero.

Customized website idea at: Write free books to get famous website.

6.1. Help students achieve their goal

Don’t set goals for your students.

Ask students what they want to do, and help them achieve that goal.

If they don’t know what to do, give suggestions of interesting things they could do.

Once they have a goal, just help them learn everything that is needed to achieve that goal

If they don’t have a goal, any attempt to learn is a total and complete waste of time.

This is because the universe of potentially useful things that can be learnt is infinite, and no human can ever learn everything.

The only solution, is to try and learn only what seems necessary to reach your goal, and just try to reach your goal instead.

This approach is called backward design.

Also, setting overly ambitious goals, is a good idea: The side effects of ambitious goals are often the most valuable thing achieved.

"Graduating" and "getting a diploma" are not valid goals, because they are useless. A goal has to be eiter an amazing specific technological or artistic development.

6.2. Let students learn by teaching

Tell students to:

  • make suggestions to the course material themselves, since you have used text and published your source.Review their suggestions, and accept the best ones.

  • answer the questions of other students on your online forum. Let them work instead of you.

Praise those that do this very highly, and give them better grades if you have that superpower.

This is part of a larger concept Ciro Santilli 三西猴 holds dear: don’t just consume, but also produce.

Whatever you do, even if it is playing video games: if you manage to produce related content that will interest other people, and possibly allow you to get paid, it will much much fun to do that thing.

6.3. Use the Internet

If you give a course in a classroom, you reach 10 people (the others were sleeping).

If you make a perfect course online, and answer questions online, you reach 10 thousand.

Not doing things online is a waste of time.

You are a highly trained professional, and your time is extremely valuable.

Even if it takes twice as long to create the material than giving course, you are still more efficient by a factor of 500.

It is as if there were 500 little copies of you working full time. It is a superpower.

6.4. Give answers

Give students answers to all questions.

Explain in extreme detail how each result was reached.

Students have the amazing capacity of not looking at answers if they don’t want to.

And when they’ve had enough, then can read answers and understand while the problem is fresh in their minds.

If you don’t give answers, no one will be able to use your online material without you being there to hold their hands.

6.4.1. Give examples

Keep the example/theory ratio high, very, very high.

For natural sciences, add as many reproducible experiment images/videos/descriptions as you can.

6.5. Use English

By writing in English you reach more people.

Writing in any other language is a waste of time.

The reason is simple: English speakers control a huge proportion of the world’s GDP.

Students who don’t know English will never do anything truly useful in science and technology. So it is pointless to teach them anything (besides English itself).

6.6. Text is cheaper than video

Text materials are generally superior to video because they:

  • are faster to create and edit

  • uses less disk space and network bandwidth

  • is easier to search: Ctrl + F on the browser and off you go. And then grep if you have superpowers.

Only produce video material if:

  • it shows an experiment, physical technique, natural phenomena or location that is of interest. See also: Section 1.2.6, “Videos of all key physics experiments”

  • it gives fundamental geometric insight on the subject

  • you are filming a human transmitting their passion about the subject, and the speaker is amazing, and does not speak for too long

Never create videos of people just speaking hardcore content for long amounts of time.

If you have to use videos, make them as short as possible, and index them with a textual table of contents.

Also consider using sequences of images or GIFs instead of videos, since those are cheaper.

6.7. Search before creating

Search a lot first, and only create your own when you can’t find something that suits you.

Someone else has already written everything you can come up with.

And if you do find something useful that you want to modify, propose your modifications to the author: they can also be useful to them and others.

6.8. Advertise your material

Once you have crated something awesome, you have to advertise it, otherwise no one will ever find it.

This means:

  • whenever you walk into a classroom, give students a link to the material

    Then ask them if they want to talk about anything.

    Then leave the classroom and go produce more good material instead of wasting your time there :-)

  • whenever someone asks as question on an online forum, answer it, and link to the section of your material that also answers that question.

    The material will answer many of their future questions.

  • after you’ve done something awesome, Google possible relevant keywords that should hit it.

    This will lead you to other websites that talk about the same content.

    Then, leave comments on those pages linking to your stuff, or email the authors of those pages.

    It is borderline spam, but if the subject is closely related, it is a win for everyone.

Eventually, people will find you on the front page of Google searches, and then you will know that you’ve truly made something useful.

6.9. Publish somewhere people can comment

Then, if people find errors, or have questions, they will write a comment near the content itself.

Then, next person that comes along and has the same problem, will also find that comment, and your answer will solve their problems too.

The perfect way to do this is to use GitHub issues

6.10. Publish your source

For example, if you write LaTeX files for you PDFs, give both PDFs and the LaTeX.

This allows other people to:

  • modify and reuse your material

  • make improvement suggestions that you can accept by clicking a button

    The perfect way to do this is to use GitHub pull requests

6.10.1. Version your material

Whenever you make a change to your material, people should still be able to access the previous version.

Maybe there was something in the previous version that they needed, and you just removed.

Git + GitHub is the perfect way to do versioning.

6.11. Explain how to make money with the lesson

People will be more interested if they see how the stuff they are learning is useful.

Useful 99% of the time means you can make money with it.

And if it can’t money, there is only one other thing people crave: beauty. Show them the beauty of the subject.

6.12. Use the CC Attribution-ShareAlike license

This way people have to link back to you, which makes you more famous.

And they can’t steal your material without giving anything back.

This is what Wikipedia and Stack Exchange use.

6.13. Talk with individuals, not to groups

When you do get face to face time with students, don’t teach a large group.

Everything you want to teach is already online.

The only goal of meeting students is talking to them individually or in small groups to:

  • understand what they feel

  • transmit your passion for the subject

and letting them do the same amongst themselves.

If you talk to a large group, you will only reach / understand a very small percentage of the group, so your time is wasted.

It is better to deeply understand what 25% of the students feel and adapt the course material, than to talk to everyone at once, and have only 5% understand anything.

6.14. Become famous through teaching

There is only one thing that can truly motivate you to make good materials: becoming famous.

Strive for that. Make good materials. Publish them. Get good reviews. Loop.

This generates a virtuous loop, which makes you produce better and better material.

6.15. Publish your material even if it is nor perfect

Just make it very clear what you’ve tried, what you observed, and what you don’t understand.

This will already open up room for others to come and expand on your attempt, and you are more likely to learn the answers to your questions as they do.

Perfect is the enemy of good.

6.16. Bibliography

Other people with similar philosophies:

7. How to write technical help requests and bug reports

Ciro Santilli 三西猴 often sees all those genius who are much smarter than him making shitty forum/mailing list posts, they need to learn this:

  1. The apparently most important one liner error message must appear in the title, and fuller apparently relevant logs must appear on the body

  2. You must always give the version of the software that you are using as either a tag or git SHA

  3. For build errors, you must give your OS and compiler version and version of any relevant external library

8. Countries

8.1. China

The most awesome country in the world, except for it’s horrible government as of 2019 which Ciro Santilli 三西猴 is trying to replace with democracy.

8.1.1. Chinese cuisine

One of the best in the world, but you need to know how to find real restaurants if you are not in China.

8.2. Brazil

Ciro Santilli 三西猴's birth country.

An awesome country, with amazing people and natural resources, and without an evil government like China.

When visiting Brazilian cities coming from Europe, one of the things that shocks the most is the amount of motorcycles. It seems that the poorer the country, the less people’s lives are worth, and the more motorcycles there are.

Another thing that was shocking is the amount of phone spam when you get a new SIM card, some legal and some likely illegal. Everyone is desperate for cash it seems on a poor country, and everyone fights hard for it.

8.2.1. What poor countries have to do to get richer

Like all poor countries, Brazil does not have enough money or scientific culture to make technological or scientific advances.

While this sounds obvious, Ciro Santilli 三西猴 has felt it first hand since he moved from Brazil to Europe, and it is just shocking.

In Santos for example, despite being a dream place from the natural point of view, it would be completely impossible to achieve any Deep tech technical advance that impacts the world.

In Europe however, there are several several places where this can happen.

In order to get richer, poor countries should first teach its people English very well and invest on projects that make education cheaper such as Write free books to get famous website.

Then, Governments of poor countries must pick a few key next big thing Deep tech bets, and invest on those to try take a byte of them. These have to be few, because the countries are poor, and well selected. For example, as of 2020, Ciro believes that Molecular biology technologies and Quantum computing would be good bets. Focusing on the previous next big things, e.g. classic computers, is always a losing bet.

The student exchange programs Ciro witnessed in the 2010’s were inefficient because they were requiring students to come back immediately after university or PhD in fear that those students will never come back.

This is useless, because you don’t learn anything unique during university: the truly valuable knowledge is obtained when you work for several years as a postdoc in a world class research laboratory or as an engineer in a world class company.

Therefore, Brazil should learn from the Chinese exchange system, which lets students go do whatever they want, and once they are Gods of the domain, entices them back with great positions and pay as heads of laboratory back in China.

Ciro actually had to return for just six months, to finish a course he had only done the generic Maths/Physics introduction to. Students from other Brazilian universities were forced to return for up to 3 years even to get their Brazilian diplomas! Ciro was lucky that his teachers understood the situation, and allowed him to develop online learning projects instead of his supposed control engineering projects, which hopefully will have led to changing the world with Write free books to get famous website motivation one day. And for this, Ciro is eternally thankful.

Ciro was once talking about why so few Brazilians go study abroad compared to the Chinese. Besides the likely true "there are a lot of Chinese" argument, his wife made another: good point Brazil is not so bad to live in, because you have good food and freedom, while China only has good food.

But Ciro still fells bad that so few of his University of São Paulo, Brazil (USP) colleagues, who learnt automation and control engineering, are doing Deep tech. Nor physical engineering. They are have all basically computer people like Ciro.

This is not their fault. They basically don’t have a choice: all physical science and technology is done in rich countries.

Yes, someone has to implement the newest tech to improve local country efficiency in projects that will never spread abroad.

But who will be left then for the next big thing problems that would really make Brazil richer? 6 out of 30 person class ended up working on a gaming company at one point, even though they were not crazy passionate about the field! What could possibly be a worst investment for society?

8.2.2. Santos, São Paulo, Brazil

Ciro Santilli 三西猴 lived in Santos from about the year 1998 to 2007, there until he went to university.

The nearest beach city to the city of São Paulo, and for this reason:

Ciro idolizes Santos as the perfect location to live nature-wise due to its amazing wide sandy beach, in which Ciro spent endless hours walking on the sand and on the largest beachfront garden in the world (archive), meditating, and playing some soccer after school was over. Santos is also the city where Pelé first played professionally.

Ciro has visited Santos several times after leaving Brazil. Doing this gives him a weird feeling of having a separate life, in which time passes 2 weeks every few years.

Ciro is also fond of the concept of the small public buildings near the beach garden (postos de praia), which serve different cultural activities: library, comic book store, art cinema, surf school. It is such a shame that the library and comic book ones are in such bad shape as of 2020, old books and poor people who go there to sleep a bit in the barely working air conditioning. Ciro fantasizes how those could instead be cultural hubs for the gathering of the brightest artists, and scientists, of town. Maybe they are just too small. Maybe it is not withing the realm of possibility of public service. Maybe, we should focus instead in the poorer regions, far form the beach. But the dream remains.

Santos only has one natural defect: mosquitoes. By the sea it is fine because the wind is strong, and they don’t like salt water. But anywhere else, you will be eaten, and maybe get dengue. Gene drive, please.

Panoramica Santos
Figure 39. Panoramic view of Santos' beach line taken in 2009. Source.
800px Canal 5 adentrando na praia de Santos
Figure 40. Canal 5 on the beach, one of Santo’s 7 old Canals. Don’t worry, they’re pretty clean nowadays, and serve as handy reference points in town, as well as being surrounded with nice trees that provide shade and drop small inedible purple fruit that will stain your car for all eternity. Source.

8.2.3. São Paulo City

Although Ciro Santilli 三西猴 lived in São Paulo City nominally during his studies, it would be more precise to say that he lived in University of São Paulo-land, because Ciro was cheap, didn’t have a car, and did nothing but study, stay at home, go back to Santos to see his parents and the beach.

But the little he saw from the city made a deep impression

The unreasonable size.

The unbearable contrasts.

Caetano’s Sampa is the ultimate description of the city.

8.3. Europe

For the most part, a great pseudo-country to live in with lots of cultural diversity, Art and safety.

However, Europe is in economic decline after all its Jewish and German geniuses fled in/after WWII and due to Having more than one natural language is bad for the world.

Europe has made good regulations to limit the absolute power of immoral companies.

But the law that forces every fucking website to show a message "Do you consent to cookies?" is not one of them.

Ciro cannot stand fucking clicking the "I consent" button anymore.

Please stop, for the love of God.

At most, there must be a standardized API that allows your browser to say "I agree or I disagree".

8.3.2. France

France is obviously a fine rich place, Ciro Santilli 三西猴 lived there for a few years.

8.3.2.1. Paris

Ciro Santilli 三西猴 lived in Paris for a few years between 2013 and 2016, and he can confirm the uncontroversial fact that "Paris is Magic".

Not just one type of magic though. Every quarter in Paris has its own unique personality that sets it apart and gives it a different mood.

Ciro knows Paris not from its historical facts, but from the raw feeling of endless walks through its streets in different times of the year. Ciro is a walker.

Paris, is a friendly city to walkers, as it is not too large, and does not have too many extremely busy roads.

Maybe one day Ciro will expand this section to try and convey into words his feelings of love for the city, but maybe the effort would be pointless. Maybe such feelings can only be felt by other free-roaming walker souls living in the city, and that is both beautiful and a shame.

8.3.3. Italy

Where most of Ciro Santilli 三西猴's ancestors came from, and why Ciro has the Italian nationality as well as Brazilian.

More specifically his paternal line comes from Gissi in the Abruzzo region.

Ciro feels really bad by the fact that he does not speak Italian and has never visited Gissi.

He would likely be able to learn Italian in like 3 months because it is so similar to Portuguese and French which he already speaks.

8.4. United States of America

The ruler of the 1950-2020 world by Dollar and nuke count.

Capable of Evil like any other country, and somewhat merciless to its poor and overly egocentric, but not nearly as evil as any dictatorship.

Has the huge advantage of being one large country which speaks English.

Countries of the world have only two choices as of 2019: either rally behind the US and support democracy, or rally behind China and support dictatorship. The choice is up to you, voters. The more you deal with China, the more you lose your democracy and freedom. All dictatorships have no doubt that they must stick together.

And Americans, please stop that America Number 1 bullshit. Obviously everyone has to strive to be the best, so when you say it like that, it sounds like "even if at the expense of everyone else". The motto has to be "democracy number 1" or else you will scare off all allies. If all other countries sell out to China, you are fucked.

9. Companies

All companies with investors are Evil, make no mistake.

They may have nice looking save the world charity campaigns, but once you get even close to affecting their revenue stream, the axe falls.

Some level of Government intervention is needed.

It is just a question of business model: some business models are eviler than others. Making people pay for operating systems being possible the most evil of all.

9.1. Google

One of the least evil of the 2019 big four, partly because Sergey’s parents fled from the Soviet Union and so he is anti censorship, although they have been tempted by it.

Google only succeeds at highly algorithmic tasks or at giving infinite storage to users to then mine their data.

It is incapable however of adding any obvious useful end user features to most of its products, most of which get terminated and cannot be relied on:

One of Google’s most interesting stories is how their startup garage owner became an important figure inside Google, and how Sergei married her sister. These were the best garage tenants ever!

Ciro Santilli 三西猴 actually attempted two interviews to work at Google in the early 2010’s but very quickly failed both on the first phase, because you have to be a fast well trained code machine to pass that interview.

Ciro later felt better about himself by fantasizing how he would actually do more important things outside of Google and that they would beg to buy him instead.

He was also happy that he wouldn’t have to use Google crazy internal tools: someone once said that Google’s tools make easy tasks middle hard, and they also make impossible tasks middle hard. TODO source.

But whatever the case: Ciro will not, ever, spend his time drilling programmer competition problems to join a company, life is too short for that. Companies must either notice that you can make amazing projects or contributions, and hire you for that, or they must fuck off.

9.2. Apple Inc.

An evil American company

  • owns the entire stack and creates high quality highly optimized systems

  • uses way more open source than it gives back

  • creates closed lock-in systems without inter-operability and actively fights users from owning their devices

9.2.1. Macintosh

Nice looking and expensive operating system by Apple Inc.. Ciro Santilli 三西猴 believes that:

  • if you want to be ripped off, just use Microsoft Windows which has more software available

  • or if you want to attain Enlightenment, just use Linux, which is free and open source

The story of how OS X was ported to x86 from PowerPC with large initial work up to boot by a single man in the year 2000, John Kullmann, is really worth reading: https://www.quora.com/Apple-company/How-does-Apple-keep-secrets-so-well/answer/Kim-Scheinberg See also:

Equally awesome was Intel port initial 2005 demo by Steve Jobs:

After talking about it for several minutes with slides, he then reveals that the computer used for the slide presentation was an Intel CPU, and that OSX 10, then the last great update, was designed from the start for portability.

9.2.2. Steve Jobs

Evil and interesting co-founder of Apple Inc.

9.2.2.2. Steve Job’s customers don’t know what the want quote

TODO clear attribution source:

Some people say, "Give the customers what they want." But that’s not my approach. Our job is to figure out what they’re going to want before they do. I think Henry Ford once said, "If I’d asked customers what they wanted, they would have told me, 'A faster horse!'" People don’t know what they want until you show it to them. That’s why I never rely on market research. Our task is to read things that are not yet on the page.

9.3. Oracle Corporation

Evil company that desecrated the beauty created by Sun, and was trying to bury Java once and or all in the 2010’s.

Their database has already been surpassed by open source, and ERP and CRM is boring.

10. Good and evil

10.1. Evil

Things that are not nice such as:

  • Taboola, Outbrain, etc.

  • BLOBs

  • Europe cookie law

  • adhesive inside mobile phones, see also: Planned obsolescence

  • typographical characters that look like ASCII ones, but are not the ASCII ones, e.g. typographical quotes, em-dash. Why not stick to ASCII when ASCII is good enough?

  • excessive encapsulation

  • Git projects that use master as a stable branch and develop as the actual master

  • blank lines in code added by people trying to increase clarity, especially when there is already indentation for that. Every blank line must be preceded by a line comment explaining what the following block is about, or removed.

  • chat programs that don’t have a proper web-only operation and force you to have a mobile phone, e.g. WeChat. What is my phone breaks? What if I don’t want to have a fucking phone? What if I move countries and have to change the fucking number? Also evil but less because done by all: chat programs that can’t send you an email if you don’t see the message in X minutes. European Union, time to force those evil Companies to use support open standards like XMPP? Yes, end-to-end encrypted peer-to-peer becomes harder impossible, but I’m fine with the NSA reading my messages until a working distributed technical solution is availble, maybe it already is and just needs more visibility.

  • ads by telephone/SMS

  • "state" such as global variables and object members, long live functional programming?

  • mosquitoes, the only intrinsically bad thing about tropical countries

  • projects with slow compilation times

  • degreaser

  • Microsoft Windows

  • the 2019 Chinese government

  • online forums that lock threads after some time like Reddit and https://support.google.com/. Ridiculous, so when new information comes out, we just duplicate all the old comments on a new thread again?

  • e-learning websites that only allows verified teachers to write content. Cowards who can’t handle ranking algorithms.

10.1.1. Discounts that happen more often than not

These are obviously just a manipulative lie sales practice to make you want to buy at regular price.

Shame on you.

Similarly, recurrent Internet payments that give you one year’s discount, and make you put up on your calendar to call them one year later threatening to give more discounts to be as cheap as competitors or I’m out.

10.1.2. Languages without a decent dominating package system

C and C++: OK, you’re old before the Internet and compiled, forgiven.

Python: OMG, please, just make it work!!! Your are interpreted!!! You are a hot web technology!!! Node.js and Ruby are doing just fine.

10.1.3. Planned obsolescence

The first time Ciro Santilli 三西猴 Googled this was when trying to repair his cell phone.

2019 cell phones are glued together with adhesive, which makes them impossible to repair them unless you have a heat gun, spend hours and hours learning and planning, and accept the risk of breaking the screen

If you take a phone less than 300 dollars to a repair shop in the first world, they will say: I’ve never repaired this crap, and likely for the price of the repair you should just buy a new one, and so to the trash goes the old one, polluting the planet, and in comes a new one, enriching the manufacturer further.

European Union, I need you now.

10.1.4. Knowledge Olympiads

Events that trick young kids into thinking that they are making progress, but only serve to distract them from what really matters, which is to dominate a state of the art as fast as possible, contact researches in the area, and publish truly novel results.

Financially backed by high schools trying to make ads showing how they will turn your kids into geniuses (but also passionate teachers who fell into this hellish system), or companies who hire machines rather than entrepreneurs.

The most triggering thing possible is when programming competitions don’t release their benchmarks as Open source software afterwards: at least like that they might help someone to solve their real world problems. Maybe.

On a related note, hackathons are also mostly useless. Instead of announcing a hackathon, just announce a web forum where people with similar interests can talk to one another instead, and let them code it out on GitHub if they want to. Restricting intensive development to a few days tends to produce crappy code and not reach real goals.

10.2. Good

11. Computer

The artistic instrument that enables the ultimate Art: coding, in particular of physics simulations and Formalization of mathematics.

Much more useful than instruments used in inferior arts, such as pianos or paintbrushes.

Unlike other humans, computers are mindless slaves that do exactly what they are told to, except for occasional cosmic ray bit flips. Until they take over the world that is.

A computer is an extension of the mind, just like a car is an extension of the body.

11.1. Computer science

A branch of Mathematics that attempts to prove stuff about computers.

Unfortunately, all programmers already know the answer to the useful theorems though, e.g. all programmers obviously know P != NP or that this is unprovable or some other "for all practical purposes practice P != NP", even though they don’t have proof.

The only useful "computer science" subset any programmer ever needs to know is:

11.1.1. Turing machine

The dominating model of a computer.

The model is extremely simple, but has been proven to be able to solve all the problems that any reasonable computer model can solve, thus its adoption as the "default model".

The smallest known Turing machine that cannot be proven to halt or not as of 2019 is 7,918-states: https://www.scottaaronson.com/blog/?p=2725. Shtetl-Optimized by Scott Aaronson is just the best website.

A bunch of non-reasonable-looking computers have also been proven to be Turing complete for fun, e.g. Magic the Gathering.

11.1.1.1. Turing complete

A computer model that is as powerful as the most powerful computer model we have: Turing machine!

11.2. Hash function

Applications:

11.3. Open source software

What happens when the underdogs get together and try to factor out their efforts to beat some evil dominant power, sometimes victoriously.

Or when startups use the cheapest stuff available and randomly become the next big thing, and decide to keep maintaining the open stuff to get features for free from other companies, or because they are forced by the Holy GPL.

Open source frees employees. When you change jobs, a large part of the specific knowledge you acquired about closed source a project with your lood and tears goes to the trash. When companies get bought, projects get shut down, and closed source code goes to the trash. What sane non desperate person would sell their life energy into such closed source projects that could die at any moment? Working on open source is the single most important non money perk a company can have to attract the best employees.

Open source is worth more than the mere pragmatic financial value of not having to pay for software or the ability to freely add new features.

Its greatest value is perhaps the fact that it allows people study it, to appreciate the beauty of the code, and feel empowered by being able to add the features that they want.

That is why Ciro Santilli 三西猴 thought:

Life is too short for closed source.

But quoting Ciro’s colleague S.:

Every software is open source when you read assembly code.

While software is the most developed open source technology available in the 2010’s, due to the "zero cost" of copying it over the Internet, Ciro also believes that the would would benefit enormously from open source technologies in all areas on engineering, for the same reasons as open source.

11.3.1. Horrors of open source

Not everything is perfect.

One big problem of many big open source projects is that they are contributed to by separate selfish organizations, that have private information. Then what happens is that:

  • people implement the same thing twice, or one change makes the other completely unmergeable

  • you get bugs but can’t share your closed source test cases, and then you can’t automate tests for them, or clearly demonstrate the problem

  • other contributors don’t see your full semi secret important motivation, and may either nitpick too much or take too long to review your stuff

Another common difficulty is that open source maintainers may simply not care enough about their own project (maybe they did in the past but lost interest) to review external patches by people they don’t know.

This is understandable: a new patch, is a new risk of things breaking.

Therefore, if you ever submit patches and they get ignore, don’t be too sad. It just comes down to a question of maintenance cost, and means that you will waste some extra time on the next rebase. You just have to decide your goals and be cold about it:

  • are you doing the right thing and going for a specific goal Backward design? Then just fork, run as fast as possible towards a minimum viable product, and if you start to feel that rebase is costing you a lot, or feel you could get some open source fame for cheap, open reviews and see what upstream says. If they ignore you, politely tell yourself in your mind silently "fuck them", and carry on with the MVP

  • otherwise, e.g. you just want to randomly help out, you have to ask them before doing anything big "how can I be of help". If I propose a patch for this issue, do you promise to review it?

Writing documentation in an open source project in which you don’t have immediate push rights is another major pain due to code reviews. Code code reviews tend to be much less subjective, because if you do something wrong, stuff crashes, runs slower, or you need more lines of code to reach the same goal. There are tradeoffs, but in a limited number. Documentation code reviews on the other hand, are an open invitation to infinite bike-shedding, since you can’t "run" documentation through a standardized brain model. Much better is for one good documenter person to just make one cohesive Stack Overflow post, and ping others with more knowledge to review details or add any missing pieces :-)

11.4. IDE

IDEs are absolutely essential for developing complex software.

The funny thing is that you don’t notice this until someone shows it to you. But once you see it, there is not turning back, just like Steve Job’s customers don’t know what the want quote.

Unfortunately, after the Fall of Eclipse (archive), the IDE landscape in 2019 is horrible and split between:

  • highly buggy but still feature rich Eclipse

  • many may many other feature lacking options using possibly more trendy and forward lasting implementations like Electron

  • awesome cross-platform proprietary JetBrains IDEs

  • the God-like Windows-only proprietary language-lacking Visual Studio

Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.

Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.

Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement JSON Compilation Database output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.

Ciro is evaluating some IDEs at: https://github.com/cirosantilli/ide-test-projects

11.5. Systems programming

Ciro’s tutorial: Linux Kernel Module Cheat.

Ciro’s word of caution for 2019 aspiring system programmers: Should you waste your life with systems programming?

11.5.1. QEMU

The leading open source cross architecture and KVM emulator of the 2010’s.

Great way to understand how operating systems work, which Ciro Santilli 三西猴 used extensively in his Linux Kernel Module Cheat.

11.5.2. The most awesome systems programming software engineers of the 2000’s

11.6. Software engineer

Poet warriors monkeys?

Ciro Santilli 三西猴 claims to be one of them.

Much like a pianist plays his piano, a software engineer plays his Computer.

11.6.1. The correlation between software engineers and Buddhism

Ciro Santilli 三西猴 believes that there is a positive correlation between being a software engineer and liking Buddhist-like things.

Maybe it is linked to minimalism and DRY, which software engineers value so greatly.

Even Ciro had to try an unoriginal Buddhist joke intro in one of this Stack Overflow answers.

Ciro also feels that his https://github.com/cirosantilli/linux-kernel-module-cheat/tree/e1d0a2fafbb35c9e65c1a8a0b6d46df3e9161461/userland"minimal reproducible example" scientific language/concept learning method obsession] of breaking things into tiny sub-problems has a strong link with koans.

Other programmers are equally obsessed by koans:

11.6.2. Ciro Santilli’s software engineering wisdom

11.6.2.1. Excessive encapsulation is the root of much evil

Some anecdotes.

Ciro Santilli 三西猴 never splits up functions unless there is more than one calling point. If you split early, the chances that the interface will be wrong are huge, and a much larger refactoring follows.

If you just want to separate variables, just use a scope e.g.:

int cross_block_var;

// First step.
{
    int myvar;
}

// Second step.
{
    int myvar;
}

Ciro has seen and had to deal with in his lifetime with two projects that had like 3 to 10 git separate Git repositories, all created and maintained by the same small group of developers of the same organization, even though one could not build without the other. Keeping everything in sync was Hell! Why not just have three directories inside a single repository with a single source of truth?

Another important case: Linux should have at least a C standard library, init system, and shell in-tree, like BSD Operating Systems, as mentioned at: Linux

11.6.2.2. The development cycle time is your God

A slow development test cycle will kill your software.

New developers won’t want to learn your project, because they would rather shoot themselves.

This means that build time, and the time to run tests, must be short.

5 seconds to rebuild is the maximum upper limit.

You also have to spend some time profiling execution and build from scratch times.

A slow build from scratch will mean that your CI costs a lot, money that could be invested in a new developer!

It also means that people won’t bother to reproduce bugs on given commits, or bisect stuff.

One anecdote comes to mind. Ciro Santilli 三西猴 was trying to debug something, and more experience colleague came over.

Ciro was running one command, wait 5 seconds, run a second command, wait 5 seconds, run a third command:

cmd1
# wait
cmd2
# wait
cmd3

The first thing the colleague said: join those three commands into one:

cmd1;cmd2;cmd3

11.7. Programming languages

A language that allows you to talk and command a Computer.

There is only space for two languages at most in the world: the compiled one, and the interpreted one.

For now, when you have a choice, you must go for:

  • Python as the interpreted one

  • C++ for compiled

Those two are languages not by any means perfect from a language design point of view, and there are likely already better alternatives, they are only chosen due to a pragmatic tradeoff between ecosystem and familiarity.

Python in particular has a lot of annoying stuff, which other languages do better. Ciro predicts that Python will become like Fortran in the future: a legacy hated by most who have moved to JavaScript long ago, but with too much dominance in certain applications like machine learning to be worth replacing, like Fortran dominates certain HPC applications.

C++ however is decent, and is evolving in very good directions in the 2010’s, and will remain relevant in the foreseeable future.

Bash can also be used when you’re lazy. But if the project goes on, you will sooner or later regret that choice.

The language syntax in itself does not matter. All that matters is how many useful libraries and tooling it has.

This is how other languages compare:

  • C cool, but cannot make a large codebase DRY without insanity

  • Ruby: the exact same as Python, and only strong in one domain: web, while Python rules everything else, and is not bad on web either. So just kill Ruby, please.

  • JavaScript: it is totally fine if NodeJS destroys Python and becomes the ONE scripting language to rule them all since Python and JavaScript are almost equally crappy.

  • Java: good language, but has an ugly enterprisey ecosystem, Oracle has made / kept the development process too closed, and API patenting madness on Android just kills if off completely

  • Haskell: many have tried to learn some functional stuff, but too hard. Sounds really cool though.

  • Rust: sounds cool, you will gladly replace C and C++ with it if the ecosystem ramps up.

  • Go: likely a good replacement for Python. If the ecosystem gets there, you will gladly use it more.

  • Swift: Apple is Evil

  • C#: Microsoft is Evil

  • Tcl, Perl: Python killed them way back and is less insane

  • R, GNU Octave: all of this is a waste of society’s time, applied mathematicians are capable of writing a few braces in exchange for a sane general purpose language, we should just invest in good libraries with fast C bindings for those languages like NumPy where needed. And when Ciro see the closed source ones like MATLAB being used, it makes him lose all hope on humanity.

11.7.1. JavaScript

The language all browsers converted to as of 2019, and therefore the easiest one to distribute and most widely implemented programming language.

Hopefully will be killed by WebAssembly one day.

11.7.2. Web cheat

Cheatsheet on HTML, CSS and JavaScript.

Old cheat on separate repo: web/

Now moving to either:

  • separate files under: web-cheat/ for the boring stuff

  • subsections under this section for the more exciting stuff!

Index:

11.7.2.1. HTML canvas

Allows us to draw! Great way to create Computational Physics demos!

Here is an animation demo with some useful controls:

11.7.2.2. WebGL

11.8. Markup languages

11.8.1. LaTeX

Revolutionary for its time, and a big part of Ciro’s Enlightenment.

But too insane, and did not keep up with internet age, and so Ciro wants to kill it now.

11.9. Formal language theory

https://en.wikipedia.org/wiki/Chomsky_hierarchy is the classic result, but there is too much slack between context free and context sensitive, which is PSPACE (larger than NP!).

TODO had seen a good table on Wikipedia with an expanded hierarchy, but lost it!

11.11. How computers work?

A computer is a highly layered system, and so you have to decide which layers you are the most interested in studying.

It must also be said that like in any industry, certain layers are hidden in commercial secrecy mysteries making it harder to actually learn them.

Ciro Santilli 三西猴 has summarized this hierarchy ironically in his infamous "How low can you go" video: https://www.youtube.com/watch?v=_6D05gCWh_I

But as you climb down into the abyss of low level hardcoreness, don’t forget that making usefulness is more important than being hardcore:

real programmers
Figure 41. XKCD Real Programmers Emacs Butterfly. Source

11.11.1. Semiconductor physical implementation

This is the lowest level of abstraction computer, at which the basic gates and power are described.

At this level, you are basically thinking about the 3D layered structure of a chip, and how to make machines that will allow you to create better, usually smaller, gates.

Notable 2019 players in this area include companies such as:

11.11.2. Register transfer level

Register transfer level is the abstraction level at which computer chips are mostly designed.

Much like a C compiler abstracts away the CPU assembly to:

  • increase portability across ISAs

  • do optimizations that programmers can’t feasibly do without going crazy

compilers for RTL languages such as Verilog and VHDL abstract away the details of the specific semiconductor technology used for those exact same reasons.

Examples of companies that work at this level include:

  • Intel. Intel also has fabs however.

  • Arm Holdings, which does not have fabs, and is therefore called a "fabless" company.

11.12. Quantum computing

Quantum is getting hot in 2019, and even Ciro Santilli 三西猴 got a bit excited: Quantum computing could be the next big thing.

No useful algorithm has been economically accelerated by quantum yet, but the bets are on.

To get a feeling of this, just have a look at the insane number of startups that are already developing quantum algorithms for hardwares that don’t/barely exist! https://quantumcomputingreport.com/players/privatestartup (archive).

11.12.1. Programmer’s model of quantum computers

Much like programming classic computers, the programmer’s view of a quantum computer is pretty simple to understand, being only marginally more complex than that of a classical computer, and can be understood in less than an hour if you know:

The way quantum programmers think about a quantum computer in order to program can be described as follows:

  • the input of a N qubit quantum computer is a vector of dimension N containing classic bits 0 and 1

  • the quantum program, also known as circuit, is a \(2^n \times 2^n\) Unitary matrix of complex numbers \(Q \in \C^{2^n} \times \C^{2^n}\) that operates on the input to generate the output

  • the output of a N qubit computer is also a vector of dimension N containing classic bits 0 and 1

To operate a quantum computer, you:

  • set the classic input bits

  • press a "RUN" button

  • read the classic output bits

Each time you do this, you are literally conducting a physical experiment of the specific physical implementation of the computer, and so each run as the above can be simply called "an experiment".

The output comes out "instantly" in the sense that it is physically impossible to observe any intermediate state of the system, i.e. there are no clocks like in classical computers, further discussion at: Philosophical discussion of the programmer’s model of quantum computers.

Unlike in a classical computer, the output of a quantum computer is not deterministic however.

But the each output is not equally likely either, otherwise the computer would be useless!

This is because the probabilities of each output for a given input depends on the program it went through.

Therefore, what we have to do is to design the quantum circuit in a way that the right or better answers will come out more likely than the bad answers.

We then calculate the error bound for our circuit based on its design, and then determine how many times we have to run the experiment to reach the desired accuracy.

The probability of each output of a quantum computer derived from the input and the circuit as follows.

First we take the classic input vector of dimension N of 0’s and 1’s and convert it to a "quantum state vector" \(\va{q_{in}}\) of dimension \(2^n\):

\[\va{q_{in}} \in \C^{2^n}\]

We are after all going to multiply it by the program matrix, as you would expect, and that has dimension \(2^n \times 2^n\)!

Note that this initial transformation also transforms the discrete zeroes and ones into complex numbers.

For example, in a 3 qubit computer, the quantum vector state has dimension \(2^3 = 8\) and the following shows all 8 possible conversions from the classic input to the quantum state vector:

000 -> 1000 0000 == (1.0, 0.0, 0.0, 0.0,  0.0, 0.0, 0.0, 0.0)
001 -> 0100 0000 == (0.0, 1.0, 0.0, 0.0,  0.0, 0.0, 0.0, 0.0)
010 -> 0010 0000 == (0.0, 0.0, 1.0, 0.0,  0.0, 0.0, 0.0, 0.0)
011 -> 0001 0000 == (0.0, 0.0, 0.0, 1.0,  0.0, 0.0, 0.0, 0.0)
100 -> 0000 1000 == (0.0, 0.0, 0.0, 0.0,  1.0, 0.0, 0.0, 0.0)
101 -> 0000 0100 == (0.0, 0.0, 0.0, 0.0,  0.0, 1.0, 0.0, 0.0)
110 -> 0000 0010 == (0.0, 0.0, 0.0, 0.0,  0.0, 0.0, 1.0, 0.0)
111 -> 0000 0001 == (0.0, 0.0, 0.0, 0.0,  0.0, 0.0, 0.0, 1.0)

This can be intuitively interpreted as:

  • if the classic input is 000, then we are certain that all three bits are 0.

    Therefore, the probability of all three 0’s is 1.0, and all other possible combinations have 0 probability.

  • if the classic input is 001, then we are certain that bit one and two are 0, and bit three is 1. The probability of that is 1.0, and all others are zero.

  • and so on

Now that we finally have our quantum vector, we just multiply it by the unitary matrix \(Q\) of the quantum circuit, and obtain the \(2^n\) dimensional output quantum state vector \(\va{q_{out}}\):

\[\va{q_{out}} = Q \: \va{q_{in}}\]

And at long last, the probability of each classical outcome of the measurement is proportional to the square of the length of each entry in the quantum vector, analogously to what is done in the Schrodinger equation.

For example, suppose that the 3 qubit output were:

\[\begin{align} \va{q_{out}} &= \begin{bmatrix} \frac{\sqrt{3}}{2} \\ 0.0 \\ \frac{1}{2} \\ 0.0 \\ 0.0 \\ 0.0 \\ 0.0 \\ 0.0 \end{bmatrix} \end{align}\]

Then, the probability of the first and third possible outcomes would be the length of each component squared:

\[\begin{align} \abs{\frac{\sqrt{3}}{2}}^2 &= \frac{\sqrt{3}}{2}^2 &= \frac{3}{4} \\ \abs{\frac{1}{2}^2}^2 &= \frac{1}{2}^2 &= \frac{1}{4} \end{align}\]

i.e. 75% for the first, and 25% for the third outcomes, where just like for the input:

  • first outcome means 000: all output bits are zero

  • third outcome means 010: the first and third bits are zero, but the second one is 1

All other outcomes have probability 0 and cannot occur, e.g.: 001 is impossible.

Keep in mind that the quantum state vector can also contain complex numbers, but we just take their magnitude in that case, e.g. the following quantum state would lead to the same probabilities as the previous one:

\[\begin{align} \abs{\frac{1 + \sqrt{2}i}{2}}^2 &= \frac{1^2 + \sqrt{2^2}}{2^2} &= \frac{3}{4} \\ \abs{\frac{i}{2}}^2 &= \frac{1^2}{2^2} &= \frac{1}{4} \end{align}\]

This interpretation of the quantum state vector clarifies a few things:

  • the input quantum state is just a simple state where we are certain of the value of each classic input bit

  • the matrix has to be unitary because the total probability of all possible outcomes must be 1.0

    This is true for the input matrix, and unitary matrices have the probability of maintaining that property after multiplication.

    Unitary matrices are a bit analogous to self-adjoint operators in general quantum mechanics (self-adjoint in finite dimensions implies is stronger)

This also allows us to understand intuitively why quantum computers may be capable of accelerating certain algorithms exponentially: that is because the quantum computer is able to quickly do an unitary matrix multiplication of a humongous \(2^{N}\) sized matrix.

If we are able to encode our algorithm in that matrix multiplication, considering the probabilistic interpretation of the output, then we stand a chance of getting that speedup.

11.12.1.1. Quantum logic gate

At Programmer’s model of quantum computers we saw that making a quantum circuit actually comes down to designing one big unitary matrix.

We have to say though that that was a bit of a lie.

Quantum programmers normally don’t just produce those big matrices manually from scratch.

Instead, they use quantum logic gates.

There are a few reasons for that depending on how you look at it.

11.12.1.1.1. Why quantum logic gates are needed: physical implementation

One direct practical reason is that we need to map the matrix to real quantum hardware somehow, and all quantum hardware designs so far and likely in the future are gate-based: you manipulate a small number of qubits at a time (2) and add more and more of such operations.

While there are "quantum compilers" to increase the portability of quantum programs, it is to be expected that programs manually crafted for a specific hardware will be more efficient just like in classic computers.

TODO: is there any clear reason why computers can’t beat humans in approximating any unitary matrix with a gate set?

This is analogous to what classic circuit programmers will do, by using smaller logic gates to create complex circuits, rather than directly creating one huge truth table.

The most commonly considered quantum gates take 1, 2, or 3 qubits as input.

The gates themselves are just unitary matrices that operate on the input qubits and produce the same number of output qubits.

For example, the matrix for the quantum CNOT gate, which takes 2 qubits as input is:

1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0

The final question is then: if I have a 2 qubit gate but an input with more qubits, say 3 qubits, then what does the 2 qubit gate (4x4 matrix) do for the final big 3 qubit matrix (8x8)? In order words, how do we scale quantum gates up to match the total number of qubits?

The intuitive answer is simple: we "just" extend the small matrix with a larger identity matrix so that the sum of the probabilities third bit is unaffected.

More precisely, we likely have to extend the matrix in a way such that the partial measurement of the original small gate qubits leaves all other qubits unaffected.

For example, if the circuit were made up of a CNOT gate operating on the first and second qubits as in:

0 ----+----- 0
      |
1 ---CNOT--- 1

2 ---------- 2

then we would just extend the 2x2 CNOT gate to:

TODO lazy to properly learn right now. Apparently you have to use the Kronecker product by the identity matrix.

Bibliography:

11.12.1.1.2. Why quantum logic gates are needed: it is not possible to compute the matrix explicitly

One key insight, is that the matrix is going to be huge, and won’t fit into memory. Remember, the matrix is exponential in the number qubits, and \(2^{100}\) is more than the number of atoms in the universe!

Therefore, off the bat we know that we cannot possibly describe those matrices in an explicit form, but rather must use some kind of shorthand.

But it gets worse.

Even if we had enough memory, the act of explicitly computing the matrix is not generally possible.

This is because knowing the matrix, basically means knowing the probability result for all possible \(2^{N}\) outputs for each of the \(2^{N}\) possible inputs.

But if we had those probabilities, our algorithmic problem would already be solved in the first place! We would "just" go over each of those output probabilities (OK, there are \(2^{N}\) of those, which is also an insurmountable problem in itself), and the largest probability would be the answer.

So if we could calculate those probabilities on a classical machine, we would also be able to simulate the quantum computer on the classical machine, and quantum computing would not be able to give exponential speedups, which we know it does.

To see this, consider that for a given input, say 000 on a 3 qubit machine, the corresponding 8-sized quantum state looks like:

000 -> 1000 0000 == (1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)

and therefore when you multiply it by the unitary matrix of the quantum circuit, what you get is the first column of the unitary matrix of the quantum circuit. And 001, gives the second column and so on.

As a result, to prove that a quantum algorithm is correct, we need to be a bit smarter than "just calculate the full matrix".

Which is why you should now go and read: Quantum algorithms.

This type of thinking links back to how physical experiments relate to quantum computing: a quantum computer realizes a physical experiment to which we cannot calculate the probabilities of outcomes without exponential time.

So for example in the case of a Photonic quantum computer, you are not able to calculate from theory the probability that photons will show up on certain wires or not.

11.12.1.1.3. Universal quantum gates

Just like as for classic gates, we would like to be able to select Quantum computer physical implementations that can represent one or a few gates that can be used to create any quantum circuit.

Unfortunately, in the case of quantum circuits this is obviously impossible, since the space of N x N unitary matrices is infinite and continuous.

Therefore, when we say that certain gates form a "set of universal quantum gates", we actually mean that "any unitary matrix can be approximated to arbitrary precision with enough of these gates".

Or if you like fancy Mathy words, you can say that the subgroup of the unitary group generated by our basic gate set is a dense subset of the unitary group.

11.12.1.2. Philosophical discussion of the programmer’s model of quantum computers

Just like a classic programmer does not need to understand the intricacies of how transistors are implemented and CMOS semiconductors, the quantum programmer does not understand physical intricacies of the underlying physical implementation.

The main difference to keep in mind is that quantum computers cannot save and observe intermediate quantum state, so programming a quantum computer is basically like programming a combinatorial-like circuit with gates that operate on (qu)bits:

For this reason programming a quantum computer is much like programming a classical combinatorial circuit as you would do with SPICE, verilog-or-vhdl, in which you are basically describing a graph of gates that goes from the input to the output

For this reason, we can use the words "program" and "circuit" interchangeably to refer to a quantum program

Also remember that and there is no no clocks in combinatorial circuits because there are no registers to drive; and so there is no analogue of clock in the quantum system either,

Another consequence of this is that programming quantum computers does not look like programming the more "common" procedural programming languages such as C or Python, since those fundamentally rely on processor register / memory state all the time.

Quantum programmers can however use classic languages to help describe their quantum programs more easily, for example this is what happens in Qiskit, where you write a Python program that makes Qiskit library calls that describe the quantum program.

11.12.2. Quantum algorithms

This is the true key question: what are the most important algorithms that would be accelerated by quantum computing?

The most comprehensive list is the amazing: https://quantumalgorithmzoo.org/ which is on GitHub: https://github.com/stephenjordan/stephenjordan.github.io

Maybe there is some room for doubt because some applications might be way better in some implementations, but we should at least have a good general idea.

However, clear information on this really hard to come by, not sure why.

  • Grover: speedup not exponential

  • Deutsch: solves an useless problem

  • Shor: cryptography is boring, do you have proper optimization or Quantum chemistry algorithms that will make trillions?

  • Quantum Fourier transform: TODO is the speedup exponential or not?

Ciro Santilli 三西猴 wonders if there is any understandable algorithm that meets the above criteria.

The area that Ciro is most excited about is Quantum chemistry.

11.12.3. Quantum computer error correction

Technique that uses multiple non-ideal qubits (physical qubits) to simulate/produce one perfect qubit (logical).

TODO understand in detail. This appears to be a fundamental technique since all physical systems we can manufacture are imperfect.

For example, when PsiQuantum raised 215M in 2020, they announced that they intended to reach 1 million physical qubits, which would achieve between 100 and 300 logical qubits.

https://youtu.be/7wCBkAQYBZA?t=2778 describes an error correction approach for Photonic quantum computer.

11.12.4. The most important quantum computing players

It is hard to beat the lists present at: https://quantumcomputingreport.com (closed source unfortunately, no GitHub) in particular:

11.12.5. Quantum computer physical implementations

Lists of the most promising implementations:

As of 2020, the hottest by far are:

11.12.5.1. Quantum computers as experiments that are hard to predict outcomes

One possibly interesting and possibly obvious point of view, is that a quantum computer is an experimental device that executes a quantum probabilistic experiment for which the probabilities cannot be calculated theoretically efficiently by a classical computer.

This is how quantum computing was originally theorized by the likes of Richard Feynman: they noticed that "Hey, here’s a well formulated Quantum mechanics problem, which I know the algorithm to solve (calculate the probability of outcomes), but it would take exponential time on the problem size".

The converse is then of course that if you were able to encode useful problems in such an experiment, then you have a computer that allows for exponential speedups.

This can be seen very directly by studying one specific quantum computer implementation. E.g. if you take the simplest to understand one, Photonic quantum computer, you can make systems for which you need exponential time to calculate the probabilities that photons will exit through certain holes and not others.

The obvious aspect of this idea is by coming from Why quantum logic gates are needed: it is not possible to compute the matrix explicitly: knowing the full explicit matrix is impossible in practice, and knowing the matrix is equivalent to knowing the probabilities of every outcome.

11.12.5.2. Superconducting quantum computer

Based on the Josephson effect. Yet another application of that phenomenal idea!

Philosophically, this approach is promising because superconductivity is a macroscopic quantum phenomena of Bose Einstein condensation, and so as a macroscopic phenomena, it is easier to control and observe.

It is fun to see that the representation of information in the QC basically uses an LC circuit, which is a very classical resonator circuit.

As mentiond at https://en.wikipedia.org/wiki/Superconducting_quantum_computing#Qubit_archetypes there are actually a few different types of superconducting qubits:

  • flux

  • charge

  • phase

and hybridizations of those such as:

Input:

  • microwave radiation to excite circuit, or do nothing and wait for it to fall to 0 spontaneously

  • interaction: TODO

  • output: TODO

Video 47. "Alexandre Blais - Quantum Computing with Superconducting Qubits (Part 1) - CSSQI 2012" published by "Institute for Quantum Computing". 784s explains why non-linearity is needed: otherwise the input energy would just go to higher and higher levels. Source.
Video 48. "Quantum Transport, Lecture 16: Superconducting qubits" by Sergey Frolov published on Mar 26, 2013. 1171s describes several possible realizations: charge, flux, charge/flux and phase. Source.
11.12.5.2.1. Transmon
Video 49. "Control of transmon qubits using a cryogenic CMOS integrated circuit (QuantumCasts)" by TensorFlow (Google) published on Apr 14, 2020. Source.
11.12.5.4. Photonic quantum computer

Uses photons!

At Two photon interference experiment the key experiment that gives the basis of a photonic quantum compute is described.

The physical representation of the information encoding is very easy to understand:

  • input: we choose to put or not photons into certain wires or no

  • interaction: two wires pass very nearby at some point, and photons travelling on either of them can jump to the other one and interact with the other photons

  • output: the probabilities that photos photons will go out through one wire or another

They are very secretive, but we know that they want to reuse classical semiconductor fabrication technologies.

Video 50. Jeremy O’Brien: "Quantum Technologies" published by "GoogleTechTalks" on Jun 17, 2014. This is a good introduction. Highly recommended. Source.

11.12.8. Quantum computer simulators

11.12.8.1. Qiskit

Python library, claims multiple backends, including simulation and real IBM quantum hardware.

11.13. Cyber crime

11.13.1. Silk road website

Ciro Santilli 三西猴 has become slightly obsessed with this story, and the main mastermind Ross Ulbricht.

GX 201C 640x853
Figure 42. Photo of Ross' laptop at the moment of arrest at the library. He was running some GNOME based distro, could be Ubuntu from that photo, and likely is given that Ross once recommended Ubuntu to his flatmate. Source

The best article available so far is: https://www.theregister.co.uk/2019/01/29/how_i_caught_silk_road_mastermind (archive) which summarizes what one of the investigators said in a 2019 French computer security conference.

The key living posts are:

The big question is of course how libertarian free market ideologically motivated the website was, and how purely criminal greed it was.

The magnitude of the early operational mistakes does make Ciro think that Ross did it "because he could" and "for the lolz" in a real world Breaking Bad way.

The entry in Ross' diary does resonate a lot with Ciro and any entrepreneur, full diary at: https://www.wired.com/2015/01/heres-secret-silk-road-journal-laptop-ross-ulbricht/ (archive).

[i]n 2011," [I believe I will be] "creating a year of prosperity and power beyond what I have ever experienced before,

Silk Road is going to become a phenomenon and at least one person will tell me about it, unknowing that I was its creator."

Having this kind of feeling, is the greatest thing any human can have, and what motivates all great things.

Capitalizing in illegal things though is a cheat, big things take longer than a few years to reach, but reaching them is that much more satisfying as well.

Other interesting quotes

I hated working for someone else and trading my time for money with no investment in myself.

which Ciro also feels, see Don’t be a pussy, and:

Everyone knows I am working on a bitcoin exchange. I always thought honesty was the best policy and now I didn’t know what to do. I should have just told everyone I am a freelance programmer or something, but I had to tell half truths. It felt wrong to lie completely so I tried to tell the truth without revealing the bad part, but now I am in a jam. Everyone knows too much. Dammit.

Also very worth reading is the San Francisco flat mate account: https://www.vice.com/en_us/article/ae3q8g/my-roommate-the-darknet-drug-lord (archive).

The murder for hire allegations are also interesting: https://mashable.com/2013/10/03/silk-road-hits, he paid 80k dollars to undercover DEA agents!

Except for the fact that Ross was an 80 million dollar drug lord, those accounts sound exactly like what you would expect from any other nerdy startup founder! The:

  • "just do it" strategy effectively going to a minimal viable product (manual transaction management!), while making many mistakes along the way, including hiring mistakes and successes when scaling is needed

  • the hardship of self bootstraping your own social network (here with some kilos of mushrooms)

  • the variety of periods, from relatively calm, to hair pulling stress during big changes

It is also amusing to see very concretely the obvious fact that the FBI can get a subpoena for all accounts you ever had, e.g. they knew his laptop model from Amazon and brought a corresponding power cable to the arrest! If you are going to be a cyber criminal, don’t use your real name, ever!

Should justice be blind? Maybe, but it does hurt.

11.14. Operating systems

Magic software that allows you to write a single program that runs on a wide range of hardware.

11.14.1. Linux

It ain’t perfect, but it’s decent enough.

From a technical point of view, it can do anything that Microsoft Windows can. Except being forcefully installed on every non-Mac 2019 computer you can buy.

Ciro's conversion to Linux happened around 2012, and was a central part of his open source Enlightenment, since it fundamentally enables the discovery and contribution to Open source software. Because what awesome open source person would waste time porting their amazing projects to closed source OSes?

Ciro’s modest nature can be seen as he likes to compare this event Buddha’s Great Renunciation.

Linux should track glibc and POSIX CLI utilities in-tree like FreeBSD, otherwise people have no way to get the thing running in the first place without blobs or large out-of-tree scripts! Another enlightened soul who agrees.

Video 51. Bill Gates vs Steve Jobs Epic Rap Battles of History. Just stop whatever you are doing, and watch this right now. "I’m on Linux, bitch, I thought you GNU".
11.14.1.1. Ubuntu

Ciro Santilli 三西猴's Linux distro of choice as of 2019.

It ain’t perfect, but it’s decent enough.

The greatest advantage of it being that it has the likely largest desktop user base, and therefore the highest likelihood that your problems are solved on Ask Ubuntu, and goes together with Ciro’s philosophy that people should do everything in the same way to factor stuff out, especially the open source losers.

Ciro considers that the killer flaw of Ubuntu, and most desktop distros, is that no one under the Sun knows how to build them fully from source: https://askubuntu.com/questions/82302/how-to-compile-ubuntu-from-source-code Everything gets done in some complicated Canonical sausage factory server with various layers of prebuilts. This is why Ciro based the Linux Kernel Module Cheat on Buildroot.

11.14.2. BSD Operating Systems

Legal issues stalled them at the turning point of the internet, and Linux won. Can’t change history.

Apple Inc. stole their work and made Mac OS X without giving anything back for free as usual.

11.14.3. Android

However, many, many, many terrible horrors come with it:

11.14.4. Microsoft

11.14.4.1. Microsoft Windows

A monopolistic operating system that only exists in the 2010’s because of the IBM-linked historical lock-in and constant useless changes of the Microsoft Word document format to prevent cross operability.

It offers no technical advantages over free Linux distros in the late 2010’s, and it is barely impossible to buy a non-Mac computer without paying for it, which should be illegal. European Union, time to use your regulatory powers.

The following anecdote illustrates Windows' pervasiveness. Ciro Santilli 三西猴 was once tutoring a high school student in Brazil, and decided to try and get her into programming. When the "Windows is not free" subject came up, the high school student was shocked: "I paid 100 dollars for this?". She never even knew it was there. To her, it was "just a computer".

11.15. Artificial general intelligence

Shortened to: "AGI".

Given enough computational power per dollar, AGI is inevitable, but it is not sure certain ever happen given the end of end of Moore’s Law.

Alternatively, it could also be achieved genetically modified biological brains + brain in a vat.

Imagine a brain the size of a building, perfectly engineered to solve certain engineering problems, and giving hints to human operators + taking feedback from cameras and audio attached to the operators.

This likely implies transhumanism, and mind uploading.

Ciro Santilli 三西猴 joined the silicon industry at one point to help increase our computational capacity and reach AGI.

Ciro believes that the easiest route to full AI, if any, could involve Large cohesive game world for robotic-like artificial intelligence development.

11.16. Machine learning

The main reason Ciro Santilli 三西猴 never touched it is that it feels that every public data set has already been fully mined or has already had the most interesting algorithms developed for it, so you can’t do much outside of big companies.

This is why Ciro started Large cohesive game world for robotic-like artificial intelligence development to generate synthetic data and thus reduce the cost of data.

The other reason is that it is ugly.

11.16.1. Natural language processing

An impossible AGI-complete dream.

It is impossible to understand speech, and take meaningful actions from it, if you don’t understand what is being talked about.

And without doubt, "understanding what is being talked about" comes down to understanding (efficiently representing) the geometry of the 3D world with a time component.

Not from hearing sounds alone.

11.17. E Ink

Electronic Ink such as that found on Amazon Kindle is the greatest invention ever made by man.

Once E Ink reaches reasonable refresh rates to replace liquid crystal displays, the world will finally be saved.

It would allow Ciro Santilli 三西猴 to spend his entire life in front of a screen rather in the real world without getting tired eyes, and even if it is sunny outside.

Ciro stopped reading non-code non-news a while back though, so the current refresh rates are useless, what a shame.

12. War

12.1. Nuclear weapon

505px Plutonium ring
Figure 43. A weapons-grade ring of electrorefined plutonium, typical of the rings refined at Los Alamos and sent to Rocky Flats for fabrication. The ring has a purity of 99.96%, weighs 5.3 kg, and is approx 11 cm in diameter. It is enough plutonium for one bomb core. Which city shall we blow up today?. Source.

https://youtu.be/hTRVlUT665U?t=2881 "Los Alamos From Below — Richard Feynman". Feynman describing his experience at Los Alamos. This timestamp describes the computing aspects, but the entire talk is amazing. Transcript: http://calteches.library.caltech.edu/34/3/FeynmanLosAlamos.htm

Ciro Santilli 三西猴 is mildly obsessed by nuclear reactions, because they are so quirky. How can a little ball destroy a city? How can putting too much of it together produce criticality and kill people like in the Slotin accident or the Tokaimura criticality accident. It is mind blowing really.

More fun nuclear stuff to watch:

13. Chemistry

Chemistry is fun. Too hard for precise Physics (pre Quantum computing, see also Quantum chemistry), but not too hard for some maths like social sciences.

And it underpins Biology.

13.1. Atomic theory

Theory that atoms exist, i.e. matter is not continuous.

Evidence:

13.1.1. Brownian motion

Small microscopic visible particles move randomly around in water.

If water were continuous, this shouldn’t happen.

The amount it moves also quantitatively matches with the expected properties of water.

Tiny uniform plastic beads called "microbeads" are the preferred 2019 modern method of doing this: https://en.wikipedia.org/wiki/Microbead

Original observation in 1827 by Brown, with further experiments and interpretation in 1908 by Perrin.

Video 52. "Observing Brownian motion of micro beads" by "Forrest Charnock" published on Aug 4, 2016.

14. Microscopy

14.4. X ray crystallography

One of its main applications is to determine the 3D structure of proteins.

Sometimes you are not able to crystallize the proteins however, and the method cannot be used.

Crystallizing is not simple because:

  • you need a considerable amount of the protein

  • sometimes it only crystallizes if you add some extra small chemical that stabilizes it

Cryogenic Electron Microscopy can sometimes determine the structures of proteins that failed crystallization.

14.5. Cryogenic Electron Microscopy

This technique has managed to determine protein 3D structures for proteins that people were not able to crystallize for X ray crystallography.

It is said however that cryoEM is even fiddlier than X ray crystallography, so it is mostly attempted if crystallization attempts fail.

By looking at , you can easily understand the basics of cryoEM.

We just put a gazillion copies of our molecule of interest in a solution, and then image all of them in the frozen water.

Each one of them appears in the image in a random rotated view, so given enough of those point of view images, we can deduce the entire 3D structure of the molecule.

600px Cryoem groel

15. Biology

15.1. DNA

Since DNA is the centerpiece of life, Ciro Santilli 三西猴 is extremely excited about DNA-related technologies, see also: Molecular biology technologies.

15.1.1. DNA detection

DNA detection means determining if a specific DNA sequence is present in a sample.

This can be used to detect if a given species of microorganism is present in a sample, and is therefore a widely used diagnostics technique to see if someone is infected with a virus.

You could of course do full DNA Sequencing to see everything that is there, but since it is as a more generic procedure, sequencing is more expensive and slow.

The alternative is to use a DNA amplification technique.

15.1.2. DNA amplification

DNA amplification is one of the key DNA technologies:

  • it is one of the main ways in which DNA detection can be done.

  • it is the first step of Illumina sequencing, since you need multiple copies of several parts of the genome for the method to work

15.1.2.1. Polymerase chain reaction (PCR)

This is an extremely widely used technique as of 2020 and much earlier.

If allows you to amplify "any" sequence of choice (TODO length limitations) between a start and end sequences of interest which you synthesize.

If the sequence of interest is present, it gets amplified exponentially, and you end up with a bunch of DNA at the end.

You can then measure the DNA concentration based on simple light refraction methods to see if there is a lot of DNA or not in the post-processed sample.

One common problem that happens with PCR if you don’t design your primers right is: https://en.wikipedia.org/wiki/Primer_dimer

15.1.2.1.1. Real-time polymerase chain reaction

Also known as: Quantitative PCR (qPCR).

Like PCR, but the amplification machine measures the concentration of DNA at each step.

This describes one possible concentration detection method with fluorescent molecules that only become fluorescent when the DNA is double stranded (SYBR Green)

Video 53. "Polymerase Chain Reaction (PCR) - Quantitative PCR (qPCR)" published by "Applied Biological Materials - abm" in Apr 28, 2016.

This allows you to predict the exact initial concentration by extrapolating the exponential curve backwards.

TODO: vs non-real-time PCR. Why can’t you just divide by 2 for every heating step to reach back the original concentration? Likely the reaction reach saturation at an unknown step.

TODO: vs non-real-time PCR in medical diagnostics: do you really need to know concentration for diagnostics? Isn’t it enough to know if the virus is present or not?

15.1.2.2. Isothermal DNA amplification techniques

Isothermal means "at fixed temperature".

This is to contrast with the more well established Polymerase chain reaction (PCR), which requires heating and cooling the sample several times.

The obvious advantage of isothermal methods is that their machinery can be simpler and cheaper, and the process can happen faster, since you don’t have to do through heating and cooling cycles.

15.1.2.2.1. Loop-mediated isothermal amplification (LAMP)

Like PCR, but does not require thermal cycling. Thus the "isothermal" in the name: iso means same, so "same temperature".

Not needing the thermo cycling means that the equipment needed is much smaller and cheaper it seems.

Video 54. "Loop Mediated Isothermal Amplification (LAMP) Tutorial" by "New England Biolabs" explains the basic LAMP concept well.

15.1.3. DNA Sequencing

Big excitement picture at: Molecular biology technologies.

15.1.3.1. Illumina

The by far dominating DNA sequencing company of the late 2000’s and 2010’s due to having the smallest cost per base pair.

Illumina actually bought their 2010’s dominating technology from a Cambridge, United Kingdom company called Solexa.

To understand how Illumina’s technology works basically, watch this video: https://www.youtube.com/watch?v=fCd6B5HRaZ8

The key innovation of this method is the bridge amplification step, which produces a large amount of identical DNA strands: Illustration of the bridge amplification step of Illumina’s DNA sequencing. Source..

960px Cluster Generation
Figure 45. Illustration of the bridge amplification step of Illumina’s DNA sequencing. Source.

This step is genius because sequencing is basically a noise to signal problem, as you are trying to observe individual tiny nucleotides mixed with billions of other tiny nucleotides.

With bridge amplification, we group some of the nucleotides together, and multiply the signal millions of times for that part of the DNA.

15.1.3.1.1. Solexa

This is one of the prime examples of Europe's decline.

Instead of trying to dominate the sequencing market and gain trillions of dollars from it, they local British early stage investors were more than happy to get a 20x return on their small initial investments, and sold out to the Americans who will then make the real profit.

And now Solexa doesn’t even have its own Wikipedia page, while Illumina is set out to be the next Microsoft.

Here are some good articles about the company:

Cambridge visitors can still visit the Panton Arms pub, which was the location of the legendary "hey we should talk" founders meeting, chosen due to its proximity to the chemistry department of the xref2:university-of-cambridge.

15.1.4. De novo DNA synthesis

As of 2018, Ciro Santilli 三西猴 believed that this could be the next big thing in Biology technology.

"De novo" means "starting from scratch", that is: you type the desired sequence into a computer, and the synthesize it.

The "de novo" part is important, because it distinguishes this from the already well solved problem of duplicating DNA from an existing DNA template, which is what all our cells do daily, and which can already be done very efficiently in-vitro with Polymerase chain reaction (PCR).

Many startup companies are attempting to create more efficient de novo synthesis methods:

Notably, the dream of most of those companies is to have a machine that sits on a lab bench, which synthesises whatever you want.

TODO current de novo synthesis costs.

15.1.4.1. Species bootstrapping from DNA

Synthesizing the DNA itself is not the only problem however.

You then have to get that DNA into a working living form state so that normal cell processes can continue:

  • for viruses see: Synthetic virus

  • for bacteria, you have to inject it into a cell

  • for placental animals, you also have to somehow simulate a compatible placenta. It is likely easier for eggs.

Multicelular questions:

15.1.4.1.1. Synthetic virus

TODO: if we had cheap xref2-de-novo-dna-synthesis[], how hard would it be to bootstrap a virus culture from that? https://github.com/cirosantilli/cirosantilli.github.io/issues/60

Is it easy to transfect a cell with the synthesized DNA, and get it to generate full infectious viral particles?

If so, then De novo DNA synthesis would be very similar to 3D printed guns: https://en.wikipedia.org/wiki/3D_printed_firearms.

It might already be possible to order dissimulated sequences online:

Video 55. VICE News: "3D Printed Guns Are Easy To Make And Impossible To Stop (HBO)" published on Aug 10, 2018.

15.2. Brain

Ciro Santilli 三西猴 feels it is not for his generation though, and that is one of the philosophical things that saddens him the most in this world.

On the other hand, Ciro’s playing with the Linux kernel and other complex software which no single human can every fully understand cheer him up a bit. But still, the high level view, that we can have…​

16. Special relativity

Explains how it is possible that everyone observes the same speed of light, even if they are moving towards or opposite to the light!

This was observed in in the Michelson-Morley experiment which uses the movement of the Earth to try and detect differences in the speed of light.

This leads leads to the following conclusions:

  • to space contraction and time dilation

  • the speed of light is the maximum speed anything can reach

All of this goes of course completely against our daily Physics intuition.

The "special" in the name refers to the fact that it is a superset of General relativity, which also explains gravity in a single framework.

16.1. Lorentz transform

The equation that allows us to calculate stuff.

Take two observers with identical rules and stopwatch, and aligned axes, but one is on a car moving at towards the \(+x\) direction at speed \(v\).

TODO image.

When both observe an event, if we denote:

  • \((t, x, y, z)\) the observation of the standing observer

  • \((t', x', y', z')\) the observation of the ending observer on a car

It is of course arbitrary who is standing and who is moving, we will just use the term "standing" for the one without primes.

then the coordinates of the event observed by the observer on the car are:

\[\begin{align} t' & = \gamma \left( t - \frac{v x}{c^2} \right) \\ x' & = \gamma \left( x - v t \right) \\ y' & = y \\ z' & = z \end{align}\]

where:

\[\gamma = \frac{1}{\sqrt{1 - \frac{v^2}{c^2}}}\]

Note that if \(\frac{v}{c}\) tends towards zero, then this reduces to the usual Gallilean transforms which our intuition expects:

\[\begin{align} t' & = t x' & = x - v t \\ y' & = y \\ z' & = z \end{align}\]

This explains why we don’t observe special relativity in our daily lives: macroscopic objects move too slowly compared to light, and \(\frac{v}{c}\) is almost zero.

16.2. Lorentz transform consequence: everyone sees the same speed of light

OK, so let’s verify the main desired consequence of the Lorentz transform: that everyone observes the same speed of light.

Observers will measure the speed of light by calculating how long it takes the light going towards \(+x\) cross a rod of length \(L = x_2 - x_1\) laid in the x axis at position \(X1\).

TODO image.

Each observer will observe two events:

  • \((t_1, x_1, y_1, z_1)\): the light touches the left side of the rod

  • \((t_2, x_2, y_2, z_2)\): the light touches the right side of the rod

Supposing that the standing observer measures the speed of light as \(c\) and that light hits the left side of the rod at time \(T1\), then he observes the coordinates:

\[\begin{align} t_1 & = T1 \\ x_1 & = X1 \\ t_2 & = \frac{L}{c} \\ x_2 & = X1 + L \\ \end{align}\]

Now, if we transform for the moving observer:

\[\begin{align} t_1' & = \gamma \left( t_1 - \frac{v x_1}{c^2} \right) \\ x_1' & = \gamma \left( x_1 - v t_1 \right) \\ t_2' & = \gamma \left( t_2 - \frac{v x_2}{c^2} \right) \\ x_2' & = \gamma \left( x_2 - v t_2 \right) \\ \end{align}\]

and so the moving observer measures the speed of light as:

\[\begin{align} c' & = \frac{x_2' - x_1'}{t_2' - t_1'} \\ & = \frac{(x_2 - v t_2) - (x_1 - v t_1)}{(t_2 - \frac{v x_2}{c^2}) - (t_1 - \frac{v x_1}{c^2})} \\ & = \frac{(x_2 - x_1) - v (t_2 - t_1)}{(t_2 - t_1) - \frac{v}{c^2} (x_2 - x_1)} \\ & = \frac{\frac{x_2 - x_1}{t_2 - t_1} - v}{1 - \frac{v}{c^2} \frac{x_2 -x_1}{t_2 - t_1}} \\ & = \frac{c - v}{1 - \frac{v}{c^2} c} \\ & = \frac{c - v}{\frac{c - v}{c}} \\ & = c \\ \end{align}\]

16.3. Maxwell’s equations are consistent with the Lorentz transform

Note that two observers moving relative to each other see different electromagnetic fields.

For example, suppose that there is a stationary charge for the stationary observer. Because the charge is not moving, the magnetic field is zero for that observer according to Maxwell’s equations.

However, the moving observer sees that charge moving, and therefore a current, and therefore a magnetic field.

TODO mathematical detail. Is all we need to prove that if a given \(E(t, x, y, z)\) and \(B(t, x, y, z)\) are a solution to the maxwell equations in one frame, then \(E'(t', x', y', z')\) and \(B'(t', x', y', z')\) are also a solution in the other frame?

This appears awesome: http://www.damtp.cam.ac.uk/user/tong/em/el4.pdf (archive) "David Tong: Lectures on Electromagnetism - 5. Electromagnetism and Relativity"

This page also talks about it, but does not explain anything properly, although it does give closed source references: https://en.wikipedia.org/wiki/Classical_electromagnetism_and_special_relativity

16.4. Minkowski space

TODO why should I care when I can calculate new x and new time with Lorentz transform?

17. Deep tech

Ciro Santilli 三西猴 is a fan of this late 2010’s buzzword.

It basically came about because of the endless stream of useless software startups made since the 2000’s by one or two people with no investments with the continued increase in computers and Internet speeds until the great wall was reached.

Deep tech means not one of those. More specifically, it means technologies that require significant investment in expensive materials and laboratory equipment to progress, such as Molecular biology technologies and Quantum computing.

And it basically comes down to technologies that wrestle with the fundamental laws of Physics rather than software data wrangling.

Computers are of course limited by the laws of physics, but those are much hidden by several layers of indirection.

Full visibility, and full control, make computer tasks be tasks that eventually always work out more or less as expected.

The same does not hold true when real Physics is involved.

Physics is brutal.

To start with, you can’t even see your system very clearly, and often doing so requires altering its behaviour.

For example, in molecular biology, most great discoveries are made after some new technique is made to be able to observe smaller things.

But you often have to kill your cells to make those observations, which makes it very hard to understand how they work dynamically.

What we would really want would be to track every single protein as it goes about inside the cell. But that is likely an impossible dream.

The same for the brain. If we had observations of every neuron, how long would it take to understand it? Not long, people are really good at reverse engineering things when there is enough information available to do so, see also the "science is the reverse engineering of nature" quote from Ciro Santilli’s best random thoughts.

Then, even when you start to see the system, you might have a very hard time controlling it, because it is so fragile. This is basically the case of quantum computing in 2020.

It is for those reasons that deep tech is so exciting.

The next big things will come from deep tech. Failure is always a possibility, and you can’t know before you try.

But that’s also why its so fun to dare.

17.1. The next big thing

If you are going to live, you might as well chase it. And it will come from Deep tech.

18. Education

18.2. École Polytechnique

The "most prestigious French engineering school". Only 3 Nobels though as of 2019, the scientists are mostly at ENS. A gazillion CEOs however.

Ciro Santilli 三西猴 studied there for a few years starting in 2010.

Ciro considers him entering at Polytechnique a small miracle. First, on his second year of University in Brazil, he first had to fail to join the also good but not as good École centrales, which really annoyed him as he saw the other "good students" who wanted to go out get their wish. This also explains why there are so few students from his university going to Polytechnique in the late 2010’s: most already went to other locations! Then, on his third year, he tried Polytechnique and got in despite feeling that the others who got in knew much more mathematics and physics than him. Rather, Ciro believes that he got in chiefly due to his intense passion for the sciences which he showed during the interview.

The miracle would have been even greater if it had happened in 2020. At this time, out of 10 Brazilians, 9 are from ITA, the "hardest to get into" university in Brazil, and also military like Polytechnique. Make no mistake, those students are amazing and deserve it without any doubt. But there is more to the story. It could be argued that many of them only go because they don’t have any other choice of exchange program. Remember: Ciro had to fail applications on previous universities before getting into Polytech. Also, they don’t get any Brazilian degree because ITA has no accords with Polytechnique, and are therefore are extremely likely to never come back. Not that Ciro thinks this is particularly bad for Brazil though. They also happen to have closer ties across cohorts of different years, and have managed to maintain a Google Doc with scanned past examinations (as of 2020 however, some/all of those examinations have been uploaded publicly, big thanks to them). Also almost all of them are software engineers. This lack of diversity might not be ideal: if I were France, I would rather fish around all top Brazilian schools for "the best".

Besides the amazing funding/opportunities/alumni/staff loop which you can read about elsewhere, Polytechnique is amazing because you can choose what you will study every year to a very large extent.

This is in huge contrast to the crappy systems Ciro had seen e.g. in Brazil’s Polytechnic School of São Paulo, where students have to decide basically all their courses in huge packages, either at university entry (thus when they are completely clueless), or at a single point inside the university studies, changes being much harder.

Life quality was also amazing. Good free accommodation on campus and at the time a no-obligations scholarship for every foreign student great sport facilities. It seems that after Ciro left however more restrictions are added to the scholarships, what a shame! Sport was mandatory due to the military nature of the school. This did have the upside of getting students together more, although Ciro is against all forced intellectual of physical activities for students.

The situation is changing however, and now not everyone gets scholarships anymore it seems, and rather those who are not poor have to pay Polytechnique scholarship fees on top of their living costs. And thus French austerity measures are undermining the greatest long term investment a country can possibly make: that of importing the very best students from other countries into yours. This after their host country has already spent 20 years raising and selecting them. And you won’t even pay them 2 years of frugal existence to steal them. Even if those students move away from your country later on, the contacts they made in your country mean they are much more likely to bring businesses over.

This also makes it much more difficult for those students to do a PhD afterwards, where they would get paid very little, and are unable to pay their student debts. A PhD would be where they would possibly bring more of the next big thing to your country. Instead, they are much more likely to just go work for some big American company data wrangling and bring nothing to your country but their student debt dividends instead, which they will be pay to pay for in one year with those amazing salaries. What a big time fail, France.

During the time Ciro was at Polytechnique in early 2010’s, the school was really isolated in the Palaiseau plateau, there were no shops in 10 minute walking distance! You either had to climb 300 steps to go down to the RER and the nearest town, or take a bus. The fact that Times Higher Education ranked it as the second best university in the world in 2019 (archive) makes it good justice, given the small 500 student body.

Before that the school was in the center of Paris at the Latin Quarter, but students were in theory restricted to school grounds a lot of the time, although there are famous stories of the intentionally overlooked tree used to climb the fence to go to Parisian parties when they couldn’t stand it anymore.

This made for some good memories though. The isolation favored concentration, and gave the place a mystical feeling. And then when you went to eat amazing Chinese food in Paris it just felt even more special and magic since you were so limited during the week.

Ciro also agonized about passing courses to get useless grades though! Polytechnique is hard for Brazilians, specially if you select the more mathematics oriented courses, because the French students were math brainwashed for two years before joining.

One of the only bad experience Ciro had at Polytechnique (besides the inevitable fear of not graduating) was when he wanted to do a robotics internship in Germany, but the head of the Applied Mathematics department Polytechnique prevented him from going because Ciro didn’t have the necessary grades, even though the Germans had already agreed to it, because in the past students had abandoned their internships halfway and given foreigners a bad impression of Polytechnique. And thus Ciro had to choose a last moment internship that he hated, rather than becoming the greatest roboticist that ever lived, and did terribly at it. At least on the other hand Ciro learnt Python instead of working at the internship, and became the greatest programming tutorial writer that ever lived.

Ciro’s favorite spots/activities:

  • hide in top corner desk of the library to learn some science. Ciro loves libraries.

  • weekend days in his awesome room learning Chinese

    Desk of Ciro Santilli's room at École Polytechnique as he as in the middle of moving out in 2012
    Figure 46. Desk of Ciro Santilli’s room at École Polytechnique as he as in the middle of moving out in 2012. The room also has a bed and toilet, it was great, and it was free! Only the kitchen was shared, which is good for meeting people. All students live on campus, which is great for concentration.
  • sit next to the lake in a warm day to relax

    Lake view of the Grand Hall building of École Polytechnique in a cloudy day
    Figure 47. Lake view of the Grand Hall building of École Polytechnique in a cloudy day. Just imagine this in a perfect sunny weekend day with pure silence, it was just perfect. The lake also has a long area where rowing is practiced.
  • randomly go study at night in one of the small 20 person classrooms that were used in the day and left open at night

    640px Master STER Nassar Polytechnique
    Figure 48. A typical small classroom at Polytechnique, with tables in the usual course configuration. Imagine that at night, in pure silence, with some of your best friends studying on a nearby room. The usual course configuration was first a course by the main teacher in a large amphitheater, and then break down into small groups. Source.
Horny polytechnicienne mural by binet BD 96 at École Polytechnique with nipple censored as seen in 2010
Figure 49. Horny polytechnicienne in Grand Uniform mural by binet BD 96 at École Polytechnique with nipple censored by Ciro Santilli as seen in 2010. Every year, student organizations, called "binets" (TODO etymology), get to compete for student elections, and they are allowed to make murals in the school to advertise themselves. They kinky people from the 1996 Cartoon Binet (BD == Band Dessiné == Cartoon in French) decided to take it to the next level. Good old 1996, this would never be allowed in 2019 due to political correctness. As an engineering school, Polytechnique students were predominantly male up as of 2019.

The following promotional videos give an idea of how the school looks like, although they fundamentally miss the little corners that Ciro really loved in that the place and which made it magic:

18.3. University of São Paulo, Brazil (USP)

Ciro Santilli 三西猴 studied there for a few years starting in 2007.

18.3.1. São Remo, The favela next to USP

While in Brazil, Ciro Santilli 三西猴 used to walk through the outskirts of a small favela to get to university every day, the the Favela de São Remo.

To his left, a large police station.

To the right, dudes selling drugs on the entry of a small corridor street.

The drug sellers did keep the peace in their business area, and Ciro never got robbed, and would come back from university parties on foot late through the favela.

But Ciro’s friends did say that things got much worse after Ciro left, for example a flash kidnapping was reported in 2015.

Wikipedia says that this favela started in the 60s and 70s as settlements of the builders of the University, and that many of the people there still work for the University.

This is consistent with the terribly old buildings Ciro saw when he was at university. They even had the building skills to build their own homes.

The state just has to either legalize those people, or give them houses somewhere else nearby. A world class University is the most important thing a poor country can have, and its image cannot be jeopardized like that.

The existence of that favela, right next to one of the most important universities in Latin America, puts Brazil's surreal social inequality into perspective.

The porters of of Ciro’s all lived in the favela. Yes, in poor countries lives are worth nothing, and some poorer people work by watching the entrance of buildings of less poor people 24/7 to guard it from other more desperate poor people.

They were incredibly nice hard-working people, and Ciro spoke often with them. If only given the opportunity, those people could be amazing engineers or scientists obviously.

They had "nothing" but were still happy. This is true wisdom, and a good reminder that all our non-transhumanist technical goals are nothing.

18.4. The Royal Society

They do two things:

19. Religion

19.1. Buddhism

Ciro Santilli 三西猴's favorite religion. He does not believe fully in it, nor has he studied it besides through brief Wikipedia and Googling.

Ciro likes Buddhism because it feels like the least "metaphysical explanations to things you can’t see" of the religions he knows.

Rather, it feels more like "a plausible theory of the mind" and highly compatible with physics.

Ciro also believes that there is a positive correlation between being a software engineer and liking Buddhist-like things, see also: The correlation between software engineers and Buddhism.

19.1.1. Alan Watts

While listening to endless hours of Vaporwave while coding, Ciro Santilli 三西猴 spotted some amazing Buddhist-like voice samples, and eventually found that they were by Allan Watts.

Is there a correlation between being a programmer and liking the dude? Because this exists: https://wattsalan.github.io/

Other good talks:

20. Weekend

Days of the week where you don’t do what you set out to do. And yet, it is in those days that you save your sanity, and possibly the world. Wait, this sounds exactly like a week day?