Hacker Culture

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)

What is this course about?

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.

Instructor

Nathan Schneider
nathan.schneider@colorado.edu
Armory 1B24, meetings by appointment via email
Website: nathanschneider.info

Objectives

  • Gain familiarity with the varieties of meaning and mystique surrounding hacker culture
  • Acquire some hacker skills and the confidence to acquire more independently
  • Apply lessons from and against hacker cultures in entrepreneurial practice

What are the expectations?

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:

  • Canvas is an open-source learning management system developed by a for-profit company, Instructure. It is currently our campus's official LMS, and we will use it for a variety of tasks, from announcements to grading.
  • Hypothesis is a non-profit, open-source annotation platform that enables users to annotate the internet. Each week we'll use this to annotate and discuss the assigned texts.

Objective 0: Contribute

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:

  • The first meeting, plan to have completed the assigned texts for in-class discussion. Be ready to raise insights and questions from the texts. If we have a guest speaker, be prepared to ask excellent questions. Annotations on the texts are due at this time. One strategy is to take great notes on Hypothesis, print them out from your profile page, and bring them to class.
  • The second meeting, be ready for a more practice-oriented DiscoTech. Plan to have done some preparatory work on that week's Exploit—the skill we'll be learning together. We'll share our ideas, however preliminary, and we'll work on them in class, so plan to have a screen device with you.

Objective 1: Hack

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.

Objective 2: Teach

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.

Objective 3: Master

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.

Bounties

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:

  • Objective 0: 25 points
    • impressive listening and contributions in class discussion (10 points)
    • impressive critical thinking and prolificacy in online annotations (10 points)
    • geeky enthusiasm in both (5 points)
  • Objective 1: 30 points
    • clear explanation along with supporting files in open formats
    • adventuresome and rigorous thinking
    • creative implementation and stretching of skills
    • sophisticated engagement with at least one of the module's assigned texts
  • Objective 2: 20 points
    • accessible and fun introduction to a skill and its significance (5 points)
    • how others can go about learning it—what basic steps, what resources? (5 points)
    • cultural context and history that surrounds it, relation to hacker culture (5 points)
    • well-planned, effective DiscoTech facilitation (5 points)
  • Objective 3: 25 points
    • project proposal (2 points)
    • complete beta version (5 points)
    • participation in debugging with substantive comments (5 points)
    • revised final (15 points)
      • 1,800-to-2,000-word length with correct grammar, correct spelling, coherence
      • comprehension of the hack and convincing, accessible analysis of it
      • voice and layout in character with instructive illustrations
      • impressive and documented research with both scholarly and primary sources
      • appropriate references to at least three assigned texts

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).

Terms and conditions

  • This syllabus is a living document and may be revised by consent of a quorum of all present at any given class time. The current, binding form will be maintained on Canvas.
  • When problems arise, we will seek to address them collaboratively—first through dialogue, then through revision of this document, and only if those are inadequate through recourse to outside authorities.
  • We respect one another's privacy and freedom to explore. Content shared in the course, in class or online, will not be shared beyond it without permission.
  • Use of laptops and other screen devices is not permitted in class, except during DiscoTech sessions or for purposes of accessibility. Such devices are highly likely to interfere with your learning experience and that of students around you. Most class discussions, unless otherwise stated, neither require nor will be improved by them.
  • We adhere to basic university policies regarding accessibility and academic integrity; we take responsibility for understanding them and the relevant procedures. Verbum sat sapienti est.

Schedule

All due dates are at 2 p.m. Mountain Time.

  • Project proposal due: April 3
  • Project beta version due: April 19
  • Debugging comments due: April 24
  • Final project due: May 3

What topics will be covered?

1. Whois?

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.

2. School

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.

3. Craft

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.

4. Sharing

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.

5. Law

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.

6. Order

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.

7. Identities

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?

8. Anonymity

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.

9. Security

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.

10. Making

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.

11. Money

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.

12. Power

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.

13. Gentrification

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.

14. Mastery

Debug the final project with peers and conclude the course.


What should I be checking out to keep up with hacker culture?