GitLab CI Updated 2025-07-16
JCVI-syn3.0 Updated 2025-07-16
phenomena.nationalgeographic.com/2016/04/21/we-built-the-worlds-simplest-cell-but-dunno-how-it-works/ likely talks about it.
Stuff built on top:
Marek Rosa Updated 2025-07-16
Quantum circuit Updated 2025-07-16
Serial wire debug Updated 2025-07-16
Tachyon Updated 2025-07-16
Undecidable Diophantine equation example Updated 2025-07-16
ELF Hello World Tutorial
PT_INTERP Updated 2025-07-16Contains the path to the dynamic loader, i.e.
/lib64/ld-linux-x86-64.so.2 in Ubuntu 18.10. Explained at: stackoverflow.com/questions/8040631/checking-if-a-binary-compiled-with-static/55664341#55664341 GitHub Pages Updated 2025-07-16
The cheapest and most resilient way to publish text content humanity has achieved so far.
Some tests:
- github.com/cirosantilli/jekyll-cheat: cirosantilli.com/jekyll-cheat
- github.com/cirosantilli/test-gh-pages-min: cirosantilli.com/test-gh-pages-min. Minimal version of the above.
Git tips Modify contents of an old commit in your branch Updated 2025-07-16
Before:
7 my-feature HEAD
|
6
|
5 master
|
4
|
3
|
2
|
1Oh, commit 6 was crap:
git rebase -i HEAD~2Mark
6 to be modified.After:Better now, ready to push.
7 my-feature HEAD
|
6v2
|
5 master
|
4
|
3
|
2
|
1 Markus W. Covert Updated 2025-07-16
Ciro Santilli really likes this dude, because Ciro really likes simulation.
Octokat.js Updated 2025-07-16
Sallie (FutureAI) Updated 2025-07-16
Common sense Updated 2025-07-16
My Job is to Open and Close Doors by Mattias Pilhede (2019)
Source. An interesting humorous short meditation on common sense. Cool data embedded in the Bitcoin blockchain Prayer wars Updated 2025-07-16
Starting at tx cbbaa0a64924fe1d6ace3352f23242aa0028d4e0ff6ae8ed615244d66079cfb1 (2011-08-05), Catholic Bitcoin developer Luke Dashjr started to inscribe prayers in the miner messages of his mining pool "Eligius pool", usually one verse per message.
Saint Eligius by Petrus Christus
. Source. Off-chain image for illustration. Eligius pool is named after Saint Eligius, patron of goldsmiths and miners[ref]These are some of the earliest inscriptions in the blockchain, and therefore extremelly visible.
Although the prayer verses appear contiguous in ASCII dumps, Eligius was not actually mining every block: it is just that in those early days, miners still hadn't started adding advertisement messages to every block, so only Eligius shows up and appears contiguous.
At some point, opponents noticed these messages, and started adding atheist mockery graffiti replies, which appear interspersed in ASCII dumps with the prayer.
The first prayer is the Latin version of the Divine Praises, a Catholic prayer composed in 1797 in Italian by Luigi Felici for the purpose of making reparation after saying or hearing sacrilege or blasphemy. Luke claims he was referring to anything in particular that came prior in the blockchain: twitter.com/LukeDashjr/status/1749182637569122434. There arent many earlier inscriptions at all to refer to in any case! The prayer and correspondong interrupts (in transaction outputs, not by other miners) ordered by block are:
- 139690 (2011-08-05) prayer: "Eligius/Benedictus Deus. Benedictum Nomen Sanctum eius."
- 139717 prayer: "Eligius/Benedictus Deus. Benedictum Nomen Sanctum eius.'
- 139758 interruption:
***************************************************. This is not a Coinbase message: www.blockchain.com/explorer/transactions/btc/23befff6eea3dded0e34574af65c266c9398e7d7d9d07022bf1cd526c5cdbc94. This Bitcoin input script appears to spend a standard P2PKH output, but it first adds an extra value to the stack which contains the***. - 139792 prayer: "Benedictus Iesus Christus, verus Deus et verus homo.'
- 139831 prayer: "Benedictum Nomen Iesu.'
- 139838 (2011-08-06) interruption: "I LIKE TURTLES" (tx 78eb16507b3d3df615e3b474e853db4667f4b11954ec6d918b1ded0fca7ad25a)
- 138898 prayer: "Benedictum Cor eius sacratissimum."
- 139904 prayer: "Benedictus Sanguis eius pretiosissimus."
- 139921 prayer: "Benedictus Iesus in sanctissimo altaris Sacramento."
- 139942 prayer: "Benedictus Sanctus Spiritus, Paraclitus."
- 139954 interrupion: "aC-C-C-COMBO BREAKER" (tx 138c024a76df99ecafd2236d5429cf574b7778a3c6508bd83f116c832f3c6980)
- 139960 prayer: "Benedictus Sanctus Spiritus, Paraclitus."
- 139977 prayer: "Benedicta excelsa Mater Dei, Maria sanctissima."
- 139990 (2011-08-06) prayer: "Benedicta sancta eius et immaculata Conceptio."
Then comes:and various others + output message interruptions.
- 140181 Latin Trinitarian formula
In nomine Patris et Filii et Spiritus Sancti. Amen.
- Act of Contrition
- Act of Hope
Then at last come the first miner message interruptions. Luke explained on Twitter[ref] that they were also made by Eligius pool, as there was a system in which contributors besides Luke could submit their own strings:followed by more prayers and interruptions such as tx ec92d245822fa1ff862f3314b9102f36fe1eb8bc055865674c75323540aedef6:
- 142547: (2011-08-25) tx 8e1e44a48b5e79636675d1476f8e4add075bbeb7f49e00ec743eed56f17feaaa A yandere game is starting in 60 seconds! Please type "]yandere" to join. Yandere Simulator comes to mind, but it can't be because that was pitched 2014.
- 142550: "A yandere game is starting in 60 seconds! Please type "]yandere" to join."
- 142573: (2011-08-25) "Militant atheists, bit.ly/naNhG2 -- happy now?". A Rickrolling link. Perhaps one of the fist.
- 142596: (2011-08-25) "<cjdelisle> ran out of prayers?! That explains the price drop.". Possibly quoting this dude on som twitter.com/cjdelisle Bitcoin IRC channel givesn the
<USERNAME>format? - 142640: "an de ti go su by ra me ni ko hu vy la po fy ton": Tonal system numerals. Interesting.
FFS Luke-Jr leave the blockchain alone!
Oh, and God isn't real
The last Luke prayer appears to be on block 143822 (2011-09-03)
... the Lord of the harvest, that he send forth labourers into his harvest.
Then there is a bit of radio silence, until finally Slush Pool started self advertising for the first time on block 163970 (2012-01-26):They had been mining for a long time by then (December 2010 according to en.bitcoin.it/wiki/Slush_Pool), but this is when they decided to add a human readable ASCII message as well.
/P2SH/BIP16/slush/R,From then on, miner messages would be forever polluted with ads, and Luke's multi-miner message feat would never again be reproduced.
The non-obvious interruptions are all well known memes/anime references:
- "I like turtles": knowyourmeme.com/memes/i-like-turtles
- Combo breaker: knowyourmeme.com/memes/combo-breaker
- "Yukkuri Shiteitte ne": knowyourmeme.com/memes/yukkuri-shiteitte-ne
- "kLhLUKE-JR IS A Pedophile! Oh, and God isn't real, sucka. Stop polluting the blockchain with your nonsense.", tx 9740e7d646f5278603c04706a366716e5e87212c57395e0d24761c0ae784b2c6, block 141460
- "Help me, ERINNNNNN!!": touhou.fandom.com/wiki/Lyrics:_Help_me,_ERINNNNNN!!
- "EASY MODO? How lame!F?": knowyourmeme.com/memes/kimoi-girls
Bibliography:
- 2011-08-19 bitcointalk.org/index.php?topic=38007.0 "Eligius miners aware of prayers in block headers?" from on bitcointalk.org by user "Graet" who quotes prior discussion from a Bitcoin IRC channel:<luke-jr> cosurgi: by design, it contains "random" data-- I've just been setting some of that "random" data to prayers<Graet> mm interesting luke-jr i understand you are strong in your faith but you dont think putting prayers in might alienate some ppl - after all btc is multidenominational<luke-jr> Graet: Catholics do not believe in freedom of religion.<Graet> and you make your non catholic miners aware of this?
- 2011-11-02 bitcointalk.org/index.php?topic=52979.0 "Mysterious transaction spotted in blockchain!"
E. Coli K-12 MG1655 promoter Updated 2025-07-16
E. Coli Whole Cell Model by Covert Lab Condition Updated 2025-07-16
reconstruction/ecoli/flat/condition/nutrient/minimal.tsvcontains the nutrients in a minimal environment in which the cell survives:If we compare that to"molecule id" "lower bound (units.mmol / units.g / units.h)" "upper bound (units.mmol / units.g / units.h)" "ADP[c]" 3.15 3.15 "PI[c]" 3.15 3.15 "PROTON[c]" 3.15 3.15 "GLC[p]" NaN 20 "OXYGEN-MOLECULE[p]" NaN NaN "AMMONIUM[c]" NaN NaN "PI[p]" NaN NaN "K+[p]" NaN NaN "SULFATE[p]" NaN NaN "FE+2[p]" NaN NaN "CA+2[p]" NaN NaN "CL-[p]" NaN NaN "CO+2[p]" NaN NaN "MG+2[p]" NaN NaN "MN+2[p]" NaN NaN "NI+2[p]" NaN NaN "ZN+2[p]" NaN NaN "WATER[p]" NaN NaN "CARBON-DIOXIDE[p]" NaN NaN "CPD0-1958[p]" NaN NaN "L-SELENOCYSTEINE[c]" NaN NaN "GLC-D-LACTONE[c]" NaN NaN "CYTOSINE[c]" NaN NaNreconstruction/ecoli/flat/condition/nutrient/minimal_plus_amino_acids.tsv, we see that it adds the 20 amino acids on top of the minimal condition:so we guess that"L-ALPHA-ALANINE[p]" NaN NaN "ARG[p]" NaN NaN "ASN[p]" NaN NaN "L-ASPARTATE[p]" NaN NaN "CYS[p]" NaN NaN "GLT[p]" NaN NaN "GLN[p]" NaN NaN "GLY[p]" NaN NaN "HIS[p]" NaN NaN "ILE[p]" NaN NaN "LEU[p]" NaN NaN "LYS[p]" NaN NaN "MET[p]" NaN NaN "PHE[p]" NaN NaN "PRO[p]" NaN NaN "SER[p]" NaN NaN "THR[p]" NaN NaN "TRP[p]" NaN NaN "TYR[p]" NaN NaN "L-SELENOCYSTEINE[c]" NaN NaN "VAL[p]" NaN NaNNaNin theupper moundlikely means infinite.We can try to understand the less obvious ones:ADP: TODOPI: TODOPROTON[c]: presumably a measure of pHGLC[p]: glucose, this can be seen by comparingminimal.tsvwithminimal_no_glucose.tsvAMMONIUM: ammonium. This appears to be the primary source of nitrogen atoms for producing amino acids.CYTOSINE[c]: hmmm, why is external cytosine needed? Weird.
reconstruction/ecoli/flat/reconstruction/ecoli/flat/condition/timeseries/contains sequences of conditions for each time. For example:reconstruction/ecoli/flat/reconstruction/ecoli/flat/condition/timeseries/000000_basal.tsvcontains:which means just using"time (units.s)" "nutrients" 0 "minimal"reconstruction/ecoli/flat/condition/nutrient/minimal.tsvuntil infinity. That is the default one used byrunSim.py, as can be seen from./out/manual/wildtype_000000/000000/generation_000000/000000/simOut/Environment/attributes/nutrientTimeSeriesLabelwhich contains just000000_basal.reconstruction/ecoli/flat/reconstruction/ecoli/flat/condition/timeseries/000001_cut_glucose.tsvis more interesting and contains:so we see that this will shift the conditions half-way to a condition that will eventually kill the bacteria because it will run out of glucose and thus energy!"time (units.s)" "nutrients" 0 "minimal" 1200 "minimal_no_glucose"
Timeseries can be selected with--variant nutrientTimeSeries X Y, see also: run variants.We can use that variant with:VARIANT="condition" FIRST_VARIANT_INDEX=1 LAST_VARIANT_INDEX=1 python runscripts/manual/runSim.pyreconstruction/ecoli/flat/condition/condition_defs.tsvcontains lines of form:"condition" "nutrients" "genotype perturbations" "doubling time (units.min)" "active TFs" "basal" "minimal" {} 44.0 [] "no_oxygen" "minimal_minus_oxygen" {} 100.0 [] "with_aa" "minimal_plus_amino_acids" {} 25.0 ["CPLX-125", "MONOMER0-162", "CPLX0-7671", "CPLX0-228", "MONOMER0-155"]conditionrefers to entries inreconstruction/ecoli/flat/condition/condition_defs.tsvnutrientsrefers to entries underreconstruction/ecoli/flat/condition/nutrient/, e.g.reconstruction/ecoli/flat/condition/nutrient/minimal.tsvorreconstruction/ecoli/flat/condition/nutrient/minimal_plus_amino_acids.tsvgenotype perturbations: there aren't any in the file, but this suggests that genotype modifications can also be incorporated heredoubling time: TODO experimental data? Because this should be a simulation output, right? Or do they cheat and fix doubling by time?active TFs: this suggests that they are cheating transcription factors here, as those would ideally be functions of other more basic inputs
E. Coli Whole Cell Model by Covert Lab Time series run variant Updated 2025-07-16
To modify the nutrients as a function of time, with To select a time series we can use something like:As mentioned in
python runscripts/manual/runSim.py --variant nutrientTimeSeries 25 25python runscripts/manual/runSim.py --help, nutrientTimeSeries is one of the choices from github.com/CovertLab/WholeCellEcoliRelease/blob/7e4cc9e57de76752df0f4e32eca95fb653ea64e4/models/ecoli/sim/variants/__init__.py#L5725 25 means to start from index 25 and also end at 25, so running just one simulation. 25 27 would run 25 then 26 and then 27 for example.The timeseries with index 25 is so we understand that it starts with extra amino acids in the medium, which benefit the cell, and half way through those are removed at time 1200s = 20 minutes. We would therefore expect the cell to start expressing amino acid production genes exactly at that point.
reconstruction/ecoli/flat/condition/timeseries/000025_cut_aa.tsv and contains"time (units.s)" "nutrients"
0 "minimal_plus_amino_acids"
1200 "minimal"nutrients likely means condition in that file however, see bug report with 1 1 failing: github.com/CovertLab/WholeCellEcoliRelease/issues/24When we do this the simulation ends in:so we see that the doubling time was faster than the one with minimal conditions of
Simulation finished:
- Length: 0:34:23
- Runtime: 0:08:030:42:49, which makes sense, since during the first 20 minutes the cell had extra amino acid nutrients at its disposal.The output directory now contains simulation output data under
out/manual/nutrientTimeSeries_000025/. Let's run analysis and plots for that:python runscripts/manual/analysisVariant.py &&
python runscripts/manual/analysisCohort.py --variant 25 &&
python runscripts/manual/analysisMultigen.py --variant 25 &&
python runscripts/manual/analysisSingle.py --variant 25We can now compare the outputs of this run to the default
wildtype_000000 run from Section "Install and first run".out/manual/plotOut/svg_plots/massFractionSummary.svg: because we now have two variants in the sameout/folder,wildtype_000000andnutrientTimeSeries_000025, we now see a side by side comparision of both on the same graph!The run variant where we started with amino acids initially grows faster as expected, because the cell didn't have to make it's own amino acids, so growth is a bit more efficient.
The following plots from under
out/manual/wildtype_000000/000000/{generation_000000,nutrientTimeSeries_000025}/000000/plotOut/svg_plots have been manually joined side-by-side with:for f in out/manual/wildtype_000000/000000/generation_000000/000000/plotOut/svg_plots/*; do
echo $f
svg_stack.py \
--direction h \
out/manual/wildtype_000000/000000/generation_000000/000000/plotOut/svg_plots/$(basename $f) \
out/manual/nutrientTimeSeries_000025/000000/generation_000000/000000/plotOut/svg_plots/$(basename $f) \
> tmp/$(basename $f)
doneAmino acid counts
. Source. aaCounts.svg:- default: quantities just increase
- amino acid cut: there is an abrupt fall at 20 minutes when we cut off external supply, presumably because it takes some time for the cell to start producing its own
External exchange fluxes of amino acids
. Source. aaExchangeFluxes.svg:- default: no exchanges
- amino acid cut: for all graphs except phenylalanine (PHE), either the cell was intaking the AA (negative flux), and that intake goes to 0 when the supply is cut, or the flux is always 0.
mRNA count of highly expressed mRNAs
. Source. From file expression_rna_03_high.svg. Each of the entries is a gene using the conventional gene naming convention of xyzW, e.g. here's the BioCyc for the first entry, tufA: biocyc.org/gene?orgid=ECOLI&id=EG11036, which comments Elongation factor Tu (EF-Tu) is the most abundant protein in E. coli.
External exchange fluxes
. Source. mediaExcange.svg: this one is similar to aaExchangeFluxes.svg, but it also tracks other substances. The color version makes it easier to squeeze more substances in a given space, but you lose the shape of curves a bit. The title seems reversed: red must be excretion, since that's where glucose (GLC) is.The substances are different between the default and amino acid cut graphs, they seem to be the most exchanged substances. On the amino cut graph, first we see the cell intaking most (except phenylalanine, which is excreted for some reason). When we cut amino acids, the uptake of course stops.
ELF Hello World Tutorial
SHT_NULL Updated 2025-07-16In index 0,
SHT_NULL is mandatory. Are there any other uses for it: stackoverflow.com/questions/26812142/what-is-the-use-of-the-sht-null-section-in-elf ? GitLab cookbook Updated 2025-07-16
Unlisted articles are being shown, click here to show only listed articles.
