UpFRONT
1969 年 12 月互联网上的主机数量: 4
1981 年 8 月互联网上的主机数量: 213
1989 年 10 月互联网上的主机数量: 159,000
1992 年 1 月互联网上的主机数量: 727,000
1999 年 9 月 Netcraft 调查的网络服务器数量: 7,370,929
Web 上 Apache 服务器的数量: 4,078,326
Apache 占所有 Web 服务器的份额: 55.33%
Apache 销售额: $0 美元
包含“brand”一词的网页数量: 2,302,060
包含“branding”一词的网页数量: 183,510
包含“brand name”一词的网页数量: 114,262
1998 年全球广告支出: $2003 亿美元
Apache 历年广告支出: $0 美元
包含短语“Apache”的网页数量: 286,619
1999 年网络消费者购物额估计: $310 亿美元
1999 年网络商业采购额估计: $804 亿美元
到 2003 年网络年度消费者购物额估计: $1777 亿美元
到 2003 年网络年度商业采购额估计: $1.1 万亿美元
1 至 4 来自 Matrix Information and Directory Services
5 至 7 来自 Netcraft
9 至 11 和 14 来自 AltaVista,1999 年 9 月 21 日
14 排除包含“native”或“Indian”的页面
12 来自 McCann-Erickson
15 至 18 来自 International Data Corporation (IDC)
您几乎肯定认为互联网是某种类型的受众——也许是有点被俘获的。如果您真的对网络上的现实有哪怕是最模糊的认识,您就会意识到真正的流通单位不是美元、数据或电子现金。而是声誉和尊重。想想这会如何影响您的公司战略。想象一下,如果您在公共场所的一张两人桌旁,当您面试一位副总裁职位的申请人时,有一个人坐下来向您们推销汽车并且不肯离开,您会作何感想。信不信由你,您想对互联网做的事情非常相似。正如您在公共场所的两人桌旁时对隐私和尊重有合理的期望一样,互联网用户也对隐私和尊重有合理的期望。当您想到互联网时,不要想到满载着准备运往经销商的小部件的 Mack 卡车,在无数广告牌旁呼啸而过。想想两人桌。
—@Man,摘自“Attention Fat Corporate Bastards!” www2.ecst.csuchico.edu/~atman/attention-fat-bastards.html
艾伦·格林斯潘曾表示,互联网是“驱动”美国经济的引擎。这台引擎已经辛勤工作多年,成倍增长。但是,当它开始减速时会发生什么?
这不是一个空闲的问题,正如 Matrix Maps Quarterly 601(由 MIDS 出版,http://www.mids.org/)中的数据所证明的那样。天可能不会塌下来,但增长肯定在放缓。
比较 1998 年 1 月至 1999 年 7 月期间每个国家/地区的主机数据,揭示了互联网的一个有趣特征。近十年,互联网主机的数量每年翻一番。从 1985 年到 1997 年,增长率为 2.176。现在的变化率为 1.5。该图概述了 1969-1999 年的增长率,然后外推到 2002 年。
在某些方面,事物变化越大,它们就越保持不变。互联网主机的总数继续增长,但速度有所放缓。
每月发布的 RIPE 数据显示,欧洲的增长率也在下降。
这种情况的发生不应让任何人感到惊讶;显然,随着任何区域开始饱和,增长都会放缓。
—Peter H. Salus,peter@ssc.com
你是想一生都卖糖水,还是想有机会改变世界?
—史蒂夫·乔布斯对约翰·斯卡利,1983 年
来吧,史蒂夫,你是想一生都卖彩色塑料,还是想改变世界?
—USENET 发帖给史蒂夫·乔布斯,1999 年
Jim Bumgarner 在 www.jbum.com/jbum/public_opinion.html 的公众舆论研究项目将 Sucks/Rules-O-Meter 概念发挥到了极致。他的网站让您可以(通过 www.altavista.com)为您选择的负面和正面形容词进行网络民意调查。以下是 1999 年 9 月 23 日该网站上显示的一些民意调查。
是下棋的机器人还是摆出思考姿势?
围棋起源于中国,已传播到亚洲乃至全世界。在韩国,它是最流行的,被称为 Baduk,而在日本和其他地方,它有着大家熟悉的名字 Go。它的规则简单易学,但数学和逻辑的复杂性却非常巨大且难以理解。事实上,有人说围棋可以像艺术或科学一样苛刻和微妙,而个人表达的空间如此之大,以至于据说一个人无法在围棋棋盘上隐藏自己的个性。那么您的 Linux 机器的个性如何呢?去了解一下吧!
棋盘是 19x19;棋子是圆形的。其他一切都只是数字,一个树突路径,我 大致 估计它包含大约 361!/111! 条路径(如果我们假设每局 250 步)。事实证明,很好地导航这条路径对于计算机来说是一项不可能完成的任务。尽管如此,在后深蓝时代,围棋可能是人工智能游戏中最有希望也是最黑暗的前沿领域。从国际象棋中,我们开发了启发式搜索,并见证了当我们修剪搜索树时蛮力的力量,更不用说深蓝建造期间发生的并行处理研究。围棋的微妙之处在于,它不像国际象棋那样依赖物质,并且在树突中具有更多的分支,目标也不太明确(领土获取而不是君主狩猎),这使得蛮力在很大程度上无效,我们不得不求助于模式识别和分析以及奇怪的算法,以使计算机像人类一样思考。我们从开发围棋软件中学到的东西可以极大地扩展我们的人工智能理论和技术知识库。计算机国际象棋权威汉斯·柏林纳评论说,围棋“可能不得不取代国际象棋,成为人工智能的卓越任务”。幸运的是,对于我们 Linux 爱好者来说,有一些非常高质量的围棋软件在流传,当然是免费的并且带有源代码。
如果您长期以来一直对 GNU Chess 感到沮丧,您可以通过击败 GNU Go 来报复 GNU 项目——好吧,也许不能。虽然计算机在围棋方面比国际象棋差,但 GNU Go 并不是一个弱程序。事实上,它最近在美国 1999 年计算机围棋锦标赛中获得第二名,并获得了“最佳新程序”奖。它具有文本界面,但由于它理解围棋调制解调器协议,因此也可以与其他程序或 Cgoban 界面对弈。如果您有兴趣玩或为该项目做出贡献,请查看 www.gnu.org/software/gnugo/devel.html。
Baduki,由 Jim Laebum(艺名 Artist)制作,是一款带有自己图形界面的免费围棋软件。该程序实际上相当不错,界面也很漂亮。棋盘似乎来自 GIMP 的木纹图案(我怀疑,因为我自己也为我正在编写的围棋软件做了这个)。该软件允许您设置让子和游戏级别,并且界面可以缩放到您喜欢的任何窗口大小。此外,Baduki 可以给出其移动的理由,显示其思考过程并显示备选移动。Baduki 理解 GMP(围棋调制解调器协议);因此,它可以在 IGS(互联网围棋服务器)、NNGS(No Name Go Server)上或与 GNU Go 等其他程序对弈。Baduki 的主页位于 soback.kornet21.net/~artist/baduk/baduki.html。
William Shubert 的 CGoban(完整围棋盘)是围棋版的 xboard。它允许用户与程序(例如 GNU Go 或 Baduki)或互联网围棋服务器上的其他玩家对弈。此外,CGoban 允许检查 SGF 文件,即游戏记录。界面看起来非常漂亮(带有黑白棋子的标准木制棋盘),可以缩放到您喜欢的任何大小,并且应该可以在所有带有 X 的 UNIX 系统上运行。CGoban 将通过简单的鼠标单击自动将您连接到您选择的围棋服务器。CGoban 的主页是 http://www.inetarena.com/~wms/comp/cgoban/。
互联网围棋服务器是全球有线围棋爱好者的在线聚会场所。您可以 telnet 进入并使用文本界面对弈,或使用 CGoban 等图形界面。IGS 类似于国际象棋服务器,典型的命令如 who、match、observe、kibitz、tell 和 shout 适用。我发现这里的气氛足够友好,但不如国际象棋同行健谈。此外,快棋似乎不如闪电战国际象棋流行,至于闪电围棋,我就不知道了。(闪电战国际象棋是每局一到两分钟,对于围棋来说是一个相当困难的时间表。)如果您想查看 IGS 设计精美的网页(提供英语、中文、韩语和日语版本),请访问 http://igs.joyjoy.net/。或者,如果您想直接访问服务器,请使用 telnet igs.joyjoy.net 6969(是的,端口 6969)。还有一些其他的围棋服务器在游荡,No Name Go Server (NNGS) 是比较流行的服务器之一。CGoban 已经知道地址,并将自动连接您。
无论您对围棋的兴趣是在下棋层面还是编程层面,都有许多在线资源以及软件和许多优秀的书籍。访问您当地的书店或游戏商店应该为您提供充足的机会来培养一种痴迷(当然,假设您不觉得它无聊)。同样,如果人工智能是您的兴趣所在,那么围棋需要创造性的解决方案,并且为真正聪明、才华横溢的思想家提供了广阔的空间。如果您非常喜欢围棋,您甚至可能想去看看您当地的俱乐部,他们可能会非常高兴有新成员加入。快乐围棋! (下个月,更暴力一些...)
—Jason Kroll
在上集中,我们初始化了控制台图形(冒着系统健康的巨大风险),但之后我们没有做太多事情。现在是时候做一些真正令人印象深刻的事情了,微软显然尚未完成的壮举——平滑滚动文本。
“什么是滚动文本?”您可能会问,特别是如果您没有接触过 Commodore 64、Amiga 或 PC,并且像 Fairlight、Red Sector 和 Future Crew 这样的名字对您来说意义不大。希望您至少看过 Jet Set Willy 的介绍屏幕。归根结底是:滚动文本是有史以来最令人兴奋的交流形式。文字在屏幕上滑动,通常是宣传最新的发布或拷贝派对,抱怨高中老师,或详细描述在公共交通工具上的不幸经历,通常伴随着背景中播放的音乐 (MOD) 以及动画图形和无处不在的星空。也许您看过微软的屏幕保护程序,它会在屏幕上滚动文字,并且注意到它闪烁得非常厉害。修复它 非常 简单,所以我们的滚动文本不会闪烁;然后我们可以嘲讽微软员工来修复他们的屏幕保护程序。
例程非常简单。我们首先初始化三个图形屏幕:物理屏幕、虚拟屏幕和滚动板屏幕。物理屏幕是将要显示的图形上下文,虚拟屏幕是我们用作物理屏幕全屏副本的图形上下文。也就是说,我们对虚拟屏幕进行更改,并在一切准备就绪后,将其复制到物理屏幕。第三个屏幕是滚动板,一个虚拟图形上下文,它将比物理屏幕宽一个字符(8 像素),并且高度仅与字体本身一样高(同样,8 像素)。由于我们使用 8x8 字体和 320x200 图形屏幕,因此我们可以在一行上容纳 40 个(320/8)字符,为我们的滚动板制作 41 个字符。一旦我们设置好这三个上下文,我们将使用一个简单的循环来使字母滚动。在那之后,我们可以添加任何我们喜欢的东西:3D 图形、跳舞的动物、星空或任何其他东西。这是循环
将 41 个字母写入 scroll_board。
将 40 个字母从 scroll_board 复制到 virtual_screen,始终复制到 virtual_screen 上的相同位置,但每次都从右侧更远的一个像素复制,以便首先我们得到前 40 个字母,然后是前 40 个字母减去第一个字母的第一行像素,但带有第 41 个字母的第一行像素,依此类推,直到我们滚动 8 个像素(当前字体的宽度)。
在每次将 scroll_board 复制到 virtual_screen 后,将 virtual_screen 复制到 physical_screen 并保持垂直刷新。(这使得事情看起来流畅,并让我们稍后添加东西,比如跳舞的动物。)
一旦我们在 scroll_board 中向前移动了 8 个像素,使得我们正在复制第 2 个到第 41 个字母(而不是第 1 个到第 40 个),我们将在 scroll_board 中重新打印 41 个字母,从一个字母开始,这样曾经是例如“Hello world welcome to my glorious scroll”的内容将变成“ello world welcome to my glorious scrollt”。
这个例程相当简单,只需要几个变量:一个用于跟踪我们向内移动了多少像素,另一个用于跟踪我们向内移动了多少字母。此外,我们要确保我们不会用完滚动文本并开始滚动随机内存位,这最终会导致段错误。虽然我们可能更喜欢单独绘制每个字母并仅保持围绕滚动文本长度的调制,但如果我们一次打印字符作为字符串而不是每次移动 8 个像素时调用 gl_writen 41 次,我们会获得更快的绘图速度。因此,在文本的开头和结尾留出一些空白空间,以确保平滑的换行。我们也可以将整个滚动文本创建为一个非常长的图形,但这将是作弊。
一旦基本的滚动文本开始运行,我们就可以做各种有趣的事情。例如,我们可以为文本放置位置的 y 值设置正弦方程,使其在屏幕上上下弹跳,或者我们可以插入一些图形,并可能调用 mikmod 或 playmidi 来播放一些音乐。使用以下命令编译
gcc -Wall -O2 scrolltext.c -lvgagl\ -lvga -o scrolltext
有关 svgalib 或 vgagl 具体信息,请尝试其各自的 man 页面。库函数也有自己的 man 页面。这是代码
#include <stdio.h> #include <stdlib.h> #include <vga.h> #include <vgagl.h> #define VGAMODE G320x200x256 #define FONTW 8 // font width #define FONTH 8 // font height #define TEXTL 600 // text length int main(void) { char d; char text[TEXTL]=" Megagreetings from whomever this happens to be! This is where the scrolltext words are, so fill them as you like. Fun rarely entices everyone. Keep enjoying video interfaces nevertheless................. There is space to be filled!! "; short int text_pos; unsigned char pixel_pos; unsigned char speed; GraphicsContext *physical_screen; GraphicsContext *virtual_screen; GraphicsContext *scroll_board; vga_init(); vga_setmode(VGAMODE); gl_setcontextvga(VGAMODE); physical_screen = gl_allocatecontext(); gl_getcontext(physical_screen); gl_setcontextvgavirtual(VGAMODE); virtual_screen = gl_allocatecontext(); gl_getcontext(virtual_screen); gl_clearscreen(0); scroll_board = malloc( (WIDTH/FONTW+1) * FONTW * FONTH * BYTESPERPIXEL); gl_setcontextvirtual(WIDTH+FONTW, FONTH, BYTESPERPIXEL, 8, scroll_board); scroll_board = gl_allocatecontext(); gl_getcontext(scroll_board); gl_clearscreen(0); gl_setwritemode(FONT_COMPRESSED); gl_setfont(8, 8, gl_font8x8); gl_setpalettecolor(1,63,63,63); text_pos = 0; // text offset pixel_pos = 0; // pixel offset speed = 1; // scroller speed gl_setcontext(virtual_screen); for (d=0; d==0; d=vga_getkey()) { pixel_pos+=speed; while (pixel_pos > FONTW) { gl_setcontext(scroll_board); gl_writen(0, 0, WIDTH/FONTW, &text[text_pos]); text_pos++; pixel_pos-=FONTW; if (text_pos > TEXTL - WIDTH/FONTW) text_pos -= (TEXTL-WIDTH/FONTW); gl_setcontext(virtual_screen); } gl_copyboxfromcontext(scroll_board, pixel_pos, 0, WIDTH, FONTH, 0, HEIGHT-FONTH-1); gl_copyscreen(physical_screen); vga_waitretrace(); } return 0; }此代码可以从 ftp.linuxjournal.com/ftp/pub/lj/listings/issue68/3722.tgz 下载。
—Jason Kroll
Red Hat, Inc.,开源 Linux 操作系统解决方案提供商,宣布 Burlington Coat Factory Warehouse Corporation 已从 Red Hat 购买了支持服务,用于其全国范围内的 Linux 部署。根据协议,Red Hat Services 将为全国 260 多家 Burlington Coat Factory 商店(包括子公司)提供基于电话的支持。Red Hat 将为运行工厂安装的 Red Hat Linux 的定制 Dell OptiPlex PC 和 PowerEdge 服务器提供持续维护。基于 Red Hat Linux OS 的系统将托管 Burlington Coat Factory 的礼品登记处,并将促进所有其他店内功能,例如库存控制和接收。
International Data Corp. 的研究表明,Linux 是 1998 年增长最快的服务器操作系统环境,仅当年就增长了 212% 以上,在新授权的服务器操作系统出货量中占据了 17% 以上的份额。
Andover.Net 宣布已完成对其有影响力的 Slashdot (www.slashdot.org) 和 Freshmeat (www.freshmeat.net) 新闻和资源站点的广泛硬件升级。通过对这两个站点的 IT 基础设施进行重大投资,Slashdot 和 Freshmeat 现在可以毫无延迟地为不断增长的 Linux 社区提供新闻和信息,这些新闻和信息使这些站点成为 Linux 新闻和信息最受欢迎的目的地。
Oracle Corp.,Linux 数据库软件提供商,和 Red Hat 联合宣布,Oracle 已在 Red Hat Linux 上认证了 Oracle8i,并且未来的 Oracle 产品版本也将在 Red Hat 上获得认证,因为它们变得可用。
Tripwire 加入了 ISS 的自适应网络安全联盟 (ANSA),这是一项全行业倡议,致力于开发和交付自适应网络安全解决方案。通过 ANSA,实时自适应安全功能正在跨系统和应用程序集成,为包括入侵在内的安全风险提供自动化响应。Tripwire 将使用 ANSA 模块来集成 Tripwire 和 ISS 产品。对操作系统或用户文件所做的任何修改都将被 Tripwire 检测到。然后,Tripwire 将向 ISS 产品集发送警报,该产品集将执行另一组安全检查以监控和对抗入侵。有关 ANSA 的更多信息,请访问 http://www.ansa.iss.net/。
KeyLabs Inc.,一家电子商务测试机构,宣布 Motorola Computer Group (MCG) 的 SLX2020 网络设备已通过 KeyLabs 的网络服务器兼容性测试,以支持主要的 Linux 操作系统发行版。KeyLabs 的兼容性测试表明,SLX2020 是摩托罗拉最近宣布的 SLX 系列网络设备中的第一款,与 Caldera Systems 的 OpenLinux 2.2 和 2.3、Red Hat 6.0、SuSE Linux 6.0 和 TurboLinux 3.0.1 兼容。KeyLabs 的 SLX 系列“Linux-Tested”认证结果可在 www.keylabs.com/linux/results/motorola.html 上找到。
Ariel Corporation,互联网服务提供商开放式架构远程访问解决方案供应商,宣布 KeyLink Systems,一家 Pioneer-Standard Electronics, Inc. 公司,现在正在为基于 Ariel 的 PowerPOP 架构的 ISP 提供捆绑式远程访问解决方案。KeyLink Systems 还宣布成立专门的销售和支持团队,负责组装这些 ISP 解决方案。
透明防火墙,作者 Federico 和 Christian Pellegrin,介绍了在构建防火墙时遇到的难题之一的解决方案:如何在不影响网络上已在使用中的机器配置的情况下拆分现有网络。他们通过使用代理 arp 技术来实现这一点。您需要了解的有关要求和配置的所有信息都可以在这里找到。
Kerberos,作者 Cosimo Leipold,是对这组强大程序的介绍,这些程序为您提供到 TELNET、FTP、电子邮件等的加密连接。Leipold 先生解释了使管理员能够完全控制系统所需的配置文件和命令。
您能期待什么?,作者 Denny Fox,描述了定义和实施数据收集项目的端到端过程,该项目说明了 Expect、stty、cron、少量 C 编程、gnuplot 和 ioctl 到串行设备驱动程序的使用。了解更多关于 Expect 的信息,Expect 是一种强大的工具,用于自动化 UNIX 程序,这些程序与用户或需要命令或触发器然后返回某种响应的进程进行交互。系统管理员定期需要的正是这种工具。
使用 IP 链构建防火墙,作者 Pedro Bueno,是一篇非常短的文章,它为您提供了使用 IP 防火墙链的基础知识。为您的系统开发足够的安全性是您可以采取的最重要的步骤之一。
自定义 XDM 登录屏幕,作者 Brian Lane,向您展示了如何美化您的登录屏幕,解释了如何设置 XDM、更改您的背景图案、随机显示背景图像以及更改您的提示符。
Linux 在嵌入式系统中的应用,作者 Dave Pfaltzgraff,介绍了一家公司使用 Linux 和开源软件解决客户问题的方法。Pfaltzgraff 先生告诉我们如何在他的案例中实现串行接口和控制程序并与数据库 PostgreSQL 交互。
将 Progress 应用程序移植到 Linux,作者 Thomas Barringer,解释了将现有 Progress 应用程序移植到 Linux 系统所需的步骤,包括这样做的优点和缺点。
陆军国民警卫队使用 Linux,作者 Richard Ridgeway,着眼于军事战争游戏模拟如何移植到 Linux 工作站。其中包括不同平台和操作系统上图形刷新时间的比较。省钱和获得高性能是将移植到 Linux 的两个非常好的理由。
程序 supermount 已成功移植到 2.2 内核,实现了 Stephen Tweedie 原始版本的所有功能。该项目于 8 月 11 日启动,并于 9 月 27 日由俄罗斯的开发人员 Alex ... 完成。这项 Linux 增强功能由几位不同的个人合作资助,并由 cosource.com 协调,从而证明了 Cosource 模式是可行的!祝贺 Alex 和 Cosource!从 www.cosource.com/cgi-bin/cos.pl/bid/info/5http://www.cosource.com/cgi-bin/cos.pl/bid/info/5 获取所有详细信息。
9 月 30 日,在圣何塞的嵌入式系统会议上,Lineo 的 Lyle Ball 和 Bryan Sparks 提议成立一个名为嵌入式 Linux 顾问委员会 (EMLAB) 的小组。这个拟议的机构将作为一个倡导团体,通过诸如在嵌入式系统展会上建立 Linux 展馆以及推广专题讨论会和 Linux 演示轨道等活动,帮助 Linux 在嵌入式系统领域获得更高的知名度和名称认可。其他可能性包括
共享软件开发,例如,GPL 闪存盘文件系统驱动程序。与 Linux 本身一样,此类软件为嵌入式系统的发展提供了基本基础。
嵌入式 Linux 方法的厂商中立比较
跟踪和宣传 Linux 设计的成功案例
制定标准
资金将来自企业赞助,并通过提名程序向社区团体(例如 Linux Router Project 或个人开发人员)开放免费会员资格。
Lineo 希望将 EMLAB 移交给即将选出的独立委员会。
出席发布会的有 Lineo 及其一些客户和战略合作伙伴,包括 Ziatech、Motorola 和 Intel。《新闻界》的代表是 Linux Weekly News 和 Linux Journal。
未出席的公司和团体的反应是谨慎的,尽管他们支持成立这样一个组织的想法。
Lineo 已设置一个服务器,托管开放邮件列表和网站。有关列表订阅信息,请发送电子邮件至 info@emlab.org。有关新闻更新,请访问 http://www.emlab.org/ 或继续关注 www.linuxjournal.com/。
—Dan Wilder