🛠️ 开发工具与插件
未读1. 为什么用构件管理工具 一个项目就是一个工程 如果项目非常庞大,就不适合使用 package 来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于构件管理工具就可以将一个项目拆分成多个工程 项目中使用 jar 包,需要“复制”、“粘贴”项目的 lib 中 同样的 jar 包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于构件管理工具可以将 jar 包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。 jar 包需要的时候每次都要自己准备好或到官网下载 借助于构件管理工具我们可以使用统一的规范方式下载 jar 包 L jar 包版本不一致的风险 不同的项目在使用 jar 包的时候,有可能会导致各个项目的 jar 包版本不一致,导致未执行错误。借助于构件管理工具,所有的 jar 包都放在“仓库”中,所有的项目都使用仓库的一份 jar 包。 一个 jar 包依赖其他的 jar 包需要自己手动的加入到项目中 FileUpload 组件->IO 组件,commons-fileupload-1.3.jar ...
🧱 后端开发与架构
未读让我们来谈谈代码审查。如果你花几分钟时间搜索有关代码审查的信息,你会看到很多文章讨论为什么代码审查是一件好事. 你还会看到很多关于如何使用代码审查工具的文档,比如 Upsource。但你不太容易找到一份指导你在审查他人代码时应该关注什么的指南。 可能没有明确文章解释应该寻找什么的原因是:有很多不同的事情需要考虑。并且,像任何一组要求(功能性的或非功能性的)一样,不同的组织对于每个方面都会有不同的优先级。 由于这是一个很大的主题,本章的目标只是概述在执行代码审查时,审阅者可能会关注的一些事情。确定每个方面的优先级并保持一致性检查是一个足够复杂的话题,足以成为一个独立的章节。 在审查他人的代码时,你寻找什么?无论你是通过 Upsource 这样的工具还是在与同事一起走查他们的代码,无论情况如何,有些东西比其他东西更容易评论。一些例子: 格式化:空格和换行在哪里?他们使用制表符还是空格?花括号是如何排列的? 风格:变量/参数是否被声明为 final?方法变量是在它们使用的代码附近定义还是在方法的开始处定义? 命名:字段/常量/变量/类名的命名 ...
简介花了点时间装饰了一下 GitHub 主页, 感觉好过得去 🙉. GItHub 个人主页相关的项目非常多, 也没有一个个去尝试, 所以这里先做一个记录, 先做一个资源收集, 等有时间再去折腾. 目前的效果如下: dong4j 的 GitHub 主页 统计类Metrics 获得类似上图的 GitHub 数据统计,需要用到一个在线工具「Metrics」,打开网站之后,在左侧输入你的 GitHub ID,稍等一会,就会返回右侧所有和你相关的数据。 GitHub Stats Card自述文件中获取动态生成的 GitHub 统计信息 –> github-readme-stats Most used languages自述文件中添加使用编程语言对比统计图 –> github-readme-stats Github Profile Trophy添加奖杯信息–> github-profile-trophy GitHub Readme Activity Graph动态生成的活动图,用于显示过去 31 天的 GitHub 活动。 –> github-readme ...
🤖 AI:人工智障
未读简介最近在玩儿 检索增强生成(RAG,Retrieval Augmented Generation), 本地部署了一套 dify, 应该算是 RAG 功能最全的开源项目了, 可以集成工大厂商的 AI API 以及自建的 LLM 服务. 所以就用 dify 做了一个个人知识库, 数据来源与博客内容. dify 的部署以及使用可查看官方文档, 写的非常详细, 这里只是介绍一下如何将 dify 集成到 hexo 的博客中. 根据 官方文档 的说明, 我选择使用 script 标签方式 集成 dify 到博客中, 这种方式会有一个聊天机器人按钮, 不会影响博客的整体体验: 集成首先从 dify 获取嵌入到网站中的代码, 比如下面这样: 1234567891011121314151617181920<script> window.difyChatbotConfig = { token: 'xxxxxxxxxxxx', baseUrl: 'http://192.168.1.2' }</script>< ...
安知鱼主题自带朋友圈功能, 不过需要自行部署后端, 下面说说我的部署过程. 创建朋友圈页面在 Hexo 博客根目录下打开终端,输入 1hexo new page fcircle 打开 source/fcircle/index.md,添加一行 type: 'fcircle': 12345678---title: 朋友圈date: 2022-11-21 17:06:17comments: falseaside: falsetop_img: falsetype: "fcircle"--- 主题配置配置菜单: 123menu: 友链: 朋友圈: /fcircle/ || anzhiyu-icon-artstation 开启朋友圈: 123456# 朋友圈配置friends_vue: enable: true vue_js: xxx apiurl: xxx top_background: xxx 参数 备选值/类型 解释 enable boolean 【必须】是否启用 vue_js url 【必须】朋友圈前端 ...
参考 【Hexo博客】自定义Butterfly主题 Loading 加载动画 和 Hexo的Butterfly下自定义加载动画之小汽车动画的实现 实现了在 anzhiyu 主题下的自定义加载动画。 添加 loading 模版新建目录: themes/anzhiyu/layout/includes/loading/load_style, 添加如下 pug: car.pugdefault.puggear.pugheo.pugimage.pugironheart.pugpace.pugscarecrow.pugtriangles.pugwizard.pug12345678910111213141516171819202122#loading-box .carplayscript. const preloader = { endLoading: () => { document.getElementById('loading-box').classList.add("loaded"); }, ...
自建 Hitokoto 服务Hexo 添加 RSS 订阅功能Hexo 自定义加载动画 简介同样是因为默认的 https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js 已无法打开, 所以参考 self-hosted busuanzi 在本地服务器自建一个. 部署根据 官方文档 使用 docker-compose 直接部署: 123456789101112131415161718192021services: busuanzi: image: xcsoft/busuanzi:latest ports: - 8888:8080 volumes: - ./data/config.yaml:/app/config.yaml # 如果不需要修改首页, 可以不需要挂载 - ./data/dist/index.html:/app/dist/index.html environment: WEB_LOG: true WEB_DEBUG: false ...
前言最近使用的 Hexo 主题 hexo-theme-anzhiyu 默认的随机一言接口被限流了, 根据官方文档在家里的服务器上搭建了一个, 目前用于我的博客. 部署根据 官方文档 使用 docker-compose 部署: 123456789101112131415161718services: hitokoto_api: image: hitokoto/api:release container_name: hitokoto_api hostname: hitokoto_api environment: NODE_ENV: production url: https://你的域名 api_name: blog redis.host: 你的 redis ip redis.port: 你的 redis 端口 redis.password: 你的 redis 密码 redis.database: 你的 redis 数据库 ports: - 8888:8000 resta ...
🎉 高能分享
未读Hexo 博客添加 RSS 订阅功能 插件 GitHub https://github.com/hexojs/hexo-generator-feed 安装 hexo…… 这篇文章介绍了如何在 Hexo 博客中添加 RSS 订阅功能。需要使用时光插件,并提供了 GitHub 地址。在配置 RSS 时,可以选择原子或 RSS2 的类型,设置文件路径,决定展示文章的数量,还可以选择包含文章的全部内容或摘要。同时,也可以自定义订阅图标和订阅内容的顺序。在部署后,直接在根目录中访问配置的文件即可使用 RSS 订阅功能。 插件 GitHub 地址:https://github.com/hexojs/hexo-generator-feed 安装 hexo-generator-feed 插件1npm install hexo-generator-feed --save 修改 _config.yml 配置1234feed: type: atom path: atom.xml limit: false type: RSS 的类型 (atom/rss2)path: 文件路径,默认是 a ...
🧱 后端开发与架构
未读前言在老东家花了一年的时间,基于当时最新的 Spring Boot 2.5.x 写了一套脚手架工程,经过 1 年多的迭代, 这套脚手架已在技术中心多个部分应用. 脚手架包含最底层的 maven 依赖管理, 可以说是整个工程的灵魂, 期间重构过 3 次, 这个后面再说.第二层是核心模块层, 就是我们常见的 core 包, 但是也分为至少 8 大模块.第三层是基于 Spring Boot 2.5.x 封装的 starter 层, 这个层是整个脚手架工程的精髓所在, 也是我们后续要重点介绍的.第四层是支撑层, 包括 Maven 插件和 IDEA 插件.最后当然是示例工程, 包含每个 starter 组件的使用方式. 写这套脚手架的时候正好赶上 业务中台 火热的时期, 因此比如通用的 用户中心, 支付中心等也应运而生, 但是这部分涉及到公司的业务流程, 后面将不会过多描述. 今天决定开始新一轮的重构, 基于 Spring Boot 3.3.x 来写一个企业级的脚手架工程, 主要考虑以下几点: 想体验一下最新的 Spring Boot 3.3.x 与 Spring AI; 最新的 Sp ...
简介记录一下如何将 hexo-theme-aurora 主题的博客图片居中显示 修改文件: node_modules/hexo-theme-aurora/source/static/css/a14e1a22.css: 1234567.post-html img { margin: auto; cursor: zoom-in; transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s;}
🏠 HomeLab:中年男人之友
未读背景作为一个智能家居爱好者,我在家里部署了多台服务器以及开发板。因为有公网 IP, 并通过 DDNS 绑定了域名, 我可以随时在外网访问家中的各种服务。 虽然我通过 Surge 的配置可以在外网通过局域网访问家中的内部服务, 当问题是我需要为同一个服务添加多个书签, 当服务数量增多时,书签管理变得异常繁琐。 解决方案为了解决这个问题,我开发了一个 Chrome 扩展 - URL Switcher Pro。这个扩展程序能够: 自动检测当前网络环境 根据配置智能切换内外网 URL 支持批量 URL 配置管理 提供 URL 可访问性检测 技术实现1. 核心功能扩展的核心功能主要包括: URL 匹配与切换:通过正则表达式进行 URL 模式匹配 网络环境检测:检测 URL 可访问性 配置同步:利用 Chrome 存储 API 实现多设备配置同步 国际化支持:内置中英文语言支持 2. 主要技术栈 Chrome Extension Manifest V3 Chrome Storage API Chrome Tabs & WebNavigation API JavaScript ...
🏠 HomeLab:中年男人之友
未读封面来源: Unsplash-Kvistholt Photography 数据备份备份是 Homelab 必不可少的一部分,按照不同的系统架构,备份大致有下列几类: 文件级别的备份:直接在应用所属宿主机上运行定时任务,增量或者全量将文件复制到其他远程位置,可以使用 Synologo Drive, Rsync, Rclone, Restic 等这类工具进行备份; 应用级别的备份:通过应用完成备份,例如 Gitlab, Portainer, 1Panle, Home Assistant 等自带的备份功能,可以将用户数据和数据库等数据一起备份到远程位置, 系统级别的备份:例如 macOS 自带的备份(Time Machine),树莓派和 OpenWrt 的全系统备份, OpenWrt, DSM 等自带的系统级备份功能, 或者其他软件实现的全盘备份(比如 rsync + dd 命名)。 虚拟化备份:在有虚拟化的时候,整个操作系统等于多个文件,所以只需要将此文件备份便能实现整个虚拟机的备份,比如 Parallels Desktop 的 *.pvm 虚拟机文件, UTM 的 *.utm 虚拟机文 ...
🏠 HomeLab:中年男人之友
未读封面来源: Unsplash-Tianyi Ma 数据同步我的数据同步需求主要涉及到工作文件, 常用的配置文件以及 docker-compose 容器编排文件, 这些文件需要在多台主机上使用, 所以直接采用 Synology Drive 在支持 Synology Drive Client 的主机上同步文件, 一些无法安装 Synology Drive Client 的开发板, 则直接使用 Syncthing 同步. 相关文章: 先导篇:我的 HomeLab 概要; 硬件篇:介绍我所拥有的硬件设备; 网络篇:包括网络环境、异地组网与网络安全; 服务篇:使用 Docker 搭建的各类服务; 数据篇:包括数据存储方案、备份方案和数据恢复方案; HomeLab数据同步:构建高效的数据同步网络 HomeLab数据备份:打造坚实的数据安全防线 HomeLab 网络续集:升级 10G 网络-再战 10 年 NAT 内网穿透详解:揭秘网络连接背后的奥秘 Synology DriveSynology Drive Server 由 3 个独立的套件组成: Synology Drive 管理控制台: ...























