Posts for: #Slack

読書はお休み2日目

0時に寝て7時に起きた。昨日は寝不足だったせいかぐっすり眠れた。

設計ドキュメント作成

昨日の続き。着手すると徐々に興が乗ってくる。朝からずっとやり続けて17時ぐらいに一通りたたき台ができた。なぜか朝ご飯もお昼ご飯も食べずに資料を作り続けてた。お腹もあまりすかなかった。経緯や背景、設計の意図やシステム構成、展望やビジネス戦略など、スライドで39枚になった。顧問さんに情報共有するための資料なんだけど、自分一人の会社で自分一人で開発するのに2日もかけて資料作る必要あるのだろうかと考える人も多いと思う。この資料に書いた内容はすべて課題管理システム上のチケットのどこかに書いてあることなので、私の視点からは全部知っている内容ではある。ちょうど100を超えたばかりのチケット上のどこかに書いてあることを、39枚のスライドにまとめて今日の時点でのスナップショットを作るというのは思考の整理に役立っている。去年はそういうことをやらなかったので何かうまくいかなくなったのを リモートワークと相談相手 に書いた。今年はうまくいってないという感覚がないので気持ちに余裕がある。気持ちに余裕があるから新しい施策やアイディアに集中できているように考えている。

ジョギング

資料できたのが嬉しくて気分がよかったのでそのまま帰ってジョギングしてきた。今週初めて。19時までに帰ってくると行く気するんだけど、それよりも遅く帰ってくるとお腹空いて晩ご飯を先に食べてしまい、晩ご飯を食べると走りに行く気力がなくなってしまう。前に軽く調べたら健康的には食べる前に走った方がよいみたい。先週とだいたい同じ時間帯に行った んやけど、陸上部の人たちが減ってて走りやすかった。曜日じゃなくて何か別のサイクルがあるのかな。ちょっと寒いぐらいだから走っててもあまり汗も書かないし、走った後にストレッチするのも汗だくにはならない。

Slack Community

Slack Community というのがあるのをみかけたので参加してみた。これからしばらく Slack apps についてがっつり調べていく予定。困ったときに相談できるように。

読書はお休み

4-5時に6時に起きた。寝られなかったというよりは寝る気がなくて3時頃にお茶を沸かして冷ましたりしてた。6時から 【三宮.dev オンライン】リモート朝活もくもく会 に参加してメンバーと雑談してた。もはや朝活というよりは雑談会になっているw 普通に起きたら7時まわってから起きるのが、イベントがあると6時に起きれるのでそれはそれで早起きするモチベーションになっていいかとは思っている。とはいえ、お昼やっぱり眠くなって1時間ほど昼寝した。昨日あまり寝てなかったら夜も集中力なくなってバテた。

Slack apps の調査

日記に書くの忘れてた。さらに3つのアプリを試してみた。

ToDoBot

Task Management App for Slack

これは基本的には個人向けのタスク管理ツール。タスクをグルーピングする機能をもっているのでそれを共有することでチーム単位でも使えるとは思うけど、あまりチーム向けに機能が用意されているようにはみえない。

Sidequest

Meet the Missing Task Manager for Slack.

個人/グループのタスク管理とチームでタスクを共有する用途にも機能が提供されている。タスクを作る際にチャンネルに作成すると、そのチャンネルにいるユーザーが確認して適切な人を担当者として割り当てるといった運用になる。タスク作成からの導線と担当者を割り当てる UI が自然な流れになっていてよさそうに思えた。課題管理システムの代わりにはならないけど、ヘルプデスクの用途にはちょうどよさそうにみえる。

Streamly

A complete task management suite in Slack

目指しているものは課題管理システムではあるけど、Stream (プロジェクト)、Request (チケット) といった新しい名前 (概念) を導入しているので、まず用語からして学習コストが上がる。プロジェクトはチャンネルごとに設定して、Request の接頭辞やカスタムフィールドも設定できるようになっていて、課題管理システムを目指しているんだなという雰囲気はする。UI は Slack のフォームを使っているので1つ1つの操作が API 呼び出しになって操作量やフォーム入力が増えてあまり使いやすくは感じなかった。同じような操作を何度もさせられるといった印象を受ける。

一旦、これで Slack apps で適当に検索した課題管理システムに近いツールの調査を終える。1-2時間さらっと表面的なところしか触ってないけど、どれもプロダクション品質になっているのだから、内部はよく作り込まれているんだと推測する。

設計ドキュメント着手

課題管理システムの設計を資料にまとめ始めた。先週ぐらいからチケットに設計の要素を書き始めてだいたいのイメージは頭の中では固まっている。これまで3ヶ月調べた内容もあるのでそれなりの背景をもった設計資料にはなる。頭の中のイメージはできているけど、それを言語化する作業を今日・明日ぐらいでやりたい。書くことの難しいところはいざ言語化しようとするとやっぱり時間がかかる。たぶんわかった気になって本当のところはちゃんと分かってないことの裏返しだと思う。

VR イベント参加

【大阪オンライン】XRミーティング 2021/10/20【AR/CR/MR/SR/VR】 に参加した。zoom を複数地域と接続して youtube live で配信していたせいか、始まるまで時間がかかった。参加者のアバターがそれぞれ独自のものでかっこいいなと思って眺めてた。登壇者が5名いて全員が HoloLens を使っていた。電話してたり調べものしてたりしたので断片的にみていた。長めの発表と LT のような短い発表とバラバラ。適当に所感を書いていく。HoloLens の Moving Platform Mode の紹介はあまり見た目は派手ではなかったけど、どういう仕組みかを説明して動画で実際の振る舞いを説明してた。へーって感じで聞いていた。次に HoloLens 触ってはまって20年働いた会社をやめて VR 系の会社に転職した人。前職が大企業だったので給料もだいぶ下がったけど、家族を説得したらしい。給与以上に HoloLens の将来性を感じたとのこと。HoloLens で OpenCV や Azure Face API を使って顔認識するアプリケーションの紹介してた。おもしろそうだった。最後は HoloLens のアプリ開発の発表だった。Microsoft が Mixed Reality Tool Kit というライブラリを提供していて、クラウスプラットフォームで開発できる。ライブラリの Plane Finding という機能を紹介してた。空間の平面だしをする部品。水平面や垂直面を抽出したりできる。この機能を使ってアプリケーション開発のサンプルなどの話をしてた。

閃光のハサウェイ見直し

2時に寝て6時半に起きた。連日ジョギングして体を動かしたせいか、よく眠れて体調がよい気がした。機動戦士ガンダム 閃光のハサウェイ が今日からオンライン配信を開始した。私は載っているどの動画配信プラットフォームも使ってないが、iTunes Store で普通に購入できるようになっているのに気付いた。昨日の夜は閃光のハサウェイをみながら寝落ちしたので朝起きてから途中から見直した。映画館でみてたけど、戦闘のシーンは暗くてよくわからなかったので何回かみた方が発見もあるかもしれない。市街地の降ってくる炎を避けて逃げるシーンが好き。

ストレッチ

一昨日、昨日と連日でジョギングしたせいか、右股関節からお尻と右ももにかけて筋肉痛で張りがあった。そのせいかもしれないけど、今日の開脚幅は開始前168cmで、ストレッチ後170cmだった。先週とほぼ変わらないので股関節の可動域は現状維持だった。それでもトレーナーさんに筋肉痛だったところをストレッチしてもらってかなり楽になった。ジョギングして痛くなる内容が、最近は関節の痛みから筋肉の張りになっている気がしてこれはよい傾向かもしれない。前は腰にも負担がきていたけど、それも少しましになった。今日は可もなく不可もなくといったところか。

VR イベント参加

【三宮.dev オンライン】3周年記念交流会 に参加した。cluster のイベントを開いた。Oculus Quest で VR 参加できるのは Windows 向けのアプリだけっぽく macOS では VR 参加できなかった。

オープンなイベントとして開催したので誰でも参加することができて、途中で子どもが入ってきて参加者に無邪気に質問して微笑ましいカオスをもたらしていた。大人はよく知らないイベントに入って、なんの前提知識もなく参加者に話しかけたりしないだろう。そういうやり取りをみていて、子どものときから VR 空間でいろんな人と接すると子どもたちはどんな大人になるんだろう?私では想像もつかないイノベーションを起こすんだろうな。

1.5年前に1度だけ macOS のアプリで cluster イベント参加したことがあった。アプリは3回ぐらい落ちて不安定なので途中で Web でみたりしてた。そのときに比べたら今日は1度も落ちなかったので安定していた。参加者数の違いによるものかもしれないけど。前回から1.5年も経っているのに機能的なものは何も変わってないようにみえてあんまり流行ってないのかな?とも思えた。

参加者にたぬきのアバターがいて「たぬきさん、いますね」みたいな感じで和んでた。動物のアバターいいなと思って、カスタムアバターに興味がでた。VRoidStudio を使えば作れるらしい。また REALITY で作ったアバターを cluster で REALITY 連携 して使うこともできるらしい。Oculus ブログの記事 をみてたら Oculus は Oculus で独自のアバターの仕組みになるのかな。外部のツールで作ったカスタムアバターを持ち込めるようにはみえない。

Slack apps の調査

Wrangle を試してみた。

Approval and Ticketing Workflows in Slack

3つの機能をもっている。

  • ちょっとした ToDo リスト管理
  • 承認依頼を管理
  • ステップと承認のワークフローを管理

とくに SaaS 型の Web アプリケーションもなく Slack app 単体で完結するアプリケーションにみえる。組織として承認履歴を残したいといったときにチャットツール上でワークフローを定義してちゃちゃっとできるといったところが売りなのではないかと推測する。課題管理として使うアプリケーションではなかった。

日本酒いただきもの

日本酒いただきもの

0時に寝て6時に起きた。だいたい夜中に2-3回は起きるのが普通になりつつあって、前日ジョギングしてたせいか腰やお尻の筋肉に張りがあったので3時頃起きてストレッチして張りの箇所を伸ばしたりしながら寝てた。午前中、いけさんから上等なお酒をいただいた。造り酒屋の一族らしい。感謝。

朝活

朝起きる目的にいいかも?と思って Webデザイントレンドのよりみち の金朝つめとぎに参加してみた。やっぱり目的があれば6時に起きれる。でも、終わってから1時間ほど寝てたので今日はプラスマイナスゼロ。前回の朝活 と同様、ミクロ経済学の入門書を読んでた。第2章の予算線と最適化を読んだ。経済学とはこういうものだという説明が腑におちた。当たるかどうかよりも考え方を理解しておく方が大事なように思えた。

ときどき経済学に対して「経済学が想定するほど実際の消費者は懸命に選択しているとは限らない」といった批判がなされることがある。でもこれまでの説明から明らかなように、その批判は勘違いにもとづくものだ。批判したいなら「経済学は、消費者がはたから見て確実に愚かな選択をしても、それを非難しない傾向が強い」というほうが適切だろう。

もう1つおもしろかったのがこの一節。

予算線と選好を用いたミクロ経済学的分析は、現金給付のよさを指摘する。ただし、制度の悪用、人々の支持、必要原理といったことを考えると、現物給付のほうが好ましいとなる。現金給付と現物給付のどちらが総合的によいのか、これらの話だけで結論づけることはできない。とはいえここで、ミクロ経済学が有用な政策分析ツールたりえること、またミクロ経済学だけで政策を論じるのは不十分ということが分かったのは十分な収穫である。

人間の活動を予測するような学問の便宜上、前提条件や制約を課している。経済という人間にとって重要な社会システムを扱う経済学への期待値が大き過ぎるがために経済学の言うことが当たった・当たってないといった議論になりがちなのかもしれないと思えた。

データ指向アプリケーションデザイン

5章レプリケーションを読んだ。200ページ超えたことで1/3を読み終えた。まだまだ先は長い。

シングルリーダーレプリケーションは一般的なものだし、Cassandra の運用をしていたのでリーダーレスレプリケーションもだいたいは知っていた。並行書き込みの問題は意識したことがなかった。そういう状況が発生するアプリケーションにおいてはとても難しい問題なことが理解できた。Cassandra で採用されている衝突解決アルゴリズムは 最後の書き込みを勝たせる(last write wins、LWW) というものであり、これで十分なように考えていたけど、不十分なケースもあることがわかった。

レプリケーションとは、ネットワークで接続された複数のマシンに同じデータのコピーを保持しておくこと。

  • データを地理的にユーザーの近くで保持しておく => レイテンシを下げる
  • 一部に障害があってもシステムが動作し続けられる => 可用性を高める
  • 読み取りクエリを処理するマシンをスケールアウトする => スループットを高める

レプリケーションはいくつかの目的で使われる。

  • 高可用性/耐障害性
  • レイテンシ
  • スケーラビリティ

対象のデータが時間が経っても変化しないのであれば、レプリケーションは容易。単にデータのコピーを各ノードに一度だけコピーすれば完了するから。レプリケーションの難しさは、すべてレプリケーションされたデータへの変更の扱いから生じる。変更をノード間でレプリケーションするのに広く使われているアルゴリズムは次の3つになる。

  • シングルリーダーレプリケーション
    • クライアントはすべての書き込みを1つのノード(リーダー)に送り、リーダーはデータ変更イベントのストリームを他のレプリカ(フォロワー)に送る
    • 読み取りは任意のレプリカから行えるが、フォロワーから読み取るデータは古い可能性がある
  • マルチリーダーレプリケーション
    • クライアント群は、それぞれの書き込みを複数あるリーダーノードのいずれかに送信する
    • これらのリーダーノードはどれも書き込みを受け付ける
    • リーダー群は、データ変更イベントのストリームをお互いに、そしてすべてのフォロワーノードに送信する
  • リーダーレスレプリケーション
    • クライアントは、それぞれの書き込みを複数のノードに送信し、古いデータを持つノードを修正するために読み取りを複数のノードから並列に行う

データベースのレプリケーションの原理は1970年代から研究されていてそれほど変わっていない。とはいえ、分散データベースがメインストリームで利用されるようになったのは最近のこと。アプリケーション開発者の経験不足により 結果整合性 のような問題に関しては多くの誤解が生じた。いずれのレプリケーションのアプローチにもメリットとデメリットがある。シングルリーダーレプリケーションは理解しやすく、衝突解決を気にする必要がないことから、広く使われている。マルチリーダーとリーダーレスのレプリケーションは、ノードの障害、ネットワークの障害、レイテンシのスパイクがあっても頑健になる。しかし障害の理由を説明するのが難しく、一貫性についても弱い保証しか示せない。

レプリケーションは、 同期 で行うことも 非同期 で行うこともできる。どちらにするのかは、障害があったときのシステムの振る舞いに大きく影響する。非同期のレプリケーションは、システムがスムーズに動作しているときには高速に動作するが、重要なのはレプリケーションのラグが大きくなったり、サーバーに障害が生じたりしたときに何が起こるのかを理解しておくことになる。リーダーに障害が発生し、非同期に更新されていたフォロワーを新しいリーダーに昇格させたら、直前にコミットされたデータは失われてしまう可能性がある。

レプリケーションラグが生じている状況下でアプリケーションがどのように振る舞うべきなのかを決める際に役立つ一貫性モデル。

  • 書き込み後読み取り (read-your-writes)
    • ユーザーは、自分自身が投入したデータを常に見れる
  • モノトニック読み取り (monotonic reads)
    • ある時点のデータをユーザーが一度見たら、それ以前の時点のデータは見れない
  • 一貫性のあるプレフィックス読み取り
    • ユーザーは、たとえば質問とその質問への回答を適切な順序でといったように、適切な因果関係を保持した状態でデータを見れる

マルチリーダーとリーダーレスのアプローチは本質的に並行性の問題を抱えている。複数の書き込みが並列に行われることがあるので、衝突が生じる場合がある。ある操作が他の操作よりも先に行われたのか、あるいはそれらが並行して行われたかを判断するためのアルゴリズムについて説明されている。

Slack apps の調査

Workstreams.ai を試してみた。

Results-driven task management for Slack, Microsoft Teams and Google

結果駆動タスクマネジメントという聞いたことない用語が書いてある。SaaS 型の Web アプリケーションとしての課題管理システムとチャットツールとの連携が密になったプロダクトにみえる。UI もよく作り込まれている。Workstreams.ai のアカウント管理は Sign in with Slack を使っている。ドキュメントによると openid connect と oauth 2.0 の仕組みを組み合わせているのかな。認証よくわかってないので背景も勉強しないといけない。簡単にタスク作成やコメント、更新などを Slack クライアントと Web アプリケーション上で触ってみた。

もう1つ Google Sheets for Workflow Builder というのも試してみた。ワークフロービルダーのステップに簡単に Google Sheet との連携を実装できるのでめっちゃ簡単。ワークフロービルダーは本当によくできているな。

ジョギング

今日は調子はよかったけど、お仕事の区切りがよかったので19時に終えて近所の公園にジョギングしてきた。昨日も走ってたのでやや筋肉痛が残りつつ、走り始めは筋肉がきしむ感じだったけど、走っているうちに体があたたまってきて気にならなくなった。時間帯は同じだけど、昨日より陸上部の人たちが半分ぐらい少なかった。曜日によって違うのかなぁ。

やや疲れ気味

昨日は1時半に寝て7時半に起きた。なんか疲れが溜まっているのか寝不足なのか、しゃきっとしなくて15時頃にお昼ご飯食べてきて、戻ってきて2時間ほど寝てた。夕方に寝ると夜の睡眠が悪くなるかもしれない。

データ指向アプリケーションデザイン

データ指向アプリケーションデザイン -信頼性、拡張性、保守性の高い分散システム設計の原理

先週末から読み始めようと思いつつ、ダラダラしていて今日から読み始めた。600ページ超と分量が多いので少しずつ読んでいく。買ったのは2019年7月なので2年越しの積ん読。前職で書籍購入の補助制度があったのでその予算消化のために買ったみたいなもの。でも買っておくといつか読むので買っておいてよかった。今日は2章まで読んだ。

「データ指向」という用語は、cpu のデータ処理がボトルネックとなり、且つそのデータ量や複雑さなどが主な課題となるアプリケーションのことをデータ指向と定義している。ソフトウェアシステムにおける3つの課題。これはすべて非機能要件になる。

  • 信頼性
  • スケーラビリティ
  • メンテンナンス性

リレーショナルデータベースと NoSQL の台頭から始まり、ドキュメントデータベースやグラフデータベースの概要やリレーショナルデータベースとの比較などが書いてある。また NoSQL 系のデータベースのクエリ言語とか、よく知らないので勉強になった。12章あるので1日1-2章ぐらいのペースで今月中に読めたらいいや。

Slack のワークフロービルダーの調査

今度、勉強会をするので調べ始めた。ワークフロービルダーは簡単に定型的な処理を作成できるけど、有料プランでしか使えないのでコミュニティなどでは使いにくい。試しにいくつかワークフローを作ってみて感触を理解した。おそらくワークフロービルダーは Slack app を作成するためのフレームワークにみえる。作成したワークフローの1つ1つが Slack app になるのではないか。

Slack native? first? な課題管理システムもいくつかみつけた。非開発者に課題管理システムを使ってもらうのはかなり難しいので Slack と課題管理システムが連携すれば課題管理の方法論に新しい価値が出てくるのではないかと考え始めた。この機会に Slack app で構築されば課題管理システムも調べてみようと思う。