- 博客(468)
- 收藏
- 关注
原创 在Java中基于Geotools对PostGIS数据库的空间查询实践
在当今数字化浪潮下,空间数据的应用价值日益凸显,从城市规划到环境监测,从物流配送到地理信息系统(GIS)开发,精准、高效的空间数据查询成为关键环节。而 Java 作为广泛应用的编程语言,在与地理空间技术的融合中展现出独特魅力。Geotools 作为开源的 Java GIS 库,为 Java 开发者提供了强大的地理空间数据处理能力,犹如一把开启空间数据宝藏之门的钥匙。PostGIS 则是 PostgreSQL 数据库的空间扩展,能够存储和处理复杂的空间数据类型,是空间数据存储与管理的得力助手。
2025-05-22 17:29:58
424
原创 神州趣味地名-基于天地图和LeafLet的趣味地名探索
在华夏大地广袤的土地上,地名承载着深厚的历史文化底蕴,它们如同一颗颗璀璨的明珠,散落在祖国的各个角落,诉说着独特的地域故事与人文传说。这些地名有的因古老的传说而神秘奇幻,有的因独特的地理风貌而形象生动,有的则因历史事件而意义非凡,它们构成了神州大地丰富多彩的 “趣名” 地图。随着地理信息技术的飞速发展,天地图作为国家地理信息公共服务平台,为我们提供了海量精准的地理数据和强大的地图服务功能。
2025-05-22 17:29:56
251
原创 MCP-Playwright:AI自动化神器,一款超级好用的自动化测试框架!
作为开源的 AI 网页自动化工具,可以让 Claude、GPT-4o 等 LLM 具备真实网页交互能力,实现 浏览器操作、数据抓取、JavaScript 执行、网页截图 等功能。适用于自动化测试、信息抓取、SEO 竞品分析、AI 智能代理等任务。如果你希望让 AI 更智能地处理网页任务,不妨试试 Playwright MCP Server。
2025-05-22 17:29:35
261
原创 vivo 官网 APP 首页端智能业务实践
vivo官网APP首页是流量最大的页面,承载着新品、活动、商品、其他入口等流量分发的重任。在流量分发上,云端针对首页的主要场景建设了算法支撑。通过梳理首页的场景发现,智能硬件楼层场景的商品配置还是运营纯手工动态配置,而非算法推荐。为此,我们探索了端智能技术,将其运用在智能硬件楼层场景,用于提升商品分发效率,进而提升智能硬件楼层场景的点击率。端智能广义上来说,是指将人工智能算法部署到端侧设备中,使端侧设备具备感知、理解和推理能力;
2025-05-22 11:20:30
690
原创 HarmonyOS实战:高德地图自定义定位图标展示
鸿蒙对于位置权限要求十分严格,必须同时满足两个权限申请,同时也要注意 GPS 的位置开关是否正常打开。另外特别注意的是经纬度是否是 float 类型,否则会导致位置跑偏。学会的小伙伴赶紧动手试试吧!
2025-05-22 10:35:01
342
原创 CDH6.3.2 升级 Spark3.3.0 版本
看网上的资料,有人说 Spark3 的 SQL 运行性能比 Spark2 可提升 20%,本人未验证,但是 Spark3 的 AE 功能的确很香,能自适应解决 Spark SQL 的数据倾斜。修改 spark3 的 pom 配置 /opt/spark-3.3.0/pom.xml,增加 cloudera maven 仓库。用的是 spark 的 make-distribution.sh 脚本进行编译,这个脚本其实也是用 maven 编译的,配置 spark3-submit 快捷方式。重置 scala 版本。
2025-05-22 09:51:44
633
原创 鸿蒙HarmonyOS NEXT开发:仿抖音首页沉浸式页面效果,利用Navigation组件实现弹出评论弹窗
组件导航(Navigation)主要用于实现页面间以及组件内部的页面跳转,支持在不同组件间传递跳转参数,提供灵活的跳转栈操作,从而更便捷地实现对不同页面的访问和复用。由于避让区本身是有内容展示,如状态栏中的电量、时间等系统信息,或是手势交互,如导航条点击或上滑,在实现应用页面沉浸式效果后,往往会和避让区域产生UI元素的遮挡、视觉上的违和或交互上的冲突等问题,开发者可以针对不同场景选择以下方式对避让区和应用页面进行适配。开发者可以在派生类中新增属性方法,也可以重写基类NavPathStack的方法。
2025-05-22 09:49:23
448
原创 Kettle对接Hadoop:轻松实现大数据ETL集成
理解了Kettle和Hadoop的基本概念以及它们集成的意义。配置了Kettle环境,使其能够识别和连接到外部的Hadoop集群,核心在于正确放置Hadoop配置文件并调整Kettle的相关属性。修改了Kettle的启动脚本,以确保操作Hadoop时具有正确的用户权限。创建并运行了一个Kettle作业,通过“Hadoop Copy Files”组件成功将本地文件上传到了HDFS,验证了集成的有效性。这次集成主要涉及的是Kettle与Hadoop的HDFS部分。
2025-05-21 23:26:02
631
原创 spring状态机介绍及spring-statemachine代码示例
先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 closed。状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。例如,根据自动门的运行规则,我们可以抽象出下面这么一个图。
2025-05-21 22:31:58
513
原创 ubuntu中解决matplotlib无法显示中文问题
ps: SimHei 即是中文黑体,我这里面已经安装了,如果没有安装见步骤(二)删除matplotlib配置文件,将下面路径下的.json文件删除。然后再执行一下上面查看支持字体的代码,看看字体是否添加成功。simhei.tff文件可以在Windows中获取,路径如下。将上面拷贝的simhei.tff文件放到下面文件夹中。查看matplotlib配置文件路径。运行下列代码即可查看支持的字体。测试以下中文能否显示。
2025-05-21 22:29:44
115
原创 【JavaEE】Spring Boot 日志
一、日志概述⽇志主要是为了发现问题, 分析问题, 定位问题的, 但除此之外, ⽇志还有很多⽤途,像监控程序,当程序出现什么问题时,在日志中反应为相对应的日志,然后可以提醒程序猿。日志还可以记录数据,用于分析等等。
2025-05-21 21:39:20
646
原创 ❤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
680
原创 一文读懂 Amazon DynamoDB 数据备份、复制与恢复
使用 DynamoDB Streams 和 Lambda实现自定义冲突解决策略支持选择性数据复制可以与其他服务集成DynamoDB 提供了多种备份、复制和恢复选项,可以满足从简单应用到企业级工作负载的各种需求。通过了解每种方法的优缺点,您可以设计一个满足您特定业务需求的数据保护策略。关键是要定期评估您的备份和恢复策略,确保它们随着应用程序的发展而扩展,并定期测试恢复流程以确保在需要时能够正常工作。
2025-05-21 10:29:17
515
原创 如何在面试中自信回答Spring3事件机制?看这一篇就够了!
在Spring框架中,事件机制是一个发布-订阅模型。发布特定事件。订阅感兴趣的事件,一旦有消息发布,就会自动触发监听器处理逻辑。事件类,承载特定信息。负责将事件广播给相应的监听器。当事件发布者发布事件后,事件广播器将其转发给所有监听器,从而实现不同组件之间的消息传递。“如果要自定义事件,该怎么做呢?”面试官话锋一转,继续提问。“自定义事件其实不难,主要分为三步:定义事件、创建监听器、发布事件。1. 自定义事件类2. 自定义事件监听器3. 事件发布者4. 触发事件。
2025-05-21 09:38:00
574
原创 鸿蒙HarmonyOS NEXT开发:基于Swiper组件和自定义指示器实现多图片进度条轮播功能
在短视频平台上,经常可以见到多图片合集。它的特点是:由多张图片组成一个合集,图片可以自动进行轮播,也可以手动去进行图片切换。自动轮播时,图片下方的进度条缓慢加载至完成状态;手动切换时,图片下方的进度条瞬间切换至已完成状态或未完成状态。由于原生Swiper组件自带的导航点指示器目前只支持数字和圆点的样式,不支持对应的特殊样式,因此需要通过自定义指示器(即进度条)来模拟底部的导航条效果。常见的图文作品,可以自动循环播放和手动切换播放合集中的图片。
2025-05-21 09:04:37
793
原创 大型前端应用如何做系统融合?
A平台与B平台同属于同一系统链路上,前者主要致力于为用户提供注册入驻服务,后者则专注于提供具体业务操作服务。两者皆为运营人员所依赖的在线管理工具。在经历了为期两个月的紧张工作后,我们成功地将两个大型项目进行了深度整合,取得了显著的阶段性成果。通过这一融合过程,我们不仅统一了项目的代码规范和架构,还显著提升了组件的复用率。尽管在这个过程中我们遇到了诸多挑战和曲折,但最终的成果——用户体验的显著提升——使一切努力都显得弥足珍贵。我们深知,每一个成功的项目背后都有无数次的尝试和优化。
2025-05-20 14:45:57
691
原创 HarmonyOS实战:3秒实现一个自定义轮播图
轮播图作为应用程序中最普通使用的控件被广泛应用,相信对于来发者来说并不陌生。在 Android 中实现一个 轮播图很多选择使用第三方的插件,毕竟在有限的开发排期中自己动手去实现一个轮播图 并不那么简单,需要考虑的细节很多。支持自定义循环播放,自动播放。支持自定义播放时间间隔。支持横向和竖向轮播。支持自定义指示器。在鸿蒙实际开发中,实现一个轮播图是十分方便的,但是这并不是意味着所有功能都简单,还有一些看似简单的效果实现起来却是十分的复杂。学会的小伙伴赶紧动手试试吧!
2025-05-20 14:43:47
426
原创 探索自定义地图样式,打造应用专属个性化地图
不同应用的开发者对地图样式的展示需求差异很大。例如,物流类应用希望地图样式简洁一些,重点突出城市分布和快递路径;AR游戏类应用中的地图色彩需要和游戏UI适配,做的更酷炫一些;景区导览应用中的地图样式要景区特色相结合,重点呈现关键景点。这就要求地图样式为开发者提供多种地图样式供选择,包括简洁风格、酷炫风格、特色风格等,让开发者可以根据自己的需求自定义地图样式,包括颜色、标注、线条等元素,以实现更加个性化的展示效果,以满足不同应用的需求。(Map Kit)提供了。
2025-05-20 14:21:54
493
原创 【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
655
原创 HarmonyOS:使用PickerController将编辑后的图片替换原图
应用可获得用户从Picker选择的图片、视频的访问权限,读取图片、视频后进行编辑、修改。完成编辑修改后的图片/视频缓存到应用沙箱后,可调用本API,将编辑结果文件发送给PhotoPicker,并指定替换显示的原图。应用指定保存的文件,需在替换显示的范围内。新uri,即替换后的uri。基于originalUri修改后期望在photoPicker上替换originalUri显示的,暂存在应用沙箱的图片/视频uri。应用可通过该接口,将photoPicker中用户勾选的图片替换为应用后期编辑修改后的图片。
2025-05-20 09:19:19
991
原创 鸿蒙HarmonyOS NEXT开发:安全区域、沉浸式页面开发实践,软键盘布局适配解决方案
在软键盘系统避让机制中介绍过,弹窗为避让软键盘会进行避让,整体向上抬,这样可能会影响用户体验。比如下面这个评论里列表的弹窗,使用@CustomDialog实现的。当用户点击弹窗底部的输入框的时候,弹窗会整体上抬,输入框上抬的距离也过多。为了解决以上问题,可以使用Navigation.Dialog,通过设置NavDestination的mode为NavDestinationMode.DIALOG弹窗类型,此时整个NavDestination默认透明显示,示例代码如下:登录后复制@Entry。
2025-05-20 09:19:18
653
原创 HarmonyOS:应用及文件系统空间统计
在系统中,可能出现系统空间不够或者cacheDir等目录受系统配额限制等情况,需要应用开发者关注系统剩余空间,同时控制应用自身占用的空间大小。
2025-05-20 09:14:29
466
原创 Seata源码—7.Seata TCC模式的事务处理
大纲1.Seata TCC分布式事务案例配置2.Seata TCC案例服务提供者启动分析3.@TwoPhaseBusinessAction注解扫描源码4.Seata TCC案例分布式事务入口分析5.TCC核心注解扫描与代理创建入口源码6.TCC动态代理拦截器TccActionInterceptor7.Action拦截处理器ActionInterceptorHandler8.Seata TCC分布式事务的注册提交回滚处理源码1.Seata TCC分布式事务案例配置(1)位于seata-samples的tcc模
2025-05-20 08:55:34
926
原创 Electron Forge【实战】带图片的 AI 聊天
图片很占空间,转为字符串直接存入数据库压力过大,合理的方案是存到应用本地。渲染进程中,无法直接读取本地图片,需借助 protocol 实现。需借助 webUtils 从 File 对象中获取文件路径。函数封装 – 将消息转换为 AI 模型需要的格式。将消息转换为 AI 模型需要的格式后传给 AI。仅支持文字,要想体验图片聊天,需改用。在 createWindow 方法内执行。继续向 AI 提问时图片参数。img 的 src 添加了。发起 AI 聊天传图片参数。用于便捷获取图片的类型。
2025-05-20 07:04:30
871
原创 【node】中间件分类
定义中间件监听req的data事件监听req的end事件使用querystring模块解析请求体数据将解析出来的数据对象挂载req.body将自定义中间件封装为模块data事件来获取客户端发送到服务器的数据。数据量比较大的话,客户端会把数据切割分批发送到服务器端,data事件会触发多次 每次都获取到完整数据的一部分。end事件当请求体数据接收完毕之后,会自动触发req的end事件。因此可在end事件中,拿到并处理完整的请求体数据。登录后复制// 自定义的中间件str+=chunk。
2025-05-19 22:35:08
626
原创 【JavaEE】Mybatis XML配置文件实现增删改查
一、环境准备在使用XML来实现的数据库操作的时候,我们的依赖下载与前面的使用注解时的依赖是一样的。在配置文件yml格式,也需要添加上跟使用注解时的配置。还要多加上。
2025-05-19 22:14:14
826
原创 【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
912
原创 【SLAM】ubuntu 18.04 下 OpenCV 3.2.0 的 opencv_example 运行闪退
ubuntu 18.04 下 OpenCV 3.2.0 的 opencv_example 运行闪退问题探究。
2025-05-19 14:59:29
578
原创 【MCP】了解远程MCP调用背后使用的SSE协议
和MCP的远程服务是通过SSE(Server-Sent Events)启动的,SSE是一个基于HTTP的长连接协议。SSE在逻辑上是一个由客户端发起、由服务器同意而建立的从服务器向客户端发消息的单向管道。这个管道建立之后,客户端给服务器发消息时用传统方式发,服务器给客户端发消息时用这个管道发,双方就可以灵活地进行通信了。MCP SSE客户端会发起多个请求,第一个请求是/sse路径,这是建立SSE长连接的第一步。
2025-05-19 14:59:11
749
原创 【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
797
原创 Chroma向量检索实战:打造智能客服的“最强大脑”
向量库(Vector Database)是一种专门设计用来存储和检索向量数据的数据库系统。在这个文件中使用的ChromaDB就是一种向量数据库。向量嵌入(Embeddings) :将文本、图像等非结构化数据转换为高维数字向量相似性搜索 :基于向量间的距离(如余弦相似度)快速查找相似内容高效索引 :使用特殊的索引结构(如HNSW)加速相似性搜索。
2025-05-19 14:50:56
449
原创 Harbor2.0仓库镜像清理策略
在策略页面,点击“编辑”按钮,配置策略的执行时间。-配置并执行镜像清理策略后,镜像的元数据会被删除,但实际的存储空间不会立即释放。为彻底释放空间,需要执行垃圾回收操作。目前 公司的Harbor存储已经占用1T,好多的repo的镜像tag达到上百多,没有清理十分占用空间。:多个策略可能存在冲突,Harbor 按照策略的创建顺序依次执行,建议合理规划策略的优先级。在策略页面,点击“立即执行”按钮,可以手动触发策略,立即清理符合条件的镜像。:在生产环境应用策略前,建议在测试环境验证策略的效果,避免误删重要镜像。
2025-05-19 14:49:20
998
原创 Python 从列表中删除值的多种实用方法详解
Python提供了丰富的列表元素删除方法,核心原则是根据操作目的(按值/索引删除、是否保留原数据、性能需求等)选择合适的工具。在实际开发中,需注意循环删除时的索引问题,并优先使用内置方法提升代码可读性和效率。通过灵活组合这些方法,可以高效处理各种列表操作场景。
2025-05-18 17:46:26
970
原创 探索动态内存
在结构体中,最后一个成员是数组,且数组没有指定大小,这个数组就是柔性数组登录后复制struct S1char c;int n;int arr[];//柔性数组struct S2char c;int n;int arr[0];//柔性数组1.2.3.4.5.6.7.8.9.10.11.12.13.s1和s2写法不一样,但这都是柔性数组,有的编译器支持s1有的支持s2。
2025-05-18 17:17:37
622
原创 Java 设计原则
一个类应该只有一个引起它变化的原因。对扩展开放,对修改关闭。即:系统应该通过“扩展”功能而不是“修改”原有代码来应对新需求。子类对象可以替换父类对象,程序逻辑不应被破坏。客户端不应该被迫依赖它不使用的方法。高层模块不应该依赖低层模块,二者都应该依赖抽象。原则含义简记SRP一个类一个职责OCP想变就扩展,不改旧代码LSP子类能替父类ISP接口要小巧DIP依赖接口不依赖实现。
2025-05-18 16:58:18
815
原创 python数据分析:Pandas缺失值处理(Missing Data)完全指南
在数据分析中,缺失值是指数据集中某些观测值或变量缺少数据值的情况。NaN(Not a Number): 用于浮点数据类型NA(Not Available): 用于其他数据类型登录后复制# 创建包含缺失值的DataFrame})print(df)1.2.3.4.5.6.7.8.9.10.11.登录后复制A B C1.2.3.4.5.解释我们创建了一个包含三列的DataFrame列A和B是数值型,使用np.nan表示缺失值。
2025-05-18 16:51:09
690
原创 提升Spring Boot应用性能:掌握异步处理与任务调度
在构建现代Web应用程序时,提高系统的响应速度和吞吐量是至关重要的。除了优化数据库查询、使用缓存等手段外,合理利用异步处理和任务调度也是提升系统性能的有效途径之一。Spring Boot 提供了强大的支持来简化这些操作,本文将详细介绍如何在 Spring Boot 应用中实现异步方法调用以及定时任务调度。登录后复制@Component1.2.3.4.5.6.7.8.9.10.这里fixedRate表示每隔60秒执行一次任务。你还可以使用其他属性如cron。
2025-05-18 15:26:59
507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人