scala

OpenCVのDescriptorMatcherの話

特徴量の検出(detect)と記述(compute)については割愛。これはその後の特徴量を比較するときに使うDescriptorMatcherについての話。 まずDescriptorMatcherの使い方 コードはScalaです。 import org.opencv.core.MatOfDMatch import org.opencv.features2…

OpenCVをJavaから使うぞ〜〜〜完全インストールマニュアル

まあJavaというかScalaから使いたかったんですが、同じことなんでとりあえずJavaから使うぞ〜〜〜という話です。 (macOSの話だけど)Homebrewで入れていいの?Mavenのリポジトリにあるの使っていいの?とまあいろいろ躓いたんで、まとめときます。 OpenCV(…

Akka StreamsのalsoToを使うとSourceが停止しない

結論から言うと下記のコードには問題がある。rediscalaでRedis pub/subに繋いで、subscribeで受け取った内容をAkka HTTPでのSSEで返すコードの例です。 import java.nio.charset.Charset import akka.actor.ActorSystem import akka.stream._ import akka.st…

sealed abstract case classがすごい

sealed abstract case classなるものがある。別のことを調べてたらこちらの記事(のコメント欄)で見掛けて感動してしまった。 軽く触れると、newできなくなり、case classによって自動で生成されるcopyメソッド、そしてコンパニオンオブジェクトのapplyメソ…

Scala dynamics + macros

Type Dynamic Scalaはメソッドなどの有無をコンパイルの時点で解決しますが、Dynamic traitを使うことによって動的にすることが出来ます。 // Dynamic traitを使うために必要。コンパイラオプションに `-language:dynamics` を渡してもOK import scala.langu…

パッケージの依存を単方向にするための拡張メソッド

DDDの話をするとしよう*1。 IDDD 第9章 モジュールにおいて、モジュール(Scalaだとパッケージ)の依存は極力減らせ。現実的には難しいが、単方向にしたり、親子関係にあるならば双方向を許可する、ということが述べられている。 しかしこれめっちゃ難しい。…

ScalaのJSONライブラリcirceの使い方

ScalaのJSONライブラリと言うと、json4sあたりが有名なのかと思います(私感)。 が、json4sはリフレクションを使うので、何かと避けたい方も多いかと思う。 ということで、circeを使ってみましょう。 circe概要 circeはScalaのJSONライブラリです。 読み方 …