Pinned Post

Recent Posts

Sequel Ace is the “sequel” to longtime macOS tool Sequel Pro: https://github.com/Sequel-Ace/Sequel-Ace

powerlevel10k,一个漂亮的 mac 终端主题样式: https://github.com/romkatv/powerlevel10k

为某个 git 项目使用指定私钥提交

貌似不能在项目目录中直接配置。
~/.ssh/config 中增加一个 ssh 主机配置:

Host github-id2
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_id2
    Port 22

然后指定 origin 为配置中的主机:

git remote add origin git@github-id2:path/my-repository.git

Mac 平台的一款磁盘读写测试工具: Blackmagic Disk Speed Test

MonitorControl Mac 下用于控制外接显示器亮度、音量的软件: https://github.com/MonitorControl/MonitorControl

重新折腾了一下 Mastodon,搭了个节点 : https://something.vip

ClashX 的配置

目前各大主流服务商的 ClashX 托管配置都搞了一大堆各种规则,这些规则很多是针对不同的网站平台选择不同的线路。
比如:可能定义一个名为 HBO频道 的规则走美国节点,定义一个名为 B站台湾专区 的规则走台湾节点。

然而,我的需求其实很简单: 国内直连,国外选择最快线路。

Go Map、Slice、Chan 的传值方式

对比 Map、Slice、Chan 的传值方式

一个 go 写的服务监控平台: https://github.com/TwinProduction/gatus

一个web模板下载网站: https://templated.co/

儿时做恶梦往往是受鬼怪坏人所吓,如今早已不惧这些牛鬼蛇神,却害怕醒来时的瞬间…

—— 也许大概是因为这意味着该起床上班了吧。

各应用对苹果M1芯片的支持情况跟踪: https://doesitarm.com/

xxd file 以十六进制方式查看 file
xxd -b file 以二进制方式查看 file
-l 限制输出长度, -s 设定起止行数

AWS Linux 自带的包管理器 amazon-linux-extras 挺方便的啊

一个 go 实现的符合 BIP39 规范的助词词生成库: https://github.com/tyler-smith/go-bip39

一些 Go 终端交互库:

Go Wasm(WebAssembly) 相关资料

Rust 模块分文件

初试 Rust 时,对它的 mod 机制很蒙蔽,特别是习惯了 Go 的包机制后。
其实站在编译器的角度来思考就清晰多了。
Rust 编译器只接受 【一个】 .rs文件作为输入,并且只生成一个crate。
所以在 src/main.rs 中,我们使用 mod video; 告诉编译器去在当前位置查找 video.rs./video/mod.rs

如,以下目录结构:

$ tree -L 3 src
src
├── main.rs
└── video
    ├── file.rs
    ├── mod.rs
    └── worker.rs

在此项目中 main.rs 作为入口文件,然后在 main.rs 中定义 video 模块:

/// src/main.rs
mod video;

fn main() {
    video::do_work();
}

于是编译器找到 video/mod.rs 文件:


// 将此mod下的 worker mod (文件:video/worker.rs) 中的 say()函数 发布到与当前同级别的空间(外部可以 video::say() 的方式调用)
pub use self::worker::say; 

// 告诉编译器去当前目录下找 `file.rs` 或 `file/mod.rs`
pub mod file;

pub mod worker;

pub fn do_work() {
    let files = file::all_files();
    for f in files.iter() {
        println!("得到文件:{}", f.file_name().to_str().unwrap());
        worker::dowork(f);
    }
}