自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mapbox Logo 的终极方案

摘要 在 Android Compose 中使用 Mapbox 地图 SDK 时,传统命令式方法隐藏 Logo 会导致空指针异常。本文提出声明式解决方案:直接在 MapboxMap 可组合项中配置空参数 logo = {} 和 attribution = {}。这种方法避免了运行时插件访问,完全符合 Compose 的声明式理念,具有更高稳定性、可读性和兼容性。与旧方案相比,新方案将配置集中在地图构建时而非运行时,是 Mapbox 在 Compose 环境中的最佳实践。

2025-12-25 10:30:52 787

原创 把 Rust 的 `target` 目录搬到外挂盘——正确姿势与避坑指南

摘要: Rust项目的target/目录占用大量SSD空间,可通过配置target-dir将其迁移到外挂盘。正确方法是在.cargo/config.toml中添加[build] target-dir = "绝对路径",并执行cargo clean验证。支持全局、工作区或单项目级配置,注意路径权限和绝对路径。临时可用环境变量CARGO_TARGET_DIR。迁移后系统盘空间释放,外挂盘承担存储,编译效率不变。关键点:字段名正确、路径绝对、权限可写。

2025-12-17 14:55:56 425

原创 使用 View Transition API 打造丝滑的主题切换体验

本文介绍了如何利用View Transition API为网站主题切换功能添加流畅的动画效果。通过CSS变量管理主题样式,结合点击位置触发圆形扩散动画,实现了视觉连续性强的主题切换体验。文章详细讲解了HTML结构、CSS样式和JavaScript实现逻辑,重点展示了View Transition API的核心用法,包括动画触发、半径计算和降级策略。这种方案不仅提升了用户体验,还保持了在不支持新特性浏览器中的功能可用性。

2025-12-17 14:53:58 439

原创 自动化部署工具:Sunrise Deploy 的技术实现与应用场景分析

Sunrise Deploy是一款自动化部署工具,通过标准化流程解决传统手动部署的痛点。其技术架构包含配置管理、流程执行引擎、文件传输和远程命令执行等核心模块,支持分层配置系统,允许全局默认配置与项目特定配置相结合。工具提供变量替换机制,支持前端项目(React/Vue)、全栈应用和微服务等多种部署场景,通过脚本化执行构建、压缩、上传、解压等步骤实现高效部署。安装简便,配置灵活,可显著提升部署效率和可靠性。

2025-12-09 08:45:41 1028

原创 Rust 并行压缩如何改变我的工作流程

摘要:本文分享了Rust并行压缩工具Sunrise Zip如何彻底改变作者的工作流程。通过三个真实场景展示其卓越性能:63.5万文件(45GB)仅7分钟完成压缩;中小项目压缩不到1秒;资源敏感环境下仍保持高效。技术亮点包括多线程并行架构、智能压缩策略和内存映射技术。实际影响包括促进日常备份、优化部署流程和解放系统资源。这款专注于高效压缩的工具通过深入优化核心功能,显著提升了工作效率。

2025-12-09 08:45:07 656

原创 frp 最简单使用文档

frp是一款内网穿透工具,通过公网服务器将内网服务暴露到外网。使用步骤:1)下载对应版本;2)服务端配置frps.ini设置监听端口;3)客户端配置frpc.ini指定服务器IP和端口映射规则;4)分别启动服务端和客户端程序。典型应用包括暴露SSH(6001端口)和HTTP服务(6000端口)。使用时需注意安全风险和防火墙设置,可通过nohup实现后台运行。核心原理是客户端将本地端口映射到服务端指定端口,实现外网访问内网资源。

2025-12-04 14:28:30 174

原创 iftop的使用

iftop是一款实时监控网络流量的命令行工具,类似top命令,可直观显示每个连接的带宽使用情况。它提供动态流量视图、按流量排序功能,并通过条形图等可视化方式展示数据。安装简单(Ubuntu/Debian用apt-get,CentOS/RHEL用yum),基本用法为sudo iftop。界面分为三部分:顶部刻度尺、中部连接列表(核心监控区)和底部统计信息。常用选项包括-i指定网卡、-n禁用DNS解析、-P显示端口等。运行时可通过快捷键(如h查看帮助、P暂停刷新)交互操作。典型应用场景包括排查带宽异常问题,结合

2025-12-04 14:27:24 520

原创 Cesium 中computeViewRectangle的使用场景

本文介绍了Cesium中computeViewRectangle接口的使用场景和方法。该接口可获取相机视域在地表的外包矩形(WGS84弧度坐标),用于快速判断实体是否在可见区域。文章提供了7行核心代码实现该功能,并详细解析了API行为细节,包括空值处理、高度维度比较等注意事项。该方法适用于数字孪生、CIM等需要处理大量实体渲染的场景,通过视域剔除优化性能,避免无效渲染。最后强调在3D大屏场景中"看得见才渲染"的重要性。

2025-12-02 15:00:00 253

原创 为Tauri应用添加启动画面:实现方案

本文详细介绍了为Tauri应用添加启动画面的实现方案。通过多窗口协作的方式,先显示启动窗口完成初始化任务,再切换到主窗口。文章从配置文件设置、启动窗口设计、初始化任务模拟到窗口切换控制,分四个步骤详细说明了实现过程,并强调了避免阻塞线程的技术要点。最终实现的效果是:启动窗口先显示,任务完成后自动关闭并展示主窗口,为用户提供流畅的启动体验。

2025-12-02 14:30:00 913

原创 tauri打包报错

Tauri打包时出现权限不足错误,常见原因是系统权限限制。错误表现为打包过程中无法执行某些操作(如图片所示)。建议检查相关目录权限或使用管理员权限运行打包命令。该问题通常可通过调整权限设置解决。

2025-10-10 15:21:22 265

原创 nuxt2 发布到线上

本文详细介绍了基于Node.js和Nuxt.js项目的完整部署流程。首先确认环境配置(Node.js 16.15.0/Yarn 1.22.19/PM2 5.2.2),然后逐步执行构建命令生成.nuxt和dist文件夹,将关键项目文件上传至服务器。在服务器端安装依赖后,使用PM2管理服务进程,并配置Nginx反向代理(示例配置包含监听80端口、域名绑定和请求转发设置)。部署完成后,项目可通过服务器访问,其中login页面使用固定数据,cardsearch通过接口获取动态数据。整个过程包含清晰的命令行操作和服务

2025-10-10 15:19:29 387

原创 a-table 全选问题

本文介绍了如何使用Vue.js的rowSelection属性实现表格行单选和全选功能。通过设置rowSelection对象中的onSelect、onSelectAll方法和selectedRowKeys属性,可以控制行的选择状态。同时指出,在取消选择时需要先清除原有数据再进行重新渲染,以确保选择状态的正确更新。文中配有代码示例截图,直观展示了实现方式。

2025-10-10 15:11:01 228

原创 高效实现实体删除的宏解决方案:使用Rust宏优化删除操作

本文介绍了使用Rust过程宏优化Web开发中实体删除操作的方法。传统手动实现存在代码重复、维护困难等问题,而通过crud_entity宏可一键生成包含路由、权限验证和错误处理的完整删除功能。宏支持多种ID类型,自动生成查找逻辑和数据库操作,同时集成统一的错误处理和权限系统。该方案显著提升开发效率,确保代码一致性,为Web应用提供标准化、类型安全的删除操作实现。

2025-09-29 17:01:43 645 4

原创 简化路由权限绑定的过程宏设计

本文介绍了一种使用Rust过程宏简化Web路由权限绑定的方法。传统方式需要在每个处理器中重复权限检查代码,而通过设计的route_permission属性宏,开发者可以声明式地指定路由路径、方法和所需权限,无需手动编写权限检查逻辑。该方案包含参数解析结构、宏实现、全局路由注册表以及权限中间件等核心组件,实现了路由信息的自动收集和权限检查的集中处理,显著减少了样板代码,提高了开发效率和代码可维护性。

2025-09-29 13:11:55 351

原创 使用宏实现高效的分页查询功能

本文介绍了使用Rust过程宏实现高效分页查询的解决方案。核心是通过宏自动生成统一的分页接口,包括分页参数处理、数据库查询和错误处理逻辑。该方法支持基本分页、排序和过滤功能,同时考虑性能优化和错误处理,适用于处理大量数据的Web应用场景。相比手动实现,宏驱动的方式显著提高了开发效率,并保证了代码一致性和可维护性,特别适合需要频繁进行分页查询的管理后台和移动应用。

2025-09-29 13:10:48 723

原创 高效实现单个实体查询的宏解决方案

本文介绍了一种使用Rust过程宏自动生成单个实体查询逻辑的解决方案。通过定义crud_entity宏,支持整数、UUID和自定义ID类型,自动生成包含统一错误处理、权限验证和类型安全检查的查询代码。相比传统手动实现方式,该方案显著减少重复代码,提高开发效率,同时保持编译时优化和零成本抽象优势。生成的API支持RESTful风格调用,为前后端分离架构提供了高效、一致的数据访问接口。

2025-09-29 13:08:11 318

原创 使用过程宏实现自动化新增功能

本文介绍了使用Rust过程宏自动化后端CRUD新增操作的方法。传统手动编写新增功能代码存在重复性高、易出错等问题。通过实现crud_entity!宏,开发者只需定义请求DTO和类型转换,宏即可自动生成包括数据库操作、错误处理等完整代码。这种方法提升了开发效率,确保代码一致性,并内置了权限验证、日志记录等通用功能,特别适合需要大量CRUD操作的中大型项目。

2025-09-29 13:06:54 325

原创 Utoipa 中的查询参数处理:避免将 Query 参数误设为 Path 参数

本文介绍了在使用Utoipa为Rust Web应用生成OpenAPI文档时正确处理查询参数的关键方法。通过分析分页查询实例,文章重点讲解了如何通过#[into_params(style = Form, parameter_in = Query)]属性宏正确配置查询参数,避免被误识别为路径参数。文章还对比了正确与错误配置方式,提供了混合参数处理示例,并总结了明确指定参数位置、保持路径简洁、提供完整元数据等最佳实践,帮助开发者生成准确的OpenAPI文档。

2025-09-25 10:00:00 301

原创 Rust 中的日期时间序列化:将 UTC 转换为北京时间

Rust后端开发中处理时区转换的实用技巧:通过SeaORM模型和自定义序列化函数,将UTC时间转换为北京时间并格式化输出。文章分析了核心代码结构,包括时区转换函数和自定义序列化实现,重点讲解了Serde自定义序列化、OpenAPI集成和时区处理等关键技术。这种方案既能保证数据库存储一致性,又能提供符合用户习惯的本地时间显示,适用于中文用户界面、国际化应用和日志审计等场景,展示了Rust在类型安全和灵活性方面的优势。

2025-09-25 09:00:00 333

原创 用 Rust + Actix-Web 打造“Hello, WebSocket!”——从握手到回声,只需 50 行代码

本文介绍如何使用Rust和Actix-Web框架快速构建WebSocket服务。通过50行核心代码实现握手协议升级和消息回声功能,利用Actix-Web框架的特性实现微秒级延迟和单机10万并发。文章详细解析了代码逻辑,包括协议升级、消息聚合和异步处理等关键步骤,并提供了前端连接示例。还分享了性能优化技巧,如零拷贝、背压保护等。最后给出了扩展方向的建议,如实现聊天室、强类型消息等。该项目已开源,开发者可快速部署体验Rust的高性能WebSocket服务。

2025-09-04 10:52:20 316

原创 vite-plugin-unused-images —— 为你的前端项目一键“减肥”!

这款Vite插件能自动检测项目中未引用的图片资源,一键清理冗余文件。支持零配置使用,提供彩色终端报表和JSON报告,可精准识别"僵尸图片"。实际案例显示某电商项目成功缩减21MB体积,首屏加载提速18%。安装简单,30秒即可接入现有构建流程,特别适合长期迭代的中大型前端项目。开源免费,支持CI集成,是优化项目体积的利器。

2025-09-04 10:40:35 296

原创 使用 Actix-web 和 SSE 实现 Rust 后端实时事件推送

本文介绍了如何在Rust的Actix-web框架中实现Server-Sent Events(SSE)实时事件推送功能。通过使用Tokio的广播通道构建全局事件广播器(SseNotifier),创建SSE流端点将广播流转换为SSE兼容格式,并设置5秒心跳保持连接。文章详细展示了核心实现代码,包括事件广播器创建、SSE端点配置、主程序集成以及在业务逻辑中触发事件的方法。该方案采用广播模式实现一对多消息分发,支持JSON格式结构化数据,适用于需要实时通知的应用场景,相比WebSockets更简单且具有自动重连优势

2025-09-02 10:07:27 464 4

原创 完美整合:使用七牛云作为Typora的自动图床(Windows版)

本文介绍如何在Windows系统中配置七牛云作为Typora的自动图床。主要内容包括:1)获取并放置七牛云上传工具;2)创建包含七牛云账户信息的config.json配置文件;3)在Typora中设置自定义上传命令。完成后,用户只需在Typora中粘贴图片,系统会自动上传至七牛云并替换为云端URL。文章还提供了Windows特有问题的解决方案,如路径错误、安全软件拦截等。该配置可显著提升Markdown写作效率,让用户专注于内容创作。

2025-08-22 09:28:38 978

原创 在浏览器端使用 xml2js 遇到的报错及解决方法

在浏览器端使用xml2js库时,由于它依赖Node.js内置的events模块,会导致报错。本文介绍了如何通过安装兼容的events模块(npm install events)并重启项目来解决这个问题。这种方法可以让开发者在浏览器环境中顺利使用xml2js处理XML数据。

2025-08-16 16:52:21 515

原创 Mapbox比例尺与logo自定义指南

本文介绍了在Mapbox Android中调整比例尺和logo的方法。通过ScaleBar组件可自定义比例尺的文本大小(如10.sp)、宽度比例(0.05f)和位置(BottomStart)。隐藏logo只需在参数中传入空Box组件。示例代码展示了如何初始化MapboxMap并应用这些调整,包括设置初始视角(缩放12.3,杭州坐标)以及隐藏归属信息。这些方法能满足不同场景下的地图UI定制需求。

2025-07-11 16:28:28 408

原创 Android全屏布局规避技巧

本文介绍了如何在Android开发中规避全屏布局特性。通过配置theme.xml文件中的windowOptOutEdgeToEdgeEnforcement属性,开发者可以禁用Android 12引入的边缘到边缘显示功能。文章解释了全屏布局的定义、可能需规避的原因(兼容性、设计需求、用户体验),并提供了具体配置步骤和示例代码。这种方法在targetSDKVersion达到35时仍然有效,为开发者提供了更多界面设计灵活性,使其可以根据应用需求选择最适合的布局方式。

2025-07-07 14:22:33 1385

原创 Qt下载比较慢

Qt安装器4.0.1-1及以上版本支持通过--mirror参数指定镜像源加速安装,如中科大(https://mirrors.ustc.edu.cn/qtproject)或清华源。使用方法为在命令行运行安装器时添加该参数。建议使用最新版安装器以获得该功能。此方法能有效提升国内用户的下载速度,但需确保安装器文件完整。常见问题可参考官方文档解决。

2025-06-14 09:40:54 856

原创 Actix-web 中的权限中间件实现

本文介绍了如何在Actix-web框架中实现权限中间件。主要内容包括:定义中间件结构体Auth和AuthMiddleware;实现Transform和Service trait来处理请求;编写提取令牌的辅助函数;以及将中间件集成到Actix-web应用中。该中间件通过检查请求路径和验证令牌来实现权限控制,保护特定路由仅允许授权用户访问。通过.wrap(Auth)方法,开发者可以方便地将该权限中间件添加到应用中,实现灵活的权限管理机制。

2025-06-12 10:05:46 592

原创 在 Actix-web 中使用 Server-Sent Events (SSE) 实现实时通知

本文介绍了如何在Actix-web框架中实现Server-Sent Events(SSE)实时通信。服务器端通过SseNotifier结构体管理广播通道,创建SSE流处理器将消息转换为SSE格式事件流。更新用户信息时,服务器会向所有连接的客户端推送JSON格式通知。客户端使用EventSource API接收并显示实时消息。这种方案适用于需要服务器向客户端单向推送数据的场景,如实时通知、状态更新等,具有实现简单、兼容性好等优点。

2025-06-12 10:00:55 651 7

原创 在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务

为了实现通过不同子域名访问静态文件和后端服务,首先需要在域名注册商或 DNS 服务商处为子域名 blog.xxx.com 和 api.xxx.com 配置 A 记录,指向服务器 IP 地址。接着,在 Nginx 中进行配置:对于 blog.xxx.com,创建一个配置文件,监听 80 端口,并指定静态文件的存放路径;对于 api.xxx.com,同样创建配置文件,监听 80 端口,并通过 proxy_pass 将请求转发到本地后端服务端口,同时设置相关请求头。通过以上步骤,可以在同一服务器上通过不同子域名分

2025-05-08 22:32:59 933

原创 基于 Node.js 的 优快云 文章列表获取代码解析

这段代码的主要功能是向 优快云 的指定 API 发起 GET 请求,获取文章列表相关信息,包括文章的 ID、发布时间和标题等。在请求过程中,涉及到请求头部的处理、HMAC 签名的生成以及对 API 响应数据的解析和提取。

2025-05-08 17:58:46 944

原创 使用cesium设置第一视角

在 Cesium 中,借助结合合理的视角偏移设置,可以方便地实现第一视角跟随模型移动的效果。这一功能在众多地理空间可视化、模拟仿真等应用场景中都有着重要的价值,通过进一步的优化和扩展,还能够满足更加多样化和复杂的交互需求,为用户提供简单而强大的第一视角观察体验。随着对 Cesium 功能的深入挖掘和应用场景的不断拓展,相信会解锁更多基于第一视角的创新应用方式。

2025-04-27 18:40:27 1034

原创 Node.js 应用部署:镜像体积优化与安全的多阶段构建探索

在开发 Node.js 应用时,部署过程中的镜像体积优化和安全性保障是至关重要的环节。本文将通过两种不同的 Docker 部署方式,深入探讨如何实现高效的镜像体积优化和安全的部署环境。

2025-04-27 17:18:28 1065

原创 使用Nestjs, Bun 和 NCC 打造高效的 Node.js 应用构建流程

在现代 Node.js 应用开发中,构建和打包流程的效率对项目的迭代速度和部署效果有着重要影响。本文将介绍如何结合 Nestjs ,Bun 和 NCC 工具,构建出高效且优化的 Node.js 应用。

2025-04-27 17:17:32 850

原创 Rust项目GPG签名配置指南

【代码】Rust项目GPG签名配置指南。

2025-04-24 11:25:50 416

原创 Rust实现高性能目录扫描工具ll的技术解析

项目通过Rust的安全并发特性,实现了比传统ls工具快300%的目录扫描速度,适合处理大规模文件系统场景。

2025-04-24 10:18:19 1027

原创 `ConstantProperty` 的使用与应用

是 Cesium 中用于表示实体属性的类。它表示一个实体的属性(如方向、颜色等)是固定的,不会随时间变化。与动态属性(如 )不同, 适用于那些属性不会变化的实体。 通常用于以下场景:以下是一个使用 设置实体方向的示例:4. 与动态属性的对比 和动态属性(如 )的主要区别在于:

2025-04-08 18:02:12 246

原创 `ConstantPositionProperty` 的使用与应用

是 Cesium 中用于表示实体位置的属性类。它表示一个实体在三维空间中的位置是固定的,不会随时间变化。与动态位置属性(如 )不同, 适用于那些位置不会变化的实体。 通常用于以下场景:以下是一个使用 设置实体位置的示例:4. 与动态位置属性的对比 和动态位置属性(如 )的主要区别在于:通过使用 ,可以高效地表示固定位置的实体,避免不必要的性能开销。

2025-04-08 18:01:46 462

原创 如何使用 Bash 脚本自动化清理 Nacos 日志文件

通过上述 Bash 脚本,我们可以实现 Nacos 日志文件的自动化清理,确保系统磁盘空间的合理使用,同时保留必要的日志文件以备后续分析。该脚本简单易用,可以根据实际需求进行调整和扩展。对于需要管理大量日志文件的系统,这种自动化清理方法可以显著提高运维效率,降低系统维护的复杂性。

2025-03-29 11:21:50 1012

原创 Vue 3 自定义指令:实现自动滚动效果

指令的主要功能是监听页面大小的变化,并根据内容的宽度和容器的宽度自动为文本内容添加或移除滚动动画的 CSS 类。当内容宽度超出容器宽度时,它会为内容添加一个滚动动画类,使得文本能够在容器中自动滚动展示;而当内容宽度小于或等于容器宽度时,它则会移除滚动动画类,避免不必要的动画效果。通过本文的深入解析,我们了解了 Vue 3 自定义指令的实现原理、使用方法以及它的优势和应用场景。这个指令为我们提供了一种简单而有效的解决方案,用于在有限的空间内展示较长的文本内容,并且能够自动适应不同的屏幕尺寸。

2025-03-21 14:51:53 1249

空空如也

空空如也

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

TA关注的人

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