- 博客(24)
- 收藏
- 关注
原创 正因为我们是前端,所以代码更需要优雅
试想一下,对于一名刚刚从单体服务转向分布式系统的初学者来说,还在给你铺垫各个组件的功能,然后讲到注册中心的时候,直接就安排上了 CAP 和共识算法这套非常抽象、难以理解的丝滑小连招,应该是非常劝退的。自洽是指,你不能一边享受着这条“好走、明确且广阔的道路”的快捷与轻松,自嘲着自己是“CRUD 工程师”,又下不了决心、没有足够的毅力往难走的路上走,还在心里嘲讽正在这条更难的路上努力往前的人。写的过程中我就想起我之前看过的一本书,《数据密集型应用系统设计》这本分布式领域的书,必读,是非常好的“肥料”。
2025-11-02 21:34:04
321
原创 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发
在多年的研发生涯里,对调参这个事深恶痛绝,为什么辛辛苦苦架构出来的模型,一训练就崩,训练收敛慢到龟速,这严重影响了开发进度,并且增加了很多不可抗力的消耗。换句话说,朴素SGD是一个没有应用任何先验补充的野蛮人,较于Adam的平滑学习而言,它就像一只无头苍蝇,到处乱撞,也不知道该撞多少次才能收敛至最小值。我相信有很多业内同行,都有这种痛,训练了很久,效果依旧很差,泛化能力也不行,然后就开始苦恼,为什么自己没有足够的钱,足够的算力。引入动量缓冲m,也就是一阶矩,指数加权平滑梯度,它积累了历史梯度的方向趋势。
2025-11-02 21:32:33
371
原创 跨平台iPhone中调用WCF服务
KV Cache 是 Transformer 自回归推理的关键优化技术,通过缓存历史键值对将重复计算转化为内存查表,显著降低推理延迟。分页管理:借鉴操作系统的虚拟内存思想,vLLM 等框架将 KV Cache 切分为固定大小的块(如 16 个 token),动态分配物理显存,显著提升显存利用率和批处理吞吐。卸载与重算:对超长上下文,可将早期 token 的 KV 缓存卸载至 CPU 内存,或在访问时按需重算。需要明确的是,KV Cache 存储的是经过线性投影后的连续向量表示,其规模与词表大小无关。
2025-11-02 21:31:18
415
原创 Microsoft NLayerApp案例理论与实践 - 基础结构层(数据访问部分)
诨誓氛底虽然说是手算,但是我还是会写一点 C# 代码,避免敲坏了计算器。我和大家保证,整个手算过程中,最终的计算结果只需要用到初高中知识。推导过程会用到部分高数的知识。我尽量将用到的知识点全列举出来,本文对学渣友好,期望能够拿出纸笔和 VisualStudio 的伙伴阅读完本文能够真的理解神经网络BP传播算法是如何计算的看了一下时间,今年确实 2025 年,而不是 2015 年。在 2025 时还在聊BP 算法实在有点一言难尽。我在 10 多年前尝试写过贴近的程序,当时写的时候有一些概念没有理解,但代码是写
2025-11-02 21:28:31
301
原创 提升效率:AI 知识库在软件开发中的应用
锰巳盘壹然后只需要提供一个已经初始化为 0 的字节数组作为内存、一个指向数组的指针、以及用于输入输出的两个字节流就能够让程序运行了。比如 Hello World!程序就可以写成:CopyC# 类型系统入门#既然要用 C# 类型系统来构建 Brainfuck 的编译器,我们需要首先对 C# 类型系统有一些认知。泛型系统#C# 的类型系统构建在 .NET 的类型系统之上,而众所周知 .NET 是一个有具现化泛型的类型系统的平台,意味着泛型参数不仅不会被擦除,还会根据泛型参数来分发甚至特化代码。
2025-11-01 21:04:19
486
原创 最近Vibe Coding的经验总结
在现实世界,Node 节点可以是一台物理服务器,一台 VM 虚拟机(一个 Node 节点严格对应一台“计算实例”),但是注意,Node 节点不是容器(Node 是运行容器的宿主机)。每个 node 上有一个 Kubelet(负责每个节点的运行状态,以及与 master 节点通信,执行 master 节点的指令),同时 Node 节点上至少还需要运行 container runtime(比如 docker,这样才能够运行相关镜像)。如果简单的理解,你就可以把他看成一个 docker,可以运行相关的镜像。
2025-11-01 20:59:21
395
原创 把我的“Java 生产力”外包给一个叫 Claude 的助手
是一个很小的常数(通常取 0.01)。相比逻辑回归,浅层神经网络在一次反向传播中更新了两层参数,而在之后的更复杂的神经网络结构中,隐藏层数量也不只一层,这样,在一次反向传播中,就会更新更多的参数。我们知道,在浅层神经网络里,我们涉及到两个层级各自的权重和偏置,因此,不同于逻辑回归中的一次更新,我们这次需要在一次反向传播过程中,更新两个层级的参数。我们想通过图中的几个数据点进行拟合,没有激活函数,我们就只能像左侧一样画一条直线,而只有使用了激活函数,我们才能让这条直线弯曲,来实现更好拟合效果。
2025-11-01 20:54:19
289
原创 别再被VO、BO、PO、DTO、DO绕晕!今天用一段代码把它们讲透
MudTools.OfficeInterop.Word 是一个强大的 .NET 库,它封装了 Microsoft Word 的 COM 组件,让开发者能够以面向对象的方式轻松操作 Word 文档。通过定义规则模板,我们可以创建一个灵活的系统,能够适应不同类型的合同需求,而无需修改代码。虽然 MudTools.OfficeInterop.Word 没有直接提供创建目录的方法,但我们可以通过使用 Word 的内置功能来实现。通过设置段落的大纲级别,我们可以创建一个结构清晰的文档,便于读者快速定位感兴趣的内容。
2025-11-01 20:44:03
403
原创 平滑加权轮询负载均衡的底层逻辑
处于waitting状态是因为它在等任务执行,从堆栈可以看出是阻塞在TaskQueue.take方法,org.apache.tomcat.util.threads.TaskQueue是tomcat中的LinkedBlockingQueue,是生产者-消费者模型,take方法阻塞表示当前队列是空的,没有任务需要执行,一旦有任务放入TaskQueue,take方法就会唤醒,进入Runnable状态。这点就不好理解了,应用恢复了,为什么tomcat没有恢复,tomcat线程此时在做什么?
2025-11-01 20:38:51
1263
原创 . LangChainj + 加入检索增加生成 RAG(知识库)
业务逻辑是基于线程数据的传递进行处理,主线程传递线程ID到子线程。处理方式:重写线程池的execute(*)、submit(*)方法。关键代码:[traceId:%X{traceId}],traceId是通过拦截器里MDC.put(traceId, tid)添加。4、异步定时任务线程接口ScheduledExecutorService的日志链路追踪。2、整合logback,打印日志,logback.xml (日志配置文件)3、application.yml指定logback.xml配置目录。
2025-10-31 19:50:58
351
原创 上线别再“一刀切”!Gateway 做流量染色 + 灰度发布,告别线上事故
A: 核心使用.NET 9.0,跨平台UI用.NET MAUI,Windows桌面使用的WinUI 3。//System.Console.WriteLine($" 统计: 样本数={samples.Length}, RMS={rms:F1}, 范围=[{min}, {max}], 零值比例={zeroPercent:F1}%");//System.Console.WriteLine($"音频质量正常 ({context}): RMS={rms:F1}, 范围=[{min}, {max}]");
2025-10-31 19:49:37
300
原创 从零开始学Flink:数据转换的艺术
我在动态方法调用中遇到的最大问题之一是集成开发环境(IDE),如 PhpStorm,很难理解它们的使用。例如,如果你想在 PhpStorm 中重命名一个方法,它将无法找到所有引用(因为它们是动态的),也不会为你重命名它们。所以如果你正在阅读这篇文章并在自己的代码中使用它们,请不要认为我在侮辱你的代码。过去,我曾被诱惑删除 IDE 标记为未使用的方法,后来才发现它们确实通过动态方法调用被使用了。在上面的方法中,我们使用了 "match 表达式"来读取负载的 event 字段,然后根据其值调用相应的方法。
2025-10-31 19:48:24
332
原创 一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?
朴口种怂NET 团队在官方博客上发布了.NET 10 RC2[1], .NET 10 作为继 .NET 9 后的长期支持版本(LTS),提供3年官方支持。RC2 是正式版(GA)前的最终候选版本,已具备生产环境可用性(Go-Live License),支持企业级部署。.NET MAUI:XAML 强类型源码生成器提升构建性能与 IntelliSense 支持,新增 ShadowTypeConverter、Switch.OffColor 等控件 API。RC1(2025年9月10日):聚焦稳定性与性能优化。
2025-10-31 19:46:52
323
原创 大模型function calling多轮对话开发示例
处于waitting状态是因为它在等任务执行,从堆栈可以看出是阻塞在TaskQueue.take方法,org.apache.tomcat.util.threads.TaskQueue是tomcat中的LinkedBlockingQueue,是生产者-消费者模型,take方法阻塞表示当前队列是空的,没有任务需要执行,一旦有任务放入TaskQueue,take方法就会唤醒,进入Runnable状态。这点就不好理解了,应用恢复了,为什么tomcat没有恢复,tomcat线程此时在做什么?
2025-10-31 19:44:49
250
原创 手把手带你解析复现D点云检测经典之作PointNet
转java没有一个好用的orm怎么办,我之前用sqlsugar的现在有没有sqlsugar-java,我之前用efcore的现在是否有efcore-java,我之前是freesql的粉丝转java后有没有freesql-java?user.bankCards().where(c -> c.type().eq("储蓄卡")).count().gt(4L);user.bankCards().where(c -> c.type().eq("储蓄卡")).count().gt(4L);//用户至少有三张储蓄卡。
2025-10-30 22:39:28
242
原创 Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?
在遍历的时候,首先调用driversIterator.hasNext()方法,这里会搜索 classpath 下以及 jar 包中所有的META-INF/services目录下的java.sql.Driver文件,并找到文件中的实现类的名字,此时并没有实例化具体的实现类。这不仅降低了代码的可读性和可维护性,还会增加后续扩展的难度。每一个封装算法的类我们都可以称之为策略 (Strategy) ,为了保证这些策略的一致性,一般会用一个抽象的策略类来做算法的定义,而具体每种算法则对应于一个具体策略类。
2025-10-30 22:38:09
307
原创 .NET 中GC(垃圾收集器)默认启用DATAS
TRPO 用共轭梯度法求解带约束的优化问题,需要计算 Hessian 矩阵(目标函数的二阶导数)。PPO(Schulman et al., 2017)用一阶优化 + 巧妙的目标函数设计达到 TRPO 的效果,成为深度 RL 和 RLHF 的标准算法。过大(如 10),说明新旧策略差异巨大,重要性采样失效,梯度估计方差爆炸。新策略分布:P("多喝水")=0.5, P("休息")=0.35, P("吃药")=0.15。旧策略分布:P("多喝水")=0.3, P("休息")=0.4, P("吃药")=0.3。
2025-10-30 22:36:46
269
原创 央视连续多次聚焦,OpenCSG到底有何过人之处?
图形结果:用于生成一个简单的图形结果,图形中会展示所有取样器请求的耗时,单位为毫秒,在图形的底部会以黑色的形式显示每个取样器请求的耗时,会以蓝色来显示所有取样器请求的平均值,会以红色来显示耗时的标准偏差,会以绿色来显示当前的吞吐量,如下图所示,图中的吞吐量表示了所压测的服务器在单位时间内处理的实际请求数,图像结果的展示,可以更加直观的看到每个取样器请求的耗时情况以及观察性能指标曲线的走势来辅助判断可能存在的性能问题。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。
2025-10-30 22:34:47
294
原创 【URP】Unity中Mipmap是如何实现的?
接略嫌辣在深度学习中,优化器(Optimizer)是连接模型与数据的桥梁,它负责根据损失函数的梯度来更新模型的参数,以期找到一组能最小化损失的“最优解”。NAG 对经典动量做了一个聪明的修改:它不计算当前点的梯度,而是先“预估”一下按照当前动量会走到哪里,然后在那个“未来”的点计算梯度,再用这个梯度来修正最终的步进方向。MBGD 相对 SGD:用小批量平均来估计梯度,有效降低了梯度估计的方差,使得收敛更稳定,同时充分利用了现代计算硬件(如GPU)的并行计算能力,提升了训练吞吐量。无悬念首选 AdamW。
2025-10-30 22:32:26
236
原创 Tauri.+Vue聊天系统|vite+tauri+element-plus客户端仿微信聊天程序
转java没有一个好用的orm怎么办,我之前用sqlsugar的现在有没有sqlsugar-java,我之前用efcore的现在是否有efcore-java,我之前是freesql的粉丝转java后有没有freesql-java?user.bankCards().where(c -> c.type().eq("储蓄卡")).count().gt(4L);user.bankCards().where(c -> c.type().eq("储蓄卡")).count().gt(4L);//用户至少有三张储蓄卡。
2025-10-29 19:40:42
777
原创 记一次 .NET 某光放测试系统 崩溃分析
在遍历的时候,首先调用driversIterator.hasNext()方法,这里会搜索 classpath 下以及 jar 包中所有的META-INF/services目录下的java.sql.Driver文件,并找到文件中的实现类的名字,此时并没有实例化具体的实现类。这不仅降低了代码的可读性和可维护性,还会增加后续扩展的难度。每一个封装算法的类我们都可以称之为策略 (Strategy) ,为了保证这些策略的一致性,一般会用一个抽象的策略类来做算法的定义,而具体每种算法则对应于一个具体策略类。
2025-10-29 19:39:19
633
原创 Bun v. 重磅发布:一站式全栈 JS 运行时,前端开发、数据库、Redis 全内置
TRPO 用共轭梯度法求解带约束的优化问题,需要计算 Hessian 矩阵(目标函数的二阶导数)。PPO(Schulman et al., 2017)用一阶优化 + 巧妙的目标函数设计达到 TRPO 的效果,成为深度 RL 和 RLHF 的标准算法。过大(如 10),说明新旧策略差异巨大,重要性采样失效,梯度估计方差爆炸。新策略分布:P("多喝水")=0.5, P("休息")=0.35, P("吃药")=0.15。旧策略分布:P("多喝水")=0.3, P("休息")=0.4, P("吃药")=0.3。
2025-10-29 19:37:58
1314
原创 【打造自己的 DeepSeek】第 期:怎么安装自己的 DeepSeek?
图形结果:用于生成一个简单的图形结果,图形中会展示所有取样器请求的耗时,单位为毫秒,在图形的底部会以黑色的形式显示每个取样器请求的耗时,会以蓝色来显示所有取样器请求的平均值,会以红色来显示耗时的标准偏差,会以绿色来显示当前的吞吐量,如下图所示,图中的吞吐量表示了所压测的服务器在单位时间内处理的实际请求数,图像结果的展示,可以更加直观的看到每个取样器请求的耗时情况以及观察性能指标曲线的走势来辅助判断可能存在的性能问题。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。
2025-10-29 19:36:28
1341
原创 从“文件即接口”到“我的一生.OFD”
了泵备坦在深度学习中,优化器(Optimizer)是连接模型与数据的桥梁,它负责根据损失函数的梯度来更新模型的参数,以期找到一组能最小化损失的“最优解”。NAG 对经典动量做了一个聪明的修改:它不计算当前点的梯度,而是先“预估”一下按照当前动量会走到哪里,然后在那个“未来”的点计算梯度,再用这个梯度来修正最终的步进方向。MBGD 相对 SGD:用小批量平均来估计梯度,有效降低了梯度估计的方差,使得收敛更稳定,同时充分利用了现代计算硬件(如GPU)的并行计算能力,提升了训练吞吐量。无悬念首选 AdamW。
2025-10-29 19:35:00
264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅