Magnolia Tech

いつもコードのことばかり考えている人のために。

Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった

scala-tokyo.connpass.com

久しぶりのScalaのイベント「Scalaわいわい勉強会 #3【東京】」に参加してきました

いやーディープなScalaの話が聞ける場所は貴重なので、最高でした


会場は乃木坂のWeWork!

開始時間を完全に間違えて18:30スタートだったのに、19:00に会場到着 (しかも、参加者に送られてはずのWeWork入館メールを紛失してしまい、運営の方に開けてもらって入場...ありがとうございました)

残念ながらちょうど一つ目の発表が終わったところで完全に聞き逃してしまいました

さいわい、スライドが公開されていました

speakerdeck.com

コード同士の合成がシステマチックにできるところがScalaの最大のメリットだと思っていて、ただそれがちょっと複雑な構造になってくると逆に読み解くのが難しくなったり、ネストしたデータ構造を分解して詰め直すコードばかりになってきて、「スッキリ書きたい!」という気持ちが湧いてくるのですが、そんな時にちゃんと対応したライブラリが用意されているのが更にScalaのいいところじゃないかと思っていて、それがよく分かるスライドでした。

(その分、言語のコンテクストをしっかり読み解いていく知識が必要にはなるんですけどね...)


次はOpenTelemetryのScalaライブラリであるotel4sを使った話

docs.google.com

といってもメインはScala3のマクロの話だったので、より興味深く聞いていました


次はZIOを使ったストリームETLの話

speakerdeck.com

この辺は全然知見がないので、なるほど便利そう、という感想しか言えないんですけど、きちんと勉強するぞ!と思いました


その後、LTが続き、懇親会へ

Scalaはいいぞ!イベントはいいぞ!みんなPHPカンファレンスYAPC、ScalaMatsuriへ行こうぜ!という話をしました

最近なかなか都内でもScalaの話を聞く機会がない中、都内在住ではない二人(@tanishiking@windymelt)が遠路はるばるやってきて開催してくれているのが有難い

少しでも盛り上がりに貢献して、続くように応援していくぞ!!

みんなもScalaを書こうぜー

(でも会場でよく飛び交った言語名はRustでしたね...)


これは会場のWeWorkの廊下のかっこいい壁画

Thunderbolt 5ケーブルを買った

Thunderbolt 5ケーブルを買った

Amazon.co.jpでThunderboltケーブルを検索すると必ず上位に表示されるCable Matters社製のものを購入。

というか、今日時点で普通に買えるThunderbolt 5ケーブルはCable Matters社製に限られる模様。

Thunderbolt 5って何?という話は、インテルのサイトを見るのが一番分かりやすい。

www.intel.co.jp

目につくのはデータ転送速度が80Gbpsになり、最大240Wの給電まで対応しているところ...しかし、実際には、使っているPCがmacにしろ、Windowsにしろ、Thunderbolt 4のポートしかないので、少し安いThunderbolt 4ケーブルで十分なのだけど......

ケーブルを買う機会もめったにないので、なんとなく新しい規格にしておいた。

Thunderboltケーブルの良いところはコネクタに規格が分かるように刻印がされていところ。最低要件が割と高めに設定されているので、刻印を見て規格さえ分かれば、どんな機能に対応しているのか、非常に分かりやすい。

更に、Cable Matters社のケーブルには給電能力の最大値も分かるように刻印がされていて、親切。Thunderbolt 5の規格上は140W対応が必須で、240Wはオプションなのです(ただ、Amazonに出てくる写真ほどは印字は鮮明ではないですね)

パッケージよりもケーブルに印字されている情報量が多いってどういうこと???

ラインナップは、1.0mと、0.3mがありますが、今回はモニタ接続用に買ったので、1.0mにしました。

1.0mはモニタ接続、0.3mはストレージなどの接続用に良さそうです。

製品ページによると0.5mもラインナップにあるようですが、残念なことに日本のAmazonには売ってないようです。

とはいえ、普通に使う分にはThunderbolt 4で十分だと思います(そもそもThunderbolt対応のストレージは高いので、そうそう買うことも無いと思うし...)

zshで画面右端にgitのブランチ情報を表示する

zshで画面右端にgitのブランチ情報を表示する

右端に出ていた方が邪魔にならなくて良くないですか

.zshrcに以下の内容を追加しておきましょう

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }        # vcsのを表示する関数
precmd_functions+=( precmd_vcs_info ) # promptが表示される度にこの関数が実行される
setopt prompt_subst                   # プロンプトの変数展開を有効にする
zstyle ':vcs_info:git:*' formats '%b' # ブランチ情報だけを表示する
RPROMPT=\$vcs_info_msg_0_             # 右端にvcsの情報を表示する

zshの入門記事、意外と少なくて、WEB+DB Press Vol.83を割と読み返している

大吉祥寺.pmというイベントの振り返り「ノベルティ・ポスター編」

去る2024年7月13日に「大吉祥寺.pm」というイベントを開催した。

kichijojipm.connpass.com

振り返りブログを書き始めたら、何文字書いても終わらなくなったので、分割することにしました。

今回は、ノベルティ・ポスター編です。


大吉祥寺.pmのコンセプトとして、ノベルティや、会場の作り込みは最小限にする、というのが有りました。

最初はTシャツや、トートバッグ、パンフレット、バックパネル...色々な制作物を考えたのですが、制作費用、搬入や廃棄、余った時の扱いなど、いろいろな要素を考慮した結果、「参加者も、運営も、持ち帰る際に邪魔にならないレベルに限定する」ことにし、制作するものは「ポスター」「名札」「ステッカー」「おみくじ」の4つになりました。

ポスター

会場に来られた方が「イベントに来たぞ!」とアピールできる写真が撮れる場所を用意しておくと、TLがきっと賑やかになるはず、という発想から、会場入口に掲載するポスターを作成しました。

この目論見は成功し、みんながX(Twitter)上にポスターの写真をアップして頂きました。レポートブログなどでも登場し、キービジュアルとしての役割を果たしてくれました。

今回、大吉祥寺.pmの開催にあたっては id:akiko-pusu さんに10周年バージョンのロゴをデザインいただいたのですが、このロゴデータをベースに id:kondoyuko さんにポスターとしてのデザインに仕上げてもらいました。

daily-postit.hatenablog.com

ロゴデータはこちらに有りますので、ぜひスライドなどにロゴを掲載する際には、こちらをお使いください(これ、事前に登壇者の方に連絡できていなくて、失敗したーと反省しました)。

github.com

なお、このポスターは1枚のみ作りましたが、イベント終了後、当日のスタッフにもらわれていって、今は自宅に飾られているそうです。いいですね!

名札

こちらも10周年バージョンのロゴを中心に、大吉祥寺.pm登壇者の一人でもあるyumemi narawaさんにデザインいただきました。

最大のこだわりのポイントは、「ランチに食べたいもの」を書く欄を大きく取ることで”知らない人同士が一緒にランチに行くきっかけを作る”です!

せっかくのイベント参加なので、一人でも多くの人と交流するきっかけになった方がいいですからね。

また、裏面にはタイムテーブルなどのイベント情報ページへのリンク集(QRコード付き)が用意されていて、別でパンフレットを用意せずに済むようにしました。荷物は少しでも少ない方がいいですからね。

あと、実は最大の拘りポイントは名札ケースです。このケースは、紐が2ヶ所離れたところを通す形式になっているので、裏返りづらい作りになっています。

イベント参加でよくある「あーこの人誰だっけ?名札は....あー裏返っている!!!」という悲劇を少しでも減らすための工夫点です。

こちらの名札ケースを購入しましたが、実は制作物の中でもお金がかかったのが名札ケースです。お手元にあるみなさん、ぜひオリジナルの名札を作って、イベントなどで再利用してあげてください!

ステッカー

名札などはどうしてもイベント参加が終わると使わなくなってしまうので、せっかくのロゴを活かし、かつずっと残るものを用意しよう、ということでステッカーを作成し、参加者全員へ配布しました。

目立つところに貼っておくと、大吉祥寺.pmへ参加した思い出が蘇ること間違いなしです!!

ちなみに自分は941さんを真似して、PCのカバーの上から貼っています。

大吉祥寺みくじ

大吉祥寺...大吉...おみくじ...という、自分のとても安易な発想で企画された「大吉祥寺みくじ」。

当日は、速攻で「これは大吉しか入って...」「そこは言わない約束です」というやりとりが行われていました。

内容は、最初にChatGPTに「エンジニア向けのおみくじ、どんな内容?」と聞いてサンプルを作り、それを元にスタッフみんなでアイディアを出し合いました。

その内容をもとに、yumemi narawaさんにデザインいただき、最後はオフラインのスタッフミーティングの場で、印刷されたものを切り取って、折り畳み、糊付けを行いました。

つまり、全部スタッフのお手製なんですよ!!

ちなみに全部で8種類有ります。参加者同士で見せあって、違いを楽しんでもらえるように意外とバリエーションが用意されていたのです。


このように、ノベルティを小さいものに限定することで、邪魔にならず、小さなカバンでも持ち帰れるように工夫しています。

作り込まれた、たくさんのノベルティもカンファレンスの醍醐味だし、とても嬉しいのですが、搬入・搬出・廃棄も大変だし、参加者も持ち帰る際の荷物になると大変なので、このような方針としました。

残ったものもスタッフが持ち帰る上でも小さいと、カバン一つに入ります。撤収の負荷を下げるのもイベントの工夫の一つなのです。


今回、印刷物はすべて「グラフィック」さんを利用しました。

www.graphic.jp

入稿データのチェック機能もあるし、納期も早いし、安心して利用することができました。おすすめです。

『マルチクラウドデータベースの教科書 クラウドロックインを乗り越えるデータベースの構築ノウハウ』を読んだ

割とデータベース系には疎くて、苦手分野だなーと思っていたのだけど、最近の動向をざっと掴んでおくか、と『マルチクラウドデータベースの教科書 クラウドロックインを乗り越えるデータベースの構築ノウハウ』を購入。

今日1日かけて読み込んだけど、前半のあらためての各社クラウドデータベースのサービス内容のおさらいから、マルチクラウドの意義、各社データベースサービスの状況、DBaaSの解説へ続いて、最後にどうやってマルチクラウド構成に移行していくのか?という点が解説されているので、現代的なクラウドのデータベースサービスって今どうなっているの?使い方のポイントは何?というのを俯瞰しながらざっと理解したい人におすすめです。

この量の知識が頭に入っていると、割と説得力ある話ができると思いました。


なぜマルチクラウドでデータベースを構成するのか?という根源的な問いかけについては、以下のような理由が示されています。

  • ビジネス上の課題

  • 技術的な課題

    • 可用性(レジエンス)の向上

なんか面倒くさそうだなーと思ったけど、元々集計だけはBigQueryを使いたいからAWSGoogle Cloudを使う、という話はよく聞いていたし、最近ではクラウドベンダ間の連携も想像以上に進んでいたし、マルチクラウドに跨ったサービスを提供して面倒くささを隠蔽してくれるDBaaSも選択肢が増えていることがよくわかりました。


最初に各クラウドサービスのおさらいが始まるので「その辺は知っている!」という人は後半から読むといいな、と思いますが、前半にも意外とお役立ち情報が多い(クラウドの障害事例とかはやっぱり押さえておきたいよね)ので、遡って読むことをおすすめします。

それぞれのプロジェクトで抱えている課題は違っていて、あらゆるサービスがマルチクラウドのデータベースを導入すべきか?というのはちょっと違う気もしますが、特に企業の基幹系システムがクラウドに移行する中、可用性を上げるためのツールとしてのマルチクラウドという選択肢は押さえておいた方がいいですね。

この本は、これだけやればいい、という絶対的な正解をもたらすものではないので、結局は「自分でよく考えよう!」となるわけですが、価値観や視点といったところはビジネス側の人とも共有した方がいいので、ぜひ色々なロールの人で集まって読書会を開いてみるといいと思いました。

zshの初期設定を行う

macOS Catalina以降、macOSのデフォルトログインシェルがzshに変更されたけど、特に設定ファイル(.zshrc)とかも用意してくれないので、高機能なzshの機能が使えない状態になっている。

公式ドキュメントは分量も多く、概要を掴む構成にもなっていないし、ブログ等の設定例をコピペするのも応用が効かなくなってしまうので、まずは初期設定ツールを使うのがおすすめ。

zsh-newuser-installについて

Ubuntuなどではログインシェルをzshに切り替えると、設定ファイルの作成をナビゲートしてくれるzsh-newuser-installが起動するが、macOSでは起動しないので、以下のコマンドを実行し、手動で起動する。

% autoload -Uz zsh-newuser-install && zsh-newuser-install -f

ちなみに...

  • autoload -Uz

    autoloadは関数の遅延ロード、初めて実行される時に実際の読み込みを行う指定、-Uは一度読み込んだ関数の再定義を防止するオプション、-zコンパイル済みの関数をロードするオプション このコマンドの場合は気にする必要はないが、定番の書き方なので、覚えておこう

  • -f

    このオプションを設定しないと、すでに設定ファイル(.zshenv、.zprofile、.zshrc、または.zlogin)が存在する場合は直ちにコマンドは終了する 設定ファイルの有無に関わらず設定を行いたい場合は-fオプション付で起動する

初期設定の実行

実行すると対話型のメニューが出てくる

Please pick one of the following options:

(1)  Configure settings for history, i.e. command lines remembered
     and saved by the shell.  (Recommended.)

(2)  Configure the new completion system.  (Recommended.)

(3)  Configure how keys behave when editing command lines.  (Recommended.)

(4)  Pick some of the more common shell options.  These are simple "on"
     or "off" switches controlling the shell's features.

(0)  Exit, creating a blank ~/.zshrc file.

(a)  Abort all settings and start from scratch.  Note this will overwrite
     any settings from zsh-newuser-install already in the startup file.
     It will not alter any of your other settings, however.

(q)  Quit and do nothing else.
--- Type one of the keys in parentheses ---

ヒストリ関係の(1)と、補完の設定をしてくれる(2)、キー操作をemacs系とするか、vi系とするかを選ぶ(3)は必須

(4)は、各種設定のオン・オフをかなり詳細にナビゲートしてくれるが、正直ここに出てくるメッセージだけでは全然訳が分からないので、一旦スキップでいいと思う。

X(Twitter)アカウントの紹介用にNFCタグを導入した

カンファレンスとか、勉強会に行って、初めての方とお会いすると、恒例のX(Twitter)アカウントの紹介タイムになりますが、意外と口頭でアカウント名を伝えるのが難しかったりします(特に懇親会だと酔ってたりするので、操作がおぼつかなかったり...)。

そんな時のためにNFCタグを使って直接スマホからアクセスできるようにすると便利と教えてもらったので早速導入しました。

購入したのはこちら。

今回は3枚入りだったので、単価が100円超えてましたが、10枚以上買うと100円/枚を切る感じの価格感です。

専用のスマホ用のツールが用意されていて、かつ各種SNS用の専用メニューも用意されています。

アカウント名を設定するだけですぐに書き込めます。

さっそくカードにステッカーを貼って完成。

iPhoneの上の方をカードにかざすと、通知が出てきて書き込んだX(Twitter)アカウントのページに飛びました。

手元のAndroid端末だと、いきなりブラウザが開いて、アカウントのページに飛びました(アプリは入っているけど、ブラウザだった)。

これでビールを飲みながらでも確実に自己紹介ができますね!


今回はお試しだったので、書いませんでしたが、シールタイプも有るそうです。 身の回りの物品管理とかには良さそうですね。

一枚100円を切る単価なので、カンファレンスの個人スポンサー特典にあらかじめアカウント設定しておいたNFCシール入りの名札を用意しておく、みたいな使い方もアリだなと思いました。


その後、いただいた有益情報を追記しておきます


あと、自分でも運用するとなると、ちょっと導線が不親切、というか、いきなりカードだけ出してもわからないので、表示しておきたい。

遮断もすごく大事なので、仕切りも用意するか、と思った