On 2024-03-18, Ciro Santilli received an anonymous 1000 Monero donation (worth ~126k USD at the time) to his self-custody wallet, which pushed him over his public plea for 100k USD goal to quit his job for one year.
The transaction ID was
5c6af4df39021f3a4a053ef169c9b397e6d6bf6c7e557d3f08e4e1675d7d3eed
to self hist custody wallet with address 47kzoCeRMTohJhADejtsGmGimvQKzNsuST7u2aVhAD1VX5WDbh3v1FPUoJoTK3NTJVUgAM3dWCqC4Tmp9KSQaJi6GGYWgYn
. This is a roof generated by his Monero wallet: InProofV2AVFBmFhofH4GoG5NsaDutkdNWRTaEhuFgHpHTkpprRmuZ54B8FdUwFp71gqfp2jJpDUrhB3GCzZ2p8CNbh2TW1Z88ShmYWEwtkZFLccEMw9PhH3vWcMVo9mKaRsH3WgJXqq9
.Since this donation is so huge, it deserves some comments and a bit of a retrospective. The path to this donation has been an interactive one, and it is described below.
After starting the OurBigBook Project, Ciro started the sponsor Ciro Santilli's work on OurBigBook.com page on cirosantilli.com and setup some donation methods to help support the project, and possibly try to capitalize a bit on Ciro Santilli's Stack Overflow contributions.
His sponsors are absolutely crazy amazing people, but Ciro simply could attract a large enough amount of small sponsors to reach life changing amounts under those circumstances. This is partly due to Video "And I am not and never have been 'familiar' scene from The Big Short (2015)".
As such, Ciro came to realize more and more that the best approach would be to reach out to a smaller number of rich people, given that the things he works on niche, but may appeal to a particularly wealthy tranche of the population: STEM people. Other experiences and ideas that contribute to this realization are:
- the creation of the OurBigBook Fellowship, which as of writing consisted of a single donation. During this exercise, Ciro Santilli gave about 2k USD to help a promising Brazilian student. In doing so, he understood a lot about what goes on inside a "rich person's" head when considering a donation
- it is hard to decide who to donate to and find those people. In part because as soon as you create a public donation system with an application process, people will game the fuck out of it. Perhaps the Lost Horse LLC approach of "they find you" is the best?
- it is basically impossible to donate more than 1% of your net worth if you have a family. Even 1% you may be discouraged about. Perhaps with reason due to previous bad donations they have made.
- the increasing wealth inequality of this world, perhaps one of the greatest problems we now face
Then, whenever a larger donation would come through and surprise Ciro, he would improve his sponsor page statements. First a private 150 USD by an awesome sponsor. Then the 2023-09 ~810$ Bitcoin one. Finally came the 2023-11-20 100 Monero one. And it was that one that pushed Ciro to start his "100k USD = 1 year campaign".
Finally on 2024-03-13, Ciro received an anonymous 10 Monero donation to self-custody wallet. He had clearly stated that one should make a test donation to that wallet before the big one, so 10 Monero felt like it could be the test one. Ciro communicated the reception at: mastodon.social/@cirosantilli/112112988286298258 and twitter.com/cirosantilli/status/1769464788009066710:
I cashed out 10 XMR on @AgoraDesk for ~1,375 USD, and kept some change in the wallet for fun. This donation confirms that my self-hosted wallet and cash-out work just fine, so feel free to drop those millions whenever you want Mr. Anon :-)
Over the next few days, Ciro checked his wallet more often than his previously self imposed once a weekend max, and as expected, he found the big one on a slightly despaired around midnight sleepless night (partly due to parenthood). He was feeling particularly bored and a bit sad with his work life that night. And there it was. 1000 Monero on the wallet. Needless to say, not much sleep was done on that evening!!!
Still of the reaction video after finding out about the big donation around about midnight
. Source. The following days were also tense, with Ciro having a trial by fire on selling large amounts of Monero on the UK, which is not trivial as it had been banned from all major exchanges. But he managed. Further notes on that at: www.reddit.com/r/Monero/comments/17arz9f/converting_xmr_to_gbp_in_the_uk/. Ciro also decided to keep about 200 Monero around just for fun as a crazy moonshot.
Another major factor likely Ciro having published his article: Section "Cool data embedded in the Bitcoin blockchain" in 2019. This is something he wrote entirely for fun during an intense 3 week side-time binge in 2019, though some large updates were made later on. It was this article that likely some crypto-dude attention to Ciro Santilli's profile. As of 2024, there is said to be about 20 crypto billionaires, so perhaps there are about 2000 crypto 10 millionaires[ref], which is the minimum net worth for a donation of 100k USD to be feasible (1% mark). And perhaps a reasonable number of them are just nerds who got rich, and want to improve the world. There are two lessons from this:
- follow your instincts, always. If something seems mega fun and quick, do it!
- making money from a few rich people (or entities like organizations) is easier than working for a bunch of poor people, because you have to convince less people. If you reach many poor people however, things are much more stable as you can lose a few customers and still be fine
Another factor in the donation, Ciro Santilli believes, is that many rich people thing that education is bullshit. Many successful people are neurodiverse and as such, it is only natural that a large number of rich people want to improve our educational system, which tends to be the very epitome of "boring and average normality" which Ciro Santilli so much detests. This can also be seen in people such as:
- Michael J. Saylor and his Saylor Academy
- Peter Thiel and his Thiel Fellowship
Announcements:
- pre-announcement before everything was clearly documented online:
- main announcement
Amazing reactions from the Monero Reddit community: www.reddit.com/r/Monero/comments/1brryao/ciro_santilli_received_a_1000_xmr_donation_to/These people have some serious trust issues!!! Perhaps not surprising from a privacy coin community. Ciro's Twitter post: twitter.com/cirosantilli/status/1775961945193017790
geonic_
comments:Reaction video is fake. Very bad acting.
Inaeipathy
comments:-TrustyDwarf-
comments:rbrunner7
comments:
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.
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:
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
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.
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.
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
Javascript
javascript
.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.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.js
or./index.js l
: SQLite./index.js p
: PostgreSQL. You must manually create a database calledtmp
and 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
COMMIT
simply does aROLLBACK
. Let's check. Yup, true for Postgres, but false for SQLite, SQLite just happily runs anything it can, you really needROLLBACK
for 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,
sqlite3
Node.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 NULL
doesn'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 ON
which works perfectly if you only want one row in case of multiple rows attaining the max.ON
is an extension to the standard unfortunately: www.postgresql.org/docs/9.3/sql-select.html#SQL-DISTINCT Docs specify that it always respectsORDER BY
when 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
DISTINCT
vsDISTINCT 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
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.
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.