Moshi : 新一代的 Java 解析 JSON 工具

最近 FastJson 安全问题频发,所以 JSON 解析又被拉到台面上,而正好不久前看 Reddit 看到 Gson 的作者在推荐一个叫 Moshi 的库,这就花点时间看一下。1 Gson 存在的问题 序列化 Date 的时候不包含时区的信息 Date epoch = new Date(0); String epochJson = new Gson().toJson(epoch); // "Dec 31, 1969 7:00:00 PM" RFC 3339 标准 里面规定的日期表示法: 2020-06-12T07:20:50.52Z 其 Read more ...

2020-06-23 java , json , gson , moshi

KIE API 学习笔记

Kie have these concepts which every user need to know. KieService 通过如下方式产生 KieServices: KieServices ks = KieServices.Factory.get(); KieService 可以用来创建 KieContainer。 KieContainer 定义了规则的范围。 KieContainer KieContainer 是所有给定 KieModule 的 KieBases 的集合。 KieContainer 承载了 KieModule 和 Read more ...

2020-06-17 kie , drools , jbpm , decision-table , score-card

JBoss 工作流相关 Docker 镜像整理

源代码地址: https://github.com/jboss-dockerfiles/business-central 三个可用的镜像: business-central-workbench JBoss Business-Central Workbench 基础镜像,可以根据该镜像来扩展创建自己的镜像。 business-central-workbench-showcase 继承自 JBoss Business-Central Workbench 镜像,可以直接使用的 Docker 镜像。提供了自定义的配置文件,默认 Read more ...

2020-06-12 jboss , kie , kie-workbench , drools

Java 查漏补缺:函数式接口

Functional interface is a new feature Java 8 introduced. Functional interfaces provides target types for lambda expressions and method references. // Assignment context Predicate<String> p = String::isEmpty; // Method invocation context stream.filter(e -> e.getSize() & Read more ...

2020-06-09 java , linux , java-8

在 OpenMediaVault 上使用 SnapRAID 和 MergerFS

首先来介绍一下这两个软件,SnapRAID 和 MergerFS,不同于其他现有的 NAS 系统,可以把 OpenMediaVault 看成一个简单的带有 Web UI 的 Linux 系统,他使用最基本的文件系统,没有 ZFS 的实时文件冗余,所以需要 SnapRAID 提供的冗余来保护硬盘数据安全。SnapRAID 需要一块单独的硬盘来存放校验数据,这个盘的容量必须大于等于其他任何一个数据盘。SnapRAID 采用快照的方式来做数据冗余,这种设计避免了所有硬盘在没有数据操作情况下也要运转来实时数据备份的消耗。 MergerFS 则是一个联合文件系统 Read more ...


Linux 设备中的 major 和 minor 数字

Today, when I visit tldr issue and I saw a talk about the command lsblk, although I used a lot before, I really don’t understand the MAJ:MIN in the result. Most time, I use it to check the harddrive disk and partitions. lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 Read more ...

2020-06-01 linux , device , hardware , kernel

利用 AdGuard Home 自建 DNS 服务器过滤广告

AdGuard Home 是 AdGuard 发布的一款借助于 DNS 来实现广告过滤的服务。 过滤广告的方式有非常多的方式,比如加本地 Host,比如浏览器中的 Adblock 插件,或者之前在 OpenWrt 或者其他固件上添加的广告过滤插件,甚至在 Android 上也用过通过在本地设定一个代理,所有的流量走代理,然后在代理中将广告过滤掉的应用,那么这个 AdGuard Home 有什么优势呢?在我看来,吸引我使用它的几个优势是: 只需要架设一次,所有局域网中的设备都可以享用,而不需要各个设备单独配置 可视化,最早是在 Twitter Read more ...

2020-05-29 adguard , adguard-home , adblock , browser , dns

Flexget 配合 NexusPHP 自动下载

之前整理过一篇文章总结了 Flexget 的一些常用方法,长久以来都是在 avistaz.to 生成 RSS,订阅下载,但后来发现国内的大多数站点都是使用 NexusPHP 运行,并且 RSS 支持(过滤条件)也不是非常完善,于是就发现了 flexget-nexusphp 这个插件。 flexget-nexusphp 是一个 Flexget 的插件,可以用来过滤 NexusPHP 的内容。 安装插件 Flexget 安装插件的方法非常简单,从 GitHub 获取 nexusphp.py 代码。将该文件移动到 Flexget 配置目录。 如果是和我一 Read more ...

2020-05-29 pt , torrent , bittorrent , nexusphp , flexget , rss

Obsidian 未来的笔记应用

看过我过去文章的人都知道在此之前我都使用 WizNote 来作为本地笔记应用,但是这两年在记笔记这件事情上出现了非常多的可能性,虽然我本人一直在关注着不同类型的笔记应用,从传统的 Evernote,OneNote 到 Notion 等等模块化的笔记应用,多多少少也尝试了一下,但是一直没有深入的去用,因为就我目前的需求,WizNote + 本地的 markdown + vim + git 基本就满足了,直到昨天晚上我在豆瓣上阅读了 笔记类软件的双向链新浪潮 这篇文章,然后我发现原来我在记笔记的时候遇到的一些问题原来还有这样一种解决方式。 存在的问题 我在 Read more ...

2020-05-16 obsidian , note-taking , evernote , linux

分析 Java 内存

What Is Heap The space used by the Java Runtime to allocate memory to Objects and JRE Classes is called Heap. The heap space can be configured using the following JVM arguments: -Xmx<size> — Setting maximum Java heap size -Xms<size> — Setting initial Java heap size Read more ...

2020-05-07 java , heap , java-memory

最近文章

  • 我购买了 Sony WH-1000XM6 我的第一代 [[Sony WH-1000XM]] 终于在陪伴了我将近七年之后光荣退役了——准确地说,是左耳彻底不出声了。耳罩虽然还算完整,充电也正常,就是左边悄无声息地沉默了。单边失声的降噪耳机拿来当装饰品实在是太可惜,就这样,我的 XM1 结束了它漫长的使命。
  • 花了一个多小时认真听李录在哥大的演讲,对价值投资新的理解 昨天花了一个多小时,认真把李录在 2006 年哥伦比亚大学商学院的演讲从头听到尾。说实话,最开始点开这个视频的时候,我以为只是一节普通的投资课,听完之后发现远不止于此——李录几乎是把自己二十多年的思考框架,通过两个亲身经历的真实案例,完整地摊开在你面前。那种感觉不像是在听一堂课,更像是在听一个老朋友坦诚地聊他是怎么看待这个世界、怎么做决策的。
  • screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验 之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。
  • Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手 最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。
  • 推荐我使用的 Agent Skills 随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。