自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2026-03-06 03:32:17 330

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

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

2026-03-05 23:24:12 345

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

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

2026-02-15 15:09:04 38

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

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

2026-01-10 14:38:20 321

原创 install-php 脚本

【代码】install-php 脚本。

2025-12-08 18:28:14 124

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

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

2025-12-07 21:19:21 823

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

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

2025-12-05 14:16:31 548

原创 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 894

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

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

2025-10-26 02:12:16 770

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

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

2025-09-27 17:45:23 951

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

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

2025-09-23 02:41:57 493

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

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

2025-09-17 18:29:01 925

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

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

2025-09-16 21:26:17 529

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

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

2025-09-13 00:48:41 1104

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

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

2025-09-13 00:26:21 321

原创 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 691

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

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

2025-08-28 13:22:30 582

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

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

2025-08-18 19:03:12 516

原创 win11 powershell 的 sudo 命令

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

2025-08-15 08:51:00 534

原创 Markdown 使用 mermaid 绘制图

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

2025-06-15 13:35:48 2541

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

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

2025-06-11 12:54:34 1100

原创 深入解析 Compose Multiplatform 自定义系统托盘实现,解决托盘乱码问题

Compose Multiplatform是 JetBrains 开发的声明式 UI 框架,可让您为 Android、iOS、桌面和 Web 开发共享 UI。将 Compose Multiplatform 集成到您的 Kotlin Multiplatform 项目中,即可更快地交付您的应用和功能,而无需维护多个 UI 实现。在(2025.06.05) Compose Multiplatform 中对于 Desktop 的开发,如果使用了托盘,会发现托盘中的中文竟然是乱码。

2025-06-05 23:17:22 561

原创 Vue 前端开发 解决链接后端并解决跨域

但是值得注意的是,axios 不能直接访问后端服务器了,因为本地 Vite 的 proxy 配置只对 开发服务器(本地浏览器访问 localhost:xxx)下的请求生效。使用其他地址可能会导致无法拦截并重定向。proxy 中的配置会将,原本访问 admin-api 的请求通过 vite 内置服务器转发到 target 中,以此解决跨域问题。的时候跨域设置,后端的URL,所以一般会将 axios 的后端URL放在配置文件里面,但是这可能会导致跨域的问题。于后端进行通信,而使用。文件,并进行以下配置。

2025-05-21 01:34:27 510

原创 kotlin Android AccessibilityService 无障碍入门

安卓的无障碍模式可以很好的进行自动化操作以帮助视障人士自动化完成一些任务。无障碍可以做到,监听屏幕变化,朗读文本,定位以及操作控件等。以下从配置到代码依次进行无障碍设置与教程。

2025-05-19 23:17:51 1755

原创 Kotlin Compose Button 实现长按监听并实现动画效果

想要实现长按按钮开始录音,松开发送的功能。发现 Button 这个控件如果去监听这些按下,松开,长按等事件,发现是不会触发的,究其原因是 Button 已经提前消耗了这些事件所以导致,这些监听无法被触发。因此为了实现这些功能就需要自己写一个 Button 来解决问题。

2025-05-19 22:03:50 1705

原创 JetBrains IDEA,Android Studio,WebStorm 等IDE 字体出现异常时解决方法

JetBrains IDEA,Android Studio,WebStorm 等IDE 中文字体出现异常,很怪的时候,通常需要设置字体回退才能解决。只有这样 IDEA 在没有中文字体的样式下,会将字体设置为。需要在 Font 中将字体连写打开,并且设置字体回退为。

2025-05-18 17:36:30 550

原创 Java 快速转 C# 通俗易懂的详细教程

以下是一个针对的简明教程,重点对比 Java 与 C# 的异同,帮助你快速上手。

2025-05-17 19:53:39 2663 1

原创 免费内网穿透:SakuraFrp

SakuraFrp 支持各大平台,如果需要还可以在本地搭建一个网站,进行内网穿透。SakuraFrp 是一个内网穿透服务,可以穿后台、建网站、做调试、开游戏等。SakuraFrp 每次可以免费领取一些流量,基本上用不完。

2025-05-16 23:44:07 909

原创 自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件

AutoHotkey 其实是相当于一个脚本解释器,封装了一些关于操作的函数,比如原生支持热键/热字符串,监听鼠标位置,监听鼠标和窗口的关系,高效的窗口/进程控制,系统级事件响应等。轻量级且快速启动,占用内存小,适合长时间后台运行(如监控键盘输入)可将 .ahk 脚本编译为独立的 .exe 文件,无需安装 AutoHotkey 即可运行。

2025-05-16 23:39:59 1141

原创 Java并发编程核心组件简单了解

虚拟线程优先策略新项目直接使用 ReentrantLock旧系统逐步替换关键路径的 synchronized锁选择决策树if (需要可中断/超时 || 需要公平性 || 虚拟线程环境)→ 选择 ReentrantLockelse if (简单同步 && 短期持有)→ 使用 synchronizedelse→ 评估其他并发工具(如 StampedLock)监控指标锁等待时间(超过 10ms 需要告警)虚拟线程固定率(目标 < 5%)锁竞争频率(每秒竞争次数)

2025-05-16 19:51:52 859

原创 Kotlin 使用虚拟线程与小技巧

ReentrantLock,也被称为“可重入锁”,是一个同步工具类,在java.util.concurrent.locks包下。不推荐使用 synchronized ,因为 synchronized 会将资源在单一线程中锁起来,导致如果存在多个虚拟线程执行,每个虚拟线程中只有一个能访问到该资源。kotlin 可以通过 asCoroutineDispatcher 方法将线程池转为一个协程调度器,其中则可以包括虚拟线程池。支持在线程内和线程间共享不可变数据。它们优于线程局部变量,尤其是在使用大量虚拟线程时。

2025-05-16 19:33:29 728

原创 Kotlin 协程实战:实现异步值加载委托,对值进行异步懒初始化

在实际开发中,我们经常遇到这样的场景。

2025-05-14 17:32:41 589 1

原创 Kotlin 懒初始化值

在 Kotlin 开发中,懒初始化(Lazy Initialization) 是一种常见的优化技巧,它允许我们将对象的初始化延迟到真正需要使用时再执行。Kotlin 提供了两种核心机制来实现懒初始化: 和 。本文将深入探讨它们的使用场景、区别以及最佳实践。2. 特点仅适用于 变量:因为 的本质是延迟赋值。非空类型支持:允许你声明一个非空类型(如 )而不立即初始化。手动控制初始化时机:需要开发者显式赋值。线程不安全:多线程环境下需手动同步。3. 使用场景Android 开发中初始化

2025-05-12 19:51:21 1091

原创 Java 自动下载 Chromium

CWindow 是对标签页的封装, 提供了众多封装,可以做到对任意一个 CWindow 进行操作,当对 CWindow 进行操作打的时候,会切换到特定的标签页进行操作。引入 ChromiumDownloader 库,该库可以下载与加载 Chromium。ChromiumEx 是对 ChromeDriver 的简略封装,提供了部分监听功能,比如监听标签创建,关闭,浏览器关闭,控制台日志等。ChromeOptionsExKt 是封装了对 ChromeOptions 的一些拓展方法。

2025-05-09 21:47:33 373

原创 双 Token 与 单 Token 优缺点

在Web应用开发中,身份认证和授权是保障系统安全的核心环节。随着技术演进,基于Token的认证机制逐渐取代传统Session方案,而双Token与单Token架构的选型争议也日益成为开发者关注的焦点。本文将从技术原理、优缺点对比和实际应用场景三个维度,深入解析这两种认证方案的差异与适用场景。

2025-04-17 21:25:23 1310 3

原创 kotlin + spirngboot3 + spring security6 配置登录与JWT

spring security 6 需要使用 filterChain 来配置认证链,并且 推荐使用 DSL 方式进行配置即Lambda方式。

2025-04-17 20:51:57 606

原创 整活 kotlin + springboot3 + sqlite 配置一个 SQLiteCache

要实现一个 SQLiteCache 也是很简单的只需要创建一个Bean 即可同样的还需要 SQLite 这里 SQLite 的 url 设置为。

2025-04-16 15:17:15 626

原创 Java 搭建 MC 1.18.2 Forge 开发环境

但是关于 1.18.2 的开发教程太少,因此自己研究了一套写法,写法并非是最优的但是是探索开发MOD中的一次笔记和记录。在代码中实现了通过注解进行方块/物品的注册并进行JSON数据的生成。创建完成后即可进行 MOD 开发。推荐使用 IDEA 插件。

2025-04-04 16:55:55 1020

原创 MC Forget MOD 实现扫描指定MOD的所有的类

在使用 Forget 开发的时候,常常因为没有提供很好的工具类无法很方便的进行反射扫描类,以及对其实体类进行自动的反射注册。所以有了以下文章。Forget 作为一个框架以及MOD的加载器肯定包含了类加载以及类扫描的功能,但是由于本人实力尚浅没有找到提供的方法以及工具类,因此选择了另辟蹊径。环境:jdk 17。

2025-03-17 14:29:07 776

原创 解决 Java/Kotlin 资源加载问题

在对 Jar 的 Resources 目录下的资源加载时候有很多方法,一般这个方法不行就换个方法。在下一个常见就发生这个方法不行上个方法可以,造成这个结果的原因就是,资源是由类加载器进行加载的,如果当前的类加载器无法加载到资源就需要使用其他的类加载器进行加载。通常使用以下的类加载器大部分造成资源无法加载的场景为负责加载的类加载器和负责加载资源的类加载器不是同一个。

2025-03-10 20:20:10 804

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关注的人

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