Idris + Atomによる型駆動開発入門

4月から社内でType-Driven Development with Idrisの読書会をやっています。 takezoe.hatenablog.com 最近ようやくChapter 3まで進み、実際に自分でコードを書くエクササイズなども出てきました。この本ではAtomを使うことが推奨されているのですが、Atom用…

Scalatra 2.5.1をリリースしました

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

GitBucket 4.13をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.13をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.13 ローカルファイルのリポジトリへのアップロード ローカルのファイルをリポジトリにドラッグ&ドロップでアップロ…

Scala福岡 2017に参加します

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

Type-Driven Development with Idrisの読書会をやっています

社内で4月から週一でType-Driven Development with Idrisの読書会をやっています。 Type-Driven Development with Idris作者: Edwin Brady出版社/メーカー: Manning Pubns Co発売日: 2017/04/07メディア: ペーパーバックこの商品を含むブログを見る 今年のSc…

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サービスとしてデプロイする機能などを提供す…

MozillaのスクレイピングフレームワークFathomを試してみる

こちらのOSDNの記事で知ったのですが、MozillaでFathomというJavaScript用のスクレイピングフレームワークを開発しているようです。仕事でクローラーを作ったりしていたこともあり、面白そうだと思ったので軽く調べてみました。 mag.osdn.jp 以下のGitHubリ…

MacにHomebrewでPostgreSQLをインストールする

Mac

普通にHomebrewで入ります。 $ brew install postgresql brew servicesで起動します。brew servicesというのは自動起動の設定をよろしくやってくれるものらしいです。 $ brew services start postgresql サービスの状態を確認してみます。 $ brew services l…

Macでpyenvを使ってPython開発環境を整える

Rubyのrbenvなどとほとんど同じ感じだと思いますが、メモとして残しておきます。 まずはHomebrewでpyenvをインストール。 $ brew install pyenv .bash_profileにpyenvを使うための設定を追加。 $ echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bash_prof…

Sierraでのキーボードの設定

Mac

SierraでKarabinar & Seilが使えなくなってしまうという致命的な問題によりキーボードの設定について研究が必要となりました。特に自分の場合、 Mac本体のキーボードはUS配列 ThinkPadキーボードはJIS配列 となっており、US配列とJIS配列の両方をカバーする…

GitBucket 4.12をリリースしました

4.12にはリダイレクト時の処理に問題があり、これを修正した4.12.1をリリース済みです。こちらをご利用ください。 https://github.com/gitbucket/gitbucket/releases/tag/4.12.1 Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.12をリリースしま…

Mirage 1.3.0をリリースしました

少し前にMirageのヘビーユーザーだというAdrianがコミッタに加わってくれたのですが、彼の会社でカスタマイズした部分をOSS化するなどいろいろやっていきたいとのことだったので、自分があまりメンテできていないこともあり、organizationに移して開発を行っ…

JJUG CCC 2017 Springにプラチサスポンサーとして参加します

5月20日(土)に西新宿で開催されるJJUG CCC 2017 Spring、これまでもスポンサーとしてサポートさせていただいていましたが、今回はプラチナスポンサーとして参加させていただくことになりました。 セッションでは弊社の若者が以下の2つのセッションでお話さ…

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 )…

GitBucket 4.11をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.11をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.11 デプロイキーのサポート CIツールなどで利用するためのデプロイキーを設定できるようになりました。リポジトリの…

ScalatraのWebサイトをGitHub Pagesに移行しました

ScalatraのWebサイトはこれまでIvanが管理している自前サーバ(?)で運用されていたので時折ダウンしていたり、Jenkinsが落ちているとサイトのビルドができなったりとトラブルが絶えませんでした。 ここ数ヶ月もScalatraの最新版である2.5のドキュメントが…

Re-engineering Legacy Software

クリスさんがManningで執筆された書籍です。少し前に購入していたのですが、きちんと読めていなかったので英語の本を読む練習を兼ねて読み直してみました。 Re-engineering Legacy Software作者: Chris Birchall出版社/メーカー: Manning Pubns Co発売日: 20…

ScalaMatsuri 2017に参加しました

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

GitBucket 4.10をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.10をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.10 Scala 2.12、Scalatra 2.5、Slick 3.2へのバージョンアップ Scalaのバージョンを2.12にアップデートしました。こ…

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

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

JDBCレイヤでDBのシャーディングを行うsharding-jdbcを試してみた

DBのデータ量が増えてきた場合の対策の1つとしてユーザIDなどをキーにデータベースを分割するシャーディングと呼ばれる手法があります。これをJDBCのレイヤで実現してしまうsharding-jdbcというライブラリを見つけました。 github.com sharding-jdbcは中国の…

JGitへのコントリビュートとGerritを使ってみた感想

Git

GitBucketではバックエンドの実装にJGitを使っているのですが、gitリポジトリをzipファイルとしてダウンロードした際に、同じコミットでもダウンロードしたzipファイルのハッシュが同じ値にならないというレポートがあり、調べたところJGitのarchiveコマンド…

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 以下、シカゴとコペンハーゲンそ…

第十八回 #渋谷java を開催しました

1月28日(土)に弊社オフィスで第十八回 #渋谷javaを開催しました。 おや、なにか様子がおかしいですね…。謎のマークが…。 今回は以下の皆さんに発表していただきました。 セッション枠(20分) ayato_p 「筋肉でテストを救う」 Ikuru K 「サムネイルを作る話…