LGBT culture in San Francisco Updated +Created
Pu Songling Updated +Created
Sometimes you just know that your existence will be remembered for a singular reason. Better than not being remembered at all perhaps.
Romance of the Three Kingdoms Updated +Created
Ciro Santilli's hardware / Phillips D400 cordless phone Updated +Created
Takes two AAA rechargeable batteries.
2021-08: rechargeable battery charges were in, nominal marked 1.2V nickel metal hydride, measured as 1.38V and 1.42V.
Cool data embedded in the Bitcoin blockchain / Base58 messages Updated +Created
Bitcoin addresses are by convention expressed in Base58, which is a human readable binary-to-text encoding invented by Bitcoin.
It is a bit like Base64, but obsessed with eliminating characters that look like one another in popular but stupid fonts like capital "I" and lower case ell "l". As such, any embedded text is rather obfuscated due to this limitations, and people often resort to leet-like replacements such as '1' to represent 'I'.
This seems to be one of the earliest strategies used to encode messages into the Bitcoin blockchain. The first known example appears in 2011. Then starting November 2011, a large number of messages were inscribed n short successsion, presumably by a single person or small group.
The interest in Base58 encoding might have initially arisen with people's desire to have "vanity addresses", that is Bitcoin addresses that have real words in them, much like vanity plates or vanity numbers. Such addresses with long words in them are hard to find while keeping the address spendable, because they have to correspond to a private key. An extreme notable example is:which contains the awkward 13 letter word:
embarrassable
in it. TODO: proof that it is pendable?
Perhaps inspired by this, some people also decided to use Base58 addresses as a way to create more general unspendable inscriptions, even even though the method is much more clumsy and complicated than P2FKHS. There is however a certain art to working under limitations.
Figure 1.
Total burn addresses as a function of time found by Bitcoin Burn Addresses: Unveiling the Permanent Losses and Their Underlying Causes
. Although it is not solely focused on inscriptions and may also contain functional burn addresses, it is likely that the methods of Khatib/Legout capture the overall trend of base58 inscription counts.
These messages were originally found with: github.com/cirosantilli/bitcoin-inscription-indexer#payload-size-out-utxo-2vals which tracks the largest transactions with unspent outputs.
Bitcoin Burn Addresses: Unveiling the Permanent Losses and Their Underlying Causes later revealed many new ones.
Finding Base58 messages is intrinsically hard for a few reasons
The interesting following transactions contain base58 encoded messages on addresses, sorted chronologically, and heighlighted either due to their earliness or historical or artistic quality:
Related:
Pi bond Updated +Created
Bo Ya Updated +Created
en.wikipedia.org/w/index.php?title=Bo_Ya&oldid=1150295883#The_story_about_Zhiyin:
Bo Ya was good at playing the qin. Zhong Ziqi was good at listening to the qin. When Bo Ya's will was towards high mountains in his playing, Zhong Ziqi would say, "How towering like Mount Tai!" When Bo Ya's will was towards flowing water in his playing, Zhong Ziqi would say, "How vast are the rivers and oceans!" Whatever Bo Ya thought of Ziqi would never fail to understand. Bo Ya said, "Amazing! Your heart and mine are the same!" After Zhong Ziqi died, Bo Ya broke his Guqin because he thought that no one else can understand his music.
The Hardware of a Quantum Computer by TU Delft Updated +Created
EdX course. Meh! Just give me the YouTube list!!
But seriously, this is a valuable little list.
The course is basically exclusively about transmons.
Video 1.
The transmon qubit by Leo Di Carlo (2018)
Source. Via QuTech Academy.
Video 2.
Circuit QED by Leo Di Carlo (2018)
Source. Via QuTech Academy.
Video 3.
Measurements on transmon qubits by Niels Bultink (2018)
Source. Via QuTech Academy. I wish someone would show some actual equipment running! But this is of interest.
Video 4.
Single-qubit gate by Brian Taraskinki (2018)
Source. Good video! Basically you make a phase rotation by controlling the envelope of a pulse.
Video 5.
Two qubit gates by Adriaan Rol (2018)
Source.
Video 6.
Assembling a Quantum Processor by Leo Di Carlo (2018)
Source. Via QuTech Academy.
x86 Paging Tutorial / Hardware implementation Updated +Created
Paging is implemented by the CPU hardware itself.
Paging could be implemented in software, but that would be too slow, because every single RAM memory access uses it!
Operating systems must setup and control paging by communicating to the CPU hardware. This is done mostly via:
Processes can however make requests to the OS that cause the page tables to be modified, notably:
The kernel then decides if the request will be granted or not in a controlled manner.
CIA usage of Domains by Proxy Updated +Created
The CIA really likes this registrar, e.g.:
A Chinese Ghost Story sutra Updated +Created
Appears to be a small section from the Diamond Sutra. TODO find or create a video of it, it is just too awesome.
Pauli-X gate Updated +Created
The quantum NOT gate swaps the state of and , i.e. it maps:
As a result, this gate also inverts the probability of measuring 0 or 1, e.g.
Equation 2.
Quantum NOT gate matrix
.
Figure 1.
Quantum NOT gate symbol
. Source.
One key insight, is that the matrix of a non-trivial quantum circuit is going to be huge, and won't fit into any amount classical memory that can be present in this universe.
This is because the matrix is exponential in the number qubits, and is more than the number of atoms in the universe!
Therefore, off the bat we know that we cannot possibly describe those matrices in an explicit form, but rather must use some kind of shorthand.
But it gets worse.
Even if we had enough memory, the act of explicitly computing the matrix is not generally possible.
This is because knowing the matrix, basically means knowing the probability result for all possible outputs for each of the possible inputs.
But if we had those probabilities, our algorithmic problem would already be solved in the first place! We would "just" go over each of those output probabilities (OK, there are of those, which is also an insurmountable problem in itself), and the largest probability would be the answer.
So if we could calculate those probabilities on a classical machine, we would also be able to simulate the quantum computer on the classical machine, and quantum computing would not be able to give exponential speedups, which we know it does.
To see this, consider that for a given input, say 000 on a 3 qubit machine, the corresponding 8-sized quantum state looks like:
000 -> 1000 0000 == (1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
and therefore when you multiply it by the unitary matrix of the quantum circuit, what you get is the first column of the unitary matrix of the quantum circuit. And 001, gives the second column and so on.
As a result, to prove that a quantum algorithm is correct, we need to be a bit smarter than "just calculate the full matrix".
Which is why you should now go and read: Section "Quantum algorithm".
This type of thinking links back to how physical experiments relate to quantum computing: a quantum computer realizes a physical experiment to which we cannot calculate the probabilities of outcomes without exponential time.
So for example in the case of a photonic quantum computer, you are not able to calculate from theory the probability that photons will show up on certain wires or not.
Reflections of the Moon on Erquan Updated +Created
Composed by Abing in 1949[ref]
Video 1.
Reflections of the Moon on Erquan with erhu solo performed Song Fei
. Source.
Sex-ratio imbalance in China Updated +Created
SQL window RANGE Updated +Created
rm -f tmp.sqlite
sqlite3 tmp.sqlite "create table t (id integer, val integer)"
sqlite3 tmp.sqlite <<EOF
insert into t values
  (0, 0),
  (1, 5),
  (2, 10),
  (3, 14),
  (4, 15),
  (5, 16),
  (6, 20),
  (7, 25),
  (8, 29),
  (9, 30),
  (10, 30),
  (11, 31),
  (12, 35),
  (13, 40)
EOF
Show how many neighbours each column has with val between val - 2 and val + 2 inclusive:
sqlite3 tmp.sqlite <<EOF
SELECT id, val, COUNT(*) OVER (
  ORDER BY val RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING
) FROM t;
EOF
Output:
0|0|1
1|5|1
2|10|1
3|14|3
4|15|3
5|16|3
6|20|1
7|25|1
8|29|4
9|30|4
10|30|4
11|31|4
12|35|1
13|40|1
val - 1 and val + 1 inclusive instead:
sqlite3 tmp.sqlite <<EOF
SELECT id, val, COUNT(*) OVER (
  ORDER BY val RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING
) FROM t;
EOF
Output:
0|0|1
1|5|1
2|10|1
3|14|2
4|15|3
5|16|2
6|20|1
7|25|1
8|29|3
9|30|4
10|30|4
11|31|3
12|35|1
13|40|1
There seems to be no analogue to HAVING for window functions, so we can just settle for a subquery for once, e.g.:
sqlite3 tmp.sqlite <<EOF
SELECT * FROM (
  SELECT id, val, COUNT(*) OVER (
    ORDER BY val RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING
  ) as c FROM t
) WHERE c > 2
EOF
which outputs:
4|15|3
8|29|3
9|30|4
10|30|4
11|31|3
x86 Paging Tutorial / CAM Updated +Created
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.

There are unlisted articles, also show them or only show them.