TWO SHOES WEEKEND 2: THE SHOESENING

MARK YOUR CALENDARS, START YOUR ENGINES, DUST OFF YOUR MECHANICAL GIRAFFES

Last spring, I spent a weekend working with a computer program that makes it simple to make creative and interesting interactive experiences that you can share with people you know. The toolkit is called Shoes and the weekend was called the Two Shoes Weekend. On November 11-13, the Two Shoes Weekend is making a comeback.

STATEMENT OF PURPOSE (DRY, SERIOUS)

The purpose of Two Shoes Weekend is to build two programs using Shoes over a specific weekend. That’s it. Pretty simple! If that’s good enough for you, go get ready! Go! Get out of here!

…still here, huh? You must be one of those rules-questioners. Well, I’ve got some rules-answerers lined up, so let’s match you two up so you can stay with your buddy. Yep, it’s all buddy system around here, pal. All pal system, buddy.

DOES IT HAVE TO BE TWO PROGRAMS?

Yes! I’ll go ahead and reveal my sneaky secret up front: forcing you to make two things is the whole key to the Two Shoes Weekend. When you sit down to start your weekend, you’ll probably already have an idea that you’ve been thinking about. It occurred to you weeks ago, and you’ve been looking forward to watching it spring to life. Yes, soon that picture of Alan Alda will become animated and sing along with Dolly Parton’s “Jolene”. But when Saturday afternoon rolls around and you’re watching your work satisfactorily loop over and over again on your screen, it’ll be time for you to set that aside and start the next thing. The next thing can be born out of desperation. The next thing can be a flash of insight. The next thing will come from somewhere deep in your skull where a tiny voice will explain to you that what the world needs now is a calculator that uses D’ni numerals. And while Jolene Alda is certainly a gift, the D’ni calculators of the world are what I’m looking to sift out from an event like this, because this second thing you made didn’t come from weeks of traffic jam boredom and showertime brainstorming. It came from a very strange part of your consciousness, and it’s those things that always take you by surprise and make you laugh or cry or stroke your chin weeks later when you look back at what you made.

MUST I USE SHOES?

Well, okay, so this one is negotiable. The spirit of the Two Shoes weekend is one of computer programming-based creative expression, a spirit that is inspired by the original creator of Shoes, an internet so-and-so called ‘why the lucky stiff’. Since I’m the one who’s interpreting his ideals, I’m going to go ahead and say that he would be happy for people to be engaged with the Two Shoes Weekend if they’re making things on the computer with anything. You could make a game in Flixel or Inform if those are in your wheelhouse. Prefer to create trivia games in node.js? Quiz on, quizmaster! It’s hard to make two things in a weekend, and if you have a mahogany, satin-lined toolbox that will make this whole thing easier and more fun for you, then I say go for it.

If you’re in for the spirit of adventure or are already familiar with Shoes, though, then you’re welcome to join in on the fun as a community gathers around the use of Shoes. A group of crack Shoesers will be gathering in the Freenode #shoes IRC channel to help you figure out how to make your shady trenchcoat-wearing watch salesman animate his way across the screen only to get carried away by a giant falcon when you press the “F” key (for falcon).

CAN IT ONLY BE OVER THE WEEKEND?

Well, uh… yes. Yeah, sorry. I mean, I’d love to bend on this one, because I know that you’re busy. I’m familiar with opportunity cost, Friendo, and I know that by locking yourself in your computer-pod all weekend, you’ll miss out on a marching band reunion, free tickets to the wax museum, the serendipitous discovery of a traveling gang of sword-swallowers, and all manner of sock-hops, galas, and jamborees. But you could always take your computer OUT of its special sensory deprivation chamber, join up with some friends and computer-programming rivals (you’ve got some computer-programming rivals, right? Everyone should have a couple. I’m looking at you, Jake, and I’m shaking my fist), and program the night away in a nearby apartment, coffee shop, or abandoned roller rink.

The fact of the matter is that it’d just be awkward to call it “Two Shoes Weekend Plus Some Other Days Because Rachel Was Too Busy Being Popular And Cool So She’ll Do Hers Next Tuesday”. You see what I mean? So the Two Shoes Weekend is for the weekend, and I would love it if you felt inspired to do something similar some other time, but the weekend timing is just a thing we need for this to work. I hate to leave you out, Rachel. I’ll make it up to you next time.

OKAY, IT’S MONDAY NOVEMBER 14, I DID THE THING, WHAT NOW?

Wait, really? You did it? You made two things? Oh! Uh… I wasn’t really prepared for this!

Um…

Just a second.

Okay, right, that was it: email me to tell me what you did and I’ll post about your projects in a big roundup with all of the people who made two things. You get bonus points (which will not be tabulated and don’t get recorded anywhere) if you write a blog post (with pictures!) and give me a link AND/OR post the source code to your projects on the internet (Github is an attractive internet website, but anywhere public will do).

OH GOD WHY IS THIS STILL HAPPENING

No, it’s okay, that’s just about it. If you need something else to read before November 11 rolls around, you could read about the last Two Shoes Weekend, which I announced on Friday afternoon and yet somehow convinced two other people to join in on, or you could read my mushy feelings about why the lucky stiff, who wrote Shoes in the first place and inspired me to do this.

If you need to learn about Shoes to get started, you could try these helpful things:

  • Nobody Knows Shoes, simultaneously an in-depth guide to Shoes and the frightening scribblings of a raving lunatic;
  • The Shoes Tutorials, a short guide to writing your first Shoes programs; or
  • The Shoes Manual, a comprehensive handbook to the built-in gadgets and gizmos provided to you by the people who make Shoes work.

But if you’ve done all that, maybe you should go sit down, have a glass of water, or take a nap and get ready for November 11-13, a weekend of fun and mystery and PRIZES (NOTE: YOU MUST PROVIDE YOUR OWN PRIZES).

Why?

It’s easy to mistake inspiration for hero worship. A friend and I were discussing a while ago whether there was an unhealthy amount of “hero worship” within the computer science/programming communities. I think that this kind of treatment of extremely talented individuals is pretty common within any profession, but I’ve only ever been a software engineer so I guess I can’t say for sure.

I feel pretty confident in saying that most people’s feelings for the personality “why the lucky stiff” don’t count as hero worship. (I say “personality” because, as far as I’m concerned, the unnamed person who disappeared two years ago today stands entirely separate from “why”, which at this point might as well be essentially a character or piece of performance art) This goes especially for anyone who’s actually tried to work with why’s projects— his code is terrible, his architectural choices difficult to follow, the far-reaching concepts of some of his work lending to real stretches of logic being required just to grasp what’s going on, and so many of his projects having long-since been made obsolete by meaner, leaner replacements.

So it’s silly to “celebrate” Whyday on August 19, as the organizer of whyday pointed out on his blog. It’s silly because we’re not honoring the person so much as we are honoring his wishes, and his wishes almost certainly didn’t include limiting that creative spirit to one day a year. But sometimes we need mileposts to remind us that we’re headed somewhere, and if we’re not finding time to fully engage with the creative expression of life through code on a daily basis, then why not an arbitrarily-chosen date annually? There’ll always be time for more, but if you’re not doing any of it now, then there’s no harm in doing it on this particular day to start.

Okay, so what? What was why about? It’s my opinion that why’s work served a function just like anyone’s code, but the function was to express himself through art, just the same function as his music or his tweets.

It used to be that in order to make art, there were significant barriers to entry. To have a set of typed words produced, you had to have a printing press. To make a film, you had to have an expensive, fragile piece of machinery. And much later, to write a computer program, you had to go to college, where you could submit your punch cards and get the information back the next day. We live now in a time where self-expression, and a way to disseminate the result, is wide open to us. It’s natural for children to draw a picture. Creative writing is a common activity in schools. Many, many people take photos to share their lives with friends online. Lots of people even record videos using cameras built into their computers or handheld devices and make those videos available to others. But who writes computer programs?

Whoever Wants to Express Something, Should

Writing a computer program is just another form of self-expression. By programming, you create a set of rules that define a set of actions that respond to input and produce output. People talk about hearing a work of music or seeing a film or observing a painting and finding something new each time, a phenomenon that occurs exclusively because of a limitation of the senses. But with a computer program, there can be branching paths within the set of rules the programmer defines for me that I wouldn’t discover even if I used the program every day of my life. The limitation lies a step further than perception, with my brain, my imagination, my ability to express meaningful input. Maybe one day, 80 and feeble, after using the same computer program every day, I’d wake up and type “Fernando” instead of “Casey” when the computer asked “Who are you?” and with that I’d be whisked off to a totally different world, a whole new set of sights and sounds and experiences that I didn’t even know were possible on a computer, a world for Fernando-not-Casey.

“Why would you do that?” the programmers reading this right now are asking. “That’s dumb. You should communicate the choices available to the user clearly.” Well, if this were a piece of software to balance my checkbook, then yes, that’s a bad idea and a bad design. For a lot of reasons. But this isn’t a checkbook-balancing program, it’s a casey-or-fernando program. This is the program I chose to write because I wanted to express the difference that I perceive between being Casey and being Fernando. That might not even make any sense to you. (It certainly doesn’t make any sense to me.) The key is that the person who wants to express this can, and can make that expression available to anyone who wants to receive it.

The personality “why the lucky stiff” represents the evangelism of the free expression of your self. The guy who used that personality was a particularly weird dude, which helped draw attention to his message: that people can and should learn how to express themselves with, as why called it, “coderspeak”. For now, unfortunately, the choices of languages represent a barrier to entry. The choices we have available are certainly simpler to understand than what we had 30 years ago and enable the rapid development of extremely complicated forms of expression.

Two Suppositions

  1. If you can learn how to make a funny or surprising or even just visually interesting THING with something like Processing, LOGO, Scratch, or Shoes, you can express yourself.

  2. If you know how to send an HTTP request to an API, manipulate a JSON response, and inject that data into the DOM of a waiting page, you can basically create absolute wizardry out of fewer than 100 lines of code.

It’s possible that both of those things seem impossible to you. I’d encourage anyone to try a platform from the first item; you may be surprised just how few minutes it takes before you’re off to the races with these systems. If the first one seems within reach, the second one might still seem confusing and far-off and impossible, but it’s just a matter of learning and practice. Recall how far-off and insane the first suggestion felt and go give it a shot. Ask a friend who does know about these things for ideas on where to start (email me!).

While we’re still a long way off from the creation of interactive digital art being as natural to humanity as putting crayon to paper, I truly believe in the value of the activity and that the more people we have participating the more reason there is to make our tools intuitive and straightforward.

And As For Me?

Today I posted some of my favorite tweets from why’s @_why Twitter account on my Twitter account and skimmed a chapter or two of Why’s Poignant Guide to Ruby, a book that is as much about learning Ruby as it is about artistic expression of… comedy? absurdity? I don’t know, but it fits my sensibilities extremely well and I keep a PDF copy on my iPad at all times; reviewing bits about it can help cheer me up or start me thinking about all manner of things in the intersection between code and art.

Tonight I’m going to write some Ruby. I don’t think that Ruby is the only tool that should be used and I think that evangelizing Ruby specifically when talking about why’s principles is, to some extent, missing the point. I’m writing Ruby tonight because it’s the language I’m currently most comfortable with writing and deploying. I think that anyone who wants to join in on the spirit of why’s creative self-expression should do so and should do it through whatever programming language, platform, or medium they want to.

Happy whyday!