High-frequency trading as a form of Nirvana Updated 2025-07-16
Ciro Santilli once talked to a man who had been working on high-frequency trading for the last six years.
He was quite nice.
Ciro asked him in what way did he feel his job contributed to the benefit of society.
He replied that it didn't contribute at all. It was completely useless. More than that, it so completely useless, that it was even pure. A bit like advanced mathematics, but not even providing beauty for anybody outside of the company, since everything is a closely guarded trade secret, unlike mathematics which is normally published for the vanity recognition.
And so, Ciro was enlightened.
High level quantum synthesis Updated 2025-07-16
This is a term "invented" by Ciro Santilli to refer to quantum compilers that are able to convert non-specifically-quantum (functional, since there is no state in quantum software) programs into quantum circuit.
The term is made by adding "quantum" to the more "classical" concept of "high-level synthesis", which refers to software that converts an imperative program into register transfer level hardware, typicially for FPGA applications.
Historical WHOIS database 2025-08-08
A "DNS database" is a database that stores DNS records, notably A-records, which IP a domains is hosted at.
For currently live domains, domain to IP can of course be easily determined on the fly by just resolving the domain like the browser does, e.g.
cirosantilli.com
What is hard however is:
As of 2023, working with DNS data is just going through a mish-mash of closed datasets/expensive APIs.
We really need some open data in that area.
- opendata.stackexchange.com/questions/1951/dataset-of-domain-names
- opendata.stackexchange.com/questions/2110/domain-name-system-record-a-database
- webmasters.stackexchange.com/questions/33395/find-the-ip-address-of-expired-domains/142751#142751
- superuser.com/questions/686195/how-to-find-the-last-ip-used-for-an-expired-domain-name/1793224#1793224
Some links of interest:
- bushart.org/topic/ip
- archive.org/details/internet-mapping
- stackoverflow.com/questions/307553/possible-to-download-entire-whois-database-list-of-registered-domains (deleted question, see archives)
- www.reversedns.ch/en/ has some OK reverse IPs, but you have to do them one by one with CAPTCHA, and we were already past that point when that source was found, so nothing new was found on it yet
- iphistory.net/ announced at www.reddit.com/r/OSINT/comments/1bip8j7/iphistorynet_find_historic_ip_addresses_from/
Bibliography:
- www.reddit.com/r/OSINT/comments/1j8uasm/does_domaintools_offer_historical_reverse_ip_ie/ by Ciro Santilli
- www.reddit.com/r/OSINT/comments/ne27qi/really_historical_whois/
- www.reddit.com/r/dns/comments/1f4y0mg/any_onestopshop_type_sites_that_are_better_for/
- www.arin.net/reference/research/whowas/ you need to request access and they need to approve your usage. Bastards.
History of science Updated 2025-07-16
If there is one thing that makes Ciro Santilli learn German, this is it (the Romance language are all the same, so reading them is basically covered for Ciro already).
How computers work? Updated 2025-07-16
A computer is a highly layered system, and so you have to decide which layers you are the most interested in studying.
Although the layer are somewhat independent, they also sometimes interact, and when that happens it usually hurts your brain. E.g., if compilers were perfect, no one optimizing software would have to know anything about microarchitecture. But if you want to go hardcore enough, you might have to learn some lower layer.
It must also be said that like in any industry, certain layers are hidden in commercial secrecy mysteries making it harder to actually learn them. In computing, the lower level you go, the more closed source things tend to become.
But as you climb down into the abyss of low level hardcoreness, don't forget that making usefulness is more important than being hardcore: Figure 1. "xkcd 378: Real Programmers".
First, the most important thing you should know about this subject: cirosantilli.com/linux-kernel-module-cheat/should-you-waste-your-life-with-systems-programming
Here's a summary from low-level to high-level:
- semiconductor physical implementation this level is of course the most closed, but it is fun to try and peek into it from any openings given by commercials and academia:
- photolithography, and notably photomask design
- register transfer level
- interactive Verilator fun: Is it possible to do interactive user input and output simulation in VHDL or Verilog?
- more importantly, and much harder/maybe impossible with open source, would be to try and set up a open source standard cell library and supporting software to obtain power, performance and area estimates
- Are there good open source standard cell libraries to learn IC synthesis with EDA tools? on Quora
- the most open source ones are some initiatives targeting FPGAs, e.g. symbiflow.github.io/, www.clifford.at/icestorm/
- qflow is an initiative targeting actual integrated circuits
- microarchitecture: a good way to play with this is to try and run some minimal userland examples on gem5 userland simulation with logging, e.g. see on the Linux Kernel Module Cheat:This should be done at the same time as books/website/courses that explain the microarchitecture basics.
- instruction set architecture: a good approach to learn this is to manually write some userland assembly with assertions as done in the Linux Kernel Module Cheat e.g. at:
- github.com/cirosantilli/linux-kernel-module-cheat/blob/9b6552ab6c66cb14d531eff903c4e78f3561e9ca/userland/arch/x86_64/add.S
- cirosantilli.com/linux-kernel-module-cheat/x86-userland-assembly
- learn a bit about calling conventions, e.g. by calling C standard library functions from assembly:
- you can also try and understand what some simple C programs compile to. Things can get a bit hard though when
-O3
is used. Some cute examples:
- executable file format, notably executable and Linkable Format. Particularly important is to understand the basics of:
- address relocation: How do linkers and address relocation work?
- position independent code: What is the -fPIE option for position-independent executables in GCC and ld?
- how to observe which symbols are present in object files, e.g.:
- how C++ uses name mangling What is the effect of extern "C" in C++?
- how C++ template instantiation can help reduce link time and size: Explicit template instantiation - when is it used?
- operating system. There are two ways to approach this:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- system calls
- write some system calls in
- pure assembly:
- C GCC inline assembly:
- write some system calls in
- learn about kernel modules and their interfaces. Notably, learn about to demystify special files such
/dev/random
and so on: - learn how to do a minimal Linux kernel disk image/boot to userland hello world: What is the smallest possible Linux implementation?
- learn how to GDB Step debug the Linux kernel itself. Once you know this, you will feel that "given enough patience, I could understand anything that I wanted about the kernel", and you can then proceed to not learn almost anything about it and carry on with your life
- system calls
- write your own (mini-) OS, or study a minimal educational OS, e.g. as in:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- programming language
How to diagnose a genius by Wilhelm Ostwald (1909) Updated 2025-07-16
From the abstract:Ciro Santilli couldn't agree more... notably students must have a flexible choice of what to learn.
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
How to teach and learn physics Updated 2025-07-16
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, see also: Section "Physics education needs more focus on understanding experiments and their history"
- 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: 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.
Related:
- settheory.net/learnphysics and www.youtube.com/watch?v=5MKjPYuD60I&list=PLJcTRymdlUQPwx8qU4ln83huPx-6Y3XxH from settheory.net
- math.ucr.edu/home/baez/books.html by John Baez. Mentions:Ciro Santilli is trying to change that: OurBigBook.com.
This webpage doesn't have lots of links to websites. Websites just don't have the sort of in-depth material you need to learn technical subjects like advanced math and physics — at least, not yet. To learn this stuff, you need to read lots of books
- web.archive.org/web/20210324182549/http://jakobschwichtenberg.com/one-thing/ by Jakob Schwichtenberg
How to teach Exams and homework are useless, only projects matter Updated 2025-07-16
See: Section "Exam".
The only thing that matters is that students aim towards the goals described at explain how to make money with the lesson.
Any "homework for which the student cannot use existing resources available online" is a waste of time.
The ideal way to go about it is to reach some intermediate milestone, and then document it. You don't have to do the hole thing! Just go until your patience with it runs out. But while you are doing it, go as deep and wide as you possibly can, without mercy.
This is actually how Ciro Santilli learns new subjects he is curious about, even as an adult! Some examples:
How to teach Let students learn by teaching Updated 2025-07-16
Tell students to:
- make suggestions to the course material themselves, since you have used text and published your source.Review their suggestions, and accept the best ones.
- answer the questions of other students on your online forum. Let them work instead of you.
Praise those that do this very highly, and give them better grades if you have that superpower.
Whatever you do, even if it is playing video games: if you manage to produce related content that will interest other people, and possibly allow you to get paid, it will much much fun to do that thing.
How to teach Publish your material even if it is not perfect Updated 2025-07-16
Just make it very clear what you've tried, what you observed, and what you don't understand if anything at all.
This will already open up room for others to come and expand on your attempt, and you are more likely to learn the answers to your questions as they do.
And there's a good chance someone who knows more than you will come along and correct or teach you something new about the subject. For example, this has happened countless times to Ciro Santilli when doing Ciro Santilli's Stack Overflow contributions.
Perfect is the enemy of good.
Examples of famous fails:
- QED and the men who made it: Dyson, Feynman, Schwinger, and Tomonaga by Silvan Schweber (1994) chapter 7.11 "Epilogue" mentions how Julian Schwinger has lots of unpublished notes, or that his collaborators had to write most of the stuff down themselves in the end because he felt they were not perfect enough
How to write technical help requests and bug reports Updated 2025-07-16
Ciro Santilli often sees all those genius who are much smarter than him making 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
- These are an important part of the minimal working example.
- For build errors, you must give your OS and compiler version and version of any relevant external library
Human brain Updated 2025-07-16
Ciro Santilli feels it is not for his generation though, and that is one of the philosophical things that saddens him the most in this world.
On the other hand, Ciro's playing with the Linux kernel and other complex software which no single human can every fully understand cheer him up a bit. But still, the high level view, that we can have...
For now, Ciro's 2D reinforcement learning games.
HyperCard Updated 2025-07-16
HyperPhysics Updated 2025-07-16
Created by Dr. Rod Nave from Georgia State University, where he worked from 1968 after his post-doc in North Wales on molecular spectroscopy.
While there is value to that website, it always feels like it falls a bit too short as too "encyclopedic" and too little "tutorial-like". Most notably, it has very little on the history of physics/experiments.
Ciro Santilli likes this Rod, he really practices some good braindumping, just look at how he documented his life in the pre-social media Internet dark ages: hyperphysics.phy-astr.gsu.edu/Nave-html/nave.html
The website evolved from a HyperCard stack, as suggested by the website name, mentioned at: hyperphysics.phy-astr.gsu.edu/hbase/index.html.
Shame he was too old for CC BY-SA, see "Please respect the Copyright" at hyperphysics.phy-astr.gsu.edu/hbase/index.html.
exhibits.library.gsu.edu/kell/exhibits/show/nave-kell-hall/capturing-a-career has some good photo selection focused on showing the department, and has an interview.
Kell hall is a building of GSU that was demolished in 2019: atlanta.curbed.com/2020/1/31/21115980/gsu-georgia-state-atlanta-kell-hall-demolition-park-library-north
Idealist Created 2024-11-04 Updated 2025-07-16
A few of the "I'd rather starve and do what I love than work some bullshit job people":
- www.youtube.com/watch?v=dD5hYCN-tmU&t Worldyman, German skater. Ciro Santilli said hi at: www.youtube.com/watch?v=dD5hYCN-tmU&lc=Ugz_QQOwrRG5Wjm52hp4AaABAg His reply suggests mental illness unfortunately:
IEEE 754 Updated 2025-07-16
Indian classical music Updated 2025-07-16
Innovative school Updated 2025-07-16
Including notably schools that follows Ciro Santilli's ideas as shown at how to teach.
- The National Science Institute, The Geek Group: came to Ciro Santilli's attention due to their Bitcoin activity: www.youtube.com/watch?v=cuIRvn89988
Inria Created 2025-03-20 Updated 2025-07-16
They do some really fun hardcore mathy stuff over there!
Ciro Santilli interned at Inria Centre at Université Côte d'Azur in the early 2010's. It was a disaster, largely his own fault, but also due to our broken educational system. But they do have awesome things as well.