- 博客(113)
- 收藏
- 关注
原创 【Caddy】:现代化、自动 HTTPS 的 Web 服务器新星
Caddy是一个由 Go 语言开发的开源 Web 服务器,它以“自动化、安全、现代✅自动 HTTPS(内置 Let’s Encrypt 证书签发)✅简单配置语法(Caddyfile)✅跨平台支持✅内置反向代理、静态文件托管、重定向、负载均衡等功能Caddy 作为现代 Web 服务生态的一股新势力,凭借自动 HTTPS、配置简单、功能全面、模块化架构,成为很多开发者和运维的首选。无论你是独立开发者、前端工程师,还是 DevOps 从业者,Caddy 都值得一试!
2025-04-16 22:31:04
729
原创 【Shell 编程】——常用基本语法及实例解析
在 Shell 编程中,有多种括号语法,每种括号都有特定的用途。语法用途()创建子 Shell / 数组(())算术运算[]逻辑测试(test命令)[[ ]]高级逻辑测试(支持模式匹配){}变量扩展 / 命令块$( )命令替换(( ))$(( ))算术运算。
2025-04-10 14:08:09
580
原创 【写好AI提示词】——面向 AI 爱好者的 Prompt 工程实用指南:与 AI 高效对话的艺术
Prompt Engineering(提示工程)是与 AI 模型对话的艺术和技术,通过设计高质量的「提示(Prompt)」来引导 AI 更好地理解任务、输出高质量结果。就像程序员通过代码告诉计算机要做什么,提示工程师通过文字告诉 AI 要如何回应。它不仅适用于开发者,也适合普通用户,只要你想更聪明地使用 AI,Prompt 工程就是你最好的工具箱。提示工程是一门人人都能学会的技能,不需要懂代码,也无需 AI 背景,只要你愿意动手尝试,就能成为更聪明的 AI 使用者!
2025-04-10 13:41:51
1276
原创 【操作系统(Linux)】——生产者消费者同步互斥模型
我们将做的:实现一个经典的「生产者-消费者问题」多线程同步模型的案例,主要用到循环缓冲区 + POSIX 信号量sem_t+ pthread 多线程库,非常适合理解并发控制、线程通信和缓冲区管理。案例目标:通过多个生产者线程不断往共享缓冲区中写入数据,多个消费者线程从中读取数据,所有线程对缓冲区的访问必须遵循互斥和同步机制,确保数据完整性与一致性。int write;// 互斥信号量// 空槽位信号量sem_t full;// 满槽位信号量。
2025-04-09 23:27:37
641
原创 【操作系统(Linux)】——多线程对共享变量访问的同步与互斥
创建了两个线程sub1和sub2,以及主线程三者共同对一个全局变量num执行减 1 操作,共减去次。所以理论上最终num == 0,但实际上并不一定!问题说明数据竞争多线程访问全局变量未加锁后果num最终值不确定,减法丢失解决使用互斥锁调试建议加或使用检查多线程同时对一个共享变量num进行减 1 操作,为避免多个线程同时访问导致的数据错误,使用互斥锁实现同步,确保线程间的安全访问。项目说明多线程创建使用创建两个线程共享资源所有线程和主线程共享变量num数据保护使用。
2025-04-09 23:20:33
778
原创 【操作系统(Linux)】——通过案例学习父子进程的线程异步性
调用fork()创建子进程,得到两个并发执行的进程。每个进程根据fork()的返回值设定自己的输出内容(msg)和输出次数(k每个进程都进入while(k>0)循环,每秒输出一次msg,共输出k次。最终执行exit(0)正常退出。// 子线程循环判断条件,主线程设置为 0 后子线程结束// 子线程退出时返回的值,供主线程获取run是主线程与子线程共享的控制变量。retvalue将作为子线程返回值的地址,供主线程获取。项目内容说明创建新线程等待线程结束,获取返回值子线程退出并返回值。
2025-04-09 20:29:09
800
原创 在Ubuntu 22.04上配置【C/C++编译环境】
通过以上步骤,你可以在Ubuntu 22.04上轻松搭建C/C++开发环境。如果你在开发中需要特定库(比如libboost或opencv),可以留言告诉我,我会为你提供进一步的指导。祝你 coding 愉快!
2025-04-09 17:03:40
550
原创 程序员IDE背景颜色选择:浅色与深色主题对眼睛的影响
I. 引言:程序员的困境 - 浅色与深色IDE主题在当今数字时代,计算机已成为程序员不可或缺的工具。随着使用时间的延长,人们越来越关注长时间面对电脑屏幕对健康的潜在影响,尤其是在视力方面。在编程社区中,关于集成开发环境(IDE)的最佳颜色主题——浅色与深色——的争论持续不断。程序员们希望找到既能提高工作效率又能最大限度减少眼睛疲劳的设置。本报告旨在分析现有研究和专家意见,为程序员提供基于证据的指导,以帮助他们选择最适合自己的IDE背景颜色,从而减轻眼睛疲劳并保护长期的眼部健康。报告将重点考察对比度、蓝光暴露
2025-04-08 16:21:22
956
原创 【Web 服务器】的工作原理
用 Caddy 省心,自动 HTTPS 但会占用更多。,即使在高流量下,CPU & 内存占用依然很低。:大流量网站(如百度、腾讯、阿里)一般都用。(可配合 PHP、Node.js),不想折腾 SSL 配置的用户。,但依然比 Apache 低。Web 服务器的主要作用是。(自动申请 SSL 证书),适合个人开发者和小型项目。各有特点,主要体现在。,因为它可以同时处理。
2025-04-04 20:51:57
1154
原创 Mamba 环境管理:永久修改默认存储路径的终极指南(2025 年最新实践)
在 Python 开发和数据科学领域,Mamba 凭借其高效的包管理和环境创建能力,已成为 Conda 的强力替代品。然而,默认情况下,Mamba 的环境存储路径通常位于系统盘(如 Windows 的 C 盘),这可能导致磁盘空间不足、管理混乱,甚至影响开发效率。无论您是初学者还是资深开发者,这篇教程都将帮助您优化 Mamba 环境管理,释放系统盘空间,提升工作效率。永久修改 Mamba 环境的默认存储路径是最彻底的解决方案。修改默认路径后,您可以将环境存储在外部硬盘或网络驱动器上,方便在不同设备间迁移。
2025-03-11 23:44:52
523
1
原创 PyCharm 配置 Mamba 环境管理
PyCharm 通过识别 Conda 环境路径来管理 Mamba 环境,无需额外插件。:本文配置方法适用于 PyCharm 2024.3 及以上版本,若界面变动请参考。Mamba 是 Conda 的快速替代工具,点击右上角 ⚙️ 图标,选择。
2025-03-11 23:38:32
630
1
原创 Mamba 环境管理终极指南:基于 Miniforge3 的 Python 环境管理(2025 年最新实践)
本文适用于 Mamba 2.6+ 与 Miniforge3 23.11+ 版本(2025 年 3 月验证)。若遇命令变更,请参考。
2025-03-11 22:54:45
708
原创 使用 Miniforge3 管理 Python 环境的详细指南(基于最新实践和时效性信息,截至 2025 年)
软件源(社区维护的包更全且更新更快),尤其适配 ARM 架构(如 Apple M1/M2/M3 芯片)。相比 Anaconda,它更精简且兼容性更好。PyCharm 通过识别 Conda 环境路径来管理 Mamba 环境,无需额外插件。:本文配置方法适用于 PyCharm 2024.3 及以上版本,若界面变动请参考。安装过程中选择安装路径(建议默认),并同意初始化 Conda(输入。:以上内容基于 2025 年最新实践,若安装包版本更新,请以。Mamba 是 Conda 的快速替代工具,
2025-03-11 22:52:44
1835
原创 Mamba| Miniforge3 安装和配置
访问 Miniforge 下载页面南京大学镜像站官网。根据你的操作系统和架构选择合适的安装程序。下载并运行安装程序,按照提示完成安装。安装完成后,打开新终端,输入验证安装。
2025-03-11 22:45:56
1598
原创 C/C++中的double和float对比
在C/C++中,float(单精度浮点数)和doublefloatdoublef3.14f3.14。
2025-03-05 23:10:53
1080
1
原创 应用程序无法正常启动并显示错误代码`0xc0000005`的解决方案
今天在安装MySQL时遇到一个问题:应用程序无法正常启动并显示错误代码0xc0000005,倒腾了半天才找到解决的正确方法,这里记录一下解决方法。
2025-03-05 23:03:19
1488
原创 MySQL安装多版本与版本切换
今天在将一个项目部署到本地,想着是先找到一个功能差不多的开源项目,再在这基础之上进行改动,找到的这个项目使用的MySQL版本是MySQL5.7,应该是比较古早的项目了,但是我现在装的是8.4版本的,所以涉及MySQL的版本切换,这里记录一下操作方法。
2025-02-26 22:54:45
768
1
原创 Typora的Github主题美化
美化前:美化后:关于「中文网字计划」「中文网字计划」是一个致力于优化中文字体在互联网中应用的开源项目,通过Web Font技术为开发者提供便捷、免费的中文字体解决方案。其核心特点包括:项目官网为https://chinese-font.netlify.app/,GitHub仓库见chinese-free-web-font-storage。需注意部分字体授权信息需自行确认,建议优先选用明确开源授权的字体(如霞鹛文楷)。中文网字计划是支持直接使用它提供的CDN的,但是由于不知道怎么在主题的CSS中使用,于是选择
2025-02-21 23:32:59
1435
原创 C 语言学习:链表的全面解析(含算法实现的可视化,容易理解)
在 C 语言的学习旅程中,链表作为一种基础且重要的数据结构,扮演着不可或缺的角色。它与数组等线性结构有着显著的区别,独特的数据存储方式和操作特性,使其在许多场景下都能发挥出强大的作用。本文将深入探讨链表的相关知识,带你全面掌握链表的奥秘。
2025-02-11 12:25:23
1075
原创 【编译原理实验二】——自动机实验:NFA转DFA并最小化
遇到的问题及解决方法(1)ε-闭包计算问题:问题:初始实现时未考虑递归计算ε-闭包解决:使用队列实现广度优先搜索,确保完整计算闭包(2)DFA最小化过程中的等价类划分:问题:划分过程中状态映射更新不及时解决:每次划分后立即更新状态映射关系(3)内存管理问题:问题:大规模NFA转换时内存占用过大解决:使用STL容器自动管理内存,避免手动内存管理收获与体会。
2025-01-30 23:02:19
944
原创 Git图形化工具【lazygit】
Lazygit 是一个用 Go 语言编写的 Git 命令行界面(TUI)工具,它让 Git 操作变得更加直观和高效。Github地址:https://github.com/jesseduffield/lazygit相比直接使用 Git 命令行,Lazygit 最大的优势在于它降低了使用门槛,让 Git 操作更加直观,特别适合 Git 新手使用。同时它的效率也很高,熟练掌握后可以大大提高版本控制的工作效率。
2025-01-29 19:27:14
750
原创 用 Scoop 优雅管理 Windows 软件:安装、配置与使用全指南
是一款专为 Windows 设计的命令行软件包管理工具,它能让你像 Linux 系统一样通过命令快速安装、更新和卸载软件。结合自定义路径和多仓库管理,它将成为 Windows 上提升效率的神器。现在就开始你的 Scoop 之旅吧!很多时候直接使用 Scoop 下载安装软件速度会很慢,甚至下载失败,这时候可以通过。通过 Scoop,你可以彻底告别“百度软件站-下载-下一步安装”的传统流程,实现。」优雅管理 Windows 软件:安装、配置与使用全指南。设置代理后,下载库成功。未设置代理前,下载库失败;
2025-01-29 19:15:40
2262
原创 【算法学习】归并排序算法思想的应用—求逆序对数量
通过这篇文章,我们不仅学习了如何用归并排序的思想高效解决求逆序对数量的问题,还了解了暴力解法和优化解法之间的差异。希望你能从中有所收获,并在算法的学习道路上越走越远!🚀如果你有任何问题或想法,欢迎在评论区留言,我们一起讨论!😄🎉。
2025-01-25 22:02:36
1067
原创 【算法学习】分治法应用—归并排序
归并排序是分治思想的运用。## 🤯基本思想:分治之美将待排序元素**分成**大小大致相同的2个子集合,**分别**对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。归并排序(Merge Sort)是分治思想的经典应用。其核心理念是:1. 分解:将复杂的大问题分割成简单的小问题2. 解决:逐步解决小问题3. 合并:将解决后的小问题结果组合成最终解
2025-01-25 18:56:31
412
原创 【算法学习】分治法应用—快速排序
快速排序是分治算法选择一个“分界点”元素,将数组分成两部分,使得左边的所有元素都不大于分界点,右边的所有元素都不小于分界点。然后,递归地对这两部分进行排序。快速排序是一种非常高效的排序算法,在平均情况下具有 O(K log K) 的时间复杂度,能够在大规模数据上高效排序。我们通过理解其分治思想,结合优化建议,能够在实际应用中实现高效排序。希望本篇文章能帮助你更好地理解快速排序。如果你有任何问题或建议,欢迎在评论区留言讨论!一起进步,一起成长!
2025-01-24 22:43:13
770
原创 【算法学习】分治法应用—线性时间选择
使用的是“线性时间选择算法”(Quickselect),这个算法基于快速排序的分区思想,能在 O(n) 平均时间复杂度内找到任意第。在当前子数组(从 p 到 r)中的第几小的位置(位置是相对于1开始)。给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第。else 部分继续在右区间进行,减少k后递归,这部分通常是正确的。对这个线性序列进行排序,那么第k小的元素就是。,故最终的时间复杂度为。时进入错误的区间选择。的大小关系,往下查找第。,最坏情况下可能达到。根据 j 和 k 的。
2025-01-24 20:46:16
1094
原创 【编译原理实验一】——词法分析器(基于自动机的词法分析器的设计与实现)
(一)实验时间安排准备时间:花费一定时间理解实验要求,熟悉词法分析原理和自动机相关知识,设计整体框架和数据结构。上机时间:主要用于编写代码、调试程序,逐步实现词法分析器的各个功能模块。调试时间:在程序编写过程中不断进行调试,解决出现的各种问题,如语法错误、逻辑错误等,确保程序能够正确运行。(二)遇到的问题及解决方法1.注释处理问题:在处理多行注释时,遇到了嵌套注释的情况,导致程序逻辑错误。后来通过增加状态标记来记录注释嵌套层次,正确处理了嵌套注释的情况。
2025-01-13 18:16:07
1561
3
原创 【算法学习】——整数划分问题详解(动态规划)
在正整数n的所有不同划分中,将最大加数不大于m的划分个数记作q(n,m),可以建立q(n,m)的如下递归关系qn11n≥1;qn11n≥1;当最大加数m不大于1时,任何正整数n只有一种划分形式,即n111⏞nn11...1nqnmqnnm≥n;qnmqnnm≥n;最大加数实际上不能大于n。qnn1qnn−1;qnn1qnn−1;正整数n的最大加数不大于n的划分由。
2025-01-13 16:51:19
1510
3
原创 【C语言学习】——命令行编译运行 C 语言程序的完整流程,理解C语言编译的底层实现和编译原理相关知识
1.1 编译过程的四个主要阶段源代码 (.c) → 预处理 → 编译 → 汇编 → 链接 → 可执行文件1.2 各阶段功能预处理:展开宏、处理条件编译、包含头文件编译:将 C 代码转换为汇编代码汇编:将汇编代码转换为目标文件链接:将目标文件与库文件链接生成可执行文件。
2025-01-11 19:40:23
1084
1
原创 【WSL使用】遇到问题:\\wsl.localhost无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查 明你是否有访问权限。 系统资源不足,无法完成请求的服务。
WSL 文件服务器,从而避免了原始错误。它不仅解决了当前问题,还提供了一个更可靠的访问方式。好啦,到这里希望看到这篇博客的你的问题也已经得到了解决,并且也了解了其中的原理。文件资源管理器中点击「Linux」之后,你就会发现现在居然神奇的能。使用这个「Linux」快捷方式了。了可能存在问题的网络位置解析层,如果你觉得有所收获的话,可以。为什么这么神奇的就解决了呢?2.1 WSL 网络共享机制。3.1 绕过潜在故障点。总的来说,这个解决方案。2.2 访问路径区别。是通过简化访问路径,
2025-01-11 18:57:11
2635
4
原创 【算法学习】——设施选址问题(动态规划)
在一条高速公路附近有 V 个村庄,选择 P 个村庄在其附近建立邮局,要求每个村庄到最近的邮局的距离和最小(1
2025-01-06 23:29:10
1174
原创 【算法题解】——自然数拆分问题
一个整数N(N > 1)可以拆分成若干个大于等于1的自然数之和,请你输出所有不重复的。所谓拆分方式的判定如下:例如 6 = 3 + 2 和 6 = 2 + 3,就是重复的拆分方式。一个正整数N(1≤N≤52)。注意:本题N的上限52,是经过PTA平台服务器测试后得到的上限,能够保证较好的搜索策略在PTA提交,在1s内求解。本地PC机上,即使较好方法运行时间也可能大于1s,如果觉得方法没问题,可以先提交试试。按照拆分方案的字典序由小大到大,输出所有方案,请参考输出样例在这里给出一组输入。6。
2025-01-01 22:34:49
676
原创 『AutoHotkey』——一个小巧却高效的实用效率工具
note]每次想要用到这两个符号的时候都要进入输入法的『符号大全』里面找的话,操作还是没那么方便,所以就想着找到别的更高效的方法,于是就查到了可以使用『AutoHotKey』这个工具进行自定义一些热键。AutoHotkey 简介是一个功能强大的开源脚本语言和自动化工具,主要用于 Windows 操作系统。它通过简洁的语法和强大的功能,使用户能够快速定义快捷键、宏、文本替换规则,甚至开发功能复杂的应用程序。主要特点快捷键绑定定义自定义快捷键,如组合键(Ctrl+Alt+T)、鼠标按键,甚至设备专用键。
2024-12-31 15:37:46
3038
2
原创 『AutoHotkey』效率提升脚本集
一些实用的 AutoHotkey 脚本示例,这些可以显著提升工作效率。想要别的功能还可以问一下AI,或上网查询。
2024-12-31 15:36:55
401
原创 【记录】前端项目的开发调试流程
确保项目需要的所有依赖安装完整,包括 Webpack、PostCSS、HTTP 服务器等。检查项目依赖:打开项目的 文件,查看 和 列表。例如:安装依赖:此命令会根据 中的定义下载并安装所有需要的模块到 文件夹中。检查安装结果:2. 开发调试任务:使用开发模式运行项目,观察效果,实时调试代码。运行开发模式:这会执行 ,以开发模式编译项目。实时观察效果:调试代码:错误排查:将开发完成的代码优化并生成适合部署的静态文件。运行生产编译命令:此命令会运行
2024-12-30 19:11:31
1163
原创 【记录】使用R2 CDN替换本地项目图片以加速图片加载
将图片存储到 Cloudflare 的存储桶中,并通过其提供的公共 URL 来替换代码中的本地路径,可以减小项目中打包的图片文件体积在你的 JS 文件中,修改导入路径,直接使用图片的 Cloudflare URL。
2024-12-27 23:47:33
463
原创 C语言基础应用实战(详解实际问题以巩固C语言基础知识)——开灯问题:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉)
开关问题的模拟:通过数组模拟每个灯的开关操作,可以清晰地理解问题的解决过程。标志量的使用:在输出时使用标志量控制格式,避免不必要的空格。效率分析:通过分析时间复杂度和空间复杂度,确认了该算法适用于题目中给出的范围。
2024-12-19 10:06:31
757
1
原创 用链表的详解和综合应用——实现链表的创建、输出、删除及添加结点(C语言)
在C 语言中,链表是通过指针来实现的,每个结点包含数据和指向下一个结点的指针。long num;// 学生编号// 学生姓名int grade;// 学生成绩// 指向下一个学生结点的指针结构体student中包含了学生的信息和一个指向下一个结点的指针next,这个指针使得学生的数据形成了链表的结构。链表是一种非常重要的动态数据结构,适合在需要频繁插入和删除的场景中使用。基本操作:链表的基本操作包括创建、输出、删除和添加结点。这些操作是链表的核心,也是学习链表时的基础。实践应用。
2024-12-19 09:51:30
1636
原创 Linux(Ubuntu)命令大全——已分类整理,学习、查看更加方便直观!(2024年最新编制)
本文整理了Linux(Ubuntu)系统中常用的命令,旨在帮助初学者快速了解和学习Linux命令。命令按照功能类别进行分类,并提供了详细的使用说明。熟练掌握这些Linux命令需要大量的实践。建议小伙伴们在虚拟机或测试环境中多加练习,逐步积累经验。相信聪明的小伙伴们用不了多久就能熟练使用各种命令啦!温馨提示:在执行删除、权限修改等敏感操作时请务必小心,尤其是使用rm -rf等具有破坏性的命令。祝所有小伙伴学有所成!!有任何想法,欢迎评论区留言讨论哦~
2024-12-18 19:08:58
1379
编译技术领域自动机实验-从正则表达式RE到NFA的转换方法及其应用
2025-02-01
【编译原理实验】「NFA转DFA并最小化」代码+实验报告(ZZU)
2025-01-13
【编译原理实验】「词法分析器」代码+实验报告(ZZU)
2025-01-13
CSDN博客的个人首页地址能当做自己的博客地址写进简历里面吗
2024-12-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人