当前位置: 首页 > news >正文

2412d,d的7月会议

原文

总结

卡斯滕
Carsten说,Decard一直在大量试验WebAssembly.他们一直在把d运行时挖出来,直到它工作.他们在浏览器中运行了一些库函数,并试了不同虚机.

他们在移动方面遇见了很多问题,因为不同芯片按不同方式工作.他们想让他们的整个SDKWASM上运行,但可能需要一年时间才能完成,因为WASM中有很多东西在到处移动.

Robert问他们是否让GC正常工作.卡斯滕说,他们没有关注它.他们只是在调用函数.他们不知道如何编写GC,因此想最终使用WASMGC.
他说,一直烦人一件事是WASM接口基本上是POSIX,但编译器并没有按POSIX版本对待控制.他必须实现大量版本化的虚代码才能使它正常工作.
他想看到编译器按POSIX识别WASM.

Robert说他看到标准化机构已接受了GC的提案.Carsten说他们也接受了多线程.WASM正在进入虚机等领域,因此它最终会变成来进出浏览器的VM.
Robert说这是一个非常好的接口.

巴斯蒂安

巴斯蒂安说,他仍在为SARC搞D翻译.他时不时地遇见难以解决或难以理解的问题.那是他的生活,但这里无大事可提.

马蒂斯啤酒

Mathis说,Funkwerk有史以来第一次使用编译器的修补版本,因为可重绑定区间析构错误太可怕了.不过,他说这很常见,因为这主要是他的错.
应该弃用破坏函数.它造成了很大的伤害,但他觉得这不值得辩论.

Dennis问他是否指的是一般的核心析构器.马蒂斯澄清说,他指的是对象版本.他说它有个问题,当它处理一个值类型时,它会处理值,但是当处理一个类时,它实际上会很难注意到的析构类值,不是引用,而是实际的对象自身.

然后,注意虚表指针已变为零,因此你必须知道意思并找出发生的位置.

一般,它几乎从来都不是你想要调用的函数.他觉得这很困惑.

Walter认为析构的目的是,不必等待GC收集对象.你可以说你已完成了它.马蒂斯说不,甚至没有释放它.

Walter问,如果不再用虚表,则设置虚表为零,又有什么关系呢.Mathis说,问题是他在通用环境中使用它,并想为调用语义上适当的析构操作.

,即调用析构器,因为值的生命期结束了.但是当结束类引用的生命期时,因为可能还有其他该类实例引用,不应这样.

但实际是,无论剩余多少引用,都会析构类实例.

沃尔特说这就是破坏的要点.马蒂斯说,它并没有对其他类型这样做.如果他在某个地方一个结构,并传递了要破坏一个副本,则不应影响原版本.

Dennis说这是真的,但是如果有该结构的指针,则就会挂起该指针.Mathis说,他实际上并不知道破坏是如何处理指针的.
它认为它啥也没干.

沃尔特说,如果你要破坏某样东西,则就不应再引用它了.即,由你确保不再引用它.Mathis说,此时,他必须负责生命期,他用它来补偿可重绑定数据对象生命期管理.

他想他会调用破坏结束它的生命期.

Walter说,不,当你知道这是目标值的结尾时,你根据指定的类型,调用了破坏.因此,如果你在通用函数中使用它,如果它是一个结构,则它是一个复制的值,所以说你想结束该值的生命期是对的.

但是,如果它是一个类,复制构造器实际上只是复制引用.如果在那时调用破坏,即没有更多引用它了.

马蒂斯说这就是他的要点.在语义上行为是不同.他不是专门在上调用的.他在一个T任意模板参数上调用它.

Walter说,这样做是说不再有该T实例的引用.但在会议中,他说有更多的引用,它们会变坏,但这不是破坏的重点.
关键是没有更多的引用了.

Mathis说,该行为对类和结构有意义,但对类和结构一起没有意义.这是不同.Walter说,这就是类对象工作方式.调用破坏不安全的.

马蒂斯说,基本上,不必重载.应该有一个破坏和一个destroyClass.Walter再次重复说这就是该函数的意义所在:调用它表明你说没有更多的引用.

Martin说,类的问题是,不能确定你正在析构的引用实际上是最终的引用.他建议应该为设置一个单独的终结器.

破坏性更改,但可为对象添加终结器,然后在版本中,可更改破坏的语义.

Walter认为这很好,但表示分开终止器破坏的问题是,人们会搞混,不理解区别,会用错,然后会不高兴.无法避免.

他说Mathis可以用"这是类"包装调用破坏.马蒂斯说他一直在这样做.他都不记得不包装它就调用破坏.

Walter说,好,它正在按它设计的方式工作,不应改变该行为.

Lu认为这里的问题之一类的特例.不仅破坏,而且很多东西都是特例,因为它们只是隐藏对象虚表指针.

另一件事暗示了有GC,但也可在没有GC分配它们.因为有特例,Weka不使用类.大多数情况都可用结构来解决.

WalterLu说得对,类和结构彼此不同.忽视这些差异算法导致麻烦.Lu理解它,但认为设计可更类似结构,而不是模板编程中总是需要特例的差异.

Walter说,在C++中,对引用必须有特例.当你有值类型和引用类型时,它们会有所不同.没办法.

马蒂斯同意.他说他真很喜欢D中的类设计.当简单编写时,标准区间算法可很好地处理类和结构.唯一觉得有问题的函数是析构.

他觉得,如果他有一个需要使用静如调用一个函数模板函数,则实际上是恰好相同名字的两个函数.

Walter说很好观点,但如果你使用的是值类型,你应该依赖RAII析构,而不是实际破坏函数.而对没有RAII.

马蒂斯说明,他的例子是个特例.他有这样神奇可重绑定的东西,他必须手动控制生命期.这是不经常出现的事情.
Walter说,当你按特例手动管理生命期时,它是一个特例,你必须在其中放一个.

我注意到Java中,因为很容易误用它,而已弃用的Object.finalize.我记得Sun过去总是告诉人们在final中不要这样或那样,因为它不是一个析构器,但人们仍会这样或那样.

在D中遇见了相反的问题,因为析构器也是终结器.

沃尔特说不要把火和水插件在一起.引用类型和值类型彼此间难以理解地不同.

Mathis说,之所以这样,是因为他必须在std.algorithm中添加可重绑定,来支持不变,这一切都可跟踪到他的DConf'22演讲.

然后,他报告说Funkwerk到处都在使用DMD2.108LDC1.38,并且他们运行良好.他们在内部管理代码,没有主要的外部依赖.

他们很高兴离开vibe.d,不再处理编译器更新中的问题.他们对2.108满意.

路易斯

Lu说他无新东西,但他想了解AST重构项目的状态.Weka仍有因模板和属性推导错误而导致的链接问题.

这主要是因为问AST的方式有点混乱.如果可让他更好,则它就会让其他事情更好.

我说Razvan知道这一切.我知道现在主要是Razvan在做这件事,尽管包括Bastiaan在内的别人也做出了贡献.

Lu最后说,他最近看到语言中出现了一些他等待了很久的好函数,比如串插值和命名参数.他觉得这真的很酷.

更新:SAOC2024的一位参与者,当前正在重构AST这里,
这是个影响很大的项目.如果想了解如何贡献,请读D博客上Razvan的战争号召.

马里奥

Mario没有编程问题要报告,但表示今年有三名Funkwerk员工参加DConf.

Mathis说,Lu提到命名参数,只是提醒他Funkwerk想使用它们,但当前因为在dfmt不支持它们,不能使用它们.

他们曾经允许一名员工dfmt上花一些时间,但该员工不再为他们工作,他们现在有问题.他不知道该怎么做.也许可花几天时间来研究一下,他们在所有项目中都使用了dfmt,所以使得对他们来说命名参数是不可能的.

Dennis说他最近开始在自己的代码中使用dfmt,并注意到了一些错误.他打开了一些问题,但似乎没人积极关注它.他说他可能会花时间来弄清楚它工作原理,这样就可解决这些问题.

格式化程序压缩属性中的内容,命名参数中的冒号混淆,并完全析构参数列表时,这真的很烦人.

马里奥说他没有指派马蒂斯修复dfmt,因为他不确定这是否会浪费时间和金钱.他知道SDC也有sdfmt,他还知道dfmt在按库对待DMD上已做了一些工作,但他不知道进度如何.

他不想让Mathis修复dfmt,因为在被其他东西替换时,这些修复不重要.

Dennis说,Razvan的一名学生曾参与过该项目,按DMD按库替换dfmt的使用libdparse的,但默认没有启用它.

他上次听说只有一个开关启用它,而且现在还太早.该改变不会影响格式逻辑,但必须看看.

我注意到,过去曾讨论过与编译器一起提供格式化程序.同意它是dfmt,因为它会使用按库DMD,如果用DMD发布它,这是有意义的.

因此,修复格式化逻辑不会浪费时间.

Lu说,Weka还没测试dfmt的更改,因为它们落后了几个编译器版本,但应该能很快完成.他会报告他们发现的问题.

Johan

JohanWeka可能有一些问题要谈,但他在会议前没有收集它们,所以他下次会带来几个.

他确实有一些消息要告诉.他说,Weka一直对用musllibc链接可执行文件感兴趣.他已修复了实现它期望的最后部分.

他几乎把所有的东西都移动到了d运行时上游.他说,很好的成功故事.现在可创建不依赖libc实现的静态链接可执行文件,这就是目标.

接着,他请求在编译器仓库包含语言规范,以避免那种并行拉请,即如果必须恢复另一个,你最终必须恢复一个.他确信前面已讨论了,但他想看看.

Robert说,如果规范单元测试,即实际上是可测试的文档,那就更棒了.那可能会有更多的工作,但真的很酷.即使编译器仓库中有规范,你仍必须记住更新它.

但是,如果是不可编译的规范,且文档由此生成的,那将是一个更大的胜利.
沃尔特说这很好.

Dennis说明,如果规范中的示例正确的宏,则当前会运行这些示例.他说Nick一直在努力按可运行的示例转换原来的未经测试的代码.

Robert说这太棒了,并问它是否包括该语言的其他测试用例.有时,当他读规范时,发现有些事情不清楚,他会去测试,来查看最后的实际结果.

如果包括它们,则会大大收紧规范.

Dennis问他是否打算用规范关联DMD测试包,Robert.

Walter说,该测试包不适合公众使用.它不是那样设计的.它为了易于调试编译器.

WalterRobert是对的,但他说明,每次读计算机软件规范(包括语言规范)时,在调用函数ABI如何工作的规范,总是让他感到困惑.

所以会编写一些小的测试用例,编译它们,看看会怎样.

Walter说,一旦他编写了代码,编译了它,并看到了结果,然后他就会回去再次读规范,这样就会理解了.他希望可以在规范和理解规范有更好的方法.

路易斯说,他与沃尔特的经历恰恰相反.如,读D规范,假设ABI按描述工作,然后试验DMD并找到ABI未按规范工作.

如,逆转了参数.在调用约定中,参数应该是一个方式,但在编译器中,它们是另一个方式.

他说对编译器,有两个不同类型的测试.对特定的编译器错误,有各种奇怪的测试.Robert描述的测试只是示例,但这也证实该规范符合想表达的.

Walter说,如果编译器和规范不匹配,那就是个应该报告错误.他们确实报告了,就可以一个一个打倒他们.

Lu说他曾试修复调用约定错误,但这是个很难的问题,因为它在DMD后端无处不在.

Walter同意调用约定复杂性一个重要源,尤其是在后端,因为它支持多个调用约定.这是一大堆代码.

Lu说,他看到的问题之一DMD数学内部函数.它们是基于调用约定实现的,但是因为参数顺序实际上是相反的,现在需要更改所有这些内部函数.

他提交了一些PR试修复它们,但测试失败了.从Iain对话得知,GDC是最符合ABID编译器.

Johan让回到了他的原点:如果编译器和规范放在同一个仓库中,则更容易知道哪种语言规范与你的编译器版本匹配.

至于测试规范,他说有一些公司为C语言制作了测试包.这很难.这与在同一个仓库中放置规范和编译器完全不同问题.

编写单行规范后的所有测试代码行的工作是巨大的.这很好,但肯定是个巨大的项目.

至于ABI,他觉得这超出了语言规范.对他来说,规范应在更高的位置.实现CABI是因为必须,但除此外,ABI相当开放的.

那是在较低的层面上.对程序员来说,更有趣的是更高的规范级,这与你的特定编译器版本有关.当它们在不同仓库中时,你必须弄清楚哪些日期与哪个匹配,这很快就会变得非常麻烦.

Walter同意语言规范ABI规范是两个截然不同东西.他说明,在标准化C语言后,一家公司测试C规范中的每一段代码制作了一个包,然后发布它.

每个C编译器都失败了.所有C编译器都花了数年时间才成功运行从规范取的测试.这就是整个问题.

Mathis建议,当你在查看语言规范时,发现某些内容对你没有意义,但随后查看测试发现它的意义,则这就是应该进入规范的测试.

你不必在那一刻把它放进去,但你可为它提交一个问题.沃尔特同意.

Lu举了一例,Weka遇见过它,在同一仓库中放置规范和编译器有用的.
沃尔特说他对此没有异议.整合它们没问题.

最后,Johan报告说,Weka仍在使用LDC1.30,但他们已接近升级1.38,即D2.108.他已看到了2.109中的一些变化,他们花了时间来适应,因此分发先升级2.108,然后再从那里继续.

Lu说,他很高兴能使用一些DIP1000特征.DIP1000的变化是因为析构而使它们一直用旧版本,但现在已修复了.

马蒂亚斯.朗

Mathias想重申工具的重要性,他提前感谢Dennis可愿意查看一下dfmt.Symmetry也使用了格式化程序,尽管他们使用的是sdfmt,因为Amaury维护了它.

但是,使用工具可做更多事情,它会很好地整合他们的项目.按库DMD可以实现很多好东西,而AST重构项目可以允许它.

如果必须在DMDARM后端,和不变AST间做出选择,他会投给不变的AST.

丹尼斯

Dennis最近一直在与COM打交道.它有个带命名参数特殊调用约定,而D命名参数,所以他想试组合它们在一起会很好.

但是opDispatchopCall不支持命名参数,且DIP没有为它提供机器.

他有个想法,可添加按串数组按模板参数压命名参数的,类似opNamedDispatch的东西.这样就可以了.沃尔特觉得这似乎很有趣.

沃尔特

Walter说他一直在向X发布他在AAarch64代码生成器上的每日进度更新.他当前正在处理调用函数返回序列.

花了一些时间后,他慢慢开始理解ARM指令集.它的某些部分仍很怪.对一个本应简单的指令集,它非常复杂.他必须编写一些代码片,并在godbolt上试用它们,看看它们到底做了什么.

他已到了它会管用的地步,但完成细节需要一点时间.他期望的很快就会运行基本的.

JohanWalter是否有机器可运行它.沃尔特说他只是在用godbolt.他会编写个两行左右的函数,并想看看它发出了哪些指令.

他们是怎么处理pushspops?他们是如何调用函数的?Godbolt非常适合这些.

他说他还有一个RaspberryPi.他期望RaspberryPi用户可变成简单AArch64DMD后端的潜在用户组.这就是他分发的目标机器.

编译器当前发出的代码没有处理elf目标文件中的修复,因此不能试运行生成的代码.

可惜,elf生成器代码是个老鼠窝.他一直在重构它以使其更易于处理.重构,与x86修复完全不同,应该更容易修复AArch64.

他已为它编写了个目标文件转储程序一个反汇编器,因此正在慢慢地组合这些部分.一旦他在RaspberryPi上工作,他就会得到一台带ARM芯片的最新Mac,并让它在那里工作.

Johan说他以为Walter窗口用户.他了解到现在有些不错的窗口版的ARM笔记本电脑.但有时,如果Walter有一台机器来运行它就好了.

Walter窗口后端可能是最后一步,主要是因为他发现窗口ABI文档很差,而且要使它正常工作需要付出更多努力.

他也不喜欢使用微软SDK.它太大太复杂了,很难在里面找到东西.它有太多的目录和文件,他就是不喜欢到处找它.

这也是窗口支持,只是实现ImportC最后原因.

他说Linux开发工具要好得多.它们更易于理解,且面向命令行,而不是GUI.他发现它们更容易开发代码,也更容易理解正在发生的事情.
因此,他打算把微软问题延迟到最后.

Martin说明,d运行时很可能需要为窗口的AArch64工作.Johan说,事实上,LDC可能无法在窗口ARM笔记本电脑上运行.

如果有一些开发者从事这项工作,那就太好了.不一定是沃尔特.也许是核心贡献者之一,或是参与游戏并有动力修复最后点点滴滴的人.

DennisWalter打算用PR做什么.他打算继续添加并在测试包通过后整合整个事情,还是要合并一个最小的工作版本并在此基础上构建?

沃尔特知道它越来越大,而且看不到尽头.他不断地重定基,这样它就不会无可救药地分歧.它现在是如此之大,坦率地说,不可能审查它.

他问Dennis即使它还不是一个全功能的后端,简单把它主线化是否是合理的?这样更容易管理并避免无法合并它,同时更容易审查未来添加.

Dennis认为,如果有依赖的标志框架来构建实际的生成代码,那就太好了.Walter说,此时,如果它通过了测试包,他会很高兴合并它.

Dennis测试包中是否有实际运行生成代码ARM测试.沃尔特说没有.

Dennis问这是否只是根据期望汇编测试,Walter说就是.他正在目视检查汇编.表明,-vasm开关对此非常有用.
他使用-vasm编译,查看反汇编的代码,并用godbolt发布的代码比较它.他甚至会取godbolt发出的代码,按测试包的一部分放进反汇编器中.

丹尼斯说他可花点时间看看.他想看看代码,但这不是他一个晚上可以完成的事情.Walter说这正是问题所在,所以他完全支持合并它并从那里继续.

相关文章:

2412d,d的7月会议

原文 总结 卡斯滕 Carsten说,Decard一直在大量试验WebAssembly.他们一直在把d运行时挖出来,直到它工作.他们在浏览器中运行了一些库函数,并试了不同虚机. 他们在移动方面遇见了很多问题,因为不同芯片按不同方式工作.他们想让他们的整个SDK在WASM上运行,但可能需要一年时间才…...

vue框架

以下是一个简单的基于Vue框架的日历组件示例&#xff1a; <template><div class"calendar"><div class"header"><button click"prevMonth"><</button><h2>{{ currentMonth }}</h2><button cli…...

Django drf基于APIView 快速使用

1. 注册 # settings.pyINSTALLED_APPS [,rest_framework, ]2. 路由 from django.urls import pathurlpatterns [path(task/, views.TaskAPIView.as_view()) ]3. 视图 from rest_framework.views import APIView from rest_framework.response import Responseclass TaskAPIV…...

git commit -m “Add user login feature“

当然&#xff0c;这条命令是 Git 中用来提交更改的基本命令&#xff0c;其中包含了一些注释来解释命令的各个部分。下面是对这条命令的详细解释&#xff1a; git commit -m "-m指的是message&#xff0c;git要求每次提交都需要写一下日志"git commit&#xff1a; 这…...

mac: docker : Command not found解决

描述: 安装docker但是docker命令显示Command not found 分析: mac没有配置对应的环境变量 解决方案: 打开配置文件: vim ~/.zshrc写docker环境变量: export PATH"/Applications/Docker.app/Contents/Resources/bin:$PATH"保存退出: esc,输入wq,按enter 配置文…...

深入解析 HTML Input 元素:构建交互性表单的核心

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

Docker--Docker Registry(镜像仓库)

什么是Docker Registry&#xff1f; 镜像仓库&#xff08;Docker Registry&#xff09;是Docker生态系统中用于存储、管理和分发Docker镜像的关键组件。 镜像仓库主要负责存储Docker镜像&#xff0c;这些镜像包含了应用程序及其相关的依赖项和配置&#xff0c;是构建和运行Doc…...

Linux 统信UOS 设置程序“桌面快捷方式”与“开机自启动”

最近在统信uos系统 arm64架构上进行QT程序的开发&#xff0c;基本开发完毕后&#xff0c;开始着手准备程序的开机自启动模块&#xff0c;因为一般来说&#xff0c;程序在客户现场使用都是需要开机自启的。 然后在百度海淘&#xff0c;很少有这类相关的博客介绍&#xff0c;有一…...

React开发高级篇 - React Hooks以及自定义Hooks实现思路

Hooks介绍 Hooks是react16.8以后新增的钩子API&#xff1b; 目的&#xff1a;增加代码的可复用性&#xff0c;逻辑性&#xff0c;弥补无状态组件没有生命周期&#xff0c;没有数据管理状态state的缺陷。 为什么要使用Hooks&#xff1f; 开发友好&#xff0c;可扩展性强&#…...

shell条件测试

一.命令执行结果判定 && 在命令执行后如果没有任何报错时会执行符号后面的动作 || 在命令执行后如果命令有报错会执行符号后的动作 示例&#xff1a; [rootqingdeng shell3]# sh sl.sh /mnt/file is not exist no二.条件判断方法 在 shell 程序中&#xff0c;用户可…...

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样&#xff0c;这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6&#xff0c;勾选activated。配置Parameter Settings中的预分频器&#xff08;PSC&#xff09;和计数器&#xff08;auto-reload Register&#xff09; 补…...

Linux下进程地址空间

文章目录 1. 进程地址空间分布2. 为什么要有进程地址空间一、主要功能二、重要特性三、应用场景四、与TLB的交互 3. 进程具有独立性 以x86(32位)为例子 1. 进程地址空间分布 进程地址空间&#xff0c;本质是一个描述进程可视范围的大小。 地址空间本质是一个内核数据结构,类似…...

基于SpringBoot的养老院管理系统的设计与实现

一、前言 随着人口老龄化的加剧&#xff0c;养老院作为老年人养老的重要场所&#xff0c;其管理的高效性和科学性显得尤为重要。传统的养老院管理方式多依赖人工操作&#xff0c;存在信息记录不及时、不准确&#xff0c;管理流程繁琐&#xff0c;资源调配困难等问题。利用信息技…...

GA-Kmeans-Transformer-GRU时序聚类+状态识别组合模型,创新发文无忧!

GA-Kmeans-Transformer-GRU时序聚类状态识别组合模型&#xff0c;创新发文无忧&#xff01; 目录 GA-Kmeans-Transformer-GRU时序聚类状态识别组合模型&#xff0c;创新发文无忧&#xff01;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GA-Kmeans-Transformer-GRU时…...

Hadoop单机搭建手册

hadoop搭建安装指导手册&#xff0c;包含hadoop-3.1.1、hive-3.1.0、zookeeper-3.4.6、hbase-2.3.0、spark-3.3.0等组件版本。文档详细21页&#xff0c;附带所有软件包。笔者发现很多人对于如何快速高效的单机搭建不太清楚&#xff0c;所以笔者整理了这个文档&#xff0c;希望可…...

【射频IC进阶实践教程】2.6 LNA版图设计及DRC/LVS验证

射频集成电路的版图设计非常关键&#xff0c;他对寄生参数非常敏感&#xff0c;需要使其最小化。还需要注意相互耦合的方式本次课程主要介绍射频IC的一些相关布局和连线方面的考虑。 一、版图设计 1. 版图的元件布局 首先打开对应的原理图 点击进行版图设计 由于已经有做好的…...

mac下载安装jdk

背景 长时间不折腾mac全部忘记 特此记录 安装 1.下载jdk 根据需要下载对应的jdk 我直接 下载到/Applicatiions目录 https://www.oracle.com/java/technologies/downloads/#java8-mac 2.解压 cd /Applicatiions tar -zxvf jdk-8u431-macosx-x64.tar.gz 3.配置环境 …...

【uniapp】swiper切换时,v-for重新渲染页面导致文字在视觉上的拉扯问题

问题描述 先用v-for渲染了几个列表&#xff0c;但这几个列表是占同一个位置的&#xff0c;只是通过切换swiper来显示哪个列表显示&#xff0c;也就是为了优化页面切换时候&#xff0c;没有根据swiper的current再更新v-for的数据&#xff0c;但现在就有个问题&#xff0c;怎么隐…...

shell自动显示当前git的branch

效果简介&#xff1a; 1. 如果没在git仓库&#xff0c;显示无变化 2. 如果在git仓库&#xff0c;显示当前分支 实现方法&#xff1a; 在~/.bashrc 里添加&#xff1a; function git_branch { test -d .git && branch"git branch | grep "^\*" | sed…...

使用 Acme.sh 自动生成和续签免费 SSL 证书(含通配符支持)

Acme.sh 是一个开源的脚本&#xff0c;能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构&#xff08;CA&#xff09;获取免费的 HTTPS 证书。该脚本特别简单易用&#xff0c;并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用…...

【JAVA】Java高级:Spring框架与Java EE—Web开发基础(Servlet、JSP)

Java作为一种广泛使用的编程语言&#xff0c;提供了强大的Web开发框架和技术&#xff0c;其中Servlet和JSP&#xff08;JavaServer Pages&#xff09;是构建动态Web应用的基础。了解这些技术对于任何想要深入Java Web开发的程序员来说都是必不可少的。 一、Web开发的重要性 动…...

pytorch生成对抗网络

# 生成对抗网络 import os import torch import torchvision import torch.nn as nn from torchvision import transforms from torchvision.utils import save_image # Device configuration device torch.device(cuda if torch.cuda.is_available() else cpu) # 超参数 late…...

flask简易版的后端服务创建接口(python)

1.pip install安装Flask和CORS 2.创建http_server.py文件,内容如下 """ ============================ 简易版的后端服务 ============================ """ from flask import Flask, request, jsonify from flask_cors import CORS app = F…...

gitlab 生成并设置 ssh key

一、介绍 &#x1f3af; 本文主要介绍 SSH Key 的生成方法&#xff0c;以及如何在GitLab上添加SSH Key。GitLab 使用SSH协议与Git 进行安全通信。当您使用 SSH密钥 对 GitLab远程服务器进行身份验证时&#xff0c;您不需要每次都提供您的用户名和密码。SSH使用两个密钥&#x…...

ssh远程升级Ubuntu20.04到Ubuntu 22.04

ssh远程升级Ubuntu20.04到Ubuntu 22.04 陈拓 2024/10/16-2024/10/26 1. 简介 本文介绍了如何通过ssh将Ubuntu系统从20.04升级到22.04。 在进行系统升级之前&#xff0c;建议备份重要数据&#xff0c;以防升级过程中出现问题。 2. 更新当前系统 硬件系统架构 当前操作系统版…...

Qt开源控件:图像查看器工具V1.1

一、项目概述 本项目是一款基于 Qt 框架 开发的 图像查看工具&#xff0c;可以显示带坐标轴的图像&#xff0c;并实时获取图像中任意像素点的坐标和颜色信息。工具具有图像缩放、动态坐标轴绘制、鼠标交互等功能&#xff0c;使用起来方便直观。 二、功能亮点 1. 图像加载与显…...

【WRF-Urban】SLUCM新增空间分布城市冠层参数及人为热排放AHF代码详解(下)

目录 详细解释更改文件内容4 运行模块(run):README.namelist5 输出模块(share):share/module_check_a_mundo.Fshare/output_wrf.F参考SLUCM新增空间分布城市冠层参数及人为热排放AHF代码详解的前两部分内容可参见-【WRF-Urban】SLUCM新增空间分布城市冠层参数及人为热排放A…...

【C#】新建窗体文件,Form、UserControl

从用途、功能性和架构方面进行描述。 1. 继承自 Form 的窗体&#xff08;通常是窗口&#xff09;&#xff1a; 在 C# 中&#xff0c;Form 是用于创建应用程序的主窗口或对话框窗口的类。当您继承自 Form 时&#xff0c;您创建的是一个完整的窗口&#xff0c;可以显示内容、与…...

优化SEO策略掌握长尾关键词的力量

内容概要 在数字营销领域&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;是帮助网站获得更多流量的关键。然而&#xff0c;随着在线竞争的加剧&#xff0c;单纯依赖短尾关键词已难以满足用户的搜索需求。这时&#xff0c;长尾关键词的引入便显得尤为重要。长尾关键词通常…...

MySQL分页查询

分页查询&#xff1a; 数据记录条数过多的时候&#xff0c;需要分页来显示。 语法&#xff1a; select 查询字段 from 表名 where ....等等前面学过的所有写法 limit offset&#xff08;开始记录索引,是从0开始的&#xff09;,size&#xff08;要取出的条数&#xff09;&…...

执行“go mod tidy”遇到“misbehavior”错误

执行“go mod tidy”报错下错误&#xff0c;执行“go clean -modcache”和删除“go env GOMODCACHE”指定目录均无效&#xff1a; SECURITY ERROR go.sum database server misbehavior detected!old database:go.sum database tree3397826xyyhzdyAOat5li/EXx/MK1gONQf3LAGqArh…...

【机器学习】——windows下安装anaconda并在vscode上进行配置

一、安装anaconda 1.进入清华的镜像网站&#xff0c;下载自己电脑对应的anaconda版本。网站&#xff1a;https://repo.anaconda.com/archive/ 这里我下载的版本是anaconda3-2024.10-1-Windows-x86-64 2.下载完毕后开始安装anaconda 3.配置anaconda环境变量 在设置中找到编…...

第6章:布局 --[CSS零基础入门]

CSS 布局是网页设计中至关重要的一个方面&#xff0c;它决定了页面上元素的排列和展示方式。以下是几种常见的 CSS 布局方法和技术&#xff1a; 1. 浮动布局&#xff08;Float Layout&#xff09; 浮动布局&#xff08;Float Layout&#xff09;曾经是网页设计中创建多列布局…...

kubeadm安装K8s集群基础环境配置

kubeadm安装K8s集群基础环境配置 1.首先确保所有机器可以通信&#xff0c;然后配置主机hosts文件&#xff1b;2.关闭所有节点关闭防火墙、selinux、swap&#xff1b;3.将桥接的IPv4流量传递到 iptables&#xff1b;4.安装常用工具包&#xff1b;5.安装时间同步工具ntpdate&…...

计算机毕业设计Python医疗问答系统 医疗可视化 BERT+LSTM+CRF深度学习识别模型 机器学习 深度学习 爬虫 知识图谱 人工智能 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

学在西电录播课使用python下载,通过解析m3u8协议、多线程下载ts视频块以及ffmpeg合并

本文涵盖的内容仅供个人学习使用&#xff0c;如果侵犯学校权利&#xff0c;麻烦联系我删除。 初衷 研究生必修选逃&#xff0c; 期末复习怕漏过重点题目&#xff0c;但是看学在西电的录播回放课一卡一卡的&#xff0c;于是想在空余时间一个个下载下来&#xff0c;然后到时候就…...

攻防世界杂项刷题笔记(引导模式)13-23

引言&#xff1a;14包括提取文件和流量分析&#xff0c;22很新颖&#xff01;&#xff01;其他的都是常规隐写 13.base64stego 经过上一次如来十三掌的磨练&#xff0c;这题在看到题干“十三掌”的时候我是丝毫不慌张的。附件给了压缩包&#xff0c;考虑是不是伪加密&#xf…...

基于单片机的智能农田灌溉节水系统设计及应用

摘 要 &#xff1a; 针对传统的灌溉方法浪费水资源节水系统设计。该系统从节水角度出发&#xff0c;对传感器和主电路进行了设计&#xff0c;主要采集灌溉地的湿度与温度数据&#xff0c;根据测量土壤中的温度与湿度作为主要参数&#xff0c;对农田灌溉节水系统进行实时控制&am…...

高校毕业生离校就业数据分析管理平台的设计与实现(Java毕业设计)教务管理、就业统计

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系统…...

1、SQL语言

分类方式 类别描述 部署方式 嵌入式/单机/双机/集群/分布式/云数据库 业务类型 OLTP数据库/OLAP数据库/流数据库/时序数据库 存储介质 内存数据库/磁盘数据库/SSD数据库/SCM数据库 年代 第一代是单机数据库/第二代是集群数据库/第三代是分布式数据库和云原生数据库/第…...

spark sql 环境安装,java 默认路径和 安装配置!

yum安装java 查看默认路径 update-alternatives --config java # Java 环境变量 export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jreexport PATH$JAVA_HOME/bin:$PATH# Spark 环境变量 export SPARK_HOME/home/vagrant/soft/sparkexport PATH…...

【CMD、PowerShell和Bash设置代理】

【CMD、PowerShell和Bash设置代理】 1. CMD&#xff08;命令提示符&#xff09;临时设置代理&#xff08;只对当前会话有效&#xff09;&#xff1a;查看当前代理设置&#xff1a;清除临时代理设置&#xff1a;永久设置代理&#xff08;对所有新的 CMD 会话有效&#xff09;&am…...

分区之间的一种度量方法-覆盖度量(Covering Metric)

分区之间的一种度量方法——覆盖度量&#xff08;Covering Metric&#xff09;&#xff0c;用于量化一个分区如何被另一个分区覆盖或近似。以下是逐步详细解释&#xff1a; 1. 背景与符号说明 分区的概念&#xff1a; 分区是将一个集合&#xff08;这里是 { 1 , … , n } \{…...

HarmonyOS(64) wrapBuilder 全局@Builder使用利器

WrapBuilder 全局Builder是什么什么时候使用wrapBuilderBuilder的限制参考资料 全局Builder是什么 局部Builder的定义方法如下&#xff1a; //定义局部Builder Builder MyBuilderFunction() {} //使用方法 this.MyBuilderFunction()全局Builder定义语法如下&#xff1a; //全…...

【计算机毕设】基于Spark猫眼电影票房数据分析预测推荐系统(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅

目录 【计算机毕设】基于Spark猫眼电影票房数据分析预测推荐系统&#xff08;完整系统源码数据库开发笔记详细部署教程虚拟机分布式启动教程&#xff09;✅ 一、项目背景 二、研究目的 三、项目意义 四、项目功能 五、项目创新点 六、开发技术介绍 七、算法介绍 八、数…...

问卷调查模板

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>问卷调查</title><style>body {font-fam…...

hadoop单机安装

步骤 1:安装 Java 安装 OpenJDK bash sudo yum install -y java-1.8.0-openjdk 验证 Java 安装 bash java -version 输出类似以下内容表示成功: arduino openjdk version “1.8.0_xxx” 步骤 2:下载 Hadoop 下载 Hadoop 安装包 前往 Hadoop 官方下载页面,获取最新稳…...

Android笔记【15】跳转页面返回信息

一、问题 学习一段代码 val intent Intent(thisSecondActivity, MainActivity::class.java) intent.putExtra("extra_data", data) startActivity(intent) 二、内容 这段代码是在 Android 应用中启动一个新的活动&#xff08;Activity&#xff09;&#xff0c;具…...

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在&#xff0c;每两个网络层之间加入一个残差连接&#xff0c;缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里&#xff0c;设想一个包含诺干层自网络&#xff0c;子网络的函数用H(x)来表示&#x…...

推荐几种主流数据仓库:深度剖析与对比

引言 随着数据量的不断增长&#xff0c;数据仓库技术在企业的数据管理和分析中扮演着越来越重要的角色。不同的数据仓库系统在性能、架构、功能和适用场景上各有特点。本文将详细介绍目前市场上几种主流的数据仓库&#xff0c;帮助你更好地了解各个数据仓库的特性&#xff0c;选…...