Phanerozoic Updated +Created
The term "visible life" refers to multicellular from before people knew there was life in the proterozoic.
Post filtration purification Updated +Created
After filtration, all DNA should present in the filter, so we cut the paper up with scissors and put the pieces into an Eppendorf: Video 1. "Cutting vacuum pump filter and placing it in Eppendorf".
Video 1.
Cutting vacuum pump filter and placing it in Eppendorf
. Source.
Now that we had the DNA in Eppendorfs, we were ready to continue the purification in a simpler and more standardized lab pipeline fashion.
First we added some small specialized beads and chemicals to the water and shook them Eppendorfs hard in a Scientific Industries Inc. Vortex-Genie 2 machine to break the cell and free the DNA.
Once that was done, we added several reagents which split the solution into two phases: one containing the DNA and the other not. We would then pipette the phase with the DNA out to the next Eppendorf, and continue the process.
In one step for example, the DNA was present as a white precipitate at the bottom of the tube, and we threw away the supernatant liquid: Figure 1. "White precipitate formed with Qiagen DNeasy PowerWater Kit".
Figure 1.
White precipitate formed with Qiagen DNeasy PowerWater Kit
. Source.
At various stages, centrifuging was also necessary. Much like the previous vacuum pump step, this adds extra gravity to speed up the separation of phases with different molecular masses.
In our case, we used a VWR Micro Star 17 microcentrifuge for those steps:
Figure 2.
VWR Micro Star 17 microcentrifuge.
Source.
Figure 3.
VWR Micro Star 17 microcentrifuge loading.
Source.
Then, when we had finally finished all the purification steps, we measured the quantity of DNA with a Biochrom SimpliNano spectrophotometer to check that the purification went well:
Figure 4.
Biochrom SimpliNano spectrophotometer loading sample.
Source.
Figure 5.
Biochrom SimpliNano spectrophotometer result readout.
Source.
And because the readings were good, we put it in our -20 C fridge to preserve it until the second day of the workshop and called it a day:
Figure 6.
Minus 20 fridge storing samples.
Source.
Ciro Santilli's open source contributions Updated +Created
This is mostly stuff from before 2016 when Ciro was anxious to document his contributions to get a job.
Most of the projects here are also minor contributions, or Ciro later noticed that the projects were not useful enough to work on and that he was actually wasting his time.
Len Sassaman tribute Updated +Created
Tribute to computer security researcher Len Sassaman, who killed himself on 2011-07-03, starting with an ASCII art portrait followed by text.
Because it comes so early in the blockchain, and because it is the first ASCII art on the blochain as far as we can see, and because is so well done, this is by far the most visible ASCII art of the Bitcoin blockchain.
Transaction: www.blockchain.com/btc/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72 from 2011-07-30, a few weeks after the suicide.
Created by famous computer security researcher Dan Kaminsky and Travis Goodspeed, presumably this other security researcher, evidence:
"Bernanke" is a reference to Ben Bernanke, who was one of the economists in power in the US Government during the financial crisis of 2007-2008, and much criticized by some, as shown for example in the documentary Inside Job (2010). As hinted in the Genesis block message, the United States Government bailed out many big banks that were going to go bankrupt with taxpayer money, even though it was precisly those banks that had started the crisis through their reckless investment, thus violating principles of the free market and business accountability. This was one of the motivations for the creation Bitcoin, which could reduce government power over economic policy.
It is worth mentioning that there do exist some slightly earlier "artistic" inscriptions in the form Punycode inscription in the Namecoin blockchain, but as far as we've seen, the are all trivial compared to BitLen in terms of artistic value/size.
---BEGIN TRIBUTE---
#./BitLen
:::::::::::::::::::
:::::::.::.::.:.:::
:.: :.' ' ' ' ' : :
:.:'' ,,xiW,"4x, ''
:  ,dWWWXXXXi,4WX,
' dWWWXXX7"     `X,
 lWWWXX7   __   _ X
:WWWXX7 ,xXX7' "^^X
lWWWX7, _.+,, _.+.,
:WWW7,. `^"-" ,^-'
 WW",X:        X,
 "7^^Xl.    _(_x7'
 l ( :X:       __ _
 `. " XX  ,xxWWWWX7
  )X- "" 4X" .___.
,W X     :Xi  _,,_
WW X      4XiyXWWXd
"" ,,      4XWWWWXX
, R7X,       "^447^
R, "4RXk,      _, ,
TWk  "4RXXi,   X',x
lTWk,  "4RRR7' 4 XH
:lWWWk,  ^"     `4
::TTXWWi,_  Xll :..
=-=-=-=-=-=-=-=-=-=
LEN "rabbi" SASSAMA
     1980-2011
Len was our friend.
A brilliant mind,
a kind soul, and
a devious schemer;
husband to Meredith
brother to Calvin,
son to Jim and
Dana Hartshorn,
coauthor and
cofounder and
Shmoo and so much
more.  We dedicate
this silly hack to
Len, who would have
found it absolutely
hilarious.
--Dan Kaminsky,
Travis Goodspeed
P.S.  My apologies,
BitCoin people.  He
also would have
LOL'd at BitCoin's
new dependency upon
   ASCII BERNANKE
:'::.:::::.:::.::.:
: :.: ' ' ' ' : :':
:.:     _.__    '.:
:   _,^"   "^x,   :
'  x7'        `4,
 XX7            4XX
 XX              XX
 Xl ,xxx,   ,xxx,XX
( ' _,+o, | ,o+,"
 4   "-^' X "^-'" 7
 l,     ( ))     ,X
 :Xx,_ ,xXXXxx,_,XX
  4XXiX'-___-`XXXX'
   4XXi,_   _iXX7'
  , `4XXXXXXXXX^ _,
  Xx,  ""^^^XX7,xX
W,"4WWx,_ _,XxWWX7'
Xwi, "4WW7""4WW7',W
TXXWw, ^7 Xk 47 ,WH
:TXXXWw,_ "), ,wWT:
::TTXXWWW lXl WWT:
----END TRIBUTE----
Figure 1.
Len Sassaman (2010)
Source. Reference image from Wikipedia for the ASCII art.
Figure 2.
Official portrait of Ben Bernanke (2008)
Source. Reference image from Wikipedia for the ASCII art.
Video 1.
Black OPS of TCP/IP by Dan Kaminsky (2011)
Source. Presented at the BlackHat 2011 conference. Dan unveils the Len memorial at the given timestamp around 8:41. The presentation was done on 2011-08-03 or 04, so very few days after the upload to the blockchain.
From the JSON transaction we understand the encoding format:
   "out":[
      {
         "spent":false,
         "tx_index":0,
         "type":0,
         "addr":"1CqKQ2EqUscMkeYRFMmgepNGtfKynXzKW7",
         "value":1000000,
         "n":0,
         "script":"76a91481ccb4ee682bc1da3bda70176b7ccc616a6ba9da88ac"
      },
      {
         "spent":false,
         "tx_index":0,
         "type":0,
         "addr":"157sXa7duStAvq3dPLWe7J449sgh47eHzw",
         "value":1000000,
         "n":1,
         "script":"76a9142d2d2d424547494e20545249425554452d2d2d2088ac"
      },
...
      {
         "spent":false,
         "tx_index":0,
         "type":0,
         "addr":"157sXYpjvAyEJ6TdVFaVzmoETAQnHB6FGU",
         "value":1000000,
         "n":77,
         "script":"76a9142d2d2d2d454e4420545249425554452d2d2d2d2088ac"
      }
So it is really encoded one line at a time in the script of the transaction outputs.
Technically interesting ordinal Updated +Created
This section is about ordinals that are interesting primarily due to technical reasons linked to edge cases of the protocol.
Interesting MIME types:
Different ord markers:
  • 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5 uses takingnames. Decode with:
    bitcoin-core.cli decodescript "$(bitcoin-core.cli getrawtransaction 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5 true | jq -r '.vin[0].txinwitness[1]')" | jq -r .asm | sed 's/.* 0 //;s/ OP_ENDIF//;s/ //g' | xxd -r -p > 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5.png
    gives the PNG of the wireframe draing of a washing machine with transparent background.
Ciro Santilli's psychology Updated +Created
Stereochemistry Updated +Created
Molecules that are the same if you just look at "what atom is linked to what atom", they are only different if you consider the relative spacial positions of atoms.
Charity school Updated +Created
United States Armed Forces Updated +Created
Stone garden Updated +Created
The literal Chinese name says it all: "Fake Mountain". The stones evoke the feeling of the beautiful rock mountains of China.
The term "奇石假山" (qi2 shi2 jia3 shan1, lit. "weird shaped stone fake mountain") is also used, almost as a synonym by many people, since the stones are often chose in interesting shapes. Choosing the right stone is basically an art form in itself.
The stones used are generally limestone, which as a sedimentary rock is weaker, and more likely to be eroded into interesting shapes.
The best Chinese traditional instrumental music Updated +Created
Video 1.
High Mountain and Flowing Water performed on the guzheng by Xiang SiHua (2000)
Source.
Video 2.
Suwu herding sheep performed on the erhu by Song Fei (2017)
Source.
Video 3.
Ambush from ten sides performed on the pipa by Jiaju Shen (2017)
Source.
Video 6.
Wang Jin beats Gao Qiu theme music from The Water Margin featuring a suona solo
. Source.
sqlite3 Node.js package Updated +Created
Includes its own copy of sqlite3, you don't use the system one, which is good to ensure compatibility. The version is shown at: github.com/mapbox/node-sqlite3/blob/918052b538b0effe6c4a44c74a16b2749c08a0d2/deps/common-sqlite.gypi#L3 SQLite source is tracked compressed in-tree: github.com/mapbox/node-sqlite3/blob/918052b538b0effe6c4a44c74a16b2749c08a0d2/deps/sqlite-autoconf-3360000.tar.gz horrendous. This explains why it takes forever to clone that repository. People who don't believe in git submodules, there's even an official Git mirror at: github.com/sqlite/sqlite
It appears to spawn its own threads via its C extension (since JavaScript is single threaded and and SQLite is not server-based), which allows for parallel queries using multiple threads: github.com/mapbox/node-sqlite3/blob/v5.0.2/src/threading.h
Hello world example: nodejs/node-sqlite3/index.js.
As of 2021, this had slumped back a bit, as maintainers got tired. Unmerged pull requests started piling more, and better-sqlite3 Node.js package started pulling ahead a little.
Filtration with vacuum pump Updated +Created
The first thing we did was to filter the water samples with a membrane filter that is so fine that not even bacteria can pass through, but water can.
Therefore, after filtration, we would have all particles such as bacteria and larger dirt pieces in the filter.
From the 1 liter in each bottle, we only used 400 ml because previous experiments showed that filtering the remaining 600 ml is very time consuming because the membrane filter gets clogged up.
Therefore, the filtration step allows us to reduce those 400 ml volumes to more manageable Eppendorf tube volumes: Figure 1. "An Eppendorf tube". Reagents are expensive, and lab bench centrifuges are small!
Figure 1. . Source. They are small, convenient and disposable.
Figure 2.
Labelled Eppendorf tubes on a rack
. Source.
Since the filter is so fine, filtering by gravity alone would take forever, and so we used a vacuum pump to speed thing up!
Figure 3.
Peeling the vacuum pump filter protection peel before usage
. Source.
Figure 4.
Placing the vacuum pump filter
. Source.
Video 1.
Pouring the water sample into the vacuum tube and turning on the vacuum pump
. Source.
Year 3 of the physics course of the University of Oxford Updated +Created
5660d06bd69326c18ec63127b37fb3b32ea763c3846b3334c51beb6a800c57d3 Updated +Created
In this malformed Coinbase transaction, the mining pool "nicehash" produced a provably unspendable Bitcoin output script due to a bug, and therefore lost most of the entire block reward of 6.25 BTC then worth about $ 123,000.
The output is unspendable because it ends in a constant 0, the disassembly of the first and main output is this series of constants:
0 017fed86bba5f31f955f8b316c7fb9bd45cb6cbc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
and for the second smaller one:
aa21a9ed62ec16bf1a388c7884e9778ddb0e26c0bf982dada47aaa5952347c0993da 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
the third one being an OP_RETURN message.
Legendre's three-square theorem Updated +Created
Nelson-Mandela.jpg Updated +Created
Figure 1.
Nelson-Mandela.jpg
. Source. Message:
"There is nothing like returning to a place that remains unchanged to find the ways in which you yourself have altered." - Nelson Mandela Nelson Rolihlahla Mandela was a South African anti-apartheid revolutionary, politician and philanthropist who served as President of South Africa from 1994 to 1999. - Wikipedia Born: July 18, 1918, Mvezo, South Africa Died: December 5, 2013.
Ciro Santilli's ideal city to live in Updated +Created
Ciro's ideal city to live in contains the following in order of decreasing importance:
Could California be Ciro's Mecca?
PostgreSQL GIST Updated +Created
The highly underdocumented built-in module, that supports SQL spatial index and a lot more.
Quite horrendous as it only seems to work on geometric types and not existing columns. But why.
And it uses custom operatores, where standard operators would have been just fine for points...
Minimal runnable example with points:
set -x
time psql -c 'drop table if exists t'
time psql -c 'create table t(p point)'
time psql -c "insert into t select (point ('(' || generate_series || ',' || generate_series || ')')) from generate_series(1, 10000000)"
time psql -c 'create index on t using gist(p)'
time psql -c "select count(*) from t where p <@ box '(1000000,1000000),(9000000,2000000)'"
The index creation unfortunately took 100s, so it will not scale to 1B points very well whic his a shame.
77822fd6663c665104119cb7635352756dfc50da76a92d417ec1a12c518fad69 Updated +Created
Ouptut 0 disassembles as:
OP_IF OP_INVALIDOPCODE 4effffffff <large constant> OP_ENDIF
The large constant contains an ASCII Bitcoin Core patch entitled Remove (SINGLE|DOUBLE)BYTE so presumably this is a proof of concept:
From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshin@gmx.com>
Date: Mon, 12 Aug 2013 02:28:02 -0200
Subject: [PATCH] Remove (SINGLE|DOUBLE)BYTE

I removed this from Bitcoin in f1e1fb4bdef878c8fc1564fa418d44e7541a7e83
in Sept 7 2010, almost three years ago. Be warned that I have not
actually tested this patch.
---
 backends/bitcoind/deserialize.py |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/backends/bitcoind/deserialize.py b/backends/bitcoind/deserialize.py
index 6620583..89b9b1b 100644
--- a/backends/bitcoind/deserialize.py
+++ b/backends/bitcoind/deserialize.py
@@ -280,10 +280,8 @@ opcodes = Enumeration("Opcodes", [
     "OP_WITHIN", "OP_RIPEMD160", "OP_SHA1", "OP_SHA256", "OP_HASH160",
     "OP_HASH256", "OP_CODESEPARATOR", "OP_CHECKSIG", "OP_CHECKSIGVERIFY", "OP_CHECKMULTISIG",
     "OP_CHECKMULTISIGVERIFY",
-    ("OP_SINGLEBYTE_END", 0xF0),
-    ("OP_DOUBLEBYTE_BEGIN", 0xF000),
     "OP_PUBKEY", "OP_PUBKEYHASH",
-    ("OP_INVALIDOPCODE", 0xFFFF),
+    ("OP_INVALIDOPCODE", 0xFF),
 ])
 
 
@@ -293,10 +291,6 @@ def script_GetOp(bytes):
         vch = None
         opcode = ord(bytes[i])
         i += 1
-        if opcode >= opcodes.OP_SINGLEBYTE_END and i < len(bytes):
-            opcode <<= 8
-            opcode |= ord(bytes[i])
-            i += 1
 
         if opcode <= opcodes.OP_PUSHDATA4:
             nSize = opcode
-- 
1.7.9.4
bitcointalk.org/index.php?topic=5231222.0 discusses what happens if there is an invalid opcode in a branch that is not taken.

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