Knowledge, wisdom even, lies in depth, not extension.
- Tim Parks Reading Is Forgetting
I’ve been working on porting some bitwise logic from Java to Python and it’s been as awful as that sentence sounds.
The main gotcha that I’ve run into has something to do with the fact
that an int
in Java is 32-bits so the logical NOT
of an integer is
different in Python vs Java.
So in python you get:
>>> bin(~0x000000ff)
'-0b100000000'
Whereas with java:
public class BitWise {
public static void main(String[] args) {
System.out.format("%s\n", Integer.toBinaryString(~0x000000ff)); // Prints: 11111111111111111111111100000000
}
}
I ran into a problem because I was trying to XOR
the output of a
NOT
which, obviously, comes out differently if you have different
expecations what comes from NOT
, i.e.:
assert(0b11111111111111111111111100000000 != -0b100000000)
The way around this for me, was to AND
the NOT
output with
0xffffffff
. There are probably some weird edge-cases here ¯\_(ツ)_/¯
.
I’m always learning and losing dumb git tricks. Here are a few I might lose if I don’t keep them someplace:
In this case it’s a GPG key
wget https://tylercipriani.com/018FAC02.asc
export obj=$(git hash-object -w --stdin < 018FAC02.asc)
git tag tyler-cipriani-gpg-key "$obj"
rm 018FAC02.asc
git cat-file -p $(git show-ref -s tyler-cipriani-gpg-key)
git show tyler-cipriani-gpg-key
Like that gpg key tag, for instance
git symbolic-ref GPG_KEY refs/tags/tyler-cipriani-gpg-key
git show GPG_KEY
Could even store the gpg keys of lots of folks
wget https://tylercipriani.com/018FAC02.asc
export obj=$(git hash-object -w --stdin < 018FAC02.asc)
git update-ref refs/keys/tyler "$obj"
wget https://uniontownlabs.org/toddtreece.gpg.txt
export toddgpg=$(git hash-object -w --stdin < toddtreece.gpg.txt)
git update-ref refs/keys/todd "$toddgpg"
rm 018FAC02.asc toddtreece.gpg.txt
git show refs/keys/todd
git show refs/keys/tyler
You can even push them to a remote (github even) and fetch them back down on the other side:
git push origin refs/keys/*:refs/keys/*
git clone [repo]
git fetch origin refs/keys/*:refs/keys/*
git show refs/keys/tyler
In ancient days, on the computer networks of the Sumerians and Hittites, people kept .plan files as a way to disseminate useful and/or amusing information.
Deep in him, beneath his memory, was the knowledge of hardship and hunger and endurance and pain. Though he seldom thought of his early years on the Booneville farm, there was always near his consciousness the blood knowledge of his inheriteance, give him by forefathers whose lives were obscure and hard and stoical and whose common ethic was to present to an oppressive world faces that were expressionless and hard and bleak
– John Williams, Stoner
I burrowed into RFC 5322’s Address Spec for a long time today. This resulted in a fun side-trip into Augmented BNF for Syntax Specifications: ABNF.
Email addresses break down to their Core Rules like this:
addr-spec = local-part "@" domain
addr-spec = dot-atom / quoted-string / obs-local-part
@
dot-atom / domain-literal / obs-domain
addr-spec = [CFWS] dot-atom-text [CFWS] / [CFWS] DQUOTE *([FWS] qcontent) [FWS] DQUOTE [CFWS] / word *("." word)
@
[CFWS] dot-atom-text [CFWS] / [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS] / atom *("." atom)
addr-spec = [(1*([FWS] comment) [FWS]) / FWS] 1*atext *("." 1*atext) [(1*([FWS] comment) [FWS]) / FWS] /
[(1*([FWS] comment) [FWS]) / FWS] DQUOTE *([([*WSP CRLF] 1*WSP) / obs-FWS] qtext / quoted-pair) [([*WSP CRLF] 1*WSP) / obs-FWS] DQUOTE [(1*([FWS] comment) [FWS]) / FWS] /
(atom / quoted-string) *("." (atom / quoted-string))
@
...
/me dies
The density of local-part "@" domain
weighs on me.
What was impressed upon me is how viscous all communication is: a means to deliever a message becomes a dense message of its own.
A valid domain is:
atext = ALPHA / DIGIT / ; Printable US-ASCII
"!" / "#" / ; characters not including
"$" / "%" / ; specials. Used for atoms.
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
dtext = %d33-90 / ; Printable US-ASCII
%d94-126 / ; characters not including
obs-dtext ; "[", "]", or "\"
domain = dot-atom / domain-literal / obs-domain
domain = ([CFWS] dot-atom-text [CFWS]) / ; dot-atom
([CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]) / ; domain-literal
(atom *("." atom)) ; obs-domain
domain = ([CFWS] 1*atext *("." 1*atext) [CFWS]) / ; dot-atom
([CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]) / ; domain-literal
(([CFWS] 1*atext [CFWS]) *("." ([CFWS] 1*atext [CFWS]))) ; obs-domain
If we get rid of the Content Folding White Space which has a lot of rules and seems to be everywhere and is a context-free grammar we get something like:
(?:(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+[a-z0-9.!#$%&'*+\/=?^_`{|}~-]*)|(?:\[(?:[\x21-\x5A]|[\x5E-\x7E]|\[\\\])\]))
This single org-mode file is a blog. The org-mode file in which I am writing this text is filled with material that either isn’t substantive or focused enough to be published on my normal blog.
This material should be less ephemeral than things on a wiki (e.g. The movies section, the RFCs section, the Wikipedia pages section should be moved the Wiki).
I tend to experiment more with format in this file than in my notes directory (which I keep using Deft and org-mode) which means I learn more org-mode and that is a Good Thing™.
Making a real-live multi-page cool-looking blog out of an org-mode file isn’t impossible.
- https://pavpanchekha.com/blog/org-mode-publish.html
- http://endlessparentheses.com/how-i-blog-one-year-of-posts-in-a-single-org-file.html
- http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html
- https://eschulte.github.io/org-scraps/
- https://raw.githubusercontent.com/eschulte/org-scraps/master/scraps.org
Can I just say: org-babel
looks awesome as fuck.
A literate programming environment that can be used to configure a lisp-machine.
To paraphrase one of the authors below: that’ll earn you a lot of nerd merit- badges. I should maybe consider moving my Linux Tips repo over to this. Also, I should move my repos off of github and onto something self-hosted :( Too. Many. Projects. Le. Sigh.
- http://orgmode.org/worg/org-contrib/babel/intro.html
- https://github.com/seth/my-emacs-dot-d/blob/master/emacs-init.org
This is a weird, psuedo literate way of updating this file on the squiggle.city site.
First I ssh into squiggle
using a src block with a :session
identifier.
The actual code in the org file can be seen on github.
For what it’s worth, I am executing this file to generate this HTML.
ssh squiggle
I can make sure I’m on the server, by checking the hostname, again, in
the same :session
. One important note that it took a while to figure out:
I have to use the :exports both
argument for the source block to show
the results in the HTML output.
hostname
squiggle.city
I Have a file that exists as a local hack in my dotfiles on squiggle.city server, but don’t take my word for it:
file "/home/thcipriani/bin/squigglegen"
/home/thcipriani/bin/squigglegen: C source, ASCII text
Now, locally, without using the :session
. I can save and commit this file
to my .dotfiles
repo:
/usr/bin/git -C /home/tyler/.dotfiles add plan
/usr/bin/git -C /home/tyler/.dotfiles commit -m '.plan spelling fixes'
/usr/bin/git -C /home/tyler/.dotfiles push
[master 2655be0] Add plan from org-mode 1 file changed, 30 insertions(+), 18 deletions(-)
Then, back on my remote session, I can pull this code down, and regenerate my
page using the squigglegen
command.
/home/thcipriani/bin/squigglegen
First, rewinding head to replay your work on top of it... Applying: [LOCAL HACK] Generate my squiggle city file :) Applying: [LOCAL HACK] Emacs publish squigglegen Updating
“rock ‘n’ roll 7”s from the ’80s”
Variadic Function – a function of indefinite airity.
Considered complimentary to the apply
function which
is central to languages derived from lambda calculus.
Use in ES2015:
var printAwards = function(...places) {
for (var place of places) {
console.log(place);
}
}
Never thought about it:
x >> 2 == x / 2
x << 2 == x * 2
“Finding RFCs for a particular topic is an art.”
- RFC: 6187: X.509 for SSH
- RFC 3161: X.590 Timestamp protocol
- RFC 2616: HTTP/1.1
- RFC 3986: URI: Generic Syntax
- RFC 3920: XMPP
- RFC 1459: IRC Protocol
- RFC 2151: Primer on Internet and TCP/IP Tools and Utilities
- RFC 3339: Date and Time on the Internet: Timestamps (like ISO 8601)
- RFC 1288: Finger User Info Protocol
- RFC 863: Discard Protocol
- RFC 2424: Hyper Text Coffee Pot Protocol
- RFC 2549: IP Over Avian Carriers with QOS
- RFC 2795: Infinite Monkey Protocol Suite
- RFC 1918: IP Allocation for Private Networks
- RFC 7763: The
text/markdown
Media Type - RFC 1855: Netiquette Guidelines
- MEMO: RFC 1178: Choosing a Name for Your Computer
”;!–”<XSS>=&{()}
I Didn’t particuarly enjoy this talk, but this quote was good:
Good judgment comes from experience, and experience comes from bad judgment. So if things aren’t going well, it probably means you’re learning a lot and things will go better later.
Randy Pausch Time Management https://youtu.be/oTugjssqOT0
Security at the expense of usability comes at the expense of security.
The Magic Words are Squeamish Ossifrage
You held your head like a hero On a history book page It was the end of a decade But the start of an age
- Taylor Swift, Voice of Our Age
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
– John Gall (Systemantics: How Systems Really Work and How They Fail.)
- Manfrotto MTPIXI-B PIXI Mini Tripod, Black
- Leuchtturm Master Notebook, Squared, 8.75 x 12.5 Inch (LBM12)
- Zeiss Pre-Moistened Lens Cleaning Wipes, 200 Count
Hardware I have:
- Lenovo ThinkPad x230t
- Vortex Poker II
- Evoluent Vertical Mouse
- HRT Music Streamer II
- RockIt Sounds R-50
- Baratza Virtuoso
- DJI Phantom II Zenmuse H4-3D Gimbal
Hardware I think about:
- Solar Calculation Details http://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html
- Diceware passphrase http://world.std.com/~reinhold/diceware.html
- Receiving NOAA Weather Satellite Images http://www.rtl-sdr.com/rtl-sdr-tutorial-receiving-noaa-weather-satellite-images/
- George Washington’s Rules of Civility and Decent Behavior: in Company and Conversation https://archive.org/stream/georgewashington00unse/georgewashington00unse_djvu.txt
- Catchup http://boardgamegeek.com/boardgame/68199/catchup
NICK BOSTROM SUPERINTELLIGENCE Paths, Dangers, Strategies
- Why artist payment rises without productivity increases:
- Nick Bostrom’s Simulation Hypothesis:
- Seven Bridges of Königsberg:
- Gombe Chimpanzee War
- Cisgender
- 2147483647
- Monkey Selfie
- Erdős–Bacon number
- Dolgopolsky list
- Bus Factor
- Graham’s number
- Alexander Stepanov
- Mojibake
- Fool’s Gold Loaf
- Sturgeon’s Law
- Project West Forward
- Mammalian diving reflex
- Lists of lists of lists
If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of every one, and the receiver cannot dispossess himself of it.
If make his point clear, Yoda could, give a shit about Oxford commas, nobody should. – Peter Huntwelch
Nobody Understands Punctuation
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures… Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. […] The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
– Fred Brooks
Movies
Title | Year |
---|---|
Old Joy | 2006 |
Sunset Boulevard | 1950 |
Art
Title | Artist | Year |
---|---|---|
Rhinoceros | Albrecht Dürer | 1515 |
Carcass of Beef | Chaïm Soutine | c. 1925 |
The Knight’s Dream | Antonio de Pareda | 1655 |
The Death of Marat | Jacques-Louis David | 1793 |
Homage to a Square | Josef Albers | 1962 |
TV Shows
Title | Date |
---|---|
Civilisation | 1969 |
There ain’t no rules around here. We’re trying to accomplish something.
– Thomas Edison
Poetry is like a curvy slide in a playground - an odd object, available to the public - and, as I keep explaining to my local police force, everyone should be able to use it, not just those of a certain age.
– Lemony Snicket
http://www.poetryfoundation.org/poetrymagazine/article/246328
The first man who, having fenced in a piece of land, said ‘This is mine,’ and found people naïve enough to believe him, that man was the true founder of civil society. From how many crimes, wars, and murders, from how many horrors and misfortunes might not any one have saved mankind, by pulling up the stakes, or filling up the ditch, and crying to his fellows: Beware of listening to this impostor; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.
– Jean-Jacques Rousseau, Discourse on Inequality, 1754
http://www.constitution.org/jjr/ineq.txt
The following block of characters is an ASCII “Magic Eye” Random-Dot Stereogram. Stare at it with your eyes focused at infinity and you will eventually see a diamond suspended between two rows of columns.
O O O O lP#83U<c="Gyw*C|lP#83U<c="Gyw*C|lP#83U<c="Gyw*C|lP#83U<c="Gyw*C|lP#83U<c="Gyw*C MGB9q+s^{O!do5NEq+s^{OO!do5NNEq+s^^{OO!djo5NNEq+s^{OO!dj5NNEq+^{OO!d5NNEq+^Zq+^ fw;zUK`o^`/D*+8fUK`o^``/D*+88fUK`oo^``/DC*+88fUK`o^``/DC+88fUKo^``/D+88fUKo"UKo _i-lSmj$\b0e`mx=Smj$\bb0e`mxx=Smj$$\bb0eA`mxx=Smj$\bb0eAmxx=Sm$\bb0emxx=Sm$?Sm$ MtfCG_L{55Zk\6$"G_L{555Zk\6$$"G_L{{555Zk,\6$$"G_L{555Zk,6$$"G_{555Zk6$$"G_{.G_{ $I,1j%n09|iYzOkbj%n09||iYzOkkbj%n009||iYazOkkbj%n09||iYaOkkbj%09||iYOkkbj%0vj%0 |c-Dh[8|lm{3j:{Ph[8|lmm{3j:{{Ph[8||lmm{3gj:{[8-[8|lmm{3g:{[8-[|lmm{3:{[8-[|h-[| nh>R]:8"WV6M/w##]:8"WVV6M/w###]:8""WVV6Mz/#]:8""c"WVV6Mz#]:8"""WVV6M#]:8"""@""" VF-%l.<7R{RSTZC%l.<7RR{RSTZZC%l.<<7RR{RZZC%l.<<7R7RR{RZC%l.<<R7RR{RC%l.<<RB<<R ZUplWhOgdwW]Cvp#WhOgdwwW]Cvpp#WhOggdwwCvpp#WhOggdwwCwCvp#WhOggwwCwCv#WhOggw]ggw 8<%E8"I/tW_=lTnd8"I/tWW_=lTnnd8"I//t_=lTnnd8"I//t_=lTnTnd8"I//_=lTnTd8"I//_#//_ s@&X9GW$oP)qW`H%9GW$oPP)qW`HH%9GW$$P)qW`HH%9GW$$P)qW`HHH%9GW$$)qW`HH%9GW$$)%$$) H2Lvpj/=S3R8:;!5pj/=S33R8:;!!5pj/==SR8:;!!5pj/==SR8:;!;!5pj/==R8:;!;5pj/==Ro==R zB9Pa)$$&hZh<-e)a)$$&hhZh<-ee)a)$$$&hh<-ee)a)$$$&hh<h<-e)a)$$$hh<h<-)a)$$$h2$$h &d5Ingl+Ec!7!]e1ngl+Ecc!7!]ee1ngl++Ecc!7ee1ngl++EcEcc!7e1ngl++cEcc!71ngl++cZ++c jB-|-x(;$@j$/)zR-x(;$@@j$/)zzR-x(;;$@@j$Z/R-x(;;7;$@@j$ZR-x(;;;$@@j$R-x(;;;.;;; +Q-=SVg4t;a,`0{!SVg4t;;a,`0{{!SVg44t;;a,,`0{Vg6Vg4t;;a,,0{Vg6V4t;;a,0{Vg6V4x6V4 Ck-[XZ#HnP2cN8'gXZ#HnPP2cN8''gXZ#HHnPP2c=N8''gXZ#HnPP2c=8''gXZHnPP2c8''gXZHyXZH \"I7/$k\S(#qD%)z/$k\S((#qD%))z/$k\\S((#qVD%))z/$k\S((#qV%))z/$\S((#q%))z/$\J/$\ BgaE^p#]$Wn*O@US^p#]$WWn*O@UUS^p#]]$WWn*OO@UUS^p#]$WWn*O@UUS^p]$WWn*@UUS^p]%^p] eqzjLx8LVCEqqLvOLx8LVCCEqqLvvOLx8LLVCCEqZqLvvOLx8LVCCEqZLvvOLxLVCCEqLvvOLxLHLxL bB:8nfa]BJ6)zQ>ybB:8nfa]BJ6)zQ>ybB:8nfa]BJ6)zQ>ybB:8nfa]BJ6)zQ>ybB:8nfa]BJ6)zQ> (created by [email protected])
A - Alpha G - Golf N - November U - Uniform B - Bravo H - Hotel O - Oscar V - Victor C - Charlie I - India P - Papa W - Whiskey D - Delta J - Julia Q - Quebec X - X-Ray E - Echo K - Kilo R - Romeo Y - Yankee F - Foxtrot L - Lima S - Sierra Z - Zulu M - Mike T - Tango