在接近1999年10月1号的最后几个小时伴随着挥之不去的恐惧,曾经帮他从一个一无所有的人变成国际巨头的网上商业服务Prodigy Classic将在十一年后的最后时刻中停止服务。

“这多么让人伤心。”在公司里经验十分丰富的项目经理Doino回忆道“Prodigy服务开始之前我就已经在这里了。”

午夜之前Doino登陆Prodigy Classic服务的主页按照指示上传了一个 文件,这个文件让Prodigy Classic客户使用该公司最新的Prodigy网上服务,大量独特的网上文化的书面记录所包含的成千上万的消息和网上手工艺术在这一刻似乎消失的无影无踪了。

除了消失它已经别无选择,这些数据从没有在网上存在过,只是待在专用网络的专用格式上,让那些技术门外汉遥不可及。这些数据被那些企业巨头推来推去,然后逐渐的被遗忘覆盖。

十五年之后,一个叫做Jim Carpenter的天才爱好者找到了一个让这些数据起死回生的方法。 Carpenter只是用一点点Python代码和一些

随手可拿的之前的Prodigy软件进行独立的工作,并在最近逆向部分Prodigy客户端弥补一些之前认为已经消失的Prodigy内容。

“说实话,我并不是Prodigy 的超级粉丝”38岁居住在Massachusetts的自由程序员Carpenter说道,他回忆大约在1990年他在这个服务上的时间,“我已经用互联网几年了虽然Prodigy看起来已经关闭了,但是我每天仍然在使用Prodigy。因为它是一门制图学。”

在2012年后期再次看这些图像就像 Carpenter的驾驶,摆弄着Prodigy的客户端。“找到像样的Prodigy isnearly几乎是不可能了”Carpenter说道。

他知道登陆界面是存储到硬盘上的,所以他开始想还有什么他可以在客户端软件上找到。通过使用十六进制编辑器Carpenter摆弄着客户到软件,一直到他发现跟多的图形数据。“据我所知,是指选项对话框的一个屏幕截图可能是唯一一件我得到的东西。”

在多次实践之后,他抓到了一个想法。当一个大的网络在线服务消失,一块我们文明的文化结构也会与之消失。在这种情况下,消失的文化库就是在1988年Sears and IBM联合推出的面向客户网上在线服务Prodigy,用户通过电话线用个人电脑和modern线拨号到区域服务器。一旦连接,他们可以接发邮件,参加留言板讨论,看每天的新闻,网购,查看天气,股票,体育成绩,玩游戏等等。

Prodigy的技术感觉就像一个集中的平行位面宇宙网络,这个技术看起来和我们现在知道的似乎很相似,但实际上却根本不同。

Prodigy曾经致力于让用户的部分屏幕呈现具有各种图形的广告。这很像现代互联网的缩影—如果整个万维网是一个公司出版的话。在它十一年的寿命里,可以作为的文化遗产Prodigy伴随着一代美国人成长。在跟早的时代,我们可能谈到过的另一种常见的文化体验—交流,Buster Keaton电影— 是整整一代的文化框架的参考物。每个人都看他们,每个人都引用他们虽然 Prodigy并没有像Buster Keaton那样在大众流行但是成千上万的人在1990年代早期用电脑和modern尝试Prodigy至少一次。那些早期的在线探索的人在他们登录时所看到的就是辉煌:颜色,字体,插图,单击选中点击的界面特色在1998年

Prodigy更新后都是全新,Prodigy的前身,竞争对手像CompuServe 和 GEnie迫使用户使用迟钝的命令来得到任何有意义的结果(并且结果也往往是呈现一个死板的文本的屏幕)。

Prodigy获得独特的天赋从一个现在被遗忘的叫做North American Presentation Level Protocol Syntax的图形协议,或简称为NAPLPS 。NAPLPS属于1970时代后期的简短的文字电视广播时代,当电视网络试图用一种叫做电视广播信号"vertical blanking interval"的东西携带额外的数字信息比如天气预报或体育成绩时,垂直消隐间隔的方法只能持有少量的数据,所以现在的工程师发明了一种方法用最经济的方法呈现数字彩色图形和文本。NAPLPS通过减少一个图像进入一组数学指令的方法来实现的这个的(i.e。“或一个椭圆形在这个位置和填补它与蓝色”)而不是将数据存储在一个位图图像的每个像素中就像如今的JPEG或者GIF文件 。

NAPLPS的方法需要定制的软件或者硬件,这个通常称作终端或者是客户端。在接收端接受这幅图的说明将其装换为一个图像或页面在用户的屏幕上。文字电视广播从来没有在美国出现过(虽然它曾经在欧洲兴盛过),可视图文广播也是如此,双向互动的概念需要通过modern和相应的终端连接电视机来实行远程计算机访问。

在紧随在1970年代末和1980年代初的席卷了整个西方世界可视图文系统之后 Sears, CBS, 和IBM在1984年一起加入并制作自己的可视图文系统服务。他们称他们的伙伴关系为Trintex:三家公司“Tri”和可视图文系统"tex",从企业角度来想,这个计划几乎是天真简单的:世界上最大的零售商(Sears)将提供在线购物服务,世界上最大的媒体集团(CBS)将提供内容和信息,并且世界上最大的电脑公司(IBM)将提供底层技术。

三家是如何达成共识,无论怎样都将证明它要复杂的多,一个非常贵的技术工作(在其他小问题上,它需要奖励一个全国性的专有电信网络和成百上千的节点)最终会无意中为普通人制作一个消费者网络世界,这个诡异地预示了我们今天所知道的互联网—如果超人一样的方式在Bizarro。Prodigy感觉就像集中的,回顾平行宇宙网络技术看起来非常非常类似于现在我们所知道的但他们在根本上是不一样的—就像打开两个起重汽车的车盖,找到一个盖子下的发动机和另一个盖子下的发动机。他们用不同的方法给你,即使如此,相似的地方是十分接近,盖子的专利法律的先例和在线技术通过很少被大众理解互联网的方法伪造于合伙的Trintex 和Prodigy依旧若隐若现。

把Trintex放到现在来说,它就像现在的Wal-Mart,Comcast和Apple联合重写媒体规则和通用零售商的规则,这是一个可怕的设想,但这个网上景色在当时来说还是陌生,粗糙,未定义和比较新的,所以很少担心在1984年这三个巨人的伙伴关系。

在其倒闭之后Prodigy被悬挂在痛苦的终点上的Prodigy忠实客户因为对Prodigy的关闭的原因持怀疑态度而愤怒着,十五年之后我们现在可以肯定的怀疑是正确的:“据我所知,Prodigy Classic并不是因为Y2k的问题而倒闭的”Doino回忆道,Prodigy 的员工在1999年停止了服务。但是即使是顾客好感如潮也不能够阻止最圣神的自由市场的法律:即使碰巧成为了独一无二的人类数字文化储存库,也会因为为赚钱生存的公司在这个产品中无利可图而结束这个产品,当Prodigy Classic倒闭,它的服务器将会完全用于Prodigy事业的ISP部分。名叫Prodigy Local Sites的区域服务器网络将被拆除 ,Prodigy Classic的数据也会居无定所无人看管,虽然我尝试过我最好的跟踪技术来追查他们。

即使Prodigy的档案被发现,各种先前Prodigy的员工也会说这些被困的数据过时的在过时的存储格式,协议,编程语言,和计算机系统的雷区中。并且自然的每个人都必须提出和工作然后才有联系访问过的信息的希望。换而言之恢复Prodigy的一部分,你必须做所有的工作。

“很多律师在专利案件中也问过关于这个的事。“Prodigy前任技术构架执行理事Les Briney这么说道。(Briney描叙了利益丰厚与Prodigy相关的使用与现代web许多地方的专利的IBM现存的投资组合)”我估计是在百万美元的范围内。”

但是直到你做了这些才会发现很多事情看起来没有花费的可能。这只有问Carpenter当他在摆弄 Prodigy 客户端的时候偶然间发现了什么。他发现了旧的图形图像之后,借着发现了一个意想不到的通往过去的宝库:“就这我发现了 STAGE.DAT.”

正如他说发现的,STAGE.DAT是Prodigy客户端的两个缓存文件。这两个文件分别是CACHE.DAT和STAGE.DAT。这两个文件吧暂时和藏用的数据储存在永不的电脑上用来加快页面的加载。(在1990年代早期这个名为STAGE.DAT使Prodigy陷入了麻烦当用户发现它可能包含从用户的工人电脑来的数据碎片的时候。正如他所证明的Prodigy的客户端用系统记忆的随机片段来填充空白部分。用户认为Prodigy在监视他们上传到服务器的资料,Prodigy否认了这一点并发布了一个工具偏执于使STAGE.DAT文件归零)

Prodigy整体的构架实际上是用在New York的Yorktown Heights,中心的中央服务器和遍布美国的数以百计的区域缓存服务器都基于这个缓存系统,这个方法,从用户的角度来看都服务器负载被分布和加载时间达到最小化。每当一个Prodigy用户访问,部分数据最终会下载到他的电脑中,如今很多的web浏览器用这个方法缓存HTML和图像数据。

所以这是Carpenter发现的关键:无论一个用户在1999年Prodigy关闭前的任何时候进入Prodigy,这些数据都会被存在STAGE.DAT被冻结,就像一个在数字琥珀中的蚊子,Carpenter 实际上并且提取数据的方法, Carpenter 的一系列 Python程序通过一个以前用过的 STAGE.DAT的文件来读取,生成一列指向页面或者包含在内的对象数据,然后Prodigy的客户端展示他们中的一个所以他能够在此时截图

实际上Carpenter必须通过如Rube Goldbergian的一系列步骤从这些图像中获得,这也是因为Prodigy的复杂性。正如他所证明的,这个服务并没有用 vanilla NAPLPS标准来呈现这些图像。Prodigy图形丰富的屏幕——大部分是Prodigy的全体艺术家员工手绘的——做为独有的面向对象的NAPLPS超集而存在。给定的任何Prodigy页面的包括图形,文本和交互式的元素在内的不同部分都是作为单独的元素由Prodigy的客户端组装呈现给客户。

像缓存系统,面向对象的行为诞生于技术的必要性和减少成本的渴望。起初设计Prodigy后端技术的工程师之一Robert Filepp解释道。Prodigy出生之前AT&T 在New Jersey举行了一个悠闲可是图文系统的订阅服务尝试活动。在活动期间,Filepp说:“[AT&T] 有一个叫做制作怪兽的游戏,着这个游戏中用户可以去除数据的部分并且把他们拼接成不同的模块”但是怪物实际上并没有单独的身体部分“艺术家必须在每个必须创建所有内容的可能组合和排列”

在这次尝试的结尾AT&T 几乎发展内容和客户订阅者一样多,因为每个新信息服务需要完全不同的NAPLPS抽查图屏幕,为了避免这个问题 ,Prodigy早期研发和发展的带头人David Waks ——也被称为Prodigy结构之父——面向对象方法的构想在在屏幕的不同部分可以相互独立的更新。但这只是他更大计划的一部分。

在为Prodigy画出规范中,Wakes设想的世界中使用可视图文系统服务用户可以用客户端软件运行个人电脑而不是用哑终端来联系电视机——这在概念上讲是一个戏剧性的飞越。为了方便相同的交互式可视图文系统内容在不兼容的平台展示,Wakes设想一种执行一个嵌入式并同时在机器的最好性能上展示独立分辨率的向量图形编程语言虚拟机器
环境。所以不仅可以减少艺术家的人力也可以减少频带宽度,最好把每个页面费结成许多可以在区域服务器和缓存中来去的块,然后输入图形模块使之留在用户的机器上。Wakes的方法在调整后被 Prodigy采纳,随着这个方法的进行,每个页面成为一系列对象:一些对象会成为程序,一些对象会成为文本,一些对象成为图形。客户端以正确的方式在重新组装他们。即使今天,收获Prodigy的"Reception System"客户端软件(就像Prodigy所称为的)是解锁图形丰富页面的关键所在有着250.000行的c++代码被30个工程师在过去的十年里创造和修改,前台系统很难逆向工程和复制。尽管 Carpenter很机智但是至今也没有挑战这个,但是他的时间之轮仍然在转动着。

“某天我将会创造一些可以模仿Prodigy后端的东西,并向客户端请求对象。”Carpenter说道,他计划用现存的Prodigy客户端作为接口。“可能我会吧Prodigy带回到网络上就像爱好者带回了QuantumLink。”

如果有一天我们在网页上可以看到原始的Prodigy,我们应该感谢像Carpenter一样的爱好者的努力。想象一个基于排序的 Prodigy Reception系统如一条Javascript MESS 的静脉可以在任何浏览器中呈现原来的荣耀过的Prodigy页面。毕竟每个Prodigy页面不只是一个静态的屏幕,还是一个有潜力的交互式对象的集。

几个有限的Prodigy模拟早已经存在像MadMaze recreation,托管在我的网站上。 但是欣赏整个Prodigy带给百万用户的超过十年的东西的文化价值,公众人仍旧希望体验原来的 Prodigy。

要如此做Carpenter需要跟多的数据并且他正在向网络上寻求帮组。

“我需要人们在老的C:\PRODIGY的目录”他说道。“整个事很有趣,因为 STAGE.DAT原本是伴随接收系统特定版本工作的。没有它使用的特点的文本对象只是存在于特定的RS版本”

正如他提到的关键是从现存的Prodigy 装置中找到文件。注意Prodigy 客户端本身的安装磁盘是不够的因为他们从来没有用来练习Prodigy 服务并且因此他们不包含内容缓存中的文件下载。(如果你有什么需要我帮忙的,可以发邮件给我。)

Carpenter也需要技术条件和可能在某处带着的接受系统的资源代码。不用说发现在超过二十年以前工作的Prodigy 装置是是很困难的。幸运的是去年我发现一个一个工作的 Prodigy装置并且把它给了Carpenter设法提取很多Prodigy 在屏幕上的文本附带的装置。

随着我们的生活更多的提取到到电子领域,公司决定没有依赖的关闭在线服务,开始像Nero burning Rome类似的数字行为一样——文化历史和整个社区正处于废墟的状态。

“自从开始,在线服务已经想象他们做的东西作为一个产品,但是这是错误的,”一个在the Internet Archive工作的档案管理人员Jason Scott说道。“在某些情况下你可以有成千上万的人们描叙这个数据”

作为公众的一员的我们必须警惕商业运作的社会会怎么对待我们的共同的文化遗产。就像我们从先前像Geocities服务的模板所看到的一样,由商业组成的世界似乎痛苦无情的看起来是历史的需要,并且这似乎不太可能很快的改变。“我怀疑这些商业将自发的决定考虑档案的地位和长期保存,”Scott说道。“只是这个不在他们的DNA中,对现代商业来说遗产是奢侈的。”

最终,拯救我们能拯救的将会由我们公众决定。

where online services go when they dieMichael Doi相关推荐

  1. 现代服务器底层奠基(SEDA+Reactor/Proactor+epoll/kqueue )

    SEDA(Staged Event-Driven Architecture) SEDA- An Architecture for Well-Conditioned, Scalable Internet ...

  2. 【论文笔记04】Model-driven approach for the design of multi-chainsmart contracts—用于设计多链智能合约的模型驱动方法

    A. Barišić, E. Zhu and F. Mallet, "Model-driven approach for the design of Multi-Chain Smart Co ...

  3. [资料整理] Decentralized Services Orchestration, Choreography相关的几篇论文

    昨天讨论了一下论文笔记管理的方法, 我以前用过各种做论文笔记的方法. 打算逐步整理一下以前的论文笔记, 标题里注明为"[资料整理]". M. G. Nanda, S. Chandr ...

  4. Pensando Distributed Services Architecture [Pensando 分布式服务架构] - 翻译

    Pensando Distributed Services Architecture [Pensando 分布式服务架构] - 翻译 转载需注明文章出处:©️ Sylvan Ding Source: ...

  5. 06 Broadcasting Services Over 5G NR Enabled Multi-Beam Non-Terrestrial Networks

    基于5G NR的多波束非地面网络广播业务 创新 新的无线资源管理方案:单频多波束传输方案(SF-MBT),用于在5G NR多波束NTN系统上有效地传输增强型移动宽带业务. 思想上 将波束分到专用波束区 ...

  6. The listener supports no services

    记录一个重启服务器后Oracle启动监听服务报错:The listener supports no services 原因:数据库实例没有注册到listener 解决办法:在listener.ora里 ...

  7. java datahandler_Java Web Services:使用DataHandler类发送文件

    我是 Java Web Services的新手,所以我可能做错了. 我正在尝试使用DataHandler传输文件 – 这就是我所拥有的: 网络服务: import java.net.Malformed ...

  8. I.MX6 Android frameworks services 文件架构

    /******************************************************************************** I.MX6 Android fram ...

  9. XFire发布Web Services

    步骤 1. 把XFire依赖的jar包放入lib文件夹下. 2. 在web.xml中加入如下代码: 3. 编写程序代码 首先编写一个功能的接口类. package com.yc.web.service ...

最新文章

  1. Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
  2. mysql-plus 动态修改全局sql, 进行数据隔离, 多租户, 多字段修改
  3. MATLAB中使用streamline函数绘制正负点电荷及它们构成的电偶极子的电场线分布图
  4. 昨天有读者说他不会 docker,今天就给你肝出来了
  5. 写在《ASP.NET MVC 4 Web 编程》即将出版之际!献给有节操的程序员!
  6. 前端radio单选框默认选中_开发记录篇前端内容1
  7. 修改了WINCE自带的驱动程序后如何编译
  8. jquery读取table的内容
  9. 二级c语言改错题库,二级C语言题库-改错题(参考).doc
  10. EP100触发CAN中断但无法读取报文
  11. 微信怎样知道经常聊天的人
  12. Android Studio快速开发之道
  13. edi系统三要素_EDI标准的三要素是什么?
  14. 阿里云服务器地域节点测试IP分享(国内+海外)Ping值延迟测试
  15. Flexbox布局基础入门
  16. Hadoop MapReduce Splits 切片源码分析及切片机制
  17. ashx获取input file 文件_手机浏览器input type=file标签调用手机拍照+分片上传
  18. 2.yolov5目标监测-实践部分
  19. rust沙河游戏_Steam特别好评开放世界沙盒生存游戏《腐蚀(Rust)》
  20. 发现一款好用到爆的数据库工具,被惊艳到了!

热门文章

  1. C语言中 %md 的输入输出使用(还有printf函数的 %0格式控制符的使用)
  2. Build Automatically
  3. Spring Boot 修改tomcat端口
  4. pytest自动化测试
  5. CSS 的布局 盒子
  6. 实现用户一键登录的方案有哪些?
  7. Java实现Excel操作的方式
  8. vue使用xe-utils通用函数库
  9. 【Linux】linux 查看服务器配置:核数和内存
  10. Ubuntu18.04 ifconfig命令找不到