taltman1
"A paper written with Ronen Gradwohl on Lisp and Symbolic Functionality in an Excel Spreadsheet: Development of an OLE Scientific Computing Environment, August, 2002. (code available on request) "
https://github.com/eduardoboucas/staticman
Just uses Git(Hub|Lab) to triage and approve comments for your static sites, like Jekyll.
https://github.com/taltman/scripts/blob/master/EDA/samp
It's shorter than this ruby implementation, and includes copious documentation, file handling, and corner-case support.
Those tattoo's on Holocaust victim's arms? They were serial numbers directly tied to IBM punchcards designed by IBM for the Third Reich.
It gives context to former NSA chief Michael Hayden's comment, "We kill people with metadata".
Exactly. And that's how Jacob Appelbaum sees it too:
“There is just a very real historical awareness of how information can be used against people in really dangerous ways here,” Poitras says. “There is a sensitivity to it which just doesn’t exist elsewhere. And not just because of the Stasi, the former East German secret police, but also the Nazi era. There’s a book Jake Appelbaum talks a lot about that’s called IBM and the Holocaust and it details how the Nazis used punch-cards to systemise the death camps. We’re not talking about that happening with the NSA [the US National Security Agency], but it shows how this information can be used against populations and how it poses such a danger.”
http://www.theguardian.com/world/2014/nov/09/berlins-digital...
It's unwise to use your phone for this purpose, because a phone and laptop might both be swiped if you're not holding on to both. This has happened to folks at cafes or on mass transit in the Bay Area.
In that spirit, one can optimize the xargs mawk invocation by 1) Getting rid of string-manipulation function calls (which are slow in awk), 2) using regular expressions in the pattern expression (which allows awk to short-circuit the evaluation of lines), and 3) avoiding use of field variables like $1, and $2, which allows the mawk virtual machine to avoid implicit field splitting. A bonus is that you end up with an awk script which is more idiomatic:
mawk '
/^\[Result "1\/2-1\/2"\]/ { draw++ }
/^\[Result "1-0"\]/ { white++ }
/^\[Result "0-1"\]/ { black++ }
END { print white, black, draw }'
Notice that I got rid of the printing out of the intermediate totals per file. Since we are only tabulating the final total, we can modify the 'reduce' mawk invocation to be as follows: mawk '
{games += ($1+$2+$3); white += $1; black += $2; draw += $3}
END { print games, white, black, draw }'
Making the bottle-neck data stream thinner always helps with overall throughput.I agree with you regarding their mutual incompleteness. There's plenty more literature to curate! See my systematic omparison of KEGG and MetaCyc for more details:
Example pathway: Super-Pathway of glycolysis, pyruvate dehydrogenase, TCA, and glyoxylate bypass
http://www.metacyc.org/META/NEW-IMAGE?type=PATHWAY&object=GL...
MetaCyc has an order of magnitude more information integrated into it than most wall charts. Plus, you can get true interactive metabolic overview maps, where you can click on the enzymes and compounds (example from the E. coli database):
http://www.ecocyc.org/overviewsWeb/celOv.shtml (be sure to zoom in and click on things!)
The Pathway Tools software, and the metabolic networks, are freely available for academic use, and you can use it to construct your own metabolic networks.
Full disclosure: I'm a former full-time bioinformaticist on the project.
Stanford IT password infographic
If TeX is already using dynamic programming in order to improve the visual appearance of the words, I imagine that the same can be done for the space between the words without having to resort to image processing of the TeX document rendered as PDF.
Yes, it can be used for running scripts: https://github.com/emk/eshell/blob/master/em-script.el
dmesg | gawk -f reservoir-sample.awk k=5 record_separator='==='
#!/usr/bin/gawk -f
### reservoir-sample.awk
###
### Sample k random lines from a stream, without knowing the size of the stream.
###
### (Tomer Altman)
### Parameters: (set from command-line)
##
## k: number of lines to sample
## record_separator: string used to separate iterations of the sample in stdout.
## Define a function for returning a number between 1 and n:
function random_int (n) { return 1 + int(rand() * n) }
## Initialize the PRNG seed:
BEGIN { srand() }
## For the first k lines, initialize the sample array:
NR <= k { sample[NR] = $0 }
## If we've initialized the sample array, and we pick an integer between one and the current record number that is less than or equal to k, update the sample array and print it to stdout:
NR > k && (current_random_int = random_int(NR)) <= k {
sample[current_random_int] = $0
for (i in sample) print sample[i]
print (record_separator != "") ? record_separator : "--"
}