Logback 基本使用介绍

[[Logback]] 是 log4j 的创始人开发设计的另一个开源日志组件,期望成为 log4j 项目的继任者,相较于 log4j,Logback 有一些优势。 更快的实现,更小的内存占用 充分的测试,Extensive battery of tests 可以直接使用 [[SLF4J]] 接口 健全的文档 可以通过 XML 或 Groovy 进行配置 Logback 可以在配置更改后自动加载 可以优雅的从 IO 失败中恢复 自动移除老的日志存档 自动压缩存档日志文件 在 Prudent mode 模式中,在不 Read more ...

2020-12-10 logback , spring , java , logger , slf4j

使用 mdBook 生成在线文档

很早以前就用过 [[GitBook]] 来将 Markdown 文件生成静态网页1,但是后来 GitBook 命令行工具不再持续的更新,开发团队转向了维护商业版本的 GitBook 之后就用的少了。 但随后就发现了使用 [[Rust]] 编写的 [[mdBook]],体验和 GitBook 一致,基本上可以完美的代替 GitBook。有趣的是官方的介绍也是对标 GitBook 的: Create book from markdown files. Like Gitbook but implemented in Rust. mdBooK 的官 Read more ...


我的 IntelliJ IDEA Vim 插件配置

IdeaVim 是 IntelliJ IDEA 编辑器下一款模拟 Vim 模式及快捷键的开源插件。鉴于大部分的时间都在 IntelliJ IDEA 下工作,所以总结一下在 IDEA 下使用 Vim 的一些快捷方式。 阅读完本文之后,你可以 在 IntelliJ IDEA 下完全通过键盘操作完成 99% 的操作 可以通过组合按键实现任意自己想达到的操作 保持在多个平台(macOS,Linux,Windows) 下操作一致 为什么要用 IdeaVim 既充分利用了 IntelliJ 提供的代码补全,重构,代码浏览等等功能,又可以 Read more ...


图片管理工具 Eagle

远在移动互联网还没有那么发达的今天,Google 曾经收购过一家图片管理与分享的网站叫做 Picasa,Picasa 同时提供了一个跨平台的照片管理工具 Picasa Desktop,用这个工具不仅可以非常方便的管理本地的图片文件,也可以非常方便的分享到 Picasa Web 上,然而随着移动互联网的到来,以及 Google 的转型,Picasa 的服务在 Google 变得没有那么重要,随即在 2016 年停止了服务,我的图片管理也被迫迁移到了 Google Photos。然而一切都开始变得不方便,Google Photos 内自动备份的照片,相册开始 Read more ...


提升 mysqldump 导入导出 MySQL 的速度

在前段时间网上泄漏出来一个巨大包括了近 8 亿 QQ 账号的绑定电话号码数据库,于是想着导入到本地的 MySQL 看看,提升一下查询的速度,因为这个巨大的绑定关系,即使用 grep 查询也需要花费非常多的时间。 于是我新建了表 CREATE TABLE `qq_bind` ( `phone` bigint NOT NULL, `qq` bigint DEFAULT NULL, KEY `ix_qq_bind` (`phone`,`qq`), KEY `ix_qq` (`qq`) ) ENGINE=InnoDB DEFAULT CHAR Read more ...

2020-11-25 mysql , linux , mysqldump , sql , methodology

Mac 应用篇:Hammerspoon 自动化工具使用

这是一篇耽搁了很久,一直躺在我的 Obsidian 笔记中的一篇文章,一直就想好好介绍一下 Hammerspoon,但是因为过去虽然也在用 macOS,但是使用最多的还是 Ubuntu,Hammerspoon 只能在 macOS 上使用,就没有那么大的兴致再花时间学习它的使用。但最近更新了一下系统,发现 Hammerspoon 出了一点问题,没有了 Hammerspoon 之后我才发现很多不适应的地方,那就在花一点时间再梳理一下我的配置。 Hammerspoon 是什么? Hammerspoon 是一个 macOS 上开源的自动化工具,什么叫做自动化工 Read more ...


我的 Obsidian 笔记跨设备同步方案

自从半年前发现了 Obsidian 这款笔记软件,我就开始大量的使用该应用做笔记,有人说过:「工具是开发者方法论的固化」。这么多年了我一直有一种工具控的倾向,往往同一个需求会对比可能的所有方案,最后再决定一个,但是近些年来我越来越倾向于「简单就是好」,并且数据要由自己掌控的「工具选择逻辑」。 Do one thing and do it well 基于上面的选择逻辑,我的 Obsidian 跨平台同步工具,我选择了: Syncthing,作为文件同步工具 Markor,作为 Android 上的 Markdown 编辑器,我提交了一段模板 Read more ...


配置 Rime 在 Vim 下退出编辑模式时自动切换成英文输入法

半年以前在 Obisidian 的文章下面有人曾经问过我一个问题,如何在 Vim 或者其他使用 Vim 模式的编辑器,比如 IntelliJ,或者 Obisidian 开启 Vim 模式后方便地切换中英文输入法,因为在编辑模式和普通模式下,需要经常切换输入法,使得体验变得非常槽糕。 这个问题一直萦绕再我脑海里,直到今天再整理关于 Rime 相关的笔记的时候发现 macOS 下的 squirrel 支持了一个 vim_mode 选项,这使得我们可以在配置中定义在哪些应用中,当我们按下 Esc 的时候将 Rime 自动切换成英文状态。1 配置 在 Read more ...

2020-11-21 rime , macos , vim , vim-mode , input-method , ime , obsidian

使用 MusicBrainz 管理我的音乐库

自从 2014 年总结整理了当年所有流行的音乐网站 之后就一直使用网易云音乐到今天,然而这些年的发展过程中多多少少产生了一些变化,虾米没了,Google Play Music 也没有了。而如今网易云音乐也出现了各种各样的问题,虽然有些问题可以或多或少的被规避,但网易用起来就是没有那么舒服了。 我在原来的那篇文章中提到了互联网化,以及伴随着移动设备的发展,我个人偏好的几个产品特点: WEB 化 同步账号系统 跨平台 UGC 用户贡献 这几点虽然现在网易云音乐依然做的非常不错,并且能推出 Linux 版本这件事情就是值得称赞的。而所 Read more ...


Asus RT-AC86U 初始设置

前些天给家里买手机正好凑单了一个 Asus RT-AC86U,正好可以代替出了两次故障的小米 3G。 提前工作 登录管理后台(http://router.asus.com/Main_Login.asp)启用 SSH (系统管理 - 系统设置 - 服务 - 启用 SSH) 开启 JFFS 分区,系统管理 - 系统设置 - Persistent JFFS2 partition - Enable JFFS custom scripts and configs U 盘格式成 ext4 插到路由器 一个已经刷成 Merlin 固件 的路由器 Read more ...

2020-11-13 router , asus , 路由器 , linux , ssh , entware

最近文章

  • Claude Code 第三方 API 代理配置 Headroom 最近在给自己的 AI 编程工作流加入 [[Headroom]] 上下文压缩工具时,遇到了一个需要特别注意的配置问题。相信有不少人和我一样,为了降低成本或者改善访问体验,已经在 [[Claude Code]] 或 [[Codex]] 里配置了第三方 API 代理,比如一些第三方聚合平台或者自建的转发服务。这时候想再套上一层 Headroom 做 Token 压缩,就需要特别注意配置细节,不然两层代理会打架。
  • Headroom:让 AI Agent 少花冤枉钱的上下文压缩工具 最近一段时间我在深度使用 [[Claude Code]] 做开发工作,用得越多,账单就越触目惊心。一次稍微复杂一点的任务,比如让它读取几个文件、搜索一下代码、跑一下测试,轻轻松松就能烧掉超过 100K 的 Token。更让人无奈的是,这 100K 里面有相当大一部分是重复冗余的内容——工具调用的输出、日志、搜索结果,它们被原封不动地塞进上下文,再一次次地发给模型,而模型其实只需要其中很小一部分关键信息。
  • 用 Harbor 搭建私有 Docker Registry:从安装到日常使用的完整实践 我维护过几个跑在自己服务器上的小项目,构建出来的 [[Docker]] 镜像最早都是直接推到 [[Docker Hub]] 上的。用了一段时间之后开始觉得别扭:一些只在内网跑的服务镜像,没必要也不应该传到公开的仓库;Docker Hub 对匿名拉取做了限流之后,CI 流水线偶尔会因为触发了速率限制而失败;再加上想给不同的项目、不同的同事分配不同的访问权限时,公共仓库这套体系根本满足不了。折腾到后来我意识到,是时候在自己的机器上搭一个真正能用的私有镜像仓库了。
  • 用 New API 打造个人 AI 网关:统一管理所有大语言模型接口 这段时间我同时用着好几个大语言模型服务:日常写作和代码靠 [[Claude]],轻量任务交给 [[Codex]],搜索增强用 [[Antigravity]],还有几个本地跑着 [[Ollama]] 的小模型供离线场景使用。每个平台各自的 API Key 散落在项目环境变量里,月底要去好几个后台分别对账,想横向对比两个模型的输出还得打开不同的网页或客户端来回切换,很费事。
  • Surfingkeys:比 Vimium 更强大的浏览器键盘控制扩展 最早接触 [[Vimium]] 是在学习 Vim 编辑器之后,那种能用键盘完全控制浏览器的感觉确实让人着迷。不用频繁移手到鼠标,链接跳转、页面滚动、标签切换全用键盘搞定,效率提升的体验是实实在在的。用了几年 Vimium 之后,我开始接触到 [[Surfingkeys]],起初以为不过是另一个同类扩展,但深入用下来才发现这两者的差距远比我想象的大。