井戸端データを分析する
のりしろ
自分も分析したい人向けガイド
これを使うと井戸端のデータがJSONL形式で保存される 井戸端に限らず任意のプロジェクトを対象にできる、管理者権限は必要ない
ここでやってる分析は下記コードにある
---
井戸端データを分析する
1ポモドーロ、データ分析するか
捨ててるのか
const { id, title, created, updated, lines } = await res.json();
これは厳密にはJSON Lines形式ではない(行末にカンマがあるせいでvalidなJSONLではない)
元のコードとの互換性を保つのをやめた
--dist-data的なやつdist-dataでargsに入っちゃうのか
Pythonのargparseならdist_dataに置き換えてくれるのに
code::
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ページ
https://gyazo.com/092646c0260e7a4d207a84f708c61186
追加分析(stat3)
https://gyazo.com/bec088f16aaec2bc4d3597f1401e8505https://gyazo.com/0ede3c955090520e17113ce8de543c58
両軸とも10の対数、横がページの行数、縦が僕の行の行数
縦軸の下の方に分布があるのは自分が1行や2行だけ書いてるページがそれなりに多いということ
横軸の左端には少ない、1行2行だけのページは少ないということ
斜めライン(ほぼ自分の行)のケースが多いことに関して
切り出すと更新者が自分になっちゃうからだろうな
右の濃い部分
数百行のページの中で数十行だけ書いている
こういうのは盛り上がった議論っぽいな
stat4
https://gyazo.com/c553d52566c40682eb9b57497c301a12
縦軸は比率
stat2の左端でなだらかな山になっていたのは、数百行のページに1割程度書き込んでる
しかも今気づいたけど上のヒストグラムも二つ峰があって、井戸端にやたらこういう性質のページがあるということ…
https://gyazo.com/65ce664c71aca735ef8a57a769d719a2
はっ、これ日記ページではw
"20"で始まるページを捨てたら綺麗に消えたw
https://gyazo.com/2512d336d525369e9194f5fa528b25f9
https://gyazo.com/40a40dae32db7624969880e05955efd8
Aさんが書いたものをBさんが切り出した場合、Aさんはcollaboratorsに入らない
切り出しの設計がおかしすぎるnishio.icon
これあるcFQ2f7LRuLYP.icon
わかるwogikaze.icon
自分が参加した議論を、誰かが良かれと思って切り出して整理してくれる、これはいいことなので妨げたくないnishio.icon
一方でコラボレーターから外れるので
けど、「アイコンを付していない」場合は追えなくなってしまうcFQ2f7LRuLYP.icon
それ気になった、本当にそう?nishio.icon
実験してみる
以前話題になっていたけど詳細な調査をしたことがなかった、気になるinajob.icon
アッ 既存の「テスト」ページに暴発切り出してしまったっcFQ2f7LRuLYP.icon*2
「テスト」という名前のページがすでにあったwしかもすでに僕が書いてたnishio.icon
いいタイトルをつけたのでもう一度お願いします
YEScFQ2f7LRuLYP.icon
切り出したcFQ2f7LRuLYP.icon
結果
https://gyazo.com/320c4041f2ce0a1090b03dbd7b81b555
中を見てしまったので未読の緑は消えてしまったが、一覧には出ているnishio.icon
https://gyazo.com/da49a965e72d80089ab6cdad0f7e8bf4
Byのアイコンリストからは外れているnishio.icon
謎の実装だな、フィルターのためにこの値を使ってるのかと思ったが、それとは別に「アイコンがついてるかどうかの値」を別途内部的に持ってるのか
毎回行をチェックするわけではないだろうから…
JSON
code:json
{
"title": "切り出し時のコントリビュータの実験", ...
"user": {
"name": "cFQ2f7LRuLYP",
}, ...
"collaborators": []
}
おっと、予想外nishio.icon
「Byのアイコンリスト」とcollaboratorsは別なのか
Byのアイコンリスト = user + collaborators かな
それとは別に「アイコンがついてるかどうかの値」を別途内部的に持ってるのかは、「Yes, それが"icons"」ということ
https://gyazo.com/5d4c430ff040f52e9537505648a94acc
えーnishio.icon
アイコンはあるけどuserでもcollaboratorsでもないページか491件もあるw
食い違い方のどっちかが無視できるくらい小さいことを期待したのだがどっちも多いなぁw
アイコンがないけどコラボレーターのケース:
ブラケティングだけした
これ、後で見てもどこを僕が編集したかとかわからない
アイコンがあるけどコラボレーターでないケース:
誰かが言及のためにアイコンを置いた
自分がアイコンを置いた後に切り出しが行われた
あー、コラボレーターが「ソフトウェアの実装上は素直な発想だけど、実際に使ってみるとUXとしては微妙」ということか?
「更新者」がユーザに見えにくい状態で、その情報でフィルターするとユーザが挙動を理解しにくい
一方で「更新者」をユーザに見えやすくするのは避けたい
そこで「ユーザが能動的に自分の存在を表明したアイコンの有無」をフィルターに使う
だとすると更新者情報は無視してアイコンの有無でフィルターするのがいいか