My Notes on WaffleJS June 2019


AirTable (sponsor)

  • MS Access but with better scripting and actually user friendly
  • Hiring engineers & product designers

GitHub (sponsor)

  • I'm pretty sure you know what GitHub is
  • GitHub Package Registry exists
    • Better security
    • Centralizes code and distribution
    • Partnered with npm, yarn
  • GitHub = blockchain

Twilio (sponsor)

  • Communications platform
  • Releasing a video game on Steam soon (?!?)
  • Twilio Functions
    • What does it sound like it is?
  • Has chat app integration
  • Twilio Signal conference
    • Has scholarship for people underrepresented in tech

Talk 1 / Hexing Ncurses

Jeremy Apthorp | he/him |

  • Works with Electron at Slack
    • Talk is about none of that
  • Most terminal programs are simple
    • Some do wild things
  • How do I do wild things?
    • "Use ncurses!"
    • "But how!"
    • "man pages!"
  • History
    • 1800s: tty - teletypewriter
    • 1950s: Communicate with computers by tty
      • Datapoint 3300 was the first video terminal
        • tty with a screen instead of paper
        • Backspace!
        • Move the cursor!
        • Compatible with ttys (used ASCII)
          • Not compatible with pesky IBM (gotta buy that IBM terminal)
        • 0x1B used to send commands to the terminal
          • These commands did different things on different terminals (no ANSI
    • Person wanted to build a visual text editor (maybe vi?)
      • Invented terminfo(5)
        • Tells how to control a terminal
        • Uses a DSL which must be evaluated to figure out how to control a
        • infocmp(1M) can interpret terminfo(5) files
    • 2010s: There's just xterm now

Talk 2 / Hacking Atom Editor

Tilde Ann Thurium | they/them |

  • Developer Evangelist at Twilio
  • You could use off the shelf stuff to customize your editor
    • But what if no one else wants that functionality?
  • Story time
    • First engineering job at Pinterest
    • Got feedback that they were going to have to work on more complex projects
      for promotion
    • Took backend Java authentication task, didn't know Java, authentication, or
    • "What's the best way to learn a language?"
      • Goldilocks project - not too hard, not too soft; between Hello World and
        production ready backend app
      • Made a bad pun generator
    • Left Pinterest to join Atom team at GitHub
    • Wrote a talk about hacking Atom to get a job at Twilio
  • Goldilocks package for Atom: Dad jokes
  • Tbh you can't really write notes for this
  • Atom uses DOM APIs
  • No fetch though?
  • Really pretty simple
  • JavaScript changed their life
  • Code doesn't have to be complicated to bring you joy
    • Millennials to Snake People
    • Cloud to Butt
  • Go forth and customize your editor!


"A Whole New World" duet

Talk 3 / What is the Dojo?

Tre' Grisby | he/him |

  • Dojo is traditionally a safe place to practice
  • Berkeley JS Dojo is a safe place to share, learn, and grow
    • JSConf Code of Conduct
  • Work vs practice
    • Work has too much at stake
    • Practice is open to new things, mistakes
  • Make practice fun!
    • Combine martial arts and coding
    • Kata - component of a martial arts move
      • Similar to design pattern
      • Break things into small bits and reuse them
    • Free your mind - Zen Koans -> Interview Questions
    • Legendary tales - Wuxia
      • Hello World
    • Weapons - Different ones used for different environments
      • Languages
  • Dao of the BJD - Share & Encourage, Learn & Grow
  • Everyone creates dojos in places around them
  • Sifu - Practitioner, teacher, master
    • When we practice we grow, but when we teach we learn
    • Sifus are always teaching and learning
  • Belt ranks
    • White - Practice a kata for 30 days
    • Yellow - Mentor a sifu through a white belt test
    • Orange - Build a project
    • Green - Challenge yourself with #100DaysOfCode / #300DaysOfCode
    • Blue, Purple, Brown, Red, Gray, Black
  • How to get started?
    1. Meet in person
    2. Have a way to communicate
      • Discord, Slack, etc.
    3. GitHub repo for docs
  • Other ways to practice

Talk 4 / HSV, color spaces, and you

Bryan Hughes, Ph.D. (affectionately titled "Dr. Nebrius") |

  • RGB - works with how our eyes sense light
  • HSV - hue, saturation, and value
    • Maps to how we think about color, not how we perceive it
  • Hue (0°-360°)
    • The colors of the spectrum
    • On a circle
  • Saturation (0%-100%)
    • Controls how washed out the color is
    • Lower saturation is more washed out
    • 0% saturation = no color
      • Black and white
    • 100% saturation = full color
  • Value (0%-100%)
    • Brightness of the color
    • 0% = black
    • 100% = full color
  • You can change the color just by changing the hue channel
  • What can we do with HSV?
    • Easily create related/complimentary colors
      • Add 180° to hue to find a complimentary color
    • Create art
      • Fantastic for animating color
      • Impossible with RGB
      • Super simple with HSV
Piper McCorkle

Piper McCorkle

Software engineer at Ladder, free software enthusiast, and overall computer nerd