- 博客(34)
- 收藏
- 关注
原创 让 AI 真正学会 3D 建模:Codex + Blender 完整实践指南(Python API、MCP、自动化建模与渲染)
如果我们直接告诉 AI:AI 能不能直接完成?答案是:可以实现相当一部分,而且不需要手动创建每个物体。关键在于将 Codex 与 Blender 的 Python API 结合。进一步使用 MCP(Model Context Protocol),还可以让 Codex 通过工具接口读取和操作正在运行的 Blender 场景。本文将介绍三种方案:其中第一种方案最容易上手,也最适合建立可复现的工程流程。Blender 不只是一款使用鼠标操作的 3D 软件。它还提供了完整的 Python API。例如,通常我们需要
2026-10-25 10:17:29
156
原创 AICoding的一点看法
AI时代,学习基础知识的意义并未消失,而是转向更深层的价值:提升效率、培养判断力、理解系统运作逻辑,并塑造跨领域思维。尽管AI可替代重复性任务,但其决策依赖人类设定目标与评估标准,而这些能力源于知识积淀。学习不再只为“掌握技能”,更在于拓展认知边界、增强问题洞察力,甚至享受探索本身的乐趣。真正的竞争力,不在于能否使用AI,而在于是否能深刻理解其背后原理,从而引导与驾驭技术。
2026-10-25 10:10:52
276
原创 微软应用商店下Minecraft Launcher(我的世界启动器) 一直排队、验证依赖项失败:下载条件检查与修复教程
本文介绍修复Minecraft Launcher在Microsoft Store/Xbox渠道下载失败的完整排查流程:依次检查网络连通性(域名解析与端口)、关键服务状态、缓存清理,并通过日志验证安装成功。重点使用PowerShell测试连接、重启服务、重置商店,最终以包状态、日志记录、进程路径和界面响应五项交叉确认问题解决。适用于因网络或系统配置导致的安装异常。
2026-10-21 18:16:57
786
原创 操作系统|进程管理、线程、系统调用、进程间通信与信号
本文以追问式思维解析进程与线程的核心概念:PCB由内核维护,fork()创建独立进程而非线程,因资源隔离性不同;两次fork()产生4个进程源于执行流的并行复制;execve()替换程序映像但保留文件描述符,因其底层为内核共享的打开文件描述,而非仅依赖用户态fd变量。理解这些机制后,pipe()、dup2()等系统调用自然串联成一体。
2026-10-20 20:42:42
317
原创 互联网公开信息检索完全指南:Google、Yandex、Wayback Machine、DNS、WHOIS、Shodan 等 OSINT 工具大全
互联网远比我们平常通过搜索引擎看到的庞大。一篇已经删除的文章、一个十年前的网站、一个域名曾经指向的服务器、一张图片的原始出处、一篇论文的引用关系,甚至某个开源项目几年前的代码,都可能通过不同的公开信息检索工具找到。本文系统介绍互联网公开信息检索(OSINT)的常见工具,从传统搜索引擎,到网页历史存档、DNS、WHOIS、IP、BGP、HTTPS 证书、互联网资产搜索、开源代码、学术资料、图片溯源和开放数据,并提供 Linux 命令行实例。
2026-10-20 08:43:19
600
原创 计算机网络——应用层详解:DNS、电子邮件、FTP 与 HTTP 的原理及通信过程
应用层是网络服务与用户之间的桥梁,负责实现具体功能如网页浏览、邮件发送等。其核心是应用层协议,定义了通信的语义、格式与规则(如HTTP、DNS、SMTP)。用户代理(如浏览器)作为中介,将用户操作转化为协议消息。应用架构主要有C/S(集中管理)和P2P(去中心化协作),各有优劣。DNS通过层次化分布式结构,将域名解析为IP地址,依赖递归与迭代查询机制,并利用资源记录(如A记录)及TTL实现高效缓存与更新。
2026-10-19 22:09:13
314
原创 把 Ubuntu 服务器变成 AI Agent 终端:用自然语言或语音管理 Linux,任何命令都先审批(附完整 Python 源码)
关于如何写一个脚本文件让你配置ai密钥等后,可以直接在你服务器上直接运行该脚本的命令行工具,实现agent cl,即指令打开该工具后,在终端用自然语音控制该服务器,当然每条指令都会请示批准,说明可能影响
2026-10-19 21:45:59
438
1
原创 机器学习绪论
本文以“根据水果的颜色、重量等特征识别水果种类”这一贯穿始终的例子,系统介绍机器学习的基本概念与核心术语。内容涵盖机器学习与人工智能的关系、监督学习与无监督学习的区别、数据集与训练测试流程,以及示例、属性、特征向量、标记空间等 17 个基础术语;随后讲解假设、真相、学习器等学习算法与模型概念,并延伸至分类与回归、二分类与多分类、正类与反类等机器学习任务。文章还讨论了未见样本、未知分布、独立同分布与泛化能力,最后介绍假设空间、版本空间、归纳偏好(含奥卡姆剃刀与 NFL 定理)以及机器学习在文本分类、图像分类等
2026-10-17 08:39:53
146
原创 微服务接口还没写好?用 WireMock 搭个“假后端”,连超时、报错都能模拟!【实战教程】
本文介绍如何使用 WireMock 快速搭建 Mock Server,模拟微服务接口的正常与异常场景。通过 Docker 30 秒启动服务,结合 Python 脚本注册请求匹配规则,实现库存查询、支付失败、超时延迟及重试恢复等测试用例,无需真实后端支持,大幅提升开发与测试效率。
2026-10-08 19:13:59
240
原创 【Kali树莓派实战】Kali Linux + Python + 云端大模型API 构建网站安全审查 Agent:15 个检测模块、异步调度、风险评分与 HTML 报告
摘要(148字): 本文介绍KaliSecMaster——基于树莓派与Kali Linux的自主安全审查Agent,通过Python异步调度15个检测模块,实现资产发现、端口扫描、TLS检查、HTTP配置等自动化审查。支持低影响运行,生成结构化报告,并可选接入云端大模型API进行误报分析与修复建议。系统强调可控性、可重复性与合规性,适用于授权资产的持续安全审计,不依赖本地大模型,兼顾性能与隐私。
2026-10-08 18:53:27
213
原创 树莓派4B迷你便携小电脑制作及应用
利用闲置的Te1402路由器外壳,搭配树莓派4B主板、18650电池、升压充电板及4寸触摸屏,自制便携式Kali Linux电脑。通过弹簧触点供电避免焊接,支持即插即用;集成风扇散热与自锁开关,实现独立运行。可安装USB网卡拓展网络扫描功能,用于安全测试与漏洞探测,适合移动渗透测试场景。
2026-10-08 18:14:50
405
原创 Windows服务器:错误 403 - 禁止访问:本地 FTP 上传文件到网站服务器后提示无访问权限
网站修改后上传文件时出现403禁止访问错误,经查因服务器硬盘空间满导致。问题根源为IIS日志文件长期未清理,占用大量空间。删除旧日志后,上传与访问恢复正常。建议通过批处理脚本配合任务计划程序,定期自动清理超过指定天数的IIS日志(如保留15天),避免磁盘满引发服务异常,同时保留日志用于安全排查。
2026-10-05 11:51:28
268
原创 Slide AI — 智能课件学习助手
AI 课件助手:Tauri + React 本地应用开发 摘要:本文介绍了一个使用 Tauri + React 开发的本地 AI 课件助手应用,能够逐页讲解 PDF 课件内容并提供问答功能。技术选型上采用轻量级 Tauri 框架(15MB)替代 Electron,结合 PDF.js 前端解析和统一 LLM 网关设计,实现多模型支持(OpenAI/Anthropic/Gemini)。应用特点包括:流式 Markdown 讲解、预生成队列、全文档 RAG 问答,以及纯前端实现的 PDF 解析方案。文章还分享了
2026-06-11 09:10:50
437
1
原创 什么是多范式编程语言?——以 C++ 为例深入理解编程范式
C++ 是一种多范式编程语言,支持多种编程范式来解决问题。编程范式是组织代码和构建解决方案的不同思维方式,主要包括: 命令式编程:关注"如何做",通过明确指令逐步执行(如C语言) 声明式编程:关注"做什么",包括函数式编程(如Haskell)和逻辑编程(如Prolog) 面向对象编程:通过封装、继承和多态构建对象模型(如Java) 泛型编程:编写与数据类型无关的通用代码(如C++模板) 事件驱动编程:由事件触发程序流程(如JavaScript) 并发编程:通过多线程/协程实现并行处理(如Go) C++独特之
2026-06-02 19:53:52
278
原创 算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
摘要 本文以三国时期刘备军队管理为背景,生动解释了并查集(Disjoint Set)数据结构的原理与应用。通过"找头儿"(Find)和"队伍合并"(Union)两个典型场景,展示了并查集判断集合归属和合并集合的核心操作。文章详细介绍了链表实现方式,包括数据结构设计、加权合并启发式算法等关键技术点,并提供了完整的C++代码实现。这种历史故事与技术原理相结合的方式,使得抽象的算法概念变得直观易懂,适合初学者理解并查集的基本思想和实现方法。
2026-06-02 19:46:31
455
原创 算法入门:数据结构-堆
堆(Heap)是一种特殊的树形数据结构,主要用于高效获取最大值或最小值。常见的二叉堆通过完全二叉树实现,可用数组存储,支持快速父子节点访问。堆的核心操作包括: 插入元素:新元素放入末尾,通过"上浮"与父节点比较交换,维持堆序性质,时间复杂度O(log n) 删除堆顶:末尾元素临时补位,通过"下沉"与子节点比较交换,时间复杂度O(log n) 获取极值:直接访问堆顶元素,时间复杂度O(1) 堆的数组表示法利用完全二叉树特性实现高效存储和访问,是优先队列的理想实现方式,广泛应用于任务调度、排序算法(堆排序)等场
2026-05-31 08:27:08
678
原创 算法入门:递归和尾递归
递归与尾递归的区别与应用 递归通过函数自我调用实现重复操作,但会导致调用栈不断增长,可能引发栈溢出。尾递归是一种优化形式,确保递归调用是函数的最后一步操作,使编译器可以重用当前栈帧。普通递归如阶乘计算需要保留多层调用信息,而尾递归通过传递累积值(如 result 参数)提前计算,避免栈空间累积。示例展示了求和、斐波那契数列及数组求和的尾递归改写,通过参数传递中间结果,实现等效计算但仅占用常数栈空间。尾递归优化依赖编译器支持,能有效提升递归性能。
2026-05-31 07:28:09
298
原创 算法入门:基本数据结构
数据结构的作用与常见类型 数据结构通过组织数据建立逻辑关系,使无序信息变得可操作。它将散乱数据(如混杂的姓名年龄)转化为关联结构,支持高效存储、查询和修改。核心价值在于服务使用需求,而非单纯存储。 常见的抽象数据类型(ADT)包括: 队列(Queue):先进先出(FIFO)结构,适用于排队系统等顺序处理场景 栈(Stack):后进先出(LIFO)结构,适合撤销操作等逆向处理需求 双端队列(Deque):两端可操作,兼具队列和栈的特性 列表(List):有序线性结构,支持按位置访问和修改 ADT定义操作规范(
2026-05-30 20:53:45
501
原创 深度优先搜索和广度优先搜索
本文深入浅出地讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的核心概念与实现方法。DFS采用"一条路走到底"的策略,适合用递归或栈实现,特点是优先探索深度;BFS采用"一层层扩散"的策略,适合用队列实现,特点是优先探索广度。文章通过树形迷宫的例子生动展示了两种算法的访问顺序差异:DFS会先深入探索单一路径(如入口→A→A1→A11),而BFS会按层次遍历(先入口,再A/B/C,然后A1/A2等)。最后还详细介绍了两种算法的代码实现,包括DFS的递归/栈写法,BFS的队列写法以及分层处理技巧。这些基础概
2026-05-26 13:07:40
403
原创 递归和回溯的关系
递归与回溯的关系可以概括为:回溯是递归的一种特殊应用,但并非所有递归都是回溯。递归通过将问题分解为更小的同类问题解决,而回溯则是在递归基础上增加了"试错-回退"机制。关键区别在于"归"的含义——普通递归仅返回结果,回溯则需撤销当前选择并尝试其他路径。回溯通常用于需要穷举所有可能解的场景,如路径搜索问题,其核心在于递归调用后的选择撤销步骤。虽然回溯常用递归实现,但递归本身更广泛,如阶乘计算等简单问题只需递归无需回溯。
2026-05-26 12:55:46
530
原创 递归与非递归(栈模拟)
本文通过一个公司团队协作的故事,生动解释了单分支递归的工作原理。故事中三个人依次处理问题A→B→C→D,最终由D这个最小问题(base case)开始层层返回结果,完成整个任务。这揭示了递归的核心思想:将大问题不断拆解为更小的同类问题,直到可直接解决的基本情况,再逆向组合答案。文章强调递归依赖于"后进先出"的栈结构,并指出单分支递归形成线性结构,而多分支递归会形成树状结构。整个过程体现了递归"递"与"归"两个关键阶段:向下分解问题,向上组合答案。
2026-05-24 13:46:01
612
原创 算法入门:回溯算法
本文系统介绍了回溯算法的核心思想和实现方法。回溯算法适用于需要从有限元素中按特定要求选出若干元素的问题,如排列、组合、棋盘摆放等。其核心思想是分层选择:横向用for循环遍历当前层的所有可能选择,纵向用递归深入下一层。关键操作包括做选择、递归、撤销选择(回溯),以确保状态正确恢复。回溯本质上是暴力搜索,通过剪枝优化效率。文章通过糖果例子形象说明回溯过程,并给出了基本代码模板:终止条件判断、遍历选择、做选择递归、撤销选择。回溯算法通过系统尝试所有可能路径来寻找解,是解决组合优化问题的有效方法。
2026-05-24 13:40:14
845
原创 用python做一个可爱的小猫时钟
本文介绍如何用Python创建一个可爱的小猫主题桌面时钟。首先需要准备12张数字图片和指针图片,使用PyGame库实现时钟功能,包括背景绘制、指针旋转和时间显示。文章提供了完整的代码实现,并详细说明了如何解决图片路径问题和指针旋转逻辑。最后介绍了使用PyInstaller将程序打包成exe文件的方法,包括添加资源文件和打包命令。整个过程简单易懂,适合初学者学习Python图形界面编程和项目打包。
2025-11-30 20:19:15
300
原创 AI算法(局部搜索算法):爬山算法及其优化-模拟退火与梯度算法
本文探讨了局部搜索算法在罗马尼亚机场选址问题中的应用。首先介绍了局部搜索的优势(内存占用少、适用于大规模问题)及其局限性(可能陷入局部最优)。随后详细实现了三种算法:爬山算法(基本局部搜索)、模拟退火算法(允许概率性接受劣解)和梯度下降算法(利用梯度信息快速收敛),并提出了结合模拟退火和梯度下降的混合算法。通过比较四种算法在10个城市坐标数据上的表现,结果显示混合算法效果最优,能够找到全局最优解(均方距离和≤5.5)。实验还包含了算法实现细节、参数调整建议和完整的Python代码实现。
2025-11-30 16:00:52
1100
原创 基于Ardiuno Uno R3 开发板的坡度仪
摘要:该项目基于Arduino Uno R3开发板,通过两个HC-SR04超声波传感器和倾斜传感器实现坡度与距离测量。系统包括OLED显示屏显示测量数据,其中S1/S2显示两传感器距离,"LEVEL/TILTED"显示水平状态,deg显示计算角度。代码通过超声波测距和atan函数计算坡度,并加入简单滤波处理。项目结构简单,使用面包板搭建,适合作为基础电子实践项目。读者可扩展添加第二个倾斜传感器提高水平检测精度。完整代码和说明可在good518-hh的GitHub仓库查看。
2025-08-26 22:35:11
462
原创 C/C++可变参数的函数的原理与实现
摘要:C/C++实现可变参数函数的两种方法:1)传统C方法使用stdarg.h宏(va_list/va_start/va_arg/va_end),需固定参数指明参数数量或哨兵值标记结束;2)C++11可变参数模板,通过模板参数包(typename...Args)和递归展开实现类型安全可变参数处理。前者兼容C但需手动管理,后者具备编译期类型检查,是现代C++推荐方式。
2025-08-26 09:23:14
1392
原创 在vscode上养一只属于你的宠物
为编程增添乐趣,可以在VSCode中安装宠物插件:1.搜索并安装vscode-pet扩展;2.在设置中自定义宠物样式;3.点击"+"添加宠物,还能用鼠标扔球互动。这个小功能能缓解debug时的枯燥,让编程更有趣。
2025-08-25 23:22:58
519
原创 如何高效使用AI编程(如DeepSeek)
AI编程高效使用指南:1.明确角色定位,如指定AI为"web开发专家";2.结构化提问,分点说明需求(语言、架构、数据库等);3.简洁表达需求避免误导;4.分步骤引导AI;5.备份原代码,选择性采用AI方案;6.切忌完全依赖,需理解并检查AI生成的代码。掌握这些技巧可显著提升AI辅助编程效率。
2025-08-25 22:44:55
343
原创 链表(五)深度剖析之结点创建
然后开始创建一个结点类型(注意是类型【1】,因为你又不是只要一个结点,你又不知道结点一共有多少个),看我们这个结点是想干什么的,要它储存什么数据的,然后看它要跟谁创建联系的(也就是决定你要多少个指针以及它们是什么类型的),然后把它们一个个写在结构体中,形成结点的类型,以便后续创建.这段代码中就是把一个struct node {......}类型的变量起个别名node.方便使用。注:typedef是用来给数据类型其别名的。指针和它指向的对象应当时同一类型的变量。一次不用讲太多,讲清楚就行。
2025-01-02 18:20:14
231
原创 链表(四)一些理解
结点:对应数组中的元素,但结点是一个结构体,数组的功能仅仅相当于该结构体中value的部分,而结点作为一个结构体,它可以同时包含(储存)多种数据(可以通过->取出来),当然它一定要含有一个(或多个)和它时同一类型的指针,用来连接。总之,不难发现链表的每一个结点,都是分配给辅助指针new_node的一个空间,而且我们对结点的一切操作都是通过指针(往往是一个辅助指针)来完成的。成员运算符,用处是使用一个指向结构体或对象的指针访问其内成员。结构体指针或对象指针中的值是所指向的结构体或对象的。
2025-01-01 23:35:19
821
原创 荣耀GT90快应用引擎关闭(九***照等流氓连接关闭)
最近每次打开csdn,就忽然给我跳转到九思工作照,然后疯狂乱下软件,让人厌恶。上网查,发现要关闭应用商店中的快应用服务,但我在手机上找了半天,都没有找到,后来发现它藏的真隐蔽。在应用管理根本查不到。那究竟该如何关闭呢?4.找到使用情况访问权限,点击。3.找到更多安全设置,点击。
2024-12-30 19:31:15
155060
原创 C语言链表直观(图形化)感受(一)(在开始处插入结点)
4.为new_node分配一个空间,用于储存一个结点。7.将first也指向new_node目前指向的结点。6.将next指向first,这里为空指针。1.形成头结点以及辅助变量new_node。8.为new-node分配下一个结点。3.初始化first变量。
2024-12-30 14:31:01
537
原创 C语言中转换说明总结
,%f(表示“定点十进制”形式的浮点数,没有指数。),%g(表示指数形式或者定点十进制形式的浮点数,形式的选择根据数的大小决定。此外,如果要显示的数值没有小数点后的数字,g就不显示小数点。⚠读double(双精度)类型值时要在e,f,g前加|(即long)<补充:为了表明只需要单精度,可以在常量的末尾处加上字母F或f;“如果省略p,m和p之间的小数点也要去掉。④字符串:%s(m,p相关用法与数一样,其中p即使字符串中前p个字符显示。无符号(只有正):%u(十进制),%o(八进制),%x(十六进制)
2024-09-28 23:34:23
876
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅