A Java geek

RSS: https://blog.frankel.ch/feed.xml
Nicolas Fränkel 的 Java 技术博客。

JVM 内置安全:约束系统拦截恶意调用

DirtyChai 框架通过 JVM 约束系统在调用离开 JVM 前拦截恶意调用,而非传统框架仅在入口处验证 token。Safe Codebase Audit Pipeline 在客户端加载代码前就阻止问题代码,核心思路是把安全验证下沉到 JVM 层而非依赖下游组件自觉检查。
评论点赞收藏7 天前

GitHub 智能体工作流与 Renovate

Renovate 作者对比了 Renovate 和 Dependabot,认为前者 GitHub 集成度较低但支持更多生态且可扩展。文章介绍了将 Renovate 与 GitHub 智能体工作流结合使用的方案。
评论点赞收藏14 天前

RFC 9880 与物联网验证难题:将设备描述视为可编译代码

物联网/工业物联网领域存在数据模型方面的难题,而“数字孪生”这一概念使这一问题变得更加重要。许多人已经尝试解决这一问题。RFC 9880 及其语义定义格式(SDF)是一项切实可行的尝试:这是一种基于 JSON 的、面向生态系统的中性方式,用于描述设备的本质及其功能。我曾与该规范有过一些接触,并且了解到,只有当你将其视作源代码——一种需要编译的代码——时,这种格式才能充分发挥其价值。
评论点赞收藏21 天前

安全内建于 JVM:构建安全的代码库审计流水线

Java 开发者 Frankel 指出,传统代理模式在远程加载 JAR 时存在供应链攻击风险,因为恶意字节码可在约束生效前被反序列化。本文提出将安全机制内置于 JVM 层面的审计流水线方案,通过配置化强制身份验证、加密和硬化反序列化,确保约束在调用边界严格执行,从而解决分布式系统中远程代码加载的安全隐患。
评论点赞收藏28 天前

让 ServiceLoader 更好用:一种 Provider 工厂模式

ServiceLoader 在解耦依赖时很有用,但原生 API 使用繁琐。作者提出通过 Provider Factory 模式封装 ServiceLoader,简化 JSON 库或 JWT 实现等的切换流程。这种工程实践能减少样板代码,提升模块替换的便利性,适合需要灵活依赖管理的 Java 开发者参考。
评论点赞收藏35 天前

Home Assistant 配置中的两个令人不快的意外

去年,我为公寓南侧的卷帘安装了电动装置。我的想法是通过Home Assistant来控制这些卷帘。我心中已有几项自动化方案:晚上,放下卧室的卷帘;早上,如果外面太热,就放下所有卷帘;如果外面太冷,就放下所有卷帘;在其他情况下,则把所有卷帘都拉上,唯独卧室的卷帘不放。由于居住在法国,我还加入了法国气象局的官方集成功能。
评论点赞收藏41 天前

安全内建于 JVM:为何分叉 Apache River 与 OpenJDK?

文章指出随着系统分布式程度增加,安全变得愈发困难。Java 17 弃用 SecurityManager,Java 24 彻底移除它,但多数开发者并未察觉。作者解释了为何需要重新审视 JVM 内部的安全机制,并提出了分叉 Apache River 和 OpenJDK 的理由。
评论点赞收藏48 天前

关于编程语言、目标与平台

作者从 Java 开发者视角出发,梳理了编程语言从早期专注单一目标平台,到如今逐渐拓宽适用范围的发展演变过程。 文章旨在厘清语言、目标与平台的概念差异,并分享个人对这一技术演进趋势的观察与思考。
评论点赞收藏56 天前

金额处理该用 Double、BigDecimal 还是定点数?

文章指出在 Java 中处理金额并非必须使用 BigDecimal,而是取决于精度需求、舍入规则和性能预算。作者认为当前讨论常被教条主义驱动,缺乏工程视角。 文章对比了 Double 与 BigDecimal 的优劣,建议根据具体场景选择合适的数据类型,而非盲目遵循最佳实践。
评论点赞收藏63 天前

四季延时摄影:视频制作篇

作者分享制作季节延时视频的最后一步,解释如何对齐图片并生成视频。 文中涉及 ORB 和 RANSAC 等技术概念的实际应用与艺术决策。
评论点赞收藏70 天前

AI 网关:为何需要以及如何构建

作者基于两年 APISIX 网关开发经验,提出将 API 网关解耦客户端与服务端的模式应用于 AI 场景。 文章解释了通过 AI 网关统一处理认证、安全和请求去重等价值,类比传统 API 网关的设计思路。
评论点赞收藏77 天前

季节延时摄影:解决照片对齐难题

作者分享制作多年延时摄影项目的经验,重点讲述如何解决照片对齐难题。由于拍摄者并非三脚架,每次拍摄角度和位置都有细微偏差。 文章介绍了处理这些微小位移的技术挑战及解决方案,属于具体的工程实践记录。
评论点赞收藏84 天前

四季延时摄影:项目基础

一位住在乡下的博主分享了他多年来在跑步时从同一角度拍摄照片,计划制作成展示季节更替延时视频的个人项目。 目前视频仍在制作中,作者提到这个项目耗时很长。
评论点赞收藏91 天前

设计智能体团队

作者尝试使用 Claude Code 的实验性功能构建由五个子智能体组成的自主团队来开发软件功能。 文章详细描述了如何定义子智能体的角色与权限,以及它们之间的通信机制,并探讨了自主性与安全性之间的权衡问题。
评论点赞收藏92 天前

编程助手的“Token节约”策略

作者借鉴德国数据保护中的“数据节约”理念,提出在编程助手(如 Copilot)使用中应减少 Token 消耗的策略。 文章探讨了如何通过优化提示词和上下文管理,降低 API 成本并提升代码生成的精准度。
评论点赞收藏98 天前

Making Illegal State Unrepresentable

A couple of years ago, I wrote that The Builder pattern is a finite state machine!. A state machine consists of states and transitions between them. As a developer, I want to make illegal states unrep...
评论点赞收藏118 天前

A GitHub agentic workflow

Last month, I became aware of GitHub agentic workflows. I read the site carefully, but the use cases weren’t very exciting to me. I tried the continuous documentation It didn’t work out initially, and...
评论点赞收藏125 天前

One tip for successful OpenTelemetry projects

Leading your organization to use OpenTelemetry is a challenge. In addition to all the usual project hurdles, you’ll face one of these two situations: convince your teams to use OpenTelemetry, or convi...
评论点赞收藏140 天前

The Software Architect Elevator

I don’t think it’s necessary to introduce Gregor Hohpe. I’m a big fan, having read Enterprise Integration Patterns, and I’ve recommended the book ever since. When I spoke at the Software Architecture ...
评论点赞收藏147 天前

Writing an agent skill

Most developers now use coding assistants. I do too—Copilot at work, Claude Code at home. As a developer, I prefer not to repeat myself. This post explains why and how to avoid repetition as a skill. ...
评论点赞收藏154 天前

Pi-hole behind Tailscale

As I age, I become increasingly cautious about my privacy. The slope the world is sliding on is also a big, unfortunate incentive. I have been eying Pi-hole for some time: in this post, I want to expl...
评论点赞收藏161 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。