ログボ
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。
@oino729 自分以外のフォロワー限定、ダイレクトはブーストできません。
公開と未収載、自分のフォロワー限定をブーストできます。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
@shiosyakeyakini どのサーバからでもMiriaの話題するもんねー。Misskeyのアプリいいのある? って話するときとか、アイコンつけて紹介したり!
@syuilo Fedibirdは20個までグループ化・集計済みのキャッシュ持たせてあって、それで全部済ませてて、21個以上はリアクション一覧をとる別APIで取得したときだけ取得できるようにしてるよ。
status_statっていうstatus本体とは別のテーブルがあって、フィールドが多くて追記されたら更新されることがあまりないstatusesに対して、件数のキャッシュとかリアクションのキャッシュのように頻繁に更新する情報を持たせるstatus_statとわけて管理してる(この分け方は本家由来)
@___sgrk___ iPhoneなら集中モードっていう機能があって、カスタムもできるけどとりあえずプリセットに『パーソナル』ってのがあるからそれを使って、通知を許可する連絡先やアプリを指定しておけば、他の通知は来ないようにできるよ。
で、時間でパーソナルが有効・無効になるようにしたり、場所で会社から離れたらパーソナルになるようにするとか切り替える方法もいろいろある。
調べてみるとイイヨ。
@syuilo Mastodonはユーザー別のホームとリストをそれぞれRedisにOrderedSetで800件保持して、大小比較可能なStatusID(SnowflakeID)をscoreにしてソート状態で、StatusIDやブーストのStatusIDを値にして持たせている。
新規投稿をフィードするときは、OrderdSetにまず追加して、それを800件にトリミングすることで件数を維持してる。
誰かをフォローしたらそれをOrderedSetにまとめて追加したり(タイムラインにその人の過去投稿が一気に追加される)、解除したら削除したり、という処理を行っている。
ホームやリストを取得するときは、RedisからIDだけ取り出して、DBからそのID使ってデータ本体を取り出す手間をかけているんだけど、ここで削除済み投稿を外したりミュート・ブロックやワードミュートなどのフィルター処理をする。Redisにキャッシュした時点とは状態が変わっている可能性があるので、40件の取得なら40件単位でこの処理だけはDBとサーバ側コードでやってる。
RedisはただのKey-Valueのメモリキャッシュじゃなくて、データ構造とアルゴリズムがいろいろあって面白いし、それが役に立つ。
Elasticseachもそう。
複数の性質の異なるデータベースを組み合わせるの、大変だけど面白いんだよねえ。
fedibird.comの招待URLを500人分出しておきます。
https://fedibird.com/invite/djizD9t6
https://fedibird.com/invite/KzfmARFb
https://fedibird.com/invite/2CGSv6jK
https://fedibird.com/invite/snCeNbyX
https://fedibird.com/invite/DZ7bGWPC
Fedibirdに興味のある方は、こちらからご登録ください。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。