"This means that somewhere, this instance needs to be connected to a proxy server, which assigns a 10.x.x.x address to the “Windows” machine, and then forwards the connections through. Basically, world’s weirdest, most hipster ISP on the face of the earth."
I wonder if there will ever be a business case for things like this. I sit across the hall from a startup that sells mp3 gramaphones, etsy is a huge success, there are strange Kickstarter projects every day. Is nostalgia a permanent long tail phenomenon, or a fad from which people will move on?
There's no doubt in my mind that nostalgia is a permanent phenomenon. Spencer wrote The Faerie Queene in deliberately antique english to appeal to people's nostalgia. And that was more that 400 years ago. There's been a market for classic cars almost as long as there's been cars.
How many businesses will carve out a niche in long tail tech is harder to tell. I expect it will be like many things, many enter, few leave.
Nostalgia might be a consistent phenomenon, but surely what we are nostalgia about changes. A 20 year old likely never experienced Windows 3.11 in the first place. That would likely make them view emulating it more of a novelty exercise than a nostalgic one, which anecdotally is a weaker and shorter lived motivator.
Ever been on a video game emulation forum? A lot of the users come across as about 10 years old. Windows 3.11 may not have the same appeal, but I bet you there are kids learning DOS today to play System Shock.
As a 25 year old who did manage to experience Windows 3.1 (although I wasn't allowed on the Internet back then) but also once had turntable[0], I think it's far to say that "nostalgia" isn't really the word for it. I guess it's sort of like for gen-Xer's who like to swing dance, they find a certain quality in it although it certainly is much before their time.
May be it is rather superficial, but you can say that about fashion, art, music, choice of programming paradigm (in some cases at least).
[0]I should note the records I bought were recorded by people about my age, and they played psychedelic rock that emulated 60's rock and claimed to use "vintage" equipment from their effects pedals to their recording equipment...and they certainly weren't alive in the 60's.
On the other other hand, Vinyl at least has some upsides. Listening to a Vinyl is an experience, plus it's lossless, and physically owning a record is cool/makes good art/conversation pieces. Windows3.11 would be interesting to check out, but it'd be more like something you'd check out for 20 minutes to see how it used to be done, then you'd go back to your modern OS. Vinyl is an experience, most older software is a novelty.
Only if you define the vinyl copy to be the primary one, in which case vinyl is lossless by definition. However, if you take a live performance to be primary, vinyl is lossy because it has a reduced dynamic range compared to both live performances and digital technologies.
On the other other hand, Windows 3.1 has some upsides. Running Windows 3.1 is an experience, plus it's on DOS, and having a Windows 3.1 install on your laptop is cool/makes good art/conversations pieces. Vinyl would be interesting to listen to once or twice to show off to your friends, but it'd be more like something you'd set up once to see how it used to be done, then you'd go back to an iPod. Windows 3.1 is an experience, vinyl is a novelty.
I think the closest equivalent to the claim that vinyl is lossless would be that Windows 3.1 is efficient. Well... sure... if you squint hard enough and tune the definition of lossless/efficient properly, sure... but not in an actually relevant manner.
Windows 3.1 is on DOS, so it is lossless. There's no intermediary between any program and any other program. Everything runs in pure, unadulterated Ring 0, raw, unprocessed 16 bits.
That can be your opinion, but computer usage is a subjective experience and I'm entitled to my opinion as well. I find Windows 3.1 to be a superior computing experience; it has a charm and novelty about it that later Windows versions haven't been able to duplicate. I find the experience richer and more satisfying. Also, I like having to restart my computer and swap out physical floppy disks -- the tactile sensation and sound of disk access is much more pleasing than modern, silent, sterile SSDs.
You're quite welcome. It was great to have an opportunity to evangelize a subject quite near and dear to me, namely Windows 3.1. Hopefully my comments motivate you to try it out sometime, or do a "bind use test" between it and a modern OS like say Windows 7.
While you are obviously exceedingly clever, you're funny inversion is BS. Vinyl isn't a novelty. It is a small but non-negligible market. In my anecdotal experience, myself and my friends have had record players and have been listening to and buying records for years. The "market" for Windows 3.1 machines in 2015 is microscopic and completely negligible.
Actually, PPP over Websockets has some really interesting implications. Raw TCP/UDP in your browser is a potentially powerful thing. It's like a VPN client in your browser - once you're connected, you can bridge private networks, or establish pure TCP connections to any server on the internet, without special-case wrappers or browser-imposed WebSocket restrictions.
Jason Scott is such a weird and wonderful person. I highly recommend watching BBS: The Documentary. Episode 8 was especially interesting and moving in a way I didn't expect. I would say, in brutal honesty, the production values are (unfortunately) low, but the content is pure gold, and well makes up for it.
So my thanks go out to Jason Scott and the small crowd of computing historians he unofficially represents. As a modern software and hardware engineer, it is both a joy to watch the old, and a comfort to know our work of today has a chance of being preserved in the years to come.
Nope, I'm going to do it, I'm going to focus right on one sentence and ignore all the compliments.
The BBS documentary was shot across 4 years on my own dime (no crowdfunding, my family helped pay for the camera) and traveling to 20 states, from 2001-2004, and then released in 2005. (10 years ago). This means some footage was shot as long as 14 years ago.
"Production Value" is a very specific term - it is almost always used to indicate skill or attention to the final product. All along the way for the BBS Documentary, I had to make choices. Remember, the Canon XL1 I shot with cost me $4000 in 2000, when it was bought. And instead of going with a handful of people, say, under 15, to tell the whole story, I chose instead to interview 201 people. This meant that sometimes in a single day I'd drive to up to 4 different homes, with miles between them, set up all the equipment myself, conduct the pre-interview and interview, and then move on to the next location. In one case I drove 500 miles to grab an hour interview with a figure who had popped up, and then drove back.
This was before DSLR became prominent, before HD was the norm. I could have gotten a full crew, but everything else would have suffered: the breadth of subjects, the locations, the variant voices. It's a choice I'm fine with.
I recognized, after BBS Documentary was done, that I'd want to move to HD, but in 2006, when I started filming GET LAMP, that cost me $10,000. I paid larger numbers for the new movies - $20,000 for the DSLR equipment. (Both GET LAMP and the new films are crowdsourced, based on the reputation of BBS Documentary.)
Choose your words carefully, please. I'll take "Dated", I'll take "SD", I'll take "Videotaped", but please don't imply I didn't sweat bullets over every aspect of the production, and that everything in there wasn't a best-of-all-circumstances choice made with the intent of finishing a project that many (at the time) thought was impossible.
Aww geez, I had no intention for my remarks to be disparaging; quite the opposite.
I completely agree that, given your constraints, the better use of money was to interview more people. What I meant was that it's a shame you had to choose. I believe your efforts deserve more recognition, and more funding so you don't have to make compromises between interviewing more people or having more crew. You should have both. That's what I intended my remark to convey. By no means did I mean "This film is crappy, but I love it anyway." I meant "This film is wonderful. I wish the creator was better enabled so there were Blu-rays of this stuff, with crisp, clean HD video." Stuff like that.
> Choose your words carefully, please.
I truly did. I usually spend an inordinate amount of time writing emails/comments, trying to choose words that are clear and concise. Its a byproduct of my social anxiety (it stems from an ever-present fear that what I'm doing/saying will be misinterpreted). In fact, I'm probably going to miss breakfast because I've spent the past 45 minutes trying to write this comment and clear up the confusion... But, yeah, sometimes people have different meanings for different words. It isn't a reflection of whether they took the time to choose the words. Its a reflection of different cultures, and how they apply different means to words. I'm not a film maker, so I guess production value means something different between us. I'm sorry my comments did not communicate effectively. I truly respect you, and your work. Please keep making documentaries and doing what you do! There needs to be more of it!
As someone who liked your documentaries, I think you're misinterpreting the previous poster. 'Production values' doesn't refer to skill or attention - those qualities are clearly present in your work. It just refers to those aspects of a work which are simple functions of money spent. To say your work has low production values, then, just means you clearly didn't have a large budget, which is true but nothing to feel bad about - you did a great job with the resources you had.
I'm hoping that's the case, and I'm sure I'm oversensitive on this topic. It's just that subject was particularly important to me, and any impression that I didn't care so much about capturing that story before the chance to get the story was over just makes me over react.
"High Production Values" implies, to me, cameras that cost many tens of thousands of dollars, several cameramen, dozens of other crew, etc. One person working extremely hard for many years with the most expensive cameras available on a high personal budget speaks _quality_ to me, but I would still use the phrase "Low Production Value". So I'd use that phrase reverently in this case, not derogatorily.
It's pretty awesome to hear the backstory too, so thanks for sharing =) I think I have a new documentary to watch!
EDIT: In other words, at least to this layperson...
> "Production Value" is a very specific term - it is almost always used to indicate skill or attention to the final product.
... isn't true for me. I use that phrase to refer to budget and equipment, not skill and heart. I think the same is true of most other people outside of the film world.
Yes, I think you express my meanings clearly. Now I feel bad, because I had hoped to make Jason Scott's day better by recommending and praising his work, but I think I ended up making it worse :(
If anyone is interested, I just wrote a simple guide on how to get your own DOS programs up and running with em-dosbox: https://csl.name/post/em-dosbox/
Em-dosbox and emscripten are really amazing projects. An emulator is cross-compiled to JavaScript, which is then JITed in your browser's js VM. It's not only amazing that it works, but also that it runs pretty well (compared to native dosbox, it's only a little bit slower on some programs).
em-dosbox uses emscripten's packager by default, but it doesn't have to. Anything that can dump files into an emscripten virtual filesystem will work. The Internet Archive's loader uses .zip file bundles via BrowserFS: https://github.com/jvilk/BrowserFS
it’s running inside the EM-DOSBOX system, since Windows 3.x was essentially a very complicated program running inside DOS. (When Windows 95 came out, a big deal was made by Gates and Co. that it was the “end” of the DOS prompt, although they were seriously off by a number of years.)
Nitpicking just a little bit: Windows 3 didn't run inside DOS. Maybe "on top of it" if you want to put it that way, but not "inside".
It changed the processor and graphic modes and when shut down it reverted to the prompt. But by no means was it "just a big DOS program".
Guess what: Windows 95 also was a program running "on top" of DOS. That was somewhat hidden, but I remember clearly that I booted to DOS and then executed either Windows 3 or Windows 95 (I was programming a compatible 16/32 bits application). There was some tweaking needed but it worked nicely.
It gets a bit metaphysical at some point, but 'on top of' or 'after' probably are better prepositions to use when describing the relationship between DOS and Windows.
'Instead of' would also work, in the case of Windows 95, as it would be fair to say that simply exiting Windows involves resetting everything back to the way DOS had it, then rerunning DOS.
And when you ran DOS inside a window in Windows 95, then that was DOS running inside of a VM.
I'm not sure but it seems my point has been lost in the way.
DOS is a real mode OS. Windows 95 is a protected mode. Windows 3 was some kind of dumbed-down protected mode that 286 had. Actually I believe it could work in different modes.
The distinction is pretty important. Windows 95, that needed a 386 minimum, was a true protected mode system, with virtual memory and pre-emptive multitasking. It would be absurd to call it "a DOS program" just because you could launch it from the DOS prompt.
So the same can be said of Windows 3. It changed processor mode, not so radically as 95, but enough to exit real mode... calling it "just a DOS program" is simply wrong.
The legal problem is already solved, in a narrow sense, for programs which are otherwise impossible to install in the usual manner: http://archive.org/about/dmca.php
Does Windows 95 qualify? Probably not quite yet, but if UEFI ever wins to the point where motherboards with the traditional BIOS become unavailable and then the available UEFI motherboards stop including a BIOS-compatibility mode, then it probably will.
That said, there's no reason why Wikipedia editors can't embed the player that Archive.org uses for console/arcade/dos games into their respective Wikipedia pages. It wouldn't be quite as easy as embedding a Youtube video (where every video gives you a snippet of HTML to paste into your page), but the emulator is just a js file, and the game is just a couple of small image files which you load and stick into the emulator's in-memory filesystem.
See https://github.com/db48x/emdosbox-loader if you want to see how Archive.org is currently loading those. It's not quite ready to just be plugged in everywhere, but I'm working towards that possibility.
> It turns out a number of fundamental aspects of The Web have changed since this time.
I wish they went into more detail what exactly changed and why these browsers no longer work, unless it was the PPP protocol they mentioned that is causing the issue.
Old browsers speak HTTP 1.0, which adhered to the old "one service per IP" rule. This doesn't work so well with cloud based stuff, or shared web hosting.
HTTP 1.1 added the `Host:` header, which let a single IP host many domains, which essentially created the web hosting industry.
Original author of the hack here. Several changes:
1) HTTP 1.0 vs 1.1 and lack of the Host: header, as you've all deduced
2) Additional encoding info tacked on after the Content-type causes parsing issues
3) Many sites now redirect to HTTPS by default. While Netscape 1.0 and Mosaic 1.0 both support HTTPS, it used SSLv1, and well, remember POODLE? :P
Newer versions of these browsers tend to work in native DOSBOX but present problems when running on the web. We're working on it.
Biggest problem right now is that the virtualized dial-up ISP is a bit flaky. For some reason PPP over TCP over Websockets via Trumpet Winsock isn't as rock solid as it should be :P
And once you get past all that, the JavaScript that's so pervasive these days wont run in those ancient browser. My Mac Centris 610 has problems with all those tracking scripts everywhere.
There's a number of problems, which folks like jwz have dealt with, and which we'll look at. Basically, you don't get https (of course) and the response codes of web servers have shifted enough that older browsers don't know what to do. Proxy injection of needed helper material will help this a bit.
Bear in mind, though, it will ALWAYS be insecure and it will ALWAYS be more of a "try this out" than popping on your unicycle, starting up your bagpipes and riding down the Information Superhighway permanently.
JWZ ran into similar issues when he brought http://home.mcom.com back from the dead and then got it working in old versions of netscape and mosaic
In order to make these web sites work in the old browsers, it was necessary to
host them specially. In this modern world, a single server will typically host
multiple web sites from a single IP address. This works because modern web
browsers send a "Host" header saying which site they're actually looking
for. Old web browsers didn't do that: if you wanted to host a dozen sites on
a single server, that server had to have a dozen IP addresses, one for each
site. So these sites have dedicated addresses!
The web server also had to be configured to not send a "charset" parameter
on the "Content-Type" header, because the old browsers didn't know what
to make of that.
He also wanted to use these old browsers to surf the modern web, so he wrote a proxy that translates between HTTP/1.0 and HTTP/1.1. Maybe the textiles.com guys can implement something similar.
The most important change is that HTTP 1.0 assumed that each IP had a unique hostname. The HTTP request just got sent to the IP that resulted from the DNS lookup with no indication of what hostname was fed to DNS.
HTTP 1.1 (1999, so way postdating Netscape 1.0) has a Host header that's sent with every request, which allows the client to communicate to the server which hostname the client thinks it's talking to. That allows today's world, with multiple hostnames colocated on the same IP, to work properly. But if you leave out the Host header the server doesn't know which of those sites you meant and will do ... something.
For example, this explains the defcon.org failure in their screenshots. In fact, you can try this at home in your favorite command-line:
1) Type
telnet www.defcon.org 80
You get output like:
Trying 162.222.171.206...
Connected to www.defcon.org.
Escape character is '^]'.
2) Type:
GET / HTTP/1.0
and hit enter twice. See what it responds with.
3) Repeat, but in step 2 type (or paste, since it closes the connection quickly):
GET / HTTP/1.1
Host: www.defcon.org
followed by two newlines. Observe the difference.
Same thing for www.whitehouse.gov (which is in fact a cname for www.whitehouse.gov.edgesuite.net which is a cname for www.eop-edge-lb.akadns.net which is a cname for a1128.dsch.akamai.net which you can bet needs the Host header to know which site you were accessing!).
And same thing for news.ycombinator.com, which is a cname for news.ycombinator.com.cdn.cloudflare.net which then resolves to an IP but doing a reverse DNS lookup on that IP says it's got at least "ns1.cloudflare.com" and "dns.cloudflare.com" as domain names that resolve to it... so it's clearly going to be looking at the Host header to see what you actually think you're talking to. You can even see this if you compare http://news.ycombinator.com.cdn.cloudflare.net/ to https://news.ycombinator.com/ even though one is a cname for the other.
From what I can tell, Netscape Navigator supported HTTP 1.1 from version 2.0 and up AND Navigator version 4.x ran on Windows 3.1. I wonder if there was a problem getting that version to run on their emulator.
There has been no problem - we were just focused on getting the oldest, earliest browsers we can get running. It's not about getting a fully standards compliant browser made 20 minutes ago to run in a browser made 10 minutes ago. It's about providing easy, hopefully pain-free access to web history.
I recall running Windows 3.11 on a Mac using the earliest versions of Connectix Virtual PC in the late 90s. It was so slow as to be unusable. And today we can run Windows 3.11 in a browser. Mind-boggling.
Although Connectix also sold a playstation (original) emulator for mac that worked pretty well. Connectix was embroiled in a lawsuit with Sony, till Sony ended up buying it.
Part of the problem I think with some emulation speed has to do with bit order of the original hardware (or endian order) which makes emulators do a lot of memory moves.. We ran into this a little when looking into migrating software from PA-RISC to X86..
My first thought on reading this is that we can't be that far off from running MAME and every classic arcade game in a browser. Googled it and sure enough - it's already here courtesy of the Internet Archive:
The vast majority of the games will not run at a playable speed. Heck, a fairly large percentage don't even with the MAME software itself on 4Ghz+ CPUs.
MAME's commitment to accurate emulation is amazing.
That's actually not entirely true. There are some classic games that still have run super slow until recently.
Pac Man/Ms. Pac Man comes to mind. Donkey Kong too.
Emulating analog audio circuits accurately requires higher math functions executed millions of times per second. Some of the oldest classics run super slow on sub-3Ghz CPUs.
'the ski game' is likely Ski Free. Delightfully, the author has created a 32 bit version of the game, if you want to run it on your modern desktop. You can also download the 16 bit original version.
Considering the simplicity of his page, and the browser now running in the emulator, it should be possible to download and run the 16 bit version from his website:
Now I'm imagining pointing this thing not at a proxy that accesses the live web but one which picks a date in the wayback machine and relays the state of the web at the time the browser came out...
I went through the period of nostalgia and fascination the author exhibits years ago with Amiga, c64 and dos emulation and virtual machines.
It's impressive and convenient that this runs in a browser, but does itreally change anything about emulation? We've had this capability for windows, mac and Linux for years which covers about every platform with a browser. I suppose it's convenient if you wanted to emulate windows 3.1 on your iOS device.
Emulators suffer from bitrot just like the software they're emulating. I've seen several fall into disrepair in recent years -- eventually we'll lose the people that remember how the the old systems worked. Centralizing the development and publishing it on the web seems a good way to keep the preservation effort humming.
(And as pointed out in the OP, getting something like Trumpet Winsock to work against a 21st century internet is non-trivial)
> We've had this capability for windows, mac and Linux for years which covers about every platform with a browser
Yes, but that always required installing emulation software, tracking down the necessary ROMs/disk images, etc. If it's running in the browser, the site admin can do all that once for everybody rather than every user having to do it for him/herself. All the user has to do is open a URL.
I think it is a shame that Java Web Start style tech never got anywhere. It pretty much delivered such experience (click url and app launches) without actually binding the application to the browser.
They should try getting a more modern browser on there. If I remember correctly, while running my hand-me-down Gateway 2000 with Windows 3.11 in 1998, I managed to get Internet Explorer 3 or 4 installed after I downloaded it at a friend's house.
No, there are various other mechanisms now, perhaps the most useful and widespread for this situation being WebSocket. It's not without limitations though: http://en.wikipedia.org/wiki/WebSocket
Not really a proxy - it's pppd in Linux with a vty redirected to a socket. More like a cloud-based dialup ISP that tunnels over existing connections than a proxy.
K so JS is the new de-facto interpreted machine-Latin. The lingua franca.
Is there something else I'm missing here? We've known that there is a decent mapping from X86 assembly to a subset of javascript for a number of years now. You can even run the entire OCaml stack in the browser, or Doom, or Quake... etc. What's next? Wordperfect in the browser? Visicalc? This is clever and kudos to the guys, but how is this advancing what we already know?
May I suggest you click on the little "X" in the upper right of the window of your browser with this story, which is short for "I am Xtremely beyond this"
I wonder if there will ever be a business case for things like this. I sit across the hall from a startup that sells mp3 gramaphones, etsy is a huge success, there are strange Kickstarter projects every day. Is nostalgia a permanent long tail phenomenon, or a fad from which people will move on?