Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Abstractions: A Tale of Keys and Values

Ernie Miller
September 01, 2016

Abstractions: A Tale of Keys and Values

As programmers, we know that the right abstraction unlocks new ways of thinking about the problems we solve. But can they do more? Can an abstraction exemplify our values? What might that look like? How would it feel to use? Do these words I'm typing right now even make any sense?

I'd like to share a recent experience with Elixir and Phoenix that convinced me, more than ever, of the power a well-chosen abstraction can have to create a truly joyful development experience.

Ernie Miller

September 01, 2016
Tweet

More Decks by Ernie Miller

Other Decks in Programming

Transcript

  1. #!/usr/bin/perl # Print the text of "99 Bottles of Beer"

    ''=~( '(?{' .('`' |'%') .('[' ^'-') .('`' |'!') .('`' |',') .'"'. '\\$' .'==' .('[' ^'+') .('`' |'/') .('[' ^'+') .'||' .(';' &'=') .(';' &'=') .';-' .'-'. '\\$' .'=;' .('[' ^'(') .('[' ^'.') .('`' |'"') .('!' ^'+') .'_\\{' .'(\\$' .';=('. '\\$=|' ."\|".( '`'^'.' ).(('`')| '/').').' .'\\"'.+( '{'^'['). ('`'|'"') .('`'|'/' ).('['^'/') .('['^'/'). ('`'|',').( '`'|('%')). '\\".\\"'.( '['^('(')). '\\"'.('['^ '#').'!!--' .'\\$=.\\"' .('{'^'['). ('`'|'/').( '`'|"\&").( '{'^"\[").( '`'|"\"").( '`'|"\%").( '`'|"\%").( '['^(')')). '\\").\\"'. ('{'^'[').( '`'|"\/").( '`'|"\.").( '{'^"\[").( '['^"\/").( '`'|"\(").( '`'|"\%").( '{'^"\[").( '['^"\,").( '`'|"\!").( '`'|"\,").( '`'|(',')). '\\"\\}'.+( '['^"\+").( '['^"\)").( '`'|"\)").( '`'|"\.").( '['^('/')). '+_,\\",'.( '{'^('[')). ('\\$;!').( '!'^"\+").( '{'^"\/").( '`'|"\!").( '`'|"\+").( '`'|"\%").( '{'^"\[").( '`'|"\/").( '`'|"\.").( '`'|"\%").( '{'^"\[").( '`'|"\$").( '`'|"\/").( '['^"\,").( '`'|('.')). ','.(('{')^ '[').("\["^ '+').("\`"| '!').("\["^ '(').("\["^ '(').("\{"^ '[').("\`"| ')').("\["^ '/').("\{"^ '[').("\`"| '!').("\["^ ')').("\`"| '/').("\["^ '.').("\`"| '.').("\`"| '$')."\,".( '!'^('+')). '\\",_,\\"' .'!'.("\!"^ '+').("\!"^ '+').'\\"'. ('['^',').( '`'|"\(").( '`'|"\)").( '`'|"\,").( '`'|('%')). '++\\$="})' );$:=('.')^ '~';$~='@'| '(';$^=')'^ '[';$/='`';
  2. LOOK, THIS COULD ALL GO HORRIBLY WRONG. Me, in the

    proposal for “Choices” HOW (NOT) TO WEASEL YOUR WAY OUT OF A CONFERENCE SLOT
  3. a false statement made with deliberate intent to deceive; an

    intentional untruth, a falsehood. LIE noun
  4. Hash trees can be used to verify any kind of

    data stored, handled and transferred in and between computers. “ — Wikipedia, "Merkle Tree"
  5. […] make sure that data blocks received from other peers

    in a peer-to-peer network are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks. “ — Wikipedia, "Merkle Tree"
  6. The experiments I am about to relate […] may be

    repeated with great ease, whenever the sun shines, and without any other apparatus than is at hand to every one. “ — Thomas Young, November 1803
  7. Dear Schrödinger: You are the only contemporary physicist, besides Laue,

    who sees that one cannot get around the assumption of reality, if only one is honest. “ — Einstein, December 22nd, 1950
  8. ART

  9. ⚠ number = 42 opposite = true number = -42

    if opposite square = (x) -> x * x list = [1, 2, 3, 4, 5] math = root: Math.sqrt square: square cube: (x) -> x * square x
  10. BUILDING A STATEFUL APPLICATION ON THE BACK OF A STATELESS

    PROTOCOL IS A TOTALLY REASONABLE PLAN. Many, many liars. Including me. NOPE.