怼周刊_v0¶
~ 试刊号
进度¶
- 170408
[DU0wd6zoom]
20:42 周小结嗯哼 - 170405 [DU0wd3:dama 吐糟]在线收听_Zoom.Quiet_荔枝FM ~ 被激发出 N 个任务了...
- 170402 [DU:init. re-start]在线收听_Zoom.Quiet_荔枝FM 正式开怼
- 170401 关闭报表和入密
- 170331 om103py 毕业
- 170328 受到复习队的感召 开放入密
- 170301 大妈 仓库小密圈
任务¶
- 引发 10+ 分支任务
- 关闭ed Issue · DebugUself/du4proto
- 并没有都转化为 文档/代码
困难:
- 对当前圈内部沟通渠道和公共资源, 并不是所有人都理解并习惯使用
- 甚至于期间形成发布的各种文案/录音/维基/邮件/... 并不是全体都知道/看过/理解/执行/...
- 所以:
- 慢慢来, 比较快
- 大家已经开始注意到 ,相关守则/技巧/规约, 是一定要自己去动手折腾的
推荐阅读:
进展¶
- 作业: S01E01
- 提交: 20 人, 不到 2/3
- 引发的作品:
- 微信机器人 ~ DebugUself/du4proto at tl2wc
- csv->md <-- 没有正式发布工程分支
- 状态:
- Commits (~ 17.4.8 15:21,
共 21 人
)次数排名:- NBR-hugh -> 15
- xpgeng -> 10
- Zxlon -> 9
- zhangshiyinrunwithcc -> 9
- bambooom -> 9
- ...
- Comments (含 Issue 创建/回复, 以及代码点评 ~ 17.4.8 13:50,
共 17 人
)次数排名:- ZoomQuiet -> 49
- zhangshiyinrunwithcc -> 14
- EattheSun -> 9
- xpgeng -> 7
- zoejane -> 5
- ...
- Commits (~ 17.4.8 15:21,
成果¶
学习社群如何对待微信群¶
缘起¶
自怼圈
首次 zoom 会议决定以 Github 和邮件作为日常沟通的主场, 不用微信群来做日常沟通. 放弃微信的主要原因: 干扰心流/消息丢失/交流功能受阻.
现象¶
怼友们直觉上仍然非常依赖微信群. 有怼友就立刻拉了群.
为此, 大妈发布 [Ask] 为毛不用微信群? · Issue #4 · DebugUself/du4proto, 提出以下问题:
- 为什么我们如此依赖微信群?
- 微信群在
自怼圈
这一长达 54 周的自学组织内部不应该使用?- 在这一场景中, 微信群有什么问题?
- 这些问题,如果一定要在微信群中弥补的话,应该怎么作?
- 对应其它沟通渠道天然的行为,这些问题存在嘛?
分析¶
大家在 issue 中展开了充分的讨论. 回复的重点多为微信在自学场景下存在的问题.
- 为什么我们如此依赖微信群?
- 习惯使然. 微信本身非常方便/快捷/及时, 已成为国人沟通的首选工具.
- 当然, 习惯的并不一定是合适的, 特别是在自学场景下. 你以前可能习惯用 word 来书写, 这不代表它适合用来写代码.
- 微信群在自学组织内部是否应该使用?
- 经过认真分析, 大部分怼友倾向于不使用. 有几位怼友提出说可以保留微信群用于联络感情. 但是, 微信群里有真感情吗?
- 在自学社群这一场景中, 微信群有什么问题?
- 自怼圈作为一个自学组织, 首要的目的是促进大家的学习和思考. 而学习讲究系统/积累/专注/回顾, 微信"不是为学习,思考而生的" (大猫).
- 我们需要高质量的异步讨论, 而不是碎片化的同步讨论. 微信上无法展开良好的异步讨论. 在这里:
- "思考不能沉淀,信息不能萃取,讨论不能连续"(MagicCheng)
- "容易碎片化发言, 不能在想清楚并组织好语言再发出自己的意见"(bambooom)
- 甚至, 它可能"提供伸手党思维温床,阻碍心智升级" (fatfox2016)
- 自学需要专注, 而微信是专注的敌人. 各种群消息/公众号都会干扰你的注意力.
- 为什么你不该用微信进行主题讨论? 提到三个原因:
- 同步 vs 异步: 异步讨论更持续/深入/充分, 更容易达成共识
- 公开/正式的形式: 更容易促成理性/认真的回应
- 数据可靠性
- 更完整的论述参见 为什么不应该使用QQ进行技术交流
- 这些问题,如果一定要在微信群中弥补的话,应该怎么做?
- 需要群友的自觉/自律. livingworld 指出, 需要"定目标,定主题,定规矩,严格限制其使用功能及使用范围".
- 对应其它沟通渠道天然的行为,这些问题存在嘛?
- 即时通信类的沟通方式,都会存在类似问题. (gzMichael)
- 但异步沟通工具, 如 "github, maillist 仪式感比较强,有氛围,感觉不存在上面所说的问题,容易形成一个知识积累系统,从而形成学习与积累的良性循环" (大猫)
- 怎么看待开智社群在微信群里写出"追时间的人"一书呢?
- 其实, "追时间的人"一周成书的所有秘密 里面提到了以下真相:
- 准入门槛: 所有加入者必须出过至少一本书,拥有博士学位,或者是自己所处领域的一流专家
- 这类分享并非每日常态, 而是每周一次
- 成书还需要大量整理工作. 作者和志愿者们在 Gitlab 上远程协作, 在一周内"从组稿,编辑到出版汇总,大家加班加点完成了出版所需的繁重工作. 当时所有志愿者都非常辛苦,每天工作到深夜一两点钟,在赶时间交稿的最后两个晚上,有的志愿者只睡了一两个小时. "
最关键的是, 大妈指出:
- 分享者分享的东西, 从来不是在微信群中积累/学习/研究出来的
- 微信群只是个免费的, 基本可用的实时分享渠道而已. 其中沟通的好东西, 从来不是在微信群中诞生的
解决¶
- 放弃微信群. 专注于自学/思考/自怼/互怼.
- 尽快熟悉使用 Github 和邮件列表沟通的方式.
- 如果你还习惯于在微信群里轻轻松松地伸手提问, 那么赶快去读/听一下提问的智慧. 改变你的提问习惯, 试着用更认真有诚意的提问来为社区贡献知识.
- 诸位怼友可进一步思考并参与以下 issue 讨论:
故事¶
~ 收集各自无法雷同的怼圈真人故事...
沟通需要代价¶
案情回顾:
为了第一时间, 引导大家在正确高效无污染的环境中开怼, 创建了对应的开源工程环境, 但是, 需要对应的怼员基本信息, 虽然以往 OM103py 中相关信息都已经有了, 可是无法简单和小密圈的信息对应上, 大家习惯性的在所有互联网平台中, 分别使用不同的 ID 俺尝试, 只能猜出 3 成, 谁是谁, 于是, 简单的设计了 金数据在线表单, 通过 小密圈 发布出来, 以为可以简洁的收集到;
的确, 图样图森破了:
- 第一个 24 小时, 大家的传播, 令不在小密圈的人也有填报
- 第二个 24 小时, 发现后,及时关闭表单,追加字段, 以及填写口令, 并进行短信/小圈/邮件 的说明,提醒, 当然的, 无法全员知道, 依然有4名怼员,没有进入
- 第三个 24 小时, 通过 竹子事件的发生, 大家意识到有坑, 主动用私信, 以及其它方式再次填报了表单,数据量达到 39 条, 依然没有简单的一一对应到现有成员
所以, 得复个盘:
- 17.4.2 准备正式开怼,所以, 4.1 准备好了所有游乐场:
- GitHub 组织+仓库
- 和仓库关联的 googlegroups
- gh-pages 发布的 blog
- 问题来了, 怎么能获得所有加入小密圈的大家的关键身份信息?
- 姓名/Nickname
- 邮箱
- GitHub ID
- ...
当然的, 使用大家已经习惯的信息收集表单:
- 创建好
- 发布->小密圈
- 此时隐患已经填下:
- 为确保唯一, 设定了 GitHub ID 必须唯一
- 为以免有人首次填写有错乱: 打开了提醒用户注册 金数据 后,可修订自己的填报
- 悲剧在:
- 金数据表单的提交,并不生成每个人填写的唯一链接, 以便回来修订
- 即使注册登录, 也没有任何凭证可以同注册前的填报行为关联, 从而修订历史数据
- 于是, 大家在意识到自己的填报有问题时:
- 有的尝试修改 GitHub ID 链接的非重要信息来达到多次提交的目的
- 有的通过小密圈, 直接向 大妈 消息说明要修订的信息
- 有的只是反复在所有渠道哀嚎,无法修订表单数据
- 还有的...
- 发觉这一失控后果, 大妈 及时提醒 诱发焦虑的 竹子 来思考3种解决方案
- 当然, 最后了了了...
- 其实: 从目标出发自然就能推导出解决
- 目标: 大家快速进入资源 <- 获得关键信息 <- 已经付费进入小密圈的
- 偏差: 有怼友反应慢, 在表单关闭前,没有完成填报, 或是想悔改邮箱为 gmail
- 隐需: 进行各种资源配置时, 大妈/教练 的工作量越少越好
- 综上:
- 列表邮件说明情况, 并附上所有必要信息
- 私人邮件说明情况, 并附上所有必要信息
- 创建 Issue 说明情况, 并附上所有必要信息
- ...
- 以及此处的必要信息是什么?
- 当前状态, 小密圈/列表/仓库 ?
- 你的其它关键身份信息:
- 手机
- 邮箱
- 姓名
- ...
- 当然的,和表单一致即可 <– 别说不知道表单字段哪...
沟通的代价应该谁承担?
--> 此事件对我们组织行为引发的思考和阶段结论是什么?
请大家试答...
- zoe:表单收集思考
- 可否付费和填表一气呵成?
- 以免付费了没填表,填表了未付费.
- 比如:付费成功后,立马展示表单填写链接,引导填表. 当时小密圈的第一条信息并不是填表链接,后来大家也没时刻看这里.
- 如何处理意外?
- 比如因网络原因,填表填一半没提交成,可否自助获取表单链接(比如输入订单号等. 小密圈这个就是在小密圈里看. )
- 表单错误可否自助修改(金数据表单提交后,当时注册或登录,可以看到和修改自己提交的表单. 但是填表完当时没注册,好像以后就补不了)
- 特殊情况人工相应(设置一个反馈渠道?比如邮箱/工单方式,可以按一定模版引导反馈的形式
- 可否付费和填表一气呵成?
一个由暴力 Merge 引发的被异地与被变性 惨案¶
涉案人物
- 暴力嫌疑人: xpgeng, 男, 一个有 local 女朋友的直男
- 盲人狙击手: zoomquiet, 一个被叫做作大妈的男人
- 懵逼被害人: zhangshyinrunwithcc(怼圈最长 ID 持有人), 女, 一个有异地男朋友的女子
- 笑哭的围观群众: zoe 等一甘人
开怼->WANTED!!!
案发起因¶
xpgeng 做了什么?
- 作为怼圈第一次提交当日小结, 在爱心妈咪 zoe 的带领下, 怼友稀稀拉拉的...开始提交自己的总结. 第一天总结, 怎能上来就缺席?
- 写, 写好了, push! 在 push 之前他还想: 大家第一天交总结不怎么积极嘛, 估计也不用 pull 就可以推上去了, 省时省力, 好机智.
- 滴滴滴! 提示 repo 滞后了... 看来这是有人已经动过 master repo 了呐, 哎, 太年轻. Pull 之!
- 哐哐哐! Conflict?! 就写个总结也能有 conlict? 能有啥 conflict 啊? 遥想以前在隔壁仓库协作更新 wiki 的时候, 也遇到过这种情况, 基本上这种 conflict, 正常 commit 下, 直接 push 就好. 大家的文字肯定是不会丢的. 遂, commit, push, Done! 检查一下, 不错.
zhangshiyinrunwithcc 做了什么?
-
一直认真积极的诗颖同学就在 xpgeng 还在写总结的时候, 咔咔咔完成了 push. 正在开心自己提交的时候, 浏览 repo 内其他怼友的小结是, 她发现文件名搞错了. 在 README 中, 要求的文件格式为
du_s01e01_[github id].md
例如,大妈的作业文件名就应该是:du_s01e01_zoomquiet.md
-
然后特(shi)别(er)实(bu)在(jian)的诗颖同学的文件名是:
du_s01e01_[zhangshiyinrunwithcc].md
-
纳尼? 改! 于是紧接着有了这样一次 commit
Rename du_s01e01_[zhangshiyinrunwithcc].md to du_s01e01_zhangshiyinru...
案发经过¶
盲人狙击手 zoomquiet 登场
在诗颖童鞋的总结里有这样一条
对异地恋的疑虑,让我花费 1 小时疏导心情
热心大妈就来了...
ZoomQuiet:
@xpgeng 矜持....太过私人的不用特意公开的, 要知道, 这仓库,随时可以 fork 给你女友的... 可以用自己定义的专有名词来替代, 公开自怼的技巧就是通过抽象的模型来讨论.
不对, 大妈在诗颖的总结里 @xpgeng 这是什么鬼?
xpgeng:
@ZoomQuiet 大妈, 你@我干啥? 这是 @zhangshiyinrunwithcc 同学的. 我知道问题出在哪了, merge 没整好... 怪我!
尽管 xpgeng 第一时间意识到了问题, 可是血案已经发生:
-> xpgeng 被异地
-> 诗颖被变性...
盲人狙击手既然已经开枪, 想必是收不回来了.
ZoomQuiet :
@xpgeng @zoejane @zhangshiyinrunwithcc 请允许俺笑4分钟的....
太多事儿, 不在协同中怼到, 永远不知道什么行为会引发什么后果的,
所以, 大家的行为想越来越有效率/规范/专业...
多尝试/折腾/犯傻/...嘦及时知道, 并改正,而且恨恨记住, 再有人嗯哼, 就怼!
此枪案现场可见 commit b17d36
如果你以为这就完事了, 那就太小看盲人狙击手了... 他除了怼翻嫌疑人, 还来了甩狙, 又....补了被害人一枪!
ZoomQuiet commented on 4fe6f2a
@xpgeng 好心的修订了文件名,结果引发了一系列误解, 问题源头的 @zhangshiyinrunwithcc 知道自己哪儿错了?
其实就是模板语言的不理解而已 什么是模板语言? 文件命名格式: du_s01e01_[github id].md
例如,俺的作业文件名就应该是: du_s01e01_zoomquiet.md
以上两句是前后关联的, 以及前述文本格式就是... 还有什么模板语言,都有什么通用约定? 请试答...
苍天可见, 明明是诗颖自己 rename 的啊, 关 xpgeng 什么事? 一个嫌疑人怎么会有那么好心! 他没把别人的总结整丢就已经很不错了呐!
xpgeng
@ZoomQuiet 大妈, 我先声明, 文件名是她自己改的, 问题真的是在我. 应该是 pull 过程中出现 conflict, 然后我暴力 merge, 所以引起后续误会. 大妈你还是 怼我 好了...
枪案现场见 commit 4fe6f2
直至第二天早上, 被害人还一脸懵逼的质问
- zhangshiyinrunwithcc: 你 merge 和我修改文件名有啥关系?!
- xpgeng: 具体原因呢是: ........... BLABLA ....... 就是这么情况.
用图说话¶
+--------+
| master +----------------+------------+--->--->---+------+---------->
+--------+ ^ | × v +
push | push pull push
| | | | |
+--------+ modifying | | | + |
| xpgeng +--------------------->-------x---+--> conflict! +-->merge!+
+--------+ | | ?#$%! | |
+-----------------------+ | | commit| |
| zhangshiyinrunwithcc +-+-->rename+-++ +----------+-----+ |
+-----------------------+ ^ | | |
WTF? templet | xpgeng's | |
| | +<--+
+------------+ | +----------------+
| zoomquiet | | | shiying's |
+------------+-----------comment-----+--------+ |
+----------------+
VV
||
shiying's = xpgeng's <-- 被 异 地
shiying = xpgeng <-- 被 变 性
总结陈词¶
虽然在嫌疑犯 xpgeng 的不懈努力下, 案件已经的得到解决, 被害人也已经从懵逼中清醒过来, 可是...
盲人狙击手还并没有放过被害人, 被害人成功出发了隐藏任务: 什么模板语言,都有什么通用约定?
作为怼圈最长 ID 持有人
~ shiying 是不会放过这次回怼的机会的.
她经过 6轮搜索,对本问题进行了回答.
可是, 想怼大妈哪那么容易...
是也乎,( ̄▽ ̄) 还是少挖一层哪...
模板系统的动力来源是什么? 模式匹配哪 为什么要写成模式条目?因为想一句话说明白一堆条件哪 可是, 在大家不明白, 没有经过类似训练时
你的研究, 应该形成一个什么 可用 的成果输出? 有益怼友们?
@zhangshiyinrunwithcc @zhangshiyinrunwithcc @zhangshiyinrunwithcc
看到请回答!看到请回答!
嫌疑人的反思¶
虽然大家在之前已经有了 GitHub 的各种操作体验, 可多数还是属于单打独斗的折腾, 所以对于 Git 的使用也基本局限在很简单的一些命令.
那么未来怼圈内会逐步开始涉及协同作业, 简单的 push
commit
显然已经不够用了.
未来我们面对的可就不是本次惨案所遇到的这么简单的情况.
那么, 在协同作业中, 我们都需要掌握哪些必要的处理技能呢?
除了自己学会更深入的 Git 操作, 我们是不是该有一些协同上的约定呢?
比如:
- Commit 信息如何书写?
- Conflict 如何 fix? 正确的处理流程是什么?
- 分支该怎么使用?
- 如何合并到 Master?
- 更高级的协作还有什么?
要不我们一起讨论讨论, 分享分享, 总结总结, 整理整理, 发布发布?
References¶
- How to Write a Git Commit Message
- 这个 blog 列出来该如何书写一些 commit message, 其中设计各方面的一些约定, 算是抛个砖.
- Git - Branches in a Nutshell
- 关于分支的使用, Pro Git 已经说的比较详细了.
- Commit message 和 Change log 编写指南 - 阮一峰的网络日志
- 阮老师的一个篇关于 commit 的博文, 其中关于 header type 那部分有些借鉴意义.
- How to resolve merge conflicts in Git? - Stack Overflow
- 推了一波 git mergetool.
- 使用 git rebase 避免無謂的 merge | ihower { blogging }
- 算是更高级的用法, 目的是减少一些不必要的 merge, 同时让 master 与分支的线图看起来更醒目. 各种各样的merge 流 我也是最近才开始了解到还能这么玩?..
后记¶
~ 怼周刊是什么以及为什么和能怎么...
大妈曰过: 参差多态 才是生机
问题在 参差
的行为是无法形成团队的
Coming together is a beginning;
Keeping together is progress;
Working together is success!
<--- Henry Ford
- 所以, 有了 大妈 随见随怼的持续嗯哼...
- 但是, 想象一年后, 回想几十周前自己作的那些
图样图森破
- 却没现成的资料来出示给后进来嗯哼?
- 不科学, 值得记录的, 就应当有个形式固定下来
- 所以,有了这个
怼周刊
(Weekly 4 DU)
编辑设想¶
- 试刊号由大妈和3位义务教练联合出品
- 计划:
- 每周六 20:20 发行
- pdf 格式小密圈分享
- 如遇不可抗力的阻碍,将跳过,下周继续
- 共怼 -> 这是给我们自己看的, 当然的自己动手才更加快乐 -> 投稿渠道:
- 仓库 _draft 目录,发布文稿:
- 文件名格式
DU[总周数]_[github id]_[内容简述 英文,小写单词,用-连接].md
- 比如:
DU3w_zoomquiet_how-2-make-me-coding.md
- 比如:
- 然后在 Issues · DebugUself/du4proto
- 创建
[Weekly]
前缀的 Issue 来通告 - 一定要包含文稿的 仓库链接
- 并
@DebugUself/du0mana
- 文件名格式
- 列表发送
[Weekly]
前缀的邮件, 并附 .md 格式的文稿 - 没了.
- 仓库 _draft 目录,发布文稿:
点击注册~> 获得 100$ 体验券:
订阅 substack 体验古早写作:
关注公众号, 持续获得相关各种嗯哼:
自怼圈/年度番新
关于 ~ DebugUself with DAMA ;-)
追问
任何问题, 随时邮件提问可也:
[email protected]