MDST 2012
it seems to me sometimes I've entered some inverted zone, some mirror world where the dorkiest shit in the world is completely dominant. The world has dorkified itself.—Mercer in Dave Eggers, The Circle (2013)
Are we all hackers now? This course chronicles the story of a kind of identity that began among geeky tinkerers and a murky criminal underground, only to be adopted by management consultants and CEOs. How has hacker culture helped form our technological lives? Do hacker formations like Wikileaks, Anonymous, and open-source software represent a new kind of politics, or a rejection of politics as we know it? We will explore the contested figure of the hacker in the past, present, and science-fiction of the internet.
This course includes assigned texts, class discussions, guest speakers, and a significant component of hands-on practice. All levels of technological prowess are welcome, but expect to learn some skills and to help teach others. Hacker culture is not a spectator sport.
Nathan Schneider
nathan.schneider@colorado.edu
Armory 1B24, meetings by appointment via email
Website: www.lelandquarterly.com
Basically, students are expected to hack it. This can take different forms for different people. We'll work together to make the expectations clear, and then it's up to you how and to what degree you'd like to meet them.
We will use two platforms to carry out our work for the course:
Students are responsible for contributing to both meatspace and virtual discussions. No attendance will be taken in class. However, showing up and participating in all scheduled meetings will help you get the most you can out of the course, and absence is not particularly compatible with participation. Most weeks will follow a common pattern:
Each week, each student should contribute an Exploit—a hack that addresses the week's topic in a creative way, reflecting technical ingenuity (though not necessarily expertise) and engagement with the week's texts. Exploits are due in Canvas by sunrise on Saturday morning.
Each Exploit should include a README text that explains the nature and rationale of the hack, referencing relevant assigned texts. You may add supplementary files (code, screenshots, videos, etc.) in any open format you like. But the README text should include a full explanation and rationale. Exploits need not and should not be lengthy; their value is in the adventuresomeness of their thinking, not their girth. Also: do not break the law.
We learn from each other. Each week, usually during the second meeting, a group of students will present to the class about a hacker skill related to that week's topic and Exploit assignment. This presentation will generally precede the week's DiscoTech, so aim to offer something useful—a skill that fellow students may or may not choose to use as part of their own Exploits. Each presentation should be no more than 10 minutes long, with slides and/or a live demo. Slides should be turned in on Canvas before the class period of the presentation begins.
Following the presentation, student presenters will lead the DiscoTech, using whatever format they like to invite participation, collaboration, and sharing of ideas.
Become a goon. The final project for this course is to write an illustrated, 1,800-to-2,000-word report on a real-world hack for a relevant establishmentarian organization. If the hack in question is of questionable legality, write as an FBI agent, perhaps. If the hack is just a brilliant piece of technology, write as a stiff for a big computer company trying to figure out how to capitalize on it. In any case, with clear language and documented research, explain the nature of the hack, its significance, and a recommendation for what your organization should do about it.
The final product itself should be a convincing hoax in the voice and visual character of the organization it supposedly represents. For examples of what this could look like, peruse Imperva's Hacker Intelligence Reports or Wired's Hack Briefs.
This project includes a built-in debugging and revision process.
Grades are not especially conducive to hacking, but we need some equivalent in order for this course to be legible to the university. Therefore, work will be rewarded with bounties. These are functionally the same as grades, but perhaps giving them a different name will prevent them from killing the learning process in the way that grades normally do. The maximum bounty awarded for each portion of the course is as follows:
Bounties will be compiled in (more or less) real time on Canvas for easy access. The final grade will be calculated by adding up the bounties each student has earned. Based on the stated bounty structure, grades will be awarded as follows: A (94-100), A- (90-93), B+ (87-89), B (83-86), B- (80-82), C+ (77-79), C (73-76), C- (70-72), D+ (67-69), D (63-66), D- (60-62), F (0-59).
All due dates are at 2 p.m. Mountain Time.
Exploit: How are you already a hacker? The word hacker can mean a lot of things. Although it has tended to be associated with certain breeds of techies, let's use it capaciously to help introduce ourselves to each other. How have you tinkered or tweaked in your life? How have you broken in, broken out, or revealed something that was supposed to be hidden? Review the Urban Dictionary definitions, find yourself in there, and tell us about it.
Exploit: Teach yourself a bit of a computer language and make a program that does something neat. It might seem scary or fancy, but it's completely possible to start learning how to code online, and lots of hackers are more or less self-taught. Whatever you know already, use this Exploit to learn a new programming language or trick. You can do something as simple as the classic “Hello World!” or make your own chatbot. Try the elegant language Python on CodeAcademy, or get visual with JavaScript at Khan Academy, or play with MIT's Scratch. The Hour of Code project has tons of activity ideas on top of that.
Exploit: Do something worthwhile with an old machine. Dig up an old, obsolete machine and have fun with it. What's lying around your house or our campus collecting dust? What neat software have most people forgotten about? What can it do that a fancy smartphone can't? Pay a visit to the Media Archaeology Lab on campus and play around. Show us what you can do with a neglected tool.
Exploit: Set a valuable piece of information free. Lots of data and knowledge are caught up in places that aren't accessible—in offline archives, behind paywalls or private intranets, trapped in someone's mind. Following the hacker dictum “information wants to be free,” let something loose in a way that will facilitate its flow. Post it online in an appropriate spot, or share it with those who will, or find a liberating offline place for it, like a flyer or a megaphone. Be sure to explain what makes the information valuable and how what you do with it is meaningfully liberating.
And watch one of the following films:
Exploit: Devise a clever license or corporate structure. Following in the tradition of legal hacks, from Richard Stallman's GNU Manifesto to Dymitri Kleiner's copyleft license, develop a hack of your own. What would you love to be able to do that current IP or corporate structrues tend not to allow? How can you tweak them? Like the Green Bay Packers, you could imagine a company that has to give everything to charity if it ever sells out. Or a copyright notice that empowers some colors of cats but not others. Do your best to make to both radically impactful and actually enforceable.
Exploit: Submit a bug report or feature request to an open-source project. Critical to any open-source project is the participation of the community. For those of us who are not amazing software engineers, one of the best (and most rewarding) ways of participating is through feedback. Identify which software that you use is open-source—Canvas and Hypothesis are a start—and try to find where the developers communicate with users. (It's usually in the Issues section of the project's GitHub page.) Write to them with a bug you've noticed or a feature you'd like to see. Keep in mind Raymond's essay on questions to help ensure your recommendation is usefully phrased and well researched.
Exploit: Create an identity. Who you appear to be can change what you can do. Try on a new online mask—on a social network, for instance, or across a few. Form a profile, take on a character, and see what happens. What can you do that you might not otherwise try?
Exploit: Get someone who doesn't know who you are to do something worthwhile. Use your identity created in the previous module, or try another, or use no identity at all. This can be online, over various kinds of networks, or in meatspace. Take a stranger to lunch, or get a stranger to send you a dollar. Make a friend, or not. But exercise your capacity to influence the world without doing it as you.
Exploit: Audit your communication practices and identify improvements. Review some of your regular practices, digital and otherwise, and locate potential security vulnerabilities. Do some research about the nature of potential threats and how they might be mitigated. Check out software listed at PRISM Break, if the dangers are digital. Try out a few patches, and determine whether they're worth the trouble.
Exploit: Make a remix. Take something out there and turn it into something else. Mash up music or video into something surprising, or rewrite a book. Make some fan-fiction. Save a website's HTML code to your computer and mess with it. Explore the possibilities of free culture, or what culture would be like if it were really free. Show us what you can come up with.
Exploit: Get some of a crypto-asset and conduct transactions. One way or another—from an exchange, or a friend, or a classmate—obtain some quantity of a Bitcoin-like asset and carry out a transaction or two or more. If you can do something useful with it, all the better. Share a record of the transaction on the appropriate blockchain. Consider popular online wallets like Blockchain.info and Coinbase, or something else. Probably avoid “core” wallets because they could download several gigs of data to your hard drive before they can even get started.
Exploit: Devise a tool that disrupts a gatekeeper. What is in the way of something worth doing? What systems do you encounter that are needlessly cumbersome or inefficient? Who is leeching profits without contributing any useful value? Come up with an idea—you don't have to implement it, especially if it's risky—that would clear the way. Bypass a government or skirt around a middleman. Get the goods.
Exploit: Co-opt something. Notice something that is fresh, original, grassroots, and authentic, and devise a plan for transforming it into something palatable and safe for a dominant class, especially if it's profitable. Entice some of the originators to sell out. Reflect on what doing that feels like, and consider what the consequences might be for the originating communities.
Debug the final project with peers and conclude the course.