关于在 Docker 容器中如何优雅关闭 Java 应用的记录

这两天遇到一个和 Docker 运行相关的问题,我们使用 Azure App Service 来运行服务,但是每次重启服务的时候,发现不会出发 Javalin 的 stop,感觉 Java 进程没有接受到 Docker 容器停机的信号,然后就被系统杀死了,所以就这个问题,仔细地研究了一下 Docker 运行以及如何优雅地关闭 Docker 容器中的 Java 进程。 问题原因 信号是操作系统用于向正在运行的进程发送消息,使其以特定方式运行的一种方式,常见的情况是操作系统会向进程 ID 发送 SIGTERM 信号来终止进程,当我们执行 kill PID Read more ...

2025-05-23 docker , java , sigterm , shell , dockerfile

IBKR 使用教程系列之共同基金 ETF Replicator

这两天在 IBKR 上买了一点按月分红的 ETF,然后在邮箱中就收到了 IBKR 发过来的建议邮件,说 IB 还提供了一个共同基金的工具可以来寻找类似表现,但是费用更低的其他 ETF,这就是一款 ETF 发掘工具。 所以收到邮件之后,我就立即定了一个计划,晚上回来就登录 IBKR 的后台,下载 Trader Workstation(TWS),然后在其中找到了这一款工具。 Mutual Fund/ETF Replicator 是一个非常使用的分析工具,可以帮助用户找到相似业绩的共同基金和 ETF,通过比较可以找到管理费用更低的组合。 Mutual Read more ...

2025-05-22 etf , ibkr , us-stock , stock-market

Google Stitch:AI 驱动的 UI 设计工具让创意快速成为现实

在昨天 2025 年的 Google I/O 大会上 Google 一口气发布了超多的 AI 工具集,其中包括了一款叫做 Stitch 的 AI 工具,它可以快速帮助设计师和开发者将 UI 设计理念变成可实际使用的设计稿,生成设计稿之后可以直接导入到 Figma,或者直接导出成前端代码。所以本文就具体来介绍一下 Stitch。 Stitch 是什么? Stitch 是 Google Labs 推出的一个实验性项目,它利用 Gemini 2.5 Pro 的多模态能力,帮助用户将简单的文本提示或图像输入转换成复杂的 UI 设计和前端代码。这个工具的核心理 Read more ...


NameCrane 邮件托管服务体验:超大存储空间的终身邮箱解决方案

去年黑五以及今年年初逛论坛的时候偶然间发现一款邮件托管服务 NameCrane,我自己一直都有发邮件的需求,我自己也有维护邮件服务器,但是看到有合理的邮件托管服务还是会忍不住多看一下,于是我就被 NameCrane 提供的终身套餐吸引住了。 CraneMail 服务概述 NameCrane 的 CraneMail 是一个专业的商业邮件套件,集成了云存储、网页邮件客户端、垃圾邮件过滤等多种功能。它被定位为 Google Workspace 和 Office 365 的替代品,但价格更为亲民。NameCrane 是 BuyVM 旗下独立公司。 在黑五促 Read more ...


Spokenly macOS 上的语音转文字工具

前几天我介绍了一款 macOS 下的语音转文字应用 Aqua Voice 用语音的方式提升输入效率,但是 Aqua Voice 它有使用的限制,但是今天我很偶然地发现了一款完全免费的,并且可以直接离线使用的语音转文字工具 [[Spokenly]]。 Spokenly 来自一个独立开发者 Vadim Akhmerov,在 macOS 下应用只有 3.3 MB 大小,作者直接利用了本地集成的 Whisper 模型来提升识别准确度和效率,如果用户想使用 GPT-4o 的模型,也可以自己输入 API Key 来使用联网的模型。 Spokenly 是什么 S Read more ...


Fider 用户反馈收集投票系统

Fider 是一个开源的用户反馈收集的系统,可以帮助开发者和产品团队更好地理解用户需求,从而有效地构建和改进产品设计。 特点 使用 Go 语言和 TypeScript 和 SCSS 等技术开发,AGPL 协议开源 用户可以提交返回,并对反馈进行投票 支持 RoadMap 展示,向用户展示开发进度和版本更新 定制品牌 Logo,颜色和文本 多语言支持 用户身份登录 提供 API 接口 部署 docker 部署 可以通过 docker 安装 services: db: restart: always Read more ...

2025-05-14 fider , golang , typescript , agpl , feedback

备份 K3s 数据

在 K3s 集群中,持久化数据通常通过 PersistentVolume(PV)和 PersistentVolumeClaim(PVC)实现。要全面备份 PVC,既要备份集群状态(如 etcd/SQLite 数据库),也要备份底层存储卷的数据。不同存储方案(如 Local Path Provisioner、Longhorn 等)备份方式略有差异。 备份 K3s 是一个需要分层处理的任务: Cluster Data 控制面数据,包含 K8s 所有的资源定义,例如 Deployment、Service、Secrets 等。对于 K3s 来说,这通常 Read more ...

2025-05-12 k3s , k8s , kuberntes , backup , data-security , s3 , minio

Aqua Voice 利用语音转文字提升产出效率

之前我介绍过 [[MacWhisper]],[[MemoAI]] ,[[VideoLingo]],[[pyTranscriber]] 等等语音转文字的 AI 工具,但当时我的需求只是将视频中的音频转为文字,或者字幕,但是,随着现在语音转文字技术的发展 ,我越来越意识到手工通过输入法来输入文字的效率非常低。 所以我一直在寻找有没有可能在电脑上直接通过语音来编写文章。 macOS 所以我找到的最初的解决方法就是使用 macOS 它默认的语音转文字功能, 在系统设置上中,搜索 Dictation, 就可以找到关于语音转文字的设置。 在其中可以设置快捷键,默 Read more ...


HomeShare 让本地电脑文件夹成为文件分享服务器

前些天出门拍了很多照片,回来从 SD 卡导出之后就想有一个可以快速一键分享出去的方法,通过微信传,虽然可以通过笔记一次发送超过 9 张图片,但是还是需要将照片上传到微信的笔记里面,虽然我之前也有使用自己的在线图库,但依然避免不了上传等待的过程,并且如果照片比较大时,等待的时间会很长。所以这几天我一直再想能不能有一个方法可以直接将本地的文件夹共享出来,或者直接让别人将图片一次性发送到我本地。 刚好今天就发现了这样一款使用 Go 语言编写的文件服务器 HomeShare,可以直接将本地文件夹共享出来作为一个私人存储空间。 HomeShare HomeS Read more ...


Dola 你的私人智能 AI 助手轻松管理日程

我个人一直使用 Google Calendar 作为日程管理,很久以前也购买了一个叫做 Checker Plus 的 Chrome 插件,可以直接在 Chrome 的插件栏查看日程,并且还可以直接通过自然语言来创建日程,以及在日程之前弹窗提醒,实话说这款插件已经能满足我 90% 的日程安排了。 但是前段时间很偶然发现一款集成 AI 的日历助手,果然在 AI 的时代,什么样的应用都可以利用 AI 重写再写一遍,或者集成 AI 再现荣光。 什么是 Dola AI Dola AI 是一款集成了大语言模型的智能 AI 日历和任务管理助手,希望通过自然语言, Read more ...


最近文章

  • Google Code Wiki:让 GitHub 仓库秒变代码百科全书 之前 Devin 团队推出了一款 DeepWiki 的网站,可以用来解释 GitHub 的代码仓库。今天偶然发现 Google 也推出了类似的产品,叫做 Code Wiki。
  • Typeless: 又一款 macOS 上的 AI 语音输入利器 看过我博客的人会发现,我在这半年的时间里面体验了非常多的语音转文字工具,可以说,这样的工具极大地提升了我的生产效率。不仅搭配 Obsidian 可以更快地写笔记,搭配 Claude Code 等编程工具也可以让我更快地输入提示词。体验到后面,遇到类似的产品,我一般也不会单独地出一篇文章,但是今天体验完了 Typeless,我觉得它值得写一篇文章,单独介绍一下。
  • Gemini CLI 使用小技巧 本文记录 Gemini CLI 使用过程中一些容易被忽略的问题,以及使用小技巧。
  • 让 AI 更懂你的工作流:Gemini CLI 自定义 Slash Commands 配置指南 看过我博客的人会发现,我过去分享了非常多 Claude Code 下的使用小技巧,Claude Code 提供了非常好用的 Clash Commands,可以让我们直接通过快捷方式调用我们预先定义好的 prompt。最近我在使用 Gemini CLI 时,也发现我需要类似的功能。但幸好,Gemini CLI 已经帮我们实现了 slash commands,我们只需要定义好一个函数,就可以非常轻松地通过斜杠命令来调用。
  • 在 Obsidian 中使用 Gemini CLI 从 2020 年开始使用 Obsidian 算起,到今天也已经快 5 年了,这个过程中我将过去将近 10 年的笔记,包括 Evernote,WizNote 中的笔记,豆瓣上的笔记全部转成了 Markdown 保存到了本地,后来陆陆续续使用的比如 [[Voicenotes]] 也都转成 Markdown 存如 Obsidian。虽然过去纪念陆陆续续在整理,但是实际上每天添加到笔记库中的内容要远多于要整理阅读的内容,笔记仓库也是越来越大,所以我越来越想使用一个工具可以帮助我真正地理解我写下的东西,并且在我想使用的时候能快速的找回。