Blazor Hybrid适配到HarmonyOS系统
1. 前言 Blazor Hybrid是一个基于Web技术的MVVM开发模式的客户端框架,它只有UI是由Webview渲染,而逻辑均由.NET开发,可以突破浏览器限制访问本地文件,或者发起TCP或者UDP请求,相比Electron框架,理论上性能会更好。 当我适配完.NET运行时,觉得应该快速适配一 ...
分布式锁—1.原理算法和使用建议
大纲 1.Redis分布式锁的8大问题 2.Redis的RedLock算法分析 3.基于Redis和zk的分布式锁实现原理 4.Redis分布式锁的问题以及使用建议 1.Redis分布式锁的8大问题 (1)非原子操作(set+lua) (2)忘了释放锁(手动+超时) (3)释放了其他线程的锁(lua ...
理解Rust引用及其生命周期标识(上)
写在前面 作为Rust开发者,你是否还没有完全理解引用及其生命周期?是否处于教程一看就会,但在实际开发过程中不知所措?本文将由浅入深,手把手教你彻底理解Rust引用与生命周期。 关于本文的理解门槛 本文主要面向的是已经基本上了解过Rust这门语言,对引用以及生命周期(及其标识)有基本的了解,但对于包 ...
Vulkan环境配置 | vscode+msvc 解决方案
Vulkan环境配置 | vscode+msvc 解决方案 前言 如果作为Windows 11侠的你是一个vscode爱好者,凑巧电脑上还安装有Visual Studio,这个时候你突然想配置一个Vulkan开发环境。作为minimalist的你可不希望在电脑上安装任何额外的组件,那么这篇安装指南一 ...
探究高空视频全景AR技术的实现原理
详细探究了探究高空视频全景AR技术的实现原理,论述了如何实时计算高空视频摄像头三维位姿,从而保证视频中的注记始终在正确的位置。 ...
试试使用 Vitest 进行测试,确实可以减少bug
vitest的简单介绍 Vitest 是一个基于 Vite 的单元测试框架,专为现代前端项目设计。 它结合了 Vite 的高性能和 Jest 的易用性, 提供了开箱即用的 TypeScript、ESM 和 JSX 支持,同时与 Vite 的配置无缝集成。 安装vitest npm install - ...
重构的艺术:在代码演进中寻找优雅
重构的艺术:在代码演进中寻找优雅》 本文深入探讨软件开发中的持续重构实践,揭示重构并非特殊任务而是日常开发的自然组成。通过微信小程序开发中的真实案例: 1️⃣ 路由模块重构:消除6处重复导航逻辑,抽象出可复用的路由服务层 2️⃣ 请求接口设计:封装通用网络请求工厂,实现加载/错误处理/测试的标准化 ... ...
一文搞懂 MCP Servers
一文搞懂 MCP Servers 什么是MCP MCP概念 MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 提出并于 2024 年 11 月开源的一种通信协议,旨在解决大型语言模型(LLM)与外部数据源及工具之间无缝集成的需求。 它通过标准化 AI 系 ...
CMD批处理脚本+VBScript脚本+Potplayer 实现文件夹内所有视频的截图任务(指定时间点)
实现自动化视频截图,一般会直接借视频编解码如FFmpeg,动用相关函数来实现,直接从解码源头设计程序。然而我没有接触过FFmpeg,借助cmd批处理,以及vbs,还有现成的播放器potplayer,一样可以实现。 【思路】 查找特定文件夹内所有的视频,每个视频使用potplayer打开,使用视频播放 ...
[深度学习] 大模型学习2-提示词工程指北
在文章大语言模型基础知识里,提示词工程(Prompt Engineering)作为大语言模型(Large Language Model,LLM)应用构建的一种方式被简要提及,本文将着重对该技术进行介绍。 提示词工程就是在和LLM聊天时,用来让模型回答得更好的一种方法。LLM的工作原理是猜下一个字或词 ...
【Streamlit】关于我在使用Steamlit中碰到的问题及解决方案总结一:路径选择,调试运行,自定义图表ECharts,分页渲染
Steamlit 并不支持一个可以预览本地文件的路径选择器(并不上传文件) 解决方案:使用 Python 自带的 tkinter 来完成 参考:【Streamlit 选择文件夹的曲折方案】Streamlit选择文件夹-CSDN博客 import streamlit as st from tkinte ...
JUC相关知识点总结
Java JUC(java.util.concurrent)是Java并发编程的核心工具包,提供了丰富的并发工具类和框架。以下是JUC的主要知识点,按难易程度分类,供你参考: 1. 基础概念与工具类 1.1 并发与并行(易) 内容:理解并发(Concurrency)和并行(Parallelism)的 ...
Refit 原理解析:从初识到实践
在现代的分布式系统和微服务架构中,HTTP API 调用是不可或缺的一部分。为了简化 HTTP 请求的构建和解析,我们可以使用 Refit 这个强大的库。Refit 通过将 HTTP API 抽象为接口,使得调用远程服务变得非常简单和直观。 1. 初识 Refit Refit 是一个用于 .NET ...
数据并发安全校验处理工具类
一、项目现存问题描述 当前系统项目中,存在一些并发安全风险问题(虽然并发量较小)。特别是在处理审批状态修改和涉及金额数量的操作,由于缺乏有效的并发控制,可能会导致业务逻辑重复执行和数据不一致。例如 并发场景下,多个线程同时尝试更新同一笔交易状态或金额,这不仅会导致数据不一致,还可能引发更严重的相关业 ...
万字调研——AI生成内容检测
数据集 TweepFake 地址 摘要:深度伪造(deepfakes)、合成或篡改媒体的威胁正变得越来越令人担忧,尤其是对于那些已经被指控操纵公众舆论的社交媒体平台而言。即使是最简单的文本生成技术(例如查找和替换方法)也能欺骗人类,正如2017年的“网络中立性”丑闻所证明的那样。与此同时,从基于RN ...
支付宝 IoT 设备入门宝典(下)设备经营篇
本篇会以支付宝 IoT 设备经营为中心,介绍常见的设备相关能力和问题解决方案,帮助商户利用设备进行运营动作,让设备更好的帮助自己 ...
快收藏!一个技巧从此不再搞混缓存穿透和缓存击穿
在 Redis 中有两个定义:一个缓存击穿、一个缓存穿透,因为二者的名字比较像,因此很容易就搞混了。但本文会给你提供一个记忆的小技巧,帮你彻底区分二者的定义。 在讲这个技巧之前,我们先来了解一下二者的区别。 1.定义与区别 缓存穿透(Cache Penetration):缓存穿透是指查询的数据既不在 ...
Log4j2 中三种常见 File 类 Appender 对比与选择
在 Log4j2 中,若不考虑 Rolling(支持滚动和压缩)类文件 Appender,则包含以下三种文件 Appender:FileAppender、RandomAccessFileAppender 和 MemoryMappedFileAppender。接下来将介绍这三种 Appender 的功 ...
AI 插件第二弹,更强更好用
概述 插件大更新 前一周, 我们开源了一个 AI 插件,发了一篇介绍的文章 DeepSeek 插件开源上线!支持多家云服务,一键解锁满血版 AI 引来了一些小小的反响,也有用户在评论区或者私底下提了一些需求。 为了让大家获得更好的使用体验,我在业余时间加紧开发,如今插件已迭代至 第四个版本! ...
全程使用 AI 从 0 到 1 写了个小工具
背景 好长时间没写技术方面的文章了,主要的原因是AI的发展实在太快太快,尤其是从去年ChatGPT的普及到今年DeepSeek的爆火,AI的世界可谓是三天一个小变化五天一个大版本,AI的能力每天都在以惊人的速度成长。就我自己而言,现在无论遇到什么问题,几乎都在向AI寻求答案,已经很久没有使用传统搜索 ...