2021年22周:
Github Project Board 统计
践行过敏捷实践的团队都用过白板吧,使用最多的有 Trello,Jira,最近 Github 也出了个 Project,由于和 Github 的血亲关系,很多团队开始转向 Github Project。
Github Project 基本还原了 Trello 的主要功能,但是缺乏丰富的插件,目前还没有看到 Github 开放接口来支持插件。没有插件的 Board 没有统计功能,甚至一个迭代做了多少张卡都需要自己数一数。
苦于此,第一时间能想到的是 Github API,尝试了一番,能很容易拿到 MovedColumnsInProjectEvent
。当卡片移动时,移动的信息将记录在卡中。但是看不出来是从那个 column 移动到那个 column。最终在文档发现,projectColumnName
信息在 preview API 中才会出现。preview API 需要在 headers 里面添加
Accept: application/vnd.github.starfox-preview+json
注:Preview API 不稳定,可能随时被删除。
GraphQL Client 中的文档并不全,可见在使用 API 时,还是要以官方文档为主。GraphQL 查询脚本如下所示:
{
repository(owner: "zddhub", name: "gpkit") {
milestones(first: 20) {
nodes {
title
issues(last: 100, states: CLOSED) {
nodes {
title
url
timelineItems(itemTypes: [MOVED_COLUMNS_IN_PROJECT_EVENT, ADDED_TO_PROJECT_EVENT], first: 100) {
nodes {
__typename
... on MovedColumnsInProjectEvent {
createdAt
projectColumnName
}
... on AddedToProjectEvent {
createdAt
projectColumnName
}
}
}
}
}
}
}
}
}
注意这里使用 Milestone 来跟踪项目的进度,对没有使用 Milestone 的项目,也可以直接查 issues 获得类似结果。
搞清楚了 API,剩下的就简单了,顺便学习了一下 deno
, 一个小的统计功能就生成了,目前支持两个指标:
- Cycle Time:卡从开始做(Doing)到完成(Done)所用的时间。
- Lead Time: 代码提交到部署上生产所用的时间。
统计的准确性需要卡片正确的拖动来配合,源码在这里,欢迎参考使用。
2021年21周:
小孩发烧
疫情影响,凡是发烧的病人,都得做核算检测,只能看急症科。
很感叹,我小时候发烧,乡村大夫开两块钱的药,吃上几顿就痊愈了,现在动辄好几百,还不见好。
真是有什么别有病,没什么别没钱!
2021年20周:
卸载 Sophos
当新系统 macOS Big Sir version 11.3.1 (20E241)
+ Sophos version 10.0.4
, 遇上 Charles (v4.6.1
), 不出两分钟,操作系统直接关闭,连黑屏的机会都没有。
在没关机的两分钟内,iOS Simulator 模拟器 Wifi 连不上网。而且稳定复现。
如何来修这个问题呢?
一番折腾后发现,卸载 Sophos 后 Charles 和模拟器正常工作,此时再安装 Sophos 发现安装不上,直接 Failed,也没有多余的 log。再次探索一番发现,Sophos 有两个进程 com.sophos.endpoint.networkextension
和 com.sophos.endpoint.scanextension
仍然在运行,重启或者强杀都无济于事。要论流氓,杀毒软件绝对首当其冲,卸载是卸不干净的。
原来这两个程序被放在 /Library/SystemExtensions
下,强删失败。一番查询后发现,原来是 SIP(System Integrity Protection )
阻止了删除操作。
重启系统,按住 Command + R 进入恢复模式后,Utilities -> Terminal 后,
csrutil disable
重启后,顺利删除了 /Library/SystemExtensions
目录下的执行文件,Sophos 的两个流氓进程也消失不见。再次安装 Sophos 成功,Charles 重新工作。
最后不要忘记了 enable SIP
。
2021年19周:
是谁关了灯
天这么黑, 是谁, 关了灯
2021年18周:
赶进度
节前项目进度比较紧,基本上处于一个赶进度的状态。