Ciro's Edict #4
\Include
The table of contents shows across different files via Updated 2025-07-11 +Created 1970-01-01E.g.:
README.cironot-readme.cirothe table of contents for
= My website
== h2
\Include[not-readme]
= Not readme
== Not readme h2
index.html
also contains the headers for not-readme.ciro
producing:This feature means that you can split large input files if rendering starts to slow you down, and things will still render exactly the same, with the larger table of contents.
This will be especially important for the website because initially I want users to be able to edit one header at a time, and join all headers with
\Include
. But I still want the ToC to show those children.This was a bit hard because it required doing RECURSIVE SQL queries, something I hadn't done before: stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-table-into-a-tree/192462#192462 + of course the usual refactor a bunch of stuff and fix tests until you go mad.
Ciro's Edict #5
\Include
headers show on table of contents work for cirosantilli.com Make Updated 2025-07-11 +Created 1970-01-01One of the key advances of the previous update was to show include headers on the table of contents.
This was to allow splitting source files freely.
While that goal was in principle achieved in that commit, when I went ahead to split the huge index of cirosantilli.com into multiple files, I notice several bugs that took a week to fix.
After all of these were solved, I finally managed to split the README at: github.com/cirosantilli/cirosantilli.github.io/commit/84c8a6e7fdbe252041accfb7a06d9b7462287131 and keep the previous desired output. You can now see that the README contains just:
\Include[ciro-santilli]
\Include[science]
\Include[mathematics]
\Include[technology]
\Include[art]
This split led to a small positive modification of the output as follows. Previously, a section such as "Quantum Electrodynamics" would have been present in the monolithic README.ciro as:If you visited cirosantilli.com/quantum-electrodynamics, you would see see a link to the "nosplit" version, which would link you back to cirosantilli.com#quantum-electrodynamics, but that is not great, since this is was a humongous page with all of the README.ciro, and took long to display.
= Quantum electrodynamics
After the split,
= Quantum electrodynamics
is present under science.ciro
, and the nosplit version is the more manageable cirosantilli.com/science#quantum-electrodynamics.The key changes that were missing for that to happen were:
Ciro's Edict #6 cirosantilli.com content uploaded to ourbigbook.com/cirosantilli Updated 2025-07-11 +Created 1970-01-01
Managed to upload the content from the static website cirosantilli.com (OurBigBook Markup source at github.com/cirosantilli/cirosantilli.github.io) to ourbigbook.com/cirosantilli.
Although most of the key requirements were already in place since the last update, as usual doing things with the complex reference content stresses the system further and leads to the exposition of several new bugs.
The upload of OurBigBook Markup files to ourbigbook.com was done with the newly added OurBigBook CLI
ourbigbook --web
option. Although fully exposed to end users, the setup is not super efficient: a trully decent implementation should only upload changed files, and would basically mean reimplementing/using Git, since version diffing is what Git shines at. But I've decided not to put much emphasis on CLI upload for now, since it is expected that initially the majority of users will use the Web UI only. The functionality was added primarily to upload the reference content.This is a major milestone, as the new content can start attracting new users, and makes the purpose of the website much clearer. Just having this more realistic content also immediately highlighted what the next development steps need to be.
Once v1.0 is reached, I will actually make all internal links of cirosantilli.com to point to ourbigbook.com/cirosantilli to try and drive some more traffic.
The new content blows up by far the limit of the free Heroku PostgreSQL database of 10k lines. This meant that I needed to upgrade the Heroku Postgres plugin from the free Hobby Dev to the 9 USD/month Hobby Basic: elements.heroku.com/addons/heroku-postgresql, so now hosting costs will increase from 7 USD/month for the dyno to 7 + 9 = 16 UDS/month. After this upgrade and uploading all of cirosantilli.com to ourbigbook.com, Heroku dashboard reads reads:so clearly if we are ever forced to upgrade plans again, it means that a bunch of people are using the website and that things are going very very well! Happy how this storage cost turned out so far.
One key limitation found was that Heroku RAM memory is quite limited at 512MB, and JavaScript is not exactly the most memory economical language out there. Started investigation at: github.com/ourbigbook/ourbigbook/issues/230 Initially working around that by simply splitting the largest files. We were just on the verge of what could be ran however luckily, so a few dozen splits was enough, it managed to handle 70 kB OurBigBook Markup inputs. So hopefully if we manage to optimize a bit more we will be able to set a maximum size of 100 kB and still have a good safety margin.
Added
ourbigbook --format-source
automatic code formatting. I implemented it for the following reasons:- I want to do certain automatic modifications to source code on web, e.g.:
- later on, much later, this will allow WYSIWYG export to plaintext
This also ended up having one unexpected benefit: whenever a new feature is added that deprecates an old feature, by converting the large corpus from github.com/cirosantilli/cirosantilli.github.io to the new feature I can test the new preferred feature very well.
For example, converting
\x[blue cat]
en masse to the new insane syntax <blue cat>
found several bugs with the new insane syntax.This seemed somewhat easy at first, so I started it as a way of procrastinating more urgent Web features (web scares me, you know), but it ended being insanely hard to implement, because there are many edge cases. Also, most bugs are not acceptable, as they would corrupt your precious source code and potentially output.
But well, it is done!
If Ciro Santilli were to write a book about quantum mechanics as of 2020 (before OurBigBook.com went live), he would upload an OurBigBook Markup website to GitHub Pages.
But there is one major problem with that: the entry barrier for new contributors is very large.
If they submit a pull request, Ciro has to review it, otherwise, no one will ever see it.
Our amazing website would allow the reader to add his own example of, say, The uncertainty principle, whenever they wants, under the appropriate section.
A major difficulty of getting such this to work is that may university teachers want to retain closed copyright of their work because they:
- want to publish a book later and get paid. Yes, the root problem is that teachers get paid way too little and have way too little job security for the incredibly important and difficult extremely difficult job they are doing, and we have to vote to change that
- are afraid that if amazing material is made freely available, then they would not be needed and lose their jobs. Once again, job security issue.
- believe that if anyone were allowed to touch their precious content, those people would just "screw it up" and make it worse
- don't even want to publish their notes online because "someone will copy it and take their credit". What a mentality! In order to prevent a theft, you are basically guaranteeing that your work will be completely forgotten!
- don't want students to read the notes and skip class, because spoken word has magic properties and imparts knowledge that cannot otherwise conveyed by a book
- are afraid that mistakes will be found in their material. Reputation is of course everything in academia, since there is no money.So it's less risky to have closed, more buggy notes, than open, more correct ones.This can be seen clearly for example on Physics Stack Exchange, and most notably in particle physics (well, which is basically the only subject that really gets asked, since anything more experimental is going to be blocked off by patents/interlab competition), where a large proportion incredibly amazing users have anonymous profiles.They prefer to get no reputation gains from their amazing contributions, due to the fear that a single mistake will ruin their career.This is in stark contrast for example to Stack Overflow, where almost all top users are not anonymous:List of top users: physics.stackexchange.com/users?tab=Reputation&filter=all and some notable anonymous ones:
- physics.stackexchange.com/users/2451/qmechanic
- physics.stackexchange.com/users/50583/acuriousmind
- physics.stackexchange.com/users/43351/profrob
- physics.stackexchange.com/users/84967/accidentalfouriertransform
- physics.stackexchange.com/users/56997/curiousone
- physics.stackexchange.com/users/139781/probably-someone
- physics.stackexchange.com/users/206691/chiral-anomaly
Therefore the only way is to find teachers who are:The forced option therefore seems like a more bulk efficient starting point for searches.
- enlightened to use such licenses
- forced by their organizations to use such licenses
No matter how much effort a single person puts into writing perfect tutorials, they will never beat 1000x people + an algorithm.
It is not simply a matter of how much time you have. The fundamental reason is that each person has a different background and different skills. Notably the young students have radically different understanding than that of the experienced teacher.
Therefore, those that refuse to contribute to such platforms, or at least license their content with open licenses, will inevitably have their work forgotten in favor of those that have contributed to the more open platform, which will eventually dominate everything.
Perhaps OurBigBook.com is not he killer platform that will make this happen. Perhaps the world is not yet ready for it. But Ciro believes that this will happen, sooner or later, inevitable, and he wants to give it a shot.
Also worth checking:
- jornal.usp.br/universidade/usp-de-sao-carlos-oferece-aulas-de-graduacao-em-matematica-e-estatistica-abertas-ao-publico/ "Open Classroom" program from the University of São Paulo. We should Google for "Open Classroom" a bit more actually.
- open.ed.ac.uk/about/: talk only
The Grad Student Brain by PhD Comics (2010)
Source. Convincing academics that their tutorial are not always perfect is one of blocking points to the acceptance of solutions such as OurBigBook.com. To thrive in the competition of academia, those people are amazing at publishing novel results. Explaining to beginners however, not necessarily so.Actual section at: Section "OurBigBook.com"
Ciro's Edict #8 Article metadata shown next to every header Updated 2025-07-11 +Created 1970-01-01
This is a major feature: we have now started to inject the following buttons next to every single pre-rendered header:
This crucial feature makes it clear to every new user that every single header has its own separate metadata, which is a crucial idea of the website.
Screenshot showing metadata next to each header
. The page is: ourbigbook.com/donald-trump/chemistry. Note how even the subheaders "Chemical element" and "Hydrogen" show the metadata.Limited the number of articles, and the size of article bodies. This, together with the reCAPTCHA setup from Email verification and reCAPTCHA signup protection should prevent the most basic types of denial-of-service attacks by filling up our database.
The limits can be increased by admin users from the web UI, and will be done generously when it is evident that it is not a DoS attack. Admin users are also a recently added feature.
Python graphics engine open sourced at: github.com/3b1b/manim "Animation engine for explanatory math videos". But for some reason there is a community fork: github.com/ManimCommunity/manim/ "This repository is maintained by the Manim Community, and is not associated with Grant Sanderson or 3Blue1Brown in any way (though we are definitely indebted to him for providing his work to the world). If you want to study how Grant makes his videos, head over to his repository (3b1b/manim). This is a more frequently updated repository than that one, and is recommended if you want to use Manim for your own projects." what a mess.
It would be really cool to have a PageRank-link algorithm that answers the key questions:However, Ciro has decided to leave this for phase two action plan, because it is impossible to tune such an algorithm if you have no users or test data.
- what is the best content for subject X.For example, if you are reading
cirosantilli/riemann-integral
and it is crap, you would be able to click the buttonwhich leads you to the URL: ourbigbook.com/subject/mathematics. This URL then contains a list of all pages people have written about the subjectVersions by other authors
mathematics
, sorted by some algorithm, containing for example: - who knows the most about subject X. This can be found by visiting: ourbigbook.com/users/mathematics "Top Mathematics users", which would contain the list of users sorted by the algorithm:
Perhaps it is also worth looking into ExpertRank, they appear to do some kind of "expert in this area", but with clustering (unlike us, where the clustering would be more explicit).
Other dump of things worth looking into:
Funding:
4373b97e4525be4c2f4b491be9f14ac2b106ba521587dad8f134040d16ff73af Updated 2025-07-11 +Created 1970-01-01
Output 0 does:where the large constant is an interesting inscription to test for the presence of XSS attacks on blockchain explorers:This is almost spendable with:but that fails because the altstack is cleared between the input and the output script, so this output is provably unspendable.
OP_ADD OP_ADD 13 OP_EQUAL OP_NOTIF OP_RETURN OP_ENDIF OP_FROMALTSTACK <large xss constant> OP_DROP
<script type='text/javascript'>document.write('<img src='http://www.trollbot.org/xss-blockchain-detector.php?href=' + location.href + ''>');</script>`
1 OP_TOALTSTACK 10 1 2
How to use an Oxford Nanopore MinION to extract DNA from river water and determine which bacteria live in it Equipment used Updated 2025-07-11 +Created 1970-01-01
5660d06bd69326c18ec63127b37fb3b32ea763c3846b3334c51beb6a800c57d3 Updated 2025-07-11 +Created 1970-01-01
In this malformed Coinbase transaction, the mining pool "nicehash" produced a provably unspendable Bitcoin output script due to a bug, and therefore lost most of the entire block reward of 6.25 BTC then worth about $ 123,000.
The output is unspendable because it ends in a constant 0, the disassembly of the first and main output is this series of constants:and for the second smaller one:the third one being an OP_RETURN message.
0 017fed86bba5f31f955f8b316c7fb9bd45cb6cbc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
aa21a9ed62ec16bf1a388c7884e9778ddb0e26c0bf982dada47aaa5952347c0993da 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This event received some coverage:
Aaron, Ciro Santilli will complete your quest to make eduction free. Just legally this time, with the and with the Creative Commons license you helped to create.
Ciro likes how The Internet's Own Boy (2014) explains how Aaron felt like high school was bullshit, and that he could learn whatever he wanted from books, which is one of Ciro's key feelings.
Standard from 2011: abcnotation.com/wiki/abc:standard:v2.1
No bend/vibratto/slides :-(
Multitrack volatile: abcnotation.com/wiki/abc:standard:v2.1#multiple_voices
There are unlisted articles, also show them or only show them.