寥寥几行代码,却改变了世界!

fd1a4faffb8d176977b3c5fd4fbc0ec8.gif

有那么一些代码片段,虽然只有寥寥几行,却能够给全世界带来巨大的影响。

链接:https://betterprogramming.pub/tiny-snippets-of-code-that-changed-the-world-fda104afc0d0

声明:本文为 CSDN 翻译,未经允许禁止转载。

作者 | Clive Thompson      

译者 | 弯月           责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

1997年,Ethan Zuckerman 发明了弹出式广告,从而在互联网上掀起了滔天波浪。

当时,他在 Tripod.com 工作,这是一个供人们免费制作小网页的在线服务。为了赚钱,Tripod出售页边广告。问题是,这些广告常常显示在一些淫秽内容的旁边,广告商绝对不喜欢。

老板让 Zuckerman 想一些解决办法。难道就没有什么方法可以定位广告,避免它们与一些不堪的内容并排显示吗?

这时,Zuckerman 想出了一个奇怪的、老套的解决方案:在用户访问 Tripod 页面时,生成一个全新的弹出页面,并在里面显示广告。严格来说,这样广告就不会与任何特定的用户页面联系到一起了,因为广告会悬浮在页面之上。

然而,你知道 Zuckerman 创建的弹出式广告只用到了一行 JavaScript 代码吗?

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

实际上,这行 JavaScript 代码只是告诉浏览器打开一个新窗口,该窗口的宽度为 200 像素,高度为 400 像素,顶部没有滚动条或工具栏,位于当前网页的顶部。

这行代码虽然简单,但危害不小!很快,各家商业网站纷纷开始复制这行代码,于是整个互联网上都充斥着弹出式广告。2000 年初,我认识的一位程序员告诉我,他们的绝大部分收入都来自色情弹出广告。

你肯定也见过弹出式广告,内心肯定也无比讨厌。幸运的是,现在的浏览器可以屏蔽掉这些广告了。

正如 Zuckerman 所说,他写了一行“让整个世界变得更糟”的代码。

Zuckerman在《“You Are Not Expected to Understand This”: How 26 Lines of Code Changed the World》中提到了他的这个故事。这是一本非常有趣的短文集,由 Torie Bosch 编辑,其中记载了影响了全世界的一些代码片段。

令我无比惊讶的是,这些代码片段大多如此简短。许多有关编程的流行文化通常都会强调代码量的庞大。好莱坞描绘的程序员手指在键盘上快速地飞舞,一串串的代码犹如瀑布般倾泻而出。Google 的统治地位常常是通过“20 亿行代码”反映出来的,就好象这才是 Google 成功的原因。

然而,实际情况与恰恰与之相反。事实上,Google 早在 90 年代超越其他搜索引擎的一段代码“PageRank”算法计算某个网页价值的依据为:链接到该网页的其他网页的数量以及质量。实现该算法的代码并不长,已经有人编写了一个 Python 版,只有几十行(https://github.com/ashkonf/PageRank/blob/master/pagerank.py)。

import os
import sys
import mathimport numpy
import pandas# Generalized matrix operations:def __extract_nodes(matrix):nodes = set()for col_key in matrix:nodes.add(col_key)for row_key in matrix.T:nodes.add(row_key)return nodesdef __make_square(matrix, keys, default=0.0):matrix = matrix.copy()def insert_missing_columns(matrix):for key in keys:if not key in matrix:matrix[key] = pandas.Series(default, index=matrix.index)return matrixmatrix = insert_missing_columns(matrix) # insert missing columnsmatrix = insert_missing_columns(matrix.T).T # insert missing rowsreturn matrix.fillna(default)def __ensure_rows_positive(matrix):matrix = matrix.Tfor col_key in matrix:if matrix[col_key].sum() == 0.0:matrix[col_key] = pandas.Series(numpy.ones(len(matrix[col_key])), index=matrix.index)return matrix.Tdef __normalize_rows(matrix):return matrix.div(matrix.sum(axis=1), axis=0)def __euclidean_norm(series):return math.sqrt(series.dot(series))# PageRank specific functionality:
def __start_state(nodes):if len(nodes) == 0: raise ValueError("There must be at least one node.")start_prob = 1.0 / float(len(nodes))return pandas.Series({node : start_prob for node in nodes})def __integrate_random_surfer(nodes, transition_probabilities, rsp):alpha = 1.0 / float(len(nodes)) * rspreturn transition_probabilities.copy().multiply(1.0 - rsp) + alphadef power_iteration(transition_weights, rsp=0.15, epsilon=0.00001, max_iterations=1000):# Clerical work:transition_weights = pandas.DataFrame(transition_weights)nodes = __extract_nodes(transition_weights)transition_weights = __make_square(transition_weights, nodes, default=0.0)transition_weights = __ensure_rows_positive(transition_weights)# Setup:state = __start_state(nodes)transition_probabilities = __normalize_rows(transition_weights)transition_probabilities = __integrate_random_surfer(nodes, transition_probabilities, rsp)# Power iteration:for iteration in range(max_iterations):old_state = state.copy()state = state.dot(transition_probabilities)delta = state - old_stateif __euclidean_norm(delta) < epsilon: breakreturn state

当然,Google 的整体运营涉及数以千计的流程,就像其他大型科技公司的运营一样。这就是为什么他们的总代码库变得如此庞大的原因。然而,一些最具影响力的代码往往非常简洁。

我建议你读一下这本书,其中的一些示例非常有趣,而且涉及范围非常广。书中有一个章节讲到了 Charlton McIlwain 于 20 世纪 60 年代后期开发的“police-beat”算法。该算法最主要的目的是预测最有可能发生犯罪的区域,以便执法机构派遣更多警察前往这些区域。

police-beat算法并不是很冗长,艺术家 Kelly Chudler 在著作《You Are Not Expected To Understand This》中画出了这个算法:

af064551934e98a7f7e7a9a838561cde.png

这段改变了整个世界的代码更短:“跟踪像素”。

正如Lily Hay Newman 在关于跟踪像素的章节中指出的那样,你每天都可能在不知不觉中与这段代码打交道。实际上,这是一小段 HTML,在电子邮件中嵌入了一个小像素,小到你甚至觉察不到。但是,如果有人向我发送一封电子邮件,其中包含这段跟踪代码,那么在我打开邮件的那一刻,这段代码就会要求我的浏览器请求那个单像素图像,而发送邮件给我的人看到这个请求就会明白,我已经打开了邮件。

这段将跟踪像素放入电子邮件的代码非常简单,只有一行:

<img src="URL LINKING TO THE PIXEL ONLINE" width="0" height="0">

最后,再讲一个更古老的故事。书中有一章(由 Ellen R. Stofan 和 Nick Partridge 撰写)是关于阿波罗 11 号登月计划登月舱的“救助”代码。这段“救助”代码在登月舱的微型机载计算机上运行,目的是规划任务的优先级:如果计算机超载,则抛弃所有工作,只保留最重要的任务。

当登月舱接近月球时,这段代码起到了关键作用,因为当时计算机确实超载了。于是,“救助”代码立即开始行动,关闭所有对着陆不是非常重要的模块。这段代码甚至关闭了登月舱内的一些显示系统,这把宇航员吓坏了。但最终这段代码奏效了,登月舱安全着陆。

这段代码只有 22 行:

POODOO    INHINTCA  QTS  ALMCADRTC  BANKCALLCADR  VAC5STOR  # STORE ERASABLES FOR DEBUGGING PURPOSES.INDEX  ALMCADRCAF  0
ABORT2    TC  BORTENTOCT77770  OCT  77770    # DONT MOVECA  V37FLBIT  # IS AVERAGE G ONMASK  FLAGWRD7CCS  ATC  WHIMPER -1  # YES.  DONT DO POODOO.  DO BAILOUT.TC  DOWNFLAGADRES  STATEFLGTC  DOWNFLAGADRES  REINTFLGTC  DOWNFLAGADRES  NODOFLAGTC  BANKCALLCADR  MR.KLEANTC  WHIMPER

总的来说,《You Are Not Expected To Understand This: How 26 Lines of Code Changed the World》这本著作中记载了很多有趣的小故事,十分值得一读。

2771bbcbe437dd7e595fbc49a31bb915.gif

《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与人人都在使用的「基础软硬件」的问卷调研,更有 iPad 等精美大礼等你拿!2376f40ebda265eb5a332c3d30c340f9.png

☞2022 程序员“求生”现状:躲过“裁员潮 ”,也避不开 AIGC 和虚拟人?
☞音视频激荡40年:从9英寸的黑白电视,到4.56亿人的直播狂欢
☞ChatGPT 成学生“作弊神器”?教授:“我感到极度恐惧”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21495.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python绘制函数曲线:创造出令人惊叹的图形

Python绘制函数曲线&#xff1a;创造出令人惊叹的图形 随着越来越多的人开始关注数据可视化&#xff0c;Python成为了一种被广泛使用的工具&#xff0c;用于创建各种图形&#xff0c;包括函数曲线。Python图形库的灵活性和适用性使得它成为数据科学和工程领域中最受欢迎的编程…

chatgpt赋能python:Python手写体:Python程序员的最爱

Python手写体&#xff1a;Python程序员的最爱 介绍 Python手写体是指通过艺术化的方式将Python编程语言的代码转化成手写体风格的艺术作品。Python手写体的发展源于Python编程语言逐渐成为全球最受欢迎的编程语言之一。Python程序员喜欢用它来构建Web应用程序、数据分析、机器…

最新免费版 Office 全家桶Copilot,Gamma+MindShow 两大ChatGPT AI创意工具GPT-4神器助力高效智能制作 PPT,一键生成,与AI智能对话修改PPT(免安装)

目录 前言ChatGPT MindShow1. 使用ChatGPT工具生成PPT内容2. 使用MindShow工具一键智能制作PPTMindShow简介使用网页版制作pdf转ppt GAMMA AI神器GAMMA.app介绍注册 decks操作Guided 指导Text to deck 文本到PPTpdf转ppt协同操作其它 参考资料其它资料下载 前言 2023年3月&am…

【Twitter 舆论分析】Twitter 实时推文爬虫

0x00 前言 继续探索Twitter API的使用&#xff0c;这次获取一下Twitter的实时推文。 0x01 具体步骤 1、sample-steam 样本流 这是Twitter提供的代码&#xff0c;比较简单&#xff0c;只需要更改一下"bearer_token"即可使用&#xff0c;相对获得的数据单一&#x…

Android 实现用户收藏新闻以及查看新闻(简易新闻 六)

Android 实现用户收藏新闻以及查看新闻&#xff08;简易新闻 六&#xff09; 效果图&#xff1a; 因为录制的gif过长无法上传&#xff0c;所以这里分为两段&#xff0c;一段是用户未登录状态下收藏新闻需登录&#xff0c;用户登录后可以收藏&#xff1a; 第二段用户未登录查看…

关于世界杯的一篇文章-ChatGPT

世界杯是国际足球的最高荣誉&#xff0c;每四年举办一届&#xff0c;是世界上最受欢迎的体育赛事之一。自1930年首届世界杯在乌拉圭举办以来&#xff0c;已经举办了20届。 由国际足联&#xff08;FIFA&#xff09;主办&#xff0c;每届比赛都会在举办国举行&#xff0c;由32支…

2021最近的新闻大事10条简短 今天的新闻大事10条汇总

每天精选2021最近的新闻大事10-12条&#xff0c;365资讯简报 汇总近期、今天的新闻大事。每一条热点新闻大事件都比较简短&#xff0c;可以用作新闻大事件摘抄素材&#xff01; 【365资讯简报】每天一分钟&#xff0c;知晓天下事&#xff01;2021年1月12日 星期二 农历十一月廿…

收藏|最全的LIMS实验室信息管理系统介绍

实验室信息管理系统(LIMS)&#xff0c;就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现代的管理思想有机结合&#xff0c;利用数据处理技术、海量数据存储技术、宽带传输网络技术、自动化仪器分析技术&#xff0c;来对实验…

使用大型语言模(LLM)构建系统(四):链式提示

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。 下面是我们访问大型语言模(LLM)的主要代码&#xff1a; import openai#您的openai的api key openai.api_key YOUR-OPENAI-API-KEY def get_…

AIGC - 生产力新工具 Bito AI

文章目录 Bito AI 是什么Bito AI 能干啥官网免费的吗&#xff1f;如何使用 Bito方式一&#xff1a;方式二&#xff1a;在这里插入图片描述方式三 Bito AI 是什么 Bito AI是继Github Copilot、Cursor、CodeWhisperer等AI智能编程产品之后发了一大AI编程工具 。 Bito是一款建立…

ChatGPT背后的技术

ChatGPT背后的技术InstructGPT&#xff0c;论文标题为 Training language models to follow instructions with human feedback。 语言模型(Language model)的原理是给一段文本&#xff0c;让它去预测后面下面的词是什么。在预训练中它的训练数据是没有标签的&#xff0c;是自…

揭密ChatGPT背后团队鲜为人知的小秘密

ChatGPT引领的人工智能技术浪潮还在持续火爆&#xff0c;可是做出这款产品的OpenAI公司&#xff0c;熬得住多年的冷板凳&#xff0c;最终一飞冲天&#xff0c;他们是怎么做到的呢&#xff1f; 因此&#xff0c;我对这家企业的组织建设产生了浓厚的兴趣。我找啊找&#xff0c;最…

一点就分享系列(实践篇6——上篇)【迟到补发_详解yolov8】Yolo-high_level系列融入YOLOv8 旨在研究和兼容使用【3月份开始持续补更】

一点就分享系列&#xff08;实践篇5-补更篇&#xff09;[迟到补发]—Yolo系列算法开源项目融入V8旨在研究和兼容使用[持续更新] 题外话 [最近一直在研究开放多模态泛化模型的应用事情&#xff0c;所以这部分内容会更新慢一些&#xff0c;文章和GITGUB更新并不同步&#xff0c;g…

基于OpenAI的gpt-3.5模型API实现个人助手服务

引言 网上有不少OpenAI的API资料&#xff0c;实测下来&#xff0c;可能是环境因素踩了不少坑&#xff0c;这里分享一下我实践成功的技术路线。出于篇幅考虑&#xff0c;本文不会对开发前的部分工作&#xff0c;例如openai账号注册&#xff0c;外网访问权限获取&#xff0c;java…

人人都可实测体验的ChatGPT来了

来源&#xff1a;量子位 所有人都能上手微软Bing了&#xff01; 今天&#xff0c;微软突然官宣全面开放BingChat&#xff1a; 无需任何等待。只需注册一个账户&#xff0c;首页即可体验。 更关键的是&#xff0c;还有一大堆堪称“家底”的新功能来袭&#xff01; 支持100种语言…

最快下载微软必应Bing搜索背景图片的方法

1.打开谷歌Chrome浏览器。 2.打开https://cn.bing.com/或https://cn.bing.com/ 3.CtrlShiftI 4.CtrlO 5.输入 jpg 6.点击链接 7.鼠标右键图片&#xff0c;选择最后两个菜单都能下载&#xff0c;个人偏好第三个 8.另存为即可 第4步 还可以使用CtrlF &#xff0c;在Eleme…

分享:企业内部通信 〖局域网QQ〗Bing(必应)1.0 正式发布,包括:聊天、视频、语音、电话、截屏、涂鸦、文件传输 等

分享&#xff1a;企业内部通信 〖局域网QQ〗Bing&#xff08;必应&#xff09;1.0 正式发布,包括&#xff1a;聊天、视频、语音、电话、截屏、涂鸦、文件传输 等 局域网QQ Bing&#xff08;必应&#xff09;1.0 正式发布 Bing&#xff08;必应&#xff09;是一款优秀的企业局…

【IDEA插件】 EasyCode

Easycode是idea的一个插件&#xff0c;可以直接对数据的表生成 entity,controller,service,dao,mapper,无需任何编码&#xff0c;简单而强大。 1、安装(EasyCode) img 我这里的话是已经那装好了。 建议大家再安装一个插件&#xff0c;Lombok。Lombok能通过注解的方式&#x…

IDEA集成chatGTP让你编码如虎添翼

如果您 还没有chatGTP账号,请移步以下文章中注册章节: ​​​​​​独立部署基于apiKey或accessToken的GPT聊天工具_云台095的博客-CSDN博客 IDEA集成chatGTP让你编码如虎添翼 第一步,打开您的IDEA, 打开首选项(Preference) -> 插件(Plugin) 在插件市场搜索 c…