游方塔园

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

阅读全文

使用 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 安装文……

阅读全文

有关 2017 流水账和胡思乱想的记录

好久没有写过文字了,前几篇文也是自己从 Google Doc 中摘出来的工作日志,拿来凑凑数,刷新下 Github 的时间线,有点儿不太像话。看看自己书桌上叠起来超过一尺高的新书才知道,想看的还没来得及看完,想学的也还没来得及学会,想做的也没有做得很好,一年就过去了。2017 是我来魔都的第 5 年,回想这 5 年,自己的……

阅读全文