自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 使用 Docker、Nginx 和 SSL 部署 Pocketbase

什么是Pocketbase?Pocketbase是一个开源后端解决方案,提供实时数据库、文件存储和通过 OAuth 集成的无缝用户身份验证,所有这些都可立即使用。在本文中,我们将介绍如何在 Ubuntu 机器上使用 Docker 和 Nginx 部署 Pocketbase(尽管这些说明也适用于任何基于 Debian 的 Linux 发行版)。此外,我们还将介绍如何使用 Certbot 配置 SSL 证书以增强安全性。先决条件。

2024-12-10 14:03:57 195

翻译 Systemd 与 Docker:探索令人惊讶的替代方案

Docker 是一个允许您构建、运行和管理容器的平台。容器类似于轻量级虚拟机,但它们不会模拟整个操作系统。相反,它们提供了一个模拟虚拟机的沙盒环境,允许您在一致的环境中隔离和运行应用程序及其依赖项,而不管底层主机系统如何。

2024-12-10 14:01:36 132

原创 通过ssh连接wsl

【代码】通过ssh连接wsl。

2024-10-13 14:29:33 734

原创 Makefile .PHONY 的作用

例如,如果你有一个名为 clean 的文件,make clean 将不会执行 clean 目标,因为 make 认为 clean 已经是一个文件。它的主要作用是告诉 make,这些目标是虚拟的,不会生成文件,因此 make 应该总是执行这些目标,即使文件系统中存在与目标同名的文件。​ • 当你运行 make clean 时,它会执行 clean 目标,即使有一个名为 clean 的文件存在,make 也会执行 clean 目标。​ • .PHONY: all clean build 声明这些目标是虚拟的。

2024-09-03 12:52:44 439

原创 深入理解 Go 语言中的条件变量:sync.Cond

sync.Cond。

2024-09-03 12:51:56 511

原创 在有向图中求解弱连通分量

弱连通分量指的是在有向图中,如果将所有的有向边都视为无向边后,图中的连通子图。换句话说,弱连通分量是将有向图中的有向边转换为无向边后的连通子图。在图论中,弱连通分量是一个重要的概念,用于分析有向图的连接性。本文将介绍如何在有向图中计算弱连通分量,并提供相应的Go语言代码实现。:使用深度优先搜索(DFS)遍历图的每个节点,找出所有的弱连通分量。:对于每个弱连通分量,我们创建一个新的子图,并添加相应的节点和边。:通过DFS遍历图的每个节点,找出所有的弱连通分量。:将有向图中的每条边视为无向边,构建一个无向图。

2024-08-26 08:39:07 794

原创 如何将中缀表达式转换为前缀和后缀表达式

最常见的表达式表示形式有中缀表达式、前缀表达式(波兰表达式)和后缀表达式(逆波兰表达式)。前缀表达式的转换可以通过将中缀表达式反转后,再按后缀表达式的规则处理,最终再反转得到结果。:直接按照中缀表达式从左到右扫描,操作数输出,运算符依次入栈处理,括号内的内容优先处理。:反转中缀表达式,按后缀表达式规则处理,然后再反转结果。(逆波兰表达式):操作符在操作数之后,例如 AB+。(波兰表达式):操作符在操作数之前,例如 +AB。:操作符在操作数之间,例如 A + B。​ • 中缀表达式:A + B * C。

2024-08-26 08:38:16 1158

原创 oceanbase

函数默认1024字节,超过1024,可能导致数据截断。从而使出现一些OceanBase不能插入的字符(mysql并不会出现同样原因)数据库报错 Error 1366 (HY000): Incorrect string value。2023-12-02 18:16:11 星期六。

2024-08-08 10:02:03 238

原创 理解 HTTP 状态码 304: Not Modified

服务器使用这个状态码告诉客户端,资源没有变化,因此客户端可以继续使用它的缓存副本,而无需重新下载资源。当客户端第一次请求该图片时,会下载并缓存该图片。​ • 在后续请求中,客户端会带上之前缓存的相关信息(例如 If-Modified-Since 或 If-None-Match 头部),以检查资源是否已被修改。如果自上次请求以来资源没有被修改,服务器会返回 304 Not Modified 状态码,告诉客户端可以继续使用缓存的资源。​ • 客户端收到 304 响应后,使用缓存中的资源,而不需要重新下载。

2024-08-07 10:01:30 7632

原创 指令集体系结构(Instruction Set Architecture,ISA)

不同的ISA可能有不同的设计理念和特性,但它们都需要提供一个清晰、完整的规范,以便硬件和软件开发者能够协同工作。​ • 支持的寻址方式,如立即数寻址、寄存器寻址、直接寻址、间接寻址、基址寻址、变址寻址等。​ • 控制指令:跳转(Jump)、调用(Call)、返回(Return)等。​ • 寄存器的数量和类型(如通用寄存器、浮点寄存器、状态寄存器等)。​ • 数据类型的大小和表示方式(如有符号整数和无符号整数)。​ • 支持的数据类型,如整数、浮点数、字符、矢量等。​ • I/O指令的定义和操作方式。

2024-08-06 10:04:10 597

原创 Go 语言中的通道(chan)使用指南

通过通道,goroutine 可以安全地交换数据,并且通道的非阻塞和多路复用特性使得复杂的并发操作变得更加容易管理。Go 语言的通道(chan)是实现并发编程的核心工具之一,它为 goroutine 之间的通信提供了一种简单而高效的方式。在这篇文章中,我们将深入探讨通道的使用姿势,包括基本操作、并发处理和一些常见的使用模式。通道可以是同步的或异步的,提供了安全的并发数据传输机制。关闭通道时,通道不再接受新的数据,但可以继续读取剩余的数据。可以使用 range 遍历通道中的数据,直到通道被关闭。

2024-08-06 10:01:23 707

原创 高级语言到可执行文件的过程

将一个或多个目标文件和所需的库文件链接在一起,解决符号引用(如函数和变量),生成一个完整的可执行文件。在这个过程中,编译器、汇编器和链接器协同工作,将高级语言源程序一步步转换为能够在特定平台上运行的机器代码。:生成目标文件(通常扩展名为 .o 或 .obj),包含机器码和一些重定位信息。:将所有目标文件和库文件的代码和数据合并,生成最终的可执行文件。:将汇编代码转换为目标代码(机器代码)。:调整代码和数据中的地址引用,使之符合最终的内存布局。:将优化后的中间代码转换为目标平台的汇编代码。

2024-08-05 08:54:43 745

原创 【m阶B树】

​ • 每个节点(除根节点外)的关键字数 k 满足 ⌈m/2⌉ - 1 ≤ k ≤ m - 1。:每个节点中的关键字按升序排列,节点的子节点的关键字值在其父节点的关键字值之间分布。• 如果树中有多个节点,根节点至少有 2 个子节点,最多有 m 个子节点。​ • 每个节点(除根节点外)的关键字数 k 满足 1 ≤ k ≤ 2。​ • 每个节点(除根节点外)的关键字数 k 满足 1 ≤ k ≤ 3。​ • 除了根节点和叶节点外,每个节点至少有 ⌈m/2⌉ 个子节点。​ • 每个非叶节点至少有 2 个子节点。

2024-08-04 10:45:49 515

原创 【无标题】

Kubernetes 提供了强大的横向扩展能力,可以根据负载动态调整 Pod 的副本数量。本文将介绍如何使用ab工具测试 Horizontal Pod Autoscaler(HPA)。

2024-08-03 12:47:46 307

原创 深入理解 Go 语言中的 map 扩容机制

Go 语言中的 map 使用一种称为渐进式扩容(incremental rehashing)的技术来避免扩容过程中导致的性能抖动。Go 语言中的 map 提供了一种高效的键值对存储和查找方式,其底层的扩容机制保证了在大数据量情况下的性能。在这个示例中,我们向 map 中添加了 1000 个元素,然后再添加一个新元素,触发 map 的扩容。通过观察 map 的大小变化,我们可以看到扩容的效果。当 map 触发扩容时,会创建一个新的更大的哈希表,并将旧哈希表中的元素重新哈希并迁移到新哈希表中。

2024-08-03 12:36:33 674

原创 如何用SourceTree快捷使用Git

Git是一个强大的版本控制系统,可以帮助我们管理代码版本,而SourceTree是一款优秀的图形界面工具,能让我们更直观、快捷地使用Git。点击“文件” -> “新建/克隆”,选择“克隆仓库”,输入远程仓库的URL,选择本地路径,点击“克隆”。点击“文件” -> “新建/克隆”,选择“新建仓库”,然后选择本地路径,点击“创建”。在主界面中,你可以看到“文件状态”标签,点击它可以查看工作目录中的修改。点击“提交”按钮,填写提交信息,点击“提交”完成操作。点击“分支”按钮,输入新分支的名称,点击“创建分支”。

2024-08-02 10:33:58 541

原创 用 Skopeo 解决 Kaniko 镜像推送认证问题

Kaniko 是一个无需特权的容器镜像构建工具,但在进行镜像推送时,需要登录到目标镜像仓库以验证身份。在容器化应用开发中,我们经常会遇到使用 Kaniko 构建镜像并推送到镜像仓库时出现认证问题的情况。Skopeo 是一个强大的容器镜像管理工具,与 Kaniko 结合使用可以很好地解决镜像推送认证的问题。通过以上方式,我们可以简单高效地解决 Kaniko 的镜像推送认证问题,使容器化应用开发更加顺畅和高效。,并在目标路径生成正确的配置文件,从而自然地解决了 Kaniko 在推送镜像时生成配置文件的问题。

2024-08-01 10:46:00 451

原创 【Kaniko问题集锦】

解决方案:挂载 -v /root/.docker/ /kaniko/.docker/解决方案:添加参数–skip-tls-verify[2]解决方案:添加参数–ignore-path=/var。

2024-08-01 10:43:47 1062

原创 Podman in Docker

Podman in Docker

2022-11-08 22:01:14 452 1

原创 动态型语言与静态型语言

动态语言型与静态型语言变量本身类型不固定的语言称之为动态型语言,与之对应的就是静态型语言。静态型语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如 Java 是静态型语言,python是动态型语言。动态型语言: Python、Ruby、Erlang、JavaScript、swift、PHP、Perl 优点是可能代码开发快,但是维护难 (一般是脚本语言)静态型语言: C、C++、C#、Java、Object-C。...

2021-02-17 00:14:43 210

原创 最详细的Django命令

Django命令1、新建一个项目 django-admin.py startproject 项目名2、新建app(一个项目可以有多个app,通用的app也可以在多个项目中使用) python manage.py startapp app名 或者 django-admin.py startapp app名3、创建数据库表 或 更改数据库表或字段(可在SQL等数据库中创建与models.py代码对应的表)创建更改的文件pyhton manage.py makemigration

2021-02-09 02:10:15 291 1

在有向图中求解弱连通分量

在有向图中求解弱连通分量

2024-09-08

理解 HTTP 状态码 304

理解 HTTP 状态码 304

2024-09-08

黄仁勋:名副其实的全球芯片一哥

创办英伟达公司,占据全球 70% 显示芯片市场;重新定义 GPU( 图形处理器 ),称霸全球 AI 芯片领域;打败老对手英特尔,一举成为美国最大半导体公司。 黄仁勋,名副其实的全球芯片一哥

2024-09-08

DADI: Block-Level Image Service for Agile and Elastic Applicatio

DADI: Block-Level Image Service for Agile and Elastic Applicatio

2024-09-05

《明解c语言-中级篇》

《明解c语言-中级篇》

2024-09-03

“星沙物流杯”湖南省第六届 大学生现代物流设计竞赛

随着制造业的发展,很多成熟的装备产品在功能与品质上极为接近,售后服务的差异性已成为不少制造商确立市场地位和赢得市场竞争优势的有效措施。而中联重科目前采取的营销与售后捆绑的方式,并不能最好地解决售后备件物流问题,这样的物流网络会引起仓库闲置浪费、物流配送成本过高等问题;同时,中联重科也存在备件库存管理粗放、订单响应性差、售后物流各环节的信息共享率低等问题。因此,完善售后物流服务成为了中联重科提高客户满意度、增强企业竞争优势的重要手段。

2024-09-03

空空如也

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

TA关注的人

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