- 博客(28)
- 收藏
- 关注
原创 用 conda-pack 打包带走,连网都不用
这也是 conda-pack 唯一的短板:Windows 打包的环境只能在 Windows 上用,Linux 同理。Windows 10 1803 之后的版本内置了 tar,如果报错"不是内部或外部命令",直接下载 7-Zip 解压就行,效果完全一样。因为我旧电脑的环境非常庞大,而且新电脑网络环境一般,所以果断选择第二种。显示的 base 路径来,别想当然。这一步很快,就是把环境里一些硬编码的路径更新成当前机器上的实际路径。,右键压缩包"解压到"对应的目录也是一样的。,用完就删,base 始终是纯净的。
2026-07-07 20:55:30
215
原创 01 | 先修掉影响体验的细节问题
第一个问题来自“可信知识加工厂”的待加工知识列表。“可信知识录入工作台”的已录入知识列表,点击条目时体验很丝滑,不会导致整个模块刷新。但“可信知识加工厂”的待加工知识列表,点击任意条目都会让模块整体闪一下。排查后发现,差异在于列表拉取逻辑的依赖项。工作台列表点击条目时,只更新选中项并拉取详情,不会重新拉取整个列表。而加工厂列表此前把放进了列表 fetch 的useEffect依赖数组里,所以每次点击条目都会触发重新拉取待加工知识,变成true,模块就出现整体刷新感。
2026-07-07 20:54:34
224
原创 input输入、布尔类型、比较运算符和逻辑运算符——我终于让程序能和我对话了
当时我说input()拿到的内容是字符串,要用int()转换才能当数字用。但我没有仔细讲input()到底是什么,也没讲为什么需要转换。今天就来补上这一课,顺便把布尔类型、比较运算符和逻辑运算符一起搞定。
2026-07-06 16:05:32
187
原创 以自定义线程池Starter为例,完整讲透SpringBoot自动装配底层全流程
开发者在测试项目引入自定义线程池starter;启动类携带,开启自动装配;底层AutoConfigurationImportSelector扫描所有jar包,读取autoconfigure中的imports文件,拿到线程池自动配置类的完整类名;校验配置类上,确认配置类可以生效;通过读取application.yml的自定义线程池配置,封装到属性类;执行配置类里的@Bean方法,通过判断,无自定义Bean则自动创建线程池放入Spring容器;
2026-07-06 16:04:56
167
原创 LINQ to SQL、NHibernate比较(一)-- LINQ和NHibernate初体验
如果觉得上面的解释有点抽象,那么可以这样理解,LINQ其实就是提供了一套查询功能,可以实现任何数据源的查询,此处数据源不单指数据库或者XML文件,而是任何集合或者实体,比如我们接触各种编程语言都需要用到的数组,现在不用遍历数组元素来寻找需要的项,LINQ可以实现这方面的查询。上面是最简单的LINQ实现对数组的查询,泛型类型var在LINQ查询中提供了强大的委托类型支持,不管查询集合中项的类型(无论是int,char还是string或者类),我们只用一个var就可以保存LINQ查询到的结果。
2026-07-05 16:47:51
169
原创 我对NHibernate的感受(1):对延迟加载方式的误解
因此,丢失属性逻辑对我的影响是致命的,这意味着我必须“照顾”NHibernate的特性进行编程,而在进行建模时就开始考虑持久化逻辑是DDD实践中的一大问题——虽然软件开发不是理想化的,权衡是正常的,但如果NHiberante只能应付失血的DTO模型,那么它就对不起它的业界盛名了。首先我想谈一下自己对NHibernate实现方式上的一个误解,这个误解让我对NHibernate一直有着错误的抱怨,我还在几篇文章里不断重复对NHibernate的错误指责,目前已经纠正,希望不会造成太大问题。
2026-07-05 16:46:55
172
原创 facebook本次的几个分享都相当给力,绝对让听的人不虚此行,想必对fb的bigpipe技术早有耳闻,这次算是大揭秘了,把技术细节和思路都详细介绍并用实例进行了说明
使用过fb的话可以发现,网站在页面切换过程中并不像传统页面加载一样,进入一个新页面浏览器就整个页面重新渲染,特别是当你点击后退的时候,上一个页面几乎是立刻出现的,这里便是quickling+pagecache的优化,quickling负责在切换页面的时候清空主体内容区域,发送ajax加载新的内容,下载需要的JavaScript、CSS等资源,然后呈现新的页面,被清空的页面被保存在pagecache中,当用户点击后退的时候立刻从中恢复上一个页面,他们在这个过程中还模拟了浏览器加载效果,地址变换等。
2026-07-04 16:25:55
237
原创 2010 Web前端技术趋势及总结
Facebook页面是基于Ajax获取页面内容,参见BigPipe),若来自于缓存,通过Ajax来更新所需更新的模块(猜测:通过JS预先定义本页面所需更新的div Id及对应的callback handler,并在页面下载时同时下载下来)。Pagelet提供的高级功能:Pagelet的继承,Phased Rendering(猜测:依据规则渲染,也就是依据Pagelet的Response进行渲染),跨Pagelet依赖(数据依赖,显示依赖,JS依赖)。简单的说,就是将访问过的页面缓存在客户端。
2026-07-04 16:25:08
188
原创 开灯的例子
你想知道或控制一个类有哪些Method的方法有很多,但是引入一个接口,不仅达不到你的目的,还引入了复杂度——每当你要加一个方法,都要修改两个地方,一个是接口,一个是实现。以IComparable接口为例,很多数据类(比如DTO)大都实现了这个接口,因为上层的功能(比如排序)依赖类的对象有相互比较的能力,同时每个类的实现方式又都不一样,即所谓的同时存在多个实现。我把代码发给了我的导师,一个设计Guru,他看完之后哭笑着说,你的基本功很扎实,理论知识也很全面,可惜却缺乏一定的经验。
2026-07-03 20:27:56
147
原创 Programming.log - a place to keep my thoughts on programming
Lisp一直被许多人视为史上最非凡的编程语言。它不仅在50多年前诞生的时候带来了诸多革命性的创新并极大地影响了后来编程语言的发展,即使在一大批现代语言不断涌现的今天,Lisp的诸多特性仍然未被超越。当各式各样的编程语言摆在面前,我们可以从运行效率、学习曲线、社区活跃度、厂商支持等多种不同的角度进行评判和选择,但我特别看中的一点在于语言能否有效地表达编程者的设计思想。
2026-07-03 20:27:09
240
原创 NET基础拾遗(5)多线程开发基础
下面的一些基本概念可能和.NET的联系并不大,但对于掌握.NET中的多线程开发来说却十分重要。我们在开始尝试多线程开发前,应该对这些基础知识有所掌握,并且能够在操作系统层面理解多线程的运行方式。
2026-07-02 23:13:31
208
原创 分布式系统的日志监控
服务端日志你有多重视?只做到第1点的,很多公司都有做到第2点和第3点,这些公司的服务端程序基本已经跑了很长时间了,已比较稳定,确实无需花太多时间去关注。如果一个新产品,在上线初期,我觉得就有必要做到第4点。日志怎么看?都说了,我们没有日志tail+grep或者把日志下载下来再搜索,可以应付不多的主机和应用不多的部署场景。但对于多机多应用部署就不合适了。这里的多机多应用指的是同一种应用被部署到几台服务器上,每台服务器上又部署着不同的多个应用。可以想象,这种场景下,为了或者。
2026-07-02 23:12:55
155
原创 基于范围的for循环
在上面的语法格式中表示遍历声明,在遍历过程中,当前被遍历导的元素会被存储到声明的变量中。expression是要遍历的对象,它可以是表达式、容器、数组、初始化列表等。在上面的例子中,第一次遍历是将容器中的元素拷贝到声明的遍历变量value中, 因此无法对value的++操作是不影响原数据的,所以第二次遍历的结果不会有改变。第二次遍历中声明遍历变量用的int,因为这里知道遍历的t容器中全是int类型,auto推导出的就是int类型。
2026-07-01 20:55:34
180
原创 如何手写opcode
这里列举了几个opcode,更多的可以去https://github.com/python/cpython/blob/master/Lib/pickle.py#L111。都可以调用一个 callable 对象。对于做题而言会opache改写就行了。
2026-06-30 20:28:22
221
原创 死磕Spring Boot Validation校验
SpringBoot提供了方便的validation主要对输入数据进行校验,确保数据符合预期规则,是保证应用健壮性的重要手段,1、Bean Validation:基于 JSR-380 (Bean Validation 2.0) 规范、2、Hibernate Validator:最流行的实现3、Spring 集成:通过 @Valid 或 @Validated 注解触发验证怎么使用就不介绍了,包含如何自定义注解进行校验,分组验证,处理验证错误。
2026-06-30 20:27:49
218
原创 Python日期时间处理完全指南:从datetime到实战技巧
Python日期时间处理完全指南:从datetime到实战技巧 --- 📌 引言 在Python编程中,日期和时间的处理是不可或缺的技能。无论是记录日志、处理用户数据,还是构建定时任务,都需要与日期时间打交道。本文将深入讲解Python的datetime模块,从基础概念到实战技巧,帮助你彻底掌握日期时间处理。记住:好的时间处理代码是健壮系统的基石。(本文内容部分由AI辅助生成,代码示例均经过实际测试。
2026-06-29 19:39:43
169
原创 环境准备JDK 17+Spring Boot 3.xMaven 3.8+
/ 请求体@Data@Data// 响应体@Data@Data@Data回到顶部。
2026-06-29 19:39:00
238
原创 AI Agent 30天速成|Day5 笔记
摘要Prompt强制要求保留数字、订单、计算结果、工具参数等关键信息工具调用记录不参与摘要,永久保留在短期记忆压缩后保留最少2轮原始对话,避免完全依赖摘要导致信息缺失。
2026-06-28 19:18:26
169
原创 一个真实案例:图片裁剪引发的数据泄露
某电商平台的用户头像功能,支持「从URL导入头像」。前端传一个图片链接,后端去下载再裁剪。看着没毛病对吧?但问题是——。是所有云厂商的。只要后端服务器在云上跑,这个请求就能返回该服务器的临时凭证。结果?该API直接返回了和。有了这三样,攻击者可以在云厂商API中——创建ECS、下载OSS文件、甚至配置网络规则。。那我们来看看攻击者具体怎么玩。
2026-06-28 19:17:35
182
原创 PDF 表格转 CSV:Python 实现方法与代码解析
用于释放文件流、内存等资源,批量处理文件时必须调用,防止内存堆积。命名,可直观区分数据来源,方便后续文件管理与溯源。接收页码索引,返回当前页面内所有表格对象集合。专用表格提取器,依赖已加载的。用于加载本地 PDF 文件,PDF 文档操作主类,
2026-06-27 21:24:12
244
原创 在做一个 Prompt Optimizer 时,我意外触发了图片生成
目标很明确:这是一个 Prompt Rewrite 服务,而不是图片生成服务。但测试过程中发生了一件很有意思的事情。, 我的token QAQ第一反应当然是:模型是不是被越狱了?后来分析下来发现,这件事远比“越狱”有意思。因为问题的本质并不是模型说了不该说的话,而是系统做了不该做的事。
2026-06-27 21:23:32
165
原创 AI时代的To B PMF,已经死了吗?
你可能会说:好,Vibe Revenue 是个问题。但 PMF 本身还是存在的,只要找到真正的产品-市场匹配就行。问题是——什么是 PMF?这个概念在 To B 自己就没统一过。
2026-06-24 20:24:46
211
原创 架构设计理念与核心哲学
协议层作为 SharpClawCode 架构的最底层,承担着定义整个系统数据契约的核心职责。该层的设计遵循了"协议优先"的架构思想,即先定义清晰的数据契约,再在此基础上构建业务逻辑。项目包含了所有跨组件通信所需的 DTOs(数据传输对象)、枚举类型、事件定义和命令结果结构。这些 DTO 的设计注重不可变性和显式性,广泛采用 C# 9.0 引入的record类型,使得数据对象在创建后不可修改,通过with表达式生成变体,这天然地适合事件溯源模式中事件对象的不可变特性。事件定义是协议层的特别重要组成部分。
2026-06-24 20:18:01
184
原创 【从0到1构建一个ClaudeAgent】工具与执行-Agent循环
所有 AI 编程 Agent 共享同一个循环:调用模型、执行工具、回传结果。生产级系统会在其上叠加策略、权限和生命周期层。pythonbreak就这?就这。剩下的全是围绕这个循环的各种优化和补丁。用 Java 来写,核心循环大概是这样:javaif (!break;正是考虑到我们的读者多数是Java同学,因此我决定用Java来和大家一块学习下。
2026-06-23 21:27:23
184
原创 用 FRP 打通云服务器与本地 Ubuntu,让 Codex 远程调试本地硬件
如果不解决这个问题,调试流程就会变成下面这样:Codex 给出命令我复制命令粘贴到本地 Ubuntu 执行复制命令输出粘贴回 Codex 分析Codex 给出下一步这个流程非常痛苦。对于普通软件项目,这样手动来回复制几次也许还能忍。但对于硬件调试来说,情况完全不同。硬件调试往往需要频繁执行命令、观察输出、调整脚本、重新烧录、读取串口或 OpenOCD 状态。如果每一步都要手动复制粘贴,效率会非常低,也很容易出错。
2026-06-22 21:47:27
217
原创 分享一款超好用的 CAN 报文编辑器 / DBC 开发工具(替代 CANoe 繁琐操作)
如果你也是:厌烦了 CANoe 笨重卡顿、授权昂贵受够了手工改 DBC 经常出错需要批量维护 CAN 报文、快速生成代码欢迎使用EasyDBC工具!可发送机器码到1875091912@qq.com。
2026-06-22 21:46:15
374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅