Scala
SparkにREST API経由でアクセスできるようにするApache Livyは以前から知っていたのですが、アドホックなジョブを投げるにはやっぱり画面がないと辛いなぁと思っていたところ、ZeppelinにもLivy用のインタプリタがあるっぽいのでこれを使えばZeppelinのノー…
主催者のOliさんからのDMで急遽 Scala Love in the City で話させていただくことになり、あまり時間もなかったので準備なしでも話せるGitBucketの紹介をさせていただきました。スライドは以下になります。 GitBucket: Open source self-hosting Git server b…
最近GitBucketでTomcatにデプロイするとエラーになるというレポートがあり、調べていたのですが、 github.com どうやらwar内のファイルのタイムスタンプが負の値になっており、warの展開時にその値をファイルの更新日時として設定しようとしてエラーになって…
ScalaTestでは以前からMockitoSugarというトレイトが提供されており、ScalaからMockitoをちょっとだけ便利に使用することができるようになっていたのですが、元々それほど大した機能もなかった上に現在は別ライブラリに切り出されてしまったこともあり、使う…
これまでScalaでGraalVMのネイティブイメージ生成機能を使う場合はsbt-native-packagerプラグインを使用していたのですが、最近新たにsbt-native-imageというプラグインがリリースされたとのことで実際に試してみました。 Released the first version of sbt…
以前PicocliとGraalVMを使ってScalaでネイティブCLIアプリケーションを作成する方法を試してみたのですが、その後細々とスタンドアロンのネイティブイメージを作成するのに適したScalaライブラリの組み合わせを試したりしていたので、これらをまとめてgiter8…
以前Metalsユーザ向けのBloopの紹介記事を見かけたのですが、確かにVS CodeなどでMetalsを使っている場合、BloopやMetalsサーバが常にVS Codeの背後で起動しているのでターミナルでのコンパイルやテストの実行にもBloopのCLIを活用するには理に適っているか…
Metalsも最近は随分出来が良くなってきて割とVSCodeでも割と不自由せずにScalaの開発ができるようになってきました。Emacsやvimユーザの方もMetalsを導入することで実用的なScala開発環境を構築できるのではないかと思います。 ひとつ気になっていたのが、業…
今年はコロナウィルスの影響でScala Daysが延期されてしまったのですが、Scala Loveポッドキャストを配信しているOliさんの主催で先週末にScala Love Conferenceというオンラインカンファレンスが開催されました。 初開催にも関わらず、2トラック構成で休憩…
いまだScala 2.11までのサポートしか提供されていないなど開発が停滞気味のScala Nativeですが、最近書籍が出たということで読んでみました。 Modern Systems Programming with Scala Native: Write Lean, High-Performance Code without the JVM作者:Whalin…
以前、Scalaを使ってCLIツールを作るという記事を書いたのですが、やはりJVMベースのアプリケーションには起動時間のオーバーヘッドが付き物なのでちょっとしたCLIツールをScalaで書こうという感じにはなかなかなりません。そこで今回はPicocliというJava向…
Scala用のSinatraライクなWebフレームワークScalatraの最新バージョン2.7.0をリリースしました。 github.com 今回は2年以上ぶりのメジャーバージョンアップですが、今回はScala 2.13への対応、メンテナンス性向上のためにあまり使われていないモジュールやSc…
私は普段主にScalaを使っているので、ちょっと手の込んだ処理が必要だったりJava/Scalaライブラリを使ったツールが必要な場合にScalaで書けると便利だなと思うことがあります。 AirframeはScala用のDIコンテナを中心とした様々な機能を提供するライブラリ群…
ロンドンで技術系イベントを多数開催していたSkills Matter社が10月末に破産してしまったそうです。 www.cbronline.com Skills Matter社はScalaDaysを除けばヨーロッパで最大のScalaカンファレンスであるScala Exchangeを毎年開催していたりと、Scalaコミュ…
去る10月23日(水)にトレジャーデータの東京オフィスでAirframe Meetup #3が開催されました。 airframe.connpass.com 誠に僭越ながら私もLTをさせていただきました。Java時代からのDIの変遷を振り返るという老害的なテーマだったのですが、だいぶグダグダな…
Apache PredictionIOは、SalesforceによってApache Software Foundationに寄贈されたオープンソースの機械学習プラットフォームです。 PredictionIOは機械学習ワークフローの全プロセスをカバーし、エンジンテンプレートという雛形をベースにすることで機械…
先日開催されたSpark + AI Summit 2019にあわせてDatabricks社からSpark用のストレージレイヤ「Delta Lake」のOSS化が発表されました。 databricks.com GitHubリポジトリはこちら。 github.com Delta LakeはSparkのライブラリとして実装されており、分散スト…
MetalsはScalametaのサブプロジェクトとして開発されているScala用のLanguage Serverで、Visual Studio CodeやAtom、Vim、EmacsなどのテキストエディタでScalaプログラミングを行う際にIDEのような機能を利用できるようにするものです。 scalameta.org コー…
2月28日(木)に大手町のGlobal Business Hub Tokyoで開催されたTokyo Scala Developersコミュニティのミートアップをトレジャーデータでホストさせていただきました。 www.meetup.com Tokyo Scala Developersは主に東京在住の外国人Scalaプログラマのコミュ…
RisonというのはJSONライクかつURLに埋め込みやすいようURLエンコーディングが最小限になるよう設計されたデータフォーマットだそうで、Kibanaなどで使われているそうです。日本語だと以下の記事が詳しいです(自分もこの記事を見てRisonを知りました)。 qi…
手軽に使える機械学習ライブラリというとPythonのscikit-learnが有名ですが、Java/ScalaでもSmileというライブラリがあったので軽く試してみました。 github.com まずはリリースページからzipファイルをダウンロードして適当な場所に展開します。bin/smileで…
GitBucketではもともとデータベースを使ったテストに組み込みMySQLやPostgreSQLの機能を提供するライブラリを使っていたのですが、これらのライブラリのメンテナンスが怪しくなかなか新しいバージョンに対応したテストを行うことができないという問題があり…
akka-http-contribというリポジトリにRetryというユーティリティがあり、リトライ処理が簡単に書けるようだったので試しに見てみました。 github.com テストケースによると使い方はこんな感じです。 def flow[T] = Flow.fromFunction[(Int, T), (Try[Int], T…
11月10日(土)、11日(日)の2日間に渡り大阪で開催されたScala関西Summit 2018に参加してきました。 GitBucket sponsors Scala Kansai Summit 2018! #scala_ks #gitbucket pic.twitter.com/0Kk3gIeeHT— Naoki Takezoe (@takezoen) 2018年11月10日 上記のツイー…
Scalaで未使用のインポート文を自動で消せないかという話があり、Scalafixだとできそうだったのでやってみました。 github.com ドキュメントに書かれている通りでいけるのですが、手順をまとめておきます。 まずはproject/plugins.sbtにsbtプラグインを追加…
「実践Scala入門」を技術評論社さんからお送りいただきました。Scalaの入門書というとコップ本を思い浮かべる方が多いと思いますが、下のツイートでも書いている通りこの本はかなりコンパクトです。 技評さんから実践Scala入門をお送りいただきました。あり…
Scalaのビルドツールsbtには1.xからLanguage Server Protocol 3.0に対応したサーバモードが実装されており、常駐させたサーバに別プロセスから接続してコマンドを実行することができます。サーバモードはIDEやエディタプラグインのために実装されたものだと…
AutoMLはこれまで専門のエンジニアを必要としていたような機械学習の処理を自動化し、誰でも機械学習を利用できるようにするという分野です。PythonだとTPOTなどのライブラリが存在しますが、先日Salefsforce社からScala + SparkベースのAutoMLライブラリが…
AirframeはScala向けのDIコンテナを中心とした様々な便利機能を提供するプロジェクトなのですが、最近airframe-httpとairframe-http-finagleというモジュールが追加され、Finagleを使ったWebアプリケーションを簡単に作れるようになったので感じを掴むために…
ScalaベースのフレームワークでクラスのメタデータからSwaggerなどを生成できるものがあるのですが、専用のアノテーションやオブジェクトを使って情報を記述しておく必要があり、特にパラメータの説明などはScaladocに書いたものをそのまま使えればいいのに…