与 Gradle 一见如故

W:“与 Gradle 一见如故?你就是 Gradle?” G:“对,我就是那个用来构建 Java 项目的大象 Gradle。 ” W:“我好像天天都在用你啊。看,我的项目都是用你构建的。” G:“但你不一定真的认识我,你每次修改点构建代码时是不是都要问下谷哥哥(Google)或溢栈哥哥(StackOverflow……

阅读全文

游方塔园

昨日陪儿子参加幼儿园秋游活动,游览了一下位于松江区的方塔园,校方安排幼儿在白色布袋上绘画,于是有了以下几张大作。 观察幼儿绘画的过程挺有意思的,我们父母无须提供任何绘画的指导,只要等待小朋友们绘画完毕,来听听他们关于自己的画的解释即可。 关于上面的画,儿子是这样解释的。 他和爸爸来看方……

阅读全文

使用 wireguard-go 搭建 VPN

背景 搭建 VPN 方便连接无公网 IP 云主机进行开发,wireguard 配置比 openvpn 要简单很多,wireguard 是通过 Linux 内核模块的方式实现的,这样性能最好,但是只能用在 Linux 系统上。本文使用的 wireguard-go, 则是使用 golang 实现的 wireguard 协议,属于用户空间的实现,性能没有内核模块方式好,但好处就是更……

阅读全文

儿子的画

2019/10/13 上午大作 坦克 2019/10/10 晚大作 1 2 3 4 小朋友自己介绍: 爸爸妈妈宝宝奶奶和他的同学,右一是奶奶,右二是爸爸,右三是他自己,右四是妈妈,奶奶没地方画了 点评: 很明显的出现头足人像……

阅读全文

树莓派系统日志配置

背景 树莓派 raspbian 系统日志默认的配置会导致日志过大而占用太多的存储空间,并且频繁写日志也可能减短 EMMC 和 SD 卡的寿命,需要重新配置来满足项目的需求。 日志位置 /var/log /var/log/syslog /var/log/daemon.log /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages 配置 rsyslog 与 logrotate rsyslog 的配置文件为 /etc/rsyslog.conf, 找到其中 RULES 段 ############### #### RULES #### ############### # # First some standard log files. Log by facility. # auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log #daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log 将其中……

阅读全文

如何修改 Linux 用户的 UID 和组的 GID

问题 在使用 Docker 或者 NFS 的时候,需要文件系统挂在到不同的系统中拥有正确的读写权限,需要指定文件所属用户和组的 uid 和 gid。在创建用户和组的时候,系统会自动分配对应的值,这导致在不同的系统中很容易造成 uid 和 gid 不一样而造成读写权限混乱。 例如在系统 A 中,用户 git 的 uid 和组 git 的gid 如下: [[email protected] ~]$ id git uid=1001(git) gid=1001(git)……

阅读全文

CentOS 7 上使用 pyenv 安装 Python 3.7.3

概要 本文记录了在 CentOS 7.6 系统上通过 pyenv 安装 Python 3.7.3 的过程。 环境 CentOS Linux release 7.6.1810 (Core) Kernel 3 3.10.0-957.el7.x86_64 Pyenv 1.2.11 安装 pyenv $ curl https://pyenv.run | bash 然后根据提示把以下内容放到 ~/.bashrc 文件末尾 # Load pyenv automatically by adding # the following to ~/.bashrc: export PATH="/root/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" 安装 Python 3.7.3 准备 $ sudo yum -y install xz bzip2 bzip2-devel sqlite-devel gcc openssl-devel readline-devel zlib-devel libffi-devel 安装 pyenv install 3.7.3 验证 $ pyenv versions * system (set by /root/.pyenv/version) 3.7.3 参考 https://github.com/pyenv/pyenv/issues/1183 https://github.com/pyenv/pyenv-installer https://github.com/pyenv/pyenv……

阅读全文

Java 进阶要点

[填坑]自己学习 Java 和用 Java 过程中的理解和备忘的主要的点, 后续会准备一些列文章来说明。 JDK 11 Oracle 不在免费提供 LTS 版本了,包括 JDK 8 ZGC, 可伸缩的、低延迟的垃圾收集器,STW 时间不超过 10ms Nashorn 标记为 Deprecate 了 JDK 9 module try-catch 简化 _ 为保留关键字 var 将在 JDK 10 中作为关键字, 作为本地变量类型推断关键字 字符串相关,主要是 Compact String, 用……

阅读全文

树莓派 CM3/CM3+ 刷写系统

准备 阅读Flashing the Compute Module eMMC 准备一个可以刷系统的底板,我用的是微雪Compute-Module-IO-Board-Plus 步骤(Linux 系统下刷系统,可以使用树莓派来刷机) sudo apt install git libusb-1.0-0-dev git clone --depth=1 https://github.com/raspberrypi/usbboot && cd usbboot && make sudo ./rpiboot 连好线,跳线部分见各自底板的手册 拔掉 USB SLAVE 1/2/3/4 拔掉 SELECT 跳线帽 将 BOOT ENABLE USB SLAVE 跳线帽……

阅读全文

使用 Docker 方式安装 Gitlab,没你想得那么简单

为什么要写这篇文章? 曾经几年前在 Docker 还没有广泛应用的时候,在公司使用过源码的方式安装和升级过 Gitlab,虽远没有 Docker 方便,因为自己对 Linux 系统的理解,所以整体上感觉还是挺简单的。这几年随着 Docker 的普及,使得安装 Gitlab 更加的容易,不仅方便了我这样的老鸟,也更方便了小白用户们。但是 Gitlab 官方的 Docker 安装文……

阅读全文