最初は dao とは何かをみんなで雑談してた。私はお仕事しながら軽く聞いているつもりだったのが、議論に口出しして熱中してた。技術的に私が理解できないことが出てくると、私の認識が誤っていたり新しい気付きがあったりする可能性があるので、ついつい詳細を聞いてみたくなる。hannali dao でトークンをばら撒く戦略をみんなで考えていて dao の宣伝をしたら貢献の1つとみなしてトークンをもらえる。私は twitter でいくつか hannali dao のツィートをしていて、1ツィートが 300 PROG とかで、合計で 1250 PROG のトークンをもらった。PROG というのは hannali dao でのみ使えるトークンね。
上の2つはできたが、それで疲れて go 言語の勉強はしなかった。17時から成果発表。なんだかんだで全員発表してくれたと思う。物理的にモニターやプロジェクターに接続しなくても zoom に参加してマイク/スピーカーをオフにして画面共有すればよいと教えてもらった。これはテレビ会議が当たり前になったいまのプラクティスとしてよいなと思えた。
昨日あるバッチ処理の本番リリースを行った。そのバッチ処理は本番環境のデータがないとテスト環境ではあまり有効な検証ができない。昨日は別のバグがあって実行できていなかったのを今日直して再実行したらまた別のバグを発見した。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行)
>select team_name, string_agg(team_member, ','), sum(num) from teams groupby team_name;
team_name | string_agg |sum-------------+-----------------------+-----
Real Madrid | Ronaldo,Benzema,Ramos |6 Barcelona | Messi,Piquet |6(2行)
jackson で調べているとググったときに stackoverflow に書いてある内容が、機能的には正しいけれど、deprecated になっているアノテーションが多々ある。そのときに新しいやり方はどう設定していいか分からないということがある。今日たまたま実装した処理に2つアノテーションが出てきたので備忘録として書いておく。