Just like a classic programmer does not need to understand the intricacies of how transistors are implemented and CMOS semiconductors, the quantum programmer does not understand physical intricacies of the underlying physical implementation.
For this reason programming a quantum computer is much like programming a classical combinatorial circuit as you would do with SPICE, verilog-or-vhdl, in which you are basically describing a graph of gates that goes from the input to the output
For this reason, we can use the words "program" and "circuit" interchangeably to refer to a quantum program
Also remember that and there is no no clocks in combinatorial circuits because there are no registers to drive; and so there is no analogue of clock in the quantum system either,
Another consequence of this is that programming quantum computers does not look like programming the more "common" procedural programming languages such as C or Python, since those fundamentally rely on processor register / memory state all the time.
Quantum programmers can however use classic languages to help describe their quantum programs more easily, for example this is what happens in Qiskit, where you write a Python program that makes Qiskit library calls that describe the quantum program.
BB84 by Ciro Santilli 37 Updated 2025-07-16
Does not require entangled particles, unlike E91 which does.
en.wikipedia.org/w/index.php?title=Quantum_key_distribution&oldid=1079513227#BB84_protocol:_Charles_H._Bennett_and_Gilles_Brassard_(1984) explains it well. Basically:
  • Alice and Bob randomly select a measurement basis of either 90 degrees and 45 degrees for each photon
  • Alice measures each photon. There are two possible results to either measurement basis: parallel or perpendicular, representing values 0 or 1. TODO understand better: weren't the possible results supposed to be pass or non-pass? She writes down the results, and sends the (now collapsed) photons forward to Bob.
  • Bob measures the photons and writes down the results
  • Alice and Bob communicate to one another their randomly chosen measurement bases over the unencrypted classic channel.
    This channel must be authenticated to prevent man-in-the-middle. The only way to do this authentication that makes sense is to use a pre-shared key to create message authentication codes. Using public-key cryptography for a digital signature would be pointless, since the only advantage of QKD is to avoid using public-key cryptography in the first place.
  • they drop all photons for which they picked different basis. The measurements of those which were in the same basis are the key. Because they are in the same basis, their results must always be the same in an ideal system.
  • if there is an eavesdropper on the line, the results of measurements on the same basis can differ.
    Unfortunately, this can also happen due to imperfections in the system.
    Alice and Bob must decide what level of error is above the system's imperfections and implies that an attacker is listening.
Quantum chromodynamics by Ciro Santilli 37 Updated 2025-07-16
Video 1.
Quarks, Gluon flux tubes, Strong Nuclear Force, & Quantum Chromodynamics by Physics Videos by Eugene Khutoryansky (2018)
Source. Some decent visualizations of how the field lines don't expand out like they do in electromagnetism, suggesting color confinement.
Video 2.
PHYS 485 Lecture 6: Feynman Diagrams by Roger Moore (2016)
Source. Despite the title, this is mostly about QCD.
Video 1.
The 1890 US Census and the history of punchcard computing by Stand-up Maths (2020)
Source. It was basically a counting machine! Shows a reconstruction at the Computer History Museum.
A good project to see UARTs at work in all their beauty is to connect two Raspberry Pis via UART, and then:
Part of the beauty of this is that you can just connect both boards directly manually with a few wire-to-wire connections with simple jump wire. Its simplicity is just quite refreshing. Sure, you could do something like that for any physical layer link presumably...
Remember that you can only have one GNU screen connected at a time or else they will mess each other up: unix.stackexchange.com/questions/93892/why-is-screen-is-terminating-without-root/367549#367549
On Ubuntu 22.04 you can screen without sudo by adding yourself to the dialout group with:
sudo usermod -a -G dialout $USER

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