html 转 pdf 命令行工具 wkhtmltopdf

最近因为用 HTML 写了一个文档,当想要输出时保存为 PDF,而 Chrome 自带的打印功能,本来就能够快速的保存为 PDF,但是却保留不了页面中的链接,所以找到了这个 wkhtmltopdf. 官网地址:https://wkhtmltopdf.org/ wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit r Read more ...

2019-01-05 html , pdf , linux , command

Java 模板引擎 freemarker

FreeMarker is a free Java-based template engine, originally focusing on dynamic web page generation with MVC software architecture. However, it is a general purpose template engine, with no dependency on servlets or HTTP or HTML, and is thus often used for generating source code, Read more ...


RSS 订阅列表整理

用 RSS 这么多年,陆陆续续给自己的订阅列表增加,删除,更新了很多的订阅源,也有很多的订阅源陆陆续续的失效,也有很多的新博客陆陆续续的涌现,不过如今的 RSS 早已经不像当年,很多新站点甚至都不会再提供 RSS 输出。 之前偶然间看到过一篇关于 RSS 整理的文章,觉得定期检视一下自己的订阅,更新也好,删除也好,整理让这些订阅源继续存在的理由也好,或者分享给更多的人也好,都是一件不错的事情。 我的所有订阅源都从 Google Reader 迁移到了 InoReader,订阅列表好几百项就不单独一一例举,只是将我平时经常查阅的,我觉得非常值得关注的列 Read more ...

2019-01-03 rss , blog , blogger

2018 读书记录

又到一年的年末,和前几年 一样,总需要总结下今年,再畅想一下明年,前些年有些时候会用 Google Photos 来存书的封面,也会记录下书的名字,今年就直接用了豆瓣的豆列 来记录了。 虚构文学 相较于前两年对东野圭吾的狂热,今年刻意地减少了虚构文学的数量,一方面也是因为东野圭吾的小说已经看遍,再没有另外一个小说家能够如此吸引我。所以看今年的书单,除了《造彩虹的人》《白金数据》外,只有特德姜的《你一生的故事》等少数几本。 人文哲学 人文哲学或许是今年最大的改变,这都要从哈耶克的《通往奴役之路》开始,因为这本书听了一档人文通识解读的播客,自此之后看着一 Read more ...

2018-12-30 reading , book , douban , plan

用 Google Calendar 培养习惯

这一个条目在 Trello 的代办事项中已经躺了快两周,期间一直在寻找合适的任务提醒 app 能够来帮助初期养成一定的习惯,没想到寻寻觅觅最后竟然又回到了 Google Calendar 的怀抱。 培养习惯 个人原来就有一习惯,对于需要长期规划的有固定时间的事情一般都会记录在 Google Calendar 中,比如周期性长时间的课程,或者一次性的旅程时间安排等等,而对于非周期性任务用 Trello 来管理,所以一直想要寻找一个能够周期性提醒,关键是要手机通知栏提醒,但是使用起来又比较方便(可以一键 mark as done,定制任务快捷)的应用,下面 Read more ...

2018-12-29 google , google-calendar , habit , app

Java 查漏补缺之 Exception 和 RuntimeException

通常来讲 RuntimeException 是在编码过程中可以被避免的 Exception ,比如说 NullPointerException, ArrayIndexOutOfBoundException 等。如果每次都在调用前检查 null,就永远不会发生 NullPointerException,ArrayIndexOutOfBoundException 同理。RuntimeException 不会被编译器检查。 Java 中有两种类型异常,一种是 checked exceptions,一种是 un-checked exceptions。检查的异常 Read more ...

2018-12-24 java , exception

从零开始搭建 NAS: 硬件篇

自从年初注册了 PT 站 就发现原来的 QNAP TS453bmini 的硬盘就不堪重负,所以想要把下载和真正想要管理的数据安全的从硬件上隔离开,所以才有了这篇文章。 研究阶段 自行组装 NAS 相较于买成品 NAS 中间可能遇上许许多多坑,不过填坑的过程就是学习的过程,能学到很多硬件知识,并且通过对自己需求的合理规划能够组一台最合理的符合自己需求的机器。 下面就记录一下研究过程中新接触到的概念。 ITX 在看主板的时候不可避免的会看到这个 ITX,实际上 ITX 就是主板的一个大小,ITX 或者又称为 Mini-ITX 是一块 17 * 17cm Read more ...

2018-12-24 nas , linux , cpu , motherboard

每天学习一个命令:jq 命令行下处理 JSON

jq 是一个命令行下的 JSON 字符串处理工具,就像 sed 对于文本一样,jq 对应着 json 文件,jq 命令可以不同方式转换 JSON。jq 可以接受文本输入,默认情况下,jq 从 stdin 读取 JSON 流。通过和管道的组合可以非常方便的处理 JSON。 jq is a lightweight and flexible command-line JSON processor 使用实例 直接处理文件 js -I '.' input.json cat input.json | jq -I '.' jq 只能接受标准 JSO Read more ...

2018-12-21 jq , json , linux , command

日志数据脱敏方法研究

日志文件中的敏感信息比如密码,电话号码等等进行过滤处理。第一个想到的方法就是去 log4j 中自定义 Appender,在 Appender 中正则匹配敏感信息进行过滤。 log4j 日志框架在之前 的文章中也也说过,主要有三个组件,Logger,Appenders 和 Layout,要过滤日志内容解决方法也就是从这三个地方着手。 log 时手动处理 Logger 着手就是在打日志的时候就处理,从根源解决。最精确的处理就是在每个类敏感的字段上手动处理,在打印日志时,封装方法手动转换 String 。这种方法唯一的缺点就是对于一个大型成熟的系统,要修改 Read more ...

2018-12-20 log4j , log , desensitize , 日志 , 脱敏

log4j PatternLayout 输出模板

log4j 下的 PatternLayout 只是 Layout 的一种,用来格式化日志文件的输出。在 PatternLayout 中,配置一个样板字符串,通过该字符串来定义输出格式。 log4j 还提供了其他三种 Layout org.apache.log4j.HTMLLayout(以 HTML 表格形式布局) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 这个类的目标是格式化 Logg Read more ...

2018-12-19 log4j , java , log

最近文章

  • 关于习惯养成和打破的科学 昨天,花了半天的时间去听了 Andrew Huberman 的一个 YouTube 视频 —- The Science of Making & Breaking Habits,主要讲的是从神经科学结合心理学的角度,探讨了习惯的形成和破除机制,并且 Huberman 教授提供了多项实用的工具来帮助我们培养习惯以及破除我们不希望的习惯。
  • Rancher 中创建 K3s 集群 CA 检查报错解决方案 在之前的文章中遗留下来一些没有解决的问题,当时只是记录了一下, 后来因为只使用了 local 集群就没有继续调查,现在想要创建 K3s 集群的时候再次遇到了类似的问题。
  • LingQ:通过可理解输入学习语言 之前有写过一篇文章,大致地总结了一下自己关于Duolingo的一些想法,前段时间在打卡了 800 天之后,把 Duolingo 中的英语韩语和日语全部通关到了最后只能每天重复,所以发了一个推特帖子想要寻找一下比 Duolingo 更深度一些,每天可以坚持记忆一些语言支持的「工具」。我个人非常不喜欢直接拿一个背单词应用就开始背诵的方式,虽然我承认只要长期坚持还是会有一定的效果,但是一方面是效率很低,背过的单词不容易被想起来,另外一方面也是单纯的背单词非常的无聊。我也尝试过在浏览网页的时候将生词存放到 Anki 中,然后定期回顾,但是单词脱离了上下文,总是感觉还是像是在一个个过单词,我在之前的文章中介绍过 Comprehensible Input (可理解输入),但实际上自己一直没有好好地践行,看过一些日剧,日综,但是现在还是韩剧/韩综看得更多,在日常生活中英文的材料看得更多,日文的内容输入相对就比较少,也尝试过找一些日语的播客,但是以我现在的水平,最基础的都有一些费力的情况下,还是没有达到可以收听日语播客的程度。所以,这段时间我就是一直在没有找到比 Duolingo 更好的,又能够随时随地可以拿出来打个卡的服务,直到我看到了 LingQ,第一次注意到 LingQ 还是在 GitHub 中看到一个仓库是将 NHK Easy News 导入到 LingQ,隔天我就又看到一位朋友也在推荐 LingQ 作为沉浸式阅读工具,所以我就决定好好来研究一个这个工具。
  • Amazon 推出 Kiro AI IDE 新一代 AI 辅助集成开发环境 在 AI 辅助代码生成领域,从来不缺竞争者,现在 Amazon 正式加入了战争推出 Kiro AI IDE,Amazon 在之前就推出过智能助手 Amazon Q,以及代码补全插件 CodeWhisperer,但是在激烈的代码生成领域依然没有竞争过 Cursor,Windsurf,Claude Code 等一众的领跑者,甚至声量都没超过 Gemini CLI。现在推出的 Kiro 是一个集成的开发环境,至此互联网巨头中除了苹果没有推出 AI 辅助编码的工具之外所有的公司都已经有了对应的产品。
  • SuperClaude 让 Claude Code 更专业更顺手 SuperClaude 是一个 开源的 Claude Code 增强工具,提供了额外的命令,人物角色(Personas),以及更好的 MCP 服务集成。

赞助