神骏的博客

冲!

突然想写点东西。 现在的状态与2024年下半年完全不同。如果说,去年下半年是一种颓废的状态,现在就是一种亢奋的状态。 虽然离自己想做成的事情还有很长一段路要走,但是我现在丝毫不再犹豫!我知道,那是我终究要去做的事情,不借助任何人的力量,独自一人去做的事情,而我也坚信自己终究能做成。这种认知与感受,是触发现在这种亢奋状态的原因。 独自一人去完成意味着需要学至少两个领域知识,但又何妨?人生...

慎用snakemake的checkpoint模式

背景 最近在用snakemake实现一个病毒的分析流程过程中,遇到了需要根据某个rule的执行结果选择后续分析步骤的情景。根据过去的经验和snakemake官方文档,可以用checkpoint实现,即“数据依赖的条件执行”。 实现分析流程后,进行了测试。虽然总计有998例样本,但是待执行的分析皆为轻量级分析,但是整个流程执行的非常缓慢。推测与checkpoint模式有关(每个执行成功的j...

记1次山地车后变调整

手头有一辆美利达挑战者300(2019款),但日常缺乏保养,用的很粗糙。主要用来通勤,偶尔出去骑行。雨骑之后链条锈蚀,于是购买了WD40除锈。虽然看说明,喷了之后不用清洗,具有除锈、润滑的作用,但我喷涂之后,导致的最直接后果就是起步、上坡链条跳链。放任不管,继续骑了一段时间后,发现后变速不顺畅、后轮偏摆。 决定开始处理。 首先,清洗掉链条、飞轮等处的除锈剂,然后上链条油(赛领自行车专用润...

《精通git第二版》读书笔记·总览

《精通git 第二版》算是一本介绍git版本控制系统不错的入门书,而《git权威指南》是一本关于git的详细参考书。奈何这两本书目前我还没都看完。最近由于需要,重温了下《精通git 第二版》的读书笔记,整理发布到blog中,供有需要的人参考。 正式阅读这本书是在2021年09月,中间可能有误的地方还请参考原书。 ch01 版本控制系统和git。介绍版本控制系统的历史和git基本概念。 ...

《精通git第二版》读书笔记·ch07 git高级命令

选择提交 选择单个提交,可以用SHA-1(简短形式)、分支名、引用日志、祖先引用等方式,具体如下: 简短形式的SHA-1。提供不少于4个sha-1字符,且不含歧义时,即可访问单个提交。 分支名。当某个分支指向某个提交时,可以用该分支名来引用对应的提交。git rev-parse <branchname>可以查看分支对应的提交。 引用日志(reflog)。记录了HE...

《精通git第二版》读书笔记·ch06 github

创建账号和配置 配置ssh访问。配置一个公钥,添加到账户中。 邮件地址。github使用邮件地址区分git提交,可以添加不同的邮件地址。 两步验证(2FA)。强烈建议设置两步验证。 贡献代码 派生(Fork)。github在用户空间创建一个项目副本,具有推送权限,从而参与别人维护的公开项目。将修改提交到项目副本,开启合并请求(pull request),贡献者和维护者可以讨论代码细...

《精通git第二版》读书笔记·ch05 git的分布式工作流程

git的分布式协作可以衍生出不同的工作流程,主要有以下几种: 集中式工作流,即单点协作模型。若干个开发者将自己的工作与仓库进行同步,类似于中心与节点的关系。如果两个开发者同时做了修改,那么第一个开发者推送回服务器后,第二个开发者需要先将第一个人的工作合并进来。 集成管理者工作流。每个开发者有自己仓库的写权限、其他仓库的读权限。例如github的PR。首先从“官方”仓库克隆一个自己的公开仓...

《精通git第二版》读书笔记·ch04 服务器端的git

与他人合作的最佳方式是建立一个共用的仓库。 远程仓库通常是一个裸仓库(没有当前工作目录的仓库),类似于只有.git目录。 传输协议 git支持Local、HTTP、SSH、git四种协议来传输数据。具体如下: Local(本地协议)。远程版本库为硬盘内的一个目录,通过git clone "/xxx/xxx.git"访问,使用硬连接或者直接复制文件。file:///xxx/xxx....

《精通git第二版》读书笔记·ch03 git分支

git处理分支的方式十分轻量,因此鼓励在工作流程中频繁地使用分支与合并。 git保存数据的方式 在提交操作时,git计算每个子目录的校验和,将其保存为树对象。然后创建一个提交对象(commit object),保存了指向树对象的指针、作者信息、提交信息、指向父对象的指针。文件快照保存为blob对象,树对象记录目录结构和blob对象索引,提交对象记录指向树对象的指针和提交信息。 git分...