!!Con West logo

!!Con West 2019

the joy, excitement, and surprise of computing

Feb 23 - 24, 2019; Santa Cruz, CA

Who spoke at !!Con West 2019?

Keynote Speakers

Lynn Cyrin

Profile Photo of Lynn Cyrin The Best Parts! Of My Favorite Things!

The software engineering ecosystem is so big! How can you tell which tool is best for which job, and what’s going to give you the simplest path to get a job done? How do all of the various systems and tools complement each other? These are all questions you will have to answer on a regular basis, and I want to help you! We’re going to go down the list, and I’m going to tell you about all the best parts! of my favorite things! So, the next time you think “wow, I really need to catch this mouse”, you’ll remember: “oh hey, I heard cats are great at that!”

Lynn Cyrin is a software engineer and programming zealot. They live in tech culture most of the time, and care a lot about making sure our code children are well taken care of.


VJ Um Amel

Profile Photo of VJ Um Amel Glitch Nuggets of Resistance!

This talk introduces a concept of glitch, or error/failure, which also serves as an entry point for activists, by drawing on my book project titled Glitch Resistance: the Arab Uprisings, Social Media, and the Virtual Body Politic. If glitch does violence to the surface of the image, it also enables us to see more, by questioning the source, revealing the material support of the digital ether, and suggesting how images are recomposed in circulation. I will demonstrate how to apply this theory of the glitch onto an aesthetics of abstraction by drawing on live performances, installation, and digital arts.

VJ Um Amel is the cyborg imagination and the virtual representation of Laila Shereen Sakr, a digital media theorist and artist. A creative coder and immersive storyteller known for creating the award-winning media system, R-Shief, she is also Assistant Professor of Media Theory & Practice at the University of California, Santa Barbara.


Lightning Talks

(Sorted by sha256sum of the speaker’s name, of course!)

Tobias Bieniek

Profile Photo of Tobias Bieniek Help! How do you let others know what’s going on when you’re 8000 feet up in the air in a plane without an engine?!

First of all: Keep calm and carry on! Chances are that you are on board a glider, which is flying perfectly well without an engine. In this talk you’ll learn how glider pilots can travel hundreds of miles with just the power of the sun, and how you can watch them do their thing with your feet on the ground. We’ll discuss how modern technology makes this sport spectator-friendly, and how all of this can be achieved with very low cost.

Tobias Bieniek is a software developer by day, an open source developer by night, and a glider pilot on the weekends. He is a member of the Ember CLI team and an active member of the Ember.js community working on a number of popular addons.


Pranshu Bajpai

Profile Photo of Pranshu Bajpai The Conjuring: ransomware edition!!

Ransomware is malevolent software that possesses hosts, holds files hostage, and allows its dark masters to perform extortion. This form of malware seeks to infect weak hosts, acquires a unique encryption secret, encrypts user data using this secret incantation (key), locks away the key so the victim cannot obtain it, and finally exhibits signs of possession (ransom notes). Once the possession takes hold, no exorcist or security expert can help.

But how does ransomware really function? What does it take to successfully carry out the biggest financially motivated cybercrime operations? How does ransomware infiltrate hosts? Where does it acquire the unique encryption key needed to encrypt each victim’s data? How does it hide this key from victims? Why is data recovery infeasible without the key?

In this talk, we discuss the intricacies of a ransomware infection. We follow the process of host infiltration, communication with malware’s command and control server, key management on host, file encryption, and finally the underground market of buying, selling, developing and distributing ransomware. We dissect real-world ransomware and show demonstrations of the most successful ransomware variants in action!

Pranshu Bajpai (@amirootyet) is a security researcher working towards his PhD in Computer Science and Engineering at Michigan State University. His research interests lie in computer and network security, malware analysis, digital forensics, and cyber crimes. In the past, he worked as a penetration tester. He has been an active speaker at conferences and spoken at DEFCON, APWG eCrime conference, GrrCon, ToorCon, CascadiaJS, BSides and others. He holds an MS in Information Security and an MBA in Marketing.


Misty De Méo

Profile Photo of Misty Déo Let’s translate old video games! How do they even work?!

Old video games were made under incredible technical pressures that are almost unimaginable to programmers today — so why don’t we imagine them? I will share my experience translating the Lunar series of Japanese role-playing games from the 1990s. We’ll learn how text was represented in the ‘90s, how we can find text hidden in binary file formats, and how we can replace it. Along the way, we’ll learn about the kinds of techniques programmers used when faced with tight limitations.

Misty De Méo works on internal tools at GitHub and is a member of the Homebrew package manager development team. She also likes old video games a bit too much, and uses her degree in archival studies to dabble in digital preservation.


Alex Rasmussen

Profile Photo of Alex Rasmussen EarthBound’s almost-Turing-complete text system!

EarthBound, a role-playing game released for the Super Nintendo in 1994, is one of the most universally revered games of all time. At the core of EarthBound is a super-complex scripting language that controls text, scripted cutscenes, music, sound effects, window management, and more. In this talk, we’ll explore some of the language’s more interesting or charming features.

Alex does data engineering consulting as Bits on Disk. He likes making music, reading good books, and playing old video games.


André Arko

Profile Photo of André Arko How to calculate the phase of the moon very, very badly!

This talk is about how, despite “common knowledge”, lunar cycles are not 28 days long, and in fact lunar cycles don’t have a single numerical length! You’ll hear about several very bad ways to calculate the phases of the moon, why they seemed reasonable at the time, and exactly how it took three years from the time one app shipped to the App Store before the calendar was even arguably correct.

André aspires to one day make computers do his bidding, consults at Cloud City in San Francisco, and founded Ruby Together, a non-profit that funds open source development work.


Simon Porter

Profile Photo of Simon Porter Guiding a starship with noise! And blinking!

The January 1, 2019 flyby of (486958) 2014 MU69 by NASA’s New Horizons spacecraft made MU69 the most distant object ever visited by humanity. However, MU69 is extremely faint, and only barely detectable with the Hubble Space Telescope. I will discuss how we made kernel density estimators for the faint images from Hubble and combined them with Markov Chain Monte Carlo techniques to build a probability cloud of where MU69 would be during the encounter. We also used this probability cloud to observe several stellar occultations of MU69, watching stars blink out for less than a second in order to tell us the size and shape of MU69. These techniques show the power of combining modern numerical probability estimates with a strong forward model to pull the best possible prediction out of poor-quality data.

Dr. Simon Porter is a co-investigator on NASA’s New Horizons Kuiper Belt Extended Mission, and works at the Southwest Research Institute in Boulder, Colorado. He grew up in three countries, and is a quad citizen. He started programming orbital mechanics in high school, and hasn’t really stopped since.


Michael Knowles

Profile Photo of Michael Knowles Hacking Lego! Computer generated Lego instructions!

I like Lego, but the idea of making large sculptures without some sort of blueprint was intimidating. Instead of going to art school, I wrote a tool that uses a 3D object or scan and converts it into a sort of Lego instructions that I could use as a guide. Easy giant Lego sculptures! Well, easy to that step. Actually getting the parts and putting it together is a different talk. Easy giant Lego sculpture … instructions!

This talk will cover what was learned in the process of making this tool, including some general thoughts about leveraging libraries in your code.

Michael is an award-winning Lego sculptor who is banned from ever becoming one of those fancy “Lego Certified Professionals” that get all the press. After years of being slightly ashamed of his hobby, he finally gave up on caring and keeps way too many pieces at work. His kid is occasionally allowed into the Lego room, but the door gets locked when friends come over. Jerk parent.


Emilia Lazer-Walker

Profile Photo of
Emilia Lazer-Walker Computers are fast! But how come they sometimes feel slow?

It’s super-important for computers to feel responsive. Everyone from academic HCI researchers to revenue-focused product managers have been telling us this for years. And yet, even as computers have gotten faster and faster, it often feels like the software we use daily has gotten slower!

What’s the deal with that? Why is latency so hard to minimize, and how can we even measure or detect that? How can we make things better for users, either by making things speedier or just making it feel like they are?

This talk will cover all of that and more. We’ll focus largely on games, as competitive-level gamers demanding frame-perfect input over severe network constraints are a particularly extreme (and interesting!) edge case.

Emilia is a Berlin-based artist and engineer. She makes interactive art, experimental games, and software tools designed to spark intellectual curiosity and inspire people to become self-motivated learners.


Breanne Boland

Profile Photo of Breanne Boland /etc/services is made of people! (and also ports!)

Every computer, Windows, Mac, and *nix alike, includes some variation of the /etc/services file, the rare file that is both machine-usable and human-readable, so that applications and people alike can know what ports are meant to be used for what purposes. But the further you go into this 13,000-line file, the more traces of humanity you see — names, email addresses, and dates paired with information about ports and the apps that claim them. Who are these folks? How did their names get in the file that came with your OS? Why does “chipper” get port 17219 and “octopus“ claim port 10008? Who oversees this vital file that puts the “ssh” with port 22 when you netstat? And how could you get your own piece of port-assignment glory?

Breanne is an SRE and a writer. She loves travel, cats, and vinho verde (though the order of importance changes, depending on the day).


Daisy Tsang

Profile Photo of Daisy Tsang Observability in the Kitchen: Improve Your Breadmaking Skills with Open-Source Monitoring!!

I love to bake. A few months ago, I became interested in the art of making one’s own sourdough, a type of bread that, due to its fermentation process, is a much healthier alternative to bread that is readily available today. The sourdough breadmaking process is a fascinating combination of biology and physics, but working with natural starters can be difficult because they are very sensitive to variations in temperature and humidity.

It is fun and useful to leverage inexpensive sensors, Raspberry Pis, and Prometheus (a monitoring system written in Go) to monitor the humidity and temperature of my sourdough cultures in order to gain insight into how these parameters affect the growth of each type of culture. The result? Analytical insights into an age-old breadmaking process via graphical reports and alerting rules.

I am going to share my delicious and metric-filled breadmaking process, hopefully inspiring attendees to see how modern-day tooling written in Go can be used to enhance traditional fields.

Daisy is a Software Developer and Writer based in Berlin (Germany) who is originally from Toronto (Canada). She loves learning about new technologies, and is particularly interested in the open-source space. Her non-technical interests include knitting, baking, and learning new natural languages.


Tabitha Sable

Profile Photo of
Tabitha Sable

My, my, TTY!

The TTY abstraction in modern UNIX-like systems is ancient, complex, and nearly invisible to newcomers. It just works, except when it doesn’t. I’ll lead a brief tour of the history behind the terminal windows we use each day, from paper teletypes and serial links to gnome-terminal, ssh, and screen.

Tabitha loves cats, weird machines, and learning how things got to be this way. You’ll often hear her asking questions like “what’s inside there?” and “how could I build this?”.


Michael Arntzenius

Profile Photo of
Michael Arntzenius Software patterns … from the 9th century?!!

In 9th-century Europe, agriculture underwent a major refactoring — all to change a single magic constant. Traditionally, farmers left half their land uncultivated, to let it recover depleted nutrients; now they started leaving only a third fallow. This generates 33% more food on the same land! Sounds like an easy win, right?

Not so fast. The new three-field system took nearly two centuries to get fully deployed to production! Not everyone was happy with the pull request, and a lot of infrastructure needed reconfiguring to support the new model.

Sound familiar? It should! We sometimes convince ourselves programming is an exceptional discipline, with new and unique challenges. But many of our craft’s deepest problems are more general than we realize. Backward compatibility; systematic trade-offs; pipelines and bottlenecks; the importance of good tooling — all of these had their part to play in the long and difficult transition from two- to three-field agriculture.

Michael Arntzenius studies programming languages, in theory and practice.


Molly Lloyd

Profile Photo of Molly Lloyd Everything the light touches is a triangle: how computers draw!

Even though you often can’t see them, almost everything a computer draws is a triangle! Including curves, 3D surfaces, and your favorite video game characters! We will discuss why triangles are unique and cool, and how they unlock much of the ‘magic’ behind 3D computer graphics and rendering. But it’s not really magic! And you don’t need formal computer science training to understand how the images on your computer screen or in your favorite video game get drawn.

Molly is a software engineer who spends her days making maps and building tools for exploration and creativity that people love to use. She spent the last few years working on open source map rendering libraries which is where she learned how computers draw.


Nick Piesco

Profile Photo of Nick Piesco This one simple 600-year-old trick makes your website more accessible!

‘Accessibility and the Web’ sounds like a thoroughly modern set of challenges, but it includes problems that people have been trying to solve for hundreds of years.

In mediæval times, a knight being able to recognise a friend or foe at a distance was a matter of life and death. Rules evolved around the coats of arms they bore to make identifying each other easier, giving birth to the science of heraldry. The most important one of those rules is around colour contrast.

I’ll talk about why colour contrast is so important to accessibility, and then I’ll take us on a whirlwind tour through the history of heraldry before showing how rules that originated on the tournament ground inform our best practices here in the 21st century.

Nick Piesco is a front-end developer at Xero. Before playing with things on a computer screen for a living, he spent more than a decade on TV screens as a meteorologist. When he’s not nerding out about design and type, exploring other cultures through their junk food, or finding a new beer to try out, you can find him tending his licence plate collection.


Jennifer Wang

Profile Photo of Jennifer Wang IMUs FTW!! Building IMU-based gesture recognition!

An inertial measurement unit (IMU) is a device that can sense motion and orientation. If you combine IMUs with machine learning, you can detect gestures! For last Halloween, I built a magic wand that combines IMUs, machine learning, and DIY electronics to detect different gestures when waving the wand. In this talk, we’ll go over the steps I took to build the wand and how you can do it too! Hardware prototyping is becoming more accessible than ever for people without a traditional hardware engineering background, and there are lots of exciting things you can do when computing meets the physical world.

Jennifer Wang is a software engineer and hardware prototyper. She loves sensors, documentation, empathy, human-computer interaction, and technology for wellbeing & health! She has built sensor algorithms that have launched to 1+ billion worldwide. Jennifer also likes musicals, dessert, and rock climbing.


Max Kreminski

Profile Photo of Max Kreminski Making blackout poetry with computers!

Blackout poetry creatively subverts a source text by blacking out most of its words with a marker or other writing implement, in the process revealing a poem hidden within. I like blackout poetry so much, I decided to teach my computer to turn any arbitrary web page into blackout poetry at the press of a button. In this talk, I’ll discuss why blackout poetry is cool; what we might learn from teaching computers to create it; and how I went about building a browser extension that could generate moderately coherent blackout poetry from arbitrary English text. Then I’ll go over why and how I ended up transforming my blackout poetry generator into a mixed-initiative blackout poetry composition tool that brings a human poet back into the loop!

Max Kreminski is a Computational Media PhD student at UC Santa Cruz, using AI, HCI and generative methods to augment human creativity. Ask them about gardening games!


Wesley Aptekar-Cassels

Profile Photo of Wesley Aptekar-Cassels Robots, rockets, and more! Control theory in 10 minutes!

Control theory is a branch of science and engineering dedicated to understanding and analyzing systems, how they respond to input, and how to control them. Learning about control theory has changed the way I view the world — having the tools to think about the stability of systems and the mechanics of closed-loop feedback has been far more widely applicable than I’d thought. Control theory is also a fun way to see the practical applications of math that is normally abstract (it turns out that imaginary numbers can actually reflect properties of systems that we intuitively think of!). Plus, it’s lots of fun to watch robots move around!

Wesley likes asking surprising questions, ranting about computers, and attempting to think about systems far too large to fit in their brain.


Amrita Mazumdar

Profile Photo of Amrita Mazumdar How to throw out 95% of pixels in virtual reality, without anyone noticing!!

Did you know that the eye only perceives 1% of what you’re looking at in high resolution, and that everything else is blurry? Probably not, because your perception tricked you into not noticing! In this talk, I will describe how to throw out most of the pixels in virtual reality videos without impacting perception, through a technique called foveated rendering!

Amrita is a PhD student at the University of Washington, conducting research at the intersection of computer architecture and virtual reality.


Jeroen (Jerry) van Leeuwen

Profile Photo of Jerry van Leeuwen Fast code! By removing all branches!

Performance optimization should never be your first concern when creating a solution, and run-time code generation is always a measure of last resort.

But when I was faced with the seemingly insurmountable task of making .NET 2.0 serialization as fast as hand-tuned assembly in a Delphi framework, it was time to break all rules and resort to the dirtiest of tricks to make the impossible possible.

In this talk I will illustrate how I used run-time code generation, elimination of conditional branches, and some dangerous assumptions to beat an already blazing fast solution to the finish.

Jerry was educated in the Netherlands, lives in Australia, and now works for a Californian company. He loves challenges that seem insurmountable and often forgets to define the boundaries of the box, which can lead him to look for solutions in many improbable places. To make this talk proposal submission more challenging, he left it till the last day … probably unintentionally, but who knows?


Tom Verbeure

Profile Photo of Tom Verbeure The world’s first racing-the-beam ray tracer on discarded FPGA hardware!!!

Racing the beam is a technology that was used in the 1977 Atari 2600 console to display game images on a computer system that did not have enough memory to store the full image. Ray tracing is the holy grail of computer graphics rendering. And FPGAs are chips with programmable gates that can be used to implement all kinds of hardware accelerators, from telecommunications to real-time image processing.

In this talk, I show how you can bring these three pieces together and create, on hardware that can be purchased on eBay for just a couple of dollars, a demo in the style of the late eighties and nineties, where the main goal was simply to show a neat visual effect on an underpowered machine.

After spending his daytime hours working on fun electronics projects, Tom goes home for dinner, and then retreats to his garage for some more hours of working on fun electronics projects.


Annie Cherkaev

Profile Photo of Annie Cherkaev The secret life of Not-a-Number!

In this talk we’ll talk about NaN-boxing, an especially beautiful bit-level hack that might be running on your computer right now!

The floating point standard defines a special value called Not-a-Number (NaN) which is used to represent, well, things that aren’t numbers. Double precision NaNs come with a payload of 51 bits which can be used for whatever you want — including using the payload to represent all other non-floating point values and their types at runtime in dynamically typed languages.

We’ll look at some juicy details of JavaScriptCore, Safari’s javascript interpreter, where everything is a float!

Annie loves bit-patterns, though she does not execute raw binary herself. She could, but she doesn’t.


Eric Weinstein

Profile Photo of Eric Weinstein Value Your Types!

You’re probably familiar with types in programming languages, such as “integer” or “list of integers.” But what if your type system were powerful enough to express types like “non-negative integer” or “list of strings where each string is at least eight characters long”? Welcome to the world of dependent types! In this talk, we’ll explore what dependent types are, how they work, and the relationship between type theory and predicate logic, all using the Idris programming language. We’ll even see when type checking can become (gasp) undecidable!

Eric Weinstein writes poems and programs. He’s currently thinking a lot about machine qualia, game theory in online auctions, and applied ethics in software engineering (for both human and artificial moral agents).


Liz Frost

Profile Photo of Liz Frost Postgres plays Pokémon!

Pokémon is a pretty fun game. You have a bunch of numbers, they do a bunch of math to other numbers, and then you get to hear triumphant music! But the interface leaves a lot to be desired. What if you could augment that clunky RPG-based gameplay with an exciting SQL-based UI? Join me on an exciting journey with emulator internals, Z80 assembly, and extremely overpowered Magikarp!

Liz is trans, queer, and either a software engineer or colourful pony depending on who you ask. She lives with her family and very fluffy dog in Brooklyn.


Arshia Mufti

Profile Photo of Arshia Mufti How DNS doesn’t work!

It’s time to answer that age-old question: how does my laptop always know how to load that Harry Potter slashfic on Tumblr?

Featuring some old photos, a lot of hand-drawn diagrams, and my favourite sitcom, this talk will dig into how the world’s largest, most redundant, and most distributed phonebook looks like it’s working, but actually secretly fails a lot of the time.

Arshia is a wary engineer, an excited conference organizer, a tired student, an enthusiastic Rust community leader, a cautious baker, an avid reader, an erstwhile writer, and a frequent tweeter.


Michael Malis

Profile Photo of Michael Malis Generating fractals … with SQL queries!!!

SQL databases can do a lot. They are fantastic at making it easy to work with large amounts of data. One of the lesser-known capabilities of SQL databases is that they can be used to generate fractals!

In this talk, we’ll take a look at how you can use the SQL features provided by Postgres to generate fractals. Through the clever use of these features, you can generate a wide range of fractals including Sierpinski’s triangle, the Mandelbrot set, and Hilbert curves.

Michael Malis leads the database team at Heap. For his day job he works on optimizing a petabyte-scale Postgres cluster. His hobbies include bouldering and meditating.


Zack M. Davis

Profile Photo of Zack M. Davis Minimax search and the structure of cognition!

We discuss an algorithm for playing chess — or Reversi, or Tic-Tac-Toe, or indeed, any two-player, zero-sum, perfect information game — and its surprising philosophical implications for cognitive science, free will, and ourselves.

Zack M. Davis (GitHub: zackmdavis, Twitter: @zackmdavis) is a programmer and epistemology enthusiast residing in Berkeley, CA.


Katharine Berry

Profile Photo of Katharine Berry Keeping abandoned watches ticking!

These days, it’s hard to find anything that doesn’t need The Cloud. This has revolutionised the world! It has also led us to a world where you can buy a perfectly good device and it will suddenly stop working the next day. What happens next?

I will talk about the demise of the Pebble smartwatch, and how the community worked to keep them ticking. Featuring: clouds, reverse engineering, sustainable services, and a plentiful supply of “interesting” solutions to unexpected problems.

Katharine spent several years trying to make smartwatches at Pebble (which failed) and trying to make smartglasses at Intel (which also failed). She’s currently hoping Google will not suffer the same fate. Some say Katharine owns more little ponies than really necessary, which is of course impossible.


Ori Bernstein

Profile Photo of Ori Bernstein That’s hot!

I work on smart microwave ovens. We don’t tweet images of each food you cook. Instead, we focus on moving heat around inside the device, directing it to where we want it. We can cook two different foods to two different temperatures! How does this work? Linear algebra, heuristics, and some clever hardware. Join me as I give an introduction to the magic that makes this work!

Ori is made of meat. He spends much of his day wiggling his fingers over keyboards to imbue computers with new capabilities. Ori also enjoys cooking.


Michael Albaugh

Profile Photo of Michael Albaugh “Wheels within whiles!” or possibly “Whiles within wheels!”

I built a multi-layer stack of emulations to include 150 years of digital computing tech — from a (relatively) modern laptop through 5 layers of emulation to Charles Babbage’s 1840’s Difference Engine — using various bits of code I had lying around. In the process, I asked myself: “why do I have that code lying around!?!”

This started me thinking about emulation, the whys and ways of its uses:

  • A practical way to extend the life of mature software
  • A tool for conservation, to help understand the design[er]s of past machines
  • An aid to communication with possibly remote co-designers on future machines

Emulation can help communicate through space and time!

I’ll go over some of my favorite layers from that emulation stack and talk about aspects of each, and lessons learned along the way.

The day Mike was born, you could count the fully functional stored program electronic digital computers in the world on the fingers of one hand. He started messing with tech (mostly telecom and video games) when transistors were overtaking tubes in computers, and has long been interested in the history of technology to better understand the human context of its development, “how we got here”, and the roads not taken.


Erica Fischer

Profile Photo of Erica Fischer ifthenelse had to be invented!

60 years ago, several of the world’s foremost computer scientists came together to create the first international programming language standard. The language they created, Algol, is remembered for introducing block structure and for sparking controversy over exactly what it means to pass a parameter to a function. But Algol’s creators also wrestled for years with the core question of how to communicate that in one circumstance a computer should do a certain thing, and in different circumstances it should do something different. I will describe the paradigm of conditional program execution that existed before Algol, the alternatives that the language’s creators considered, the final form they chose, and how it shaped our thoughts going forward.

Erica Fischer is a software engineer and data artist at Mapbox, and was previously an artist in residence at the Exploratorium and on the Android team at Google. Erica’s favorite library catalog classifications include Library of Congress HE, HF, HT, QA, TD, TE, TF, TG, and TK, and Dewey Decimal 352, 388, 711, 782, and 786.