自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 手机ROM剩余空间不多时无法查阅和编写短信

经检测此问题是阿里旺旺引发的,但不知是阿里他爹太强还是Android机器人太弱,我觉得这种应该是很简单的异常处理就能搞定吧,作为一个操作系统不该在这里报错给用户啊,就算报错也不该就报个这玩意,让人一头雾水,以为操作系统核心程序损坏了呢。我的前任索爱手机现在全新的也就值不到500块钱吧,但其蓝牙功能是很丰富的,收发各种文件、外接蓝牙耳机是小意思,还可以连接电脑充当遥控器,遥控PPT幻灯片播放,或是遥控Windows Media Player。再者短信既然收到了,干嘛不让看?实际上一条短信连1k都到不了呢。

2026-07-05 13:56:46 297

原创 Delegate = Object + MethodInfo

现在我通过一个具体的例子来说明通过上面定义的MyEventHandler来模拟具体的事件注册和触发。MyMulticastDelegate继承自上面定义的MyDelegate类型,在此基础上定义了一个额外的属性Next,代表委托链中当前委托对象的下一个委托。接下来,我们创建另一个模拟订阅Button对象的Click事件的类型,这样一个简单的类型Foo定义如下。那么最终的事件订阅和触发编写在下面代码中:在创建的Button对象中,进行了6次相同的事件注册,最终通过PerformClick方法触发事件。

2026-07-05 13:54:46 186

原创 试水Windows 8 Metro application(xaml)及我的一些理解

其实这里有一句潜台词,大家可以试想一下,虽然说Windows 8是希望覆盖桌面电脑、平板电脑、手机(我相信这个目标也的确可以实现),但相比较桌面电脑而言,平板电脑和手机其实是没有桌面的概念的,所以,我可以预见,在平板电脑和手机里面,就肯定只有Metro样式的应用程序,在它们上面是不支持Silverlight的。从各方面的声音来看,大家都提到一个字:Opportunity (机会),是的,对于Windows平台的厂商(微软),最终用户,还有开发商以及开发人员,这意味着新的机会。如果是,你的经验可以得到复用。

2026-07-04 14:10:11 245

原创 MVC演化

Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念。并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯的称之为Classic MVC。

2026-07-04 14:09:12 241

原创 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程

是因为有技术上的限制吗?并对下面的 Teradata.Client.Entity.dll 友元(就是这个程序集里面的内部类对友元程序集可见,Teradata.Client.Provider.dll 里面的内部类对 Teradata.Client.Entity.dll 可见)。引用 Teradata.Client.Provider.dll。1.反编译 Teradata.Client.Provider.dll ,拿到源码,去掉对 Teradata.Client.Entity.dll 的强命名友元,然后编译。

2026-07-03 16:42:38 228

原创 使用Visual Studio SDK制作GLSL词法着色插件

这段代码定义了一个名为"ShaderEditor"的着色类型,编译工程并运行,我们可以在Visual Studio实验实例的工具->选项->字体和颜色中找到一个名为"ShaderEditor"的条目。修改this.DisplayName = "ShaderEditor"的内容,可以改变在字体和颜色中显示的名字。下面的格式设置可以任意修改成喜欢的样式,但要注意在这里的格式只是插件首次安装时的默认设置,这些条目和其它着色选项一样,都可以被用户任意更改。Visual Studio为我们生成了如下几个文件。

2026-07-03 16:42:01 209

原创 ModelContextProtocol CSharp 中提供了三种 Transport ,其核心代码在三个类中:

下面笔者将会详细讲解 stdio、sse 两种 Transport。

2026-07-02 18:15:09 210

原创 必需成员, 泛型数学支持, 文件局部类型

required修饰符强制成员初始化。泛型数学支持通过接口实现数值运算。file修饰符限制类型作用域。内联数组通过特性定义固定大小数组结构,优化性能。参数集合扩展支持Span<T>等类型。ref struct可实现接口。部分属性支持分文件定义。C# 14.0(预计2025年随.NET 10发布,截至2025年4月为预览版)引入了一系列语言特性,旨在提高开发效率和代码可读性,包括field关键字、隐式 span 转换、nameof增强、lambda 参数修饰符、partial 成员扩展和空条件赋值。

2026-07-02 18:14:16 259

原创 【趣话计算机底层技术】调试器是个大骗子!

我的这个修改是偷偷进行的,你如果通过我来查看被调试进程的内存数据,或者在反汇编窗口查看那里的指令,会发现跟之前一样,这其实是我使的障眼法,让你看起来还是原来的数据,实际上已经被我修改过了,你要是不信,你可以另外写个程序来查看那里的数据内容,看看我说的是不是真的。其中就有一个TF标记,用来告诉CPU进入单步执行模式,只要把这个标记为设置为1,CPU每执行一条指令,就会触发一次调试异常,调试异常的向量号是1,所以触发的时候,都会取出IDT中的1号表项中的处理函数来执行。

2026-07-01 15:44:19 237

原创 maximumPoolSize,最大线程数,值为 200。

说明要启用这个逻辑,我们的 parent 不能为 null。如果不能继续添加,说明队列满了,则来到标号为 ③ 的地方,看看是否能执行 addWorker 方法,创建非核心线程,即启用最大线程数。这个方法里面,标号为 ① 的地方,就是判断当前工作线程数是否小于核心线程数,小于则直接调用 addWorker 方法,创建线程。Tomcat 的线程池,就是先使用核心线程数配置,再使用最大线程配置,最后才使用队列长度。JDK 的线程池,是先使用核心线程数配置,接着使用队列长度,最后再使用最大线程配置。

2026-07-01 15:43:31 180

原创 工作原理:其核心是一个两步过程。

keycloak中为客户端开启roles之后,如果有用户有客户端的角色,会在jwt中多出来aud数组字段,也可以为wso2客户端添加自定义的client scope,然后为它添加aud的cliams。设备代码授权优化了受限设备的用户体验,令牌交换授权为复杂的服务间信任链提供了灵活性,而JWT持有者授权则是机器对机器通信的简洁高效方案。令牌交换授权提供了强大的 interoperability(互操作性),允许将一个凭证或令牌交换为另一个不同的令牌,常用于服务之间的安全调用或身份映射。参数(即JWT本身)。

2026-06-30 14:20:05 221

原创 面积图的奇妙变形:流图与地平线图

如果把传统的堆叠面积图想象成一块块整齐堆叠的积木,那么流图就像一条蜿蜒流淌的河流,河道的宽窄变化自然流畅,波峰波谷过渡平滑。它特别适合展示多个类别数据随时间的变化趋势,尤其是当你想强调整体流动感和各部分的相对比例变化时。流图的核心思想是将传统的堆叠面积图进行"平滑"处理。在中,我们可以使用函数结合样条插值来创建平滑的边缘。关键在于将堆叠的数据进行累积,然后对累积边界进行平滑处理。流图解决了一个视觉错觉问题:在普通堆叠面积图中,上面的数据层会因为下面数据层的起伏而被迫“扭曲”,很难看出它原本的形状。流图

2026-06-30 14:19:06 175

原创 Lua学习笔记:库函数

当协程正常退出或让出时,返回true及退出或让出时的返回值;当协程非正常退出时,返回false和错误信息。,但参数只包括RESUMEVALUE,返回值只包括RETURNVALUE|YIELDVALUE。每次调用迭代器函数都会从文件返回一行。当泛型for循环结束时,不会自动关闭文件。当泛型for循环结束时,会自动关闭文件。运行外部进程,并返回从此进程读写的文件句柄。如不指定FILE,则关闭默认输出文件。以只读模式打开文件,返回迭代器函数。以只读模式打开文件,返回迭代器函数。如打开失败,则返回nil。

2026-06-29 14:36:02 223

原创 ahfuzhang

【代码】ahfuzhang。

2026-06-29 14:34:41 217

原创 【Vibe Coding】折腾了一个高考假,我让Codex自

随着Codex等AI Agent的发展,Vibe coding逐渐成为了开发者的日常。前几天修issue的时候,发现所有的活基本上都让codex干了:只需要一句“修一下Issue #34”,codex便自己调用gh-cli查看issue,列出plan,查找作用域,甚至修完代码还帮你测试。

2026-06-28 14:57:28 212

原创 Molio 开源:把知识库、AI 写作、排版和多平台发布串成一条工作流

当前主流的 AI 写作方式,本质上是一种监工模式:你打开对话窗口,一步步给指令,实时审视输出,随时纠偏。AI 每推进一步都需要你的输入,你成了整个系统里最大的单点故障。问题出在哪?不是 AI 能力不够,而是你和 AI 之间的上下文不完整。AI 看不到你的知识库,不知道你之前写过什么,不了解你的风格和偏好。每次对话都是一张白纸,你得从头交代背景。这正是 Molio 把知识库和 AI 放在同一个窗口里的原因——不是功能堆砌,而是让 AI 拥有完整的上下文。当 AI 能直接读取你的 Vault、加载你的。

2026-06-28 14:56:43 172

原创 React 可拖拽列宽 + 点击行选中 ProTable 封装笔记

这是列宽拖拽的核心,基于原生 th 实现鼠标按下、移动、抬起的完整拖拽逻辑,最小宽度限制 80px,右侧有拖拽触发区,体验接近 Excel。两个文件配合使用,开箱即用,支持 TypeScript,兼容 ProTable 所有原生属性。选中行高亮样式,在全局。

2026-06-27 14:27:56 172

原创 值得注意的是在axaml中使用自定义动画器时,需要指定动画器的类型

// <param name="progress">进度:0到1之间的值,指在两个关键帧之间过渡的时间位置。/// <param name="newValue">新值:动画结束时,最后一个关键帧的值。/// <param name="oldValue">旧值:动画开始时,第一个关键帧的值。//定义一个数组,存储不同的几何路径,在动画过程中根据DiscreteValue的值来切换不同的路径。//在属性的PropertyChanged事件中,根据DiscreteValue的值来切换不同的路径。

2026-06-27 14:27:10 193

原创 解锁 AI 办公:配置 AI 操控 WPS 全攻略

而是让系统去跟「当前这个 WPS 窗口」说话,就像以前用宏、用脚本控制 Office 一样,只是现在换成了 AI 在点。(docx 本质如此),不经过 WPS 界面,简单、快,但复杂排版、图表、批注等往往力不从心。免责声明:本内容来自平台创作者,博客园系信息发布平台,仅提供信息存储空间服务。:里面是 new winston.transports.Console({:里面是 new winston.transports.Stream({:你眼睛看到的文档,就是 AI 在动的那一份,所以更适合。

2026-06-25 14:02:44 240

原创 前端如何做监控体系(埋点 → 上报 → 分析 → 数据分流)

采集真实用户在浏览器中的行为和性能数据 (

2026-06-25 14:02:03 178

原创 Harness Engineering 究竟是什么?

说白了,大语言模型就是一个巨大的参数文件,平时它静静的躺在硬盘中,只有你将它加载到显存里,套上一层API再加一个聊天界面,它才会编程ChatGPT、Claude或者某种AI编程助手,无论它被包装成什么产品,它最核心的行为始终没有变:根据当前输入内容,预测下一个最可能出现的词。也就是说它不是在理解世界,更不是在自主思考,本质上是在做高维概率预测,它一直在猜,猜你想要什么,猜哪种输出更符合你的期待。正因为它是在猜,所以你给它的输入方式,直接决定了它猜的准不准。因此,输入方式直接决定了预测的准确性。这种通过设计输

2026-06-24 14:41:55 206

原创 浅析 Amazon S3 Files:工作机制、性能边界与 JuiceFS 对比

无论是早期的 s3fs、主打高吞吐读取的 Mountpoint for Amazon S3,还是今天的 S3 Files,它们都尽量保持文件与 S3 对象之间的直接映射,以换取对现有 S3 数据的透明访问能力。对 S3 Files 来说,挂载只是开始,真正影响体验的是挂载之后的数据路径:作用域如何确定,首次访问会导入什么,哪些请求会进入高性能层,写入后又会如何同步回 S3。如果文件系统侧的修改尚未同步回 S3,而对应对象已经在 S3 中被其他应用更新,系统会以 S3 中的最新版本为准,并将冲突文件移入。

2026-06-24 14:41:00 197

原创 彻底搞懂 fcntl/pipe/dup/CGI/mmap/sendfile/splice/tee 的底层逻辑

CGI(通用网关接口)是早期Web服务器实现动态内容的标准方案。它的核心逻辑很简单:Web服务器收到客户端的动态请求后,fork一个子进程执行CGI程序(可以是C、Python、Shell脚本等任意可执行文件),把HTTP请求通过标准输入传给CGI程序,CGI程序执行完成后,把HTTP响应通过标准输出返回给Web服务器,最终由Web服务器返回给客户端。

2026-06-23 14:45:30 160

原创 别再吹牛了,100% Vibe Coding 存在无法自洽的逻辑漏洞!

如今各大技术平台,鼓吹「100% Vibe Coding 颠覆编程」的机构、贩卖焦虑的博主层出不穷。貌似只需要 AI,一个毫无编程基础的同学就能实现任何应用。但我在企业真实场景中,完整落地了一套企业级 Vibe Coding 项目后,得出一个扎心结论:100% Vibe Coding 不是好不好用的问题,而是在逻辑上根本无法自洽、无法成立的问题。本文将结合实战翻车案例、计算机科学经典理论,彻底拆解 100% Vibe Coding 的致命漏洞。

2026-06-23 14:44:28 243

原创 记一次 .NET 某注塑模具系统 CPU爆高分析

来看,一切都明白了,然来这个 gc正在触发 fullgc,并且是因为 loh 的代边界满了,这个信息的潜台词就是告诉我们,有人在大概率折腾 LOH,接下来用。这卦不看不知道,一看吓一跳,堂堂server端的程序居然只有2core, 这程序稍微痉挛一下必定cpu爆高,这上哪说理去,让马儿跑又不让马儿吃草。接下来我们探究下到底是什么引发的cpu爆高,按照行业惯例,首先怀疑是不是gc导致的,最steady的方式就是使用命令。,根据gc的知识,这是等待gc finish的操作,所以这个程序果然触发了GC。

2026-06-22 17:02:52 158

原创 LangChain内置工具,开发效率提升10倍!

为了大幅提升大语言模型应用开发效率,主流框架 LangChain 提供了数百款开箱即用的标准化工具,全面覆盖信息检索、文件操作、数据库处理、网络访问、代码执行、API 集成等核心场景。这些工具统一接口规范,内置完善的错误处理与数据转换逻辑,避免重复开发;同时支持快速封装自定义工具,并能与链、智能体、RAG 等核心组件深度协同。这不仅能帮助开发者快速构建稳定可靠的 AI 应用,还能极大简化流程、缩短上线周期,让开发者聚焦业务逻辑创新与用户体验优化。动画视频在。🔍 搜索引擎类工具名称功能。

2026-06-22 17:02:07 234

原创 我用 AI 十分钟生成了一个科幻风智慧城市 3D 大屏,附完整 Prompt 和源码解析

的调试串口,通过这个串口登录到系统中,然后可以进行一些准备工作,比如修改网路设置,因为我需要使用ssh进行宿主机和设备端的连接,并且web服务器也需要解决网络问题。宿主机可以联网,设备端暂时无法联网,所以需要额外的软件就需要先在宿主机编译源码,然后再。容器部署在宿主机,安装了必要的软件开发包和编译器,并且添加了异质架构,支持。📞调用硬件资源前,需要确保硬件环境准备完成,包括初始化、配置以及权限。文件的配置,这个文件决定了嵌入式设备于浏览器交互过程中调用的。的功能,读取历史记录,数据库是。

2026-06-21 15:56:46 361

原创 魔珐星云SDK实战测评:重构数字人交互的底层逻辑

当用户说一句话,声音传到 ASR,ASR 转成文字发给 LLM,LLM 返回文本给 TTS,TTS 生成音频给渲染引擎——这个延迟在人类对话容忍阈值(200ms)的 2-3 倍范围内,虽然不是实时,但已经进入"可接受"的流畅对话区间。用户不再会感到明显的"等待感"。从"文本传递"升级为"操作传递",延迟从秒级降到毫秒级。你问一句话,对方沉默3秒后才开始回答——这种"慢半拍"会让用户本能地降低交互意愿,最终数字人沦为摆设。传统数字人是"视频流"传输——渲染完成后传输视频帧,带宽大、延迟高、交互性差。

2026-06-21 15:55:51 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除