This is where Ciro Santilli stored his code since he started coding nonstop in 2013.
He does not like the closed source aspect of it, but hey, there are more important things to worry about, the network effect is just too strong.
Small splits present in all levels due to interaction between the electron spin and the nuclear spin if it is present, i.e. the nucleus has an even number of nucleons.
As the name suggests, this energy split is very small, since the influence of the nucleus spin on the electron spin is relatively small compared to other fine structure.
TODO confirm: does it need quantum electrodynamics or is the Dirac equation enough?
The most important examples:
- hydrogen line useful in astronomy, and also the simplest possible case between 1s
- caesium standard, which is used to define the second in the International System of Units since 1967.
These are the final equations that you derive from the Lagrangian via the Euler-Lagrange equation which specify how the system evolves with time.
It is non-trivial to determine what is the smallest legal ELF file, or the smaller one that will do something trivial in Linux.
Some impressive attempts:
In this example we will consider a saner
hello world
example that will better capture real life cases.We will get into more detail later, but it is good to have it in mind now:
- section: exists before linking, in object files.One ore more sections will be put inside a single segment by the linker.Major information sections contain for the linker: is this section:
- raw data to be loaded into memory, e.g.
.data
,.text
, etc. - or metadata about other sections, that will be used by the linker, but disappear at runtime e.g.
.symtab
,.srttab
,.rela.text
- raw data to be loaded into memory, e.g.
- segment: exists after linking, in the executable file.Contains information about how each segment should be loaded into memory by the OS, notably location and permissions.
News aggregators:
Personal websites:
It is hard for complex organisms to evolve because longer DNA means longer replication time by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Because DNA replication is a key limiting factor of bacterial replication time, such organisms are therefore strongly incentivized to have very minimal DNAs.
Power, Sex, Suicide by Nick Lane (2006) 7 "Why bacteria are simple" page 169 puts this nicely:
Bacteria replicate at colossal speed. [...] In two days, the mass of exponentially doubling E. coli would be 2664 times larger than the mass of the Earth.Luckily this does not happen, and the reason is that bacteria are normally half starved. They swiftly consume all available food, whereupon their growth is limited once again by the lack of nutrients. Most bacteria spend most of their lives in stasis, waiting for a meal. Nonetheless, the speed at which bacteria do mobilize themselves to replicate upon feeding illustrates the overwhelming strength of the selection pressures at work.
The Horrible Horrendous Terrible Tremendous Mining Pool inscribed a few cute Coinbase messages during their operation in 2012-2013.
Many of their messages also mention
SockThing
, which was part of their mining infrastructure: Starting from their very first ASCII transaction on block 197602 (2012-09-07), there is what seems to be a poem spread across several transactions. Some of the lines are repeated, presumably because they didn't update the current line to a new line and so mined the same thing multiple times:The sentences are not very coherent together, perhaps this is because lines were chosen by different miners one at a time.
I am a pretty princess
covered in mud and blood
water with stuff in it
like everything else that wiggles or jiggles
screaming might not be your waY
see no reason to operate otherwise since
came into the world naked, wet and screaming
but silence will never be mine
until I am dead
but the smell will also give that away
gather all my things
load them in a big boat
airlift that to Kansas
and light it on fire
drop it from 7,000 feet
then railgun my corpse straight down
Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014) by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
Compile MicroPython code for Micro Bit locally on Ubuntu 22.04 with your own firmware by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
TODO didn't manage from source Ubuntu 22.04, their setup bitrotted way too fast... it's shameful even. Until I gave up and went for the magic Docker of + github.com/bbcmicrobit/micropython, and it bloody worked:
git clone https://github.com/bbcmicrobit/micropython
cd micropython
git checkout 7fc33d13b31a915cbe90dc5d515c6337b5fa1660
docker pull ghcr.io/carlosperate/microbit-toolchain:latest
docker run -v $(pwd):/home --rm ghcr.io/carlosperate/microbit-toolchain:latest yt target bbc-microbit-classic-gcc-nosd@https://github.com/lancaster-university/yotta-target-bbc-microbit-classic-gcc-nosd
docker run -v $(pwd):/home --rm ghcr.io/carlosperate/microbit-toolchain:latest make all
# Build one.
tools/makecombinedhex.py build/firmware.hex examples/counter.py -o build/counter.hex
cp build/counter.hex "/media/$USER/MICROBIT/"
# Build all.
for f in examples/*; do b="$(basename "$f")"; echo $b; tools/makecombinedhex.py build/firmware.hex "$f" -o "build/${b%.py}.hex"; done
The pre-Docker attempts:
sudo add-apt-repository -y ppa:team-gcc-arm-embedded
sudo apt update
sudo apt install gcc-arm-embedded
sudo apt install cmake ninja-build srecord libssl-dev
# Rust required for some Yotta component, OMG.
sudo snap install rustup
rustup default 1.64.0
python3 -m pip install yotta
The line:warns:and then the update/
sudo add-apt-repository -y ppa:team-gcc-arm-embedded
E: The repository 'https://ppa.launchpadcontent.net/team-gcc-arm-embedded/ppa/ubuntu jammy Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
sudo apt-get install gcc-arm-embedded
fails, bibliography:Attempting to install Yotta:or:was failing with:Running:did not help. Bibliography:
sudo -H pip3 install yotta
python3 -m pip install --user yotta
Exception: Version mismatch: this is the 'cffi' package version 1.15.1, located in '/tmp/pip-build-env-dinhie_9/overlay/local/lib/python3.10/dist-packages/cffi/api.py'. When we import the top-level '_cffi_backend' extension module, we get version 1.15.0, located in '/usr/lib/python3/dist-packages/_cffi_backend.cpython-310-x86_64-linux-gnu.so'. The two versions should be equal; check your installation.
python3 -m pip install --user cffi==1.15.1
From a clean virtualenv, it appears to move further, and then fails at:So we install Rust and try again, OMG:which at the time of writing was
Building wheel for cmsis-pack-manager (pyproject.toml) ... error
error: [Errno 2] No such file or directory: 'cargo'
sudo snap install rustup
rustup default stable
rustc 1.64.0
, and then OMG, it worked!! We have the yt
command.However, it is still broken, e.g.:blows up:bibliography:
git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples
git checkout 285f9acfb54fce2381339164b6fe5c1a7ebd39d5
cp source/examples/invaders/* source
yt clean
yt build
annot import name 'soft_unicode' from 'markupsafe'
Unlisted articles are being shown, click here to show only listed articles.