网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

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

  链接: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 osimport sysimport math
import numpyimport 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 nodes
def __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 rows
return 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.T
def __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) + alpha
def 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:break

return state

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
北京上演真实“扶不扶”?老人摔倒让女子扶一把,女子说我不敢

北京上演真实“扶不扶”?老人摔倒让女子扶一把,女子说我不敢

博学老K杂谈
2024-05-09 18:30:02
中国95亿身家“地下女王”惨遭丈夫抛弃!你我本有缘,只怪你有钱

中国95亿身家“地下女王”惨遭丈夫抛弃!你我本有缘,只怪你有钱

北国向锡安
2024-05-10 07:51:54
今年红场阅兵大缩水,但西方笑不出来了……

今年红场阅兵大缩水,但西方笑不出来了……

枢密院十号
2024-05-09 23:42:10
张维为被学生提问如何办瑞士永居?原来他之前就回答过这个问题

张维为被学生提问如何办瑞士永居?原来他之前就回答过这个问题

不掉线电波
2024-05-09 22:02:03
惬意!34岁中年男子应聘墓地巡逻员,月薪18000直接进入退休生活

惬意!34岁中年男子应聘墓地巡逻员,月薪18000直接进入退休生活

老王侃趣闻
2024-05-09 15:43:20
百度女副总还没明白,侮辱首陀罗有多危险

百度女副总还没明白,侮辱首陀罗有多危险

熊太行
2024-05-09 08:52:45
贾斯汀比伯升级当爸!晒海莉6个月唯美孕照,网友纷纷留言恭喜

贾斯汀比伯升级当爸!晒海莉6个月唯美孕照,网友纷纷留言恭喜

萌神木木
2024-05-10 09:39:36
噩耗!前中国体操队长家中去世,国家体育总局发布讣告,李宁悲痛

噩耗!前中国体操队长家中去世,国家体育总局发布讣告,李宁悲痛

大咖唠体育
2024-05-10 08:30:06
沙特大满贯男单四强产生,国乒5主力仅1人晋级,创历史最差战绩

沙特大满贯男单四强产生,国乒5主力仅1人晋级,创历史最差战绩

极度说球
2024-05-10 03:39:17
美撤销对华半导体出口许可,中国再减448亿美元外汇,并转买黄金

美撤销对华半导体出口许可,中国再减448亿美元外汇,并转买黄金

影孖看世界
2024-05-09 21:40:14
注意!降准、降息快来了

注意!降准、降息快来了

米筐投资
2024-05-10 07:11:11
央视主持人康辉、演员赵露思,将在2024年巴黎奥运会中拥有新身份

央视主持人康辉、演员赵露思,将在2024年巴黎奥运会中拥有新身份

潇湘晨报
2024-05-09 18:51:09
五步走,领导子女的“惯用”从政之路

五步走,领导子女的“惯用”从政之路

一枚小吏
2024-05-09 12:37:17
叫板张维为的中国学生出现在马来西亚

叫板张维为的中国学生出现在马来西亚

关尔东
2024-05-10 00:08:19
广州中医药大学第一附属医院原院长冼绍祥被查

广州中医药大学第一附属医院原院长冼绍祥被查

新京报
2024-05-10 08:36:12
百度老板娘从美国飞回来开除璩静,李彦宏发声,网友:真是夫妻店

百度老板娘从美国飞回来开除璩静,李彦宏发声,网友:真是夫妻店

180°视角
2024-05-10 10:07:12
“山寨周杰伦”代言饮料,涉事公司称广告有手续!刚被诉侵权

“山寨周杰伦”代言饮料,涉事公司称广告有手续!刚被诉侵权

南方都市报
2024-05-09 18:48:21
网传璩静已在深圳注册公司,原来她在百度内部短视频操作是试水?

网传璩静已在深圳注册公司,原来她在百度内部短视频操作是试水?

火山诗话
2024-05-10 06:44:05
李彦宏内部评璩静风波:优秀员工才代表真实的百度

李彦宏内部评璩静风波:优秀员工才代表真实的百度

财联社
2024-05-10 09:28:16
拒29分逆转!联盟第1轰然倒下!米切尔爆砍29+7+8!双探花44+11+7

拒29分逆转!联盟第1轰然倒下!米切尔爆砍29+7+8!双探花44+11+7

易说体坛
2024-05-10 09:31:46
2024-05-10 11:16:49
CSDN
CSDN
成就一亿技术人
24634文章数 241803关注度
往期回顾 全部

科技要闻

李彦宏评璩静:优秀员工才代表真实的百度

头条要闻

镇雄男子医院对峙行凶者:对峙1分钟 当时我刚做完手术

头条要闻

镇雄男子医院对峙行凶者:对峙1分钟 当时我刚做完手术

体育要闻

用50万欧元,换一场绝境逆转!

娱乐要闻

贾斯汀比伯升级当爸!晒海莉6个月孕照

财经要闻

周鸿祎正在下一盘我们看不懂的大棋?

汽车要闻

限时4.59万 续航200公里 吉利熊猫卡丁正式上市

态度原创

艺术
手机
时尚
游戏
教育

艺术要闻

“石破天惊——盖会宁当代水墨艺术展”将登陆盖茂森艺术馆

手机要闻

曝荣耀200系列新机下周开始预热 荣耀9知更鸟蓝回归?

见过世面的中年女人,夏天都不穿“超短裙”,这样搭配才优雅

不用担心!《Hi-Fi RUSH》仍会推出实体版

教育要闻

江西中考:计算-2-1的值?

无障碍浏览 进入关怀版