What can 16th century alchemy and a 1980s knitting machine teach today’s developers?
Amy Wibowo, a software engineer at AirBnB, made an interesting connection between the work of developers and an artifact of recent history when she challenged her team to get a 1980s knitting machine to work and accept image files from the web.
In the 1980’s, she explained, Nintendo had plans for making a knitting add-on to the NES, with an interface that resembled Mariopaint. While this product never came to fruition, Wibowo was able to find an actual knitting machine on eBay. “Step one,” she explained, was to learn how to operate the damn thing. “It can thread two pieces of yarn, two different colors. There were so many parts, it was so confusing. I was super afraid that if I pushed the wrong button, I would break a needle and not know how to replace it.”
She and her team learned to replace knitting machine needles and conduct basic repairs. They figured out how to emulate a floppy drive and hack together a custom cable to send original patterns to the machine. One of these original patterns? Grumpy Cat.
Wibowo explained how they wrote their own yarn printer API in ruby/sinatra and printed their first doge meme in yarn. “It ended up being the best team because we had zero ego attached,” she said. “No one knew anything about knitting machines. We had to be fearless because the machine was really old and daunting. We had to be inventive due to missing parts.”
In the end, Wibowo said she learned to have huge respect for anyone who can knit, “because that shit is hard.” She also noted that it’s really enjoyable to apply programming to any of your hobbies and that it feels really great and valuable to pick up something new to remind you what it is like to be a beginner.
Madison+ Ruby 2014 took a turn toward the profound when Coraline Ada Ehmke memorably opened her talk by celebrating one year out as a transgender woman and thanking the community for its support.
“Developers struggle with identity,” Ehmke says. Are we architects? Scientists? Engineers? Artisans? Cowboys? What does it matter? It matters, she says, because we want people in the world to understand what we do. “We are trying to figure out who we are too. We don’t have a big long history behind us.”
Ehmke discussed how the language we use to describe ourselves is very important because it affects how we think. Language affects cognition, perception, and how we describe the world around us. It can limit degrees of thinking. Keeping this in mind, she presented Madison+ Ruby 2014 attendees with an interesting analogy for their work, drawing an instructive comparison between computer programming and the proto-science of 16th century alchemy.
“Alchemy is about transforming base matter into something more closely approaching divine perception,” she says. “Lead into gold was part of [the alchemist's] pitch to the VCs of their era.”
The process of alchemical generation is taking something that is ideal and transmuting into something particular. Alchemists believed ideas descend from above, while harmony rises from below. All things are but imitations of truth: as above, so below.
“This is about the symmetry of what we create,” Ehmke says. “The balance between the ideal and the particular. Alchemy and software development are similar: an inquiry into the essential nature of reality. We produce an effect on the world, on ourselves. Let’s cast our nets wide and unlock our thinking.”
Attendees were deeply impressed by her insights: “amazing, deep, & dense talk from @bantik here at #MadPlusRuby,” said Rick Scott on Twitter. “More in the preamble than in some entire presentations.”