ID photo of Ciro Santilli taken in 2013 right eyeCiro Santilli OurBigBook logoOurBigBook.com  Sponsor 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
This talk was presented on 24 September 2024 as part of the 2024 Aratu Week, a small online conference by Brazilian hacker interest group Boitatech.
How to contact me: Section "How to contact Ciro Santilli"
Links to this talk:
Figure 1. Source.
Video 1.
Self-recorded presentation VOD
. Source.
Video 2.
Presentation upload by the organizers
. Source.

Introduction

articles: 2
Figure 2. Source.
Section "How to contact Ciro Santilli"
https://raw.githubusercontent.com/cirosantilli/media/master/ID_photo_of_Ciro_Santilli_2024_intro_to_ourbigbook.jpg
https://stackoverflow.com/users/flair/895245.png?theme=dark
Video 3.
How I found a Star Wars website made by the CIA
. Source.
Article: Section "CIA 2010 covert communication websites (cirosantilli.com/cia-2010-covert-communication-websites)"
Figure 3. Source.
Figure 5. Source.
https://raw.githubusercontent.com/cirosantilli/media/master/Yahoo_CIA_website_article.png
Figure 6.
"Seriously a dumb question" Quora answer by Chris from the US Navy
.
Video 4.
Compromised Comms by Darknet Diaries (2023)
Source.
Figure 7.
Banner of the Reuters article
. Source.
Figure 8.
Reuters reconstruction of what the applet would have looked like
. Source.
Figure 9.
Inspecting the Reuters article HTML source code
.

Coolest findings

words: 33 articles: 6
Figure 10. . The Star Wars one.
Brazil
words: 6
Figure 11. . The Brazilian one.
Germany
words: 6
Figure 12. . The German one.
France
words: 6
Figure 13. . A French one.
Italy
words: 9
Figure 14. . An Italian one about extreme sports.

Methodology

words: 154 articles: 7
Figure 15.
viewdns.info activegameinfo.com domain to IP
. Source.
Figure 16.
viewdns.info aroundthemiddleeast.com IP to domain
. Source.

The hard: finding new IP ranges!

words: 144 articles: 5
dnscensus2013.neocities.org/
Figure 17. . Source. This source provided valuable historical domain to IP data.
amazon.com,2012-02-01T21:33:36,72.21.194.1
amazon.com,2012-02-01T21:33:36,72.21.211.176
amazon.com,2013-10-02T19:03:39,72.21.194.212
amazon.com,2013-10-02T19:03:39,72.21.215.232
amazon.com.au,2012-02-10T08:03:38,207.171.166.22
amazon.com.au,2012-02-10T08:03:38,72.21.206.80
google.com,2012-01-28T05:33:40,74.125.159.103
google.com,2012-01-28T05:33:40,74.125.159.104
google.com,2013-10-02T19:02:35,74.125.239.41
google.com,2013-10-02T19:02:35,74.125.239.46
https://raw.githubusercontent.com/cirosantilli/media/master/ciro-love-sqlite.png
web.archive.org/cdx/search/cdx?url=capture-nature.com&matchType=domain
com,capture-nature)/robots.txt 20211229130524 https://www.capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1213
com,capture-nature)/robots.txt 20211230151913 http://capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1186
com,capture-nature)/robots.txt 20220419233721 https://www.capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1075
com,capture-nature)/scenes.jar 20110201104851 http://capture-nature.com/Scenes.jar application/java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287887
com,capture-nature)/scenes.jar 20110224193204 http://capture-nature.com/Scenes.jar application/java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287890
com,capture-nature)/scenes.jar 20130903003254 http://capture-nature.com/Scenes.jar application/x-java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287898
com,capture-nature)/trees-and-details 20200928184446 https://www.capture-nature.com/trees-and-details text/html 200 NO6J7567VFWZLRSKBJ5HVXGT27MX2A4K 30902
com,capture-nature)/trees-and-details 20210127132910 https://www.capture-nature.com/trees-and-details text/html 200 SI73WNJUBGTOXSTRK4IRU4D4AJ637F6A 31041
com,capture-nature)/trees-and-details 20210419062751 https://www.capture-nature.com/trees-and-details text/html 200 K4Q444QJ243HW3ECXNNOBNUFMXWAPVFD 31464
https://raw.githubusercontent.com/cirosantilli/media/master/cia-website-comms-methods.png
Tor automation at: github.com/cirosantilli/cirosantilli.github.io/blob/f45d859d4f9350e4a3deffdbb8acd86584d60f2c/cia-2010-covert-communication-websites/cdx-tor.sh
They really screwed up there:
$ jq <hits.json '.[].host' | wc
    361     361    7777
$ jq <hits.json '.[].host' | grep news | wc
    129     129    2809
More than 1/3 of my hits found contain the word "news" in the title!!! E.g.:
global-view-news.com
firstnewssource.com
theworldnewsfeeds.com
pars-technews.com
newdaynewsonline.com
sportsnewsfinder.com
newsworldsite.com
todaysnewsreports.net
hassannews.net
weblognewsinfo.com
newsincirculation.com
static.hupo.com/expdomain_myadmin/2012-03-06(国际域名).txt
0000o.com
001cssf.com
001techan.com
0061hs-0351xc-g305h.net
006979.com
006h4g-054hs-6504ga.net
github.com/cirosantilli/expired-domain-names-by-day-2011
Figure 18. Source.
https://web.archive.org/web/20240703222455im_/https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/30a_Sammlung_Eybl_Gro%C3%9Fbritannien._Alfred_Leete_(1882%E2%80%931933)_Britons_(Kitchener)_wants_you_(Briten_Kitchener_braucht_Euch)._1914_(Nachdruck)%2C_74_x_50_cm._(Slg.Nr._552).jpg/401px-thumbnail.jpg
github.com/cirosantilli/linux-kernel-module-cheat
Figure 19. Source.
Figure 20. Source.
One time setup:
git clone https://github.com/cirosantilli/linux-kernel-module-cheat
cd linux-kernel-module-cheat
sudo apt install docker
python3 -m venv .venv
. .venv/bin/activate
./setup
./run-docker create
./run-docker sh
You are now in Docker.
Build everything from source inside docker:
./build --download-dependencies qemu-buildroot
Boot Linux and get a userland shell:
./run
Outcome:
<6>[    1.383114] NET: Registered protocol family 17
<6>[    1.383682] 9pnet: Installing 9P2000 support
<6>[    1.385473] IPI shorthand broadcast: enabled
<6>[    1.385701] sched_clock: Marking stable (1355697980, 27047205)->(1385555667, -2810482)
<6>[    1.387744] ALSA device list:
<6>[    1.387843]   No soundcards found.
<6>[    1.535981] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
<5>[    1.543470] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ PQ: 0 ANSI: 5
<6>[    1.548952] EXT4-fs (vda): mounting ext2 file system using the ext4 subsystem
<6>[    1.555909] EXT4-fs (vda): mounted filesystem without journal. Opts: (null)
<6>[    1.556145] VFS: Mounted root (ext2 filesystem) on device 254:0.
<6>[    1.557451] devtmpfs: mounted
<6>[    1.605639] Freeing unused kernel image (initmem) memory: 1248K
<6>[    1.605875] Write protecting the kernel read-only data: 16384k
<6>[    1.607977] Freeing unused kernel image (text/rodata gap) memory: 2044K
<6>[    1.610190] Freeing unused kernel image (rodata/data gap) memory: 1012K
<6>[    1.610495] Run /sbin/init as init process
<6>[    1.683311] tsc: Refined TSC clocksource calibration: 3293.671 MHz
<6>[    1.683618] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2f79f177aae, max_idle_ns: 440795226653 ns
<6>[    1.683849] clocksource: Switched to clocksource tsc
<3>[    1.694241] 9pnet_virtio: no channels available for device host_data
mount: mounting host_data on /mnt/9p/data failed: No such file or directory
qemu-system-x86_64: warning: 9p: degraded performance: a reasonable high msize should be chosen on client/guest side (chosen msize is <= 8192). See https://wiki.qemu.org/Documentation/9pset.
<3>[    1.712287] overlayfs: overlapping upperdir path
mount: mounting overlay on /mnt/overlay failed: Too many levels of symbolic links
hello S98
hello .profile
/lkmc
root@buildroot# pwd
/lkmc
/lkmc
root@buildroot#
https://web.archive.org/web/20240424065053im_/https://bootlin.com/wp-content/uploads/2015/05/logo-buildroot.png
The following are stored in submodules:
submodules/binutils-gdb/
submodules/buildroot/
submodules/gcc/
submodules/glibc/
submodules/linux/
submodules/qemu/
So you can modify source, rebuild and that's it, its in the VM.
E.g., let's hack the linux kernel:
asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
{
  pr_info("I'VE HACKED THE LINUX KERNEL!!!");
Rebuild Linux:
./build-linux
Rerun:
./run
And after boot we see:
<6>[    0.000000] I'VE HACKED THE LINUX KERNEL!!!
Start QEMU and wait for GDB:
./run --gdb-wait
On another shell, connect GDB to QEMU and run up to a symbol that shows up at boot:
./run-gdb start_kernel
Outcome: we are GDB step debugging the Linux Kernel:
Breakpoint 1, start_kernel () at /root/lkmc/submodules/linux/init/main.c:837
837     {
loading vmlinux
(gdb) n
841             set_task_stack_end_magic(&init_task);
(gdb) l
836     asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
837     {
838             char *command_line;
839             char *after_dashes;
840
841             set_task_stack_end_magic(&init_task);
842             smp_setup_processor_id();
843             debug_objects_early_init();
844
845             cgroup_init_early();
(gdb) p &init_task
$1 = (struct task_struct *) 0xffffffff82012840 <init_task>
(gdb) bt
#0  start_kernel () at /root/lkmc/submodules/linux/init/main.c:841
#1  0xffffffff8215145c in x86_64_start_reservations (real_mode_data=<optimized out>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:490
#2  0xffffffff821514e3 in x86_64_start_kernel (real_mode_data=0x138d0 <bts_ctx+2256> <error: Cannot access memory at address 0x138d0>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:471
#3  0xffffffff810000e6 in secondary_startup_64 () at /root/lkmc/submodules/linux/arch/x86/kernel/head_64.S:243
#4  0x0000000000000000 in ?? ()
(gdb) up
#1  0xffffffff8215145c in x86_64_start_reservations (real_mode_data=<optimized out>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:490
490             start_kernel();
(gdb) l
485                     break;
486             default:
487                     break;
488             }
489
490             start_kernel();
491     }
E.g., if you want aarch64 instead of the default x86_64:
./build -aA
./run -aA
That's it.

Lots of in-tree examples

words: 148 articles: 3

Kernel modules

words: 46
kernel_modules/hello.c
#include <linux/module.h>
#include <linux/kernel.h>

static int myinit(void)
{
	pr_info("hello init\n");
	/* 0 for success, any negative value means failure,
	 * E* consts if you want to specify failure cause.
	 * https://www.linux.com/learn/kernel-newbie-corner-loadable-kernel-modules-coming-and-going */
	return 0;
}

static void myexit(void)
{
	pr_info("hello exit\n");
}

module_init(myinit)
module_exit(myexit)
MODULE_LICENSE("GPL");

Assembly

words: 24
Assertions! The best way to learn assembly.
userland/arch/x86_64/add.S
#include <lkmc.h>

LKMC_PROLOGUE
    /* Register immediate. */
    mov $1, %rax
    add $2, %rax
    LKMC_ASSERT_EQ(%rax, $3)
LKMC_EPILOGUE

Bare metal!

words: 78
Powered by crosstool-NG:
baremetal/arch/aarch64/semihost_exit.S
.global main
main:
    /* 0x20026 == ADP_Stopped_ApplicationExit */
    mov x1, 0x26
    movk x1, 2, lsl 16
    str x1, [sp, 0]

    /* Exit status code. Host QEMU process exits with that status. */
    mov x0, 0
    str x0, [sp, 8]

    /* x1 contains the address of parameter block.
     * Any memory address could be used.
     */
    mov x1, sp

    /* SYS_EXIT */
    mov w0, 0x18

    /* Do the semihosting call on A64. */
    hlt 0xf000

OurBigBook.com

words: 306 articles: 11
What I'm doing for 1 year now!
Figure 21.
Logo of the OurBigBook Project
.
Figure 22.
Everything is open source
. Source.
Video 5.
Intro to the OurBigBook Project
. Source.
Section "1000 Monero donation"
https://web.archive.org/web/20240306094726if_/https://www.getmonero.org/press-kit/symbols/monero-symbol-on-white-1280.png
Figure 23.
Screenshot of Ciro Santilli's Monero wallet with 1000 Monero in it just after the donation
.
Figure 24.
Still of the reaction video after finding out about the big donation around about midnight
. Source.
Figure 25.
It's a role given to me by the Internet people
.
The ultimate goal: create an university:
  • without entry exams
  • without course requirements
  • where all material is free and available online: lecture notes, problem sheets, past exam papers
  • where you only pay to take certification exams for the courses that you care about
The technical goal:
Get university students to write what they learn. All university material should be amazing and free!
The how:
Create the ultimate personal knowledge base software with multi-user mind-melding features.

What you get

words: 27 articles: 2
Figure 26.
User home page on OurBigBook.com
. Live URL: ourbigbook.com/cirosantilli
Figure 27.
Dynamic article tree with infinitely deep table of contents
.
Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
Figure 28.
The topics feature allows you to find the best version of a subject written by other users user
. Live demo: derivative.

Edit and publish

words: 57 articles: 3
https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
Figure 29. . You can also edit articles on the Web editor without installing anything locally.
Figure 30.
You can publish local lightweight markup files to either OurBigBook Web or as a static website
. For example, both of the following pages:are generated from the exact same source code at: github.com/cirosantilli/cirosantilli.github.io.
Figure 31. .
Figure 32. .
Section "Alternatives"
https://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg
Wikipedia:
  • notability guidelines too stringent
  • Encyclopedic content requirements too stringent, we need tutorials
  • contributors get no clear indication of their contribution
  • your changes can be reverted at any time losing you hours of work
Figure 33. Source.
Stack Exchange: can't write a book/have table of contents, only Q&A
Figure 34. Source.
Other personal knowledge bases (Obsidian, static site generators, etc.), blogs, PDFs:
  • no way to merge brains of multiple users
  • some of them are not focused on publishing, only personal/internal company usage
Article: Section "Ciro's Bitcoin Inscription Museum (cirosantilli.com/cool-data-embedded-in-the-bitcoin-blockchain)"
Figure 35.
Pedobear memes?
Source.
Figure 36. Source.
Figure 37. Source.
Figure 38.
Ordinal #0
.
Figure 39.
Bitcoin ordinal ruleset inscription frequency with time
. Source.

Fan tributes

words: 195
 -------------------------------------
|  Force of Will               3 U U  |
|  ---------------------------------  |
| |                  ////////////   | |
| |                ////() ()\////\  | |
| |               ///_\ (--) \///\  | |
| |        )      ////  \_____///\\ | |
| |       ) \      /   /   /    /   | |
| |    ) /   \     |   |  /   _/    | |
| |   ) \  (  (   /   / /   / \     | |
| |  / ) ( )  / (    )/(    )  \    | |
| |  \(_)/(_)/  /UUUU \  \\\/   |   | |
| .---------------------------------. |
| Interrupt                           |
| ,---------------------------------, |
| | You may pay 1 life and remove a | |
| | blue card in your hand from the | |
| | game instead of paying Force of | |
| | Will's casting cost.  Effects   | |
| | that prevent or redirect damage | |
| | cannot be used to counter this  | |
| | loss of life.                   | |
| | Counter target spell.           | |
| `---------------------------------` |
|                                     l
| Illus.  Terese Nelsen               |
 -------------------------------------

Social media

words: 6
Figure 40.
WeAreStarStuff.jpg
. AtomSea and EMBII (December 2013)

Art

words: 2
Figure 41.
YellowRobot.jpg
. 2017

Memes

words: 10
Figure 42.
Water Deer
. 2016 from badtaxidermy.com Visible at: web.archive.org/web/20200527070011/http://www.badtaxidermy.com/?page=3. Uploaded with: cryptograffiti.info.
Figure 43.
Chinese wedding (2016)
Free GrrCon ticket (2018):
@@@@@@@@@@@@@@@@@@@@@@@@YOUR@FREE@GRRCON@TICKET@CODE@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,          *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@%                          @@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@                                   .@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@          *@@@@@@@@@@@@@@@@@@@,           @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@         @@@@(                   %@@@@          @@@@@@@@@@@@@@@
@@@@@@@@@@@@@@       @@@@                             @@@&        @@@@@@@@@@@@@
@@@@@@@@@@@@       @@@        @@@@@@@@@@@@@,@.           @@@        @@@@@@@@@@@
@@@@@@@@@@      %@@       .&@@@@@@&%@@@@@&&&@@@@@#          @@/      /@@@@@@@@@
@@@@@@@@@      @@       @@@&@@O@@@@@@@@@@@@@@@@(@@@@&         @@       @@@@@@@@
@@@@@@@@     @@.      .@@@,%&@@P@@@@@(,*&*@@@@@@@@#(#.@        (@@      @@@@@@@
@@@@@@*     @@       @@(@%@@@@@&R@@@@&@@@@@@@&@@@@@@/ @@@        @@      @@@@@@
@@@@@#     @@       @@@@@@@@,,@%@E@%@@@@@@@@@@@%@@@@@.@@@@        @@      @@@@@
@@@@@     @@        @.@@@@@,@@@(@,T@@@@@@@@@@@@@@@@@@@@@@@@        @@      @@@@
@@@@     @@        @&@@@@@@/@#@(@&@U@@@@@@@@(@@@@@@., #@@@@@        @@      @@@
@@@*    @@         @@@@&@@&@    #@@@R@.@@@@@.@@@@@@@%@@(@@@@@        @@     @@@
@@@     @@         /@@*@@        @@@/N/@,@@@@@@@@@    @@@@@@,        @@      @@
@@@    @@          @@@@@          @@.@I@@,@@@@@@@@    @@@@&@@         @@     @@
@@/    @@           @@@,           (#@/S@@@@@@.,@     **@@&,@         @@     @@
@@     @@           %((           @#@@@@M@@@@@&@    #./%&@@*          @@     %@
@@     @@           #&&@          @@@@&@@Y@@@@@     &@,@@@.(          @@     %@
@@,    @@           @@@@@@        *(@@%@@@F&@.      @@&%@@            @@     @@
@@@    @@           @#@%@/@         @@@*@@@R(      @@@&@              @@     @@
@@@     @@         @@@@@@@@@%@@@%%@@@@@@@%%/I@  @@@@, @              @@      @@
@@@.    @@         @@@@@@@*@&@@@@# @(@@@@@@@@E@@@@@@@&               @@     @@@
@@@@     @@         @@@@&@@(@@@@@@.@# @@@ @@@@N@@@@,@(              @@      @@@
@@@@@     @@            @@@*@@&@@*(@  @@@&@@&@@D@@@@&              @@      @@@@
@@@@@.     @@                  @/@,@@@@@@@@@@@@@@%                @@      @@@@@
@@@@@@      @@                 @@@@@@@@@@@@@,@@@@                @@      %@@@@@
@@@@@@@,     @@/             @&@@(@@@@ @@@@@@@@@               &@@      @@@@@@@
@@@@@@@@@      @@          #%@(,&,@@@@ @(&  @/,@              @@       @@@@@@@@
@@@@@@@@@@      /@@        @@&@@@@@,*  @@&  @@@@@@         .@@.       @@@@@@@@@
@@@@@@@@@@@@       @@@        @(@@@@@@ @@@  .@(@@,       @@@        @@@@@@@@@@@
@@@@@@@@@@@@@@       &@@@                             @@@#        @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@         @@@@@                   @@@@@          @@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@#          .@@@@@@@@@@@@@@@@@@@            @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@         @  ,        .  @           @@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@     @ @   @#   @  *, @     @@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Removing the @ signs:
                        YOUR FREE GRRCON TICKET CODE
                                  ,          *
                          %
                                                          .
                              *                   ,
                              (                   %
                                                          &
                                            , .
                %         .&      &%     &&&     #            /      /
                            &  O                (    &
                .      .   ,%&  P     (,*&*        #(#.         (
      *                ( %     &R    &       &      /
      #                      ,, % E %           %     .
                      .     ,   ( ,T
                    &      / # ( & U        (      ., #
    *                   &  &     #   R .     .       %  (
                    /  *             /N/ ,                   ,
                                    . I  ,                &
  /                    ,           (# /S      .,      **  &,
                    %((            #    M     &     #./%&  *                 %
                    #&&               &  Y          & ,   .(                 %
  ,                               *(  %   F& .        &%
                      # % /             *   R(         &
                            %   %%       %%/I       ,
    .                      * &    #  (        E       &
                        &  (      . #         N    , (
                            *  &  *(      &  &  D    &
      .                          / ,              %
                                            ,                            %
        ,       /              &  (                             &
                            #% (,&,      (&   /,
                /            &     ,*    &                 .  .
                                (            . (  ,
                      &                                   #

                  #          .
                                  ,        .
                                      #      *,
                                &
Figure 44. Source.
Figure 45.
Xi Jinping, ruler of China
.
Figure 46.
Xi Jinping, ruler of China, wearing leather sadomasochist outfit
.
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/GitHub_collateral_freedom.jpg
github.com/cirosantilli/china-dictatorship/issues
Figure 47. Source.
Figure 48. Source.
web.archive.org/web/20210917212322/https://stackoverflow.com/questions/6121094/how-do-i-run-a-program-with-commandline-arguments-using-gdb-within-a-bash-script/6121299
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/Stack_Overflow_keyword_attack_by_Ciro_Santilli.png

Package managers

words: 6 articles: 1
Up March 2023 web.archive.org/web/20230306090740/https://pypi.org/project/china-dictatorship/
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/pypi.org_project_china-dictatorship.png
Down November 2023 web.archive.org/web/20231110041847/https://pypi.org/project/china-dictatorship/
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/pypi.org_project_china-dictatorship_down.png
github.com/cirosantilli/all-github-commit-emails
More info: Section "All GitHub Commit Emails"
https://raw.githubusercontent.com/cirosantilli/media/master/GitHub_Archive_Google_bigquery_PushEvent_email_highlight.png
https://raw.githubusercontent.com/cirosantilli/media/master/All_GitHub_commit_emails_repo_screenshot_before_takedown_archive_is.png
See also Ciro Santilli's naughty projects:

Ancestors (3)

  1. Talk by Ciro Santilli
  2. Ciro Santilli
  3. Home