- 博客(121)
- 收藏
- 关注
原创 利用plyr和CommentCoreLibrary实现带弹幕功能的网页播放器
摘要 本文介绍了基于Vue3和Plyr库构建自定义视频播放器的实现方案。作者针对DPlayer组件存在的集成度高、维护性差等问题,提出使用Plyr的替代方案。文章详细讲解了播放器初始化、控件配置、i18n国际化支持、主题颜色自定义等关键实现细节,并提供了自动播放、键盘控制等功能的配置方法。同时强调了在语言切换时需要重新初始化播放器的注意事项,以及如何解决CDN资源加载问题。该方案提供了更灵活的自定义能力和更好的维护性。
2025-08-22 11:45:30
651
原创 如何防止马蜂反复在同一点筑巢
摘要 本文分享了自行摘除马蜂窝的经验方法:选择傍晚时分,用香熏45分钟使马蜂不活跃后,采用"豪火球之术"(杀虫剂+火焰)烧毁蜂窝,强调需注意防火安全。为防止马蜂再次筑巢,建议四种方法:1)用胶带覆盖墙面;2)悬挂风铃制造不稳定环境;3)粘贴反光条;4)定期喷洒薄荷油混合液。作者提醒这些方法需根据实际情况组合使用,并始终以安全为第一原则。(148字)
2025-08-22 11:43:47
1124
原创 QT中实现类似苹果的Switch风格按钮
本文介绍了一种在Qt中实现美观开关按钮的简单方法。通过使用QPushButton并设置样式表,利用字符"⬤"模拟开关圆点,配合左右移动效果实现开关切换功能。文中提供了完整的代码示例和样式表配置,包括启用和禁用状态的不同样式,以及数据加载和保存的逻辑处理。这种方法避免了创建新控件的复杂度,只需少量代码即可实现现代化开关效果,适合需要美化UI但不希望增加项目复杂度的开发场景。
2025-08-22 11:40:14
511
原创 使用RK(Rockchip)的NPU开发人脸检测识别相关功能
摘要 本文介绍了如何在Rockchip RV1109/RV1126等嵌入式芯片上利用NPU加速运行InspireFace人脸识别框架。作者提供了预编译的Docker开发环境(astercass/arm-gcc-8.3.0-dev-toolchain:1.1.0),并详细说明了交叉编译流程,包括使用arm-linux-gnueabihf工具链和特定版本的GCC编译器。文章还给出了CMake配置文件示例,展示如何链接InspireFace库和Rockchip的NPU相关库(rknn_api等)。该方法可在保持良
2025-08-22 11:32:56
1494
原创 构建完全自定义的全屋智能系统(二)(监控篇-客户端)
摘要 本文介绍了构建全屋智能监控系统的客户端实现方案,重点讲解了ESP8266开发板的环境搭建和网络通信功能。文章首先说明系统架构采用分离式设计(摄像头输入、服务端处理、客户端输出),推荐使用现成开发板快速搭建原型。然后详细讲解了基于PlatformIO和Arduino框架的开发环境配置,包括ESP8266的硬件特性和开发工具安装。最后展示了WiFi连接和MQTT通信的代码实现,使用Mosquitto测试服务器进行消息收发验证。整个方案为非硬件开发者提供了简化的实现路径,强调功能模块分离带来的安全性和灵活性
2025-08-22 11:30:25
855
原创 Web端支持Github账号登录
摘要:本文介绍了如何在Web应用中实现Github账号的OAuth2授权登录功能。首先需在Github开发者平台创建OAuth应用程序,获取客户端ID和密钥。前端通过跳转至Github授权页面获取授权码,后端利用授权码换取访问令牌,再调用Github API获取用户信息。文章详细说明了前后端的实现流程,包括参数配置、HTTP请求处理以及代理设置等注意事项,为开发者提供了完整的第三方登录集成方案。
2025-08-22 11:27:58
697
原创 利用GoogleFirebase为安卓应用提供系统级消息通知
摘要 本文介绍了Android系统级消息推送的实现方法,重点讲解了使用Google Firebase Cloud Messaging (FCM)的技术方案。文章首先对比了两种推送方案:直接对接手机厂商(稳定但复杂)和使用第三方服务(如JPush、Getui等)。随后详细阐述了FCM的工作原理,包括token获取和消息传递机制。实现部分包含谷歌应用注册流程、客户端权限获取、消息服务配置等关键步骤,并提供了Kotlin代码示例。最后指出了不同手机型号可能存在的兼容性问题,建议检查网络连接和谷歌服务支持情况。
2025-08-22 11:26:11
683
原创 Web端支持Google账号登录
本文介绍了两种使用Google账号登录的集成方案。首先详细说明了在Google开发者平台申请OAuth客户端ID和配置授权域的步骤,包括项目创建、产品名称设置和回调URL配置。然后提出了两种前端实现方式:方案一使用vue3-google-login库进行快速集成,包含Vue组件示例和回调处理代码;方案二则通过手动构造OAuth2.0授权URL实现更轻量级的集成,强调回调URL必须与配置严格匹配。两种方案各有优势,开发者可根据项目需求选择适合的方式实现Google登录功能。
2025-08-22 11:23:30
1004
原创 单机网游转局域网互联网的通用解决方案
摘要 本文介绍了将单机版怀旧网游改造为局域网版本的方法。首先需要确认游戏单机可运行,然后区分虚拟机版本和本地版本进行预处理,包括网络桥接和IP配置。核心步骤是修改服务端和客户端的IP地址,并检查数据库中的相关配置。若常规方法无效,可尝试破坏性解决方案(调整路由器网段)或终极方案(使用ZeroTier等SDN工具模拟内网)。文章提供了详细的操作指南和问题排查建议,帮助玩家低成本实现局域网联机。
2025-08-22 11:19:59
1189
原创 构建完全自定义的全屋智能系统(一)(监控篇-服务端)
构建自主可控的全屋智能系统框架 本文探讨了摆脱第三方平台限制,自主构建高度可定制的全屋智能系统的方法。作者指出当前市售智能家居系统存在功能封装过度、自定义受限等问题,提出从监控模块入手搭建自主平台的方案。文章重点介绍了基于海康摄像头的监控系统框架实现,包括服务端部署、客户端开发与集成三个部分,详细说明了SDK集成、设备登录和视频流回调等关键技术环节。通过该方案,用户可完全掌控智能设备的数据流和工作流程,实现人脸识别、语音交互等个性化功能,摆脱对小米、华为等第三方平台的依赖。后续还将扩展管家机器人、全屋
2025-08-22 11:14:09
972
原创 C++常用库交叉编译方法(三)(OpenCV等视觉库)
在阅读本文之前,默认已阅读前文C++常用库交叉编译方法(一)(环境构建和Qt以及Boost)的前言和环境构建部分,该文章的其他的部分可以根据需求决定是否阅读本文以及后续相关内容都在前文生成的容器中处理,命令行内容除非特殊说明,否则都在该容器执行。
2025-03-17 12:10:06
421
原创 C++常用库交叉编译方法(二)(SQLiteCpp和Breakpad)
在阅读本文之前,默认已阅读前文C++常用库交叉编译方法(一)(环境构建和Qt以及Boost)的前言和环境构建部分,该文章的其他的部分可以根据需求决定是否阅读本文以及后续相关内容都在前文生成的容器中处理,命令行内容除非特殊说明,否则都在该容器执行。
2025-03-17 12:08:21
563
原创 C++常用库交叉编译方法(一)(环境构建和Qt以及Boost)
首先这里建议从镜像开始,目前相对最稳定的版本,无论是CentOS还是其他版本的Ubuntu多多少少都会遇到各种很烦的问题,虽然说不是解决不了,但是从容器镜像开始是最节省时间的方式,Docker默认情况下会让容器使用宿主机的大部分资源,包括CPU和内存,虽然具体的占用情况取决于宿主机的硬件资源和Docker配置,但是容器本身没有严格的资源限制,因此会尽可能地使用宿主机上的所有可用资源,所以不用担心编译性能问题。如果不能直接拉取镜像参考无法使用DockerPull正常拉取镜像解决方案。
2025-03-17 12:06:51
717
原创 Windows下构建使用MinGW构建Boost
对于C++的开发而言Boost是常用的工具包,虽然说:但是还是有很多常用库是依赖的构建的,其中官网的文档主要针对的是VS系列的构建,使用MinGW构建还是有一些坑的,这里我们将从源码使用MinGW进行构建。
2025-03-17 12:05:21
565
原创 家用网络下构建外网可访问的内网服务器
对于资源需求低的或者对于稳定性要求比较高的服务,我们一般是放在运营商的服务器上进行访问。但是如果面对一些资源需求比较高的服务,比如编译运算、模型训练等等,如果在服务器上进行处理那么需要花费的钱就比较多了,所以我们这里一般的处理方式是在内网放一台编译机,然后将端口映射到外网进行访问。
2025-03-17 12:03:38
1708
原创 Gitlab CI 多模块下如何只构建指定模块
在前文后端项目CICD流程构建以及项目CICD流程构建(续篇)我们处理了利用Gitlab进行项目构建再将构建完成的包传入服务器运行的流程。有小伙伴反馈,在这种当多模块的情况下,不能很方便地构建指定模块,这里我们给出修改示例,通过对构建模块进行指定。
2025-03-17 12:02:09
489
原创 利用Nginx构建简易大文件上传预防DoS攻击机制
在前文使用Gateway作为SpringCloud网关中,我们使用接口限流,IP限流等方式一定程度可以防止普通的DoS攻击,对于更相对更复杂的DDoS攻击或者极端的Dos攻击,如果在只应用端进行防御的话效果相对有限所以当服务器资源允许,我们正常是会在服务器反向代理的位置设置负载均衡,但是这种防御处理的本质还是资源军备竞赛,技术上只是把护甲穿得更均匀不容易有软肋,真的要将防御层级提高数量级,我们一般会在反向代理服务器设置校验。因为反向代理服务器位于离客户端最近,它能较早地识别和拦截恶意请求。
2025-03-17 12:00:21
913
原创 项目CICD流程构建(续篇)
在前文前端项目的CICD流程构建和后端项目CICD流程构建我们给出了一个包含服务可视化管理的自动发布流程的方式,但是有些小伙伴并不需要Portainer,而且有时候Portainer工作确实会遇到各种相对奇怪的问题,所以我们这里使用一个简易的服务来代替Portainer触发自动更新脚本,前面由gitlab执行build脚本的部分不变,只是回调接口从调用Portainer转为调用我们自己的服务。
2025-03-17 11:58:55
850
原创 如何根据图片帧调整摄像头曝光和增益
在进行人脸识别的过程中,我们获取的图片可能需要额外进行处理,比如图片过曝需要降低摄像头曝光、画面过暗需要打开补光灯,那么此时应该如何根据图片进行分析从而对设备进行相应调整。关于人脸识别相关内容可以参考前文嵌入式开发人脸识别模块从0开始全流程(树莓派5为例),这里不再重复。
2025-03-17 11:57:13
646
原创 如何获取网站视频或音频资源
当我们有时候需要从网站获取公共的分享视频或者音频资源。但是偶尔网站开发者非常粗心,忘记直接给下载链接或者不小心写成了收费项目应该怎么办呢?某些网站下载或提取音频可能涉及版权问题,请在进行相关操作前,确认法律相关规定和网站使用条款。
2025-03-17 11:55:15
1315
原创 在线生成IdCard工具
感觉几个在线生成Id_Card的网站,没有满足自己需求的,比较简单咱们就直接写到网站里面。有需求的小伙伴可以直接访问AsterCasc - 在线Id_Card生成。
2024-10-14 17:02:19
2841
1
原创 Kotlin Compose Multiplatform下Socket解决方案
对于跨平台socket的实现方式有很多,先不谈跨平台处理,一般我们要在Web端实现实时消息通信的方式是使用SockJs,服务端使用使用Spring的情况下自带了对于websocket的支持,可以通过集成相关库来完成消息通信在我们使用SockJs的时候,Web端使用库,使用SockJS尝试建立WebSocket连接时,Spring会接收该连接请求,并尝试建立WebSocket通道。如果WebSocket不可用,Web端会回退到其他协议(),Spring可以根据不同的协议做出不同的处理。众所周知,
2024-10-14 16:59:14
1368
原创 Kotlin Compose Multiplatform下数据持久化解决方案
对于跨平台的数据存储方案,我们这里使用来处理。但是由于本身这里比较简单,存储部分和业务逻辑部分耦合性很低,所以小伙伴们也可以使用expectactual自行处理相关逻辑。
2024-10-14 16:58:15
807
原创 Kotlin Compose Multiplatform下全局通知组件构建(续篇)
在前文Kotlin Compose Multiplatform下全局通知组件构建,我们介绍了在应用软件内的通知方式,这里我们处理应用软件外系统层级的通知的。在安卓端我们正常使用进行消息的通知处理。而在桌面端,由于常用的使用习惯,我们使用系统托盘闪烁的方式进行消息通知,当然这里小伙伴们也可以选择正常的通知方式,如果这样可以参考使用进行处理。
2024-10-14 16:56:28
701
原创 Kotlin Compose Multiplatform下自定义字体
如果希望自己的应用程序有比较鲜明的个人风格,那么在某些条件下我们需要自定义字体的支持,本文会介绍跨平台条件下对于自定义字体的处理。
2024-10-14 16:54:53
1021
原创 Kotlin Compose Multiplatform下全局通知组件构建
在前文Kotlin Compose Multiplatform下全局通知组件构建,我们介绍了在应用软件内的通知方式,这里我们处理应用软件外系统层级的通知的。在安卓端我们正常使用进行消息的通知处理。而在桌面端,由于常用的使用习惯,我们使用系统托盘闪烁的方式进行消息通知,当然这里小伙伴们也可以选择正常的通知方式,如果这样可以参考使用进行处理。
2024-10-14 16:53:16
1011
原创 嵌入式开发人脸识别模块从0开始全流程(树莓派5为例)
在之前实现嵌入式设备中的人脸识别中,我们使用的是Opencv的原生模型。当时就有谈到,即使是其中相对最优的LBPH模型也已经非常古老,如果小伙伴们需要更加优秀、现代化的模型,可以参考本文章。如果你对于人脸识别、交叉编译等此前完全没有了解,可以先参考前文有一个大概的认知。
2024-10-14 16:51:00
2876
3
原创 Kotlin Compose Multiplatform下音乐播放解决方案
这里使用KMP简单实现一个跨平台音乐播放器的功能,包含音乐播放、暂停、拖动,上/下一首,设置播放模式(随机,循环,单曲)等基础播放器实现。其他基础功能可以参考Kotlin Compose Multiplatform下导航解决方案构建跨平台的客户端界面Kotlin Compose Multiplatform下实现HTTP请求等文章。
2024-10-14 16:44:35
1187
原创 Kotlin Compose Multiplatform下实现HTTP请求
我们这里使用Ktor来实现KMP跨平台的网络请求,其他基础功能可以参考Kotlin Compose Multiplatform下导航解决方案构建跨平台的客户端界面等文章。
2024-10-14 16:42:57
792
原创 Kotlin Compose Multiplatform下导航解决方案
其实笔者在写这篇文章的时候,KMP已经有实验性的导航解决方案了,官方文档中有介绍,而且使用起来也比较简单,可以参考我构建的的样例的这个分支但是目前版本由于是实验性的,不支持深层链接,而且返回手势只有安卓支持,甚至这些都不是最重要的,最大问题在于:笔者在使用这个导航的时候发现,官方导航组件在安卓环境下,有小概率会触发错误的过渡效果,原因不明,即使不设置任何动画效果,也有小几率触发,而且这个问题只在安卓条件下会出现,所以目前版本的建议还是使用比较成熟的外部导航组件。
2024-10-14 16:40:11
2160
原创 Android Studio无线调试连接不稳定解决方案
Android Studio的无线调试有两种连接方式,一种是扫二维码连接,一种是使用匹配码连接。但是两种连接方式都不是很稳定,经常出现,只要出现这个提示,基本就等待错误提示了,遇到这种情况我们直接命令行连接就完事了。
2024-10-14 16:37:50
2266
原创 使用Docker搭建轻量级内网DNS服务器
在进行域名的解析的时候,如果我们希望指定映射关系,一般可以在设备中直接调整hosts文件处理。比如在Linux中我们可以访问修改/etc/hosts,在Windows下我们可以访问修改但是如果设备不方便直接修改hosts,或者内网有许多设备的情况,指定一个本地的DNS服务器就是一个比较好的方法了。指定映射关系,除了可以加快解析过程,自定义映射关系,还经常用于解决NAT回流问题,这里我们利用Docker以及dnsmasq完成DNS服务的快速搭建。
2024-10-14 16:35:27
2619
原创 Linux下误删usr文件夹的解决方案
由于不同发行版本以及删除程度不同,该解决方案不一定适合所有人,基本是就把/usr/bin下文件删完了,但是一些基础库还在,可以参考本文。
2024-07-08 10:35:21
1494
1
原创 SSL证书有效期变更为三个月的自动化运维解决方案
众所周周知,目前由于安全性的考量,各个平台供应商的SSL免费证书有效期都变成了三个月。在之前一年的证书有效期的条件下,如果有三五七个域名,一年更新一次,似乎也费不了什么功夫,但是如果是三个月更新一次,这个工作量就没有那么容易让人接受了,所以我这里需要有一个自动化的SSL证书更新方案不想写服务的小伙伴也可以使用外部的解决方案,比如CertSvc,但是这种毕竟是别人的平台,在安全性方面肯定是没有自己写来的更好的,而且自定义的的逻辑也没有很多,这里我们以腾讯云为例,简单展示下证书自动运维方案。
2024-07-08 10:32:54
1275
5
原创 上传Maven仓库401Content错误以及更新OSSRH二重验证
如果有在Maven仓库上传过包的小伙伴,最近应该收到了中央仓库的邮件,提示需要使用用户令牌进行身份验证,而不是原来的账号的密码:Thank you,如果我们未收到或者忽略这条邮件,则会在上传maven包的时候,得到的错误。
2024-07-08 10:29:50
497
原创 使用DockerPull拉取镜像超时解决方案
这里给出两个解决方案,需要有海外服务器,如果没有海外服务器,可以参考该文章,完成拉取后,再删除即可。
2024-07-08 10:27:03
5135
2
原创 构建带鉴权系统的文档管理平台Writerside
构建一个鉴权系统是简单的事情。但是对于文档管理平台,如何将各种形式文档转换成HTML的形式,以及对于不同转换元素样式的调整,甚至支持UML/Mermaid图、文档版本管理等等,这些的工作量如果单人完成可以说是巨大的。所以我们我们这里需要一个工具,将简单的Markdown文档变为一个可控的文档管理平台。在前文制作在线Markdown文档转Html以及Pdf工具Marked.js渲染下md内图片点击放大解决方案等文章都有使用各种工具做过类似的操作,可以在Markdown转换。
2024-07-08 10:24:54
1368
原创 Java自动在传入参数中对于对象字符串进行trim操作
经常做表单操作的小伙伴都知道,测试没能测出来然后由于种种原因在线上出问题且大概率不能直接定位到问题的BUG,其中没有进行字符串的修剪是一个不少人在初期,甚至中后期都有可能不小心犯的错误。因为这种问题的出现的BUG一般不是本身,而是衍生出来比如字符串不匹配导致的检查错误、认证错误等前段时间和产品聊天,某产品表示,谁谁谁的技术框架是很烂不能被接受的,问其原因,说是一次线上问题定位很久才定位到:是由于管理员输入用户姓名时,前后端没有进行修剪,导致用户在进行后续操作的时候提示查无此人。
2024-07-08 10:22:54
707
原创 使用Godot和CSharp开发桌面应用软件
本来我的想法是使用来做为安卓端和桌面端应用软件跨平台的解决方案,参考本站前文构建跨平台的客户端界面。但是在撰写和尝试更完整的跨平台应用的时候发现,目前使用在社区和组件选择以及部分组件的兼容性还有编辑器的显示支持上都不够优秀,简单来说遇到了不少的坑,虽然基本都能解决,但是实在不能作为一个具有长期借鉴意义的文章发出(比如可能会介绍蛮多坑,但是这些坑会在之后版本中被修复)。
2024-07-08 10:20:05
2017
原创 使用Eureka作为微服务的注册中心
在前文使用Consul作为微服务的注册中心,我们较为详细地介绍了使用consul的相关内容和参数。其中提及到没有使用Eureka的原因是新版Eureka不再官方开源维护,已经进入闭源状态。但是1.x的版本还是有社区在相对积极维护的,虽然大概率不会再有大的更新,但是基于现有架构而言,作为中小型项目的注册中心还是绰绰有余的,而且个人的观点,在所有注册中心中,Eureka基本上是用的最舒服的,可以认为是一个的框架。
2024-07-08 10:12:16
656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅