- 博客(818)
- 收藏
- 关注
原创 最实用也最容易被遗忘的 Linux 命令行使用技巧
搜索结果里提到了 ping 服务器,一直到它变得空闲位置,或者检查是不是向某个目录里上传过特定的文件,再有就是检查某个指定的链接是否存在之类的方法。你可以使用这个命令将命令的输出作为参数传递给另一个命令。如果想要把自己在 shell 屏幕上敲的内容记录下来,可以使用 script 命令将所有敲写的内容保存到一个名为 typescriptscript 的文件中去。使用命令行的时候,经常可以看到输出的内容一团糟:太多字符串挤在一起,根本没法看到底输出了什么,不信你就试试 mount 命令。
2025-05-21 15:26:46
419
原创 ❤Vue3以及vite配置
登录后复制1.vite下更改为登录后复制1.接下来我们去vite.config.js中自定义环境变量前缀及获取环境变量的配置登录后复制console.log(env.VITE_APP_BASE_API) // 获取环境变量return {// 环境变量前缀,默认只会暴露VITE开头变量,定义后可暴露VUE开头变量define: {},})1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.
2025-05-21 13:51:08
645
原创 一文读懂 Amazon DynamoDB 数据备份、复制与恢复
使用 DynamoDB Streams 和 Lambda实现自定义冲突解决策略支持选择性数据复制可以与其他服务集成DynamoDB 提供了多种备份、复制和恢复选项,可以满足从简单应用到企业级工作负载的各种需求。通过了解每种方法的优缺点,您可以设计一个满足您特定业务需求的数据保护策略。关键是要定期评估您的备份和恢复策略,确保它们随着应用程序的发展而扩展,并定期测试恢复流程以确保在需要时能够正常工作。
2025-05-21 10:29:17
675
原创 如何在面试中自信回答Spring3事件机制?看这一篇就够了!
在Spring框架中,事件机制是一个发布-订阅模型。发布特定事件。订阅感兴趣的事件,一旦有消息发布,就会自动触发监听器处理逻辑。事件类,承载特定信息。负责将事件广播给相应的监听器。当事件发布者发布事件后,事件广播器将其转发给所有监听器,从而实现不同组件之间的消息传递。“如果要自定义事件,该怎么做呢?”面试官话锋一转,继续提问。“自定义事件其实不难,主要分为三步:定义事件、创建监听器、发布事件。1. 自定义事件类2. 自定义事件监听器3. 事件发布者4. 触发事件。
2025-05-21 09:38:00
539
原创 模型蒸馏:“学神”老师教出“学霸”学生
现在我们来定义教师模型 —— 一个具有多个网络层的 CNN(卷积神经网络):请注意,学生模型的最后一层有 10 个神经元(对应 10 个数字类别),但未使用 softmax 激活函数。该层直接输出原始 logits 值,这在模型蒸馏过程中非常重要,因为在模型蒸馏阶段会应用 softmax 计算教师模型与学生模型之间的 Kullback-Leibler(KL)散度。
2025-05-21 08:40:39
356
原创 大型前端应用如何做系统融合?
A平台与B平台同属于同一系统链路上,前者主要致力于为用户提供注册入驻服务,后者则专注于提供具体业务操作服务。两者皆为运营人员所依赖的在线管理工具。在经历了为期两个月的紧张工作后,我们成功地将两个大型项目进行了深度整合,取得了显著的阶段性成果。通过这一融合过程,我们不仅统一了项目的代码规范和架构,还显著提升了组件的复用率。尽管在这个过程中我们遇到了诸多挑战和曲折,但最终的成果——用户体验的显著提升——使一切努力都显得弥足珍贵。我们深知,每一个成功的项目背后都有无数次的尝试和优化。
2025-05-20 14:45:57
572
原创 HarmonyOS实战:3秒实现一个自定义轮播图
轮播图作为应用程序中最普通使用的控件被广泛应用,相信对于来发者来说并不陌生。在 Android 中实现一个 轮播图很多选择使用第三方的插件,毕竟在有限的开发排期中自己动手去实现一个轮播图 并不那么简单,需要考虑的细节很多。支持自定义循环播放,自动播放。支持自定义播放时间间隔。支持横向和竖向轮播。支持自定义指示器。在鸿蒙实际开发中,实现一个轮播图是十分方便的,但是这并不是意味着所有功能都简单,还有一些看似简单的效果实现起来却是十分的复杂。学会的小伙伴赶紧动手试试吧!
2025-05-20 14:43:47
355
原创 探索自定义地图样式,打造应用专属个性化地图
不同应用的开发者对地图样式的展示需求差异很大。例如,物流类应用希望地图样式简洁一些,重点突出城市分布和快递路径;AR游戏类应用中的地图色彩需要和游戏UI适配,做的更酷炫一些;景区导览应用中的地图样式要景区特色相结合,重点呈现关键景点。这就要求地图样式为开发者提供多种地图样式供选择,包括简洁风格、酷炫风格、特色风格等,让开发者可以根据自己的需求自定义地图样式,包括颜色、标注、线条等元素,以实现更加个性化的展示效果,以满足不同应用的需求。(Map Kit)提供了。
2025-05-20 14:21:54
605
原创 【CodeBuddy】今天520,我只教你一遍。
在这个充满爱意的520,我仅用5分钟就完成了一个包含时空胶囊、动态情书、记忆时间轴等复杂功能的网页应用。这一切的实现密码,正是CodeBuddy展现的AI编程魔力。通过这次实践,我深刻体会到AI如何将创意快速转化为可运行的代码艺术。以下是实际操作中的开发界面与最终呈现效果(文末附代码):项目中渐变色背景、漂浮Emoji特效(动画)等视觉元素,AI通过自然语言描述自动生成CSS动画代码:1.2.3.4.5.1.2 交互逻辑构建胶囊开关动画(点击事件)与页面切换的协同逻辑,AI自动生成完整的DOM操作代码
2025-05-20 13:03:38
351
原创 HarmonyOS:使用PickerController将编辑后的图片替换原图
应用可获得用户从Picker选择的图片、视频的访问权限,读取图片、视频后进行编辑、修改。完成编辑修改后的图片/视频缓存到应用沙箱后,可调用本API,将编辑结果文件发送给PhotoPicker,并指定替换显示的原图。应用指定保存的文件,需在替换显示的范围内。新uri,即替换后的uri。基于originalUri修改后期望在photoPicker上替换originalUri显示的,暂存在应用沙箱的图片/视频uri。应用可通过该接口,将photoPicker中用户勾选的图片替换为应用后期编辑修改后的图片。
2025-05-20 09:19:19
536
原创 鸿蒙HarmonyOS NEXT开发:安全区域、沉浸式页面开发实践,软键盘布局适配解决方案
在软键盘系统避让机制中介绍过,弹窗为避让软键盘会进行避让,整体向上抬,这样可能会影响用户体验。比如下面这个评论里列表的弹窗,使用@CustomDialog实现的。当用户点击弹窗底部的输入框的时候,弹窗会整体上抬,输入框上抬的距离也过多。为了解决以上问题,可以使用Navigation.Dialog,通过设置NavDestination的mode为NavDestinationMode.DIALOG弹窗类型,此时整个NavDestination默认透明显示,示例代码如下:登录后复制@Entry。
2025-05-20 09:19:18
662
原创 Seata源码—7.Seata TCC模式的事务处理
该应用会订阅Dubbo服务,发起分布式事务,调用上述两个TCC参与者,内含TCC事务提交场景和TCC事务回滚场景的演示。TccTransactionService作为分布式事务的入口,其提交事务和回滚事务的接口都会被添加上@GlobalTransactional注解。Action拦截处理器在注册TCC的分支事务时,会调用DefaultResourceManager的branchRegister()方法。在TccActionInterceptor的invoke()方法中,会通过。
2025-05-20 08:55:34
548
原创 Electron Forge【实战】带图片的 AI 聊天
图片很占空间,转为字符串直接存入数据库压力过大,合理的方案是存到应用本地。渲染进程中,无法直接读取本地图片,需借助 protocol 实现。需借助 webUtils 从 File 对象中获取文件路径。函数封装 – 将消息转换为 AI 模型需要的格式。将消息转换为 AI 模型需要的格式后传给 AI。仅支持文字,要想体验图片聊天,需改用。在 createWindow 方法内执行。继续向 AI 提问时图片参数。img 的 src 添加了。发起 AI 聊天传图片参数。用于便捷获取图片的类型。
2025-05-20 07:04:30
447
原创 【node】中间件分类
定义中间件监听req的data事件监听req的end事件使用querystring模块解析请求体数据将解析出来的数据对象挂载req.body将自定义中间件封装为模块data事件来获取客户端发送到服务器的数据。数据量比较大的话,客户端会把数据切割分批发送到服务器端,data事件会触发多次 每次都获取到完整数据的一部分。end事件当请求体数据接收完毕之后,会自动触发req的end事件。因此可在end事件中,拿到并处理完整的请求体数据。登录后复制// 自定义的中间件str+=chunk。
2025-05-19 22:35:08
760
原创 【JavaEE】Mybatis XML配置文件实现增删改查
一、环境准备在使用XML来实现的数据库操作的时候,我们的依赖下载与前面的使用注解时的依赖是一样的。在配置文件yml格式,也需要添加上跟使用注解时的配置。还要多加上。
2025-05-19 22:14:14
658
原创 【Docker项目实战】使用Docker部署MicroBin粘贴应用程序
MicroBin是一个超小型、功能丰富、高度可配置、安全、独立且自托管的 Pastebin Web 应用程序,使用 Rust 编程语言开发。它旨在为用户提供一种简单、高效的方式,以分享文件、文本和URL,并支持多种高级特性,如服务器端和客户端加密、文件上传、原始文本服务、QR码生成、URL缩短与重定向等。1.本次实践部署环境为个人测试环境,生产环境请谨慎;2.在Docker环境下部署MicroBin粘贴应用程序。通过使用 Docker 部署 MicroBin 粘贴应用程序,深刻体会到其便捷性与高效性。
2025-05-19 17:16:41
496
原创 【SLAM】在ORB_SLAM2的ROS模式下使用RealSense D435相机
先前已经编写了如何用TUM数据集运行ORB_SLAM3以及如何在ROS模式下运行ORB_SLAM3的博客,ORB_SLAM3是基于ORB_SLAM2的,甚至代码仓库中还有遗留的ORB_SLAM2命名空间namespace没有修正,二者不管是用TUM RGB-D数据集直接运行还是在ROS模式下运行的命令都完全一致。所以,在阅读本文之前,先参考上面给出的两篇博客,安装ORB_SLAM2的依赖库和ROS环境。
2025-05-19 14:59:46
696
原创 【MCP】了解远程MCP调用背后使用的SSE协议
和MCP的远程服务是通过SSE(Server-Sent Events)启动的,SSE是一个基于HTTP的长连接协议。SSE在逻辑上是一个由客户端发起、由服务器同意而建立的从服务器向客户端发消息的单向管道。这个管道建立之后,客户端给服务器发消息时用传统方式发,服务器给客户端发消息时用这个管道发,双方就可以灵活地进行通信了。MCP SSE客户端会发起多个请求,第一个请求是/sse路径,这是建立SSE长连接的第一步。
2025-05-19 14:59:11
635
原创 【MCP】详细了解MCP协议:和function call的区别何在?如何使用MCP?
2025年,Anthropic提出了MCP协议。MCP全称为Model Context Protocol,翻译过来是大模型上下文协议。这个协议的主要为AI大模型和外部工具(比如让AI去查询信息,或者让AI操作本地文件)之间的交互提供了一个统一的处理协议。我们常用的USB TypeC接口(USB-C)统一了USB接口的样式,MCP协议就好比AI大模型中的USB-C,统一了大模型与工具的对接方式。
2025-05-19 14:58:57
916
原创 Chroma向量检索实战:打造智能客服的“最强大脑”
向量库(Vector Database)是一种专门设计用来存储和检索向量数据的数据库系统。在这个文件中使用的ChromaDB就是一种向量数据库。向量嵌入(Embeddings) :将文本、图像等非结构化数据转换为高维数字向量相似性搜索 :基于向量间的距离(如余弦相似度)快速查找相似内容高效索引 :使用特殊的索引结构(如HNSW)加速相似性搜索。
2025-05-19 14:50:56
474
原创 Harbor2.0仓库镜像清理策略
在策略页面,点击“编辑”按钮,配置策略的执行时间。-配置并执行镜像清理策略后,镜像的元数据会被删除,但实际的存储空间不会立即释放。为彻底释放空间,需要执行垃圾回收操作。目前 公司的Harbor存储已经占用1T,好多的repo的镜像tag达到上百多,没有清理十分占用空间。:多个策略可能存在冲突,Harbor 按照策略的创建顺序依次执行,建议合理规划策略的优先级。在策略页面,点击“立即执行”按钮,可以手动触发策略,立即清理符合条件的镜像。:在生产环境应用策略前,建议在测试环境验证策略的效果,避免误删重要镜像。
2025-05-19 14:49:20
651
原创 Threejs 奇幻几何体:边缘、线框、包围盒大冒险
Draco 是一个开源的 3D 图形压缩库,可以有效地减少 3D 模型的文件大小,加快加载速度,并保持较高的图形质量。在 Three.js 中,模型解压是指将压缩的模型文件解压缩为 Three.js 可以直接使用的模型对象的过程。包围盒(Bounding Box)是一个用于描述物体体积的几何体,用于计算物体的位置、大小和碰撞等属性。方法用于合并两个包围盒,返回值为合并后的包围盒对象。方法用于计算几何体的包围盒,返回值为包围盒对象。属性用于获取几何体的包围盒,返回值为包围盒对象。
2025-05-17 11:15:51
963
原创 春招季面试,Spring 的设计模式考点来了!
哈喽大家好,我是小米,一个在互联网行业摸爬滚打多年的程序员,虽然已经 31 岁了,但依然热爱技术分享,尤其是和小伙伴们一起学习进步!最近春招如火如荼,后台有不少小伙伴私信我:“小米,我去面试 Spring 开发岗位,我支支吾吾说了一些,感觉不够全面,怎么办?没错,这类问题真的太常见了,尤其是社招面试中,面试官总喜欢考一些既基础又深入的知识点,来判断你对框架的理解深度。
2025-05-17 10:31:04
863
原创 【SQL周周练】:利用行车轨迹分析犯罪分子作案地点
大家可以先看看故事背景,这是两个多月前写的。写作方法是我提一个梗概,然后让 Deepseek 或者 Qwen 润色和发散;等它们返回来结果,我再吸收和更改;然后再提问再更改,如此往复五次以上。我还没有尝试过 Gemini 2.5 pro 或 GPT 来写。登录后复制凌晨三点,T 市西郊分局的走廊映着惨白的荧光,袭来一种不真实感。刑警队长王泽宇脚步急促,径直走向拘留室区域,值班台的警员小李正在踱步抵抗困意。“王队,您亲自来了,要提审谁?” 小李看到王队后一个激灵。话音未落,警员老张默默地拉开通道的铁门。
2025-05-16 22:18:20
899
原创 Midi文件的解析和播放
(如果采用了32bit编译,需要将java定义的native方法中句柄类型从long改成int,并使用32bit JDK运行),链接时要加入#pragma comment(lib, "winmm.lib")库,编译后生成midi.dll文件,调用解析播放程序:parse("C:\\Users\\cc\\OneDrive\\src\\resource\\Pachelbel Johann — Canon in D.mid");编写java测试程序,调用如果能正常运行,可从音箱听到钢琴声音。
2025-05-16 21:38:15
984
原创 详细介绍list的模拟实现及特点
在数据结构中,有一种链表结构是带哨兵位的头节点,其每一个节点都有一个指向上一个节点的指针以及指向下一个节点的指针,从而形成一种环状结构。STL中list就采用了带头双向循环链表的结构,弥补了(vector)连续空间的结构不适于对中间数据频繁插入删除的缺点。
2025-05-16 19:58:34
666
原创 基于Java的不固定长度字符集在指定宽度和自适应模型下图片绘制生成实战
在当今数字化与信息化飞速发展的时代,图像的生成与处理技术正日益成为众多领域关注的焦点。从创意设计到数据可视化,从游戏开发到人工智能辅助创作,高效、精准且具有高度适应性的图像生成方案有着广泛而迫切的需求。Java 作为一种强大、稳定且广泛应用的编程语言,在图像绘制领域也发挥着不可忽视的作用。在GIS领域,比如图例的生成就会面对以上的问题。由于在进行字符标注时无法预测文本的长度,因此我们需要能有一种自适应文本长度的生成方法,但是同时,也有可能我们需要指定一种宽度从而对字符文本进行绘制的需要。
2025-05-16 14:20:22
1004
原创 使用Geotools实现将Shp矢量文件加载SLD并合并图例生成-以湖南省周边城市为例
在当今数字化时代,地理信息系统(GIS)技术已成为城市管理、资源规划、环境监测等众多领域不可或缺的工具。GIS 制图作为该技术体系中的核心环节之一,旨在将复杂的地理空间数据以直观、清晰且易于理解的地图形式呈现出来,为决策者提供有力的可视化支持。在 GIS 制图过程中,矢量数据的可视化呈现占据着举足轻重的地位。Shapefile(Shp)格式作为矢量数据的常用存储形式,以其良好的兼容性和通用性,在地理信息数据的交换与共享中得到了广泛应用。
2025-05-16 14:08:33
714
原创 Rust 集合:编程中的得力助手
登录后复制where1.2.3.4.5.6.7.登录后复制where1.2.3.4.5.6.7.8.很多Vec 的方法在VecDeque 中都有实现:.len(), .is_empty(), .insert(index, value), .remove(index), .extend(iterable),等等登录后复制where1.2.3.4.5.6.登录后复制where1.2.3.4.5.6.
2025-05-16 12:09:48
1003
原创 精通Java系列|Java反射机制
由于JVM为每个加载的类class创建了对应的Class类对象,并在实例中保存了该类class的所有信息,包括类名、包名、父类、实现的接口、所有方法、字段等,因此,如果获取了某个Class类对象,我们就可以通过这个Class类对象获取到其对应的类class的所有信息。在堆内存中最多只会存在某个类的唯一的Class对象,因为类只会加载一次,每个类的实例对象都会知道自己对应的Class对象,通过Class类对象可以完整地得到其对应的类的信息,通过一系列反射 API。方法创建了一个接口对象。
2025-05-16 12:08:57
661
原创 记一次 .NET某旅行社酒店管理系统 卡死分析
这次卡死的生产事故,是大量数据库的慢请求导致SDK侧的数据库连接池(100)耗尽所致,如果有数据库侧的监控工具,我想一眼就能找到答案。
2025-05-16 11:53:06
595
原创 【redis】哨兵模式
(主节点宕机需手动提升从节点);(无法自动检测节点异常);(网络分区可能导致双主数据冲突)。这些缺陷使得系统可用性难以保障,尤其在分布式场景下隐患显著。为此引入哨兵模式将故障恢复时间从人工介入的分钟级压缩至秒级,构建了完整的高可用体系。
2025-05-16 11:53:01
860
原创 【redis】主从复制
Redis的单机模式仅部署单个实例,一旦节点宕机或网络故障,所有依赖Redis的服务将不可用,这就是所谓的单点故障问题。单节点需承担全部读写请求,并发量高时可能成为性能瓶颈。单节点受限于物理内存容量,无法突破内存物理上限存储海量数据。所有请求都怼到一个实例,磁盘IO、网络IO、带宽、CPU等资源都会成为瓶颈。注意:读写分离并不是Redis自带,需要客户端手动实现。
2025-05-16 11:52:52
897
原创 (JS实现预览DWG文件)WEB CAD的圆孔标记功能
圆孔标记是一种常用的工程图纸标注方式,用于标识圆形孔的位置和特征。本文档将详细介绍如何通过自定义实体来实现圆孔标记功能。具体功能源码可下载MxDraw云图开发包。登录后复制// 圆孔圆心// 圆孔半径// 标记圆上的点集合// 标记中心点集合// 标记圆弧中心点// 标记基点// 包围盒点1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
2025-05-16 11:47:26
569
原创 MySQL的 where 1=1会不会影响性能?看完官方文档就悟了!
where 1=1和<where> 标签到底会不会影响性能,这个问题在网上已经出现了很多次,今天还是想从官方文档来进行说明。如果 MySQL Server版本大于等于 5.7,两个随便选,或者根据团队的要求来选;如果 MySQL Server版本小于 5.7,假如使用的是 MyBatis,建议使用<where> 标签,如果使用的还是比较老的 iBATIS,只能使用where 1=1;最后,遇到问题,建议首先查找官方的一手资料,这样才能帮助自己在一条正确的技术道路上成长!
2025-05-16 11:25:31
685
原创 在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
在 AMD 硬件上构建 LLM 推理环境目前仍面临一定技术挑战,尚未达到 NVIDIA CUDA 生态系统的即插即用水平。本文所述的工具链和配置方法,完全可以将现有的 AMD 游戏显卡转化为高效的 AI 推理设备。这种方案不仅在经济性上更具优势,还有助于推动 AI 硬件生态系统的多元化发展。随着 AMD 持续完善 ROCm 平台,以及开源社区对非 NVIDIA 硬件的支持不断增强,基于 AMD GPU 的本地 LLM 部署方案将获得更广泛的应用。
2025-05-16 10:41:20
629
原创 旋转死锁:Threejs 四元数魔法对抗欧拉角困局
在欧拉角的表示里,通常是当绕其中一个轴旋转 ±90 度时,另外两个轴会重合,从而出现万向节死锁。这时候,不管是绕 X 轴旋转还是绕 Z 轴旋转,产生的效果是一样的,这就意味着失去了一个自由度,这种现象就是万向节死锁。四元数是一种表示三维空间中旋转的方法,它由四个部分组成,分别是 w、x、y、z。创建一个欧拉角对象,其中 x、y、z 分别表示绕 x 轴、y 轴和 z 轴的旋转角度,order 表示旋转顺序。绕着哪个轴旋转,哪个轴的分量就为 1,其他轴的分量就为 0。是一个四元数对象,表示物体的旋转。
2025-05-16 10:28:18
949
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人