Ciro Santilli

# Ciro Santilli (三西猴)

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

## 1. Ciro Santilli

Ciro Santilli is a male human born in Brazil in 1989 AD.

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.

• 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

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

#### 1.1.2. Ciro Santilli’s Stack Overflow contributions

Figure 1. 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.

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, but in which he specializes

When he gets an upvote on one of his more obscure answers, he often re-read 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 is VonC, who has 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!

Stack Overflow reputation is of course, in itself, meaningless. People who contribute to popular subjects like web development will always have infinitely more reputation that the low level subjects.

For example, his 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!

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.

Ciro’s deep understanding of Stack Overflow mechanisms and its shortcomings also helped shape his ideas for: Write free books to get famous website.

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

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

Figure 2. 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.

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 3, “Stack Overflow reputation vs Profile Views as of 2019 with Ciro Santilli marked as "A"”:

Figure 3. Stack Overflow reputation vs Profile Views as of 2019 with Ciro Santilli marked as "A"

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

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

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.

Then, after entering university, although things got way better, 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.

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 was he was very lucky and was already in some of the best educational institutions locally available already, and had comparatively awesome teachers. 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

Around 2012 however, he finally saw the light.

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.

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.

#### 1.2.2. Large cohesive game world for robotic-like artificial intelligence development

Figure 5. Screenshot of the "Basketrock" stage

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.

#### 1.2.3. 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.2.4. Molecular biology is the next big thing so do anything in that area

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

Such advances could one day lead to both biological super-AGI and immortality.

First, during the 2000’s, the cost of sequencing fell to about 1000 USD per genome in the end of the 2010’s: Figure 6, “Cost per genome vs Moore’s law from 2000 to 2019, image by the NIH”. The medical consequences of this revolution are still trickling down the application ladder today, inevitably, but somewhat slowly due to tight control of medical records.

Figure 6. Cost per genome vs Moore’s law from 2000 to 2019, image by the NIH

Then, in the 2010’s, CRISPR/Cas9 gene editing started opening up the way to actually modifying the genome that we could now see.

What’s next?

Other cool topic include: simulations of cell metabolism, protein and small molecule, microscopy (cristalography, cryo-EM), 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 Santilli is sad that by the time he dies, humanity won’t have understood the brain, maybe not even a measly E. Coli…​

The only other fields that might become as big are:

but those have had enourmous investments for several decades without any fruits. Molecular biology is a much lower hanging fruit.

#### 1.2.5. 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.

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!

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, but up to the mid 20th century? We should have all of those nailed down.

We should strive to achieve the cheapest most reproducible setup possible.

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.

### 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

If you need private contact, extract his email from on of his GitHub repos or use LinkedIn.

Disqus comments were removed from his website in 2019-05-04, a manual dump is available here, removal rationale at: Why Ciro Santilli removed Disqus comments from his website in 2019-05-04.

### 1.6. 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, but useless.

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?

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.

For this reason, Europe will only continue to go downhill with the years, and the UK will continue to try and endosymbiose into a state of the USA.

It is the European Tower of Babel.

The Sapir–Whorf hypothesis is bullshit outside of poetry, and the ending of Arrival (2016) makes one want to puke.

### 1.7. Ciro Santilli’s website

Ciro Santilli's website is hosted at https://cirosantilli.com.

#### 1.7.1. License of Ciro Santilli’s website

Ciro Santilli's website is licensed as: CC BY-SA 4.0 unless otherwise noted on a more specific page or header. The license can also be found at: LICENSE.

#### 1.7.2. 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:

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

• Ciro will want some unsupported extensions, notably mathematics, likely with Katex server side:

• when GitHub dies, Ciro’s website URL still lives and retains the PageRank!

#### 1.7.3. 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.4. 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.5. 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.

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. The CSS of Ciro Santilli’s website looks broken

That which does not exist, cannot be broken.

#### 1.7.7. Ciro Santilli’s website is not mobile friendly

True Art cannot be consumed in mobile format.

#### 1.7.8. Mathematics typesetting setup of Ciro Santilli’s website

Inline: $$\sqrt{2+2} = 2$$

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.9. Media rationale of Ciro Santilli’s website

##### 1.7.9.1. Keeping pages light

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 intelligent prose that becomes larger than reasonable to load on a single webpage.

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.

##### 1.7.9.2. Where to store images

Since images are large, they bring the following challenges:

• keeping images in Git repositories makes the repos 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:

• Wikimedia Commons if the format (no ZIPs) and License (CC BY SA, no fair use) are accepted there. This will be done for all own work images.

• use a separate GitHub repository such as: https://github.com/cirosantilli/media But then we are at the mercy of GitHub’s size policy: https://help.github.com/en/articles/what-is-my-disk-quota

• https://archive.org for random images from the web, which are therefore not own work, and may not have clear licenses and be eligible for Wikimedia Commons. 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. By the way, every external link to non-GitHub pages must be archived.

The following alternatives seem impossible because Ciro could not find if they expose direct links to the images:

Since we are here, it is also worth mentioning that every external link should be web archived and the archive is added next to the plain link. Except for GitHub links which should use explicit SHAs or tags. You should then fork any repo that is linked to under your account in case the repo is deleted. Or Stack Overflow which has a public data dump, so we will always be able to recover the data.

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

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

• English: Cambridge CPE grade B in 2004. Proficient, with minor defects in collocation / pronunciation.

• French: TCF grade C2 in 2011. Proficient, with a bit more defects than English.

• Brazilian Portuguese: Native speaker

#### 1.8.3. 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.

## 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. He is especially curious about Particle physics 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:

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.2. Double slit experiment

When done with individual electrons it amazingly confirms the wave particle duality of quantum mechanics.

TODO here are a few non well specified demonstrations:

#### 2.1.3. Blackbody radiation experiment

TODO original setups.

Led to: Planck’s law

#### 2.1.4. Compton scattering

https://www.youtube.com/watch?v=uICnnfYHYJ4 "Compton Scattering" by "Compton Scattering" experiment with a Cesium-137 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: https://www.youtube.com/watch?v=WR88_Vzfcx4 "L3.3 Compton Scattering" by "MIT OpenCourseWare", because photons are discrete and energy is proportional to frequency.

The formula is exactly that of two relativistic billiard balls colliding, which further suggests that photons are real.

Therefore this is evidence that photons exist and have momentum.

#### 2.1.5. 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.6. 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

Chronologic outline of the key theories:

#### 2.2.1. 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.2. 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 three variables (x, y and z positions in space) to a real number:

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

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

and two known input functions:

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

• $$\functionDomain{\J}{\RThree}{\RThree}$$: current vector in space

The equations can be written in short form as the following four equations:

Gauss' law
$\divergence{\E} = \frac{\rho}{\vacuumPermittivity}$
Gauss’s law for magnetism
$\divergence{\B} = 0$
Faraday’s law of induction
$\curl{\E} = -\dv{\B}{t}$
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.

##### 2.2.2.1. Maxwell’s equations in 2D

TODO it would be awesome if we could de-generalize the equations in 2D and do a JavaScript demo of it!

TODO.

TODO.

#### 2.2.5. Quantum mechanics

##### 2.2.5.1. Schrodinger equation

TODO show some sample numerical solutions in JavaScript and applications such as deriving hydrogen energy levels.

##### 2.2.5.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.5.3. Spin

TODO

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:

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

#### 2.2.6. 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.7. Applications of particle physics

There aren’t any, it’s useless:

#### 2.2.8. 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.9. Dirac Equation

##### 2.2.9.1. How does Dirac’s equation model spin?

This tutorial is awesome: https://www.youtube.com/watch?v=OCuaBmAzqek "Quantum Mechanics 12a - Dirac Equation I" by "viascience" published 2015-12-19.

#### 2.2.10. Quantum Electrodynamics

Theory that describes electrons and photons really well, and as Feynman puts it, accounts very precisely for all physical phenomena we have ever observed, except for gravity and nuclear physics (including the laughter of the crowd ;-)).

##### 2.2.10.1. What does it mean that photons are force carriers for electromagnetism?

TODO find / create decent answer.

##### 2.2.10.2. Quantum Electrodynamics bibliography
###### 2.2.10.2.1. Richard Feynman Quantum Electrodynamics Lecture at University of Auckland in 1979

Can’t find official video, so going with the upload by https://www.youtube.com/watch?v=eLQ2atfqk2c&list=PL8590A6E18255B3F4 by "ReasonPublic" for now…​

#### 2.2.11. Quantum Chromodynamics

https://www.youtube.com/watch?v=FoR3hq5b5yE "Quarks, Gluon flux tubes, Strong Nuclear Force, & Quantum Chromodynamics" by "Physics Videos by Eugene Khutoryansky". Some decent visualizations of the field lines.

#### 2.2.12. 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.12.1. 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

There are two types:

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.12.1.1. Photomultiplier tube

Feynman likes them, here he describes the tube one: https://youtu.be/eLQ2atfqk2c?t=2198 "QED: Photons — Corpuscles of Light — Richard Feynman (1/4)" (University of Auckland, 1979) by "ReasonPublic".

It uses the Photoelectric effect multiple times to produce a chain reaction.

###### 2.2.12.1.2. Silicon photomultiplier

Here is a vendor showcasing their device. They claim in that video that a single photon is produced and detected: https://www.youtube.com/watch?v=dyXq1u87qew "How to use an SiPM - Experiment Video" by "SensLTech".

##### 2.2.12.2. 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.

Experiments that suggest this:

### 2.3. 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.4. 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:

## 3. Mathematics

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

### 3.1. Formalization of mathematics

The one true definition of Mathematics.

### 3.2. 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.2.1. 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.3. Numerical analysis

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

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.

#### 3.3.1. Finite element method

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

## 4. Art

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

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

### 4.1. The best video game content of all time

• speed running evolution videos, as are just probabilistic TAS with human achievable reflex constraints

The most beautiful TAS content ever made are:

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

### 4.4. The best movies of all time

#### 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.3. The Godfather (1972) and The Godfather Part II (1974)

Part 3 (1990) https://en.wikipedia.org/wiki/The_Godfather_Part_III is an abomination and disgrace to the bilogy.

#### 4.4.4. Primer (2004)

Things that can be understood are boring.

## 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

• 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. 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 anyways, 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:

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

### 5.3. Stack Overflow Vote Fraud Script

#### 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 ♦

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. 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.2. 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.2.1. Give examples

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

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

### 6.3. 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.4. 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 gives fundamental geometric insight

• you are filming a human transmitting their passion about the subject

• it shows natural phenomena or location that is of interest

If you have to use videos, make them as short as possible.

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

### 6.5. 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.

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, xerf: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.7. 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.8. 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.8.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.9. Let students learn by teaching

Tell students to:

• make suggestions to the course material themselves, since you have 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.

### 6.10. 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.11. 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.12. 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.13. 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

This approach is called backward design.

### 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. Countries

### 7.1. 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.

### 7.2. 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.

### 7.3. Brazil

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

But like most poor countries, it does not have enough money or scientific culture to make technological or scientific advances.

In order to get richer, Brazil should teach it’s people English very well and invest on projects that make education cheaper such as Write free books to get famous website.

### 7.4. Europe

For the most part, a great pseudo-country to live in with lots of cultural diversity, Art and safety, but in economic decline after all its Jewish geniuses fled in WWII and due to Having more than one natural language is bad for the world.

## 8. Companies

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 secedes 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 their startup garage owner became an important figure inside Google, and how Sergei married her sister. These were the best garage tenants ever!

### 8.2. Apple Inc.

An American company that:

• 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

#### 8.2.1. Steve Jobs

Evil and interesting co-founder of Apple Inc.

##### 8.2.1.1. Steve Jobs backward design reply

He’s right. Goal first, then how to reach it.

https://www.youtube.com/watch?v=FF-tKLISfPE "Steve Jobs Insult Response" by "Mike Cane" published in 2011-06-08

### 8.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.

## 9. Good and evil

### 9.1. Evil

Things that are not nice such as:

#### 9.1.1. 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.

Backed by high schools trying to make ads showing how they will turn your kids into geniuses.

## 10. 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.

### 10.1. 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.

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 https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.[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.

#### 10.1.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.

#### 10.1.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:

##### 10.1.2.1. HTML canvas

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

Here is an animation demo with some useful controls:

Born: 1965

Died: 2010+-ish

### 10.3. Quantum computing

Promising field, lots of software before hardware startups as of 2019 due recent not yet usable hardware advances: https://quantumcomputingreport.com/players/privatestartup

### 10.4. Operating systems

Magic software that allows you to write a single program that runs on a wide range of hardware.

#### 10.4.1. Linux

It ain’t perfect, but it’s decent enough.

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!

#### 10.4.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.

#### 10.4.3. Android

However, many, many, many terrible horrors come with it:

#### 10.4.4. Microsoft Windows

A monopolistic operating system that only exists today because of 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.

## 11. 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.

## 12. War

### 12.1. Nuclear weapon

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 midly obsessed by nuclear reactions, because they are so quirky. How can a little ball destroy a city? How can putting too much of it togehter 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: