本书《构建AI系统:架构与DevOps核心要素》深入探讨了如何将现代软件工程技术与AI模型开发相结合,以构建高质量的AI系统。书中不仅介绍了基础模型、变换器架构等最新技术,还详细讨论了软件架构、DevOps及开发生命周期,帮助读者理解如何在实际项目中应用这些技术。通过三个实际案例研究,包括使用预训练语言模型进行招标、为澳大利亚中小企业提供聊天机器人,以及预测银行客户流失,本书展示了如何应对AI系统中的挑战,如性能、可靠性、安全性和隐私保护。此外,书中还强调了多学科团队合作的重要性,解决了不同背景下的术语差异问题,确保团队成员能够在同一页面上讨论和解决问题。
2026-09-29 11:25:17 10.58MB AI DevOps Software Engineering
1
实用的Ring-LWE密钥交换实现 该软件为纯C(C99标准)。 编译已在Linux上使用gcc进行了测试。 依赖项是glibc-devel和openssl-devel,或其他平台上的等效项。 Makefile中的注释描述了如何在不使用openssl-devel的情况下进行编译,但这并不安全,请参见下文。 编译所有内容(模拟器,基准测试和测试向量): 要运行所有已编译的程序:进行测试 该软件提供了一种实用且有效的类似于Diffie-Hellman的密钥交换的实现,可证明该方法被动地抵御了量子和经典对手的攻击。 它基于带有错误的环学习(ring-LWE)问题,涵盖了一系列安全级别和公钥大小。 它可以很容易地扩展到主动安全版本和经过身份验证的版本。 密钥交换由整数m和q,对帐方法和采样方法参数化。 我们给出m为2的幂且m为质数的情况的代码。 当m为2的幂时,公钥是m个整数的数组,范围为
2026-09-28 22:46:00 686KB
1
### Spring Boot 学习笔记之热部署与代码变更检测 #### 概述 Spring Boot 是一个基于 Spring 的框架,旨在简化新 Spring 应用程序的初始设置和开发过程。Spring Boot 的目标是允许开发者“只是运行”,即尽可能减少配置和其他形式的样板代码。在实际项目开发过程中,开发人员经常会遇到修改代码后需要重新启动应用才能看到效果的问题,这不仅增加了开发时间成本,也降低了开发效率。因此,热部署和代码变更检测成为了提高开发效率的关键技术之一。 #### 热部署与代码变更检测方案 热部署和代码变更检测是开发者在开发过程中非常重要的功能。它们可以帮助开发者在修改代码后无需重新启动应用即可看到结果。本文将详细介绍如何在 Spring Boot 项目中实现热部署和代码变更检测。 #### 实现方案 1. **使用 springloaded 进行热部署** - 在 `pom.xml` 文件中添加以下依赖配置: ```xml org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.4.RELEASE repackage exec ``` - 下载 `spring-loaded-1.2.4.RELEASE.jar` 文件并放置于项目的 lib 目录下,同时设置 IDEA 的 run 参数中的 VM 参数为 `-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar-noverify`。这样,在使用 `run as Java Application` 方式启动时,可以实现热部署。 2. **使用 spring-boot-devtools 进行热部署** - 添加 `spring-boot-devtools` 依赖包至 `pom.xml` 文件中: ```xml org.springframework.boot spring-boot-devtools true true ``` - 添加 `spring-boot-maven-plugin` 配置至 `pom.xml` 文件的 `` 节点中,并设置 `` 属性为 `true`,确保 devtools 能够正常工作: ```xml org.springframework.boot spring-boot-maven-plugin true ``` - 使用 spring-boot-devtools 的核心原理是利用两个 ClassLoader 分别加载静态类和可变类。当代码发生变更时,会抛弃旧的 restartClassLoader 并重新创建一个新的,从而实现快速重启。 #### 测试与验证 - 修改任何类文件并保存,应用程序应自动重启。 - 修改配置文件并保存,应用程序同样应自动重启。 - 修改页面模板文件(例如 Thymeleaf)并保存,页面应自动刷新。为了实现这一点,可以在 `application.properties` 文件中设置 `spring.thymeleaf.cache=false`。 #### 问题及解决 针对某些特定情况,如添加新的方法后无法进行热部署,可以通过使用 `spring-boot-devtools` 来解决这一问题。这是因为 `spring-boot-devtools` 采用了更为高级的机制来监控代码的变化,并在必要时重新启动应用,以确保所有更改都能及时生效。 #### 总结 热部署和代码变更检测是提高开发效率的有效手段。通过在 Spring Boot 项目中集成 `springloaded` 或 `spring-boot-devtools`,可以显著提升开发体验,使开发者能够专注于业务逻辑的实现而非频繁的重启过程。希望本文能帮助到正在学习或使用 Spring Boot 的开发者们。
2026-06-04 12:50:47 941KB springBoot
1
本文主要探讨了通过紫外诱变技术对苏云金芽孢杆菌(Bacillus thuringiensis, Bt)进行变异处理,筛选出一种高度抗紫外线辐射且对蚊子具有高毒杀活性的突变株LLP29-M19,并对该突变株的生物学特性进行了详细研究。 紫外诱变是微生物育种中常用的物理诱变方法之一。其主要原理是通过紫外光对微生物的DNA进行照射,造成DNA序列的损伤,从而引起突变。这种物理诱变方法无需添加任何化学物质,因此,能有效避免外源添加剂对菌株产生影响。在本研究中,通过19轮次的紫外光照射,成功筛选出了一株具有高度紫外线抗性的突变株LLP29-M19。 研究发现,LLP29-M19突变株对紫外线辐射的抵抗时间可达到67分钟,且对蚊子的致死率达到95%,较原株LLP29的90%略有增加。形态学、质粒谱和蛋白谱分析显示,LLP29-M19与LLP29相比没有发生显著变化,但其生理和生化特性反应出现了一些变化,包括对果糖、葡萄糖、木糖、蘑菇、厌氧糖葡萄糖和MacConkey琼脂的反应。这些特性表明,通过紫外诱变改善Bt的紫外线抗性是安全且有效的,并且具有显著的生态和经济效益。 苏云金芽孢杆菌是一种革兰氏阳性、孢子形成细菌,以其产生具有特异性杀虫活性的昆虫晶体蛋白(ICPs),也称为δ-内毒素而著名。ICPs对包括鳞翅目、双翅目、鞘翅目、同翅目和线虫在内的16个目超过3000种害虫具有特异性杀虫活性。重要的是,ICPs对人类和动物无害,对环境友好。因此,苏云金芽孢杆菌已成为农业、林业和公共卫生害虫控制中生产最多、使用最广泛的生物农药。然而,苏云金芽孢杆菌的活性成分,即孢子和ICPs对紫外线辐射非常敏感,导致其在田间条件下的持久性较短,这已成为Bt作为杀虫剂广泛使用的主要限制因素之一。 苏云金芽孢杆菌的紫外线抗性提高有两种主要方法:一是通过紫外诱变技术,如本研究中提到的,另一种则是通过基因工程手段。例如,通过添加一些能够增强紫外线抗性的外源基因,或者通过定向进化等手段筛选出能够抗紫外线的突变菌株。但是,基因工程方法往往需要对微生物基因组进行精确的编辑,这可能会带来基因改造的争议,而物理诱变方法则避免了此类问题。 通过上述内容,我们可以了解到,紫外诱变技术作为一种物理诱变方法,在微生物变异育种中具有重要的应用价值,尤其在提高生物农药苏云金芽孢杆菌的紫外线抗性和稳定其生物活性方面,具有其独特的优点和优势。同时,这种提高Bt紫外线抗性的方法避免了外部添加剂对菌株的影响,是一种安全、有效且具有重要生态和经济效益的方法。
2026-06-01 23:07:00 502KB 首发论文
1
《Guns技术文档v1.0》是一份详尽的技术指南,主要针对Guns框架进行深入解析,结合了Java和SpringMVC的技术精髓。Guns是基于SpringBoot的快速开发平台,旨在提升开发效率,降低项目开发成本。文档与配套的完整视频教程一起,为学习者提供了丰富的学习资源,20节精心制作的视频教程涵盖了从基础到高级的全面内容,确保用户能够快速上手并精通Guns框架。 Guns的核心特性包括但不限于以下几点: 1. **模块化设计**:Guns采用模块化设计,将功能拆分为独立的模块,如权限管理、代码生成、日志管理等,方便开发者根据需求选择和扩展。 2. **SpringBoot集成**:基于SpringBoot的轻量级框架,简化了项目的配置和部署,让开发者更专注于业务逻辑的实现。 3. **SpringMVC支持**:Guns深度整合SpringMVC,提供了强大的控制器和视图层处理能力,支持RESTful API设计,增强了前后端分离的能力。 4. **MyBatis增强**:通过封装MyBatis,Guns提供了一套便捷的数据库操作接口,简化了SQL的编写,同时提供了动态SQL的功能。 5. **权限控制**:内置RBAC(Role-Based Access Control)权限管理模型,支持多维度权限控制,确保系统安全。 6. **代码生成器**:内置的代码生成器可以自动生成基本的CRUD操作代码,大大提高了开发效率。 7. **日志记录**:提供了完善的日志记录和查询功能,方便后期问题排查和系统维护。 8. **API文档生成**:自动化的API文档生成,便于团队协作和对外接口的文档提供。 9. **前端框架集成**:Guns通常会集成现代化的前端框架,如Element UI或Ant Design,提供美观且用户体验良好的界面。 学习《Guns技术文档v1.0》的过程中,配合视频教程,可以更好地理解Guns的架构设计和使用方法。例如,视频教程可能涵盖如何搭建开发环境、创建第一个Guns项目、理解Guns的模块结构、配置权限管理、使用代码生成器以及如何进行系统优化等关键步骤。 在阅读PDF文档时,可以重点关注以下几个部分: 1. **快速入门**:了解如何安装和初始化Guns项目,包括依赖的配置和启动流程。 2. **核心概念**:理解Guns的模块化设计、SpringBoot和SpringMVC的整合方式。 3. **权限管理**:学习RBAC模型的实现细节,以及如何设置角色和权限。 4. **代码生成**:掌握如何使用代码生成器自定义模板,自动化生产代码。 5. **API调用**:熟悉如何通过RESTful API进行系统间的交互和数据操作。 《guns 视频地址.txt》文件很可能是视频教程的链接列表,按照顺序观看这些视频,可以更直观地看到每个知识点的演示和实践过程,帮助理论知识与实际操作相结合。 Guns技术文档和视频教程为开发者提供了一个全面了解和掌握Guns框架的高效途径,无论是初学者还是经验丰富的开发者,都能从中受益匪浅,提升开发技能,提高工作效率。
2026-06-01 17:11:19 2.79MB guns java springmvc
1
RabbitMQ 消息持久化与 Spring AMQP 实现详解 RabbitMQ 的消息持久化是指在 RabbitMQ Server 中保留消息的机制,以便在 Server 崩溃或重启后可以恢复消息。消息持久化是通过在交换器、队列和消息三个方面实现的。 第一步,交换器的持久化。交换器是 RabbitMQ 中的一种路由机制,用于将消息路由到队列中。为了实现交换器的持久化,需要在创建交换器时将 durable 参数设置为 true。例如,使用原生 RabbitMQ 客户端可以使用以下代码: channel.exchangeDeclare(EXCHANGE_NAME, "topic", true); 第二步,队列的持久化。队列是 RabbitMQ 中用于存储消息的数据结构。为了实现队列的持久化,需要在创建队列时将 durable 参数设置为 true。例如,使用原生 RabbitMQ 客户端可以使用以下代码: channel.queueDeclare(QUEUE_NAME, true, false, false, null); 第三步,消息的持久化。消息是 RabbitMQ 中的基本数据单元。为了实现消息的持久化,需要在发送消息时将消息的持久化参数设置为 true。例如,使用原生 RabbitMQ 客户端可以使用以下代码: channel.basicPublish("", queue_name, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes()); 在 Spring AMQP 中,可以使用 Spring ProvidedTemplate 来实现消息的持久化。Spring AMQP 提供了一个 RabbitTemplate,用于发送和接收消息。例如,使用 Spring AMQP 可以使用以下代码: rabbitTemplate.convertAndSend(exchange, routeKey, message); 在上面的代码中,convertAndSend 方法将消息转换为 RabbitMQ 可以理解的格式,并将其发送到交换器中。 消息持久化的实现方式有多种,包括使用原生 RabbitMQ 客户端和使用 Spring AMQP。无论使用哪种方式,消息持久化都是 RabbitMQ 中的一种重要机制,用于确保消息的可靠性和可用性。 在 RabbitMQ 中,消息持久化是通过在交换器、队列和消息三个方面实现的。交换器的持久化是指在创建交换器时将 durable 参数设置为 true;队列的持久化是指在创建队列时将 durable 参数设置为 true;消息的持久化是指在发送消息时将消息的持久化参数设置为 true。 在 Spring AMQP 中,消息持久化是通过使用 RabbitTemplate 实现的。RabbitTemplate 提供了多种方法来发送和接收消息,例如 convertAndSend 方法和 receive 方法。使用 RabbitTemplate 可以简化消息的发送和接收过程,并确保消息的可靠性和可用性。 消息持久化是 RabbitMQ 中的一种重要机制,用于确保消息的可靠性和可用性。无论使用原生 RabbitMQ 客户端还是 Spring AMQP,消息持久化都是 RabbitMQ 中的一种基本机制。
2026-05-31 13:00:07 49KB rabbitmq 消息持久化 spring amqp
1
随着数字时代的到来,信息技术已经渗透到我们生活的方方面面。尤其是在教育领域,数字化管理工具的应用变得越来越普遍。其中一个非常实用的例子就是自习室座位预约系统的开发。本系统采用了流行的SpringBoot框架结合MySQL数据库,以及Vue前端技术,形成了一个功能完备的座位预约平台。通过这个系统,学生可以非常方便地在线预约或取消自习室座位,大大提高了自习室座位的使用效率,同时降低了传统管理方式中可能出现的混乱和不公平现象。 在技术实现上,SpringBoot框架以其轻量级、易部署的优势成为了很多后端开发者的首选。它简化了基于Spring的应用开发过程,能快速创建独立的、生产级别的Spring基础的应用。MySQL作为一个开源的关系型数据库管理系统,被广泛使用,其稳定性和高性能为本系统的数据存储提供了可靠的保障。Vue.js则是一个构建用户界面的渐进式框架,它易于上手且高效,特别适合构建单页应用程序(SPA),使得系统的前端界面响应迅速、交互友好。 开发一套自习室座位预约系统不仅仅是一个技术挑战,也是一个涉及管理理念、用户体验和数据安全的综合问题。系统需要有一个直观易用的用户界面,让用户可以快速上手预约或取消操作。系统后端需要处理高并发的预约请求,并确保数据的一致性和准确性,这涉及到数据库事务和并发控制等高级技术。此外,系统的安全性也不容忽视,需要采取措施保护用户数据不被未授权访问或篡改。 本套项目文件中除了包含了完整的系统源代码,还包括了毕业论文和开题报告,这些都是系统开发过程中形成的文档资料。毕业论文通常会详细介绍系统设计的理念、技术选型的理由、系统架构的组成、关键技术的实现方法以及项目的测试情况。开题报告则记录了项目的初期构思、需求分析、可行性研究等。这些文档对于理解系统开发的全过程至关重要,也对后来者具有很好的参考价值。 至于答辩PPT,则是项目完成后的成果展示。它通常包括项目的背景、目标、实现功能、技术路线、测试结果以及实际运行情况等。通过精心制作的PPT,可以让答辩评审更直观地了解项目的精华所在。 这个自习室座位预约系统是一个集成了前端、后端以及数据库技术的综合性项目,它不仅仅是一个技术实现,更是一个面向实际问题提供解决方案的案例。通过这个系统的设计与实现,可以体会到软件工程中系统分析、设计、编码、测试和部署的各个环节,对于学生来说,是一个很好的实践机会,能够将理论知识与实际问题相结合,为未来的专业工作打下坚实的基础。
2026-05-29 15:16:41 14.83MB java
1
spirngboot购物系统,比较完善系统,比较适合基础学习springboot,属于spingboot的小demo
2026-05-29 10:40:20 35KB springboot demo
1
内容概要:Convert to Rinex 4.0.1.8版本发布,主要用于将Trimble GNSS测量文件(如DAT、T00、T01、T02、T04、RT17、RT27或.cap格式)转换为RINEX 2.10到4.01版本。新特性包括支持RINEX 4.01、QZSS L6输出(仅限T04文件)、命令行和参数文件中新增“截断标记名称”选项、混合导航数据到一个文件、长文件命名约定输出以及剥离星座数据的功能。默认输出版本为RINEX 3.04。修复了多个错误,如天线序列号不再被截断为8个字符、修复了双天线数据的有效观测文件、防止在转换损坏的T0x文件时崩溃等。; 适合人群:从事GNSS数据处理、地理信息系统(GIS)相关工作的技术人员,特别是对RINEX格式有需求的研究人员和工程师。; 使用场景及目标:①需要将不同格式的GNSS测量文件转换为标准RINEX格式进行后续处理;②希望利用新特性如QZSS L6输出、混合导航数据等功能提高数据处理效率和精度;③解决之前版本中存在的问题,确保数据转换过程更加稳定可靠。; 其他说明:用户可以通过命令行操作来使用该工具,具体参数设置包括指定输出路径、观测者信息、天线编号及高度、接收机编号、是否包含多普勒值或SNR等。此外,还提供了详细的参数文件配置指南,方便用户批量处理文件。
2026-05-28 15:52:10 183KB GNSS RINEX Trimble 卫星导航
1
该代码在ACTEL的IP源码上进行了一定修改。实测可用。 1、ARINC 是美国航空无线电公司英文字头的缩写, 该公司1977年7月21日出版了“ARINC 429规范”一书,429规范就是飞机电子系统之间数字式数据传输的标准格式,在飞机上使用429总线的电子设备均应遵守这个规范,这样才能保证电子设备之间数据通讯的标准化,通用化。此代码是基于Verilog实现了该协议的实时收发功能,展示了在FPGA上实现复杂通信协议的能力。 2、ARINC429协议定义了航空电子设备间的数据传输格式,包括数据速率、数据长度(18或32位)、数据类型(如数值、指示等)以及错误检测机制(如奇偶校验)。协议规定了数据的发送(L BIT)和接收(R BIT)方向,以及不同类型的报文标识符(Label),确保数据在复杂系统中的准确无误传递。 3、实时收发意味着系统能即时处理输入数据并迅速响应,这对航空电子设备间的交互至关重要,因为任何延迟都可能影响飞行安全。设计可能包括接收解码模块,用于解析接收到ARINC429数据,以及发送编码模块,将要发送的数据转换为符合协议格式的信号。
2026-05-27 14:22:11 10KB ARINC429 航空无线电 FPGA verilog
1