ASCII by Jason Scott

Jason Scott's Weblog

Some Last Triage of the DEFCON Documentary —


I need to turn to my current projects, and my other commitments. I figured after going for a month and a half into the post-DEFCON Documentary release breach, I’d write some thoughts down before moving on.

(Note, I do intend to release a fixed-up version of the documentary with a different audio encoding and with one or two factual errors stitched up. The length and content won’t really change.)

So, I guess the number one thing I wasn’t prepared for with a released DEFCON doc was the amount of people who hate it.

I mean, to be sure, the nature of the subject, and the amount of attention DEFCON receives as an event, ensured that the amount of people who’ve seen this movie and who’ve been given the chance to weigh in on opinion and reaction is much greater than my previous films. BBS Documentary has been seen by hundreds of thousands of people but it’s been a slow flame for nearly a decade to get to that number. GET LAMP is also out there but the audience is, again, people going out of their way to see it. DEFCON partially subsists off of press and attention, and so the documentary got a lot of that attention. Within a month, well over 150,000 people have seen this film in one way or another. So, the results have been more variant, and I’ve reached a whole new audience, both positive and negative.

A good indicator of dislike is the IMDB entry for the movie, which as of this writing gives the movie a rating of 5 out of 10. GET LAMP lurks at 6.5/10 and BBS at 7/10, so it looks like I’m not universally loved at IMDB. Additionally, the two comments/reviews on the DEFCON Doc entry at IMDB are vicious tear-downs, one feeling it was meaningless and the other that it was a two hour commercial for DEFCON. There’s a review or two out there of a savage sort, as well.

Let me explain why I’m focusing on this, and why it gets such attention from me – there’s two different ways you can make a creative project that people hate (or love): intentionally, or accidentally. If you make a 10 minute film with 500 murders and nobody has a speaking part, that’s pretty intentional and you can expect people to love or hate that. If you make a film about a girl who falls in love with a boy and your costume person picks random colorful laces for the boy, not aware that in some subcultures, those laces demarcate what races he hates and then you’re getting all these angry groups calling you a Nazi, well, I’ll file that under “accidental”. 

Choices were made to make the movie the way it was, which I will shortly explain, If someone hates those choices, that’s fine, I specifically made them. But I keep my eyes open for cases of people hating something that I had no idea about, because if I’m going to do three more technical films, I want to make sure I’m not going to make these stumbling choices again, if they can be avoided. So I focus. I study. I learn. That’s how somebody gets better.

So let’s go over it.



There were two major issues in my face by taking on the duties of a DEFCON documentary. One was the fact that it had never been done before to any great level of depth, and the other was that by the 20th year DEFCON was now so goddamned huge that it wouldn’t fit into a single film.

When faced with the second problem (large subject) before, I made a mini-series. I chose to not make this one a miniseries, because I thought that would be way too much for people who were expecting “a documentary”. With that choice, I nixed in-supreme-depth subject study of specific events and people, because there was no room. It was a tough decision, but I went with it.

The lack of any in-depth previous film (there were a few that came out before, but they were either light news stories of a few minutes, or a set of specific interviews of a few people) meant that there was a lot of expectation of how DEFCON would be covered in one. I couldn’t say I was making an updated version of a previous film – this was going to be The Big One. I doubted DEFCON would agree to do anything like this again. So it was on us to do this as right as we could the first time.

I decided to focus on DEFCON 20, with scant callbacks to how we got to 20. A whole range of people whose golden age were in years before 20 were pissed as a result of this decision. Understandable. Who wants a movie about something you gave years of your life to and it doesn’t even mention your contribution? A few floated the theory that I was intentionally cutting them out as some sort of payback or conspiracy, but that’s what people do. Hint: No.


So, given that it’s a DEFCON 20 movie, and was going to be a single 2 hour film (I’d decided on two hours way in the beginning), here’s where we went from there.

First, I knew no matter what film it would end up being, I’d need sit-down interviews with people related to DEFCON, especially people in charge of it. So I started shooting lots and lots of sit-down interviews throughout the country in the months leading up to DEFCON 20, so that I’d have footage to fall back on, instead of depending on what came out of the event. I was right on this regard, because people get really busy a month before DEFCON and at the event themselves they can’t possibly spare a moment for interviewing unless other people take on a brunt of weight (this is what happened in a small handful of cases). There went my summer, but I did end up with 50 interviews in the can, so I was set there.

The advantages of this (footage) are weighed by the fact that people are telling me what they think of DEFCON, and those people are also people who work for DEFCON, so there’s a bias all the way down the line – everyone really likes the event. This energy threads throughout the resulting movie, although it does mean that everyone seems really, really cheerleader-y. I happen to think this is an accurate emotion, that is, they really do love DEFCON and dedicate so much time to it because they love it. But it is definitely a candy-colored sugar rush that some people might not like.

In the months before DEFCON 20 happened, there was the release of a film called Comic-Con Episode IV: A Fan’s Hope. It was directed by Morgan Spurlock (although he has some very heavy-assisting producers for this and more recent films), and my producer Rachel Lovinger and I were lucky to attend a screening of the film that had both Mr. Spurlock and his producers in attendance. So we got to see a template of “what does a movie about a big event look like, and what works and doesn’t”, before we went into our mess. Spurlock and Co. were very friendly and forthcoming with answers about how they did it. This helped a lot.

So, right away, we hit the issue of structure.

How do you tell the story of an event so large? A Fan’s Hope did it by following a set of people through Comic-Con, from months before the event through to the end of the con (and possibly with some post-con wrap-up interviewing). Will the cosplayer get her costume done in time and win an award? Will the artist hopeful get the approval he seeks and maybe full-time employment as well? What of the guy who wants to propose to his girlfriend at the con – will he time it perfectly? The way that they interlock these stories, you end up experiencing the con through the eyes of individuals within it, with small general-bird’s-eye-view sequences here and there. Bear in mind, this means an enormous amount of Comic-Con does not get into the movie, but for that price paid, people watching connect emotionally with the attendees in a big way. You want the costumer to win! You hope the guy gets out the ring at the right time! You are rooting for characters in the film, while also learning about Comic-Con in a general sense as you go.

I considered this approach. I rejected it for DEFCON.


There were two reasons for this critical decision. One was political and reflective of who picked up the check, and the other was history-minded, to decide how much of DEFCON needed covering and the unique way hackers interact in groups.

Political: DEFCON is a paid-for movie. I took a fee up front and 100% of the budget was covered by DEFCON. They actually had very little oversight of the choices of filming, but the mandate was clear – cover DEFCON. Not to spend an hour telling the story of J. Crew Buckyball and his journey into DEFCON, but to have someone who’d never heard of DEFCON watch the movie, from the beginning, and leave with a real sense of what this thing was and why they might want to attend (or decide to never attend). To this end, I chose to give as much of DEFCON’s unique events and attendees a spotlight, to give a sense of what makes the event what it is.

History: DEFCON, like a lot of hackerdom, has really been taken advantage of by press and general organizations, who have derided these folks as scary, this-side-of-socipathic cyber-killing machines. If that sounds extreme, you haven’t been reading. Trust me, it was a big deal to have the film instead treat people as just normal folks with skills and pride, working together to do cool and fun stuff. I had a conversation at DEFCON 21 with someone working on a hacker-referencing entertainment product, and I said “What you need to understand is that hackers are portrayed as destructive loners, when they’re really creative sharers.” And the film bends over backwards to go that way.

What are the downsides here?

Well, by not making it about people, there’s less to personally attach to – there’s no “plot” to follow, in which you wonder what’s going to happen to your onscreen doppelganger and you wait eagerly for the wrap-up. To counteract this, I add a strong chronology to the film, showing you passage of days. Intentionally, Friday and Saturday are bloated while Thursday and Sunday are cramped. You feel the passage of time for the beginning and right at the end, when you’re least in the mood for things to take forever. For some people, the film feels long, but I guarantee it’d feel even longer if you were waiting for something, anything to tell you where we were on the timeline.

Additionally, most sequences on a subject are one to two minutes, with a couple three-minute and one six-minute sequence. If you want to get a sense of everything there, it works well. If, however, you become intensely interested in one subject (say, how the Scavenger Hunt works, or what happened to the Badges), then it moves away while you go ‘nooooooo’ in your seat. This is the core of the Devil’s Bargain – more information, less depth.

I’ve had a few people say “It’s not a documentary”, which is, of course, silly – it’s a presentation of real events, recorded in real-time, with no pre-scripting, of un-hired people doing things they would have done at an event they intended to attend. There’s nothing fabricated at all in the film, and in fact there was one fabricated scene (a demonstration of how the Social Engineering booth works) that I chose not to include for that reason – I don’t like making stuff up when reality is as interesting as it is.

So, what I think these people are really saying is “this is not the kind of documentary I wanted to see or like to see”, and I’ll give them that, whatever that means. It’s the same with people who hate the music – that’s a personal choice, and other people have begged for track lists of what is playing where. I can’t make people like music they don’t like, and I wouldn’t have chosen different pieces than the ones I did.

My occasional mistake is that I am prone to confusing someone calling the documentary bad based on their expectations or response, as opposed to an actual indication that it was poorly filmed or created. That’s on me. It looks nice! It’s a nice-looking film! Some folks just don’t like what the nice-looking film showed.



On the history side, DEFCON has 20 years of events, and a second event: Black Hat, the “professional” version of DEFCON that has been around almost as long as DEFCON. I chose not to include much of the previous years, and nothing of Black Hat. It was 100% space and timeline driven, not a mandate on the interesting-ness of the subject matter. That said, I had a lot more footage of DEFCON 20 than someone’s stories of something that happened 7 years ago that I couldn’t easily verify or get collaborating interview footage. Black Hat is a fascinating thing, but I thought it was spreading our resources thin to try and get Black Hat in there, especially considering it would only be covered for a couple minutes, confuse the hell out of the audience not aware of Black Hat, and then off to unrelated subjects for the rest of the movie.

Some called it a conspiracy. These people need to get out more.

I believe strongly that DEFCON deserves a book, although I’ve no interest in writing that book. A book would allow overview and discussion of the many themes and points of DEFCON and what its place in the greater hacker social structure is. The movie couldn’t do that, but it’s worth-while discussion that a 300-400 page book could tackle nicely.

Speaking of social…

My choice to focus on the partying and hanging out as much (or more) than the core subjects of the talks and presentations really rubbed people the wrong way. I’d agree with them it was annoying if it wasn’t the fact that I believe strongly that for a very large contingency of people, the parties and socializing is much more important than the talks, which are all recorded and distributed post-conference. I am sure many people wake up, quietly put on their neat-pressed T-shirts, walk into the first talk in their list, and sit with a coffee through 8 presentations, then go back to their hotel rooms and curl up with a good John Grisham novel before turning in for the night. I just don’t think those people make up the majority of the attendees. I could be wrong.

Considering the amount of partying and events that go on deep into the mornings during DEFCONs, I thought them important to portray, but it does appear a small vocal set of people wanted in-depth discussion of the subjects of the talks. I have a spoiler for those people – it won’t work cinematically. In fact, a lot won’t work cinematically that runs just fine inside people’s heads, and that inside-the-head theater people have is going to kick the ass of any film being made. It makes no sense to compete with it.

Instead, I chose a sequence with Dan Kaminsky and Renderman giving presentations (one on airplane security, the other undefined but technical), to go on a higher level about the nature of giving a talk at DEFCON. I think anything too deep would be boring, and get away from the greater lesson/demonstration being given by the movie. But the people who disagree, man do they disagree, so I’m walking away with a lesson learned there.

(GET LAMP had a similar situation where some people wanted much more in-depth description and process of people designing the games, footage that, I’m sorry to tell you, doesn’t exist. Some wanted more footage of people playing games, and that’s a much different ball of wax, and potentially may change how I do things in the future.)



I could go on, into greater details, but most of what I wanted to say is here. DEFCON: The Documentary was a rather intense project, and not the kind of film I would normally want to make – I doubt I’ll make another one anything like it. That said, it taught me a ton of things about filmmaking, got me my first film crew, and resulted in a work that, for all this handwringing essay, I am very proud of and would happy watch again and again. So it’s a win across all columns.

All in all, a fun movie.

Now, let’s make more.

The JSMESS Triumph —

What an amazing few weeks it has been!



We made improvements to improvements. We refined refinements, and refined them even more. We found shortcuts and qualities and features. And eventually, it came down to a day when an automatically running script slammed through a list of every functioning platform MESS supports and created a working or near-working JSMESS version.

More than that, we found a single line in the code, one which was meant to make the emulator work better within the browsers, but had now been producing the effect of slowing the program down. We changed a single line to say “0″ instead of “60″, and to our shock, JSMESS now runs many platforms at 100% speed.

It was a fun experience to play with a Colecovision at 70% speed in the browser. Running it at 100% speed is another experience entirely – it is, as I’d hoped, a little window where you see an entire other computer running, doing its thing, accurately showing you images and visions from decades ago but breathing as alive as if they were crafted this morning.

To celebrate, I updated the JSMESS official site, purchasing a basic theme of dynamic images and transparency (since you need to be running javascript anyway), and then jazzing it up to stress how completely fun and fast JSMESS is to work with. I also now have links to all 300 supported platforms that will be in JSMESS 1.0. Three hundred!

addWe’ve got a bunch of tasks ahead of us, but they’re rapidly becoming the kind of tasks that winners have to do, that consist of the effort of the victory lap after a draining marathon, or that weigh heavy the crown of awesome.

They include:

  • Adding a virtual keyboard so that you can hit controls and keys that aren’t on whatever keyboard you’re using. It won’t be good for arcade games, but it’ll make using the machines a lot easier.
  • Going through and matching collections of software and support materials to the 300 platforms. Luckily many use similar software or are easy to track down. It’s just a lot of them, you know?
  • Finding what slows down the remaining platforms that run under 100%, and getting rid of that. Currently, our slowest platform is the Sega Genesis, which runs at 50% speed – Sonic is taking Valium and that needs to end.
  • Sound is not activated, because the sound API we’re currently using is going to be replaced with a new one, and we’re waiting on that. It should work nicely when it’s ready, though.
  • Moving closer to a distributable package that anybody can set up on their own webservers in minutes. The great thing about Javascript in this case is we can just provide you a .js.gz file and it’ll workwherever you are. There’s no dealing with binaries or libraries or anything – that’s the browser’s job.

I’ve been cranking away on a new demonstration page, where a dream comes true: you have screenshots of many famous programs, like Visicalc or K.C. Munchkin, and one click brings you face to face with these programs, running as they always have, full speed, and waiting for you.

I feel really bad when people ask me about this in person because I can’t shut up about it. It’s like the first time you realize what version control can do, or taking a new bike out for a spin, or discovering a great new way to walk somewhere – it’s exciting and new and the results feel infinite, far beyond what we’re laying into them. It’s a brilliant new day.




The Secret Inaction of a Cancelled Documentary —

Privately, I’d been working on another documentary.

Yes, I know I’m working on three, and yes, they are very time consuming, but when a subject inhabits your brain, won’t let go, you have to let it run wild for a while.

The subject was Action Park, an amusement part in New Jersey that had one of the most amazing reputations you could imagine. It was truly dangerous, and it was also one of the most beloved places in the minds of people who went there. I went there, friends went there. Some people went there are got very hurt. A half-dozen people went there, and died.

The working title was Traction Park.


Trust me, there’s a movie there.

If you want some of the best sources of reading up on Action Park, you’d do good to read the Weird NJ site overview of it, the Wikipedia entry about it (but read through the historical edits, as much has been shifted and removed), and there are articles about it, spread around the net (although the WeirdNJ ones, old and new, have gotten some amazing stories in the comments that others did not).

I had documentation on the park, had taken a quiet research trip to the current incarnation of the location, and had pulled in a bunch of information. Nothing was shot yet.

But now, breaking wide, are a pair of short films about Action Park, featuring the WeirdNJ guys, and with interviews with the founder’s son and employees. And some bonus footage as well.

If you want to see them, they’re here.

So yeah, that ends my plans right then and there.

Yes, ultimately, a documentary by me on this subject would have a different feeling than this short documentary pair that has came out, and I was going to go into some dark and light places they would not. You’d have teared up more during mine.

I’d have been more focused on the ideas of freedom versus safety, about how Action Park was a libertarian dreamland – a park that could be incredibly fun or kill you, where you could have the real experience of near-injury and drive home knowing you did something amazing. I wanted to interview people whose relatives had died there and people who worked at the park, along with people who considered it the best summer event of their lives. I’m a completist, as you know – so we’re talking about 50-70 interviews.

But I don’t have much time in this world, and doing a documentary that’s somewhat better on a subject that has been done before is not the best use of me or my time. I do have a lot of projects on my plate – it’s just this one burned inside, a plan.

There’s no tragedy here – not a frame of footage had been shot, and the interviews were not lined up. It’s an unmade project, one that doesn’t sit half-finished – it was never beyond the research phase.

If the DEFCON documentary had not happened, if I’d not gotten that call, I’d have probably secretly shot this movie. But DEFCON got there, and I made that instead. On the whole, I think that’s a real good trade-off. Nobody would have made the DEFCON film the way I had, and I got to be really close and enjoy the company who’ve had a huge influence on my life. I only went to Action Park once – I’ve spent the equivalent of months of time in Las Vegas around DEFCON. It was a good choice.

So yeah, now you know. Surprise!

P.S. Really, read up the history of Action Park. It’s insane.


One Last Bit on JSMESS for a While —



I know, three postings in a row is a bit much.

When I get into a topic, I keep going, just never stop. It’s the kind of mindset that can end up with something like the BBS Documentary - just one guy slamming away at getting things done, day in and day out.

In this case, I’m in much better shape, because I’ve got some great people helping me – Vitorio and Justin are, between the three of us, this unstoppable force of figuring out what to do to get things running.

After I started to understand the nature of the makefiles, I wrote some scripts that would generate better formatted ones, including commented-out options that might be used. It saves a lot of time. I also wrote a script that, given a string, returns all the potential modules with that string. So, everything became easier.

So, within a few days, we added JSMESS emulation for:

So we added nearly 50% more platforms within 48 hours. Yeah, we’re starting to get the hang of this.


Now things start getting to the next level.

MESS emulates roughly 1600 machines. Of those 1600 machines, roughly 600 are unique. Of THOSE 600, the MESS term internally rates their state as to how functional they are. Apply that and it’s (again, roughly), 250 platforms that are currently emulated properly in MESS.

(What of the other ones? Some are skeleton drivers, layouts that are awaiting work, or they’re lacking some aspect that hasn’t been reverse engineered, or just suffering from people excited to do that deep down assessment needed.)

Of the 250 platforms, we should make some subset of them work in MESS. Some, in my mind, will be relatively simple, like emulating the Atari 400 (we’ve already got the 800 working and they’re similar hardware). Others, like the Macintosh family, are notably more difficult. But some are just not the best to go for in a JSMESS 1.0 sitation.

Ah, JSMESS 1.0. How I’ve dreamed of you.

So, from those 250 platforms, we’re probably looking at, oh, 30-40 of them for a 1.0. Might be more, probably won’t be less. A gaggle of computers emulated and in javascript versions for the very first time!

One of the issues is speed, and the excellent Emscripten team is looking at the JSMESS routines and determining where speed can be boosted. in the transfer to Javascript. We know the ability to hit 100% of the emulated platform is in there, and now with so many platforms to use as examples, they can start finding common boosts and improvement. I have great faith in them and I’m happy to have JSMESS be a stress test for the next generation of Javascript programming.

Assuming the speed gets shored up, the next problems resolve around the keyboard interaction being subpar, because it turns out the keyboard interrupts for browsers are significant. It’s an entirely fixable problem – someone just has to go in and reset the keys and make a configuration file better suited for being in a browser. I’m sure that’ll happen soon. Obviously consoles are easier than computers – less controls to map.

Next comes the packaging. I’ve given thought to this. Here’s my rough sketch.

I’d like it to be similar to JW PLayer. Not JW Player as it is now, as a business with the demand for your e-mail before you can get a free copy of it, and with commercial licenses. It’s obviously a little Adobe wannabe and I’m not talking about that.

When JW Player first came out, it was a pretty perfect little audio/video player for a website. You got the package, and you could put JW Player right into your website with little effort, with all sorts of little settings for your needs. Need it to just have a single song in there, ready for someone to click? Template for that. Needed it to play an album? Got a template for that. Video player? Got it.

Like I said, JW Player got all business-y and it’s got licenses and a whole bunch of things now, and that’s fine – but the core original approach of giving people tools to add audio and video to their sites, that’s what JSMESS is for computers.

I see a set of templates where you can say “Put up this computer running this software”, or “Put up this computer with a drop-down menu for these software packages”, or “Put up this computer, twice the size, with a set of options selectable along the right side.” People are good at templates. I have faith we can make a set that will work nice on a page.


The nice thing about emulators is they sell themselves, once you see them. When I put up a link to the JSMESS ZX Spectrum emulator, even though I’d been putting up links to the other platforms, a range of people got really excited about it. For them, that was the selling point – a ZX Spectrum in a window. Same to the Sam Coupe crowd when that appeared. For these groups, once they see “Our favorite home computer in an embedded window”, the debate is over and shifts to “when can I put this everywhere?”

As of this writing, the loader for the JSMESS homepage is very simplistic, and meant to be flexible across all the platforms. I think with some effort, elegant and more helpful code sets can be added. I think we’ll revise things and make them easier to use, and we’ll start seeing these things popping up in weblogs and websites in no time, after the distribution of JSMESS 1.0 comes out. It’ll be great.

And the aftermarket! People taking it and adding features, customizing the templates, and finding bugs – they’ll be welcome addition to making it better.


So, one last thought about this, before I turn to the rest of the things I’m working on.

JSMESS, the project, is not the emulator.

MESS is the emulator.

The fine folks behind MESS are working very hard on improving accuracy, making MESS interface with all sorts of situations, and generally trying to make the whole thing as portable as possible. One look at, say, the most recent list of code additions for the most recent update will tell you that.

All JSMESS is, is an attempt to take MESS and port it to another language, in a way that translates as much of the MESS quality and experience to the new language. As it turns out, this language (Javascript) is an open-source implementation that works across most known browsers and therefore most hardware platforms, including mobile, desktop, and dedicated systems.

In doing this, it brings emulation of this sort to a much, much wider audience, makes it accessible to education and communities, and turns computer history into an embeddable object.

It’s powerful, but also limited and simple. It is difficult work to port MESS to Javascript, but it’s a miniscule sliver of the effort put into maintaining MESS itself, to seek out hardware, do the legwork of finding how to emulate a system, and determine the thousand, maybe million little weird aspects of these systems for the use of generations to come. That’s the effort to respect, that’s the people to applaud, before JSMESS gets any of that.

I hope this effort will bring attention to the MAME/MESS projects, the kind of attention where someone, seeing an end-to-end advantage (if they help MESS, then the embedded computer object on their website gets more accurate), gets right in there and gives MESS the deep research and information they need to capture accuracy more.

More than once in this, someone has snickered and gone “yeah, but do they support the [whack-ass peripheral] on [platform]?” And more often than not, of course they have. These people care about this. It has burned some of them out, it has made some of them rage, but they believe in it.

It’s something worth believing in too.

To 1.0!


More JSMESS: Little Help Here —

Warning: A little about project management, then a whole lot about compiling.

Three entries in a row about JSMESS! Well, I happen to think it’s one of the most important things I’ve been involved in. I mean, just think of it – vintage computers in a window, like they were a movie or a track of audio. The same way we show people something we’re working on or a piece of music we like, we can already do with a computer or computer experience. That’s magical to me. If it’s not magical to you, I don’t have anything more to discuss with you this round.



The fundamental magic of an emulator is that it creates a computer inside your computer, one that functions in many ways like the original. It’s never perfect, and the people who seek only the perfection and forget that a wrinkled photograph is better than none at all… well, they’ll never be happy. But an emulator can bring back your childhood, prove a point, answer a question, frustrate and delight. It may not inspire your own children to understand what compelled their parent so much into that world, but it might make them realize how far we’ve come or how the reason scores are at the top of the screen or why people like 8-bit references so much. And as a research tool, well…. being able to summon any artifact with the cross-platform and wide reach of browsers is a bit amazing all it itself.

Last night, while playing around, I realized I had three different computers running in windows of my laptop during testing, all of them pieces of my own past, all running along just fine.



Foe the observant, that’s an Atari 800 running Boulderdash, next to an Apple IIc running Bank Street Writer, and finally the 1980 Atari Dealer Demo. Each has their own story I won’t go into here.

In its current state, the JSMESS emulator can bring up, on your machine, in multiple browsers, hundreds of thousands of software programs that have been painstakingly transferred over the past few decades. It is already a victory were work to stop right here and now.

Obviously, we have a ways to go and the energy is still there to do it.




Now, let’s be very clear here – the lion’s share of work on JSMESS is MESS itself, which is a wonder of teamwork and dedication to accuracy and quality. Those folks, of which there are dozens, are doing a bushel of effort to bring in obscure systems, unusual setups, and strange mystical workings of long-forgotten platforms to the world. I talk a lot, but without MESS itself, there would absolutely be no JSMESS.

When I started working on this project, elements inside the MESS developers were not pleased at the idea of a not-as-fast, somewhat strange porting of MESS, especially when some aspects were being lost in the transfer to browsers. Their concerns are valid, so I rush to say that if you see something wrong with how JSMESS does something, chances are very good it’s JSMESS, not MESS. (You should download MESS at their site and check it out – it’s pretty amazing tech.) My hope is that JSMESS will honor MESS by bringing it to many more thousands of people.


bstoadA little bit about project management.

I’m not a talented programmer – I use BASH and sit down and get a pencil out when I do a tiny bit of PERL programming to make something “faster”. My attitude is other people do better work, with more thought, and it’s not for me to add One More Shitty Thing into the world that’s been done better elsewhere. So I write stuff that takes the excellent tools people have made and push them into a specific direction that I need for getting the job done.

This turns out to be how I manage projects as well.

There are a number of javascript emulators of machines out there as we speak – JSMESS is not the only one. Some are very mature, and quite amazing, inspirations for the work JSMESS is doing. For example, this is one amazing Apple II emulator, with a spectacular presentation. For the experience of being able to decide exactly what sort of machine you can emulate, check out this Amiga emulator that lets you configure the hardware and features (click on “config”) before you run anything. I mean, isn’t that amazing work?

What JSMESS has over these others is what MESS has over most single-machine emulators – a sacrifice of exacting recreation and bespoke experience with the ability to emulate many, many machines – hundreds at this point. For example, MESS has started the process of emulating the Ensoniq Mirage, a synthesizer! Why not? It’s a computer, after all. And as JSMESS grows, it will encapsulate more and more technology, maybe even everything that has a set of chips in it. So work done to port MESS to Javascipt (and whatever open cross-platform technology comes after Javascript) is a hell of a lot of bang for your buck.

datalife(By the way, running Disk Drive Utilities in an emulator makes me feel like the program is Neo and I’m the Architect. “Your first question, while the most pertinent, is the least relevant.” “ARE THERE ANY BAD SECTORS ON THIS DISK.”)

So what I’ve done over the past couple of years is work with volunteers to come up with a framework for porting MESS to Javascript. This has resulted in the work with Emscripten, a method for turning compiled code into running Javascript programs. That took a while, but it does work.

Now, let’s get technical. And where I need your help.


We figured out long ago we simply couldn’t compile all of MESS into a single .js file – it makes every browser explode. Chrome currently has a hardcoded limit of 32,767 variables, and Firefox has a point at which it hits the CTRL-FUCKIT button and drops the mic.

So, instead, we went a different route. Within the MESS system there’s something called a “Tiny Make”, which allows you to build a minimal version of MESS for the purposes of testing. In their case, it generates a version of MESS that only plays the Colecovision. It turns out this “tiny make” is small enough to be converted by Emscripten into a .js file that does everything we want, and which still contains basically all the features of MESS within it. (It even has the internal menu system and configuration!)

Once it was proven that this worked with Colecovision (you can try it out here), it’s “just” been a case of making the rest of the platforms that are properly emulated work. (Here’s a list of all the platforms currently in MESS: 1766 variations of 683 different computers!) Of the 683 platforms, “only” about a hundred are in a ‘good’ emulated status, and of those ‘good’ ones, some are minor variations of a platform, like emulating the Dragon 64 and the Dragon 64+.

So, the high level plan is to make Makefiles for all the “good” emulated platforms (about 100 as of this writing) and put up JSMESS pages for them.

After we have that going, we’ll go back and make keyboard mappings better, presentation better, and so on. We also, in parallel, have the Emscripten gang working to make better and better Javascript speed improvements for the materials (right now speed ranges from 11%-100% of the original platform’s performance). But it all depends on having Makefiles and compiling the systems. That’s our bottleneck right now.

jscmessc64So, what exactly am I talking about here with the Makefiles?

Well, the way that we put together a platform is to compile just the modules needed to make that system run. So, for example, the Colecovision needs the following files compiled to run:

emudummy.c, drivers/coleco.c, machine/coleco.c, plus Z80 Support, plus MCS48 Support.

Once these are all compiled, we have a working Colecovision.

For the Atari 800, here’s what we threw in to make it work.

emudummy.c, machine/6821pia.c, video/atari.c, video/antic.c, video/gtia.c, machine/atari.c, devices/appldriv.c, formats/flopimg.c, formats/fdi_dsk.c, formats/td0.dsk.c, formats/imd_dsk.c, formats/dsk_dsk.c, formats/d88.dsk.c, formats/atari_dsk.c, machine/atarifdc.c, machine/ataricrt.c, machine/atari400.c, plus POKEY support, plus DAC support.

Now, some of these might not be needed, but many are, and when we compile it, we make a .js file that can emulate an Atari 800.

Obviously cleanup is in order down the line, but we’re just in the “get it going” phase, and it’s OK.

Now, our problem is forming the makefiles for the rest of the platforms.

It’s a weird art. I describe it like walking into a rock concert and determining who in the crowd has less than five fingers on a hand. It’s not what MESS was designed for, they do not have a facility to say “just compile this single machine”, (There’s been debates about it for a number of years, but they currently do not do it.)

It’d be great if this was automated somehow, if it was possible to say “show me everything that this emulation of this system needs”. Maybe there is! But we haven’t found it yet.

So instead people are working very hard in the #jsmess channel on EFNet to swim through the code and figure out, as best we can, what’s needed for a given machine. It’s voodoo and strange but the result is emulated computers, so it’s rewarding when it works.

So? Want in?

You’d be doing a lot of good, and if this is the kind of challenge you like, the rewards are immediate and great. Maybe you’ll even figure out a way for us to do it with a lot of scripting help, to make it that much easier. We can dream.

Or maybe MESS, down the line, will add this feature. Who knows.

But I’ve laid it out to you.

Hurrah for emulation!







The Javascript MESS Plays Commodore 64, Commodore PET, and Apple IIc —

061228-Apple_II_80kv6ma35ms36SFD-Cut EdgesGeez, it seems only yesterday we were talking about emulating the Atari 800… oh wait, it was yesterday. Well, thanks to Vitorio working hard with the Makefiles, we now have emulation using JSMESS of the Apple IIc, the Commodore C64, and the Commodore PET.

So, with the caveat that we still have along way to go with regards to keyboard mappings, profiling to find improvements of speed, and a bunch of other issues, I can now say that it is possible to interact and appreciate well over 200,000 programs in your browser, with no plug-ins.

The best part is that there’s no sign of stopping, other than the fact that our volunteer force needs time to do their actual lives, and can’t be spending too much time working out makefiles and other stuff. If playing with makefiles to help us bring another few dozen platforms online interests you, stop on by: #jsmess on EFNet.


Emulating specific systems in JavaScript is nothing new, and some of them are very mature and very well-developed. The big difference here is that by relying on the MESS developers, who are active, talented, and committed to emulating as much as possible, we can focus on a small amount of issues regarding browser compatibility, and in doing so, increase access to this vintage software and programming hardware.

Much like MESS and MAME itself, the approach of JSMESS is to use the power of shared code and a approach towards all platforms to ensure the widest amount of support. Platforms that otherwise would have no advocates are showing up in this collection of emulation. Over time, support for various plug-ins, cards, and peripherals ensure that we can take a reasonable shot at capturing a lot of vintage computer history.

As you can imagine, there is a bit of debate within archiving and preservation communities as to the viability of utilizing emulation over original hardware. But everyone agrees, in 50 years we will have a smaller percentage of the equipment we do now, and emulation is very likely the way to go. The fact that it is possible to bring this emulator up in a window in a phone or iPad or home computer or laptop, ensures that a much wider audience could learn what you’re talking about when you mention some sort of program. It also concentrates a lot of interested effort in emulating items to branches of code that the widest audience will see. If you contribute code to MESS, it will now potentially end up in a browser, capturing a potentially lost aspect of computing. That’s priceless.


As we get more platforms up and running through the pipeline, attention turns to speed and usability. Right now, JSMESS is a test program, providing a cute trick for you to enjoy checking out old programs. But it’s far from the level of usable that the original MESS has. The hope is that over the coming months we will see improvements in all aspects of this program, turning it into a cross-platform browser experience that will, as I hoped, change computer history for every all of time.

Now go screw around.

The Javascript MESS Plays Atari Today —

4821129260_fb6e3bc960_bThe Javascript MESS project (mentioned here and here and here and so on) continues its progress towards the goal of emulating dozens, later hundreds of computer platforms, in a browser-based fashion. And now, the Atari 800 joins the pack.

If you want to check it out, just go here and select one of the programs in the drop-down menu, and then hit space.

It makes some crazy bad noise in Firefox, but runs faster. And it definitely works in a bunch of situations, to various levels of “success”. We’re aware the keyboard mappings are crazy, that it is not 100% speed (more like 2/3rds speed as of this writing), and a host of other things. We’re going to rope around and go after some of the interface issues so it’ll be easier to do things like hit the START button (It’s F1 on most keyboards), and the joystick button, which is ALSO not working at this time (I know it’s somewhat important that the joystick button be working).

This is a huge jump and a personal delight, because with the addition of an Atari 800, we’re well into mainstream computing – the Atari 800 was one of the big ones in the computer wars. Introduced in 1979, this masterpiece of plastic and color was the introduction for many to the world of computing, building on Atari’s excellent name in gaming and entertainment. With four joystick ports, cartridge and later cassette/disk options, and a whole range of cool peripherals, this thing was serious business. Serious FUN business.

Unlike the other JSMESS implementations where the software library was under a thousand titles (and in most cases, under a couple hundred titles), the collection of Atari 800-compatible software I have goes past the 10,000 mark and I’m positive that’s nowhere near the amount of software out there – it’s just what I happen to have at this moment. So the problem was what to put into the drop-down menu for now.

I hit up some fellow Atarians, and the list has a bunch of canonical titles, including the 1980 Atari Dealer’s Demo, which ran on computers being sold at stores, and which I have a very happy memory of staring at through the window of a closed computer store at the age of 11. In fact, when I first heard it have music, it was years and years later because I only knew it as being through the window!

There’s memories aplenty in this software, along with lessons to be taught about working with limited resources, what it was like to play Star Raiders (a very early space game) and how the 1984 Pac-Man port for the 800 was a little masterpiece of design.


Just go here to try out the project, and remember to check out the main JSMESS project page to learn how to contribute or play with other platforms emulated so far.

Thanks to Vitorio for helping push through this latest platform, and to Alon Zakai for working with us intensely recently.


Life Inside Brewster’s Magnificent Contraption —

This essay is going to tell you at the end to subscribe to the Internet Archive. If you want to go ahead and do that now, the link is here. You can also do a one-time donation at that link as well.

I joined the Internet Archive in March of 2011, after a very short meeting that came a few weeks after asking for employment at a conference held at the Internet Archive’s headquarters in San Francisco, CA. 

So it’s been a little over two years since that meeting and my hiring. Let’s review, oh.. let’s review everything.


I work primarily out of my home in New York, but the Internet Archive is located in San Francisco. It’s in one of the most beautiful buildings one can imagine, a renovated Christian Science church (it hasn’t been a church in a long time) that now has servers, offices, and all sorts of amazing one-off architectural individualities.

Some time ago, I took a bunch of photos within the walls of the building, just because I figured they should have them. I’ll put a bunch of those here, so you can see what I’m talking about when I say that it feels like a little bit of heaven every time I’m on site.


For what feels like 99.9% of the world, the Internet Archive has precisely one feature and one purpose: the Internet Archive Wayback Machine, an immediate call-back into webpages going back nearly 20 years. It has saved so many necks, proven so many wrongs, and brought back so much history, that I completely understand why it’s considered one of the internet’s crown jewels. There are people working very hard to incorporate endless scraping of data from the web, all the time, and even having occasional injections of older data acquired from other sources. No joke, we’re talking petabytes of web history stored in it. It’s a miracle and you should be giving money to the archive just on the principle of that solitary feature alone.

(Fun fact, while I’m here: the entire web crawl collection of the failed search engine Cuil, over 310 terabytes, was donated to the Internet Archive and are in the Wayback Machine. You can even download the raw data.)

But take it from me: knowing about the Wayback Machine at the Internet Archive and little else is like going to Walt Disney World, riding Space Mountain once, and then going back to your car in the parking lot.

The Internet Archive’s collections are massive, truly massive. Many petabytes. They’re just about to surpass having 2 million books available to read or download. I could spend the rest of the year aiming you at the different collections, like Atari Computer Related Books or Dance Manuals or Cookbooks or whatever else I feel like throwing at you. Millions of books! Online! Right now!

Let’s set aside books for a moment. How about audio? This place is loaded with audio, from podcasts and old time radio programs all the way through to a truly astounding amount of music shows and jazz collections and of course a world-class Grateful Dead live recording collection.

The films! There are tens of thousands of films in this place. There’s television shows about computers. There’s the stunning diversity of the Prelinger Archives. There’s sports videos. There’s tons and tons of feature films, just waiting for you.

But how about miracles? Have you even taken a little time to visit the TV News Archive, one of the more stunning search engine accomplishments of the 21st century? Just go in there, type in a search term, and watch the Internet Archive do something that would normally take you hundreds and hundreds of hours to accomplish, and do it in seconds.


When I was hired, it was to improve the software collection, which sat among these other massive collections but hadn’t gotten the attention it deserved. It’s gotten that attention and I wrote an entire entry about it. Summary: Largest collection of vintage software on the internet. Period. I’ve been busy.

No, I’ve been really busy. Checking my upload statistics, here’s what I’ve added to the Internet Archive: Over 169,000 individual objects, totaling 245 terabytes.


I have a name for the system that drives the Internet Archive: Brewster’s Magnificent Contraption. The methodology for making sure data isn’t lost, that URLs stay static for decades, and to ensure you can make whole scale improvements to the underlying machinery without disruption… well, it’s a wonder to behold. I behold it frequently.

The Contraption uses the cheapest hardware possible. It strives to ensure you will always, always, have access to the original file uploaded. This alone makes the Internet Archive stand head and shoulders over so many other environments that take your 13 gigabyte MPEG original and shell-game you into a 256mb “pretty ok” version for the web.

You can add things to the Contraption using a browser-based upload, FTP, S3-”like”, and physically mailing material in. It’ll all funnel in quickly, get treated by endless scripts that poke, prod, and derive alternate versions, and then pop up on the web for immediate, complete, free download. It just happens, most of the time. Data is flooding into the place from all directions. I’m doing a lot as an individual, but I’m one of many entities bringing in this material, and the Contraption takes it all.


(Every time a picture of these boxes of external disks comes by, someone writes a missive along the lines of “what are you doing! externals are so much more expensive!”. However, this was during the great disk drive shortage after floods in Thailand knocked out a bunch of factories, and careful investigation revealed that buying the external versions of drives were notably, notably, cheaper than the so-called “bulk” or “internal” drives. This is the kind of attention to detail the Archive is soaked with.)

Does the Contraption have quirks? Hell yes, it does. You learn to deal with them – for example, it passes duties from machine to machine, so you’ll see an item in the collection “populate”, that is, sit there with no real links, and then a preview clip shows up, and a few minutes later a link or two shows up, until maybe an hour or a day later, all the different derivatives have done their work and shown up as well. A little weird, but at the end of the day, you personally did nothing, the machines did the work, and there’s this wonderfully complete collection of file variations to choose from.

Every thing or set of things is an Item. An Item can be grouped with other Items into a Collection. A group of Collections can be grouped under yet another Collection, making them all Sub-Collections. You get used to it. It’s not easy to go through the stacks, but it keeps the stacks sane.

The tradeoff is that the Archive is putting in hundreds of millions of these items, and once they’re up, they’re pretty much up forever at the same URL. You’re not going to go to this collection of Yours Truly, Johnny Dollar radio shows in a month or six months, or feasibly a decade or a century and have it no longer be there. It’ll shift machines and storage media and a whole host of other aspects but it’ll stay there.



I stopped thinking about storage, and bandwidth, a long time ago. How much storage do I get, I’m often asked. “Enough”, I say. How much bandwidth? “Enough”. It’s just not a factor I bring into my calculations these days. What I’m focused on, entirely, is acquiring the data that’s out there, on the net, shoved into hard drives and out of the way sites and who knows where else. Stuff that people felt didn’t have a home or which they were terrified would get Reddit or Slashdot or Gizmodo attention and then put them in the poorhouse or in a permanent 404. Not with the Archive. I spend a lot of time contacting people, helping them get the data into the site, and then let them hotlink us to hell, forever serving the data for their audience without being worried about what the next ISP bill will bring. It is handled. That’s Magnificent in its own right.



As I said, I’ve been inside the Contraption for some time and I’ve totally gone native. I still get the occasional surprise, the weird unexpected output, the hilarious balloon crash of script vs. data. But they’re easily dealt with, and the great people who I work with help it get sorted out.

The people!

It may seem like the most mundane and obvious thing, but when people ask me about the life with a non-profit like the Internet Archive, and want to know what I find most unique and striking, it’s simply this: everybody has the same goal.

Now, let’s not kid ourselves – there’s disagreements and bickering and flameouts and hand-waving, but they’re all doing it because they’re trying to get to the same goal. Different paths, different approaches, same goal: Gather the Largest Free Collection of Information on the Internet to Provide to the World. I spent a lot of years in places where if you asked folks around the office and the divisions what the “goal” was, they’d often have to tell you their personal goals because they’d know balls-all about what the “company” ultimately wanted to “do”. It just wasn’t part of the discussion. Here, people are on the same page. They want to make stuff come in. They want it to be useful, and they want stuff to go out. Everywhere. To everyone. Now. As fast and as efficiently as possible. This is breathtaking if you came from a world where your company would do something insane because of reasons and forces you were not privvy to and not welcome to investigate or try to understand. Your head is down. At this place, your head is up.

8847206818_e5f8091cd8_bIf you work at the Internet Archive for three years, they make a little terra cotta figure of you and it lives at the Archive. There’s a lot of these around. Show me the other places that care about your time like that – there aren’t many anymore. (You have to go pretty far afield, like, say, Blizzard Entertainment.) I still have a year to go!


So look, this place is pretty amazing. But it’s also a non-profit that utilizes grants, selling of scanning/archiving services, and donations to stay afloat. When Archive Team and I were starting to blow out their projections for disk space usage for the year, I got right up into the financials of the place. I’m allowed to tell you them.

The Internet Archive, all of it, including the Wayback Machine, the hardware, the bandwidth, and the people, costs $12 million dollars a year.

If you know anything about what stuff costs, this is by far the best bargain out there. $12 million is peanuts for what this place provides to the world. It also barely makes this amount every year since economic times went a little south, and so I resolved I was going to do something about it.

Hence, the aforementioned, the presaged, the I-gave-you-plenty-of-warning request that you consider getting a subscription to the Internet Archive. It’s great to send in a bunch of cash, and believe me it is really important the place get donations of that sort, but subscriptions provide something one-time donations do not: stability. It gives a regular income from people towards the non-profit. It rounds out hard choices having to be made each year when the board and administration looks at the budget. It allows the Archive to grow.

Even though it is technically not in my job description, I have shoved it in there anyway – I want the archive to have a huge number of subscribers, people who benefit from this place constantly and who can throw $5, $25, $100 a month at the place for what they do, to ensure they keep doing it.

If I can help shepherd money into the Archive’s operations, money that gets squeezed for every last bit of value, the resulting benefits are enormous. The drive space increases, the bandwidth increases, the hosted material comes in at a faster clip. The world benefits.

My boss, Brewster Kahle, has a pretty amazing biography. Go check the writeups about it out there. There’s a lot of them. And they all point out that in the 1990s, he ended up, through boom time sales, with a lot of money.

He could have bought a huge-ass boat. He could have bought a sports team. He could have cornered the market on software patents and made massive culinary books. He could have done anything with that money, and just drive with it in a handmade car into the sunset. But he didn’t.

He did this.

He hired some amazing people and knocked on a lot of doors and he never stopped dreaming. This puts him pretty far up there in my book.

And so while he’s not the type to shake trees for cash, I am. Especially when the money does something this utterly wonderful. So I’ll say it again.

Subscribe to the Internet Archive. Get people you know to subscribe. Talk to me or to the Archive itself about ways you might want to donate funds or resources to it. (They’re tax-deductible, after all.) This is some of the best money you could possibly spend.

All Hail The Contraption!


Exploding The Phone: The Last Word on Phone Phreak History —

Exploding the Phone, by Phil LapsleyExploding The Phone is an extraordinary book. Even before it was written, I knew that it was going to be the last word on phone phreaking. By the time I had the book in my hands, all my expectations were fulfilled and I was able to breathe a very heavy sigh of relief.

I’m thanked in this book at the end. That’s because I read an early draft, and had a lot of conversations with the author, Phil Lapsley, about approaches to the subject, and helped him get to a couple HOPE conferences to speak about the subject of phone phreaking. (These presentations, by the way, are excellent: Cats and Mice (2010) Phone Phreak Confidential (2011) are among his best.)

That side disclaimer aside, I was involved with the book because I saw what was going on with Phil’s research and approach, and knew that if there was the slightest chance I might be able to add something positive, I would do it. Why?

Phone Phreaking was a major component of my youth. The idea of the phone system, the weirdness of the world of the dial tone, and the feeling of it stretching so far beyond the small towns I lived in, made it unimaginably compelling. When bulletin boards were the primary communication for me and others, the files that I collected from them about phreaking were like mystical tomes.

Of course, I was doing all this in the 1980s, and anyone who did any amount of research knew that we were in the tail end of the golden age, or maybe even in the post-sunset darkness from the golden age’s end. We all knew it, but naturally there were no stories, no well-researched books on the history from a human perspective with the facts all in place. We didn’t have our epic tale.

And now we do.


It’d have been good enough if Lapsley just tracked down a bunch of phone phreaks (and he does, in amazing amounts and depth), but then he turns it around and interviews the law enforcement and telephone security officials who sat on the other end of the line, trying to make sense of what the phreaks were up to. He pored over thousands of documents, many of them acquired from dozens of FOIA requests, and pulls out all the stops to give us an accurate picture of how it all went down.

From the early discoveries by isolated curious individuals, through to the connections and gatherings of phreaks, through the retooling of phreaking as a revolutionary act, and up through the fading tones of the world of phreaking I knew, this book puts it all down and lays it out expertly. It’s truth talking.

Lapsley worked for half a decade on the book, and has been writing some amazing entries about the process (and following up with even more information) on the official Exploding the Phone site.

The copious end notes and conclusions at the end mention the amount of interviewees who died during the research phase or in the years since. It’s significant – Lapsley even mentioned one older phreak who said “…is it dangerous to my health to talk to you?” He gained a lot of trust to tell this story, and I think it paid off amazingly.

To have such a significant, yet underground story captured in such brilliant detail is rare, especially without turning it into a one-sided hero’s tale. Exploding the Phone is nearly perfect. I have three print copies, all paid for and autographed.

You can’t have too many miracles lying around the house.


Exploding the Phone. 

  • Hardcover: 416 pages
  • Publisher: Grove Press (February 5, 2013)
  • Language: English
  • ISBN-10: 080212061X
  • ISBN-13: 978-0802120618
  • Product Dimensions: 1.6 x 6.3 x 9.2 inches

Not for Hire: One Conference Documentary Director —



Now that I’ve finished the DEFCON Documentary and the views are skyrocketing, I’ll mention that a few people approached me in the previous months about maybe, possibly…. would I do something similar for their conference?


The DEFCON Documentary was a pretty unique situation, what with my very long history with DEFCON, the upfront fee being available to wipe out my credit card debt, and the excitement of wanting to try something so new. So I said yes, and there went about 18 months.

I committed some time ago to making three documentaries, documentaries that need my full attention cinema-wise while also doing my work for the Internet Archive. While there are some wonderful conferences out there, all with rich histories, I just don’t have the bandwidth to dedicate to doing a film the way I do films, that is, insanely.

I’m willing to give consultation/producer status to some, but that’s about it. (I actually like consulting, i.e. doing very long phone calls, on any of a number of subjects.) I did a full presentation on the making of the DEFCON documentary and that’ll show up sooner rather than later, and I’ll point people to it. But no, it won’t be me running any cameras for such an endeavor.

I hope people do make more documentaries about conventions and the people behind them – it’s a really worthwhile subject. Besides DEFCON: The Documentary, there’s also Comic Con IV: A Fan’s Hope by Morgan Spurlock, Trekkies and Trekkies II by Roger Nygard, and probably a few dozen examples of “They ran around the conference floor with a camera and then strung across the best parts.”

But it won’t be me doing it. Thanks for asking! I think I’m pretty cinematically booked for the next two-three years.