Lambdaカクテル

京都在住Webエンジニアの日記です

ブルガダ型心電図 その1

持ち前の計画性の無さで伸ばしに伸ばしていた健康診断が遂にバリウムと一緒にやってきてしまい、下剤が体中を駆け巡って今俺の腹は爆発している。台風も来て気圧もテンションも下がるしこれ四月にちゃんと受けていればよかったな、本当は四月あたりで受けな…

Scalaでネストしたオブジェクトの型はワンライナーで定義できる(JSONに対応する型を宣言的に定義する)

追記 具体的な型が分かるわけではないので、この方法だとうまくいかないことがわかった。詳しく調べている。 本編 わけあって(わけは後で話す)、以下のようなJSONに対応する型エイリアスを定義しなければならなくなった。 { "deviceEvent": { "buttonClicked…

あるサーバ(MySQL、任意のTCPサーバ)が起動しているかシェルスクリプトから確認し、起動するまで待つ作法

自分用メモ。 MySQLが起動するまで待つ mysqladminコマンドにはpingというサブコマンドがあるので、これを利用すれば起動するまで待つ処理を書くことができる: until mysqladmin ping -u "$MYSQL_USER" -h "$HOST" --silent; do echo "waiting for MySQL to …

畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる

こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ a.k.a.DJ Monad (@fumieval) 2023年5月29日 …

Scala 3.3.0から標準で使えるようになるfewerBraces記法のまとめ

先日、Scala CLI v1.0.0がついにリリースされた。これまではv0系列だったので、満を持しての正式版リリースだ。おめでとう! github.com いちおう説明しておくとScala CLIは総合的なScalaのコマンドラインツールで、以下のようなことができる: Uber JAR(単体…

Scala + tapirで定義したエンドポイントにhttp4sクライアントでアクセスするパターン

ScalaでHTTPエンドポイントを定義するためのライブラリであるTapirは最近よく使われており、Star数もとても多い(今見たら1.2kだった)。具体的なHTTPライブラリから独立した定義ができるため、メンテナビリティが高いのが特徴である。OpenAPIの定義を生成する…

Scala 3は普通にAWS Lambdaで実行できる

そういえばScalaをAWS Lambdaで実行するのどうするんだっけ、と思った。実はScalaをLambdaで動かしたことは無い気がするので調べておいた。今回はJava 17を前提に動作させる。 tl;dr AWS LambdaのJavaランタイム sbt-assembly sbt-assemblyへの依存性の宣言 …

Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?