自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(436)
  • 收藏
  • 关注

原创 Conda命令整理

除了基本的包和环境管理功能外,Conda 还提供了许多高级用法和技巧,帮助用户更高效地管理和维护 Python 环境。:Conda 默认使用 Anaconda 渠道来获取软件包,但有时候你可能需要从其他渠道获取特定的软件包。:你可以将一个环境的配置信息导出到一个 YAML 文件中,以便在其他机器上或者在未来重新创建这个环境。:如果你需要创建自己的 Conda 软件包,可以使用 Conda-Build 工具。:当你已经配置好了一个复杂的环境,不想在新项目中重新配置时,可以使用环境克隆功能。

2025-02-11 23:32:11 724

原创 PlantUML 总结

是一个开源工具,允许用户通过简单的文本描述来生成各种UML图表。它支持多种图表类型,包括但不限于序列图、用例图、类图、活动图等。除了活动图,PlantUML还支持其他多种图表类型,如用例图、类图、时序图等。你可以通过设置皮肤参数来自定义图表的外观。

2025-02-10 00:10:28 611

原创 PlantUml常用语法

PlantUml常用语法,将从类图、流程图和序列图这三种最常用的图表类型开始。

2025-02-10 00:01:26 1199

原创 python中Mako用法

Mako 是一个轻量级的 Python 模板库,它以其高效的代码生成和灵活的表达能力著称,常用于 Web 开发和静态文件生成。以下是对 Mako 的核心 API介绍。Mako 的核心在于Template类,通过模板字符串生成动态内容。Mako 支持 Python 的控制结构,比如if和for。

2025-01-21 23:45:40 928

原创 通过java工程识别领域模型

识别业务相关类:根据类名和字段识别可能的领域实体。分析类字段和方法:通过类的字段和方法确认它们是否代表了业务概念。分析 RESTful API:通过控制器方法和请求体/响应体识别领域模型。分析 MyBatis 映射:通过 MyBatis 映射文件识别数据库表和领域模型的关系。构建领域模型文档:将上述信息整合成文档,帮助理解系统的领域架构。

2025-01-20 23:21:51 575

原创 Python 来分析现有的 Java 项目

通过 Python,我们可以分析现有的 Java 项目,提取 Spring + MyBatis 架构的关键信息。解析 Maven 项目结构:提取依赖和模块信息。解析 Spring 配置:提取与@Service等相关的类和方法。解析 MyBatis 配置:提取 SQL 映射和查询。**静态分析 Java 代码**:提取类、方法、注解等信息。5.自动生成架构设计:生成类图、API 文档等。。

2025-01-20 23:09:49 1038

原创 C++中.h文件中的实现方法

在C++中,.h文件和Java中的接口有一些相似之处,但它们的作用和用法还是有很大区别。具体来说,.h文件通常用于声明,但也可以包含一些实现,特别是在某些特殊情况下。

2025-01-19 21:14:50 839

原创 C++字符串判空

对于empty()是最优的判断方式,时间复杂度为O(1),并且语义清晰。对于C风格字符串,检查指针是否为空或者检查第一个字符是否为'\0'都是O(1)的高效方法。使用==""进行比较的方法不推荐,尤其是对于较长的字符串,因为它的性能较差。

2025-01-19 17:51:33 969

原创 Rust 中构建 RESTful API

每个框架有不同的特点、优缺点和适用场景,下面我将介绍几个常用的RustWeb框架,并分析它们的优缺点。Tide是一个简单而现代的Web框架,注重简洁、灵活性和异步编程,适合快速构建RESTfulAPI和微服务。它利用Tokio提供的异步运行时,能够提供高效的并发支持,适合构建可扩展的API服务。异步支持:直到Rocket0.5(目前的版本),异步支持才逐步被引入,虽然现在支持异步,但与ActixWeb或Tide相比,异步的使用还不如这些框架成熟。

2025-01-18 23:58:56 991

原创 Rust 的核心工具链

rustc(编译器):负责将Rust代码编译为机器代码。Cargo(构建和包管理器):负责构建、测试、运行和管理项目依赖。rustup(版本管理器):管理不同版本的Rust工具链。rustdoc(文档生成工具):根据代码中的注释生成API文档。Clippy(代码静态分析工具):分析代码并提供优化建议。Rustfmt(代码格式化工具):自动格式化代码。(IDE插件):提供语法高亮、代码补全等开发支持功能。

2025-01-18 23:56:59 866

原创 提示词处理问题的三种方法

通过精心设计引导**思维链(Chain of Thought)**的高级提示词,可以使模型在处理问题时更加深入和系统。问题摘要(Step Back):通过引导模型从高层次抽象出问题本质,避免关注不必要的细节。问题分解(Decomposition):通过将复杂问题拆解成更小的子问题,逐步推理并解决。问题假设(HyDE):通过构建不同的假设,引导模型推理多种可能的情境,帮助评估最佳解决方案。这种方法可以帮助模型逐步推理、精确分析,从而解决更复杂、更加不确定的问题。

2025-01-16 22:03:39 1013

原创 Self-RAG

Self-RAG 是一种将生成模型与自我引用增强结合的技术,通过在生成过程中多次引用和修正自己的输出,来提升模型生成的质量。它能够通过层层推理和自我改进,逐步产生更高质量的答案,尤其适合于复杂的推理任务。尽管存在计算成本和潜在的错误积累问题,但这种方法为生成式AI带来了新的思维方式和更高的解答精度。

2025-01-16 22:03:10 1196

原创 RAG多路召回

是指在信息检索系统中,为了提升检索的全面性和准确性,通过多条不同的检索路径或不同的检索策略来获取信息的技术。多路召回的核心思想是,单一的检索路径可能会遗漏一些重要的信息或没有覆盖所有可能相关的内容,因此需要并行或串行地采用多种检索方法来提高最终的召回率和准确性。多路召回通过多个检索策略和模型的并行运行,能够提升信息检索的多样性和精准度。模型中,多路召回通常用于增强检索阶段的多样性和精准度。通过结合不同的召回策略,系统能够在多个来源或角度中获取信息,从而改善生成模型的输入质量和最终生成的答案。

2025-01-15 00:42:25 1787

原创 RAG检索前改进

通过以上。

2025-01-15 00:27:44 925

原创 RAG 带来的一些问题

虽然。

2025-01-14 23:30:15 1141

原创 RAG 测评基线

RAG 基线的设立是通过定义一组衡量标准,来评估和分类不同的业务、项目、指标或任务的表现。

2025-01-14 23:24:46 566

原创 VS Code 中,GitLens 和 Git Graph

GitLens是一个功能强大的 Git 扩展,帮助你查看文件历史、行级注释、提交历史和作者信息等,增强 Git 操作的可视化和便利性。** 提供了直观的图形化 Git 提交历史视图,方便管理分支、查看提交差异以及进行分支操作。

2025-01-13 03:05:54 2967

原创 vscode如何能像idea一样提交代码

在VS Code中,你可以通过以下方式像使用源代码管理面板来查看文件变更、暂存和提交代码。配合命令面板进行推送、拉取、切换分支等操作。使用GitLens和Git Graph插件来增强 Git 的功能,提供更多的历史查看和分支管理工具。

2025-01-13 03:04:59 1138

原创 安装 GCC 等工具的常见方法

使用包管理器:最简便的安装方法,适用于大多数用户,直接通过系统的包管理器安装 GCC 和相关工具。从源码编译安装:适用于需要特定版本或定制安装的用户。可以通过--prefix参数来指定安装路径,从而不影响全局环境变量。环境变量设置:通过临时设置、为特定用户设置或系统级别设置来调整环境变量,确保只对特定的安装版本生效,而不干扰系统默认版本。。

2025-01-12 02:26:54 687

原创 `make -j$(nproc)` 命令时指定特定的环境变量

无论你选择哪种方式,确保在编译 GCC 时,动态链接器能够找到所需的库文件是非常重要的。通过上述方法之一设置和环境变量,可以确保 GCC 在编译过程中正确找到并使用这些库文件。完成这些设置后,再次运行应该不会再出现找不到的问题。

2025-01-12 00:24:30 311

原创 Obsidian学习笔记

Obsidian 是一个功能强大且灵活的知识管理工具,适用于需要组织、管理和链接大量信息的用户。它的双向链接、图谱视图、插件扩展等特性,使其在个人知识管理、学习笔记、研究记录、项目管理等方面非常有效。通过合理使用 Obsidian 的链接、标签、图谱视图等功能,可以轻松创建一个个人化的知识库,并从中发现信息之间的关联,提升工作和学习的效率。

2025-01-11 23:52:36 1257

原创 patchelf如何使用?

patchelf是一个用于修改 ELF(Executable and Linkable Format)文件的工具,主要用于更改可执行文件和共享库的依赖关系和运行路径。它可以帮助你设置或更改动态链接器(interpreter)和 RPATH(运行时搜索路径),这对于在非标准路径下安装 glibc 或其他库非常有用。以下是patchelf。

2025-01-11 01:59:36 1428

原创 C++ 各标准的新特性

C++标准新特性C++11自动类型推断、右值引用、constexpr、范围-based for 循环、Lambda 表达式C++14、Lambda 泛型支持C++17、结构化绑定声明、C++20| 模块、概念、协程、每个新标准引入的新特性都增强了 C++ 的表达能力和编程效率,通过这些新特性,可以更加高效、安全和简洁地编写 C++ 代码。

2025-01-10 23:30:18 918

原创 C++的标准和C++的编译版本

C++标准定义了 C++ 编程语言的规则和功能,不同版本的标准提供了不同的特性和功能。例如,C++11、C++14、C++17、C++20 分别代表了不同的语言和库特性。编译器版本负责将 C++ 源代码转换为可执行代码。每个编译器版本都支持不同的 C++ 标准,较新的编译器支持较新的标准,并在性能、错误修复和新特性方面有更多改进。二者的关系:编译器版本决定了支持的 C++ 标准,而编译选项(如-std=c++xx)允许你选择使用哪个 C++ 标准。

2025-01-10 23:27:40 1158

原创 TensorFlow 介绍

TensorFlow是一个开源的深度学习框架,由 Google 开发和维护,主要用于构建和训练机器学习模型。它支持大规模的神经网络训练,并且能够在多种平台(如桌面、服务器、移动设备、Web 和云平台)上运行。TensorFlow 提供了强大的工具、库和社区支持,适用于从简单的机器学习任务到复杂的深度学习应用。TensorFlow 是一个强大的深度学习框架,适合用于构建、训练和部署机器学习模型。通过高层的 API 如tf.keras,你可以快速构建神经网络,并通过丰富的功能进行优化、调试和部署。

2025-01-08 23:28:16 884

原创 什么是cline?

Cline 是一个功能强大的 AI 编程助手,专为 Visual Studio Code(VSCode)设计。它通过结合大语言模型(如 Claude、GPT 等)和工具链,帮助开发者自动化任务、生成代码、执行命令等。Cline 通过分析项目的目录结构和代码语义提供上下文支持。

2025-01-08 23:03:45 4568

原创 Windows上使用VSCode开发linux C++程序

插件适用于需要通过SSH连接到Linux远程机器进行开发的场景。插件适用于在Docker容器中开发和调试的场景。C/C++插件可以帮助你在VSCode中进行C++开发和调试,同时可以配置远程调试。使用这些工具和插件,你可以在Windows上通过VSCode远程连接到Linux机器或Docker容器,实现无缝的开发和调试体验。

2025-01-07 23:55:31 786

原创 在 Linux 上调试 C++ 程序

GDB是最常用的调试器,适合大多数调试场景。VSCode提供了图形化的调试界面,结合 GDB 或 LLDB,适合喜欢图形化工具的开发者。LLDB是另一个强大的调试器,尤其适合 macOS 和现代 Linux 系统。Valgrind和专注于内存问题的检测,帮助你发现潜在的内存泄漏和非法访问。GProf用于性能分析,帮助你优化程序的性能。

2025-01-07 22:53:31 871

原创 什么是 LuaJIT?

LuaJIT是一个高效的即时编译器(JIT,Just-In-Time Compiler)实现,专门用于将Lua代码编译为机器代码,从而极大地提升了 Lua 代码的执行速度。LuaJIT 继承了 Lua 语言的简洁性和灵活性,同时通过 JIT 编译技术提高了性能,使其在高性能计算的场景下成为理想选择。LuaJIT是 Lua 语言的高性能实现,使用 JIT 编译技术显著提高了 Lua 的执行速度。应用场景包括游戏开发、嵌入式系统、高性能计算和自动化脚本等。

2025-01-06 22:39:11 1991

原创 什么是 pybind11?

pybind11pybind11是一个强大的工具,它使得 C++ 和 Python 可以轻松互操作。它让开发者能够在 Python 中直接调用 C++ 编写的高效算法,而不需要重写 Python 代码。通过pybind11,我们可以将现有的 C++ 库集成到 Python 中,或者将性能关键的部分用 C++ 实现,以便在 Python 中使用。通过pybind11,你可以将 C++ 中的类和函数暴露给 Python。你可以通过pybind11。

2025-01-06 22:36:36 1283

原创 C++移动语义

在 C++ 中,移动语义是一种优化机制,允许资源(例如动态分配的内存、文件句柄、数据库连接等)从一个对象 “转移” 到另一个对象,而不是通过复制来共享资源。它通过将对象的内部资源的所有权从一个对象转移到另一个对象,从而避免了不必要的深拷贝,显著提高了性能,尤其在处理大型数据时。移动语义依赖于右值引用(rvalue references)和移动构造函数移动赋值运算符的支持。通过这些机制,C++ 能够避免昂贵的对象拷贝操作,而是通过“移动”数据的所有权来高效地管理资源。移动语义通过右值引用和移动构造函数。

2025-01-05 21:28:46 941

原创 解决 C++ 中头文件相互引用和解耦问题

前向声明:减少头文件间的相互依赖,避免不必要的引用。将实现转移到源文件:让头文件只包含接口声明,避免实现代码直接暴露。接口和抽象类:使用纯虚类或接口来解耦类之间的依赖。依赖注入:通过构造函数或方法注入依赖,减少类间的直接依赖关系。智能指针:利用智能指针来管理对象的生命周期,避免内存管理问题。分离接口和实现:将接口和实现分开,提供更灵活的替换机制。这些方法和思想的目标是将模块化的设计与低耦合、高内聚结合起来,提高代码的可维护性、可扩展性和复用性。

2025-01-05 15:50:18 948

原创 什么是 C++ 的序列化?

序列化(Serialization)是指将对象的状态转换为可以存储或传输的格式的过程。它使得对象能够以二进制或文本的形式被保存到文件中,或者通过网络发送到远程计算机上,稍后可以重新构造出来(称为反序列化或 deserialization)。在 C++ 中,序列化的目的是将内存中的对象转换成一种持久化的格式,以便它可以存储在文件中、发送到网络、或者存储在数据库中,并且之后能够恢复为原始对象。序列化不仅涉及数据本身,还包括对象的结构和状态。C++ 的序列化。

2025-01-04 23:47:41 707

原创 什么是 GTest?

GTest(Google Test)是一个由 Google 开发并开源的 C++ 单元测试框架。它提供了一组强大的功能和工具来帮助开发人员为他们的 C++ 代码编写和执行单元测试。单元测试是软件开发中的一种常见实践,它指的是对单独的代码单元(如函数、类方法等)进行独立验证,确保每个部分都按预期工作。GTest 是用于 C++ 中实现这种测试的一种工具。自动化测试过程提供易于理解和管理的测试输出提供各种测试断言(例如检查函数输出是否符合预期)

2025-01-04 23:13:51 1192

原创 C++20 引入了协程

C++20 引入的协程为处理异步任务和并发编程提供了更简洁的方式。通过使用co_awaitco_return和co_yield,协程能够在异步操作时挂起执行,等待结果返回或生成多个值,从而避免了传统的回调地狱或复杂的线程管理。co_await用于挂起协程并等待异步操作。co_return用于返回一个值并结束协程。co_yield用于生成器模式,逐个返回值并暂停协程,直到恢复。

2025-01-03 05:22:19 1199

原创 C++11 的线程相关

C++11 的线程库和相关工具为我们提供了丰富的工具来管理线程、进行异步任务和实现线程间同步。提供了最基础的线程功能,而std::async和提供了更高层次的异步任务管理,使得线程编程更加简洁。通过std::mutex等同步工具,我们可以确保线程安全地共享资源。在实际开发中,我们推荐尽量使用std::async和,以避免直接暴露线程细节,减少并发编程的复杂度。

2025-01-03 05:21:11 753

原创 C++原子变量

原子变量是 C++11 提供的强大工具,通过保证原子操作的不可分割性,使得多线程编程中对共享资源的访问变得安全和高效。原子变量的使用可以减少加锁操作,避免锁竞争,提升性能。C++ 提供了多种原子操作,如storeloadfetch_addfetch_subexchange等,可以帮助开发者实现高效的无锁编程。

2025-01-02 02:30:00 1090

原创 什么是线程局部存储(TLS)

线程局部存储(Thread Local Storage,简称 TLS)是操作系统或编程语言提供的一种机制,用于在多线程程序中为每个线程创建独立的变量副本,使得每个线程都能有自己独立的存储空间。这样,多个线程在访问这些变量时不会互相干扰,避免了数据竞争和线程同步的复杂性。每个线程都拥有该变量的独立副本。当线程结束时,线程局部存储的资源会自动释放。每个线程访问自己的副本时不需要加锁,因此访问速度比共享数据更快。线程局部存储(TLS)

2025-01-02 02:00:00 650

原创 为什么需要 std::call_once?

是 C++ 标准库中的一个函数,用来确保某个操作仅被执行一次,通常用于线程安全的初始化操作。它常与结合使用,后者用于标记某个操作是否已经执行过。

2025-01-01 21:55:25 308

原创 认识算法与迭代器在 C++ 中的应用

从纯理论的角度来看,算法是一系列定义明确的操作步骤,通常在有限的步骤内得到结果。计算机科学中有很多种算法,比如排序算法、查找算法、遍历算法、加密算法等。它们在不同的场景下提供不同的解决方案。然而,在C++中,算法的定义要更为狭窄。它指的是工作在容器上的一些泛型函数,这些算法会对容器内的元素进行各种操作。C++ 标准库提供了上百个算法,涵盖了绝大部分日常开发需求,像removesortmake_heap等,能够帮助我们快速高效地完成常见操作。然而,如果我们“说白了”,所有的算法本质上都是通过for或。

2025-01-01 09:35:27 687

开源下载~~~~~~~~~~~~~~~~~~~~~~

开源下载~~~~~~~~~~~~~~~~~~~~~~

2024-11-24

openjdk17 windows 64位免安装下载

openjdk17 windows 64位免安装下载

2024-09-17

yakit 最新版本下载 ~~~~~~~~

yakit 最新版本下载 ~~~~~~~~

2022-11-08

jdk-8u65-windows-x64免安装版本

jdk-8u65-windows-x64免安装版本

2022-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除