Skip to content
dev
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Feb 16, 2021
Nov 29, 2020
bak
Dec 10, 2020
bak
Nov 6, 2020
Aug 16, 2021
bak
Sep 16, 2021
Sep 12, 2021
Sep 12, 2021
fix
Feb 16, 2021
Jul 7, 2020
gpg
Aug 17, 2020
Sep 12, 2021
= Ciro Santilli's Homepage
{splitDefault}
{title2=三西猴的首页}

\x[free-gifted-education]{c} and \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][freedom of speech] activist. \x[effortless-effort][Passion] for the \x[natural-science]{p}, \x[education] and \x[computer]{p}. \x[ciro-santilli-s-cycling][Recreational cyclist]. \x[tax-the-rich]{c}. Opinions are his own.

https://github.com/cirosantilli[GitHub] |
https://stackoverflow.com/users/895245[Stack Overflow] |
https://www.linkedin.com/in/cirosantilli[LinkedIn] |
https://www.youtube.com/c/CiroSantilli[YouTube] |
https://twitter.com/cirosantilli[Twitter] |
https://www.zhihu.com/people/cirosantilli/activities[Zhihu 知乎] |
https://www.weibo.com/p/1005055601627311[Weibo 微博] |
\x[accounts][Other accounts]

Working on: \x[write-free-books-to-get-famous-website]. \x[sponsor][Sponsor Ciro] at https://github.com/sponsors/cirosantilli[] starting from 1\x[dollar][\$]/month so he can work full time to bring hardcore \x[university]-level \x[stem] education to all ages.

\x[ciro-santilli-s-website][This website] is written in \x[cirodown], its \x[source-code] is located at: https://github.com/cirosantilli/cirosantilli.github.io[], and it is \x[licensed] under \x[cc-by-sa] 4.0 unless otherwise noted. To contact Ciro, see: \x[contact]{full}.

\image[ID_photo_of_Ciro_Santilli_taken_in_2013.jpg]{height=300}
\image[Ciro_Santilli's_learn_teach_apply_logo.png]{height=300}

= Ciro Santilli
{c}
{parent=ciro-santilli-s-homepage}
{title2=三西猴}

Ciro Santilli is a \x[male] \x[human] \x[software-engineer] and \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][activist] \x[ciro-santilli-s-biography][born] in \x[brazil], \x[earth] in 1989 AD.

Quick facts:
* Nationalities: \x[italian] and \x[brazilian]
* Grew up in: \x[brazil]
* Relationship status 2017-: \x[ciro-santilli-s-wife][married]
* \x[chinese-language][Chinese] name: 三西猴, means "three western monkeys". Phonetic approximation to SANtilli CIRO. Semi-unintentionally reminds \x[chinese] people of \x[image-19th-century-illustration-of-the-journey-to-the-west-protagonist-sun-wukong][Sun Wukong (孙悟空)]. Given by \x[ciro-santilli-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 \x[thinkpad][Lenovo ThinkPad]
* \x[distro]: latest \x[ubuntu] release
* \x[vim] or Emacs: Vim. But for The Love, will someone please make an open source \x[c-plus-plus] \x[integrated-development-environment] that actually just works?
* Tabs or spaces: spaces
* \x[mailing-list]{c} or \x[git](\x[github][Hub]|\x[gitlab][Lab]): Git(Hub|Lab), with passion, see \x[mailing-list]{full}
* System or unit tests: system
* \x[programming-language]{p}: \x[python] and \x[c-plus-plus]. He'll learn Rust and \x[haskell] once he's rich.
* Musical instruments to listen: \x[the-best-chinese-traditional-instrumental-music-of-all-time][Chinese Guqin] and \x[the-best-modern-instrumental-western-music-of-all-time][electric Jazz-fusion guitar]
* Metric or imperial: metric, for The Love. \x[international-system-of-units][Science]? \x[having-more-than-one-natural-language-is-bad-for-the-world][Standardization]?
* QWERTY or Dvorak: QWERTY, alas

\Image[https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Xiyou.PNG/337px-Xiyou.PNG]{height=400}
{title=19th century illustration of the \x[journey-to-the-west] protagonist \x[sun-wukong].}
{description=\x[sun-wukong] (孙悟空) is a playful and obscenely powerful monkey Journey to the West. He protects a \x[buddhist] monk, and likes \x[ciro-santilli-s-psychology-and-physiology][eating fruit, just like Ciro]. Oh, and https://en.wikipedia.org/wiki/Goku[Goku] from \x[children-cartoons-ciro-santilli-liked-to-watch][Dragon Ball] is based on him. His Japanese name \i[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 \x[physics-and-the-illusion-of-life][fucking awesome].}

\Include[sponsor]

= The most important projects done by Ciro Santilli
{parent=ciro-santilli}

\x[ciro-santilli] has sometimes wasted time with low impact projects such as those listed at \x[ciro-santilli-s-minor-projects] instead of doing higher impact projects such as those mentioned at: \x[the-most-important-projects-ciro-santilli-wants-to-do]{full}.

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

= Linux Kernel Module Cheat
{c}
{splitSuffix}
{parent=the-most-important-projects-done-by-ciro-santilli}
{title2=LKMC}

https://github.com/cirosantilli/linux-kernel-module-cheat

This is the most important technical tutorial project that \x[ciro-santilli] has done in his life so far as of 2019.

The scope is insane and unprecedented, and goes beyond \x[linux-kernel]-land alone, which is where it started.

It ended up \x[eating] every system programming content Ciro had previously written! Including:
* \x[c-programming-language], \x[c-plus-plus], \x[posix]
* \x[x86] and arm userland assembly
* arm baremetal assembly. x86 baremetal is at: https://github.com/cirosantilli/x86-bare-metal-examples and would in theory be migrated, but he's lazy
* \x[qemu] and gem5 emulation
so that that 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:
* https://github.com/cirosantilli/algorithm-cheat
* https://en.wikipedia.org/wiki/Computer_architecture[computer architecture] tutorials with gem5

Due to this project, some have https://github.com/cirosantilli/linux-kernel-module-cheat/issues/105#issuecomment-553220982[considered Ciro to be] (https://web.archive.org/web/20191113151131/https://github.com/cirosantilli/linux-kernel-module-cheat/issues/105#issuecomment-553220982[archive]):
\Q[some kind of Linux kernel god.]
which made Ciro smile, although "Linux kernel documenter \x[god]" would have been more precise.

``
[    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)
``
{title=Terminal dump of a LKMC session with two \x[tmux] panes with \x[qemu] on left and \x[gdb] on right showing a backtrace of the Linux kernel code currently being under QEMU.}

= Ciro Santilli's Stack Overflow contributions
{parent=the-most-important-projects-done-by-ciro-santilli}
{c}

https://stackoverflow.com/users/895245

\Image[https://stackoverflow.com/users/flair/895245.png?theme=dark]
{title=Ciro Santilli's amazing \x[stack-overflow] profile.}
{height=58}

\x[ciro-santilli]'s \x[stack-overflow] contributions have, unsurprisingly, centered around the subjects he has worked with: \x[systems-programming] and \x[web-development], and necessary tooling to get those done, such as \x[git], \x[python], \x[bash] and \x[ubuntu].

His best answers are listed at: \x[articles]{full}.

Stack Overflow has been the initial centerpiece of \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china].

In Stack Overflow Ciro likes to:
* answer important questions found through \x[google] which he needs to solve an actual problem he has right now, and for which none of the existing answers satisfied him, and close duplicates.
* monitor less known tags which very few people know a lot about and where the knowledge sharing desperately lacking, but in which Ciro specializes and therefore has some uncommon knowledge to share

In practice it also happens that Ciro:
* Googles for his own answers to remember some detail he wrote down but with slightly different terms that were closer to mind at the time, and find other similar questions for which he has the perfect answer.
* learns something new by chance, e.g. https://stackoverflow.com/questions/39933567/deduce-stdarray-size/61371303#61371303[some new flashy feature of a new version of the C++ standard], thiks \x[the-machiavellian-stack-overflow-contributor]["this is awesome, there must be a Stack Overflow question for it"], and then there is a question and he answers it

When he gets an upvote on one of his more obscure answers, Ciro often re-reads it, and often finds improvements to be made and makes them.

He doesn't like to refresh the homepage looking for easy reputation on widely known subjects. See also: \x[online-forums-that-lock-threads-after-some-time-are-evil].

For this reason, https://stackoverflow.com/help/badges/17/necromancer[Necromancer] is Ciro's favorite badge (get 5 upvotes on a question older than 60 days), and as of July 2019, https://data.stackexchange.com/stackoverflow/query/300735/users-with-most-necromancer-badges-at-a-given-date?Date=2019-07-15[he became the #1 user with the most of this badge]. Announcement https://twitter.com/cirosantilli/status/1146157392343785474[on Twitter].

The number two at the time was https://stackoverflow.com/users/6309[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 \x[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 (http://web.archive.org/web/20191013085259/https://stackexchange.com/leagues/1/year/stackoverflow/2018-01-01?sort=reputationchange&page=4[archive]). Note that daily reputation is mostly capped to \x[stack-overflow-maximum-200-daily-reputation-limit][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. https://stackexchange.com/leagues/1/year/stackoverflow/2018-01-01?sort=reputationchange[Gordon Linoff reached 135k in 2018] (https://web.archive.org/web/20191013090451/https://stackexchange.com/leagues/1/year/stackoverflow/2018-01-01?sort=reputationchange[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 https://meta.stackexchange.com/questions/337643/mismatch-between-the-top-users-in-the-stack-exchange-league-and-period-wise-repo[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 https://stackoverflow.com/questions/37879954/how-to-write-an-integer-to-stdout-as-hexadecimal-in-vhdl[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 \x[the-machiavellian-stack-overflow-contributor][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 \x[overleaf], later merged into https://www.overleaf.com/[Overleaf], for \x[write-free-books-to-get-famous-website][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 \x[art], see answers such as those under "OpenGL" and "Media" under \x[articles] or even simpler answers such as:
* https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574[How to create an animated GIF from MP4 video via command line?]

  \Image[STS-132_Liftoff_Space_Shuttle_Atlantis_512x.gif]
  {title=\x[ciro-santilli][Ciro] knows https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574[how to convert videos to GIFs].}
* https://unix.stackexchange.com/questions/82112/stereo-tone-generator-for-linux/536860#536860[Stereo "tone-generator" for linux?]

Ciro's deep understanding of Stack Overflow mechanisms and its shortcomings also helped shape his ideas for: \x[write-free-books-to-get-famous-website]. So it is a bit funny to think that after all time Ciro spent on the \x[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 \x[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 \x[ecole-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: https://stackoverflow.com/questions/2701902/standalone-diagrams-with-tikz/9177804#9177804[Standalone diagrams with TikZ?], which reflects the fact that this happened while Ciro was reaching his \x[write-free-books-to-get-famous-website/motivation][open source Enlightenment].

Ciro's first upvote was for his 2012 question: https://stackoverflow.com/questions/10002291/how-to-run-a-python-script-portably-without-specifying-its-full-path[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 https://meta.stackoverflow.com/questions/291791/what-do-i-get-with-100k-reputation[100k cup] (https://web.archive.org/web/20160528230715/https://meta.stackoverflow.com/questions/291791/what-do-i-get-with-100k-reputation[archive]) arrived in 2018, Ciro made a https://www.facebook.com/photo.php?fbid=1879889632030375[show-off Facebook post] (https://web.archive.org/web/20191020194239/https://www.facebook.com/photo.php?fbid=1879889632030375[archive]). At some point though, your brain stops caring, and automatically filters out any upvotes you get except on the answers that you are really proud of and which don't yet have lots of upvotes. The last remaining useless gamed achievement that Ciro looked forward to was https://stackoverflow.com/help/badges/146/legendary[legendary] (https://web.archive.org/web/20191014113759/https://stackoverflow.com/help/badges/146/legendary[archive]), and which he https://stackoverflow.com/help/badges/146/legendary?userid=895245[achieved on 2021-02-16].

\Image[Ciro_Santilli_with_his_Stack_Overflow_100k_reputation_cup.jpg]
{title=\x[ciro-santilli] with his \x[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 \x[write-free-books-to-get-famous-website/motivation][free education]
* \x[ciro-santilli-s-selfish-desires][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 \x[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 \x[ciro-santilli-s-e-soulmates][alter ego] is the user https://stackoverflow.com/users/55075/kenorb[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 https://stackoverflow.com/users/541136/aaron-hall[Aaron Hall], who is also very high on the necromancer list, answers in Python which is a topic Ciro cares about, and https://web.archive.org/web/20200120043703/https://stackoverflow.com/users/541136/aaron-hall[states on his profile]:
\Q[Follow me on Twitter and tell me what canonical questions you would like me to respond to!]
so another necromancer.

Way to go.

Ciro also https://stackoverflow.com/users/895245/?tab=questions[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.

= Ciro Santilli's campaign for freedom of speech in China
{c}
{parent=the-most-important-projects-done-by-ciro-santilli}

= github.com/cirosantilli/china-dictatorship
{c}
{id=cirosantilli-china-dictatorship}
{synonym}
{title2}

https://github.com/cirosantilli/china-dictatorship

Since 2015 \x[ciro-santilli] has carried out a campaign to promote \x[freedom-of-speech] in \x[china].

The campaign has centered around https://github.com/cirosantilli/china-dictatorship/tree/714d8104549ea19714787f148ff93c7403fd120c#why-keyword-attack[publishing censored keywords] on his \x[stack-overflow] username, thus using his \x[ciro-santilli-s-stack-overflow-contributions][considerable Stack Overflow presence] to sabotage the website in China. Here is an early http://web.archive.org/web/20150602004401/https://stackoverflow.com/users/895245/ciro-santilli-%e5%85%ad%e5%9b%9b%e4%ba%8b%e4%bb%b6-%e6%b3%95%e8%bd%ae%e5%8a%9f-%e7%ba%b3%e7%b1%b3%e6%af%94%e4%ba%9a%e8%83%a1%e6%b5%b7%e5%b3%b0[web archive].

\Image[Chrysanthemum_Xi_Jinping_with_black_red_liusi_added_by_Ciro_Santilli.jpg]
{title=https://www.independent.co.uk/news/world/asia/chinese-artist-who-posted-funny-image-of-president-xi-jinping-facing-five-years-in-prison-as-10282630.html[Chrysanthemum Xi Jinping] with https://en.wikipedia.org/wiki/1989_Tiananmen_Square_protests[六四] spice added by \x[ciro-santilli].}
{description=This was one of the profile pictures that \x[ciro-santilli] used as part of his campaign.}
{height=230}
{id=image-xi-jinping-chrysanthemum-230-liusi}

Like most people in the West, Ciro has always been for political freedom of speech, and therefore against the \x[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, https://github.com/cirosantilli/china-dictatorship/https://github.com/cirosantilli/china-dictatorship/tree/f2ba65accdfb51c8028aa9d4e37e9fe26400f0dc#jail-post[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: https://cirosantilli.com/china-dictatorship/does-ciro-santilli-hate-china

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 https://github.com/cirosantilli/china-dictatorship/tree/236407528ab6424504e442e070d632496c110087#backlinks-to-this-repository[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 \x[image-scatter-plot-of-stack-overflow-user-reputation-vs-profile-views-in-march-2019-with-ciro-santilli-marked-as-a]{full}:
\Image[Scatter_plot_of_Stack_Overflow_user_reputation_vs_profile_views_in_March_2019_with_Ciro_Santilli_marked_as_A.png]
{title=Scatter plot of \x[stack-overflow] user reputation vs profile views in March 2019 with \x[ciro-santilli] marked as A.}
{description=The A is towards the top right corner.}
{height=500}

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.

Further analysis has been done at: https://stats.stackexchange.com/questions/376361/how-to-find-the-sample-points-that-have-statistically-meaningful-large-outlier-r

\Image[Ciro_Santilli_with_a_stone_carved_Budai_in_the_Feilai_Feng_caves_near_the_Lingyin_Temple_in_Hangzhou_in_2012.jpg]
{title=\x[ciro-santilli] with a stone carved https://en.wikipedia.org/wiki/Budai[Budai] in the https://en.wikipedia.org/wiki/File:Maitreya_and_disciples_carving_in_Feilai_Feng_Caves.jpg[Feilai Feng caves] near the https://en.wikipedia.org/wiki/Lingyin_Temple[Lingyin Temple] in Hangzhou taken during his legendary 2012 touristic trip to China.}
{description=Will he ever be able to go to China again to re-experience such marvelous locations?}

= Ciro Santilli's minor projects
{parent=the-most-important-projects-done-by-ciro-santilli}
{c}

Major projects can be seen at: \x[the-most-important-projects-done-by-ciro-santilli]{full}.

These are some smaller projects that \x[ciro-santilli] carried out. They are all either for fun, or misguided use of his time done by an younger self:
* Naughty stuff. Ciro likes \x[ciro-santilli-s-self-perceived-creative-personality][being naughty]:
  * \x[stack-overflow-vote-fraud-script]
  * \x[github] makes Ciro feel especially naughty:
    * \x[all-github-commit-emails]: he extracted (almost) all Git commit emails from \x[github] with \x[google] BigQuery
    * \x[facebook-profile-face-dump]
    * https://github.com/cirosantilli/test-many-commits-1m/[A repository with 1 million commits]: likely the https://www.quora.com/Which-GitHub-repo-has-the-most-commits/answer/Ciro-SantilliI[live repo with the most commits as of 1017]
    * https://stackoverflow.com/questions/20099235/who-is-the-user-with-the-longest-streak-on-github/27742165#27742165[An 100 year GitHub streak], likely longest ever when that existed. It was consuming too much server resources however, which led to GitHub admins manually https://web.archive.org/web/20151021135921/https://github.com/cirosantilli/[turning off his contribution history].
    * https://github.com/cirosantilli/test-octopus-100k[A repository with a 100k commit Git octopus merge]. Now that is a true https://softwareengineering.stackexchange.com/questions/314215/can-a-git-commit-have-more-than-2-parents/377903#377903[Cthulhu merge].
    * https://github.com/isaacs/github/issues/1718[500 on adoc infinite header xref recursion]: that was fun while it lasted
* Because Ciro \x[write-free-books-to-get-famous-website][cares about education], around 2014 he looked into markup languages and version control for books, before he noticed that this approach was useless and that ranking algorithms are all that matter:
  * \x[gitlab]: very important to Ciro because he wanted to base https://github.com/booktree/booktree[Booktree] on it.

    He was https://github.com/gitlabhq/gitlabhq/graphs/contributors?from=2013-01-01&to=2015-01-01&type=a[the number 2 contributor from 2013 to 2015].

    He implemented some large features and several smaller improvements.

    For this reason, Ciro was made a moderator of https://www.reddit.com/r/gitlab[/r/gitlab] in https://web.archive.org/web/20160524164714/https://www.reddit.com/r/gitlab/about/moderators[2016-05].

    GitLab sent Ciro a free swag bottle later after they got funding on to thank him for his contributions: \x[image-ciro-santilli-in-a-dune-lake-in-jericoacoara-brazil-with-his-gitlab-bottle]{full}. He had to pay for the beach trip though.

    \Image[Ciro_Santilli_in_a_dune_lake_in_Jericoacoara,_Brazil_with_his_GitLab_bottle.jpg]
    {height=300}
  * \a[markdown-style-guide][Markdown Style Guide]{check=0}
  * \x[karlcow-markdown-testsuite] improvements: Ciro has implemented the test runner a few months before CommonMark left stealth mode and killed it instantaneously.

    At least MacFarlane was able to https://github.com/jgm/CommonMark/blob/2528c87c0cf08e02eb3e201c149cb3acf521e0c8/test/normalize.py#L8[reuse] part of the \x[html] normalizer https://github.com/karlcow/markdown-testsuite/blame/639cd234d71ca81956b61ff7876f37c3cdc5c043/run-tests.py[he wrote], and he extracted the multi-engine comparison to: https://github.com/cirosantilli/commonmark-implementation-compare[CommonMark Implementation Compare].

    Playing with this project has led Ciro to find and report many Markdown bugs/bad behavior on other software, e.g. https://github.com/isaacs/github/issues/297[GitHub] and https://github.com/fletcher/MultiMarkdown-4/issues/68[MultiMarkdown-4].
  * https://github.com/isaacs/github[isaacs/github public unofficial GitHub issue tracker]: he has commented there so often that he https://github.com/isaacs/github/issues/430#issuecomment-123851480[was made a collaborator]
* \x[vim][Vim]: sometimes Ciro want crazy and wasted his time with Vimscript:
  * https://github.com/plasticboy/vim-markdown[Vim Markdown]: the owner `plasticboy` was really nice and made Ciro a collaborator for his contributions, notably a live ToC outline and the header mappings
  * https://github.com/cirosantilli/vundle-plugin-tester[Vundle Plugin Tester], which he used to start the testing system of Vim Markdown
* https://github.com/cirosantilli/breakthrough-message[Breakthrough Message]: \x[alien]{p}!!! Creative/media project, powered by some \x[python] scripts.
* making \x[google-maps] reviews of places he's visited to help other people. Ciro's photos reached 1 million views in 2019: https://www.google.com/maps/contrib/106598607405640635523/photos (http://web.archive.org/web/20190905081800/https://www.google.com/maps/contrib/106598607405640635523/photos[archive])

= The most important projects Ciro Santilli wants to do
{parent=ciro-santilli}

These are projects which Ciro seriously considering doing, and which he believe could have a considerable impact in the world, given a few months of work.

They are sorted in order of "most likely to get done first".

Top one: \x[write-free-books-to-get-famous-website]{child}

= Write free books to get famous website is number one
{c}
{parent=the-most-important-projects-ciro-santilli-wants-to-do}

Actual section at: \x[write-free-books-to-get-famous-website]{full}

= Large cohesive game world for robotic-like artificial intelligence development
{parent=the-most-important-projects-ciro-santilli-wants-to-do}

Prototype: https://github.com/cirosantilli/Urho3D-cheat

Prior art research: https://github.com/cirosantilli/awesome-reinforcement-learning-games

\Video[https://youtube.com/watch?v=j_fl4xoGTKU]
{title="Top Down 2D Continuous Game with \x[urho3d] \x[c-plus-plus] \x[simple-directmedia-layer][SDL] and Box2D for Reinforcement Learning" by \x[ciro-santilli] (2018)}

\Image[Basketball_stage_of_Ciro_Santilli's_2D_continuous_AI_game.png]
{title=Screenshot of the basketball stage of Ciro's 2D continuous game.}
{description=Big kudos to \x[game-icons-net] for the sprites.}

Less good \x[discrete] prototype: https://github.com/cirosantilli/rl-game-2d-grid \x[youtube] demo: \x[video-top-down-2d-continuous-game-with-urho3d-c-sdl-and-box2d-for-reinforcement-learning-by-ciro-santilli-2018].

\Video[https://youtube.com/watch?v=TQ5k2u25eI8]
{title="Top Down 2D \x[discrete]{c} Tile Based Game with \x[c-plus-plus] \x[simple-directmedia-layer][SDL] and Boost R-Tree for Reinforcement Learning" by \x[ciro-santilli] (2017)}

The goal of this project is to reach \x[artificial-general-intelligence].

A few initiatives have created reasonable sets of robotics-like games for the purposes of AI development, most notably: \x[openai] and https://en.wikipedia.org/wiki/DeepMind[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 \x[game-engine], and that is a reasonable project, but a raw \x[simple-directmedia-layer] + Box2D + \x[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 developers https://github.com/cirosantilli/china-dictatorship/blob/23c5bd936361f78a8dd6bd1f412286808714d2da/communities-that-censor-politics.md[disagree with the China censored keyword attack].

Simulations such as these can be viewed as a form of https://en.wikipedia.org/wiki/Synthetic_data#Synthetic_data_in_machine_learning[synthetic data generation procedure], where the goal is to use computer worlds to reduce the costs of experiments and to improve reproducibility.

Related projects:
* https://github.com/deepmind/lab2d[]: 2D gridworld games, C++ with Lua bindings
* https://www.youtube.com/watch?v=MHFrhIAj0ME?t=4183 \x[can-t-get-you-out-of-my-head-by-adam-curtis-2021] Part 1: Bloodshed on Wolf Mountain :)
* https://www.youtube.com/watch?v=EUjc1WuyPT8 AI Alignment: Why It's Hard, and Where to Start by \x[eliezer-yudkowsky] (2016). Alignment means aligning the \x[utility-function] of x 

\Video[https://youtube.com/watch?v=MvFABFWPBrw]
{title="DeepMind Has A Superhuman Level Quake 3 AI Team" ublished by Two Minute Papers (2018)}
{description=Commentary of https://en.wikipedia.org/wiki/DeepMind[Google DeepMind]'s 2019 https://deepmind.com/blog/article/capture-the-flag-science[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 \x[bullshit] on non-reproducible research. Does https://github.com/deepmind/lab[this repo] contain everything?}

\Video[https://youtube.com/watch?v=Lu56xVlZ40M]
{title="OpenAI Plays Hide and Seek... and Breaks The Game!" by Two Minute Papers (2019)}
{description=Commentary of \x[openai][OpenAi]'s 2019 https://openai.com/blog/emergent-tool-use/[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 https://github.com/openai/multi-agent-emergence-environments[this repo] contain everything?}

\Video[https://youtube.com/watch?v=nsVD8VPh96w]
{title="Simulating Foraging Decisions" by https://www.youtube.com/watch?v=YNMkADpvO4w[Primer YouTube channel] (2020)}
{description=This channel contains several 2D continuous simulations and explains AI techniques used. Notably, they have several interesting multiagent game ideas. TODO once again, are https://github.com/Helpsypoo/primer[all sources published]? Claims Unity based, so another downside, relying on non-\x[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.}

= Videos of all key physics experiments
{parent=the-most-important-projects-ciro-santilli-wants-to-do}

It is unbelievable that you can't find easily on YouTube recreations of many of the key \x[physics]/\x[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.

\x[school]{c} 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 \x[ciro-santilli] does in his \x[ciro-santilli-s-stack-overflow-contributions][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 https://en.wikipedia.org/wiki/Large_Hadron_Collider[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 \x[art][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: \x[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 \x[oxford-nanopore-river-bacteria]{c} for an example that goes toward that level of perfection.

The \x[applied-science-youtube-channel] does well in that direction.

This project is one step that could be taken towards improving the \x[replication-crisis] of \x[science]. It's a bit what \x[hackster-io] wants to do really. But that website is useless, just write \x[cirodown] and create videos instead :-)

TODO experiments to find videos for:
* \x[quantum-hall-effect]{child}

= Website front-end for a mathematical formal proof system
{parent=the-most-important-projects-ciro-santilli-wants-to-do}

When \x[ciro-santilli] first learnt the old \x[zermelo-fraenkel-set-theory] and the idea of \x[formal-proof]{p}, his teenager \x[mind-blown][mind was completely blown].

Finally, there it was: a proper and precise definition of \x[mathematics], including https://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers[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:
* https://github.com/HOL-Theorem-Prover/HOL[]
* https://github.com/seL4/isabelle[]. Rumours have it that this is "uncompilable" from source without \x[evil][blobs]. It does however offer a very rich \x[ide].
* https://github.com/coq/coq[]
* \x[metamath] this one is likely an older and less powerful system, but the web presentation and tutorial are very good! Source: https://github.com/metamath/metamath-exe Here is a proof that 2 + 2 equals 4: http://us.metamath.org/mpeuni/2p2e4.html
* https://en.wikipedia.org/wiki/Lean_(proof_assistant) | https://github.com/leanprover/lean | https://github.com/leanprover/lean4

And here are some more interesting links:
* https://github.com/awesomo4000/awesome-provable an awesome list of formal stuff
* https://devel.isa-afp.org/ Isabelle Archive of Formal Proofs. A curated list of Isabelle proofs, with minimal web UI. This is almost what we need, but without the manual curation, and with a better web UI.
* http://www.cs.ru.nl/~freek/100/ list of how many of the http://web.archive.org/web/20080105074243/http://personal.stevens.edu/~nkahl/Top100Theorems.html["Top 100 theorems"] had been proved in several formal systems.

However, as expressed by the \x[qed-manifesto], is unbelievable 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? \x[fuck]{c} 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 \x[write-free-books-to-get-famous-website]. Just like computer code offers the backbone of \x[linux-kernel-module-cheat] Linux kernel tutorials, a formal proof system website would be the backbone of mathematics tutorials! You know what, if \x[write-free-books-to-get-famous-website] becomes insanely sucessful, Ciro is going to add this to it later on.

Furthermore, it would not be too hard to achieve this system!

All we would need would be something analogous to a package registry like \x[pypi] or https://www.npmjs.com/[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.

This is a close as we can get to https://en.wikipedia.org/wiki/Proofs_from_THE_BOOK[Erdős' book].

Maybe Ciro will just stuff this into \x[write-free-books-to-get-famous-website] once that takes over the world.

Bibliography:
* https://math.stackexchange.com/questions/1767070/what-is-the-current-state-of-formalized-mathematics/3297536#3297536
* https://stackoverflow.com/questions/19421234/how-do-i-generate-latex-from-isabelle-hol
* https://stackoverflow.com/questions/30152139/what-are-the-strengths-and-weaknesses-of-the-isabelle-proof-assistant-compared-t

= The next big thing
{parent=ciro-santilli}

If you are going to live, you might as well chase one of them.

You might not achieve them in your lifetime, but you never know. At some point, the pieces just "fall into place", and they happen.

And they will all come from \x[deep-tech].

\x[ciro-santilli] would like to contribute to them. but this is a bit less realistic \x[the-most-important-projects-ciro-santilli-wants-to-do][than software projects].

But who knows? Maybe he can code some stuff in those areas.

And one can at least have some fun by learning deeply about those subjects.

= Molecular biology technologies
{parent=the-next-big-thing}

See also: https://github.com/cirosantilli/awesome-whole-cell-simulation

As of 2019, \x[moore-s-law][the silicon industry is ending], and \x[molecular-biology] technology is one of the most promising and growing \x[deep-tech][field of engineering].

\Image[https://web.archive.org/web/20191008120152im_/https://www.karlrupp.net/wp-content/uploads/2018/02/42-years-processor-trend-625x396.png]
{title=42 years of \x[microprocessor] trend data by Karl Rupp.}
{description=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 https://www1.columbia.edu/sec/itc/ee/test2/pdf%20files/silicon%20basics.pdf[0.23nm] and 2019 technology https://en.wikipedia.org/wiki/5_nanometer[is at 5nm] scale.}
{source=https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/}

Such advances could one day lead to both \x[unconditional-basic-income][biological super-AGI and immortality].

\x[ciro-santilli] is especially excited about \x[dna]-related technologies, because DNA is the centerpiece of biology, and it is programmable.

First, during the 2000's, the cost of \x[dna-sequencing] fell to about 1000 USD per genome in the end of the 2010's: \x[image-cost-per-genome-vs-moore-s-law-from-2000-to-2019]{full}, largely due to \x[illumina]["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.

\Image[https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Cost_per_Genome.png/1024px-Cost_per_Genome.png]
{title=Cost per genome vs Moore's law from 2000 to 2019.}

\x[ciro-santilli] predicts that when the 100 dollar mark is reached, \i[every] person of the https://en.wikipedia.org/wiki/First_World[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 \i[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, https://en.wikipedia.org/wiki/CRISPR_gene_editing[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: \x[de-novo-dna-synthesis].

This technology could be the key to the one of the ultimate dream of biologists: cheap https://pubs.acs.org/doi/pdfplus/10.1021/acssynbio.6b00213[programmable biology] with push-button \x[species-bootstrapping-from-dna][organism bootstrap]!

Just imagine this: at the comfort of your own garage, you take some \x[model-organism] of interest, maybe start humble with \x[escherichia-coli]. Then you modify its DNA to your liking, and upload it to a 3D printer sized machine on your workbench, which automatically synthesizes the DNA, and injects into a bootstrapped cell.

You then make experiments to check if the modified cell achieves your desired new properties, e.g. production of some protein, and if not reiterate, just like a \x[software-engineer].

Of course, even if we were able to do the bootstrap, the \x[debugging] process then becomes key, as visibility is the key limitation of \x[biology], maybe we need other cheap technologies to come in at that point.

This a place point we see the beauty of evolution the brightest: evolution does not require observability. But it also implies that if your changes to the organism make it less fit, then your mutation will also likely be lost. This has to be one of the considerations done when designing your organism.

Other cool topic include: simulations of cell metabolism, protein and small molecule, microscopy (crystallography, \x[cryoem]), analytical chemistry (mass spectroscopy), \x[single-cell-analysis] (Single-cell RNA sequencing), ...

It's weird, cells feel a lot like \x[linux-kernel-module-cheat][embedded systems]: small, complex, hard to observe, and profound.

Ciro is sad that by the time he dies, humanity won't have understood the \x[human-brain], maybe not even a measly \x[escherichia-coli]... Heck, even key molecular biology events are not yet fully understood, see e.g. https://en.wikipedia.org/wiki/Transcription_(biology)[transcription regulation].

= Quantum computing could be the next big thing
{parent=the-next-big-thing}

As of 2020, \x[ciro-santilli] is getting excited about \x[quantum-computing], which is a \x[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.

= Brain-computer interfaces could be the next big thing
{parent=the-next-big-thing}

Main article: \x[brain-computer-interface]{parent}.

This is one of the \x[deep-tech] bets that \x[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 \x[the-matrix-1999][the benefits could be mind blowing].

\x[neuralink][Musk approves].

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.

= Fusion power could be the next big thing
{parent=the-next-big-thing}

Main section: \x[fusion-power].

This is a long haul. But we have to give it a shot.

= The best articles by Ciro Santilli
{id=articles}
{parent=ciro-santilli}

These are the best articles ever authored by \x[ciro-santilli], most of them in the format of \x[stack-overflow] answers.

Ciro posts update about new articles \x[ciro-santilli-s-twitter-accounts][on his Twitter accounts].

Some random generally less technical in-tree essays will be present at: \x[essays-by-ciro-santilli]{full}.

* Trended on \x[hacker-news]:
  * https://github.com/cirosantilli/x86-bare-metal-examples[x86 Bare Metal Examples] on https://news.ycombinator.com/item?id=19428700[2019-03-19]. The third time something related to that repo trends. Hacker news people really like that repo!
    * again https://news.ycombinator.com/item?id=27654257[2020-06-27] (https://web.archive.org/web/20210627201918/https://news.ycombinator.com/[archive]). 200 points, repository traffic jumped from 25 daily unique visitors to 4.6k unique visitors on the day
  * https://stackoverflow.com/questions/22054578/how-to-run-a-program-without-an-operating-system/32483545#32483545[How to run a program without an operating system?] on https://news.ycombinator.com/item?id=18531393[2018-11-26] (https://web.archive.org/web/20181126123625/https://news.ycombinator.com[archive]). Covers x86 and ARM
  * \x[elf-hello-world]{child} on https://news.ycombinator.com/item?id=14359159[2017-05-17] (https://web.archive.org/web/20170517174951/https://news.ycombinator.com/news[archive])
  * \x[x86-paging]{child} on https://news.ycombinator.com/item?id=13773219[2017-03-02]. Number 1 \x[google] search result for "x86 Paging" https://archive.is/VUSNt[in 2017-08].

    \Image[BIOS_bare_metal_hello_world_running_on_a_Lenovo_ThinkPad_T430.jpg]
    {title=BIOS bare metal hello world running on a \x[lenovo] \x[thinkpad] T430.}
    {source=https://stackoverflow.com/questions/22054578/how-to-run-a-program-without-an-operating-system/32483545#32483545}
* \x[x86] \x[assembly-language][assembly]
  * https://stackoverflow.com/questions/980999/what-does-multicore-assembly-language-look-like/33651438#33651438[What does “multicore” assembly language look like?]
  * https://stackoverflow.com/questions/4584089/what-is-the-function-of-the-push-pop-instructions-used-on-registers-in-x86-ass/33583134#33583134[What is the function of the push / pop instructions used on registers in x86 assembly?] Going down to memory spills, register allocation and graph coloring.
* \x[linux-kernel]
  * https://unix.stackexchange.com/a/219674/32558[What do the flags in /proc/cpuinfo mean?]
  * https://stackoverflow.com/a/31394861/895245[How does kernel get an executable binary file running under linux?]
  * https://stackoverflow.com/questions/11408041/how-to-debug-the-linux-kernel-with-gdb-and-qemu/33203642#33203642[How to debug the Linux kernel with GDB and QEMU?]
  * https://stackoverflow.com/questions/33852690/can-the-sys-execve-system-call-in-the-linux-kernel-receive-both-absolute-or-re/42290593#42290593[Can the sys_execve() system call in the Linux kernel receive both absolute or relative paths?]
  * https://stackoverflow.com/questions/5957570/what-is-the-difference-between-the-kernel-space-and-the-user-space/44285809#44285809[What is the difference between the kernel space and the user space?]
  * https://stackoverflow.com/questions/5748492/is-there-any-api-for-determining-the-physical-address-from-virtual-address-in-li/45128487#45128487[Is there any API for determining the physical address from virtual address in Linux?]
  * https://stackoverflow.com/questions/2429511/why-do-people-write-the-usr-bin-env-python-shebang-on-the-first-line-of-a-pyt/40938801#40938801[Why do people write the `#!/usr/bin/env` python shebang on the first line of a Python script?]
  * https://askubuntu.com/questions/41930/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block0-0/1048477#1048477[How to solve "Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)"?]
  * https://unix.stackexchange.com/questions/5518/what-is-the-difference-between-the-following-kernel-makefile-terms-vmlinux-vml/482978#482978[What is the difference between the following kernel Makefile terms: vmLinux, vmlinuz, vmlinux.bin, zimage & bzimage?]

    \Image[Path_from_init_main.c_until_bzImage_in_the_Linux_kernel_4.19.jpg]
    {title=Path from init/main.c until bzImage in the Linux kernel 4.19.}
    {source=https://unix.stackexchange.com/questions/5518/what-is-the-difference-between-the-following-kernel-makefile-terms-vmlinux-vml/482978#482978}
    {height=600}
  * Single program Linux distro
    * https://unix.stackexchange.com/questions/17122/is-it-possible-to-install-the-linux-kernel-alone/200572#200572[Is it possible to install the linux kernel alone?]
    * https://unix.stackexchange.com/questions/122717/how-to-create-a-custom-linux-distro-that-runs-just-one-program-and-nothing-else/238579#238579[How to create a custom Linux distro that runs just one program and nothing else?]

      \Image[End_of_Linux_boot_log_with_minimal_init_that_prints_FOOBAR.png]
      {source=https://unix.stackexchange.com/questions/122717/how-to-create-a-custom-linux-distro-that-runs-just-one-program-and-nothing-else/238579#238579}
* \x[qemu]
  * https://stackoverflow.com/questions/28315265/how-to-add-a-new-device-in-qemu-source-code/44612957#44612957[How to add a new device in QEMU source code?]
  * https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171[How to generate Ubuntu `debootstrap` disk images for QEMU?]
  * https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-image-without-root-privileges/52850819#52850819[How to create a multi partition SD disk image without root privileges?]
  * https://askubuntu.com/questions/884534/how-to-run-ubuntu-desktop-on-qemu/1046792#1046792[How to run Ubuntu desktop on QEMU?]

    \Image[https://i.stack.imgur.com/IPUkA.png]{height=400}
    {title=Ubuntu running inside QEMU.}
    {source=https://askubuntu.com/questions/884534/how-to-run-ubuntu-desktop-on-qemu/1046792#1046792}
* GCC
  * https://stackoverflow.com/questions/3322911/what-do-linkers-do/33690144#33690144[How do linkers and address relocation works?]
  * https://stackoverflow.com/questions/29391965/what-is-partial-linking-in-gnu-linker/53959624#53959624[What is incremental linking or partial linking?]
  * https://stackoverflow.com/questions/3476093/replacing-ld-with-gold-any-experience/53921263#53921263[GOLD (`-fuse-ld=gold`) linker vs the traditional GNU ld]
  * https://stackoverflow.com/questions/2463150/what-is-the-fpie-option-for-position-independent-executables-in-gcc-and-ld/51308031#51308031[What is the -fPIE option for position-independent executables in GCC and ld?] Concrete examples by running program through \x[gdb] twice, and an assembly hello world with absolute vs PC relative load.
  * https://stackoverflow.com/a/30308151/895245[How many GCC optimization levels are there?]
  * https://stackoverflow.com/questions/34519521/why-does-gcc-create-a-shared-object-instead-of-an-executable-binary-according-to/55704865#55704865[Why does GCC create a shared object instead of an executable binary according to file?]
* C/C++: almost all of those fall into "disassemble https://knowyourmeme.com/memes/all-the-things[all the things]" category. Ciro also does "standards dissection" and "a new version of the standard is out" answers, but those are boring:
  * https://stackoverflow.com/questions/572547/what-does-static-mean-in-a-c-program/14339047#14339047[What does "static" mean in a C program?]
  * https://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect-of-extern-c/30526795#30526795[In C++ source, what is the effect of `extern "C"`?]
  * https://stackoverflow.com/questions/10186765/char-array-vs-char-pointer-in-c/30661089#30661089[Char array vs Char Pointer in C]
  * https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603#52454603[How to compile glibc from source and use it?]
  * https://stackoverflow.com/questions/332030/when-should-static-cast-dynamic-cast-const-cast-and-reinterpret-cast-be-used/60414256#60414256[When should `static_cast`, `dynamic_cast`, `const_cast` and `reinterpret_cast` be used?]
  * https://stackoverflow.com/questions/31978324/what-exactly-is-stdatomic/58904448#58904448[What exactly is `std::atomic` in C++?]. This answer was originally more appropriately entitled "Let's disassemble some stuff", and got three downvotes, so Ciro changed it to a more professional title, and it started getting upvotes. People judge books by their covers.
  * https://stackoverflow.com/questions/2351148/explicit-template-instantiation-when-is-it-used/59614755#59614755[What is explicit template instantiation in C++ and when to use it?]

    ``
    notmain.o
    0000000000000000 0000000000000017 W MyTemplate<int>::f(int)
    main.o
    0000000000000000 0000000000000017 W MyTemplate<int>::f(int)
    ``
    {title=`nm` outputs showing that objects are redefined multiple times across files if you don't use template instantiation properly.}

* IEEE 754
  * https://stackoverflow.com/questions/18118408/what-is-difference-between-quiet-nan-and-signaling-nan/55648118#55648118[What is difference between quiet NaN and signaling NaN?]
  * https://stackoverflow.com/questions/2618059/in-java-what-does-nan-mean/55673220#55673220[In Java, what does NaN mean?]
  * https://stackoverflow.com/questions/8341395/what-is-a-subnormal-floating-point-number/53203428#53203428[What is a subnormal floating point number?]

    ``
              +---+---+-------+---------------+-------------------------------+
    exponent  | ? | 0 |   1   |       2       |               3               |
              +---+---+-------+---------------+-------------------------------+
              |   |   |       |               |                               |
              v   v   v       v               v                               v
              -----------------------------------------------------------------
    floats    *    **** * * * *   *   *   *   *       *       *       *       *
              -----------------------------------------------------------------
              ^   ^   ^       ^               ^                               ^
              |   |   |       |               |                               |
              0   |   2^-126  2^-125          2^-124                          2^-123
                  |
                  2^-127


              +-------+-------+---------------+-------------------------------+
    exponent  |   0   |   1   |       2       |               3               |
              +-------+-------+---------------+-------------------------------+
              |       |       |               |                               |
              v       v       v               v                               v
              -----------------------------------------------------------------
    floats    * * * * * * * * *   *   *   *   *       *       *       *       *
              -----------------------------------------------------------------
              ^   ^   ^       ^               ^                               ^
              |   |   |       |               |                               |
              0   |   2^-126  2^-125          2^-124                          2^-123
                  |
                  2^-127
    ``
    {title=Visualization of subnormal floating point numbers vs what IEEE 754 would look like without them.}
* \x[computer-science]{c}
  * \x[algorithm]{c}{p}
    * https://stackoverflow.com/questions/6147242/heap-vs-binary-search-tree-bst/29548834#29548834[Heap vs Binary Search Tree (BST)]. Compared Heap vs BST vs Hash Maps.

      \Image[C++_Heap_vs_BST_vs_hash_map_insert_time.png]
      {source=https://stackoverflow.com/questions/6147242/heap-vs-binary-search-tree-bst/29548834#29548834}
      {height=800}
  * https://cs.stackexchange.com/questions/9664/is-it-necessary-for-np-problems-to-be-decision-problems/128702#128702[Is it necessary for NP problems to be decision problems?]
  * https://stackoverflow.com/questions/4317414/polynomial-time-and-exponential-time/68005934#68005934[Polynomial time and exponential time]. Answered focusing on the definition of "exponential time".
* \x[git]
  * https://stackoverflow.com/a/25806452/895245[What does the git index contain EXACTLY?]

    ``
      | 0           | 4            | 8           | C              |
      |-------------|--------------|-------------|----------------|
    0 | DIRC        | Version      | File count  | ctime       ...| 0
      | ...         | mtime                      | device         |
    2 | inode       | mode         | UID         | GID            | 2
      | File size   | Entry SHA-1                              ...|
    4 | ...                        | Flags       | Index SHA-1 ...| 4
      | ...                                                       |
    ``
  * https://stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object-data-structure/37438460#37438460[What is the file format of a git commit object data structure?]

    ``
    tree {tree_sha}
    {parents}
    author {author_name} <{author_email}> {author_date_seconds} {author_date_timezone}
    committer {committer_name} <{committer_email}> {committer_date_seconds} {committer_date_timezone}

    {commit message}
    ``
  * https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository/52269934#52269934[How do I clone a subdirectory only of a Git repository?]
* \x[python]
  * https://stackoverflow.com/a/19950198/895245[What is the difference between old style and new style classes in Python?]
  * https://stackoverflow.com/a/20022860/895245[What is a mixin in Python, and why are they useful?]
  * https://stackoverflow.com/questions/3044580/multiprocessing-vs-threading-python/55319297#55319297[What are the differences between threads and processes in Python?]

    \Image[https://web.archive.org/web/20190607051221if_/https://i.stack.imgur.com/2x04m.png]
    {title=Python Threads vs Processes with 8 hyperthreads.}
    {source=https://stackoverflow.com/questions/3044580/multiprocessing-vs-threading-python/55319297#55319297}
    {height=600}
* Web
  * https://stackoverflow.com/a/28380690/895245[What does enctype='multipart/form-data' mean?]
  * \x[javascript]
    * https://stackoverflow.com/a/23877420/895245[How does JavaScript .prototype work?]
    * https://stackoverflow.com/a/24595458/895245[.prop() vs .attr()]
* \x[opengl]
  * https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292[How to use GLUT/OpenGL to render to a file?]

    \Image[opengl-rotating-triangle-image-magick.gif]
    {title=OpenGL image dumped to a file.}
    {source=https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292}
  * https://stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods/36065835#36065835[How to draw text using only OpenGL methods?]

    \Image[https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Texture_Atlas.png/600px-Texture_Atlas.png]
    {title=Example of a texture atlas containing glyphs.}

  * https://stackoverflow.com/questions/2571402/how-to-use-glortho-in-opengl/36046924#36046924[How to use `glOrtho()` in OpenGL?]

    \Image[OpenGL_glFrustrum_on_left_vs_glOrtho_on_right.png]
    {source=https://stackoverflow.com/questions/2571402/how-to-use-glortho-in-opengl/36046924#36046924}
  * https://stackoverflow.com/questions/17789575/what-are-shaders-in-opengl-and-what-do-we-need-them-for/36211337#36211337[What are shaders in OpenGL?]
  * https://gamedev.stackexchange.com/questions/72044/why-do-we-use-4x4-matrices-to-transform-things-in-3d/118848#118848[Why do we use 4x4 matrices to transform things in 3D?]
  * https://stackoverflow.com/questions/30864752/is-it-possible-to-build-a-heatmap-from-point-data-at-60-times-per-second/39839788#39839788[Is it possible to build a heatmap from point data at 60 times per second?] Compared \x[cpu] vs GPU shaders.

    \Image[Sinusoidal_circular_wave_heatmap_generated_with_OpenGL_shader_at_60fps.gif]
    {source=https://stackoverflow.com/questions/30864752/is-it-possible-to-build-a-heatmap-from-point-data-at-60-times-per-second/39839788#39839788}
  * https://stackoverflow.com/questions/13693946/image-processing-with-glsl-shaders/40641014#40641014[Image Processing with GLSL shaders?] Compared the \x[cpu] and GPU for a simple blur algorithm.

    \Image[Visualization_of_OpenGL_blur_algorithm_from_webcam_with_Ciro_Santilli_waving.gif]
    {source=https://stackoverflow.com/questions/13693946/image-processing-with-glsl-shaders/40641014#40641014}

    \Video[http://youtube.com/watch?v=MRhAljmHq-o]
    {title=OpenGL GPU GLSL fragment shader real time v4l2 Linux webcam computer vision box blur vs \x[cpu].}
* \x[node-js]
  * https://stackoverflow.com/a/22004559/895245[What's the difference between dependencies, devDependencies and peerDependencies in npm package.json file?]
* \x[ruby-on-rails]
  * https://stackoverflow.com/a/25626629/895245[What is the difference between +<%+, +<%=+, +<%#+ and +-%>+ in ERB in Rails?]
* \x[posix]
  * https://stackoverflow.com/questions/1780599/what-is-the-meaning-of-posix/31865755#31865755[What is POSIX?] Huge classified overview of the most important things that POSIX specifies.
* \x[systems-programming]{c}
  * https://stackoverflow.com/questions/868568/what-do-the-terms-cpu-bound-and-i-o-bound-mean/33510470#33510470[What do the terms "CPU bound" and "I/O bound" mean?]
  * https://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1/53937376#53937376[What do 'real', 'user' and 'sys' mean in the output of time?]

    \Image[wall,_user,_and_sys_for_CPU-bound_work_with_8_hyperthreads.png]
    {source=https://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1/53937376#53937376}
    {height=600}
  * https://stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management/57453334#57453334[What are RSS and VSZ in Linux memory management?]
* \x[computer-security]{c}
  * https://security.stackexchange.com/a/72569/53321[Why is the same origin policy so important?]
* Media
  * https://stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894[How is audio represented with numbers in computers?]. Original \x[stack-overflow-content-deletion][question deleted, lol]...: https://stackoverflow.com/questions/2205070/programmatically-synthesizing-programming-music/52126471#52126471[How to programmatically synthesize music?]

    \Video[http://youtube.com/watch?v=JISozfHATms]
    {title=Canon in D in C}
  * https://stackoverflow.com/questions/12831761/how-to-resize-a-picture-using-ffmpegs-sws-scale/36487785#36487785[How to resize a picture using ffmpeg's sws_scale()?]
  * https://unix.stackexchange.com/questions/256138/is-there-any-decent-speech-recognition-software-for-linux/613392#613392[Is there any decent speech recognition software for Linux?] ran a few examples manually on `vosk-api` and compared to ground truth.
* Eclipse
  * https://stackoverflow.com/questions/4038760/how-to-set-up-the-eclipse-for-remote-c-debugging-with-gdbserver/45608937#45608937[How to set up the Eclipse for remote C debugging with gdbserver?]
* \x[computer-hardware]{c}
  * https://www.quora.com/Are-there-good-open-source-standard-cell-libraries-to-learn-IC-synthesis-with-EDA-tools/answer/Ciro-Santilli[Are there good open source standard cell libraries to learn IC synthesis with EDA tools?]
* \x[scientific-visualization-software]{c}
  * \x[survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli]{child}

    \Image[VisIt_zoom_in_10_million_straight_line_plot_with_some_marked_points.png]
    {disambiguate=best-articles}
    {source=https://stackoverflow.com/questions/5854515/large-plot-20-million-samples-gigabytes-of-data/55967461#55967461}
* \x[numerical-analysis]{c}
  * \Video[http://youtube.com/watch?v=FOwYDlay8rI]
    {title="Real-time \x[heat-equation] \x[opengl] visualization with interactive mouse cursor using relaxation method" by \x[ciro-santilli] (2016)}
* \x[computational-physics]{c}
  * https://stackoverflow.com/questions/11175694/bullet-physics-simplest-collision-example/36987063#36987063[What is the simplest collision example possible in a Bullet Physics simulation?]

    \Image[https://i.stack.imgur.com/9eVe9.png]
    {title=gnuplot plot of the y position of a sphere bouncing on a plane simulated in Bullet Physics.}
    {source=https://stackoverflow.com/questions/11175694/bullet-physics-simplest-collision-example/36987063#36987063}
* \x[register-transfer-level]{c} languages like \x[verilog] and \x[vhdl]
  * https://stackoverflow.com/questions/38108243/is-it-possible-to-do-interactive-user-input-and-output-simulation-in-vhdl-or-ver/38174654#38174654[Is it possible to do interactive user input and output simulation in VHDL or Verilog?]
* \x[android]
  * https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kernel-and-test-it-with-the-android-emulator/48310014#48310014[How to compile the Android AOSP kernel and test it with the Android Emulator?]

    \Image[Android_AOSP_8.1.0_built_from_source_running_in_QEMU.png]
    {source=https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kernel-and-test-it-with-the-android-emulator/48310014#48310014}
  * https://android.stackexchange.com/questions/7686/is-there-a-way-to-see-the-devices-screen-live-on-pc-through-adb/154328#154328[How to see the Android screen live on an Ubuntu desktop through ADB?]

    \Video[https://www.youtube.com/watch?v=fVgeoMYm61Q]
* \x[debugging]{c}
  * https://stackoverflow.com/questions/1345670/stack-smashing-detected/51897264#51897264[What is the "Stack smashing detected" error in GCC and how to solve it?]
  * https://stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management/57453334#57453334[What is RSS and VSZ in Linux memory management?]
  * https://stackoverflow.com/questions/3899870/print-call-stack-in-c-or-c/54365144#54365144[How to print the call stack in C or C++?]
  * https://stackoverflow.com/questions/6261201/how-to-find-memory-leak-in-a-c-code-project/57877190#57877190[How to find memory leaks in C++ code?]
* Software optimization
  * https://stackoverflow.com/questions/310974/what-is-tail-call-optimization/55230417#55230417[What is tail call optimization?]
  * https://stackoverflow.com/questions/375913/how-can-i-profile-c-code-running-on-linux/60265409#60265409[How can I profile C++ code running on Linux?] Compares gprof, valgrind callgrind, perf and gperftools on a simple executable.

    \Image[https://web.archive.org/web/20200229164327if_/https://i.stack.imgur.com/mM8NQ.png]
    {title=gprof2dot image generated from the gprof data of a simple test program.}
    {source=https://stackoverflow.com/questions/375913/how-can-i-profile-c-code-running-on-linux/60265409#60265409}
* \x[mathematics]{c}
  * https://math.stackexchange.com/questions/776039/intuition-behind-normal-subgroups/3732426#3732426[What is the intuition behind normal subgroups?]

    \Image[Diagram_of_the_fundamental_theorem_on_homomorphisms.svg]
    {title=Diagram of the \x[fundamental-theorem-on-homomorphisms] by \x[ciro-santilli], showing the relationship between \x[group-homomorphism]{p} and \x[normal-subgroup]{p}.}
  * \x[formalization-of-mathematics]
* \x[computer-network][Network] programming
  * https://stackoverflow.com/questions/11208299/how-to-make-an-http-get-request-in-c-without-libcurl/35680609#35680609[How to make an HTTP get request in C without libcurl?]
* \x[physics]{c}
  * \x[uranium-vs-plutonium-quora-answer-by-ciro-santilli][What is the difference between plutonium and uranium?]{child}
  * https://physics.stackexchange.com/questions/13001/does-superluminal-travel-imply-travelling-back-in-time/615079#615079[Does faster than light travel imply travelling back in time?]

    \Image[Faster_than_light_implies_time_travel_diagram.svg]
    {disambiguate=articles}
    {title=\x[spacetime-diagram]{c} illustrating how \x[faster-than-light] travel implies time travel.}
* \x[biology]{c}
  * \x[oxford-nanopore-river-bacteria]{c}{child}

    \Image[https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Oxford_Nanopore_MinION_top_cropped.jpg/392px-Oxford_Nanopore_MinION_top_cropped.jpg]
    {disambiguate=articles}
    {title=Top view of an open Oxford Nanopore MinION.}
* \x[quantum-computing]{c}
  * \x[programmer-s-model-of-quantum-computers]{child}
  * https://physics.stackexchange.com/questions/204090/understanding-the-bloch-sphere/598254#598254[Understanding the Bloch sphere], see also: \x[bloch-sphere]

    \Image[matplotlib/bloch_sphere_walk.svg]
    {title=Visualization of the continuous deformation of states as we walk around the \x[bloch-sphere] represented as \x[photon-polarization] arrows.}
* \x[bitcoin]
  * \x[cool-data-embedded-in-the-bitcoin-blockchain]{child}
* \x[gimp]
  * https://graphicdesign.stackexchange.com/questions/83446/gimp-how-to-combine-two-images-side-by-side/145543#145543[How to combine two images side-by-side in GIMP?]

    \Image[https://web.archive.org/web/20210321083826/https://i.stack.imgur.com/r89lU.png]
    {title=Step in the demonstration of https://graphicdesign.stackexchange.com/questions/83446/gimp-how-to-combine-two-images-side-by-side/145543#145543[how to combine two images side-by-side in GIMP?]}
* Home DIY
  * \x[window-blackout]{c}{child}

    \Image[https://upload.wikimedia.org/wikipedia/commons/a/a6/Total_Blackout_Cassette_Roller_Blind_With_Curtains.jpg]
* \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][China]{child}
  * https://www.quora.com/What-would-happen-if-I-walked-around-Beijing-with-a-t-shirt-that-said-freedom-of-speech-is-pretty-great[What would happen if I walked around Beijing with a t-shirt that said "freedom of speech is pretty great"?]

= How to contact Ciro Santilli
{id=contact}
{parent=ciro-santilli}

= How to contact Ciro Santilli
{synonym}

If you feel you might have shared interests with \x[ciro-santilli], Ciro is very glad to hear from you, even if you don't have something a specific goal in mind for the contact.

To contact Ciro publicly about any general subject that is not covered in a more specific \x[github] repository, including saying hi or suggestions about his website either:
* create a \x[github] issue at: https://github.com/cirosantilli/cirosantilli.github.io/issues/new
* at mention \x[ciro-santilli-s-twitter-accounts][Ciro's main Twitter account]

For \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][comments about China], first read:
* https://github.com/cirosantilli/china-dictatorship/faq
* https://github.com/cirosantilli/china-dictatorship/blob/master/CONTRIBUTING.md
and then create a \x[github] issue at: https://github.com/cirosantilli/china-dictatorship/issues/new

Publicly viewable contact is preferred if possible to more effectively share \x[cirism][Ciro's wisdom with the world].

But if you feel more comfortable with private contact, no problem, either:
* extract Ciro's \x[email] from one of his GitHub repositories. It might be of the form lower case first name, followed by a dot (which \x[google] actually ignores), followed by his lower case last name, and under a popular email domain from \x[google]
* use \x[telegram-software]: https://telegram.me/cirosantilli for the \x[end-to-end-encryption]. Secret chats only with a 1 week self-destruct timer.

  Please treat this as \x[email], Ciro might not reply immediately, but he will reply. So write longer complete messages each time.

  Ciro is trying to move more and more to \x[end-to-end-encrypted] methods as a basic \x[computer-security] hygiene exercise.

  Telegram is the best such mechanism that Ciro could find for now that \x[messaging-software-that-force-you-to-share-your-mobile-phone-with-contacts][does not require sharing cell phone numbers with all contacts].

  The closed sourcedness of the server is however a major point of concern. \x[signal-software] would be a better choice, but it does not have usernames and so requires users to share cell phone numbers.

  Another major pain point of Telegram is the lack of message sync across devices, which Signal also already solves.
* use \x[linkedin] or any other public profile linked to from: \x[accounts]

If you are a \x[internet-privacy][privacy] freak or are going to tell Ciro \x[government][state] secrets Ciro has:
* this \x[gnu-privacy-guard] public key: \a[pubkey.gpg]
* a \x[protonmail] account which is of form: "Ciro's GitHub username + protonmail.com". Ciro aims to maintain very high \x[operations-security] standards on that account, making it the most secure way to contact Ciro, and the only one with a reasonable chance of \x[plausible-deniability] :
  * \x[multi-factor-authentication]
  * unique password not-reused anywhere else, and not saved on any computer or disk (and therefore entered manually on every new session)
  * immediate deletion of received messages after reading. This is further strengthened by \x[ciro-santilli-s-bad-old-event-memory]
  * one week https://protonmail.com/support/knowledge-base/expiration/[message expiration] on every message sent
  * only opened from trusted devices and when in a private location
  * only accessed through \x[tor-browser]
  * concession: notifications that messages were received in the ProtonMail mailbox are sent an unencrypted mailbox which Ciro views more regularly and which has more free storage. But the message content itself is not. It does not seem that the \x[android] app has a mode where it only notifies you of new messages but requires a password every time to see any messages. Also Android appears to request to remember passwords every time, so you risk clicking yes at some point.

If you have Ciro's phone number (available to closer acquaintances), Ciro's preferred \x[messaging-software] is \x[signal-software]. But he basically also runs all other major apps as well. Ciro sets a 1 week disappearing messages timer to all conversations. This is slightly less secure than protonmail as Ciro does not use \x[multi-factor-authentication] to open the messages every time, but it should be pretty damn good already. Ciro runs this on 

\x[disqus] comments were removed from his website in 2019-05-04, a manual dump is \a[disqus-archive/][available here]{check=0}, removal rationale at: \x[why-ciro-santilli-removed-disqus-comments-from-his-website-in-2019-05-04].

= Accounts controlled by Ciro Santilli
{id=accounts}
{parent=ciro-santilli}

= Accounts controlled by Ciro Santilli
{synonym}

\x[ciro-santilli] controls the following accounts.

With non-trivial activity:
* https://github.com/cirosantilli
* https://stackoverflow.com/users/895245
* https://www.linkedin.com/in/cirosantilli
* https://www.youtube.com/c/CiroSantilli
* \x[twitter]: see \x[ciro-santilli-s-twitter-accounts]{full}
* https://archive.org/details/@cirosantilli Ciro uses \x[web-archiving] mostly for \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china], but also to backup random university lecture notes before \x[write-free-books-to-get-famous-website] has dominated the world
* https://commons.wikimedia.org/wiki/User:Cirosantilli2 Ciro tries to upload all educational CC content he creates to \x[wikimedia-commons] as an extra backup and sometimes to use in \x[wikipedia] pages
* https://www.facebook.com/cirosantilli/ Ciro accepts all friend requests there, but expect a few non-technical posts. Unless you look like a https://en.wikipedia.org/wiki/Honeypot_(computing)[massive honeypot account], please send context in advance in that case.
* https://www.quora.com/profile/Ciro-Santilli
* https://www.reddit.com/user/cirosantilli/ is Ciro's \x[reddit] account, mostly \x[computer] and \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][China] topics

Other accounts:
* http://seqanswers.com/forums/member.php?u=90053
* http://answers.gazebosim.org/users/2289/cirosantilli/
* https://4programmers.net/Profile/86786
* https://500px.com/p/cirosantilli
* https://9gag.com/u/cirosantilli
* https://addons.mozilla.org/en-US/firefox/user/cirosantilli/
* https://androidforums.com/members/ciro-santilli.1918307
* https://ask.libreoffice.org/en/users/2352/cirosantilli/
* https://bbs.archlinux.org/profile.php?id=116270
* https://brilliant.org/profile/ciro-il1uxz/
* https://bugzilla.gnome.org/page.cgi?id=describeuser.html&login=ciro.santilli@gmail.com
* https://cirosantilli.blogspot.com/
* https://cirosantilli.livejournal.com/profile
* https://cirosantilli.medium.com/ on \x[medium-website]
* https://cirosantilli.substack.com/
* https://cirosantilli.wordpress.com/ on \x[wordpress]
* https://coderwall.com/Ciro%20Santilli Note that space on the username. Beauty.
* https://community.arm.com/people/cirosantilli
* https://community.atlassian.com/t5/user/viewprofilepage/user-id/680821
* https://community.plos.org/people/cirosantilli
* https://community.skype.com/t5/user/viewprofilepage/user-id/2646858
* https://community.zimbra.com/members/cirosantilli
* https://del.icio.us/cirosantilli
* https://dev.to/cirosantilli
* https://developer.mbed.org/users/cirosantilli/
* https://devtalk.nvidia.com/member/2118846/
* https://droit-finances.commentcamarche.net/profile/user/cirosantilli
* https://en.gravatar.com/cirosantilli
* https://en.wikipedia.org/wiki/User:Ciro.santilli also belongs to Ciro, but he lost the password
* https://en.wikipedia.org/wiki/User:Cirosantilli2
* https://eternagame.org/web/player/260828/
* https://figshare.com/authors/Ciro_Santilli/656781
* https://forum.osdev.org/memberlist.php?mode=viewprofile&u=16372
* https://forum.pine64.org/member.php?action=profile&uid=17386
* https://forum.videolan.org/memberlist.php?mode=viewprofile&u=173503
* https://forum.xda-developers.com/member.php?u=7116837
* https://forums.androidcentral.com/members/cirosantilli-2734491
* https://forums.lenovo.com/user/viewprofilepage/user-id/1561639
* https://framasphere.org/people/78a975c0b6c40133a3032a0000053625 https://framasphere.org/posts/1519871
* https://gitlab.com/u/cirosantilli
* https://hackaday.io/cirosantilli
* https://hinative.com/en-US/profiles/5276462
* https://home.gamer.com.tw/homeindex.php?owner=cirosantilli but can't post anything publicly because cannot verify phone in many countries
* https://identity.kde.org/index.php?r=people/view&uid=cirosantilli
* https://imgur.com/user/cirosantilli/about[]: Proof: https://imgur.com/gallery/mexv1Bk/comment/1734086983
* https://jsfiddle.net/user/cirosantilli/
* https://kiwifarms.net/members/cirosantilli.82011/
* https://launchpad.net/~cirosantilli
* https://leetcode.com/cirosantilli/
* https://makandracards.com/ciro-santilli
* https://nanohub.org/members/146301/
* https://next-episode.net/user/cirosantilli/
* https://opencollective.com/ciro-santilli
* https://orcid.org/0000-0003-2895-7763
* https://parler.com/profile/cirosantilli/posts
* https://peerj.com/cirosantilli/
* https://profile.edx.org/u/ciro_santilli
* https://profiles.3dgames.com.ar/profiles/1002278
* https://pypi.org/user/cirosantilli/
* https://raidforums.com/User-cirosantilli
* https://rubygems.org/profiles/cirosantilli
* https://software.intel.com/en-us/user/1090688
* https://soundcloud.com/cirosantilli
* https://sourceforge.net/u/cirosantilli/profile/
* https://steamcommunity.com/id/cirosantilli/
* https://subreply.com/cirosantilli
* https://support.discord.com/hc/en-us/profiles/427813342894
* https://support.mozilla.org/en-US/user/cirosantilli
* https://tabmixplus.org/forum/memberlist.php?mode=viewprofile&u=59846
* https://talk.commonmark.org/users/cirosantilli
* https://talk.jekyllrb.com/users/cirosantilli
* https://talks.cam.ac.uk/user/show/81142
* https://tatoeba.org/eng/user/profile/cirosantilli
* https://telegram.me/cirosantilli on \x[telegram-software]
* https://trac.ffmpeg.org/wiki/Waveform?action=history username `cirosantilli`
* https://tuleap.net/users/cirosantilli
* https://tuleap.ring.cx/users/cirosantilli
* https://twittercommunity.com/users/cirosantilli/activity
* https://wefunder.com/cirosantilli
* https://wiki.qemu.org/User:Cirosantilli
* https://www.airbnb.com/users/show/45794827
* https://www.behance.net/cirosantilli
* https://www.bibsonomy.org/user/cirosantilli
* https://www.biostars.org/u/50170/
* https://www.bountysource.com/people/25676-ciro-santilli
* https://www.bulletphysics.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&u=11704
* https://www.codingame.com/profile/cddd0a711c22d97e8264361f7c8205567563841
* https://www.coursera.org/user/f65b08c191d792eb809fe2808d771ee7
* https://www.dailymotion.com/ciro-santilli
* https://www.deviantart.com/cirosantilli
* https://www.digitalocean.com/community/users/cirosantilli
* https://www.ebay.com/usr/cirosantilli
* https://www.edaboard.com/member587087.html
* https://www.flickr.com/people/cirosantilli/
* https://www.freecodecamp.org/fcc8f660b91-167c-4b04-a8da-5d50cdb46def
* https://www.f6s.com/cirosantilli
* https://www.f6s.com/cirosantilli1
* https://www.gitbook.com/@cirosantilli
* https://www.hackerrank.com/cirosantilli
* https://www.hackster.io/cirosantilli
* https://www.html5gamedevs.com/profile/30103-cirosantilli/
* https://www.imdb.com/user/ur59802249 on \x[imdb]
* https://www.instagram.com/cirosantilli/ Impossible to disable their notifications without removing your email. So all their notifications go to trash.
* https://www.kaggle.com/cirosantilli
* https://www.lesswrong.com/users/ciro-santilli on \x[lesswrong]
* https://www.linux.org/members/ciro-santilli.62540/
* https://www.linuxquestions.org/questions/user/cirosantilli-688439/
* https://www.meetup.com/members/252568305/
* https://www.mentebinaria.com.br/profile/1987-ciro-santilli/
* https://www.metacritic.com/user/cirosantilli
* https://www.mohu.rocks/people/cirosantilli
* https://www.mudhut.com/user/1995000
* https://www.myopportunity.com/en/profile/ciro-santilli
* https://www.npmjs.com/~cirosantilli
* https://www.opengl.org/discussion_boards/member.php/40269-cirosantilli
* https://www.patreon.com/cirosantilli
* https://www.pixiv.net/en/users/64347194
* https://www.plurk.com/cirosantilli
* https://www.raspberrypi.org/forums/memberlist.php?mode=viewprofile&u=273389
* https://www.shadertoy.com/user/cirosantilli
* https://www.strava.com/athletes/47913768
* https://www.tastekid.com/ciro.santilli
* https://www.ted.com/profiles/5822760
* https://www.tiktok.com/@cirosantilli2
* https://www.transifex.com/user/profile/cirosantilli
* https://www.tripadvisor.com/members/cirosantilli

Accounts in \x[china][Chinese] websites. These accounts might be banned or altered or offer other limitations, so Ciro only communicates briefly through them. All communication through those channels should obviously be assumed to be compromised:
* http://bbs.nibaedu.com/index.php?m=space&uid=70
* http://www.renren.com/338003848/profile
* http://www.tianya.cn/109285544 (can't post, no cell phone)
* https://hacpai.com/member/cirosantilli unable to login as of 2019-10-12, reason unclear, either ban or website too crappy.
* https://pincong.rocks/people/cirosantilli
* https://tieba.baidu.com/home/main?id=5cd56369726f73616e74696c6c69c944
* https://v2ex.com/member/cirosantilli[]: Ciro was blocked or account deleted on 2020-07-23: https://cirosantilli.com/china-dictatorship/v2ex 
* https://www.zhihu.com/people/cirosantilli[]. Ciro was https://github.com/cirosantilli/china-dictatorship/tree/746d7e851097bfacfb03149138f0e16c8da9d8db#zhihu-ban[prevented from posting in 2018-06-25], and https://github.com/cirosantilli/china-dictatorship/tree/55e0ab569884e261119fd7683d677644df5c7ca1#zhihu-purge[the account and all content mentioning him were taken down in 2019-11-03].
* https://www.weibo.com/p/1005055601627311[]: started requiring a cell phone to login in 2020, and Ciro didn't want to give his cell phone number to the CCP and didn't have the patience to manage a secondary phone number, so he is not logging in for now. The account was blocked in 2021: https://cirosantilli.com/china-dictatorship/ciro-santillis-weibo-block

Accounts in Russian websites:
* https://vk.com/id595305194

Dead websites:
* http://www.citeulike.org/user/cirosantilli (2019-05)

= Ciro Santilli's Twitter accounts
{c}
{parent=accounts}
{wiki}

Accounts controlled by \x[ciro-santilli] on \x[twitter]{parent}:
* https://twitter.com/cirosantilli[] primary channel, contains only updates on Ciro's best technical content. Low volume.
* https://twitter.com/cirosantilli2[] secondary channel, contains smaller technical updates that didn't make it to the primary channel, and some \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][China fun]. Higher volume.

= Cirism
{c}
{parent=ciro-santilli}

= Cirist
{c}
{synonym}

= Ciro Santilli's ideology
{c}
{synonym}
{title2}

Welcome to the wonderful world of Cirism!

Followers of Cirism call themselves \x[cirist]{p}.

Cirism has been officially verified to compatible with all major world \x[religion]{p}.

Related:
* \x[physics-and-the-illusion-of-life]

\Image[Ciro_Santilli's_learn_teach_apply_logo.png]
{title=\x[ciro-santilli]'s "Learn, Teach, Apply" logo is the Sacred symbol of Cirism.}

= Unconditional basic income
{parent=cirism}
{wiki}

Unconditional basic income is \x[ciro-santilli]'s ultimate non-\x[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 \x[write-free-books-to-get-famous-website]["learn, teach"] and create whatever they want. Or play \x[video-game]{p} all day long if they wish.

https://en.wikipedia.org/wiki/Basic_income_pilots[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:
* \x[artificial-general-intelligence]
* affordable https://en.wikipedia.org/wiki/Humanoid_robot[humanoid robots] with human-like energy efficiency and https://en.wikipedia.org/wiki/Power-to-weight_ratio[power-to-weight ratio].

  This is even less likely than AGI due to the \x[moore-s-law][end of silicon Moore's Law] and at the start of the Genome's Moore's law: information doubles, small sizes halve, but macroscopic mechanical artifacts stay the same.

  \x[brain-computer-interface]{p} are pretty certain to happen however after \x[ciro-santilli] dies.

So in the worst case we can just grow brainless bodies and replace the cavity hole with a computer that controls the body, possibly with high level decisions coming from a remote building-sized genetically engineered biological AGI brain.

Of course, it is all about costs. A human costs about http://content.time.com/time/health/article/0,8599,1808049,00.html[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 https://en.wikipedia.org/wiki/AI_takeover[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 https://en.wikipedia.org/wiki/Social_engineering_%28security%29[social engineering]. Although some https://www.quora.com/Could-a-group-of-hackers-break-into-military-networks-and-launch-or-detonate-nuclear-missiles[claim that is unlikely].

Humanity's best bet to achieve silicon AGI today is to work on: \x[large-cohesive-game-world-for-robotic-like-artificial-intelligence-development].

= Having more than one natural language is bad for the world
{parent=cirism}

\x[natural-language]{c} diversity is \x[art][beautiful, but useless].

\Image[https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_%28Vienna%29_-_Google_Art_Project.jpg/800px-Pieter_Bruegel_the_Elder_-_The_Tower_of_Babel_%28Vienna%29_-_Google_Art_Project.jpg]
{title=Even the Bible writers already know that multiple languages suck as seen from the https://en.wikipedia.org/wiki/Tower_of_Babel[Tower of Babel] parable.}

The fact that in poor countries a huge number of people do not speak the economically dominating language of the world (currently \x[english-language][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 \x[europe][European] countries.

What big \x[company]{p} have been created in Europe in the past 50 years, that have not been bought out by \x[american] or Japanese companies? \x[solexa] (600M USD in 2007)? https://en.wikipedia.org/wiki/CSR_(company)[CSR] (2.5B USD in 2015)? https://en.wikipedia.org/wiki/Arm_Holdings[Arm Holdings] (32B USD in 2016)? So much so that https://www.forbes.com/sites/oliviergarret/2020/07/02/the-next-netflix-has-finally-revealed-itself/#5ceae87832db[much fanfare was made] as Spotify reached a 50B market capitalization in 2020. An \x[art] company, so cute!

The key problem is that there are so many small countries in Europe, that any \x[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 \x[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 who effectively benefit from being in Europe like Ireland, Luxembourg, https://www.youtube.com/watch?v=5l37Ng61gJc[Monaco], Switzerland ("not European", but should that be allowed?) and https://en.wikipedia.org/wiki/Cyprus[Cyprus] (the EU can't even maintain its territorial integrity, let alone fiscal) 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 \x[united-kingdom] will continue to try and https://en.wikipedia.org/wiki/Mitochondrion[endosymbiose] into a state of the \x[united-states] (although https://github.com/cirosantilli/china-dictatorship/tree/1d69f2605e7c2602867344a70c6eed838b930105#the-west-must-ban-the-import-telecommunications-devices-from-china[at times it seems that it would rather endosymbiose with China instead]).

The https://en.wikipedia.org/wiki/Linguistic_relativity[Sapir–Whorf hypothesis] is \x[bullshit] outside of poetry, and the ending of https://en.wikipedia.org/wiki/Arrival_(film)[Arrival (2016)] makes one want to puke, where learning a language changes not only your brain, but also Ciro's precious \x[physics]["laws" of Physics]!

Much more likely are https://en.wikipedia.org/wiki/To_Serve_Man_(The_Twilight_Zone)[To Serve Man]/\x[a-small-talent-for-war] events!

Remember that those ideas come from a person who \x[ciro-santilli-s-natural-languages-skills][speaks 3.5 languages in 2019], and see absolutely no practical difference between them.

Of course, like all https://en.wikipedia.org/wiki/Constructed_language[non-constructed languages], English is not fully optimal in terms of regularity and information density. It could be argued that other languages are better in those aspects.

For example, Ciro does however believe that spoken Chinese is a better language than English overall from a purely "ease of learning from scratch point of view" as mentioned at: https://github.com/cirosantilli/china-dictatorship/tree/6fdeb5aa3826c69f7c058de4e6f652a6924bc08a#does-ciro-santilli-speak-chinese[]. https://github.com/cirosantilli/china-dictatorship/tree/c0c41e7c55a7641fd00aad06beefa824e6f5b9c8#does-ciro-santilli-speak-chinese[Chinese writing is completely insane of course], completely out of the question.

However, Ciro just doesn't think that the difference is that great to justify replacing English which is already dominant. How much more efficient can a perfect constructed language be than English? 1.01? 1.001? Such margins don't matter. Once you have learnt it young, it's done, for good.

English-based https://en.wikipedia.org/wiki/Constructed_language#A_posteriori_language[a posteriori constructed languages] that regularize English further are perhaps the only reasonable alternative, like how \x[c-plus-plus] evolved from \x[c-programming-language] by creating a low cost upgrade path. Although in practice they will never take off unless a https://en.wikipedia.org/wiki/Simplified_Chinese_characters[dictatorship rules the world]:
* https://en.wikipedia.org/wiki/List_of_places_in_the_United_Kingdom_with_counterintuitive_pronunciations 
* https://en.wikipedia.org/wiki/Globish_(Gogate)

One interesting anecdote is that Ciro met his \x[ciro-santilli-s-wife][wife] in French, and talking to her primarily in English feels really weird, so language does matter in love.

Different languages might also good at producing interesting diverse touristic locations, with different diverse and interesting foods. Because that's what tourism is all about. The exotic. The unique. And therefore, also necessarily the inefficient.

People with similar ideas:
* \x[english-as-a-universal-language-by-dan-dascalescu-2008]
* http://harmful.cat-v.org/society/cultural_protectionism from \x[cat-v-org]
* https://blog.codinghorror.com/the-ugly-american-programmer/ highlights that the situation is even more critical for software development. But he's a moderate ideology. Newbie.
* \x[charles-kay-ogden], creator of \x[basic-english], according to the https://en.wikipedia.org/wiki/Basic_English[Basic English Wikipedia page]:
  \Q[Ogden's Basic, and the concept of a simplified English, gained its greatest publicity just after the Allied victory in World War II as a means for world peace. Ogden was convinced that the world needed to gradually eradicate minority languages and use as much as possible only one, English in either a simple or complete form.]

\Video[https://www.youtube.com/watch?v=GiVs05yq9-o]
{title="English spelling - a bit mad, but perhaps the best system around" by Lindybeige (2015)}
{description=To be taken as a semi-joke, but he does mention the interesting point that English insane spelling helps disambiguate reading, like an intermediate between \x[chinese-character]{p} and more regular spelled languages.}
i

= Don't be a pussy
{parent=cirism}

https://quoteinvestigator.com/2018/05/07/overcome/

\Q[If you want to do something, but you are afraid to do it, then that is likely what you should do.]
{id=quote-afraid-to-do}

https://quoteinvestigator.com/2013/11/08/not-bend/

\Q[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 \x[ciro-santilli] was deciding what to do in university, he wanted mostly to do pure \x[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 \x[fuck] you want, we support your decision".

But he was a coward.

It was also in part because a \x[physicist] uncle which he respected suggested that as an engineer Ciro might be able to make useful contributions to tooling required by physics. When https://en.wikipedia.org/wiki/Roberto_Salmeron[Roberto Salmeron] died in 2020, Ciro's friends shared https://www.youtube.com/watch?v=DtqDLN3qT2w[this 2013 video interview] with the late professor, where he explains he first went to the \x[university-of-sao-paulo] to study engineering (like Ciro), but then fell for his passion for physics (like Ciro?), his first task being to build a \x[geiger-counter], thus explaining the likely origin of the uncle's theory. But who knows, maybe he was right. Maybe Ciro's \x[write-free-books-to-get-famous-website] will become huge and help a lot of people, and it might not have had Ciro not done engineering and learnt programming. Destiny operates in weird ways sometimes.

Furthermore, while in University, Ciro learnt about the \x[molecular-sciences-course-of-the-university-of-sao-paulo], a fantastic sounding full time course that any student could transfer to called that teaches various \x[write-free-books-to-get-famous-website/motivation][natural sciences topics which Ciro loves (Mathematics, Physics, Chemistry, Biology)] and which students from the entire university can apply to transfer to only after joining the university, with the guarantee that they can go back to their original courses if they didn't adapt to the new course.

But did Ciro do it? Nope, he remained an even larger coward.

Had he studied more sciences, he might have been happier, and might have had greater achievements later in life, in particular when he went to \x[ecole-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 \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][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. \x[ross-ulbricht]:
\Q[I hated working for someone else and trading my time for money with no investment in myself]
Selling \x[drug]{p} online is not advisable however.

Even better, try to reach an official agreement with your employer to work 20% less than the standard work week. For example, you could work one day less every week, and do whatever you want on that day. It is not possible to push your passion to weekends, because your brain is too tired. "You keep all non-company-related IP you develop on that time" is a key clause obviously.

On a related note, good employers must allow employees to do whichever the \x[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 \x[bullshit]. Another related name: https://en.wikipedia.org/wiki/Genius_hour[genius hour].

Highly relevant on this topic: \x[video-what-predicts-academic-ability-by-jordan-b-peterson-2017].

Pursuing a dream part time can make you feel afraid and tired. But at least, you will feel alive. https://www.youtube.com/watch?v=FQlAfI91cZ8[I did it for me, Skyler].

Maybe you will be fired, but long term, having tried, or even succeeded your dream, or a \x[the-side-effects-of-ambitious-goals-are-often-the-most-valuable-thing-achieved][one of its side effects], will be infinitely more satisfying.

The same goes for \x[school], and maybe even more so because your parents can still support you there. Some \x[god]{p} who actually followed this advice and didn't end up living under a bridge:
* \x[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.
* \x[freeman-dyson] proved the equivalence of the three existing versions of \x[quantum-electrodynamics] theories that were around at his time, and he has always been proud of not having a PhD!

  \Video[http://youtube.com/watch?v=DzC1IRYN_Ps]
  {title=\x[freeman-dyson] - Why I don't like the PhD system (95/157) by \x[web-of-stories] (2016)}
* 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 \x[classification-of-finite-simple-groups], and had a short Wiki page because of that.

  He never did a PhD, and said that \x[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 \x[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 \x[company].

  At last but not least, he said he also fathered 17 children by donating his sperm to \x[lesbian] mothers found on a local \x[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 http://archive.is/W1ocv[based God].

\Image[https://web.archive.org/web/20190619194434im_/http://assets.amuniversal.com/d871a9c06d6401301d80001dd8b71c47]
{title=\x[dilbert] "A small brain irrationally puts more weight on a small loss than on a huge opportunity" cartoon (2000)}
{id=image-dilbert-small-loss}
{height=300}
{source=https://dilbert.com/strip/2000-02-03}

\Image[https://web.archive.org/web/20200303102830/https://pbs.twimg.com/media/DXtGN6tU0AAGnHk?format=jpg&name=large]
{title=Jake Likes Onions "Slowly" cartoon.}
{description=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.".}
{height=500}
{source=https://twitter.com/jakelikesonions/status/971447358771941376}

\Video[http://youtube.com/watch?v=kYfNvmF0Bqw]
{title=Excerpt from the documentary film "\x[steve-jobs]: Secrets of Life" (1994).}

\Q[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, https://en.wikipedia.org/wiki/Survivorship_bias[survivorship bias] applies.

\Video[http://youtube.com/watch?v=XTv50ELCBr4]
{title=\x[alan-watts] "If Money Were No Object What Would You Do" talk.}

= Being naughty and creative are correlated
{parent=don-t-be-a-pussy}

\x[ciro-santilli] believes that there is a close link between the ability to create disruptive technology, and the desire to find bugs/exploits in systems.

Both of them destabilize society and enterprises.

Some examples:
* \x[jobs-and-wozniak-s-blue-box]{child}
* \x[robert-noyce]'s stealing a pig for a university party somewhat as a joke. This was actually a felony, but he got away with a compromise by paying the owner and being suspended for 6 months. The law is not blind, and thanks for that sometimes.

  Oh, and apparently he also got a university girlfriend pregnant, and she had an abortion.

And yes, this sometimes leads into a fine line between \x[legality] and illegality:
* \x[ross-ulbricht]{child} from \x[silk-road-marketplace]
* \x[aaron-swartz]{child}

= Steve Jobs' 2005 Stanford Commencement Address
{parent=don-t-be-a-pussy}
{c}

Ciro feels that this resonates a lot with his \x[write-free-books-to-get-famous-website].

Supercut:
\Q[
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:
\Q[
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:
\Q[
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 https://en.wikipedia.org/wiki/Whole_Earth_Catalog[Whole Earth Catalog], a paper Atlas from the '70s he admired:
\Q[Stay Hungry. Stay Foolish]

\Video[http://youtube.com/watch?v=UF8uR6Z6KLc]

= Backward design
{parent=cirism}
{wiki}

This is one of \x[ciro-santilli][Ciro Santilli's] most important principles.

\x[steve-jobs][Steve Jobs] has a great quote about this. He's totally right on this one!

\Q[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[http://youtube.com/watch?v=FF-tKLISfPE]
{title="Steve Jobs Insult Response" excerpt from the https://en.wikipedia.org/wiki/Apple_Worldwide_Developers_Conference[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 \x[how-to-teach/help-students-achieve-their-goal][will waste a lot of time learning useless stuff].

There is of course some level chicken-and-egg paradox in this, as \x[image-dilbert-nuclear-power-user-requirements][highlighted by Dilbert], since choosing an achievable goal in the first place requires some level of technical understanding.

\Image[https://web.archive.org/web/20200331090146im_/https://assets.amuniversal.com/1af002106d5c01301d80001dd8b71c47]
{title=\x[dilbert] cartoon about designing a nuclear power plant from user requirements (2002)}
{description=This cartoon illustrates well how when doing \x[deep-tech] and fighting against the \x[laws-of-physics], you can't just start from user requirements, but you also have to also think "what can we actually get done at all with this new technique".}
{height=300}
{id=image-dilbert-nuclear-power-user-requirements}
{source=https://dilbert.com/strip/2002-02-20}

However, it is much more common that people will get way too involved in learning useless stuff and lose sight of the \x[art][useful end goals].

Rather, take an iterative approach:
* start with an ambitious end goal
* learn a bit of tech to try and reach it
* realize that you can't reach your end goal and pivot a bit to a related end goal that seems more realistic: \x[the-side-effects-of-ambitious-goals-are-often-the-most-valuable-thing-achieved]
* loop

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 \x[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 \x[write-free-books-to-get-famous-website/motivation][much more efficient than just learning random things that other people tell you to learn].

A Coding Horror \x[software-engineer][software specific] take on this issue: https://blog.codinghorror.com/please-dont-learn-to-code/

https://www.cartalk.com/content/rant-and-rave-36 "The New Theory of Learning" by Thomas L. Magliozzi section "Premise III: THE BACKWARDS LEARNING THEORY" says the exact same thing. Ciro actually found this when writing \x[cool-data-embedded-in-the-bitcoin-blockchain].

= How to become a good programmer?
{parent=backward-design}

Or: how to learn X.

This pops up on \x[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.

= Free gifted education
{parent=cirism}

This term was invented by \x[ciro-santilli], and similar ideas certainly already exists with different names by other people. As the name suggests, it basically involves combining \x[free-education]  and \x[gifted-education], but with other more specific aspects crammed in that would make a precise name too long to read, as descried below.

\x[government]{c} must create selective, \x[k-12] and \x[university]-level teaching institutions that are completely free.

As mentioned at \x[what-poor-countries-have-to-do-to-get-richer/pick-few-good-bets], these do not need to be given to all students: what we have to do is to ensure that the top N-percent of the best students will get in, and that none of them will pay. Where N is as large as the budget society decides to put into this project, the larger the better. Therefore, perhaps "gifted education" is not the ideal name for this idea, as it generally implies very small N (1%?), while this project hopes for larger N, maybe 10%. But a minimal level of quality must be attained, it is pointless to dissolve the resources too much, if we only have enough for 1%, then so be it, start with 1%.

Since all information will be available online on \x[write-free-books-to-get-famous-website], or through 1-to-1 chats with mentors, it might be cheaper for students to work from their parent's homes if their home has reasonable work conditions (a silent room with reasonable \x[internet] access and no \x[drug-addict]{p} in the house). Then the state only needs to pay transportation and temporary accommodation to attend concentrated month-long \x[laboratory] courses and week-long conferences. In cases where the home conditions are not good enough, the state can either pay for on-demand WeWork-like offices near the student's home, of for a full on-campus accommodation as in a \x[boarding-school]. What is indispensable is that all students who pass the entry criteria must have such working conditions. Students who stay home can also earn a scholarship to help pay for their rent, food and Internet access.

These institutions must start from the very first school year, and go all the way up through \x[k-12] to the end of university. It is useless to start at university-level only otherwise only the rich students will have a chance of getting in, like \x[ciro-santilli] saw in \x[brazil] at the \x[polytechnic-school-of-the-university-of-sao-paulo] in the late 2000's: one day all students were gathered in the amphitheater, and they asked the students who had only gone through free government \x[k-12] schools to raise their hands. Those were notably worse than the corresponding private schools, and the situation is inverted in \x[university], where the best schools are the government ones. Out of about 500 people, at most 10 raised their hands!

These institutions should not have \x[affirmative-action] entry quotas, including most importantly at the \x[university-entry-quotas][university level]. Both rich and poor should be able to apply. Passing the selection criteria is all that matters. We just must ensure that the schools are widely advertised amongst disadvantaged communities, so that they will at least get their children to try to apply from an early age. This way, even if the rich always have an advantage due to better overall conditions, the poor are so many more numerous that the majority of students accepted will still be poor.

The school should follow the basic principles of \x[how-to-teach], notably:
* \x[students-must-have-a-flexible-choice-of-what-to-learn]. There will be no classes, all learning will happen either \x[write-free-books-to-get-famous-website] or on 1-to-1 meeting with tutors, or in discussions with fellow students.
* \x[backward-design].

  Through it, students will be helped to directly achieve their greater life goals.

  There will be no teachers: each student will be assigned senior advisors, and together they will come with an individualized research proposal or business plan.

  There will be no useless mandatory institutional \x[exam]{p}. Exams only need to be taken if a given advisor requires it to filter candidate students. But if you manage to impress them through other means, they can just accept you without the exam.

  A fundamental part of this is to fill the \x[the-missing-link-between-basic-and-advanced]. We want to help students to reach the \x[state-of-the-art] of their field of interest as fast as possile.

These schools must pay mentors as much as the average good non-free schools so you actually get comparably good teachers. Mentor selection would also be highly competitive, just as that of the students.

Once admitted, students will have guaranteed access to the school resources for a few years. This way, they won't need to worry about passing useless exams every three months.

All that matters is that they are progressing in their development plan. Rather than exams, students will do regular progress report sessions with their advisors, and will get periodic reviews from other advisors with similar interests.

Such projects could be funded by much needed \x[wealth-tax] or other measures to \x[tax-the-rich], which the people should claim through \x[referendum]{c}, that would be come more common with the adoption of \x[electronic-voting]. Because the politicians are simply not being able to do it.

Related:
* \x[teach-for-all]

\Image[https://web.archive.org/web/20201015033442im_/https://static.boredpanda.com/blog/wp-content/uploads/2017/01/privilege-explanation-comic-strip-on-a-plate-toby-morris-1.gif]
{height=977}
{title=On a plate by https://twitter.com/XTOTL[Toby Morris] (2015)}
{source=https://www.rnz.co.nz/news/the-wireless/373065/the-pencilsword-on-a-plate}

\Image[https://web.archive.org/web/20201022035551im_/https://static.boredpanda.com/blog/wp-content/uploads/2017/01/privilege-explanation-comic-strip-on-a-plate-toby-morris-2.gif]
{height=983}
{title=On a plate by Toby Morris (2016) - 2}

\Image[https://web.archive.org/web/20201028142539im_/https://static.boredpanda.com/blog/wp-content/uploads/2017/01/privilege-explanation-comic-strip-on-a-plate-toby-morris-3.gif]
{height=982}
{title=On a plate by Toby Morris (2016) - 3}

\Image[https://web.archive.org/web/20201027223316im_/https://static.boredpanda.com/blog/wp-content/uploads/2017/01/privilege-explanation-comic-strip-on-a-plate-toby-morris-4.gif]
{height=1014}
{title=On a plate by Toby Morris (2016) - 4}

= The side effects of ambitious goals are often the most valuable thing achieved
{parent=cirism}

A quote by \x[university-of-sao-paulo][Ciro's Teacher R.]:
\Q[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 \x[ciro-santilli-s-stack-overflow-contributions][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 \x[backward-design], because then you will go "down the dependency \x[graph] of prerequisites" and smoothen out any particularly inefficient points that you come across.

Going into such productive \x[procrastination] is also known informally as \x[yak-shaving].

There are of course countless examples of such events:
* https://youtu.be/qrDZhAxpKrQ?t=174 Blitzscaling 11: Patrick Collison on Hiring at Stripe and the Role of a Product-Focused CEO by Greylock (2015)

The danger of this approach is of course spending too much time on stuff that will not be done enough times to be worth it, as highlighted by several \x[xkcd]{p}:
* \x[image-xkcd-974-the-general-problem]
* \x[image-xkcd-1205-is-it-worth-the-time]
* \x[image-xkcd-1319-automation]

\Image[https://web.archive.org/web/20210323181809if_/https://imgs.xkcd.com/comics/the_general_problem.png]
{title=\x[xkcd] 974: The general problem.}
{source=https://xkcd.com/974/}

\Image[https://web.archive.org/web/20210323005145if_/https://imgs.xkcd.com/comics/is_it_worth_the_time.png]
{title=\x[xkcd] 1205: Is it worth the time.}
{source=https://xkcd.com/1205/}

\Image[https://web.archive.org/web/20210323223420if_/https://imgs.xkcd.com/comics/automation.png]
{title=\x[xkcd] 1319: Automation.}
{source=https://xkcd.com/1319/}

= Ciro Santilli's best random thoughts
{parent=cirism}
{c}

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:
\Q[https://en.wikipedia.org/wiki/Chuck_Norris_facts[Chuck Norris] can parse pseudocode.]

On the theory vs practice of computer science:
\Q[Whereas \x[turing-complete][Turing completeness] is enough for \x[mathematician]{p}, humans need "run-on-Debian-complete".]

On how human perception of media is completely unrelated to the computer's transmission mechanism:
\Q[Media for humans is not byte streams. It is magic.]

This is of course just another version of https://en.wikipedia.org/wiki/A_picture_is_worth_a_thousand_words[one picture is worth a thousand words].

Others:
* \x[science-is-the-reverse-engineering-of-nature]

= Animal rights
{parent=cirism}

\x[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 \x[eat] them, even though he believes that you could live off \x[plant]{p} relatively well.

His more rational side says: humans are sacred. Either because you believe in the \x[religion][soul], or because your \x[brain][built-in empathy behaviours]. If it is not a human, do whatever you want to it. Killing is already undoubtedly the greatest \x[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 \x[molecular-biology-technologies][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 \x[physics], where \x[physics-and-the-illusion-of-life][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 \x[brain][pain and pleasure] are fully understood.

And you are going to have a really hard time when https://en.wikipedia.org/wiki/Ahimsa_in_Jainism[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 \x[jesus]'s https://www.biblegateway.com/passage/?search=Matthew+6%3A25-34&version=NIV[Matthew 6:25-34 "Do Not Worry"] (https://web.archive.org/web/20190801221835/https://www.biblegateway.com/passage/?search=Matthew+6%3A25-34&version=NIV[archive]) quote to mind:
\Q[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 https://en.wikipedia.org/wiki/Characters_in_Romeo_and_Juliet#Prince_Escalus[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 \x[the-best-television-series]["The Problem With Popplers" episode] blew Ciro's mind so much.

Ciro should stop discussing topics in which infinite argument has already been had. Sometimes he writes things down so he can stop caring the next time the subject comes up, as there's no need to say it again once it is written.

= University entry quotas
{parent=cirism}

\x[ciro-santilli] is against \x[affirmative-action] university entry quotas that reserve spaces e.g. for students from discriminated races or poor families. Instead, he believes that affirmative action should take place on earlier stages of education as described at: \x[free-gifted-education].

Notably, \x[brazil] has implemented a very heavy university entry quota system \x[ciro-santilli-s-formal-education][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 \x[open-source-software][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 \x[brazilian] quota system, is that the kids who enter university because of quotas http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100-15742009000200014[do just as well as those who don't].

Ciro has actually believes that this is possible, and offers the following possible explanation: \x[write-free-books-to-get-famous-website/motivation][most of pre-university knowledge is useless, and university selection system is crap, and Ciro wants to destroy it with a system in which anyone can learn university stuff from home].

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 \x[how-to-teach/help-students-achieve-their-goal][high school educational system is crap and does not help them find what they love] and because it costs you \x[students-must-have-a-flexible-choice-of-what-to-learn][several years of your life to change your choice in most universities] (long live \x[ecole-polytechnique]).

Maybe the fact that poor kids know that they are \x[fucked] if they fail, and so they have to succeed at any cost, might also help with motivation. Which is a terrible terrible thing, because only those who have to leeway to take risks end up taking them and making the \x[the-next-big-thing].

Ciro believes instead that only once kids have learnt university level stuff in their area of interest \x[write-free-books-to-get-famous-website/motivation][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 \x[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, \x[deep-tech][make the choice that includes laboratories], because you can learn already learn \x[computer][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
* \x[how-to-teach/talk-with-individuals-not-to-groups][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 \x[state-of-the-art], and I need https://en.wikipedia.org/wiki/Person_having_ordinary_skill_in_the_art[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 is a huge proponent of \x[free-gifted-education].

Then let those kids pass exactly the same university entry exams, and watch them crush the average privileged kids.

This advice is similar to what is mentioned at: \x[what-poor-countries-have-to-do-to-get-richer]. When you don't have money to do everything, you must select a few good bets and focus on them. You can't pay a lot to every public school teacher, so you must select a few select places that need it the most. As those smart bets pay off, you start to have more and more money to expand the system further.

= Students must have a flexible choice of what to learn
{parent=cirism}

This is one of the main reasons why \x[ciro-santilli] invested in \x[write-free-books-to-get-famous-website].

Ciro believes that the only thing students must be forced to learn \x[having-more-than-one-natural-language-is-bad-for-the-world][is to speak read and write English] and that \x[how-to-teach/help-students-achieve-their-goal][a teacher's main job after that is to help students find their next big goals] and also ties into the \x[backward-design][backward design philosophy].

Everything else, the student must choose.

This idea is generally known as \x[self-directed-learning].

This is most notable in \x[university-entry-quotas][University entry examinations of poor countries], where students often have to waste 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 \x[ecole-polytechnique] which was way freer than his \x[university-of-sao-paulo][university in Brazil].

\x[steve-jobs]'s university dropout stories from \x[steve-jobs-2005-stanford-commencement-address] also come to mind.

Interesting projects:

* \x[brown-university]'s Open Curriculum concept sounds exemplary:
  * https://www.youtube.com/watch?v=Cq_6qBnjZTA
  * https://www.brown.edu/academics/undergraduate/open-curriculum
* \x[advanced-placement]

= How to diagnose a genius by Wilhelm Ostwald (1909)
{c}
{parent=students-must-have-a-flexible-choice-of-what-to-learn}
{title2=Grosse Männer}

https://www.nature.com/articles/081121a0 \x[academic-publishing][paywall] after mores than 100 years.

From the abstract:
\Q[Much money, his student went on to say, is spent by various Governments in attempting to discover those people whose thorough education may be expected to bring in a return of value to the State, and the question how best to discover latent genius is an eminently practical one. After cogitation, Prof. Ostwald came to the conclusion that it is those students who cannot be kept on the rails - that is, who are not contented with methodical teaching - who have within them the seeds of genius]
\x[ciro-santilli] couldn't agree more... notably \x[students-must-have-a-flexible-choice-of-what-to-learn].

= Magnet  school
{parent=students-must-have-a-flexible-choice-of-what-to-learn}

= Advanced Placement
{c}
{parent=students-must-have-a-flexible-choice-of-what-to-learn}

This is a good initiative. It doesn't go nearly as deep as it needs to go to fix \x[students-must-have-a-flexible-choice-of-what-to-learn], but it is a start!

= Rooting for sport teams
{parent=cirism}

Since \x[ciro-santilli] is \x[brazilian], this is understandably a common conversation opener.

And rightly so, since \x[soccer] in particular is truly ridiculously popular in \x[brazil], where "what is your local soccer team?" is just as valid a conversation starter as "Which city are you from?".

So here goes Ciro's 2020 cynic answer:
\Q[I currently root actively against Brazil.]

The ironic reason is simple: maybe is Brazil loses more on this \x[art][useless art], then maybe people will get tired of it, and instead \x[physics][invest on more useful and beautiful arts].

Notably, what Ciro really wants people to root for are:
* the number of \x[brazilian] \x[nobel-prize]{p}, which is zero, yes, zero, as of 2020, despite a population of 210 million people. But thank \x[god] for our one https://en.wikipedia.org/wiki/Artur_Avila[Field Medal], what an epic start, even though \x[art][Mathematics is useless].
* the number of high tech companies that have a global impact, which is likely extremelly low as of 2020, and must contain only a few mammoths that dominate some local \x[commodity] market and therefore got enough money from that to expand a bit of technology worldwide. But they were mostly not classic tech \x[startup]{p} that did world innovation from the start.
* how low your country's https://en.wikipedia.org/wiki/Gini_coefficient[Gini coefficient is]

Don't get Ciro wrong.

\x[ciro-santilli-s-sport-practice][Playing sports yourself is amazing].

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?

https://en.wikipedia.org/wiki/Football_hooliganism[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 https://en.wikipedia.org/wiki/1994_FIFA_World_Cup[1994 World Cup] on the penalties and everyone went mad.

A nine year old Ciro stopped watching the https://en.wikipedia.org/wiki/1998_FIFA_World_Cup[1998 World Cup Final] of Brazil vs France half way during the 3-0 massacre and went to his front garden to kick his \x[soccer] ball on the metallic fence gate which represented a goal.

After that, Ciro went through puberty he guesses, and noticed that the \x[natural-science]{p} are just cooler.

= Governments should provide basic Internet infrastructure
{parent=cirism}

\x[company]{p} are getting too much power to distort regulations and destroy privacy.

Taxes pay for the physical car roads, so why shouldn't they also pay for the "online roads" of today?

The following services are obvious picks because they are so simple:
* \x[electronic-money]
* \x[email]
* \x[messaging-software]
* \x[calendar]
* \x[oauth], e.g.: https://franceconnect.gouv.fr/
* \x[domain-name]

Other less simple ones that might also be feasible:
* \x[geographic-information-system]. Notable anti-example: \x[united-kingdom]'s \x[ordnance-survey]'s apparently non-free-data 
* App stores

All of them should have strong privacy enabled by default: \x[end-to-end-encryption], logless, etc. \x[government]{c}{p} are not going to like this part.

And then if you ever forget a password or lose a \x[multi-factor-authentication] token, you can just go to an ID center with your ID to recover it.

= Social media as a public utility
{parent=governments-should-provide-basic-internet-infrastructure}

\x[ciro-santilli] thinks that maybe the government does not need to provide those, but it needs to \x[governments-have-lost-all-power-to-companies][regulate the fuck out of them], notably control over censorship in those platforms: \x[the-deplatforming-of-donald-trump].

More info at: https://cirosantilli.com/china-dictatorship/unjust-social-media-censorship-in-the-west

= There is value in tutorials written by beginners
{parent=cirism}
{wiki}

\x[ciro-santilli] is a big believer that there is value in tutorials written by beginners, because beginners are more likely to explain things in a way that other beginners can understand.

Even though they make more mistakes, this more approachable point of view can be very valuable.

And mistakes/omissions can be corrected on comments by people with more knowledge, so that the writer also ends up learning something new.

Related: \x[how-to-teach/publish-your-material-even-if-it-is-not-perfect].

By other people:

* https://jakobschwichtenberg.com/about/ from \x[jakob-schwichtenberg] mentions quotes C. S. Lewis book "Reflections on the Psalms"https://www.cslewisinstitute.org/webfm_send/1139{ref}:
  \Q[It often happens that two schoolboys can solve difficulties in their work for one another better than the master can. \[...\] The fellow-pupil can help more than the master because he knows less. The difficulty we want him to explain is one he has recently met. The expert met it so long ago he has forgotten. He sees the whole subject, by now, in a different light that he cannot conceive what is really troubling the pupil; he sees a dozen other difficulties which ought to be troubling him but aren't.]

= There is value of tutorials written by early pioneers of the field
{parent=there-is-value-in-tutorials-written-by-beginners}
{wiki}

Everyone is beginner when the field is new, and \x[there-is-value-in-tutorials-written-by-beginners].

For example, \x[ciro-santilli] felt it shocking how direct and satisfying \x[richard-feynman]'s \x[scientific-vulgarization] of \x[quantum-electrodynamics] were, e.g. at: \x[richard-feynman-quantum-electrodynamics-lecture-at-university-of-auckland-1979], and that if he had just assumed minimal knowledge of \x[mathematics], he was about to give a full satisfactory picture in just a few hours.

The same also applies to early original papers of the field, as notably put forward by \x[ron-maimon].

= Cirocoin
{c}
{parent=cirism}
{wiki}

\x[good]{c} pious \x[cirist]{p} earn Cirocoins.

Cirocoins are the most valuable form of currency that exists at any point.

Cirocoins can only be issued by \x[ciro-santilli].

Cirocoins are strictly nominal, and cannot be traded by recipients with anyone but Ciro, i.e. they are extremely \x[illiquid].

Cirocoins can be removed from recipients at any point if they commit non-Cirist acts.

It is not possible to give a precise number to how many Cirocoins anyone owns. This is decided on a transaction by transaction basis. Ciro can therefore only inform you if your Cirocoin balance increased or decreased, but any attached number has no value, and thus are equivalent to expressions of type "you gained/lost a Cirocoin".

The following inferior currencies come to mind:
* \x[knuth-reward-check]
* \x[erdos-number]

= Good and evil
{parent=cirism}
{wiki}

Notable lists:
* http://harmful.cat-v.org/ from \x[cat-v-org]

= Evil
{parent=good-and-evil}

Things that are not nice such as:
* \x[taboola], Outbrain, and other \x[chumbox]
* \x[blob]{child}{p}
* \x[europe-cookie-law]{child}
* adhesive inside mobile phones and more generally, \x[planned-obsolescence]{child}
* \x[jupyter-notebook]{child}
* typographical characters that look like ASCII ones, but are not the ASCII ones, e.g. https://en.wikipedia.org/wiki/Quotation_mark[typographical quotes], https://en.wikipedia.org/wiki/Dash[em-dash]. The https://en.wikipedia.org/wiki/Hyphen#Non-breaking_hyphens[non-breaking hyphen] is not even whitespace, and by def Why not stick to ASCII when ASCII is good enough?
* \x[excessive-encapsulation-is-the-root-of-much-evil][excessive encapsulation]
* \x[replacement-of-master-and-slave-terminology-from-technology]
* \x[mailing-list]{child}{p}. And to add insult to injury, HTML on \x[mailing-list] messages instead of plaintext.
* 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.
* \x[messaging-software-that-force-you-to-have-a-mobile-phone]{child}
* ads by telephone/SMS
* "state" such as global variables and object members, long live \x[programming-language][functional programming]?
* mosquitoes, the only intrinsically bad thing about \x[brazil][tropical countries]
* projects with slow compilation times
* \x[microsoft-windows]
* the 2019 \x[chinese-government]
* e-learning websites that only allows verified teachers to write content. \x[write-free-books-to-get-famous-website][Cowards who can't handle ranking algorithms].
* \x[domain-specific-language]{child}
* a build system without an out-of-tree option
* non-linear \x[git] history: https://stackoverflow.com/questions/20348629/what-are-advantages-of-keeping-linear-history-in-git
* visual programming languages like https://en.wikipedia.org/wiki/Scratch_(programming_language)[Scratch]. Waste of time. Text programming languages are already equally as visual due to indentation:
  ``
  if x == 0:
      x = 1
  ``
  Just make good serious gamedev libraries and \x[integrated-development-environment]{p} for those real languages instead.
* software that prevents you from running as root. Let me \x[fucking] shoot myself in the foot if I want to. It is better than having to deal with your hand holding \x[bullshit], which is done in a different way for every project. E.g.: https://stackoverflow.com/questions/17466017/how-to-solve-you-must-not-be-root-to-run-crosstool-ng-when-using-ct-ng/53099177#53099177
* \x[medium-website]{child}
* \x[luxury-goods]{child}
* \x[euphemism]{child}
* \x[academic-publishing] companies without full free access, e.g. https://en.wikipedia.org/wiki/Elsevier[Elsevier], https://en.wikipedia.org/wiki/Springer_Publishing[Springer], and the like. Research paid with taxpayer money must be made available for free. Researchers and reviewers all work for peanuts, while academic publishers get money for doing the work that an algorithm could do. \x[write-free-books-to-get-famous-website].
* websites without \x[oauth]
* shower room without a window to the exterior (mould!!!)
* single programs with their interface split across multiple windows, e.g. \x[gimp], \x[zynaddsubfx]
* \x[graphical-user-interface]{child}{p}
* \x[logogram]{child}{p}
* \x[infinitesimal]{child}{p}. Just use \x[limit-mathematics] instead, please
* \x[country]{child}
* \x[mailing-list]{child}
* \x[knowledge-olympiads]{child}
* \x[programming-languages-without-a-decent-dominating-package-system]{child}
* \x[closed-source-offline-software-used-by-millions]{child}
* \x[exam]{p}
* \x[security-through-obscurity]{child}{p}
* \x[dots-in-gmail-address]{child}
* things in \x[website]{p} that look like links, and behave like links, but don't let you middle click to open them on a separate tab
* \x[k-pop]{child}
* \x[numerical-computing-language]{child}
* \x[fiscal-paradise]{child}{p}
* when the front-end of an website changes an important permanent state, but the URL does not change
* \x[splash-screen]{child}{p}: you should show boot messages so that people will know what to \x[google] for when things fail. Do you think computer newbies will be afraid and have \x[nightmare]{p}?
* \x[milk-chocolate]{child}: why would you \x[eat] that instead of \x[dark-chocolate] if you are older than 10?
* \x[to-talk-about-something-without-giving-the-real-name-to-not-scare-off-the-audience]{child}
* \x[mathematical-symbol-that-looks-like-a-greek-letter-but-isn-t]
* when more than two people gather to play a \x[board-game] or \x[video-game], and two or more prople start chatting on and on about random subjects rather than concentrating on the game
* watching \x[television] while \x[eating]. Same for reading, or doing basically anything else but eat. The only acceptable activity is talking relaxedly, not about work.
* noises coming out of your \x[bicycle]. It is so hard to find where they come to fix them!!!

= Online forums that lock threads after some time are evil
{parent=evil}

Like \x[reddit]{child} and https://support.google.com/[].

And of course, \x[4chan] just takes that to a whole new level, usually closing on the same day, and then getting deleted within a week. Why would anyone contribute non-\x[illegal] content to that king of system?!

Ridiculous, so when new information comes out, we just duplicate all the old comments on a new thread again?

Remember, \x[ciro-santilli] is the \x[ciro-santilli-s-stack-overflow-contributions][Necromancer God].

\x[dan-dascalescu] agrees for \x[reddit] specifically: https://www.reddit.com/r/TheoryOfReddit/comments/9oujwf/why_archiving_old_threads_is_a_bigger_problem/

= Planned obsolescence
{parent=evil}
{wiki}

Related:
* https://en.wikipedia.org/wiki/Electronics_right_to_repair
* https://en.wikipedia.org/wiki/Phoebus_cartel

The first time \x[ciro-santilli] \x[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

Repairability scores: https://www.ifixit.com/smartphone-repairability

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, \x[europe-cookie-law][I need you now].

Oh, there is some 2017 EU action actually: (https://web.archive.org/web/20190521082737/https://www.europarl.europa.eu/news/en/press-room/20170629IPR78633/making-consumer-products-more-durable-and-easier-to-repair[archive]) https://www.europarl.europa.eu/news/en/press-room/20170629IPR78633/making-consumer-products-more-durable-and-easier-to-repair

Good article: https://www.androidauthority.com/device-repairability-807585/ (https://web.archive.org/web/20191201135434/https://www.androidauthority.com/device-repairability-807585/[archive]).

= Discounts that happen more often than not
{parent=evil}

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.

= Good
{parent=good-and-evil}

* \x[kimchi]{child}
* \x[reverse-debugging]{child}
* \x[e-ink]{child}
* \x[web-archiving]{child}
* \x[buildroot]{child}
* https://stackoverflow.com/questions/1019116/using-ls-to-list-directories-and-their-total-sizes/55519414#55519414[ncdu]
* \x[integrated-development-environment]{child}{p}
* \x[ciro-santilli-s-sport-practice][degreaser]
* https://en.wikipedia.org/wiki/Unified_Modeling_Language[UML]: while it might seem like a over-thought thing and likely is, the basic idea that understanding "one to one vs one to many vs many to many" relationships between objects and which object can see which object, is a fantastic approach towards understanding complex object oriented code
* \x[open-source-software]{child}, including \x[open-source-scientific-computing-consultancies]
* \x[computer]{child}
* https://en.wikipedia.org/wiki/FOSDEM[FOSDEM]. \x[ciro-santilli] attended in 2016, and felt extremely good together with all those amazingly smart open source hackers: https://www.quora.com/What-are-the-best-open-source-conferences/answer/Ciro-Santilli
* https://sass-lang.com/[Sass]
* \x[vimium]{child}
* \x[bisection-software-engineering]{child}
* \x[vector-graphics]{child}, notably \x[scalable-vector-graphics]{child}
* \x[ascii-art]{child}
* \x[oauth]{child}
* \x[command-line-interface]{child}
* \x[virtualization]{child}
* https://en.wikipedia.org/wiki/Anusol[Anusol]
* \x[autodidacticism]{child} and \x[self-directed-learning]{child}
* \x[end-to-end-encryption]{child}
* \x[the-criterion-collection]{child}
* \x[version-control]{child}
* \x[sqlite]{child}
* \x[guerrilla-mail]{child}
* \x[posix]{child}
* \x[static-website]{child}
* \x[freeman-dyson]{child}
* \x[open-access-academic-publishers]{child}
* \x[unconditional-basic-income]{child}
* \x[transhumanism]{child}
* \x[2fa]{child}, and notably \x[2fa-app]{child}{p}
* \x[human-readable-format]{child}{p}
* \x[wealth-tax]{child}
* \x[reproducible-builds]{child}
* \x[f-droid]{child}
* \x[can-t-get-you-out-of-my-head-by-adam-curtis-2021]{child}
* \x[drug-liberalization]{child}
* \x[wiki-binge]{child}
* \x[molecular-sciences-course-of-the-university-of-sao-paulo]

= Ciro Santilli's website
{c}
{parent=ciro-santilli}
{title2=cirosantilli.com}

\x[ciro-santilli]'s \x[website]{parent} is a dump of his \x[brain]. Ciro's still looking for the restore that backup on a new body though.

However it won't remain like that for long, because it will be migrated to \x[write-free-books-to-get-famous-website], and therefore become a brain dump of society itself.

\Video[https://www.youtube.com/watch?v=_Jtpf8N5IDE]
{title=Who Wants To Live Forever by Queen (1986)}

= Unmigrated sections of the old version of Ciro Santilli's website
{parent=ciro-santilli-s-website}

It is interesting to see how your own ideas shift with time, and \x[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.

\Include[interests]
\Include[projects]
\Include[skills]

= Why Ciro Santilli removed Disqus comments from his website in 2019-05-04
{parent=ciro-santilli-s-website}

Commit: https://github.com/cirosantilli/cirosantilli.github.io/commit/794705a201a79b5128934e69df85e3511655c03f

As Ciro started getting a lot of comments on his home page \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][about China], he decided that \x[disqus] does not scale, and that it would be more productive long term to remove it and point people to \x[github] issues instead.

Upsides of removal:
* Disqus discoverability is bad:
  * there is no decent way to search existing issues, you have to do \x[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 \x[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.

Related issue: https://github.com/cirosantilli/cirosantilli.github.io/issues/37

= DNS configuration of Ciro Santilli's website
{c}
{parent=ciro-santilli-s-website}

AKA how this https://github.com/cirosantilli/cirosantilli.github.io[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.

https://en.wikipedia.org/wiki/GoDaddy[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
``

where the IPs are obtained from: https://help.github.com/en/articles/setting-up-an-apex-domain#configuring-a-records-with-your-dns-provider (http://web.archive.org/web/20190707085154/https://help.github.com/en/articles/setting-up-an-apex-domain#configuring-a-records-with-your-dns-provider[archive]).

Under https://github.com/cirosantilli/cirosantilli.github.io/settings

* Custom domain: `cirosantilli.com`
* Enforce HTTPS: checked

And the CNAME file is tracked in this repository: \a[CNAME].

= The CSS of Ciro Santilli's website looks broken
{parent=ciro-santilli-s-website}

That which does not exist, cannot be broken.

And of course:
* \x[one-page-to-rule-them-all]
* https://motherfuckingwebsite.com

= Ciro Santilli's website is not mobile friendly
{parent=ciro-santilli-s-website}
{c}

True \x[art] cannot be consumed in mobile format.

= Mathematics typesetting setup of Ciro Santilli's website
{parent=ciro-santilli-s-website}

\x[katex] is automatically used in \x[cirodown].

= Media rationale of Ciro Santilli's website
{parent=ciro-santilli-s-website}

= One page to rule them all
{parent=media-rationale-of-ciro-santilli-s-website}

It is true that one image is worth a thousand words, but unfortunately it is also true that one image takes up at least as much bytes as a thousand words!

Having one single page to rule them all is of course the \x[ideal] setup for a website, as you can Ctrl + F one ToC and quickly find what you want.

And, with \x[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 \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][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:
* be traditional and create separate web pages
* be bold and load images as they appear on the viewport: https://stackoverflow.com/questions/2321907/how-do-you-make-images-load-only-when-they-are-in-the-viewport/57389607#57389607

  Edit: OK, it was standardized with `loading=lazy`, without need \x[javascript]!

  Now the last awesome thing would be a method that loads first images in viewport, then those below, and then those above, that would be the ultimate solution.

  This question comes close: https://stackoverflow.com/questions/7906348/change-loading-order-of-images-already-on-page

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

= Where to store images
{parent=media-rationale-of-ciro-santilli-s-website}
{id=media-rationale-of-ciro-santilli-s-website/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 https://en.wikipedia.org/wiki/Single_point_of_failure[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.
* https://commons.wikimedia.org/wiki/Main_Page[Wikimedia Commons] for videos if the following conditions are met:

  * https://commons.wikimedia.org/wiki/Commons:Project_scope[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. https://webapps.stackexchange.com/questions/135251/how-to-download-all-files-from-an-uploader-on-wikimedia-commons[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.

  Another serious downside is that they randomly rename images without redirects... e.g. they renamed https://upload.wikimedia.org/wikipedia/en/0/03/STJ_SVG_file.svg to https://upload.wikimedia.org/wikipedia/commons/8/81/Superconducting_tunnel_junction.svg

  Another "downside" is that they are extremely strict about copyright compliance. This is good because you can be pretty sure that they are correct in general, but it also means that they are very conservative, and delete things where fair use would be OK. And if those fair uses have no Wikipedia page, they won't show up anywhere.
* 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 \x[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:
* \x[google-photos] https://webapps.stackexchange.com/questions/92777/how-to-get-the-direct-link-to-an-image-in-my-google-photos
* Imgur https://webapps.stackexchange.com/questions/84535/has-imgur-stopped-giving-direct-links

The following do have direct links:
* https://www.flickr.com e.g. https://live.staticflickr.com/7437/27402357162_7d91b73cd5_z.jpg documented at https://help.flickr.com/en_us/get-the-url-of-a-flickr-photo-S1Hnnmjym Also does automatic image size conversion. But only provides ugly autogenerated URLs.
* \x[instagram] does not support upload from computer? Lol?

For videos, \x[youtube] does not allow download, even of Creative Commons videos so uploading only there is not acceptable as it prevents reuse:
* https://law.stackexchange.com/questions/8033/is-it-legal-to-download-and-modify-videos-from-youtube-licensed-under-creative-c
* https://www.quora.com/Can-I-download-Creative-Commons-licensed-YouTube-videos-to-edit-them-and-use-them

= Download Ciro's website for offline viewing
{parent=ciro-santilli-s-website}

First install \x[nvm]/NPM as shown at and then:
``
git clone https://github.com/cirosantilli/cirosantilli.github.io
cd cirosantilli.github.io
npm install
cirodown .
xdg-open index.html
``

= Why Ciro Santilli refers to himself in the third person
{parent=ciro-santilli-s-website}

Because when this gets converted to a \x[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.

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 \x[ciro-santilli-s-selfish-desires][his name is awesome]! :-) Just kidding.

This became a micro-\x[meme] in \x[4chan]:
* 2020-09-21 https://archive.vn/wip/Zz7fx (https://boards.4channel.org/g//thread/77842524/itt-weird-sites-you-found-by-accident[original]) "ITT: weird sites you found by accident" a comment reads:
  \Q[https://cirosantilli.com/ this is some guys resume who repeats his own name well over 1,000 times.]
* 2020-04-30 http://archive.is/LgDbK (https://boards.4channel.org/g/thread/75687327/interesting-website-thread[original]) "Interesting Website thread" a comment reads:
  \Q[https://cirosantilli.com/ What is even this?

  "a guy who says his name over 500 times in his resume."
  ]
Correction: cirosantilli.com is not Ciro Santili's resume. It is your life.

= How to develop Ciro Santilli's website before the Cirodown migration
{parent=ciro-santilli-s-website}

The website moved from Asciidoctor to \x[cirodown] in 2020, making this section mostly useless. But hey, history!

Ciro's website is powered by \x[github-pages] and https://github.com/asciidoctor/jekyll-asciidoc[Jekyll Asciidoc].

The source code is located at: https://github.com/cirosantilli/cirosantilli.github.io

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 \x[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: \a[markdown-style-guide#use-asciidoc]{check=0}

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 \x[mathematics-typesetting-setup-of-ciro-santilli-s-website][KaTeX server side]:
  * https://github.com/asciidoctor/asciidoctor/pull/3338
  * https://stackoverflow.com/questions/11256433/how-to-show-math-equations-in-general-githubs-markdownnot-githubs-blog
  * https://g14n.info/2014/09/math-on-github-pages/
  * https://stackoverflow.com/questions/11256433/how-to-show-math-equations-in-general-githubs-markdownnot-githubs-blog
  * https://www.quora.com/How-can-I-combine-latex-and-markdown-in-GitHub
* when GitHub dies, Ciro's website URL still lives and retains the \x[pagerank]!

= Why Ciro Santilli uses excessive ammounts of links even to things everyone knows what they are
{parent=ciro-santilli-s-website}

This website is written for \x[alien]{p}, not \x[human]{p}.

= Ciro Santilli's skills
{c}
{parent=ciro-santilli}

= Ciro Santilli's documentation superpowers
{parent=ciro-santilli-s-skills}
{c}

\x[ciro-santilli] has the power to document stuff in a way that makes using them awesome, as evidenced by his his \x[ciro-santilli-s-stack-overflow-contributions][Stack Overflow contributions] (notably those in \x[articles]), and other online contributions.

If your project does something awesome, hiring Ciro means that more people will be able to notice that it is actually awesome, and use it.

He likes to do this in parallel to contributing new features, quickly switching between his "developer" and "technical documentor" hats.

This means of course that he will develop new features a bit slower than others, but he feel it is more valuable if end users can actually use your project in the first place.

His technique is to provide upfront extremely interactive and reproducible getting started setups that immediately show the key value of the project to users.

He backs those setups with:
* scripts that automate the setup much as possible to make things enjoyable and reproducible
* a detailed description of the environment in which he tested: which OS, version of key software, etc.
* a detailed description of what is expected to happen when you take an action, including known bugs with links to bug reports
* theory and rationale on the sections after the initial getting started, but always finely interspersed with concrete examples
* all docs contained in a Git-tracked repo, with the ability to render to a single HTML with one TOC
* short sentences and paragraphs, interspersed with many headers, lists and code blocks
A prime example of kind of setup is Ciro's \x[linux-kernel-module-cheat].

While he create this setup, he inevitably start to notice and fix:
* bugs
* annoyances on the public interface of the project
* the devs were using 50 different local scripts to do similar things, all of them semi-broken and limited. Every new hire was copying one of those local scripts, and hacking it up further.
* your crappy build / test / version control setup

Exploiting this skill, however, requires you to trust him.

When he tells to managers that he's good at documenting, they always say: great, we need better documentation! But then, one of the following may happen:
* managers forget that they wanted good documentation and just tell him to code new features as fast as possible
* they don't let him own the getting started page, but rather and expect him to try and fix the existing crappy unfixable existing getting started, without stepping on anyone's pride in the process >:-)

  This makes him tired, and less likely to do a good job.

  Good documentation requires a large number of small iterative reviews, and detailed review of every line is not always feasible.

  Too many cooks.

Ciro's passion for documentation and tooling has the effect that if you have crappy documentation and tooling and don't want them to be fixed, Ciro will end up trying to fix those tools instead of doing what you tell him to do anyways, which might lead to him quitting because he can't stand the tools, or you firing him because he's not doing the job you think I should be doing. So please, don't bother hiring Ciro if you have crappy documentation and tooling.

Psychological analysis of why Ciro has this gift: \x[how-ciro-santilli-manages-to-write-so-much].

Ciro often has the following metaphor in his mind:
\Q[
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 \x[ciro-santilli-s-bad-old-event-memory][someone with a bad memory] ends up walking it increases, and that person ends up pounding the earth into a https://dictionary.cambridge.org/dictionary/english/off-the-beaten-track[beaten track] and increasing the trail clearance of the beginning of the trail at least (\x[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 (\x[postgraduate][post] and \x[undergrad] education).

And at last, Ciro Santilli \x[ciro-santilli-s-stack-overflow-contributions][comes with a bulldozer] and creates \x[write-free-books-to-get-famous-website/motivation][an autoroute that thousands of people can cruise at high speed without any effort] (Q&A, \x[open-knowledge] HTML websites).
]

= Ciro Santilli's natural languages skills
{parent=ciro-santilli-s-skills}
{c}

* \x[english-language][English]: Cambridge CPE grade B in 2004. Proficient, with minor defects in collocation/pronunciation. Learned from formal courses and from \x[ciro-santilli-s-biography][living in the UK for a few months when he was 10].
* French: TCF grade C2 in 2011. Proficient, with a bit more defects than English. \x[ciro-santilli-s-formal-education][Studied and lived in France].
* \x[brazilian] Portuguese: \x[ciro-santilli-s-biography][Native speaker]
* \x[chinese-language]: see https://github.com/cirosantilli/china-dictatorship/tree/df0852b22e585785d734ec69719eddf63f9676a5#do-you-speak-chinese

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.

= Ciro Santilli's psychology and physiology
{c}
{parent=ciro-santilli}

Ciro Santilli's energy throughout the day varies as follows:
* morning: highest
* 11AM: peak exercise performance
* after lunch: brain death. Possibly due to Ciro's partial https://en.wikipedia.org/wiki/Siesta[Spanish descent]?
* late afternoon and evening: can do some stuff

Ciro has low tolerance to https://en.wikipedia.org/wiki/Sleep_deprivation[sleep deprivation] which makes him very irritable, and \x[window-blackout][low ability to sleep if there is any light]. It must have to do with those damned https://en.wikipedia.org/wiki/Photoreceptor_cell#Ganglion_cell_(non-rod_non-cone)_photoreceptors[ganglion cell photoreceptors].

Ciro has mild https://en.wikipedia.org/wiki/Synesthesia[olfactory synesthesia] for https://en.wikipedia.org/wiki/Illicium_verum[star anise (八角, bajiao)], which is widely used in \x[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 \x[cancer] or some respiratory problem. If the \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][Chinese government] doesn't get him first that is. This also partly explains why Ciro is not a big fan of swimming.

Besides \x[chinese-cuisine][Chinese food], Ciro really likes \x[eating] fruits and \x[ciro-santilli-s-cooking/roasted-nuts], maybe partly because he was \x[ciro-santilli-s-biography][born in Brazil], and partly because of monkey nature, see \x[ciro-santilli][his Chinese name]. At home he is known as "水果大王" (the big king of the fruits). Ciro is also a sucker for yoghurt (natural without added sugars and full fat, fat-tree yoghurt is terrible, often eaten with fruits). Ciro's "favorite drink" could be tonic water with freshly squeezed lemon. Tied with fresh fruit juices. \x[chocolate]{c}-wise, although not a huge fanatic, a Lindt \x[dark-chocolate] with https://www.amazon.com/dp/B00OLP0E9W[whole hazelnut pieces bar] will do the job.

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 \x[open-source-software] contributions, or if you find something that your friend will like

Ciro has some respiratory allergies. When he was around 5, he had relatively serious \x[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 \x[democrat] due to his high \x[ciro-santilli-s-self-perceived-compassionate-personality][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.

= Ciro Santilli's self perceived creative personality
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

Ciro like to interpret this as him having "a creative \x[personality]" with the tradeoff of generally \x[don-t-be-a-pussy][not being amazing at his well defined jobs].

Ciro is a \x[high-flying-bird-vs-gophers][high flying bird scientist].

Ciro is obsessed by that which is "quirky". This also often \x[quote-afraid-to-do][has a parallel with "naughty"]. He often fantasizes about an imaginary parallel between that feeling and \x[jobs-and-wozniak-s-blue-box].

Ciro's natural fight-or-flight response is to hide in a little corner, and try to solve the problem out. Then get distracted and start \x[procrastinating]. And then he tries to solve the unsolvable. Someone Ciro barely new once told him quite correctly:
\Q[In the event of war, you would be the type that hides away and makes the bombs.]
This is also perhaps why Ciro likes https://mtg.fandom.com/wiki/Prison_deck[prison decks] in \x[magic-the-gathering]. You just sit on your corner, making yourself safer and safer, until the opponent can't do you any harm and concedes.

There are of course infinitely many videos on the "entrepreneurial mindset" online, and it is impossible to know if they are \x[bullshit], or if everyone just feels like that, but OK, just let Ciro feels that he is specially creative will you?

\Video[http://youtube.com/watch?v=3A0pMX2r2LE]
{title=What Predicts \x[academic]{c} Ability? by \x[jordan-b-peterson] (2017)}
{description=Good quotes:
\Q[Creative people continuously step outside of the domain of evaluation structures]
and:
\Q[
If you are creative and you go off on tangents all the time, there's some probability that one of those tangents is going to be exactly what is needed at the time, and you are going to become hyper-successful as a consequence

\[but the probability of that being the right time and place for the idea is extraordinarily low\]

The sensible thing to tell anybody is "you shouldn't do it, your probability of success is so low, that its better to just to something sensible".

But the problem with that, is that creative people can't do that, because they are creative. A creative person who isn't being creative, they just wither and die.
]
Which brings \x[here-s-to-the-crazy-ones] to mind.
}

Ciro also one heard a story, likely apocryphal, but still nonetheless resonated with him, that went something like this (TODO find source, Google wasn't helping, stuff that happened before website as usual):
\Q[
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 https://en.wikipedia.org/wiki/Polytetrafluoroethylene[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 \x[the-best-youtube-channels][watching crap on YouTube], because he knows that the hard task will hurt his mind. Then one day he wakes up and says: OK, \x[fuck] it, let's do it, and does it.

Once Ciro got a performance review from a colleague that said:
\Q[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.

= Ciro Santilli's self perceived compassionate personality
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

\x[ciro-santilli] fantasizes that he is more compassionate than average.

He feels that this manifests itself notably through his desire/ability to \x[ciro-santilli-s-documentation-superpowers][create amazing documentation content] and notably \x[write-free-books-to-get-famous-website/motivation][for free].

Also related is Ciro's worry about \x[social-inequality] and how to reduce it.

In \x[school], especially before \x[university], Ciro felt that he always treated "the ugly/unpopular" (it is horrifying that such perception of a person exists! but true) girls really well, which led some of them to like him romantically. In part this was de to \x[ciro-santilli-s-self-perceived-compassionate-personality] and \x[enter-through-the-narrow-gate] approach to life. But was also partly Ciro's fault, he should have been clearer that he was not truly interested, but he was also lonely, curious about how it was like having girlfriend, and it feels good to have someone like you. This was a \x[sin].

He also feels like he treated working class employees (and don't forget, this is \x[brazil], e.g. his \x[sao-remo-the-favela-next-to-usp][building janitors in São Paulo lived in the nearby favela]!) with extreme equality, sometimes even better, than other richer people.

One thing Ciro does not do however is give money to beggars on the street. Those beggars do make Ciro feel extremely bad for not giving, but he feels that they must be \x[drug-addict]{p} to be out on the street like that, and that this money would be better invested in \x[write-free-books-to-get-famous-website]. But maybe this is just wrong. How fucked up the world is, how far away are we from \x[unconditional-basic-income]???

Once Ciro was hanging out with one of his father's on a group tourist, and she was a lesbian borderline/actually activist social reform person, and she promptly gave to a beggar without batting an eye, and that made a big impression on Ciro, making him feel even worse about himself. 

It must be said that at times this compassion can be a weakness see Ciro's trip to the \x[municipal-market-of-sao-paulo].

= Effortless effort
{parent=ciro-santilli-s-psychology-and-physiology}
{title2=無爲, wuwei}
{wiki=Wu_wei}

https://zh.wikipedia.org/wiki/无为_(道家)

\x[ciro-santilli] 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 and irresponsible, but \x[bill-gates][Bill] https://quoteinvestigator.com/2014/02/26/lazy-job/[says] (http://archive.is/kcXuQ[archive]) this isn't necessarily bad:
\Q[I will always choose a lazy person to do a difficult job because a lazy person will find an easy way to do it.]

As another way to put it, Ciro has very little "self-discipline", and acts very heavily based on small passions that take hold of him. Related: \x[high-flying-bird-vs-gophers].

You may also say that Ciro is an \x[idealist], because what to do when the food will run out and you have to hunt? To which \x[jesus] replies at https://www.biblegateway.com/passage/?search=Matthew+6%3A25-34&version=NIV[Matthew 6:25-34 "Do Not Worry"] (https://web.archive.org/web/20190801221835/https://www.biblegateway.com/passage/?search=Matthew+6%3A25-34&version=NIV[archive]):
\Q[
Therefore I tell you, do not worry about your life, what you will \x[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.
]
Also closely related: \x[man-shall-not-live-by-bread-alone].

Ciro is also fond of the description of the work method of some writer that his father told him about, possibly https://en.wikipedia.org/wiki/Haruki_Murakami[Haruki Murakami 村上 春樹]. Could not find sources, to treat as apocryphal for now. Basically something like:
\Q[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.]

Another good one is Hemingway's work method:
\Q[Always stop while you are going good and don't 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.]

Ciro generally feels that many major developments in his life happened "by miracle", beyond his control. So when he saw the quote by \x[carl-jung]:
\Q[Until you make the unconscious conscious, it will direct your life and you will call it fate.]
Ciro tends to do major decisions in his life due to uncontrollable passion rather than logic.

Ciro believes that this is linked to his \x[ciro-santilli-s-self-perceived-creative-personality][self perceived creative personality], Because Ciro gives in to such uncontrollable passions, this leads him to do things which are \x[effortless-effort][more unusual/creative], because other more logical people would write such options off as weird.

\Video[http://youtube.com/watch?v=ZzaUGhhnlQ8]
{title=\x[alan-watts]' wuwei talk.}
{description=During this talk, Alan quotes \x[jesus]: https://biblehub.com/matthew/18-3.htm[Matthew 18:3] "Truly I tell you, unless you change and become like little children, you will never enter the kingdom of heaven.".}

\Video[http://youtube.com/watch?v=2yWx7cqiSJI]
{title=\x[alan-watts]' "How to turn work into play" talk.}

Related:
* \x[procrastination]
* \x[weekend]

= Ciro Santilli's bad old event memory
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

\x[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 \x[art] consumption focuses on innovative \x[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 \x[write-free-books-to-get-famous-website] and his \x[ciro-santilli-s-stack-overflow-contributions][Stack Overflow contributions] and his related \x[ciro-santilli-s-documentation-superpowers].

It also somewhat leads Ciro to like \x[physics] and \x[mathematics], because in these fields you \x[formalization-of-mathematics]["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 \x[software-engineer][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 \x[write-free-books-to-get-famous-website/motivation][had become a scientist], he would without doubt be an experimentalist, just like in this reality he is a \x[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.

Other effects of having a bad memory include:
* code duplication, or a constant fear of it at least, because Ciro forgets that some functionality exists already
* meeting aversion, because everything that is not recorded will fade away
* passion for \x[backward-design], because by the time a piece of knowledge learnt in school might be useful (and 99.99% won't), it will have been long forgotten

A \x[quora] answer! https://www.quora.com/Are-there-any-benefits-of-having-a-poor-memory/answer/Ciro-Santilli

Related: https://jakobschwichtenberg.com/about/ from \x[jakob-schwichtenberg]:
\Q[
I'm a physicist and I try to write down things during my own learning process.

In some sense, one of the biggest benefits I have over other people in physics is that I'm certainly not the smartest guy! I usually can't grasp complex issues very easily. So I have to break down complex ideas into smaller chunks to understand it myself. This means, whenever I describe something to others, everyone understands, because it's broken down into such simple terms.
]

= Ciro Santilli's selfish desires
{parent=ciro-santilli-s-psychology-and-physiology}
{c}

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 https://en.wiktionary.org/wiki/TEOTWAWKI[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 \x[open-source-software] however, a higher fame percentage seems more likely than money.

Ciro Santilli's \x[ciro-santilli-s-homonyms][full name is quite unique] and already dominated by this \x[ciro-santilli].

Searching just for just https://www.google.com/search?q=%22santilli%22["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: \x[interesting-members-of-the-santilli-family].

Searching just for just https://www.google.com/search?q=%22ciro%22["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 https://web.archive.org/web/20190610202635/http://ciro.com/[as of 2019], so it's not bad, let them be.

At the next useless gamified level, an honorary https://en.wikipedia.org/wiki/Order_of_the_British_Empire[OBE] and more ambitiously https://en.wikipedia.org/wiki/Fellow_of_the_Royal_Society[ForMemRS] from the \x[royal-society] post nominal letters would be nice.

The ultimate dream however would be to beat https://en.wikipedia.org/wiki/Cyrus_the_Great[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 https://github.com/cirosantilli/china-dictatorship/tree/4e5ad752ffe70c26fa0ff6a78e6eb64913153e33#falun-gong[Falung Gong] becomes the dominant religion in 2000 years like Christianism did, catapulting the Judaism benefactor Cyrus into greater fame, then there is some hope for Ciro as well.

= Ciro Santilli's ideal city to live in
{parent=ciro-santilli-s-psychology-and-physiology}
{c}

Ciro's \x[ideal] city to live in contains the following in order of decreasing importance:
* high tech
* beach and warm weather, influenced by Ciro's love for the \x[ciro-santilli-s-biography][City of Santos where he once lived]
* enough recent Chinese immigrants to sustain \x[chinese-cuisine]

Could https://en.wikipedia.org/wiki/California[California] be Ciro's https://en.wikipedia.org/wiki/Mecca[Mecca]?

= Cirodance
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

During his teenage years, Ciro created an innovative new dance style combining elements of the various corporal practices that he studied a bit of across the years:
* Kung Fu/Taichi
* https://en.wikipedia.org/wiki/Samba_(Brazilian_dance)#Samba_Ax%C3%A9[Brazilian Axé] and Capoeira
* Breakdance
* Yoga
* Modern dance

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 \x[enter-through-the-narrow-gate][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 \x[high-flying-bird-vs-gophers][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 \x[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 from around June 2010 entitled "A Piriguete da Poli !!" ("\x[university-of-sao-paulo][Poli's] bitch" in Portuguese) with comment "Sem comentarios... foi a atraçao da cervejada" (No comments... was the main attraction of the beer party) dancing the https://www.youtube.com/watch?v=Tfrdu7i56Mg[Piriguete by MC Papo] Brazilian https://en.wikipedia.org/wiki/Funk_carioca[Funk carioca] song. But the video was removed at some point, they were likely afraid of getting sued, the URL was https://www.youtube.com/watch?v=T969azGjIeE[] as shown at https://www.facebook.com/cirosantilli/posts/133333123357495[], but this was before Ciro noticed that every good thing on the web goes down and became an obsessive \x[web-archiving][web archiver]. But in any case, the title gives an idea of the amazing style of Ciro's https://en.wikipedia.org/wiki/Artistic_inspiration[furor poeticus] Axé performance on that day. If the video owner ever reads this message, please please restore the video, or send Ciro a copy. TODO: which channel was it on? Knowing that Ciro would be able to try and contact them.

One legendary episode linked to Cirodance was when Ciro was living in \x[paris] and jobless around 2014 (but not destitute as he leached from his girlfriend). Cirodance was his main physical activity at the time, and \x[place-de-la-republique], where the skateboarders hung out due to the perfect wide concrete floor and relatively close to https://en.wikipedia.org/wiki/Place_de_la_Bastille[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 \x[ecole-polytechnique][Polytechnicien] was mistaken for a homeless person. And Ciro \x[ciro-santilli-s-psychology-and-physiology][liked that].

As of 2021, \x[googling] "cirodance" leads to https://www.youtube.com/watch?v=tyvv4ddL2so "Ciro Dance" in which comedian "Ciro Priello" (no \x[wikipedia] page at the time) participates in a comedy show with a "silly dance" (TODO this likely has a name) described in the comments as:
\Q[
It's a brand new Italian format. Some comedians are grouped into a room where they have full access to different kind of items and tools. Laughing means losing. Each of them can try to make the other laugh. The winner gets some money but all of them would have give that to charity.

The dancing guy, Ciro, after only 10 minutes from the start did this nonsense dance. It's silly bit fun nonetheless I guess
]

= Ciro Santilli's body
{parent=ciro-santilli-s-psychology-and-physiology}

Hand great span https://en.wikipedia.org/wiki/Span_(unit): 0.22m

UK shirt size: L.

UNIQLO leggings size: L.

Shoe size 30 year old, as in \x[ciro-santilli-s-hardware/2017-04-nike-flex-experience-rn-6-grey-running-shoes]:
* US: 11
* UK: 10
* EUR: 45
* cm: 29

31 year old:
* Height:
* Weight:
* Chest: 94cm
* Waist: 81.5cm
* Hip: 85.5cm
* Inner leg: 92.0cm
* Length of back: 71cm (from base of neck to knuckle height)
* Collar: 38cm
* Sitbone distance (https://en.wikipedia.org/wiki/Ischial_tuberosity[ischial tuberosity]):
  * sitting on cardboard: 110mm, this method felt accurate
  * https://www.youtube.com/watch?v=xSWlwzqGKik water method: 90mm/100mm. Small butt!?
* Arm sleeve length: 61.5 cm
* Erect \x[penis] length: just kidding, just kidding. \x[ciro-santilli-s-wife] would kill him.
* rest heart rate: 60 BPM

= Ciro Santilli's knee
{c}
{parent=ciro-santilli-s-body}

If https://en.wikipedia.org/wiki/Achilles%27_heel[Achilles' had his heel], Ciro had his knee.

First \x[ciro-santilli-s-formal-education][during University in Brazil] while trying https://www.youtube.com/watch?v=HWXD0JbwT-w[a kick up] during the development of \x[cirodance] his knee went a bit weird for a few weeks.

Then, just after arriving in France for \x[ecole-polytechnique], the boys were playing indoor \x[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 \x[inflammation] went away, but then he tried to play more soccer, but the knee was not as stable as before, and once he tried to run full speed, it slipped and hurt him a bit more (less severely) and so he gave up. For some reason it was not visible on the tomography made at the hospital.

Maybe Ciro should have investigated more though, certainly an experienced doctor could have done a hand pressure exam to determine which joint was damaged manually even. That was a medical failure.

So from this day on Ciro gave up on all interesting sports, and confined himself to more repetitive stuff like gym weights and cycling: \x[ciro-santilli-s-sport-practice]{full}. At Polytechnique he was forced to take up swimming as his mandatory sport, that was unbearably boring.

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.

= Ciro Santilli's legs sometimes itch when he runs
{c}
{parent=ciro-santilli-s-body}

\x[ciro-santilli] has an undiagnozed condition where his upper legs and lower torso often start to itch when he runs, to the point of being extremely annoying and removing all pleasure form the activity.

If some doctor knows why this could be, please tell him!!!

The problem is a bit hard to reproduce however, and Ciro hasn't been able to determine which exact condition triggers it: temperature, nutrition, something else?

Ciro believes that this is not chiefly due to transpiration, but rather to the impact motion that running does on the muscles, as he has felt something similar on his arms some times while cycling in very rough terrain, which made his arms shake in a similar fashion.

Interestingly, Ciro didn't feel that at all when he \x[ciro-santilli-s-sport-practice][played soccer enthusiastically as a child], and he was one of the fastest runners of the group for sure at that time. So he's not sure if it started when he got older, or if it is just because the difference in workloads between soccer and running.

= Ciro Santilli's sport practice
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

As a \x[brazil][Brazilian], \x[ciro-santilli] used to really love playing \x[soccer] (\x[rooting-for-sport-teams][but not watching it]), until \x[ciro-santilli-s-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 \x[santos-sao-paulo-brazil][the flat wet sand beach of Santos]. \x[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 \x[ciro-santilli-s-psychology-and-physiology][hates water], so swimming is out of the question. What could be more boring than going back and forth on a fixed location a million times to gain some milliseconds?

And so Ciro has been left with the gym as the only main option for a while.

Running would have been a consideration, but \x[ciro-santilli-s-legs-sometimes-itch-when-he-runs].

This is until he ended up living in a place with decent roads for cycling in the late 2010's, which led to \x[ciro-santilli-s-cycling].

= Ciro Santilli's cycling
{c}
{parent=ciro-santilli-s-sport-practice}

At first, \x[ciro-santilli] was just cycling to work with an extremely shitty bike he bought on a second hand shop. He knew nothing about bicycles, and the seat was way, way too low, the seller should be prosecuted for selling that to him. Ciro later understood that this was even a woman's bicycle with a low top tube! That's what you get for \x[ciro-santilli-s-cheapness][being so cheap].

But then at some point he bought another \x[ciro-santilli-s-hardware/kross-bicycle-2017][slightly less cheap touring bicycle], but this time from a much more trustworthy source: a colleague who was leaving the company and moving out, and this one was actually reasonable. It was the right size to start with!!! And so at some point, out of boredom, Ciro started to adventure out of town on weekends to neighbouring villages, and it just felt so good.

Ciro had started by taking his laptop-\x[computer] on his backpack, and stopping at a cafe on some nearby town where he would do some coding over the weekends. Especially during winter, \x[ciro-santilli-s-drug-experiences][drinking tea with a cake] as a break during bicycle ride was the best thing ever. In one place, there was even an electric heater that you could sit in front of. But at some point, those rides start being too short, and you start doing longer real rides without your computer. And since those take more time, you generally don't feel like staying on a far place for a very long time. So you end up creating the "real ride" category and "a small ride to get somewhere nice to code" category clearly split.

He had had the "cyclists high" version of "runner's high". A light euphoria in your head, or a pulsating feeling of pleasure in your legs and lower torso. This reminded Ciro of:
* a video where a ex-\x[heroin] addict describes taking heroin as having an \x[orgasm] in your entire body, also known as "body high"https://www.quora.com/Whats-the-difference-between-a-head-high-and-a-body-high{ref}https://youtu.be/Fa-BktzJrWs?t=610{ref}. In cycling it is mostly a https://www.urbandictionary.com/define.php?term=Legasm[legasm] though.
* \x[trainspotting-1996]'s \x[orgasm] scene https://www.youtube.com/watch?v=zUaXbM_lZj0
except that it is not as intense, and does not destroy your life.

Like other \x[drug]{p}:
* it is addictive
* you will have some \x[bad-trip]{p}, 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, and it later feels great to completely master a situation you had suffered previously with.

  Ciro has also come to crave the need to go back to every bad trip spot, with better planning and circumstances, and make it feel amazing, to get the feeling that he has mastered the spot.
* you will have hangover after a long amazing ride
* the high become less intense the more you ride, and turns into something you have to do to just to feel normal. And that keeps you fit forever :)

Cycling just gives you an amazing sense of freedom! Ciro likes to imagine himself as a migratory duck when he is riding his bike on cold or wet days.

The prospect of being able to reach nice new places keeps the experience fresh for a very long time.

Ciro likes to decide location on a whim on the day prior. He checks the wind to try and ride parallel to it, and then let's his mind wonder, until an image comes up, some some nice place Ciro was to once. And so the next day, he goes in that general direction again.

Each time you try to find a new cool location, and sometimes you just stumble into amazing stuff without knowing about it. Ciro likes to keep open to new experiences. Keep your eyes open, and if something looks curious, just check it out! Talking to locals for tips is also a great way to find new stuff.

One thing that Ciro often feels is rather excited on the way out, and lightly afraid of going futher at each step because of the return. And during the return, there is a greater feeling of worry and resignation, as you are more tired, you've seen what you wanted to, and you just have to get yourself homehow, often going back through paths that you know better. This reminds Ciro of the ending of the film \x[in-the-realm-of-the-senses-1976], in which the sex obsessed couple plays a strangling sex game, and the man says that it hurts too much when she stops strangling him, and so she strangles him to death. She also cut his \x[penis] and carried it around in a bag afterwards, but that not relevant to the cycling analogy.

It is funny, but sometimes this gives Ciro the same feeling that he had as a child playing 2D exploration RPGs such \x[pokemon] and \x[final-fantasy-vi] as you explore the wild: Ciro can often hear the FF VI overworld soundtrack, or imagine that a Charmeleon is hidden just around the corner of this new towns he's never been to before. Because in the places you live and have walked a million times, you know there is no magic. But in a new place that you're visiting for the first time? Anything is possible there.

The main difference from video games is that the real world is much much more detailed and diverse, and the freedom is much more real. Also you can't just walk into any house or field like in the games, and there are more empty or repetitive areas that can sometimes get boring since they weren't hand designed. And if you die on a car crash there are no continues.

It also gives Ciro the magic feeling of awe that he had as a child when walking around his beloved hometown of \x[santos-sao-paulo-brazil] in the sunshine. And sometimes the feeling of excitement that he had as a child before getting gifts for Christmas. Ciro then once watched a \x[youtube] video where ex-\x[heroin] addicts describe the feeling of taking heroin (orally, TODO can't find the video anymore, I think https://www.youtube.com/watch?v=Fa-BktzJrWs[it was this guy]) exactly like that: the anticipation of getting Christmas gifts, and he instantly understood.

Ciro also likes to pick random gravel from time to time. He believes that his style of route choice reflects \x[ciro-santilli-s-self-perceived-creative-personality]: Ciro likes to go where few other people go. And he only needs to go there once to be satisfied, not master and speedrun it afterwards.

As you start cycling, you can feel the endorphins levels rise little by little, and your mind go deeper and deeper into slumber, getting close and closer to the ground, until you reach a point where you feel like you are part of the road. \x[trainspotting-1996]'s overdose scene comes to mind: https://www.youtube.com/watch?t=66&v=_IDJpB9de3E

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 https://www.youtube.com/watch?v=zFZ0aYz71Tw[you hit the wall]! This is especially true at the beginning of the addiction, but with increased \x[drug-tolerance] and knowledge/awareness/preparation, this starts to feel more normal.

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 \x[software-engineer], trying to repair a mechanical system like his bike reminds Ciro very strongly of how the \x[deep-tech][physical engineering is brutal]. Millimetric changes can make huge differences, it is \x[mind-blowing]! Good lesson to have in mind.

Another thought that often comes to Ciro's mind is that bicycles are not regular possessions because they break a lot. Rather, they must be seen as a kind of transportation tax that you have to pay to feel amazing riding them rather than feel crappy riding a bus or train.

One interesting feeling that Ciro gets from cycling is that it is an intermediate between walking and riding a car. Ciro felt this especially strongly when he lived near work, at a distance that you could either walk or cycle. When you walk, you can just see so much more of the surroundings, it is astonishing. When you cycle, you just go much faster, and you attention is much more towards the front, so you feel surroundings much less. On the other side, cycling allows you to feel different things. E.g. in wider open areas, there isn't much detail to see anyway, so you can better feel those areas on the faster speed of the bike. A similar feeling applies to how pedestrians feel like flies when you are on a bike, just like you must feel like a fly to car drivers. Ciro later learnt that a person of similar literary ability to his, Ernest Hemingway, https://en.wikiquote.org/wiki/Cycling[had a famous related similar quote]:
\Q[
It is by riding a bicycle that you learn the contours of a country best, since you have to sweat up the hills and can coast down them.... Thus you remember them as they actually are, while in a motorcar only a high hill impresses you, and you have no such accurate remembrance of country you have driven through as you gain by riding a bicycle.
]

Although Ciro does not run because of his \x[ciro-santilli-s-legs-sometimes-itch-when-he-runs][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, \x[ciro-santilli-s-bicycle-wisdom][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[http://youtube.com/watch?v=fWYaClbNPYw]
{title="Running Vs. Cycling | Who Is Faster - GCN Or GTN?" by GCN (2017)}
{description=Talks about the interesting http://www.bingleyharriers.co.uk/events/harriers-vs-cyclists/[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.}

\Video[https://www.youtube.com/watch?v=cUg8rC9yu6U]
{title=\x[final-fantasy-vi] (SNES) Overworld theme.}
{description=This is what cycling feels like!!! The song is known in the West as "Terra's Theme" and it was composed by https://en.wikipedia.org/wiki/Nobuo_Uematsu[Nobuo Uematsu], who composed the entire game, and other entries of the Final Fantasy series.}

= Ciro Santilli's bicycle wisdom
{c}
{parent=ciro-santilli-s-cycling}

Sometimes, these are more than just mechanics, but also have deeper life analogues. The title of https://en.wikipedia.org/wiki/Zen_and_the_Art_of_Motorcycle_Maintenance[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: \x[try-to-fix-your-own-bike-before-taking-it-to-the-shop]
* if the wind is blowing against you on the way out, it will likely blow behind you on the way back. But remember that the other way around also applies.
* always take one extra clothing layer than what you think you will need in your back pocket or sport bag, especially when time is changing fast in Sprint and Autumn. The weather on the road outside of town can change very quickly!
* if you took a turn, and it feels wrong, stop to check the map, and possibly backtrack to safety. When it feels wrong, it usually is a bad idea, e.g. roads where cars are too fast/too many. But if you take a wrong turn and it feels right, then follow it without fear and see what it leads to!
* don't carry a speedometer on your bike. Analysis can be done afterwards on \x[strava]. The only measurement that matters is "how awesome am I feeling right now?". \x[buddhism][Live in the moment] instead of checking your speedometer every 10 seconds.
* cycle when you body calls it out of addiction, not out a goal that you've made up that must be reached

With less philosophical metaphors:
* learn how much water and food you need to take for a trip. Otherwise, you \i[will] bonk at some time, when you least expect, it happens very suddenly.

  And then you better hope to God that you can find a food shop nearby. Luckily this was the case for Ciro's first and only bonk so far.

  You will also learn that, surprise surprise, \x[carbohydrate]{p} that you ate one or two days before a ride stay stored in your liver and muscles, and also greatly affect how quickly you will bonk, thus the concept of \x[carbohydrate-loading].

  \Video[https://www.youtube.com/watch?v=zFZ0aYz71Tw]
  {title="How Not To 'Hit The Wall' Or 'Bonk' – GCN's Guide To Fuelling While Cycling" by Global Cycling Network (2016)}

  And surprise surprise: heat can also make you bonk! Who would have thought!
* 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 \x[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[http://youtube.com/watch?v=KM6mzE5lQ0w]
  {title="How To Get A Perfectly Clean Chain - GCN's Top Tips For Cleaning Your Drivetrain".}
* 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 \x[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 bicycle parking \x[hell], because due to \x[anonymity] and the large number of distractions, it becomes exponentially more likely that someone will \x[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.
* gear change matters
  * 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!
  * https://www.youtube.com/watch?v=43ci68I23hA[spin to win], AKA learn to user your gears
  * 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 \x[shit] which \x[amazon-company] 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: \x[discounts-that-happen-more-often-than-not]
* always take your lights off the bike into your bag when you park, anywhere, and for any amount of time, even if a quick stop. \x[drug-addict]{c}{p} are everywhere, always ready love to steal and resell them.
* sometimes you do something stupid like going into a really muddy path, and it is really fun, because you've never been there in your life. But then your bike gets really dirty, and your feet are wet and freezing, and you promis yourself you will never do something that stupid again. But then you do it again in a different location, because it was too much fun. \x[once-more-unto-the-breach]{c} just comes to Ciro's mind every such time. Embrace this.

= Try to fix your own bike before taking it to the shop
{parent=ciro-santilli-s-bicycle-wisdom}

Sometimes you get annoyed to death with your bike not breaking or changing gears perfectly as you would like, and the people at the bike shop never do the job well enough.

The problem with bike shops is that the employees are already swamped with work, and they don't get paid any extra for doing more work.

As a result, paradoxically, they are often happier, and respect you more if you are trying to get them to help you to fix your own bike!

Also, for the same reason, they don't have the time to go for a quick test ride after a fix to ensure that the \x[software-engineer][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 and any missing tools on \x[amazon-company]
* 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!

= In which roads is it OK to ride your bike based on car speed limits
{parent=ciro-santilli-s-cycling}

https://bicycles.stackexchange.com/questions/45204/at-what-point-does-a-road-become-too-busy-fast-to-ride-on-safely/71911#71911

= Ciro Santilli's e-soulmates
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

These are people which Ciro never met personally, and who might not know that Ciro exists, or might never had any direct 1-2-1 online contact with Ciro, but Ciro \x[religion][is convinced are his brothers in some other dimension] due to how many opinions or behaviours he feels they share:
* \x[dan-dascalescu]{child} due to articles such as:
  * \x[english-as-a-universal-language-by-dan-dascalescu-2008]
  * https://www.reddit.com/r/TheoryOfReddit/comments/9oujwf/why_archiving_old_threads_is_a_bigger_problem/ see also \x[online-forums-that-lock-threads-after-some-time-are-evil]
  * https://web.archive.org/web/20130922192354/http://wiki.dandascalescu.com/reviews/online_services/web_page_archiving see also \x[web-archiving]
  * random posts on \x[openstreetmaps], and about \x[china]: https://help.openstreetmap.org/questions/29300/legality-status-of-mapping-activity-in-china?page=1&focusedAnswerId=42167#42167
* https://stackoverflow.com/users/55075/kenorb see also \x[ciro-santilli-s-stack-overflow-contributions]
* \x[sylvain-poirier]{child}

= How Ciro Santilli manages to write so much
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

* Suck at your job:
  * \x[ciro-santilli-s-documentation-superpowers]
  * \x[don-t-be-a-pussy]
* Have bad memory: \x[ciro-santilli-s-bad-old-event-memory]
* Seek glory over \x[money]: \x[ciro-santilli-s-selfish-desires]
* Try to make a carrer out of it: \x[write-free-books-to-get-famous-website]
* Be born compassionate: \x[ciro-santilli-s-self-perceived-compassionate-personality]
* He doesn't actually write that much, but when he does he focuses on higher impact stuff, see remarks about "He doesn't like to refresh the homepage looking for easy reputation" on \x[ciro-santilli-s-stack-overflow-contributions]{full}
* Contribute in a place where it is super easy for people to give you upvotes if they like your stuff. This way, you will see the uploads, and that will motivate you to re-read your content and make it more perfect with additions and corrections.

= Ciro Santilli personality type test results
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

= Ciro Santilli Myers-Briggs Type Indicator
{c}
{parent=ciro-santilli-personality-type-test-results}

\x[ciro-santilli] feels that \x[ciro-santilli-myers-briggs-type-indicator]{parent} is much more random/hard to determine than the \x[big-five-personality-traits]

Upon a quick look \x[ciro-santilli] evaluates himself as https://www.16personalities.com/intj-personality[INTJ].

= Ciro Santilli Big Five Personality traits
{c}
{parent=ciro-santilli-personality-type-test-results}

This is how \x[ciro-santilli] evaluates himself on the \x[big-five-personality-traits]{parent}:
* Openness to experience; very high, see: \x[ciro-santilli-s-self-perceived-creative-personality]
* Conscientiousness: low, Ciro is driven very strongly by \x[effortless-effort][internal passion] rather than external expectations
* Extraversion: high online, e.g. \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china], but much lower in the real world, no patience for something he's not \x[googled] for in the last 5 seconds
* Agreeableness: high, see e.g. \x[ciro-santilli-s-self-perceived-compassionate-personality]. But Ciro has built some tolerance disagreement online for it online during \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china], you've got to fight for what is right.
* Neuroticism: medium high, Ciro does have some anxiety. It does help get things done sometimes, but it also sometimes gets in the way.

= Ciro Santilli's dreams
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

\x[ciro-santilli]'s dreams almost all include the following aspect: Ciro is trying to do something mundane, like climbing a hill, walking across town, etc. but doing so it extremely difficult. The hill is too steep, he gets lost, and things which are easy to use in real life are impossibly hard to use in the dream.

So they are a bit like \x[nightmare]{p}, but not that bad. Just really annoying and tiresome. Still, Ciro does enjoy o visiting the semi-real places those dreams bring him to, much for the same reasons he \x[ciro-santilli-s-cycling][enjoys cycling].

Ciro attributes this type of dream to his occupation as a \x[software-engineer], because that's basically the feeling you get all day from it: why isn't this working!!! It is so basic!!!

= Ciro Santilli's cheapness
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

When Ciro was a teenager, he was extremely cheap e.g. for clothes, food and \x[video-game]{p} 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 \x[unconditional-basic-income][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 \x[ciro-santilli-s-formal-education][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 \x[luxury-goods][hates clothes that are just to look good like costumes though].

Living close to a small \x[favela], \x[sao-remo-the-favela-next-to-usp], 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 Santilli's love advice
{c}
{parent=ciro-santilli-s-psychology-and-physiology}

In the field of Love and Friendship, Ciro is a big believer in the merciless application of \x[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.

Never tell a woman you like her before she is in your bed.

If someone likes you and you don't like them as much, make that clear to them. Don't put this off, be it for \x[ciro-santilli-s-self-perceived-compassionate-personality][compassion], curiosity, loneliness, or \x[narcissism].

= Ciro Santilli's drug experiences
{c}
{parent=ciro-santilli}

\x[ciro-santilli] never did any \x[illegal] drugs, because he:
* doesn't want to help fund \x[organized-crime]. Notably, Ciro is for complete \x[legalization-of-drugs] of all drugs
* already has better more sustainable drugs like \x[ciro-santilli-s-wife][love], \x[ciro-santilli-s-cycling][cycling], learning the \x[natural-science]{p} and \x[ciro-santilli-s-selfish-desires][fame]. He (or more realistically, the world) \x[trainspotting-1996][chose life for him].
so don't expect any amazing stories here.

Like https://en.wikipedia.org/wiki/Word_of_Wisdom[LDS believers], Ciro never drinks coffee nor smokes, and only drinks alcohol and tea sparingly, because they are all addictive \x[drug]{p} and bring no net increase of energy and concentration.

Ciro prefers to only enjoy a glass of tea \x[ciro-santilli-s-sport-practice][when going out cycling on a cold day] (https://en.wikipedia.org/wiki/Earl_Grey_tea[Earl gray], with milk, no sugar), or get a half pint of beer when going out with friends to a pub.

Ciro only got reasonably drunk twice on his life:
* once when he was quite young, likely pre-10 years old, while visiting an uncle's home, and adults were having a very nice sweet and thick type of alcoholic cocktail, and Ciro drank a bit too much and that made him really really stupid
* once while studying at \x[university-of-sao-paulo], somehow someone was giving free beers at one of the parties (at which Ciro practiced \x[cirodance]). And since Ciro had always been a \x[ciro-santilli-s-cheapness][cheap-ass], he thought, hey, this is a good chance to try it out. Ciro remembers that this made him a bit euphoric, active, very stupid, and a bit \x[horny] (though of course, he got no pussy as usual).

Later in life, around the time of \x[ciro-santilli-s-wedding][his wedding], there were guests around all the time, and he was drinking beer with them all the time. Then one day, during lunch, Ciro felt a weirdly strong desire to drink one more pint. It was at this point that Ciro realised first-hand what mild, but real, alcohol addiction felt like, and he didn't get that drink, and swore from then on to never drink more than one glass a week, and only with friends at a bar after work.

\x[richard-feynman] tells a very similar story on his \x[surely-you-re-joking-mr-feynman] chapter :
\Q[
The people from the airlines were somewhat bored with their lives, strangely enough, and at night they would often go to bars to drink. I liked them all, and in order to be sociable, I would go with them to the bar to have a few drinks, several nights a week.

One day, about 3:30 in the afternoon, I was walking along the sidewalk opposite the beach at Copacabana past a bar. I suddenly got this treMENdous, strong feeling: "That's just what I want; that'll fit just right. I'd just love to have a drink right now!"

I started to walk into the bar, and I suddenly thought to myself, "Wait a minute! It's the middle of the afternoon. There's nobody here, There's no social reason to drink. Why do you have such a terribly strong feeling that you have to have a drink?" - and I got scared.

I never drank ever again, since then. I suppose I really wasn't in any danger, because I found it very easy to stop. But that strong feeling that I didn't understand frightened me. You see, I get such fun out of thinking that I don't want to destroy this most pleasant machine that makes life such a big kick. It's the same reason that, later on, I was reluctant to try experiments with LSD in spite of my curiosity about hallucinations.
]

One notable drug early teens Ciro consumed was \x[magic-the-gathering], see: \x[magic-the-gathering-is-addictive]{full}.

= Ciro Santilli's biography
{c}
{parent=ciro-santilli}

Maybe \x[ciro-santilli] should do something useful and remarkable so that someone might actually want to read his biography in the first place. But hey, \x[effortless-effort][procrastination].

\x[ciro-santilli] was born in \x[brazil] in a small/medium city in the https://en.wikipedia.org/wiki/São_Paulo_(state)[State of São Paulo] in https://en.wikipedia.org/wiki/Anno_Domini[1989 AD].

References:
* https://openlettersreview.com/posts/rise-and-kill-first-by-ronen-bergman
* https://www.sefaria.org/Sanhedrin.72a.4?lang=bi&with=all&lang2=en

The Sikh knife https://en.wikipedia.org/wiki/Kirpan[Kirpan] also comes to mind.

Non-violence only works when you have https://en.wikipedia.org/wiki/Nonviolence[bodies to spare from your followers].

In the year 2000, Ciro lived with his parents for 10 months in the \x[coventry] because his father took some courses at the \x[university-of-warwick]. This was Ciro's most important educational experience, because it taught him the Holy Language of \x[english-language][English], which infinitely expanded Ciro's Internet horizons, and shaped Ciro's \x[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 https://hearsallacademy.org/[Hearsall Community Primary School] had two classes dedicated to foreign students to learn English before integrating with the British students. There were a several kids from Kosovo there due to the \x[kosovo-war] which was just ending, and it was there that Ciro made his first \x[chinese] friend, yet unaware of course of the \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][role the country would later play in his life]. One particularly fun memory was that of playing \x[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 https://en.wikipedia.org/wiki/Header_(association_football)[header], and the soaked sponge ball was soaked and splashed Ciro with dirty water. Good days.

Some other good memories are of reading the first two \x[harry-potter]{p}, \x[games-young-ciro-santilli-played][playing and mostly watching other kids play Pokemon on their Game Boys and Pokemon trading cards], and going to a nearby commons playing field and woods, as it typical throughout the UK. Ciro also played some rugby with a local boys team TODO name? but for some reason his team was always crushed when they went to nearby towns to play against other teams. And Ciro also went with his family or with school to some nearby attractions, like Stratford-Upon-Avon (Shakespeare's hometown), and some castles.

After Coventry, Ciro's family lived in the city of \x[santos-sao-paulo-brazil][Santos, São Paulo, Brazil, which made a deep impression on Ciro], until he left to go to the \x[university-of-sao-paulo] in 2007.

\Video[http://youtube.com/watch?v=jIic9_ZhyC8]
{title="When https://en.wikipedia.org/wiki/Ali_G[Ali G] met the Beckhams | Comic Relief" (2001)}
{description=Ciro's father really liked Ali G. when they were in the UK in the year 2000, and Ciro would watch along, not fully getting all jokes, but still amuzed by his irreverence. This interview with https://en.wikipedia.org/wiki/David_Beckham[David] and https://en.wikipedia.org/wiki/Victoria_Beckham[Victoria] Beckham is perhaps one of Ali's best performances.}

\Video[https://www.youtube.com/watch?v=efgIm9YPZvE]
{title=Wicked wicked jungle is massive song from Ali G Indahouse (2002)}
{description=OK, the last Ali G video, I promise. Maybe.}

= The bullying of young Ciro Santilli
{c}
{parent=ciro-santilli-s-biography}

When \x[ciro-santilli] was very young, about 6, he was a \x[fatty], and other \x[evil] boys picked on him.

Ciro was mor stupid than now, and continued to try and hang out with those evil kids to show them he was cool too or that he was strong, and so 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 https://en.wikipedia.org/wiki/Ecclesiastes_3#Verse_20[are shit] like everyone else, pretend to laugh with them, take their post and repost it on your public profile, and silently stay away from those idiots.

Never show any weakness.

If a fight is likely, always be ready, always have your friends nearby, be as well armed as the enemy, and never be outnumbered.

On the \x[internet], never care about e-bully posts, either block them immediately, and anyone that likes their posts, or follow https://github.com/cirosantilli/china-dictatorship/tree/56f678e776fabf738142bbc3d8e10c6f1c49bd5e#reply-policy[Ciro's reply policy].

Call parents or other authorities as soon as there is risk of physical harm. Better a living free \x[don-t-be-a-pussy][pussy] than dead or in youth detention for murder. Similar advice applies if you are going to jail I guess.

If a physical fight is inevitable however, https://biblehub.com/luke/6-29.htm[ignore Jesus this once and don't give the other face], but rather follow the Talmud and https://en.wikipedia.org/wiki/We_shall_fight_on_the_beaches[fight all out on the beaches]:
\Q[If someone comes to kill you, rise and kill first.]

Perhaps it was good to learn those lessons early, before the stakes were too high. Adults fake it much better, and therefore it is harder to learn those lessons from them, but they are still just as evil on the inside. It might also have contributed to \x[ciro-santilli-s-self-perceived-compassionate-personality].

= Ciro Santilli's formal education
{c}
{parent=ciro-santilli-s-biography}

\x[ciro-santilli] participated in a double degree program, so he obtained have engineering degrees in both:
* 2010 - 2014: \x[ecole-polytechnique]

  Master 2 degree in \x[applied-mathematics].

  Best French engineering schools in https://www.timeshighereducation.co.uk/world-university-rankings/2013-14/subject-ranking/subject/engineering-and-IT[the Times Ranking 2013] (http://web.archive.org/web/20190828083945/https://www.timeshighereducation.com/world-university-rankings/2014/subject-ranking/engineering-and-IT#!/page/2/length/25/sort_by/rank/sort_order/asc/cols/undefined[archive])
* 2007 - 2010: \x[university-of-sao-paulo]

  Automation and Control Engineer at the \x[polytechnic-school-of-the-university-of-sao-paulo].

  The best South American university https://www.timeshighereducation.co.uk/world-university-rankings/2013-14/world-ranking/region/south-america[in the Times Ranking 2013] (http://web.archive.org/web/20190828083945/https://www.timeshighereducation.com/world-university-rankings/2014/subject-ranking/engineering-and-IT#!/page/2/length/25/sort_by/rank/sort_order/asc/cols/undefined[archive]) in all subjects.

  Ciro finished the course with honors of "The Best Student in Automation and Control of the year 2013".

See also further remarks on Ciro Santilli's \x[linkedin]: https://www.linkedin.com/in/cirosantilli/

Despite studying in great institutions with great teachers, Ciro feels that:
* \x[ciro-santilli-s-skills][most of what he knows] came from the Internet, man pages, books and his parents
* \x[the-most-important-projects-done-by-ciro-santilli][actual projects] matter much more than those pieces of paper called Diplomas. You should not do like Ciro who basically did nothing but school mandated work, but \x[don-t-be-a-pussy][instead grow some balls and focus much more or entirely on your projects]

This motivated Ciro to work on \x[write-free-books-to-get-famous-website].

= Ciro Santilli's musical education
{c}
{parent=ciro-santilli-s-biography}

Ciro's parents put him to play the piano. This is partly influenced by Ciro's paternal grandfather, an energetic Italian descendant who liked music

\Image[Six_year_old_Ciro_Santilli_when_his_grandfather_offered_him_an_electronic_keyboard.jpg]

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 \x[write-free-books-to-get-famous-website/motivation][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 \x[santos-sao-paulo-brazil][Santos], before going to university, Ciro somehow got into acoustic and \x[electric-guitar].

The \x[electric-guitar] environment was much less formalized in general, and he took courses with http://www.maurohector.com.br/[an awesome teacher] (https://web.archive.org/web/20190107231749/http://www.maurohector.com.br/[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 \x[the-best-modern-instrumental-western-music-of-all-time][guitar player].

In his early teens, Ciro listened to the usual canned music his friends listened to: \x[music-teenager-ciro-santilli-liked-to-listen-to], until he started to stumble upon \x[jazz].

Ciro remembers clearly rainy \x[weekend][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, see e.g. \x[the-best-modern-instrumental-western-music-of-all-time]. https://digitaldreamdoor.com/index.html was a good resource from those times!

Ciro ultimately decided \x[ciro-santilli-s-bad-old-event-memory][his bad memory] and overwhelming \x[write-free-books-to-get-famous-website/motivation][passion for the natural sciences] would better suit a scientific carrier.

He also learnt that the \x[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 \x[music][passion for the music has remained], and who knows how it has influenced his life.

= Ciro Santilli's family
{c}
{parent=ciro-santilli-s-biography}

= Ciro Santilli's mother
{c}
{parent=ciro-santilli-s-family}

= Ciro Santilli's wife
{c}
{parent=ciro-santilli-s-family}

See: https://cirosantilli.com/china-dictatorship/wife

= Ciro Santilli's wedding
{c}
{parent=ciro-santilli-s-wife}

= Ciro Santilli's children
{c}
{parent=ciro-santilli-s-wife}

Count: 0.

= Interesting members of the Santilli family
{parent=ciro-santilli}

Found through Google with no direct relation known to \x[ciro-santilli]:
* https://en.wikipedia.org/wiki/Santilli[]: \x[wikipedia] page of the glorious family, Santillis with a wikipedia page:
  * https://en.wikipedia.org/wiki/Ruggero_Santilli[Ruggero Santilli]: "fringe science guy", by far dominates Google as of 2019. Created the respectable http://www.santilli-galilei.com/[R.M. Santilli Foundation]
  * https://en.wikipedia.org/wiki/Ray_Santilli[Ray Santilli] made a fake https://en.wikipedia.org/wiki/Alien_autopsy[1995 alien autopsy movie], YouTube sample: https://www.youtube.com/watch?v=sVcaT2QnoDs
  * http://en.wikipedia.org/wiki/Ivana_Santilli[Ivana Santilli]: Canadian singer, pop-electric-chill: https://www.youtube.com/watch?v=hQRuVN0H8dM
* accounts on important websites
  * https://github.com/santilli \x[anonymous] \x[github] https://web.archive.org/web/20191220222515/https://github.com/santilli[as of 2019]
  * http://santilli.com/ for rent by https://realnames.com/ (https://en.wikipedia.org/wiki/RealNames[wiki page]) as https://web.archive.org/web/20190526003433/http://santilli.com/[of 2019]
  * https://twitter.com/santilli is Marcel Santilli the guy who took the Twitter handle of the family

    https://www.linkedin.com/in/marcelsantilli

    Also Brazilian and tech related like Ciro Santilli.
  * https://www.youtube.com/user/TheOverthrowShow https://thepetesantillishow.com/ Pete Santilli, American Conservative news commentator show, makes Ciro cringe of boredom. At least he has a passion.

Possibly related variants:
* Santillo: http://en.wikipedia.org/wiki/Will_Santillo[Will Santillo] who makes erotic artistic photos
* Santilly, a town in Saône-et-Loire, France: https://en.wikipedia.org/wiki/Santilly,_Saône-et-Loire
  * http://santilly.com/ redirects to https://www.pompes-funebres-santilly.com/fr/[], a French funerary service

= Ciro Santilli's homonyms
{parent=interesting-members-of-the-santilli-family}
{c}

If any of you ever read this, do send me an email to \x[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 \x[soccer] that can be found through \x[google]:
* https://twitter.com/ciro_santilli
* https://www.facebook.com/profile.php?id=100009065024069
* https://www.instagram.com/ciro.santilli/
Ciro used to \x[ciro-santilli-s-sport-practice][like playing soccer too]! :-)

Unknown:
* https://twitter.com/cirosantilli7
* https://www.youtube.com/channel/UCY44wYp2nEuhMRBU1kHkdCA

= Ciro Santilli's projects
{parent=ciro-santilli}

Major projects can be seen at: \x[the-most-important-projects-done-by-ciro-santilli]{full}.

A summary of minor projects is given at: \x[ciro-santilli-s-minor-projects].

This section is a dump for anything else, to keep those sacred first sections clean.

\Include[write-free-books-to-get-famous-website]

= All GitHub Commit Emails
{c}
{parent=ciro-santilli-s-projects}

https://github.com/cirosantilli/all-github-commit-emails

= Facebook profile face dump
{parent=ciro-santilli-s-projects}

In 2016 Ciro made a script downloaded \x[facebook] profile pictures.

This was possible at the time without any login by using a 2010 profile ID dump from originally announced at: https://blog.skullsecurity.org/2010/return-of-the-facebook-snatchers since profile picture access was not authenticated.

The profile ID dump was downloadable through a \x[bittorrent] named `fbdata.torrent` of about 2.8GB, mostly compressed. Doing:
``
find . -type f | xargs sha256sum | sha256sum
``
on Ubuntu 20.04 gives:
``
2c9a739c9c5495e38ebab81fc67411b7c6562f139dcb8619901a3f01230efdd5
``
This dump widely reported e.g. on \x[hacker-news] at: https://news.ycombinator.com/item?id=1554558[].

At some point however, Facebook finally started to require tokens to view public profile pictures, thus making such further collection impossible, e.g. as of 2021: https://developers.facebook.com/docs/graph-api/reference/v9.0/user/picture[] mentions:
\Q[Querying a User ID (UID) now requires an access token.]
This is also mentioned e.g. at: https://stackoverflow.com/questions/11442442/get-user-profile-picture-by-id[]. This major privacy flaw was therefore finally addressed at some point, making it impossible to reproduce this project.

Ciro downloaded 10 thousand of those pictures, and did facial extraction with: https://stackoverflow.com/questions/13211745/detect-face-then-autocrop-pictures/37501314#37501314

He then created single a video by joining 10 thousand of those cropped faces which can be uploaded e.g. to \x[youtube]. Ciro later decided it was better to make those videos private however, as sooner later he'd lose his account for it.

\x[company]{c}{p} like \x[youtube] blocking this kind of content is the type of thing that makes companies take longer to fix such gaping privacy issues, and is a bit like \x[security-through-obscurity]. A video makes it clear to everyone that there is a privacy issue very effectively. But people prefer to hide and look away, and then 99% of people who know nothing about tech get their privacy busted by actual criminals/government spies and never learn about it.

But now that Facebook finally fixed it, it's fine, no need for the video anymore.

= Always out-of-date and rarely update list of open source contributions by Ciro Santilli
{parent=ciro-santilli-s-projects}
{scope}

This is mostly stuff from before 2016 when Ciro was anxious to document his contributions to \x[ciro-santilli-s-biography][get a job].

Most of the projects here are also minor contributions, or Ciro later noticed that the projects were not useful enough to work on and that he was actually wasting his time.

= Size scale
{parent=always-out-of-date-and-rarely-update-list-of-open-source-contributions-by-ciro-santilli}

Some of the contributions are subjectively self evaluated based on:
* How many significant lines changed (no indentation changes, moves, mass refactoring, trivial tests, etc.):

  | 0
  | only trivial changes

  | 1
  | < 20

  | 2
  | < 150

  | 3
  | > 150
* How hard it was to make it. 4 algorithmic lines are harder than 100 \x[web-development]/documentation lines.

= Patches
{parent=always-out-of-date-and-rarely-update-list-of-open-source-contributions-by-ciro-santilli}

= Merged by others
{parent=patches}

Only patches which were reviewed by at least one person with push permission will be listed here.

This may also include patches which were rejected in favor of another patch, but strongly influenced the merged patch.

|| Date
|| Project
|| Size
|| Description

| 2019-09
| \x[katex]
| 1
| https://github.com/KaTeX/KaTeX/pull/2091[Create globalGroup option to place definitions in global scope]

| 2018-06
| raspi3-tutorial
| 0
| https://github.com/bztsrc/raspi3-tutorial/pull/34[Explain how to see UART1]

| 2018-05
| \x[buildroot]
| 1
| https://github.com/buildroot/buildroot/commit/45719594d08024df97db55333f8ab3ba2b4fc23e[ltp-testsuite: add --with-open-posix-testsuite]

| 2018-03
| \x[buildroot]
| 1
| https://github.com/buildroot/buildroot/commit/8a6e30efdeb9f31d51a92ed465373f4128f55e8a[qemu_x86_64_defconfig: fix kernel header version after bump to 4.15]

| 2017-11
| \x[cocos2d]
| 1
| https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/pull/304[Recreate libfmod.so.6 symlinks]

| 2017-10
| \x[cocos2d]
| 1
| https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src/pull/155#issuecomment-336760545[Make bullet use -fPIC]

| 2017-07
| https://github.com/KhronosGroup/OpenCL-Headers[OPenCL Headers]
| 0
| https://github.com/KhronosGroup/OpenCL-Headers/issues/18[C11 anonymous structs / unions should allow xyz notation for vector types]

| 2017-06
| \x[linux-insides]
| 0
| https://github.com/0xAX/linux-insides/pull/489[Mention Buildroot in addition to ivandaviov/minimal]

| 2017-06
| \x[opengl-tutorial-org]
| 0
| https://github.com/opengl-tutorials/ogl/pull/17[Use existing empty layout on feed.xml]

| 2017-04
| https://github.com/ssloy/tinyrenderer[Tiny Renderer]
| 0
| https://github.com/ssloy/tinyrenderer/pull/10[Add gitignore]

| 2017-02
| https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers[Vulkan Loader]
| 0
| https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/pull/1536[Use nproc instead of ncpu]

| 2017-01
| https://github.com/boostorg/geometry[Boost Geometry]
| 1
| https://github.com/boostorg/geometry/issues/376[What is "QPoint::double" in doc/example_adapting_a_legacy_geometry_object_model.qbk ?]

| 2016-12
| \x[freetype-gl]
| 1
| https://github.com/rougier/freetype-gl/pull/144#event-905730810[GLFW Ubuntu package works on 16.10]

| 2016-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/816[Add C variable printf debug snippets]

| 2016-09
| https://bitbucket.org/osrf/gazebo[Gazebo]
| 1
| https://bitbucket.org/osrf/gazebo/pull-requests/2460/add-a-world-to-the-gui_overlay_plugin_time/diff[Add a world to the gui_overlay_plugin_time example]

| 2016-07
| https://github.com/googlesamples/android-vulkan-tutorials[Android Vulkan Tutorials]
| 1
| https://github.com/googlesamples/android-vulkan-tutorials/pull/12[Use android API 24]

| 2016-07
| https://github.com/ivandavidov/minimal[minimal linux live]
| 0
| https://github.com/ivandavidov/minimal/pull/30[Fix time sh instead of sh time]

| 2016-06
| \x[ghdl]
| 0
| https://github.com/tgingold/ghdl/pull/81[Typo severals -> several in Invoking doc]

| 2016-06
| \x[ghdl]
| 1
| https://github.com/tgingold/ghdl/pull/80[Document GCC backend needed to generate executables]

| 2016-06
| \x[ghdl]
| 0
| https://github.com/tgingold/ghdl/pull/79[Typo debugger -> debugged in BUILD.txt]

| 2016-06
| \x[ghdl]
| 0
| https://github.com/tgingold/ghdl/pull/77[Typo carray -> carry in full adder example]

| 2016-05
| https://github.com/wavexx/facedetect[facedetect]
| 1
| https://github.com/wavexx/facedetect/pull/7#event-675223551[Add example to extract faces with imagemagick]

| 2016-05
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1940[Create data science section and add Kaggle to it]

| 2016-05
| \x[opengl-tutorial-org]
| 0
| https://github.com/opengl-tutorials/ogl/pull/18[Add empty line before triple quotes]

| 2016-05
| https://github.com/bulletphysics/bullet3[Bullet Physics]
| 1
| https://github.com/bulletphysics/bullet3/pull/612[Improve HelloWorld]

| 2016-04
| \x[freetype-gl]
| 1
| https://github.com/rougier/freetype-gl/pull/114[Find out how to compile on Ubuntu and document it]

| 2016-03
| \x[ranger-file-manager]
| 0
| https://github.com/hut/ranger/pull/506[gitignore install_log.txt generated by make install]

| 2016-03
| \x[ranger-file-manager]
| 1
| https://github.com/hut/ranger/pull/511[Add %confdir macro]

| 2016-03
| \x[ranger-file-manager]
| 1
| https://github.com/hut/ranger/pull/507[set_bookmark for directories other than the current]

| 2016-02
| \x[jami-software]
| 2
| https://tuleap.ring.cx/plugins/tracker/?aid=446[Create working Android video hardware decoding prototype]

| 2016-02
| \x[jami-software]
| 1
| https://github.com/savoirfairelinux/ring-project[Started the one command build which was later made official]

| 2016-01
| https://github.com/haoel/leetcode[leetcode]
| 1
| https://github.com/haoel/leetcode/pull/90[Java LRUCache with LinkedHashMap]

| 2015-12
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1727[Add InterviewBit to problem sets]

| 2015-10
| \x[linux-insides]
| 0
| https://github.com/0xAX/linux-insides/pull/227[Recommend ivandaviov/minimal to generate initrd]

| 2015-08
| https://github.com/programble/bare-metal-tetris[bare-metal-tetris]
| 0
| https://github.com/programble/bare-metal-tetris/pull/2[make clean also removes tetris.iso]

| 2015-08
| https://github.com/RWTH-OS/eduOS[eduOS]
| 0
| https://github.com/RWTH-OS/eduOS/pull/7[README typos Binutils and NASM]

| 2015-08
| \x[gdb]
| 0
| https://sourceware.org/ml/gdb-patches/2015-07/msg00744.html[python: fix Linetable case to LineTable in docstrings and comments]

| 2015-07
| \x[gdb]
| 0
| https://sourceware.org/ml/gdb-patches/2015-08/msg00013.html[Remove outdated comment from call-rt-st.exp]

| 2015-07
| \x[gdb]
| 0
| https://sourceware.org/ml/gdb-patches/2015-08/msg00015.html[Fix broken CONTRIBUTE link to GNU insignificant changes]

| 2015-07
| \x[gdb]
| 1
| https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=7b849db4f213d6734b4121ca5e5cab3341a5140c[py-linetable.c: Fix doc of LineTable.source_lines' return type]

| 2015-07
| https://en.wikipedia.org/wiki/GNU_Binutils[Binutils]
| 1
| https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=7e3023528162de7760a0e7e487aa81bbf44cb6a9[Clarify case requirements for gas pseudo-ops]

| 2015-07
| https://github.com/aquynh/capstone[Capstone]
| 0
| https://github.com/aquynh/capstone/issues/419[Website typos at beyond_llvm]

| 2015-07
| https://github.com/xolox/vim-session[Vim Session]
| 1
| https://github.com/xolox/vim-session/pull/81[auto_save_to option added]

| 2015-05
| https://en.wikipedia.org/wiki/Netwide_Assembler[NASM]
| 0
| https://bugzilla.nasm.us/show_bug.cgi?id=3392310[doc: typo occationally]

| 2015-05
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1468[Computer Science from the Bottom Up]

| 2015-05
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1461[problem-sets: leetcode]

| 2015-05
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1459[Papers we love]

| 2015-04
| https://en.wikipedia.org/wiki/AlternativeTo[alternativeTo]
| 0
| https://alternativeto.net/user/cirosantilli/added/[icanprove.com]

| 2015-04
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1443[Knapsack Problems]

| 2015-04
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1442[LSB]

| 2015-04
| \x[honza-vim-snippets]
| 0
| https://github.com/honza/vim-snippets/pull/561[java: prinlna to print array]

| 2015-04
| \x[ebookfoundation-free-programming-books]
| 0
| https://wcipeg.com[PEG Judge]

| 2015-03
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7912[Convert many JavaScript # links to buttons]

| 2015-03
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8092[Factor permission check in issuable finder]

| 2015-03
| https://github.com/spring-projects/spring-integration-samples[Spring]
| 0
| https://github.com/spring-projects/spring-integration-samples/pull/130[Typo Gardle -> Gradle]

| 2015-02
| \x[linux-insides]
| 0
| https://github.com/0xAX/linux-insides[Make x86 paging reference title clearer]

| 2015-02
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlab-shell/pull/184[Ignore .bundle]

| 2015-02
| \x[ebookfoundation-free-programming-books]
| 0
| https://github.com/vhf/free-programming-books/pull/1329[Problem sets: CareerCup]

| 2015-01
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/511[Fix false positive hyphen list item expansion]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7999[Append in place for strings and arrays]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7878[Remove unneeded password_confirmation from seed]

| 2015-01
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8307[Typo in project API events comment]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7987[Replace match via get with get on routes]

| 2015-01
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7925[Remove or prepend underscore _ to unused method arguments]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7905[Change always passing visible false tests]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7951[Make blob new and edit file editors more uniform]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8096[Replace regex methods by string ones]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8430[Simplify SSH fingerprint regexp extraction]

| 2015-01
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8520[Add tests for disabled blob edit button cases v2]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8504[permission.md align table, rm double empty line]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8324[Remove commit indicator from path on Commits tab]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8230[Make protected branch perms explicit in doc]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8497[doc workflow markdown style]

| 2014-12
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7989[Disallow POST to compare as it does not create objects]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7782[Sort .gitignore]

| 2014-12
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7957[Remove unused Project#code function]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8256[Remove unused has_gitlab_shell3? method]

| 2014-12
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7978[Add tests for tree edit routes]

| 2014-12
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7886[Disable / hide MR edit blob button if cannot edit]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7882[Use blob local instead of instance]

| 2014-12
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7894[Fix dev user seed: ID was used twice]

| 2014-12
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8466[Fix Rake tasks doc README: add top level h1]

| 2014-12
| https://github.com/ruby/ruby[Ruby]
| 0
| https://github.com/ruby/ruby/commit/512705e62d4929753845e449397cedeff0433f05[Typo close -> closes.]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/246[Add tests for normalize outer whitespace removal]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/249[spec_tests make --pattern affect --dump-tests]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/247[Add --number option to run a single test by its id]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/250[Don't raise exception on invalid UTF-8 output]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/248[spec_tests add short options for common parameters]

| 2014-12
| \x[commonmark]
| 0
| https://github.com/jgm/CommonMark/pull/240[Ignore pyc files]

| 2014-12
| \x[commonmark]
| 1
| https://github.com/jgm/CommonMark/pull/240[Expose failure to normalize whitespaces]

| 2014-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/488[Markdown bold and italic]

| 2014-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/484[Markdown links URLs from the clipboard]

| 2014-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/483[Markdown autolinks]

| 2014-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/486[Let the short version of links not have title.]

| 2014-11
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/487[Fix markdown fenced code blocks.]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlab-shell/pull/193[Delete tags and branches that start with hyphen]

| 2014-11
| \x[gitlab]
| 3
| https://github.com/gitlabhq/gitlab-shell/pull/186[Restore hooks PATH before calling ruby]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8251[Factor regex error messages with spec API tests]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7944[Move new blob commit message textarea below editor]

| 2014-11
| https://github.com/bradfitz/gitbrute[gitbrute]
| 0
| https://github.com/bradfitz/gitbrute/pull/4[Usage]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8254[Factor GITLAB_SHELL_VERSION get method]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8168[Create dev fixture projects with fixed visibility]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8258[Factor using Repository#path_to_repo]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8094[Remove unused authenticate_user from project#show]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8233[Remove dead Event#new_branch? method]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8236[Don't output to stdout from lib non-interactive methods]

| 2014-11
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/7903[Fix version of test seed branches to specific revisions]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8234[Factor '0' * 40 blank ref constants]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7863[Transform remove blob link into button]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7516[Update default regex message to match regex]

| 2014-11
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8222[Continue strings with backslash instead of append]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8182[Factor behaviors.scss constants]

| 2014-11
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8241[Remove unneeded backslash: "/" == "/"]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8231[Fix push not allowed to protected branch if commit starts with 7 zeros]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8223[Use require spec_helper instead of relative path]

| 2014-11
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8211[Fix doc rake import md style]

| 2014-11
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8213[Factor lib backend gitlab shell path]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8127[Run user select Js only where needed]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7866[Use button type=submit instead of input]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8120[Only run profile js on pages that need it]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8123[Better js -> URL projects map to reduce unneeded execution]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8005[Use Gitlab.config instead of Settings everywhere]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8155[Show nothing instead of unassigned on issues]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8125[Only run namespace select js when needed]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8158[Merge File basename and dirname into split]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8159[Fix import.rake failed import if project name is also an existing namespace]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8150[Remove unused variable user at lib/gitlab/markdown]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8088[Use argument list for sh instead of string]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8114[Only run avatar chooser Js on pages that need it]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8118[Remove whitespace link between user group avatars]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8139[Fix doc raketasts import md style]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7994[Remove unneeded app/finders config.autoload path]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/8117[Improve grack auth hooks comment.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8093[Remove unused admin/projects#repository method]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7961[Factor admin logs]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8029[Remove unused filter from ProjectsController]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8028[Remove unused dev_tools helper.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8030[Factor authorize_push! and authorize_code_access!]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8087[Replace match with end_with: more readable, faster]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8102[Use @project on controllers, don't call method]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8101[Remove `param[:project_id]` at admin controller]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8097[DRY mentioned in magic note constant]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8113[Factor group forms]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8109[State on CONTRIBUTING that people should fix line style of touched lines]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/8110[Export all coffee classes with @]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7856[Fix missing flash on file edit error from web UI.]

| 2014-10
| https://github.com/jnicklas/capybara[Capybara]
| 0
| https://github.com/jnicklas/capybara/pull/1424[Fix History typo.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7942[Make new and edit file submit more uniform]

| 2014-10
| \x[libgit2]
| 1
| https://github.com/libgit2/libgit2[Join typedef and struct definitions in single file]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7938[Factor dashboard helper methods]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7983[Factor issue and merge request services]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7981[Replace www.gitlab.com with about.gitlab.com]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7991[Improve formatting of app/finders/README.md]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7985[Remove outdated comment from commits_controller]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7963[Factor markup? gitlab_markdown? into new method]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7379[Remove unused title parameter]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7940[Make Spinach test names consistent]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab-shell/pull/184[Ignore .bundle]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab-shell/pull/183[Ignore tags file]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab-shell/pull/182[Split one instance variable per line]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7919[Factor commit message textareas]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7948[Remove outdated comment on the project test seed]

| 2014-10
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7947[Remove assignment without effect.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7858[Add parenthesis to function def with arguments.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7834[Remove test line without effect because no should.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7922[Improve remove file commit message textarea placeholder]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7880[Replace :erb filter with plain HAML]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7881[Remove blame lines added leading whitespace]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7921[Improve new file commit message textarea placeholder.]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7920[Simplify custom MR good commit message hint]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7930[Move group feature step to match test location]

| 2014-10
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7904[Titleize blob action buttons.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7914[Remove statement without effect.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7913[Fix dev merge seed: update testme to gitlab-test.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7911[Remove trailing whitespace from views.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7889[Remove def project from tests that inherit it.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7873[Replace testme with gitlab-test.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7897[Add predictable merge requests on dev seed.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7895[Prevent email sending on admin dev seed.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7898[Only show text wrap and diff notes for text in merge requests.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7862[Add web UI file CRUD tests.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7864[Remove type submit from button_tag since default.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7877[Replace empty? nil? with blank?.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7875[Typo indiciated -> indicated.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7835[Remove unnecessary page. from tests.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7803[Remove ununsed CONTRIBUTING link on edit MR form.]

| 2014-09
| \x[gitlab]
| 1
| https://gitlab.com/gitlab-org/gitlab-development-kit/merge_requests/22[Add g++ dependency to ubuntu install.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab_git/pull/44[Hound prefer single quotes.]

| 2014-09
| \x[libgit2]
| 0
| https://github.com/libgit2/libgit2/pull/2570[Remove unused buf variable from path/core test.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7823[Only clone GitLab Shell on tests if necessary.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7816[Factor fork button view.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7838[evaluate -> execute_script when return not needed.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7837[evaluate_script history -> go_back and go_forward.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7833[Factor current_url + URI.path into current_path.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7793[Replace javascript:; links with buttons.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7795[Factor .add-diff-note active state.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7792[Fix link_to_reply_diff.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7804[Factor issue and MR edit form error list.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7807[Factor error and success methods from services.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7772[Set textarea resize:vertical by default.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7657[Factor out commit list from compare and new MR.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7821[Prefix Spinach features with Spinach::Features::.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7814[Typo it -> its.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7801[Factor zen mode.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7771[Ignore tags file.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7797[Improve zen mode internals.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7791[CONTRIBUTING typos.]

| 2014-09
| https://github.com/chjj/marked[Marked]
| 1
| https://github.com/chjj/marked/pull/414[Add browser usage to README]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab_git/pull/43[Typo herlper -> helper.]

| 2014-09
| \x[libgit2]
| 1
| https://github.com/libgit2/libgit2/pull/2567[Factor 40 and 41 constants from source.]

| 2014-09
| \x[libgit2]
| 1
| https://github.com/libgit2/libgit2/pull/2572[Replace void casts with GIT_UNUSED.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/419[Typo "di ff" -> diff.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/417[Remove trailing whitespace.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/416[Gitignore rdoc/.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/415[Factor File.join in test sandbox_init.]

| 2014-09
| \x[ruby-on-rails]
| 1
| https://github.com/rails/rails/pull/16790[Explain ERB space removal.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab_git/pull/39[Update README to match Md style in CONTRIBUTING.]

| 2014-09
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7726[Typo localy -> locally]

| 2014-09
| \x[vader-vim]
| 1
| https://github.com/junegunn/vader.vim/pull/16[Add run-tests script.]

| 2014-09
| \x[vader-vim]
| 2
| https://github.com/junegunn/vader.vim/pull/22[Add SyntaxAt and SyntaxOf helpers.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/417[Remove trailing whitespace.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/416[Gitignore rdoc/.]

| 2014-09
| \x[libgit2-rugged]
| 0
| https://github.com/libgit2/rugged/pull/415[Factor File.join in test sandbox_init.]

| 2014-09
| \x[pro-git-book]
| 1
| https://github.com/progit/progit/pull/878[Mention packed-refs.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7472[Add link to fixed SHA version on blob.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7678[Factor new issue and edit MR forms.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7677[Fix missing to on reassign Merge Request text email to unassigned.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7661[Fix missing to on reassign Merge Request email to unassigned.]

| 2014-09
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/60[Run multimarkdown in compatibility mode.]

| 2014-09
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/69[Link to stmd.]

| 2014-09
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7211[Add users with deterministic username and password to development seed.]

| 2014-09
| \x[ruby-on-rails]
| 0
| https://github.com/rails/rails/pull/16774[Shorten ActionView::Base doc summary line.]

| 2014-09
| \x[ruby-on-rails]
| 1
| https://github.com/rails/rails/pull/16773[Clarify Rails uses erubis not stdlin ERB.]

| 2014-08
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/432[Rename node p to pipe]

| 2014-08
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7641[Typo.]

| 2014-08
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/431[README improvements: md style, typos, fix links.]

| 2014-08
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/429[Add tex hyperlink snippets.]

| 2014-08
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7609[Remove HAML eval for const strings.]

| 2014-08
| \x[softcover-latex]
| 1
| https://github.com/softcover/softcover/pull/116[Ignore template top level tex file.]

| 2014-08
| \x[softcover-latex]
| 1
| https://github.com/softcover/softcover/pull/103[Fix failing PDF fontsize verbatim test.]

| 2014-08
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/422[Add tex listings snippets.]

| 2014-08
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7509[Fix Md style for API docs.]

| 2014-08
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7508[Fix Md style for projects API doc.]

| 2014-08
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7483[Restrict commit area resize to vertical.]

| 2014-08
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlab-shell/pull/169[Update README Markdown style to match CONTRIBUTING]

| 2014-07
| \x[pro-git-book]
| 1
| https://github.com/progit/progit/pull/751[Set dummy merge driver merge ours .gitattributes.]

| 2014-07
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/7233[Add project stars.]

| 2014-07
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7340[Increase diff byte highlight contrast.]

| 2014-07
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7257[Clarify squash comes after review.]

| 2014-07
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7196[Enforce Markdown style.]

| 2014-07
| \x[octokat-js]
| 1
| https://github.com/philschatz/octokat.js/pull/7/files[Gitignore fixtures and dist/commonjs.]

| 2014-07
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7204[Fix username validation message to match regexp.]

| 2014-06
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7170[Add trailing newline to all text files.]

| 2014-06
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/7195[Typo.]

| 2014-06
| \x[markdownlint-markdownlint]
| 0
| https://github.com/mivok/markdownlint/pull/1[Typo.]

| 2014-06
| \x[ruby-on-rails]
| 0
| https://github.com/rails/rails/pull/15997[Typo.]

| 2014-06
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7169[Replace HTML5 obsolete center element with CSS.]

| 2014-06
| https://github.com/github/developer.github.com[developer.github.com]
| 1
| https://github.com/github/developer.github.com/pull/543[Explain :user is username not ID.]

| 2014-06
| https://github.com/prose/prose[Prose]
| 0
| https://github.com/prose/prose/pull/724[Correct CONTRIBUTING typos.]

| 2014-06
| \x[octokat-js]
| 1
| https://github.com/philschatz/octokat.js/pull/5[Fix `repo` to `repos` in README examples.]

| 2014-06
| \x[octokat-js]
| 1
| https://github.com/philschatz/octokat.js/pull/6[Fix typos and style on README.]

| 2014-06
| \x[octokit-js]
| 0
| https://github.com/philschatz/octokit.js/pull/57[Remove trailing whitespace.]

| 2014-06
| \x[octokit-js]
| 1
| https://github.com/philschatz/octokit.js/pull/56[Add grunt watch.]

| 2014-06
| \x[octokat-js]
| 0
| https://github.com/philschatz/octokat.js/pull/3[Remove unneeded semicolon.]

| 2014-06
| \x[octokat-js]
| 1
| https://github.com/philschatz/octokat.js/pull/2[Add grunt watch.]

| 2014-06
| \x[karlcow-markdown-testsuite]
| 2
| https://github.com/karlcow/markdown-testsuite/pull/55[Add Vagrantfile.]

| 2014-06
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/54[Remove hoedown options.]

| 2014-06
| \x[honza-vim-snippets]
| 1
| https://github.com/honza/vim-snippets/pull/386[Add HTML `ac` Anchor from Clipboard.]

| 2014-06
| https://github.com/wayneeseguin/rvm[RVM]
| 0
| https://github.com/wayneeseguin/rvm/pull/2900[Correct some doc typos.]

| 2014-06
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/7107[Clarify that bbastov is the style of Hound CI.]

| 2014-06
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/6863[Update docs to match new markdown style guide.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/51[Add blackfriday, lunamark, maruku and rdiscount.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/44[Add autolink-no-bracket extension test.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/45[Add showdown engine.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/47[Title attribute is significant at normalization.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/48[Add design goals.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/49[Add Python Markdown 2 engine.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/50[Add peg-markdown engine.]

| 2014-05
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6385[Commit message textareas have 72 char mark line.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/44[Add autolink-no-bracket extension test.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/43[Add link-idref-implicit-no-bracket test.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/42[Minor fixes to addition of hoedown.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/41[Remove no-auto-id argument for kramdown.]

| 2014-05
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/36[Add markdown_pl Markdown.pl engine.]

| 2014-04
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/6892[Remove redundant signin link from signin page.]

| 2014-04
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6897[Add help link to header.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/31[Improve output normalization with custom parser.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/40[Add ordered-list-inner-par-list test.]

| 2014-04
| \x[gitlab-ci]
| 1
| https://github.com/gitlabhq/gitlab-ci/pull/422[Add application.yml.example.development.]

| 2014-04
| https://github.com/boostorg/graph[Boost Graph]
| 1
| https://github.com/boostorg/graph/pull/8[Explicitly use vertex type on quick tour example.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/34[Add list-code-1-space test.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/33[Add md2html engine.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/32[Remove email tests because output is random.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 2
| https://github.com/karlcow/markdown-testsuite/pull/30[Run only tests that contain string in title.]

| 2014-04
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/29[Add marked engine.]

| 2014-04
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6795[Add markdown styleguide.]

| 2014-04
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6775[Include SASS in subdirectories with glob.]

| 2014-04
| \x[tig-git-ui]
| 1
| https://github.com/jonas/tig/pull/270[Add refs bind `!` to delete branch.]

| 2014-04
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6774[Rename issue form tags to match MR and params.]

| 2014-04
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6749[Say issues are accepted at both GitLab and GitHub.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/23[Document config_local.py on README.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/24[Factor out engines that are commands on PATH.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/25[Add sample run-tests.py output to README.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/26[Check if are no engines enabled to avoid exception.]

| 2014-03
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/71[Add Toc commands.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/21[One disable per line commented out on conf.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/20[Add multimarkdown support.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/18[Typo conten -> content.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 2
| https://github.com/karlcow/markdown-testsuite/pull/15[Automated tests.]

| 2014-03
| \x[gitlab-ci]
| 0
| https://github.com/gitlabhq/gitlab-ci/pull/405[Remove config/puma.rb from gitignore.]

| 2014-03
| \x[gitlab-ci]
| 0
| https://github.com/gitlabhq/gitlab-ci/pull/404[Ignore config/unicorn.rb.]

| 2014-03
| \x[gitlab-ci]
| 0
| https://github.com/gitlabhq/gitlab-ci-runner/pull/79[Tell users to install bundle locally without sudo.]

| 2014-03
| \x[gitlab-ci]
| 0
| https://github.com/gitlabhq/gitlab-ci-runner/pull/78[Document where to find the registration token.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/14[Remove space from simple list, specify asterisk.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/13[Add script to cat all input files.]

| 2014-03
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/12[Remove newline from empty files.]

| 2014-03
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6601[Start development Key seed id from 1.]

| 2014-03
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6544[Show link to public projects for new users.]

| 2014-03
| \x[gitlab-cookbook]
| 1
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/57/diffs[Correct bindfs metal dev init script.]

| 2014-03
| \x[gitlab-ci]
| 0
| https://github.com/gitlabhq/gitlab-ci/pull/391[Organize gitignore.]

| 2014-03
| \x[gitlab-cookbook]
| 1
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/55[Correct metal install home share technique.]

| 2014-03
| \x[gitlab-cookbook]
| 0
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/53[Uniform markdown headers]

| 2014-03
| \x[gitlab-cookbook]
| 0
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/54[Typo ommited -> omitted.]

| 2014-03
| \x[gitlab]
| 0
| https://github.com/gitlabhq/gitlabhq/pull/6489[Documentation Typos]

| 2014-02
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/60[Add contributing guidelines and started tests as required by them.]

| 2014-02
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/61[Add Vundle install to README, updated pathogen URL to GitHub.]

| 2014-02
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/62[Create credits section, remove link to old homepage.]

| 2014-02
| \x[gitlab]
| 1
| https://github.com/gitlabhq/gitlabhq/pull/6386[Remove dir prefix from filename of tests under dir.]

| 2014-02
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/10[Make title more readable.]

| 2014-02
| \x[karlcow-markdown-testsuite]
| 0
| https://github.com/karlcow/markdown-testsuite/pull/9[Make readme intro more direct.]

| 2014-02
| \x[karlcow-markdown-testsuite]
| 1
| https://github.com/karlcow/markdown-testsuite/pull/8[Add extensions.]

| 2014-02
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/6375[Blob and tree markdown links to anchors work.]

| 2014-02
| https://github.com/motemen/git-browse-remote[git-browse-remote]
| 0
| https://github.com/motemen/git-browse-remote/pull/10[Add install instructions.]

| 2014-02
| \x[overleaf]
| 1
| https://github.com/sharelatex/sharelatex/pull/57[Remove latexmk install instructions from README.]

| 2014-02
| \x[overleaf]
| 1
| https://github.com/sharelatex/sharelatex/pull/56[Remove dollars from readme bash code.]

| 2014-02
| \x[overleaf]
| 1
| https://github.com/sharelatex/sharelatex/pull/53[Add dummy version to package.json to fix install.]

| 2014-02
| \x[overleaf]
| 1
| https://github.com/sharelatex/sharelatex/pull/52[Add .nvmrc]

| 2014-02
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/6274[User can leave group from group page.]

| 2014-02
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/6219[Add anchors to markdown rendered headers.]

| 2014-02
| \x[gitlab]
| 2
| https://github.com/gitlabhq/gitlabhq/pull/6177[User profile pages are publicly visible.]

| 2014-01
| \x[gitlab-cookbook]
| 1
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/33[Development install documentation correction.]

| 2014-01
| \x[gitlab-cookbook]
| 2
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/29[Create metal development install documentation.]

| 2014-01
| \x[gitlab-cookbook]
| 0
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/30[Improve docs.]

| 2014-01
| \x[gitlab-cookbook]
| 1
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/23[Add option to control the SSH port used.]

| 2013-12
| \x[gitlab-cookbook]
| 1
| https://gitlab.com/gitlab-org/cookbook-gitlab/merge_requests/11[Improve production install docs.]

| 2013-11
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/52[Header navigation mappings work for Setext headers.]

| 2013-10
| \x[okular]
| 1
| https://git.reviewboard.kde.org/r/113434/[Add shortcut to Change Colors on a page.]

| 2013-09
| \x[plasticboy-vim-markdown]
| 2
| https://github.com/plasticboy/vim-markdown/pull/37[Add mappings to navigate across headers.]

| 2013-02
| https://github.com/scipy/scipy[SciPy]
| 1
| https://github.com/scipy/scipy/pull/365[Improve documentation.]

| 2013-01
| https://github.com/bread-and-pepper/django-userena[Django Userena]
| 1
| https://github.com/bread-and-pepper/django-userena/commit/6a0bc1575a1816a130644efde411fbed131720be[Add new configuration option.]

| 2012-11
| https://github.com/DataTables/DataTables[DataTables]
| 1
| https://github.com/DataTables/DataTables/commits?author=cirosantilli[Improved a doc example.]

= Merged by Ciro
{parent=patches}

Patches which were merged by Ciro himself on repositories which eh feels have large public visibility, e.g. those to which he has been given push permission.

Repositories to which Ciro gained push permission because of his contributions:
* https://github.com/plasticboy/vim-markdown

|| Date
|| Project
|| Size
|| Description

| 2017-07
| \x[busybox]
| 1
| https://bugs.busybox.net/show_bug.cgi?id=10066[dd status=none does nothing and still prints status]

| 2016-04
| \x[ranger-file-manager]
| 0
| https://github.com/hut/ranger/issues/510[Make the :source command from actions.py part of the public API and document it in the man pages]

| 2015-05
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/205[Document `<Plug>Markdown_OpenUrlUnderCursor`]

| 2015-05
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/193[Add TOC to README]

| 2015-05
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/207[Allow users to disable individual maps with hasmapto checks]

| 2015-04
| \x[plasticboy-vim-markdown]
| 2
| https://github.com/plasticboy/vim-markdown/pull/183[gx works from anywhere inside Markdown links]

| 2015-04
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/177[Change the README h1 to "Vim Markdown"]

| 2015-04
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/178[Improve README formatting]

| 2014-10
| \x[plasticboy-vim-markdown]
| 2
| https://github.com/plasticboy/vim-markdown/pull/121[Highlight angle braced hyperlinks]

| 2014-10
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/134[Use a single code block style on README]

| 2014-10
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/133[Improve bold and italic tests]

| 2014-10
| \x[plasticboy-vim-markdown]
| 0
| https://github.com/plasticboy/vim-markdown/pull/132[Remove outdated fields from syntax header]

| 2014-09
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/124[Support YAML frontmatter headers v2.]

| 2014-09
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/123[Add LaTeX `$` and `$$` math support.]

| 2014-09
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/128[Add unit tests and travis support.]

| 2014-09
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/122[Fix parenthesis and square brackets that were rendered as links when not in link.]

| 2014-06
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/88[Add commands to increase and decrease header levels.]

| 2014-03
| \x[plasticboy-vim-markdown]
| 1
| https://github.com/plasticboy/vim-markdown/pull/69[Use Markdown Test Suite for the tests wherever possible.]

= Bug reports and feature requests
{parent=always-out-of-date-and-rarely-update-list-of-open-source-contributions-by-ciro-santilli}

* I opened and was confirmed or generated considerable interest
* I wrote comments pointing out a non obvious cause/fix/duplicate.
* I reviewed the patch

This shall not list bugs solved by my accepted pull requests.

= Closed source
{parent=bug-reports-and-feature-requests}

Disclaimer: closed source vendors tend to be highly secretive, solving small issues without any reply, so I use my best judgement given the lack of feedback.

|| Date
|| Project
|| Type
|| Description

| 2019-07
| https://zenodo.org/
| Security bug
| http://web.archive.org/web/20190715192018/http://blog.zenodo.org/2019/07/15/2019-07-15-xss-vulnerability/[Cross-Site Scripting vulnerability]. Also mentioned at: https://invenio-software.org/blog/security-advisor-20190715/

| 2015-09
| \x[github]
| Support
| https://github.com/isaacs/github/issues/460[Add ability to fork and edit files from external URL]

| 2015-05
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/398[500 when listing GCC mirror branches]

| 2015-04
| https://www.fsf.org[Free Software Foundation]
| Bug
| https://github.com/cirosantilli/issues/issues/3[Duplicated paragraph at Octave at description of high priority projects]

| 2015-03
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/375[@about and @pricing generate at mentions even though they are reserved]

| 2015-03
| http://tutorials.jenkov.com[Jenkov tutorials]
| Typo
| http://tutorials.jenkov.com/java-util-concurrent/atomiclong.html[typo boolean -> long]

| 2015-03
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/370[502 on homepage on long streak]

| 2015-02
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/348[If a CONTRIBUTING.md that is a symlink is present, the link to it should not show on new issue forms]

| 2015-02
| \x[github]
| Feature
| https://github.com/isaacs/github/issues/361[Allow to reopen pull requests after a force push]

| 2015-02
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/348[If a CONTRIBUTING.md that is a symlink is present, the link to it should not show on new issue forms]

| 2014-12
| https://www.mysciencework.com[My Science Work]
| Typo
| Typos on settings page

| 2014-12
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/321[Merge pull request window appears after rebase even if I don't have permission]

| 2014-12
| \x[github]
| Feature
| https://github.com/isaacs/github/issues/320[Repository Traffic Analytics API]

| 2014-12
| \x[github]
| Support
| https://github.com/isaacs/github/issues/315[Pin issues or add header text to issues page]

| 2014-12
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/319[Tree show links blobs to the last commit that contained the blob instead of commit that introduced the file]

| 2014-12
| \x[github]
| Duplicate
| https://github.com/isaacs/github/issues/318[Deal properly with uppercase .GIT file basenames on web editor like for lowercase .git]

| 2014-12
| \x[github]
| Duplicate
| https://github.com/isaacs/github/issues/314[Add a "I have this issue too" button]

| 2014-11
| \x[gitbook]
| Bug
| https://support.gitbook.com/hc/communities/public/questions/200628582-500-on-edit-without-access[500 on /edit without access]

| 2014-11
| \x[github]
| Feature
| https://github.com/isaacs/github/issues/297[View non-rendered markdown source with line numbers on blob show]

| 2014-11
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/303[500 on branch index for long branch name pushed together with other branch]

| 2014-11
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/181#issuecomment-43488854[GFM ordered list with inner unordered paragraph list generates two ordered lists]

| 2014-11
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/286[Glitches for filenames that contain only spaces]

| 2014-11
| \x[github]
| Bug
| https://github.com/isaacs/github/issues/290[500 on raw and 414 on blob show of long file name with 1024 characters]

| 2014-11
| \x[github]
| Feature
| https://github.com/isaacs/github/issues/235[Highlight bytes / words in diffs on adjacent multi-line modifications]

| 2014-11
| \x[github]
| Duplicate
| https://github.com/isaacs/github/issues/218#issuecomment-47030350[Allow following of groups similar to following users]

= Open source
{parent=bug-reports-and-feature-requests}

|| Date
|| Project
|| Size
|| Description

| 2019-04
| \x[gnuplot]
|
| https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/qpL8aJIi9ZE[Why does plotting with point labels make plot generation extremely slow?]

| 2019-04
| \x[gdb-dashboard]
|
| https://github.com/cyrus-and/gdb-dashboard/issues/142[Limit the size of shown arguments in the Stack display]

| 2018-03
| \x[qemu]
| 2
| https://lists.nongnu.org/archive/html/qemu-devel/2018-02/msg01681.html[Test record and replay feature]. Also https://bugs.launchpad.net/qemu/+bug/1762179[here]

| 2018-02
| \x[pandoc]
|
| https://github.com/jgm/pandoc/issues/4363[Add option to produce asciidoc output without explicit heading ids]

| 2017-10
| \x[android]
|
| https://issuetracker.google.com/issues/68496715[GLES3 content gles3jni from ndk examples fails with "java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG"]

| 2017-09
| \x[mozilla-rr]
|
| https://github.com/mozilla/rr/issues/2098[How to automatically start replay and go directly to main instead of `_start`?]

| 2017-09
| \x[mozilla-rr]
|
| https://github.com/mozilla/rr/issues/2088[Reverse step over time(NULL) enters rr/src/preload/syscall_hook.S and leads to "Cannot find bounds of current function"]

| 2017-08
| https://github.com/kfish/xsel[xsel]
|
| https://github.com/kfish/xsel/issues/13[Why maximum 4000 characters output with xsel -b ?]

| 2017-06
| \x[buildroot]
|
| https://github.com/cyrus-and/gdb-dashboard/issues/65[Don't print mutiline struct function arguments on stack when set pretty print on]

| 2017-04
| \x[gdb-dashboard]
|
| https://github.com/cyrus-and/gdb-dashboard/issues/60[Add style option to print stack arguments on a single line]

| 2017-05
| \x[buildroot]
|
| https://bugs.busybox.net/show_bug.cgi?id=9886[Build fails with "unexpected EOF while looking for matching "'" if PATH contains a newline]

| 2017-04
| \x[gdb-dashboard]
|
| https://github.com/cyrus-and/gdb-dashboard/issues/60[Add style option to print stack arguments on a single line]

| 2017-03
| https://github.com/clMathLibraries/clBLAS[clBLAS]
|
| https://github.com/clMathLibraries/clBLAS/pull/313[`.s[0]` + CL_DEVICE_TYPE_ALL]

| 2017-01
| \x[game-icons-net]
|
| https://github.com/game-icons/icons/issues/301[Use multiple separate paths, allow customizing the color of each component, and give a default color]

| 2017-01
| \x[game-icons-net]
|
| https://github.com/game-icons/icons/issues/302[delapouite/originals/svg/brick-wall.svg has some whitespace on top]

| 2017-01
| \x[openai-gym]
|
| https://github.com/openai/gym/issues/483[examples/agents/keyboard_agent.py fails with "AttributeError: 'TimeLimit' object has no attribute 'viewer'"]

| 2016-12
| \x[simple-directmedia-layer]
|
| https://hg.libsdl.org/SDL/rev/a458fc3377dc[Add C variable printf debug snippets]

| 2015-03
| \x[tig-git-ui]
|
| https://github.com/jonas/tig/issues/273[Accepted feature.]

| 2014-11
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8293#issuecomment-62858344[Duplicate]

| 2014-11
| \x[gitlab]
|
| https://gitlab.com/gitlab-com/www-gitlab-com/issues/180[Bug.]

| 2014-11
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8384[Support.]

| 2014-11
| https://github.com/CWSpear/bootstrap-hover-dropdown[Bootstrap Hover Dropdown]
|
| https://github.com/CWSpear/bootstrap-hover-dropdown/issues/92[Bug confirmed.]

| 2014-11
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8267[Bug confirmed.]

| 2014-11
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8357[Triaging.]

| 2014-11
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8302[Problem with the display icons in the left block]

| 2014-11
| \x[sass-stylesheet-language]
|
| https://github.com/sass/sass/issues/1493[Bug confirmed.]

| 2014-10
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8206[Point duplicate.]

| 2014-10
| \x[gitlab]
|
| https://gitlab.com/gitlab-com/www-gitlab-com/issues/170[Bug confirmed.]

| 2014-10
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8090[Bug confirmed.]

| 2014-10
| https://github.com/gitlabhq/gitlabhq[Semaphore CI]
|
| https://github.com/gitlabhq/gitlabhq/pull/8081[Bug confirmed.]

| 2014-10
| \x[libgit2]
|
| https://github.com/libgit2/libgit2/issues/2562[Bug confirmed.]

| 2014-10
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/8038[Support.]

| 2014-10
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/3922228-opt-into-and-out-of-notifications-for-specific-iss[Point duplicate.]

| 2014-09
| \x[vader-vim]
|
| https://github.com/junegunn/vader.vim/issues/15[Accepted feature.]

| 2014-09
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5004385-wrap-lines-option-in-the-merge-request[Point already fixed.]

| 2014-09
| \x[vader-vim]
|
| https://github.com/junegunn/vader.vim/issues/14[Accepted feature.]

| 2014-09
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/pull/7242[Bug confirmed.]

| 2014-09
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/6351[Bug confirmed.]

| 2014-09
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/4077791-login-gitlab-as-another-user-impersonate-functio[Point duplicate.]

| 2014-09
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5567051-delete-branch-after-accepting-or-closing-a-merge-r[Point already fixed.]

| 2014-08
| \x[markdownlint-markdownlint]
|
| https://github.com/mivok/markdownlint/issues/47[Accepted feature.]

| 2014-08
| \x[softcover-latex]
|
| https://groups.google.com/forum/?hl=en#!topic/softcover-publishing/zFrDngqlYbY[Accepted feature.]

| 2014-08
| \x[markdownlint-markdownlint]
|
| https://github.com/mivok/markdownlint/issues/49[Accepted feature.]

| 2014-07
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/pull/7257[Bug confirmed.]

| 2014-07
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5863024-ability-to-dismiss-a-broadcast-messages[Accepted feature.]

| 2014-07
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5590496-resolve-any-merge-request-conflict-from-the-web-in[Accepted feature.]

| 2014-06
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5578188-use-something-more-meaningful-than-www-to-differen[Accepted feature.]

| 2014-06
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/issues/6655#issuecomment-47034956[Point duplicate.]

| 2014-06
| \x[karlcow-markdown-testsuite]
|
| https://github.com/karlcow/markdown-testsuite/issues/37[Bug confirmed.]

| 2014-06
| \x[plasticboy-vim-markdown]
|
| https://github.com/plasticboy/vim-markdown/issues/74#issuecomment-46292801[Close issue.]

| 2014-06
| \x[plasticboy-vim-markdown]
|
| https://github.com/plasticboy/vim-markdown/pull/92[Review patch.]

| 2014-06
| \x[plasticboy-vim-markdown]
|
| https://github.com/plasticboy/vim-markdown/pull/80[Review and patch patch.]

| 2014-05
| \x[softcover-latex]
|
| https://github.com/softcover/softcover/pull/94[Accepted feature.]

| 2014-04
| \x[karlcow-markdown-testsuite]
|
| https://github.com/karlcow/markdown-testsuite/issues/3[Close issue with better issues.]

| 2014-03
| \x[tig-git-ui]
|
| https://github.com/jonas/tig/issues/275[Accepted feature.]

| 2014-03
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5518180-smarter-merge-request-target-repo-and-branch-form-[Accepted feature.]

| 2014-03
| \x[softcover-latex]
|
| https://github.com/softcover/polytexnic/issues/100#issuecomment-37228903[Accepted feature.]

| 2014-03
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5603753-gitlab-markdown-should-display-username-s-correct[Add useful information.]

| 2014-03
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5628857-administratively-create-issues-on-behalf-of-other[Point duplicate.]

| 2014-03
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/3957367-allowing-the-build-pages-to-be-viewed-publicly[Point duplicate.]

| 2014-03
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/5607934-view-diff-on-submit-merge-request-form[Accepted feature.]

| 2014-02
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/4255282-task-lists-like-github-done-or-some-other-implemen[Point duplicate.]

| 2014-02
| \x[gitlab]
|
| https://github.com/gitlabhq/gitlabhq/pull/6389[Accepted feature.]

| 2014-02
| \x[overleaf]
|
| https://github.com/sharelatex/sharelatex/issues/51[Feature generated considerable interest.]

| 2014-02
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/3941049-allow-public-read-only-wikis[Point already fixed.]

| 2014-02
| \x[gitlab]
|
| https://feedback.gitlab.com/forums/176466-general/suggestions/4000912-add-a-diff-view-when-editing-a-file-via-the-web-in[Link feature request to patch.]

| 2013-10
| \x[yakuake]
|
| https://bugs.kde.org/show_bug.cgi?id=319172#c2[Bug confirmed.]

| 2013-10
| \x[okular]
|
| https://bugs.kde.org/show_bug.cgi?id=327641[Bug confirmed.]

| 2013-06
| \x[krusader]
|
| https://bugs.launchpad.net/ubuntu/+source/krusader/+bug/1197679[Bug confirmed.]

| 2013-05
| \x[numpy]
|
| https://github.com/matplotlib/matplotlib/pull/1967[Bug confirmed + inner cause.]

| 2012-05
| \x[krusader]
|
| https://bugs.kde.org/show_bug.cgi?id=300068[Accepted feature.]

| 2012-05
| \x[krusader]
|
| https://bugs.launchpad.net/ubuntu/+source/krusader/+bug/999695[Bug confirmed.]

| 2012-05
| https://code.google.com/p/autokey[AutoKey]
|
| https://code.google.com/p/autokey/issues/detail?id=197[Bug confirmed.]

= Not verified
{parent=bug-reports-and-feature-requests}

The following contributions where not immediately verified by others, but they were not reverted either and I think they are good.

|| Date
|| Project
|| Type
|| Description

| 2014-12
| \x[plasticboy-vim-markdown]
| Review patch
| https://github.com/plasticboy/vim-markdown/pull/158[Add tilde-fenced code blocks]

= Security
{parent=always-out-of-date-and-rarely-update-list-of-open-source-contributions-by-ciro-santilli}

|| Date
|| Project
|| Size
|| Description

| 2016-05
| \x[all-github-commit-emails]
| 1
| Password disclosure `grep password` on email data. Gmail password worked and user confirmed.

= Essays by Ciro Santilli
{parent=ciro-santilli}

In other sections:
* \x[ciro-santilli-s-software-engineering-wisdom]{child}
* \x[how-computers-work]{c}{child}
* \x[stuff-school-should-actually-teach]{c}{child}
* \x[high-flying-bird-vs-gophers]{c}{child}
* \x[how-to-teach-and-learn-physics]{child}
* \x[mailing-list]{c}{child}
* \x[physics-and-the-illusion-of-life]{child}

\Include[window-blackout]
\Include[how-to-teach]
\Include[what-poor-countries-have-to-do-to-get-richer]

= The missing link between basic and advanced
{parent=essays-by-ciro-santilli}

One of \x[ciro-santilli]'s strongest feeling in \x[education] is that material often falls in either of the two categories:
* hundreds of too basic \x[popular-science], e.g.:
  * a 5 minute \x[popular-science] video trying to explain \x[quantum-electrodynamics] (an advanced subject) for someone who doesn't know what a \x[riemann-integral] is (a basic subject)
* a few full university courses that takes 20 hours to deliver the first punchline of the course

Ciro believes that there is often an important missing link between them, e.g.:
* a 15 minute video that delivers the main end results and motivations for people who already know the very basic stuff

If we as a society are unable to provide this sweet \x[middle-way] sweet-spot, it is unreasonable to expect that learners will ever have the motivation to advance, because it is just too boring! They are just more likely to go play video games instead.

It is Ciro's hope that \x[write-free-books-to-get-famous-website] will help to fill exactly that gap.

In Ciro's view, as of the 2020's this critical gap generally lies somewhere between the end of \x[undergraduate] studies, and at the start of \x[postgraduate] studies. What we have to do is to bring it all the way down to high school and earlier.

Related:
* https://universityphysicstutorials.com/[] by Adam Beatty mentions:
  \Q[
  There are myriad resources for physics and maths. The Kahn Academy and Patrick JMT were the best for me. They really helped me out. The question is, what resources are there for the advanced \x[undergraduate] courses?
  ]

= How to write technical help requests and bug reports
{parent=essays-by-ciro-santilli}

\x[ciro-santilli] often sees all those genius who are much smarter than him making \x[shitty] forum/mailing list posts, they need to learn this:
* The apparently most important one liner error message must appear in the title, and fuller apparently relevant logs must appear on the body
* You must always give the version of the software that you are using as either a tag or git SHA

  These are an important part of the \x[minimal-working-example].
* For build errors, you must give your OS and compiler version and version of any relevant external library

= Questions for Ciro Santilli's future self
{parent=essays-by-ciro-santilli}

Future self, answer these.

10 years:
* 2017-2027: did self-driving cars become big?
* 2017-2027: did virtual reality become big?

20 years
* 2018-2038: are \x[molecular-biology-technologies][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 \x[anonymously]. Genome to phenotype analytics go crazy big.

40 years:
* 2017-2057: was \x[large-cohesive-game-world-for-robotic-like-artificial-intelligence-development][human level AI reached] (by non-bio devices :-)), even if very slow?
* 2017-2057: \x[ciro-santilli-s-campaign-for-freedom-of-speech-in-china][did China become democratic]?
* 2018-2058: did impressive \x[brain-computer-interface]{p} show up?

= Ciro Santilli's hardware
{c}
{parent=ciro-santilli}
{scope}

One day, someone will invent a way to take the \x[hash-function][hash] of a piece of hardware and see its history log, like \x[software-engineer]{p} do with \x[version-control]. Until then, this is as close as you can get.

= Mechanical and electrical tools
{parent=ciro-santilli-s-hardware}

2020-01 https://www.amazon.co.uk/dp/B07D318N7Z

2020-01 "Heat Gun, SEEKONE Professional 2000W 50℃- 600℃ Variable Temperature Control Hot Air Gun Kit with 2 Temperature Modes 7 Accessories for D" https://www.amazon.com/dp/B078S5QMFG Initially for for cell phone repair, but later learnt they are also useful for heat shrink.

2020-11 BOA 13-2612 Strap Wrench, 6-Inch Capacity 8-Inch Long Lever https://www.amazon.com/dp/B00096JDKS Official: https://www.boatoolcorp.com/our-products/boa-constrictor-range/boa-constrictor/

2019-09 "AstroAI Digital Multimeter, TRMS 6000 Counts Multimeters Manual and Auto Ranging; Measures Voltage, Current, Resistance, Continuity, Capacitance, Frequency; Tests Diodes, Transistors, Temperature, Red" https://www.amazon.co.uk/dp/B071JL6LLL (http://web.archive.org/web/20190903191215/https://www.amazon.co.uk/dp/B071JL6LLL[archive]). Manual: http://web.archive.org/web/20190904200759/https://static.astroai.com/manual/Astroai-Digital-Multimeter,-Trms-6000-Counts-User-Manual-en.pdf
+
https://www.youtube.com/watch?v=uDGCs1G0Tx8 AstroAI WH5000A Digital Multimeter some basic features

2019-09 "Draper Redline 68001 160 mm Heavy Duty Pliers Set with Soft Grip Handles (3-Piece)" http://web.archive.org/web/20190903191215/https://www.amazon.co.uk/dp/B071JL6LLL (https://web.archive.org/web/20190903191341/https://www.amazon.co.uk/dp/B010NCYT6U[archive])

2019-08: https://www.amazon.co.uk/dp/B000LFRYG2 (http://web.archive.org/web/20190831105230/https://www.amazon.co.uk/dp/B000LFRYG2[archive]) "Silverline SP1236 Combination Spanner, 8-19 mm - 12 Pieces" 8.48 pounds. Because I needed the 15mm for bike pedal, and the price of 1 and the full set were very close.

6 10/11/12/13/14/17 mm Combination Wrench Set WRENCH SET COMBINATION Open-Ended Spanner/Ring Spanner Set https://www.amazon.co.uk/dp/B07BZLVGX8 (https://web.archive.org/web/20190831104804/https://www.amazon.co.uk/dp/B07BZLVGX8[archive]) But they sent one wrong, 8 instead of 11. Chrome Vanadium \x[steel]{c}. Markings: "DROP FORGED A". Quality feels crappy, not very smooth.

2017: Teng 621011 Double Open Ended Spanner 10x11mm https://www.amazon.co.uk/dp/B0001P0VP8 (http://web.archive.org/web/20190831111729/https://www.amazon.co.uk/dp/B007TSP8CQ[archive])

2017: Magnusson AMS49 5M TAPE MEASURE 5m retractable flexible rule. https://www.screwfix.com/p/magnusson-ams49-5m-tape-measure/5315v (http://web.archive.org/web/20190831112100/https://www.screwfix.com/p/magnusson-ams49-5m-tape-measure/5315v[archive])

= Yamaha P-45B digital piano
{c}
{parent=mechanical-and-electrical-tools}

Likely came in a bundle: https://www.gak.co.uk/en/yamaha-p45-digital-piano-bundle/908294

= Cleaning products
{parent=ciro-santilli-s-hardware}

2019-11 https://www.amazon.co.uk/B00I8JC4WC Mr Muscle 5 in 1 Shower Shine, 500 ml 

2019-11 https://www.amazon.co.uk/dp/B00FGOY51A Lakeland Moth Stop Moth Killer Carpet & Fabric Spray, 500ml 

2019-10 Mykal Sticky Stuff Remover 250ml. Helped remove sticky tape adhesive from surfaces. Still required a lot of elbow grease, but worked. https://www.amazon.co.uk/dp/B000TAT4GM (https://web.archive.org/web/20191110141846/https://www.amazon.co.uk/dp/B000TAT4GM[archive]).

= Ronseal mould killer
{parent=cleaning-products}

Bought: 2018, 2021.

Seems to work OK. But you're fighting the symptom, and it will eventually come back.

= Vacuum cleaner
{parent=ciro-santilli-s-hardware}

= Miele C2 Complete PowerLine vacuum cleaner
{parent=vacuum-cleaner}

Similar to: https://www.miele.co.uk/e/cylinder-vacuum-cleaner-compact-c2-powerline-sdrf4-10931670-p but slightly different from image. Indistinguishable from: https://www.currys.co.uk/gbuk/home-appliances/floorcare/vacuum-cleaners/miele-complete-c2-pure-power-powerline-cylinder-vacuum-cleaner-graphite-grey-10208570-pdt.html

Power symbol meanings: https://images-eu.ssl-images-amazon.com/images/I/A14OZ5TuwGS.pdf

2020-12: buying Miele SF AP 50 AirClean Plus filter https://www.miele.co.uk/e/airclean-plus-filter-sf-ap-50-10107860-p[]. Once it arrived, changed the filter, which fit comes with plastic casing and accordion shaped filter. Also changed bag. But the bag full meter still goes to red on carpet even with everything new while vacuuming. Is it supposed to be checked while not vacuuming?

= Philips Dust Mite Hand Held Vacuum Cleaner
{parent=vacuum-cleaner}

https://www.philips.co.uk/c-p/FC6232_62/dust-mite-hand-held-vacuum-cleaner-anti-allergen

Bought circa 2017.

= Kitchen
{parent=ciro-santilli-s-hardware}

= Panasonic NN-SF464M microwave (2017)
{c}
{parent=kitchen}

https://www.panasonic.com/uk/consumer/home-appliances/microwaves/microwave-only/nn-sf464mbpq.html

Manual: https://images-eu.ssl-images-amazon.com/images/I/D1It8ZCrjLS.pdf

= Prestige 7.5L Stainless Stell Pressure Cooker (2020)
{c}
{parent=kitchen}

https://www.amazon.co.uk/gp/product/B07GX1ZLLG

Primarily bought to make \x[borlotti-beans]!!!

= KitchenAid Artisan toaster (2017)
{c}
{parent=kitchen}

ARTISAN 2-SLOT TOASTER 5KMT2204 Onyx Black

Bought: 2017-09

https://www.kitchenaid.co.uk/small-appliances/toaster/artisan-2-slot-toaster-5kmt2204/859730315020

https://www.amazon.co.uk/dp/B00J9PQW5E

Impossible to open to properly clean.

= Tefal rice cooker (2017)
{c}
{parent=kitchen}

Bought around: 2017-09.

TEFAL Multicook 8in1 RK302E15 MultiCooker - 4 Portions / 5L.

https://www.tefal.co.uk/Cooking-appliances/Rice-%26-Multi-Cookers/Multicook-8in1-RK302E15-MultiCooker---4-Portions-5L/p/7211000750

Likely bought from: https://www.johnlewis.com/tefal-rk302e15-8-in-1-multi-cooker/p231378165

Markings say: "SERIE R13-B REF: RK302E15 / 79 A - 1017"

How to open videos: can't find any, but the hard part (remove top lid) was the same as the video for \x[joyoung-rice-cooker-2014], can be done by inserting a thin metal and going around it.

Bottom opens by taking off a single screw on the bottom and pulling it out (not obvious, a little bit of force).

2021-01: while making \x[congee] it overflowed without us noticing it, and next time we were going to cook something, it started to burn bits of congee that stuck to the heat plate. Opened it up and tried to clean everything.

2020-03: E01 error, looked up on manual and it is a top wire broken, opened up and confirmed one of the three wires going up broken, exactly like the previous one \x[joyoung-rice-cooker-2014]. Managed to fix easily with heat gun and Solder Seal Heat Shrink, no soldering iron, that thing is amazing: https://www.amazon.co.uk/dp/B085415G8N Let's see how long it lasts.

= Joyoung rice cooker (2014)
{parent=kitchen}

Similar to: https://www.amazon.co.uk/dp/B013AV45IS

2019: broke with sign number 6. \x[ciro-santilli] opened it up a bit destructively.

How to open: https://www.youtube.com/watch?v=8Lf68mAB0Vk

= Furniture
{parent=ciro-santilli-s-hardware}

Table: https://web.archive.org/web/20210718034540/https://www.westelm.com/weimgs/rk/images/i/201644/0004/images/pdf/assembly-instructions/english/mid_century_expandable_dining_table_medium_large.pdf

= Houses
{parent=ciro-santilli-s-hardware}

= House 2021
{parent=houses}
{scope}

= Fire alarm
{parent=house-2021}

2021-08 bedroom battery out, 7.29V out of 9V duracell duralock. Buying pack of 12 Energizer \x[nine-volt-battery]{p}. Measurement on new battery: 9.68V.

= House 2018-01
{parent=houses}
{scope}

2019-12-26: scraped off some of the likely https://en.wikipedia.org/wiki/Soap_scum[soap scum] from standing bathtub with hard plastic rice cooker spoon.

= Mould
{parent=house-2018-01}

2019-12-26: applied Ronseal mould killer on external north east living room walls, had widespread light brown mould spots, and more localized black mould spots. The water insulation here is bad, possibly due to being on the last floor. Also applied next to window sills on those walls.

= Kitchen
{parent=house-2018-01}

= Aluminium extractor filter
{parent=kitchen}

This is the exact model: https://shop.elica.com/en/accessori/filtro-grassi-in-alluminio-cod-gf03fc.html | http://web.archive.org/web/20190707053526/https://shop.elica.com/en/accessori/filtro-grassi-in-alluminio-cod-gf03fc.html

Searching by th epart name "GF03FC" leads to other sellers besides Elica however, which could reduce shipping costs: https://www.cookerhoodsupplies.co.uk/filters-and-lamps/188-metal-grease-filter-gf03fc.html

Brand on extractor glass: Elica: https://elica.com

Dimensions: 45.9cm x 17.6cm on the exterior. Too long to fit into any container that we have.

Brand on filter itself: "ARMA Filtre a.s." based on markings: http://www.armafiltre.com.tr/uygulamalar/7/3/en/Home-Appliances.html Cannot find any model on website however... looks like Elica's B2B supplier only.

Marker inside after removing filter: 12NC: 208298104403 Model: CIAK GR/A/56.

2018: noticed that it was unbearably greasy, tried to clean, but even boiling water didn't help.

July 2019 message:
\Q[
Aluminium extractor filter for 208298104403

Hi there,

I'm trying to buy a spare aluminium extractor filter for an Elica extractor, but I can't find the right size on the website.

My 12NC is : 208298104403

My filter looks a lot like this: https://shop.elica.com/en/accessori/filtro-grassi-in-alluminio-cod-GRI0077330A.html but the dimensions are different: I measured 45.9cm x 17.6cm on my old one.

Do you have that for sale?
]

= Fridge
{parent=kitchen}

Brand according to documents: SMEG.

Most similar models I an find: https://www.smeguk.com/products/UKC8173N1F[] and https://www.smeguk.com/products/UKC81721F[], the keyword are "built-in" and "integrated", other very similar ones: https://www.smeguk.com/refrigerators/built-in

Looks like this: https://www.youtube.com/watch?v=4c_LBVnU4ec and that's how to unclog the drain.

2020-11-28: defrost. Some small Styrofoam was broken lose from top, noticed small burn or rust marks on top grid nearby.

= Gas hob
{parent=kitchen}

SMEG, cannot determine exact model.

2020-11: started sparking by itself once every 5 minutes. Knob controls dirty in hole, but can't find out how to access. Seems slightly glued insulated around edges.

= Kitchen tap
{parent=kitchen}

Looks a lot like: Bristan Monza EF Sink Mixer Chrome https://www.bathroomsensations.co.uk/Bristan-Monza-EF-Sink-Mixer-Chrome.html

How to open: https://www.youtube.com/watch?v=oHTpOG1Uhzw

= Fire alarms
{parent=house-2018-01}

Kitchen: 2021-04: \x[nine-volt-battery] battery at 8.79V. Not sounding.

= Light bulbs
{parent=house-2018-01}

2021-01: kitchen extractor right lamp burnt. Replaced with another Eveready.

2021-01: left back bulb burnt, put in another LE GU10 LED Bulbs

2020-11: kitchen extractor left lamp burnt again. Did I forget to report a right side burn earlier, or is there something wrong with the left one? Also can't find the second bulb that was likely bought last time, so likely the right one burnt and the other bulb was used for it. Buying https://www.amazon.co.uk/dp/B00LOBUDSS "4 x Eveready 20 W 12 V G4 Dimmable Halogen Capsule Light Bulbs Pack of 4" for 3.66 pounds. Worked, felt a bit more yellow than the previous one. Packet documents 2000 hours, 2800K color, 8000+ switches.

2020-08: kitchen right back had been out for a while, bought: https://www.amazon.co.uk/dp/B00LN0RPA4 LE GU10 LED Bulbs, Warm White 2700K, 50W Halogen Lamp Equivalent, 4W 350lm, 120° Wide Beam Angle, Recessed or Track Light Bulb, Pack of 5 (Energy Class A++), 5 for 10 pounds.

2019-11: front right kitchen lamp burnt, Sylvania GU10 50W. 50W was likely some useless "incandescent equivalent" measure. Replaced: GE LED 5W 345 lumens 2700K Warm 15k hours, which looks exactly the same.

2019-05: kitchen extractor left lamp burnt. Was: DURA G4 12V20W: https://www.amazon.co.uk/Halogen-Light-Bulbs-Lamps-5watt/dp/B003IVP12A Replaced: Sainsbury's halogen G4 20W12V.

= Toilet mirror lamps
{parent=house-2018-01}

When I came, two Bell GU4 (MR11) 20W 12v.

One burnt. Put in an ASDA halogen one.

ASDA burnt, put in TopLux on right, old Bell left.

2019-01-24, right one burnt a few days ago, old Bell still works. Inner part black, and black dot on the wire. Putting new TopLux again, but this time on the left, old bell on right.

2019-01-24 toilet top lamp also burnt a few days ago, but not at the same time as mirror. Diall, 240V 40W, GU10. Putting in IKEA 240V 35W.

2019-02-02 toilet mirror lamp left (TopLux) burnt. Don't know what to do anymore. Only the magic Bell lamp works.

2019-03-06 toilet top lamp left burnt, IKEA 240V 35W GU10. Putting in another one.

2019-03-28 toilet top lamp right burnt, IKEA 240V 35W GU10. Waiting for people to come to look at transformer, there is definitely something wrong.

2019-04-03 top lamps: replaced with LED (LAP GU10 3W) since lower power, transformer not changed. Mirror lamps: transformer changed, left one replaced with Homebase Halogen 20W 12V. When I came back lamps flickering badly and sometimes not turning on, recalled technician.

2019-04-12 mirror lamp: it was just he connector that was bad, it was changed, also put LEDs there to make it less warm and hopefully have less tear on connector.

= Toilet sink
{parent=house-2018-01}

2021-04 clogged

= Cell phones
{parent=ciro-santilli-s-hardware}

= Google Pixel 3a (2020)
{c}
{parent=cell-phones}

Bought: January 2020 from https://store.google.com/ for 350 pounds.

Official specs: https://support.google.com/pixelphone/answer/7158570?hl=en&ref_topic=7530176

GMS Arena: https://www.gsmarena.com/google_pixel_3a-9408.php

Front camera video on \x[android] 11: about 100MiB / minute. The encoding is however super inefficient, a \x[ffmpeg] re-encode without any options reduces it by 1/3.

= Lenovo Yoga YT3-X50F
{c}
{parent=cell-phones}

This is crap, became slow very fast. The battery is IMPOSSIBLE to remove!!! https://youtu.be/kO-RwIQ_i1w?t=162 Battery was 4.163V when thing wouldn't turn on anymore. But https://topbattery.co.uk/product/original-battery-for-tablet-lenovo-yoga-tab-3-yt3-x50fyt3-x50m-sl20076-2/ says it is 3.6V. What?

= Computers
{parent=ciro-santilli-s-hardware}

Machines used extensively while developing the \x[linux-kernel-module-cheat] will be documented there for reference performance.

= Phillips D400 cordless phone
{c}
{parent=computers}

https://www.philips.co.uk/c-p/D4002W_22/cordless-phone

Takes two AAA rechargeable batteries.

2021-08: rechargeable battery charges were in, nominal marked 1.2V nickel metal hydride, measured as 1.38V and 1.42V.

= Lenovo ThinkPad P51 (2017)
{c}
{parent=computers}

Bought: 2017 for approximately 2400 \x[pound]{p} to be \x[ciro-santilli]'s main personal laptop.

https://cirosantilli.com/linux-kernel-module-cheat/#p51 (\a[https://raw.githubusercontent.com/cirosantilli/linux-kernel-module-cheat/a0d6fa15a207cb40cd8ce090c77aa9b55d7605a6/README.adoc][permalink])

* 2021-06-05 upgraded to \x[ubuntu] 21.04 with a clean install from an ISO. Selected
  * "Minimal installation"
  * "Erase disk and install Ubuntu". Notably, this erased the \x[microsoft-windows] that came with the computer and was never used not even once
  * "Erase disk ans use ZFS"
  * Encrypt the new Ubuntu installation for security
  After this, the GUI felt fast, who would have thought that erasing a bunch of stuff would make the system faster!

  `lsblk` contains:
  ``
  zd0               230:0    0   500M  0 disk
  └─keystore-rpool  253:0    0   484M  0 crypt /run/keystore/rpool
  nvme0n1           259:0    0 476.9G  0 disk
  ├─nvme0n1p1       259:1    0   512M  0 part  /boot/efi
  ├─nvme0n1p2       259:2    0     2G  0 part
  │ └─cryptoswap    253:1    0     2G  0 crypt
  ├─nvme0n1p3       259:3    0     2G  0 part
  └─nvme0n1p4       259:4    0 472.4G  0 part
  ``
  and `lsblk -f`:
  ``
  zd0               crypto_LUKS 2
  └─keystore-rpool  ext4        1.0   keystore-rpool
  nvme0n1
  ├─nvme0n1p1       vfat        FAT32
  ├─nvme0n1p2       crypto_LUKS 2
  │ └─cryptoswap
  ├─nvme0n1p3       zfs_member  5000  bpool
  └─nvme0n1p4       zfs_member  5000  rpoo
  ``

  Then:
  ``
  grep '[rb]pool' /proc/mounts
  ``
  contains:
  ``
  rpool/ROOT/ubuntu_uvs1fq / zfs rw,relatime,xattr,posixacl 0 0
  rpool/USERDATA/ciro_czngbg /home/ciro zfs rw,relatime,xattr,posixacl 0 0
  rpool/USERDATA/root_czngbg /root zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/srv /srv zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/usr/local /usr/local zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/games /var/games zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/log /var/log zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/lib /var/lib zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/mail /var/mail zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/snap /var/snap zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/www /var/www zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/spool /var/spool zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/lib/AccountsService /var/lib/AccountsService zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/lib/NetworkManager /var/lib/NetworkManager zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/lib/apt /var/lib/apt zfs rw,relatime,xattr,posixacl 0 0
  rpool/ROOT/ubuntu_uvs1fq/var/lib/dpkg /var/lib/dpkg zfs rw,relatime,xattr,posixacl 0 0
  bpool/BOOT/ubuntu_uvs1fq /boot zfs rw,nodev,relatime,xattr,posixacl 0 0
  ``
  which gives an idea of how the above map to mountpoints.

  Had two GUI freezes since installation, a fixed images shows no matter what I do, possibly graphics only, but impossible to tell (next time I'll try SSH access). No \x[nvidia] drivers installed yet.

2020-06-06: dropped some lemon juice on the bottom left of touchpad. Bottom left button not working anymore... I'm an idiot. There are many other alternatives, but very aggravating, I'll replace it for sure. Can't find the exact replacement part or any videos showing its replacement online easliy, dang. For the T430: https://www.youtube.com/watch?v=F3lzV9uXRjU Asked at: https://forums.lenovo.com/t5/ThinkPad-P-and-W-Series-Mobile-Workstations/P51-left-bottom-button-below-trackpad-mouse-left-click-stopped-working-possible-to-replace/m-p/5019903 Also I could not access it because you need to remove the HDD first: https://www.youtube.com/watch?v=5Klawxc7T_Y and I can't pull it out even with considerable force, unlike in the video... And OMG, those button caps are impossible to re-install once removed!!! Then when I put the whole thing back together, the upper buttons were not working anymore. FUUUUUUUUCK. When first opening I pulled on it without properly removing the cap and it came off, but it didn't look broken in any way and I put it back in. Keyboard works thank God, so right black connector is fine, left white one oppears to be the one for upper keys and trackpoint, both of which stopped working. The hardware manual confirms that they are both part of the same device, so basically a mouse :-) TODO can it be bought separately from te keyboard? Doesn't look like it, photo of keyboard part includes those buttons. The manual also confirms that the bottom buttons are one device with the trackpad "trackpad with buttons", thus forming the second entire mouse.

2019-04-17: popup asking about "ThinkPad P51 Management Engine Update" from from 182.29.3287 to 184.60.3561, said yes.

\x[ubuntu] 17.10 setup after buying it:

* partition setup: https://askubuntu.com/questions/343268/how-to-use-manual-partitioning-during-installation/976430#976430
* BIOS:
  * for NVIDIA driver:
  * for KVM, required by Android Emulator: enable virtualization extensions
* TODO fix the brightness keys:
  * failed: https://askubuntu.com/questions/769006/brightness-key-not-working-ubuntu-16-04-lts/770100#770100

Battery life shown by Ubuntu battery app after installation:

* before NVIDIA driver setup: 8h
* after: 6.5h

= Orange Pi PC
{c}
{parent=computers}

http://www.orangepi.org/orangepipc/

Board LED does not turn on (turned on on first plug, Ethernet always turns on):

* http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=470
* https://www.youtube.com/watch?v=ZtUn-dnJFdU says only one specific supply worked..
* https://www.reddit.com/r/raspberry_pi/comments/3jamn1/any_orange_pi_owners_here_help_with_power_imput/ Comment https://www.reddit.com/r/raspberry_pi/comments/3jamn1/any_orange_pi_owners_here_help_with_power_imput/cy79a7w says it only worked with the official supply...

Now just HDMI does not work. Possibly a monitor vs television problem:

* http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=475

= Raspberry Pis
{c}
{parent=computers}

About the brand: \x[/raspberry-pi]

= Raspberry Pi 2
{parent=raspberry-pis}

Linux kernel logs don't show, but do show with the exact same components on the Pi 3 (SD card with `enable_uart=1` + image Raspbian Lite 2018-11-03 and UART cables).

Serial from `cat /proc/cpuinfo`: 00000000a50c1f69

Datasheets: \x[/raspberry-pi-2].

= Raspberry Pi 3
{parent=raspberry-pis}

As of 2018-12, I believe that I might have fried the UART on this board when I burnt my last UART to USB converter by connecting ground to 5V.

Linux on SSH and bare metal blinker both work on this board, so the rest of the board seems alive.

Serial from `cat /proc/cpuinfo`: 00000000c77ddb77

Datasheets: \x[/raspberry-pi-3].

= Computer accessories
{parent=computers}

= Internet speed
{parent=computer-accessories}

Home 2017 TalkTalk 38Mbps nominal, Google M-lab speed test:
* 36.4 Mbps download
* 9.15 Mbps up
* 58 ms latency over 80km of first world

= External storage
{parent=computer-accessories}

= Toshiba MK1059GSM
{parent=external-storage}

~1TB.

Internal hard drive likely removed from some old computer I lost track of, kept in a crappy case, incredible stuff.

* https://www.amazon.co.uk/dp/B00433AM8K
* https://www.cnet.com/products/toshiba-mk1059gsm-hard-drive-1-tb-sata-3gb-s-hdd2k11/

Ubuntu 20.04 `gnome-disks` benchmark, NTFS partition: 40MB/s.

= Western Digital WD10EADS-42P6B0
{parent=external-storage}

~1TB.

Has a separate power cord, not USB powered. Unbelievable.

Disk label: `wd1t`.

* https://www.amazon.co.uk/dp/B00R1TO072
* https://www.cpumedics.com/western-digital-wd10eads-42p6b0-1tb-7-2k-rpm-sata-3-5-hard-drive-hdd/

Ubuntu 20.04 `gnome-disks` benchmark, ext4 partition: 37MB/s.

= Polytechnique USB flash drives
{parent=external-storage}

~8GB, `lsblk` reports 7796176 * 1KB = 7983284224 bytes.

We got a handful of those from \x[ecole-polytechnique] at the end of studies I think.

They are shaped like https://en.wikipedia.org/wiki/Bicorne[bicornes], which is super cool, but also super impractical!

Markings: "AX ÉCOLE POLYTECHNIQUE PROMOTION X2009"

20.04 `gnome-disks` program reports it as: "SMI USB DISK".

From \x[ubuntu] 20.04 on an ext4 formatted one:
``
/dev/sdb:
 Timing cached reads:   28656 MB in  1.99 seconds = 14421.31 MB/sec
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 Timing buffered disk reads:  42 MB in  3.03 seconds =  13.88 MB/sec
``
With \x[linux-unified-key-setup] + ext4 the results are similar, maybe hdparam bypasses it?
``
/dev/sdb:
 Timing cached reads:   28326 MB in  1.99 seconds = 14251.55 MB/sec
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 Timing buffered disk reads:  38 MB in  3.11 seconds =  12.23 MB/sec
``
`gnome-disks` LUKS + ext4 benchmark with default params also gives about 14 MB/s.

= Skullcandy Smokin' Buds 2
{parent=computer-accessories}

Skullcandy earphones, first one circa. 2016 most likely. Used them a lot, these are good.

2021-07: wire half broke near connector, only works in some positions. The funny thing is: only voices seem to be blocked out! Rebuying.

2021-06: a small bottom piece of the left earpiece broke. Wire seems find, that is like a little extension to protect wire. Let's see for how long.

2020-20: wires at one of ears broke, not sure how.

Look they looked exactly like: https://www.skullcandy.com/shop/earbuds/smokin-buds-2["Skullcandy Smokin' Buds 2 In-Ear Audio Earbud Headphones with In-Line Microphone - Black"].

Re-buying that one 10 pounds:
* https://web.archive.org/web/20200307055608/https://www.skullcandy.com/shop/earbuds/smokin-buds-2
* https://archive.vn/zvtY1

Tech specs:

\Q[
Weight: 4g

Connection Type: 3.5mm AUX Cable

Impedence: 32 ohms

Driver Diameter: 9mm

THD: <0.1% (1mW/500Hz) (0.0234)

Sound Pressure Level: 95 dB (1mW/500Hz)

Frequency Response: 20kHz - 20Hz

Headphone Type: In-Ear
]

= Bicycle
{parent=ciro-santilli-s-hardware}

= Bicycles
{parent=bicycle}

= Kross bicycle (2017)
{parent=bicycles}

Trekking bike bought second hand in 2017. Seller confirmed it is this one https://www.kross.pl/en/2012/trans-alp (http://web.archive.org/web/20200426174741/https://www.kross.pl/en/2012/trans-alp[archive]) but male version (now shown clearly on website, but both exist).

2021-08: back side of teeth of seat post wore off, and the seat is rotating vertically. Identification: markings: ELC (maybe middle letter worn off). 27.2 diameter / 350, 350 is the length from Googling. Has a simple shock absorber system and a single pin to attach the seat. OK, something very similar or the same: https://www.amazon.com/dp/B08N9ZTD22[]. BESNIN Suspension seatpost. Full markings are: HARD MDU INSIDE under seat clamp, these match exactly. Tube markings are a bit different.

2021-08: noticed that there was a stone stuck inside back tire. Luckily didn't puncture. TODO was it in the same place as the previous puncture? Not far from Schwalbe mark. Rebuying... and answering https://bicycles.stackexchange.com/questions/9827/when-should-you-replace-tires-after-getting-a-flat Going to buy Shoe Goo as well to see if it works: https://www.amazon.co.uk/Shoe-Goo-Crystal-Permanent-Adhesive/dp/B08P5V9GQV

2021-08-12: after putting new chain on, if I step hard on pedal on 6th gear, by far the most used, it skips. Seems to be the same symptom as 2020-12 when cassette was worn off, as the shifting itself seems fine. https://bicycles.stackexchange.com/questions/8378/difference-between-shimano-hg51-8-speed-cassette-and-shimano-hg50-8-speed-casset says hg51 is compatible, so getting that newer model. 11-34t was much more expensive/less common than 11-32, so getting 11-32. Managed to install it without any problems.

2021-08: bought Shimano HG40 8 speed chain and put it on bike

2021-07:
* rear shift cable snapped inside shifter during rid, same as 2020-10, same symptom that could never index higher tension gears well bought new cable
* chain reached 0.75+
* trie to put front mudgard on, but several problems on this one. The screws needed are wider than those that come. Could keep old ones. But then on top of that, the wires are too long and would need cutting, so keeping the old front mudgard for now, which is working perfectly.

2021-06: Castelli UPF 50+ Light Arm Sleeves (Skins) Large White, 29 \x[pound]{p} https://www.castelli-cycling.com/bg/upf-50-+-light-arm-sleeves/p/451603621P-001[]. Felt really good. Really does not trap much heat, and completely blocks off sun. It makes you develop a small layer of sweat that keeps you cool, cooler than without the sleeves.

2021-06-05: finally removed the old bottom bracket and installed installed the one I had bought a few months back. What triggered this was the clicking noise back again. It appears that the noise got louder with the heat. The clicking noise went away after changing the new bottom bracket. The old bracket seemed fine after inspecting it closely after removal. There was a bit of dirt/earth inside, and some small chippings came out of one side, not sure if from BB or from the frame itself. There are still some other much less loud noises left however, but they are likely a different source, and not a big issue. The clicking noise: https://www.youtube.com/watch?v=rXBdPg1LhQU

2021-05: got the first flat tire ever on the back wheel! A perfectly shaped pointed triangular rock slotted perfectly into the thread and managed to perforate the inner tube. Managed to patch it up perfectly on the road, 2 hours away from home! The inside of the tire is basically intact, so I'm going to keep using it. The next day I put back an old intact inner tube I had replaced preemptively earlier on with this new one that was punctured.

2021-04: put on the Bluemels mudgard on the back. It wasn't hard, and their system seems quite easy to adjust. Chain reached 1.0 stretch, gotta get a new one.

2021-03: clicking noise when pedalling strong driving me crazy. Likely bottom bracket: https://bicycles.stackexchange.com/questions/41149/something-clicks-while-pedaling or maybe pedal. Re-buying the exact same Shimano BB-UN55 Bottom Bracket - Silver, 68-118: https://www.ebay.co.uk/itm/224364037969

2021-03: buying mudgard replacement, going for: SKS Bluemels Shiny 45 mm 28" Mudguard Set Silver https://www.deporvillage.net/sks-bluemels-shiny-45-mm-28-mudguard-set-silver 28 pounds with delivery, which looks like the most similar to the old one. Partially choosing that seller because they are the only ones capable of using the precise product name as shown on the SKS website so I'm sure what I'm getting. It does not have flaps though. But flaps fall off and get lost, so fuck it. SKS range: https://www.sks-germany.com/en/products/bluemels-series/

2021-03-07:
* buying 2 pairs of Shimano Y8BM9803A Brake Shoe Set M70T4, only need one for front now, back has new M70T3: https://www.amazon.co.uk/dp/B01504E7LS[]. Documentation is the same as for M70T3: https://si.shimano.com/pdfs/ev/EV-BR-SHOE-ATB2-1414L.pdf[] and sounds strictly better:
\Q[Only for side wall machined rims. Performs especially well in wet conditions and may pass DIN standard. Tend to be low noise, low rim wear and fade.]
It appears that "non-machined rims" don't exist anymore: https://www.tetongravity.com/forums/showthread.php/183806-How-important-are-machine-sidewalls-vs-non-machined
* buying another Schwalbe Men's Marathon Plus Tour Hs404 Performance Line Rigid Tires Size: 700 x 40C for the front wheel which is completely worn off like the back one was: https://www.amazon.co.uk/dp/B001IHUC0W?th=1&psc=1 33 pounds.

2021-03-07: one of the wires of the rear mudguard broke due to vibrations! It still kind of works, but gotta get a new one.

2021-02-20: replaced new wheel. Worked fine. Also measured chain stretch between 0.5 and 0.75.

2021-02-14: in preparation for wheel switch, also getting https://www.wiggle.co.uk/shimano-m-system-m600-pair-of-brake-blocks Shimano M-System M600 Pair Of Brake Blocks. More precise markings: M70T3 Deore LX, AL (\x[aluminium]) https://si.shimano.com/pdfs/ev/EV-BR-SHOE-ATB2-1414L.pdf Reads: "Performs especially well in wet conditions and may pass DIN standards. Gives off less noise, but the pad is heavier, faster rim wear and tends to fade. "

2021-02-11: tried to put the new wheel in. Made a few discoveries:
* I can't take the cassette out anymore again, even though I put it on myself, and the day I put it on, I took it off once to check if I could, so rebuying Shimano Claris CS-HG50-8 11-34t https://www.ebay.co.uk/p/2252255352[], and if I ever have to take the old one off, I'll take it to the store again
* the tire on the old wheel was on the reverse direction, had been ridden for a very long time like that, and the threads are extremely worn
* after making insane efforts earlier to put the tire on the wheel, and knowing about directionality, when I actually took it down I noticed I had at some point of my suffering swapped sides and put it on the wrong way in......
* I weighted the wheel for fun, assembled with unfilled tire and without the cassette was about 2.5kg

2021-01: ETC Rim Tape 700 40C for the new wheel. No packaging, but possibly: https://www.amazon.co.uk/dp/B0063HIIOY

2021-01: moved the saddle forward a bit to 1.8cm was still feeling scapulas before, now seems perfect. Not much effort on hamstrings, but I don't know how to fix both, and not having pain is more important

2020-12: moved the saddle forward back to 2cm, was feeling too much pressure on lower back, and on previous ride, the most tired part of body was behind scapulas, so presumably due to overreach. Felt immediately better.

2020-12-22: felt like rear hub had a bit of friction, can't fix vibration, going to try the buying a new whole wheel:
* https://www.bikeparts.co.uk/products/m-part-shimano-deore-mavic-a319-silver-dt-swiss-p-g-36-hole-rear-wheel Found by Googling same rim as original "Mavic A319". Site markings: WLC503 M PART SHIMANO DEORE / MAVIC A319 SILVER / DT SWISS P/G 36 HOLE 700C HYBRID REAR WHEEL. Cannot find a single website that gives exact rear hub model, but hopefully Deore will match, looks the same. 70 pounds. Does not come with rim tape.
* Schwalbe Men's Marathon Plus Tour Hs404 Performance Line Rigid Tires Size: 700 x 40C. Just going to get the entire thing to have leave a backup wheel.

2020-12-21: put in the new cassette, chainring and chain. Shifting is amazing once again. When pedalling strong on the test run it felt like something on the back hub was vibrating... gotta debug that. Maybe not enough force on closing the cassette?

2020-12-20: tried to replace entire drive chain after over stretched chain destroyed teeth. Chainring and pedals came off nicely, but cassette was stuck, but I took it to the shop and they managed: https://bicycles.stackexchange.com/questions/18465/how-can-i-remove-a-stuck-rear-cassette/74041#74041

2020-12: moved saddle back to 2.5cm mark to try and get more hamstring action, but back started hurting. Moved to 2.2cm half way through ride, and it seemed perfect.

2020-12: moved seat post down after https://www.youtube.com/watch?v=FNGMRtJ5LIc mentioned that saddle too high causes greater asymmetries which I had felt. With \x[dhb-dorica-mtb-shoe-2020-12] with cleats straight on 2-mark. First down 15mm from max, but felt really too low. Then down only 7.5mm, and felt great, possibly better than before.

2020-12: moved \x[2020-04-giro-rumble-vr-off-road-shoe] cleats all the way back, and turned the left one a bit outward to better fit let. Got more tired on hamstrings than on quads now, gotta improve that later on maybe for better balance.

2020-12: put more WD-40 on front shifter. Let it dry, then "WD-40 Bike, All Conditions Lube Bicycle". After next four hour ride, shift to 3rd was still working perfectly. Found the culprit.

Put back the rear mudguard. Wheel not hitting it for now. Lost the extra appended protector thingy, was sure I saw it during installation, so maybe it just fell off during next ride? Can't find it at home. Does not make much different for me, might help others behind me though.

2020-12-05: 4 hour ride, very wet and dirty, on start could get into third perfectly, but at end couldn't anymore!!! So it must have been an issue with lubrication on the bottom shift mechanism.

2020-12-01:
* test rode 3rd gear shift, completely smooth now!
* put back the new saddle Selle Royal Scientia, and inspired by https://www.youtube.com/watch?v=ZX3fKolI25Q moved the saddle to 2cm position because I had never felt my hamstrings. It did feel much better! I felt my hamstrigs more, and butt took much longer to get soggy, maybe only around 2 hour mark! Started feeling lower back more though.

2020-11-30:
* fixed the can't get into 3rd gear problem. Did the following:
  * without cable tension, it changed easily
  * sprayed HD40 on shifter and hinges near bottom bracket
  * still didn't shift
  * reduced tension. This made me manage to change to the 3rd. It must be highlighted how sensitive this was to tension. 5 quarter screws on the shifter barrel were the difference between being able to shift or not
  * one more thing Ciro noticed, is that he had possibly previously held up the front gear before attaching the cable, therefore possibly overly tensioning it. It might be better to just instead pull the end of the cable with a pair of pliers to remove slack, but wihtout making the gear move up, that is enough. Then finish tuning on the shifter arrel adjuster
  * then since everyting was out and ready, also changed shift cable just in case. The new one had a bit less friction, but not a lot less, so it did not feel like it was what solved the problem
* also better inspected the chainrings. Middle one is visibly worn due to the century old chain, even more so than the teeth of the cassettes on the back.. so here we go again, more Shimano FC-M311: https://www.bikeparts.co.uk/products/shimano-fc-m311-altus-square-taper-chainset-48-38-28t-with-chainguard-175-mm Can't find how to buy just chainring itself.

2020-11-28: can't stand slippage anymore, going to change cassette too, rebuying Shimano Claris CS-HG50-8 11-34t: https://www.ebay.co.uk/p/2252255352 20 pounds

2020-11-26: left hand large gear almost impossibly hard to switch to largest gear. The gear switches on chainring, but it won't click and stay in place, related: https://bicycles.stackexchange.com/questions/46172/front-shifter-wont-shift-into-3rd

2020-11-22: put back old saddle, one inch from back, did 6 hour ride, it is more comfortable than new one. Butt was soggy at some points, but much less than new saddle.

2020-11-19: noticed that chain slips if I pedal very strongly, and especially if I try to stand up: https://bicycles.stackexchange.com/questions/7928/why-does-my-gear-slip-when-going-uphill-standing Does not happen on the largest chainring. Have to check the smallest one, as it is harder to check there. Took to shop, they said chain worn out with tool measurement, and cassette worn out.

Bought Shimano CN-HG71 8 speed chain 19 pounds, with quicklink: https://bike.shimano.com/en-EU/product/component/city---trekking-e-bike-e6100-series/CN-HG71.html | https://bike.shimano.com/en-EU/product/component/city---trekking-e-bike-e6100-series/CN-HG71.html[], it is from the \x[shimano-product-lines][Acera line]. The price in-store was good, on \x[amazon-company] Prime, would have been 27 pounds! https://www.amazon.co.uk/dp/B00JJWR12U There were two chain options, a cheaper 12 pound one, and the more expensive. TODO difference? Maybe the cheap one is https://bike.shimano.com/en-EU/product/component/tourney/CN-HG40.html[CN-HG40], which is from the Tourney line?

I inspected the cassette myself later on, but it did not appear significantly worn out in my newbie opinion.

2020-11-08: used \x[park-tool-paw-12-adjustable-wrench] and \x[park-tool-bbt-22] to remove bottom bracket to debug noise. After putting everything together, it seemed gone on a very short test ride. The bottom bracket itself seemed fine. There was a bit of dirt, but didn't seem critical. What felt more off was that the drive side cranck arm came off much more easily than the non-drive side one, suggesting it was not tight enough. https://www.youtube.com/watch?v=cPQyQnNdews "Crank Removal and Installation - Three Piece Crankset (Square Spindle, ISIS, Octalink)" by Park Tool (2015) suggests that this is a common cause of noise, so maybe removing the bottom bracket wasn't needed after all this time. But it's done at least.

2020-11-05
* moved saddle backwards a bit to 1 cm mark, was feeling like butt was falling off the back a bit at 0 cm. After this, it felt better, but still a bit mushy after 4 hour ride
* been hearing a clicking noise when pedalling, left foot at about 7 o'clock. Going to open it up.

2020-10-04 bought a new inner shift cable for the rear derailleur from bike shop, bulk without visible branding. The plastic shifter casing screw was stripped, could not get it off. OMG I had done that just yesterday on the road for the diagnosis! How is it possible? So soft!!!! I just proped the plastic open with a flat screw driver and managed to insert the cable. However, the previous problem still remains: I can't get smooth shift to faster gears on the rear.

2020-10-03 was having rear shifting issues for a while, and today it stopped working completely. Opened and noticed that the shift cable had ruptured inside the shifter!!! Related: https://bicycles.stackexchange.com/questions/40536/shifter-cable-broke-down-misuse-lack-of-maintenance-shifter-or-regular-occurr This has been only 11 months since last change.

2020-08: buying Selle Royal Scientia M2 saddle: https://www.selleroyal.com/en/scientia-m-2 based on 60 degree riding position and 110mm sitbone distance \x[ciro-santilli-s-body]. Had felt a little bit of pain on butt muscle but it passed. But also noticed that the UNICLO shorts ripped a bit, and it might be due to the terrible state of the saddle. Felt good on first ride around the block. Harder than previous, and narrower. Feels higher quality and better fitting.

2020-06-06: replaced front brake pads with the Jagire ones previously bought (one pair already been put on rear brakes)

2020-04-19: tried to remove left pedal again with \x[2020-04-decareta-pedal-spanner], put more force, and the tool itself actually got dented and started spinning freely around the pedal. I give up, will change crank arm. Can't find just the left crank arm, and not sure if 170/175, so just buying the entire thing: Shimano Altus FC-M311 Crank set 48T/38T/28T with chaingard: https://si.shimano.com/pdfs/si/SI-0094A-001-ENG.pdf | https://si.shimano.com/pdfs/ev/EV-FC-M311-2675A.pdf | https://www.deporvillage.net/shimano-altus-m311-175mm-78-speed-chain-set-483828-black at 175mm which is the correct one for my height as mentioned at: https://www.youtube.com/watch?v=vUygkHlcVMQ

2020-04: bought Shimano Deore PD-M324 pedals in preparation for flat to SPD switch: https://bike.shimano.com/en-EU/product/component/deore-t6000/PD-M324.html[] (https://web.archive.org/web/20200419105148/https://bike.shimano.com/en-EU/product/component/deore-t6000/PD-M324.html[archive]) | https://www.wiggle.co.uk/shimano-m324-combination-pedals[], since I'll remove the pedals at somepoint anyways, first learnt at: https://bicycles.stackexchange.com/questions/30662/can-i-use-normal-shoes-trainers-with-clipless-pedals/30720#30720 can be used with normal shoes too. SPD/plataform double side chosen to so I can both commute with on regular shoes and ride further for sport with SPD shoes. Cleat type: SM-SH56. Praying to God that the thread size is universal as mentioned at: https://bicycles.stackexchange.com/questions/10162/whats-difference-between-1-2-and-9-16-inch-pedals When they arrived noticed they felt quite heavy! 533g. Let's see. The non double sided is 455g though: https://www.wiggle.co.uk/shimano-m530-mtb-spd-trail-pedals/[]. And a full roadie one like PD-RS500 SPD-SL weights 320g.

2020-04: attempted to use \x[2020-04-decareta-pedal-spanner] to remove left pedal that would not come off with generic short wrench and has been ticking a bit for several months, and now sometimes appears to do false spins! The think must be completely destroyed. Failed, too hard.

2020-04: was trying to remove left pedal with short wrench I had, impossible. Later noticed that the kick up stand was a bit bent! Tried to turn it around, but did not manage to make it improve much. Later during a ride, the new position was too close to the spokes, and started to hit the spokes! When I got home, tried to remove the \x[fucking] kickstand, but it had a flat bolt in a deep place between the rear tubes, and I couldn't do it with my simple wrenches. Went to bike shop next day, and they removed it, likely with a deep wrench. The piece was thrown away.

2020-03: finally installed the new derailleur after long suffering, including new cables and casing on front and back derailleurs and on back brake. Took 3 1-2 hour sessions, but it became amazing.

2020-03: screw on left shifter (yes, the bloody screw) broke when trying to open it to take out cable. Buying left and right since the right one was broken from previous fall. https://www.amazon.co.uk/dp/B073XQ8J78 SHIMANO ST-EF65-8 EZI FIRE STI SHIFTERS 24 SPEED (3 x 8), 25 pounds https://si.shimano.com/pdfs/ev/EV-ST-EF65-9R4-3257B.pdf

2020-02: Bought unbranded bike bell sold in bulk from bike shop, 1.50 pound. Markings: SX. Old bell made louder sound. This type of simple mechanism: https://www.amazon.co.uk/dp/B00GZ3TFFM

2020-01-13: Parked on city center, shitty low diagonal place, crowded. When came back, bike on floor, had dropped hard since front wheel twisted on axis, untwisted with leg. When got home, noticed that right gear shifter was half coming off. Later found out that the piece broken on one of the screws, hanging only by the other screw. Next day morning, noticed that the bell had come off, and was lost, went back on evening but obviously could not find it.

2019-11: Jagire brake pads 2x V 11.50 pounds: https://jagwire.com/products/brake-pads/cross-rim-brake-pads (https://web.archive.org/web/20191123155242/https://jagwire.com/products/brake-pads/cross-rim-brake-pads[archive])

2019-11: Can't index rear derailleur, buying:
* Shimano Claris RD-2400-GS 8-speed rear derailleur long cage (RD == Rear Deralleur, GS == long cage) 25 pounds: https://www.amazon.co.uk/dp/B00D9ENDU8 https://bike.shimano.com/en-US/product/component/claris-2400/RD-2400-GS.html (https://web.archive.org/web/20191119110808/https://bike.shimano.com/en-US/product/component/claris-2400/RD-2400-GS.html[archive])
* Shimano Road Shift Cable Set Y60098022 manual: https://web.archive.org/web/20180219062741/https://si.shimano.com/pdfs/ev/EV-Cable-Set2-3128.pdf | 10 pounds: https://www.amazon.co.uk/dp/B00510WI72 (https://web.archive.org/web/20191119101106/http://web.archive.org/screenshot/https://www.amazon.co.uk/dp/B00510WI72[archive])
* shift cable front and back internal and external: 6 pounds internal 6 pounds external, Jagwire LEX bulk https://jagwire.com/guides/housing (https://web.archive.org/web/20191123100717/https://jagwire.com/guides/housing[archive])

TODO exact model. Polish brand. Hybrid style bike: https://en.wikipedia.org/wiki/Hybrid_bicycle

2019-08-29: rear derailleur fell off, later found it was bent: https://photos.app.goo.gl/yRgAc1FvKvcuCmcj7 Many bikes were parked together, I think other bikes put gear wires were a bit off, and I started pedalling very strong, and it immediately fell off. Went to repair shop, replaced it likely with: https://www.amazon.co.uk/dp/B01N51YIYZ (https://web.archive.org/web/20190904202236/https://www.amazon.co.uk/dp/B01N51YIYZ[archive]) "Shimano Cambio Post. 6/7v RD-TY300 Tourney TX Att. Dir.". Visible markings: "Shimano Tourney Paid 35 pounds, receipt said 25 for piece 10 for service, but piece actually cost 18 on Amazon, and with Prime / larger buys only 7 pounds. I'm also a bit worried because my back cassette is 8 speed, not 7... On official website RD-TY300-SGS: https://bike.shimano.com/en-EU/product/component/tourney/RD-TY300-SGS.html (https://web.archive.org/web/20190905062824/https://bike.shimano.com/en-EU/product/component/tourney/RD-TY300-SGS.html[archive])

2019-07-26: the front crank was sometimes making loud cracking noises when I pedalled hard. Then, after two weeks, it also started making very loud screeching noises, and then finally I couldn't pedal anymore, and I took it to the shop. They changed the bottom bracket, 45 pounds, 30 for the piece, a Shimano BB UN55 bottom bracket markings: SEALED CARTRIDGE UNIT, SHIMANAO BB-UN55, VIA INDONESIA, 68 QC BC1.37x24, L XL118 R:
* https://www.chainreactioncycles.com/shimano-un55-square-taper-bottom-bracket/rp-prod71369
* http://web.archive.org/web/20190726190947/https://www.chainreactioncycles.com/shimano-un55-square-taper-bottom-bracket/rp-prod71369
* https://bike.shimano.com/en-EU/product/component/shimano/BB-UN55.html
* https://si.shimano.com/pdfs/ev/EV-BB-UN55-3281.pdf
Photo of the piece that was taken out, notice some broken metal pieces and one of the ball bearing that were left: https://photos.app.goo.gl/6sqbM4kgDG5Pm7p58 Replacement/servicing:
* https://www.youtube.com/watch?v=Mvdajb1OSW8 "Shimano Square Taper Bottom Bracket Removal Guide" by Free To Cycle (2020)
* https://www.youtube.com/watch?v=FmMEi8ASKCo "Shimano UN55 Bottom Bracket Review" by Bikechanic (2019) says you need a \x[park-tool-bbt-22] to remove it

2019-08: front mudguards were making too much noise, cannot find brand. Removed them. Then in 2019-10 rain started, and I bought a new one.

2019-06-30: fill tires, using 90PSI, was TODO

2019-06-20: right gear wire broke, when opened for fixing was rusty near hand shifter

2019-04-07: fill tires, using 90PSI, was 40PSI. Also on Giant Flourish.

2019-03-30: repair bearings back wheel, true back wheel, remove rust from chain. Result: 50 pounds:
* cassette Shimano Claris CS-HG50-8, 8 speed: https://bike.shimano.com/en-NZ/product/component/claris-r2000/CS-HG50-8.html tooth counts: 11T-13T-15T-18T-21T-24T-28T-34T http://web.archive.org/web/20191119105727/https://bike.shimano.com/en-EU/product/component/claris-r2000/CS-HG50-8.html
* chain KMC Z51 7-8X Chain because 0.7 stretch reached (limit 0.5). Markings: Z, 9A, KMC, NARROW. Looks like this but fully silver: https://www.amazon.co.uk/KMC-Z-51-Z-8S-Speed-Silver/dp/B01I1GL49U (https://web.archive.org/web/20190830081223/https://www.amazon.co.uk/KMC-Z-51-Z-8S-Speed-Silver/dp/B01I1GL49U[archive]), image: https://web.archive.org/web/20190830081307/https://images-na.ssl-images-amazon.com/images/I/314Z3-1WxJL.jpg
* oil on back wheel bearings no replace

Tick on back wheel stopped. Back brake did not get better. Gears not improved. Rust remained, was told too hard to remove, and not on teeth, so should not matter.

2018-09-02: spoke https://www.dtswiss.com/en/products/spokes-nipples/spokes/dt-champion/ + minor brake work 41 pounds full work

2018: front tire blew up and was replaced by TODO.

2017: bought, specs:

Bottom bracket: TODO, have a picture after it broke later on and was removed by shop, but did not catch full markings, visible: JIS DIN EN-14777. JIS stands for Japanese Industry Standard (JIS), related: https://www.velodrome.shop/square-taper-jis/iso/

Saddle: completely destroyed when he decided to identify it for replacement in 2020. Website said "Selle Royal Freedom Royalgel". Markings (badly worn out): "yalgel", freeDom inscribed on saddle, so that's it.

Frame markings: Trekking (two stylized trees on left, one with two triangles and the other 3 triangles), Frame Size: M. Feels like the right size for me.

Gear shifters: don't know exact model since could not find markings (\x[fuck] you Shimano?) but from photos online, seems to be one of the ST-EF* family EZ FIRE, e.g. https://si.shimano.com/pdfs/dm/DM-ST0001-05-ENG.pdf[ST-EF65-8] or ST-EF500.

Back wheel: quick release.

Front wheel: no quick release, wrench size 15mm.

Back tire: Schwalbe Marathon Plus Tour 42-622 (28 x 1.60, 700x40C) https://www.schwalbe.com/en/unplattbar.html (https://web.archive.org/web/20191102213652/http://web.archive.org/screenshot/https://www.schwalbe.com/en/unplattbar[archive])) Puncture resistant.

Back hub: Shimano FH-RM30, so possibly FH-RM30-8-QR mentioned at https://productinfo.shimano.com/download?path=pdfs/archive/2010_SPECIFICATION.pdf

Rear rim markings: Mavic, A319, Made in France, inserted in 36 hole marking, therefore presumably https://shop.mavic.com/en-gb/a-319-j24500.html#1028=3283&1035=3501 \x[aluminium]{c} alloy 6106 

Back derailleur: markings: Shimano DEORE. Looks exactly like this "Shimano Deore RD-M591 9 Speed Rear Mech": https://www.chainreactioncycles.com/shimano-deore-m591-9-speed-rear-mech/rp-prod40543 (https://web.archive.org/web/20190830082012/https://www.chainreactioncycles.com/shimano-deore-m591-9-speed-rear-mech/rp-prod40543[archive]), manuals: https://web.archive.org/web/20191119094532/https://si.shimano.com/pdfs/ev/EV-RD-M591-2910.pdf and https://web.archive.org/web/20191119094534/https://si.shimano.com/pdfs/si/SI-6S90A-001-ENG.pdf[]. Similar product on Shimano website (not exactly the same, was not on sale anymore): https://bike.shimano.com/en-EU/product/component/deore-m6000/RD-M6000-GS.html (https://web.archive.org/web/20190905065426/https://bike.shimano.com/en-EU/product/component/deore-m6000/RD-M6000-GS.html[archive])

Back light: AXA Basta Ray LED Rear Light. Markings read: "basta X-Ray Steady STANDLICHT Z K 257 TP RBi 1017". Powered either by 2 AAA bareies in series or by the front hub dynamo: https://www.bike24.com/p213276.html | http://web.archive.org/web/20190821070347/https://www.bike24.com/p213276.html

Front tire: did not take note, was later changed.

Front hub: Shimano DH-3N20 dynamo front hub 6V 3.0W https://www.fawkes-cycles.co.uk/2912/products/shimano-nexus-dh-3n20-6v-30w-nutted-dynamo-front-hub-for-use-with-rim-brakes-36h.aspx | http://web.archive.org/web/20190821065910/https://www.fawkes-cycles.co.uk/2912/products/shimano-nexus-dh-3n20-6v-30w-nutted-dynamo-front-hub-for-use-with-rim-brakes-36h.aspx

Speed meter: Speedmaster 5000, CR2032 battery. https://26bikes.com/shop/accessories/computers/wire/prod/speedmaster-5000 | http://web.archive.org/web/20190418182410/https://26bikes.com/shop/accessories/computers/wire/prod/speedmaster-5000

Front light: AXA Sprint 10 Switch LED Front Light https://www.bike24.com/p213267.html Wire connector for back light: "Crimp Quick Disconnect Terminals". Tried 2.5mm but too large, size refers to each left/right wrinkle.

Grips: Herrmans Primergo, looks like this: https://www.amazon.co.uk/dp/B01LZSJ30Q

Pedal: flat/platform crap :-) Markings: "FP-910", exactly like the photo: https://www.ebay.co.uk/i/114124689225 (https://web.archive.org/web/20200419123333/https://www.ebay.co.uk/i/114124689225[archive]) but can't find the brand, very generic.

Crankset: markings "Shimano", "FC-M311", "Hyperdrive", "Dual SiS index", from Google part of Altus: https://si.shimano.com/pdfs/ev/EV-FC-M311-2675A.pdf (https://web.archive.org/web/20180219080226/https://si.shimano.com/pdfs/ev/EV-FC-M311-2675A.pdf[archive]). There are two possible tooth counts, I counted 48T on largest, so it is the 48/38/28 one. There are two arm sizes though, 170mm vs 175mm, not sure which one mine is, very hard to measure, I think it was 170mm. Installation at: https://si.shimano.com/pdfs/si/SI-0094A-001-ENG.pdf (https://web.archive.org/web/20200419132405/https://si.shimano.com/pdfs/si/SI-0094A-001-ENG.pdf[archive]) says to use "8 mm Allen key or a cotterless crank extractor (TL-FC10)". Identification: https://youtu.be/VMV-SOIhM2c?t=258 "Three Piece Crank of type Square Tapered Spin"

Front derailleur: markings Shimano Altus, 66-69 degrees, blue circle with two balls hyperdrive logo on top. Possibly Shimano Altus Front Derailleur FD-M310: https://si.shimano.com/pdfs/ev/EV-FD-M310-2676B.pdf

Mudguards: markings "Orion"

= Bicycle products
{parent=bicycle}

2021-07 Topeak MTS Trunkbag EX Strap Type https://www.topeak.com/global/en/products/192-Rear-Rack-Bags/859-MTX-TRUNKBAG-EX Fit nicely on the back of the \x[kross-bicycle-2017]. 8L. Originally to carry some extra food and water on a long summer trip. 36 pounds.

2020-11-30: Bought more "Finish Line DRY Teflon Bicycle Chain Lube" 8oz/240ml https://www.amazon.com/dp/B00Z779GMO/ after previous disaster with the bottle because lock is a bit hard to open.

2020-11-30 WD-40 Bike, All Conditions Lube Bicycle Lubricant, 250ml. Markings: "Contains PTFE". https://www.amazon.com/dp/B00O8QF3PY Sprays out of bottle, so very thin.

2020-11: Park Tool CC-2 Chain Checker Tool https://www.amazon.co.uk/dp/B000OZFILW 24 pounds https://www.parktool.com/product/chain-checker-cc-2

2020-04: https://www.amazon.co.uk/gp/product/B014LC7HS0 "Park Tool HPG-1 High Performance Grease", 113 g, blue. https://www.parktool.com/product/high-performance-grease-hpg-1#tabbed-section | https://www.parktool.com/assets/doc/product/HPG-1_SDS.pdf

2020-02: CatEye AMPP500 45 pounds https://www.cateye.com/intl/products/headlights/HL-EL085RC/ High mode 500 lumens: 1.5hrs, Daytime HyperConstant mode 500/250 lumens: 5hrs. 2020-11: noticed it was cracked on top front between button and light, I think I dropped it the other day from waist height.

2020-02: Karrimor REFLEKT Band 2 pounds from Sports Direct to replace old that I destroyed by playing with it with hands on work desk https://www.karrimor.com/karrimor-reflect-band-765007

2020-01: Muc-Off Drivetrain Cleaner - 500ml https://www.halfords.com/cycling/bike-maintenance/bike-cleaning/muc-off-drivetrain-cleaner-500ml

2020-01: Halfords Microfibre Heavy Duty Cloths https://www.halfords.com/motoring/car-cleaning/sponges-brushes-buckets/halfords-microfibre-heavy-duty-cloths (https://web.archive.org/web/20180529012539/https://www.halfords.com/motoring/car-cleaning/sponges-brushes-buckets/halfords-microfibre-heavy-duty-cloths[archive]) 87% polyester, 13% polyamide.

2019-12: https://www.amazon.co.uk/gp/product/B07GQSXN8B SENZEAL Bicycle Spoke Wrench Tool Spoke Key Spanner 6 in 1 for Bike Wheel Cycle Wrench 10-15 Gauge

2019-12: Halford's Bike Hut Chain Cleaning Kit: https://www.halfords.com/cycling/bike-maintenance/bike-cleaning/bikehut-chain-cleaning-kit 18 pounds. GCN video using it: https://www.youtube.com/watch?v=KM6mzE5lQ0w Review video saying it is useless: https://www.youtube.com/watch?v=rCo41pftAjU

2019-11: Multitool: https://www.amazon.co.uk/dp/B07MW3K2GK "COZYROOMY Bike Repair Kits - Bicycle tool kit with 10 in 1 Multi-Function Bike Tool, multi-purpose bone wrench And related spare tools, 1 Portable tool bag, 6 Month Warranty". No spoke wrench unfortunately. But does have 15mm bone wrench, which opens Kross front wheel.

2019-11: "CatEye RAPID X2" real lights, 40 dollars. Hopefully to increase side visibility at night, and day visibility on fast roads when cycling further on weekends. https://www.cateye.com/intl/products/safety_lights/TL-LD710-R/ (https://web.archive.org/web/20180904083218/https://www.cateye.com/intl/products/safety_lights/TL-LD710-R/[archive]) USB rechargeable. 80 lumens in high mode lasting 1 hour, 5 hours in low mode, 30 hours flashing, 16 hours rapid / pulse.

2019-10 WD-40 Smart Straw 450ml https://www.amazon.com/dp/B01MEHN4VC (https://web.archive.org/web/20191005165231/https://www.amazon.com/dp/B01MEHN4VC[archive])

2019-10 Finish Line Dry Teflon Tube https://www.amazon.com/dp/B00B704LZW (https://web.archive.org/web/20191005165259/https://www.amazon.com/dp/B00B704LZW[archive]) Tube broke while opening the first day. I glued it with some superglue, but two months later found it leaked into my "oils bag", so I threw it away... it must have penetrated through the super glue.

2019-08: "CatEye CA475RAPMIN Rapid Mini Rear Lights and Reflectors, Black" stolen: https://www.amazon.co.uk/dp/B01I4193PY (https://web.archive.org/web/20190829232804/https://www.amazon.co.uk/dp/B01I4193PY[archive]). Very good quality. Those USB rechargeable lights you just have got to take off with you whenever parked in town or else \x[drug-addict]{p} will steal them because they are easy to remove for recharging. Tempted to just stick to dynamo ones that are screwed in. Re-bought original back light: AXA Basta, was a bit different from previous one, cannot take in lamps anymore, even though there is the plastic casing for them! Just not metal / wires.

= Cycling clothes
{parent=bicycle-products}

2021-02 Castelli PRO THERMAL SKULLY red https://www.wiggle.co.uk/castelli-pro-thermal-skully https://www.castelli-cycling.com/gb/pro-thermal-skully/p/452054220A to help with cold, the X Lite Run Black Headband is just not made for winter.

2021-01: Madison Cycle Everywear Sportive Toe covers. L/XL. https://www.madison.cc/shop/sportive-thermal-toe-covers/VARCLA121/CLA12104

2021-01: "Endura FS260-NEMO Glove II" Neoprene Winter Handwarmer Large. https://www.endurasport.com/Gants-Nemo-FS260-Pro-II/p/E1216-Black Let's see how neoprene feels like. Basically it becomes wet with your transpiration, but is still relatively warm, would take it well down to 5C. Likely would work well with heavy rain. Not bat. But does feel a bit cooler than the Extremities XDRY, especially after you walk for a bit, and your hand becomes cold, and it is very hard to warm it because it is also wet.

2020-12-21: "dhb Neoprene Nylon Overshoes" https://www.wiggle.co.uk/dhb-neoprene-nylon-overshoes large black. After 2 rides, noticed that the front lower part of left foot (the one I put on and off the most) had a hole in it, not sure where it was made. Edit: I later noticed that it is because I have the reflex of braking slightly with my shoes in certain conditions, e.g. at lower speeds in close proximity to pedestrians, the sounds of which also serve as a way to alert them without the need for a loud bell. But it destroys the overshoe, so I have to undo that reflex.

2020-11-06 https://www.alpinetrek.co.uk/castelli-perfetto-ros-long-sleeve-cycling-jersey/ "Castelli Perfetto RoS Long Sleeve - Cycling jersey". On Wiggle: https://www.wiggle.co.uk/castelli-perfetto-ros-long-sleeve-jersey Feels great. Together with the dhb Merino Long Sleeve Base Layer, I can gown down to 0 Celcius, no problem. Breathes great, blocks wind reasonably, and can holds mild rail out on a short 1.5h ride without problem.

2020-10-17:
* last ride top was a bit cold on shoulders where not covered by arm warmers, about 10C, so going to try: https://www.wiggle.co.uk/dhb-aeron-rain-defence-polartec-jacket-1 "dhb Aeron All Winter Softshell Jacket", 109.25 pounds, Fluro Yellow, small to match previous tops that worked, approx: 50 polyester, 40 polyamide, 10 elastane, recommended temperature: 2-12 degrees Celcius. Material felt OK, not amazing but OK. Returned because a bit too small.
* the "dhb Classic Thermal Bib Tights" is a bit too warm for lower tens, so going to try "dhb Aeron FLT Roubaix Bib Tight", 85.50 pounds, medium, navy color, recommended temperatures:  6-14 deg C, 84% polyamide, 16% elastane. Hopefully not being marked as "thermal" means it is less warm. Also hopefully being DHB Aeron it will be a bit less baggy behind knees. Returned later because felt indistinguishable from the "dhb Classic Thermal Bib Tights".

For sizing see also: \x[ciro-santilli-s-body].

2020-11: Castelli Thermoflex 2 Arm Warmers, Large, 28 pounds: https://www.wiggle.co.uk/castelli-thermoflex-2-arm-warmers | https://www.castelli-cycling.com/gb/men/accessories/cycling-leg-and-arm-warmers/p/451953020A-010 advertized 8°-20°C. Was going to buy the DHB ones for 10 pounds less, but always out of so Castelli it is.

2020-08: started getting getting cold, so let's do it:
* https://www.wiggle.co.uk/dhb-lightweight-mesh-long-sleeve-base-layer "dhb Lightweight Mesh Long Sleeve Base Layer", small, 93% polyester 7% Elastane. Felt a little bit tight on first try, but I think I'll keep it, it might be correct, it's hard to say, and it's not worth my time. If it is too bad I'll just get another one later.

  Extremely light and transparent. Holds down to lower 10's, but if it's windy a bit less so. Feels good.
* https://www.wiggle.co.uk/dhb-classic-thermal-bib-tights "dhb Classic Thermal Bib Tights", medium, 86% polyamide, 14% elastane, 56 pounds. Very slightly tight, but felt right on first try. Some similar URLs https://www.wiggle.co.uk/dhb-classic-thermal-bib-tights-1 | https://www.wiggle.co.uk/dhb-thermal-bib-tight

  Pretty warm, for lower 10's and under only. Mid 10's is too much. Slighly bulky behind the knees when you bend. But good quality otherwise.
* https://www.wiggle.co.uk/dhb-extreme-weather-neoprene-overshoe "dhb Extreme Weather Neoprene Overshoe", large, 81% polyamide, 18% polyurethane. Wanted to buy https://www.wiggle.co.uk/dhb-neoprene-nylon-overshoes which is lighter, but was out of stock. The material felt good, but it did not fit with \x[2020-04-giro-rumble-vr-off-road-shoe], I should have checked better, maybe it is only for road shoes.

  Incompatible with \x[2020-04-giro-rumble-vr-off-road-shoe], so returned it. That shoe is too large.

2020-05 https://www.wiggle.co.uk/dhb-aeron-short-sleeve-jersey-4/ dhb Aeron Short Sleeve Jersey 100% polyester, Red Large. This one fit OK. Length feels right. When on cycling position, a bit baggy under arms though, but guessing M would be too short? Still already feels less baggy than the cheap muddy fox jersey. Aeron is the second lowest level of DHB top, after the super basic 25 pound one. Material is thin polyester, could be better, but OK.

2020-05 https://www.wiggle.co.uk/castelli-perfetto-light-2-short-sleeve-jersey/ Castelli Perfetto Light 2 Short Sleeve Jersey 84% Nylon, 16% Lycra. When it arrived, was WAY too small, so returned. Material looked and felt amazing.

2019-12 https://www.wiggle.co.uk/dhb-merino-long-sleeve-base-layer-1/?sku=5360752872 "dhb Merino Long Sleeve Base Layer", black, small, was right size, wool is a bit itchy, but does feel like it dries off more quickly on long rides than the cheap Muddy Fox polyester cycling Jersey. Pretty warm, too much for 15C.

2019-12 https://www.wiggle.co.uk/dhb-aeron-winter-weight-merino-sock/?sku=100335580 dhb Aeron Winter Weight Merino Sock, blue, UK 9.5-12. Did not seem to make much of a difference, feet still cold, not wet.

2019-11 Nike academy hyperwarm gloves: https://www.nike.com/gb/t/hyperwarm-academy-football-gloves-s9Dd8D/GS0373-013 (https://web.archive.org/web/20200419133129/https://www.nike.com/gb/t/hyperwarm-academy-football-gloves-s9Dd8D/GS0373-013[archive]) for 17.99 Pounds from physical retailer. Good intermediate between the Extremities gloves when it gets a bit warmer. 60% polyester/27% nylon/5% rubber/4% elastane.

2019-10 XGC Men's Cycling Shorts/Bike Shorts And Cycling Underwear With High-Density High-Elasticity And Highly Breathable 4D Sponge Padded https://www.amazon.co.uk/dp/B07BDJP64W (http://archive.is/ltPSE[archive]). Grey color, red inner butt padding. 2020-08: after using it a lot, noticed that the padding stiches started to come off a bit.

2018 (?) Extremities XDRY gloves Looks like: https://www.sportsdirect.com/extremities-wp-p/line-glove-91-907293 (https://web.archive.org/web/20200419133931/https://www.sportsdirect.com/extremities-wp-p/line-glove-91-907293[archive]) Gets wet after a few minutes of medium rain. But does dry quickly. Baggy, multilayer. Says 40 pounds, but always at 20 pound discount, so it is just a marketing trick. On website: Outershell 96% Polyester/4% Lycra (Spandex)Palm 45% Polyester/55% PolyurethaneLining 100% Polyester

2017-09 Trespass Cruzado Male Gloves size S. https://www.trespass.com/cruzado-unisex-gloves (https://web.archive.org/web/20191106223639/https://www.trespass.com/cruzado-unisex-gloves#[archive]) Markings: crossover gloves. Technical Performance TP75: https://www.trespass.com/advice/trespass-tp-ratings-guide/ Lost right hand around 2018/2019.

2017 Muddy fox cycling Jersey, orange, polyester, Large, cheap. Works well enough I guess. Could be a bit more tight fitting.

2017 https://www.amazon.co.uk/Nevica-Unisex-Reversible-Skuff/dp/B07GSD4R7Y Nevica Skuff black

2017 https://www.ebay.co.uk/itm/254646634761 Karrimor X Lite Run Black Headband

2015 UNIQLO tights 53% cotton, 32% polyester, 15% elastane. 2020-08: after riding it a lot, it ripped a bit near upper inner tights.

2015 Odlo top and tights, polyester. Not sure exact model, not necessarily meant for cycling. Top does not fit tightly, did not feel like it was removing sweat effectively.

= Cycling clothes temperature guide
{parent=cycling-clothes}

In degrees Celsius:
* 25+
  * palm tree shade and coconut water. Seriously though, if there's some shade or earlier morning/later afternoon it's OK, but if it's on an open road at midday, be careful, and stop early if you start getting slightly dizzy, it only gets worse!
* 18-25
  * "dhb Aeron Short Sleeve Jersey"
  * XGC Men's Cycling Shorts
  * \x[2020-04-giro-rumble-vr-off-road-shoe]
* 15-18:
  * "dhb Aeron Short Sleeve Jersey"
  * "dhb Lightweight Mesh Long Sleeve Base Layer"
  * XGC Men's Cycling Shorts
  * \x[2020-04-giro-rumble-vr-off-road-shoe]
* 10-15:
  * dhb Classic Thermal Bib Tights 10 and under. TODO this is a bit too warm for the upper range, need something more intermediate
  * "dhb Lightweight Mesh Long Sleeve Base Layer"
  * Castelli Perfetto RoS Long Sleeve - Cycling jersey. TODO this is a bit too warm for the upper range, need something more intermediate
  * "Karrimor X Lite Run Black Headband"
  * "Nike academy hyperwarm gloves"
  * "Nevica Skuff". A bit too hot on upper range, but easy to take off.
* 0-10:
  * dhb Merino Long Sleeve Base Layer
  * Castelli Perfetto RoS Long Sleeve - Cycling jersey
  * dhb Classic Thermal Bib Tights 10 and under
  * \x[dhb-dorica-mtb-shoe-2020-12]
  * "Karrimor X Lite Run Black Headband". Head a bit cold on lower range.
  * "dhb Neoprene Nylon Overshoes". Feet a bit cold on lower range.
  * "Extremities XDRY gloves". Hands a bit cold on lower range.
  * "Nevica Skuff"

= dhb Dorica MTB Shoe (2020-12)
{parent=cycling-clothes}

https://www.wiggle.co.uk/dhb-dorica-mtb-shoe

Black EUR 44, 1 smaller than \x[ciro-santilli-s-body][normal size] as recommended by website.

Bought SM-SH56 cleat to accompany.

When it arrived, it felt a bit too long, around 2cm maybe free space after toe, and when I walk and the front part touches ground, heel comes off a bit, which is annoying. But I was too lazy to give it back and take the risk of a second try, also it felt correctly tight on sides. During first test ride it felt good.

It is slightly water proof. But if it rains a lot, it will get soaking wet. And once it does get wet, it feels like it is very very hard to dry, there don't seem to be any holes underneath.

= 2020-04 Giro Rumble VR Off Road Shoe
{parent=cycling-clothes}

2021-01-28: used this show for th first time after wearing \x[dhb-dorica-mtb-shoe-2020-12] exclusively for a while. It felt much much more comfortable, the Dorica is too narrow. Also this one is much more recessed, and walking with it is much easier. Also, I notice that the intentional asymmetry I had put on cleats is not necessary anymore now that my saddle height is not way too high

At 5C feet are too cold. Compatible overshoes are basically impossible to find: https://bicycles.stackexchange.com/questions/73589/what-kind-of-overshoes-can-i-use-with-a-large-touring-spd-cycling-shoe-such-as-t

It is not possible to do long walks with this, unlike some websites suggests, especially on hard surfaces like rock, that would be very dangerous because the cleat area will slip. But it is good for shorter walks on grass/mud, and that does open up some good short walk exploration possibilities compared to a road shoe.

Color "Black/Red 20" (but it's actually orange), size 46 https://www.wiggle.co.uk/giro-rumble-vr-off-road-shoe (https://web.archive.org/web/20180816224711/https://www.wiggle.co.uk/giro-rumble-vr-off-road-shoe[archive]). Manual says to use Loctite 243 medium strength, first 2.4 Nm bolt torque to test it out and find good position, and then final bolt torque 5-6 Nm unless cleat says less. Starting with Shimano SM-SH56 cleats (https://si.shimano.com/pdfs/si/SI-41R0G-003-ENG.pdf[archive]), which also says provisional torque 2.5 Nm, tightening torque 5-6 Nm.

= Park Tool BBT-22
{parent=bicycle-products}

To remove and install Shimano and ISIS Drive splined 20-tooth bottom bracket cups.

https://www.parktool.com/product/bottom-bracket-tool-bbt-22

https://www.amazon.co.uk/dp/B001A0AIAG

Bought: 2020-11-07. Also getting a \x[park-tool-paw-12-adjustable-wrench] to use with it.

= Park Tool FR-5.2 Cassette Lockring Tool
{parent=bicycle-products}

https://www.parktool.com/product/cassette-lockring-tool-fr-5-2

Bought: 2020-10.

= Park Tool SR-12.2 chain whip
{parent=bicycle-products}

https://www.parktool.com/product/sprocket-remover-chain-whip-sr-12-2

Bought: 2020-10.

= Park Tool PAW-12 adjustable wrench
{parent=bicycle-products}

12-inch adjustable wrench.

https://www.parktool.com/product/adjustable-wrench-paw-12

https://www.amazon.co.uk/dp/B000OZDH6K

Bought: 2020-11-07 initially for using with \x[park-tool-bbt-22].

= 2020-04 Park Tool CCP-2.2 Cotterless Crank Puller Tool
{parent=bicycle-products}

https://www.amazon.co.uk/dp/B001VS1M20

Worked with \x[kross-bicycle-2017] Shimano FC-M311, I managed to remove the crank arm.

= 2020-04 DECARETA Pedal Spanner
{parent=bicycle-products}

https://www.amazon.co.uk/dp/B07VL2MLYY DECARETA Pedal Spanner Bike Pedal Wrench Three-in-one Function Bicycle Pedal Spanner 24mm Front and Rear Axle Spanner Pedal Install Spanner Repair Tool with Anti-Skidding Long Handle (Silver) £10.99.

Got dented the first time I tried to use it in the \x[kross-bicycle-2017]. All Amazon reviews say the same thing, should have read first, and bought instead known brand like Park And Tool which is the same price. Material advertized on Amazon: "\x[steel]{c} alloy and rubber".

= 2019-12 Bikehut bicycle repair stand
{parent=bicycle-products}

https://www.halfords.com/cycling/bike-maintenance/bike-work-stands/bikehut-repair-stand 40 pounds

Maybe I'm an idiot and should have bought a much smaller rear wheel stand, only thought of that later, e.g.: https://www.amazon.co.uk/dp/B00G7ZO3GE or https://www.amazon.co.uk/dp/B00SD7NL44

Rope attached to rear rack + door knob: https://www.youtube.com/watch?v=teUsJt1WL1g

= 2019-03 Giant Control Tower 3 floor pump bike pump
{parent=bicycle-products}

20 pounds. Works on both Schrader and Presta.

= Shoes
{parent=ciro-santilli-s-hardware}

For sizing see also: \x[ciro-santilli-s-body].

= 2017-04 Nike Flex Experience RN 6 Grey running shoes
{parent=shoes}

Amazing shoes! Wore them to their destruction.

https://www.amazon.in/Nike-Mens-Experience-Running-Shoes/dp/B07CQLHV9C (http://web.archive.org/web/20190504122243/https://www.amazon.in/Nike-Mens-Experience-Running-Shoes/dp/B07CQLHV9C[archive]).

Shoestring length: 1.185m

Replaced with after bicycle ate it: 1.0m, also worked but at limit.

Size: EUR 45.

= Ciro Santilli's cooking
{c}
{parent=ciro-santilli}
{scope}

= Roast chicken
{parent=ciro-santilli-s-cooking}

2020-12: large-ish chicken, https://www.youtube.com/watch?v=bJeUb8ToRIw worked very well. Just that after 1 hour it was slightly uncooked in the middle, and 10 minutes later, the top skin burnt a little bit. So next time, use some \x[aluminium] foil.

= Roasted nuts
{parent=ciro-santilli-s-cooking}

All with olive oil and salt mixed up before roasting.

2021-04-05 180C:
* chestnuts: 1.5x 200g: 3x 6min, this was a bit too much
* hazelnuts: 1.5x 200g: 3x 6min, seemed fine
* pecans: 4.5x 200g bags: 5x 6 min, a bit uneven roast because too much on tray

2021-02-06 180C:
* almonds: 2x 200g: 3x 6min, slighted burnt taste
* Brazil nuts: 2x 300g: 3x 6min + 3min
* chestnuts: 1x 400g: 3x 6min, perfect
* pecans: 3x 200g bags (previously had done just 2 bags at a time): 3x 6 min + 2x 3min, perfect

2021-01-04:
* almonds: 190C, 8 min, they started burning on top! What? I put olive oil abundantly this time. 170C 5 min
* chestnuts: 180C, 6 min, stir, 6 min, stir, 4 min, they became very good, dark brown
* pecans: 180C, 6 min, stir, 6 min, stir, 3 min while preparing chestnuts, very good

2020-11-21:
* mixed nuts: 180C, 10 minutes, did not reach the point. Then 7 more minutes on 190C: pecans completely burned out
* almonds: 190C, about 25 minutes, opened several times, in the end had a slight burnt taste, but did not get black, just darker brown. Not as crispy as the ones we buy roasted, but pretty good
* pecans: 180C, 13 minutes, opened 3 times to stir, became great

= Science
{parent=ciro-santilli-s-homepage}
{wiki}

= Scientific
{synonym}

= Natural science
{parent=science}
{wiki}

= Physics
{parent=natural-science}
{wiki}

= Physical
{synonym}

Physics is the \x[art] of predicting the future by modelling the world with \x[mathematics].

\x[ciro-santilli] doesn't know physics. He writes about it partly to start playing with some scientific content for: \x[write-free-books-to-get-famous-website], partly because this stuff is just amazingly beautiful.

Ciro's main intellectual \x[physics] \x[fetish]{p} are to learn \x[quantum-electrodynamics] (understanding the point of \x[lie-group]{p} being a subpart of that) and \x[condensed-matter-physics].

Every science \x[reductionism][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 \x[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:
* \x[chemistry]
* \x[biology]

As of 2019, all known physics can be described by two theories:
* the \x[standard-model]
* \x[general-relativity]

Unifying those two into the \x[theory-of-everything] one of the major goals of modern physics.

\Image[https://web.archive.org/web/20190925220347if_/https://imgs.xkcd.com/comics/purity.png]
{title=\x[xkcd] 435: Fields arranged by purity.}
{source=https://xkcd.com/435/}

= How to teach and learn physics
{parent=physics}

The approach many courses take to physics, specially "modern Physics" is really bad, this is how it should be taught:
* start by describing experiments that the previous best theory did not explain. This gets intimately entangled with basically learning the \x[history-of-physics], which is extremely beneficial as also highlighted by \x[ron-maimon], and also because \x[there-is-value-of-tutorials-written-by-early-pioneers-of-the-field].

  In the \x[surely-you-re-joking-mr-feynman-chapter-o-americano-outra-vez] \x[richard-feynman] describes his experience teaching in \x[brazil] in the early 1950s, and how everything was memorized, without any explanation of the experiments or that the theory has some relationship to the real world! Although things have improved considerably since, Ciro still feels that some areas of physics are still taught without enough experiments described upfront. Notably, ironically, \x[quantum-field-theory], which is where Feynman himself worked. Feynman gave huge importance to understanding and explaining experiments, as can also be seen on \x[richard-feynman-quantum-electrodynamics-lecture-at-university-of-auckland-1979].
* then, give the final formula for the next best theory
* then, give all the important final implications of that formula, and how it amazingly describes the experiments. In particular this means: \x[doing-physics-means-calculating-a-number]
* then, give some mathematical intuition on the formulas, and how the main equation could have been derived
* finally, then and only then, start deriving the outcomes of the main formula in detail

This is likely because at some point, experiments get more and more complicated, and so people are tempted to say "this is the truth" instead of "this is why we think this is the truth", which is much harder.

But we can't be lazy, there is no replacement to the why.

Related:
* http://settheory.net/learnphysics and https://www.youtube.com/watch?v=5MKjPYuD60I&list=PLJcTRymdlUQPwx8qU4ln83huPx-6Y3XxH from \x[settheory-net]

= Doing physics means calculating a number
{parent=how-to-teach-and-learn-physics}

In Physics, in order to test a theory, you must be able to extract a number from it.

It does not matter how, if it is exact, or numerical, or a message from \x[god]: a number has to come out of the formulas in the end, and you have to compare it with the experimental data.

Many theoretical physicists seem to forget this in their lectures, see also: \x[how-to-teach-and-learn-physics]{full}.

= The most important physics experiments
{parent=physics}

Videos should be found/made for all of those: \x[videos-of-all-key-physics-experiments]

* \x[speed-of-light-experiments]
* basically all experiments listed under \x[quantum-mechanics-experiments] such as:
  * \x[black-body-radiation-experiment]

= Aharonov–Bohm effect
{c}
{parent=the-most-important-physics-experiments}

This shows that viewing \x[electromagnetism] as \x[gauge-theory] does have experimentally observable consequences. TODO understand what that means.

In more understandable terms, it shows that the \x[magnetic-vector-potential] matters where the magnetic field is 0.

\Video[https://www.youtube.com/watch?v=a70Bmkza7XA]
{title=The Quantum Experiment that ALMOST broke Locality by \x[the-science-asylum] (2019)}

= Michelson-Morley experiment
{parent=the-most-important-physics-experiments}
{wiki=Michelson–Morley_experiment}

\Video[http://youtube.com/watch?v=lzBKlY4f1XA]
{title="Michelson \x[interferometer]{c} - Amrita University" by Amrita Vlab (2013)}
{description=Shows the optical controls and alignment in more detail.}

\Video[http://youtube.com/watch?v=j-u3IEgcTiQ]
{title="Michelson \x[interferometer]{c}" published TSG Physics (2012)}
{description=TSG PHysiQuantum electrodynamics bibliographycs is the channel from the MIT Department of Physics Technical Services Group. In the video they produce a very clear round interference pattern.}

= Davisson-Germer experiment
{parent=michelson-morley-experiment}
{wiki=Davisson–Germer_experiment}

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

= Compton scattering
{parent=the-most-important-physics-experiments}
{wiki}

\Video[http://youtube.com/watch?v=uICnnfYHYJ4]
{title="Compton Scattering" by Compton Scattering (2017)}
{description=Experiment with a \x[caesium-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 because \x[planck-einstein-relation][photons are discrete and energy is proportional to frequency]:
\Video[http://youtube.com/watch?v=WR88_Vzfcx4]
{title="L3.3 Compton Scattering" by Barton Zwiebach (2017)}

The formula is exactly that of two \x[special-relativity][relativistic] billiard balls colliding.

Therefore this is evidence that \x[photon][photons exist] and have momentum.

= Photoelectric effect
{parent=the-most-important-physics-experiments}
{wiki}

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 \x[photon][existence of photons] and the \x[planck-einstein-relation].

= Lamb shift
{c}
{parent=the-most-important-physics-experiments}
{wiki}

2s/2p energy split, not predicted by the \x[dirac-equation], but explained by \x[quantum-electrodynamics], which is one of the first great triumphs of that theory.

Initial experiment: \x[lamb-retherford-experiment].

* https://www.youtube.com/watch?v=jPKEuiUNJIk Lamb Shift by Dr. Nissar Ahmad (2020)

On the return from the train from  the \x[shelter-island-conference] in \x[new-york], \x[hans-bethe] managed to do a \x[non-relativistic] calculation of the \x[lamb-shift]. He then published as The Electromagnetic Shift of Energy Levels by Hans Bethe (1947) which is still paywalled as of 2021, \x[academic-publishing][fuck me]: https://journals.aps.org/pr/abstract/10.1103/PhysRev.72.339 by \x[physical-review].

The Electromagnetic Shift of Energy Levels \x[freeman-dyson] (1948) published on  \x[physical-review] is apparently a \x[relativistic] analysis of the same: https://journals.aps.org/pr/abstract/10.1103/PhysRev.73.617 also paywalled as of 2021.

TODO how do the infinities show up, and how did people solve them?

\Video[https://www.youtube.com/watch?v=WcyMfgj9psQ]
{title=\x[murray-gell-mann] - The race to calculate the relativistic \x[lamb-shift] by \x[web-of-stories] (1997)}
{description=Quick historical overview. Mentions that \x[richard-feynman] and \x[julian-schwinger] were using \x[mass-renormalization] and cancellation if infinities. He says that French and  Weisskopf actually managed to do the correct calculations first with a less elegant method.}

https://www.mdpi.com/2624-8174/2/2/8/pdf History and Some Aspects of the Lamb Shift by G. Jordan Maclay (2019)

\Video[https://www.youtube.com/watch?v=062GN3RdH1c]
{title=Freeman Dyson - The Lamb shift by \x[web-of-stories] (1998)}
{description=
Mentions that he moved to the \x[usa] from the \x[united-kingdom] specifically because great experiments were being carried at \x[columbia-university], which is where the \x[lamb-retherford-experiment] was done, and that \x[isidor-isaac-rabi] was the head at the time.

He then explains \x[mass-renormalization] briefly: instead of calculating from scratch, you just compare the raw electron to the bound electron and take the difference. Both of those have infinities in them, but the difference between them cancels out those infinities.
}

\Video[https://www.youtube.com/watch?v=YP6TGj-yL7Y]
{title=\x[hans-bethe] - The Lamb shift (1996)}
{description=Ahh, Hans is so old in that video, it is sad to see. He did live a lot tough. Mentions that the shift is of about 1000 MHz.

The following video: https://www.youtube.com/watch?v=vZvQg3bkV7s Hans Bethe - Calculating the Lamb shift.
}

\Video[https://www.youtube.com/watch?v=-0DDUyR0200]
{title=\x[lamb-shift] by Vidya-mitra (2018)}

= Lamb-Retherford experiment
{c}
{parent=lamb-shift}
{title2=1947}

Published as Fine Structure of the Hydrogen Atom by a Microwave Method by \x[willis-lamb] and Robert Retherford (1947) on \x[physical-review].

\x[microwave] technology was developed in \x[world-war-ii] for \x[radar], notably at the \x[mit-radiation-laboratory]. Before that, people were using much higher frequencies such as the \x[visible-spectrum]. But to detect small energy differences, you need to look into longer wavelengths.

This experiment was fundamental to the development of \x[quantum-electrodynamics]. As mentioned at \x[genius-richard-feynman-and-modern-physics-by-james-gleick-1994] chapter "Shrinking the infinities", before the experiment, people already knew that trying to add \x[electromagnetism] to the \x[dirac-equation] led to \x[infinities-in-quantum-field-theory][infinities] using previous methods, and something needed to change urgently. However for the first time now the theorists had one precise number to try and hack their formulas to reach, not just a philosophical debate about infinities, and this led to major breakthroughs. The same book also describes the experiment briefly as:
\Q[Willis Lamb had just shined a beam of microwaves onto a hot wisp of hydrogen blowing from an oven.]

This one has open accesses as of 2021: https://journals.aps.org/pr/pdf/10.1103/PhysRev.72.241

It is two pages and a half long.

They were at \x[columbia-university] in the \x[columbia-radiation-laboratory]. Robert was Willis' graduate student.

Previous less experiments had already hinted at this effect, but they were too imprecise to be sure.

= International System of Units
{c}
{parent=physics}
{title2=SI}
{wiki}

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.

In other sections:
* \x[volt]

= Origins of Precision by Machine Thinking (2017)
{c}
{parent=international-system-of-units}

\Video[https://www.youtube.com/watch?v=gNRnrn5DE58]

Great overview of the earlier history of unit standardization.

Gives particular emphasis to the invention of \x[gauge-block]{p}.

= Versions of the international System of Units
{parent=international-system-of-units}

= 2019 redefinition of the SI base units
{parent=versions-of-the-international-system-of-units}
{wiki}

= Ampere in the 2019 redefinition of the SI base units
{parent=international-system-of-units}
{wiki}

TODO how does basing it on the \x[elementary-charge] help at all? Can we count individual electrons going through a wire? https://www.nist.gov/si-redefinition/ampere/ampere-quantum-metrology-triangle by the \x[nist] explains that is it basically due to the following two \x[quantized-physics] \x[solid-state-physics] phenomena/experiments that allows for extremely precise measurements of the \x[elementary-charge]:
* \x[quantum-hall-effect], which has \x[discrete] \x[electrical-resistance][resistances] of type:
  $$
  R_{xy} = \frac{V_\text{Hall}}{I_\text{channel}} = \frac{h}{e^2\nu}
  $$
  for integer values of $\nu$.
* \x[josephson-effect], which provides the \x[josephson-constant] which equals:
  $$
  K_{J} = \frac{2e}{h}
  $$

= Ampere
{parent=international-system-of-units}
{wiki}

Unit of \x[electric-current].

Affected by the \x[ampere-in-the-2019-redefinition-of-the-si-base-units]{child}.

= Kilogram
{parent=international-system-of-units}
{wiki}

Unit of \x[mass].

Defined in the \x[2019-redefinition-of-the-si-base-units] via the \x[planck-constant]. This was possible due to the development of the \x[kibble-balance].

= Kibble balance
{parent=kilogram}
{wiki}

Measures weight from a voltage.

= Time
{parent=international-system-of-units}
{wiki}

= Frequency
{parent=time}
{wiki}

= Period
{disambiguate=physics}
{parent=frequency}
{wiki}

= Hertz
{c}
{parent=frequency}
{title2=1857-1894}
{wiki}

Named after \x[radio] pioneer \x[heinrich-hertz].

= Hz
{c}
{title2}
{synonym}

= Megahertz
{parent=hertz}

= MHz
{c}
{synonym}
{title2}

Mega-\x[hertz], i.e. a million \x[hertz].

= Clock
{parent=time}
{wiki}

= Quartz clock
{parent=clock}
{wiki}

\Video[https://www.youtube.com/watch?v=_2By2ane2I4]
{title=How a quartz watch works by \x[steve-mould] (2017)}
{description=Mentions \x[feedback-loop] loop with the \x[quartz] \x[tuning-fork] for the \x[piezoelectricity] and an \x[amplifier]. Also mentions the choice of 32768 \x[hertz] ($2^15$) as the first power of 2 that is outside of the \x[human-hearing-range], and then how a \x[frequency-divider] is used to reduce the frequency to get the \x[second] counter.}

= Atomic clock
{parent=clock}
{wiki}

\Video[https://www.youtube.com/watch?v=p2BxAu6WZI8]
{title=How an atomic clock works, and its use in the global positioning system (GPS) by \x[engineerguy] (2012)}
{description=Shows how conceptually an atomic clock is based on a \x[feedback-loop] of two \x[hyperfine-structure] states of \x[caesium] atoms (non-\x[radioactive] \x[caesium-133] as clarified by the \x[wikipedia] page). Like a \x[quartz-clock], it also relies on the \x[piezoelectricity] of quartz, but unlike the \x[quartz-clock], the \x[quartz] is not shaped like a \x[tuning-fork], and has a much larger ressonating frequency of about 7 \x[mhz]. The feedback is completed by producing \x[photon]{p} that \x[resonate] at the right frequency to excite the \x[caesium].}

= Caesium standard
{parent=atomic-clock}
{title2=1967}
{wiki}

Uses the \x[frequency] of the \x[hyperfine-structure] of \x[caesium-133] ground state ($6s^1$) to define the \x[second].

\x[international-system-of-units] definition os the second since 1967, because this is what \x[atomic-clock]{p} use.

Why \x[caesium] \x[hyperfine-structure] is used:
* https://physics.stackexchange.com/questions/191871/why-do-atomic-clocks-only-use-caesium

= Unit of time
{parent=time}
{wiki}

= Second
{parent=unit-of-time}
{title2=s}
{wiki}

= Day
{parent=unit-of-time}
{title2=d}
{wiki}

= Calendar
{parent=day}
{wiki}

= Year
{parent=unit-of-time}
{title2=y}
{wiki}

= Length
{parent=international-system-of-units}
{wiki}

= Meter
{parent=length}
{wiki}

= Nanometer
{parent=length}
{wiki}

= nm
{synonym}

= Gauge block
{parent=length}
{wiki}

Highlighted at the \x[origins-of-precision-by-machine-thinking-2017].

= Geiger counter
{c}
{parent=international-system-of-units}
{wiki}

= Natural units
{parent=international-system-of-units}
{wiki}

A series of systems usually derived from the \x[international-system-of-units] that are more convenient for certain applications.

= Planck units
{c}
{parent=natural-units}
{wiki}

= Particle physics
{parent=physics}
{wiki}

Currently an informal name for the \x[standard-model]

Chronological outline of the key theories:
* \x[maxwell-s-equations]
* \x[schrodinger-equation]
  * Date: 1926
  * Numerical predictions:
    * \x[hydrogen-spectral-line], excluding finer structure such as 2p up and down split: https://en.wikipedia.org/wiki/Fine-structure_constant
* \x[dirac-equation]
  * Date: 1928
  * Numerical predictions:
    * \x[hydrogen-spectral-line] including 2p split, but excluding even finer structure such as \x[lamb-shift]
  * Qualitative predictions:
    * Antimatter
    * Spin as part of the equation
* \x[quantum-electrodynamics]
  * Date: 1947 onwards
  * Numerical predictions:
    * \x[lamb-shift]
  * Qualitative predictions:
    * Antimatter
    * \x[spin-physics] as part of the equation

= Standard Model
{c}
{parent=particle-physics}
{wiki}

As of 2019, the more formal name for \x[particle-physics], which is notably missing \x[general-relativity] to achieve the \x[theory-of-everything].

https://cds.cern.ch/record/799984/files/0401010.pdf The Making of the Standard Model by Steven Weinberg mentions three crucial elements that made up the standard model post earlier less generalized \x[quantum-electrodynamics] understandings
* \x[quark]
* \x[gauge-symmetry]
* \x[spontaneous-symmetry-breaking]

= Theory of everything
{parent=standard-model}
{title2=TOE}
{wiki}

As of 2019, the \x[standard-model] and \x[general-relativity] are incompatible. Once those are unified, we will have one equation to describe the entirety of \x[physics].

There are also however also unsolved problems in \x[electroweak-interaction] + \x[strong-interaction], which if achieved is referred to as a \x[grand-unified-theory]. Reaching a GUT is considered a sensible intermediate step before TOE.

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.

= Grand Unified Theory
{c}
{parent=theory-of-everything}
{title2=GUT}
{wiki}

\x[electroweak-interaction] + \x[strong-interaction].

Appears to be an \x[unsolved-physics-problem]. TODO why? Don't they all fit into the \x[standard-model] already? So why is strong force less unified with electroweak, than electromagnetic + weak is unified in electroweak?

= The standard model and general relativity are incompatible
{parent=theory-of-everything}

TODO arguments, proofs

= Fundamental interaction
{parent=theory-of-everything}
{wiki}

= Quantum gravity
{parent=theory-of-everything}
{wiki}

= String theory
{parent=quantum-gravity}
{wiki}

= Subatomic particle
{parent=standard-model}
{wiki}

= Elementary particle
{parent=subatomic-particle}
{wiki}

In other sections:
* \x[w-boson]{child}
* \x[z-boson]{child}

= Are there more than 3 generations of particles in the Standard Model?
{parent=elementary-particle}

* https://physics.stackexchange.com/questions/2051/why-do-we-think-there-are-only-three-generations-of-fundamental-particles on \x[physics-stack-exchange]

\Video[https://www.youtube.com/watch?v=AKtN6ajjSQo]
{title="PHYS 485 Lecture 5: Standard Model and Feynman Diagrams" by \x[2011-phys-485-lecture-videos-by-roger-moore-from-the-university-of-alberta][Roger Moore] (2016)}
{description=https://www.youtube.com/watch?v=AKtN6ajjSQo&t=1474 gives an argument why there might only be 3 generations of particles.}

= Defining properties of elementary particles
{parent=elementary-particle}
{wiki}

A suggested at \x[physics-from-symmetry-by-jakob-schwichtenberg-2015] chapter 3.9 "Elementary particles", it appears that in the \x[standard-model], the behaviour of each particle can be uniquely defined by the following five numbers:
* due to \x[spacetime-symmetry]{p}:
  * \x[mass]
  * \x[spin-physics]
* due to \x[internal-symmetry]{p}:
  * \x[electric-charge]
  * \x[weak-charge]
  * \x[color-charge]

E.g. for the \x[electron] we have:
* mass: $9.1 \times 10^{-31}$
* spin: 1/2
* electric charge: $1.6 \times 10^{-29}$
* weak charge: -1/2
* color charge: 0

Once you specify these properties, you could in theory just pluck them into the \x[standard-model-lagrangian] and you could simulate what happens. 

Setting new random values for those properties would also allow us to create new particles. It appears unknown why we only see the particles that we do, and \x[parameters-of-the-standard-model][why they have the values of properties they have].

= Photon
{parent=elementary-particle}
{wiki}

Initially light was though of as a wave because it experienced interference as shown by experiments such as:
* \x[double-slit-experiment]
* https://en.wikipedia.org/wiki/Newton%27s_rings

But then, some key experiments also start suggesting that \x[light] is made up of \x[discrete] packets:
* \x[compton-scattering], also suggests that photons carry momentum
* \x[photoelectric-effect]
* \x[single-photon-production-and-detection-experiments]
and in the understanding of the 2020 \x[standard-model] the photon is one of the \x[elementary-particle]{p}{parent}.

This duality is fully described mathematically by \x[quantum-electrodynamics]{parent}, where the photon is modelled as a quantized excitation of the photon field.

= Light
{parent=photon}
{wiki}

= Light source
{parent=light}
{wiki=List_of_light_sources}

= Lamp
{parent=light-source}

= Gas-discharge lamp
{parent=lamp}

= Neon lamp
{parent=gas-discharge-lamp}

= Radio
{parent=light}
{wiki}

= Radio receiver
{parent=radio}
{wiki}

= Receiver
{synonym}

= Transmitter
{parent=radio}
{wiki}

= Radar
{parent=radio}
{wiki}

= Speed of light
{parent=light}
{wiki}

Experiments: \x[speed-of-light-experiments].

= Speed of light experiments
{parent=speed-of-light}

* https://en.wikipedia.org/wiki/Speed_of_light#First_measurement_attempts Rømer and Christiaan Huygens reached 26% accuracy by the observation of Jupiter's moon!
* https://en.wikipedia.org/wiki/Fizeau_experiment 1851
  * \Video[http://youtube.com/watch?v=YMO9uUsjXaI]
    {title="Measuring the speed of light the old fashioned way: Replicating the Fizeau Apparatus" by AlphaPhoenix (2018)}
    {description=Modern reconstruction with a \x[laser] and digital camera.}
* Fast cameras. OK, this takes it to the next level:
  * \Video[http://youtube.com/watch?v=EtsXgODHMWk]
    {title="Visualizing video at the speed of light - one trillion frames per second" by \x[mit] (2011)}

= Faster-than-light
{parent=speed-of-light}
{title2=FTL}
{wiki}

In \x[special-relativity], it is impossible to travel faster than light.

One argument of why, is that if you could travel faster than light, then you could send a message to a point in \x[spacetime] that is \x[spacelike-separated] from the present. But then since the target is spacelike separated, there exists a \x[inertial-frame-of-reference] in which that event happens before the present, which would be hard to make sense of.

Even worse, it would be possible to travel back in time. This can be seen clearly on a \x[spacetime-diagram] such as: \x[image-spacetime-diagram-illustrating-how-faster-than-light-travel-implies-time-travel].

Bibliography:
* https://physics.stackexchange.com/questions/13001/does-superluminal-travel-imply-travelling-back-in-time/615079#615079
* https://physics.stackexchange.com/questions/574395/why-would-ftl-imply-time-travel
* https://physics.stackexchange.com/questions/516767/how-does-a-tachyonic-antitelephone-work
* https://www.physicsmatt.com/blog/2016/8/25/why-ftl-implies-time-travel shows the causailty violation on a spacetime diagram

\Image[Faster_than_light_implies_time_travel_diagram.svg]
{title=\x[spacetime-diagram]{c} illustrating how \x[faster-than-light] travel implies time travel.}
{description=Legend an explanation are https://physics.stackexchange.com/questions/13001/does-superluminal-travel-imply-travelling-back-in-time/615079#615079[shown in this answer].}

= Tachyon
{parent=faster-than-light}
{wiki}

= Tachyonic antitelephone
{parent=faster-than-light}
{wiki}

= Electromagnetic spectrum
{parent=light}
{wiki}

= Radio wave
{parent=electromagnetic-spectrum}
{title2=1m or more, 300 GHz or less}
{wiki}

This is likely the easiest one to produce as the frequencies are lower, which is why it was discovered first. TODO original setup.

Also because it is \x[transparent] to brick and \x[glass], (though not \x[metal]) it becomes good for \x[telecommunication].

Some notable subranges:
* \x[fm-broadcasting]

= FM broadcasting
{c}
{title2=3m, 87.5-108.0 MHz}
{parent=radio-wave}
{wiki}

= Microwave
{parent=radio-wave}
{title2=1 mm - 1 m, 300 MHz - 300 GHz}
{wiki}

Micro means "small wavelength compared to \x[radio-wave]{p}".

= Microwave oven
{parent=microwave}
{wiki}

= Wi-Fi
{c}
{title2=2-6 GHz}
{parent=microwave}
{wiki}

This frequency range is likely chosen to allow faster data transfer than say, \x[fm-broadcasting], while still being relatively \x[transparent] to walls (though not as much).

= Infrared
{parent=electromagnetic-spectrum}
{title2=680 nm - 1m}
{wiki}

= Visible spectrum
{parent=electromagnetic-spectrum}
{title2=420-680 nm, 400-700 THz}
{wiki}

420 to 680 nm for sure, but larger ranges are observable in laboratory conditions.

= X-ray
{c}
{parent=electromagnetic-spectrum}
{title2=10pm-10nm}
{wiki}

= Photon spin
{parent=photon}

https://physics.stackexchange.com/questions/73942/how-do-we-know-photons-have-spin-1

Original 1931 experiment by Raman and Bhagavantam: http://dspace.rri.res.in/bitstream/2289/2123/1/1931%20IJP%20V6%20p353.pdf

= Radiation pressure
{parent=photon}
{wiki}

= Nichols radiometer
{c}
{parent=radiation-pressure}
{wiki}

Experimental setup to observe radiation pressure in the laboratory.

= Solar sail
{parent=radiation-pressure}
{wiki}

Application of \x[radiation-pressure].

First live example: https://en.wikipedia.org/wiki/IKAROS

\Image[https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/IKAROS_IAC_2010.jpg/568px-IKAROS_IAC_2010.jpg]
{title=A 1:64 scale model of the IKAROS spacecraft.}

= Single photon production and detection experiments
{parent=photon}

You can't get more direct than this in terms of proving that \x[photon]{p} exist!

The particular case of the \x[double-slit-experiment] will be discussed at: \x[single-particle-double-slit-experiment].

Production:
* \x[spontaneous-parametric-down-conversion]
* \x[quantum-dot-single-photon-source]
* \x[video-jeremy-o-brien-quantum-technologies-by-googletechtalks-2014] https://www.youtube.com/watch?v=7wCBkAQYBZA&t=531s mentions \x[optical-ring-resonator]{p}

Detectors are generally called \x[photomultiplier]{p}:
* \x[photomultiplier-tube]
* \x[silicon-photomultiplier]
* \x[superconductivity][superconducting], mentioned at:
  * https://singlequantum.com/technology/snspd/
  * \x[video-jeremy-o-brien-quantum-technologies-by-googletechtalks-2014] https://youtube.com/watch?v=7wCBkAQYBZA?t=2720

\Video[http://youtube.com/watch?v=dyXq1u87qew]
{title="How to use an SiPM - Experiment Video" by SensLTech (2018)}

\Video[https://www.youtube.com/watch?v=Vt84rSJa7VI]
{title="Single-photon detectors - Krister Shalm" by Institute for Quantum Computing (2013)}
{description=
* https://youtu.be/Vt84rSJa7VI?t=721 \x[poincare-sphere]
}

= Spontaneous parametric down-conversion
{parent=single-photon-production-and-detection-experiments}
{title2=SPDC}
{wiki}

Phenomena that produces photons in pairs as it passes through a certain type of crystal.

You can then detect one of the photons, and when you do you know that the other one is there as well and ready to be used. \x[two-photon-interference-experiment] comes to mind, which is the basis of \x[photonic-quantum-computer], where you need two photons to be produced at the exact same time to produce \x[quantum-entanglement].

\Video[https://www.youtube.com/watch?v=1MaOqvnkBxk]
{title="One Photon In, TWO Photons Out" by JQInews (2010)}
{description=Features Alan Migdall of the \x[national-institute-of-standards-and-technology]. Produced by the https://jqi.umd.edu/[Joint Quantum Institute (JQI)].

Mentions that this phenomena is useful to determine the efficiency of a \x[single-photon-production-and-detection-experiments][single photon detector], as you have the second photon of the pair as a control.

Also briefly describes how the input energy and momentum must balance out the output energy and momentum of the two photons coming out (determined by the output \x[planck-einstein-relation][frequency] and angle).

Shows the crystal close up of the crystal branded "Cleveland Crystals Inc.". Mentions that only one in a billion photon gets scattered.

Also shows a \x[photomultiplier-tube].

Then shows their actual \x[optical-table] setup, with two tunnels of adjustable angle to get photons with different properties.
}

\Video[https://www.youtube.com/watch?v=F1GaTizdcb8]
{title="How do you produce a single photon?" by \x[physics-world] (2015)}
{description=Very short whiteboard video by Peter Mosley from the University of Bath, but it's worth it for newbs. Basically describes \x[spontaneous-parametric-down-conversion].

One interesting thing he mentions is that you could get single photons by making your sunglasses thicker and thicker to reduce how many photons pass, but one big downside problem is that then you don't know when the photon is going to come through, that becomes essentially random, and then you can't use this technique if you need two photons at the same time, which is often the case, see also: \x[two-photon-interference-experiment].
}

= Two photon interference experiment
{parent=single-photon-production-and-detection-experiments}
{wiki}

The basic experiment for a \x[photonic-quantum-computer].

Can be achieved in two ways it seems:
* macroscopic beam splitter and \x[optical-table]
* \x[photolithography]

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

\Video[http://youtube.com/watch?v=nyK-vhoOBpE]
{title="Quantum Computing with Light" by Quantum Light University of Sheffield (2015)}
{description=Animation of in-silicon single photon device with brief description of emitting and receiving elements. Mentions:
* \x[quantum-dot] source. TODO how do you produce identical photons from two separate \x[quantum-dot]{p}? See also: \x[quantum-dot-single-photon-source].
* \x[superconductivity][superconducting] nanowire detector. So the device has to be cooled then? \x[video-jeremy-o-brien-quantum-technologies-by-googletechtalks-2014] https://youtube.com/watch?v=7wCBkAQYBZA&t=2497 however says that semiconducting devices can also be used
}

\Video[http://youtube.com/watch?v=5Sb7-RNSsPg]
{title=Quantum Optics - Beam splitter in quantum optics by Alain Aspect (2017)}
{description=More theoretical approach.}

\Video[https://www.youtube.com/watch?v=ofg335d3BJ8]
{title=Building a Quantum Computer Out of Light by whentheappledrops (2014)}
{description=Yada yada yada, then at https://youtu.be/ofg335d3BJ8?t=341 shows optical table and it starts being worth it. Jacques Carolan from the University of Bristol goes through their setup which injects 5 photons into a 21-way experiment.}

= Photomultiplier
{parent=single-photon-production-and-detection-experiments}
{wiki}

= Photomultiplier tube
{parent=photomultiplier}
{wiki}

Can be used to \x[single-photon-production-and-detection-experiments][detect single photons].

\x[richard-feynman] likes them, he describes the tube at \x[richard-feynman-quantum-electrodynamics-lecture-at-university-of-auckland-1979] at one point.

It uses the \x[photoelectric-effect] multiple times to produce a chain reaction.

= Silicon photomultiplier
{parent=photomultiplier}
{wiki}

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

Concrete device described at: \x[video-how-to-use-an-sipm-experiment-video-by-sensltech-2018].

= Squeezed state of light
{parent=photon}
{wiki=Squeezed states of light}

A \x[squeezed-coherent-state]{parent} of \x[light].

= Optics
{parent=photon}
{wiki}

The \x[science] and engineering of \x[light]{parent}!

When dealing more specifically with individual \x[photon]{p}, we usually call it \x[photonics].

= Beam splitter
{parent=optics}
{wiki}

= Half-silvered mirror
{parent=beam-splitter}
{wiki}

= Camera obscura
{parent=optics}
{wiki}

= Collimator
{parent=optics}
{wiki}

= Collimated beam
{parent=collimator}
{wiki}

= Parallel light
{parent=collimated-beam}
{wiki}

Often just called collimated light due to the \x[collimator] being the main procedure to obtain it.

However, you move very far away from the source, e.g. the \x[sun], you also get essentially parallel light.

Bibliography:
* https://physics.stackexchange.com/questions/82529/ways-of-achieving-parallel-rays-of-light

= Diffraction grating
{parent=optics}
{wiki}

= Diaphragm
{disambiguate=optics}
{parent=optics}
{wiki}

= Lens
{parent=optics}
{wiki}

The most important type of lens is the \x[biconvex-spherical-lens].

= Biconvex spherical lens
{parent=lens}

Focal length

Each side is a sphere section. They don't have to have the same radius, they are still simple to understand with different radiuses.

The two things you have to have in mind that this does are:
* converges \x[parallel-light] to a point at center at distance $f$ known as the \x[focal-length].

  This is for example why you can use lenses to burn things with \x[sun] rays, which are basically parallel.

  Conversely, if the input is a \x[point-light-source] at the \x[focal-length], it gets converted into \x[parallel-light].
* image formation: it converges all rays coming from a given source point to a single point image. This amplifies the signal, and forms an image at a plane.

  The source image can be far away, and the virtual image can be close to the lens. This is exactly what we need for a camera.

  For each distance on one side, it only works for another distance on the other side. So when we set the distance between the lens and the detector, this sets the distance of the source object, i.e. the focus. The equation is:
  $$\frac{1}{f} = \frac{1}{S_1} + \frac{1}{S_2}$$
  where $S_1$ and $S_2$ are the two distances.

= Focal length
{parent=biconvex-spherical-lens}
{title2=f}
{wiki}

If you pass \x[parallel-light].

For a \x[biconvex-spherical-lens], it is given by:
$$\frac{1}{f} = n \left( \frac{1}{R_1} + \frac{1}{R_2} \right)$$
where:
* n: f nidnex

= Optical cavity
{parent=optics}
{wiki}

= Point light source
{parent=optics}

Can be approximated with a \x[diaphragm-optics].

= Photonics
{parent=optics}
{wiki}

The \x[science] and engineering of \x[photon]{p}!

A bit more photon-specific than \x[optics]{parent}.

= Photon polarization
{parent=photonics}
{wiki}

The polarization state and how it can be decomposed into different modes can be well visualized with the \x[poincare-sphere].

One key idea about photon polarization is that it carries \x[angular-momentum]. Therefore, when an electron changes orbitals in the \x[schrodinger-equation-solution-for-the-hydrogen-atom], the angular momentum (as well as energy) change is carried out by the polarization of the \x[photon]!

\Video[https://www.youtube.com/watch?v=DOENxVgVO5E]
{title="Quantum Mechanics 9b - Photon Spin and Schrodinger's Cat II" by ViaScience (2013)}
{description=
* clear animations showing how two circular polarizations can make a vertical polarization
* a \x[polarizer] can be modelled \x[bra-ket-notation][bra] operator.
* light polarization experiments are extremely direct evidence of \x[quantum-superposition]. Individual photons must be on \i[both] L and R states at the same time because a V filter passes half of either L or R single photons, but it passes \i[all] L + R photons
}

= Polarizer
{parent=photon-polarization}
{wiki}

A device that modifies \x[photon-polarization].

As mentioned at \x[video-quantum-mechanics-9b-photon-spin-and-schrodinger-s-cat-ii-by-viascience-2013], it can be modelled as a \x[bra-ket-notation][bra].

= Poincaré sphere
{c}
{parent=photonics}
{id=poincare-sphere}
{wiki=Polarization_(waves)#Poincaré_sphere}

A more \x[photon]-specific version of the \x[bloch-sphere].

In it, each of the six sides has a clear and simple to understand \x[photon-polarization] state, either of:
* left/right
* diagonal up/diagonal down
* rotation clockwise/counterclockwise

The sphere clearly suggests for example that a rotational or diagonal polarizations are the combination of left/right with the correct phase. This is clearly explained at: \x[video-quantum-mechanics-9b-photon-spin-and-schrodinger-s-cat-ii-by-viascience-2013].

\Image[https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Poincaresp.png/800px-Poincaresp.png]
{title=Poincare sphere}

= Photonics equipment
{parent=photonics}

In other sections:
* \x[fluorometer]{child}
* \x[nichols-radiometer]{child}
* \x[photomultiplier-tube]{child}
* \x[single-photon-production-and-detection-experiments]{child}

= Interferometer
{parent=photonics-equipment}
{wiki=Interferometry}

= Fabry–Pérot interferometer
{id=fabry–perot-interferometer}
{parent=interferometer}
{wiki}

= Etalon
{synonym}

\Video[https://www.youtube.com/watch?v=HkjlfCiEqGE]
{title=Fabry Perot Interferometer by JFC UCL (2016)}
{description=Description only, reasonable animations. Considers the case of two nearby \x[beam-splitter]{p}.}

\Video[https://www.youtube.com/watch?v=tx67rXzXYD0]
{title=Fabry-Perot Introduction by Williams College Physics (2020)}
{description=Shows a working device. Confocal \x[optical-cavity], one of the mirrors scans back and forward moved by a \x[piezoelectric-motor], this is called a "scanning Fabry-Perot interferometer".

Does not produce an interference pattern, only an on/off blob, which is then fed into an \x[oscilloscope] for analysis. The oscilloscope shows both the mirror displacement (which is given by a voltage) and the light detector output.}

\Video[https://www.youtube.com/watch?v=r2ip14zIFmw]
{title=Aligning a Scanning Fabry-Perot Interferometer by University of South Florida (2016)}
{description=Very detailed, and shows of some nice equipment and techniques.}

= Optical fibre
{parent=photonics-equipment}
{wiki}

\Video[https://www.youtube.com/watch?v=7qkizPs2kdw]
{title=The Story of Light by \x[bell-labs] (2015)}
{description=A ultra quick and \x[bell-labs] focused overview of the development of \x[optical-fibre].}

= Optical table
{parent=photonics-equipment}
{wiki}

The \x[breadboard] of \x[photonics]!

For example, that is how most modern \x[microscope]{p} are prototyped, see for example \x[video-two-photon-microscopy-by-nemonic-neuronex-2019].

= Optical ring resonator
{parent=photonics-equipment}
{wiki}

= Fluorescence
{parent=photon}
{wiki}

= Fluorometer
{parent=fluorescence}
{wiki}

\Video[https://www.youtube.com/watch?v=BbqsNDfCPQU]
{title="Time-Correlated \x[single-photon-production-and-detection-experiments][Single Photon Counting] (TCSPC) with the Fluorolog \x[fluorometer][fluorimeter]{c} - Yale CBIC" (2011-11-19)}

= Higgs boson
{c}
{parent=elementary-particle}
{wiki}

Initially there were mathematical reasons why people suspected that all \x[boson] needed to have 0 mass as is the case for \x[photon]{p} a \x[gluon]{p}, see \x[goldstone-s-theorem].

However, experiments showed that the \x[w-boson] and the \x[z-boson] both has large non-zero masses.

So people started theorizing some hack that would fix up the equations, and they came up with the \x[higgs-mechanism].

= Goldstone's theorem
{c}
{parent=higgs-boson}
{wiki=Goldstone_boson#Goldstone's_theorem}

= Higgs mechanism
{parent=higgs-boson}

= Lepton
{parent=elementary-particle}
{wiki}

Can be contrasted with \x[baryon]{p} as mentioned at \x[baryon-vs-meson-vs-lepton].

= Electron
{parent=lepton}
{wiki}

Behaviour fully described by \x[quantum-electrodynamics]{p}.

= Elementary charge
{parent=electron}
{wiki}

= Electron charge
{synonym}

Experiments to measure it:
* \x[oil-drop-experiment]

The \x[2019-redefinition-of-the-si-base-units] defines it precisely and uses it as a measure of charge: https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units#Ampere

= Why do the electron and the proton have the same charge except for the opposite signs?
{parent=elementary-charge}

https://physics.stackexchange.com/questions/21753/why-do-electron-and-proton-have-the-same-but-opposite-electric-charge

Given the view of the \x[standard-model] where the \x[electron] and \x[quark]{p} are just completely separate matter fields, there is at first sight no clear theoretical requirement for that.

As mentioned e.g. at \x[qed-and-the-men-who-made-it-dyson-feynman-schwinger-and-tomonaga-by-silvan-schweber-1994] chapter 1.6 "Hole theory", \x[dirac] initially wanted to think of the holes in his hole theory as the \x[proton]{p}, as a way to not have to postulate a new particle, the \x[positron], and as a way to "explain" the proton in similar terms. Others however soon proposed arguments why the \x[positron] would need to have the same \x[mass], and this idea had to be discarded.

= Oil drop experiment
{parent=elementary-charge}
{wiki}

Clear experiment diagram which explains that the droplet mass determined with https://en.wikipedia.org/wiki/Stokes%27_law[Stoke's law]:
\Video[http://youtube.com/watch?v=Y6XSK4tX6Gg]
{title="Quantum Mechanics 4a - Atoms I" by \x[viascience] (2013)}

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[http://youtube.com/watch?v=_683PGqG1M4]
{title="Millikan's Experiment, Part 2: The Experiment" by Phil Furneaux from Lancaster University published Feb 3, 2017.}

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

= Electron rest mass
{parent=electron}
{wiki}

= Positron
{parent=electron}
{title2=1932}
{wiki}

= Muon
{parent=lepton}
{title2=1936}
{wiki}

= Neutrino
{parent=lepton}
{wiki}

Hypothesized as the explanation for continuous \x[electron] energy spectrum in \x[beta-decay] in 1930 by .

First observed directly by the \x[cowan-reines-neutrino-experiment].

= Cowan-Reines neutrino experiment
{parent=neutrino}
{title2=1956}
{c}
{wiki}

= Composite particle
{parent=subatomic-particle}

= Hadron
{parent=composite-particle}
{wiki}

= Baryon
{parent=hadron}
{wiki}

\x[composite-particle] made up of an odd number of \x[elementary-particle]{p}.

The most important examples by far are the \x[proton] and the \x[neutron].

= Baryon vs meson vs lepton
{parent=baryon}

"Barys" means "heavy" in \x[greek-language], because \x[proton]{p} and \x[neutron]{p} was what made most of the \x[mass] of known ordinary matter, as opposed notably to \x[electron]{p}.

Baryons can be contrasted with:
* \x[meson]{p}, which have an even number of elementary particles. The name meson comes from "medium" since their most common examples have two quarks rather than three as the most common baryons such as \x[proton]{p}. So they have less mass than a \x[proton], but more than an \x[electron], this medium mass.
* \x[lepton]{p}, which are much lighter particles such as the \x[electron]. "Leptos" means "fine, small, thin".

= Neutron
{parent=hadron}
{wiki}

= Proton
{parent=hadron}
{wiki}

= Proton-to-electron mass ratio
{parent=proton}
{wiki}

= Meson
{parent=hadron}
{wiki}

\x[composite-particle] made up of an even number of \x[elementary-particle]{p}, most commonly one particle and one anti-particle.

This can be contrasted with \x[meson]{p}, which have an odd number of elementary particles, as mentioned at \x[baryon-vs-meson-vs-lepton].

= Pion
{parent=meson}
{title2=1947}
{wiki}

Conceptually the simplest \x[meson]{p}. All of them have neutral \x[color-charge]:
* charged: down + anti-up or up + anti-down, therefore with net electrical charge $\pm1$ \x[electron-charge]
* neutral: down + anti-down or up + anti-up, therefore with net electrical charge 0

= Kaon
{parent=meson}
{wiki}

One \x[strange-quark] bound with one \x[up-quark] or a \x[down-quark]. 6 combinations exist, 4 if we consider antiparticles the same as particles.

= Eightfold way
{disambiguate=physics}
{parent=subatomic-particle}
{wiki}

\Video[https://www.youtube.com/watch?v=BGeW6Nc6IMQ]
{title=Strangeness Minus Three (BBC Horizon 1964)}
{description=Basically shows \x[richard-feynman] 15 minutes on a blackboard explaining the experimental basis of the \x[eightfold-way-physics] really well, while at the same time hyperactively moving all over. The word \x[symmetry] gets tossed a few times.}

= Parameters of the Standard Model
{parent=standard-model}

The growing number of parameters of the Standard Model is one big source of worry for early 21st century physics, much like the growing number of particles was a worry in the beginning of the 20th (but that one was solved by 2020).

List: https://en.wikipedia.org/w/index.php?title=Standard_Model&oldid=1042518939#Construction_of_the_Standard_Model_Lagrangian

= Standard Model Lagrangian
{c}
{parent=standard-model}

Combination of other sub-\x[lagrangian]{p} for each of the forces, e.g.:
* \x[quantum-electrodynamics-lagrangian]

= Why do symmetries such as SU(3), SU(2) and U(1) matter in particle physics?
{parent=standard-model}

\x[physicist]{c}{p} love to talk about that stuff, but no one ever has the guts to explain it into enough detail to show its beauty!!!

Perhaps the wisest thing is to just focus entirely on the \x[u-1] part to start with, which is the \x[quantum-electrodynamics] one, which is the simplest and most useful and historically first one to come around.

Perhaps the best explanation is that if you assume those \x[internal-symmetry]{p}, then you can systematically make "obvious" educated guesses at the interacting part of the \x[standard-model-lagrangian], which is the fundamental part of the \x[standard-model]. See e.g.:
* \x[derivation-of-the-quantum-electrodynamics-lagrangian]
* \x[physics-from-symmetry-by-jakob-schwichtenberg-2015] chapter 7 "Interaction Theory" derives all three of \x[quantum-electrodynamics], \x[weak-interaction] and \x[quantum-chromodynamics] Lagrangian from each of the symmetries!

One bit underlying reason is: \x[noether-s-theorem].

Notably, https://axelmaas.blogspot.com/2010/08/global-and-local-symmetries.html gives a good overview:
\Q[
A local symmetry transformation is much more complicated to visualize. Take a rectangular grid of the billiard balls from the last post, say ten times ten. Each ball is spherical symmetric, and thus invariant under a rotation. The system now has a global and a local symmetry. A global symmetry transformation would rotate each ball by the same amount in the same direction, leaving the system unchanged. A local symmetry transformation would rotate each ball about a different amount and around a different axis, still leaving the system to the eye unchanged. The system has also an additional global symmetry. Moving the whole grid to the left or to the right leaves the grid unchanged. However, no such local symmetry exists: Moving only one ball will destroy the grid's structure.

Such global and local symmetries play an important role in physics. The global symmetries are found to be associated with properties of particles, e. g., whether they are matter or antimatter, whether they carry electric charge, and so on. Local symmetries are found to be associated with forces. In fact, all the fundamental forces of nature are associated with very special local symmetries. For example, the weak force is actually associated in a very intricate way with local rotations of a four-dimensional sphere. The reason is that, invisible to the eye, everything charged under the weak force can be characterized by a arrow pointing from the center to the surface of such a four-dimensional sphere. This arrow can be rotated in a certain way and at every individual point, without changing anything which can be measured. It is thus a local symmetry. This will become more clearer over time, as at the moment of first encounter this appears to be very strange indeed.
]{id=quote-axelmaas-local-symmetry}
so it seems that that's why they are so key: \x[local-symmetry]{p} map to the forces themselves!!!

https://axelmaas.blogspot.com/2010/09/symmetries-of-standard-model.html then goes over all symmetries of the \x[standard-model] uber quickly, including the global ones.

= Maxwell's equations
{c}
{parent=particle-physics}
{wiki}

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 \x[speed-of-light] and electromagnetic constants.

The equations are a limit case of the more complete \x[quantum-electrodynamics], and unlike that more general theory account for the quantization of \x[photon].

The equations are a system of \x[partial-differential-equation].

The system consists of 6 unknown functions that map 4 variables: time t and the x, y and z positions in space, to a real number:
* $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 https://en.wikipedia.org/wiki/Charge_conservation[conservation of charge] however, those input functions have the following restriction:
$$
\pdv{\rho}{t} + \div{\mathbf{\J}} = 0
$$
{title=Charge conservation}

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 \x[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 \x[equation-lorentz-force], 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:

$$
div{\E} = \frac{\rho}{\vacuumPermittivity}
$$
{title=Gauss' law}

$$
div{\B} = 0
$$
{title=Gauss's law for magnetism}

$$
\curl{\E} = -\pdv{\B}{t}
$$
{title=Faraday's law}

$$
\curl{\B} = \vacuumPermeability \left(\J + \vacuumPermittivity \pdv{E}{t} \right)
$$
{title=Ampere's circuital law}

You should also review the intuitive interpretation of \x[divergence] and \x[curl-mathematics].

= Lorentz force
{c}
{parent=maxwell-s-equations}
{wiki}

$$
\text{force\_density} = \rho \E + \J \times \B
$$
{title=Lorentz force}

A little suspicious that it bears the name of Lorentz, who is famous for \x[special-relativity], isn't it? See: \x[maxwell-s-equations-require-special-relativity].

= Explicit scalar form of the Maxwell's equations
{parent=maxwell-s-equations}

For numerical algorithms and to get a more low level understanding of the equations, we can expand all terms to the simpler and more explicit form:
$$
\pdv{E_x}{x} + \pdv{E_y}{x} +
\pdv{E_z}{x} =
\frac{\rho}{\vacuumPermittivity}
\\

\pdv{B_x}{x} +
\pdv{B_y}{x} +
\pdv{B_z}{x} =
0
\\

\pdv{E_z}{y} - \pdv{E_y}{z} = -\pdv{B_x}{t} \\
\pdv{E_x}{z} - \pdv{E_z}{x} = -\pdv{B_y}{t} \\
\pdv{E_y}{x} - \pdv{E_x}{y} = -\pdv{B_z}{t} \\

\pdv{B_z}{y} - \pdv{B_y}{z} = \vacuumPermeability \left(J_x + \vacuumPermittivity \pdv{E_x}{t} \right) \\
\pdv{B_x}{z} - \pdv{B_z}{x} = \vacuumPermeability \left(J_y + \vacuumPermittivity \pdv{E_y}{t} \right) \\
\pdv{B_y}{x} - \pdv{B_x}{y} = \vacuumPermeability \left(J_z + \vacuumPermittivity \pdv{E_z}{t} \right) \\
$$
{id=equation-maxwells-equation-explicit}

= Overdetermination of Maxwell's equations
{parent=explicit-scalar-form-of-the-maxwell-s-equations}
{wiki=Maxwell's_equations#Overdetermination_of_Maxwell's_equations}

As seen from \x[explicit-scalar-form-of-the-maxwell-s-equations], this expands to 8 equations, so the question arises if the system is over-determined because it only has 6 functions to be determined.

As explained on the Wikipedia page  however, this is not the case, because if the first two equations hold for the initial condition, then the othe six equations imply that 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.

TODO: the \x[electric-field] and \x[magnetic-field] can be expressed in terms of the \x[electric-potential] and \x[magnetic-vector-potential]. So then we only need 4 variables?

Bibliography:
* https://physics.stackexchange.com/questions/20071/do-maxwells-equations-overdetermine-the-electric-and-magnetic-fields

= Coulomb's law
{c}
{parent=maxwell-s-equations}
{wiki}

Static case of Maxwell's law for electricity only.

Is implied by Gauss' law if \x[maxwell-s-equations]: https://physics.stackexchange.com/questions/44418/are-the-maxwells-equations-enough-to-derive-the-law-of-coulomb

The "static" part is important: if this law were true for moving charges, we would be able to transmit information instantly at infinite distances. This is basically where the idea of \x[field-physics] comes in.

\Video[https://www.youtube.com/watch?v=B5LVoU_a08c]
{title=Coulomb's Law experiment with torsion balance with a mirror on the balance to amplify rotations by uclaphysics (2010)}

= Solutions of Maxwell's equations
{parent=maxwell-s-equations}

\Video[https://www.youtube.com/watch?v=FWCN_uI5ygY]
{title="Understanding Electromagnetic Radiation! | ICT #5" by Learn Engineering (2019)}
{description=Shows animations of a \x[dipole-antenna][dipole antenna] which illustrates well how radiation is emitted from moving charges and travels at the \x[speed-of-light].}

= Dipole antenna
{parent=solutions-of-maxwell-s-equations}
{wiki}

= Maxwell's equations with pointlike particles
{parent=solutions-of-maxwell-s-equations}

In the standard formulation of \x[maxwell-s-equations], the \x[electric-current] is a convient but magic input.

Would it be possible to use \x[maxwell-s-equations] to solve a system of \x[pointlike-particle]{p} such as electrons instead?

The following suggest no, or only for certain subcases less general than \x[maxwell-s-equations]:
* https://physics.stackexchange.com/questions/498892/solution-to-maxwell-lorentz-equations
* https://physics.stackexchange.com/questions/380741/complete-classical-description-of-two-interacting-charges
This is the type of thing where the probability aspect of \x[quantum-mechanics] seems it could "help".

= Maxwell's equations in 2D
{parent=maxwell-s-equations}
{c}

TODO it would be awesome if we could de-generalize the equations in 2D and do a \x[javascript] demo of it!

Not sure it is possible though because the \x[curl-mathematics] appears in the equations:
* https://physics.stackexchange.com/questions/104008/maxwells-equations-of-electromagnetism-in-21-spacetime-dimensions
* https://www.reed.edu/physics/faculty/wheeler/documents/Electrodynamics/Miscellaneous%20Essays/E&M%20in%202%20Dimensions.pdf

= Existence and uniqueness of solutions to Maxwell's equations
{parent=maxwell-s-equations}

TODO: I'm surprised that the Wiki page barely talks about it, and there are few \x[google] hits too! A sample one: https://www.researchgate.net/publication/228928756_On_the_existence_and_uniqueness_of_Maxwell's_equations_in_bounded_domains_with_application_to_magnetotellurics

= Electric field
{parent=maxwell-s-equations}
{title2=$\E$}
{wiki}

= Electric charge
{parent=electric-field}
{wiki}

= Charge conservation
{parent=electric-charge}
{wiki}

= Electric current
{parent=electric-charge}
{wiki}

In the context of \x[maxwell-s-equations], it is \x[vector-field] that is one of the inputs of the equation.

\x[maxwell-s-equations-with-pointlike-particles]{full} asks if the theory would work for pointlike particles in order to predict the evolution of this field as part of the equations themselves rather than as an external element.

Measured in \x[ampere]{p} in the \x[international-system-of-units].

= Electric potential
{parent=electric-field}
{title2=$\phi$}
{wiki}

= Volt
{parent=electric-potential}
{title2=V}
{wiki}

= Electronvolt
{parent=volt}
{wiki}

After the \x[2019-redefinition-of-the-si-base-units] it is by definition exactly $1.602 176 634 10^{-19}$ \x[joule]{p}.

= Magnetic field
{parent=maxwell-s-equations}
{title2=$\B$}
{wiki}

= Magnetometer
{parent=magnetic-field}
{wiki}

Implementations:
* \x[hall-effect] based
* \x[squid-device]

= Magnetic vector potential
{parent=magnetic-field}
{title2=$\va{A}$}
{wiki}

= Hall effect
{parent=maxwell-s-equations}
{c}

* https://en.wikipedia.org/wiki/Hall_effect
* http://hyperphysics.phy-astr.gsu.edu/hbase/magnetic/Hall.html

The voltage changes perpendicular to the current when magnetic field is applied, Just watch this:
\Video[https://upload.wikimedia.org/wikipedia/commons/transcoded/7/77/Hall_Sensor.webm/Hall_Sensor.webm.480p.vp9.webm]

Applications:
* the direction of the effect proves that electric currents in common electrical conductors are made up of negative charged particles
* \x[magnetometer][measure magnetic fields], TODO vs other methods

Other more precise non-classical versions:
* \x[quantum-hall-effect]{child}

= Electromagnetic four-potential
{parent=maxwell-s-equations}
{wiki}

A different and more elegant way to express \x[maxwell-s-equations] by using the:
* \x[magnetic-vector-potential]
* \x[electric-potential]
instead of the:
* \x[magnetic-field]
* \x[electric-field]

= Electromagnetic tensor
{parent=electromagnetic-four-potential}
{wiki}

= Four-current
{parent=electromagnetic-four-potential}
{wiki}

= Lorentz gauge
{c}
{parent=electromagnetic-four-potential}
{wiki}

There are several choices of \x[electromagnetic-four-potential] that lead to the same physics.

E.g. thinking about the \x[electric-potential] alone, you could set the zero anywhere, and everything would remain be the same.

The Lorentz gauge is just one such choice. It is however a very popular one, because it is also manifestly \x[lorentz-invariant].

= Electromagnetism
{parent=maxwell-s-equations}
{wiki}

= Electromagnetic force
{synonym}

The phenomena described by \x[maxwell-s-equations].

= Magnetism
{parent=electromagnetism}
{wiki}

= Theory of relativity
{parent=particle-physics}
{wiki}

= Relativistic
{synonym}

= Non-relativistic
{synonym}

= Special relativity
{parent=theory-of-relativity}
{wiki}

Explains how it is possible that everyone observes the same \x[speed-of-light], even if they are moving towards or opposite to the light!

This was observed in in the \x[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 \x[length-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 \x[general-relativity], which also explains gravity in a single framework.

Since time and space get all messed up together, you have to be very careful to understand what it means to say "I observed this to happen over there at that time", otherwise you will go crazy. A good way to think about is this:
* use \x[einstein-synchronization] to setup a bunch of clocks for every position in your \x[frame-of-reference]
* on every point of space, you put a little detector which records events and the time of the event
* each detector can only detect events locally, i.e. events that happen very close to the detector
* then, after the event, the detectors can send a signal to you, who is sitting at the origin, telling you what they detected

= Einstein notation
{c}
{parent=special-relativity}
{wiki}

= Einstein summation convention
{c}
{synonym}
{title2}

The https://en.wikipedia.org/w/index.php?title=Einstein_notation&oldid=1021244532[Wikipedia page] of this article is basically a masterclass why \x[write-free-books-to-get-famous-website/wikipedia][Wikipedia is useless for learning technical subjects]. They are not even able to teach such a simple subject properly there!

Notably, you have to tell people that the thing works with partial derivatives:

= Einstein synchronization
{c}
{parent=special-relativity}
{wiki}

= Frame of reference
{parent=einstein-synchronization}
{wiki}

= Inertial frame of reference
{parent=frame-of-reference}
{wiki}

= Inertial frames of reference
{synonym}

= Lorentz transformation
{c}
{parent=special-relativity}
{wiki}

The equation that allows us to calculate stuff in \x[special-relativity]!

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{aligned}
t' & = \gamma \left( t - \frac{v x}{c^2} \right) \\
x' & = \gamma \left( x - v t \right) \\
y' & = y \\
z' & = z
\end{aligned}
$$
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 https://en.wikipedia.org/wiki/Galilean_transformation[Gallilean transforms] which our intuition expects:
$$
\begin{aligned}
t' & = t
x' & = x - v t \\
y' & = y \\
z' & = z
\end{aligned}
$$

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.

= Lorentz covariance
{c}
{parent=lorentz-transformation}
{wiki}

= Lorentz invariant
{c}
{parent=lorentz-covariance}

= Lorentz invariance
{c}
{synonym}

Basically a synonym of \x[lorentz-covariance]?

= Lorentz transform consequence: everyone sees the same speed of light
{c}
{parent=lorentz-transformation}

OK, so let's verify the main desired consequence of the \x[lorentz-transformation]: that everyone observes the same \x[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{aligned}
t_1 & = T1 \\
x_1 & = X1 \\
t_2 & = \frac{L}{c} \\
x_2 & = X1 + L \\
\end{aligned}
$$

Now, if we transform for the moving observer:
$$
\begin{aligned}
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{aligned}
$$
and so the moving observer measures the speed of light as:
$$
\begin{aligned}
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{aligned}
$$

= Length contraction
{parent=lorentz-transformation}
{wiki}

Suppose that a rod has is length $L$ measured on a rest frame $S$ (or maybe even better: two identical rulers were manufactured, and one is taken on a spaceship, a bit like the \x[twin-paradox]).

Question: what is the length $L'$ than an observer in frame $S'$ moving relative to $S$ as speed $v$ observe the rod to be?

The key idea is that there are two events to consider in each frame, which we call 1 and 2:
* the left end of the rod is an observation event at a given position at a given time: $x_1$ and $t_1$ for $S$ or $x'_1$ and $t'_1$ for $S'$
* the right end of the rod is an observation event at a given position at a given time : $x_2$ and $t_2$ for $S$ or $x'_2$ and $t'_2$ for $S'$
Note that what you visually observe on a photograph is a different measurement to the more precise/easy to calculate two event measurement. On a photograph, it seems you might not even see the contraction in some cases as mentioned at https://en.wikipedia.org/wiki/Terrell_rotation

Measuring a length means to measure the $x_2 - x_1$ difference for a single point in time in your frame ($t2 = t1$).

So what we want to obtain is $x'_2 - x'_1$ for any given time $t'2 = t'1$.

In summary, we have:
$$
\begin{aligned}
L  &= x_2  &- x_1 \\
L' &= x'_2 &- x'_1
t'_2 = t'_1
\end{aligned}
$$

By plugging those values into the \x[lorentz-transformation], we can eliminate $t_2 and t_1$, and conclude that for any $t'_2 = t'_1$, the length contraction relation holds:
$$
L' = \frac{L}{\gamma}
$$

The key question that needs intuitive clarification then is: but how can this be symmetric? How can both observers see each other's rulers shrink?

And the key answer is: because to the second observer, the measurements made by the first observer are not simultaneous. Notably, the two measurement events are obviously \x[spacelike-separated-event]{p} by looking at the \x[light-cone], and therefore can be measured even in different orders by different observers.

= Terrell rotation
{c}
{parent=length-contraction}
{wiki}

What you would see the moving rod look like on a photo of a \x[length-contraction] experiment, as opposed as using two locally measured separate spacetime events to measure its length.

= Time dilation
{parent=lorentz-transformation}
{wiki}

One of the best ways to think about it is the \x[transversal-time-dilation] thought experiment.

= Transversal time dilation
{parent=time-dilation}
{wiki=Time_dilation#Simple_inference_of_velocity_time_dilation}

Light watch transverse to direction of motion. This case is interesting because it separates \x[length-contraction] from \x[time-dilation] completely.

Of course, as usual in \x[special-relativity], calling something "time dilation" leads us to \x[mind-boggling] ideas of "symmetry breaking": if both frames have a light watch, how can both possibly observe the other to be time dilated?

And the answer to this, is the usual: in special relativity time and space are interwoven in a \x[fucked] up way, everything is just a spacetime event.

In this case, there are three spacetime events of interest: both clocks start at same position, your beam hits up at x=0, moving frame hits up at x>0.

Those two mentioned events are \x[spacelike-separated-event]{p}, and therefore even though they seem simultaneous to you, they are not going to be simultaneous to the moving observer!

If \x[einstein-synchronization][little clock one meter away from you] tells you that at the time of some event (your light beam hit up) the moving light watch was only 50% up, this is just a number given by your one meter away watch!

= Transverse Doppler effect
{parent=time-dilation}
{wiki=Relativistic_Doppler_effect#Transverse_Doppler_effect}

= Twin paradox
{parent=lorentz-transformation}
{wiki}

The key question is: why is this not symmetrical?

One answer is: because one of the twin accelerates, and therefore changes inertial frames.

But the better answer is: understand what happens when the stationary twin sends light signals at constant time intervals to each other. When does the travelling twin receives them?

By doing that, we see that "all the extra aging happens immediately when the twin turns around":
* on the out trip, both twins receive signals at constant intervals
* when the moving twin turns around and starts to accelerate through different inertial frames, shit happens:
  * the moving twin suddenly notices that the rate of signals from the stationary twin increased. They are getting older faster than us!
  * the stationary twin suddenly notices that the rate of signals from the moving twin decreased. They are getting older slower than us!
* then when the moving twin reaches the return velocity, both see constant signal rates once again

\Image[https://upload.wikimedia.org/wikipedia/commons/7/73/TwinParadoxProperAcceleration.svg]
{height=600}
{title=Twin paradox illustration with twins sending light signals at regular intervals.}

Another way of understanding it is: you have to make all calculations on a \i[single] inertial frame for the entire trip.

Supposing the sibling quickly accelerates out (or magically starts moving at constant speed), travels at constant speed, and quickly accelerates back, and travels at constant speed setup, there are three frames that seem reasonable:
* the frame of the non-accelerating sibling
* the outgoing trip of the accelerating sibling
* the return trip of the accelerating sibling

If you do that, all three calculations give the exact same result, which is reassuring.

Another way to understand it is to do explicit integrations of the acceleration: https://physics.stackexchange.com/questions/242043/what-is-the-proper-way-to-explain-the-twin-paradox/242044#242044 This is the least insightful however :-)

Bibliography:

* https://physics.stackexchange.com/questions/98708/twin-paradox-calculating-spacetime-intervals-from-both-perspectives
* https://physics.stackexchange.com/questions/29921/why-isnt-the-symmetric-twin-paradox-a-paradox

= Maxwell's equations require special relativity
{c}
{parent=special-relativity}
{wiki}

The following aspects of \x[maxwell-s-equations] make no sense without \x[special-relativity]:
* the \x[lorentz-force] would be different observers have different speeds, see e.g.: \x[charged-particle-moving-at-the-same-speed-of-electrons-thought-experiment]
* \x[maxwell-s-equations-imply-that-the-speed-of-light-is-the-same-for-all-inertial-reference-frames]

When charged particle though experiment are seen from the point of view of special relativity, it becomes clear that magnetism is just a direct side effect of charges being viewed in special relativity. One is philosophically reminded of how \x[the-dirac-equation-predicts-spin][spin is the consequence of quantum mechanics + special relativity].

Bibliography:
* http://richardhaskell.com/files/Special%20Relativity%20and%20Maxwells%20Equations.pdf
* https://en.wikipedia.org/w/index.php?title=Lorentz_transformation&oldid=909991141#Transformation_of_the_electromagnetic_field

= Deriving magnetism from electricity and relativity
{c}
{parent=maxwell-s-equations-require-special-relativity}
{wiki}

It appears that \x[maxwell-s-equations] can be derived directly from Coulomb's law + special relativity:
* https://en.wikipedia.org/wiki/Classical_electromagnetism_and_special_relativity#Deriving_magnetism_from_electrostatics
* https://physics.stackexchange.com/questions/3618/can-maxwells-equations-be-derived-from-coulombs-law-and-special-relativity
This idea is suggested by the \x[charged-particle-moving-at-the-same-speed-of-electrons-thought-experiment], which indicates that \x[magnetism] is just a consenquence of \x[special-relativity].

= Charged particle moving at the same speed of electrons thought experiment
{parent=maxwell-s-equations-require-special-relativity}

This is a well known though experiment, which \x[richard-feynman] used to emphasize
* infinite wire with balanced positive and negative charges, so no net charge, but a net magnetic field
* a single charge moves parallel to wire at the same speed as the electrons

In the above experiment:
* from the wire frame, the charge feels electromagnetic force, because it is moving and there is a magnetic field
* from the single charge frame, there is still magnetic field (positive charges are moving), but the body itself is not moving, so there is no force!

The solution to this problem is \x[length-contraction]: the positive charges are length contracted and the moving electrons aren't, and therefore they are denser and therefore there is an effective charge from that frame.

This is also mentioned at \x[david-tong] http://www.damtp.cam.ac.uk/user/tong/em/el4.pdf (https://web.archive.org/web/20180920161243/http://www.damtp.cam.ac.uk/user/tong/em/el4.pdf[archive]) "David Tong: Lectures on Electromagnetism - 5. Electromagnetism and Relativity" "5.2.1 Magnetism and Relativity".

\Video[https://www.youtube.com/watch?v=Ii7rgIQawko]
{title=How Special Relativity Fixed Electromagnetism by \x[the-science-asylum] (2019)}

= Covariant formulation of classical electromagnetism
{parent=maxwell-s-equations-require-special-relativity}
{wiki}

See also: \x[covariance].

= Maxwell's equations are Lorentz invariant
{c}
{parent=covariant-formulation-of-classical-electromagnetism}

* https://physics.stackexchange.com/questions/219474/proof-that-maxwell-equations-are-lorentz-invariant

= Maxwell's equations imply that the speed of light is the same for all inertial reference frames
{c}
{parent=covariant-formulation-of-classical-electromagnetism}

* https://physics.stackexchange.com/questions/562149/how-can-we-conclude-from-maxwells-wave-equation-that-the-speed-of-light-is-the
* https://www.quora.com/How-do-Maxwell%E2%80%99s-equations-imply-that-the-speed-of-light-is-constant-in-all-reference-frames on \x[quora]

= Maxwell Lagrangian
{c}
{parent=covariant-formulation-of-classical-electromagnetism}

* https://www.youtube.com/watch?v=nrBiDRZRK5g Maxwell Lagrangian Derivation by \x[dietterich-labs] (2019)
* https://www.youtube.com/watch?v=yo-Z3RO-eeY Deriving the Maxwell Lagrangian by \x[pretty-much-physics] (2019)

= Spacetime
{c}
{parent=special-relativity}
{wiki}

= Four-vector
{c}
{parent=spacetime}
{wiki}

= Four-gradient
{c}
{parent=spacetime}
{wiki}

A \x[4d] \x[gradient] with some small \x[special-relativity] specifics added in (the light of speed and sign change for the time).

= Minkowski space
{c}
{parent=spacetime}
{wiki}

= Spacetime diagram
{c}
{parent=spacetime}
{wiki}

Why should I care when I can calculate new x and new time with \x[lorentz-transformation]?

Answer: it can give some qualitative intuition on what is larger/smaller happens before/after based only on arguably more intuitive geometric considerations, without requiring you to do any calculations, see e.g. \x[image-spacetime-diagram-illustrating-how-faster-than-light-travel-implies-time-travel].

= Light cone
{parent=spacetime-diagram}
{wiki}

A subset of \x[spacetime-diagram].

The key insights that it gives are:
* future and past are well defined: every reference frame sees your future in your future cone, and your past in your past cone

  Otherwise causality could be violated, and then things would go really bad, you could tell your past self to tell your past self to tell your past self to do something.

  You can only affect the outcome of events in your future cone, and you can only be affected by events in your past cone. You can't travel fast enough to affect.

  Two spacetime events with such fixed causality are called \x[timelike-separated-event]{p}.
* every other event (to right and left, known as \x[spacelike-separated-event]{p}) can be measured to happen before or after your current spacetime event by different observers.

  But that does not violate causality, because you just can't reach those spacetime points anyways to affect them.

\Image[https://upload.wikimedia.org/wikipedia/commons/7/78/Relativity_of_Simultaneity_Animation.gif]
{title=Animation showing how space-separated events can be observed to happen in different orders by observers in different \x[frame-of-reference][frames of reference].}

= Timelike-separated event
{parent=light-cone}

= Timelike-separated
{synonym}

The opposite of \x[spacelike-separated-event]{p}.

= Spacelike-separated event
{parent=light-cone}

Mathematically, we can decide if two events are \x[timelike-separated] or \x[spacelike-separated] by just looking at the sign of the \x[spacetime-interval] between them.

= Spacelike-separated
{synonym}

On the \x[light-cone], these are events on the left/right part of the cone.

Different observers might not agree on the order of two spacelike-separated events.

Further discussion at \x[light-cone]{full}.

The opposite of those events are \x[timelike-separated-event]{p}.

= Relativistic mechanics
{parent=special-relativity}
{wiki}

= Four-momentum
{parent=relativistic-mechanics}
{wiki=Relativistic_mechanics#Relativistic_energy_and_momentum}

= Relativistic energy
{parent=four-momentum}
{wiki=Relativistic_mechanics#Relativistic_energy_and_momentum}

= Energy-momentum relation
{parent=relativistic-energy}
{wiki=Energy–momentum_relation}

= Mass-energy equivalence
{parent=relativistic-energy}
{title2=$E=mc^2$}
{wiki=Mass–energy_equivalence}

= Spacetime interval
{parent=four-momentum}
{wiki=Spacetime#Spacetime_interval}

In the \x[galilean-transformation], there are two separate invariants that two \x[inertial-frame-of-reference] always agree on between two separate events:
* \x[time]
* \x[length], given by the \x[pythagorean-theorem]

However, in \x[special-relativity], neither of those are invariant separately, since space and time are mixed up together.

Instead, there is a new unified invariant: the spacetime-interval, given by:
$$c \Delta t^2 - (\Delta x ^2 + \Delta y^2 + \Delta z^2)$$

Note that this distance can be zero for two events separated.

= Proper time
{parent=spacetime-interval}
{wiki}

= General relativity
{parent=theory-of-relativity}
{wiki}

Unifies both \x[special-relativity] and \x[gravity].

Not compatible with the \x[standard-model], and the 2020 unification attempts are called \x[theory-of-everything].

= Why gravity is not a force?
{parent=general-relativity}
{wiki}

* https://physics.stackexchange.com/questions/33875/gravitation-is-not-force
* https://www.quora.com/Why-is-everybody-saying-that-gravity-isnt-a-force

Related to \x[what-does-it-mean-that-photons-are-force-carriers-for-electromagnetism].

= Gravity
{parent=general-relativity}
{wiki}

In 2020 physics, best explained by \x[general-relativity].

TODO: does old Newtonian gravity give different force results than general relativity?

= Experiments that measure the gravitational constant
{parent=gravity}

= Cavendish experiment
{c}
{parent=experiments-that-measure-the-gravitational-constant}
{wiki}

= Graviton
{parent=gravity}
{wiki}

= Applications of particle physics
{parent=particle-physics}

There aren't any, it's \x[art][useless]:
* \x[applications-of-quantum-electrodynamics]
* https://www.quora.com/What-if-any-are-the-widespread-applications-of-quantum-field-theory-today
* https://www.quora.com/What-commercial-applications-in-high-energy-particle-physics-and-the-results-coming-out-of-the-LHC-do-we-expect-to-see-in-the-next-5-10-years

= Quantum mechanics
{parent=particle-physics}
{wiki}

= Quantum
{synonym}

Quantum mechanics is quite a broad term. Perhaps it is best to start approaching it from the division into:
* \x[non-relativistic-quantum-mechanics]: obviously the simpler one, and where you should start
* \x[relativistic-quantum-mechanics]: more advanced, and arguably "less useful"

Key experiments that could not work without quantum mechanics: \x[quantum-mechanics-experiments].

Mathematics: there are a few models of increasing precision which could all be called "quantum mechanics":
* \x[schrodinger-equation]
* \x[dirac-equation]
* \x[quantum-electrodynamics]

\x[ciro-santilli] feels that the \x[deep-tech][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 \x[quantum-computing], understanding and controlling quantum systems is where the most interesting frontier of technology lies.

= Quantum mechanics experiments
{parent=quantum-mechanics}

Atoms exist and last for a long time, while in \x[maxwell-s-equations][classical electromagnetic theory punctual] orbiting electrons should emit radiation quickly and fall into the nucleus: https://physics.stackexchange.com/questions/20003/why-dont-electrons-crash-into-the-nuclei-they-orbit

In other sections:
* \x[black-body-radiation-experiment]{child} and the \x[ultraviolet-catastrophe] outcome

= Emission spectrum
{parent=quantum-mechanics-experiments}
{wiki}

= Spectral line
{parent=emission-spectrum}
{wiki}

A single line in the \x[emission-spectrum].

So precise, so \x[discrete], which makes no sense in \x[classical-mechanics]!

Has been the leading motivation of the development of \x[quantum-mechanics], all the way from the:
* \x[schrodinger-equation]: major lines predicted, including \x[zeeman-effect], but not finer line splits like \x[fine-structure]
* \x[dirac-equation]: explains \x[fine-structure] 2p spin split due to electron spin/orbit interactions, but not \x[lamb-shift]
* \x[quantum-electrodynamics]: explains \x[lamb-shift]
* \x[hyperfine-structure]: due to electron/nucleus spin interactions, offers a window into \x[nuclear-spin]

= NIST Atomic Spectra Database
{c}
{parent=spectral-line}

\x[nist] database for \x[spectral-line]: https://physics.nist.gov/PhysRefData/ASD/lines_form.html

Let's do a sanity check.

Searching for "H" for \x[hydrogen] leads to: https://physics.nist.gov/cgi-bin/ASD/lines1.pl?spectra=H&limits_type=0&low_w=&upp_w=&unit=1&submit=Retrieve+Data&de=0&format=0&line_out=0&en_unit=0&output=0&bibrefs=1&page_size=15&show_obs_wl=1&show_calc_wl=1&unc_out=1&order_out=0&max_low_enrg=&show_av=2&max_upp_enrg=&tsb_value=0&min_str=&A_out=0&intens_out=on&max_str=&allowed_out=1&forbid_out=1&min_accur=&min_intens=&conf_out=on&term_out=on&enrg_out=on&J_out=on

From there we can see for example the 1 to 2 lines:
* 1s to 2p: 121.5673644608 nm
* 1s to 2: 121.56701 nm TODO what does that $2$ mean?
* 1s to 2s: 121.5673123130200 TODO what does that mean?

We see that the table is sorted from lower from level first and then by upper level second.

So it is good to see that we are in the same 121nm ballpark as mentioned at \x[hydrogen-spectral-line].

TODO why I can't see 2s to 2p transitions there to get the \x[fine-structure]?

= Hydrogen emission spectrum
{parent=spectral-line}

= Hydrogen spectral line
{synonym}

= Gross hydrogen emission spectrum
{parent=hydrogen-emission-spectrum}

One reasonable and memorable approximation excluding any \x[fine-structure] is:
$$
E_n = -\frac{13.6eV}{n^2}
$$
{title=Hydrogen spectral series mnemonic}
see for example example: \x[hydrogen-1-2-spectral-line].

= Hydrogen 1-2 spectral line
{parent=gross-hydrogen-emission-spectrum}
{title2=121.6 nm}

\x[equation-hydrogen-spectral-series-mnemonic] gives for example from \x[principal-quantum-number] 1 to 2 a difference:
$$
E_n = -13.6eV\left[\frac{1}{2^2} - \frac{1}{1^2}\right] = 10.2eV
$$
which with \x[planck-einstein-relation] gives about 121.6 \x[nm] ($2.47 \times 10^15$ \x[hz]), which is a reasonable match with the value of 121.567... from the \x[nist-atomic-spectra-database].

= Rydberg formula
{c}
{parent=spectral-line}
{wiki}

= Hydrogen spectral series
{parent=rydberg-formula}
{wiki}

Kind of a synonym for \x[hydrogen-spectral-series], not very clear if \x[fine-structure] is considered by this term or not.

= Balmer series
{c}
{parent=rydberg-formula}
{wiki}

A line set for \x[hydrogen-spectral-line].

Formula discovered in 1885, was it the first set to have an empirical formula?

= Fine structure
{parent=spectral-line}
{wiki}

Split in energy levels due to interaction between electron up or down \x[spin-physics] and the electron orbitals.

Numerically explained by the \x[dirac-equation] when \x[dirac-equation-solution-for-the-hydrogen-atom][solving it for the hydrogen atom], and it is one of the main triumphs of the theory.

= Hyperfine structure
{parent=fine-structure}
{wiki}

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

As the name suggests, this energy split is very small, since the influence of the nucleus spin on the electron spin is relatively small compared to other \x[fine-structure].

For example, for the \x[hydrogen-emission-spectrum]:
* \x[hydrogen-1-2-spectral-line]: 10.2eV

TODO confirm: does it need \x[quantum-electrodynamics] or is the \x[dirac-equation] enough?

Notable application: \x[caesium-standard], which is used to define the \x[second] in the \x[international-system-of-units] since 1967.

= Zeeman effect
{c}
{parent=spectral-line}
{wiki}

Split in the \x[spectral-line] when a \x[magnetic-field] is applied.

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

Anomalous: evidence of \x[spin-physics].

http://www.pas.rochester.edu/~blackman/ast104/zeeman-split.html contains the hello world that everyone should know: 2p splits into 3 energy levels, so you see 3 spectral lines from 1s to 2p rather than just one.

p splits into 3, d into 5, f into 7 and so on, i.e. one for each possible \x[azimuthal-quantum-number].

It also mention that polarization effects become visible from this: each line is polarized in a different way. TODO more details as in an experiment to observe this.

Well explained at: \x[video-quantum-mechanics-7a-angular-momentum-i-by-viascience-2013].

\Video[https://www.youtube.com/watch?v=ZmObNFAqkBE]
{title=Experimental physics - IV: 22 - Zeeman effect by Lehrportal Uni Gottingen (2020)}
{description=This one is decent. Uses a \x[cadmium] lamp and an \x[etalon] on an \x[optical-table]. They see a more or less clear 3-split in a circular \x[interference-pattern],

They filter out all but the transition of interest.

* https://youtu.be/ZmObNFAqkBE?t=165 passes the lines through a \x[polarizer], which shows how orbital angular momentum is carried by \x[photon-polarization]
* https://youtu.be/ZmObNFAqkBE?t=370 says they are looking at 1D2 to 1P1 changes.
}

\Video[https://www.youtube.com/watch?v=OzkcB1lkgGU]
{title=Zeeman Effect - Control light with magnetic fields by \x[applied-science-youtube-channel] (2018)}
{description=Does not appear to achieve a crystal clear split unfortunately.}

= Double-slit experiment
{parent=quantum-mechanics-experiments}
{wiki}

Amazingly confirms the wave particle duality of \x[quantum-mechanics].

The effect is even more remarkable when done with individual particles such individual \x[photon]{p} or \x[electron]{p}.

\x[richard-feynman] liked to stress how this experiment can illustrate the core ideas of \x[quantum-mechanics]. Notably, he night have created the \x[infinitely-many-slits-thought-experiment] which illustrates the \x[path-integral-formulation].

= Single particle double slit experiment
{parent=double-slit-experiment}

This experiment seems to be really hard to do, and so there aren't many super clear demonstration videos with full experimental setup description out there unfortunately.

Wikipedia has a good summary at: https://en.wikipedia.org/wiki/Double-slit_experiment#Overview

For single-\x[photon] non-\x[double-slit-experiment]{p} see: \x[single-photon-production-and-detection-experiments]. Those are basically a pre-requisite to this.

\x[photon] experiments:
* https://aapt.scitation.org/doi/full/10.1119/1.4955173 "Video recording true single-photon double-slit interference" by Aspden and Padgetta (2016). Abstract says using \x[spontaneous-parametric-down-conversion] detection of the second photon to know when to turn the camera on

Electron experiments:
* \Video[https://www.youtube.com/watch?v=zc-iyjpzzGQ]
  {title="Electron Interference" by the https://en.wikipedia.org/wiki/National_Research_Council_(Italy)[Italian National Research Council] (1976)}
  {description=Institutional video about the 1974 single electron experiment by Merli, Missiroli, Pozzi from the https://en.wikipedia.org/wiki/University_of_Bologna[University of Bologna].

  Uses an electron biprism as in \x[electron-holography] inside a \x[transmission-electron-microscope].

  Shows them manually making the biprism by drawing a fine glass wire and coating it with gold.

  Then actually show the result live on a television screen, where you see the interference patterns only at higher electron currents, and then on photographic film.

  This was elected "the most beautiful experiment" by readers of Physics World in 2002.

  Accompanying website: http://l-esperimento-piu-bello-della-fisica.bo.imm.cnr.it/english/index.html[].

  Italian title: "Interferenza di elettroni". Goddammit, those Italian cinematographers can make even \x[physics] look exciting!
  }

Non-\x[elementary-particle]:
* 2019-10-08: 25,000 Daltons
* https://interactive.quantumnano.at/letsgo/ awesome interactive demo that allows you to control many parameters on a lab. Written in Flash unfortunately, in 2015... what a lack of future proofing!

\Video[https://www.youtube.com/watch?v=GzbKb59my3U]
{title="Single Photon Interference" by \x[veritasium] (2013)}
{description=Claims to do exactly what we want, but does not describe the setup precisely well enough. Notably, does not justify how he knows that single photons are being produced.}

= Are particles bounced by the first wall in the double slit experiment?
{parent=double-slit-experiment}

https://physics.stackexchange.com/questions/443358/in-the-double-slit-experiment-why-is-it-never-shown-that-particles-may-hit-the/573455#573455

It would be amazing to answer this with \x[single-particle-double-slit-experiment] measurements!

= Quantum Hall effect
{parent=quantum-mechanics-experiments}
{wiki}

Quantum version of the \x[hall-effect].

Gotta understand this because the name sounds cool. Maybe also because it is used to define the \x[fucking] \x[ampere-in-the-2019-redefinition-of-the-si-base-units].

At least the experiment description itself is easy to understand. The hard part is the physical theory behind.

TODO \x[videos-of-all-key-physics-experiments][experiment video].

= Fractional quantum Hall effect
{parent=quantum-hall-effect}
{wiki}

= Fractional quantum Hall effect 5/2
{parent=fractional-quantum-hall-effect}

= Spin Hall effect
{parent=quantum-hall-effect}
{wiki}

= History of quantum mechanics
{parent=quantum-mechanics}
{wiki}

https://physics.stackexchange.com/questions/18632/good-book-on-the-history-of-quantum-mechanics on \x[physics-stack-exchange]

https://www.youtube.com/watch?v=5hVmeOCJjOU A Brief History of Quantum Mechanics by \x[sean-carroll] (2020) Given at the \x[royal-institution].

= Quantum mechanics bibliography
{parent=quantum-mechanics}

= The Principles of Quantum Mechanics by Paul Dirac (1930)
{c}
{parent=quantum-mechanics-bibliography}
{wiki}

= The Principles of Quantum Mechanics by Paul Dirac revised fourth edition (1967)
{c}
{parent=the-principles-of-quantum-mechanics-by-paul-dirac-1930}

= MIT 8.06 Quantum Physics III, Spring 2018 by Barton Zwiebach
{c}
{parent=quantum-mechanics-bibliography}

https://www.youtube.com/playlist?list=PLUl4u3cNGP60Zcz8LnCDFI8RPqRhJbb4L

100 10-20 minute videos properly split by topic, good resource!

Instructor: \x[barton-zwiebach]{parent}.

Free material from university courses:
* https://physics.weber.edu/schroeder/quantum/QuantumBook.pdf  (https://web.archive.org/web/20191230193450/https://physics.weber.edu/schroeder/quantum/QuantumBook.pdf[archive]) "Notes on Quantum Mechanics" pusbliehd by Daniel V. Schroeder (2019) The author is from from Weber State University.

= Applications of Quantum Mechanics by David Tong (2017)
{c}
{parent=quantum-mechanics-bibliography}

* http://www.damtp.cam.ac.uk/user/tong/aqm/aqm.pdf
* https://web.archive.org/web/20200215103215/http://www.damtp.cam.ac.uk/user/tong/aqm/aqm.pdf

Author: \x[david-tong]{parent}.

Summary:
* Chapter 2 "Band Structure" covers \x[electronic-band-theory]

= Quantum Mechanics for Engineers by Leon van Dommelen (2011)
{parent=quantum-mechanics-bibliography}

* http://www.eng.fsu.edu/~dommelen/quantum/style_a/index.html
* https://web.archive.org/web/20200220003741/http://www.eng.fsu.edu/~dommelen/quantum/style_a/index.html

Looks very impressive! Last update marked 2011 as of 2020.

Goes up to "A.15 \x[quantum-field-theory] in a Nanoshell", Ciro have to review it to see if there's anything worthwhile in that section.

Personal page says he retired as of 2020: http://www.eng.fsu.edu/~dommelen/ But hopefully he has more time for these notes!

And he appears to have his own lightweight markup language that \x[transpiles] to \x[latex] called l2h: http://www.eng.fsu.edu/~dommelen/l2h/

= Quantum physics by Jim Branson (2003)
{parent=quantum-mechanics-bibliography}

https://quantummechanics.ucsd.edu/ph130a/130_notes/130_notes.html

For the UCSD Physics 130 course.

Last updated: 2013.

Very good! Goes up to the \x[dirac-equation].

= Mathematical formulation of quantum mechanics
{parent=quantum-mechanics}
{wiki}

These are the key mathematical ideas to understand!!

The state of a quantum system is a vector of unit length in a \x[hilbert-space]. TODO why Hilbert Space.

"Making a measurement" for an \x[observable] means applying a \x[self-adjoint-operator] to the state, and after a measurement is done:
* the state collapses to an \x[eigenvector] of the self adjoint operator
* the result of the measurement is the \x[eigenvalue] of the self adjoint operator
* the probability of a given result happening when the spectrum is \x[discrete] is proportional to the modulus of the projection on that eigenvector.

  For continuous spectra such as that of the \x[position-operator] in most systems, e.g. \x[schrodinger-equation-for-a-free-one-dimensional-particle], the projection on each individual eigenvalue is zero, i.e. the probability of one absolutely exact position is zero. To get a non-zero result, measurement has to be done on a continuous range of eigenvectors (e.g. for position: "is the particle present between x=0 and x=1?"), and you have to integrate the probability over the projection on a continuous range of eigenvalues.

  In such continuous cases, the probability collapses to an uniform distribution on the range after measurement.

  The continuous position operator case is well illustrated at: \x[video-visualization-of-quantum-physics-quantum-mechanics-by-udiprod-2017]
Those last two rules are also known as the \x[born-rule].

Self adjoint operators are chosen because they have the following key properties:
* their eigenvalues form an orthonormal basis
* they are diagonalizable

See also: https://en.wikipedia.org/wiki/Measurement_in_quantum_mechanics

Perhaps the easiest case to understand this for is that of \x[spin-physics], which has only a finite number of eigenvalues. Although it is a shame that fully understanding that requires a \x[special-relativity][relativistic] quantum theory such as the \x[dirac-equation].

The next steps are to look at simple 1D bound states such as \x[particle-in-a-box] and \x[quantum-harmonic-oscillator].

This naturally generalizes to \x[schrodinger-equation-solution-for-the-hydrogen-atom].

The solution to the \x[schrodinger-equation-for-a-free-one-dimensional-particle] is a bit harder since the possible energies do not make up a \x[countable-set].

This formulation was apparently called more precisely \x[dirac-von-neumann-axioms], but it because so dominant we just call it "the" formulation.

\x[quantum-field-theory-lecture-notes-by-david-tong-2007] mentions that:
\Q[if you were to write the wavefunction in quantum field theory, it would be a functional, that is a function of every possible configuration of the field $\phi$.]

= Born rule
{parent=mathematical-formulation-of-quantum-mechanics}
{wiki}

= Bra-ket notation
{parent=mathematical-formulation-of-quantum-mechanics}
{wiki=Bra–ket_notation}

Notation used in \x[quantum-mechanics].

Ket is just a \x[vector-mathematics]. Though generally in the context of \x[quantum-mechanics], this is an infinite dimensional vector in a \x[hilbert-space] like \x[l2].

Bra is just the \x[projection-mathematics] \x[linear-operator], i.e. a linear function which can act on a given vector and returns a single \x[complex-number]. Also known as... \x[dot-product].

For example:
$$
(\bra{x}) \ket{y}
$$
is basically a fancy way of saying:
$$
x \cdot y
$$
that is: we are taking the projection of $y$ along the $x$ direction. Note that in the ordinary dot product notation however, we don't differentiate as clearly what is a vector and what is an operator, while the bra-ket notation makes it clear.

The projection operator is completely specified by the vector that we are projecting it on. This is why the bracket notation makes sense.

It also has the merit of clearly differentiating vectors from operators. E.g. it is not very clear in $x \cdot y$ that $x$ is an operator and $y$ is a vector, except due to the relative position to the dot. This is especially bad when we start manipulating operators by themselves without vectors.

This notation is widely used in \x[quantum-mechanics] because calculating the \x[probability] of getting a certain outcome for an experiment is calculated by taking the projection of a state on one an \x[eigenvalue] basis vector as explained at: \x[mathematical-formulation-of-quantum-mechanics]{full}.

Making the projection operator "look like a thing" (the bra) is nice because we can add and multiply them much like we can for vectors (they also form a \x[vector-space]), e.g.:
$$
\bra{x} + \bra{y}
$$
just means taking the projection along the $x + y$ direction.

\x[ciro-santilli] thinks that this notation is a bit over-engineered. Notably the bra's are just vectors, which we should just write as usual with $\va{v}$... the bra thing makes it look scarier than it needs to be. And then we should just find a different notation for the projection part.

Maybe \x[dirac] chose it because of the appeal of the women's piece of clothing: \x[bra], in an irresistible call from \x[british-humour].

But in any case, alas, we are now stuck with it.

= Dirac-von Neumann axioms
{c}
{parent=mathematical-formulation-of-quantum-mechanics}
{wiki=Dirac–von_Neumann_axioms}

This is basically what became the dominant formulation as of 2020 (and much earlier), and so we just call it the "\x[mathematical-formulation-of-quantum-mechanics]".

= Linearity of quantum mechanics
{parent=mathematical-formulation-of-quantum-mechanics}

* https://physics.stackexchange.com/questions/1201/linearity-of-quantum-mechanics-and-nonlinearity-of-macroscopic-physics
* https://physics.stackexchange.com/questions/134503/what-is-the-physical-reason-behind-linearity-of-schrodingers-equation
* https://physics.stackexchange.com/questions/33344/is-the-universe-linear-if-so-why

= Observable
{parent=mathematical-formulation-of-quantum-mechanics}
{wiki}

= Phase-space formulation
{parent=mathematical-formulation-of-quantum-mechanics}
{wiki}

An "alternative" formulation of \x[quantum-mechanics] that does not involve operators.

= Non-relativistic quantum mechanics
{parent=quantum-mechanics}

The first \x[quantum-mechanics] theories developed.

Their most popular formulation has been the \x[schrodinger-equation].

= Schrodinger equation
{c}
{parent=non-relativistic-quantum-mechanics}
{wiki=Schrödinger_equation}

The \x[partial-differential-equation] of \x[special-relativity][non-relativistic] \x[quantum-mechanics].

Experiments explained:
* via the \x[schrodinger-equation-solution-for-the-hydrogen-atom] it predicts:
  * \x[spectral-line] basic lines, plus \x[zeeman-effect]
* \x[schrodinger-equation-solution-for-the-helium-atom]: perturbative solutions give good approximations to the energy levels
* \x[double-slit-experiment]: I think we have a closed solution for the max and min probabilities on the measurement wall, and they match experiments

Experiments not explained: those that the \x[dirac-equation] explains like:
* \x[fine-structure]
* \x[spontaneous-emission] coefficients

To get some intuition on the equation on the consequences of the equation, have a look at:
* \x[schrodinger-equation-simulations]
* \x[solutions-of-the-schrodinger-equation]

The easiest to understand case of the equation which you must have in mind initially that of the \x[schrodinger-equation-for-a-free-one-dimensional-particle].

Then, with that in mind, the general form of the \x[schrodinger-equation] is:
$$i\hbar\pdv{\psi(\vv{x}, t)}{t} = \hat{H}[\psi(\vv{x}, t)]$$
{title=Schrodinger equation}
where:
* $\hbar$ is the \x[reduced-planck-constant]
* $\psi$ is the \x[wave-function]
* $t$ is the time
* $\hat{H}$ is a \x[linear-operator] called the \x[hamiltonian]. It takes as input a function $\psi$, and returns another function. This plays a role analogous to the Hamiltonian in \x[classical-mechanics]: determining it determines what the physical system looks like, and how the system evolves in time, because we can just plug it into the equation and solve it. It basically encodes the total energy and forces of the system.

The $\vv{x}$ argument of $\psi$ could be anything, e.g.:
* we could have preferred \x[polar-coordinate]{p} instead of linear ones if the potential were symmetric around a point
* we could have more than one particle, e.g. \x[solutions-of-the-schrodinger-equation-for-two-electrons], which would have e.g. $x_1$ and $x_2$ for different particles. No matter how many particles there are, we have just a single $\psi$, we just add more arguments to it.
* we could have even more generalized coordinates. This is much in the spirit of \x[hamiltonian-mechanics] or \x[generalized-coordinate]{p}
Note however that there is always a single magical $t$ time variable. This is needed in particular because there is a time \x[partial-derivative] in the equation, so there must be a corresponding time variable in the function. This makes the equation explicitly \x[non-relativistic].

The general \x[schrodinger-equation] can be broken up into a trivial time-dependent and a \x[time-independent-schrodinger-equation] by separation of variables. So in practice, all we need to solve is the slightly simpler \x[time-independent-schrodinger-equation], and the full equation comes out as a result.

Existence and uniqueness: https://mathoverflow.net/questions/212913/existence-and-uniqueness-for-two-dimensional-time-dependent-schr%C3%B6dinger-equation

= Time-independent Schrodinger equation
{parent=schrodinger-equation}
{wiki=Schrödinger_equation#Time-independent_equation}

As shown at https://quantummechanics.ucsd.edu/ph130a/130_notes/node124.html[] from \x[quantum-physics-by-jim-branson-2003], using \x[separation-of-variables] we can break up the general \x[schrodinger-equation] into:
* a time-only part that does not depend on space and does not depend on the potential
* a space-only part that does not depend on time:

  $$\hat{H}[\psi(\vv{x})] = E \psi{\vv{x}}$$
  {title=Time-independent Schrodinger equation}

  Since this is the only non-trivial part, unlike the time part which is trivial, this spacial part is just called "the time-independent Schrodinger equation".

  Note that the $\psi$ here is not the same as the $\psi$ in the \x[equation-schrodinger-equation][time-dependent Schrodinger equation] of course, as that psi is the result of the multiplication of the time and space parts. This is a bit of imprecise terminology, but hey, physics.

The key initial example to have in mind is the \x[time-independent-schrodinger-equation-for-a-free-one-dimensional-particle].

It is interesting to note that the time-independent Schrodinger equation can also be seen exactly as an \x[eigenvalue] equation, since the value of the energy `E` can be any fixed value that can satisfy the \x[boundary-condition]{p} conditions imposed.

Then, just like in \x[solving-partial-differential-equations-with-the-fourier-series] of the \x[heat-equation], the boundary conditions may make it so that only certain \x[discrete] values of `E` are possible solutions.

Then, the time part o the equation can be solved explicitly in the general case, as it does not depend on the potential $V(x)$, and it is just an exponential.

Therefore, all we need to do to solve the general Schrodinger equation is to solve the time-independent version, and then decompose the initial condition in terms of it like as done in \x[solving-partial-differential-equations-with-the-fourier-series]{full}.

Furthermore:
* we immediately see from the equation that the time-independent solutions are states of deterministic energy because the energy is an \x[eigenvalue] of the Hamiltonian operator
* the probability density of such a state does not change with time because the exponential time part cancels out on the conjugate

= Derivation of the Schrodinger equation
{parent=schrodinger-equation}

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

TODO also comment on \x[why-are-complex-numbers-used-in-the-schrodinger-equation].

Some approaches:
* https://en.wikipedia.org/w/index.php?title=Schr%C3%B6dinger_equation&oldid=964460597#Derivation[]: holy crap, this just goes all in into a \x[lie-group] approach, nice
* \x[richard-feynman]'s derivation of the Schrodinger equation:
  * https://physics.stackexchange.com/questions/263990/feynmans-derivation-of-the-schrödinger-equation
  * https://www.youtube.com/watch?v=xQ1d0M19LsM "Class Y. Feynman's Derivation of the Schrödinger Equation" by doctorphys (2020)
* https://www.youtube.com/watch?v=zC_gYfAqjZY&list=PL54DF0652B30D99A4&index=53 "I5. Derivation of the Schrödinger Equation" by doctorphys

= Why are complex numbers used in the Schrodinger equation?
{parent=derivation-of-the-schrodinger-equation}

\x[ciro-santilli][Ciro]'s 10 cents: https://physics.stackexchange.com/questions/32422/qm-without-complex-numbers/557600#557600

Why is there a \x[complex-number] in the equation? Intuitively and mathematically:
* https://physics.stackexchange.com/questions/8062/about-the-complex-nature-of-the-wave-function
* https://physics.stackexchange.com/questions/32422/qm-without-complex-numbers
* https://physics.stackexchange.com/questions/292947/is-it-possible-to-formulate-the-schr%C3%B6dinger-equation-in-a-manner-that-excludes-i

Some ideas:
* \x[explicit-scalar-form-of-the-maxwell-s-equations]

= Solutions of the Schrodinger equation
{parent=schrodinger-equation}

https://en.wikipedia.org/wiki/List_of_quantum-mechanical_systems_with_analytical_solutions

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.

= Schrodinger equation simulations
{c}
{parent=solutions-of-the-schrodinger-equation}

* https://www.youtube.com/watch?v=1Z9wo2CzJO8 "Schrodinger equation solved numerically in 3D" by Tetsuya Matsuno. 3D hydrogen atom, code may be hidden in some paper, maybe
* https://www.youtube.com/playlist?list=PLdCdV2GBGyXM0j66zrpDy2aMXr6cgrBJA "Computational Quantum Mechanics" by Let's Code Physics. Uses a 1D trinket.io.
* https://www.youtube.com/watch?v=BBt8EugN03Q Simulating Quantum Systems \[Split Operator Method\] by LeiosOS (2018)
* https://www.youtube.com/watch?v=86x0_-JGlGQ Simulating the Quantum World on a \x[classical-computer][Classical Computer] by Garnet Chan (2016) discusses how modeling only local entanglement can make certain simulations feasible

\Video[http://youtube.com/watch?v=g4wuSgwLT9I]
{title="Simulation of the time-dependent Schrodinger equation (\x[javascript] Animation)" by Coding Physics (2019)}
{description=Source code: https://github.com/CodingPhysics/Schroedinger[]. One dimensional potentials, non-interacting particles. The code is clean, graphics based on https://github.com/processing/p5.js[], and all maths from scratch. Source organization and comments are typical of numerical code, the anonymous author is was likely a Fortran user in the past.

A potential change patch in `sketch.js`:
``
-   potential:     x => 2E+4*Math.pow((4*x - 1)*(4*x - 3),2),
+ potential:     x => 4*Math.pow(x - 0.5, 2),
``
}

\Video[http://youtube.com/watch?v=ee4LqXRlQmE]
{title="Quantum Mechanics 5b - Schrödinger Equation II" by \x[vi

About

Source for: https://cirosantilli.com Build HTML with https://github.com/cirosantilli/cirodown with "cirodown -S ." You can use this issue tracker for anything you want to tell me, even if it is not related to the repo. I also use this repo as generic issue tracker for myself.

https://cirosantilli.com

Resources

License

Sponsor this project

 

Packages

No packages published