删除错误提交的bit 历史

The term is more literal than you think.

该术语比您想像的更为直截了当。

Safe to say all programmers are familiar with bugs. By definition, a bug in programming is described as:

可以肯定地说,所有程序员都熟悉错误。 根据定义,编程中的错误描述为:

An error, flaw or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways — Wikipedia.

计算机程序或系统中的错误,瑕疵或故障,导致其产生不正确或意外的结果,或行为异常(Wikipedia)。

Chances are you’ve played a part in unintentionally sneaking one into your code, or have debugged someone else’s to fix it. After all, a bug can be anything from an infinite loop to a division by zero to using an uninitialised variable! These examples go to show how just a simple overlook could mean unwanted behaviours in your code.

您可能是在无意间将代码潜入您的代码中扮演了角色,或者调试了其他人来修复它。 毕竟,错误可以是无限循环,除以零到使用未初始化变量的任何东西! 这些示例说明了简单的忽略可能意味着代码中的不良行为。

On some occasions, it’s hard to pinpoint the exact root cause of a bug, especially as some will break unrelated things in your code. These false flags often lead us to think something else is causing it. Most editors, however, make it extremely easy for developers to debug their code — allowing them to run their solution in debug mode. Visual Studio Code embraces the term with a little bug icon on the button responsible for loading up debug mode. GitHub includes the term as one of its predefined labels when raising an issue. And the word is tossed around now and again between development teams on stand-ups. But ever wondered where the term came from? It goes back a lot further than you think!

在某些情况下,很难查明错误的确切原因,尤其是因为某些错误会破坏代码中无关的内容。 这些错误的标志常常使我们认为是其他原因导致了它。 但是,大多数编辑器使开发人员极其容易地调试代码,从而使他们可以在调试模式下运行其解决方案。 Visual Studio Code包含该术语,并在按钮上带有一个负责加载调试模式的小错误图标。 GitHub在引发问题时将其作为其预定义标签之一。 这个词不时地在开发团队之间站起来讨论。 但是,您是否想知道该术语来自何处? 它比您想的要远得多!

机械故障 (Mechanical Malfunctions)

The earliest recorded mention of a bug in this context predates programming and even computers. It is thought to have first been used in the 1870s to describe mechanical malfunctions in hardware engineering. Thomas Edison described them as “little faults and difficulties” in a letter to his associate in 1878 when describing his inventions.

在这种情况下,最早的记录提到的错误早于编程甚至计算机。 人们认为它最早是在1870年代用来描述硬件工程中的机械故障。 托马斯·爱迪生(Thomas Edison)在1878年写给他的同事的信中描述他们的发明时将它们描述为“小缺点和困难”。

Since then pinball games were advertised as “bug-free”, problems with military gear were described as bugs, and film producers started adding the term to their scripts. The term became increasingly popular to describe any unwanted behaviour in mechanical inventions and day to day machinery.

从那时起, 弹球游戏被宣传为“无漏洞”,军事装备的问题被描述为漏洞,电影制片人开始在其剧本中添加该术语。 该术语越来越受欢迎,用于描述机械发明和日常机械中的任何不良行为。

When it came to software programming, it was Ada Lovelace who first wrote about the possibility of errors residing in solutions. She expressed her concerns about the possibility of Charles Babbage’s Analytical Engine — a general-purpose computer — receiving the wrong instructions from the inserted program cards. In other words — carrying out orders different to the ones expected — otherwise known as a bug.

在软件编程方面,Ada Lovelace首先写了解决方案中存在错误的可能性。 她对Charles Babbage的分析引擎(通用计算机)是否从插入的程序卡中接收了错误的指令表示担忧。 换句话说,执行与预期的命令不同的命令,否则称为错误。

About 100 years later, the most peculiar encounter ensured that it would be the first people remembered when accounting for the term’s origin.

大约100年后,最奇特的相遇确保了它成为第一个被记住该术语起源的人。

一个实际的错误 (An Actual Bug)

I have to admit, I was amused to read that an encounter with an actual bug in the context of computing was recorded in history. Operators of the electronic computer Mark II — worked on by renowned computer scientist Grace Hopper in the Harvard Faculty at the Computation Laboratory — found a moth trapped in one of the machine’s relays, causing it to malfunction.

我不得不承认,我很高兴地读到,历史上记录了一次与计算环境中的实际错误的遭遇 。 电子计算机Mark II的操作员(由计算机实验室的哈佛大学著名计算机科学家Grace Hopper从事研究)发现一只飞蛾被困在机器的一个继电器中,导致其故障。

Source — Wikipedia
来源—维基百科

After carefully removing the insect, they taped it onto a page in the machine’s log along with a comment that read “first actual case of bug being found”.

在仔细清除昆虫后,他们将其与注释“记录在案的第一个实际案例”一起贴在机器日志的页面上。

从昆虫到灾难 (From Insects to Disasters)

On a serious note, software bugs can have serious consequences if not found and flushed out. Here are a few of the most noted disasters due to software bugs in history.

值得一提的是,如果未发现并清除软件错误,可能会造成严重后果。 由于历史上的软件错误,以下是一些最著名的灾难。

火星气候轨道器 (Mars Climate Orbiter)

NASA lost its Mars Climate Orbiter spacecraft — launched in 1998 to study the Martian climate — due to inconsistencies between the systems of measurement used. The navigation team who controlled the probe from Earth used parameters in English units, whilst the spacecraft software used the metric system. This failure to convert the units into metric ultimately resulted in a miscalculation in the Orbiter’s trajectory that cost NASA millions of dollars.

由于所使用的测量系统之间的不一致,NASA于1998年发射了火星气候轨道飞行器,以研究火星的气候。 从地球控制探测器的导航团队使用英文单位的参数,而航天器软件则使用公制。 未能将单位转换为公制最终导致了轨道器轨迹的错误计算,这使NASA损失了数百万美元。

Therac-25 (Therac-25)

In some cases, these bugs can be fatal to its machine’s users. This was the case with the Therac-25 — a computer-controlled radiation therapy developed in 1982. Due to programming errors, the machine at times gave its cancer patients radiation doses that were 100 times greater than normal resulting in serious injury. Patients showed radiation burns several days later, along with symptoms of radiation poisoning. Three of those injured patients later died as a result of the overdose.

在某些情况下,这些错误可能会对计算机的用户致命。 Therac-25是这种情况,这是1982年开发的一种计算机控制的放射疗法。由于编程错误,该机器有时向癌症患者提供的放射剂量比正常人大100倍,导致严重伤害。 几天后,患者表现出放射灼伤,并伴有放射中毒症状。 那些受伤的病人中有3人后来因服用过量而死亡。

A study from the universities of Washington and California concluded that overconfidence in the software was a contributing factor, along with what they presumed to be less-than-acceptable-software-engineering practices.

华盛顿和加利福尼亚大学的一项研究得出的结论是,对软件的过度自信是造成这种情况的一个因素,而且它们被认为是不可接受的软件工程实践。

骑士资本集团股票交易 (Knight Capital Group Stock Trading)

In 2012, Knight Capital Group — an American global financial services company that ceased operations in 2013 — incurred a loss of $440 million in half an hour after a software bug on their system started trading about 150 stocks erratically. Knight was later on acquired by rival Getco LLC the summer after the event occurred.

2012年,骑士资本集团(Knight Capital Group)–美国一家全球金融服务公司,于2013年停止运营–在其系统上的软件漏洞开始不规律地交易约150只股票后的半小时内,亏损了4.4亿美元。 事发后的夏天,骑士后来被竞争对手Getco LLC收购。

苹果地图 (Apple Maps)

Apple Maps was initially released in September 2012 with the idea of replacing Google Maps as the default mapping app for Apple’s OS. The app, however, was immediately deemed as unreliable by users all over the world reporting incorrect fundamental location data. Reports included the Statue of Liberty missing, a Florida supermarket mislabeled as a hospital, and Hong Kong showing as several miles from Hong Kong Island.

Apple Maps最初于2012年9月发布,其想法是取代Google Maps作为Apple操作系统的默认地图绘制应用程序。 但是,该应用程序立即被全世界报告错误的基本位置数据的用户视为不可靠。 报告包括自由女神像失踪,佛罗里达州一家超市被错误地标记为医院,以及香港距离香港岛数英里。

代码vs开发人员vs流程 (Code vs Developer vs Processes)

Who is held accountable for bugs? Much of the debate around this topic falls with the notion that no software can ever be completely bug-free. Some argue that the term ‘bug’ divorces the idea that it’s man-made. It is also worth mentioning that bugs can arise from not only code specific errors, but from design flaws and incorrect processes. The London Ambulance Service (LAS) Computerised Dispatch System (CAD) is a clear example of this — where its project management was also frowned upon — therefore implicating multiple parties involved.

谁对错误负责? 关于该主题的许多争论都归因于以下观点:没有软件可以完全没有错误。 有人认为“虫子”一词与人为的观念相脱离。 还值得一提的是,错误不仅可能源于特定于代码的错误,还可能源于设计缺陷和不正确的过程。 伦敦救护车服务(LAS)的计算机调度系统(CAD)就是一个明显的例子,该项目的项目管理也遭到了反对,因此牵涉到多个相关方。

摘要 (Summary)

The term bug, in this context, is found to have first been mentioned concerning electronic engineering in the 1800s, with Ada Lovelace expressing concerns that software would not be exempt. It seems that bugs were causing havoc even then, including a physical bug found inside the relay of an electronic computer. In some cases, they can be costly and the consequences irreversible, for both companies and their consumers.

在这种情况下,发现“漏洞”一词最早是在1800年代涉及电子工程的,而Ada Lovelace则表示担心软件不会被豁免。 即使在那时,错误似乎仍在造成破坏,包括在电子计算机的继电器内部发现的物理错误。 在某些情况下,对于公司及其消费者而言,它们可能代价高昂且后果不可逆转。

Although undoubtedly a part of a software developer’s life, much can be done nowadays to catch them early on in the process.

尽管无疑是软件开发人员生活的一部分,但如今可以做很多事情来尽早地将其捕获。

More often than not, each debugging tool will be aimed at primarily one or two specific languages. Below are a few I found along with their respective languages:

通常,每种调试工具主要针对一种或两种特定的语言。 以下是我发现的几种语言及其各自的语言:

  • Rookout — used to debug JVM, Node.JS, and Python code. Remote debugging is available with Rookout, as well as the ability to debug both staging and production applications.

    淘汰 —用于调试JVM,Node.JS和Python代码。 Rookout提供了远程调试功能,还具有调试登台和生产应用程序的功能。

  • Zend Studio for code editing, testing, and debugging of PHP solutions.

    Zend Studio的 -代码编辑,测试,和PHP解决方案的调试。

  • Visual Studio & Visual Studio Code useful for debugging .NET solutions, with the latter offering access to a remote development extension pack (useful for helping a colleague debug their code from afar!).

    Visual Studio Visual Studio代码 -对调试.NET解决方案很有用,后者提供对远程开发扩展包的访问(可用于帮助同事从远处调试他们的代码!)。

  • Chrome DevTools a well-known developer tool for sure! Chrome DevTools is extremely useful for debugging CSS and JavaScript. It also allows for the prototyping of different styles before applying them to your source code. If Chrome isn’t your thing, Firefox also has its own developer tools.

    Chrome的DevTools -肯定一知名开发商的工具! Chrome DevTools对于调试CSS和JavaScript极为有用。 它还允许在将不同样式应用于源代码之前进行原型制作。 如果您不是Chrome,那么Firefox也有自己的开发人员工具。

  • GDB an extremely versatile debugger supporting C, C++, Go, Pascal, Rust & more.

    GDB 一种极其通用的调试器,支持C,C ++,Go,Pascal,Rust等。

  • Eclipse a renowned IDE for Java development also supporting C#, Python, Ruby, and PHP.

    Eclipse Java开发的著名IDE,还支持C#,Python,Ruby和PHP。

  • React Native Debugger for, as the name may suggest, all of your React Native debugging!

    React Native Debugger 顾名思义,用于您的所有React Native调试!

And these are just a handful of all of the ones out there, have a browse, pick your favourite and go bug-free!

这些只是其中所有工具中的少数几个,可以浏览,选择自己喜欢的并且无错误!

翻译自: https://medium.com/swlh/the-history-behind-software-bugs-3a26e105e624

删除错误提交的bit 历史


http://www.taodudu.cc/news/show-3078843.html

相关文章:

  • mysql中的BIT_LENGTH和LENGTH以及CHAR_LENGTH的区别
  • mysql超市表格_py mysql结合面向对象,实现类似超市导购机器的功能【1.初始化表数据】...
  • 基于GEC6818的个人超市购物系统
  • (二)买基金的成本知识
  • 花呗套现买基金,90后韭菜有多拼?
  • 小白买基金做好三件事
  • 买基金注意事项
  • 如果手里有现金,是提前还房贷还是买基金?
  • 程序猿学习买卖基金
  • Python 网络爬虫:Selenium 好买基金网
  • (一)买基金的基础知识
  • 机器学习部分书籍推荐
  • 机器学习----(Machine Learning)深度学习(Deep Learning)资料(Chapter 1)
  • WEB系列(四)_uploadfile笔记
  • pyDes 库 DES 与 3DES 加解密
  • matlab工具箱中英对照,MATLABa工具包中英对照
  • c语言关键词中英翻译机编程,课程设计--C语言关键字中英翻译机
  • 非常简单的中英互译在线翻译操作方法
  • 正则中英混合
  • php 字符串中英文混合截取,PHP截取中英混合的字符串
  • 用c语言文件编写关键字中英翻译机,c语言关键字中英翻译机,要求创建文件搜索...
  • maya中英文对照_最全Maya菜单中英对照表
  • c语言关键词中英翻译机编程,C语言关键字中英翻译机.doc
  • ajax中英文切换,vue-i18n中英切换插件使用
  • SpringMVC实现中英文切换
  • 计算机中英文打字文章,中英文混合文章
  • win10任务栏显示“中/英“语言标识
  • 题解 CF186A 【Comparing Strings】
  • Kubernetes基础:Deployments从beta版本到v1的变化对应方法
  • 知识点 - 多项式插值法

删除错误提交的bit 历史_软件错误的历史相关推荐

  1. 回顾历史_回顾美联储历史,美国货币政策是如何演变的?

    要闻 回顾美联储历史,美国货币政策是如何演变的? 2019年10月22日 11:18:27 智通财经网 本文来自 "期货日报". 作为美国的中央银行,美联储成立以来所制定的货币政策 ...

  2. github删除错误的commit并保留之前的提交

    github删除错误的commit并保留之前的提交 git 版本控制工具给我们带来了许多便利,使我们多人合作还有历史版本带来了便利 这几天在提交github中提交了错误的代码 上去,这时已经同步到远程 ...

  3. 彻底删除git中的较大文件(包括历史提交记录)

    场景 适用于从一个git项目中,将体积较大的资源彻底从git中删除,包括历史提交记录. 如果仅仅在目录中删除一个文件是不够的,只要在提交记录中有这个文件,那么 .git 中就会有这个文件的信息. 用 ...

  4. 彻底清除错误提交的SVN版本

    本文主要介绍通过svnadmin的转存(dump)和恢复(load)命令解决SVN错误提交版本的清除问题.主要包括以下几个方面: svnadmin命令 备份并记录错误的版本号 转储版本仓库 创建新的版 ...

  5. Git 错误提交后该如何回滚操作

    1. Git 架构 Workspace:工作区(当前用户操作修改的区域) Index / Stage:暂存区 (add 后的区域) Repository:仓库区或本地仓库(commit 后的区域) R ...

  6. 一个事务中 可以查询自己未提交的数据吗_数据库事务的方方面面

    事务 是关系型数据的一个重要特性,但很少有人能对事务有全面性的了解,这篇文章就把事务的方方面面讲给你. 事务的概念 什么是事务 数据库事务(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的 ...

  7. lotus 扇区一致性检测 删除错误扇区

    lotus 扇区一致性检测 1,POST提交失败 2,检测扇区 3,扇区188已经上链 3.1 查看扇区故障 4,指定扇区检测 1,POST提交失败 ERROR storageminer storag ...

  8. git错误提交怎么整?强行回滚最为致命

    首先将本地分支重置到你错误提交前的分支 git reset --hard 要重置到的commitId 其次强制提交本地的代码到远程 git push origin master --force 如果发 ...

  9. 【指标统计】删除错误遥信

    查找指定时间范围内的错误遥信 select occur_time, milli_second, alarm_type, result, content from scada_event_yx wher ...

最新文章

  1. 每日一皮:你有没有过 Bug 变 Feature 的高光时刻?
  2. 有关递归的三道算法题总结
  3. 【bzoj1179】 Apio2009—Atm
  4. Leetcode 剑指 Offer 04. 二维数组中的查找 (每日一题 20210727)
  5. 对计算机描述错误的是什么意思,下列对计算机特点的描述中错误的是:________。...
  6. ASP.NET Core Web 资源打包与压缩
  7. magento去除子分类的url地址中带有父分类的url key
  8. 【Python】Matplotlib绘制可爱机器人
  9. docker数据圈_《Docker从入门到跑路》之镜像和容器的基本操作
  10. 【UNITY3D 游戏开发之八】UNITY编译到IPHONE运行 COLLIDER 无法正常触发事件解决方案...
  11. 基于RFM模型的Kmeans聚类算法实现
  12. 中国创新“先锋”企业系列报道
  13. 三维扫描仪 XTOM-MATRIX
  14. 你的简历能帮你争取到面试机会吗?
  15. C语言打印杨辉三角的多种方法
  16. JMF(java media framework)综述
  17. 微信消息能在服务器上彻底清除,快速彻底删除微信消息的方法如此简单 很多人都用错了方法!...
  18. 从0开始学爬虫7之BeautifulSoup模块的简单介绍
  19. selenium的基本操作
  20. [arduino]ESP8266配置连接IoT阿里云平台(arduino D1 mini)

热门文章

  1. 有限状态机详解(转载)
  2. 这几天,聊到的最多的就是互通有无
  3. 30 款 IDEA 宝贝插件
  4. 中国大学985/211表、九校联盟C9
  5. 正睿多校联盟训练Week6
  6. VoIP通话-基于SIP协议的Asterisk(零)-Demo
  7. linux android V4l2 的一些精品文章连接
  8. data augment
  9. 前端----html---第一天
  10. 蓝牙(七)L2CAP层协议解析