井戸端データを分析する
のりしろ
自分も分析したい人向けガイド
これを使うと井戸端のデータが
JSONL形式で保存される
井戸端に限らず任意のプロジェクトを対象にできる、管理者権限は必要ない
ここでやってる分析は下記コードにある
---
井戸端データを分析する
1ポモドーロ、データ分析するか
捨ててるのか
const { id, title, created, updated, lines } = await res.json();
これは厳密にはJSON Lines形式ではない(行末にカンマがあるせいでvalidなJSONLではない)
元のコードとの互換性を保つのをやめた
--dist-data
的なやつ dist-data
でargsに入っちゃうのか
Pythonのargparseなら dist_data
に置き換えてくれるのに
:num_pages 22977 num_my_pages 1342 num_pages_with_me 1989
num_lines 740316 num_my_lines 65458
井戸端の2.3万ページのうち、僕がuserになってるのが1342件、collaboratorsに入ってるのが1989件
井戸端の74万行のうち、僕がuserなのが6.5万行
追加分析(stat2)
100%僕の行なのが439ページ
追加分析(stat3)
両軸とも10の対数、横がページの行数、縦が僕の行の行数
縦軸の下の方に分布があるのは自分が1行や2行だけ書いてるページがそれなりに多いということ
横軸の左端には少ない、1行2行だけのページは少ないということ
斜めライン(ほぼ自分の行)のケースが多いことに関して
切り出すと更新者が自分になっちゃうからだろうな
右の濃い部分
数百行のページの中で数十行だけ書いている
こういうのは盛り上がった議論っぽいな
stat4
縦軸は比率
stat2の左端でなだらかな山になっていたのは、数百行のページに1割程度書き込んでる
しかも今気づいたけど上のヒストグラムも二つ峰があって、井戸端にやたらこういう性質のページがあるということ…
はっ、これ日記ページではw
"20"で始まるページを捨てたら綺麗に消えたw
Aさんが書いたものをBさんが切り出した場合、Aさんはcollaboratorsに入らない
切り出しの設計がおかしすぎる

これある

わかる

自分が参加した議論を、誰かが良かれと思って切り出して整理してくれる、これはいいことなので妨げたくない

一方でコラボレーターから外れるので
けど、「アイコンを付していない」場合は追えなくなってしまう

それ気になった、本当にそう?

実験してみる
以前話題になっていたけど詳細な調査をしたことがなかった、気になる

「テスト」という名前のページがすでにあったwしかもすでに僕が書いてた

いいタイトルをつけたのでもう一度お願いします
YES

切り出した

結果
中を見てしまったので未読の緑は消えてしまったが、一覧には出ている

Byのアイコンリストからは外れている

謎の実装だな、フィルターのためにこの値を使ってるのかと思ったが、それとは別に「アイコンがついてるかどうかの値」を別途内部的に持ってるのか
毎回行をチェックするわけではないだろうから…
JSON
json{
"title": "切り出し時のコントリビュータの実験", ...
"user": {
"name": "cFQ2f7LRuLYP",
}, ...
"icons": ["nishio", "cFQ2f7LRuLYP"], ...
"collaborators": []
}
おっと、予想外

「Byのアイコンリスト」とcollaboratorsは別なのか
Byのアイコンリスト = user + collaborators
かな
それとは別に「アイコンがついてるかどうかの値」を別途内部的に持ってるのかは、「Yes, それが"icons"」ということ
えー

アイコンはあるけどuserでもcollaboratorsでもないページか491件もあるw
食い違い方のどっちかが無視できるくらい小さいことを期待したのだがどっちも多いなぁw
アイコンがないけどコラボレーターのケース:
ブラケティングだけした
これ、後で見てもどこを僕が編集したかとかわからない
アイコンがあるけどコラボレーターでないケース:
誰かが言及のためにアイコンを置いた
自分がアイコンを置いた後に切り出しが行われた
あー、コラボレーターが「ソフトウェアの実装上は素直な発想だけど、実際に使ってみるとUXとしては微妙」ということか?
「更新者」がユーザに見えにくい状態で、その情報でフィルターするとユーザが挙動を理解しにくい
一方で「更新者」をユーザに見えやすくするのは避けたい
そこで「ユーザが能動的に自分の存在を表明したアイコンの有無」をフィルターに使う
だとすると更新者情報は無視してアイコンの有無でフィルターするのがいいか