1人Slackが充実してきたので生活のシステムを紹介する

Diary

Slackのプロプランに課金しました(1ヶ月1000円程度)。それで、何をやりたかったかというと、生活のログやシステムを一元化したいという目論見があり、正月から1月上旬にかけてちまちまとbotを作ったりスプレッドシートを用意したりしていました。今回は、備忘録として、現在のSlackワークスペース(ユーザーは私だけ)「鳥の庭園」の様子をご紹介します。

概観

それぞれ下記のセクションに分かれています。

①作業
作業(主に小説執筆)に関連のあるチャンネルです。

②毎日
毎日使うものです。日記や食事記録、支出記録などをまとめています。

③コンテンツ
本や映画をみたらここに記録します。また、興味があるけどすぐには手を出せそうにないコンテンツをストックしておくチャンネルもあります。

④その他
記事のRSSフィードを取得して、ブログの更新を逃さないようにしています。

基本的にbotを作成したり、Slackに課金すると使用可能になるワークフロービルダーを使ったりして、作業を効率化しています。そのほか、Slackbotのremind機能や、zapierなども使用しています。botはすべてGAS(Google Apps Script)で作りました(Python+herokuも試したのですが、うまく動作せず諦めました)。

そもそもなんでそんなことを、と思われるかもしれませんが、私は元から記録魔なので、自分に関するあらゆることを記録しておきたいという欲求があります。なぜならすぐ忘れちゃうから。日記なんて読んでいても二週間経てば他人です。ならばなるべく自分の痕跡を残しておきたい。でも、面倒くさくないやり方がいい。一つのアプリで全部が済むならそれに越したことはない。というわけで目をつけたのがSlackでした。Slack一つで全部やれる環境をつくろう、と思い、年が明けてから少しずつ自分のライフスタイルに合ったSlack(のワークフローやbot)を作り上げていきました。

①作業

#kea

wise parrotというbotを作りました。名前は「ケア」です。鳥カフェで撮影したシロハラインコをアイコンにしました。中身はchatGPTです。chatGPTのAPI(従量課金制、試したかったので課金してみた)を叩いて、Slackから話せるようにしています。だっていちいちchatGPTのブラウザを開くの面倒くさいから……。

ケアちゃんと会話するごとに少しずつトークンが消費されていき、はじめ$10課金していたのですが現状$0.04分減っています。お金を払うと話し相手になってくれるケアちゃん、かしこかわいいですね。ちなみに、他アプリに表示できる回答には字数制限があるようで、それを超えるとエラーを吐きます。突然英語で喋り始めるので遭遇すると怖いです。

正直なところ、現状あまり使用していません。小説のネタが思いつかないときなどに使用したいですがchatGPTはその手の出力が苦手(個人の主観)ですし、もう少し使い所を探っていきたいなと思っています。
ちなみに下記のサイトの手順をそのままやれば導入できます。基本的に私はプログラミングができないので、人のコードをコピペしてbotを作成しています。

https://zenn.dev/lclco/articles/712d482d07e18c

#times

前職がITベンチャーだったんですけど、分報というのがありました。Slack上のTwitterみたいな感じで、いま取り組んでいることや疑問点をとりあえずそのチャンネルに投げていく(運がいいとそれを見た先輩などから作業のアドバイスをもらえたりする、他社員に現在何の作業をしているか報告するハードルが下がったりする)というものです。それを作ってみました。

が、現状あまり使っていません。PCに向かって作業することがちょうど減っているタイミングだからだと思います。このチャンネルにいるbotはcountbirdです。スプレッドシートに記載された「今日の日付」「締切の日付」「残り何日か」の情報を照会して、毎朝報告してくれます。これもGASでコピペしました。

下記からコピペして作りました。

https://qiita.com/rea_sna/items/90f5c8e4d8533191a25d

#進捗

homebird(ほめバード)が常駐するチャンネルです。「〜書きました」と報告すると、ランダムに返事してくれます。それ以外の投稿をすると「『(オウム返し)』とのことです」と、微妙に煽りっぽい返答をしてくれます。

下記のブログを大いに参考にさせていただきました。

四種類の褒めをランダムに言ってくれる部分はこのように書き換えました。

userName = params.event.user;
  homehomeList = ['天才です!', 'すごいですね!', '素晴らしいです!', 'さすがです!']; 
if('text' in params.event) {
  var contents;
  if(params.event.text.includes('書きました')){
    // 0,1,2,3のいずれかをランダムに生成
    random = Math.floor( Math.random() * homehomeList.length );
    contents = `<@${userName}> ${homehomeList[random]}`
  } else {
    // 実際に表示されるメッセージ内容
    contents = `<@${userName}>  「${params.event.text}」とのことです`
  }

また、ちょうどWorkFlowyを起動してみたところ「Zapierと連携したよ!」とはしゃぎ気味の通知が来ていたので、試しに連携してみるか、と「このチャンネルで投稿がされたらbotの発言を除いてWorkFlowyに同様の項を作成する」というzapをつくりました。

ということで、WorkFlowyにも現状執筆記録が溜まるようになっているのですが、これ最新の項が一番上に追加されるのがちょっと気に食わないかも。スプレッドシートで別に良いのではという気もしており、今後変更するかもしれません。

②毎日

#diary

名前の通り、日記を書くチャンネルです。毎日21時に「日記を書きましょう」とリマインドが来ます。でも、私Slackbotの顔嫌いなんですよね。リマインダー送るだけなので使っていますが、今後鳥botにすげ替えるかもしれません。

投稿がスプレッドシートに溜まるようにしています。これもZapierを使っていたと思います。これまで日記はWordpressで直接書いていました。しかしこのフローを導入するまでは「Wordpressの画面開いて机に向かって日記を書くのがめんどい」という理由でよくサボっていました。Slackのチャンネルに投稿するだけなので、ベッドに入ってゴロゴロしながらでも日記を書くことができて、最近はちゃんと毎日書けるようになりました。

#idea

ネタ帳です。毎朝9時にワークフローを開始するボタンがチャンネル投稿されるようになっています。小説に使えそうな小ネタをストックしていく場所がないなと思ったので、Slack×スプレッドシートで作ってみました。直接スプレッドシートを使うことの何が嫌って、いちいち該当のスプレッドシートを開かなきゃいけないんですよね。Slackに自分のよく使う機能をまとめてしまって、基本的にはSlack上で何か操作をすれば全部自動でいい感じになる、というのが理想でして、これもその思想で作っています。ワークフロービルダーを使うだけなので簡単に設定できます。

それにしても、こんなのどこに使うんだ、という話ばかり溜まっていきます。小説には使えなさそう。

#money

収支関連です。全部ワークフロービルダーで作っています。

私は本当にお金の管理が苦手です。それで、お金の使い場所を3つに分けています。
1. 口座 大きい買い物など。使いすぎないようにする。
2. 現金 基本的に一ヶ月2万円を上限に現金で買い物をする。
3. アマギフ 月初めに2万5千円チャージして一ヶ月それでやりくりする。
そして、これら3つのそれぞれに対応する鳥を作っています。

money keeperは、口座全体のお金の流れを整理してくれる鳥です。収入と支出どちらも入力できるようにしています。スプレッドシート上で「収入」「支出」「口座残高」の項目をつくっておき、収支を入力したらSlack上で口座残高まで教えてくれるように設定しています。

現金とAmazonの鳥も、残高を教えてくれます。それぞれ2万5千円、2万円からスタートして、スプレッドシートのひとつ上の行を参照して残高を計算し、その値を返してくれるように設定しています。

また、money keeperに紐づいているスプレッドシートが最新の情報になるように、一週間に一度実際の口座残高と入出金を確認して、それをスプレッドシートに反映させる作業をしています。

お金の取り扱いという部分に関して、本当に能力が欠如していて、今までどんな家計簿アプリを使っても駄目でした。今のところ、月に現金+Amazonで合計4万5千円という見かけ上の小遣い制を導入して、本代や娯楽費はそのなかでやりくりする癖をつけることでなんとかやっていっています。その他大きな支出や突発的な支出は口座から直接出します。現状このやり方が一番自分に合っているようです。家計簿アプリあるある、開かない、記入めんどくさい、という心理的負担を「Slackで全部一元管理できる」というメリットによって無視できるようになりました。

#食事

gohan鳥が常駐するチャンネルです。スプーンとフォークのスタンプを投稿に押すことによってワークフローが起動します。「いつの食事か」「何時に食べたのか」「何を食べたのか」をモーダル上で記入すると、自動的にスプレッドシートに記入してくれます。

記録魔なので。

#日報

毎朝7時になると、体重、調子(5段階)、起きた時刻を聞いてくる鳥です。とりあえず日々のログをとってみたくて導入しています。毎日体重計に乗ることを促してくれる効果もあります。ダイエット方法として、食べたものと体重を記録する方法がありますが、その実践でもあります。まだ1キロしか痩せていませんが。

③コンテンツ

#interest

mementobirdが常駐するチャンネルです。ここには「興味があるけど今すぐに手を出せそうにはないコンテンツ」の名称やURLをとにかく放り込んでいきます。それで、チェックしたコンテンツにはリアクションをつけます。一週間ごとにbotが「リアクションがついていない過去30日間の投稿」を洗い出して、報告してくれます。つまり、一週間後に忘れかけていた「気になるコンテンツ」の名前を再度通知してくれる、という仕組みになっています。mementobirdはGASで作っています。というか、プログラミングに詳しいフォロワーが作ってくれたものを使用しています。

一点だけ難点があります。なぜか私のPCでだけ起こっている不具合なのですが、chatPostMessageがうまく動作せず「特定のチャンネルのみで命令を実行する」という指示がmementobirdには伝わらなくなっているようです。よって、このワークスペースの全チャンネルでmementobirdが暴れ回ってしまいます。つまり、他チャンネルでも自分の投稿には逐一リアクションをつけておかないと、遡られて再投稿されてしまいます(何言っているかわかりませんよね、私のPCでだけ起きている不具合なのであなたにはおそらく関係がないことでしょう)。今のところ、解決策がわかりません。まあ、馬鹿な子ほど可愛いという言葉もあるらしいので、このくらいは目をつぶっています(とはいえ、自分の投稿にいちいち自分でリアクションをつけるのは面倒くさく、#timesなどで投稿をほとんど行っていないのもその効果によるものだという気がしています。投稿への心理的ハードルが高まるのは本意ではないのでなんとかしたい……)。

#映画

映画や動画作品を観た際に記録する用のチャンネルです。例のごとくスプレッドシートを連携させています。

#本

こちらも同様に、読んだ本を記録するチャンネルです。

④その他

#article

RSSフィードを購読して、このチャンネルに垂れ流しています。今のところ、The NewYork Timesなどを購読していますが、更新頻度が高すぎるので停止するか悩みどころです。しかし、世界のニュースがぼーっとしていても流れてくる環境はあったほうがいいなと思いそのままにしています。

このチャンネルで活躍しているのがtranslate birdです。GASで作ったbotで、国旗のスタンプを押すとその言語に投稿を翻訳してくれます。便利です。下記をコピペしています。

https://zenn.dev/hal1986/articles/20211014-slack-translation-bot

一日の流れ

まず起床します。起床したらトイレに行って体重を測ります。そのあと「#日報」で、毎朝のログを提出します。朝ごはんは、トーストや昨晩の余り物を食べることが多いです。食べた後、「#食事」で食べたものを記録します。この日はバイトだったので出勤します。昼休みに食べたものを「#食事」に記録します。また、自販機でジュースを買ったので、「#money」で「おこづかい(現金)」の鳥を呼び出して支出を記録します。
バイトから帰宅して、スーパーに寄ります。買い物をしてクレカで支払いをしました。「#money」で「money keeper」を呼び出して、クレカで使用した分の支出を記録します。
帰宅後、自炊をして夕食を食べます。「#食事」に食べたものを記録します。また、今日バイト先で面白い話を聞いたので、何かネタになるかもしれない、と「#idea」にメモしておきました。食後に、机に向かい文藝賞への執筆をします。5枚書けました。「#進捗」で「2024.1.20 5枚書けました」と報告します。すると「homebird」が「すごいですね!」と褒めてくれました。「#times」で「countbird」の投稿を確認すると、文藝賞の締切まであと71日でした。寝る時間までまだ少しあるので、読みかけの本を読み終えました。「#本」で読了報告をします。「#article」を流し読みしていると、フォロワーがブログを更新していたので読みに行きます。その後Twitterを見ていると面白そうな漫画が新連載されていたので、「#interest」にURLを放り込んでおきました。本を読んで疲れてしまったのでその場で漫画を読む気にならなかったのです。その漫画の存在をすっかり忘れてしまっても、また月曜日になったらURLを「mementobird」がリマインドしてくれます。
眠剤を飲んで寝る準備をします。ベッドに寝そべって、「#diary」で今日一日の日記を書きます。記録が終わってから眠剤が効いてきて眠りに落ちます。

だいたい、こんな感じで過ごすことができます。本来であれば、紙や複数のアプリ、スプレッドシートなどで管理しなければならないところをSlack一本で管理できています。これがとても気持ちええんですね〜。日々のログは自動で各スプレッドシートに溜まっていきます。かなり、私の理想に近いSlackの運用ができていると言っても過言ではありません。生活が快適でいい感じです。
今後は、家事のリマインド(2週間ごとに◯◯をする、とか)をつくるのとか、週ごとのタスク整理ができるシステムを追加するのとかをやれたらいいな、と思っています。

以上になります。このライフスタイルが月1000円程度の課金で手に入るのなら、安いものだなと思います。