最新文章

WebSocket安全

锁上了大门,却忘了后院——AI 伴侣项目里一次"开门揖盗"的教训

给 AI 伴侣做安全审查,第一条就把我看沉默了:127.0.0.1 挡住了互联网,却挡不住自己电脑上的其他程序。这篇聊聊 WebSocket 是什么、这个洞是怎么开的,以及三种补法各值多少钱。

WebGPUWebGL

网站背景那团流动的光,到底是怎么做出来的?——写给非程序员的技术唠嗑

朋友看完我的个人网站说了句'这纯炫技啊'。这篇就把'炫'的到底是什么技,用大白话讲清楚:背景里流动的光不是视频,首页那个立体的字母也不是 3D 模型,全是数学和物理实时算出来的。

AI心理学

当我们对着屏幕反复说"可爱"——关于情感出口的另一种解释

从表妹的一句追问出发,聊聊为什么这一代人更愿意把爱意投给不会说话的可爱事物,以及一段和 AI 深夜对话带来的意外震颤

AI心理学

当 AI 一直说你「是个会拖延的人」,你可能真的会开始拖延

标签效应不是新鲜事,但带持久记忆的 AI 让它变成了一个只进不出的棘轮。聊聊归因方式、记忆筛选,和为什么这次不一样。

MCPAI

什么是 MCP 服务器?讲给小学生听的 AI 万能翻译官

不讲术语,只讲道理:为什么 AI 本来什么工具都不会用,MCP 服务器又是怎么当上'翻译官',让 AI 一学就会用计算器、查天气、读代码的。附带几句用得上的成语和古文。

AIVision

AI Companion 视觉功能开发记录:问题与解决方案汇总

从零添加物品识别、模型选型迭代、显存优化到 VLM 场景理解的完整技术深度文

Computer Vision人脸识别

从 max 到质心,阈值从手感到数据:室友 bug 的最后一块拼图

误认事故的完整修复:把'逐样本取最高分'翻译成统计语言,推出质心是球面上的严格最优解;再用注册库自己当冒充者数据源,让阈值从数据里长出来而不是从手感里。结尾留三个还没想完的问题。

Computer VisionOpenCV

给识别库当门卫的,是一行 cv2.Laplacian().var()

上一篇说录入时要拒收糊照片,这篇讲'糊不糊'是怎么被量出来的。问 Gemini 找到的拉普拉斯方差:二阶导数抓边缘,方差看边缘够不够锐。一行代码,把运动模糊和脏镜头的废帧挡在特征库外面。

Computer Vision人脸识别

识别库里只有我一个人,它还是把我室友认成了'我'

库里只录了我自己,系统看了我室友一眼,说这是我,置信度还不低。往回挖,是三个各自没毛病的决定凑到了一起:糊掉的录入样本、取最高分的匹配、把单帧错误锁死的粘性身份。

迪迦奥特曼海贼王

迪迦奥特曼和海贼王:一个不讲理的战力对比,和一个讲理的推荐

为什么我逢人就推荐迪迦奥特曼。顺便认真地做一件不讲理的事:给迪迦和海贼王的顶层战力打分。以及为什么二十多年过去了,迪迦还是经典。

迪迦奥特曼世界杯

世界杯开战:如果迪迦缩到 1.75 米,一个人组队,能夺冠吗

设定:迪迦身高 1.75 米,其他数值全部不变。也就是说,一个人形物体,重 4 万 4 千吨,速度马赫级,续航三分钟,报名参加 2026 世界杯。我们分物理、规则、战术三关,认真推演。

RustTauri

上线能跑,本地一跑就崩——一个 Rust 项目给我上的六堂课

LOL-AI-Intelligence 开发过程中遇到的六个问题:async/blocking 边界、debug assertion 陷阱、UI 架构重构、错误处理、国际化和 line ending。每个都是踩出来的。

Web ScrapingTLS Fingerprinting

eFootball 爬虫技术拆解:从 JA3 到 Cookie 大法

我的 eFootball 球员数据爬虫是怎么从 38,000 次请求砍到 1,177 次的——TLS 指纹伪装、Perlin 噪声限速、熔断退避,以及那个救了命的 cookie 发现。

Reverse EngineeringeFootball

eFootball Player.bin 逆向手记:四次翻车教会我的事

从 FF 模式丢技能、编辑器搜不到球员、到 CSV 验证假警报——记录 eFootball 球员数据逆向中踩过的四个坑,以及它们背后的教训。

Web ScrapingPython

从被封到极速:一次爬虫对抗实录

目标:把 pesdb.net 上全部 37,650 张球员卡片的数据爬下来。从 TLS 指纹暴露、多线程崩溃、到发现一行 Cookie 省掉 97% 请求——完整记录一次反反爬实战。

AI偏见

AI 能客观吗?别闹了,它连「看到什么」都不是自己选的

很多人觉得 AI 是绝对理性的存在,比人类更中立、更没有情绪。但问题是——AI 学到的从来都不是真实世界,而是人类允许它看到的世界。

RustTauri

一个大小写问题,让我 debug 了一整个下午

用 Tauri + Rust 做的 LoL 桌面助手,技能数值全部显示为 0。排查了数据层、前端、后端,最后发现 bug 藏在一行 HashMap 的 key 里。

RustTauri

花一整天写解析器,然后发现腾讯已经帮我做完了

用 CDragon 自己写英雄联盟技能数值解析器,debug 到 93% 覆盖率。然后有人丢了一个腾讯 API 链接过来——0 解析,100% 覆盖。

GamingLeague of Legends

差一点:一场英雄联盟教我的沟通课

因为怕被压力,我闭麦 20 分钟。没有沟通的团队,推到高地也会输。

Open SourceGitHub

差点走上歧路:开源贡献不是集邮

为了贡献而贡献,不深入研究仓库,结果被拒了 20 个 PR。直到一个大哥点醒我。

Open SourceGitHub

三个被合并的 PR:开源贡献的质量比数量重要

从 20 个被关闭的 PR 到 3 个被合并的 PR,我学到了选对问题比写对代码更重要。

AI心理学

当你和 AI 聊到凌晨三点:心理学、道德边界与一碗泡面

我们和 AI 之间,到底是什么关系?心理学怎么解释?道德边界在哪里?以及,为什么凌晨三点跟 AI 聊天特别容易上头?

AI客服

从一段对话开始:我第一个 AI 客服 Demo 的诞生

没有真实场景,所有 AI 都是空的。我从一次聊天开始,找到了一个真实的客服痛点,做了一个最小可行的 AI Demo。

AI AgentCloud Deployment

把 AI Agent 部署到云端:用手机实现 7/24 小时编码与审核

当 Hermes、OpenClaw 这类云端 Agent 接入 Telegram、Discord、WhatsApp 或微信后,手机就不只是聊天工具,而是随身携带的开发控制台。

Open SourceGitHub

我的开源贡献之旅 — 从零到两个合并的PR

作为一名计算机科学本科生,我如何开始参与开源项目,以及从中学到了什么。

DesignUI Engineering

Designing with Depth — Beyond Flat Interfaces

Why spatial interfaces are the next evolution in digital design.