Scala 2.13 の LazyList は Stream[CallByNeed[A]]

以下のまとめでいくつか(最初は多少の勘違い含めて)LazyListに関してもtweetしてますが、Scala 2.13からStreamが非推奨になってLazyListというStreamと似てるけれど少し違うものが追加される予定らしいです。それの話

今までのGitHubの全部の草

https://t.co/Ntbndw6O9Y pic.twitter.com/HguuyWxax5— Kenji Yoshida (@xuwei_k) 2018年5月6日 https://github-contributions.now.sh/ https://github.com/sallar/github-contributions-chart id入れてログインも無しでボタン押すだけなので作っておきまし…

Scala 2.13.0-M4 からの新しいコレクションライブラリの変更

blog書くの面倒なので自分でまとめたtogetterを貼り付けるだけのエントリ togetter.com

Scala版optparse-applicativeをforkしてscala-jsとscala-native対応してリリースした

タイトルの通りでそれ以外あまり書くことないのですが、リリースしました github.com

scala-nativeでhttpリクエストを投げる方法

小ネタです。 これ書いている2018年3月現在、scala-nativeの最新は0.3.7ですが、

scalaz-magnoliaというライブラリをリリースした

一週間少し前に以下のようなのを書きましたが xuwei-k.hatenablog.com その後、

ScalaMatsuri 2018でgRPCの発表した

https://xuwei-k.github.io/slides/gRPC-matsuri-2018/#1 speakerdeck.com

scalaprops-magnoliaというライブラリを作った

github.com ScalaMatsuri中に内職して作りました、ごめんなさい。 まずmagnoliaとは、

Appleから新しくOSSとして発表されたSwift NIOとNettyを雑に比較

nettyのコミッターの人、appleに勤めてる有名人だから、swiftにあまり関係ないけど特別ゲスト的な感じでswiftのカンファレンスで登壇するのかと思いきや、こんなことやってた(コミット数1位)のか、なるほどーhttps://t.co/ZkRg8kn5A0 pic.twitter.com/yrZiuP…

父親になりました

まだはっきり確定してないけれど、4月くらいからしばらく育児休暇を取る予定です。 今まで転職しても結婚しても貼ったことなかったけれど、今回amazon欲しいものリスト貼っておくので、もしよければ何かください。 https://www.amazon.jp/gp/registry/wishli…

ScalaPBで使える protocol buffers の linter の plugin を作った

github.com 最初に作ったのは結構前なのですが、OSSにしてなかったのでOSSにしました。 sbtでの設定方法はgithubのREADMEなどを見てください。 protocol buffersには多少の慣習というかstyle guideが公式にあり、

(a == 1) && (a == 2) && (a == 3) をScalaのマクロで強制的にtrueにする

流行りに乗ってしまった。 Transformerの基本的な使い方の練習として良い例題ですね(?)

ScalaコンパイラやsbtとJava 9の対応表

Java 9が広まってきて、しかし多少古いScalaやsbtのままやろうとしてハマっている人を見かけることが多くなってきたので、簡単にまとめておきます。

scalaz.Tannenの名前の由来

以下のようなデータ型 final case class Tannen[F[_], G[_, _], A, B](f: F[G[A, B]]) scalaz/Tannen.scala at 7f5bbf571a18e2a29b337da238ab3f286954dd49 · scalaz/scalaz · GitHub

scalapb-argonautをscala-native対応させた

まずは以下のあたりも参照 xuwei-k.hatenablog.com xuwei-k.hatenablog.com それで

msgpack4z-argonaut を scala-native 対応させた

github.com 対応させてリリースしたの数日前だけれど、書くの忘れてたので今書いています。

ScalaPB用のprotobufとjsonの変換用ライブラリを大量にリリースした

大量と言っても、これ書いてる時点ではまだ3つです。 (実装の共通化のための scalapb-json-common というのを除いて。逆にそれ含めれば4つ) https://github.com/scalapb-json/scalapb-argonaut https://github.com/scalapb-json/scalapb-circe https://githu…

ScalaのmutableのHashSetの面白い挙動

togetter.com 面白い挙動だけど、さすがに自分が本当に最初に見つけた、というのもなにか違う気もするので、あのScalaパズルの本や、どこかのブログにこれ載っていたりしないんですか?

2017年振り返り

先にまとめ 出したpull request 825 mergeされたpull request 750 4520 contributions 全て個人的に過去最多 以下詳細

sbt 1.0 でインクリメンタルコンパイラを全く使わずにコンパイルする

以下経緯 togetter.com github.com それで、tweetしていた件 「compiler の bridge に互換なくなった場合でも最低限コンパイル可能なような、インクリメンタルコンパイルを一切行わない、scalacのmainに直接引数渡してコンパイルするだけのモード」 が70行ち…

2017年11月現在のScalaのWeb Framework

以前同じようなものを書いたけど、それがもう2年くらい経過してるので、また書きました xuwei-k.hatenablog.com xuwei-k.hatenablog.com まず、このblog書いてる時点でのGitHubでのstar数での順位

scalazのコミット数が1位になった

finally (๑•̀ㅂ•́)و✧https://t.co/Y52DVWOBQT pic.twitter.com/b6tYt6Aish— Kenji Yoshida (@xuwei_k) 2017年11月12日

sbt-jshell という sbtからclasspath通った状態で Java 9 の REPL 呼び出せる plugin 作った

github.com #sbt-#jshell plugin 0.1.0 released 🎉https://t.co/7r6lIQHq3A pic.twitter.com/H6WNnu17fb— Kenji Yoshida (@xuwei_k) 2017年8月9日

Apache Kafka Meetup Japan 3 で発表してきた

kafka-apache-jp.connpass.com 資料はこちら↓ kafkaでpublishのロジックを独自に作ってデータロスを無くす話

2017年前半の振り返り(GitHubのOSS活動)

雑に振り返ります

scalapropsというテストライブラリをscala-native対応させてリリースした

世界初のscala-native用テストライブラリ! といっても過言ではない。*1 github.com *1:maven centralにpublishされているものとしては。scala-native version 0.3.0 時点で、maven centralにはpublishされていないが、scala-native内部のみで使っているとて…

"文字通りScala忍者"とは

Scalazのscaladoc内のjavascriptファイルが数MBあって巨大で遅い件について考えた

さきに結論: sonatypeに自動でjavadocやscaladoc展開する機能あるけど、なにも最適化されてなくて遅い。javadoc.ioはキャッシュやgzip圧縮対応されてるのか速い

mockito 2 と ArgumentMatchers と Scala のバグ(親のstaticメソッドが呼べない)

よくScala界隈だかScala界隈に限らないのかわからないけど"org.mockito" % "mockito-all" % "1.10.19"が使われていることが多々ありますが、mockito-allは今後更新されなくて、mockito-coreのほうが更新されてるらしいので、そちらを使いましょう(そうしない…

Scala 2.11.9 はバイナリ互換壊れたので使わないでください

https://github.com/scala/scala/pull/5821 https://github.com/xuwei-k/Scala-2.11.9-FilteredTraversableInternal