There's a tiny little crosshair that you can drag around to set the center of rotation.
Inscription (blockchain) Updated 2025-11-18
Data that is inscribed in a blockchain as a way to perpetuate the data, rather than to follow the main intended purpose of the given blockchain, e.g. ASCII art instead of financial transactions on the Bitcoin blockchain.
Home 2017 TalkTalk 38Mbps nominal, Google M-lab speed test:
Home 2025 Giffgaff
Home 2025 Sky Broadband WiFi Max Hub SR213 (SR213-02-UK-wht) 1GBPS:
Admin at 192.168.0.1/ username admin password same as wifi password.
Ciro was trying to make his face fit on the banner. But it is hard because faces are square and text is long.
Then at one point, the CSS was a bit broken and the eye stuck out just left of Ciro Santilli.
At this moment, Ciro knew what to do.
This produced a "continuous image symbol to text" effect that felt so right.
Finally, by adding another eye to the footer of the page, this also added a symbolic dimension to things: the pages contain what is in between Ciro's eyes: his brain: Section "Braindumping".
The concept, like any other, is not in itself new and has been used by others, Ciro just independently rediscovered it again:
Asian fetish Updated 2025-10-27
All interests are based on fetishes.
The fetish of beauty. The fetish if intelligence. The fetish of kindness.
What's wrong with the fetish of Asianess?
Whenever Ciro's wife starts with "the Asian fetish talk", Ciro reminds her of her own claimed "tall person fetish", and they call it quits.
Asian fetish is much more than sex. It is about the culture, the history, the language. It is the same fetish that makes great mathematicians an Artists do what they do.
When Ciro Santilli was at École Polytechnique, he had to do a presentation for his stupid English courses that all students were forced to take, no matter how good their English was.
The topic was likely something like "pick a country", and Ciro was delighted when he managed to pick "China", after it had gone around a table with many many people before him.
The PowerPoint presentation Ciro made over the weekend was so amazing (and making it was actually fun to make, Ciro actually remembers it a bit!), drawing partly from stuff his wife then girlfriend showed him, that at the end the one of the other students asked him if he had lived in China.
It is a shame Ciro couldn't find the presentation when he wrote this line many many years later. Anything that is not in a BLOB-free monorepo, will disappear, heed my words. But he's certain about two things which it contained:
en.wikipedia.org/wiki/Asian_fetish#History_of_origins
In the United States, women of East and Southeast Asian descent are sometimes stereotyped as subservient, passive, mysterious, villainous in nature, and hyper-sexual.
subservient, passive, mysterious are understandable. But Hyper-sexual and villainous? OMG have these people never seen real Asians?
en.wikipedia.org/wiki/Asian_fetish#Pornography:
Several studies have implied that Asian women are over-represented in the American pornography industry. Asian women make up perhaps 20% of all female performers, despite being roughly 2.5% of the U.S. population. Asian men also appear to be considerably over-represented, at 10% of male actors.
Video 1.
How my boyfriend CHEATED with another Asian girl by Jenny Tian
. Source.
Video 2.
Sam Rockwell monologue about being an Asian girl on The White Lotus
. Source.
ZynAddSubFX Updated 2025-07-16
Contains a large database of instruments, and allows you to edit them. This is a fun toy.
Instruments are edited on a GUI. It is a multi-window program, and you open new windows from new windows from new windows, all filled with hundreds of virtual knobs that you drag with your keyboard, and which would be better done from textual software like Csound. It is a thing of beauty.
It does not seem possible to program arbitrary modular synthesizer circuits therefore. But if you understand additive synthesis and subtractive synthesis well, you can make some funky sounds with it.
It is basically a superset of all popular hardware synthesizers ever made.
Has its own built-in MIDI keyboard which is nice.
On Ubuntu 20.04 Version: 3.0.5:
sudo apt install zynaddsubfx
zynaddsubfx -O alsa
as per askubuntu.com/questions/220802/no-sound-zynaddsubfx-and-jack-wont-run/1297988#1297988
To do anything of interest, switch to the Advanced UI:
The UI is completely different form what is shown on the website as of 2020: zynaddsubfx.sourceforge.io/, it looks instead like: www.youtube.com/watch?v=iVPr6iUuO3g Maybe on the website it is the new zyn-fusion UI... www.reddit.com/r/linuxaudio/comments/bxn3ur/some_help_for_installing_zynfusion_zynaddsubfx/ so confusing.
And they have some crappy policy of asking for 45 USD for binary downloads.
Compiling from source:
git clone https://github.com/zynaddsubfx/zynaddsubfx
cd zynaddsubfx
git checkout a789866de4d45a784c1f4d95fcf5a1938347baef
sudo apt build-dep zynaddsubfx
mkdir build
cd build
cmake ..
make -j`nproc`
fails with:
Traceback (most recent call last):
  File "/usr/bin/cxxtestgen", line 7, in <module>
    import cxxtest.cxxtestgen
  File "/usr/share/cxxtest/cxxtest/__init__.py", line 33, in <module>
    from cxxtest.cxxtestgen import *
  File "/usr/share/cxxtest/cxxtest/cxxtestgen.py", line 18, in <module>
    import __release__
ModuleNotFoundError: No module named '__release__'
Ciro gives up for now.
ZX-calculus Updated 2025-07-16
How can we easily prove that that quantum circuit equals the state:
?
The naive way would be to just do the matrix multiplication as explained at Section "Quantum computing is just matrix multiplication".
However, ZX-calculus provides a simpler way.
And even more importantly, sometimes it is the only way, because in a real circuit, we would not be able to do the matrix multiplication
What we do in ZX-calculus is we first transform the original quantum circuit into a ZX graph.
This is always possible, because we can describe how to do the conversion simply for any of the Clifford plus T gates, which is a set of universal quantum gates.
Then, after we do this transformation, we can start applying further transformations that simplify the circuit.
It has already been proven that there is no efficient algorithm for this (TODO source, someone said P-sharp complete best case)
But it has been proven in 2017 that any possible equivalence between quantum circuits can be reached by modifying ZX-calculus circuits.
There are only 7 transformation rules that we need, and all others can be derived from those, universality.
So, we can apply those rules to do the transformation shown in Wikipedia:
Figure 1.
GHZ circuit as ZX-diagram
. Source.
and one of those rules finally tells us that that last graph means our desired state:
because it is a Z spider with and .
Video 1.
Working with PyZX by Aleks Kissinger (2019)
Source. This video appears to give amazing motivation on why you should care about ZX-calculus, it mentions
Students choose only one of the Cx courses.
Then there are PhDs corresponding to each of them: www.ox.ac.uk/admissions/graduate/courses/mpls/physics
Yang-Mills existence and mass gap Updated 2025-07-16
Video 1.
Yang-Mills 1 by David Metzler (2011)
Source.
A bit disappointing, too high level, with very few nuggests that are not Googleable withing 5 minutes.
Breakdown:
Video 2. Source. 2 hour talk at the Kavli Institute for Theoretical Physics. Too mathematical, 2021 Ciro can't make much out of it.
Video 3.
Lorenzo Sadun on the "Yang-Mills and Mass Gap" Millennium problem
. Source. Unknown year. He almost gets there, he's good. Just needed to be a little bit deeper.
Xah Lee Updated 2025-07-16
fuseki.net/home/List-of-Patreon-Subs-with-Justification.html describes him well:
Outsider, formerly homeless, extreme person interested in CS and culture. Self-publishes a website with thousands of tutorial / opinion pages. Possibly similar to Sam Sloan - extremely productive, wide interests, obsessive, and pretty disagreeable.
Homepage xahlee.org/ says:
Siphon my knowledge into your brain. Assimilate my sensibilities to your spine.
Nice Second brain vibe.
Figure 1.
Xah Lee with some weird statuettes of himself
. Source. 2019.
Let's see:
The same linear address can translate to different physical addresses for different processes, depending only on the value inside cr3.
Both linear addresses 00002 000 from process 1 and 00004 000 from process 2 point to the same physical address 00003 000. This is completely allowed by the hardware, and it is up to the operating system to handle such cases.
This often in normal operation because of Copy-on-write (COW), which be explained elsewhere.
Such mappings are sometime called "aliases".
The Linux kernel makes extensive usage of the paging features of x86 to allow fast process switches with small data fragmentation.
There are also however some features that the Linux kernel might not use, either because they are only for backwards compatibility, or because the Linux devs didn't feel it was worth it yet.
x86's multi-level paging scheme uses a 2 level K-ary tree with 2^10 bits on each level.
Addresses are now split as:
| directory (10 bits) | table (10 bits) | offset (12 bits) |
Then:
  • the top 10 bits are used to walk the top level of the K-ary tree (level0)
    The top table is called a "directory of page tables".
    cr3 now points to the location on RAM of the page directory of the current process instead of page tables.
    Page directory entries are very similar to page table entries except that they point to the physical addresses of page tables instead of physical addresses of pages.
    Each directory entry also takes up 4 bytes, just like page entries, so that makes 4 KiB per process minimum.
    Page directory entries also contain a valid flag: if invalid, the OS does not allocate a page table for that entry, and saves memory.
    Each process has one and only one page directory associated to it (and pointed to by cr3), so it will contain at least 2^10 = 1K page directory entries, much better than the minimum 1M entries required on a single-level scheme.
  • the next 10 bits are used to walk the second level of the K-ary tree (level1)
    Second level entries are also called page tables like the single level scheme.
    Page tables are only allocated only as needed by the OS.
    Each page table has only 2^10 = 1K page table entries instead of 2^20 for the single paging scheme.
    Each process can now have up to 2^10 page tables instead of 2^20 for the single paging scheme.
  • the offset is again not used for translation, it only gives the offset within a page
One reason for using 10 bits on the first two levels (and not, say, 12 | 8 | 12 ) is that each Page Table entry is 4 bytes long. Then the 2^10 entries of Page directories and Page Tables will fit nicely into 4Kb pages. This means that it faster and simpler to allocate and deallocate pages for that purpose.
x86 Paging Tutorial / CAM Updated 2025-07-16
Using the TLB makes translation faster, because the initial translation takes one access per TLB level, which means 2 on a simple 32 bit scheme, but 3 or 4 on 64 bit architectures.
The TLB is usually implemented as an expensive type of RAM called content-addressable memory (CAM). CAM implements an associative map on hardware, that is, a structure that given a key (linear address), retrieves a value.
Mappings could also be implemented on RAM addresses, but CAM mappings may required much less entries than a RAM mapping.
For example, a map in which:
  • both keys and values have 20 bits (the case of a simple paging schemes)
  • at most 4 values need to be stored at each time
could be stored in a TLB with 4 entries:
linear  physical
------  --------
00000   00001
00001   00010
00010   00011
FFFFF   00000
However, to implement this with RAM, it would be necessary to have 2^20 addresses:
linear  physical
------  --------
00000   00001
00001   00010
00010   00011
... (from 00011 to FFFFE)
FFFFF   00000
which would be even more expensive than using a TLB.

Unlisted articles are being shown, click here to show only listed articles.