晓风残月

叹息似的渺茫,你仍要保存着那真!

GitHubTelegramGMailXBilibiliSteam
该博客系统正在开发中,开发进度见 GitHub

图文

街霸 6 详解第一弹:拳脚的整体介绍

街霸 6 详解第一弹:拳脚的整体介绍

本文是作者街霸 6 攻略系列的开篇内容,作者本身拥有五个大师段位角色,结合自身实战经验专门讲解普通拳脚的相关机制,暂不涉及连段、斗气等其他系统。 文章首先介绍了拳脚分类、格斗游戏通用的数字 + 字母表示规则,随后逐一拆解拳脚核心属性:包含发生、判定、收招的帧数逻辑,上中下三段攻击对应的防御方式,打击距离与立回拉扯的关联,以及硬直差、确反、偷帧、距离陷阱等实战机制,同时给出不同对局场景下拳脚选择、防守判断的实用技巧,适合新手快速理解游戏基础战斗逻辑。

game
1553
0
9 个月前
记一次对 Rust Embed 压缩的探索

记一次对 Rust Embed 压缩的探索

本文针对 Rust 项目 bili-sync 编译产物体积过大的问题,展开 Rust Embed 静态资源压缩方案的探索。作者首先排查发现,嵌入的 Swagger-UI 等静态资源是体积过高的核心诱因,而 Rust Embed 官方提供的透明压缩方案虽能缩减程序体积,却会额外增加运行时内存占用,不符合需求。 作者转而利用 HTTP 原生支持的 Content-Encoding 特性,采用预压缩静态资源、浏览器端解压的思路,基于 rust-embed-for-web 项目二次开发,新增源文件保留配置、特殊文件排除规则,还将动态派发替换为静态派发优化性能。最终改造后,原本 26M 的编译产物缩减至 16M,在不增加内存开销的前提下实现了显著压缩效果。

rust
587
0
9 个月前
tokio::fs 中 flush 方法与标准库同名方法的差异

tokio::fs 中 flush 方法与标准库同名方法的差异

本文聚焦 Rust 生态中`tokio::fs`模块的 flush 方法与标准库同名方法的语义差异,针对异步文件操作的常见踩坑点展开说明。 作者首先明确当前版本 Tokio 的异步文件操作基于`spawn_blocking`线程池封装同步逻辑实现,核心差异在于:标准库`File`无用户态缓冲区,绝大多数平台下 flush 方法无实际操作,漏调用也不影响程序逻辑;但 Tokio 的 write 调用仅代表写入任务已提交到线程池,不等同于实际写入完成,必须显式调用 flush 才能等待操作落地,这一设计是受`AsyncWrite` trait 签名约束的结果。最后作者提醒开发者,写入文件后主动调用 flush 是更稳妥的通用开发习惯。

rust
503
0
1 年前
在 Mac 上使用 Ghostty 代替 Alacritty

在 Mac 上使用 Ghostty 代替 Alacritty

本文是作者针对 Mac 平台终端工具的使用体验分享,旨在安利新兴终端项目 Ghostty。作者此前先后使用过 iTerm2 与 Alacritty,前者性能卡顿体验不佳,后者虽性能优异,但存在 Mac 平台原生适配缺陷,包括透明标题栏交互异常、窗口调整时抖动闪烁、偶发启动卡死等问题,使用体验存在瑕疵。 作者介绍,Ghostty 主打同时兼顾极速性能、丰富功能与原生平台体验,Mac 端采用 Swift 开发原生 GUI,实测性能与 Alacritty 持平,且完全解决了后者的适配 bug,官方文档完善便于用户迁移配置,是 Mac 平台十分值得尝试的终端替代品,文末还附了作者自用的配置参考。

mac
11725
0
1 年前
[NAS 系列第三弹]为局域网设备配置无感知的透明代理

[NAS 系列第三弹]为局域网设备配置无感知的透明代理

本文属于 NAS 系列第三弹,针对前序文章提到的网络代理需求,分享局域网无感知透明代理的配置方案,实现所有接入局域网的设备无需额外设置即可正常访问外网,同时支持简易的 DNS 与流量分流。 作者采用将 NAS 作为旁路网关的核心思路,结合自身光猫承担拨号、NAT、无线 AP 功能的单网段网络结构,分步讲解完整配置流程:可选的多网口桥接、固定设备 IP、开启 IP 转发并使用 dae 工具配置代理分流规则、替换光猫 DHCP 服务将默认网关指向 NAS,同时给出了详细命令示例与不同网络环境的适配注意事项。

nas
6389
0
2 年前
[NAS 系列第二弹]配置全自动的影视文件下载、刮削和整理

[NAS 系列第二弹]配置全自动的影视文件下载、刮削和整理

本文是 NAS 系列第二篇,承接上一篇硬件组装与 Arch Linux 系统安装内容,讲解基于 Docker 部署工具链,实现影视资源全自动下载、刮削与整理的完整配置流程,适用于有基础 BT/PT 认知、持有认证 PT 站点账号的读者参考。 作者梳理了方案各组件的功能逻辑,最终采用 nastools 作为索引与文件转移工具、qbittorrent 作为下载器、Emby 作为媒体服务器与刮削器的组合,给出了各工具的部署配置与联动设置步骤,同时说明了弃用 Jellyfin 选择 Emby 的体验差异原因,还分享了基于 Btrfs 的 reflink 特性优化文件转移、避免空间浪费的自定义方案。

nas
5977
0
2 年前
 [NAS 系列第一弹]组装机器并安装系统

[NAS 系列第一弹]组装机器并安装系统

本文为 NAS 系列教程的开篇内容,作者结合自身使用需求,分享了从零组装 NAS 并部署系统的完整过程。作者此前使用极空间成品 NAS,因自带功能冗余、内网穿透无法自定义、无 root 权限、Docker 操作体验差等痛点,萌生了自组设备的想法。 作者先明确了影音服务、游戏服务器、远程开发等核心使用场景,据此选择了总价 3314 元的硬件配置,优先保障 CPU 与内存性能,随后记录了硬件组装、开机点亮的全流程,最终选择 Arch Linux 作为系统,搭配 btrfs 文件系统,通过 archinstall 工具完成了快速部署。

nas
1416
0
2 年前
Visual Studio Code Golang 刷题指北

Visual Studio Code Golang 刷题指北

本文是作者基于 Go 语言刷题实践输出的 Visual Studio Code 环境搭建指南。作者首先梳理了过往刷题仓库存在的中文目录导致 go mod 无法识别、内置数据类型缺失引发语法错误等问题,明确重构后的刷题仓库需满足全量代码正常识别、单文件配套单元测试可批量运行的核心要求。 作者详细给出了完整配置流程:包括初始化 go mod 项目、安装 leetcode 插件并配置存储路径、关闭题目翻译、设置带单元测试的代码模板,以及替换 golines 作为代码格式化工具等操作,同时提及可借助 Copilot 快速生成测试用例,最终可实现带代码补全、单测批量执行的流畅刷题体验。

go
1266
0
2 年前
Windows 简单访问 WSL2

Windows 简单访问 WSL2

本文聚焦 Windows 访问 WSL2 时部分服务端口映射失效的常见问题,梳理了三类可行解决方案。 作者首先说明手动查询 WSL 局域网 IP 直接访问、使用工具全量映射 TCP 端口到 Windows 本地两种方案的优劣,重点介绍基于 WSL 新增的 systemd 支持开发的自动更新工具 wsl2-automatic-hosts:用户完成简单安装配置后,工具会在 WSL 每次启动时自动将当前 IP 写入 Windows hosts 文件绑定自定义域名,无需反复手动查询 IP 即可稳定访问 WSL 内部署的数据库、web 等各类服务。

wsl
1545
0
3 年前
GoLand 的完美 leetcode 刷题体验

GoLand 的完美 leetcode 刷题体验

作者结合自身多年 LeetCode 刷题经验,梳理了过往刷题方案的痛点:在线编辑器自动补全体验差,VSCode 搭配 LeetCode 插件时,同目录下多道题的重名函数、结构体会触发 Go 重声明错误,大量标红严重影响使用体验。 本文详细介绍了 GoLand 下适配 Go 语言的高效刷题环境配置方案:安装 LeetCode Editor 插件后,通过自定义文件名规则为每道题生成独立目录解决重声明问题,自定义代码模板预设测试函数,利用插件的区域提交特性实现本地调试不影响线上提交,同时给出旧有平铺式题解代码的迁移脚本,最后提醒读者仍需适当练习在线编辑器作答,避免笔试时不适应。

linux
2602
0
3 年前
jellyfin 基础教程

jellyfin 基础教程

本文是面向新手的 Jellyfin 本地媒体库管理工具入门教程,作者首先阐释了本地媒体库管理的核心价值,可解决追剧进度遗忘、存量资源查找繁琐、多设备访问配置复杂等常见痛点。 作者随后分享了 Windows 端 Jellyfin 的完整入门操作:包括后端服务的安装与初始化逻辑、客户端选型的核心考量,同时详解了元数据刮削的运行原理,给出了规范的资源目录命名规则与配套自动重命名工具,可大幅提升刮削成功率;最后还介绍了结合 RSS 订阅、自动重命名工具搭建半自动番剧追更流程的方法,帮助用户降低日常资源管理成本。

jellyfin
9141
0
3 年前
在 wsl2 中完美启用 systemd

在 wsl2 中完美启用 systemd

本文围绕 WSL2 环境下启用 systemd 的需求展开,梳理了目前主流的 genie、subsystemctl、wsl-distrod 三种实现方案,作者选取易用性更高的 wsl-distrod 做重点讲解。 文中分别给出了全新安装自带 systemd 的发行版、为现有发行版追加 systemd 支持的分步操作流程,附带具体执行命令与可选的 Windows 开机自启配置方法。作者对比三类方案的实现逻辑后指出,Distrod 虽核心原理与另外两种工具相近,但无需手动编写自启脚本,支持 WSL 启动时自动加载 systemd,操作门槛更低,最后还给出了问题排查的官方参考渠道。

wsl
2600
0
3 年前
fish shell 脚本编写指南

fish shell 脚本编写指南

本文是面向开发者的 fish shell 脚本编写翻译指南,作者结合大量可直接复用的实操示例,系统性讲解 fish 脚本的开发全流程。 开篇先介绍脚本执行的基础配置,包括 shebang 行设置与可执行权限赋予,随后详细说明 fish 变量的特殊规则:所有变量均为字符串类型,同时讲解变量作用域区分、列表操作、命令输出存储等核心基础用法。后续还覆盖了循环、分支判断、字符串处理、函数定义与传参返回等核心语法,以及文件路径处理、彩色输出、用户交互、外部工具结合、耗时统计等高频实用场景的实现方案,实用性较强。

fish
3074
0
3 年前
基于 Go 泛型的排序包

基于 Go 泛型的排序包

本文是作者此前 Go 泛型相关分享的后续实践内容。作者参考优质泛型学习仓库梳理了 Go 泛型的三项核心规则:可通过定义类型集合实现泛型约束,约束中添加波浪线前缀可支持与基础类型同源的衍生类型,为包含泛型的自定义类型定义方法时,接收者必须显式声明对应的泛型符号。 基于上述理论基础,作者基于 Go 泛型封装了适配多类型可比较切片的排序工具,无需为不同类型单独实现排序接口,仅需将目标切片用泛型类型 Sortable 封装,即可直接调用标准库 sort 完成排序,大幅降低多类型切片排序的实现成本。

go
311
0
4 年前
trilium - 构建你的个人知识库

trilium - 构建你的个人知识库

本文是开源笔记工具 Trilium 的上手科普,作者首先点明这款产品主打个人知识库搭建,核心优势包含灵活的两用目录结构、笔记克隆与历史回溯等实用功能、流畅的所见即所得富文本编辑体验、高自由度 API 拓展能力、便捷的多端同步能力五大特点。 作者还梳理了 Trilium 本地单端、客户端同步、网页端访问三种运行模式,给出了客户端安装、服务端部署的官方渠道与操作指引,附带核心功能实操演示,同时提供进阶开发的参考资料,方便不同需求的用户快速上手。

1215
0
4 年前
记 wslg 导致的 wsl2 高 CPU 占用的解决方法

记 wslg 导致的 wsl2 高 CPU 占用的解决方法

本文聚焦 Windows 11 升级后出现的 WSL2 空载时高 CPU 占用异常问题,分享作者的排查过程与解决方法。作者发现问题触发时 vmmem、Windows 音频设备图形隔离两个进程占用异常偏高,结合问题出现的时间节点,最终定位到是 Win11 新增的 WSLg 组件的 weston 剪切板崩溃导致,该故障大概率与多显示器设置变更有关。 作者结合官方开源仓库的 Issue 讨论,整理出三类可行解决方案:临时修复可使用 Win+Ctrl+Shift+B 快捷键重置显卡驱动;无需使用 WSLg GUI 功能的用户可修改.wslconfig 配置禁用 GUI 应用;也可手动升级到 WSLg 1.0.28 及以上预览版获取官方修复。

wsl
2590
0
4 年前
Go 泛型初探

Go 泛型初探

本文围绕 Go 1.18 Beta 1 版本新增的泛型特性展开实践分享。作者第一时间下载安装了该测试版本,同时给出了具体的安装操作步骤,随后参考官方泛型文档实现了支持任意可加类型切片的累加方法,提及当前 Go 工具链尚未适配新语法,编辑器会误报语法错误但代码实际运行结果符合预期。 作者后续尝试借助泛型批量实现 sort.Interface,完成多类型切片的排序功能但并未成功,同时指出当前官方泛型相关说明文档较为欠缺,仅能找到少量第三方示例可供参考,最后作者表达了对官方推出详细泛型文档的期待,也呼吁有相关实践经验的读者在评论区交流分享。

go
217
0
4 年前
singleflight 的作用、实现及思考

singleflight 的作用、实现及思考

本文围绕 Go 语言生态中的 singleflight 组件展开,系统介绍其作用、实现逻辑与优化方案。 作者首先明确 singleflight 的核心价值是解决缓存击穿问题:当缓存中某个 key 过期瞬间,大量同 key 请求同时穿透到数据库导致压力骤增。随后拆解了 groupcache 中基础版 singleflight 的实现原理,通过互斥锁、请求映射表与 WaitGroup 的巧妙配合,实现同 key 仅触发一次数据库查询回调、其余请求等待复用结果的效果。作者同时指出基础实现存在回调超时导致大量协程阻塞的缺陷,进一步介绍了官方扩展版本新增的 DoChan、Forget 方法的用法,以及二者分别适配超时控制、高可用业务场景的设计思路。

go
880
0
4 年前
Go 中 sync.cond 的应用场景(含举例及对比)

Go 中 sync.cond 的应用场景(含举例及对比)

本文围绕 Go 语言 sync 包下的 sync.Cond 条件变量展开科普,作者先梳理了该结构体的核心定义、配套的 Wait、Signal、Broadcast 三类方法的运行逻辑,明确其基础功能是协调访问共享资源的协程,在共享状态变更时通知阻塞协程恢复运行。 作者还结合食堂出餐的生活化场景给出了可运行的实现代码,进一步对比了 sync.Cond 与 channel、sync.WaitGroup 两类常用协程同步工具的适用差异:channel 更适配一对一通信场景,sync.WaitGroup 多用于单协程等待多协程执行完成的场景,清晰划定了三类工具的适用边界,为开发者选型提供了参考。

go
1397
0
4 年前
字节跳动二面题目记录

字节跳动二面题目记录

本文是作者的面试经历复盘记录,作者此前顺利通过快手一面,原以为字节跳动二面难度不高,实际作答时多处知识点掌握不牢被难住,因此整理了本场面试中自己掌握不足的考点供后续复习使用。 本次整理的考点覆盖计算机组成原理、计算机网络、Linux、Golang 四大技术方向,包含 CPU 缓存结构、TIME_WAIT 状态过多的影响与解决方案、HTTP 相关特性、kill 命令实现原理、Golang 垃圾回收机制、并发控制实现差异等核心面试题,每类考点均附优质参考博文链接,既可用于作者自身查漏补缺,也可供其他求职开发者参考。

面试
408
0
4 年前
bing bong:一款适配 QQ 的 Rss 机器人

bing bong:一款适配 QQ 的 Rss 机器人

本文介绍了作者开发的适配 QQ 端的 RSS 订阅机器人 bing bong 的设计与实现逻辑,旨在为项目贡献者提供开发参考,也为后续版本重构梳理思路。 作者结合 RSS 订阅 - 发布的场景特性选用消息队列架构,将核心功能拆分为消息生成、消息接收两大模块,基于 Go 语言完成了机器人接口、消息队列、RSS 抓取、数据持久化等核心能力的开发,同时梳理了当前版本存在的模块耦合度高、部署门槛高、性能优化空间大等多项缺陷,明确了后续版本的迭代方向,也邀请开发者为开源项目提交贡献。

273
0
4 年前
腾讯 2021 后台开发岗暑期实习面试记录

腾讯 2021 后台开发岗暑期实习面试记录

本文是东北大学计算机专业大三学生撰写的 2021 年腾讯后台开发岗暑期实习面试全记录。作者主用 Golang 语言,绩点中下,简历搭载 3 项课程设计及大创项目,投递时选择 base 北京且接受调剂。 作者先后参与深圳、北京两个部门的面试:首次面深圳部门通过初试后折戟复试,一周后被北京部门捞起,依次通过两轮技术面与 HR 面,最终赶在提前批最后一天收到录用通知。文中详细梳理了各轮面试的算法、Go 语言底层、计算机基础、项目拷问等真题,附答题情况、面试官反馈及个人复盘,可为同类岗位求职者提供参考。

1818
0
4 年前
华为 2021 年 3 月 10 日软件笔试题第二题解析

华为 2021 年 3 月 10 日软件笔试题第二题解析

本文针对 2021 年 3 月 10 日华为软件笔试的第二道连续区间货物统计题展开解析,该题要求统计可选出多少组编号连续、总货物数为 K 整数倍的包装箱。 作者首先排除了滑动窗口、动态规划、暴力枚举等思路,这类方案时间或空间复杂度为 O(n²),无法适配 N 最高达 10 万的取值要求。随后作者基于前缀和的数学性质推导最优解法:若两个位置的前缀和模 K 结果相等,则两位置间的区间和必为 K 的整数倍,统计同余位置数后通过组合数计算即可得到结果,该方案时间复杂度为 O(n+k)、空间复杂度为 O(k),文末还附了 Golang 实现代码。

algorithm
253
0
5 年前
力扣二进制类型刷题记录

力扣二进制类型刷题记录

本文是作者进行力扣算法刷题时的二进制题型专项记录。作者此前已顺利完成二叉树、链表、栈和队列模块的训练,进入二进制模块后因相关知识储备较少,解题需频繁参考题解,因此整理经典题目的解题思路与实现,方便后续复盘。 文中汇总了 5 道高频二进制题的解法,包括 3 道「只出现一次的数字」变种题、位 1 的个数、比特位计数,每道题都拆解了位运算核心逻辑,涵盖异或抵消重复元素、双状态位处理三次重复、分组异或拆分目标值、动态规划递推比特数等技巧,还附带对应的 Go 语言实现代码,可供同阶段刷题的开发者参考。

leetcode
164
0
5 年前
Arch Linux 的 Aria2 食用指南

Arch Linux 的 Aria2 食用指南

本文针对 Chrome 自带下载速度偏低的痛点,分享 Arch Linux 系统下下载工具 Aria2 的完整配置流程,帮助用户实现更高效的下载体验。 作者先讲解 Aria2 后端配置步骤:通过 pacman 直接安装软件,调用开源社区的通用配置模板修改路径、rpc 密钥等核心参数,再配置 systemd 用户单元实现 Aria2 后台守护进程开机自启,无需每次手动启动程序。前端部分作者推荐使用 Aria2 for Chrome 插件,可直接拦截 Chrome 下载请求转发至 Aria2 处理,且内嵌 AriaNg 界面便于管理下载任务,完成简单连接配置确认状态正常即可投入使用。

archlinux
3786
0
5 年前
从根本上跳过 Pixel 开机引导验证

从根本上跳过 Pixel 开机引导验证

本文针对中国大陆用户使用带 GMS 的 Pixel 类 ROM 时,常遇到的未退出 Google 账号就恢复出厂设置触发 FRP 锁,陷入“需连 Google 过引导、但过引导才能部署联网工具”的死循环问题,梳理了故障成因,同时指出当前三类主流解决方案的缺陷:代理联网验证操作成本高、修改 build.prop 配置在安卓 11 及以上系统会触发应用安装闪退、强行删除 FRP 锁会牺牲设备安全。 作者重点分享了从根源解决问题的方案:登录 Google 账号云端管理页,移除对应绑定设备的账号权限,即可直接离线完成开机引导,同时补充说明该方法可能受网络环境影响,无效时可尝试拔手机卡重试。

Pixel
6575
0
5 年前
vscode 粘贴图片自动上传到多吉图床(新)

vscode 粘贴图片自动上传到多吉图床(新)

本文针对作者此前分享的 VSCode 粘贴图片自动上传多吉图床方案的局限性——仅支持剪切板临时照片、无法正常上传复制的本地图片,给出了优化后的新实现方案。 作者此前因 vs-picgo 官方说明误以为其不支持第三方图床,经实测发现只需指定 Picgo Core 配置文件路径,即可绕开拓展本身的图床限制,借助 Picgo Core 的 web-uploader 插件对接多吉图床。文中梳理了全局安装 Picgo Core、配置上传参数、绑定 vs-picgo 配置路径的完整流程,还附上了不同系统对应的上传快捷键,可实现各类图片的一键上传。

image
362
0
5 年前
我是如何配置 Vscode 的

我是如何配置 Vscode 的

本文作者分享了自己使用多年的 VSCode 配置方案,作者接触编程以来跨 Windows、Arch Linux 等多操作系统,使用 C/C++、Go 等多门编程语言,始终选择 VSCode 作为主力编辑器,认为其核心优势在于跨平台兼容性强、资源占用远优于同类 Electron 应用、插件化设计赋予极高自定义空间。 作者从三个维度给出具体配置参考:字体方面推荐了适配 CJK 的更纱黑体、JetBrains Mono、带特色连字符的 Fira Code 三款编程字体;主题推荐 Atom One 的明暗两款经典配色;插件部分分享了 Error Lens、GitLens 等五款提升开发效率的实用工具,内容兼具个人记录属性与实用参考价值。

vscode
574
0
5 年前
博客更新文章后自动通知 Google 更新站点地图

博客更新文章后自动通知 Google 更新站点地图

本文针对作者更新博客后发现 Google 长期未收录、站点地图停更的问题,分享了自动通知 Google 更新站点地图的实现方案。 作者查阅 Google 官方开发文档后,确认可通过向指定接口发送 GET 请求的 ping 功能触发站点地图更新。针对使用 GitHub Actions 部署博客的用户,仅需在部署脚本末尾追加对应 curl 命令即可实现;针对自己使用的 Vercel 部署场景,因无法直接监听部署完成节点,在排除不符合官方提交规范的定时触发方案后,最终设计适配方案:配置 GitHub Actions 监听主分支推送,当提交信息包含“更新博文”关键词时,等待 3 分钟待 Vercel 构建完成后发送 ping 请求,实测运行良好,仅占用少量 Actions 时长,对低更新频率的个人站点完全可接受。

vercel
510
0
5 年前
vscode 粘贴图片自动上传到多吉图床

vscode 粘贴图片自动上传到多吉图床

本文针对使用 VSCode 编写 Markdown 博客时,需将粘贴图片自动上传至多吉图床的需求,记录了完整的探索过程与落地解决方案。 作者最初尝试对接 picgo-core 自定义插件实现需求,却发现官方 VSCode 版 PicGo 扩展暂不支持自定义插件,无法适配非官方支持的多吉图床;后续转而采用支持自定义上传方法的 vsc-markdown-image 扩展,通过编写异步 JS 函数调用多吉图床上传接口,最终实现了粘贴自动上传功能。作者还公开了相关代码与详细配置步骤,用户可快速部署使用,同时文末提示当前方案存在缺陷,推荐使用更新的优化方案。

image
388
0
5 年前
为 Arch Linux 配置安全启动

为 Arch Linux 配置安全启动

本文针对 Arch Wiki 中安全启动配置流程偏复杂的问题,分享了作者实操总结的 Arch Linux 安全启动最简配置方案,仅覆盖单系统配置场景,如需与 Windows 安全启动共存可查阅 Arch Wiki 对应条目。 作者梳理了全流程核心操作:首先通过脚本生成安全启动所需的三类密钥,借助 sbupdate 工具实现内核、引导文件更新时的自动签名,针对使用 systemd-boot 的用户,额外给出了调整 hook 执行顺序、修改 sbupdate hook 参数的适配方案,最后说明了删除 BIOS 原有密钥、写入自定义密钥的操作方法,同时提示读者若操作遇错可参考官方 Wiki 排查。

1610
0
5 年前
查找相同字符串

查找相同字符串

本文围绕“从等长字符串数组中检索出与目标字符串完全相同的元素下标”这一经典算法问题展开解析。 作者首先给出了暴力遍历、字典树、普通哈希表三种基础实现方案,均配有可运行的 Java 代码示例。针对待查字符串过长、规模过大导致普通哈希表空间浪费的场景,作者进一步提出分段哈希优化思路:将字符串按固定长度切割后分段存储映射,通过对目标串各分段匹配结果求交得到最终命中下标。针对固定切割可能出现高频子串的问题,作者还给出了动态顺延切割长度的优化方案,可通过阈值控制子串出现频率,进一步提升检索效率。

java
163
0
5 年前
artitalk 的使用及美化

artitalk 的使用及美化

本文围绕 artitalk 2.4.x 版本在 pjax 站点的部署与美化展开,针对性解决实际使用中的常见问题。 作者针对 artitalk 未提供重载函数的痛点,放弃页面刷新类方案,采用手动清除初始化 AV 对象、重载 js 文件的思路实现适配,梳理了 artitalk 与 valine 共存所需的 LeanCloud 数据迁移步骤,给出修改源码控制脚本仅在指定页面加载、调整 pjax 重载顺序避免冲突的完整操作流程。针对自定义美化样式不生效的问题,作者从 CSS 优先级规则切入解释失效原因,并提供添加 ID 选择器、使用!important 标记、指定自定义 cssurl 三种可行解决方案。

artitalk
556
0
5 年前
fcitx5 使用及调优

fcitx5 使用及调优

本文针对 Arch Linux 用户提供 fcitx5 输入法的完整安装与调优实操指南,作者首先提示 fcitx5 暂不支持搜狗、百度等商业输入法,偏好这类输入法的用户可直接跳过,本次分享基于 Arch+KDE 桌面环境输出。 内容覆盖卸载旧版 fcitx4、安装 fcitx5 框架与中文拼音引擎、配置环境变量、设置开机自启的全流程,还给出了皮肤美化、维基/萌娘百科词库安装、搜狗词库导入的调优方案,同时附了故障排查的参考路径。作者认为配置完成的 fcitx5 稳定性优于搜狗输入法,值得用户尝试。

archlinux
2913
0
5 年前
让.jar 程序“可执行”

让.jar 程序“可执行”

本文针对 Java 项目打包生成的.jar 文件需通过 java -jar 命令启动、使用便捷性不足的痛点,分享了 Linux 环境下将.jar 转为可直接运行程序的实操方案。 作者参考开源社区相关经验,基于 Linux 脚本可通过首行 hashbang 指定解释器的运行机制,给出了三步实现方法:先创建新文件并写入#!/usr/bin/java -jar 的指定解释器头信息,再将目标.jar 文件的完整内容追加到该文件末尾,最后为文件赋予可执行权限,即可像普通程序一样直接调用,无需再手动添加 java -jar 前缀。

linux
141
0
5 年前
网站服务迁移声明

网站服务迁移声明

本文是一则网站服务迁移声明,作者公开了旗下三类站点服务的访问地址调整方案。 本次涉及地址变更的服务分别为 RSSHub 订阅工具、马原毛概刷题工具、Cloudreve 网盘,三类服务的原 jeasonlau.xyz 后缀访问地址,均统一更换为 allwens.work 对应后缀地址,端口号保持 10000 不变。作者表示本次迁移工作预计于声明发布当日中午完成,使用相关服务的用户可及时更新收藏、订阅的访问地址,避免后续出现访问异常。

website
287
0
5 年前
免费获取 Let's Encrypt 泛域名证书

免费获取 Let's Encrypt 泛域名证书

作者因原有域名即将到期且续费成本较高,计划将刷题工具、RSSHub、个人网盘等服务迁移至新域名的不同子域名下,因此尝试免费申请 Let's Encrypt 泛域名 SSL 证书,实测全程仅需十分钟,本文记录了完整操作流程。 本文首先介绍了用简化工具 acme.sh 替代官方复杂申请流程的安装方法,说明其内置证书自动续期的特性;随后针对服务器未备案无法使用常规 web 验证的情况,推荐采用 DNS-API 方式完成域名所有权验证,以阿里云为例给出了从配置 API 密钥到申请证书的具体命令;最后还讲解了证书软链接配置、Nginx 服务加载证书的实操步骤。

website
322
0
5 年前
从零开始的 Java 学习

从零开始的 Java 学习

本文是作者选定大三软件开发方向后,利用暑假空档开展 Java 预习的阶段性学习总结。 作者参考技术社区建议,结合自身过往学习习惯,选择廖雪峰 Java 教程作为学习资料,认可其内容细致、覆盖 Java 新特性、配套习题与交流区的优势。目前作者已完成快速入门、面向对象编程、异常处理、反射、注解、泛型模块的学习,以及集合模块的部分内容。作者结合已有的 C、Python 编程基础,梳理了各模块核心知识点与学习难点,还分享了借助教程评论区实践案例攻克泛型、反射等晦涩内容的经验,后续将随学习进度更新内容。

java
128
0
5 年前
arch 系发行版安装 windows 字体

arch 系发行版安装 windows 字体

本文针对 Arch 系 Linux 用户使用 WPS 等办公软件时,因缺少 Windows 字体导致文档、课件格式错位的常见痛点,分享了适配 Linux 单系统用户的 Windows 字体安装方案。 作者排除了网上挂载 Windows 字体目录的不适配方案,参考 Arch Wiki 官方指引,借助 AUR 仓库的 ttf-ms-win10 包完成安装:先下载 Windows 10 官方镜像并提取 install.wim 文件,通过 wimlib 工具从中提取字体文件,使用 makepkg 打包为 Arch 适配的安装包,遇到校验报错时跳过校验即可完成安装,文中还提供了打包好的成品包下载渠道,实操性极强。

archlinux
2407
0
5 年前
medum-一款命令行待办事项管理器

medum-一款命令行待办事项管理器

本文介绍了作者基于 Go 开发的命令行待办事项管理器 medum,该工具设计初衷是帮助用户记录待办、避免遗漏 DDL,项目名取自 memorandum 单词的首尾字母拼接而成。 作者在文中详细拆解了项目的模块化代码结构,逐一说明路径处理、配置读写、公共结构体定义、SQLite 数据操作、文本常量管理、彩色输出封装各模块的功能与实现逻辑,同时梳理了从基础依赖开发到主函数业务逻辑串联的完整设计思路。项目代码附清晰注释,已开源至 GitHub,欢迎读者交流提建议。

go
99
0
5 年前
为 typora 集成 sm.ms 图床,纵享丝滑体验

为 typora 集成 sm.ms 图床,纵享丝滑体验

本文旨在讲解如何为 Typora 集成 SM.MS 免费图床,实现插入图片自动上传,优化 Markdown 写作体验。 作者因偶然发现 Typora 的自定义上传功能,结合自身 Linux 使用场景,放弃适配性较差的 Electron 版 PicGo,选择命令行工具 PicGo-Core 作为上传服务端,逐步演示了 PicGo-Core 安装、smms-user 适配插件安装、SM.MS 账号 API Token 配置、默认上传源切换的完整流程,最后指导用户在 Typora 偏好设置中通过自定义命令完成对接,同时提示了 Windows 用户的路径调整注意事项,以及 Typora 当前剪切板粘贴图片无法自动上传的已知 bug。

linux
392
0
5 年前
配置世纪互联版 onedrive,实现网络共享文件夹

配置世纪互联版 onedrive,实现网络共享文件夹

本文针对用户搭建可本地使用、全网访问的网络共享文件夹的需求,首先对比了国内网盘、海外网盘、云 OSS、自有服务器存储四类常见方案,指出其分别存在 Linux 适配差、国内访问受限、使用成本高、带宽不足等短板。 作者最终选定世纪互联版 OneDrive 作为存储载体,该服务国内访问速度快,低价即可获得 5T 存储空间,可通过魔改开源工具实现无服务器流量消耗的云端访问与本地挂载,文中还给出了从云端 zfile 配置、本地 rclone 挂载到自动管理脚本的全流程实操教程,普通 Linux 用户即可跟随完成搭建。

linux
624
0
6 年前
从 oh my zsh 到 oh my fish

从 oh my zsh 到 oh my fish

本文记录了作者从 oh my zsh 切换至 fish shell 的实操过程与使用体验。作者此前长期使用 oh my zsh 作为 shell 拓展工具,但因软件启动速度过慢,频繁出现提前输入的指令无法被正常识别的问题,最终决定更换 shell 方案。 经社群用户推荐,作者选择了 fish shell,给出了 Arch 系发行版下的安装、设置默认 shell 的具体命令,指出其原生支持命令高亮、输入建议等功能,开箱即用且运行速度优势明显。此外作者还介绍了 fish 的拓展工具 oh my fish,并分享了四款个人推荐的适配主题及各自特点。

manjaro
819
0
6 年前
一个简单的命令行图床上传工具

一个简单的命令行图床上传工具

本文介绍了作者基于缩狗图床 API 开发的 Python 命令行图床上传工具的实现逻辑与使用方法。作者首先通过分析缩狗图床的前端源码,梳理出阿里、百度、SM.MS 等 7 个可选图床对应的 API 调用规则,以此为基础完成工具开发。 工具依托 requests、click 等第三方库实现,支持用户自定义指定图床(默认使用阿里图床),可满足单文件、多文件、非递归多目录的批量上传需求,会自动过滤不符合格式要求的文件,上传成功后直接返回图片外链,还配置了终端彩色输出优化使用体验。作者表示目前阿里图床实测可用,工具源码已开源,使用者遇到问题可反馈。

python
214
0
6 年前
大二下学期即将开始啦!

大二下学期即将开始啦!

本文是作者对即将开启的大二下学期的日常记录。作者提到此前因疫情宅家度过了浑浑噩噩的寒假,新学期前几周仍需居家上网课,文中晒出个人新课表,梳理了人工智能、数字逻辑、编译原理等八门课程的授课方式、平台要求与注意事项,包括汇编语言作业占平时成绩比重高、形势与政策需提交 2000 字纸质时事评论、羽毛球课需学习八法五步拳等内容。 作者坦言当前多平台分散的网课模式存在不便,既增加了老师的平台适配成本,也给学生带来信息同步的困扰,文末表达了盼望疫情早日结束、回归正常校园生活的期许。

study
118
0
6 年前
RSSHub+Bot 实现 RSS 订阅

RSSHub+Bot 实现 RSS 订阅

本文聚焦信息碎片化时代算法推荐挤占用户信息自主选择权的痛点,介绍 RSS(简易信息聚合)订阅方案的核心价值:支持用户自主选择信息来源,规避无关内容干扰,大幅节省信息筛选时间。 作者针对当前多数网站未内置 RSS 支持、优质 RSS 阅读器稀缺的问题,分享了 RSSHub 搭配 Telegram Bot 的实用订阅方案:开源项目 RSSHub 可适配数百家网站的上千类内容生成定制化 RSS 源,支持官方 Demo 或自行部署;阅读器端作者推荐 flowerss-bot,可实现多平台同步、内容实时推送,自行部署还可解决官方 Demo 更新频率低的问题,充分利用闲置服务器资源。

rss
788
0
6 年前
马原毛概刷题工具 (WEB VERSION)

马原毛概刷题工具 (WEB VERSION)

本文介绍了作者自主开发的马原毛概网页版刷题工具的全流程。作者最初为备考开发了 Python 命令行版刷题工具,因易用性不足重构为网页版,支持顺序刷题、随机抽题、模拟考试等功能,项目已开源至 GitHub。 技术实现上,后端采用 Go 语言 Gin 轻量框架搭建接口,可根据路由返回对应科目、类型的题目;作者此前无前端开发基础,补充完 HTML、CSS、JavaScript 基础后,基于 Vue.js 搭配 Muse-UI 组件库完成前端开发,部署阶段先后解决跨域、HTTPS 资源加载问题,最终通过 Nginx 反向代理完成上线。

website
469
0
6 年前
本站更换主题啦!

本站更换主题啦!

本文记录了作者为个人博客更换主题的完整过程。作者偶然接触到开发者 DIYgod 的开源自用主题 Sagiri,因原有 next 主题过于简陋决定更换,却因该主题定制化程度不足,花费四天时间对源码进行二次修改,最终完成适配。 作者还分享了本次适配过程中实现的无刷新网页跳转、页面状态动态改标题、随机丝带背景、点击烟花效果等六项自定义功能的实现代码与参考资料,同时提及站点已从 GitHub 迁移至 Coding 香港服务器,国内访问速度大幅提升,作者表示短期内不会再更换博客主题。

website
137
0
6 年前
ManjaroWPS 切换中文问题

ManjaroWPS 切换中文问题

本文针对 Manjaro 系统下 WPS 更新后界面自动切换为英文的问题,分享了实操可行的修复方案。 作者最初等待官方更新修复无果后,通过查询 AUR 仓库的 wps-office 相关安装包,发现 wps-office-cn 的可选依赖项 wps-office-mui-zh-cn 即为 WPS 简体中文支持包,由此得出修复方法:执行 yay -S wps-office-mui-zh-cn 命令手动安装该语言包,重启 WPS 后软件会优先匹配系统语言,通常即可自动恢复中文界面;若未生效,可手动点击界面右上角的「A」图标,在语言选择列表选中中文语言包完成切换。

linux
556
0
6 年前
python 中文字符串居中问题

python 中文字符串居中问题

本文聚焦 Python 开发中遇到的中文字符串居中对齐失效问题展开说明。 作者指出 Python 内置的 center() 方法之所以无法适配中文场景,核心原因是系统默认将单字汉字、英文字母均计为 1 个字符,忽略了二者实际显示宽度为 2:1 的差异,导致长度计算偏差。作者通过区分可打印英文字符与中文字符,分别按 1、2 的权重计算字符串实际显示宽度,自行实现了自定义居中函数,经对比测试验证,该函数可同时满足中英文混合字符串的准确居中需求,完美解决了内置方法的适配缺陷。

python
309
0
6 年前
php 表单提交并自动发送邮件

php 表单提交并自动发送邮件

本文针对静态网页模板的表单提交自动发邮件需求,分享了作者踩坑后梳理的可落地配置方案,可供同场景开发者参考。 作者以 Ubuntu18.04+Nginx 的运行环境为例,逐一讲解了安装 PHP、php-fpm,修正 Nginx 配置适配 PHP 请求避免 405 报错,调整前端表单指向处理脚本的操作步骤;同时指出 PHP 原生 mail() 函数的可用性缺陷,给出基于 PHPMailer 组件通过 SMTP 服务发送邮件的配置示例,还补充了无跳转提交 + 弹窗反馈的用户体验优化方案。

php
337
0
6 年前
manjaro 常用的垃圾清理命令

manjaro 常用的垃圾清理命令

本文聚焦 Manjaro Linux 系统的日常垃圾清理需求,整理了三类高频实用的命令操作,为用户释放系统存储空间提供参考。 作者首先给出了两类 pacman 包管理相关的清理指令,分别用于卸载系统中无依赖的孤立冗余包、清空已下载的缓存安装包;针对易被忽略的系统日志垃圾,作者同时提供了日志磁盘占用查询命令,以及按需指定保留容量的日志清理方法,所有指令均为官方通用操作,门槛低、执行效率高,适合普通用户日常运维使用。

linux
810
0
6 年前
禁用笔记本自带键盘的方法

禁用笔记本自带键盘的方法

本文针对使用外接键盘时需禁用笔记本自带键盘的需求,分别给出 Windows、Linux 系统下可直接落地的操作方案。Windows 端作者提供了通过管理员权限运行 CMD 修改 i8042prt 服务启动状态的方法,给出禁用、恢复对应的两行命令,操作后重启设备即可生效。 Linux 端则基于 xinput 工具实现控制,作者特别说明 Manjaro 系统需先单独安装 xorg-xinput 依赖包,再指导用户通过设备列表查询自带键盘对应的 ID,同时给出禁用、恢复操作的对应终端命令,步骤清晰易操作。

windows
251
0
6 年前
© amtoaer
SuWen 提供支持
GitHubTelegramGMailXBilibiliSteam