自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿视角

用简单的语言,说明复杂的道理 —— 一名程序员的阅读心得和没有头绪的随笔记录。

  • 博客(826)
  • 资源 (10)
  • 收藏
  • 关注

原创 OpenSSL:梳理一下密码算法的密钥类型和密钥文件格式

消息摘要算法用于生成数据的简短摘要,通常用于验证数据的完整性和一致性。MD5:一种广泛使用的消息摘要算法,但已被认为不够安全,不推荐在新系统中使用。SHA-1:一种较旧的消息摘要算法,也已被认为不够安全。SHA-256SHA-384SHA-512:SHA-2家族的消息摘要算法,提供了更高的安全性。BLAKE2bBLAKE2s:一种较新的消息摘要算法,提供了较高的性能和安全性。

2024-11-01 09:57:45 617

原创 Rust: 加密算法库 ring 如何用于 RSA 数字签名?

本来用 rsa 库基本搞定,但文心一言建议改用 ring 库。原因是 rsa 库已经放弃维护,而 ring 库性能公认很好。但是如何进行 RSA 数字签名,网上几乎查不到这方面材料。仔细查看了 ring 库的源代码和代码注释,终于完成趟坑。总结一下供大家参考。

2024-10-31 21:32:11 1157

原创 Rust:Vec<u8> 与 [u8] 之间的转换

在 Rust 中,Vec是一个动态数组,而&[u8]是一个指向字节切片的不可变引用。这两者之间经常需要进行转换,因为它们在处理字节数据时非常常见。

2024-10-31 15:01:24 489

原创 OpenSSL:生成 DER 格式的 RSA 密钥对

生成PEM格式的RSA私钥# 将PEM格式的私钥转换为DER格式# 从PEM格式的私钥中提取PEM格式的公钥# 将PEM格式的公钥转换为DER格式或者,使用# 生成PEM格式的RSA私钥# 将PEM格式的私钥转换为DER格式# 从PEM格式的私钥中提取PEM格式的公钥# 将PEM格式的公钥转换为DER格式这样,你就成功地生成了一对DER格式的RSA密钥对。

2024-10-30 19:56:43 418

原创 Rust:文档注释 //! 和 ///

是 Rust 的官方文档生成器,它可以从源代码中的这些文档注释生成 HTML 或 Markdown 格式的 API 文档,这对于项目的维护和向其他开发者展示 API 非常有用。是一种特殊的文档注释(documentation comment)。它用于为整个模块、结构体、枚举、函数或其他项提供文档说明。(用于紧跟在项之前的文档注释)会被 Rust 的文档工具。生成文档时,这段注释会出现在模块的文档中。注释为整个模块提供了文档说明。捕获,并用于生成 API 文档。在 Rust 编程语言中,

2024-10-30 12:14:14 309

原创 Rust:设计 gRPC 客户端

在 Rust 中编写 gRPC 客户端,你可以使用tonic库,它与 gRPC 协议兼容,并提供了方便的 API 来创建客户端。以下是一个简单的步骤指南,教你如何使用 Rust 编写一个 gRPC 客户端。

2024-10-28 12:19:29 580

原创 Rust:如何设计 gRPC 服务器

gRPC 使用 Protocol Buffers 定义服务和消息。创建一个.proto文件,例如。

2024-10-28 12:09:15 551

原创 Rust: [u8] 与 String 相互转换

使用将有效的 UTF-8 字节数组转换为String。使用将可能不是有效 UTF-8 的字节数组转换为String,但会替换无效字节。使用获取&[u8]切片。使用将String转换为Vec。这些方法应满足你在 Rust 中处理String和[u8]相互转换的大部分需求。

2024-10-23 15:47:39 445

原创 快速了解 Python 官方虚拟环境管理工具 venv

venv是Python标准库的一部分,从Python 3.3版本开始引入,是Python官方推荐的创建和管理虚拟环境的工具。

2024-10-17 14:03:36 779

原创 Windows PowerShell 有没有类似conda的虚拟环境功能?

PowerShell

2024-10-17 14:01:31 533

原创 Windows PowerShell 简介

PowerShell是微软发布的一种命令行外壳程序和脚本环境,它允许命令行用户和脚本编写者利用.NET Framework的强大功能。

2024-10-13 14:52:59 548

原创 12G的RTX 3060显卡在深度学习训练中的应用能力

12G的RTX 3060显卡在深度学习训练中有一定的应用能力,具体能做哪些训练任务,需要考虑模型的复杂度、数据集的大小、训练框架的兼容性等多个因素。

2024-10-13 00:09:51 741

原创 12G显存的显卡能做那些深度学习训练?

12G显存的显卡在深度学习模型训练中具有一定的能力,但具体能够训练的模型类型和规模会受到多种因素的影响,如模型的复杂度、数据集的大小、使用的深度学习框架以及显卡的其他性能参数等。

2024-10-13 00:07:11 445

原创 在Stable Diffusion(SD)中控制场景结构时,选择Canny还是Depth?

通过Canny提取出的边缘信息,可以引导SD模型在生成新图像时保持这些边缘特征,从而实现对场景结构的精确控制。例如,在人物插画中,可以使用Canny来保持人物的轮廓和姿势不变,同时修改背景或添加服饰细节。Depth则用于采集图片的深度信息,它可以帮助还原图片中物体的空间关系,如模特和环境的关系、建筑之间的前后关系等。因此,如果目标是控制场景中的边缘特征和轮廓,同时保持这些特征在生成新图像时的一致性,那么Canny是更好的选择。同时,也需要注意调整相关的参数和设置,以获得最佳的控制效果和图像质量。

2024-10-06 01:06:15 340

原创 Stable Diffusion 常用大模型及其特点

综上所述,SD的常用大模型种类繁多,各有特点。用户可以根据具体需求选择合适的模型进行图像生成或相关任务的处理。

2024-10-05 22:15:15 1087 1

原创 Stable Diffusion 蒙版:填充、原图、潜空间噪声(潜变量噪声)、潜空间数值零(潜变量数值零)

这些模式为Stable Diffusion的用户提供了丰富的图像编辑和重绘选项。用户可以根据实际需求选择合适的模式,以实现所需的图像效果。需要注意的是,不同模式的选择可能会对最终生成的图像产生显著影响,因此建议用户在实际操作前进行充分的试验和比较。

2024-09-26 12:10:48 752

原创 Stable Diffusion的高分辨率修复(Hires.fix)

高分辨率修复(Hires.fix)通过特定的算法和流程,对生成的图像进行放大和重绘,从而增加图像的分辨率和细节。这一过程通常包括两个主要步骤:首先是对图像进行放大,然后是对放大后的图像进行重绘以添加更多的细节。

2024-09-25 23:05:44 758

原创 Stable Diffusion的采样方法

Stable Diffusion的采样方法是模型在生成图像时使用的关键算法,这些方法影响生成图像的质量、样式、速度以及过程的控制程度。

2024-09-25 22:54:29 641

原创 Stable Diffusion ControlNet 的 control model(控制模型)

在Stable Diffusion(SD)中,ControlNet的control model(控制模型)扮演着至关重要的角色,它们是实现精细图像控制的关键组件。

2024-09-25 13:47:08 489

原创 Stable Diffusion 的 ControlNet 主要用途

SD(Stable Diffusion)中的ControlNet是一种条件生成对抗神经网络(Conditional Generative Adversarial Network, CGAN)的扩展技术,它允许用户通过额外的输入条件来控制预训练的大模型(如Stable Diffusion)的生成过程。ControlNet在SD的数据流中扮演着关键角色,它位于模型生成过程的输入端,通过引入额外的条件信息来指导图像的生成。

2024-09-25 13:36:00 622

原创 SD(Stable Diffusion)模型的基本工作数据流

SD模型的基本工作数据流包括数据预处理、潜在空间编码、文本引导下的潜在空间生成、扩散模型生成图像、图像解码以及图像优化与后处理。这些步骤共同构成了SD模型从文本描述到图像生成的完整过程。通过这个过程,SD模型能够生成与输入文本高度匹配的高质量图像。

2024-09-25 12:39:55 730

原创 UTC是什么?

UTC是许多国际时间标准的基础,包括GMT(格林尼治标准时间),尽管GMT在历史上是先于UTC出现的,并且两者在大多数情况下可以互换使用,但UTC是更加精确和科学的标准。UTC是基于国际原子时(TAI)的时间标准,并且考虑了地球自转的不均匀性进行微调,以保持与天文时间(如平太阳时)的近似一致。在编程和计算机系统中,UTC时间也经常被使用,因为它提供了一种可靠的方式来表示和比较时间,而不受地区夏令时或时区变化的影响。在需要全球时间同步的场合,如国际通信、航空航天、金融交易等领域,UTC是不可或缺的。

2024-09-19 16:47:36 384

原创 Rust: AES 加密算法库

在Rust中,进行AES加密通常会用到一些现有的库,因为Rust标准库中并不直接提供AES加密的API。使用这些代码,你可以开始在你的Rust项目中实现AES加密。确保你理解每个步骤的安全性和性能影响。请注意,版本号可能会随着时间推移而更新,请查看最新的crates.io信息。库已标记为不再维护,但仍有大量项目在使用)或更现代的。库由于依赖问题有时可能难以编译,另一个常用的库是。的Rust绑定,但直接支持AES的常用库是。库进行AES加密的示例。这里,我将给出一个使用。

2024-09-19 16:45:13 807

原创 广义相对论和量子力学在那些问题上不能达成一致?

广义相对论和量子力学是现代物理学的两大支柱,它们各自在解释物理现象方面取得了巨大的成功,但在某些问题上却存在显著的差异和无法达成一致的情况。

2024-09-14 11:35:42 332

原创 Rust 编译器使用的 C++ 编译器吗?

Rust编译器,但它们之间可以存在交互,尤其是在Rust与C++进行混合编程时。

2024-09-14 11:27:41 754

原创 Rust:深入浅出说一说 Error 类型

在 Rust 标准库中,`std::io::Error` 是一个用于表示 I/O 操作错误的类型。这个类型是由 Rust 标准库提供的,而不是由用户直接定义的。不过,我们可以根据 Rust 的错误处理机制和类型系统的特点,给出一个示意性的表示,以帮助你理解 `std::io::Error` 是如何被设计的。

2024-09-13 18:03:36 1374 1

原创 Rust:Result 和 Error

在 Rust 编程语言中,错误处理是一个核心部分,用于确保程序的健売性和可靠性。Rust 通过Result枚举和Error特质(trait)来处理错误。

2024-09-12 19:29:06 801

原创 Rust: Warp RESTful API 如何得到客户端IP?

在使用 Rust 的 Warp 框架来创建 RESTful API 时,如果你想要获取客户端的 IP 地址,通常需要在处理 HTTP 请求的函数中查看请求的头部或者底层连接的信息。不过,Warp 本身并不直接提供一个简便的 API 来直接获取客户端的 IP 地址,因为这取决于请求是如何被路由到 Warp 应用的(比如是否使用了负载均衡器、反向代理等)。获取到的 IP 地址(这通常是直接连接到你的 Warp 实例的最后一个设备的 IP 地址,可能是一个反向代理或负载均衡器的 IP 地址)。

2024-09-11 19:02:18 582

原创 Rust:Restful API 服务程序开发详述

hyper库提供了低级别的HTTP/1和HTTP/2协议支持,可以用于构建高性能的HTTP客户端和服务器。它利用Rust的类型系统来确保代码的正确性,并与Rust的异步生态系统无缝集成,支持异步非阻塞I/O。Warp 建立在 hyper 和 Tokio 这两个异步 Rust 运行时之上,因此它自动继承了 HTTP/1 和 HTTP/2 支持、异步功能以及 hyper 被认为是最快之一的 HTTP 实现。

2024-09-03 21:39:07 1656

原创 QT: 为什么不把 showEvent 这一类事件设计成信号?

等事件处理函数设计成信号似乎可以提供更多的灵活性,但实际上,这样做会违背 Qt 事件系统和信号槽机制的设计初衷和用途。事件处理函数和信号在 Qt 框架中扮演着不同的角色,各自有其特定的使用场景和优势。等)并不是被设计成信号(signal)的原因,主要涉及到它们的设计初衷和用途的不同。综上所述,虽然从表面上看,将。和其他事件处理函数(如。

2024-08-30 19:39:59 691

原创 C++:超长字符串常量的三种表示方法

你可以通过将字符串字面量分开写,并用空格、制表符或换行符(除了最后一个字面量)将它们隔开,来隐式地将它们连接起来。从C++11开始,引入了原始字符串字面量(Raw String Literals),允许你避免在字符串内部对特殊字符(如双引号。尽管这主要用于处理包含大量特殊字符的字符串,但你也可以用它来编写跨多行的字符串,只需在字符串开头加上。注意,在原始字符串中,所有的字符都按照字面意义处理,包括空格、制表符和换行符。综上所述,对于在源代码中直接处理超长的字符串常量,推荐使用第一种或第二种方法。

2024-08-28 09:59:12 417

原创 wchar_t, size_t 这些 xxx_t 类型在 C++ 中有哪些?都代表啥意思?

这是一个无符号整数类型,用于表示对象的大小(如数组中的元素数量或结构体占用的字节数)。结尾的类型,但它们可能不是标准C++库的一部分,而是特定于操作系统、编译器或库的。结尾的类型都是C++标准库的一部分。在编写可移植代码时,了解哪些类型是标准库提供的,以及哪些可能是特定于平台或库的,是非常重要的。后缀通常用于表示特定类型的数据,这些类型通常是在标准库中定义的,以便跨平台编程时提供一致性和可移植性。结尾的类型都是标准库的一部分(有些可能是特定平台或库的扩展),但以下是一些常见且标准库中的。

2024-08-24 11:30:45 322

原创 Crypto++:私钥和公钥保存到文件

,这是处理二进制数据(如加密密钥)时的重要步骤,因为它可以防止在写入文件时对数据进行不必要的修改(如换行符的转换)。函数接受两个字符串参数,分别代表私钥和公钥将要保存的文件路径。在Crypto++库中,生成的RSA私钥和公钥可以通过将它们序列化到文件来保存。来将密钥的数据写入到文件中。此外,如果文件打开失败(例如,由于权限问题或磁盘空间不足),函数将抛出一个。在实际应用中,你可能需要更细致地处理这些潜在的错误情况。方法将私钥和公钥编码为DER格式,并通过。将编码后的数据写入到指定的文件中。

2024-08-20 15:32:24 193

原创 Crypto++:系统架构和数据类型

Crypto++(也称为CryptoPP、libcrypto++或cryptlib)是一个免费开源的C++库,提供了多种加密方案和安全编程工具。

2024-08-20 15:05:55 793

原创 C++:基于 QT 和 MinGW,如何使用 Crypto++ 开源代码?

在QT开发环境中使用MinGW编译器结合Crypto++源代码,你需要遵循一系列步骤来配置你的项目以便能够使用Crypto++库。

2024-08-19 10:49:49 538

原创 C++:Crypto++ 入门用法

下载完成Crypto++后,使用这套源代码的主要步骤包括编译源代码生成库文件(静态库或动态库)、配置开发环境以便在项目中引用这些库文件,以及编写和编译使用Crypto++功能的C++代码。

2024-08-19 10:45:45 643

原创 QT:QTableWidget 设置单元格边距

实际上,它是通过调整绘制文本的矩形区域来模拟边距效果的。但请注意,这种方法在单元格内容较复杂或需要频繁更新时可能不是最高效的,因为HTML的解析和渲染需要一定的时间。方法,你可以完全控制单元格的绘制过程,包括内容的边距。没有直接提供设置单元格内容边距的API,但你可以通过富文本、自定义委托或使用。主要是用来存储和显示文本、图标等内容的,但它不提供直接设置内容边距的API。你可以将单元格的内容设置为富文本(HTML),并在HTML中指定边距。提供了更多的自定义选项,包括通过委托来控制单元格的绘制。

2024-08-15 13:41:38 554

原创 QTableWidget 如何设置自动列宽?

在 Qt 的中,设置自动列宽通常意味着让列宽根据列内容自动调整,以确保内容不会被截断且表格看起来更加整洁。Qt 提供了几种方式来实现这一点,但需要注意的是,本身并没有直接提供一个“一键设置所有列自动宽度”的函数。不过,你可以通过遍历所有列并使用相应的函数来为每个列设置合适的宽度。以下是几种设置。

2024-08-14 18:01:02 1578

原创 QT:QTableWidget 如何设置列的对齐方式?

方法为列头(header)设置属性(尽管这主要影响列头的显示),而实际上列内容的对齐则是通过为每个单元格(cell)设置。方法(但这会影响所有列头单元格的对齐,而不是内容单元格的对齐),或者通过遍历列中的每个单元格并单独设置其。的对齐属性来实现,但这并不是最直接的方式,特别是对于整列的统一设置。类型的参数,该参数可以是多个对齐标志的按位或组合,以指定水平和垂直方向上的对齐方式。不过,对于内容单元格的对齐,一个更简单且常见的方法是使用。中,设置列的对齐方式可以通过修改对应列的。的列级对齐设置来完成的。

2024-08-14 17:54:03 538

原创 QT:QTableWidget 如何不显示行头?

的一个实例(在 Qt 的某些版本中可能是这样,但这不是一个公开的接口细节,且可能因版本而异),但在这个上下文中,我们主要关注的是它作为。对象,并指定了它的行数和列数(在这个例子中是10行5列)。中,如果你想要不显示行头(即行号旁边的列),你可以通过设置。然而,对于隐藏行头的目的,我们主要关注的是。下面是一个简单的示例代码,展示了如何在创建。在这个例子中,我们首先创建了一个。的垂直和水平表头确实是通过。返回的对象的实际类型可能是。,但在这里我们主要关注它的。垂直表头的指针(类型为。不过,需要注意的是,

2024-08-14 17:47:08 531

native-windows-gui-master.zip

native-windows-gui-master.zip

2022-05-19

device-query.rar

提供源代码和makefile文件,在自己机器上编译即可。

2021-03-27

opencv-patch.zip

opencv缺少这几个文件无法编译cuda。

2021-01-23

C++模板与STL库介绍

关于C++模板和STL非常通俗的介绍,入门者必读。

2010-08-04

C++_using_namespace_std_详解

C++_using_namespace_std_详解,很不错!

2010-08-04

最强悍的暴力删除文件程序

如果你的磁盘上又不能删除的文件,这是一款特别方便的工具。

2010-08-04

3DES C++ 源代码

3DES C++ 源代码,可用于 VC++ 和 C++ Builder.

2010-08-04

用ATL建立轻量级的COM对象

ATL——活动模板库(The Active Template Library),其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持。

2010-08-04

ATL 揭秘之“对象创建”篇

当我们用VC++ ATL 工程创建了一个COM 工程,实现了一个自己的COM 对象,又在另一个程序中CoCreateInstance 这个COM 对象时,不知你是否想过这样的问题:COM 对象是用C++类对象实现的,但是,我们从来没有在自己的代码中创建这些C++类对象——比如, “new”这些对象。那么,实现COM 对象的C++对象是由谁,何时,以及如何创建的呢?

2010-08-04

用ATL 建立轻量级的COM 对象

C++与COM之间若即若离,和平共处,一次又一次在每个对象中用同样简洁的几行代码实现IUnknown。我敢肯定将来C++编译器和链接器会实现C++对象和COM对象之间自然 的无意识的对应和映射,目前这个环境只存在于实验室中,因此它肯定不是一个你我今天可以购买的产品。眼下可得到的最接近这个环境的东西就是活动模板库——ATL。

2010-08-04

空空如也

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

TA关注的人

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