2018-01-01から1年間の記事一覧
特徴量の検出(detect)と記述(compute)については割愛。これはその後の特徴量を比較するときに使うDescriptorMatcherについての話。 まずDescriptorMatcherの使い方 コードはScalaです。 import org.opencv.core.MatOfDMatch import org.opencv.features2…
まあJavaというかScalaから使いたかったんですが、同じことなんでとりあえずJavaから使うぞ〜〜〜という話です。 (macOSの話だけど)Homebrewで入れていいの?Mavenのリポジトリにあるの使っていいの?とまあいろいろ躓いたんで、まとめときます。 OpenCV(…
題名のことやったやつおる? ここにおる。こういう例外が投げられる。 InvalidClassException: local class incompatible: stream classdesc serialVersionUID = 1083041391519420705, local class serialVersionUID = -8102506628468650634 シリアライズし…
JSR-310に限った話ではないかもしれませんが。 JSR-310で日時なりを文字列にするときは、fomratメソッドにDateTimeFormatterクラスのインスタンスを渡してやる。んー分かりやすい。ちなみにtoStringメソッドでもOK。この場合はISO 8601の形式でフォーマット…
SSE(Content-Type: text/event-stream)便利ですよね。フレームワークがサポートしていることも多いですし、その通りやれば結構サクッと動作します。 しかし、ローカルで試した場合にサクッと動作しても、ELBを介した場合に結構ハマったりしたので、その場…
結論から言うと下記のコードには問題がある。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なるものがある。別のことを調べてたらこちらの記事(のコメント欄)で見掛けて感動してしまった。 軽く触れると、newできなくなり、case classによって自動で生成されるcopyメソッド、そしてコンパニオンオブジェクトのapplyメソ…
Scalaのマクロで、コンパイルエラーにしてしまうときは Context.error を使う。 def someMethod_impl(c: Context)(arg: c.Expr[String]): c.Expr[Unit] = { // ... if (cond) { c.error(c.enclosingPosition, "a message") } // ... } でもこれが微妙に使い…
Type Dynamic Scalaはメソッドなどの有無をコンパイルの時点で解決しますが、Dynamic traitを使うことによって動的にすることが出来ます。 // Dynamic traitを使うために必要。コンパイラオプションに `-language:dynamics` を渡してもOK import scala.langu…