These are the best articles ever authored by Ciro Santilli, most of them in the format of Stack Overflow answers.
Ciro posts update about new articles on his Twitter accounts.
A chronological list of all articles is also kept at: Section "Updates".
Some random generally less technical in-tree essays will be present at: Section "Essays by Ciro Santilli".
- Trended on Hacker News:
- CIA 2010 covert communication websites on 2023-06-11. 190 points, a mild success.
- x86 Bare Metal Examples on 2019-03-19. 513 points. The third time something related to that repo trends. Hacker news people really like that repo!
- again 2020-06-27 (archive). 200 points, repository traffic jumped from 25 daily unique visitors to 4.6k unique visitors on the day
- How to run a program without an operating system? on 2018-11-26 (archive). 394 points. Covers x86 and ARM
- ELF Hello World Tutorial on 2017-05-17 (archive). 334 points.
- x86 Paging Tutorial on 2017-03-02. Number 1 Google search result for "x86 Paging" in 2017-08. 142 points.
- x86 assembly
- What does "multicore" assembly language look like?
- 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.
- Linux kernel
- What do the flags in /proc/cpuinfo mean?
- How does kernel get an executable binary file running under linux?
- How to debug the Linux kernel with GDB and QEMU?
- Can the sys_execve() system call in the Linux kernel receive both absolute or relative paths?
- What is the difference between the kernel space and the user space?
- Is there any API for determining the physical address from virtual address in Linux?
- Why do people write the
#!/usr/bin/env
python shebang on the first line of a Python script? - How to solve "Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)"?
- Single program Linux distro
- QEMU
- gcc and Binutils:
- How do linkers and address relocation works?
- What is incremental linking or partial linking?
- GOLD (
-fuse-ld=gold
) linker vs the traditional GNU ld and LLVM ldd - What is the -fPIE option for position-independent executables in GCC and ld? Concrete examples by running program through GDB twice, and an assembly hello world with absolute vs PC relative load.
- How many GCC optimization levels are there?
- Why does GCC create a shared object instead of an executable binary according to file?
- C/C++: almost all of those fall into "disassemble all the things" category. Ciro also does "standards dissection" and "a new version of the standard is out" answers, but those are boring:
- What does "static" mean in a C program?
- In C++ source, what is the effect of
extern "C"
? - Char array vs Char Pointer in C
- How to compile glibc from source and use it?
- When should
static_cast
,dynamic_cast
,const_cast
andreinterpret_cast
be used? - 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. notmain.o 0000000000000000 0000000000000017 W MyTemplate<int>::f(int) main.o 0000000000000000 0000000000000017 W MyTemplate<int>::f(int)
- IEEE 754
- What is difference between quiet NaN and signaling NaN?
- In Java, what does NaN mean?
Without subnormals: +---+---+-------+---------------+-------------------------------+ exponent | ? | 0 | 1 | 2 | 3 | +---+---+-------+---------------+-------------------------------+ | | | | | | v v v v v v ----------------------------------------------------------------- floats * **** * * * * * * * * * * * * ----------------------------------------------------------------- ^ ^ ^ ^ ^ ^ | | | | | | 0 | 2^-126 2^-125 2^-124 2^-123 | 2^-127 With subnormals: +-------+-------+---------------+-------------------------------+ exponent | 0 | 1 | 2 | 3 | +-------+-------+---------------+-------------------------------+ | | | | | v v v v v ----------------------------------------------------------------- floats * * * * * * * * * * * * * * * * * ----------------------------------------------------------------- ^ ^ ^ ^ ^ ^ | | | | | | 0 | 2^-126 2^-125 2^-124 2^-123 | 2^-127
- Computer science
- Algorithms
- Is it necessary for NP problems to be decision problems?
- Polynomial time and exponential time. Answered focusing on the definition of "exponential time".
- What is the smallest Turing machine where it is unknown if it halts or not?. Answer focusing on "blank tape" initial condition only. Large parts of it are summarizing the Busy Beaver Challenge, but some additions were made.
- Algorithms
- Git
| 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 | ... |
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}
- How do I clone a subdirectory only of a Git repository?
- Python
- Web technology
- OpenGL
- What are shaders in OpenGL?
- Why do we use 4x4 matrices to transform things in 3D?
- Image Processing with GLSL shaders? Compared the CPU and GPU for a simple blur algorithm.
- Node.js
- Ruby on Rails
- POSIX
- What is POSIX? Huge classified overview of the most important things that POSIX specifies.
- Systems programming
- What do the terms "CPU bound" and "I/O bound" mean?
+--------+ +------------+ +------+ | device |>---------------->| function 0 |>----->| BAR0 | | | | | +------+ | |>------------+ | | | | | | | +------+ ... ... | | |>----->| BAR1 | | | | | | +------+ | |>--------+ | | | +--------+ | | ... ... ... | | | | | | | | +------+ | | | |>----->| BAR5 | | | +------------+ +------+ | | | | | | +------------+ +------+ | +--->| function 1 |>----->| BAR0 | | | | +------+ | | | | | | +------+ | | |>----->| BAR1 | | | | +------+ | | | | ... ... ... | | | | | | +------+ | | |>----->| BAR5 | | +------------+ +------+ | | | ... | | | +------------+ +------+ +------->| function 7 |>----->| BAR0 | | | +------+ | | | | +------+ | |>----->| BAR1 | | | +------+ | | ... ... ... | | | | +------+ | |>----->| BAR5 | +------------+ +------+
- Electronics
- Computer security
- Media
- How to resize a picture using ffmpeg's sws_scale()?
- Is there any decent speech recognition software for Linux? ran a few examples manually on
vosk-api
and compared to ground truth.
- Eclipse
- Computer hardware
- Scientific visualization software
- Numerical analysis
- Computational physics
- Register transfer level languages like Verilog and VHDL
- Android
- Debugging
- Program optimization
- Data
- Mathematics
- Section "Formalization of mathematics": some early thoughts that could be expanded. Ciro almost had a stroke when he understood this stuff in his teens.
- Network programming
- Physics
- Biology
- Quantum computing
- Bitcoin
- GIMP
- Home DIY
- China
One of the things Ciro Santilli really likes, see: Linux Kernel Module Cheat.
If computational physics simulates physics, emulators simulates computers.
Allows us to draw with JavaScript pixel by pixel! Great way to create computational physics demos!
Here is an animation demo with some useful controls:
HTML snippet:
new class extends OurbigbookCanvasDemo {
init() {
super.init('hello');
this.pixel_size_input = this.addInputAfterEnable(
'Pixel size',
{
'min': 1,
'type': 'number',
'value': 1,
}
);
}
draw() {
var pixel_size = parseInt(this.pixel_size_input.value);
for (var x = 0; x < this.width; x += pixel_size) {
for (var y = 0; y < this.height; y += pixel_size) {
var b = ((1.0 + Math.sin(this.time * Math.PI / 16)) / 2.0);
this.ctx.fillStyle =
'rgba(' +
(x / this.width) * 255 + ',' +
(y / this.height) * 255 + ',' +
b * 255 +
',255)'
;
this.ctx.fillRect(x, y, pixel_size, pixel_size);
}
}
}
}
Techniques to get numerical approximations to numeric mathematical problems.
The entire field comes down to estimating the true values with a known error bound, and creating algorithms that make those error bounds asymptotically smaller.
Not the most beautiful field of pure mathematics, but fundamentally useful since we can't solve almost any useful equation without computers!
The solution visualizations can also provide valuable intuition however.
Important numerical analysis problems include solving:
Ah, the jewel of computational physics.
Also known as an ab initio method: no experimental measurement is taken as input, QED is all you need.
But since QED is thought to fully describe all relevant aspects molecules, it could be called "the" ab initio method.
For one, if we were able to predict protein molecule interactions, our understanding of molecular biology technologies would be solved.
No more ultra expensive and complicated X-ray crystallography or cryogenic electron microscopy.
And the fact that quantum computers are one of the most promising advances to this field, is also very very exciting: Section "Quantum algorithm".
Ron Maimon is a male human theoretical physicist with an all but dissertation started in 1995 at Cornell University[ref][ref].
Ron is mostly known for simultaneously:
- the amazing free online content he has published in online forums such as Stack Overflow and Quora, notably about particle physics, until around 2014 when Ron disappeared from the Internet entirely. Ciro Santilli figures he's hanging out with Ettore Majorana somewhere in the metaverse.
- having either been blocked from or quit every single website he participates in, partly due to his highly combative nature, e.g.:He explicitly defends this combative approach at youtu.be/ObXbKbpkSjQ?t=944 from Video 1. "Ron Maimon interview with Jeff Meverson (2014)":
- Physics Stack Exchange: physics.meta.stackexchange.com/users/4864/ron-maimon
physics.meta.stackexchange.com/questions/976/physics-ses-inability-to-deal-with-users-who-are-highly-persistent-have-kook-b user Marty Green makes one of the best characterizations of Ron's approach to science/collaboration:The thing about Ron Maimon is he definitely comes here to talk about physics. I personally can't get into discussions with him for two reasons: first, he's so single-minded in his own point of view that you can't really communicate with him back and forth; secondly, the structure of this forum is simply not conducive to extended discussions. But he sometimes posts things that are so coherently argued and with such intricate detail that even if I can't understand them myself, I just can't believe he's simply pulling this stuff out of his ass.
- physics.meta.stackexchange.com/questions/1376/what-violation-caused-this-suspension user Jerry Schirmer makes another good comment:
The thing that makes me pretty angry about Ron's behaviour is that he does not distinguish between common consensus belief and his own private research - this makes evaluating his claims hard for a third party not familiar with physics.
- Quora: www.quora.com/profile/Ron-Maimon. Ron was very active on Quora, until he was blocked for his views on the Boston Marathon bombing as mentioned at Video 1. "Ron Maimon interview with Jeff Meverson (2014)"
And notably, relevant to cirosantilli.com/china-dictatorship/stack-overflow-mods-refuse-to-clarify-if-anti-ccp-imagery-is-allowed-or-not-2021In order to have this process work [finding of truth] it is extremely important that the tone is hostile, that it is like a court of law, where you have an adversarial relationship with your opponent. Because if you have a friendly relationship with your opponent, then political consensus is preserved.
and he then also mentions that Wolfgang Pauli was a major proponent of this in physics, and so was Galileo.Unfortunately, when you're in a minority, the only way to correct the consensus view is to just shout it, and repeat it, until people go and look and check for themselves. The reason is that it creates an adversarial atmosphere where the people have to pick sides, and they don't like to pick sides, they would rather have everyone be happy. So when you have to pick sides, what do you do? You either butt out, you just leave it alone, you run away. Or you sit and review the evidence until you know which side to pick.
- Physics Stack Exchange: physics.meta.stackexchange.com/users/4864/ron-maimon
Ron seems to share a few philosophies which Ciro greatly agrees with as part of Cirism, which together with his knowledge of physics, make Ciro greatly respect Ron. Such philosophies include:
- he gives great importance to the history of physics and learning from original papers. He appears to know this insanely well, notably emphasizing that there is value in tutorials written by early pioneers of the field, see also Section "How to teach and learn physics". TODO find quote. Ciro Santilli distinctly remembers one specifically taking about this, but can't find it anymore.
- education views, notably emphasising autodidacticism
- www.quora.com/Why-should-high-school-students-learn-physics/answer/Ron-Maimon, highlighted at gmachine1729.livejournal.com/161418.html: "Why should high school students learn physics?" Answer:Yes, please, give it to me baby:
But they should learn it, preferably on their own, because the school doesn't know how to teach physics. Physics is extremely interesting, even the elementary kind. It takes the mathematics you learn in high school and uses it to describe certain natural phenomenon completely, beyond what was imagined possible in the wildest dreams of people like Pythagoras or Archimedes. If you have a computer, Newton's laws plus a tiny code can produce the motion of the planets around the sun, the motion of a free-twirling baton, the motion of colliding billiards, it's very simple.
- www.quora.com/Why-should-high-school-students-learn-physics/answer/Ron-Maimon, highlighted at gmachine1729.livejournal.com/161418.html: "Why should high school students learn physics?" Answer:
- enthusiasm for molecular biology technologies, seen e.g. at: www.quora.com/Why-are-an-abundance-of-physicists-moving-to-theoretical-biology/answer/Ron-Maimon on Quora:Ciro is actually specifically curious about whole cell simulation which he makes reference to.
[biology] is also clearly going to be the major technology of the 21st century, you should have a sugar outlet next to the electrical outlet, and plug in artificial biological technology made out of artificial cells. To plan these requires a complete method of describing biological cells, a precise model of all the processes, so that you can make artificial ones, and it produces a type of precise control on single-molecule chemistry that makes chemists drool.
- effortless effort and the to explain everything he knows online. These can be seen at www.quora.com/How-do-you-control-your-urge-to-access-the-internet-so-you-can-complete-your-assignments "How do you control your urge to access the Internet so you can complete your assignments?":
I don't. I consider the internet the first priority, as it will be viewed by thousands of people, and will have a real impact, while other assignments are lower priority, as they will only have an impact locally.
- his cheapness as in Ciro Santilli's cheapness as mentioned at youtu.be/ObXbKbpkSjQ?t=2454 from Video 1. "Ron Maimon interview with Jeff Meverson (2014)":Interviewer: there's a question on Quora where you say that you took a vow of poverty when you were very young.Ron: I was ten, I mean, most people would give it up, but I mean I figured I didn't have any need to give it up, so I just kept with it, I mean, I was never was really offered that much more. When we started the startup, I think I was offered 50k, but I said "no, I'll keep it 40k, I took a vow", and then they gave me 40k. And that of sort of set an example, the CEO also took 40k. It was a very good thing because we had very little money, we were a startup, and we were going by seed money.
However he also subscribes to some theories which Ciro Santilli considers conspiracy theories, e.g. his ideas about the Boston Marathon bombing that got him banned from Quora (a ban which Ciro strongly opposes due to freedom of speech concerns!), but the physics might be sound, Ciro Santilli does not know enough physics to judge, but it often feels that what he says makes sense.
chat.stackexchange.com/transcript/message/7104585#7104585 mentions that he was at Cornell University and did all but dissertation, but he mentions that he was still self-taught:This is corroborated e.g. at: web.archive.org/web/20201226171231/http://pages.physics.cornell.edu/~gtoombes/Student_Index.html (original pages.physics.cornell.edu/~gtoombes/Student_Index.html down as of 2023).
Eugene Seidel: On your personal info page you write that you are not a physics Ph.D. but does that mean you were a physics undergrad in college then went to grad school and finished ABD... or are you entirely self taught?Ron Maimon: ABD. I am self- taught though, I only went to school for accreditation. I had a thesis worth of work at the time I left grad-school,Eugene Seidel: ok thanksRon Maimon: I was just kind of sickened by academic stuff that was going on--- large extra dimensions were popular then.Eric Walker: Anyway, thanks Ron -- I'll get back to you with more questions soon, I'm sure.Ron Maimon: Also I was at Cornell, my advisor left for Cincinnatti, and I was not in very good standing there (I was kind of a jerk, as I still am). Some friends wanted to start a biotech company called "Gene Network Sciences", and I joined them.
At youtu.be/ObXbKbpkSjQ?t=2454 from Video 1. "Ron Maimon interview with Jeff Meverson (2014)" he mentions his brother is a professor. At physics.stackexchange.com/questions/32382/could-we-build-a-supercomputer-out-of-wires-and-switches-instead-of-a-microchip confirms that his brother's name is "Gaby Maimon", so this neuroscience professor at the Rockerfeller University is likely him: www.rockefeller.edu/our-scientists/heads-of-laboratories/985-gaby-maimon/. Looks, age, location and research interest match.
Some notable technical posts:
Some notable history posts:
- physics.stackexchange.com/questions/18632/good-book-on-the-history-of-quantum-mechanics/18643#18643 about the history of quantum mechanics give the quadratic explanation
- and closely related for the factor 2: physics.stackexchange.com/questions/27847/why-is-there-a-frac-1-2-in-frac-1-2-mv2/27916#27916
Bibliography:
- gmachine1729.livejournal.com/161418.html Ron Maimon answers about physics and math on Quora (part 1) by Sheng Li (2020) contains a selection of some amazing Ron Maimon posts
- www.reddit.com/r/RonMaimon/ someone made a Reddit for him. Less than 100 users as of 2022, but has potential.
- some Quora threads about him, oh the irony:
- www.quora.com/Is-Ron-Maimon-actually-a-pioneer-or-a-jest
- www.quora.com/Are-Ron-Maimons-answers-on-mathematics-physics-and-computer-science-factually-correct
- www.quora.com/What-do-people-think-of-Ron-Maimons-paper-Computational-Theory-of-Biological-Function-I
- www.quora.com/Who-is-Ron-Maimon/answer/Ron-MaimonAlso in a comment he explains something to a now deleted comment, presumably asking why he dropped out of grad school, and gives a lot more insight:
I'm a physics grad school drop-out working in theoretical biology but I still do physics when I get a chance, but not right now because I am in a middle of a project to understand the properties of a certain virus as completely as possible.
It's a complicated boring story.I dropped out mainly to do biology with friends at a startup, because I figured out how you're supposed to do theory in biology, but also I truly believe it was next to impossible for me to get a degree without selling out, and I would rather be shot than write a paper with an idea I don't believe.My grad school phase was a disaster. I first worked for Eric Siggia, but I got away because he had me do something boring and safe, I figured I have only a limited number of years before I turn 30 and my brain rots, and I wasn't going to sell out and do second-rate stuff. I found a young guy at the department doing interesting things (Siggia was also doing interesting things, like RNA interactions, he just wouldn't assign any of them to ME), this was Philip Argyres, and got him to take me. Argyres wanted me to work on large-extra dimensions (this was 1998), but I made it clear to him that I would rather be boiled in oil. I worked a little bit on a crappy experimental setup that didn't work at all, because I didn't know enough about electromagnetic screening nor about how to set up experiment. But EVERYONE LOVED IT! This is also how I knew it was shit. Good work is when everyone hates it. But I learned Lifschitz's ideas for quantum electrodynamics in media from this project.Me and every competent young person in high-energy physics knew large extra dimensions was a fraud on the day it came out, and I had no intention of doing anything except killing the theory. Once Wikipedia appeared, I did my best to kill it by exposing it's charlatanry on the page for large extra dimension. That was in 2005 (after getting fired from the company), and from this point onward large-extra-dimensions lost steam. But I can't tell how much of this was my doing.Argyres liked N=2 theory, and we did something minor in N=2 SUSY models around 2000, but I was bogged down here, because I was trying to do Nicolai map for these, and it ALMOST worked for years, but it never quite worked. But I knew from the moduli interpretation and Seiberg-Witten solution that it must work. If I live long enough, I'll figure it out, I am still sure it isn't hard. But this was the link to statistical stochastic models, the work I was doing with Jennifer Schwarz, and I wanted to link up the two bodies of work (they naturally do through Nicolai map).But I had my own discovery, the first real discovery I made, in 1999, this thing that I called the mass-charge inequality, what Vafa and Motl called "the weakest-force principle" when they discovered it in 2006. It was swampland, and Vafa hadn't yet begun swampland. My advisor didn't believe my result was correct, because he saw me say many stupid things before this. So he wouldn't write it or develop it with me (but I had read about Veltman telling 'tHooft he couldn't publish the beta-function, I knew Argyres was wrong about this)Anyway, Argyres left for Cincinnatti in 2000, and I joined the company then. I was in the company until january 2005. Then they fired me, which was ok, by then it was a miserable hell-hole full of business types.I discovered Wikipedia, and started killing large extra dimensions. I wanted to finish my thesis, and some people agreed to help me do this, but I had told myself "no thesis until you get the Nicolai map sorted out" and I never did. I worked with Chris Henley a little bit, who wanted me to do some stuff for him, and I discovered an interesting model for high-Tc, but Henley said it was out of fasion, and nobody would care, even though I knew it was the key to the phenomenon (still unpublished, but soon).This was 2008-2009, and I became obsessed with cold fusion, so Henley dropped me, as I had clearly gone crazy. I developed the theory of cold fusion during the last weeks of working for Henley. Then I dropped out for good.Honestly, by the time I was gone, I realized that the internet would make a degree counterproductive, because I knew I had better internet writing skills than any of the old people, I was a Usenet person. Online, the degrees and accreditation were actually a hinderance. So by this point, I secretly preferred not to have a PhD, because I knew I was good at physics, and I could attack from the outside and win. It's not too hard if you know the technical material.The only problem is that I was unemployed and isolated in Ithaca for about 7 years after having gone through my first productive phase. But I developed the cold-fusion ideas in this period, I learned a lot of mathematics, and I developed a ton of biology ideas that are mostly unpublished, but will be published soon. It astonished people that I could have no degree and be unemployed and have such a sky-high ego. The reason is that I could evaluate my own stuff, and I liked it!
Backlinks:
- 2022: twitter.com/johncarlosbaez/status/1556085484937310209 by John Baez. This page was one of the top Google hits for "Ron Maimon" at the time.
Big goals:
- the pursuit of AGI
- physics simulations, including scientific visualization software
- formalization of mathematics
These are basically technically minded people that Ciro Santilli feels have similar interests/psychology to him, and who write too much for their own good:
- cat-v.org
- gwern.net. Dude's a bit overly obsessed with the popup preview though! "new Wikipedia popups (this 7th implementation enables recursive WP popups)" XD
- settheory.net by Sylvain Poirier
- HyperPhysics
- Orange Papers
Maybe one day these will also be legendary, who knows:
Another category Ciro admires are the "computational physics visualization" people, these people will go to Heaven:
Related:
Institution led:
- www.biology.arizona.edu/ The Biology Project
Other mentions:
- arngren.net/ lots of images of toys and gear with descriptions in Norwegian