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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
“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.
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.
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.
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.
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.
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.
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 ☺️)
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.
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.
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 On 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.
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.
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.
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.
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.
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.
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.
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.
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!
dueling compiler options!
virtual punch cards!
No punch cards were harmed in the creation of this talk.
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.