今日の過ごし方
今日は一日中コードを書いていた。Mastodon のトゥートを Slack に流す integrations を作成していた。
業務で使用している Slack の times をはじめてからというもの、SNS をまったくと言っていいほどやらなくなってしまった。Mastodon は数ヶ月に数トゥートほどはつぶやいているが、以前に比べると圧倒的に頻度が低くなった。Twitter に至ってはアカウントが放置状態となっており、削除しても良いのではないかと思っている。
そんな中、ふと思い立って、Mastodon のトゥートを Slack にそのまま流すようにしたら Mastodon を前のようにするモチベーションも上がるんじゃないかと思ってそれ用のスクリプトを作っていた。
無理やり SNS を再開する必要もない、つまり無理に Mastodon をする必要もないのだが、業務用 Slack はやはり社内で閉じてしまっているので外に自分の考えや成果をアウトプットするには Twitter や Mastodon のほうが適している。それに、SNS のほうが自分の毎日の状況を記録しておきやすい。
そんなわけで、これを機に Mastodon への発言が徐々に増えていけばいいかな、とおぼろげに思っている。
技術的なこと
Twitter のツイートを Slack にそのまま流す integrations は Slack 側が最初から提供しているためそれを使えば良い。しかし Mastodon はなかった。なので今日自分が Mastodon 用のを作ったのだが、一つだけ妥協というか、諦めた点がある。
それはブーストを流す機能だ。自分の発言は Slack に流れるが、自分がブーストした発言は流れない。Twitter の integrations は流れるのでそれと同じ仕様にしたかったのだが、残念ながらできなかった。
なぜできなかったかというと、Mastodon は、ブーストしたトゥートがすでにタイムラインにあった場合、新しく表示しない仕様になっている。つまり、ホームタイムラインにあるトゥートをブーストしても、そのブーストしたトゥートが新しく流れてくることはないため、ブーストしたことを検知できないのである。
もちろん、ホームタイムラインにまだ流れていないトゥートをブーストしてホームに流れてきた場合はそれを拾って Slack に流すことができるのだが、流れてくるブーストと流れてこないブーストがあるのはスッキリしない。なのでブーストは取得しない (Slack に流さない) 仕様に仕方なくした。
Streaming API を使用してタイムラインを監視して自分のトゥートだけ拾って Slack に流すようにしているのだが、代わりに REST API を使用して自分のトゥート一覧を定期的にポーリングする、という実装も考えた。しかし、これだと以下のような問題点が発生する。
- 前回どこまでポーリングしたかを記録しておく必要がある
- 前回流した最後のトゥートをもし削除していた場合、「前回どこまでポーリングしたか」の記録との齟齬が発生してしまうため、そうならないような実装にする必要がある
- ポーリングであるため、リアルタイムで Mastodon の発言を Slack に流すことができない
こんな感じで、いろいろ考えることが出てきてしまい、実装がかなり複雑化してしまう上に、最後のリアルタイムで流せないという問題は結局解決することができないので、めんどくさくて諦めてしまった。
というわけで、自分がブーストした発言を漏れなく Slack に流す実装は、今考えうる限りはどうも難しい。まあ良いアイデアが見つかれば実装してみることにするが、現状はとりあえずブーストは流さず自分のトゥートだけ流す実装にしておく。
Twitter の integrations はどうやって実装しているんだろう。Twitter の API はすでにタイムラインに載っているツイートをリツイートしても流れる仕様になっているんだろうか。
荷物は届いた話はまた明日
前回まで読んでいた「スタンフォード式 最高の睡眠」は読み終えてしまったので、新しく注文した本と、USB 充電器が今日の昼に届いたのだが、Mastodon-to-Slack の実装に熱中していてまだ開封していない。実装が終わった後にでも開けようかと思ったが、ずっと実装していてかなり疲労が蓄積してしまっていたので、これらの開封と日記への記録はまた明日に回すことにする。
睡眠記録
| 就寝 | 起床 | |:—:|:—:| | 03:00 | 11:00 |
スモールゴール
| 目標 | 達成状況 | |:—:|:—:| | 毎日本を 10 ページは読む | 10:27 / 10 ページ | | 「腕立て伏せ 10 回、腹筋 15 回、スクワット 20 回」を毎日やる | ✓ |