列表2024-week12

#最近做的事

#ssh 密钥提示

每次通过 ssh 连接到一个新的服务器时都会提示加到 known_hosts 中,但是如果不小心加错了,就会每次只要进行 git 提交就会提示,解决方案:

1
2
ssh-keygen -R github.com
ssh-keyscan github.com >> ~/.ssh/known_hosts

列表2024-week09

#最近做的事

#cp 软链接

linux 下执行cp命令的时候,软链接只会拷贝一个快捷方式,不会拷贝真正的内容。
查询得知,这是cp的默认逻辑,使用 -L--dereference 选项时,cp 命令会复制链接指向的文件或目录的内容,而不是链接本身。

#安卓安装 linux

失败了= =,之前曾经成功过,有时间再研究

#MySQL 的 utf-8 问题

MySQL不支持 emoji 的原因是它的 utf8 实际上只能处理 3 个字节的 unicode 字符,但是目前的 unicode 是四字节的。

frp配置记录

#前言

ngrok 的证书有点难弄,导致经常 ssh 宕机,换frp

好处:

  • 配置简单
  • 不需要证书

列表2024-week08

#最近做的事

#自建网盘

构建网盘本身是很简单的过程,网上有很多开源的项目,比如:https://github.com/cloudreve/cloudreve

但是相应的生态太难跟进了

目前调研已知问题:

  • webdav 传数据会丢失文件本来的时间信息(其它信息待确定)
  • 很难有通用的手机 app

#golang struct对齐

#相关链接

#w3m

一个命令行网页浏览工具,比较方便阅读:

1
brew install w3m

不过不能被wakatime记录,突然有点不想用了。

#golang 范型

如果你经常要分别为不同的类型写完全相同逻辑的代码,那么使用泛型将是最合适的选择
在使用泛型的时候我们只能放弃使用匿名结构体,对于很多场景来说这会造成麻烦(最主要麻烦集中在单元测试的时候,为泛型做单元测试会非常麻烦)

列表2024-week07

#最近做的事

#tmux

每次要恢复一堆窗口好烦,用 tmux 了。
因为日常开发需要开 10 多个命令行窗口,每次重启都要手动开启,没想到这是我用tmux的原因= =

1
brew install tmux
1
2
3
4
cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

prefix c:创建一个新窗口,状态栏会显示多个窗口的信息。
prefix p:切换到上一个窗口(按照状态栏上的顺序)。
prefix n:切换到下一个窗口。
prefix <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
prefix w:从列表中选择窗口。
prefix ,:窗口重命名。

prefix %:划分左右两个窗格。
prefix ":划分上下两个窗格。
prefix <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键 ↓。
prefix ;:光标切换到上一个窗格。
prefix o:光标切换到下一个窗格。
prefix {:当前窗格与上一个窗格交换位置。
prefix }:当前窗格与下一个窗格交换位置。
prefix Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
prefix Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
prefix x:关闭当前窗格。
prefix !:将当前窗格拆分为一个独立窗口。
prefix z:当前窗格全屏显示,再使用一次会变回原来大小。
prefix Ctrl+<arrow key>:按箭头方向调整窗格大小。
prefix q:显示窗格编号。

开启自动保存会话只需要把.tmux.conf.local的几行注释打开即可:

1
2
3
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
  • 自动保存会话的地址为:/Users/onns/.local/share/tmux/resurrect

#相关链接

列表2024-week06

#最近做的事

#WaitGroup 原理

是我看到众多文章中逻辑最清晰的。
通过信号量控制并发问题,信号量的实现原理待继续阅读。

#《火星救援》

重新看了一遍经典影片,并查询了一些当初有疑问的点。

  • 原著说维生素、蛋白质都足够生存,缺的只是卡路里(通过土豆获取)。
  • 电影只交代了如何制造食物和水,没有谈及氧气,查了一下,已经有通过二氧化碳制取氧气和碳的设备。

#熟悉 Obsidian

有一款可以在里面边看网页边记笔记的浏览器插件,可用性有待研究。

目前已经逐步在把工作中的文档迁移到Obsidian,真的很利于检索文件或者内容。

想跨仓库引用笔记好像不可行,会被拷贝一份文件到当前仓库= =

#信号量

这篇文章底部有一些链接也可以同步阅读。

#内联函数inline

C 语言中的定义,在调用处展开函数。

#tmux 了解

了解下来是 screen 的升级版,但是目前应该没有类似的需求,因为工作无法远程所以不会有保持会话的需求。

#vim 技巧

  • 高亮选区的范围由其两个端点界定。其中一端固定,而另一端可以随光标自由移动,我们可以用 o 键来切换其活动的端点。
  • 启用了wrap之后,长度会折叠,出现屏幕行与实际行不同的情况。gj作用于屏幕行,j作用于实际行。
  • 一个单词由字母、数字、下划线,或其他非空白字符的序列组成,单词间以空白字符分隔。而字串的定义则更简单,它由非空白字符序列组成,字串间以空白字符分隔。
  • WBEgE是面向字串的移动方式。
  • 可视模式下,会有范围限定词,t是一个特殊的,代表 xml 或者 html 这类的标签选定(感觉算是特殊优化)。
  • m{a-zA-Z}命令会用选定的字母标记当前光标所在位置。小写位置标记只在每个缓冲区里局部可见,而大写位置标记则全局可见。
  • '{mark}命令跳到位置标记所在行,并把光标置于该行第一个非空白字符上;而 `{mark} 命令则把光标移动到设置此位置标记时光标所在之处,也就是说,它同时恢复行、列的位置。

跳转位置