- 博客(56)
- 收藏
- 关注
原创 Monospace 从 Directus 构建无头 CMS 实战指南
在大型电商或企业级内容平台的开发过程中,最让人头疼的往往不是单一功能的实现,而是当业务规模扩大后,内容如何在不同终端、不同场景下保持一致且高效流转。很多团队初期为了赶进度,习惯为每个端单独维护一套数据逻辑,结果后期只要改一个商品描述,就得同步更新 Web、App、小程序甚至线下大屏的代码,不仅效率低下,还极易出现数据不一致导致的客诉。更麻烦的是,营销活动频繁变更,设计师和开发者之间因为缺乏统一的协作标准,导致落地页上线周期被无限拉长。其实,这些问题的核心在于缺乏一套系统化的内容架构与协作流程。
2026-10-02 19:15:06
222
原创 YOLO11图标点选验证码识别实战
从数据集结构到训练调参再到点击坐标输出,一篇跑通 YOLO11 图标点选验证码识别全流程,数据集与模型权重直接网盘自取。
2026-10-02 19:12:18
589
原创 DeepSeek 大模型落地应用与场景实战指南
面对几十甚至上百页的技术规范或法律合同,人工阅读耗时且易遗漏重点。利用 AI 进行长文档解析,需要解决“上下文窗口限制”和“全局一致性”两个难题。对于超出模型上下文长度的文档,直接截断会导致信息缺失。有效的策略是“分层摘要法”。首先,将文档按章节切分,对每个章节独立生成局部摘要,提取核心观点和关键数据。然后,将这些局部摘要再次输入模型,生成一份涵盖全文的全局摘要。这种方法既能保留细节,又能把握整体脉络。在实际操作中,还可以结合“关键实体抽取”技术。
2026-09-26 16:32:06
343
原创 用 Babel AST 把“天书“ JS 一键还原:七步流水线反混淆实战
JS 反混淆的本质,是在不改变语义的前提下,把"变形"一层层 undo 回去。本文的七步流水线(重命名 → 字符串还原 → 字典还原 → if-else 平坦化 → 死代码消除 → for 死代码消除 → while+switch 平坦化)覆盖了绝大多数"数组 + 字典 + 控制流平坦化"类混淆,且全部基于 AST 语义级改写,安全、可复用、可扩展。完整脚本就是本文反复引用的demo.js(整合了原 demo0~demo6 七个步骤)。0.6 秒,还你一份能读的代码。推荐标签#AST#反混淆#Babel。
2026-09-18 17:25:28
281
原创 保姆级教程:用 AST 自动提取 webpack / rspack 打包后的模块
拿到压缩成一团的 webpack / rspack bundle 看不清模块关系?这篇用真实项目(rspack@1.2.5,1049 模块)手把手实测:acorn + AST 自动提取、BFS 裁剪到 231 个、生成产物真能跑,附完整可运行工具与真实日志。
2026-09-18 15:33:01
120
原创 1-22-多路归并排序-KWayMerge
分治思想——分块排序 + 多路归并,解决内存不足的海量数据排序四种策略——暴力法 O(nK)、最小堆/胜者树/败者树 O(n log K)败者树初始化——必须自底向上构建,逐路插入会产生错误多趟归并——限制每趟路数 K 控制内存,趟数 = log_K(段数)I/O 优化——K 越大趟数越少,但 K 受缓冲区内存限制。
2026-09-11 18:27:22
67
原创 彻底告别 Promise!WebAssembly (WASM) 异步调用转同步的底层原理与最佳实践
将 WASM 异步调用改为同步输出,本质上是根据运行环境选择正确的 API抛弃返回 Promise 的。拥抱同步阻塞的和。确保数据源(如)本身也是同步的。通过这种改造,我们不仅解决了“输出为 Promise”的痛点,还让代码逻辑更加线性、可读性更强。只要注意避免在请求热路径中重复编译大文件,这将是 Node.js 环境下集成 WASM 最完美的方案。🏷️ 标签Node.js异步转同步前端工程化底层原理📝 作者注:如果本文解决了你的 WASM 调用痛点,欢迎一键三连!
2026-09-11 18:26:18
214
原创 1-21-BFPRT算法-BFPRT
分组的组大小选 5 不是随意的——这是数学最优组大小 g递归找中位数 T(n/g)分区后较大侧总递归项是否收敛3T(n/3)≤ 2n/3不收敛5T(n/5)≤ 7n/10收敛✓7T(n/7)≤ 5n/7收敛(更快)9T(n/9)≤ 13n/18收敛组大小 3:1/3 + 2/3 = 1,不收敛,无法保证 O(n)组大小 5:1/5 + 7/10 = 9/10 < 1,收敛,保证 O(n)组大小 7 或更大:也收敛,但每组排序成本增加,且中位数集合更大。
2026-09-10 20:18:19
68
原创 1-20-快速选择-Quickselect
每次分区后,期望丢弃一半的元素。第 1 轮:分区 n 个元素 → 期望搜索 n/2 个第 2 轮:分区 n/2 个元素 → 期望搜索 n/4 个第 3 轮:分区 n/4 个元素 → 期望搜索 n/8 个...总计:n + n/2 + n/4 + n/8 + ... = 2n = O(n)。与快速排序对比:快排每轮分区后两侧都递归,所以是。快速选择只走一侧,所以是。一侧递归——借用快速排序的分区,但只搜索包含 K 的那一侧,实现平均 O(n)三种分区。
2026-09-10 19:42:17
148
原创 1-19-鸽巢排序-PigeonholeSort
极端特例——桶排序的极端情况,每个桶只放同一个值无需排序——鸽巢顺序即值顺序,只需放入和收集线性时间——O(n + k),不退化,不依赖分布值域受限——k 太大时空间爆炸,只适合小范围整数天然稳定——列表保持入巢顺序,extend 保持收集顺序。
2026-09-09 19:00:03
146
原创 小红书 x-s等签名参数
在 Web 端数据采集与安全测试过程中,红书的请求签名机制是业界公认的难点之一。其核心防护依赖于一系列动态生成的加密参数。这些参数共同构成了请求的合法性校验体系。本文将对上述参数的生成逻辑进行逐一拆解与分析,旨在梳理其加密流程与还原思路,为相关安全研究提供参考。本文系统梳理了 Web 端签名参数的思路。(由于版权问题删减了一部分)关键要点回顾:x-s 是核心难点:其生成涉及自定义虚拟机与 WASM 交互,建议优先掌握补环境与纯算两种主流还原路径,并结合 mns0101 算法专题深入理解。
2026-09-09 16:58:02
223
原创 WebAssembly (WASM) 核心机制与逆向分析指南
WebAssembly 的普及为前端安全防护带来了质的飞跃,同时也给逆向工程师提出了新的挑战。抓住内存交互:WASM 与 JS 的所有数据交换都通过线性内存,这是逆向的突破口边界是关键:Import/Export 函数是 WASM 与外部世界的唯一通道,必须重点监控动静结合:静态反编译看结构,动态调试看数据,两者缺一不可工具决定效率:选择合适的反编译器和调试工具,能大幅降低分析成本免责声明:本文内容仅供安全研究与技术交流,请勿用于任何非法用途。
2026-09-08 20:14:09
342
原创 【小红书逆向】x-s 签名 mns0101 算法深度解析:WASM 核心逻辑与交互机制揭秘
本文围绕小红书x-s签名中mns0101版本的 WASM 核心逻辑,完成了从入口定位到算法还原的完整分析链路。分层分析是关键:面对 WASM 保护的签名算法,应遵循“JS 层定位 → VM 层解混淆 → WASM 层还原”的分层思路,避免一开始就陷入二进制细节。黑盒与白盒并重:对于工程化补环境场景,直接提取 WASM 进行黑盒调用是最高效的方案;而对于算法研究或协议还原,则必须借助反编译工具进行白盒分析。工具选型决定效率适合快速验证和轻量分析;JEB 和 Ghidra 则是深度还原复杂算法的首选。
2026-09-08 20:02:12
848
原创 DeepSeek 大模型落地应用与场景实践指南
在处理几十页甚至上百页的技术规格书或法律合同时,人工阅读成本极高。利用大模型的长上下文窗口(Long Context)能力,可以实现高效的核心信息提取。但直接将全文丢给模型往往会导致“迷失在中间”现象,即模型忽略了文档中段的关键细节。更稳健的策略是采用“分层摘要法”。先将文档按章节切分,分别生成各部分的要点摘要;然后将这些摘要再次汇总,形成全局概览。对于特定信息的抽取(如合同中的违约责任条款、技术参数表),可以使用结构化 Prompt,要求模型以 JSON 格式输出指定字段。
2026-08-30 21:41:29
293
原创 极验4滑动验证码参数td逆向分析
极验(Geetest)验证码是目前互联网生态中使用最广泛的行为验证方案之一。其第四代版本(极验4)在安全机制上进行了全面升级,特别是在请求参数中引入了w和td等高强度加密参数,极大地增加了自动化脚本直接调用的难度。对于爬虫开发者与安全研究员而言,深入理解这些加密参数的生成逻辑,不仅是突破反爬限制的关键,更是学习现代 JavaScript 逆向工程、浏览器调试与混淆代码还原的绝佳实战案例。
2026-08-30 20:37:20
753
原创 1-18-基数排序-RadixSort
按位分解——将大整数排序分解为多轮小范围计数排序稳定传递——每轮计数排序的稳定性保证低位结果不被打乱LSD 从低到高——迭代实现,简单且缓存友好MSD 从高到低——递归实现,支持提前终止,适合变长数据不依赖分布——与桶排序不同,基数排序不退化。
2026-08-27 21:08:41
173
原创 1-17-桶排序-BucketSort
分治思想——将数据按值分到多个桶,各自排序后合并线性时间——数据均匀分布时平均 O(n),比比较排序更快分布敏感——性能高度依赖数据分布,最坏情况退化为 O(n²)稳定性可控——桶内用稳定排序算法则整体稳定浮点数友好——非比较排序中少数能直接排浮点数的算法。
2026-08-26 19:50:26
314
原创 极验4滑动验证码参数w逆向
极验(Geetest)验证码是当前使用最广泛的验证码方案之一,其第四代版本(极验4)在请求参数中引入了w和td等加密参数,用于防止自动化脚本的直接调用。本文将以学习交流为目的,从抓包分析入手,逐步还原w参数的完整生成逻辑,涵盖cus等子参数的逆向过程。本文以极验4滑动验证码为分析对象,完整梳理了w接口分析:明确 load 和 verify 两个核心接口,确定w和td为待逆向参数定位加密:通过发起程序和关键字搜索定位到w的加密赋值位置代码还原。
2026-08-26 17:42:50
704
1
原创 1-16-计数排序-CountingSort
非比较排序——不通过比较大小排序,突破 Ω(n log n) 下界线性时间——时间复杂度 O(n + k),k 远小于 n 时接近 O(n)四步流程——确定范围 → 统计次数 → 前缀和定位 → 逆序放置稳定排序——从后往前遍历 + 前缀和,保持相等元素相对顺序适用受限——只适用于整数/可离散化且取值范围有限的数据。
2026-08-23 19:44:25
228
原创 1-15-块排序-BlockSort
原地稳定——O(1) 额外空间 + 稳定排序 + O(n log n) 时间三次反转旋转——反转 A + 反转 B + 反转整体 = A 和 B 交换位置二分查找定位——两次二分查找确定旋转边界,减少不必要的旋转自底向上归并——类似归并排序框架,但合并用旋转实现常数因子较大——原地合并的代价是更多的元素移动。
2026-08-23 16:14:05
164
原创 1-14-内省排序-Introsort
三策略混合——快排为主、插入排序降常数、堆排序保下界最坏不退化——递归深度耗尽时切换堆排序,硬保证 O(n log n)三数取中——大幅降低最坏情况概率,实际很少触发堆排序 fallback三路分区——大量重复元素时优势明显,全相同元素接近 O(n)尾递归优化——短侧递归 + 长侧循环,栈空间 O(log n)
2026-08-23 16:01:07
457
原创 1-13-TimSort
四阶段混合——自然 run 检测 + 二分插入扩展 + 栈不变式合并 + galloping 加速自适应复杂度——已有序 O(n),随机 O(n log n),最坏不退化——经验最优区间,平衡 run 数量和扩展开销栈不变式——保证合并代价均衡,栈深度 O(log n)galloping 模式——指数搜索批量复制,一侧远长时 O(log k) 加速稳定排序——run 检测 + 合并取左 + 降序严格三重保证。
2026-08-22 20:30:00
363
原创 生成歌词滚动视频
这个项目的核心价值在于把"录屏"这个耗时操作变成了程序化生成。浏览器录制模式适合快速预览,零环境依赖;后端快速生成模式适合正式输出,多进程并行 + FFmpeg 合成,标准 MP4 格式,全平台兼容。技术上的几个关键点:双画布架构分离预览和录制、Lerp 插值实现歌词平滑滚动、前后端歌词滚动逻辑一致性保证、FFmpeg 动态路径检测兼容不同用户环境、Opus→AAC 音频修复。每个点都是实际开发中遇到问题后的解决方案,不是预先设计的。
2026-08-22 19:42:37
791
原创 1-12-耐心排序-PatienceSort
两阶段架构——建堆(O(n log n))+ 合并(O(n log k)),整体 O(n log n)二分查找定位——堆顶始终递增,二分查找 O(log k) 定位牌堆LIS 副产品——牌堆数量 = LIS 长度,建堆顺便求出 LIS贪心策略——找最左可放堆,保证牌堆最少,即 LIS 最长稳定排序——合并时相同值按牌堆编号顺序取出,保持相对顺序。
2026-08-22 14:00:00
636
原创 Grok 4.6 核心能力落地与实战应用指南
在数据驱动的业务场景中,我们常常遇到这样的困境:面对海量且结构复杂的原始数据,传统的分析工具往往只能给出表面的统计结果,却难以洞察背后的深层逻辑。当业务人员试图追问“为什么会出现这个趋势”或者“如果调整某个变量会发生什么”时,简单的图表和仪表盘便显得力不从心。这种逻辑推理能力的缺失,不仅拖慢了决策速度,更可能导致战略方向的偏差。与此同时,内容创作团队也在为多模态素材的整合而头疼,文字、图片、视频之间的割裂感让创意落地变得异常艰难。
2026-08-21 23:02:05
189
1
原创 1-11-奇偶排序-OddEvenSort
天然可并行——偶数阶段和奇数阶段的比较互不重叠,可同时执行交替收敛——偶数阶段消除偶数位置逆序对,奇数阶段消除奇数位置逆序对,交替直至有序串行同冒泡——串行时间 O(n²),甚至略慢于冒泡排序(更多轮次)并行 O(n)——n/2 个处理器时,每阶段 O(1),总时间 O(n),加速比 O(n)稳定排序——只交换相邻逆序对,保持相等元素相对顺序。
2026-08-21 22:41:28
301
原创 1-10-圈排序-CycleSort
最少写入排序——总写入次数 = 不在正确位置的元素数,达到理论下界循环旋转归位——计算最终位置 → 直接写入 → 被挤出元素继续找位置 → 回到起点用比较换写入——比较次数比选择排序更多(旋转时重新计数),但写入次数最少原地 + 不稳定——O(1) 空间,但跨距离写入破坏稳定性特殊场景不可替代——Flash/EEPROM 等写代价高的场景,圈排序是唯一合理选择圈排序在排序算法家族中是一个"极端特化"的算法——它牺牲了时间复杂度(O(n²) 的比较)和通用性,换取了写入次数的理论最优。
2026-08-20 16:30:45
308
原创 1-9-梳排序-CombSort
递减间隔改进冒泡——用 gap 比较相距 gap 的元素,大间隔消除长距离逆序对收缩因子 1.3——经验最优值,平衡消除效率和缩减速度平均 O(n log n)——O(log n) 轮 × 每轮 O(n) 比较,从冒泡的 O(n²) 跨越到 O(n log n)gap=1 时接近冒泡最好情况——大间隔粗排后,数组已基本有序教学级 O(n log n)——实现极简(冒泡 + 递减间隔),适合教学和嵌入式场景。
2026-08-20 16:15:28
449
原创 1-8-希尔排序-ShellSort
分组插入 + 增量缩减——先用大步长跨距离消除逆序对,再用小步长精细微调Knuth 增量序列——h = 3h + 1生成,最坏 O(n^1.5),平均约 O(n^1.3)最后一轮 gap=1 是关键——前面的粗排使最后一轮插入排序面对近乎有序数据,接近 O(n)原地 + 不稳定——O(1) 空间,但跨组交换破坏稳定性O(n²) 到 O(n log n) 的过渡——中等数据量(n=100~5000)下的实用选择,嵌入式和内核场景仍有价值。
2026-08-18 18:56:29
465
原创 1-7-选择排序-SelectionSort
最直观的排序——每轮扫描找极值,一次交换归位,逻辑简单到不需要解释交换次数最少——每轮最多 1 次交换,总交换 ≤ n-1,写代价高的场景首选无法提前终止——即使已有序仍需 O(n²) 比较,这是与冒泡/插入排序的最大差距不稳定——跨距离交换可能改变相等元素的相对顺序堆排序的前身——用堆结构将"找极值"从 O(n) 降至 O(log n),即进化为堆排序选择排序在排序算法家族中扮演着"反面教材"的角色:它用最少的交换换来了最差的自适应性。
2026-08-18 17:51:31
433
原创 1-6-插入排序-InsertionSort
扑克牌模型——左手已排序、右手逐张拿牌、从右向左插入后移代替交换——每个逆序对仅 1 次赋值,写操作比冒泡少 2/3最好 O(n)——已有序数据一轮扫描完成,近乎有序数据接近线性稳定 + 原地——严格大于比较保证稳定性,O(1) 空间工业级排序的回退方案——TimSort(< 32)和 IntroSort(< 16)小区间首选算法的实际性能不仅取决于渐近复杂度,还取决于常数因子和数据分布。在合适场景下,O(n²) 的插入排序可以比 O(n log n) 的快速排序更快。
2026-08-16 22:28:47
372
原创 1-5-堆排序-HeapSort
两阶段设计——O(n) 建堆 + O(n log n) 排序,始终不退化原地排序——O(1) 空间,无需额外数组,适合内存受限场景下沉操作是核心——找三节点极值,交换后继续下沉,直到满足堆性质不稳定 + 缓存不友好——跨距离交换破坏稳定性,跳跃索引导致缓存命中率低堆结构比堆排序更有价值——优先队列、Top-K、Dijkstra 等场景的核心数据结构堆排序在排序算法家族中独树一帜:它用 O(1) 空间实现了 O(n log n) 不退化排序,这是快速排序和归并排序都做不到的。
2026-08-16 17:13:54
245
原创 1-4-归并排序-MergeSort
快速排序虽然平均 O(n log n),但最坏退化为 O(n²) 且不稳定。归并排序通过"先拆分再合并"的分治策略,保证任意数据下始终 O(n log n) 且稳定。
2026-08-15 20:39:07
252
原创 1-3-快速排序-QuickSort
冒泡排序和鸡尾酒排序每轮只能消除相邻逆序对,复杂度卡在 O(n²)。快速排序引入分治思想——选一个基准将数组分为"小于基准"和"大于基准"两部分,递归排序。
2026-08-15 19:06:42
370
原创 1-2-鸡尾酒排序-CocktailSort
冒泡排序每轮只往一个方向扫描,小值缓慢"下沉"需要 n-1 轮才能到位。鸡尾酒排序通过左右交替的双向扫描,一轮消除两端的逆序对,显著减少排序轮数。本文从冒泡排序的"乌龟问题"出发,图解鸡尾酒排序的双向扫描原理,给出支持升序/降序的 Python 完整实现,对比两者的性能差异,
2026-08-14 20:48:50
280
原创 1-1-冒泡排序-BubbleSort
本文从"如何在无序数据中找到最大值"这一朴素问题出发,图解冒泡排序的核心原理与执行流程,给出支持升序/降序的 Python 完整实现,分析时间/空间复杂度与稳定性,
2026-08-14 18:12:02
481
原创 第零篇-算法全景图
本文不深入讲解具体实现,而是带你俯瞰整张算法知识地图——14 大领域、300+ 算法一次看全,帮你建立体系化认知,找到自己的学习路径。
2026-08-10 23:40:05
954
原创 Gemini 2.5 Flash Lite 实效表现与能力边界全景
本文深入探讨了智能客服系统开发中的核心问题与技术选型考量。文章从响应速度、多轮对话理解、代码生成、多模态处理等维度,系统评估了主流大语言模型的实际表现。研究发现,模型在极速响应与准确性平衡、长上下文记忆、复杂逻辑推理等方面存在显著差异,同时揭示了模型在幻觉问题、实时信息获取和情感理解等方面的固有局限。通过多个行业应用案例,展示了优化后的模型如何提升电商客服、编程辅助和教育批改等场景的效率,最后强调在关键领域部署时需结合人工审核与知识库增强的必要性。
2026-06-28 13:06:58
320
原创 Gemini Spark 深度评测:从参数解析到实战边界
文章摘要: 本文深度评测了一款千亿参数大语言模型的实际表现,通过多维度实测揭示其优劣边界。测试显示,该模型在代码生成(支持防御性编程)、多轮对话(具备自我修正能力)和创意写作(精准风格迁移)方面表现突出,但存在长程记忆衰减、事实性幻觉等通病。相比竞品,其中文理解与性价比优势明显,但小语种支持较弱。建议企业将其定位为辅助工具,配合人工审核机制,特别适合初创团队快速验证产品。技术选型应匹配业务需求,该模型凭借均衡能力成为多数场景的优质候选。
2026-06-27 15:09:45
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅