APEX实战第3篇:如何完善项目基础功能
上一篇《APEX实战第2篇:构建自己第一个APEX程序》虽然有了程序,但实在是太单薄! 本篇将会介绍一些数据库的基础知识,演示如何通过函数、触发器、存储过程、视图等来完善项目的一些基础功能。 没有编程经验也完全没关系,笔者其实也从来都没做过程序员,但可以借助APEX结合一些数据库基础知识,就能让我们 ...
Supergateway:MCP服务器的远程调试与集成工具
Supergateway 是一款专为 MCP(Model Context Protocol)服务器设计的远程调试与集成工具,通过 SSE(Server-Sent Events)或 WebSocket(WS)协议实现基于 stdio 的服务器与客户端的高效通信。以下是其核心功能及使用场景的详细解析:核 ...
我的家庭实验室服务器集群硬件清单
概述 之前有热心读者想要了解我的家庭实验室服务器集群的硬件配置清单. 所以有这篇文章. 声明: 不是广告, 不是推广, 不是软广. 先放2张照片: 声明: 确实没有理线天赋, 这已经是我理线的极限了, 求轻喷. 硬件包括: 网络 一图左下亮绿光的: 瑞莎 Radxa E20C 一图中下: ...
Windows桌面应用自动更新解决方案SharpUpdater5发布
SharpUpdater是什么 SharpUpdater是一套C#桌面应用自动更新解决方案。基本上,所有自动更新程序的原理都一样:生成一份文件清单,将本地清单与云上清单对比后进行全量更新或增量更新。本方案的特点是集成了一套完整的工具链,从开发到发布。 版本历史 V1-3 (2016之前) 简单版本, ...
比较检验:找出最佳机器学习模型
在机器学习领域,我们常常需要在多个模型之间进行比较,以选择最适合特定任务的模型。 模型比较检验为此提供了科学的依据和方法。 本文将探讨比较检验的概念、方法、区别与适用范围,并结合scikit-learn库给出具体的代码示例。 1. 什么是比较检验 比较检验,又称比对检验,是指通过比较不同模型(或算法 ...
MySQL 事务隔离级别:社交恐惧症的四个阶段
MySQL 事务隔离级别:社交恐惧症的四个阶段 在数据库的世界里,数据们也有社交问题!事务隔离级别就是控制它们互相看到对方的程度... 什么是事务隔离? 想象一下,数据库是一个繁忙的餐厅,每个事务都是一桌客人,而数据就是美食。事务隔离级别决定了:当甲桌客人正在吃饭时,乙桌客人能看到 ...
Electron 客户端开机自启动
app.setLoginItemSettings 与 auto-launch 对比分析 一、稳定性对比 1. app.setLoginItemSettings 优点:作为Electron官方API,有官方维护和支持 缺点: 在某些Windows版本上存在已知问题 部分Windows 10/11更新后 ...
【集合分组利器】Java通用集合分组方案
Java通用集合分组实现方案详解:从基础到高级实践 在Java开发中,对集合中的元素按照特定属性进行分组是一项常见而重要的操作。本文将全面介绍Java中实现集合分组的多种方案,从基础实现到高级用法,并通过丰富的示例展示每种方案的实际效果。 一、基础分组实现 1.1 单属性分组 最基本的集合分组方式是 ...
AOT编译Avalonia应用:StarBlog Publisher项目实践与挑战
前言 最近我使用 Avalonia 开发了一个文章发布工具,StarBlog Publisher。 Avalonia 是一个跨平台的 UI 框架,它可以在 Windows、Linux 和 macOS 上运行。它的特点是高性能、跨平台、易于使用。 Avalonia 有很多优点,比如高性能、跨平台、易于 ...
掌握设计模式--备忘录模式
备忘录模式(Memento Pattern) 备忘录模式(Memento Pattern)是一种行为型设计模式,用于在不暴露对象内部实现细节的情况下,捕获对象的内部状态,并在需要时恢复到先前的状态。该模式通常用于需要撤销和恢复操作的场景。 核心思想:在不破坏对象封装的前提下,捕获并保存对象的内部状态 ...
Next.js中间件权限绕过漏洞分析(CVE-2025-29927)
本文代码版本为next.js-15.2.2 本篇文章首发在先知社区:https://xz.aliyun.com/news/17403 一、漏洞概述 CVE-2025-29927是Next.js框架中存在的一个高危中间件逻辑绕过漏洞,允许攻击者通过构造特定HTTP请求头,绕过中间件的安全控制逻辑(如身 ...
利用AI增强VS Code TypeScript插件:AnyToTS带来编程新体验
Any to TS: VSCode 扩展插件 概述 "Any to TS" 是一个强大的 VSCode 扩展插件,旨在将任何对象转换为 TypeScript 类型或接口。该工具基于 vscode-json-to-ts 进行功能扩展,提供了一系列便捷的功能,帮助开发者更高效地处理 TypeScript ...
虚函数表里有什么?(一)——从一个普通类开始
本系列文章,旨在探究C++虚函数表中除函数地址以外的条目,以及这些条目的设计意图和作用,并介绍与此相关的C++类对象内存布局,最后将两者用图解的形式结合起来,给读者带来全局性的视角。让我们从一个简单的类出发,开启我们的探索之旅。 ...
《HelloGitHub》第 108 期
兴趣是最好的老师,HelloGitHub 让你对开源感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Pytho ...
史上最全EffectiveJava总结(二)
方法 49、检查参数的有效性 每次编写方法或构造函数时,都应该考虑参数存在哪些限制,并在文档中记录下来,然后在方法的开头显式地检查。 如果没有在方法开头就验证参数,可能会违反故障原子性。因为方法可能会在执行过程中出现让人困惑的异常而失败,或者计算出错误的结果然后返回,甚至可能埋藏隐患,导致将来在不确 ...
互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互
前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一些树莓派对接实时语音api实现对话的功 ...
使用SPA单页面跟MPA多页面的优缺点?
SPA vs MPA 深度解析 1. 概述 什么是 SPA? SPA(Single Page Application,单页面应用)是一种仅加载一个 HTML 页面,并通过 JavaScript 动态更新页面内容的 Web 应用架构。用户在操作时不会触发整页刷新,而是通过 AJAX 或 Fetch A ...
Netty源码—8.编解码原理
大纲 1.读数据入口 2.拆包原理 3.ByteToMessageDecoder解码步骤 4.解码器抽象的解码过程总结 5.Netty里常见的开箱即用的解码器 6.writeAndFlush()方法的大体步骤 7.MessageToByteEncoder的编码步骤 8.unsafe.write()写 ...
一个基于 .NET 开源免费的异地组网和内网穿透工具
前言 今天大姚给大家分享一个基于 .NET 开源免费的异地组网和内网穿透工具:linker。 工具介绍 linker是一个基于 .NET8 开源免费(GPL-2.0 license)的异地组网和内网穿透工具,支持TCP(支持IPV6)打洞、UDP打洞,服务器中继,异地组网使用虚拟网卡将各个客户端组建 ...
Spring AOP 应用
Spring AOP 应用 1. 介绍 AOP:面向切面编程,对面向对象编程的一种补充。 AOP可以将一些公用的代码,自然的嵌入到指定方法的指定位置。 比如: 如上图,我们现在有四个方法,我们想在每个方法执行一开始,输出一个日志信息。但是这样做很麻烦,如果有100个、1000个方法,工作量会很大,而 ...