ESPIER 一只JAVA程序猿的日常

关于读书的一些想法

读书的类型

我读书的类型十分驳杂,技术书、 自然科学、社会学、小说、网文、散文、历史、哲学、宗教、中医等等我都会去读一些。这些类型的书籍里面我最喜欢的大概是宗教学相关的书籍吧,我本人是没有什么信仰的,但是我总觉得人如果没有信仰,精神上就会缺少一些有信仰者才有的特质,为了理解这些东西,我看了很多各种各样宗教相关的书籍,可是到最后我发现,我在寻求理解的道路上反而陷入了对那些玄之又玄的东西的学习和思考XD,当然,深入了解之后你也会发现这些东西是非常有趣的,尤其是中国的宗教,不管是道教还是佛教,处处都透露着中国传统文化中才具有的独特的处世哲学和对于问题的哲学思辨。

渐渐地扯跑题了,今天想说的并不是我多喜欢宗教书籍,主要还是想仔细地聊一聊各种书籍对于我的影响,以及我在读书过程中的所想、所得。

一种实现后端截图的思路

背景

公司项目涉及到不少PDF导出的需求,其中不乏列表数据、复杂报表的导出,而用户往往希望在PDF中保留页面中看到的布局和图表样式。因此,我初步考虑通过截图的形式保留页面效果,然后基于flying-saucer-pdf这个Java库去生成PDF。

技术选型

在这个功能规划初期我做了不少开源组件的调研,首先我放弃了前端方案,因为不少数据是需要翻页或者页面滚动的,如果在前端去做,交互体验会很迷惑。

那么就只有考虑后端方案,大概有几种思路:

  1. Java原生的页面渲染生成图片

    这个方案首先被我放弃了,首先目前市面上大部分的浏览器都是基于Chrome的(咱们先不谈火狐和Safari哈),渲染效果如果需要和浏览器保持一致,Java原生的库几乎就不可能达到要求。

    此外,样式的渲染和一些脚本的执行,通过Java原生库也不太可能做到,毕竟不少页面不都是单纯的静态数据。

  2. 基于ChromeDriver的自动测试工具

    其实如果需求简单,这是一个不错的选择,selenium很强大,而且接口也做了优秀的封装。不过本身过于笨重了,启动周期也相对较长。

  3. CEF

    最后我选择的是这个方案,这个其实和ChromeDriver的方式类似,不过大部分功能都需要自己实现handler去处理,不过启动快,资源占用也更少,有官方的 JCEF 库可以用。

解决Ubuntu24.04下idea闪退

问题说明

在非root用户下预计不会存在这个问题, 只有在root用户的图形化界面中, 打开jetbrains系列软件后, 不到几秒就会闪退。

问题原因

jetbrains下的软件基本都使用了jcef,这个和基于Chromium浏览器在root用户下无法启动是一样的,都是由于无法使用沙盒造成的,因此只要将沙盒禁用就好。

Clojure+Java使用deps.edn混合构建

简述

  公司有一个项目我用clojure写了一个数据处理的SDK,里面混合了Java和Clojure的代码,之前用习惯了Leiningen,不过慢慢的感觉Leiningen越来越慢了(不知道是不是错觉),这次打算使用deps.edn管理项目。

环境准备(包含开发工具相关的包)

  • windows: 建议使用scoop进行软件的安装
  • linux: 建议使用mise
  • macos: 那肯定是使用brew啦, 当然也可以用mise

# windows
PS> scoop install openjdk
PS> scoop install clojure
PS> scoop install clojure-lsp
PS> scoop install clj-deps

# mise
$ mise install java
$ mise install clojure
$ sudo bash < <(curl -s https://raw.githubusercontent.com/clojure-lsp/clojure-lsp/master/install)

# macos
$ brew install openjdk
$ brew install clojure
$ brew install clojure-lsp/brew/clojure-lsp-native

记录一些Docker清理的命令

查看磁盘占用


# 切换到docker文件的目录
$ cd /path/to/docker

# 查看磁盘占用情况
$ du --max-depth=1 -h .

# 查看整体磁盘使用情况
$ df -h

将任意可执行程序注册成系统服务(Windows)

基本说明

Windows系统支持将可执行程序注册成系统服务,以便在系统启动时自动运行。但是,对于一些第三方程序,可能无法直接使用系统提供的注册工具。因此,需要编写脚本或使用其他方法来实现程序的注册。

在Windows系统中,可以使用sc.exe命令来注册服务。具体用法可以参考Windows官方文档或者使用sc.exe /?命令获取帮助信息。

CentOS7.9离线安装Docker

安装 Docker 服务

需要下载docker 离线包, 我使用的是 docker-19.03.9.tgz 这个版本。

然后执行解压命令:

tar xvfz docker-19.03.09.tgz

安装 docker 及服务

cp docker/* /usr/bin/
touch /etc/systemd/system/docker.socket
touch /etc/systemd/system/docker.service
touch /etc/systemd/system/containerd.service

MacOS运行app提示"已损坏,无法打开"

今天安装fpcupdeluxe,发现下载下来的app运行提示"已损坏,无法打开"。
查了一些资料,发现需要进行如下操作:

Msys2启动加速

关于运动减肥的一些经验之谈

篇首语

  好久没写博客了,最近公司的事情搞得我一个头两个大,不禁感慨,PM真的不是人干的活啊(当PM的小伙伴别打我 XD)。

  算了,闲话少叙,还是说说为啥写减肥吧。

  说到减肥,其实应该是不少小伙伴们比较关心的话题(当然,如果你不关心这个话题也请关注一下自己的体重,和体重带给自己的外貌、身体状况、求偶等多方面的影响,以及这些影响是正面的?还是负面的?),尤其是在工作以后,别的先不说,小肚子肯定有的。我身边的同事有的也很瘦,但是小肚子真的是一个比一个大。随之而来的,就是脂肪肝等等一堆肥胖带来的并发症。。。