Sponsor Ciro Santilli's work on OurBigBook.com 1000 Monero donation Anonymity of the donation Updated 2025-07-16
The first sensation Ciro Santilli got was as if God himself had come down from heaven to toy with an unsuspecting human being. God running an experiment. Or perhaps an AGI that had already secretly taken over. Not very different.
Like with God, this was the answer to Ciro's prayers on Twitter. A one way conversation that leaves you uncertain of the details.
Whichever the case, Ciro is going to put on the best show he possibly can for your money, documenting every step along the way in usual fashion!
Ciro ran this over and over in his head, and the only big risk of anonymity is that if this money is ever proven to be from the proceeds of crime, he would have to give it back to the government and "lose one year's salary he would have otherwise gained".
However, that worst case scenario is not bad enough. If anything, it was a great excuse to quit his job for his family and wife is already worth it. Ciro could do it and survive, though situation would deteriorate slowly. But he was a coward previously.
Ciro does however feel that there is good chance that it is legitimate.
Ciro Santilli's Stack Overflow contributions are exceptional, he's amazing right! He deserves this! Of course, there is danger in this rationale which scammers could exploit. But bro, if scammers are going to send 100k USD to me, then please continue to do so!
Also which criminal would be stupid enough to donate proceeds of crime to a highly public person who is going to clearly announce it?
Just be warned, if you come with a baseball bat trying to get the money back by force, I will call the police immediately and by God you will not get it!!
Given this, Ciro just keeps thinking about the likely profile of the donor:
But the "why anonymous if not criminal" question remains. Generally rich people want recognition both for:Two options that come to mind:
- reputation washing
- to make their donation mechanisms higher profile which allows raising more and attracting better candidates and reach greater impact
- rich crypto dude that doesn't want thieves to know he is rich
- more public rich person that doesn't want association with Ciro Santilli's naughty projects, notably Ciro Santilli's campaign for freedom of speech in China, but perhaps also CIA 2010 covert communication websites, which could hurt business.
- crazy rich person with a philosophy of "if they knew who I was it might interfere with what they do". AKA a God.
Sponsor Ciro Santilli's work on OurBigBook.com 1000 Monero donation Barclays regulation Created 2024-10-23 Updated 2025-07-16
On Friday 18th October 2024, Ciro Santilli received a call from Barclays asking where some of the money in his Barclays account came from and went to, obviously linked to the Monero donation and sale.
The following day, the 19th, a "explain your income in 30 days or you'll lose you account" letter arrived, dated from the 8th of October. This had been available on the online documents, but Ciro did not get an email for it so he was unaware.
The following Tuesday, the 22nd, Ciro noticed that all payments from his card were being declined, and upon calling Barclays they said that this was for pending regulatory issues. His account had been frozen.
The following Tuesday, 29th of November, Ciro noticed that a regular payment had gone through. He then tested his card and it was working again, so at some point the account had been unfrozen.
Part of me wants the donor to give me his real identity and sort this out. It would likely be better for the OurBigBook Project. But the other part of me wants to test the British monetary system. Fun and stressful times.
The chaotic nature of Barclays' Know your customer is apparent:
- they took 6 months to flag anything
- once it was finally flaggedAlso, they freeze accounts of people who are still obviously in the country at their home address and making regular purchases locally as before. Not exactly how a criminal would act?
- their communication is a mess:
- the letter was messy, with unclear list of transactions at some points and several typos
- there was no clear notice that the account was frozen or unfrozen. While there can be a rationale for not giving notice before the freeze to prevent criminals from fleeing, once you freeze a regular account user will find it out mighty fast, so there is no point in not notifying them about it
- they block the account days after the online document had been available (which unfortunately Ciro did not see due to lack of email notification), but before you've had the time to reply. This achieves the worst of both worlds both worlds by:
- their communication is a mess:
It is also slightly fun, but not surprising, to see the AgoraDesk buyers refuse to give any contact besides their public Telegram, not even email. I'm not sure that Barclays does Telegram! Not super important though because ultimately the initial Monero donation is anonymous. Shame I started on AgoraDesk before finding out about cryptocurrency swappers such as SimpleSwap.
De-banking is apparently a widespread issue in the UK: www.uktech.news/fintech/revolut-good-reason-debank-20240909: e.g. www.uktech.news/fintech/revolut-good-reason-debank-20240909 notably mentions a well known base by, God forgive me, Nigel Farage.
Related cases:
Sponsor Ciro Santilli's work on OurBigBook.com 1000 Monero donation Barclays regulation round 2 Created 2025-07-01 Updated 2025-09-09
On the 20th of June 2025, Barclays sent another request for information repeating a few of the items from last time without clear justification of what was wrong with the previous information.
Ciro quickly printed out the documents, but didn't know where to send them to, and had to wait until the 2nd of July for the return envelope to arrive, which he sent back on the 4th of July.
Announcements:
On the 28th of July 2025, Barclays finally replied with a hopefully final (who knows, everything is such a mess with this process):So Ciro Santilli gets to keep his account and the anonymous ~80k cashed out to it, but he cannot receive further anonymous donations on it.
Following a review of the above account, we have identified large value crypto assets with unknown sources. If such activity continues, keeping this account open poses a risk that we might breach laws or regulations. We therefore request that such payments are halted and, if the transactions repeat, we will take action to close this account with immediate notice. In the event of any closure, you will be required to repay any overdraft or other borrowing on the account.
As an outcome of this, I've also had to update my donation guidelines to not count anonymous donations towards my goals.
Barclays regulation felt so sloppy that I'm sure that with some effort to essentially launder the money, e.g. cashing out smaller amounts across various accounts, which I explicitly did not do in part to test the system, I would have gotten away with it, or large part of it. But I'm not going to be the one put this theory to the test.
Announcements:
- www.quora.com/Is-it-legal-for-billionaires-to-make-anonymous-charitable-donations-How-can-it-be-determined-if-a-large-sum-of-money-was-donated-anonymously-or-not/answer/Ciro-Santilli
- x.com/cirosantilli/status/1953780424242548749
- mastodon.social/@cirosantilli/114992839094805850
- www.linkedin.com/feed/update/urn:li:share:7359544588732178434/
Sponsor Ciro Santilli's work on OurBigBook.com Financial crime preventive measures Updated 2025-07-16
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
Sponsor Ciro Santilli's work on OurBigBook.com Possibility of a pivot Created 2024-08-10 Updated 2025-07-16
When doing "innovative" things that seem "smart", you often end up noticing that they were actually "old" and "dumb", and that you should instead be doing another "innovative smart" thing.
Therefore, there is always a possibility that at some point Ciro Santilli's intended project for donation money will change halfway.
Ciro however makes the following pledge: everything that comes out of donation money work will be:as always.
- openly licensed
- amazingly documented
- STEM focused
This does not apply to contract work obviously, only donations.
Sponsor Ciro Santilli's work on OurBigBook.com Progress updates Updated 2025-07-16
Sponsor Ciro Santilli's work on OurBigBook.com Taxation Updated 2025-07-16
Ciro Santilli is a UK resident. He will register as a "solo trader" (slightly funny legal term) and treat donations that he uses for projects as grants, which pay regular income tax:
The rates are given at: www.gov.uk/income-tax-rates and are as of writing:
- 0 - £12,570 0%
- £12,571 - £50,270: 20%
- £50,271 - to £125,140: 40%
- £125,140: 45%
National insurance is also likely going to be paid: www.gov.uk/self-employed-national-insurance-rates:
Fortunately however VAT does not need to be paid.
The amount that will be declared is the same as he grant amount that was requested, e.g. if 100k USD is requested for 1 year, then 100k USD will be pro-rata declared on that year.
Any remaining donations that don't yet meet specific grant goals will be initially treated as cash gifts which pay no tax. If in the future they are used as grant money after further goal amounts are reached, then they will taxed as grants.
Note however that if the donor is UK-based and dies within 7 years of the gift being given, inheritance tax has to be paid on them as per: www.gov.uk/inheritance-tax/gifts, at a maximum of 32% and going to to 0% at 7 years, so let me know from the afterlife.
Ciro's Edict #8 List topics on home page Updated 2025-07-16
The new default homepage for a logged out user how shows a list of the topics with the most articles.
This is a reasonable choice for default homepage, and it immediately exposes users to this central feature of the website: the topic system.
Doing this required in particular calculating the best title for a topic, since it is possible to have different titles with the same ID, the most common way being with capitalization changes, e.g.:would both have topic ID
JavaScript
Javascriptjavascript.The algorithm chosen is to pick the top 10 most upvoted topics, and select the most common title from amongst them. This should make topic title vandalism quite hard. This was made in a single SQL query, and became the most complext SQL query Ciro Santilli has ever written so far: twitter.com/cirosantilli2/status/1549721815832043522
Screenshot showing the list of topics
. The page is: ourbigbook.com for the logged out user, ourbigbook.com/go/topics for the logged in user.Screenshot showing a topic page
. The page is: ourbigbook.com/go/topic/vector-space. Before this sprint, we didn't have the "Vector Space" at the top, as it wasn't necessarily trivial to determine what the preferred title would be. Sport Updated 2025-07-16
SQL example Updated 2025-07-16
Sequelize is used minimally, just to feed raw queries in transparently to any underlying database, and get minimally parsed results out for us, which we then assert with standard JavaScript. The queries themselves are all written by hand.
By default the examples run on SQLite. Just like the examples from sequelize example, you can set the database at runtime as:
./index.jsor./index.js l: SQLite./index.js p: PostgreSQL. You must manually create a database calledtmpand ensure that peer authentication works for it
Here we list only examples which we believe are standard SQL, and should therefore work across different SQL implementations:
- nodejs/sequelize/raw/index.js: basic hello world to demonstrate the setup and very simple functionality
- nodejs/sequelize/raw/many_to_many.js: illustrates many-to-many relations with JOIN. Contains:
- SQL transaction examples:
- nodejs/sequelize/raw/commit_error.js: stackoverflow.com/questions/27245101/why-should-we-use-rollback-in-sql-explicitly/27245234#27245234 and stackoverflow.com/questions/48277519/how-to-use-commit-and-rollback-in-a-postgresql-function/48277708#48277708 suggest that on PostgreSQL, once something fails inside a transaction, all queries in the current transaction are ignored, and
COMMITsimply does aROLLBACK. Let's check. Yup, true for Postgres, but false for SQLite, SQLite just happily runs anything it can, you really needROLLBACKfor it. - SQL isolation level example
- nodejs/sequelize/raw/commit_error.js: stackoverflow.com/questions/27245101/why-should-we-use-rollback-in-sql-explicitly/27245234#27245234 and stackoverflow.com/questions/48277519/how-to-use-commit-and-rollback-in-a-postgresql-function/48277708#48277708 suggest that on PostgreSQL, once something fails inside a transaction, all queries in the current transaction are ignored, and
- GROUP BY and SQL aggregate functions:
- nodejs/sequelize/raw/group_by_extra_column.js: let's see if it blows up or not on different DB systems,
sqlite3Node.js package allows it:- github.com/sequelize/sequelize/issues/5481#issuecomment-964387232
- dba.stackexchange.com/questions/141594/how-select-column-does-not-list-in-group-by-clause/141600 says that it was allowed in SQL:1999 when there are no ambiguities due to constraints, e.g. when grouping by unique columns
- github.com/postgres/postgres/blob/REL_13_5/src/test/regress/sql/functional_deps.sql#L27 shows that PostgreSQL wants it to work for
UNIQUE NOT NULL, but they just haven't implemented it as of 13.5, where it only works if you group byPRIMARY KEY - dba.stackexchange.com/questions/158015/why-can-i-select-all-fields-when-grouping-by-primary-key-but-not-when-grouping-b also says that
UNIQUE NOT NULLdoesn't work. Dan Lenski then points to a rationale mailing list thread.
- nodejs/sequelize/raw/group_by_max_full_row.js: here we try to get the full row of each group at which a given column reaches the max of the group
- Postgres: has
SELECT DISCINTCT ONwhich works perfectly if you only want one row in case of multiple rows attaining the max.ONis an extension to the standard unfortunately: www.postgresql.org/docs/9.3/sql-select.html#SQL-DISTINCT Docs specify that it always respectsORDER BYwhen selecting the row.- stackoverflow.com/questions/586781/postgresql-fetch-the-row-which-has-the-max-value-for-a-column asks it without the multiple matches use case
- stackoverflow.com/questions/586781/postgresql-fetch-the-rows-which-have-the-max-value-for-a-column-in-each-group/587209#587209 also present in simpler form at stackoverflow.com/questions/121387/fetch-the-rows-which-have-the-max-value-for-a-column-for-each-distinct-value-of/123481#123481 gives a very nice OUTER JOIN only solution! Incredible, very elegant.
- dba.stackexchange.com/questions/171938/get-only-rows-with-max-group-value asks specifically the case of multiple matches to the max
- stackoverflow.com/questions/586781/postgresql-fetch-the-row-which-has-the-max-value-for-a-column asks it without the multiple matches use case
- SQLite:
- stackoverflow.com/questions/48326957/row-with-max-value-per-group-sqlite
- stackoverflow.com/questions/48326957/row-with-max-value-per-group-sqlite/48328243#48328243 teaches us that in SQLite min and max are magic and guarantee that the matching row is returned
- stackoverflow.com/questions/48326957/row-with-max-value-per-group-sqlite/72996649#72996649 Ciro Santilli uses the magic of
ROW_NUMBER
- stackoverflow.com/questions/17277152/sqlite-select-distinct-of-one-column-and-get-the-others/71924314#71924314 get any full row without specifying which, we teach how to specify
- code.djangoproject.com/ticket/22696 WONTFIXed
DISTINCT ON- stackoverflow.com/questions/50846722/what-is-the-difference-between-postgres-distinct-vs-distinct-on/72997494#72997494
DISTINCTvsDISTINCT ON, somewhat related question
- stackoverflow.com/questions/50846722/what-is-the-difference-between-postgres-distinct-vs-distinct-on/72997494#72997494
- stackoverflow.com/questions/48326957/row-with-max-value-per-group-sqlite
- stackoverflow.com/questions/5803032/group-by-to-return-entire-row asks how to take the top N with distinct after order limit. I don't know how to do it in Postgres
- Postgres: has
- nodejs/sequelize/raw/most_frequent.js: illustrates a few variants of findind the mode, including across GROUP
- nodejs/sequelize/raw/group_by_max_n.js: get the top N in each group
- nodejs/sequelize/raw/group_by_extra_column.js: let's see if it blows up or not on different DB systems,
- order results in the same order as
IN: - LIMIT by a running total: TODO links
SsethTzeentach Updated 2025-07-16
Reviews mostly old RPG and strategy games. And hentai games when it is possible to hide the porn from YouTube. He also sponsors Hentai and uploads it on his website: www.ssethtzeentach.com/nsfw
Ciro Santilli really likes his sense of humor, always going into "politically incorrect" areas, and often making fun of both dictatorships and the USA. He actually knows a bit about politics. Due to the nature of his humour, many of his earlier videos have been taken down from YouTube apparently, www.ssethtzeentach.com/videos mentions:
The videos are also incredibly packed full of well selected edited-in "memes jokes". He particularly likes very short snippets of gay porn which cannot actually be taken down as porn, even though the obviously are porn excerpts, like the buffed dude blowing a kiss to his tit.
www.youtube.com/watch?v=sw8v5__Ytf4 Heroes of Might and Magic III (2018) is one of the best reviews. Sseth likes to find and make fun of game breaking imbalances, something that Ciro likes due to his Ciro Santilli's self perceived creative personality.
www.youtube.com/watch?v=rOJdDvf-tUs The Sseth Streaming Experience (2019), being a live stream, likely shows more realistically how Seth actually talks in real life.
knowyourmeme.com/memes/people/ssethtzeentach gives his profile image from: www.aljazeera.com/features/2012/7/30/the-two-most-loyal-soldiers-in-the-dr-congo
youtu.be/se6Y2o3OqJQ?t=2 shows what could actually be outside of his real window.
Stack Overflow Updated 2025-07-16
The best place to get answers to programming questions as of 2019. Google into Stack Overflow is always the best bet.
An overview of Ciro Santilli's Stack Overflow contribution can be found at: Ciro Santilli's Stack Overflow contributions.
Stack Overflow in a nutshell
. Source. As the "WTF look at my points" guy, Ciro Santilli approves of this meme. A few more elements could be added, notably deletion of the last link-only answer, but good enough.
By the profile image, the "Grammar Nazi" editor is actually appropriately the notorious serial editor Peter Mortensen. Ciro Santilli welcomes grammar fixes, but more subjective style fixes can be a bit annoying.
Catching mice by Nakanoart
. Possible non-canonical source: twitter.com/nixcraft/status/1376023938749190147 Stack Overflow content deletion Updated 2025-07-16
Stack overflow allows deleting content/making it visible only to 10k rep users.
Ciro Santilli is strictly against this, and this is an intended core policy of OurBigBook.com.
If you delete people's content randomly, they will be much less likely to write anything.
Getting downvoted to oblivion is one thing, but data loss? Unacceptable.
Only illegal content must ever be deleted. Or extremely obvious spam. But anything in a gray area should never be removed.
Deletion can be done by either:
- votes of high reputation users
- moderators
- or worse of all, which happens often on the smaller websites: auto-deletion because come content has not received enough views/votes above some treshold! stackoverflow.com/help/auto-deleted-questions. The most illogical thing of all is that the question is not even permanently removed from the system, only hidden from other/low reputation users! So it does not save any disk space at all! Mind blowing!
Stack Overflow is doomed Created 2024-07-29 Updated 2025-07-16
Stack Overflow does have an super naive reputation and moderation system and overly restrictive subject matter, which Ciro Santilli wants to improve upon with OurBigBook.com.
However, it is the best that we have now, and if you use it like Ciro, you won't get tired:What else would you expect from a naive algorithm system that has 10 million newbies asking stuff?
- monitor only rare tags that you know a lot about, let others answer duplicates on big tags for you
- only answer on bigger tags when you find a better answer than can be found on the page
- accept that sometimes things are bound to go wrong, that reputation is meaningless, and move on
The key problem of Stack Overflow is closurism. The answer close feature is just not made for purpose. The sole purpose of "closing" should be to prevent easy reputation farming. What it should do instead, is remove points gained from duplicates and off topic questions. But it should not prevent new answers. The disk space costs nothing, and Google doesn't care about the closed status of a question.
As of 2024, the only competitor of Stack Overflow is Reddit (besides LLMs, which do nothing but extract data from those two and other sites). Reddit removed the mandatory thread locking after 6 months, but still lacks the Q&A focus required for greatness. Its community however is much more chill and doesn't close and downvote the fuck out of everything.
Related posts:
Stack Overflow users Ciro Santilli dislikes Updated 2025-09-09
Nothing personal, just Ciro Santilli strongly disagrees with the moderation philosophies of these users.
One particular type of user Ciro particularly dislikes are those who do more moderation than content. Ciro finds it very hard to understand why some people spend so much time moderating. Maybe that's how politicians exist, some people just like that kind of activity.
The moderators tend to have lower intermediate rep. They spend too much time moderating and too little time coding.
- Users who are publicly against the ability to criticize the character of politicians, shown after "I think Trump is disgusting as a person" was removed from Ciro's profile: cirosantilli.com/china-dictatorship/stack-overflow-forbids-criticizing-the-character-of-genocidal-political-leaders-like-xi-jinping
- Journeyman Geek:
- is also against political speech against the CCP in Stack Overflow
- deletionism: single handedly deletes opposing answers without giving any explanation TODO example;
- closurism: superuser.com/questions/248517/show-keys-pressed-in-linux
- Journeyman Geek:
- Yvette Colomb deleted a few of Ciro's answers, related: Ciro Santilli's Stack Overflow suspension for vote fraud script 2019.
- chrisF: envorces Stack Overflow no duplicate answers policy: stackoverflow.com/questions/9242135/how-to-force-rsync-to-create-destination-folder/72178249#72178249
- meta.stackexchange.com/users/361484/luuklag meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers/326746?noredirect=1#comment1283471_326746Fair comment, but do you need to flag before comment, and downvote? That answer was clearly a labour of love, on a subject that will never ever make anyone any money (markup style). Too much meta rep, too little programming rep.
Flagged as spam, there obviously is affiliation between the first link and the poster, which is not disclaimed.
- Cody Gray
- Charcoal bot people: charcoal-se.org/
- askubuntu.com/users/10616/thomas-ward Thomas Ward deletionism:
- e.g. convert here's a bug report answer to comment: askubuntu.com/questions/1464992/cant-drag-clip-to-timeline-in-kdenlive-in-ubuntu-23-04/1469359#comment2575312_1464992
- askubuntu.com/questions/524242/how-to-find-out-which-nvidia-gpu-i-have/1469351#1469351 deleted a perfectly valid "Settings -> Details -> About" GUI answer
- Machavity stackoverflow.com/users/2370483/machavity.Deletionism: stackoverflow.com/questions/13714454/specifying-and-saving-a-figure-with-exact-size-in-pixels/64632093#64632093. Edit: reverted.
- askubuntu.com/users/10616/thomas-ward Thomas Ward deletionism:
- Dharman
- security.stackexchange.com/users/6253/schroeder: deletionism security.stackexchange.com/questions/231637/signal-contact-people-or-have-people-contact-me-without-revealing-phone-numbe/245665?noredirect=1#comment591690_245665
TBD:
- webapps.meta.stackexchange.com/users/88163/rubén: possible deletionist webapps.stackexchange.com/questions/149933/why-does-the-archive-org-of-most-youtube-videos-fail-with-sorry-the-wayback-mac, but: might reconsider: webapps.meta.stackexchange.com/questions/4502/why-were-not-customer-support-for-your-favorite-company/4503?noredirect=1#comment5167_4503. Didn't: archive.ph/wip/EyZS7
Not so strong, but bad experience:
- Zac67 networkengineering.stackexchange.com/users/36720/zac67: you cannot mention any specific device, even if it is for illustrationa purposes...That's like, the opposite of reproducibility...
Deleted answers are dumped at: github.com/cirosantilli/cirosantilli.github.io/issues





