4

!!Con 2018 Notes

 2 years ago
source link: https://kevinchen.co/blog/bang-bang-con-notes-2018/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

!!Con is a conference held every spring in New York City. It’s two days of lightning talks that can be about anything related to computers!

This conference is a great showcase of the diverse backgrounds of the NYC tech scene. I’m really going to miss it when I move back to the Bay Area.

A stage with a projector showing the name of the conference on a blue background

Day 1 Keynote

Mimi Onuoha

  • Exploring the implications of machine-readable world through art & programming
  • “Embedded in every technology there is a powerful idea” —Neil Postman

    • Oral culture: prioritize memory.
    • Written culture: prioritize logical organization of thought.
    • Digital culture: prioritize data!
  • Obsession with data as the object

    • Does it mean what you think it means?
    • Hard to tell when you don’t have context
  • Pathways

    • Tracked location data of several groups for 2 weeks
    • Met in person to collect: make the collection relationship explicit, forcing people to think about it
  • Unable to collect? Common reasons of missing data

    • Those with resources to collect don’t have an incentive to know
    • Resists “metrification”: things are hard to categorize or don’t inherently generate data
    • Nonexistence benefits or protects someone
  • Art piece: cabinet of missing datasets

    • Filing cabinet with empty folders labeled with names of datasets that don’t exist
    • Flip through all the things we don’t know

Session 1

Telling stories with traceroute!

Karla Burnett

  • How traceroute works

    • Packets have a time-to-live (TTL) to prevent getting stuck in routing loops
    • traceroute is a hack that sends packets with different TTLs to make different routers along the path respond
  • Telling stories through traceroute

    • Send fake TTL expired messages from spoofed IPs
    • Reverse DNS maps IP to hostname, but the hostname doesn’t have to be real
    • Each line of the story needs a new IP: $3 per month

Tales of ⌧! Can You Tell Your Story When Your Character Is Undefined?!

Persa Zula

  • Small boxes that show up in text when characters not defined

    • [ ]: “tofu,” so [X]: “not tofu”
  • Displaying characters

    • Characters are encoded as codepoints in Unicode
    • Font’s cmap table maps codepoints to glyph identifier

Turning Google Earth into SimCity 2000! (From Light to Pixels to Impossible Perspectives!)

Logan Williams

  • Perspective projection

    • Farther objects are smaller
  • Orthographic projection

    • Satellite photo pointing sideways has no perspective: all lines are parallel
    • Used in drafting, art, and SimCity 2000
    • Only possible when image sensor is same size as object (flatbed scanner)
    • In rendering software, set field of view very small so input rays of light are almost parallel
  • Doing this in real life?

    • Fly over the scene and take the same row of pixels from each frame
    • Ensures all pixels formed by light coming from the same direction
    • Produce images that represent time in addition to space

We built a map to aggregate real-time flood data in under two days!

Aruna Sankaranarayanan

  • Chennai floods in 2015

    • Bad maps made it hard to communicate which roads were navigable
    • Google only lets you annotate locations, not streets
    • Used MapBox to crowdsource mapping during the floods
    • 600,000 people used the software, showing that simple tools can be really useful

Session 2

Moving towards dialogue: collaborating with your computer using typed holes!

Vaibhav Sagar

  • Typed hole: something where you know the type but not the contents of the value

    • Can specify in Haskell using underscore _1, _2
    • Type inference tells you what the type should be
    • In Idris, a more powerful type system also includes list length, so type inference can even help you write snippets of code
  • Untyped holes: don’t know what the type is, but still want help writing program

    • Open research topic

Compressing the Library of Babel!

David Turner

  • Compressing the infinite library described in Borges’ short story
  • gzip?

    • Works by finding identical sequences and inserting references back to them
    • On Babel: compression ratio is 1:1 because of pigeonhole principle
  • Write a program?

    • Kolmogorov Complexity = size of compressed data + size of decompressor
    • Generation program only a few lines of Python
    • Suppose some pages are missing: pigeonhole principle means representing missing books requires storing entire book

It’s super effective! Solving Pokémon Blue with a single, huge regular expression

Alex Clemmer

  • Pokémon Blue

    • Little boy leaves home to wander the world and catch Pokémon
    • Mostly wandering around in the grass (very tedious)
    • Create a regex which accepts iff the moves are a winning game
  • How to solve?

    • Pokémon Blue is a finite state machine
    • Equivalence between FSM and regex (according to “nice book” by “this guy” Michael Sipser)
    • Simplify Pokémon to use ASCII world maps
    • World map → FSM → regex
  • Differences from actual Pokémon game

    • Items can have state, player interaction
    • Players can hold items
    • Game has random encounters (use probabilistic regex)

Transform live video streams with code and a REPL!!

Mark Wunsch

  • Live coding: code improv! Code as the user interface, applied to video streaming.
  • Use Racket language and GStreamer multimedia framework
  • Write in Racket REPL to manipulate video stream, draw stuff, PIP

Session 3

Creating an Arabic Programming Language!

Ahmed Abdalla

  • Learning to program requires English proficiency

    • Not just keywords, but also error messages & documentation
    • English proficiency requires privileged backgrounds in some countries
  • Noor: Imperative, Algol-style programming language for kids

    • Keywords are simple & informal so kids understand
    • Used his Sudanese dialect because languages reflect the aesthetics of their creators
  • Arabic editor challenges

    • Bidirectional language is overall right-to-left, but English words within Arabic text are left-to-right
    • Ligatures required in the language, not just aesthetic

Evil Twins and the Secret Lives of Linkers!

Josh Bowman-Matthews

  • Symbol defined twice in different .o files. What happens when you link?

    • If functions are not inline, linker complains about duplicate symbols
    • Inlining makes a copy of the function inside each .o file
    • Therefore, linker is allowed to pick one arbitrarily & not complain
  • Don’t accidentally write the same function twice

Satellites are talking to us! Let’s hear them out!

Ed Medvedev

  • “There are only a handful of things cooler than satellites”
  • Radio amateur satellites: tiny satellites for ham radio
  • Listening to satellites

    • You will need radio dongle for computer & antenna
    • Look up online when the ISS will be overhead
  • ARISS: Amateur Radio on ISS

    • Runs BBS so you can chat with people relayed through space
    • Broadcast images & talk to astronauts sometimes

The joys of PICO-8 token crunching!! Or: what I learned about programming from being restricted on every side!

Ayla Myers

  • PICO-8: game engine with retro graphics & sound, but modern programming

    • Artificial limits on bit depth, memory, code size (tokens), …
    • Built-in editors for everything
  • Economics of the PICO-8 device

    • Trade-offs: smaller sprite sheet leads to more complex code
    • “Spent” code tokens to “buy” more sprites
    • Can draw PPF curve for tradeoff between e.g. code complexity & number of sprites

Session 4

UX for Cats and Dogs!

Joel Potischman

  • Problem: daughter moved to college but misses cat

    • Manually send cat photos
    • Can the cat send us selfies?
  • Solution

    • Train cats to come eat when the sound is played
    • Take a picture of cats while they wait for food
    • Feed the cats

If you could solve this word tile puzzle, you could solve the halting problem! (Too bad you can’t!)

Kamal Marhubi

  • Tile puzzle (Post Correspondence Problem)

    • Tiles have symbols on top and bottom
    • Goal: order the tiles so that top and bottom say the same thing (can repeat tiles)
    • Not possible to tell whether a solution exists
  • Reducing Turing machine to tile puzzle

    • Make a tile from each state somehow
    • Solving the tile puzzle is the same as running the Turing machine
  • Wikipedia has a really unclear explanation

    • “Some things are actually hard, and some things just have too many Greek letters”

So THAT’S how my phone knows where I am!

Mike Lazer-Walker

  • Positioning throughout history

    • Latitude is easy because you can look at the sun
    • Longitude much harder, so people dead reckoned based on speed and time
    • Solved with accurate clock that allowed using time zone as a proxy for distance
  • Urban canyon problem: GPS error gets really bad in cities

    • Skyscrapers bounce the signal, messing with the distance

Day 2 Keynote

Build skills through hobbies! Bring them to work!

Liz Fong-Jones

  • Many years ago, a disowned trans woman who “almost didn’t make it”
  • Growth comes from learning new skills
  • Playing Puzzle Pirates game (2004–2008)

    • Some people made new players work without teaching the game
    • Learning mentorship: encouraging people to help newcomers by rewarding them
    • Organizing people: conquering an island requires multiple levels of coordinators to solve puzzles & distribute booty as reward
    • Active on community forums building diagnostic tools led to first tech job at Puzzle Pirates!
  • World of Warcraft (2008–2012)

    • Building up new players’ skills to have a stronger team in next raid
    • Not all leaders are blameless after the team loses
  • Eve Online (2012–present)

    • After fleet commander died, there was no communication & everyone else died
    • In incident response, “any call is better than no call”
    • Value your trustworthiness: not scamming in the game pays off when other players trust with other opportunities
  • Factorio (2017–present)

    • Learning what’s the most important to automate right now
    • Refactoring a complex, running system
  • Playing these games taught her management skills in a safe environment before she became a manager for real

    • Don’t be afraid to list non-traditional background on your resume
  • Intentional skill building

    • What skills will your next project require?
    • Does this activity help me get closer? (Or just mindless play?)

Session 5

Relativistic Software Calendars: It’s About Time!

John Feminella

  • Software makes assumptions

    • About the machine (“integers are 32 bits”)
    • About the world (“everyone has a real name”)
  • Time is one of these assumptions
  • What is time?

    • Originally measured by motion of earth & moon
    • Calendar is an abstract representation of this motion
    • Software calendars bake in assumptions about being on earth
  • Enter relativity

    • Time distorts depending on the velocity of observer
    • GPS is one of the few programs that accounts for relativity

Undo all the things!

Tom Ballinger

  • bpython is a Python interpreter that can undo the effects of expressions

    • Works by saving commands & rerunning only some of them
    • Could be slow
    • Doesn’t work if there are side effects

      • Random numbers, time, reading files
      • Non-idempotent actions: saving to files, buying shoes online
  • Use fork() to save state

    • Fork every time you run a command
    • Undo goes back to previous process
    • Build this into readline() & run with LD_PRELOAD

      • Works with unmodified interpreters!
      • readline() now forks your program lol
  • Building an undo-able Lisp interpreter from scratch

    • Save periodic snapshots
    • When code changes, roll back to the snapshot before that code was run
    • JavaScript version because “the word has to be on the left side of the parentheses or the programming language will never be popular”

Estimating the Value of Pi with a Dartboard and (Not so Much) Luck!

Stephen Tu

  • Estimating pi

    • Sample a square uniformly at random
    • Percentage inside circle is π/2π/2
  • Estimating with error

    • Define an epsilon ϵϵ which is the error on our estimate
    • Define a probability (95%) that the estimate is within ϵϵ
    • Need 100x more samples for 10x reduction in ϵϵ

Ray-tracing and special relativity: Rendering objects near the speed of light!

Lucy Zhang

  • If an object is moving near the speed of light, what would a photo look like?
  • Computer graphics

    • Ray casting: for each pixel, figure out where the light ray from the camera hits in the scene
  • Relativity

    • Light can never exceed speed of light, even if the light is on a fast-moving train
    • Lorentz transformation converts between two coordinate systems that are moving relative to each other
  • Relativistic raytracing

    • Define the rays toward the object with a 4th parameter, time
    • Use Lorentz transformation
    • Do intersection normally
    • As cube moves faster, it compresses more (expected) & appears to rotate (why?)
  • Terrell rotation

    • Rotates because farther light takes longer to reach the camera

      • Like rolling shutter effect but for relativity!
    • Anyone with a computer can “rediscover” Terrell rotation with a bit of code!

Session 6

Talking to my past self (without introducing temporal paradoxes!)

Andrew Louis

  • Stores all data about himself

    • “MSN was this cool software package that taught high schoolers how to type really fast”
  • Training a bot on chat logs

    • Train RNN to reproduce chat logs from high school
    • Sequence-to-sequence to respond to other messages

      • Originally developed for machine translation
    • Bot tends to converge on safe responses like “lol” and “ya” which work in any situation
    • Tends to respond with nonsense
  • Why is it hard?

    • Training data won’t capture general knowledge about the world
    • Needs working memory, not just the previous message
    • “Before submitting a conference talk, make sure you’re not committing to solving an open research problem”

Four fake filesystems!

Omar Rizwan

  • Files are anything that you can open, read, write, close using a path
  • GrabFS

    • Contains screenshots of each process’s windows
    • Use shell script with cp to take screenshot every second
  • btfs (BitTorrent filesystem)

    • Downloads blocks as requested
    • Opening part of a file doesn’t require downloading whole thing
  • ytfs (YouTube filesystem)

    • Making directory is a search query
    • Directory populated with movie files of search results
  • Git filesystem

    • Exposes remote repository as a directory
  • Get to reuse existing tools & UI

    • Plan 9 operating system takes filesystem idea to the extreme

Using Postgres to \watch Star Wars!

Will Leinweber

  • Using psql, the command-line Postgres program, to watch ASCII Star Wars

    • Import frames as database rows
    • Store a function in the database that prints each row

If at first you don’t succeed at beating HQ Trivia, try cheating!!

Hung Truong

  • HQ Trivia is fun but we want to win
  • Pipeline

    • iOS Vision framework to detect text
    • Tessaract library for OCR
    • Google the question with all answers
    • Pick the answer with the most occurrences

Session 7

The Man Comes Around: and so does his sound!

Vince Allen

  • Johnny Cash did gospel music at the beginning & end of his career

    • What are the differences between the two periods?
  • Identifying gospel songs

    • Topic modeling: assigns words to categories to classify the entire text
    • Apply topic modeling to lyrics
    • Pick the category with religious terms
  • Comparing songs acoustically

    • Take a spectrogram of the song
    • Convert this to a vector
    • I didn’t really understand the rest :-(

Step by Step: Algorithms that teach you math!

Evy Kassirer

  • Building a step-by-step solver for teaching math
  • Computer algebra systems

    • SymPy can simplify expressions symbolically, which sounds like a solver
    • Goal is to get the answer, so they represent division a/ba/b as a×b−1a×b−1
    • This would be confusing for explaining stuff
  • Building their own solver

    • Search the parse tree for patterns like “number + number”
    • Apply rules to transform to equivalent tree
    • Identified which rules were applied to find relevant lecture videos

Whoa, pictures! A visual history of visual programming languages!

Emily Nakashima

  • Visual Programming Languages (VPLs)

    • Programming & documentation are all in words
    • Our brains are really good at visual stuff
  • Examples

    • Scratch: Build programs with blocks
    • GRAIL (1968): Draw flowcharts which are converted to programs with OCR
    • Pygmalion (1975): Visually show state on screen
    • Cube (1995): 3D flowcharts?
  • Challenges

    • Diffing & merging visual programs
    • Humans can handle more unique words (symbol names) than unique shapes
    • Hard to represent complexity without losing the simplicity of visual programming
    • Unclear whether VPLs actually make you program differently

      • People prefer whatever they learned first
  • Good applications of VPLs

    • Simple systems: Twilio phone tree designer
    • Kids & learning

Fast, but not too fast! What 17th-century windmills can teach us about database migrations

Wander Hillen

  • Windmill design

    • Whole windmill rotates to match wind direction
    • When windmill moves too quickly, slats automatically open to catch less wind
    • Big changes in load: wind energy increases with |v|2|v|2
  • WeTransfer depends on automation to handle load changes

    • Throttle expensive background tasks when the system is busy

Session 8

The itty, bitty, tiny bytes that make up a Pokémon!

Jan Mitsuko Cash

  • Pokémon data structure

    • 232 bytes each
    • Stores properties like species ID, experience, nickname
    • Backward compatible between generations 1–2, and gen 3 on
    • Gen 3 added encryption

Pseudofractals! Accidental aesthetics where math meets pixels

Jes Wolfe!

  • Generate topographical map

    • For each pixel, compute color as (x2+y2)mod2(x2+y2)mod2
    • Weird artifacts! Doesn’t look like a parabolic topo map at all
  • Aliasing

    • Caused by Nyquist limit
    • If you zoom out too far, frequency of pixels (sampling) is no longer high enough to show frequency of topo map lines
  • Making art

    • Zoom out slowly to watch the aliasing pattern change
    • Use (x2+y2)modN(x2+y2)modN and assign to colormap of N colors

Scroll to Top All Posts


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK