Magnolia Tech

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

2019-06-01から1ヶ月間の記事一覧

Javaや、Scalaで、camel-caseをsnake-caseへ変換する方法

GoogleのGuavaというライブラリを使うとできる。 github.com 各種case表記を相互に変換してくれる便利なライブラリ。 Json4sのこのissueの解決の参考なるかと思って調べたけど、まぁObjectのキーが負の数って時点で、特殊な話なので、そこはtransformFieldで…

Timbuk2のメッセンジャーバッグを買った

Timbuk2のメッセンジャーバッグを買った。Sサイズだと、13インチノートPCがかっちり入るサイズ。長距離の移動時に、メインのバッグとは別にあると、最低限の持ち物(PC含む)がまとめられて便利。 [ティンバックツー] クラシックメッセンジャー S Jet Black …

ScalaMatsuri 2019に行ってきた

2019.scalamatsuri.org 今まで行きたいと思っていながらなかなか行けなかったScalaMatsuriにようやく参加してきました。 ScalaMatsuriは、割とメインの日程が土日になるように設定されていて、それだと参加しづらかったのですが、今年は金曜日にメインの日程…

Scalaでネストしたcase classのインスタンスを作るときに気をつけること

きっかけはJson4sの、このissue. github.com テストクラスの中で定義したcase classが正しく判定されない、というもの。 いくらJson4sのコードを追いかけてもよく分からなかったところ、いつも色々なことを教えて頂くKenji Yoshidaさん(@xuwei_k)に教えて頂…

Akko 3068というメカニカルキーボードを買った

Akko 3068 小型のメカニカルキーボードが欲しく、でも自作に手を出すのも時間が足りない…みたいなことで、検索していたら丁度よさそうのを見つけた。Akko 3068というメカニカルキーボードで、Cherry製のキースイッチが採用されていて、茶軸、青軸、赤軸から…

小西康陽 / わたくしのビートルズ

普段、本を読むと言えば技術書ばかりで、あまりコラム集のような、明確な目的の無い本を読むことが無い。 わたくしのビートルズ 小西康陽のコラム1992-2019作者: 小西康陽出版社/メーカー: 朝日新聞出版発売日: 2019/04/19メディア: 単行本この商品を含むブ…

Scala 2.13.0がリリースされた

github.com 長い開発期間を経て、ついにScala 2.13.0がリリースされました! 今回、ドキュメントへの1行だけの追記ですが、初めてScala本体へのPRがマージされたので、Contributorsに自分の名前が有るのが最高に嬉しいですね。 github.com というわけで、Sca…

Scala 2.13におけるStringに対するtoIndexedSeqの挙動

Scala 2.12と、2.13で返す型が変わっていますが、ドキュメント上で探すことができませんでしたのでここに書いておきます。 Welcome to Scala 2.12.8 (OpenJDK 64-Bit Server VM, Java 12.0.1). Type in expressions for evaluation. Or try :help. scala> va…

scala 2.13から導入されるArraySeq.unsafeWrapArrayは何が'unsafe'なのか?

blog.magnolia.tech 先日のエントリで、ArraySeq.unsafeWrapArrayを取り上げましたが、そもそも何が'unsafe'なの?immutableなデータ構造にラップするので、safeなのでは?と疑問に思ったところ、いつものごとくKenji Yoshida(@xuwei_k)さんに教えて頂きまし…

Scala 2.13からArrayからIndexedSeqへの暗黙の変換が非推奨となる

いよいよ正式リリースが近づいてきたScala 2.13ですが、既存のコードをリリース候補版のScala 2.13でコンパイルすると以下のようなメッセージを見かけるようになりました。 scala> def makeSeq(a: Array[Int]): Seq[Int] = if (a == null) Nil else a ^ warn…

Scala 2.13からscala.SeqはImmutableになった

Scala 2.12まで Welcome to Scala 2.12.8 (OpenJDK 64-Bit Server VM, Java 12.0.1). Type in expressions for evaluation. Or try :help. scala> val seq1: scala.Seq[Int] = scala.collection.immutable.Seq(1, 2) seq1: Seq[Int] = List(1, 2) scala> val…