您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

改变世界的一小段代码

时间:2022-12-01 16:42:43  来源:今日头条  作者:金文号FR

短短几行代码对全球产生巨大影响


 

1997年,Ethan Zuckerman发明了弹出式广告,从而打破了互联网。

他在Tripod.com工作,一家允许人们免费制作小网页的在线服务公司。为了赚钱,Tripod将广告与页面并排出售。问题是,广告最终会出现在淫秽内容的旁边——比如用户的情色页面——而广告商不喜欢这样。

祖曼的老板让他想出一些解决办法。有没有什么方法可以定位广告,让它们不在sexytime用户生成内容旁边?

这时候,祖克曼想出了一个奇怪而老套的解决方案:当你访问一个Tripod页面时,它会生成一个全新的弹出页面,只有广告。这样,从技术上来说,广告不会与任何特定的用户页面相关联。它只是浮在屏幕上。

然而,事情是这样的:祖克曼的JAVAscript创建了弹出广告?它非常短,只有一行代码:

window.open('http://tripod.com/navbar.html' "width=200, height=400, toolbar=no, scrollbars=no, resizable=no, target=_top");

基本上,JavaScript告诉浏览器打开一个新窗口,该窗口宽200像素,高400像素,顶部没有滚动条或工具栏,位于任何其他当前打开的网页的顶部。

简单,但是有害!很快,商业网站复制了祖克曼的创新,互联网上充斥着弹出广告。我在00年代早期认识的一个在下载网站工作的程序员告诉我,他们的大部分收入来自色情弹出广告。

你一定见过弹出式广告。毫无疑问,你恨他们。幸运的是,您使用的浏览器现在可以抑制它们。

正如祖克曼所说,他写了一行代码“让世界变得更糟”。


 

我在祖克曼为你写的一篇文章里读到了他的故事。你不应该理解这个:26行代码如何改变世界。这是一个非常有趣的短文集,由Torie Bosch编辑,反映了世界在其轴上倾斜的代码片段。

让我着迷的是这些片段大多有多短。这与许多关于编码的流行文化假设完全相反,这些假设通常表明重要的代码是巨大的。好莱坞喜欢用手指形容“程序员编程”,绝对含糊不清,倒出尼亚加拉瀑布般的代码。谷歌一家独大的故事过去常常提到它的“20亿行代码”,好像绝对权重是该公司成功的原因。

通常情况相反。事实上,谷歌的原始创新——一段让谷歌在20世纪90年代超越其搜索引擎同行的代码——是其“PageRank”算法,该算法根据链接到网页的其他页面的数量以及这些链接页面的质量来计算网页的价值。这不是一个长代码;人家用Python/ target=_blank class=infotextkey>Python做了自己的版本,也就几十行。

当然,谷歌的整体运营——就像任何大型科技公司的运营一样——涉及成千上万的流程来保持其运行。这就是他们的总代码库变得如此庞大的原因。但是一些最有影响力的代码可能非常简洁。

你应该读完整本书(或者作为节日礼物送给书呆子),因为例子很吸引人,也很广泛。查尔顿·麦克韦恩(Charlton McIlwAIn)在20世纪60年代末开发的“police beat algorithm”有一章试图预测哪里最有可能发生犯罪,以便执法机构可以向那里派遣更多警察。当然,这最终形成了一个种族主义的反馈循环:由于贫穷的黑人社区相比白人社区已经被过度监管,算法表明那里有更多的警力,导致更多的逮捕,这说服了算法派出更多的警察;冲洗并重复。

警察巡逻算法不是很长;在2005年,你不应该理解这个,艺术家凯利·查德勒画了它...

Police beat algorithm 不是很长;在《你不应该理解这一点》一书中,艺术家凯利·查德勒(Kelly Chudler)把它画了出来……


 

这是另一个改变世界的较短代码:“跟踪像素”。

正如Lily Hay Newman在她关于跟踪像素的章节中指出的,你可能每天都在不知不觉中与这些代码进行交互。基本上,它是一小段HTML,在电子邮件中嵌入了一个小像素,小到你看不见它。然而,如果有人给我发了一封带有这个跟踪代码的电子邮件,它就会监视我。它是这样工作的:当我打开消息时,代码要求我的浏览器请求那个单像素图像。给我发邮件的人在看,嘿,克莱夫的浏览器请求像素了吗?如此有效,给我发邮件的人在我打开的一瞬间就能知道。

将跟踪像素放入电子邮件非常简单——只需一行代码:

这是最后一个比较老的例子!书中有一章(由 Ellen R. Stofan 和 Nick Partridge 撰写)讲述了阿波罗11号登月任务登月舱的“救援”代码。“救援”代码运行在登月舱的微型机载计算机上,旨在帮助确定事情的优先级:如果计算机过载,它将丢弃除最重要的工作之外的所有工作。

当登月舱接近月球时,这被证明是非常重要的,因为可以肯定的是,计算机已经超载了。“救援”代码立即开始行动,关闭所有对登月舱着陆不太重要的东西。它甚至关闭了登月舱中的一些显示系统,这吓坏了宇航员。但它成功了:登月舱安全着陆。

下面是代码——只有22行......

POODOO INHINT CA Q TS ALMCADR TC BANKCALL CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES. INDEX ALMCADR CAF 0 ABORT2 TC BORTENT OCT77770 OCT 77770 # DONT MOVE CA V37FLBIT # IS AVERAGE G ON MASK FLAGWRD7 CCS A TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT. TC DOWNFLAG ADRES STATEFLG TC DOWNFLAG ADRES REINTFLG TC DOWNFLAG ADRES NODOFLAG TC BANKCALL CADR MR.KLEAN TC WHIMPER

这本书真的很精彩——非常值得一读!



Tags:代码   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  Search: 代码  点击:(13)  评论:(0)  加入收藏
为何大语言模型不会取代码农?
译者 | 布加迪审校 | 重楼生成式人工智能(GenAI)会取代人类程序员吗?恐怕不会。不过,使用GenAI的人类可能会取代程序员。但是如今有这么多的大语言模型(LLM),实际效果不一而足。如...【详细内容】
2024-03-21  Search: 代码  点击:(24)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  Search: 代码  点击:(12)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20  Search: 代码  点击:(24)  评论:(0)  加入收藏
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%
新智元报道编辑:桃子 润【新智元导读】全球首个AI程序员Devin诞生之后,让码农纷纷恐慌。没想到,微软同时也整出了一个AI程序员——AutoDev,能够自主生成、执行代码等...【详细内容】
2024-03-18  Search: 代码  点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  Search: 代码  点击:(2)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  Search: 代码  点击:(36)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  Search: 代码  点击:(71)  评论:(0)  加入收藏
C++代码优化攻略
今天我们将深入探讨C++性能优化的世界。在当今软件开发的浪潮中,高性能的代码是必不可少的。无论是开发桌面应用、移动应用,还是嵌入式系统,性能都是关键。1. 选择合适的数据结...【详细内容】
2024-01-26  Search: 代码  点击:(117)  评论:(0)  加入收藏
手把手教你为开源项目贡献代码
背景前段时间无意间看到一篇公众号 招贤令:一起来搞一个新开源项目,作者介绍他想要做一个开源项目:cprobe 用于整合目前市面上散落在各地的 Exporter,统一进行管理。比如我们常...【详细内容】
2024-01-26  Search: 代码  点击:(71)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条