git subtree 简单使用记录

昨天在和朋友讨论两个项目双向同步的问题,比如,两个从同一分支拉出来的两个独立项目各自发展,但又要求定时双向同步的时候,虽然提出了用 remote 可以临时解决一下。不过后来又和朋友讨论起 git subtree 来,在此之前,我如果有需要在项目内部依赖外部独立的项目时,我一般都使用 git submodule 来解决。不过昨天搜索了一下之后发现 git subtree 似乎更加强大,并且已经成为替代 git submodule 的事实方案。所以这里来学习一下。 在使用 git subtree 之前如果你没有用过 git submodule,这里先进行一 Read more ...


Prometheus: 监控系统和时序数据库

Prometheus 是一个用 Go 写的监控系统,最早由 SoundCloud 开发并开源,Prometheus 内置一个时序数据库。Prometheus 受到 Google borgmon 监控系统启发,2012 年起源于 SoundCloud 内部,后来成为第二个加入 Cloud Native Computing Foundation 的项目。 It collects metrics from configured targets at given intervals, evaluates rule expressions, display Read more ...

2020-04-27 prometheus , monitor , tsdb , time-series

使用 asdf-vm 管理编程语言多个版本

更新说明: 这篇文章最初写于 2020 年。asdf 在 0.16.0 之后已经改为 Go 二进制实现,安装方式和部分命令都发生了变化。新版升级问题可以参考asdf 升级 0.16.0 问题记录,如果你准备从 asdf 迁移到 mise,可以继续阅读利用 mise 替换 asdf 的迁移方案。 之前浏览文章的时候偶然看到了 asdf 这个项目,然后惊讶的发现它整合了我之前经常使用的 pyenv 还有不太常用的 jenv, nvm, rvm,通过这一个命令就可以实现,所以立马在机器上试了一下。 Install 安装的过程具体可以参考官网。 Read more ...

2020-04-25 asdf , linux , mac , pyenv , nvm

Linux 内存管理初识

DMA 内存区域,0~16MB 内存。 NORMAL 内存区域,16MB~896MB HIGHMEM,高端内存区域。 用户空间 用户进程访问的内存空间,每个进程有自己的独立用户空间,虚拟地址从 0x00000000 到 0xBFFFFFFF 总容量 3G. 进程与内存 按照”访问属性” 划分五个不同的内存区域。 代码段 存放可执行文件的操作指令,可执行程序在内存中的镜像。 只读,不可写 数据段 可执行文件中已初始化全局变量,静态分配的变量和全局变量。 BSS 未初始化的全局变量 heap heap 用来存放进程运行时被动态分配的内 Read more ...

2020-04-24 linux , memory

现金流桌游

今天和几个小伙伴体验了一下“现金流”这款桌游,其实在很早之前看过《穷爸爸,富爸爸》之后就了解到了这款游戏,但一直没有机会去尝试。很多人把这款桌游“吹”的很神,就像是玩过就能[[财富自由]]一样,虽然实际生活并不会像游戏一样,但多少能从中体验到一些心得。 规则 现金流的规则可以说是非常简单的了,玩过大富翁吗?把大富翁地图上的各种地标换成各种人生事件,领工资,各种机会,生孩子,失业等等,那就是游戏的开始。当然如果要跳出无穷无尽的轮回则需要思考自己手上资产负债表中的各项数字。从“老鼠圈”跳转到人生的快车道。 具体细节的规则网上也有很多,这里就不展开。直接 Read more ...

2020-04-18 cashflow , board-game , fortune

每天学习一个命令:qmv 在文本编辑器中对文件及目录进行编辑

在给 tldr review 提交时,有一个命令引起了我的兴趣,那就是 qmv,当时简单的尝试了一下,浏览了一下 man page。没有仔细的深入,但昨天突然遇到一个需求,我要批量修改一个目录下文件的大小写,需要将大写部分修改成小写,一下子就想起了这个命令。虽然这个命令是作为移动来介绍的,但它也可以作为重命名来使用,毕竟重命名也算是移动的一种嘛。 命令的使用特别简单,直接使用 qmv 后面接目录名即可,然后会打开默认的文本编辑器, 比如vi,然后在其中能看到两列,左边是原始名字,后面是目标名,如果要批量修改重命名那就直接对后面一列进行编辑即可。最后保存 Read more ...

2020-04-13 qmv , linux , command , rename , batch-rename

Github Actions 使用

GitHub Actions 是 GitHub 推出的 CI/CD 工具,通过简单的语法可以做一些 build, deploy 等等的事情。 核心功能与用途 自动执行构建、测试、部署等流程,实现开发流程自动化。 可以根据代码仓库中的事件(如 push、pull request、issue 创建等)自动触发预设的工作流(Workflow)。 支持多种操作系统(Linux、Windows、macOS)的虚拟机环境,也可以使用自托管 Runner。 通过 GitHub Marketplace 可复用和共享他人编写的 Action,减少重复 Read more ...


每天学习一个命令:bandwhich 展示带宽使用

如果你使用我之前推荐过的 asdf,可以直接通过 asdf 来安装 Rust 以及 bandwhich。 安装 增加 rust asdf plugin-add rust 安装 rust 最新版 asdf install rust latest 设置全局生效 asdf global rust 1.51.0 这样你就可以在终端使用 cargo 来安装 bandwhich: cargo install bandwhich 然后将 bandwhich 链接到 /usr/local/bin 中: sudo ln -s /home/ei Read more ...

2020-04-10 linux , bandwhich , asdf

在命令行下给 socks 或者 http 代理测速

在国内不可避免的要用到代理,这些年陆陆续续从 GAE 上的代理,到自己购买 VPS 搭建,从 Shadowsocks 到 V2ray,自己花费了不少的时间,而现在虽然手上也有两台 VPS,但是已经不拿他们作为主要的代理了,我一台 Directspace 的 VPS,线路没有优化过,到国内的延迟略高,而另一台 AWS 的 EC2,虽然地理位置在韩国,也只勉强到能用的阶段。所以这两年陆陆续续不再自己维护代理服务,之前有购买过因为 Ingress 结缘的 Shadowsocks 服务,一直用到现在,虽然有些情况下会发生断流,倒也一直没有放在心上。直到尝试了一周 Read more ...

2020-04-06 speedtest , socks , http_proxy , proxy , vps , v2ray

OpenWrt 学习笔记

硬件 CPU Atheros/QualCom 高通 (QCA) BroadCom 博通 (BCM) MediaTek 联科发 (MTK) RealTek 瑞昱 RAM SDRAM DDR, DDR2, DDR3 ROM(Flash) SPI Flash NOR Flash NAND Flash WiFi 芯片接口 USB(速度相对较慢) PCI-e 软件 BootLoader Wiki CPU, 网卡数据库 Wiki: https://deviwiki.com/ Read more ...

2020-04-05 openwrt , wrt , router , linux , cpu

最近文章

  • Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令 用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。
  • 本地快速切换 Claude Code 和 Codex CLI 账号的几种方案 同时维护个人项目和工作项目的时候,最让我头疼的不是代码本身,而是工具的账号管理。[[Claude Code]] 和 [[Codex]] 这类 AI 编程工具,我在公司有一套账号,个人订阅又是另一套。每次在项目之间切换,都要 claude auth logout 再 claude auth login,不仅耗时,还经常忘了当前用的是哪个账号,写了半天才发现额度消耗到错误的账号上去了。
  • socat:比 netcat 更强大的网络瑞士军刀
  • codex-lb:用负载均衡的思路管理多个 ChatGPT 账号 用 [[Codex]] CLI 做开发的人大概都遇到过这个场景:手头有几个 ChatGPT 账号,分散在不同的订阅计划里,但工具只认一个账号,额度用完了只能手动切换,每次还要重新登录。更头疼的是,当多人共享一个环境,或者想用同一套配置同时跑 Codex CLI 和 OpenCode 时,账号管理很快就变成了一团乱麻。
  • cc-switch:在多个 AI 编码工具之间优雅切换 最近这一年,AI 编码工具的竞争进入了白热化阶段。[[Claude Code]]、[[Gemini CLI]]、[[OpenAI Codex]],每家都在拼命迭代,功能差距越来越小,价格战也越打越猛。于是我开始同时订阅好几个服务,针对不同的任务选用不同的工具——写复杂逻辑用 Claude,快速查文档用 Gemini,处理 Python 脚本用 Codex。