Ciro Santilli's preferred visualization of the real projective plane is a small variant of the standard "lines through origin in ".
For those sphere points in the circle on the x-y plane, you should think of them as magic poins that are identified with the corresponding antipodal point, also on the x-y, but on the other side of the origin. So basically you you can teleport from one of those to the other side, and you are still in the same point.
Ciro likes this model because then all the magic is confined just to the part of the model, and everything else looks exactly like the sphere.
It is useful to contrast this with the sphere itself. In the sphere, all points in the circle are the same point. But this is not the case for the projective plane. You cannot instantly go to any other point on the by just moving a little bit, you have to walk around that circle.
Spherical cap model of the real projective plane
. On the x-y plane, you can magically travel immediately between antipodal points such as A/A', B/B' and C/C'. Or equivalently, those pairs are the same point. Every other point outside the x-y plane is just a regular point like a normal sphere. Sponsor Ciro Santilli's work on OurBigBook.com Accounting method Updated 2025-06-17 +Created 1970-01-01
A detailed list of all transactions is kept at: sponsor/budget.js.
Ciro Santilli use the following accounting for this sponsorship calculations.
For significant one time donations, he takes the final money received in one of his cash GBP accounts, then he checks how much that is in dollars on Google at the time of cash out, and then writes that amount down as the final dollar value which is what ultimately counts. This exposes Ciro to USD/GBP fluctuations, but it simplifies accounting for donors which is more important, so it is likely worth it.
At github.com/cirosantilli/china-dictatorship/issues/738 a user made a comment about gang raping my mother (more like country-raping).
As mentioned at github.com/cirosantilli/china-dictatorship/issues/739, ally Martin then reported the issue, and GitHub took down the wumao's account for a while using their undocumented shadowban feature, until the wumao edited the issue.
Based on the discussion with Martin, I then recommended at github.com/cirosantilli/china-dictatorship/blob/41b4741a4e6553f44f5f1ef85cf63c55eb7b8277/CONTRIBUTING.md that we do not report such issues, and that GitHub do not delete such accounts, with rationale explained on the CONTRIBUTING.
Sponsor Ciro Santilli's work on OurBigBook.com Financial crime preventive measures Updated 2025-06-17 +Created 1970-01-01
Crazy shady crypto people seem to like Ciro Santilli, so this is in order.
Giving to Ciro Santilli is the worst possible way to launder your money, as donations amounts are clearly publicly disclosed (though not donor identities if they with to remain anonymous), and clear records kept of every donation made (including private note of donor identities if known). Also suspicious donations are promptly reported to the authorities.
Donation refunds upon donor's requests are only made at our discretion, and may be declined, unless required by law of course. This is to reduce the risks of us unknowingly serving as money mules or aiding money laundering.
Ciro Santilli believes that he is not require to report large donations to either:But note that Ciro will preventively report if there are any further suspicious aspects to any donations received.
- charities have to report anonymous donations of £25,000 or more as "serious incident", but Ciro Santilli does not have a registered charity: www.gov.uk/guidance/how-to-report-a-serious-incident-in-your-charity, related: docs.ourbigbook.com/project-governance
- dealers selling goods over 10,000 euros for cash must make a Suspicious Activity Report (SAR) www.gov.uk/guidance/money-laundering-regulations-high-value-dealer-registration. However Ciro Santilli does not sell any goods, only provides services, and services are excluded from the report requirements
I had meant to make an update earlier, but I wanted to try and add some more "visible end-user changes" to OurBigBook.com.
Just noticed BTW that signup on the website is broken. Facepalm. Not that it matters much since it is not very useful in the current state, but still. Going to fix that soon. EDIT: nevermind, it wasn't broken, I just had JavaScript disabled on that website with an extension to test if pages are visible without JavaScript, and yes, they are perfectly visible, you can't tell the difference! But you can't login without JavaScript either!
I still haven't the user visible ones I wanted, but I've hit major milestones, and it feels like time for an update.
I have now finished all the OurBigBook CLI features that I wanted for 1.0, all of which will be automatically reused in ourbigbook.com.
The two big things since last email were the following:
A secondary but also important advance was: further improvements to the website's base technology.
Ciro's Edict #5
\Include
and \x
and working on dynamic website Updated 2025-06-17 +Created 1970-01-01This was the major final step of fully integrating the OurBigBook CLI into the dynamic website (besides fixing some nasty bugs that escaped passed by me from the previous newsletter).
That makes Ciro Santilli most mad about this film is the fact that the dude was passionate about writing, and when he became a genius, rather than write the best novels ever written, he decided instead to play the stock market instead. This paints an accurate picture of 2020's society, where finance jobs make infinitely more money than other real engineering jobs, and end up attracting much of the talent.
Another enraging thing is how his girlfriend starts liking him again once he is a genius, and instead of telling her to fuck off, he stays with her.
The other really bad thing is the ending. He fixed the drug by himself? He scared off De Niro just like that?
Ciro's Edict #5
\x
on title from another file Link to an image or video in another file that has an Updated 2025-06-17 +Created 1970-01-01Issue report at: github.com/ourbigbook/ourbigbook/issues/198 Suppose you had:
programming-language.ciro
= Programming language
\Image[https://raw.githubusercontent.com/cirosantilli/media/master/python-logo.jpg]
{title=The \x[python-programming-language] logo}
== Python
{c}
{disambiguate=programming-language}
= Logos I like
\x[image-the-python-logo]
Now, when rendering
\x[image-the-python-logo]
, we would need to fetch two IDs:image-the-python-logo
for theThe
andlogo
partpython-programming-language
itself, to know that\x[python-programming-language]
should render asPython
But after group all SQL queries together was done, there was no way to know that rendering
image-the-python-logo
would imply also fetching python-programming-language
.This was solved by adding a new database entry type,
REFS_TABLE_X_TITLE_TITLE
to the existing References table, which tracks dependencies between IDs.- upload all of cirosantilli.com to ourbigbook.com. I will do this by implementing an import from filesystem functionality based on the OurBigBook CLI. This will also require implementing slit headeres on the server to work well, I'll need to create one
Article
for every header on render. - get
\x
and\Include
working on the live web preview editor. This will require creating a new simple API, currently the editor jus shows broken references, but final render works because it goes through the database backend - implement email verification signup. Finally! Maybe add some notifications too, e.g. on new comments or likes.
Ciro's Edict #5 Skip ID extraction and rendering based on database timestamps Updated 2025-06-17 +Created 1970-01-01
This means while developing a website locally with the OurBigBook CLI, if you have a bunch of files with an error in one of them, your first run will run slowly until the error:but further runs will blast through the files that worked, skipping all files that have sucessfully converted:so you can fix file by file and move on quickly.
extract_ids README.ciro
extract_ids README.ciro finished in 73.82836899906397 ms
extract_ids art.ciro
extract_ids art.ciro finished in 671.1738419979811 ms
extract_ids ciro-santilli.ciro
extract_ids ciro-santilli.ciro finished in 1009.6256089992821 ms
extract_ids science.ciro
error: science.ciro:13686:1: named argument "parent" given multiple times
extract_ids science.ciro finished in 1649.6193730011582 ms
extract_ids README.ciro
extract_ids README.ciro skipped by timestamp
extract_ids art.ciro
extract_ids art.ciro skipped by timestamp
extract_ids ciro-santilli.ciro
extract_ids ciro-santilli.ciro skipped by timestamp
extract_ids science.ciro
More details at: cirosantilli.com/ourbigbook#no-render-timestamp
This was not fully trivial to implement because we had to rework how duplicate IDs are checked. Previously, we just nuked the DB every time on a directory conversion, and then repopulated everything. If a duplicated showed up on a file, it was a duplicate.
But now that we are not necessarily extracing IDs from every file, we can't just nuke the database anymore, otherwise we'd lose the information. Therefore, what we have to do is to convert every file, and only at the end check the duplicates.
Managed to do that with a single query as documented at: stackoverflow.com/questions/71235548/how-to-find-all-rows-that-have-certain-columns-duplicated-in-sequelize/71235550#71235550
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!
There are unlisted articles, also show them or only show them.