世界上最完美的两个软件,太厉害了!

白平衡算法简单原理以及灰色世界、完美反射实现 这篇文章是一次课程作业,发到网上以供参考,由于时间有点紧张导致有些部分不够详尽以及有些方法没有实现,之后如果有机会再进行补充。 作业要求 以下两题任选一道完成,自选合适的测试图象,提交代码、实验结果和作业报告。 编程实现一种色调转移或饱和度调整算法。 使用彩色图像处理技术实现一种照片编辑算法。例如:白平衡/HDR多图融合/彩色图像风格化,等等…… ​ 本次作业中我对基本的白平衡算法进行了... 阅读详情

今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致,另外一个则体现了程序员个体能力的巅峰。

01

航天飞机飞控软件

先来说第一个,航天飞机飞行控制软件,就是下图这个大家伙。

1489657d122c8c5fff9570a072f4151c.png

航天飞机重达120吨,还携带着2000吨的燃料。

它有四台硬件相同,软件也相同的计算机对发射过程进行精准控制,从几千个传感器中提取信息,每秒做出几百个决定,并且对每个决定进行投票。

第五台计算机,则运行着不同的软件,随时待命,准备替换其他发生故障的计算机。

这些计算机要确定什么时候对主发动机点火,什么时候下令固体火箭助推器点火,火箭姿态控制....

每次发射,软件都控制着价值40亿美元的设备,六名航天员的生命,以及国家的梦想。

这个软件不能崩溃,不能重启,最小的误差都不允许:一个三分之二秒的计时错误就会使航天飞机偏离航线近5公里。

洛克希德马丁公司的航天飞机小组实现了目标:软件几乎没有错误,接近完美。

软件的最后三个版本,每个版本(42万行代码)只有一个Bug。

最后的11个版本一共有17个错误,同等复杂度的商业程序有5000个。

这样的软件是如何炼成的呢?

答案是极为苛刻软件流程。

洛克希德马丁公司的航天飞机软件小组有260名员工,这些人创造了一种完全不同的开发文化。

没有超级明星程序员,开发软件的整个流程都是有意设计的,不依赖任何特定的人。

这个流程使得他们过上正常的生活,满足最后期限,交付完全符合其承诺的软件。

这个流程包含几个要点:

1. 软件的质量取决于软件的计划

在航天飞机软件开发小组,软件开发周期中有三分之一的时间不写代码,而是和NASA一起用来讨论需求:软件应该做什么事情。

即使是最微小的细节也要达成一致。不是口头达成一致,而是写下来,文档化,形成规范,非常专业和精确。

未经双方的同意,规范中的任何内容都不会更改。

没有良好定义的规范,程序员不会改任何一行代码。

例如让航天飞机使用GPS导航,这一变化仅涉及6366行代码,占程序总量的1.5%, 但是相关的文档长达2500页,涵盖了各种各样的条件,分支,几乎就是伪代码了。

而航天飞机系统的软件,总文档足足有30卷,40000页!

2. 两个百科全书式的数据库

一个是代码历史的数据库,每一行代码都有注释,显示每次的更改时间,更改原因,更改目的,有哪些文档详细说明了更改。

对于代码发生的一切都记录在这里,每一行代码的“祖谱”都可以立刻提供给每个人。

第二个是错误数据库,记录了软件在编写和运行时发生的每一个错误,可以追溯到近20年前。

每个错误都会记录下它被发现的时间,是谁发现了它,当时正在发生什么活动(测试,训练,飞行),错误是如何引入的,为什么逃过了设计阶段,开发阶段,测试阶段的严格审查.....

由于积累了如此多的数据,以至于他们开发了一个代码模型,能预测某个版本中可能有多少错误。

如果开发人员和测试人员发现的Bug太少,大家会重复流程,努力使得现实和预测相匹配。

3.不止要修复错误,要修复任何引入错误的东西

如果软件存在缺陷,那么编写它的方式一定存在问题。

在计划阶段没有发现的Bug,是如何逃过检查的?检查流程是否出了问题,是不是要在checklist上增加一项检查?

重要的是,不要将错误归咎于个人。流程要承担责任---启动一个分析的流程来发现Bug的原因。

航天飞机软件开发小组的流程是如此强大,不仅仅通过了SEI CMM5的认证,而且SEI的不少标准就来自于这个小组的各种实践。

洛克希德马丁开发了近乎完美的软件,大家肯定会想到一个问题:这种开发方式会不会扼杀创造力?

他们的回答是:会,因为大家必须按照手册上规定的流程去做,并且时时刻刻都有人在背后监督。

人们必须将创造力用于改变流程,而不是改变软件。

02

排版软件TEX

经典巨著《计算机程序设计的艺术》在程序员界可谓是无人不知,无人不晓了。

06eee0ab2e97ddb0cab38e62f5fc223c.jpeg

1973年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”, 1974年美国计算机学会就“迫不及待”的把计算机界的最高奖图灵奖授予高德纳。

此时高德纳仅仅36岁 !只靠一套还没有完成的书就获得ACM图灵奖,不但是前无古人,估计也后无来者了。

然而令人大跌眼镜的是, 拿到图灵奖以后, 高德纳宣布暂停写作, 理由竟然是现有的计算机排版系统太差,破坏了书的美感 !然后单枪匹马开发出了革命性的排版系统TEX , TEX至今仍是全球学术排版的不二之选。

TEX功能强大,几乎无懈可击,其版本号也很有意思,不是数字(3.0, 3.1, 3.2....) 也不是年份(Windows 95, 98, 2000...),而是不断逼近的圆周率 (3.1415926...) ,这从侧面反映了软件几近完美,不需要做改进了。

高德纳曾表示“最后一次升级是(于我过世后)将版本数改为 π,那时任何余下的漏洞将被看作程序的功能!

有趣的是高纳德为此还设置了奖金,谁能从TEX 发现第一个Bug ,奖励2.56美元,然后每年翻一倍,5.12,10.24......

作为算法的大师,不可能不知道指数增长的可怕性,但高德纳对自己的代码质量非常有信心,事实上,当奖金达到327.68美元以后,基本上就没什么Bug报出来了。 

那些找到Bug 的人收到高德纳签名的支票以后也不去兑换, 而是作为珍品收藏了 :-)

高德纳编程能力之强可以说是碾压硅谷的所有程序员,面向对象的发明人Alan Kay(2003年图灵奖)这么说过:

60年代末,当我在斯坦福从事AI项目时,每个感恩节我们都会和硅谷的编程高手们举行编程竞赛,McCarthy(人工智能之父,1971年获图灵奖)出题, 奖品是好像是一只火鸡。

高德纳参与的那一年,把我们都给虐了, 他的代码无论是程序执行和算法执行都是最快的,并且他用的是一台最慢的批处理机器!

我们问高德纳:“你是怎么做到的?”

他说:“当我学习编程时,如果每天有五分钟的时间使用机器,就高兴得不得了, 所以必须要让程序一次运行成功,没有错误,算法设计达到最佳。”

(完)

1f304ffe6b289f4077bcc0432af372f2.png

4b9e334d9709b9695ad282e9918fd030.png

2947657c73bc592bbda83e55bb58f888.png

bbc3360aa19f6114351a7b0ca165bbad.png

世界最牛B的测试软件 HA_GPUZ-034_CZ.EXE世界最牛B的测试软件世界最牛B的测试软件世界最牛B的测试软件世界最牛B的测试软件 立即下载

相关推荐

别再傻傻全盘暴力破解了!Passware Kit Forensic 2019.4.1 已知部分密码的精准爆破实战(附RAR案例)

本文详细介绍了如何利用Passware Kit Forensic的模式匹配功能,实现高效精准的密码破解,避免全盘暴力破解的资源浪费。通过RAR加密破解实战案例,展示了模式匹配技术的核心优势与操作步骤,帮助安全工程师大幅提升破解效率。

weixin_42524171的博客 409

世界上并没有完美的程序

“世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。”引自《深入理解Java虚拟机》这本书的第一章节的第一段落。 我们先来诠释一下这句话,完美的程序——远大愿景,并不因此而沮丧——乐观包容,追求完美——行动派的宣言。这句话我个人认为在某一层次上是对Java的完全解读。 JDK(Java语言、Java虚拟机、Java Api类库):支持java程序开发的最小...

qq_30051265的博客 1551

汽车诊断服务(UDS——0x11服务解析)

ECU复位服务(0x11)详解:该服务支持硬件/钥匙开关/软件三种复位类型(0x01-0x03),复位前需发送肯定响应。请求格式为11+子功能,响应含51+子功能。典型应用需配合安全访问流程,测试时需监控CAN总线通信及DTC状态。复位后ECU将返回默认会话,期间不处理任何诊断请求。服务在编程会话且安全解锁后执行,硬复位会初始化存储数据。

从事汽车行业 980

俄罗斯人开发的 8 个世界级软件!你知道几个?

戳下方名片,关注并星标!回复“1024”获取2TB学习资源!????体系化学习:运维工程师打怪升级进阶之路 4.0— 特色专栏—MySQL/PostgreSQL/MongoDBElasticSearch/Hadoop/RedisKubernetes/Docker/DevOpsKafka/RabbitMQ/Zookeeper监控平台/应用与服务/集群管理N...

民工哥的博客 5259

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含避坑指南)

本文详细指导如何使用YonBuilder for NCC搭建NC Cloud 2021.11开发环境,涵盖硬件要求、软件安装、YonBuilder配置及常见故障排除。特别提供避坑指南,帮助开发者快速上手NCC开发,确保环境配置的原子化分解和开发思维的体系化建立。

weixin_42523326的博客 347

DINOv3实战指南:如何利用零样本视觉模型革新工业质检

本文详细介绍了如何利用DINOv3零样本视觉模型革新工业质检流程。通过无需标注数据的自监督学习技术,DINOv3能快速部署高精度检测系统,显著降低成本和提升效率。文章涵盖模型选型、数据准备、实时检测优化及典型行业解决方案,为工业质检提供革命性AI实践指南。

ansible6ops的博客 125

Jvm笔记

Jvm笔记 世界上并没有完美的程序,但我们并不因此而沮丧,因为程序本来就是一个不断追求完美的过程 概述 ​ Java不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境。 ​ Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想;它提供了一种相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏。 第二章 Java内存区

weixin_51245787的博客 5906

【YOLO目标检测全栈实战】98 YOLO模型在低光照环境下的自适应增强策略

你有没有遇到过这种情况?深夜加班调试产线检测模型,车间灯光昏暗,摄像头采集的图片黑乎乎一片,YOLO模型直接“罢工”——漏检率飙升到40%以上。上个月我在一个汽车零部件质检项目里就栽了跟头:白天模型跑得飞起,mAP@0.5达到0.92,可一到夜班,同样的产线、同样的零件,mAP直接掉到0.63。客户拍着桌子问我:“你这模型怎么还分白天黑夜?”

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 287

世界上最完美的程序

世界上最完美的程序,就是HelloWorld了。

yajie1010的专栏 451

131、高通骁龙影像平台总览:Spectra ISP 各代架构演进与特性对比

摘要:本文深入分析了高通骁龙Spectra ISP从250到780代的架构演进与技术痛点,揭示了各代关键改进与隐藏问题。重点剖析了双ISP带宽分配、AI ISP黑盒决策、温度控制等实战问题,并给出具体解决方案(如寄存器配置、QoS调整等)。文章强调工程师需平衡带宽、功耗与画质的三角关系,建议调试时先关闭AI模块建立基线,关注统计引擎配置,并建立温度监控机制。最后指出理解架构局限比追求完美设计更重要,需要针对不同场景找到合适的妥协方案。(148字)

sundong_81的博客 208

AUTOSAR从入门到精通-【应用实战篇】车载HMI-ADAS

ADAS是高级驾驶辅助系统(Advanced Driving Assistance System)简称ADAS。ADAS高级驾驶辅助系统是利用安装于车上的各式各样的传感器, 在第一时间收集车内外的环境数据, 进行静、动态物体的辨识、侦测与追踪等技术上的处理, 从而能够让驾驶者在最快的时间察觉可能发生的危险, 以引起注意和提高安全性的主动安全技术。

lin_xiu的博客 1436

完美世界手游如何在电脑上玩 完美世界手游模拟器教程

十三年经典历久弥新,青春记忆永不落幕.《完美世界手游》由腾讯与完美世界首次合作,东西方融合震撼奇幻风格,次世代标准画质,完美还原端游经典,十三年的积累,只为这一刻的惊艳亮相。接下来,和小编一起看下 完美世界手游模拟器教程吧! 一、完美世界手游模拟器教程 1、首先呢,我们要做好玩前的准备工作,在电脑上下一个安卓模拟器。因为要想在电脑上玩手游,就必须在电脑上装个安卓模拟器,这个是电脑玩手游的前...

lin000001的博客 8364

Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图

今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于

知无涯 4971

白平衡算法模型(灰度世界、完美反射、自适应自动白平衡)

目录 1、灰度世界算法模型 2、完美反射模型 3、自适应自动白平衡算法 该部分的白平衡算法主要是基于一定假设基础上的算法,主要有灰度世界算法模型、完美反射算法模型以及自适应自动白平衡算法模型,该类算法原理比较简单,方便实现,但是当假设不成立的话,方法的效果并不好。 1、灰度世界算法模型 如果一副图像颜色足够丰富的话,那么在已知经典光源下的R、G、B三通道的均值应该等于相等,等于一个“灰色”值,这个灰色值是已知的,通过统计未知光源下的R、G、B三...

ISP行业的忠实粉丝 6098

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux服务端 完美世界 下载,完美世界私服教程完美服务端关于TWGM登陆问题解决...

完美世界私服教程完美服务端关于TWGM登陆问题解决更新时间:2012-07-19 03:17文章作者:浏览次数: 次2.如果没看过,恩,那么...对照那个帖子里的第3部分.把dbserver修改成明码IP把web用户,就是username修改为root把密码,就是password修改为MYSQL的root用户密码为什么要这样呢?因为我是保留原始设置,使用的web用户.有些朋友可能创建的web用户根...

weixin_42584758的博客 4491

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【求职】完美世界 C++方向面经

完美世界 C++方向面经 第一篇 **一面 2017-4-28 ** 1、聊项目,问 APP 是自己做的 demo 还是和公司对接的。问负责什么部分,做了什么工 作 2、是否有做过渲染的工作?有没自己做过小游戏 3、玩过什么游戏?聊了一点游戏方面的经验 4、如果求一个 32 位整数中二进制 1 的个数。又问时间复杂度 5、编程之美的水王问题。找到数组中出现次数超过等于一半的那个 ID。他问那等于一半的 怎么办 6、25 匹马求最快的 5 匹马,有 5 个赛道 7、连连看问题,如何判断两个相同图片可以消除掉

瑞新の博客:bennyrhys 3587

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码)

经典白平衡算法(AWB)(灰度世界法和完美反射法MATLAB完整代码) 一、灰度世界法 %% %灰度世界法 RGB=imread(‘barnimages_alster_08.jpg’); R=RGB(:,:,1);G=RGB(:,:,2);B=RGB(:,:,3); R1=mean(mean®);G1=mean(mean(G));B1=mean(mean(B)); g=(R1+G1+B1)/3; ...

ISP行业的忠实粉丝 4902

这些软件太强了,Mac必装!尤其程序员!

2017 年的时候,我花了将近 2 万块买了一台 27 寸的 iMac,但刚入手的时候,觉得真特么不习惯啊,好多 Windows 上好用的软件 APP Store 上都没有! 我老婆三番五次调侃我浪费钱,还不如买台联想台式机,我真的生气了啊。 我忍着忍着,同时尽最大的可能发现着,于是越来越多好用的软件便走进了我的视野,安装在了我的 iMac 上,有一种爱上了的感觉。今天我就来推荐 10 款不错的 ...

沉默王二 2万+

完美世界国服服务器优化太差了,完美世界国服怎么回事?

2009-05-07本人玩过国际版,感觉还是完美世界更适合我,在这里提几个问题,(1),完美世界跟国际版在玩法上有什么区别,个个职业加点有什么区别.我打算练MG/WX/YJ三个选一个,.(2)不知道在完美世界里YJ有凤凰和大力吗? 还有听说完美世界里FS好像很强,而且不像国际里那么花钱.(3)地图里NPC跟怪的分布是不是都一样,任务是不是全相同(像在国际里能花钱买任务的除外),(4)完美世界...

weixin_39550587的博客 1082

完美世界服务端linux,完美世界服务端视频架设教程

完美世界服务端视频架设教程完美世界服务端视频架设教程系统运行库:libtask.tar.gzcompat-libstdc++-33-3.2.3-61.i386.rpmpcre-7.0-2.i386.rpm (一般不用装)JASDK:java_ee_sdk-5_03-linux.bincompat-libstdc++-33-3.2.3-61.i386.rpm(JASDK装不了,装这个在装JASDK)...

weixin_34778803的博客 3607

摄影小白必看:3种白平衡算法实战对比(灰度世界 vs 完美反射 vs 自适应)

本文对比了三种主流白平衡算法(灰度世界、完美反射、自适应自动白平衡)的核心原理与实战表现,帮助摄影新手解决色彩偏差问题。通过Python代码演示和典型场景测试,详细分析各算法的适用条件与优缺点,提供选型建议和性能优化技巧,助力提升照片色彩还原准确率。

jwt8token的博客 931

太吾绘卷游戏攻略

摘要: 本攻略以太吾绘卷人物创建到人物死亡的顺序介绍了游戏的基本机制与玩法,旨在帮助初次体验太吾绘卷的玩家迅速融入游戏谱写属于自己的江湖绘卷. 关键词: 太吾绘卷 游戏机制 基本玩法 游戏攻略 《太吾绘卷》是一款以神话和武侠为题材的独立游戏。玩家将扮演“太吾氏传人”,在以古代中国为背景的架空世界中,通过一代又一代传人的努力和牺牲,最终击败强大的宿敌,决定人世的命运。 游戏采取了类似沙盒游戏的...

天心天地生的博客 6万+

洪恩软件进军网游产业 池宇峰揭密完美世界

洪恩软件进军网游产业 池宇峰揭密完美世界 http://www.sina.com.cn 2005年03月07日 13:15 新浪游戏      刘姣  国内知名教育软件公司洪恩公司(http://www.hongen.com)日前正式宣布进军网络游戏领域,一石激起千层浪,在游戏界乃至软件业都引起了极大反响。新浪游戏近日走访洪恩公司,对其进军游戏的初衷、以及近期将力推的网络游戏《完美世界》(其官方网

1277

利用假期时间,感受下世界上最伟大的两个公式~

相信很多读者朋友,此时此刻,已经与家人团聚,享受天伦之乐。相信也有一些关注bee君的朋友,也会很快回家过年与家人团聚。我们因这个平台在一起,也一起正在享受这样的幸福时刻!大家都忙碌一年,...

算法channel 238

完美世界手游服务器维护,完美世界手游更新失败_完美世界手游更新失败解决办法_玩游戏网...

《完美世界》手游新区什么时候开《完美世界》手游很多玩家是进入不了老区的,或者说进入老区以后也是不占优势的,所以不少的玩家比较关心新区什么时候开,下面就让玩游戏网的小编为大家简单介绍一下!《完美世界》手游新区开服时间表:一般新区会在每天中午10点开放,大家可以关注区服列表,及时关注最新的区服ID,如果有新区了第一时间进入就可以不至于落后别人了。1、互通区这是指的安卓和ios在一个服务器玩是…《完美世...

weixin_42361623的博客 1324
上一篇: 1100亿行代码!华为是如何管理的?
下一篇: 离开IBM多年,我依然怀念它
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值