Posts for: #Event

新しいお仕事で3週間

2時に寝て4時に起きて仮眠して6時半に起きた。たぶん寝たんだろうぐらいの感覚。10月まで対外的には週4日で働いていたのを、11月から週5日フルタイムの働き方に移行して、やっぱりしんどいという実感がある。対外的に週4日でも10月もオフィスに来て自社のお仕事をしていたり、半日ぐらいは社外のお仕事をしたりはしていた。それでも働く義務の有無によって、意識の違いか、プレッシャーやストレスの面からなにか働き方が違うように思える。生活も働き方もまったく同じなのに。

盛り上がってないイベント

ハッシュタグ をみてもほとんど関係者や発表者しかコメントしていないようにみえた。過去に新規事業の立ち上げに協力したプロジェクトの発表があると元同僚のタイムラインで知ったのでその発表だけみてみた。私が辞めてから3年ほど経つので新規サービスも追加されていてその内容がメインだったように思う。

あまり技術的な内容ではなく、ビジネス向けでもなく、どういった属性の聴衆向けの発表なのか、私にはあまりピンとこなかった。発表の準備不足な印象を受けた。発表を無理やり押し付けられたのかもしれない。

go の Time 型とタイムゾーン

go の Time 型は Location をもっていて、タイムゾーンも一緒に扱える。モダンな言語なら時刻を扱うときにタイムゾーンをセットで扱うのでよいと私も思う。タイムゾーンをもっていない時刻型とタイムゾーンを設定するための余分なコードのことを考えずに済む。

package main

import (
	"fmt"
	"time"
)

func mustGetJST() *time.Location {
	jst, err := time.LoadLocation("Asia/Tokyo")
	if err != nil {
		panic(err)
	}
	return jst
}

func main() {
	now := time.Now()
	fmt.Println("now:", now)
	fmt.Println("jst:", now.In(mustGetJST()))
	fmt.Println("utc:", now.UTC())
}

実行結果。

$ export TZ="CET"
$ go run test_time_now.go
now: 2022-11-18 17:00:30.08305121 +0100 CET m=+0.000011788
jst: 2022-11-19 01:00:30.08305121 +0900 JST
utc: 2022-11-18 16:00:30.08305121 +0000 UTC

デジタルノマドへの関心

0時に寝て2時に起きて6時に起きた。いまは眠れる状態に落ち着きつつある。

pandoc と mermaid charts の扱い

markdown のドキュメントに mermaid で図を描く機会が増えてきた。markdown を pdf に変換するツールがあって内部的に pandoc を使っている。そのツールで pdf 変換してみたら mermaid 記法がそのままテキストで出力されたので変換するときに図に置き換えられないかを調べてみた。例えば、次のようにして markdown から html に変換できる。

$ pandoc mydoc.md -f gfm -o mydoc.html

次のように mermaid 記法がそのまま出力される。

<pre class="mermaid"><code>flowchart TB

subgraph cr [Container Registry]
  repo[repository]
end
...

mermaid を cli ツールとして mermaid-cli がある。markdown を直接渡しても mermaid のコードブロックを検出して画像変換してくれる。複数あってもよい。これはちょっと驚いた。

$ git clone git@github.com:mermaid-js/mermaid-cli.git
$ cd mermaid-cli
$ yarn add @mermaid-js/mermaid-cli
$ npx mmdc --version
9.1.7
$ npx mmdc -i mydoc.md -o mydiagram.png
Found 2 mermaid charts in Markdown input
 ✅ ./mydiagram-1.png
 ✅ ./mydiagram-2.png

cli でできるなら何とでもなるんじゃないかともう少し調べていたら次の gist をみつけた。

pandoc filters という仕組みがあって、pandoc の ast を操作するためのインターフェースを提供している。その仕組みを使って mermaid の変換を行う mermaid-filter を誰かが作ってくれていた。このツールをインストールして次のように pandoc を実行すると base64 でエンコードした画像を使って html に変換できた。

$ npm i -g mermaid-filter
$ pandoc mydoc.md -F mermaid-filter -f gfm -o mydoc.html
$ vi mydoc.html
<p>システム構成図</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSU...EnAAAAAElFTkSuQmCC" alt="" /></p>

mermaid-cli を使うか mermaid-filter を使うかは要件や好みにもよるけど、すでにツールがあるので組み合わせれば何とかできそうというところまで確認した。

コワーキングのオンラインイベント

月例のカフーツさんのオンラインイベントに参加した。先月の所感はここ 。いとうさんが岩手県普代村のコワーキングスペースに行ってきてそのお話しから始まった。私はまだ岩手県に行ったことすらないんやけど、めっちゃ田舎の、断崖絶壁の眺めのよい高台にある国民宿舎にコワーキングスペースがあるらしい。

研修の講師として、いとうさんは呼ばれてワークショップをしたらしい。参加者が付箋に課題を書き出してグループワークするといった作業に不慣れで、グループ内で話しはしているものの、あまり付箋に書いてくれなかったとかぼやいていた。地域おこし協力隊 として19歳の隊員が参加者にいたらしい。19歳で地域おこし協力隊になれるの?といとうさんが驚いていた。どうやら年齢は自治体の募集要項次第らしく、たまたま普代村の要項が18歳以上で自治体もまさかそんな若い人がくるとは思ってなかったと19歳の隊員が活躍していたという。若いから頭の回転も速いし活発でワークショップもてきぱきとこなしていたらしい。

先月のお仕事探しでマネージャー実績のない私を雇う会社はほぼないという現実に直面した。いまのお仕事を終えた後で、地域おこし協力隊の要件を私が満たすなら課題管理を実践する場として行ってみてもいいかもしれないなと話しを聞いていて少し思った。ソフトウェア開発に特化した課題管理しかできないというスコープの狭さが私のスキルの欠点でもある。仮に地域おこし協力隊としてなにかに役立てられるなら、そのスコープをさらに広げられる可能性も出てくる。

それから次の記事の話題に移っていった。Nomad List というデジタルノマド向けポータル兼 sns のようなサイトを紹介してくれた。

試しに kobe のスコアをみてみる。現時点のランキングは1182位と低い。日本はこの2年ほどコロナ禍で鎖国していたからノマドを受け入れてないのでどの都市もランキングは下がっているらしい。ざっとみてスコアがよくないのは次の項目。神戸に住んでいる私の感覚とも合致しているのでこのスコアは一定の信頼ができると思う。神戸の大半のお店は21時までには閉まるし、スタートアップ企業なんか数えるほどしかいない。とはいえ、全体としてはスコアは良好だし世界に誇れる都市の1つとしてデジタルノマドを受け入れる器はあると思う。

  • Cost
  • Vulnerability to climate change
  • English speaking
  • Nightlife
  • Free WiFi in city
  • Startup Score

あと 徳島県美馬市脇町 の町興しのようなコワーキングやデジタルノマド向けの取り組みの話しがあって関心をもって聞いていた。徳島県なら実家から近い。こんな場所あったんやと聞いていた。このサイトで紹介されているのどけやさんというゲストハウスはいつ行っても外国人がいるといとうさんが話されていた。そう言われると本当なんやろか?と確かめに行きたくなる。たぶん実家から車で1時間もあれば行けそうな気がする。

軽量のコンテナオーケストレーションツールは存在しない

0時に寝て6時に起きた。冷蔵庫に飲みものなくて不安。

docker の swarm mode

昨日から docker の swarm mode について調べていた。

オンプレにコンテナのアプリケーションをデプロイするにあたり、軽量のコンテナオーケストレーションツールはないかと調べ始めた。Kubernetes vs Docker Swarm vs Nomad - the orchestrator wars continue? を記事を読むと、軽量のオーケストレーションツールと言えるのは swarm mode か Nomad ぐらいしかない。docker に付属しているならまずはそれを調べるべきだろうと調査した。そして swarm mode の採用は見送った。現時点でこの機能が廃止されるというアナウンスはないが、あまり保守されておらず、docker 社も積極的に推進していない。近い将来、機能が廃止される可能性が高いと私は判断した。

docker のドキュメントをみながら3台の ec2 インスタンスでクラスターを構築してみて簡単であることは間違いない。コマンド2つで swarm クラスターを構築できる。一通り触ってみて数台のマシンを管理する軽量のコンテナオーケストレーションツールとしては十分だと私は思うけれど、残念ながらこのツールが求められる業務やビジネスは少ないのだろうと思う。みんな k8s に持ってかれたという感じかな。調べていて読んだ記事など。

hannali dao 雑談

Hannali DAO #02 に参加した。

最初は dao とは何かをみんなで雑談してた。私はお仕事しながら軽く聞いているつもりだったのが、議論に口出しして熱中してた。技術的に私が理解できないことが出てくると、私の認識が誤っていたり新しい気付きがあったりする可能性があるので、ついつい詳細を聞いてみたくなる。hannali dao でトークンをばら撒く戦略をみんなで考えていて dao の宣伝をしたら貢献の1つとみなしてトークンをもらえる。私は twitter でいくつか hannali dao のツィートをしていて、1ツィートが 300 PROG とかで、合計で 1250 PROG のトークンをもらった。PROG というのは hannali dao でのみ使えるトークンね。

その後、ウォレットに名前を付けられる ENS (Ethereum Name Service) というサービスがあるのを教えてもらった。ちょうどいくらか ethereum をもってたので metamask に送金して、metamask で ens の登録 (購入) をやってみた。初めて ethereum を使ってサービスの支払いをやってみた。これで私も web3 を完全に理解したよ。ens で名前を登録 (購入) するのに $22.58 、ドメイン名みたいなものでサブドメインも登録できる。サブドメインを付けるのに $2.96 かかり、その ens を metamask に紐付けるのに $7.49 がかかった。metamask に紐付けると https://etherscan.io/ などで検索したときにウォレットのアドレスではなく、ens で購入した名前が表示されるようになる。トランザクションの履歴に名前が付いてそれが誰なのかが他人にもわかってしまうことがどういった影響を及ぼすのか、プライバシー云々の他に私はまだわかっていない。web3 なので購入した名前は一般公開されているものだけど、その名前は知り合いにしかまだ教えていない。暗号資産のウォレットに名前を付けることの意味や体験などをこれから経験してみる。

オフラインのもくもく会

19時ぐらいに一口寝ようと思って寝たら0時過ぎまで寝てしまって、それから4時過ぎまで作業して寝て7時に起きた。出張の慣れない環境で生活が不規則になってきた。

ドラム式洗濯機

泊まっているホテルの部屋に備え付けられていたので洗濯・乾燥した。館内設備として有償のコインランドリーがあるのは普通だと思うけど、部屋に洗濯機があって無料で使えるのは長期出張客を対象とした差別化の1つだと思う。乾燥もしてくれるならうちの洗濯機もドラム式に変えようかなと使いながら思った。

もくもく会

出張もくもく会 を開催した。8人が参加してくれた。知り合いが5人でそうじゃない人が3人も来てくれた。初めて行った場所のコワーキングスペースの会議室だから設備をわかっていなかった。8人で作業するにはちょっと窮屈な部屋と外の工事と換気扇がややうるさかった。もくもく会をやる上で我慢できないほどではないが、あまり参加者の満足度は高くなかったかもしれない。私は3つの作業を目標として作業してた。

  • 日記を書く
  • 課題管理勉強会の資料作り
  • go 言語の勉強

上の2つはできたが、それで疲れて go 言語の勉強はしなかった。17時から成果発表。なんだかんだで全員発表してくれたと思う。物理的にモニターやプロジェクターに接続しなくても zoom に参加してマイク/スピーカーをオフにして画面共有すればよいと教えてもらった。これはテレビ会議が当たり前になったいまのプラクティスとしてよいなと思えた。

後の飲み会

もくもく会が終わってから5人で飲みにいった。参加者が知り合いを1人呼んで6人になった。2時間半制で18時から始めて20時半で終わった。眠かったのと翌日も飲みに行く予定があったので私はそこで帰ってホテルで2時間ほど寝てた。昔は当たり前だった勉強会後の飲み会というのも久しぶりの感覚で楽しかった。

知り合いだけならうちの会社の経費で落とそうかと考えていたものの、その考えがまとまらないうちに割り勘になってしまって、自身の優柔不断さを悔いた。会社の経費を使う理由は売上につながるかどうかというのが原則になる。知人であれば、日常的にお世話になっているからという大義名分が私の中で成り立つものの、そうじゃない状況になってしまったことで私の中で論理的に説明がつかなくなって接待として経費で落とすという決断ができなかった。個人ではなく経営者として判断するときは理論武装してないと固まってしまうことに気付いた。

出張の準備

0時に寝て7時に起きた。今週は仕掛かりの開発タスクを完了させるのと送別会やら挨拶やらで終始バタバタしていた。終わったらちょっと気が抜けて一時的な燃え尽き症候群のような状態になった。

ストレッチ

今日の開脚幅は開始前157cmで、ストレッチ後161cmだった。まずまずの数値。右の股関節周りが張りがあるというか関節痛がある。とはいえ可動域は少しずつ増えている気はするのでこれまでのストレッチの成果が表れて良好であるようにも感じている。ストレッチを受ける前後でも股関節の違和感は随分解消されたので疲労も溜まっていたのかもしれない。

wezterm 移行

タイムラインで wezterm がよさそうという記事をみかけたのでインストールしてみた。ターミナルにそんなこだわりはないけど、変わっていくことも大事なので余裕があれば新しいものは試すようにしている。

まつのさんの設定に次の2つの設定を追加した。

これまで一度も lua を書いたことがないので設定ファイルを lua で記述するのが新鮮。

local wezterm = require 'wezterm'
local act = wezterm.action

return {
  keys = {
    { key = 'LeftArrow', mods = 'CMD', action = act.MoveTabRelative(-1) },
    { key = 'RightArrow', mods = 'CMD', action = act.MoveTabRelative(1) },
    { key = 'LeftArrow', mods = 'OPT|CMD', action = act.ActivateTabRelative(-1) },
    { key = 'RightArrow', mods = 'OPT|CMD', action = act.ActivateTabRelative(1) },
  },
  audible_bell = 'Disabled',
  use_ime = true,
  font_size = 14.0,
  -- https://wezfurlong.org/wezterm/colorschemes/index.html
  color_scheme = "OneHalfDark",
}

コワーキングのオンラインイベント

月例のカフーツさんのオンラインイベントに参加した。先月の所感はここ 。いとうさんが長野県佐久市へ行かれたお話しが中心だった。現時点ではブログ記事は前編だけ公開されている。

この内容もおもしろかったのだけど、ブログにも内容があるので関心があれば購入して読んでみるとよいと思う。余談だけど、いとうさんが旅程を写真でふりかえりながらラーメンの写真が出てきて「このラーメンはまずかった」と吐き捨てるようにつぶやいたのがおもしろかった。その後、長野県つながりで上田市のはたらクリエイトさんの話題に発展した。

主婦向けの受託仕事を行う場としてのコワーキングスペースから始まって、規模や組織が拡大していって、コワーキングスペースを株式会社化し、そこにいた人たち70名を社員にしたという。会社内に託児所もあり保育士も社員になっている。創業時は役員以外は女性社員のみだったらしい。その後、社員が130人まで増えていまは役員を除いた男性社員が3名。多くの男性は女性しかいないコミュニティに入っていけないと私は考えていた。そして、いとうさんが盲点だったと話しを続けて私も気付いた。この3名ともシングルファーザーだという。世の中の主婦が抱えている課題とシングルファーザーの課題は共通するところが多い。その共感が女性しかいないコミュニティに男性社員が入る余地をもたらしているのだと推測する。マイナーな属性の男性の存在は社会的に無視されやすい。この視点だけでも今日のオンラインイベントに参加してよかったと思えた。

はたらクリエイトさんの関連サービスで GoKaLab というものがあり、このキャッチフレーズはいいなと気持ちが揺れた。

GoKaLab.(ゴカラボ)は、コワーキングスペースのような『研究所』です。

https://gokalab.jp/

いとうさんがコワーキングスペースで働く人たちは仕事を楽しんでいる人が多いと話していた。たしかに普通の会社員よりも目的をもち、行動力がある人たちの方が多いように私も思える。「仕事を楽しむ」というコンセプトは行き過ぎた資本主義に対するアンチテーゼと言えるのかもしれない。はたらクリエイトさんの創業者の話しを伺う分には売上や利益を求めているようにはみえない。普通の会社にあるような売上や利益の目標に縛られるようなこともないのではないかと思えた。

会社は働きたい人が働きたいだけ働くような場所になればいいと私も常々考えていた。公平感と納得感を与えるために目標制度を設けることもないし、働きたくない人たちを監視したり、無理やり働かせるための施策を練ったりすることもない。そのヒントは「仕事を楽しむ」にもあるかもしれない。

フリーランスの話題のときに説明したら軽くうけた。

sql の group concat という組み込み関数

2時に寝て7時に起きた。昨日の hannali dao が盛り上がった影響で夜更ししてた。

本番リリース後の緊急対応

昨日あるバッチ処理の本番リリースを行った。そのバッチ処理は本番環境のデータがないとテスト環境ではあまり有効な検証ができない。昨日は別のバグがあって実行できていなかったのを今日直して再実行したらまた別のバグを発見した。sql である集合を取得するときのグルーピングの条件が適切ではなかった。postgresql で mysql でいうところの group_concat に相当することをやりたい。How to Use string_agg() のチュートリアルをちょっとカスタマイズして引用する。次のようなデータがあると仮定する。

> select * from teams ;
  team_name  | team_member | num
-------------+-------------+-----
 Barcelona   | Messi       |   1
 Barcelona   | Piquet      |   2
 Barcelona   | (null)      |   3
 Real Madrid | Ronaldo     |   1
 Real Madrid | Benzema     |   2
 Real Madrid | Ramos       |   3
(6 )

このときに team_name に対して team_member も集約して数値の合計を取りたいときがある。string_agg という組み込み関数を使うとできる。null があっても無視して数値の合計はしてくれる。

> select team_name, string_agg(team_member, ','), sum(num) from teams group by team_name;
  team_name  |      string_agg       | sum
-------------+-----------------------+-----
 Real Madrid | Ronaldo,Benzema,Ramos |   6
 Barcelona   | Messi,Piquet          |   6
(2 )

送別会

プロジェクトの区切りの打ち上げと、私が今週末で契約終了となるので送別会を兼ねて催してくれた。感謝。実はこれまでプロジェクトの打ち上げに私は参加してこなかった。それは複数の意図があった。オンライン飲み会だと人数が多いほど話しにくいし、若い人たちだけの方が年長者に配慮しなくてたくさん話せていいんじゃないかと考えていた。私のような老い先短いメンバーがチームに馴染んでなくても日々の業務に変わりはないし、業務で発言しにくいといったこともないし、他に山ほど仕事の積み上げがあって他のことに時間を使えるならそれに越したこともない。過去に2-3回打ち上げしていたと思うけど、私は今回が最初で最後の参加となった。

都合のある人はばらばら抜けたりもしていたけど、9人ほどずっと参加していて20時から始めて23時過ぎまでやっていた。この人数だと、みんなが話せるというわけでもなくて、本当に2つのグループに分けて雑談した方がよかったのかもしれない。私は1-2割ぐらいの時間を話していたと思うけど、ほとんど聞いているだけで話さないメンバーも半分ぐらいはいたと思う。それは年長者がたくさん話せるように配慮して若い人たちが話しにくいというのは実際にあるのではないかなとも思えた。終わりの時間を決めておかないと延々話しが続いてしまう。チキンレースみたいになってしまって誰かが抜けると言わないと終わらない雰囲気になってしまった。それが23時過ぎで、ある人がそろそろ抜けますと宣言して「私も」「僕も」と続いて、じゃあお開きにしましょみたいなノリで解散となった。いろいろな話しができて楽しかった。

hannali dao に参加した

23時に寝て1時に起きて2時間ほどだらだらしてて6時に起きた。

最後のふりかえりイベント

最終週なのでこのチームでのスプリントのふりかえりは今日が最後になる。メンバーが気を遣ってくれてこれまでの活動に感謝を伝えてくれた。いくつか出たコメントをあげる。

  • インフラを整備した
  • チケット駆動開発の基礎を伝えた
    • 課題管理のよさもわかってきた
    • メンバーが課題管理を行う習慣化につながった
  • 社内でもっとも backlog を使いこなしているチームになった

1年に渡って開発に参加して課題管理を見守ってきたので課題管理とは何ぞやの基礎をメンバーの大半は理解できるようになったと思う。(私からみて) ワークフローを洗練させるという視点で現状の運用は入門レベルではあるけれど、根っこの部分をちゃんと理解できているメンバーもちらほらみえてきたのであとは時間とともに上達していくのではないかと思う。このままもう2-3年取り組めばスクラムに頼らなくても高い生産性と迅速な情報共有ができるチームになるかもしれない。1年前はチームで課題管理がほとんどできていなかったのに、いまは大半のメンバーがやろうとするようになった。他のメンバーの行動を変えられたのが私としても嬉しい。いくつかの組織やチームで何度もやってきたことなので半年から1年あればできるというのは一定の信頼がおけて自信ももっている。今後の私の課題としてはこれを3ヶ月で達成する、1ヶ月で達成するための体系化やリーダーシップを作り上げていくことが考えられる。

hannali dao 始動

Hannali DAO に参加した。Metaアカウントへの移行(Workrooms向け) によると、2022年8月30日以降は meta アカウントではないと workrooms にアクセスできないらしい。ここ2-3ヶ月 workrooms を使っていなかったのでまとめてシステムのアップグレードや meta アカウントの移行なども行った。まったく難しくなくて手順通り作業を進めればアップグレード作業も含めて1時間もあれば完了するぐらいの作業量。当初は workrooms で開催する予定だったが、諸事情あって zoom 開催になった。とはいえ metamask の設定などをいろいろやっていたので結果的に zoom でよかった。

おがわさんが作った dao で利用できる PROG という名前のカスタムトークンをメンバーに配って受け取る。受け取る方も metamask で wallet と接続しないと受け取れない。polygonscan というサイトで自分のアドレスへの polygon ネットワークのトランザクションを次の uri で確認できる。PROG というカスタムトークンを 50 受領しているのがわかる。

これだけのことをやるのにまったく作業の勘どころが働かなくてみんな四苦八苦していた。たったこれだけを2時間ぐらい。その後、dao や世の中の事例について雑談。お互いの情報共有になっておもしろかった。私は web3 関連に技術体系には否定的なスタンスを取る方だけど、技術そのものを否定しているわけではなく、なにかしら価値はあると考えているのでどういった用途に使うのがよいのかを探りたいという思いがある。最後にそれぞれのメンバーがもっている PROG トークンの比率に応じて投票権をもつ。みんなの投票結果を使って次の開催日を決めてみた。本当の投票は手数料がかかるトークンを使ったアプリになるのだろうけど、このアプリは手数料なしで使えるらしい。

イベントはしご

1時に寝て4時に起きて6時に起きた。

jackson の tips

jackson で調べているとググったときに stackoverflow に書いてある内容が、機能的には正しいけれど、deprecated になっているアノテーションが多々ある。そのときに新しいやり方はどう設定していいか分からないということがある。今日たまたま実装した処理に2つアノテーションが出てきたので備忘録として書いておく。

@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
  • デシリアライズするときに my_field のようなスネークケースのフィールド名を myField のメンバーにマッピングする
@JsonIgnoreProperties(ignoreUnknown = true)
  • デシリアライズするときに json に存在してクラスに存在しないフィールドを無視する
  • データ構造の移行時にエラーを出さないとか、不要なフィールドがあるときに設定するとよい

上司道 リーダーはレジリエンスを高める自己肯定感を学ぼう

以前 SECI モデルのワークショップ に参加して、同じチームにおられた方が 上司道 という勉強会コミュニティを運営しているのでお誘いを受けた。せっかくの縁だと思ったのでコミュニティに参加した。その勉強会で 日本セルフエスティーム普及協会 の工藤氏による自己肯定感の紹介イベントがあったので試しに参加してみた。

軽く私の自己肯定感をチェックしてみると普通。低くも高くもない。私はどこかのタイミングで他人と比較するのをやめた。それは自己肯定感を高めるためにはよい慣習らしい。そのおかげで私は自己肯定感が低くはないようにみえる。自己肯定感には社会的と絶対的の2つの構成概念がある。

  • 社会的自己肯定感
  • 絶対的自己肯定感

重要なのは絶対的の方になるらしいが、多くの人は社会的の方が割合として大きいらしい。社会的に頼っていると、キャリア戦略に失敗したり、会社でリストラされたりすると自尊心が傷つきやすくなる。私もこのタイプだと思う。近い将来リストラされることを想定して自分の会社を作ったという背景もある。自分の会社があると、自分で自分をリストラしない限りは集団に帰属しているという社会的欲求を満たせる。それが社会的自己肯定感と関係があるように思える。いまの私の環境は自尊心が傷つきやすい状況ではないため、あまりセミナーの内容には関心をもてなかった。それよりも参加者が共有していた自尊心を脅かされる状況の経験談にひどいものが多くて、それらと比べると私の環境は恵まれていて世の中に感謝する気持ちになった。

後藤達也さんのオンラインミーティング

たまたま21時半からコアメンバー向けの zoom ミーティングを行うという投稿をみかけたので参加してみた。2時間ぐらいやってたのかな?軽く聞いて帰ろうと思っていたものの、なんだかんだで最後まで参加していた。

軽く計算すると note のメンバーシップだけで約774万円/月の売上になる。すごい。

(500 * 9577) + (3016 * 980) = 7,744,180

こんな儲かっているサブスクリプションの新規募集を停止する背景として、これ以上コアメンバーが増えてもコミュニティとしての運営が難しくなるからやりたくないのだという。例えば、すでに3000人いるが、この人数でオフ会を開催することはできない。月々の料金を高くしてメンバー数を減らすというのが経済学的な解であることは理解しているが、後藤さん1人で提供しているようなサービスに月980円を超える料金をとることに抵抗感があるから値段をあげたくないと話されていた。とても謙虚な人だと思う。コミュニティ運営を難しくせず料金もあげないという戦略からコアメンバーをこれ以上増やさないという判断をしたそうだ。

はっくばー再訪

0時に寝て2時に起きて眠れなくて4時過ぎまでだらだらして7時に起きた。お昼に勉強会を終えて (ワクチンによる37.1℃の発熱で) 軽くしんどかったので2時間ほど寝てた。

ストレッチ

ワクチン接種翌日だったけれど、問題なくストレッチへ行くことができた。行く前にオフィスで体温を計測したら36.9℃だった。Dr.stretchの店頭で計測したら36.1℃だった。腕で簡易的に測る計測器の精度はそんなもんかなとか思ったりした。今日の開脚幅は開始前156cmで、ストレッチ後160cmだった。左腕は注射したばかりなので気を遣ってもらいながらストレッチをしてもらった。右足の太ももとふくらはぎに張りがあって疲労が溜まっているようにも思えた。毎週ストレッチしているから体調を維持できている側面は大きいと思う。

VR 空間での勉強会

【三宮.dev オンライン】VR開催!4周年記念LT大会 に参加した。Mozilla Hubs というサービスを使って vr 空間での部屋で勉強会を行った。1年前は cluster というサービス で開催していた。hubs というサービスを使うのが私は初めてだったのだけど、まだ不安定なところがあるのか、マイクがうまく接続できなくて参加者間で聞こえる・聞こえないといった状況が何度か発生していた。

参加者が使い慣れていないツールで勉強会を開くと、操作がわからなかったりマイク・スピーカー接続トラブルによるコミュニケーションが取りにくかったりしてなかなか難しいなと周りをみながら思った。ブラウザで vr 空間を自由に移動したり、アバターの位置関係を考慮して声の聞こえ方が変わったりするのは付加価値としておもしろいのだけど、移動することにそもそも意味がないとか、話者から遠いと声が聞こえにくくて近くに移動しないといけないとか、実務的な勉強会の運営としてはあまり意味がない。hubs の vr 空間で遊んでみて、vr の付加価値とイベントとしての付加価値をどうつなげるかといったことが今後の課題になってくるように思えた。

はっくばー再訪

近所にあるはっくばー に再訪してきた。2回目。プレオープンから3ヶ月以上経過してどんな雰囲気になっているのか興味本位で見に行ってきた。三宮.dev の slack で募ったら3人参加表明してくれて、勉強会後に2人さらに増えて、私を含めて6人で行ってきた。はっくばー行く前に軽く串カツ屋さんで晩ご飯を食べてから訪問した。勉強会を終えてから参加者で晩ご飯食べに行くというのが、コロナ前は普通のことだったのが随分と久しぶりのイベントのように感じた。はっくばーではオーナーの学生さんが1人で営んでいた。ここ3ヶ月ぐらいはずっと1人でまわしているらしい。プレオープンのときにその場でアルバイトになった人たちや手伝うとか威勢のよいことを言っていた人たちは半年も経たないうちにいなくなったんだというのが伺えた。

うちらが行ったときにもう1組グループがいた。そこに3年前ぐらいに神戸の勉強会コミュニティを作りたいと言っていたのにたった2回の勉強会でやめた人もいて、相手もこちらを覚えていたみたいで3年ぶりに話しをした。オーナーの意向でもう一組のメンバーとうちらのグループと半々で雑談しようということになった。そうしているうちにさらに8人ぐらいのグループがやってきた。キカガク という会社の会長さんが、起業家育成のサービスをやっていて、そのサービスの受講生と一緒に来られた。たまたま私がいる席にその会長さんが来られたのでサービスの内容や起業についての雑談をしていた。その会長さんはしっかりした考えをもっていて、全くスタートアップではないけれど、スモールビジネスの起業家を育てるためのビジネスをやりたいという話しだった。共感できるところもいくつかあった。

うちらは21時頃に訪問して、その後は3組のグループがいたことになる。オーナー曰く、過去一番の大盛況だったらしい。グループが3組いて雑談している (20人ぐらい) のが過去一番と言っているぐらいなので三ノ宮という場所ならそんなものだろうとは思えた。あとはっくばーで久しぶりに会った知人について、一緒に働いたことのある人たちからの評判がかなり悪かった。うまく言えないけど、私も信頼できない人だと感じていた。そういう人は普段の行動や態度に表れているのだろうと思えた。たまたま行ったときが過去一番の盛況ぶりだったのでオーナーの学生さんと雑談する時間を取れなかった。またもう1回、暇そうなときに行ってみてオーナーさんの話しも聞いてみたいと思う。

出張もくもく会を催す

0時に寝て8時に起きた。本当は休日なんだけど、運用に影響を与える変更の pr を金曜日に送っていて、その approve が出たのでマージ処理とデプロイをしてテストのお願いをしようと考えていたら、要件漏れがあることに気付いてその修正を行って再度 pr を出した。この変更はちゃんと検証しないといけない修正なのでできれば今日中にはテスト環境にデプロイしておきたかった。

出張もくもく会

出張中の隙間に当たる11月3日(木)は祝日でやることがない。普段の土日祝日は元気ならオフィスで調べものや自社のお仕事をしている。出張中だからコワーキングスペースに出掛けて作業しようという延長上で、いまシェアオフィスを借りている業者さんは全国展開しているので東京のコワーキングスペースの会議室も借りられるのであれば、会議室を1日借りてしまってもくもく会にしてしまおうと思い付いた。

会議室の予約システムからは東京のコワーキングスペースの会議室も予約できた。どうやって入室すればいいかわからないなと思ってサポートに電話してみた。そしたら、シェアオフィスの借り主が全国の施設を利用できるかどうかは契約次第らしい。最近の契約はそうなっているらしいが、私が契約したとき (約3年前) はどうだったかを忘れてしまった。たしか契約するときに関西は使い放題プランがサービスで付いていたのは契約書で確認できたが、関東はどうなるのかよく覚えていなかった。うちの施設に常駐しているコンシェルジュさんにどういう契約になっているのかを聞いてみた。すぐに調べてくれて問題ないと確認できた。せっかくなので connpass にイベントページを作ってみた。会議室なので8席しかない。この人数なら知り合い限定でよいとも考えている。とはいえ人が集まらなかったら寂しいので一応は一般枠も設けておく。一般枠は参加しにくいように金額設定しているが、様子をみてからあとで無料にする予定。

m2 macbook air が届いた

先日購入した macbook air が届いた。ひとまず起動してマシンの初期設定を行う。デスクトップまで起動して、最初にやることとして思い付いたのが google chrome をインストールして 1password のインストールと初期設定だった。すべての認証は 1password で管理しているのでこのサービスが使えないと業務できなくなる。また空き時間に少しずつ設定していく。

SECI モデルのワークショップに参加した

0時に寝て、2時、3時、5時に起きて7時に起きた。夜中何回も起きる。

データ移行スクリプト

あるテーブル間のデータ移行のために久しぶりに python のスクリプトを書いた。python の文法を忘れるぐらい最近は書かなくなってしまっていた。1時間ほど書いていると興がのってきてそれなりに書けた。書いていれば体が覚えているので自然に動く的な。dump データ (insert 文) から json 文字列を含むデータを移行しないといけなかった。json 文字列を1つのカラムの値としてパースするのが思ったより難しかった。とはいえ python だとこういう煩雑な文字列操作は得意なので1-2時間で実装して移行作業を完了できた。

SECI モデルのワークショップ

たまたま twitter でフォローされたアカウントのタイムラインでみかけた ゲームで体感!SECIモデル~チームビルディングの瞬間に迫る!~ に参加した。SECI モデルとは野中郁次郎氏と竹内弘高氏の論文で提唱された知識創造のフレームワークの1つ。私は実践知の本で知って、スクラム本でも紹介されていたのでよく覚えていた。

暗黙知と形式知がぐるぐるまわるんだよという頭だけで理解していて、違和感もなかったし、普通に理解していたつもりだった。SECI モデルを学ぶことを意識したワークショップに実際に参加してみると、知識で理解していた概念と実際に行動 (ワークショップを通してチームで学ぶ) を通して得たフィードバックのようなものがあって、参加前の私は SECI モデルを誤解していたことにも気付いた。単純に知識創造だけのことを言っているわけではなく、チームビルディングや人間関係も知識創造には影響を与えている。私が他人にあまり関心をもたない人間だから人間関係や多様性が知識創造にどういった影響を与えるかを軽視していたと思う。

このワークショップは有償なのもあるだろうけど、2時間で SECI モデルとチームビルディングを組み合わせた要点が学べるようによく練られたものになっていたと思う。チームビルディングの3要素として、目的・関係性・多様性をあげていた。SECI モデルは個人、チーム、組織、環境の集合の要素としてモデル化されていた。個人よりも大きい集合 (チーム、組織) の重要性を私は軽視していたから気付きが多かったという話し。SECI モデルで提唱されていることは、多寡はあっても開発者は普段の業務で普通にやっている。受講後に SECI モデルで実践していることをよりエンパワーメントする仕組みを課題管理もしくは課題管理システムの文脈でできないだろうかと考えたりもしていた。ふらっと参加したのに私にとって気付きが多かったのでこのワークショップを運営しているコミュニティのイベントに今後も継続的に参加してみようと思う。