自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 语法高亮是怎么实现的?从正则、状态机到 Scintilla(C# 实战)

你每天都在看语法高亮:IDE、代码编辑器、博客的代码块、优快云 的文章。但“给代码上色”到底是怎么做到的?是正则替换?是编译器?本文把这件事拆开讲清楚:从最朴素的上色,到状态机词法分析,再到 Scintilla 的原生增量高亮;同时说明静态文章高亮和编辑器实时高亮的区别,以及性能、正确性和踩坑清单。示例以 C# / WinForms 为主,原理适用于任何语言和编辑器。

2026-10-21 12:23:32 212

原创 在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)

方案原理优点缺点Jint纯托管 JS 解释器无原生依赖、部署简单、可限制语句/内存/递归不是 V8,性能一般;没有 DOM/NodeWebView2嵌入 Chromium完整浏览器能力重、需要运行时、和 C# 通信跨进程嵌入 V8/JScript性能好、生态成熟原生 DLL,部署和架构匹配麻烦Node.js 子进程独立进程生态最全进程/协议/生命周期复杂本项目的选择是Jint目标环境是 .NET Framework 4.8,很多现场机器不能随便装运行时;

2026-10-21 12:16:31 354

原创 Windows 控件获取全攻略:Win32 / UIA / MSAA + 鼠标拾取与点击关联(C# 实战)

很多人一开始会问:Windows 没有一棵统一的“控件树”。同一个控件,通常有下面几种观察方式:Hook 是最后手段,不是第一种手段。 能用标准接口读到的,不要 Hook;能用进程外事件拿到的,不要注入。原因和具体做法见第十一节。前三种方式的关系不是 1:1:所以工程上不要迷信某一种来源,而是:本项目的自动读取顺序是:理由:UIA 信息最丰富;MSAA 覆盖老控件;Win32 是永远能返回结果的“地板”,而且本地调用不会因为目标进程卡死而挂住。在 .NET Framework 项目中添加引用:使用 .N

2026-10-21 12:13:36 458

原创 Tauri 2 如何使用 URL 启动窗口 — 配置详解与注入原理

在中,url字段被反序列化为WebviewUrlExternal(Url), // 外部 URL(http/https)App(PathBuf), // 相对路径,如 "index.html"CustomProtocol(Url), // 自定义协议,如 "myapp://home"// 默认值:WebviewUrl::App("index.html")机制谁消费做什么Rust 运行时决定窗口实际加载的地址Rust 运行时(dev)App 模式窗口的基础 URL + 启用磁盘文件代理CLI。

2026-08-01 10:44:20 382

原创 uniapp-cloud-build:自动化 uni-app 云打包,解放你的双手

作为一名 uni-app 开发者,你是否经历过这些痛苦?每次打 APK 包都要打开 HBuilderX,切到发行菜单,点半天按钮团队协作时,每个人的 Android 签名、SDK 配置各不一样,打包环境一团乱CI/CD 流水线想集成自动打包,却发现官方云打包有限制,离线打包又要在每台机器上装 Android Studio换了台电脑,又要重装 JDK、Android SDK、Gradle 一大堆工具链如果你有以上任一痛点,那这个项目就是为你准备的。

2026-07-29 14:52:58 271

原创 Shell脚本实战:编写一个通用的Java服务启停管理脚本

本文提供的一个 Bash 管理脚本,通过 PID 文件、setsidkill超时检测等机制,实现了对 Java 服务“启动、停止、重启、状态查询”的完整生命周期管理。它既保留了exec带来的前台调试便利,又支持-d后台守护模式,非常适合作为 Spring Boot 或独立 Jar 应用的标准化运维脚本。你可以直接复制这个模板,修改APP_NAMEJAR和JAVA_OPTS三个变量,就能快速为自己的项目生成一个可靠的启停脚本。

2026-07-28 10:39:05 330

原创 UniApp 离线打包从入门到自动化:手动打包全流程拆解与一键脚本实战(WSL 环境适配)

在 UniApp 开发中,当项目引入自定义原生插件、需要深度定制打包流程,或无法使用云端打包时,离线打包是必经之路。但很多开发者初次接触离线打包时,常常被环境配置、文件拷贝、模块匹配、签名配置等一系列繁琐步骤卡住;尤其是在 WSL 环境下,Windows 与 Linux 路径互转、依赖下载慢等问题进一步增加了打包门槛。本文将分两部分展开:第一部分完整拆解 UniApp 安卓离线手动打包的全流程,每一步附带操作说明与踩坑提示,适合新手理解打包原理;第二部分在此基础上,推出一套封装好的 WSL 适配版一键打

2026-07-22 13:10:07 381

原创 Kotlin协程】深入理解 newSingleThreadContext、newFixedThreadPoolContext 与 Unconfined

被标记为线程资源昂贵:每个调用都会创建一个真实的 Java 线程,创建和销毁成本高容易泄漏:开发者经常忘记调用close(),导致线程一直存活无界队列风险:底层使用无界队列,任务堆积可能导致 OOM特性线程来源专用单线程专用线程池不创建线程并发度1(串行)N(可配置)不确定线程确定性确定(同一线程)确定(池内线程)不确定资源消耗高中极低需要关闭✅ 是✅ 是❌ 否API 状态稳定但不推荐适用场景序列化任务限制并发极特殊场景。

2026-06-25 13:31:08 325

原创 深入理解 Kotlin 协程:从零实现一个 IO 优先 + 虚拟线程溢出的混合调度器

/ 创建自定义配置的调度器(注意用完要 close)// 使用自定义调度器混合调度器的核心价值在于弹性——它不是要取代谁,而是在的稳定性和虚拟线程的高并发之间找到一个平衡点。双计数器感知拥挤:不依赖黑盒内部状态,自己精确计算积压IO 优先,VT 溢出:正常流量零开销,高峰时自动弹性扩容ThreadLocal 保鲜:快照式透传,解决虚拟线程的上下文丢失问题五种饱和策略:从入队等待到静默丢弃,覆盖各种业务需求空位转交机制:等待队列的任务优先复用空位,减少调度抖动无锁并发控制:用替代Semaphore。

2026-06-24 19:21:07 407

原创 论虚拟线程与 Kotlin IO 协程:资源开销、时长、高并发表现及适用场景与技术选型思考

本文对比分析了Java虚拟线程与Kotlin IO协程在异步任务处理中的性能差异。从资源开销看,协程内存占用更优(约30倍优势),但虚拟线程创建开销更低;在长时间IO(>10ms)场景下,虚拟线程在高并发(N≥5,000)时吞吐量反超协程10-35%;混合负载(CPU占比>20%)时协程因线程池负载均衡机制表现更优。选型建议:纯IO密集型且高并发场景优选虚拟线程,内存敏感或混合负载场景宜选协程。实测表明需结合并发规模、IO时长和CPU占比综合评估,脱离任一维度都会导致偏差。

2026-06-23 12:02:45 288

原创 反思AI对计算机行业的冲击:为什么它适合“造轮子”,却难当架构大任?

最近圈子里流行一种说法:“”这句话乍听有些绝对,却精准刺中了当前大模型在软件开发中的本质矛盾。本文想从行业冲击、个人与团队影响、以及这个“”论调出发,做一次系统性的冷思考,并谈谈未来 AI 会如何演进,以及我们如何正确使用它。

2026-06-22 22:35:08 448

原创 WS/TCP 是长连接,为何还要应用层心跳?

做网络开发的同学,几乎人人都接触过长连接业务,比如即时通讯IM、游戏服务、MQ消息队列、远程RPC、WebSocket网关等。客户端与服务端双向开启心跳机制。这时候很多初学者都会产生同一个疑问:TCP本身不就是长连接协议吗?自带三次握手、四次挥手、ACK确认、超时重传,操作系统还提供了TCP Keepalive保活功能。既然底层已经帮我们维护连接了,为什么我们还要多此一举,在应用层手写心跳包?甚至很多面试高频题,面试官都会深挖这个知识点。

2026-06-13 10:38:31 332

原创 彻底搞懂缓存不一致:原因、方案对比、选型与实战代码

缓存一致性没有银弹。数据库负责正确性,缓存负责性能,TTL 负责兜底,删除负责失效,双删/锁/MQ/CDC 负责降低极端风险。默认方案用;高并发时补上延迟双删;极敏感场景再上锁、版本控制或直接读主库;大系统则用做统一治理。Redis 和 MySQL 的组合并非做不到一致性,而是你要接受它通常是最终一致,并用工程手段把“不一致窗口”缩小到业务可接受的范围。

2026-06-10 22:02:01 343

原创 Webman 的 PHP 打包构建脚本:编译二进制、归档备份、生成校验包(附完整源码+解析)

本文介绍了一个专为Webman框架设计的PHP自动化构建打包脚本。该脚本解决了原生打包存在的四个痛点:手动操作繁琐、缺乏备份机制、缺少版本信息、跨环境切换困难。主要功能包括: 参数解析 - 支持PHP版本/路径自动适配 智能备份 - 按日期+序号归档历史构建 版本收集 - 从.env或Git自动获取应用信息 二进制编译 - 调用Webman原生命令并处理失败回退 信息归档 - 包含环境文件、版本说明和校验值 自动清理 - 移除中间文件保持整洁 脚本采用模块化设计,包含日志输出、参数解析、版本获取、编译执行等

2026-06-10 18:47:44 214

原创 Web Components 介绍与推荐三款框架

如果你追求纯原生无依赖、最低的学习成本、极致的轻量与性能,只是想快速开发可复用的通用组件,Lit 是最佳选择;如果你是React 技术栈团队,需要跨端开发能力,偏好国产开源生态与中文支持,想要兼顾 React 的开发体验与 Web Components 的原生能力,Omi 是最适配的方案;如果你的核心目标是构建企业级组件库或设计系统,需要全框架通用适配能力,有大型团队协作开发的需求,想要一套开箱即用的完整工程化解决方案,Stencil 是当之无愧的首选。

2026-04-22 14:29:43 654

原创 Stoplight Elements WebComponents 原生 WEB 组件化技术生成 Swagger优美界面

Stoplight 的设计充分考虑了现代 API 工作流程,提供直观的界面和周到的功能,为整个 API 设计生命周期提供支持。能够利用从 OpenAPI 文档生成的可嵌入 Web 组件,构建高度定制化的交互式 API 文档。原本的 Swagger 界面过于难看,其余组件大部分是VUE或者Spring的依赖库。对于不是这两种技术的原生Web开发来说,想要一个好看的Swagger过于麻烦,甚至找不到合适的。

2026-04-22 14:04:02 265

原创 webman 使用 PHPUnit

【代码】webman 使用 PHPUnit。

2026-04-21 15:16:44 82

原创 Python 项目管理方案

Python项目管理不用搞复杂,三件套直接搞定:统一配置,标准规范.venv:环境隔离,安全稳定UV/Poetry:自动化依赖,高效省心优先推荐UV:速度快、上手零成本、功能全覆盖,能满足99%的开发场景。这套方案是目前Python社区主流工程化最佳实践,学会它,彻底告别依赖混乱与环境崩溃。

2026-04-18 15:50:25 368

原创 python 实现画面变动检测

画面变动检测基于帧间差分算法,用于判断画面是否存在变化,是系统性能优化的关键组件。检测逻辑聚焦于画面像素层面的差异识别,核心目标是精准捕捉画面变动状态。

2026-04-17 09:43:50 515

原创 MySQL实战避坑:字符型字段隐式转换,竟让查询结果“判若两人”

在MySQL日常业务开发中,简单的SELECT查询往往是最基础的操作,可正是这种“习以为常”的写法,很容易忽略字段类型与查询值的匹配规则,触发MySQL隐式转换机制,最终出现“查不到数据”,“查询结果异常”,“索引失效”等诡异问题。近期在业务开发中,就遇到了一个典型案例:针对人员表的RFID编码字段查询,仅差一对单引号,两条结构几乎一致的SQL,查询结果却天差地别——加引号查无数据,去掉引号反而能命中结果。

2026-03-06 03:32:17 370

原创 Webman框架Monolog日志深度优化:精准定位+分级存储+控制台彩色输出

在Webman框架开发过程中,日志是排查问题、监控业务、定位bug的核心工具,而框架默认的Monolog日志配置往往存在日志定位模糊、分级存储不清晰、控制台无彩色区分等问题,排查线上问题时效率极低。本文基于Monolog日志组件,对Webman日志配置进行深度优化,剔除冗余的SQL日志标签处理逻辑,保留核心实用功能,实现控制台彩色日志输出、日志分级滚动存储、业务代码精准定位三大核心能力,配置可直接复用,适配绝大多数Webman业务场景,大幅提升日志排查效率。定位模糊:默认日志仅记录框架调用层,无法精准定位到

2026-03-05 23:24:12 399

原创 Win10/11开机自启动的软件,启动慢

Windows 11 最新版本新增了启动项延迟功能,应用程序将在资源管理器完成加载后才会启动。关闭方法为修改注册表。

2026-02-15 15:09:04 107

原创 浅浅了解下0拷贝技术

核心逻辑:非“完全无拷贝”,而是通过DMA、内存映射等技术消除冗余CPU拷贝与用户态-内核态切换。

2026-01-10 14:38:20 357

原创 install-php 脚本

【代码】install-php 脚本。

2025-12-08 18:28:14 151

原创 WSL音频转发配置流程:WSL2/WSL1全适配

WSL默认无音频转发配置,导致ekho、ffmpeg等程序“运行无声音”。本次WSL2(WSLg方案)与WSL1(PulseAudio方案)完整配置流程,步骤直接可执行。

2025-12-07 21:19:21 948

原创 Linux文件锁实现阻塞命令的异步队列

单线程/事件循环模型、单机部署、低中并发(QPS≤100)、需阻塞命令有序执行。此类场景下,flock方案在部署成本与性能上均优于中间件队列,可直接落地使用。核心价值:用Linux原生能力解决工程问题,这才是高效开发的精髓。(注:文档部分内容可能由 AI 生成)

2025-12-05 14:16:31 588

原创 Ubuntu 22.04 离线安装 MySQL 8.4 完整教程(包含自动化脚本)

在没有网络连接的 Ubuntu 服务器上安装 MySQL 8.4 可能会遇到依赖缺失等问题,本文将详细介绍离线安装的原理、核心安装命令及自动化脚本,帮助你快速完成安装配置。离线安装 MySQL 主要解决两个核心问题:MySQL 8.4 对系统库有较多依赖(如 libaio、libtinfo 等),在无网络环境下需要手动处理这些依赖关系。官方离线包下载地址:2. 准备依赖包(有网络环境)在一台相同系统版本(Ubuntu 22.04)的有网机器上,使用命令下载依赖。以下为自动化脚本,列出了可能需要的依赖:

2025-11-19 21:43:26 1822

原创 解决导入的数据库中因为 sql_mode 不同 视图无法打开问题

通过这次在本地视图操作中因 sql_mode 引发的问题及解决过程,我们深刻认识到 sql_mode 对 MySQL 运行的重要影响。不同的 sql_mode 设置可能会导致看似相同的 SQL 语句产生截然不同的执行结果。在日常开发和维护中,尤其是在涉及线上线下不同环境的情况下,我们必须仔细对比和管理 sql_mode 的设置。

2025-10-26 02:12:16 800

原创 Linux 程序使用 STDOUT 打印日志导致程序“假死”?一次线上 Bug 的深度排查与解决

当一个后台进程组尝试写入其控制终端时,系统会发送SIGTTOU信号给该进程。默认行为是停止该进程(stop),使其进入Stopped状态。此时进程并未退出,而是“卡住”,看起来就像“假死”。可以通过ps注意这里的T状态:表示进程已被暂停(stopped)。这正是我们遇到的情况!项目建议日志输出绝对不要依赖echoprintvar_dump打印生产日志启动命令必须重定向或使用nohup守护进程设置日志系统。

2025-09-27 17:45:23 1004

原创 【Kotlin】一种基于链表结构的事件传播机制设计与实现

本文介绍的事件传播机制通过链表结构和DSL配置的结合,提供了一种灵活、可扩展的事件处理方案。其核心价值在于将复杂的事件处理流程转化为清晰的链式结构,同时支持运行时动态调整。这种设计模式在需要精细控制事件传播路径的场景中具有实用价值,为复杂系统的事件处理提供了新的思路。该机制的实现展示了如何将数据结构理论与实际编程需求相结合,创造出既符合计算机科学原理又满足工程实践需求的解决方案。

2025-09-23 02:41:57 518

原创 如何通过跳板机访问内网 Mysql 服务器

很多场景下内网数据库不能直接对公网开放,但我们又需要在外网机器上用数据库客户端(如 DBeaver、MySQL Workbench)连接调试或做数据迁移。常见解决方法是通过**跳板机(Jump Server)**做中转。本文用通俗语言把流程讲清楚,并给出常用命令和注意点。

2025-09-17 18:29:01 1079

原创 Ubuntu Desktop 22.04.5 LTS 使用默认的 VNC 远程桌面

打开设置 - 分享 - 远程桌面。

2025-09-16 21:26:17 593

原创 MySQL远程root用户连接后看不到其他数据库与无法登录?原因分析与解决方案

在使用MySQL进行开发或运维时,我们经常会遇到这样的问题:通过远程客户端以root用户登录MySQL服务器后,发现无法看到其他数据库,甚至在指定了某个数据库后也无法访问,提示类似或的错误。这让人非常困惑:“我不是用的是root用户吗?不是最高权限吗?” 本文将深入剖析这一现象的原因,并提供清晰的解决方案。

2025-09-13 00:48:41 1205

原创 如何在 Linux/Unix 系统中使用 PHP 命令行安装指定或最新版本的 Composer

下载安装脚本(避免 curl 权限问题)执行安装并指定版本(如 2.7.9)移动到全局命令删除临时安装文件验证安装结果。

2025-09-13 00:26:21 360

原创 C# FlaUI win 自动化框架,介绍

FlaUI 是一套基于 .NET 的 Windows 桌面应用自动化测试库,支持 Win32、WinForms、WPF、UWP 等多种类型的应用。它基于微软原生 UI Automation 库,提供了更现代、易用的 API,适合自动化测试工程师和开发者实现高效、可维护的 UI 自动化脚本。UIA(UI Automation)组件树是微软在 Windows 操作系统中提供的一种用于自动化用户界面交互的技术框架。它允许辅助技术### C# FlaUI Windows 自动化框架介绍。

2025-09-01 17:19:43 801

原创 如何禁止程序多开实现思路

通常为了数据的安全性就需要对程序多开进行禁止。多个进程同时写同一个文件,会造成数据丢失或混乱。限制单实例可保证程序稳定和数据安全。

2025-08-28 13:22:30 680

原创 IDEA 配置终端提示符样式,通过脚本方式

某天闲得无聊想要通过 powershell 的脚本可以修改 powershell 的提示符,最终做到如下效果。

2025-08-18 19:03:12 552

原创 win11 powershell 的 sudo 命令

在 Windows 11 24H2 版本中,微软引入了一个类似于 Linux 的 Sudo 命令,可以方便的获取UAC权限。可以通过命令在开启他们,但是中断需要具有管理员权限。

2025-08-15 08:51:00 702

原创 Markdown 使用 mermaid 绘制图

mermaid 代码块”其实是 Markdown 中用于展示代码的语法,用三个反引号(```)包裹内容。如果代码块指定的语言是 mermaid,并且你的编辑器支持 Mermaid 渲染,它就能自动生成流程图、时序图等图形。Mermaid 是一个基于 JavaScript 的图表生成库,允许你用文本语法(类似 Markdown)生成流程图、时序图、甘特图等。,适合在 Markdown 文档中直接编写图表。

2025-06-15 13:35:48 2781

原创 Java/Kotlin selenium 无头浏览器 [Headless Chrome] 实现长截图 三种方式

CDP 截图,是通过 Chrome 的 Chrome DevTools Protocol (CDP) 协议进行截图。如果需要使用这个,需要保证 浏览器版本,浏览器驱动,项目 selenium 依赖,chrome cdp 的依赖。这些版本需要对应后,才能正常使用。

2025-06-11 12:54:34 1269

ubuntu piper 快速语音转文本整合

ubuntu piper 快速语音转文本整合

2025-12-23

OpenHardwareMonitorServer

OpenHardwareMonitor 服务器,可以让程序通过HTTP协议访问 OpenHardwareMonitor 获取的数据。更多参数可以输入 -help 来查询。 包含 CPU,GPU,硬盘,内存,网络 硬件监控,并且都可以获取到温度等指标

2025-02-10

windows 平台下音频文件转为 silk 文件

windows 平台下音频文件转为 silk 文件

2025-01-28

golang 配色方案, 以蓝色,粉色,金色,绿色为主

golang 配色方案, 以蓝色,粉色,金色,绿色为主

2025-01-28

Leyden 目前(2024/6/20)为止提供的 Linux / x64 JDK

Leyden 目前(2024/6/20)为止提供的 Linux / x64 JDK。包是免费下载,转储自 leyden

2025-01-24

Leyden 目前(2024/6/20)为止提供的 macos-aarch64 JDK

Leyden 目前(2024/6/20)为止提供的 macos-aarch64 JDK。包是免费下载,转储自 leyden

2025-01-24

空空如也

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

TA关注的人

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