Scala

Akka Streams用のElasticsearchコネクタがAlpakkaにマージされました

以前から作っていたAkka Streams用のElasticsearchコネクタですが、Alpakkaにもプルリクエストを出していたのですがレビュー途中でずっと放置されてしまっていました。 takezoe.hatenablog.com 最近になって書き込みのリトライ機能などを追加したのでAlpakka…

Scala関西Summit 2017に参加しました

9月9日(土)大阪で開催されたScala関西Summit 2017に参加しました。GitBucketもブロンズスポンサーとしてサポートさせていただきました。 また、個人でも朝一のセッションで「Non-Functional Programming in Scala」というお話しをさせていただきました。日…

Scala関西Summit 2017で「Non-Functional Programming in Scala」という話をします

今週土曜日に大阪で開催されるScala関西Summit 2017、GitBucketがスポンサーをさせていただいているのですが、スピーカーとしても「Non-Functional Programming in Scala」というタイトルでお話しさせていただきます。 前職から足かけ8年ほどScalaに取り組ん…

Scala用のタイプセーフなSQLビルダtranquil 0.0.3をリリースしました

github.com 以前から少しずつ進めていたtranquilですが、APIもそれなりに落ち着いてきたので久しぶりにバージョンアップしてみました。ちなみに以前のものはこんな感じでした。 takezoe.hatenablog.com テーブル定義は以下のような感じで随分シンプルに定義…

sbtとpecoでテンプレートを選択してプロジェクトを作成する

sbtではsbt new playframework/play-scala-seed.g8などのようにしてgiter8テンプレートを指定してプロジェクトを作成することができます。 しかし、プロジェクトを作るたびにテンプレートのリポジトリ名を調べるのも面倒です。そこで、giter8のWikiにまとめ…

Scala福岡 2017でApache PredictionIOの紹介をしました

7月29日(土)に福岡のヌーラボさんオフィスで開催されたScala福岡2017に参加しました。 scala.connpass.com セッションではApache PredictionIOの紹介と、PredictionIOやelasticsearch-hadoopなどのOSSでScala警察として活動してきた中で見かけたScala的にい…

MarkdownベースのドキュメンテーションツールParadoxを使ってみた

最近AkkaやAlpakkaなどのドキュメントで使われているLightbend製のParadoxというドキュメンテーションツールを試してみました。 *1 github.com 使い方はドキュメントを見ればわかると思いますが、要点だけまとめておきます。 はじめの一歩 Paradoxはsbtプラ…

PredictionIO Meetup #2 に参加してきました

先日弊社のオフィスでPredictionIO Meetup #2が開催されるとのことだったので見物に行ってきました。 d-cube.connpass.com コミッタの菅谷さんの発表資料が公開されていたので貼っておきます。 PythonはPySparkとPy4Jがとにかくつらいという話でした。今検討…

Play 2.6の新機能

Play 2.6のドキュメントにある「What’s new in Play 2.6」からScalaに関する部分をざっと日本語にしてみました。 https://www.playframework.com/documentation/2.6.x/Highlights26 細かい部分はマイグレーションガイドも見ないとダメそうですね。こちらはか…

Akka Streams用のElasticsearchコネクタを作ってみた

github.com 元々はAlpakkaにプルリクしていたのですが、取り込んでもらうのに時間がかかりそう or 取り込んでもらえるかわからない感じなので自分で使う用に別リポジトリで単独のライブラリとして公開しました。Maven Centralにもpublishしてあります。 Elas…

Scalatra 2.5.1をリリースしました

Scala用のSinatraライクなWebフレームワークScalatraの最新バージョン2.5.1をリリースしました。 github.com 今回は主に2.5.0で入ったSwagger 2.0サポートの改善やバグ修正がメインとなっています。特に@jb08氏には多くのフィードバックをいただきました。あ…

Scala福岡 2017に参加します

7月29日(土)に福岡のヌーラボさん本社オフィスで開催されるScala福岡 2017に参加させていただくことになりました。 scala.connpass.com セッションでは最近コミッタになったApache PredictionIOについてお話しさせていただきたいと思います。概要は以下の通…

PredictionIOで使用するSpark等のバージョンを変更する

PredictionIOはデフォルトでは以下のバージョンを使用します。 Scala 2.10.6 Spark 1.6.3 Hadoop 2.6.5 Elasticsearch 1.7.6 Scalaのバージョンはともかく、Spark(ストレージにElasticsearchを使用する場合はElasticsearchも)のバージョンがかなり古いのが…

Scala製の機械学習サーバApache PredictionIOを使ってみよう

PredictionIOはSparkを中心としたJVMベースの機械学習アプリケーションを開発・運用するために必要なミドルウェアやフレームワークなどを統合的に提供するもので、開発者はPredictionIOのフレームワークに従ってエンジンを作成することで、機械学習を使用し…

Apache PredictionIOのコミッタになりました

Apache PredictionIOはSpark MLlibを中心に、学習データやモデルデータを格納するためのストレージ、機械学習を利用したアプリケーションを定型的に開発するためのフレームワーク、作成したアプリケーションをWebサービスとしてデプロイする機能などを提供す…

Scala用のタイプセーフなSQLビルダを作ってみた

Scalaには様々なデータベースアクセスライブラリがありますが、Scalaの型安全性を活かしたクエリビルダはコンパイル時にクエリの間違いを検出することができるため非常に有難いものです。しかし、私見ですが、タイプセーフなクエリビルダは歴史あるトピック…

Play2ハンズオンがScalikeJDBCにも対応しました

これまでPlay2 + Slickの組み合わせで提供していたPlay2ハンズオンですが、社内でもScalikeJDBCの利用が増えてきたこともあり、Play2 + ScalikeJDBCの組み合わせにも対応しました。 github.com また、あわせてこれまでGitHubのリポジトリにMarkdownファイル…

IntelliJのScalaプラグインでケースクラスのパラメータのインデントが深すぎるのを回避する設定

IntelliJでScalaを書いている時にいつもイラッとするのがケースクラスのパラメータのインデントです。こういうコードが… case class Person ( name: String, age: Int ) 自動的にこのようになってしまいます。 case class Person ( name: String, age: Int )…

ScalaMatsuri 2017に参加しました

今年もお台場で開催されたScalaMatsuri 2017ですが、今回はスポンサーとしてだけではなく、個人でスピーカーとしても参加させていただき、Scala Warriorについてお話しさせていただきました。 Scala Warrior and type-safe front-end development with Scala…

Playでいい感じにZipkinするライブラリを公開しました

PlayでZipkinでトレースするライブラリには以下のようなものがあるのですが、どれも用途が限られていたり、Playとのインテグレーションが不十分だったりします。 akka-tracing zipkin-futures そんな背景もあり、同僚がPlayでいい感じにZipkinを利用できるよ…

GitHubをパトロールするためのWebアプリを作ってみた

GitHubのトップページではウォッチしているリポジトリのアクティビティがタイムラインのように表示されるのですが、ウォッチしているリポジトリ数が多いと見落としてしまいがちです。そこで、自分がウォッチしているリポジトリの中から選択したリポジトリの…

シンプルなScala用ビルドツール「cbt (Chris's Build Tool)」を試してみる

Slickのコミッタとして有名なJan Christopher Vogtさんが作っているcbt (Chris’s Build Tool) というScala用のビルドツールがあります。*1 github.com 昨年参加したScala Days NewYork 2017でもセッションがあり、興味本位で参加したのですが、sbtのdisなど…

Scala Days 2017のタイムテーブルが公開されました

ここ数年は毎年アメリカとヨーロッパで開催されているScala Days、一昨年はサンフランシスコとアムステルダム、昨年はニューヨークとベルリンでしたが今年はシカゴとコペンハーゲンで開催されるようです。 www.lightbend.com 以下、シカゴとコペンハーゲンそ…

giter8テンプレートの作り方

giter8の復活 その昔、Scala世界にはgiter8というツールがありました。GitHub上のテンプレートプロジェクトをベースにプロジェクトを作成できるというなかなか便利なものでしたが、初期の頃はWindowsでの利用に問題があったり、Typesafe Activatorという用途…

Scala用のDIライブラリAirframeを試してみた

ScalaではJavaと違ってDIコンテナの必要性を感じることがあまりないのですが、フレームワークを作っているとユーザコードにフレームワークが提供するコンポーネントを供給したり、フレームワーク自体を拡張するための拡張ポイントを提供するためにDIコンテナ…

Scala用のREST APIフレームワークResty 0.0.5をリリースしました

Scala用の超シンプルなREST APIフレームワークとしてRestyというものを作っています。 takezoe.hatenablog.com github.com 前回ブログで書いてからちょこちょこいじりつつバージョンアップを重ねているので、前回のブログで紹介できなかった機能や、これまで…

RestyというScala用のREST APIフレームワークを作ってみました

GitHubリポジトリはこちら。 github.com なぜ作ったのか? Scala業界のフレームワークは関数型的なアプローチのものが主流になっています。これらのフレームワークはノンブロッキングI/Oや並列処理をうまく扱うことができますが、本質的な複雑さをもたらしま…

Scala 2.12に対応したScalatra 2.5がリリースされました

ここしばらく作業をしていたScalatra 2.5が先日無事リリースされました。 Scalatra 2.5.0 released, with Swagger 2.0, Scala 2.12 support, and many other changes. Get it while it's hot! https://t.co/1Dcf3rmdme— Scalatra (@scalatra) November 21, 2…

市ヶ谷Geek★Nightで「Scalaによるタイプセーフなフロントエンド開発」という発表をしました

普段フロントエンド開発は若者に丸投げしているバックエンドおじさんですが、ここのところScala Warriorを開発するためにScala.jsを触っていたということもあり、お声がけいただいてScala.jsの紹介をさせていただきました。 ichigayageek.connpass.com 発表…

ScalaでタイプセーフにCSSを記述できるScalaCSSを使ってみる

Scala Warriorではユーザが入力したコードを実行する目的でScala.jsを使っているのですが、せっかくScala.jsを使っているのでフロントエンドもできるだけScalaで書いてみようと思い、ScalatagsやScalaCSSなどを試しています。今日はScalaCSSについて紹介して…