来源:好完美 浏览次数: 发布时间:2023-01-01 10:54:18
焦急的“赞”键、失踪的火星气候轨道器、造成数百人死亡的波音737 Max空难……原来,这一切都与代码有关。
2009年,Facebook推出了一段改变世界的代码——点击“赞”按钮。 Like 是几位程序员和设计师的心血结晶,其中包括 Leah Pearlman 和 Justin Rosenstein。 他们认为 Facebook 用户通常太忙而无暇评论朋友的帖子,但如果有一个简单易用的按钮就会大受欢迎。 “朋友们可以更频繁、更容易地喜欢彼此,”珀尔曼说。
按钮起作用了,甚至有点超乎想象。 到 2012 年,“赞”按钮的点击次数已超过 1 万亿次。 但它也有副作用。 发布照片后,我们坐立不安并刷新页面,等待更多的“赞”。 我们想知道为什么别人的点赞越来越多。 于是,我们开始在社交网络中“暗暗发力”:变得更有趣、更犀利、更迷人、更极致。
代码重构了我们的生活。 正如风险投资家马克·安德森所写,“软件正在吞噬世界”,尽管说软件正在消化世界可能更准确。
因此,美国《板岩》杂志进行了这样的调查。 为了确定改变世界的软件,编辑们对计算机科学家、软件开发人员、历史学家、政治家和记者进行了调查。 他们需要做出选择:哪些代码影响最大? 哪些改变了我们的生活? 在提交想法的 75 人中,Slate 选择了 36 人(翻译已被删节)。 这不是一个完整的列表,因为有太多有影响力的代码。 这份清单旨在激发思考——帮助我们重新思考代码如何影响我们的生活以及程序员的决定如何影响未来。
二进制打孔卡 (1975)
第一个代码
二进制编程早于计算机。 Basile Bouchon 是第一个在纸上打孔并用它来控制机器的人:1725 年,他发明了一种织机,可以根据送入的穿孔纸织出不同的图案。 打孔为“1”,不打孔为“0”。 从那时起机器发生了很大变化,但基本的代码组成没有变化。 - Elena Botella,Slate 对第一个现代代码的实现(1948 年)
率先使用计算机代码和核灾难计算机模型,为冷战军备竞赛奠定基础
电子数字积分计算机是第一台可编程电子计算机。 它于 1945 年完工,通过在许多组件之间建立连接来针对每个新问题进行配置。 当一个任务(例如加法)完成时,一个脉冲触发下一个任务。 但几年后,冯·诺伊曼和洛斯阿拉莫斯的科学家尼古拉斯·梅特波利斯改进了 ENIAC,使其能够运行第一个在计算机上执行的现代代码:表开关)来执行数百条数字指令。 他们使用蒙特卡洛技术模拟了新墨西哥州洛斯阿拉莫斯国家实验室提出的几种原子弹设计的引爆,这种方法逐步模拟复杂系统,绘制可能结果的概率分布。 冯诺依曼和大都会向洛斯阿拉莫斯的核科学家发送了 20,000 多张卡片,以通过弹头的爆炸来追踪模拟的中子。 此代码的后续版本今天仍在洛斯阿拉莫斯使用。 ——Thomas Haigh,ENIAC in Action: Making and Remaking the Modern Computer 的合著者
GRACE HOPPER 的编译器 (1952)
使计算机处理文字成为可能
当 Grace Hopper 在为一台早期的计算机编程时,她决定将编程语言植根于人类语言以简化过程。 第二次世界大战期间,霍珀加入了美国海军预备役。 她知道,就像她的军事上司一样,人们很难理解二进制代码。 如果编程语言可以是基于英语的,那么对于不是数学博士的人来说,这项工作就不会那么容易出错并且更容易理解。
有些人驳回了这个想法,但到 20 世纪 50 年代初,她设计了一个编译器,这是一组指令,可以将更易于理解的代码转换为机器可以直接处理的低级代码。 使用该工具,她和她的实验室开发了 FLOW-MATIC,这是第一种将英语单词纳入流程的编程语言。 -莫莉奥姆斯特德,石板
太空大战! (1961)
第一个分布式视频游戏(太空大战)
电子邮件的起源 (1965)
来吧,电子邮件来了!
阿波罗 11 号登月舱救援代码 (1969)
防止登月舱计算机在太空空间不足的代码
你好世界! (1972 年或更早)
为几代人打开编程之门的代码
当你坐下来学习一门新的编程语言时,教程要求你做的第一件事就是让计算机说“Hello, world!”。 也许最著名的早期示例来自贝尔实验室的“C—A 编程教程”。 该教程写于 1974 年,尽管在 1972 年的手册中也可以找到另一种更早的语言 B。
“你好世界!” 这是一种极好的教学方法。 这是一个小的、可完成的任务,让学生有成就感。 这是一个有助于说明不同编程语言之间差异的标准。 对于高级程序员来说,这也是一种快速简便的方法,可以确保在安装新环境后一切正常。 (有时程序员使用“time to 'hello world'”来比较语言和环境的速度。)也许最重要的是,“Hello, world!” 可以帮你打开编程之门,它告诉你这是新世界。 — Chris Noessel,IBM AI 设计主管。
空终止字符串 (1972)
计算史上最大的灾难性设计错误
1972 年完美世界代码灵族,丹尼斯·里奇 (Dennis Ritchie) 做出了一个重大决定,即用一种称为以空字符结尾的字符串的新语言来表示文本。 这个概念已经存在,但他将其写成一种他称之为 C 的新语言,这一决定至今仍伴随着我们。
编程语言可以通过两种主要方式来表示一段文本:一种具有固定的显式长度——“仅包含 10 个字符,不能再多了”,或者可以以 null 结尾——“这是一串字符,继续尝试,直到你看到零字节!”
这是 C 代码中一个非常常见的错误,当将一个长字符串复制到一个较短的字符串时,您会遇到结束溢出完美世界代码灵族,这会破坏恰好在附近的其他数据。 这就像在白板的边缘涂鸦。
除了使程序出现故障之外,还可以利用此类错误通过用特定的、精心制作的数据覆盖某些内容来改变程序的行为。 这些是缓冲区溢出攻击。 您听说过的几乎所有安全漏洞都始于 1988 年的莫里斯蠕虫病毒。
您必须在 C 中仔细编写代码以避免此类错误,但它们仍然很容易发生。 从路由器到“智能”灯泡,几乎所有现代语言都避开了以 null 结尾的字符串,但 C 和 C++ 仍然主导着语言世界。 所以现在,将近 50 年后,我们仍在“受苦”。 —Jamie Zawinski,Netscape 开发者和创始人
交易错误 (1982)
小数点错误造成巨大损失
1982 年初,温哥华证券交易所推出了最初定为 1000 点的指数。 两年之内,它减半了,这在 80 年代初的牛市中似乎是不可想象的。 一项调查表明,使用 floor() 而不是 round() 会导致索引计算错误。 此命令意味着该值将被直接截断,而不是四舍五入到小数点后三位。 (数字计算机必须具有有限的分辨率,因此需要四舍五入或直接关闭。)因此,如果索引计算为 532.7528,则将其存储为 532.752,而不是四舍五入为 532.753。 在每天数以千计的计算过程中,这个看似很小的差异——每次都必须四舍五入却没有四舍五入——造成了巨大的损失。 程序错误最终在 1983 年 11 月得到修复,当时该指数周五收于 500 点左右。 问题解决后,该股于周一重新开盘,指数突破 1,000 美元,收复了损失的价值。 —Lav Varshney,伊利诺伊大学香槟分校助理教授
THERAC-25 (1985-1987)
过度自信是致命的
当真相浮出水面时,各大媒体的头条都发出了机器现代化的警告。 “在这个复杂的时代,软件错误是致命的,”《洛杉矶时报》宣称。 一台用于治疗癌症的机器对几家医疗机构的六名患者进行了大量过量辐射,导致至少三人死亡。
研究人员发现 Therac-25 的代码可能会引入致命错误。 该机器提供低功率和高功率治疗,后者需要金属装置来过滤光束。 但由于软件的一个错误,操作员可能会在没有金属设备的情况下意外触发高功率模式。
Therac-25 被设计为 Therac-20 的“改进”,设计为万无一失,不需要外部安全检查。 结果:数起死亡事故归咎于过于自信的工程师,他们没有考虑到可能出现的错误。 ——莫莉奥姆斯特德
认知智能未来机器人接口API介绍
认知智能是计算机科学的一个分支,是智能科学发展的高级阶段。 它以人类认知系统为基础,以模仿人类核心能力为目标,以对信息的理解、存储和应用为研究方向。 以对感知信息和自然语言信息的深入理解为突破口,以交叉学科的理论体系为指导,形成新一代的理论、技术和应用系统技术科学。 认知智能的核心研究领域包括: 1.宇宙、信息与大脑的关系; 2. 人脑的结构、功能和机制; 3.哲学系、文科系、理科系; 4、认知整合、智慧整合、双脑(人脑与计算机)整合等核心系统。 认知智能分四步走: 1.认知宇宙世界。 支撑理论体系包括三体(宇宙、信息、大脑)理论、易道理论、本体论、本体论、认识论、智能整合、HNC等理论体系; 2.了解人脑的结构、功能和机制。 配套学科包括脑科学、心理学、逻辑学、情感学、生物学、化学等学科。 3、明确信息内涵的规章制度。 配套学科包括符号学、语言学、认知语言学、形式语言学等学科。 4、系统落地能力。 支持学科包括计算机科学、数学等学科。
接口申请官网地址:
·
接口地址(示例):
·
/Web/Bu 游戏 Java.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip
·
客户端消息的内容。
·
String msg = "你在做什么?";
·
api密钥参数。 这个apikey就是网站上申请的APIKEY
·
apikey = "";
·
//客户端ip,终端用户的唯一标识(可以是客户端的IP,也可以是游戏机号,也可以是微信号,也可以是,qq号等可以证明身份的唯一标识)
·
字符串 ip="";
·
//这里必须转换Encode。 转换为 GBK。
·
msg = URLEncoder.encode(msg, "GBK");
·
三个参数都是小写
·
msg 参数是传输的对话内容。
·
msg参数要编码成gbk,否则会乱码。
·
接口具体代码:
·
包 ai.nlp.jiekou.test;
·
导入 java.io.ByteArrayOutputStream;
·
导入java.io.IOException;
·
导入 java.io.InputStream;
·
导入 java.io.UnsupportedEncodingException;
·
导入.HttpURLConnection;
·
导入.URL;
·
导入.URLEncoder;
·
import ai.nlp.util.changliang.ChangLiangZi;
·
公共类 ApiTest {
·
/**
·
* 获取返回数据的请求
·
* @param urlStr
·
* @返回
·
*/
·
私有静态字符串 opUrl(字符串 urlStr)
·
{
·
网址 url = null;
·