- 博客(28)
- 收藏
- 关注
原创 逆向一个被遗忘的DVD游戏格式:从DES加密到Rust模拟器
算法框架和标准 DES 一样(初始置换 → 16 轮 Feistel → 最终置换),但所有置换表和 S-boxes 全部不同。密钥来自常量。
2026-07-07 21:03:43
175
原创 105 个平铺方法,我是怎么把它们塞进命名空间的
其实我最得意的,倒不是 CLI 也不是 MCP 本身,而是它们根本不是我另外手写的第二套、第三套映射。CLI 那些命令、MCP 那些工具,连同 SDK 的方法契约,全都从同一份里派生出来——枚举、默认值、参数形态,大家共用同一个事实源。这么一来,「文档里说支持这参数、CLI 却不认账」「MCP 工具的 schema 跟 SDK 真实签名对不上号」这种经典的漂移惨案,就从根上不会发生。
2026-07-07 21:02:23
190
原创 第一个文件:CLAUDE.md
你可以创建自己的斜杠命令,将常用操作封装成快捷方式。在项目根目录创建# 部署检查清单请执行以下部署前检查:1. 运行所有测试:npm test2. 检查是否有 lint 错误:npm run lint3. 确认 .env.example 已更新(如果添加了新的环境变量)4. 构建项目:npm run build5. 报告所有检查结果> /deployClaude Code 就会按照你定义的步骤执行部署检查。
2026-07-06 16:12:50
270
原创 碎片装箱问题的贪心下界
装箱问题是这样一个问题:有 nn 个物品,大小分别为 s1,s2,…,sns1,s2,…,sn,其中 0<si≤10<si≤1,每个箱子的容量为 11,目标是把所有物品放进若干箱子,使得每个箱子内物品大小之和不超过 11,并最小化箱子数量。这个问题很适合讲近似算法。它足够简单,简单到你可以在十分钟内写出好几个贪心版本;但它也足够刁钻,刁钻到“看起来很合理”的策略会在某些输入上稳定翻车。严格地说,优化版本的 Bin Packing 是 NP-hard;对应的判定版本是:给定物品大小和整数 BB,是否能
2026-07-06 16:12:05
181
原创 前天在AgileChina2009
因此要想证明一件东西能不能起作用,首先要完全按照他要求的方式去做,等到你真的把该遇到的问题都遇到了,你才能 真正知道它是什么,能做什么,不能做什么,最后才知道它到底能解决什么问题,不能解决什么问题。记得XP中有很多非常“极限”的要求,都是“一定”要如何如何,可实际上很多人都不以为然,认为太过激进,实际操作不现实或者 不必要,因此在实施的时候,做了一些妥协和变通,最后失败了还说XP不好。在说回到代码习惯的问题,软件开发中包含太多东西了,需求的、设计的、测试的、管理的、文化的、心里的、沟通的……
2026-07-05 19:37:42
172
原创 Windows XP Mode for Windows 7
若之前用Virtual PC 2007 安装过虚拟机的话,可以通过Windows Virtual PC直接运行,并升级为新的虚拟机程序不用重新创建,至此XPM已经部署完毕。Windows XP Mode已启动,其实就是一台Windows XP虚拟机,有一点特色的是虚拟机与Win7之间无需反复切换鼠标(不错!运行程序Windows6.1-KB958559-x86.msu进行安装。运行程序WindowsXPMode_en-us.exe进行安装。如果现在XPM是启动状态,请先将其Shut down…
2026-07-05 19:36:58
185
原创 WP7有约(一):课程安排
利用这个特点,我们可以创建一个简易计数器,把Panorama项的TextBlock绑定到一个计数变量上,当我们向左滑动时,计数变量加1,向右时则减1,其效果就像我们拥有一个无限延伸的Panorama控件,而边界情况就是这个计数变量的最大值和最小值,尽管如此,我们也无需太过担心,假设计算变量的类型是Int32,我相信没有人会向左或者向右滑动超过20亿次吧?毫无疑问,以列表的方式呈现一天的课程是比较适合的,但是,我希望列表的每一项除了显示课程名称之外,还能显示上课时间和上课地点。事不宜迟了,我们自己弄一个吧。
2026-07-04 18:47:12
180
原创 GCC强大背后
我们先回到一个常识性的问题,什么是编译器呢?简单地说,编译器可以看作是一个语言翻译器。就像把中文翻译成英语一样,编译器可以把高级语言翻译成计算机能够执行的机器语言。这样看来,GCC可以算得上是一个精通多国语言的高级翻译官了。最简单的GCC使用指令如下所示:GCC接受hello.c作为输入,最后产生目标可执行代码hello。
2026-07-04 18:46:29
153
原创 创建一个新数据库
我告诉美工,现在通过的只是色彩风格,布局能否满意还是个问题,到时,又提一堆细节问题,你改来改去,原本好的设计就改乱了,最终效果不好看,还会怪你。改了一套绿色的,送过去。经常听一些程序员说,某某软件,那么简单,只是增删改查而已,就能卖几十万,肯定是关系户,一脸的不屑。负责设计的同事,很容易就搞了几个界面效果,发给客户看,客户还算满意,顺便还夸了我们几句,不过提议要绿色的。那就他给建议,你看,我们公司有个产品,轻便小巧,可以随身携带,能够室内室外全天候使用,一个100块钱,给你打八折优惠,你看怎么样?
2026-07-03 20:36:14
178
原创 据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会、
查询4.3和4.4查询条件完全一样,虽然我们建立了索引IX_OrderDate,但查询优化器并没有采用而是选择了开销更低的聚集索引扫描,在我们强制使用了索引后查询开销反而激增从逻辑读22次达到了328次,而我们仅仅查询到了154行数据;一般来说我们可以认为聚集索引是效率最高的索引,但聚集索引扫描绝不代表高效,本质上聚集索引扫描就是表扫描,一般出现扫描字样时代表缺少索引或者索引无效,所以我们日常应用中应该避免在查询计划中看到扫描字样,更多的出现聚集索引查找、索引查找才真正的使用到了索引,才是王道。
2026-07-03 20:35:33
178
原创 单向1 - *关联(可为空)
HasOptional表示一个产品可能会有发票,WithMany的参数为空表示我们不需要由发票关联到产品,HasForeignKey用来指定Product表中的外键列。运行迁移后,数据库生成的Product表外键可为空(注意实体类中表示外键的属性一定要为Nullable类型,不然迁移代码不能生成)。有点小复杂,用LEFT OUTER JOIN的原因是,可能有的Product没有ProductPhoto。可以看到对于外键可空的情况,EF生成的SQL使用了LEFT OUTER JOIN,基本上复合我们的期待。
2026-07-02 23:19:10
229
原创 iOS开发系列--Swift语言
Swift是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#、Java、Javascript、Python等多种语言的影子。同时在2015年的WWDC上苹果还宣布Swift的新版本Swift2.0,并宣布稍后Swift即将开源,除了支持iOS、OS X之外还将支持linux。
2026-07-02 23:18:35
180
原创 CF161D Distance in Tree + 树上背包
根据子树位置路径长度的统计设计状态。表示在以 为根的子树中,到 的距离恰好为 的节点个数。表示在 这里,前 棵子树,共计选择 门课,共可以获得的最大贡献。
2026-07-01 21:03:30
236
原创 P5785
这道题的 的做法还是挺不好想的,这里不赘述,可以看弱化版的题解。大概思路是先把每个 的代价提前计算,再加上前缀和优化。用 和 表示 和 的前缀和,那么可以写出 做法:化简一下就可以很容易化出一次函数的形式:果断使用李超线段树,需要离散化或动态开点。
2026-07-01 21:02:50
158
原创 给定一棵树,每个节点有一个括号。对于每个节点 ii,定义 sis i 为从根节点到 ii 的路径上所有括号按顺序组成的字符串。求每个 sis i 中互不相同的合
设 ask(x,y)ask(x,y) 表示 1→x1→x 链上 sum=ysum=y 的节点数量。则 au=ask(fu,k)−ask(p,k)au=ask(fu,k)−ask(p,k)。这样就能找到 sump<sumusump<sumu 且深度最大的节点 pp。首先,kiki 可以从父节点递推得到,ki=kfi+aiki=kfi+ai。其中 aiai 为以节点 ii 结尾的合法括号序列数量。经典技巧,将 (( 的权值设为 11,)) 设为 −1−1 ,做树上前缀和。
2026-06-30 20:37:29
175
原创 Manim 节奏控制指南 (Rate Functions)
在Manim中,当你写下时,默认发生了什么?如果你觉得动画只是简单的“在Run Time时间内移动距离RIGHT”,那只对了一半。本质上是动画完成度与时间的关系。输入 (t:当前时间过去了多少(从 0 到 1,代表 0% 到 100% 的时间)。输出 (f(t):动画实际上完成了多少(从 0 到 1,代表 0% 到 100% 的进度)。默认的魔法SmoothManim 的默认rate_func是smooth。起步时慢(加速),中间快,快结束时慢(减速)。这就是为什么默认的动画看起来比较自然。
2026-06-30 20:36:40
239
原创 Lambda表达式
其中capture是捕获列表,params是参数列表,opt是函数选项,ret是返回值类型,body是函数体;下面逐个详细介绍。捕获列表capture:捕获一定范围内的变量,具体使用方式[]:不捕获任何变量。[&]:捕获外部作用域中所有变量,并作为引用在函数体内使用(按引用捕获)[=]:捕获外部作用域中所有变量,并作为副本在函数体内使用(按值捕获),拷贝的副本在匿名函数体内部是只读的。如果想要修改需要添加函数选项mutable。如果没有mutable变量b++就会报错。
2026-06-29 19:52:04
168
原创 Java 基础 (Java 入门笔记) _
由于 Java 是强类型语言, 需要进行类型转化 (将不同类型转为相同类型) .进行定义,可以用逗号隔开以声明多个同类型的变量 (不建议) .当结果会出现小数, 需要对结果进行强制转换, 否则只会出现整数.Java 是一种强类型语言, 变量需要定义后才能使用.运算中只要有一个变量被转换了, 其他的也会一同被转换.初始化后不能改变值, 可视作一种特殊的变量, 使用。一元运算符只需要一个操作数, 二元, 三元也同理. 分别占用 1B, 2B, 4B, 8B.所有变量, 方法, 类名, 都需要遵循。
2026-06-29 19:46:15
169
原创 告别阻塞!用 PHP TrueAsync 实现 PHP 脚本提速 10 倍
这个提示词直接丢给 Claude、ChatGPT 或其他 AI,就能生成一个可用的 3D 地图。因为零配置、直接粘贴就能跑,不需要装 Node、配 webpack。就像把各省份轮廓画在纸上,然后把纸"拉高"变成积木块一样。下面按模块拆解每个部分的作用,方便你按需修改提示词。把 URL 里的数字换成对应行政区划代码即可。,Google 地图、百度地图都在用。用 AI 写代码,提示词的关键是。设置地图的中心点在画面正中。
2026-06-28 19:30:09
244
原创 为什么用 AI 生成 3D 大屏?
AI 让"想法→产品"的路径缩短了一个数量级。以前做一个 3D 大屏需要搭框架、写 Three.js、调光照材质、加交互,整个流程走下来没几天搞不完。现在只需要用自然语言描述你想要什么,10 分钟后就能看到效果。这不是替代开发者,而是让开发者的生产力提升 10 倍——你把精力花在"想清楚要做什么"上,而不是"怎么写每一行代码"上。gitee地址。
2026-06-27 21:33:20
223
原创 深度学习进阶(二十六)现代 LLM 的核心架构设计其一:RMSNorm合集 - 深度学习进阶(31)
对每一层的激活值做归一化,减去 batch 均值,除以 batch 标准差。而且,在 Transformer 这种结构中,BN 的 “竖着统计”和与自注意力的 “横着注意” 在同时应用时,也存在逻辑上的不协调。值得一提的是,这一问题的答案并不在 RMSNorm 论文本身,而是在后续大模型实践中逐渐清晰的,其关键在于我们之前提到的。于是 Pre-Norm 把归一化放在残差分支的入口处,保证了主干的信号流通更加顺畅,训练更稳定,从而成为事实标准。的重要性,但验证其效果后,剩下的其实也就是怎么讲故事的问题了。
2026-06-27 21:32:33
199
原创 从 AMBA 协议看 Valid-Ready 到 Credit-based 流控机制
上面给出的公式,设是使得发送方与接收方维持满带宽的条件,设 B 为接收方 Buffer 深度,对于每 cycle 1beat 的链路 BW 为 1,TRRT 为 N 的场景下,Receiver 必须有至少 N-entry 的 FIFO 才能保证无气泡流水,这个 FIFO 承担了一个职责——即。这种方案并不是技术最优,但确保了生态最优。看起来公式与 Valid-Ready 系统的完全一致,但是基于 2.2.1 的描述,实际上反压往返时间是大大减少了的,因此 Receiver 的 buffer 深度也减少了。
2026-06-24 20:37:43
244
原创 【OpenClaw】通过 Nanobot 源码学习架构---(10)Heartbeat
HEARTBEAT.md是一个标记文件,包含需要定期检查的任务列表,文件位于工作空间根目录,可由agent自主更新。,其放弃传统的 “硬编码规则解析”,改用 LLM 驱动的智能决策,适配自然语言描述的任务场景;_HEARTBEAT_TOOL 是一个虚拟工具,用于LLM决策跳过或者运行任务,LLM 被要求调用这个工具并返回适当的参数,避免了自由文本解析的不确定性。agent 也可以通过技能自动管理心跳任务,例如,当用户请求周期性任务时,agent 会更新 HEARTBEAT.md 而不是创建一次性提醒。
2026-06-24 20:36:45
242
原创 为 Avalonia 启用平滑滚动与缩放
如果需要自定义样式,在你自己编写的。来单独启用某处的平滑滚动。安装 NuGet 包后,只需将。,因此你可以将应用中的。中来创建一个图片查看器。
2026-06-23 21:40:52
224
原创 AScript - C#轻量级动态脚本引擎
8 // 如果文件未改动,则从缓存中执行,否则重新读取->解析->编译->缓存->执行。2 // 缓存时间,-1表示永久缓存,0表示不缓存,大于0表示缓存时间(毫秒)将业务规则以脚本形式存储,运行时动态加载执行,无需发版即可调整规则逻辑。让用户自定义计算公式,系统负责解析执行,如财务模板、绩效计算等场景。6 // 文件修改时间作为版本号(或者计算文件md5作为版本号)基于多层级上下文,支线间数据互不干扰,同时共享父级公共逻辑。4 // 文件路径作为缓存key。
2026-06-23 21:39:49
240
原创 断尺问题:戴德金分割现实悖论
因为就像上面说的:不仅数学是错的,而且人类所掌握的一切的理论都是错的。假设现在你手中有一把尺子,刻度0~10,你沿着刻度4左边缘的位置把它切断(请注意,我这里并不是暗示数学死了),让右侧的断尺最小的刻度刚好是4,不多也不少,然后你摸了摸左侧那截断尺断点的位置,有个疑问涌上了你的脑海:“这一点的值是多少呢?这时候之前说话的人可能已经意识到戴德金分割原理确实和现实逻辑相悖了,但是出于人类的天性,承认是不可能承认的了,于是他们转移话题说:数学不依赖于现实,它是一套抽象的出来的自成体系的一套自洽的逻辑体系。
2026-06-22 21:57:23
256
原创 先吐个槽:项目跑起来了,但要加个功能模块,从哪下手?
FastapiAdmin 这种全栈脚手架,最大的价值不是代码多厉害,而是它逼着你按一套清晰的套路出牌。model → schema → crud → service → controller 这条链走顺了,后面加再多的模块都不怕。但最大的坑也恰恰是——你千万别想跳过任何一个文件,少写一个 crud,把逻辑全扔 controller 里,后期维护起来那叫一个酸爽。建议动手前,把 portal 模块里的五个文件从头到尾读一遍,心里有数了再开工。
2026-06-22 21:56:21
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅