自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 示例Cone2,熟悉观察者模式,在Qt窗口中详解复现对应的Demo

事件的排序/中止对于像3D小部件这样的东西很重要,如果选择了小部件,它们会处理事件(然后中止对该事件的进一步处理)。当被监听的事件触发时,观察者会执行关联的回调函数。观察者模式(Observer Pattern),允许一个对象(观察者)关注另一个对象(被观察者)的状态变化,并在事件发生时自动执行预定操作。有一个很重要的点,这个示例代码是阻塞时的循环刷新,与Qt的基于消息的编程处理方式不一样,这是过程式的编程,我们复刻示例,保持一块Demo就一个函数,否则的话,可以使用Qt定时器来实现更新位置就可以了。

2025-12-21 14:30:45 649

原创 一文读懂字符与编码

👨‍👩‍👧‍👦:U+1F468 (👨) + U+200D (ZWJ) + U+1F469 (👩) + U+200D (ZWJ) + U+1F467 (👧) + U+200D (ZWJ) + U+1F466 (👦)对应 7 个Code Point。当以UTF-8方式编码时,0x0301值超过了128,需要按UTF-8格式拆分为0xCC,0x81,所以表示为:0x65,0xCC,0x81。当以UTF-32方式编码时,每个Code Point未超过4字节,所以表示为:0x00000065,0x00

2025-12-21 14:30:06 172

原创 JSAPIThree UI 控件学习笔记:用内置控件提升交互

drawer 类似一个工具抽屉,可以配置多个“工具项”。例如:mapInfo: { enabled: true, template: 'CHP', separator: ', ' }每个控件都有对应的 getter,例如 engine.widgets.zoom、engine.widgets.scale。获取到的是控件实例,可以直接读写属性:engine.widgets.mapInfo.template = 'CRH'exportImage: { enabled: true }, // 导出图片控件。

2025-12-17 19:08:33 285

原创 Qwen是“源神”?实际上GLM-4.6才是被低估的黑马

I科技圈,Qwen因其开源模型数量位居世界第一、模型涵盖各种大小、开销低而表现不俗,被称为“源神(开源界的神)”。这也导致有些人在体验之后,觉得Qwen写的代码质量是国内第一,仅次于Claude、chatGPT、Gemini、grok这些国外大模型之后。但GLM却像是被遗忘了一样,网上对它知之甚少,唯一比较出名的就是编程套餐每个月20块钱,还被骂奸商。但殊不知,GLM-4.6却是一匹被低估的黑马,甚至不输外国模型。我今天就来试一试。 提示词如下(由于网页版的千问没有记忆功能,所以附上第一段的前置信息。而智谱

2025-12-17 19:07:47 362

原创 Java关键字解析之volatile:可见性的守护者、有序性的调节器

在Java并发编程的世界里,volatile是一个充满“精准感”的关键字——它像一把“轻量级锁”,专门解决多线程环境下的可见性和有序性问题,却不像synchronized那样带来沉重的性能开销。volatile仅保证单次读写的原子性(如boolean flag = true),但不保证复合操作的原子性(如i++,包含“读-改-写”三步)。volatile的本质是声明“易变的共享变量”:当用它修饰变量时,即告诉编译器和JVM:“这个变量可能被多个线程同时访问和修改,需要特殊处理以保证可见性和有序性”。

2025-12-15 12:45:08 683

原创 神经推理的蜕变:从概率解码到 DeepSeek V3.2 的理性智能体架构演进

DeepSeek V3.2 通过引入“系统 2”(System 2)推理机制,将计算资源的重心从预训练阶段的知识压缩,转移到了推理阶段的实时计算(Inference-Time Compute)。本文旨在对 DeepSeek V3.2 的解码策略进行详尽的解构与分析,重点探讨其核心技术突破:DeepSeek 稀疏注意力机制(DSA)、基于强化学习的思维链内化(GRPO)、以及“工具使用中的思考”(Thinking in Tool-Use)范式。然而,贪婪解码往往陷入局部最优,且无法纠正早期的错误生成。

2025-12-15 12:44:20 842 1

原创 什么是工厂方法模式?

工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪个类。这种模式将对象的实例化推迟到子类,从而实现了创建逻辑与使用逻辑的分离。这种写法的问题在于,客户端代码直接依赖于具体类,一旦需要添加新的车辆类型或修改创建逻辑,就需要在所有使用的地方进行修改。onClick(callback: () => void) { /* mobile 实现 */ }具体产品(Concrete Products):实现产品接口的具体类。考虑简单工厂:如果产品类型不多,可以考虑使用简单工厂模式。

2025-12-14 10:34:16 499

原创 【URP】Unity[后处理]阴影,中间调,色差Shadows,Midtones,Highlights

相比早期的 Lift, Gamma, Gain 调整方式,Shadows, Midtones, Highlights 提供了更精确的色调范围定义能力。Shadows, Midtones, Highlights 是 Unity URP 后处理系统中用于颜色分级的重要效果,它允许开发者分别控制画面中的阴影、中间色调和高光部分的颜色调整。在 URP 中,该效果通过体积框架(Volume Framework)实现,使用屏幕空间计算和色调映射技术来分离和调整不同亮度区。

2025-12-14 10:33:28 652

原创 OAuth2 协议解析(安全视角)

OAuth2 是在WEB基础上发展出来的一个授权框架(Authorization Framework),也可以认为它是一套协议,一套能解决第三方授权问题的解决方案,优势在于它允许第三方应用在不获取用户密码的情况下,获得访问用户资源(用户的ID信息等)的有限权限。以上都是以一个用户视角看的流程,其实后端之间还做了很多事情,才能保障整个流程的安全,不过下面的流程图需要以一个开发者的角度看待,下面继续解构。流程图是AI生成的,有些角色关系描述得不是那么准确,但是大致理解state、code的安全流程是没问题的。

2025-12-13 17:40:03 320

原创 java并发性能陷阱--伪共享

在之前的文章中,我们聊过JMM java的内存模型(一定要有所了解,不太清楚的同学可以看下前文链接https://www.cnblogs.com/jilodream/p/9452391.html),可以知道线程并不是直接读写内存,而是调用线程自己的工作空间。这是不会的,缓存块是根据内存的地址和偏移量划分好的,不会根据不同核来划分不同的边界的。这样当线程1每次修改变量a,线程2每次修改变量b时,当前缓存都不断的需要重新加载,本质上已经失去了缓存的意义,还增加了缓存状态控制,缓存重新加载的开销。

2025-12-13 17:39:25 602

原创 WPF 调用 ChangeWindowMessageFilterEx 修改指定窗口 (UIPI) 消息筛选器的用户界面特权隔离

说到了 发送端是普通权限的窗体 给 接收端是 管理员权限的窗体,通过 Win32 API的方式调用 SendMessage 发送窗口消息,管理员权限的窗体的钩子消息回传接受不到发送端的数据。如果进程消息筛选器或窗口消息筛选器允许该消息,则会将其传递到窗口。允许全局或进程范围内的任何消息都将通过,但任何未包含在这两个类别中以及来自较低特权进程的消息都将被阻止。尝试使用此函数允许或阻止此类消息时,将不起作用。这使 hWnd 能够接收消息,无论消息的来源如何,即使消息来自较低特权进程也是如此。

2025-12-12 10:52:04 647

原创 最小二乘问题详解4:非线性最小二乘

求解非线性最小二乘问题最基础最好理解的就是Gauss-Newton方法,它结合了牛顿法的迭代优化框架(就是高中数学中迭代逼近求解平方根的过程)和高斯的线性化思想,所以将其称为Gauss-Newton方法。在论述最小二乘问题的时候,很多文章都喜欢用拟合直线来举例,但是在现实中像拟合直线这样的线性最小二乘问题往往不是常态,现实世界中更多是像投影成像这种非线性最小二乘问题。这就是我们说的非线性最小二乘求解的基础是线性最小二乘的原因了,非线性最小二乘问题的每次迭代过程就是一个线性最小二乘子问题。

2025-12-12 10:51:19 781

原创 Unigine整合Myra UI Library全纪录(2):渲染

由于Unigine是右手坐标系,屏幕左下角是(0.0f,0.0f),右上角是(1.0f,1.0f)。而Myra传递过来的是传统的屏幕像素坐标,左上角为(0,0)右下角是(ClientRenderSize.x,ClientRenderSize.y),因此这里要对坐标系进行转换。指定一次最多绘制2048个图元,这个数量已经很多了,再多会导致Mesh的Index尺寸超过65536,效率就会有所降低(Unigine的Index是4字节int)。基本的数据都准备好了之后,开始制作绘制Quad的过程。

2025-12-11 09:55:12 739

原创 Echarts双Y轴,有负数情况下,0对齐实现

如果只是0刻度对齐正常设置:alignTicks:true 即可,版本需要5.3.0 才可,不过我的是5.4.3版本,却不生效,没找到原因,于是自己手写了适配,设置了min和max。// 整齐的分数:1, 2, 5, 10 改为了 1,2,4,5,6,8。// 对于负数的最大值,向下取整(因为负数越大,绝对值越小)// 对于最大值,向上取整到niceValue的整数倍。// 计算左侧轴的临时范围,强制包含0。// 对于正数的最小值,向下取整。// 对于负数的最小值,向上取整。// 计算右侧轴的范围。

2025-12-11 09:54:29 101

原创 MySQL 筛选条件放 ON 后 vs 放 WHERE 后

ON 决定如何 "连接" 表,WHERE 决定连接后 "显示" 哪些行。ON 后面优先放 "表之间的关联键"(如 u.id = o.user_id),非关联的筛选条件(如 u.age > 20)是否放 ON 后,取决于是否要保留驱动表的行。场景二:使用 LEFT JOIN,保留所有用户,同时显示 年龄 > 20 的用户及其订单(≤ 20 的用户订单显示为 NULL)。场景三:使用 LEFT JOIN,保留所有用户,同时显示 订单金额 > 200 的订单(无符合条件订单的用户填充为 NULL)。

2025-12-10 09:23:58 376

原创 结合 Solon Flow 实现 ReAct 效果

prompt.addMessage(ChatMessage.ofUser("这是你的旧草稿:\\n---\\n" + draft_content + "\\n---\\n这是人工审核员的反馈:\\n---\\n" + feedback + "\\n---\\n请提供修改后的新草稿。log.info("--- LLM 完成第 {} 次草稿/修改 ---", revision_count.get());log.info("--- 启动内容审核 Agent ---");

2025-12-10 09:23:08 420

原创 如何创建和使用 Shell 脚本实现 PHP 部署自动化

如果你依赖 cron 调用 php artisan schedule:run,不需要做特别的事——cron 会在下次运行时自动使用新的 current 符号链接。读完之后,你会有一个可以适配到自己应用的部署脚本——无论是 Laravel 项目、自定义 PHP 后端,还是其他业务系统。到那时候,部署就不再是一个任务了——它变成了一种仪式,脆弱、没有文档、而且只有"知道确切步骤"的那个人才能搞定。上面的简单脚本有个大问题:如果迁移挂了或者部署半途出问题,你唯一的回滚方式是"希望你有备份"。

2025-12-09 17:01:18 574

原创 Avalonia 实现跨平台的视频会议(Windows、Linux、信创)

根据目标电脑的CPU架构类型(比如X64、arm、mips、loongarch),安装对应的.NET 8.0 Framework,无论是服务端还是客户端,直接将bin\Debug目录下的.net8.0文件夹拷贝到目标电脑上,进入.net8.0目录,打开终端,之前我使用CPF.NET UI 框架开发了一套跨平台视频会议系统的Demo,能稳定地在Windows和信创系统(银河麒麟、统信UOS)上运行,随着Avalonia的势头越来越猛,现在看来有必要也出一个Avalonia的版本。使用dotnet命令运行。

2025-12-09 16:58:12 368

空空如也

空空如也

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

TA关注的人

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