蒋耀锴:剑桥毕业,硅谷敲代码8年,回国创业做低代码

news2024/11/24 13:22:09

这是《开发者说》的第10期,本期我们邀请的开发者是蒋耀锴,曾在意大利、英国、美国读书,专长高性能计算、高容错分布式系统与软件工程,毕业后在硅谷的Medallia写了8年代码,19年回国创业做低代码,喜欢半夜里一边喝酒,一边写代码,业余时间都在旅行与投资,他好奇于坦桑尼亚人的爬山方法,也对《母猪的产后护理》感兴趣。如此有趣有货的程序员,不想了解一下吗?

1、请自我介绍一下

我小的时候在杭州出生,13岁的时候去了意大利,读的初中和高中,毕业去了英国剑桥读的计算机,在美国卡耐基梅隆大学读计算机的研究生,后来就一直在硅谷工作,在一家做CEM的公司Medallia做后端开发。2019年回国开始创业,一直到现在。

2、6岁接触电脑,9岁开始写代码,是什么体验?

小时候,我妈是浙江医科大学教供科的一个职工,在92年,我不到五岁的时候,他有一阵子会带回家一个纸键盘,当年键盘还是很贵的东西,大家也买不起,为了要练盲打,就做成纸键盘练习,我很好奇,问她这是什么东西?她说这是电脑的键盘。我就缠着她说要去看看那个东西是什么样子,她就把我带到那个机房里去,当时那些电脑还很金贵,进去还要穿鞋套,戴头套。这就是我第一次跟电脑打交道,我当时也不知道这东西到底能干什么,只是觉得这是一个非常有意思的机器。

在小学四年级的时候写下的第一行代码,那时候也不知道自己在干什么,我记得是用VB,写的第一个程序就是去画一个计算器。很多人第一次写代码都是写这个。

3、你在意大利、英国、美国都有读书经历,它们的优点与缺点是什么?

这很难对比,我在国内只上过小学,跟国内上学的人的交流而言,第一是在国外的标准答案少很多,我们的历史考试基本上就是写作文,高考是三道题,两个半小时,反正你就写,不管是引经据典也好,自己去论证也好,你要证明你的这个观点,从历史书籍中查找,引用历史学家的观点,或者逻辑推理也好,你得想办法证明你的观点,它的题目也非常庞杂,有些非常刁钻,比方说有考题是,如何看待《凡尔赛合约》对德国的抑制其实延迟了二战的到来?观点尽可以千奇百怪,重要是你要给出扎实的论证过程。

第二个是老师真的是非常的专业。我从来都没有觉得给我上课的老师,不懂他在说什么东西,他是真的对他的那一门课非常热爱,也非常精通,从来没有怀疑过他会不知道我的问题。我觉得这两点是很大的区别。

国外的学校管理上很开放,没有国内这么严格,在本科的时候,大三只要考一半的题,一张试卷,答对一半的题,就算100分的,你可以想上什么课就上什么课,有12门课,你只需要上6门,你也可以上12。最终考试你只要答对一半的题就可以了,有很多自己的选择。

当时我特别感兴趣的是硬件,选了一门课computer architecture,还有一门计算机的理论课叫foundations of computer science,里面讲的东西我都不知道有什么用,但到了解决困难问题的时候。我非常感谢当时老师教了我这些东西,包括现在自己做产品的时候,真的用到了当年学的东西,这个感觉真的很好。

4、最佩服的程序员是哪位?中国程序员能开发出ChatGPT这样的产品吗?

我最佩服的程序员是一个挪威人,我在实习的时候碰到他,他是让我第一次见识到有人对程序的分析可以到入木三分的地步,从更高层的架构,软件工程的代码结构,JVM的调用,CPU指令的翻译,他可以在每一层都找到问题。这是我第一次见到有人可以真的做到所谓深入浅出,他真的震惊到我了。
他知道四个以下的排序在CPU内部是有特殊的电路的,知道除法,很多时候我们也知道,但是根本就不会想这个事情。

有一次我们在调一个性能,当时是为了要做一个set,这个set直接用java的性能是不够的,因为那个set的存取是非常的高频,我们要自己去做那个set。是专门针对int做那个set,要考虑它的load factor,也要考虑它的size的成本,我们要做的全部都考虑了,最后性能还是不够。

我就在那边看了大概一个礼拜,百思不得其解,我们做了所有的尝试,还是不行,他说我们看一下到底CPU跑的哪个指令是最慢的。如果他不跟我说,我都不知道intel有一个软件叫什么VTUNE,这个软件可以告诉你哪一个汇编的指令花的时间最长,它还会分解这个指令运行时间。

最后找到了问题所在,我们在算哈希值的时候不是一个int to int,用了一个除以质数取余的方式去算,正常情况下,我会觉得那你除以一个大的质数,取个余可以保证它的分布非常的平均,就是因为这个除法。造成了说,你这里就用掉了七个周期。然后说不要做除法了,直接做乘法吧,做乘法,取余的时候用二的几次方,直接CPU有专门电路去做就行了,一上去之后马上性能暴涨五倍,性能平衡这个问题就这么解决的,我就觉得他太牛逼了,如果不是他告诉我可以一层一层的去观察,我永远都想不到Hash function是性能瓶颈,我永远在想array access是瓶颈,他让我感觉是人外有人天外有天的感觉。尤其是他又在面对面的教我。

国内的环境根本就不适合GPT的产生,它产生的必要条件,第一要有闲人,要有人不断的在钻研,GPT的架构是谷歌出来的,而且是17年出来的,那个时候的谷歌还没有说要什么financial discipline,什么东西都还没开始,就是让你去做自己的事情,本质上就是有闲人。

另一方面它是事故,transformer这个东西,算力得到位,那算力到位的前提是比特币,为什么,GPU那阵子发展那么快是因为比特币在那边打,大家都开始挖矿,比特币暴涨造成了显卡供不应求,那个nvidia就有足够的钱去研发更牛逼的芯片来,最终带来的价值是transformer model可以利用到这么多的算力,并且产生了质变。比特币之前GPU又是干什么的,是在玩游戏的,这种不务正业的事情在国内怎么可能会被鼓励去做,你会觉得这些对社会的进步没有帮助。

世界的发展,我觉得是有随机性的,很多东西都是从一些看似没什么用的东西突变过来的。

5、Zion的灵感来自哪?它是一款什么样的产品?

从2015年开始,我跟合伙人一起在做各种各样的项目,这些项目一般都是商业模型的创新,创新就必然带来对新软件的需求,因为一个商业模型都要有一个软件去承载。当时我们还在上班,都是业余的时间在搞,搞过程中就觉得非常的烦躁,天天就要重新做一些数据库建表,把这个东西通过API暴露出来,前端去接,接完了之后写个页面react的各种状态的变化,还要调CSS,感觉非常的重复而烦躁,总觉得这些事情不应该花这么多昂贵的工程师这么久的时间。它的业务逻辑也没有多复杂,工程师也没有在浪费时间,为什么产出的量没有想象的那么多,本质上是因为我们在重复的做事情。

还有一点,这些业务逻辑需要一个经过了系统的计算机教育的人去做吗?好像也不需要。所以我们就想要做一款解决这些问题的产品。不管是移动端软件也好,还是网页软件也好。它都是一个前端,后面是个数据库。前端大家都用jquery,那其实是比较难管理的,当你有了这个react的virtual dom之后,就轻松多了,你只需要管理状态就可以了,不需要管理事件触发对UI的修改,它已经帮你抽象了这一层,我们的产品就是管理这个状态,之前的项目,我们用的是graphql和kubernetes这一套,API那一层用graphql。

存取数据怎么弄,我们看到了一个软件叫做hasura,它可以直接将数据库以某种形式暴露成graph的API,你就可以在里面做到增删改查,还带有强类型,后端选了个springboot。数据库用的是postgres,因为我本身对postgres很熟,也做了很多的对比。首先数据库的schema怎么办?是我们帮用户管还是我们用C的类似mongodb的方式去做,全部都是json的,我们选择了用schema帮你做migration。

对于使用无代码的人来说,他更加难以找到schema对不上之后的脏数据,怎么排查问题更加难处理,你要做的是给这些人做更多的护栏,而不是给他更多的自由。无代码的本质是更多的护栏,不是更多的自由,自由的背面都是责任,你让一个没有能力承担责任的人,去承担代码的选择带来的责任,这本身就是不合理的,所以你要做的是尽量限制他能做的事情,能做的选项,但是不限制他能够产生的场景,就是所谓的holy grail,你到底灵活在哪,你的封闭在什么地方?

6、Zion的典型应用场景是什么,相比请一个员工,到底能省多少钱?

Zion最重要的问题是要服务的人,我们给他的定义,第一大概是智商115以上的,智商115的数字怎么来的,这个人不管实际学历如何,他要相当于一个average研究生或者一个优秀本科毕业生的水平,这群人已经是前16%聪明的人了。为什么是这样?因为不管用无代码还是用代码,软件的核心难点是抽象能力和理清需求的能力,东西是不变的,如果你理不清需求,不管有代码无代码都做不出来。无代码开发本质还是开发,还是将实际业务映射成数字逻辑。需要的是有自学能力和业务理解能力的人

还有一个,开发者不需要经历过专业的代码训练。经过我们自己的测算。聪明人20到30个小时之间,他就已经上手了,他就可以开始做软件了。

我们现在跑的典型用户。他原来在亚马逊做产品经理,后来不得不接手家族企业了,他就回到了海南。接手的家族企业是个批发店,批发店底下可能有几百个零售店跟他对接。他不会写代码,但他用我们的软件搭建了自己的零售商管理系统,让他们可以订货,可以讨价还价,可以追溯货到哪里,仓库管理系统。只要零售商一下单,价格谈好了,仓库员工的手机就会叫,就可以去理货了,你还要确保这个货理出来是对的,软件里面还有一个扫码的,快递的track的系统,全部都里面。

用传统的开发去做这件事,怎么也要个几十万的成本吧,你招外包,没有办法很好的跟他沟通你的业务需求。他是老板,他特别懂自己的商业是怎么运作的,他是专门从海南飞过来,在我们这里,做了三天,就做好了,他现在打算把这一套东西拿出去当一个saas往外卖,作为解决方案卖给别人。那你说他的开发成本有多少。

Zion还有一个优点,通常一个页面,同一个Entity的列表可以有很多种方式呈现,每一种呈现方式需要的字段是不一样的,需要join的这个表也是不一样的。是post表,这个时候需要看到的是有多少个comment,也有可能有个地方,要看到前三最新的三条comment。也有可能要看到author的头像。我们做到了只取你要的数据,最大程度保证它的性能。我们最大的客户是一个做题的,他的做题记录已经有6700万条了,我们就是一个非常简单的数据库,没有做任何其他的东西。不管是sql也好还是数据库的表的结构也好,还是数据库的表上面的索引也好,都是自动帮你去优化的,用比较便宜的硬件就可以支持,这些是我们提供的一些价值。

7、低代码未来会只有一个输入框吗?输入你的描述就可以生成一款应用。

这是常见的AI versus 低代码的问题。

AI在低代码上面会有两种体现,一种是让你的客户做出来有AI能力的软件,直白一点,你可以低代码的搭建agent,而不是需要人用代码来搭建agent。第二是代码编辑器有AI的copilot,就跟我们的Github copilot在VS里面是一个道理。这两个是相辅相成的,它并不是一个互斥的关系。

至于人们的想象,我讲一句话就可以生成一个软件。这是根本不可能的事情,如果你把AI当成一个人,他是个很聪明的人,是个万能码农。你找一个万能码农,你跟他说一句话,他也做不出来,因为你说的那句话,天然就是缺乏细节的。软件的每一个环节都利用AI,把相对模糊的、含有歧义的自然语言表达的东西变成一个精准的、结构化的结果,程序本身上是结构化的,对于结构化的一个状态的改变,我们是需要做的,所有的IDE一样,我们都有一个copilot。

Zion本质上是开发工具加上一个部署平台,我们所有的功能都必须是正交的,所谓功能的正交就是指每一个功能都是不能有另外的功能去替代,他们是不重复的。第二个,最理想的就是所有的功能加起来,能够覆盖开发者需要的方方面面,当然这得花很多时间去做。
我们有一个数据库的功能,有AI的功能,那么数据库就要能用AI,A I也要能用数据。又引入了第三方API 也是一样,数据库要能够直接从它里面的字段去作为输入用到API里面。

8、自己最喜欢的产品有哪些?国内的产品大而全,国外的产品小而垂直,怎么看待两种设计思路?

我比较喜欢飞书,因为它的产品比较正交,所有的东西跟所有的东西都可以互动,我的文档可以在聊天里面,嵌入文档里面又可以有聊天记录,然后在搜索里面可以搜所有的东西,会议结论可以在聊天里,也可以在文档里,整个东西概念的数量虽然不多,但是组合起来的可能性是非常大的。

对于国内这些大而全的产品,我自己也非常惊讶,最可怕的是一个地图软件都会给你来借钱,所有的银行App都有商城,我都懵了。正常的情况下,银行是用来看我有多少钱和欠了多少钱的地方,你为什么要让我去买东西,还有电影票。

原因可能是国内产品对流量的变现没有止境,但没有想清楚要做什么,看到别人做什么赚钱就做什么,但这些边际投入的回报是很低的,我肯定是偏好一个简单的产品,我听歌,你就给我听歌,你不要给我借钱,我根本不想看到能借什么钱,我要借钱,我会去问银行的。

9、从码农到公司老板,最大的感受是什么?你最理想的第二职业是什么?

在很多人身上看到了曾经的自己,你在那个位置上面想过的事情,所以你会更加理解,相较于大部分的老板来说,我是更能理解码农到底在想什么,他们的态度为什么这个样子,所有会有更多的耐心,虽然我经常跟他们吵架,我还是会非常认真的跟他们解释。

做码农轻松多了,做老板的话你就得什么东西都得懂一点,虽然我自己不介意什么东西都懂一点,术业有专攻,有些东西就是做不好。在做码农的时候就不会有困扰,有一些事情做不好怎么办?做不好有人给你做。你做老板说做不好怎么办,那不行,你只要自己做不好。你招人都招不好,你都不会招人,所以你就没有办法,你一定要自己上,即便你有很多的知识储备,纸上得来终觉浅,书看的再多都是纸上谈兵,虽然纸上谈兵,但也比没有纸上谈兵还是要好一点,但是纸上谈兵跟真的干过这个事情的人相差还是很大的,所以就深深的感到自我的局限。

我自己是更喜欢对付死的东西。没有任何情感,不会对你进行反抗的东西,或者它的反抗是完全是根据你的输入的,不管是汽车也好。计算机也好,还是股票市场也好,只要你对了就给你奖励,只要你错了就打你脸,我非常喜欢这种东西。对付人的话,我对自己的认知是,我是一个很有人格魅力的人。但是另外一方面,我又不喜欢对付人。

我曾经一个爱好就是天天拿着公各种公司的财报在那一点点看,就为了理解一个行业是怎么运作的?我宁可这个样子,我也不愿意出去跟人聊天,我喝酒也是跟自己喝,有人会说你这是不是在喝闷酒,我一点都不闷,我觉得我非常的快乐。在21年的时候,有一阵子,我经常会半夜里一边喝酒,一边写代码,我很享受那种状态。

我的第二职业应该是做投资,我现在持有很多很奇怪的东西,我有一个秘鲁的磨金子的一个公司,把金矿砂提纯到90%左右金块,我会买各种地方的奇怪的玩意,有点像收集珍宝的样子。最近我在我在买国内养猪的股,为了这个东西,我看了很多乱七八糟的东西,比如说《母猪的产后护理》,为了知道养猪到底需要注意些什么东西,在豆粕价格高的时候,你怎么样给猪补充蛋白质,这种莫名其妙的东西。我都会去研究。

10、写代码以来,你最开心或影响深刻的一件事是什么?

我印象最深刻的一件事,真是有点创伤。当时我是跟数据库打交道,我当时那家公司卖给花旗它的saas,经常有人抱怨说他那个网页会时不时的崩掉,本来这事跟我没有什么关系,我是一个后端,你网页崩了,那不应该前端的事吗?后来,经过一堆人的排查,说这个东西是因为返回值在这里有问题,日常的返回值为什么有问题,后来发现是他数据库不断的在重连,我就觉得很奇怪,数据库重连在别的地方也没有,代码也没有改动。如果代码都一样,那它唯一的可能性是数据。只有可能数据或者配置不一样。

我花了两个礼拜去修复,他就是持续的崩掉,崩掉的时候db断连,我一边在看java的log,一边在看数据库的log。就看不出任何的端倪来,最后在数据库服务器的dmsg里面发现了了几个东西,写着什么ECC error.,我想会不会是内存坏了,就找那个运维,把花旗数据库的内存给换了,换了之后ECC error消失了,数据库重连也消失了,居然碰到了一个硬件造成的问题,还不是死机?只是数据库断联。花了我两个礼拜才看出来这个问题。当看出来那一刻,又觉得自己似乎升华了,就觉得我从此又知道一种failure mode了。

11、分享一下自己业余爱好?

我生活中最大的特点就是好奇心,美国的51个州,每一个州我都去过至少两遍,世界的各个地方都去转过,以前不觉得,现在觉得行万里路还是有那么点用,你对世界的理解会更丰富。美国中部的人的生活,跟美国两岸人的生活也不一样,秘鲁人爬山的爬法。坦桑尼亚人也有自己爬山的方法,非常有趣,这些都是我感兴趣的东西。

12、对于自己的生活与工作,未来有何期待?

我希望Zion可以提升更多人的效率,真正让一个开发者有惊艳的感觉,不仅可以帮你部署后端API的生成,甚至帮你做AI搭建的平台。对我来说,AI就是一个新的软件基础能力,不管你是react、java、postgres,还是ChatGPT,它都可以被更多的没有经历过专业训练的人去使用,不管是在国内还是国外,大概这就是我心目中的应许之地。

故事征集:

《开发者说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台。

欢迎大家推荐朋友或自己来参加我们的节目,分享与对话是一件利他又利己的事。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见Rabbitmq面试题及答案总结

1、 什么是 rabbitmq 釆用AMQP高级消息队列协议的一种消息队列技术撮大的特点就是消费并不需要 确保提供方存在,实现了服务之间的高度解耦 2、 为什么要使rabbitmq (1) 在分布式系统下具备异步,削峰,负载均衡等一系列高级功能&…

汽车MCU虚拟化--对中断虚拟化的思考(2)

目录 1.引入 2.TC4xx如何实现中断虚拟化 3.小结 1.引入 其实不管内核怎么变,针对中断虚拟化无非就是上面两种,要么透传给VM,要么由Hypervisor统一分发。汽车MCU虚拟化--对中断虚拟化的思考(1)-CSDN博客 那么,作为车规MCU龙头…

手把手制作Vue3+Flask全栈项目 全栈开发之路实战篇 问卷网站(五)数据处理

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…

Java学习中,如何理解注解的概念及常用注解的使用方法

一、简介 Java注解(Annotation)是一种元数据,提供了一种将数据与程序元素(类、方法、字段等)关联的方法。注解本身不改变程序的执行逻辑,但可以通过工具或框架进行处理,从而影响编译、运行时的…

Suryxin’s ACM退役记

序 我的记忆力很差,经历过的很多事情都已经记不太清了,其中有很多美好回忆也已经消散,我很惋惜没能留存一些照片和声音或是文字供我怀念,这就像《泰坦尼克号》一样,露丝和杰克感人肺腑的爱情故事,最后也仅…

东航携手抖音生活服务开启机票首播,推出国内、国际超值机票次卡

在民航暑运旺季到来之际,越来越多的用户选择提前做好旅行规划,囤下高性价比的出游商品。6月6日18点,中国东方航空(以下简称“东航”)将在抖音开启首次机票直播,推荐多款超值机票次卡及空中Wi-Fi等特色产品&…

SpringBoot发邮件服务如何配置?怎么使用?

SpringBoot发邮件需要的参数?邮件发送性能如何优化? 在SpringBoot项目中配置发邮件服务是一个常见的需求,它允许我们通过应用程序发送通知、验证邮件或其他类型的邮件。AokSend将详细介绍如何在SpringBoot中配置发邮件服务。 SpringBoot发邮…

nginx和proxy_protocol协议

目录 1. 引言2. HTTP server的配置3. Stream server的配置3.1 作为proxy_protocol的前端服务器3.2 作为proxy_protocol的后端服务器1. 引言 proxy_protocol 是haproxy开发的一种用于在代理服务器和后端服务器之间传递客户端连接信息的协议。使用 proxy_protocol 的主要优势是能…

QT获取最小化,最大化,关闭窗口事件

QT获取最小化,最大化,关闭窗口事件 主程序头文件: 实现: changeEvent,状态改变事件 closeEvent触发点击窗口关闭按钮事件 其代码它参考: /*重写该函数*/ void MainWindow::changeEvent(QEvent *event) {…

蚓链数字化营销生态的影响力分享!

​家人们,今天来给大家分享一些关于数字化平台生态化对数字营销影响的具体案例。 比如某电商平台,通过生态化的建设,实现了精准的推荐算法。根据用户的浏览历史和购买行为,为他们推荐最符合需求的商品,大大提高了购买…

JeeSite 快速开发平台 Vue3 前端版介绍

JeeSite 快速开发平台 Vue3 前端版介绍: 它构建于 Vue3、Vite、Ant-Design-Vue、TypeScript 以及 Vue Vben Admin 等最前沿的技术栈之上,能助力初学者迅速上手并顺利融入团队开发进程。涵盖的模块包括组织机构、角色用户、菜单授权、数据权限、系统参数…

小程序开发平台——超级万能DIY商城小程序源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 超级万能 DIY 商城小程序源码系统是一款集前端和后端分离的强大工具,为开发者提供了一站式的解决方案。它不仅具备完整的安装代码包,还附带详细的搭建教程,让即使是没有丰富技术经验的开发者也能轻松上手,快速构建自己的…

Vue3实战笔记(56)—实战:DefineModel的使用方法细节

文章目录 前言一、实战DefineModel二、思考原理总结 前言 今天写个小例子&#xff0c;实战DefineModel的使用方法细节 一、实战DefineModel 上文官方说的挺清楚&#xff0c;实战验证一下&#xff0c;新建DefineModel.vue&#xff08;这是儿子&#xff09;&#xff1a; <te…

珠海鸿瑞毛利率持续下滑:核心产品销量大降,偿债能力偏弱

《港湾商业观察》黄懿 日前&#xff0c;珠海市鸿瑞信息技术股份有限公司&#xff08;下称“珠海鸿瑞”&#xff09;收到了北京证券交易所发出的第三轮审核问询函。 此前&#xff0c;2020年11月&#xff0c;珠海鸿瑞曾向深交所报送上市申请。IPO申请文件获受理后&#xff0c;珠…

MySQL8 全文索引

文章目录 创建索引使用索引总结 创建索引 之前未尝试过使用MySQL8的全文索引&#xff0c;今天试一试看看什么效果&#xff0c;否则跟不上时代了都。   创建索引非常简单&#xff0c;写句SQL就行。 create table goods(id integer primary key auto_increment,name varchar(2…

知识图谱的应用---智能制造

文章目录 智能制造典型应用 智能制造 随着云计算、大数据、人工智能技术的快速发展&#xff0c;越来越多的新技术正在应用于传统工业领域&#xff0c;并在帮助企业实现产业转型、技术升级及效益提升方面起到了关键作用。目前在提升良品率方面&#xff0c;知识图谱通过深度计算所…

Selenium时间等待_显示等待

特点&#xff1a; 针对具体元素进行时间等待 可以自定义等待时长和间隔时间 按照设定的时间&#xff0c;不断定位元素&#xff0c;定位到了直接执行下一步操作 如在设定时间内没定位到元素&#xff0c;则报错&#xff08;TimeOutException&#xff09; 显示等待概念&#x…

【Python报错】已解决NameError: name ‘secrets‘ is not defined

解决Python报错&#xff1a;NameError: name ‘secrets’ is not defined 在使用Python进行安全编程时&#xff0c;我们经常需要使用secrets模块来生成安全的随机数。然而&#xff0c;如果你在尝试使用这个模块时遇到了NameError: name secrets is not defined的错误&#xff0…

【机器学习】机器学习与智能交通在智慧城市中的融合应用与性能优化新探索

文章目录 引言机器学习与智能交通的基本概念机器学习概述监督学习无监督学习强化学习 智能交通概述交通流量预测交通拥堵管理智能信号控制智能停车管理 机器学习与智能交通的融合应用实时交通数据分析数据预处理特征工程 交通流量预测与优化模型训练模型评估 智能信号控制与优化…

安装TPMmanager

sudo apt-get install qt4-qmake sudo apt-get install libqt4-dev下载TPMManager&#xff0c;解压之后拖入Ubuntu&#xff0c;进入目录 https://gitcode.com/Rohde-Schwarz/TPMManager/overview?utm_sourcecsdn_github_accelerator&isLogin1 cd tpmmanager-master qmake…