会社では定期的にScalaの新たなトピックを確認したり共有したりする会をやっている。そこでScalaのRedditを見ていると、os-libのバージョンアップが知らされていた。 見ると最近のバージョンではos-libはZIPを扱えるようになっていた。APIも便利そうなので紹…
突然だがこのScala 3のコードはコンパイルするだろうか。先に正解を言っておくと「コンパイルする」(Scala 3.5.0)。 class Foo: val x = y val y = 42 では、このFooに向けて以下の呼び出しを行うとどうなるだろう? Foo().x 驚くなかれ、この式は0に評価さ…
PulumiとはIaCツールである。 www.pulumi.com 競合としてTerraformとかCDK Terraformがある。PulumiはSDKを持つ好きなプログラミング言語で好きなプロバイダのリソースを記述できる面白いアーキテクチャになっていて、例えばKubernetesやCloudflare、AWSなど…
案外まとまった手順がネットになかったので放流しておきます。 どういうときに読むか sbt-native-packagerでDockerイメージを作成しようとしたら /bin/sh: adduser: command not found と表示されたとき sbt-native-packagerとは ScalaをDockerやdebパッケー…
社のSlackでこういう発言を見た。 Go みたいにプログラムとテストを同じ dir に入れたい。 そういえば、テストとコードを同じ場所に配置する言語をよく見かける。こうした、テストとコードを同じ位置に置くという思想を(テストの)コロケーションと呼ぶようだ…
Reads[A]にはcomposeWithメソッドがあるため、これを利用して余分なフィールドを検出できる。composeWithは、いったん別のReadsを事前に経由させるメソッド。 Scala 3.3.0、play-json 3.0.4で確認した。 前提 まず、あるcase classと、余分なフィールドを含…
Scalaにはfs2という非同期ストリーミング処理を生産的に行えるライブラリがある。ストリーミング処理なので、沢山のデータがどんどん流れてきたり、ビッグデータ的な情報を扱う企業でよく利用されている。 fs2.io speakerdeck.com 最初から非同期処理に対応…