!!Con logo

!!Con 2017

May 6-7, 2017 in NYC

The joy, excitement, and surprise of computing

Keynote Speakers

Karen Sandler

Karen Sandler

Cyborgs Unite!

Karen M. Sandler is the executive director of the Software Freedom Conservancy, which is the nonprofit home of 40 projects, including git, samba, QEMU, selenium and inkscape (to name a few). Karen is known as a cyborg lawyer for her advocacy for free software, particularly in relation to the software on medical devices. Prior to joining Conservancy, she was executive director of the GNOME Foundation. Before that, she was general counsel of the Software Freedom Law Center. Karen co-organizes Outreachy, the award-winning outreach program for women globally and for people of color who are underrepresented in US tech. She is also pro bono counsel to the FSF and GNOME. Karen is a recipient of the O’Reilly Open Source Award and cohost of the oggcast Free as in Freedom.

Limor Fried

Limor Fried

We Are What We Celebrate: The Joy, Excitement, and Surprise of Who is Making Things

Adafruit was founded in 2005 by MIT hacker & engineer Limor “Ladyada” Fried. Her goal was to create the best place online for learning electronics and making the best designed products for makers of all ages and skill levels. Adafruit has grown to over 100+ employees in the heart of NYC with a 50,000+ sq ft. factory. Adafruit has expanded offerings to include tools, equipment and electronics that Limor personally selects, tests and approves before going in to the Adafruit store. Limor was the first female engineer on the cover of WIRED magazine, and was awarded Entrepreneur magazine’s Entrepreneur of the Year. Ladyada was a founding member of the NYC Industrial Business Advisory Council. Adafruit is ranked #11 in the top 20 USA manufacturing companies and #1 in New York City by Inc. 5000 “fastest growing private companies”. Adafruit is featured in Google’s Economic Impact Report. Limor was named a White House Champion of Change in 2016. Adafruit is a 100% woman-owned company.


Speakers

Aaron Levin

Aaron Levin

Finding Friends in High Dimensions: Locality-Sensitive Hashing For Fun and Friendliness!

When you live in the big city, finding everyone’s nearest neighbours takes a long time! Our judicious city planners have conjured a technique using randomness, hyperplanes, buckets, lexical sorting, and binary numbers to get the job done approximately and fast. Really fast. They call it locality-sensitive hashing and management loves the idea. But it sounds too good to be true!

In this talk we’ll explore locality-sensitive hashing, a technique to turn the computationally expensive exact nearest-neighbor search problem into an inexpensive approximate solution (it’s a neat trick and I promise you’ll love it). We’ll see how locality-sensitive hashing is used in image search, recommendations, and other machine learning problems. And of course, we’ll mention deep hashing, because why not?

Aaron Levin is a mathematician who fell in love with programming and now manages Data Science teams at SoundCloud. Aaron found a rare record once and wrote about it on Weird Canada.


Alex Clemmer

Alex Clemmer

It’s super effective! Solving Pokemon Blue with a single, huge regular expression

I was playing my old copy of Pokemon Blue for the original Game Boy one day during winter holidays, for old times’ sake. About an hour in, I realized that this was probably going to take me on the order of 20-30 hours to complete.

20-30 hours! Who has time for that?

What I’d really like to do is sit down, think very carefully, and write down all the moves I’d like to make, all at once, and then pass them to a regular expression, which will accept if (and only if) those moves will win a game of Pokemon Blue. This approach has a lot of advantages! For example, in addition to being faster to specify a complete moveset for a game, it allows you to put your entire game of Pokemon Blue into a version control system (e.g., git), which allows you to apply the “infrastructure as code” philosophy to your Pokemon Blue runthrough.

Alex Clemmer is a computer programmer. Other programmers love Alex, excitedly describing him as ‘employed here’ and ‘the boss’s son’.


Andrew Plotkin

Andrew Plotkin

Glk! A universal user interface! for interactive fiction!

In 1997, I set out to extend Infocom’s Z-machine to support modern interactive fiction. Surprisingly, many of my design decisions turned out to be clever! Glk is now a thriving software ecosystem which supports many IF platforms, interpreters, and other tools. It’s also hard to pronounce Glk.

Hear a twenty-year tale of interpreter support! Discover how my C API evolved into a JavaScript API and a JSON data format while still being hard to pronounce! Marvel at how my attempt at a universal user interface was an inevitable failure, but still lets us do some really cool things! Wonder when I will get around to shipping Glk 2.0!

Andrew Plotkin has been working on interactive fiction and stuff like that for a very long time. He works as an indie game developer in Boston and helps run an IF meetup, an IF nonprofit, and occasionally things that are not directly related to IF. He also bakes cookies.


Bomani McClendon

Bomani McClendon

Making Mushrooms Glow!

In just over a month, we built the software and electronics for Shrumen Lumen – an interactive art installation comprised of five huge, glowing, origami mushrooms that move in reaction to human contact. Shrumen Lumen was presented at Burning Man ‘16 and at the MeetD3 festival in Dubai’s Design District. I’ll share what I learned about building software for rapidly testing interaction design concepts, and my experiences controlling these large contraptions with Node.js (yes, JavaScript!), Raspberry Pis, Pixelpushers, Processing, and more.

Bomani is a software engineer, designer, and learning sciences researcher. He is currently a senior in Computer Science at Northwestern. Bomani is passionate about creating memorable digital experiences, and works with various creative collectives focused on music and art.


Charles Chamberlain

Charles Chamberlain

Serious programming with jq?! A practical and purely functional programming language!

Ever heard of jq? If so, chances are you’ve used it to format and syntax-highlight your JSON. You might have even used something like jq '.foos[]' to print each foo! But did you know jq has user-defined functions? That jq has modules? Get ready to take a dive into the wondrous and purely functional land of the jq programming language!

Charles is a 20-year-old undergrad. He spent the last year at Uber, and is now working on a math major at UChicago. He likes writing compilers while drinking probably too much tea.


Christian Joudrey

Christian Joudrey

Writing NES games! with assembly!!

I’d like to take you on a stroll down memory lane and dig into the internals of the Nintendo Entertainment System (NES) to figure out how it works. While we’re there, we’ll see how to build a game for the NES using 6502 assembly with the help of a few modern tools. We’ll gain a new respect for ’80s developers and an appreciation for the high-level languages we have today!

Christian is a self-taught developer based in Montreal. At a young age he discovered Visual Basic 6 on his home computer and instantly fell in love with programming. When he is not reading about technology and programming, you may find him rock climbing, cooking or drinking a stout.


David Turner

David Turner

Om! Nom! Nash!

Om Nom Nom is a game about cute forest creatures eating each other. We can (almost) solve it by doing some game theory, and some tree search, with some cleverness. We won’t always win, but nobody will be able to do better. We’ll explore a few techniques for writing game solvers, and show how these techniques can be used to build an Om Nom Nom solver. Then we never have to play it again!

David Turner hacks on git at Two Sigma. He previously co-founded OpenTripPlanner, and worked on version 3 of the GPL. He enjoys contributing patches to random projects, like Inkscape and Linux. He lives on Mars with his glorious wife and three pet tigers. He spoke at !!Con in 2014.


Evan Jones

Evan Jones

Corruption in the Data Center! TCP can fail to keep your data safe!

TCP has a checksum and Ethernet has a CRC, both of which detect corrupt data. The math says this should make it extremely unlikely for applications talking to each other inside a data center to receive corrupt data. Unfortunately, it still happens. When it happened at Twitter it took a team of a few dozen people and multiple days to clean up the mess.

I’ll talk about how we discovered that our applications were receiving corrupt data, and what we did to stop the bleeding. Then I’ll walk though a high-level overview of TCP, Ethernet, and switches to show how corruption can sneak past the CRC and checksum defenses. Finally, I’ll describe how you can protect your applications by adding a strong CRC or using encryption.

Evan is a software engineer at Bluecore in New York, but was at Twitter at the time of this particular incident. He gets obsessed with technical problems that he doesn’t understand, and writes about them on his web site so he never has to think about them again.


Ewan Dennis

Ewan Dennis

Why So Loud! Geeking Out On Airline Data, Physics And Mapping

We were looking for a new place to live in sunny Scotland. I found myself eerily familiar with our preferred town because it’s on the local airport approach path.

What followed was a nerd montage of tracking flight paths by API, researching jet noise propagation effects, plotting heatmaps and making family relocation plans.

This talk is that story.

Ewan is a career geek/autodidact with some pretty varied experience (scientific visualisation, games, app security, cloud infra) who has been remiss in the extreme about giving back to the community that spawned him. Ewan’s mission now is to share all the interesting tech ideas he can; to engage, entertain, encourage, support and wherever possible to engender the same ooh-howz-that-thing-work inquisitiveness he feels every day. Ewan can be found on Twitter with longer occasional outpourings on CloudyGoo.


Geoffrey Litt

Geoffrey Litt

ENHANCE! Upscaling images with neural networks

When characters on a TV show “enhance!” a blurry image, you probably laugh and tell your friends that it’s impossible to do that in real life. But over the past year, deep learning research has actually made this kind of possible! How will you explain this to your friends!?

In this talk, you’ll get an intuitive introduction to generative adversarial networks, a new machine learning technique that’s surprisingly good at upscaling images. You’ll learn how these systems are inspired by human art forgers, and how you can use them to do other things like transform a horse into a zebra, convert a sentence into a photo, and so much more!

Geoffrey builds software for public schools at Panorama Education. He enjoys learning about machine learning and playing the cello, and occassionally posts on his blog.


Jan Mitsuko Cash

Jan Mitsuko Cash

What alien invaders, birds, and computer simulations have in common: flocking!!

Real flocks aren’t what they’re like in the movies. You’ve probably seen flocking behavior in The Avengers, the latest Star Trek movie, or even in the Ender’s Game books. Flocks are groups of individuals, usually birds (or invading aliens when it comes to Sci-Fi), that are collectively moving together. The flocks in movies show individuals forming complex patterns, but they’re all easily taken down by targeting a centralized point of command. In reality, flocking behavior is a lot simpler and there doesn’t need to be any coordination between individuals–that means your favorite protagonists probably wouldn’t have won when they came up against flocks!

Jan is an editor at No Starch Press and freelance Japanese to English translator. Sometimes she programs, usually with turtles.


Jason McIntosh

Jason McIntosh

I wrote to a dead address in a deleted PDF and now I know where all the airplanes are!!

I spent a chunk of 2016 making a web application for myself and other nervous air passengers called BumpySkies. You can plug an upcoming flight into it and it tells you when you can expect to hit turbulence and how bad it’ll be. Still kinda scary, but at least it’ll surprise you less.

I wanna tell you about how I made it, because I had to exercise my skills at social engineering — the good kind! — at least as much as software engineering. BumpySkies came about through finding in myself an uncharacteristic willingness to approach complete strangers, asking them politely for access to tools or data, and feeling surprised at how well it worked, time and again.

Jason McIntosh is a freelance software engineer, game-design consultant, and writer. He lives variously in and around New England. His homepage is at jmac.org, and he blogs regularly at fogknife.com.


Jean Cochrane

Jean Cochrane

The TOP 5 Queer Feminist Cyberpunk Manifestos!

“Our lot is cast with technoscience, where nothing is so sacred that it cannot be reengineered and transformed so as to widen our aperture of freedom, extending to gender and the human. To say that nothing is sacred, that nothing is transcendent or protected from the will to know, to tinker and to hack, is to say that nothing is supernatural.” – Xenofeminism: A Politics for Alienation (Laboria Cuboniks)

Who were the cyberfeminists? Why has practically no one heard of them? And what might it look like to hack your gender?

For answers to these questions and more, join us on a whirlwind tour of the hidden history of cyberfeminisms, catalogued through the DIY manifesto form. We’ll rank the best of the best, adapting this rich intellectual legacy to examine our own relationships to computing tools (our phones, our laptops, our bodies) in the emergent techno-dystopia of the present.

Remember: the first computers were women. Why shouldn’t the last women be computers?

Jean Cochrane is a civic hacker from the South Side of Chicago interested in scalable challenges to the most dire injustices of our time, including transgenerational poverty, mass incarceration, and the criminalization of migrants. At DataMade, she leverages contemporary data practices to help empower journalists and advocacy organizations. It’s been five years and she’s still trying to figure out how to recover from critical theory.


Jes Wolfe!

Jes Wolfe!

Synthesizing video and turning it into music!

I like finding ways to use technology for things that it wasn’t originally meant to do. In this talk, I’ll take you on a tour of a rabbit hole I followed recently: Using a web browser’s 3D graphics capabilities to generate 2D video, and then converting the data in that video into sound, to produce music.

Jes Wolfe! is a computer programmer who, in some contexts, refers to themself as an “artist” and/or “musician”, and is especially interested in the artistic consequences of algorithms. They live in a house in the woods in Portland, Oregon and currently work at GitHub.


Joel Potischman

Joel Potischman

What the heck time is it?!?

To set your computer’s clock, just set it to match an atomic clock on the internet. Oh, wait, don’t forget to account for the time the request takes. Oh, wait, and for the time the response takes. Oh, and that request and response times might be different. Oh, and that if you need to set your clock back your logs and transactions will be out of order (hello, bank transfer hacks!). Oh, and this needs to work for several billion devices on the internet doing this all day every day forever. Oh, and if you do it wrong Very Bad Things Can Happen (bricked iPhones! broken TLS!)

We’ll talk about how Network Time Protocol (NTP) sets your clock to the correct time despite the laws of physics making that impossible to do and human nature making it dangerous to even try.

Joel is a developer, cyclist, and maker in Brooklyn and he knows what a cliché he sounds like but he’s okay with that. He spends his days building things at Postlight Studios.


Julian Squires

Julian Squires

The emoji that killed Chrome!!

One day, I came back from lunch to discover everyone’s copy of Chrome wouldn’t stop crashing!! How could turning on a printer downstairs cause an office-wide browser outage!?! A glorious part of programming is when a bug reveals the delicate fragility of a system far beyond its scope! Tracing down the culprit will take us on a journey through Unicode, mDNS, gdb, tcpdump, tcpreplay, and Objective-C!!

Julian is an eccentric layabout in Montreal, Canada. He gets paid to slowly program computers fastly.


Kevin Chen

Kevin Chen

HDR photography in Microsoft Excel?!

Have you ever taken a photo with areas that are too bright or too dark? As any photographer will tell you, high dynamic range photography is the right way to solve your problem. And, as any businessperson will tell you, Microsoft Excel is the right platform to implement your solution.

In this talk, I’ll explain the algorithm from one of the foundational papers about HDR imaging — no prior image processing knowledge required. Turns out, it’s just a system of linear equations! So, obviously, the next step is to implement HDR in a spreadsheet. Because we can. The end result reveals how this complicated-sounding algorithm boils down to a few simple ideas.

Kevin is an amateur photographer and Microsoft Office enthusiast. He also studies computer science at Columbia University.


Lisa Ballard

Lisa Ballard

Where Are All the Space Robots?!

Earthlings are currently communicating with over 30 space probes that have escaped Earth’s orbit and set off into our solar system and beyond. These probes have origins from countries all over the world, and several are international collaborations. They conduct a wide variety of science experiments and take a lot of amazing pictures, but getting information about them can be tricky. Several space agencies detail their own missions to varying degrees around the web, but outside of Wikipedia, there was not a single website that described all the current active robots humans are currently communicating with, so we decided to build it! We wanted to create a website that was both beautiful to use and provided up-to-the-minute information about Earth’s robotic ambassadors. I’ll demo the site, talk about the technology we used to produce it, and show how we use some Python tools and an undocumented online data feed from NASA’s Deep Space Network to display near-real-time information about each probe.

Lisa is a planetary science web developer at the SETI Institute, the CTO of Spacehack.org, and an appointed NASA Datanaut. She loves creating beautiful user experiences through close collaborations with designers, and is on a mission to make space mission data more accessible.


Mahtab Sabet

Mahtab Sabet

PUSH THE BUTTON! 🔴 Designing a fun game where the only input is a BIG RED BUTTON! 🔴 !!!

In October 2016, I attended “Gift the Code”, a charity hackathon in Toronto. Our team built “PiKit”, a game designed for kids who lack fine motor control or who have limited mobility. The challenge was to build a fun, compelling, and educational game in which the only input was… a BIG RED BUTTON! 🔴 !!!

This talk is a beginner’s guide to designing and building a game, based on what I learned as a first-time game developer at the hackathon. I’ll talk about using constraints to spur creativity in a design sprint, how to get inspiration from your favourite games, and how to design a game with logical level progressions so you can help the player understand what to do next, without explicitly telling them what to do.

Mahtab works as a Senior Software Engineer at Capital One in Toronto, Canada…striving to perfect an online banking platform that consists entirely of a BIG RED BUTTON! 🔴 !!! (just kidding ☺️)


Mark Dominus

Mark Dominus

I got the computer to find words with good anagrams and throw away the boring ones!!

25 years ago I got the computer to search the dictionary for words that were anagrams of one another. The results were voluminous, but mostly boring. So I tried helping the computer to understand which anagrams were boring so it could throw them away. This worked!

In 1992 I used a brute-force algorithm, which was pretty slow; the program took a few hours to run. This year I learned a more sophisticated algorithm to do the same thing and implemented it. The new program was super fast! It took only a few seconds.

I’ll explain both algorithms and reveal the surprising results!

Mark Dominus became interested in programming in the mid-1970s from watching his mom do it. He likes programming, anagrams, quilts, the moon, the sun, mathematics, and figs.


Michael Kwan

Michael Kwan

No battery, no (watch) life!!

Smartwatches are smaller and lighter than any handset! Anything that drains slightly more power can tank your battery life.

This talk is a set of case files from a detective’s investigation of what killed the battery this time, and the various culprits involved. With a full mobile operating system running on the device, there’s plenty of suspects.

Michael Kwan has worked on Android Wear for a while now, but he’s had a watch frequently strapped to his wrist since he was a young’un. He likes climbing things and plays way too many board games, but somehow has yet to do both at the same time.


Mindy Preston

Mindy Preston

DHCP: IT’S MOSTLY YELLING!!

The Dynamic Host Configuration Protocol (DHCP to its friends) is the magic by which your laptop knows how to get to Twitter on a brand new network about which it knows nothing. DHCP can tell your computer what its address should be, and where it should go to connect out to other networks. It can also tell your laptop weird stuff, like that it should run all the traffic through a proxy you’ve never heard of!! IT ALSO WORKS MOSTLY BY YELLING!

Mindy likes cats and programming in OCaml. She mostly works on Mirage, a library operating system that generates unikernels. She has been a professional DHCP understander since 2003.


Paul Frazee

Paul Frazee

Simulated Gravity Comes from Within!!

The massively-multiplayer game Eve Online slows down the in-game clock when there are too many players in a region. That way, the network has enough time to process all those players.

So here’s a question: What if you slowed down the clock – not in regions, but variably throughout the entire game, as one big region? Wouldn’t that screw with your physics engine? I got curious, so I wrote a simulation with this time dilation added and… well, objects started orbiting each other!! The weird thing? I didn’t include gravity in my program.

Paul’s a lifelong hacker with a love for games, music, history, and design. Paul cofounded Blue Link Labs and the Beaker Browser project.


Nick Sullivan

Nick Sullivan

Requiem for a nemesis!

This is a story about three dirty letters: DRM. For five years, my job was to make sure that media purchased on a platform was only consumable by the purchaser. A few months into my job, a pseudonymous reverse engineer published a C program that would decrypt music purchased on the platform so that it could be played anywhere. Over the next five years, we engaged in a long-form chess game in code. In this talk I’ll share what I learned from this half-decade battle of wits, and wistfully wonder where my anonymous adversary is now.

Nick Sullivan is head of cryptography at Cloudflare. He built Cloudflare’s security engineering team and led major projects like Keyless SSL and TLS 1.3. Previously, he held the prestigious title of “Mathemagician” at Apple, where he encrypted books, song, movies and other varieties of mass media.


Richard Harrington

Richard Harrington

BEEP!! See AppleSoft BASIC and 6502 assembly language written on an actual Apple IIc from the 80s! Fresh on startup with no software installed!

What’s the first thing you see when you turn on your computer? Back in the day (1983 or thereabouts) on the Apple II+/e/c, it was a command prompt and a blinking cursor! You had no choice but to start programming, and it was easy because it was BASIC! You could even drop down to an assembly language prompt and start poking around and entering instructions in the idiom of the 6502 processor itself! We’ll write a short animation program in BASIC, a subroutine in 6502 assembly, and call the latter from the former, all with no software installed but the ROM that came with the computer! (Speaker’s actual Apple IIc from childhood used in talk!)

Richard Harrington started programming in 1980, ran away from it for the theater in 1984 at the age of 15, then returned to his first love 25 years later, after touring the world with (among other things) a clown show called Motel California: the heartwarming tale of a ruthless Belgian mercenary who gives up his life of killing for the cabaret. Richard is currently a software engineer at SoundCloud.


Ruchir Khaitan

Ruchir Khaitan

Interpolation Search Can Be Fast, in Some Situations, Sometimes, If You Try!

When was the last time you binary searched a phone book? Never? What, you’ve never used a phone book? Okay, fine, I’ve never actually used a phone book for anything other than a doorstop either. But, if I had to search in one I would use interpolation search. It’s the ideal search algorithm / data structure for searching large arrays repeatedly. And with a little bit of operator-strength reducing math sorcery, it’s not just theoretically fast, it’s also useful in real life!

Ruchir loves making computers go faster. He also loves eating, cooking and thinking about his next meal. He works on the Real Time Platform Team at AppNexus.


Scott Vokes

Scott Vokes

How do Keyboards Work? HIDing, in Plain Sight!!

We spend a lot of time with our keyboards. How do they work? How does pushing dozens of keys on a board transmute into text, code, and commands that control computers?

I have been building a keyboard from scratch, and I’ll talk about the different pieces: from the circuit that connects the key switches to the firmware that reads them and presents everything in USB. I’ll also have some tips if you want to make your own keyboard, Emacs foot pedals, or other Human Interface Devices.

Scott is a senior software engineer at Helium, where he works on embedded and distributed systems.


Tara Vancil

Tara Vancil

How Merkle trees enable the decentralized Web!

Decentralized networks operate without relying on a central source of truth, and instead rely on group coordination in order to establish a shared state. Trust is distributed among participants, so to have confidence that each participant is telling the truth, there must be a mechanism for guaranteeing that participants have not accidentally corrupted or intentionally tampered with the system’s state.

Enter the Merkle tree, a data structure that was patented in 1979, and because of its unique content validating and performance qualities, has since become the backbone of decentralized software like Git, BitTorrent, ZFS, and Ethereum.

Tara helps build Beaker, a browser for the peer-to-peer Web. She’s enthusiastic about decentralizing the Web, and thinks that peer-to-peer protocols will reinvigorate the creativity of the Web’s early days.


Walt Mankowski

Walt Mankowski

A punch card ate my program!

COBOL is the Rodney Dangerfield of programming languages — it doesn’t get any respect. COBOL is routinely denigrated for its verbosity and dismissed as archaic, and for good reason: COBOL bears little to no resemblance to modern programming languages. Yet COBOL is far from a dead language. It processes an estimated 85% of all business transactions, and 5 billion lines of new COBOL code are written every year!

In the past I’ve argued that COBOL isn’t such a bad language, but I’m not going to do that here! Instead, we’ll journey deep into the past to recreate a retro bug that could only happen in COBOL! Our travels will include:

  • syntactic white space!
  • scotch tape!
  • dueling compiler options!
  • virtual punch cards!
  • sentences!
  • code blocks!
  • periods!

No punch cards were harmed in the creation of this talk.

Walt Mankowski is a recovering ivory tower computer scientist who recently completed a postdoc working with biologists to process and visualize terabytes of 2D and 3D time lapse microscope images. In his past life he spent 10 years as a COBOL programmer at a major cable home shopping network. He enjoys Perl, regular expressions, high-performance computing, and Futurama.


Yomna Nasser

Yomna Nasser

Islamic Geometry: Hankin’s Polygons in Contact Algorithm!!!

In this talk we will go over Hankin’s “Polygons in Contact” algorithm, a technique for generating common patterns encountered in Islamic geometry, and some variations on it. There will be an introduction to tiling theory, quite a few pretty pictures, and two (!!) interactive examples in JavaScript.

We’ll also briefly touch on the historical and cultural aspects of this kind of geometry!

Yomna likes collecting musical instruments, discrete mathematics, cooking, and cold, dark rooms. She is a Technology Fellow at the EFF, and can be contacted via Twitter.