.rel.text Updated +Created
Besides sh_type == SHT_RELA, there also exists SHT_REL, which would have section name .text.rel (not present in this object file).
Those represent the same struct, but without the addend, e.g.:
typedef struct {
    Elf64_Addr  r_offset;
    Elf64_Xword r_info;
} Elf64_Rela;
The ELF standard says that in many cases the both can be used, and it is just a matter of convenience.
Erik Finman thinks school is broken Updated +Created
archive.ph/fYpC1
The way the education system is structured now, I wouldn't recommend it, It doesn't work for anyone. I would recommend the Internet, which is all free. You can learn a million times more off YouTube and Wikipedia.
BrainSimII Updated +Created
The video from futureai.guru/technologies/brian-simulator-ii-open-source-agi-toolkit/ shows a demo of the possibly non open source version. They have a GUI neuron viewer and editor, which is kind of cool.
Video 1.
Machine Learning Is Not Like Your Brain by Charles Simon (2022)
Source.
Sallie (FutureAI) Updated +Created
Not having a manipulator claw is a major issue with this one.
But they also have a co-simulation focus, which is a bit of a win.
Modify contents of an old commit in your branch Updated +Created
Before:
7 my-feature HEAD
|
6
|
5 master
|
4
|
3
|
2
|
1
Oh, commit 6 was crap:
git rebase -i HEAD~2
Mark 6 to be modified.
After:
7 my-feature HEAD
|
6v2
|
5 master
|
4
|
3
|
2
|
1
Better now, ready to push.
Note: history changes change all commits SHAs. All parents are considereEven time is considered. So is commit message/author. And obviously file contents. So now commit "7" will actually have a different SHA.
GitHub Pages Updated +Created
Octokat.js Updated +Created
Encrypted data Updated +Created
Transactions such as tx fe37c7eee73be5fda91068dbe0eb74a68495a3fc7185712b8417032db7fc9c5e (2015-01-15) starting with
U2FsdGVkX1/4iSjLxQ5epo8eRSCOQLGgAsn1CucGii27k8ZyC7Jz6wxhYcevVmxi
6Q4ZFN04WDN0UhKqYardgQf26oeBMURupduDd0ZozxlgMrBkFOCaARqU7RABVWDO
/ruPUcOY0VC8p4lrMNqSdqvN7y6OWwOSH3c0duumZfFNZs9+BbtKCxtaqR5+RkUI
are Base64 encoded. Running them through base64 -d leads to starting output bytes Salted__ which as mentioned at security.stackexchange.com/questions/124312/decrypting-binary-code-from-a-base64-string is OpenSSL encrypted data. So hwerever we see the start:
U2FsdGVkX1/
we might as well give up. That string appears 26 times in our data currently, between 6c091e6152b83ec0df8d0d87c7c5f3da72a3328ed3a5d91768ba0ab899c16b9d (2014-09-28) and 84189c82995db355e92e37f8cfe8a9274e9a5d157f1f1658067672e707469a09 (2019-07-06)
The following via cryptograffiti.info get marked by file as "openssl enc'd data with salted password, Base64 encoded":
  • ad3d8a0a5d57114b1780341cb5104284f029bb01b1b3558f7c7b9ce51eb67e18
  • 1cd0c631f444d664601468f644b70e0166019a54d8678de51310139b6c8b2bd7
  • ccc3fb2c9cb1c640b76645a8658693066fd63433ab17c318691ad5bd62601c0e
  • e6eb0cb8268a9b3d012d2957b32d4b28ccc3317593f54f4bfe4b387326588bd2
  • c40e322b198b715accc4a67fad244ed131b8cef0785070e06d10d56c4ab389f2
  • 37a261ac6dbf59e3c9673a22028bcdbdd08926a9d32134ab8fba0897f6dcd196
  • f1aa516fe00ec2156f16fcb9da422f6cbcd141e8e58c895d8bc37b4ad2fd714e
  • 7faf29c7dd7d9cc6d099c262f7ec7edd7fc768276482ad66ceefdd814f1d38ab
  • 69cac244051661cc0b8b08905af5ab312a1282b68c932e5d1e3c46ad47ff0f7a
  • 1773c39f844951b7169dc34aa0c72aa7b43cae6a103ed1223527ef0f4deec2a9
  • b1d4bf3fc46e63c995ad4299f3576340077bc810dfa5c502d1c068460d54bc98
  • a52625837741902e1dd24de3dbd3b948d6e0907ad3fc957c13cdf53fa2c3b9ac
  • 4ca742813eaccef009e24e92150dda06540c2ac81782f1569b1ebb3179a413d2
  • 6c3bab5fc6e6352c62a16ab0f47394845aa41a2c0b25e1a1073a4aeac150e03d
  • 20b8feef3d293a0dd79e3c169fceb1217465502a523acbab903a7eb0cd183709
  • b7863215b99567bc9e71155b13f3c5f26d15eac52493ee2e834129460ffd2aec
  • 2c8961a64bb11d5855790085f51007273467f7ef862137215c9f1d958dcb6c57
  • bed542957bdd8f644a4fcd671a8c66a5cc5d6168f9fa60d37177703e77558eee
  • 3e45af9d828754d5a38c86636a070610f6e828482718c4a597d272d41a3e31fa
  • a13af4817e85cacce3cfb445001e2fb2f56cdc30f78348fd2580bf8f4c84dc55
  • 87a10f6bc65a08067b2544e46be00d4af62c0cfed3ae0b165d5eedaff09d81da
  • ef55826befabbe9dcd44d87fc385d600dd4c4cba3346cde53d8c591960e9b4dc
  • 5d30f63131dcf2b4d001b4ab530e18cc6ff8ffd16cade055ff4587a59b84e420
  • 8a75514829b6e30b9fea434eef77b1589ff3f4bdfc0056bd087efbfb8314eb59
  • e2be1062c9d43cc6ed43de6f7a40c728d2d92ed0325abde24ff3300cf3ae136a
  • 8fe5c2679237e36c74fda04bb083f732c4afdd06af81121b1d7b4d5bd677135f
  • 7f099f094d8d51105d8655253d45ebddf1c88b9e138c302a65d2878a237e620c
  • 0fc4b3a305e2a7faa2e7d9c2f23d23d626e9e75f1f2a37133f283334b314645b
  • 933b321e7b7144ed5e4e1750f944be9ed10293633d9b288bf05febdeb9dc40a3
  • 6215486bc024dea7991b142e50e111c4063e1db4a867514612b8e794b8ef5635
  • fc0613e11269962d97373b10e310f451fb76c7bb477ba1afb45773c44851e9ed
  • ab51d2c037b4625394c68706da83c26bad751018d2a3e377a51988bd8ee18647
  • 7ca9b337172f4feff67a0ecbfbd76798265e08c6ebe989a319883c695d756247
  • 0f0b477e456dcf286d7262497bcd5b3b6a3ce89f81761c2f59ff702539ab6183
  • a320152fd59426c8853dd781db9d682f89755953b39a653f9e9c9628a5fce7fb
  • e96221da774fb52d24dda1b83b14c99085eb4befac64691722c56eb750562d68
  • a7a5ca68dd340dd42bd5c91e0febe68e5fd2fb993da2992661183eaafe8ad89e
  • 64e9d95e2333cfd155506199c8d926649e63a98dbc83c1221b8dd1580937b942
blockchain.news/news/mysterious-bitcoin-inscriptions-a-puzzle-in-raw-binary-data mentions a huge 9 MB Ordinal ruleset inscription that no-one managed to decode, and so people suspect is encrypted data. Seems to be split across transactions, starting at fed7de7fb75a3fe3c1acbbd8e19a4c540fb368474c8834e4ddb1d5bab764a767
Prayer wars Updated +Created
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.
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:
  • 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.
followed by more prayers and interruptions such as tx ec92d245822fa1ff862f3314b9102f36fe1eb8bc055865674c75323540aedef6:
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):
/P2SH/BIP16/slush/R,
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.
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:
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-2 bitcointalk.org/index.php?topic=52979.0 "Mysterious transaction spotted in blockchain!"
DeepMind Lab2D vs gvgai Updated +Created
At twitter.com/togelius/status/1328404390114435072 called out on DeepMind Lab2D for not giving them credit on prior work!
This very much looks like like GVGAI which was first released in 2014, been used in dozens (maybe hundreds) of papers, and for which one of the original developers was Tom Schaul at DeepMind...
As seen from web.archive.org/web/20220331022932/http://gvgai.net/ though, DeepMind sponsored them at some point.
AlphaGo Updated +Created
E. Coli K-12 MG1655 promoter Updated +Created
From this we see that there is a convention of naming promoters as protein name + p, e.g. the first gene in E. Coli K-12 MG1655 promoter thrLp encodes protein thrL.
It is also possible to add numbers after the p, e.g. at biocyc.org/ECOLI/NEW-IMAGE?type=OPERON&object=PM0-45989 we see that the protein zur has two promoters:
  • zurp6
  • zurp7
TODO why 6 and 7? There don't appear to be 1, 2, etc.
Time series run variant Updated +Created
To modify the nutrients as a function of time, with To select a time series we can use something like:
python runscripts/manual/runSim.py --variant nutrientTimeSeries 25 25
As mentioned in python runscripts/manual/runSim.py --help, nutrientTimeSeries is one of the choices from github.com/CovertLab/WholeCellEcoliRelease/blob/7e4cc9e57de76752df0f4e32eca95fb653ea64e4/models/ecoli/sim/variants/__init__.py#L57
25 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 reconstruction/ecoli/flat/condition/timeseries/000025_cut_aa.tsv and contains
"time (units.s)" "nutrients"
0 "minimal_plus_amino_acids"
1200 "minimal"
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.
nutrients likely means condition in that file however, see bug report with 1 1 failing: github.com/CovertLab/WholeCellEcoliRelease/issues/24
When we do this the simulation ends in:
Simulation finished:
 - Length: 0:34:23
 - Runtime: 0:08:03
so we see that the doubling time was faster than the one with minimal conditions of 0: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 25
We 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 same out/ folder, wildtype_000000 and nutrientTimeSeries_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.
    Then, at 20 minutes, which is about 0.3 hours, we see that the cell starts growing a bit less fast as the slope of the curve decreases a bit, because we removed that free amino acid supply.
    Figure 1.
    Minimal condition vs amino acid cut mass fraction plot
    . Source. From file out/manual/plotOut/svg_plots/massFractionSummary.svg.
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)
done
Figure 2.
Amino 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
Figure 3.
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.
    For PHE however, the flux is at all times, except shortly after the cut. Why? And why there was no excretion on the default conditions?
Figure 4.
Evaluation time
. Source. evaluationTime.svg: this has nothing to do with biology, but it is rather a profile of the program runtime. We can see that the simulation gets slower and slower as time passes, presumably because there are more and more molecules to simulate.
Figure 5.
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.
and
In E. coli, EF-Tu is encoded by two genes, tufA and tufB
. What they seem to mean is that tufA and tufB are two similar molecules, either of which can make up the EF-Tu of the E. Coli, which is an important part of translation.
Figure 6.
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.
Condition Updated +Created
  • reconstruction/ecoli/flat/condition/nutrient/minimal.tsv contains the nutrients in a minimal environment in which the cell survives:
    "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 NaN
    If we compare that to reconstruction/ecoli/flat/condition/nutrient/minimal_plus_amino_acids.tsv, we see that it adds the 20 amino acids on top of the minimal condition:
    "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 NaN
    so we guess that NaN in the upper mound likely means infinite.
    We can try to understand the less obvious ones:
    • ADP: TODO
    • PI: TODO
    • PROTON[c]: presumably a measure of pH
    • GLC[p]: glucose, this can be seen by comparing minimal.tsv with minimal_no_glucose.tsv
    • AMMONIUM: 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.tsv contains: "time (units.s)" "nutrients" 0 "minimal" which means just using reconstruction/ecoli/flat/condition/nutrient/minimal.tsv until infinity. That is the default one used by runSim.py, as can be seen from ./out/manual/wildtype_000000/000000/generation_000000/000000/simOut/Environment/attributes/nutrientTimeSeriesLabel which contains just 000000_basal. * reconstruction/ecoli/flat/reconstruction/ecoli/flat/condition/timeseries/000001_cut_glucose.tsv is more interesting and contains:
      "time (units.s)" "nutrients"
      0 "minimal"
      1200 "minimal_no_glucose"
      
    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!
    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.py
      
  • reconstruction/ecoli/flat/condition/condition_defs.tsv contains 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"]
    • condition refers to entries in reconstruction/ecoli/flat/condition/condition_defs.tsv
    • nutrients refers to entries under reconstruction/ecoli/flat/condition/nutrient/, e.g. reconstruction/ecoli/flat/condition/nutrient/minimal.tsv or reconstruction/ecoli/flat/condition/nutrient/minimal_plus_amino_acids.tsv
    • genotype perturbations: there aren't any in the file, but this suggests that genotype modifications can also be incorporated here
    • doubling 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
Common sense Updated +Created
Video 1.
My Job is to Open and Close Doors by Mattias Pilhede (2019)
Source. An interesting humourous short meditation on common sense.
Instrumental goal Updated +Created
SHT_NULL Updated +Created
In 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 ?
Pull request Updated +Created
The heart/main innovation of GitHub!

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