ASCII by Jason Scott

Jason Scott's Weblog

The Frightening Cornucopia —

I am an extremely lucky person.

I’m lucky for a host of reasons, but in this particular case, I’ve been matched up with the Perfect Job very early in my life – my 40s. Some people get earlier, of course, but many more get it later, if at all. Life at the Internet Archive is just what I wanted it to be. Conflicts are barely anthills. Achieved dreams loom in every direction. Triumphs have been many, failures often more hilarious than troublesome.

When I joined in 2011, I was given several overarching aspects to think about, and I added a few of my own. One of them was software and another was the emulation in a browser thing, both of them going quite swimmingly. Another was to spiff up the donation page, and at this exact second the design’s a little cramped for the holiday matching fund drive, the flexibility of the new design and the addition of subscriptions turned out to be well worth my attention.

So, 2014 looms. What’s got my attention and why did I use a word like frightening in the title of this entry?

First of all, I’m not “done” with the JSMESS project and I’m certainly not done adding software items to the archive – those will continue and may even dwarf the rest of what I’m doing for some time to come. They’re both big, important things and I’m working on them nearly daily, as are many others.

We needed easier money donation, and we needed software emulation in the browser, and now we have that, and it will get better as time goes on.

In 2014, I want to go after two other weaknesses in the Internet Archive arsenal: Metadata and Discovery. (And maybe Accessibility if we can swing it).

When I interact with professional librarians and archivists, or even folks who are really, really into the subjects that I’m focusing on (vintage software, crazy old crap), the conversation quickly turns to how in fact these items are being described and given metadata. And then the question of how it can possibly be found at all.

So, in the very specific realm of software, bear in mind we’re making up for decades of institutional neglect. Oh, hobbyists and intense amateurs were getting shit done, let’s not diminish that work at all. But it was all being done under this cloud of “are we in trouble” that meant that the hosting and interaction of the materials meant that a few random brave souls would make good collections (Home of the Underdogs for binaries, MobyGames for metadata, mame.dk for ROMs) and then things would go south for a variety of reasons and the information and data would disappear again, sometimes for good. No institution stepped in. Not really. And so here we are, with the Internet Archive now stepping in. Become the largest historical collection in the world? Check.

To do this, we absorbed many terabytes of data, from a wide range of software. Some people were very specific about high-quality descriptions and naming. Others…. were not. But again, to make up for lost time, in it went.

Same with old documents related to computers, old videos, old audio. My philosophy has been, and continues to be, get it online first. GET IT ONLINE FIRST. Deal with EVERYTHING ELSE LATER.

If it’s online, it’s not in a box in a basement or attic. If it’s online, it can be commented on. If it’s online, it can be shifted around effortlessly and included in greater and greater things. And if it’s online, it isn’t rotting on some piece of magnetic plastic or dimpled plastic or broken plastic. Granted, we’re buying a whole other range of long-term problems putting it on spinning disks and what have you, but the long-term preservation of the item is now a whole lot easier, should we be responsible. Being online is a great thing.

Once stuff is online, and as I just implied, an awful lot of stuff is now online, then we can talk about metadata, organization, discoverability.

And that time is now.

I unintentionally got quoted all over the archiving and library scenes when, in a talk I was giving at the New York Public Library, I said “Metadata is a Love Note to the Future“. This rang true with a lot of people, and it speaks to the oddness of what metadata is and who and how it serves.

Intense, machine-searchable information about artifacts and collections, be they digital or physical or whatever, has a value that is primarily based on faith. You can enjoy the object right now in your hands, but turning it into a photograph or a .wav file and then tacking on a whole range of information you might not have even had at the moment, is preparing for a future that you have no idea about.

I assure you, there are hundreds of books contemplating the nature of objects in past, present and future, and how we as human beings interact and interface with these objects. I’m not going there. But I’m going to say that the effort put into generating contextual data about an item provides all sorts of benefits, but almost completely in theory unless you know you have an audience waiting for it. That makes it a very tough sell for people to ‘just do’, like they might bookmark or do a retweet or notation in a weblog. It’s involved. you usually have to pay people. And if you pay people, it gets expensive quickly.

So my efforts will be to make metadata generation for items on the Internet Archive as painless, as collaborative, as rewarding as possible. I’ll likely utilize custom scripts, wikis, let’s-raise-the-barn events and shout-outs for folks to get involved however they want to. I also will work on automation of same, where a person is signing off on the efforts of machines, instead of typing in the year when the stupid thing is telling you the year right there and in a billion obvious locations.

It’s a tough problem with a lot of moving parts! Hence it’s a goal, to be implemented over time and with endless refinements as I progress. I’ll let you know how that goes.

Even more fundamental is the issue of Discovery and Exploration.

There are people who have no idea the Internet Archive exists, Wayback or digital media or anything. There are people who only know it for Wayback. And then there’s people who know it “pretty well”, knowing we have a whole bunch of audio and video and books and software. You are likely among this last group.

And you still have no idea, no idea, how much stuff is at the Internet Archive and its collections.

I just checked The Thing That Tells Me Stuff and it tells me that in my time at the Archive I have personally uploaded 229,000 individual “items” (some of which are grouped files) for a total of 262 terabytes of data.

I’m throwing a lot in, but I’m hardly the only one throwing a lot in. Some of my co-workers in the “collections” group I work at have shoved in millions of individual items, ranging from documents and journals through to the video, audio, and so on. Let’s not even touch the wayback, which has over 368 billion (with a b) URL captures.

When I send you somewhere, say, deep into a collection of magazines or over to some Apple II documentation or up into a massive audio record… well, forget the surface, we’re not even scratching the surface of the surface.

It is a terrifying, frightening cornucopia. It is a horn of plenty so pitch-dark with content that I am not 100% convinced the problem is solvable, unless the nature of humanity changes overnight and even then we’re talking a couple years of hard work.

But there you go. In conjunction with other efforts by other folks at the Archive, the plan is to make strides in discoverability, usefulness and access to the vast and ever-growing stacks of the Internet Archive, which, again, I promise you, are massive.

Every site that has a forward-facing website and then terabytes of goodness down the line has this exact problem, by the way. Every museum and archive with warehouses and storage units extending into the darkness has the problem as well. It’s not a new problem, but it’s one I’m willing to tackle.

Hey, if they weren’t called ratholes, everyone would want to go down them.

Onward!


A Thing With Feathers —

The challenge to make my presentation outfits more enjoyably outrageous continues, and it escalates.

Nobody is telling me my outfits need to be outrageous, of course – I just know, in my heart, that it’s what needs to be done. Just like I know that digging in intractably on the principles of protecting user data needs to be done, or that spending years helping people port some huge codebase into javascript needs to be done. It must be done, it must be.

Anyway, I was still fishing around for a combination of striking and not insanely expensive for my presentation at Build Conference 2013 (Belfast, Ireland), when it came out of the blue – black angel wings with a formal outfit.

This worked out.

(The rest of the set, and the other photos of me, are by Rachel Lovinger.)

This has resulted in one of my favorite photographs of the last 10 years:

 

What are my motivations?

Well, first of all, a subset of places I speak at are particularly well-run and particularly careful about treating their audience and presenters well. This includes XOXO Festival, Webstock, dconstruct, and this one, Build. Others are family to me, and definitely done by people who care, but this group of events pay for airfare, hotel, provide excellent lodgings, and activities. They really bring an A-game and hype the presenters to be the best of what they could bring that year – I consider that a challenge, and I feel they’re trusting in me. So I make sure the talks are extra sparkly, and I try to go the extra mile in terms of being available and, if possible, wearing something memorable.

This worked out well.

More than seeing photos of me prancing about in this outfit, this entry is really about the more critical information: the current state of wing-costume purchasing.

The collapse of the industrial sector in the US smashed up against the ubiquity of internet accessibility and online commerce, along with improved manufacturing techniques in materials means this is the best time ever to get a costume with wings.

If you’re just looking to get by with a basic set of feather-laden things on your back and call it a day, the price is somewhere around $20-$30. The wings are not of fantastic quality but they get the job done. They’ll look something like this:

mr6v5Zcb37g4dubuVd1uWhwThere are wings available that are cheaper than $20, but at that point it’s obvious you just don’t give a shit, or you consider nylon dragged across some flexible wire to be a “wing”, instead of the stuff we’re talking about here, with real feathers. Get out of here.

I went for a different class of wing, in the $100-$150 range. Here’s what they looked like on a mannequin at the site I bought them at:

$(KGrHqR,!hgF!ys+5d!sBQR(+Pgqz!~~60_3If it appears I have less wing feathers than the model, here’s why: the secret of all the costumes under a certain price is that feathers fall off. They’re bound by glue onto plastic plates, and they fall off. In my case, they came very well packed, but then I flew from New York City to Belfast with them, with the wings in the cabin, and frankly I’m surprised they survived as well as they did.

I then made the executive decision that fucked-up wings were more bad-ass.

If I had decided that wings were my new “thing”, and that I’d be expected to show up with wings to all later speaking engagements, well, then you start getting into the $500-$2000 range. Yes, that’s right, $2000 for wings. If you want to see what that looks like, it looks like this…

$800 or thereabouts:

HugeUpsweptAngelWings5095

 

And “fuck it, I wanted to buy wings that will strike fear into people”, $1700:

BlackArchangelWings4278dm

 

I’m sorry honey – at that point you are no longer going to parties. You are the party. The site that sells this particular model, Dragon Wings, says that this particular costume folds up in four places for easier shipping, in case you want to go on the road with your winged antics. Note that unlike the previous wings that use straps on your shoulders, this one needs an additional belt to keep the whole mess in check. They claim it weighs 17 pounds.

I also brought a pair of backup wings, which ended up being the “social” wings for the post presentation parties. Here’s Rachel and I modeling two different sizes of wings, hers being of the $25 variety, and mine of the $35 variety.

10919739465_b1f116e04c_c10919874904_a2db04aa74_c

 

I had a conversation with some folks a ways back at an event I’ve forgotten the details about, and I had one person say “Oh, you’re not gay! I read your blog, I assumed you’re gay.”

Well, OK, let me know how that browser plugin works, but I will say one thing: being interested in making an impression before you say the first syllable of your presentation is for everyone. We fill a room with souls, we make them all spend an hour or two listening to someone pointing at pictures or telling stories, and behind the scenes are people working their asses off to provide the best experience for all involved. Being in people’s minds weeks after comes from a lot of factors, but it doesn’t hurt to walk out on stage and be the best thing in the room. The least you can do is put as much care into proving the person on stage should get your full attention, and then sealing the deal once you tell everyone the great stuff you’re up to and what there is to learn.

Oh, and musicals! I love musicals.

 

 

 


JSMESS Makes a Little Noise —

Stuff just keeps falling in place with JSMESS.

As of this moment, we have a version that handles sound.

If you want to test out if your browser/machine/audio setup works well, you can’t do much better than clicking on this link and seeing if you’re hearing a ColecoVision play Michael Jackson’s Smooth Criminal.

colecojackson

Assuming you didn’t just crash your browser, machine, car or phone, and it sounds decent, then the rest of the systems on the JSMESS demonstration page are going to be a treat.

Regarding this excellent Smooth Criminal cartridge image, 2009, the creator of this cartridge did a pretty amazing thing – he went ahead and ran the same program through a ton of emulators so you can see how much massive variation there is between a “real” ColecoVision and all the emulations.

The point is, sound is hard.

Luckily, the way the system works for JSMESS, if sound is working in the browser for one system, it works well across all supported systems – they’re all ultimately using the same audio output.

Unfortunately for the big Historical Software announcement from October, the audio APIs in browsers were shifting around a bit too much for me to allow the Internet Archive to be running sound. People noticed, people complained.

After a round of testing and tweaking, and nailing down any other issues, this improved version will go into the Internet Archive’s collection, meaning that sound will be a part of the place going forward.

It just keeps getting better! And noisier.


JSMESS Now Supports USB Joypads. Sort of. —

Huge breakthrough this week. JSMESS now supports USB-connected Joypads.

In a few browsers. If you do the right thing at the right time. With luck.

s_Pitfall_1

Here’s how it works.

First, you need a browser that’s compatible with something called the Joypad API. As of this exact moment, that would be Google Chrome (most recent versions) and Firefox (most recent versions). In the case of Firefox, joypads will work if you type “about:config” into the toolbar and set dom.gamepad.enabled to trueHey, who said the cutting edge was comfortable?

You’ll need a USB Joypad. This looks like a game controller with a USB plug at the end of the cord. I checked around, and I found them for sale in many chain stores, such as GameStop, Best Buy, Sears, K-Mart and Target. The price ranges from I-can’t-believe-it-stays-functional $15 to $150 arcade-quality-stands-on-your-desk nightmares. I bought a test one for $25.

Over the last few years, people have made a whole range of ways to hook up Atari Joysticks, Nintendo Gamepads, Sony and Microsoft Gamepads, and other related items up through USB. Trust me, it’s a big fat tested market full of many items which you would be able to acquire with little effort.

The “Joypads in the Browser” API thing is not just new, it’s “steaming hot asphalt laid down 30 seconds ago and you’re walking through it” new. I find it pretty ironic that in the quest to be able to reach deep into history, decades of computer software and so much older material, we’re at the same time doing beta-grade updates and running standards that are still 90% wet paint. But that’s what JSMESS is about – innovation and changing the world.

So, here’s what you have to do:

  • Get a USB Joypad, and plug it into your machine with a browser.
  • Press down on a button on the Joypad.
  • Go to this link to start up a game of Pitfall! for the Atari 2600.
  • With luck, you’ll be able to go left and right with your joystick and it’ll work.

If it doesn’t work, there’s a whole range of things wrong. We’ll be fixing up our loader so that it’ll say “Joypad Detected” or something, in the future. One cheap fix is to hold down a button on your joypad and hit reload on the browser. If it doesn’t work after a few tries, don’t overwork yourself – it’ll get smoother and better over time. We don’t need bug reports this second – we know it’s rough.

But when it works… oh!

shopping

The experience of using the consoles and some computers with additional hardware like this is critical to some people – the games and programs were certainly designed with hardware like this in mind, and the experience wouldn’t be complete without having your hands wrapped around a control as opposed to pressing keys or clicking on screen-based representation of a controller.

It’s a fairly severe debate, which mires people into not enjoying or dismissing the keyboard-only experience, or saying that if we can’t have the controllers, the project shouldn’t be done. I dismiss that heartily, but one of the advantages of the JSMESS project is that by following the MESS/MAME codebase, all the work being done in emulation and additional support are going to fall into place much faster than if we were a 100% independent emulation project.

I don’t want to go into detail about all the other cool features JSMESS is capable of due to being a code conversion of MESS, but believe me, the MESS/MAME people have been working very hard for many years to make their project do a whole range of interface tricks and output variations, and JSMESS will hopefully benefit from that sooner rather than later.

Until then, look forward to smoother and smoother controller support in JSMESS and another aspect of the computing history experience to find its way into your hands.


Lost in the Sands of Internet Time —

A few weeks ago, I got a mail asking for help tracking down documents:

 

Hi Jason,

I am trying to locate three computer manuals. I just need the title page, copyright page, and date stamp showing a date received from 1996. I have already checked several library resources. A librarian colleague suggested I contact you.

These are the titles:

Asynchronous HDLC MC6360 ASYNC HDLC Protocol Microcode User’s Manual, Rev. 1.1, January 24, 1996

(no record on WorldCat)

Universal Serial Bus Specification, Rev. 1.0, January 15, 1996

(one holding on WorldCat, cannot supply)

MPC860 PowerQUICC User’s Manual, 1996

(one holding on WorldCat, cannot supply)

Would you have anything like this in your collection?

People often come to me asking about this document or that program, and even about this BBS or that online service. Personally, I don’t have that much in the way of data compared to how much data was generated over the years, but I can usually get my hands on it one way or another.

In the case of all three of these, I just couldn’t find it in a reasonable time. (A reasonable time in this case was a day or two of checking idly.)

I was particularly disturbed I couldn’t find a PDF of the Universal Serial Bus Specification Rev. 1.0 with that date – I found later items, and later versions, but not that one, which I think most people would agree is pretty historically significant.

It’d be nice if the audience found these so I could help this person, but it’s the greater lesson that I’m thinking of.

The weird situation I’ve encountered over my years is how blindingly contrasted the availability of historical data is, with regard to computer materials, or “born digital” as the kids call it these days.

When we get our hands on something in the era of “I consider this stuff important”, well, that material is saved. People duplicate it with no effort, spread it around the world, and put it into webservers and torrents and what have you.

But if you can’t find it, it’s gone. There’s almost no way to find the material by just rooting around in the cellar – it’s probably on floppy disks or hard drives or clogged up in some crazy archive format that nobody automatically scans at the moment.

It’s one or the other.

This is partially why I am a huge fan right now of dumping as much crap into the online world as fast as possible – later efforts to go through this stuff can only succeed if the stuff in question is within the reach of spiders, scripts and programs that eyeball vast farms of data. It’s why I’ve been uploading massive .tar files on archive.org, ISO images, digitized videotape, and all the rest.

I deal with people who think it all has to wait, offline or inaccessible, until it is summoned out of the green room for the big debut, wearing the most precious costume of hand-woven metadata and ready for the close-ups and the musical finale. This is short-sighted and not accurate to the situation.

Right now, the person above has a perfectly reasonable request, and the world fails them. I hope, down the line, these and other requests will be more easily fulfilled. My dream is to upload as much as possible, as quickly as possible, and let a thousand legitiate wishes come true.

Until then, it’s gone forever. Well, until it isn’t.

Update: Within about 40 minutes of this posting, several people stepped forward and had been able to find these documents. As expected, they were buried in obscure locations and in one case inside a large .ZIP file. Thanks to everyone who helped here – the general positions in this entry continue to be the case, but the three eggs for the easter egg hunt have been found. 


Looking for Volunteers for the Scanning Brigade —

If you live within 30-60 minutes of Hopewell Junction, NY and the prospect interests you, I’m seeking volunteers to run a book scanner at my Information Cube that will allow us to scan a large amount of materials extremely quickly. Please hit me up at bookscanner@textfiles.com to discuss it, suggest people, or otherwise line up for the fun.

IMG_27612013 has been a very good year for me. Busy as all heck, but very, very good. Off the top of my head, I’ve been to Seattle, San Francisco, Louisville, Las Vegas, Washington DC, Boston, New York City, Pittburgh, and then in New Zealand, Finland, England, Iceland… with trips coming up to the Netherlands and Ireland. In this year I’ve also finished the DEFCON Documentary, pushed out JSMESS, got a pile of things up onto archive.org in general, and continued to have no major medical disasters as I take pills for blood pressure and gout. I am in really good shape!

All that travel, though, means that I will have spent over 200 days out of 2013 not in my house. And that means that a really important project has been getting shunted.

It needs to stop getting shunted.

IMG_2780I took delivery, this year, of a book scanner from the Internet Archive. It is a very good book scanner, one of the best for what it does, and without involving robots and microscopes. It will scan a book in no time, and produce something really, really nice.

I pushed for this thing, a little hard in fact, and so I have one here, at my home, ready to scan in books. They had to send someone to do final adjustments, it took a long time for me to get the network working just so… it was a big deal and the Internet Archive was really kind to let this near one-of-a-kind setup exist.

And then I got busy.

IMG_2773

So there’s this world-class scanning setup, in the house, and I’ve scanned a few books on it, but it is a goddamned war crime that this perfectly working setup is right here and ready to go and I’m not on it 8 hours a day bringing materials online. A crime.

So it’s time to get real on this thing.

I’d like to talk to people interested in volunteering to learn to become scanners. You can scan stuff I’ve got in my inbox, or you can bring your own stuff. Any stuff. We can discuss what this thing works best with, and what it doesn’t. It can handle a lot of stuff, although straight-up books are the best thing it does.

Ideally, you can drive over, you come over every once in a while, and scan away. Perhaps you travel here from somewhere, stay over in a hotel or in a cot here (I suggest hotel), and scan away. There’s a train station nearby that I can pick people up in, and so it’s possible to get here from anywhere that can get to Beacon (from NYC) or Poughkeepsie (from a number of other places).

There’s no money or payment in any of this – it’s just doing good work. That might not be for everyone, and I totally get that and respect it. I’d love to get grants, or have a school or other organization funding it so students can learn a task. But I am not waiting for that situation before reaching out.

So give me a mail-out with questions, ideas, commentary, you name it. bookscanner@textfiles.com is the address to contact me through. This is ongoing and I will update this entry if things come up or more information arrives.

I hope people jump for this. This is important stuff and an amazing opportunity. Let’s seize it.

 

 


Just Keep Solving the Problem Month —

Theproblem

 

I had hoped “Just Solve the Problem Month” would be a yearly thing. In my original entry about this event and how it would go, I expected us to aim ourselves at a new direction and throw people at a problem that just needed some attention. Every year. So each year would bring to a crashing halt the endless yammering about a known issue that just needed a few hundred sets of eyeballs on it to go away.

The fact is, my life’s been pretty busy, what with the JSMESS and the documentary filming, and the awesome job in general and a stupid amount of travel (over 180 days away from home this year so far, with another few weeks still to not be home) … well, there’s just been no time for me to sit down and devise what might make the 2013 Just Solve The Problem month worth working on. That, well, that is a bummer.

So, I’m going to punt, after a fashion, and instead point you in a different angle – basically, last year’s Just Solve the Problem has turned out to be amazing.

Now called fileformats.archiveteam.org, the File Formats Wiki is full of over 2,500 pages covering all aspects of formats, be they digital, analog, organic…. old, new, just-discovered and long-forgotten.

You see, long after the few dozens who were working on it faded into other efforts, a small handful of folks just kept going. The two biggies are Dan Tobias and J. Summers, but a few others have helped along as well. That Wiki is rocking.

The dream still holds – put all the file format information we can into one wiki, referencing all the pages of the Internet or coming up with our own original resource to try and insure both notification of the existence of formats, but also pointers for places like the Internet Archive to vacuum up these reference pages into the Wayback Machine. In this way, a body of work could truly grow and be of use. And since it’s all Creative Commons Public Domain, it can be absorbed into all the file format wikis with limited scope or budget or government oversight, so the information is protected.

It’s a great dream. In many ways it’s come true and it still is.

So maybe, this year, a bunch more people can hop in and refine it. Not cut off “useless” or “unwanted” pages – the whole point is that everything stays up, even if it’s ref links. I mean more along the lines of getting the front page of the Wiki to be very helpful to getting to sub-pages and subsections. Cleaning up the look where possible. Maybe making some template boxes to add to the others. Finding inter-page links worth making. In other words just improving the wiki.

You can register to join the Wiki today, and all month. The File Formats Wiki welcomes your help. It’s a problem worth tackling. Let’s see what November brings us.

Let’s keep solving the problem.


Fool Me 16,380 Times, Shame on Me —

Salutations, dewy-eyed fuckstick.

I’ve met you before, of course. I’ve met the type you are, the way you are, and your dreams you think you’re selling are nothing new.

Your whole culture is poison, shifting its language and buzzwords and goals on a whim to satisfy what you think people are going to buy into. You’ve sat back and seen what everyone else is doing, tried to figure out who is succeeding the most, and then you’ve done exactly what they are doing, except different. You’re nothing new but everything you are depends on convincing me you’re something new. You’re not.

You stand at the parties and the paid-for open bars and the shitty trailer-display fake-clubs and act like you want to be there, to find the right people to talk to, and make all the right connections. You don’t even know how dead your eyes look. You probably don’t even have a clue how you sound anymore, with your squeezed-together meatball of catchphrase and cool-not-cool references meant to pull in money and fan-friends like some sort of evolutionary-lucky flower catches bees. I’m not that bee. I might have been your bee once, but I am so no longer your bee.

You buy space and you allocate your meager funds and you shift your stories and you scrum your agile and everything is going to be a-ok, every day, every meaningful life-moment you’re experiencing now. You have a card that calls you a made-up title and a group that calls you a made-up name and this could be anything, anywhere, and you will ride it as surely as you rode life to this point, even when the darkness was behind you instead of in front.

So when your fluffball fake-dream bullshit story is choking down some part of the world, well, on its own, who cares? Not everyone gets to be lead dog. Some don’t even realize dogmeat’s on the menu until it’s too late. Fine enough for me – get into your car or walk down to your cafe, or stroll past your workshare’s hope-chest of names in the directory and take that elevator to the empty toy-room of your latest squashed-name pony show. Do that all damn day, until you write some essay that reads like the Dalai Lama after nine beers about you doing something else, whether it be to join some grey battleship selling 0.9 widgets for the price of 1.1 or playing drool-parent to your un-special offspring.

No, see, that’s a-ok. You go there, sport. You ride that all the way down to the splash.

The problem, that is, the part that gets me involved, is if your lame bulging sellout craptastic shell-game touches lives. Not just the throwing of coin at food servers or your soaking up the phone-line at the local pizza joint every Thursday. No, I mean lives, and the life they live, and what you’re taking from them.

You’ve glazed over, and that’s a shame, because this is where you should be listening.

But follow-through isn’t your style. Beginnings, big bangs, huge throwdowns and declarations of success at cusp of the outset of the firsts – that’s your place, and where you live every damn day of the journey.

But, see, your story is as old as the hills, as dead as the moon, as tired as the second snooze alarm. And I’m tired of you telling it.

It’s the end, you see, and that’s when I get involved. The end. The big goodbye. The moment when you realize you aren’t pulling down rainbows, you’re pushing up daisies. That’s where I am these days, kicking around, holding the hands of the people stuck with you after your shining balloon fills with lead. I’m all crazy hat and loud voice, and when you most want to mourn your dream and turn to lighter lands, I’m there to drag you down where the bodies are buried.

When does it happen? When do you turn away from people you claim you worked for, loved, cared for, admired? Were those promises just words? Spoiler – they were. You don’t care for your customers, your audience, your fan-friends, your follows; any more than you care what leaf that bug you stepped on was carrying. It’s old hat, it’s yesterday.

Well, guess what.

It’s a brand new day here in reality. You have a problem they don’t teach you about in Douchebag Combinator.

The problem is me.

I’m here and I have friends, a team, an army more like, and they realized like I did what you are, that you’re just one segment of the snake but a segment nonetheless. We’re going to watch you, we’re going to hold you close, closer than love, closer than fear, and we’re going to make sure what you want to forget gets remembered forever.

Oh, you’re going to make noise. Making noise is what you do. You’ll use some nasty words, some untoward phrasing, some no-doubt effective-against-some blurbings about politeness and respect. Fine words, fine words indeed; too bad they utter forth from someone who would use their mother’s ashes to salt the plate of a million dollars, should it come to that. Like I said, I know what you are, and my friends do too.

What’s that? What’s that I hear?

Well, now that you ask, what I and all the people like me want are simple things, barely this side of demands, more like expectations… musings really.

We want respect. The real respect, that comes from people to people.

We want a right or two. The right to take back what you begged us to give you, to hold with you, to leave in your care. The right to take it back anytime. Any. Time. Even after the end.

And we want transparency, the sight into all that you are. No black boxes and dark clouds and missing words to hide the gaps.

We want no less.

It’s sad, really. It makes me sad. I’m making this all pretty clear, but I know you’re not listening. Maybe I’m speaking in the voice of the person who knows you’re going to screw this up, knows you’re just another dumb mouth spouting out the same old same old. But maybe, like a jaded player holding out at 17, that things might be a little different this time, that you might say something you never say: I’m sorry, and I will make this right.

Until then, it’ll be what it is, what it always will be. You, and me. You, and me and the people who see the clarity I do and the people who fall for the likes of you.

See you soon. And forever.


JSMESS and the Big Day —

Photo by Raj

 

On Thursday, the 24th, (1024, in computer vernacular) I was part of a raft of announcements from the Internet Archive for the coming year. Reviews of great things that happened, great things happening, wonders to be shown. If you want to watch the whole event with pomp and circumstance (surprise guest and all), then here is the video on the Archive itself.

If you want to check out just the ten-minute presentation I gave, here’s a link right to it. And if you want the summary of what I talked about for those ten minutes, here it is:

JSMESS is real. It works. It works well, very well. It emulates 300 platforms and can run many thousands of programs on those platforms. It works in pretty much all modern browsers and will be continually updated.

But more than that, we have now installed JSMESS into the Internet Archive, in a collection called the Historical Software collection.

For people who follow this weblog, JSMESS and its progression from my initial call for it in October of 2011 have been a steady drumbeat, with incremental improvements the whole way along. But for a whole other range of people, this past few days have made them wander into the Internet Archive and realize, to their horror and delight, that a collection of programs are a click away from playing right in their browsers. One click, and an old machine is alive and running software. No plugins, no click-throughs, no downloading and configuring of emulators, and certainly no goddamned Java.

With the introduction of the Historical Software Collection, we have a real-world, dreams-come true experience of seeing contextual descriptions of old programs, and an instant-click window that will bring you right into the experience of that old program. From “Oh, Pitfall!” to playing Pitfall in less than 10 seconds. From then, it’s just you trying it out, ranging from a few pithy stabs at the keyboard to verify it works, to playing the crazy thing all the way through. It’s up to you! You’re not making anybody wait, you’re not trying to figure out if you got the right emulator program and where the cartridge image for Pitfall! is going to come from – you’re right there, like you are with movies, music and texts. That’s the magic. That’s the miracle.

logo

 

As of this writing, dozens of major online news outlets have spread the news, either about JSMESS or about the HSC. Most are just reporting our weblog entry about it, but a few are doing some in-depth discussion of the meaning of it all, and the experience of using old things like Visicalc or Wordstar. It is, as I had hoped, a joy to read all this, to crash-land JSMESS into the Internet Archive and watch people flip out in joy and incredulity.

Along with this comes the usual “I never head of this 15 seconds ago and damn howdy do I have something to say” Opinion Tourism that weighs into so much of online writing. Most of it I expected – very little is a surprise. I might as well answer it in one place.

A whole range is “it is better emulated in native/desktop”. Well, YES. The difference is that in one case you’re in the process of tracking down materials, installing items on your desktop, running them, finding what ELSE is missing, and then getting it going. You’ve gone from an observer to a fiddler and a hobbyist in the process. In the other case, you click on something and it is right there. We’re going to make the JSMESS emulator better, more accurate (thanks to the work of MESS) and add features as we go. This was the big push to get this going for the big announcement, but we have a long way to travel. But we are travelling – everyone’s excited to get JSMESS better and better. But we obviously will always be one step behind programs not fighting the browser paradigm and running at a reduced speed. The key is to make that step as tiny as possible. Where we will always be ahead is Time-To-Action – and that was the big reason for doing this. The day when you can say “Check this out” to someone and within seconds they are checking it out is now here. That is a very big day.

Another range of discussions is “awww, only 30 programs, what about _____”. A lot of the reason for this was that I wanted JSMESS and the entire paradigm of a software museum to be highly, highly curated. I wanted it an impeccable collection of unquestionably seminal and pioneering works. I wanted there to be no question that, sans the fact that it has no physical space and can be called up on anything from a phone to a tablet to someone’s laptop – it was a truly valid place to learn about computer history. So we started small. On a technical side, the methods we used to add the programs took a lot of custom work, and I’d like to see us remake this down the road so anyone can add their old software up and have it boot. I promise you – within a year, this collection will be in the thousands, far beyond what one reasonable person would ever need. It’ll be a place that historians and educators can point to for people to experience these items and comment on them.

Skooldaze

A particularly nice moment has been to come back to the MESS coders, an amazing and intense group of people, and show real results. JSMESS is now something that, with some luck, will be accounted for in future MESS versions, with a few code modifications and other cleanup work being brought back. Contributors are helping on both sides, and I think the projects with both benefit from that. We’re currently 2 years and multiple versions behind the latest version of MESS – the goal is to make that disappear.

People have already come to me, inspired by all this, to talk about contributing emulation code and support to the MESS project to ensure JSMESS supports their favorite machines and supports them well. That is exactly what I had hoped for – the feedback loop of seeing it arrive in your browser window, and knowing your efforts will result in something millions can use instantly.

It is absolutely a brand new day for software preservation. The question that now arises is – what is going to happen?

6t86il0347

 

I have been to a lot of places over the last couple of years to tell people this was coming. We can’t go back – it exists, it’s up on github, it’s everywhere. People know, by the tens of thousands (and soon the hundreds of thousands) that this exists. They like it, they want it, and they want it smoother, faster, better.

I’ve talked with institutions about this approach of mine – it’s one of several out there, and I think it’s one of the slickest, but either way they come to it, institutions now have to think about how they will approach emulation of these programs. It’s here. It’s now. It is now very interesting and very immediate. There is no barrier to entry. None. Your browser has to work. You have to have the vaguest interest. Once JSMESS is a distributable plug-it-into-your-website package, it’s going to be in a lot of places – weblogs, websites, kiosks.

The flood of new users of emulators, an entire casual class, is going to have interesting effects in the world of emulation in general. More people savvy this exists, more folks wandering in to learn about all the hard work that’s been done, and with that, new demands and wishes. And both the emulator makers, the groups trying to do emulation as a service or emulation as a standard, are going to find out that the hoped-for audience is here, right now, and they want action.

How will this brand new day work? It’s not up to me. I’m going to focus on the short-term – getting the historical collection filled with a few more dozen items people are requesting, cleaning up some of the related projects that came with this one, and working with the JSMESS (and maybe MESS) team to get things even smoother.

I can’t wait to see how it all plays out.


Scanning: Some Thoughts —

If perfect is the enemy of done, scanning has whipped out a switchblade and standing next to perfect, ready to kick done’s ass.

Scanning is probably the number one thing I deal with, in terms of a process that folks can do themselves and which everyone has completely wild ideas about. How to scan, what to scan, and why scanning should be done. It’s a morass, a mess, a jungle of weird social mores and beliefs and anger and delight.

Before I go super-depth into this subject, I’ll take the approach of a quick pop-science list so you can grab that and run into the night, if that’s all you were looking for.

Here’s a quick scanning primer:

  • If you’ve scanned something nobody has before, you win.
  • If you scan something somebody has before, but better, you win.
  • If you scan something as well as somebody before but add metadata, you win.
  • If your scanned, metadata-laden collection of something is browsable/downloadable, you win.

Similarly:

  • If you scan something worse than what’s out there, you lose.
  • If you scan something and destroy it in scanning it, you lose.
  • If you refuse to scan something because you’re scared, you lose.

Or, as Michael Pollan would say, “Scan things. As much as possible. Mostly ephemera.”

Let me spend the rest of this going into what I mean about all this.

IMG_1789

Life found me in 2008-9 in the basement of Steve Meretzky, who at the time still lived in Massachusetts in an absolutely lovely home that his kids had moved out of, and which, ultimately, he and his wife Betty Rock sold to move out west. (Sadly, the family that bought it tore it to the ground.) In the basement, Steve had collected years of material connected to his game-making history, and the history of several companies he’d worked at, including Infocom and Boffo. And I mean, he’d collected EVERYTHING – memos, scraps of paper, sketches, maps, even technical printouts, ads for materials tangentially related to game making, and invitations to parties and events he was running. He’d put them in binders and he kept the binders in a shelf. As I was making a documentary about subjects related to Steve, I asked if I could scan them to some amount.

Initially, I was in the basement. I sat down there for hours and scanned and scanned. Eventually, Steve trusted me enough to lend me the binders for an extended period of time, and I drove them home, these precious one of a kind materials, and I set up a scanning station in my office. All in all, I scanned a pile of these binders, with something like 9,000 pages in total.

I did NOT scan every single scrap of paper. I definitely did not scan all his binders.

The binders are now in the care of Stanford University, who have them available but charge for various types of access. I understand why they do this. I also know they have no immediate plans to scan them.

To scan, I used a $350 Epson scanner. The scanner was hooked up to a Windows laptop running Vuescan software. I scanned these documents at 600 dots per inch (dpi), which is relatively high. I scanned them into .TIFF files, which is a lossless format. I also made .jpeg versions on the fly as I scanned, so that there were easier to browse (but lossy) versions of the pages. It worked out to many gigabytes of material.

Now, the reason these aren’t public yet is purely a case of decency – I need to go through the pages, find every time a person is mentioned, and assemble a version of the pages with that person in them to get signoff from that person. So I’d assemble everything from or mentioning Dave Lebling, and make a multi-dozens or multi-hundreds set of Dave Lebling pages for him to consider OK. When this project happens, all the material I scanned will go on archive.org.

600 DPI is pretty intense. Here’s a scan from a page:

lgopcloseThat’s graph paper, which Steve used to do maps of his work. From this dpi, it’s possible to get a very nice closeup shot for, say, a documentary, which is why I did this work in the first place. GET LAMP has a bunch of intensely close shots of design documents, and you go in close enough that you can see indentation and pen strokes, not to mention tiny flaws in printer output and individual dots in color magazines.

Let’s step back and study this non-hypothetical hypothetical.

I’ve definitely taken a bunch of this material from the realm of “will never be seen” to “may likely be seen by fans and interested parties” by scanning it – someone could go to Stanford (or Steve’s house, way back when) and get to look at it as well, but that was a very small number of people compared to who might see it now. So, that’s good.

I scanned it at 600dpi. This means that it’s possible to get pretty close to the material in question and zoom in if text is small, or if you want to do a high-definition photo or screenshot of the material.

I put it in TIFF, meaning that the scan I did was not translated down into a “good enough” but low disk-space version of the material – you will not get lossy artifacts that JPEG provides when you zoom in. Image zoom routines might even give a pretty good illusion of higher resolution. The tradeoff in terms of space consumption is minimal in the era of the sub-$50 terabyte hard drive.

And, of course, by scanning these I made sure that information-wise, these pieces of paper and information about sales figures, design documentation, interoffice memos and whatever else are not left on a single piece of paper in a dude’s house – Stanford has a copy of the scans I did, and I have them in a number of other locations as well. So they’re “saved” or “preserved” by some definitions of the word, and definitely the ones that people use when they find out something is just lying around somewhere, like, say, a dude’s basement.

(As an aside, these binders were already getting moldy – I swapped out the binders and Steve inquired about why I did that, until I showed him how the old ones looked compared to the new ones, and he was quite glad to see the old ones thrown out.)

Let’s step to the side and talk about everything that’s terrible.

First of all, I’m using a flatbed scanner, and flatbed scanners definitely can have dust, hair, imperfections in the glass, all of which might lead to some of the images being a little bit weird looking. I might have pressed a thumb against something, and if I didn’t notice it for a while, that print might be discerned here and there if you know to look for it. In other words, a person touched this all in a non-sterile environment. You do your best – you wipe the glass, make sure to have alcohol nearby, but it’s just not perfect.

Next, 600 dpi is awesome for some things, but to throw out the originals would be a crime. I didn’t get all the items, I possibly missed the backside of a two-sided document, I didn’t mark down the metadata about how the notebooks were arranged… a whole set of information would be lost by going about it that way. And you never know when you need to zoom in a little farther…

Finally, a TIFF is not paper. A scan is not the object. The photo of something leaves you a couple steps away from the original item, no matter how good the lighting, how true the color, how right the process.

Atari_400_XL_Sears_1979The fact is, almost any scan be ripped apart depending on your level of standards, and what you think a scan needs to represent. In the item above, a certain level of people are delighted to be able to see photographs of an Atari 400 and related products, the fact it came from Sears, the prices for everything, the launch/available titles, and, maybe, the unique grille of the television set the example machine is connected to. This is all information and if you didn’t have the catalog this came from, you just got some great information.

Or you can concentrate on the smaller resolution, the fact you can see ghosting from the other side of this thin catalog page, and the yellowing/discoloring. There’s likely a dozen other optical and arrangement flaws I’m missing, but they’re there. For some, these are incalculably fatal mistakes. It moves this from the realm of captured history to cheap trinket.

Let’s break it down further.

As I said above:

  • If you’ve scanned someone nobody has before, you win.

Maybe this isn’t the ideal specimen. Assuming they didn’t destroy the catalog to get this scan, it’s still a great thing they did it. There’s information aplenty in this thing, it proves the page existed, it proves the catalog existed, that Sears sold these, and it gives you a range of pointers to dig deeper, should the mood or necessity strike you.

Of course it could be done better – you could scan it at ludicrous DPI. You could do multiple scans at various contrast/brightness levels, and recompose a top-quality version (that maybe never existed in reality, mind) that would be suitable for a poster or an art book. You could scan the other side, and using some amazing algorithmic mojo that probably killed some graduate student’s year remove all trace of the back page from this scan. You could even painstakingly RE-DO the page from scratch, using this as an artistic guide while you vector this to perfection, meaning near-infinite zoom capability.

The flaw, the miserable mistake that I’ve now seen over the years are the people who think that this scan, not being perfect, should not be done. 

I get the mails. I have the conversation. The people who sit on items that are important, that have historical heft, who are waiting for some mythical moment in time when the ability to scan something perfectly every time, conducted by themselves or by some institution paying for it, will ensure the majesty of the item be maintained forever. I know these people. They are among my people.

tumblr_mc0irzceex1qe52v7o1_500The most potent of the arguments they have against doing ‘okay’ with scanning is that the ‘okay’ scan will flood out any future attempts to scan some material, because someone “did it” and nobody will want to do it anymore. The craptastico initial version will be the “winner” and that’ll be that, the history is lost.

I happen to think this is the position taken by lonely competitive personalities.

It’s faith-based either way, since it relies on actions not yet taken or actions not yet avoided, but there’s plenty of examples of re-doing something so that it’s a better version than was before, or taking an extant item and remixing it into a more complete or contextual experience. I happen to think that doing an ‘okay’ scan (without doing an intentionally poor scan) is an excellent first step – as long as it’s paired with the approach of non-destruction.

  • If you scan something and destroy it in scanning it, you lose.

I have never seen two parties come to a conclusive agreement if one of them is a bearded nerd going “NO, NO, NO!”. But I will say that passion as regards destruction of an item is an understandable reaction. In many cases, items are bound, glued, stapled, attached, and otherwise not compatible with scanners as we tend to deal with them. There’s a decision tree there: Get a good scan as best you can without wrecking it, meaning some information doesn’t make it? Or do you destroy the pages, cut them up, remove staples, and end up with a broken not-quite-awesome pile of what used to be the item, and better scans?

Well, there’s subtlety at work here, and nerds don’t always do subtle. There’s definitely the ideal of a “frame off restoration” in the realm of cars, where you take the car completely apart, down to the frame, and fix the frame (maybe even fabricating a new one) to eventually end up with a better-than-new car at the end. Similarly, if you’re seriously dealing with an item that is so important to capture every little detail (say, the first Worldcon program or a prototype magazine that came from a publisher’s private collection), then you’re in a realm of recovery and intensity that is likely being accompanied by funding or donations anyway.

Or, another way to look at it, is that it’s “just a magazine” or “just a book”, and so pulling it apart to get a better scan might be a willing sacrifice for you. Certainly many of these materials have been thrown away, with that person doing nothing to save it. One being gutted to bring an item online might, with that perspective, be worthwhile.

It puts me in a precarious moral position, but I’m used to those: I do not like that it’s done. I will regardless take items in which this was done and use them. If one thinks of the destruction as being inevitable, than destruction plus scanning almost makes sense, and certainly scanning plus availability is the best of a poor situation.

But that’s the core issue of this entire scanning situation. I’ll limit it to what we call the “vintage computing” culture, but the scanning of these older technical materials amounts to an altruistic act in service of a murky future. It is not clear what people will use these for, or what part they will play in lives, or how valuable the information being saved represents. It is a gamble, a shot in the dark, and the question becomes, quickly, how important is it for these items to be “perfect”, or, again, whether we will be satisfied with digital copies of material without any remnant of the analog, real-world materials (paper, floppies, cassettes) they came from.

ATARI-DIGITAL-CAMERA-1

To some extent, we’re in good shape – nobody has issued a concerted effort to wipe computer history from the face of the earth, nobody has banned it, nobody murders the people behind it, and the items, while experiencing dips and valleys in perceived value, are generally considered to be “neat”, i.e., worth keeping in the attic a few more years.

There are a lot of copies of magazines out there, especially the big ones that people remember like BYTE, Creative Computing, Compute!, A+, and so on. If it handled home computers, or video games, chances are there’s quite a few copies out there and a person who issues a concerted enough effort and is willing to outlay a bit of cash in various silly directions could get a complete set. That’s not the situation with, say, event programs from computer and hacking and vintage festivals. It’s definitely not the situation with corporate memos or warranty cards or identification badges. The more we move away from “periodical”, the murkier it gets. And when dealing with people, I find a lot of folks put value and understand the meaningfulness of “magazines” or “newsletters” and less on, say, the free bookmark from a prominent computer store that existed in the 1970s.

This is why, like I said above, scanning ephemera, which doesn’t usually have a binding and which can fit in a flatbed scanner, is generally better for people to be scanning than books and magazines. In general. If you want to “help”, that’ll “help” more than anything. 600+ DPI. Use TIFF or another lossless format. Look it up.

But what if you want to scan books and magazines anyway?

In terms of what the best case situation for scanning a book without destroying it, I am, perhaps, luckier than most. I have a $25,000 book scanner in my house.

IMG_2767Last year, I requested, and got, one of the Internet Archive-created book scanners. They’re called Scribes, and they’re a masterwork of metal, glass, optics and mechanisms designed to allow easy scanning of books.

I have it installed in a room in my house. To my great shame, this year has been very, very busy and it is only recently we have it functioning to the point that I can really begin scanning books in earnest. But here it is, and it’s ready to take in books.

It has been incredibly informative to see how Internet Archive (and the books group there) have approached scanning of books, and the different advantages and disadvantages of this approach.

The Internet Archive Scribes are a great example of choosing what’s important to you and going with it, even if other stuff has to take a bit of a hit. The Scribe presents a v-shaped holder that a book is cradled on, to which two high-quality cameras take a photo of each page at the same time. The resulting pages are then stored on the server, and you turn the page of the book, and then do it again. Here’s what a station looks like:

6050098859_840db0ea29_b

The advantages are this: You can scan a book really goddamned quickly. It’s possible to do 1000 pages an hour if you’re really on top of your game and the book isn’t a finicky mess. 1000 pages an hour! No joke. You can blow through a standard 200-300 page book in about 10-20 minutes or less if you’re (again) lucky. The V-shaped cradle means you go RIGHT up to the binding of the book and you do not break the binding to do so. In other words, the original item is not destroyed.

To do this, again, a high-quality camera is taking the photo – but it is, after all, a camera some distance away. DPI can be between 300 or 600, and it will never be as good as putting it into a flatbed and letting that insane camera element slowly drift across the page, pulling in every last optical feature from a half-inch away. But it will be very good, and you will get a hell of a lot of books doing it this way. The Internet Archive is able to add a new book up every ninety seconds, 24/7, using this method.

Doing odd objects, like placemats or software boxes, are much more difficult with this setup. Magazines, especially ones with shiny paper, are also a bit of trouble. This is the tradeoff. Stick with books, and there’s a LOT of books, and you do very well by these machines. Otherwise, you work a little harder. (And sometimes working harder is quite worth it.)

The V shape design is similar to something Google uses, and something similar to what the DIY Bookscanner uses. It’s a method that requires human labor (no automatic feeder or page turner) and it results in images that need cropping and adjusting afterwards.

This is the secret sauce of the Internet Archive Scribe – the processing software is amazing. It presents pages nicely, lets you declare items as metadata, rescan images, remove broken items, do cropping to sets of pages, and otherwise get repairs going very quickly on these books before wrapping the whole thing up in a pretty bow and shoving it into the Internet Archive ingestion system, itself a wonder of programming and automatic repair. You also can declare what pages are tables of contents, chapter headings, covers, indexes.. and so the resulting item is much more usable. Without being destroyed. And only a hair less readable than a carefully-by-hand, take-all-day process of a flatbed and/or cutting the book completely up to turn it into a pile of flat sheets.

It is a wonder.

3705737339_408dcc0a2a_b

The letter that asked me to write about scanning asked for me to touch on legal issues. Here’s a hint from someone who’s actually been through the legal system: there’s no point in discussing the legal issues. No. Point.

Scan because you’re concerned that there’s no record of an item that is easily accessible to a future audience. Scan because you think you have something unique and want to ensure there’s multiple copies of it, even if those other copies are simply digital files. Give your work to people who will hold it for you. Put it up yourself. But if you’re truly asking yourself if you can do what you are doing, nothing I say is going to give you advice on that. I am neither a legal expert or a pep rally. If you’re uncomfortable with doing something you think you should be doing, look around until you find someone who is comfortable with doing that thing and give it to them. That’s all I have for you.

IMG_3362Finally, there’s some inherent question in the whole process of scanning.

Scanning is, at its most fundamental nature, a photograph. It’s an analogue, a rendering, a rendition of a thing, an item. It allows some percentage, always less than one hundred, of that item to be in multiple locations and reach a wider and more diverse audience. It is a leverage and a bargain against oblivion and elitism, where the chances improve that this item’s information and nature will travel far beyond a single place.

It is also a foundation, one can hope – a foundation of existence and reliability for an item to be expanded upon. It can be contextualized, parodied, referenced. It stands as some level of proof of an idea, and it holds itself in the center of more in-depth historical research and tales. The nature of digital creation is not one of preservation in the sense of an exacting clone of a once-offline object – it’s to create a new object imbued with the advantages of the digital world and the memories of what it once was.

Arguments and hand-waving come when different factions of creators, historians, fans, caretakers, professionals and gatekeepers all converge on the original and digital objects that came from the same source, and they bemoan the attributes unique to these objects and what advantages and disadvantages each hold. There has been a lot of wasted time and inches both printed and displayed over this fundamental nature. What matters to me, ultimately, is that human beings saw some value in an artifact that came from the past, and they want to sustain it, for reasons selfish and charitable, for the future.

That’s why we scan. And that’s why we scan again and again.

Hope this helped.

IMG_0093