generated at
井戸端データを分析する

のりしろ
井戸端から自分の書いたものだけフィルターしたいにて、どうフィルターするかの検討のために分析してみたnishio
自分も分析したい人向けガイド
これを使うと井戸端のデータがJSONL形式で保存される
井戸端に限らず任意のプロジェクトを対象にできる、管理者権限は必要ない
ここでやってる分析は下記コードにある

---
井戸端データを分析する
1ポモドーロ、データ分析するか
scrapbox-external-backup、ページの作成者データがないな
捨ててるのか
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
井戸端の日記ページは独特なScrapboxの使い方」ということがデータで再確認されたw


collaborators概念が謎
Aさんが書いたものをBさんが切り出した場合、Aさんはcollaboratorsに入らない
切り出しの設計がおかしすぎるnishio
これあるcFQ2f7LRuLYP
作成者ロンダリングができてしまう
わかるwogikaze
自分が参加した議論を、誰かが良かれと思って切り出して整理してくれる、これはいいことなので妨げたくないnishio
一方でコラボレーターから外れるので
アイコンがあればmodified with iconで辿れるcFQ2f7LRuLYP
けど、「アイコンを付していない」場合は追えなくなってしまうcFQ2f7LRuLYP
それ気になった、本当にそう?nishio

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

アッ 既存の「テスト」ページに暴発切り出してしまったっcFQ2f7LRuLYP.icon*2
「テスト」という名前のページがすでにあったwしかもすでに僕が書いてたnishio
いいタイトルをつけたのでもう一度お願いします
YEScFQ2f7LRuLYP
切り出したcFQ2f7LRuLYP

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


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