型駆動開発の裏側 -IdrisのIDEモードを試してみる-

以前紹介したように、AtomにIdris用パッケージをインストールするとキーボードショートカットで様々な機能を利用できます。 takezoe.hatenablog.com これがどのように実装されているのかが気になったので調べてみようと思い、Atomパッケージのソースコードを…

GitBucketがScala関西Summit 2017のスポンサーになりました

GitBucketがScala関西Summit 2017のブロンズスポンサーになりました!Webサイトにロゴを掲載していただいています。リンク先がGitHubのREADMEというのも寂しいので、この日のためにランディングページも用意しました!!*1 summit.scala-kansai.org ボランタ…

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

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

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

6月17日(土)に弊社オフィスで第十九回 #渋谷javaを開催しました。当日の様子や皆さんの発表内容については以下のtogetterまとめをご覧ください。 togetter.com 今回は以下の皆さんに発表していただきました。 セッション枠 hagino_takahiro 「PredictionIO…

AtomのGit / GitHub連携機能を試してみた

Atom 1.18がリリースされ、以前アナウンスされていたGit / GitHub連携機能が標準で使えるようになったので試してみました。 blog.atom.io 「Packages」メニューの「GitHub」サブメニューからエディタの右側にGit / GitHubタブを表示できます。キーボードショ…

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 「サムネイルを作る話…

GitBucket 4.9をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.9をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.9 GitLFSサポート GitLFSの実験的サポートを追加しました。この機能を使用するためにはGitBucketの設定画面でBase UR…

第十八回 #渋谷java でZipkinとBraveの紹介をしました

最近RestyにBraveを組み込んだり、仕事でもZipkinを触っていたりするのでZipkinとBraveの概要について発表させていただきました。発表資料はこちらです。 Tracing Microservices with Zipkin from takezoe www.slideshare.net ZipkinはTwitter社が開発した分…

pac4jでGitHubのOAuth認証を使ってみる

GitHubアカウントでログインできるWebアプリケーションを作りたいなーと思っていたのですが、Javaだとpac4jというライブラリを使うとGitHubを始め、TwitterやFacebookなど様々なサービスのOAuth認証を扱うことができるようです。 github.com SpringMVCやJAX-…

Apache DrillでExcelを検索するプラグインを作った

ExcelをDBに入っているデータとジョインできたら便利なのでは?ということで作ってみました。 github.com GitHubのリリースページからダウンロードしたjarファイルをDRILL_HOME/jars/3rdpartyにコピーし、ストレージ設定でdfsに以下のフォーマットの設定を追…

スターティングGo言語

先日紹介したみんなのGo言語は電子書籍で購入したのですが、こちらはリファレンス用にペーパー版を購入しました。 スターティングGo言語作者: 松尾愛賀出版社/メーカー: 翔泳社発売日: 2016/05/11メディア: Kindle版この商品を含むブログを見る 言語仕様はき…

JaSST'16 Tokyoでのパネルディスカッションを記事にしていただきました

だいぶ前の話になってしまうのですが、昨年JaSST'16 Tokyoで参加させていただいたOSSの品質管理に関するパネルディスカッションの内容をPublickeyさんで記事にしていただきました。 www.publickey1.jp power-assertの@t_wadaさんのモデレートで、Twitter4Jの…

みんなのGo言語[現場で使える実践テクニック]

簡単なコマンドラインツールはNode.jsやPython*1で書くことが多いのですが、ちょっと大きめのものだったり、他の人にも使ってもらうようなものはGoで作るのがいいのかなということでGoを触り始めました。インターネット上のドキュメントなどを参考に適当にコ…

giter8テンプレートの作り方

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

GitHubでGitLFSを使ってみる

実際にGitLFSを使ってみようということでGitHubで試してみました。 まずはgit-lfsのインストールから。gitはインストール済みとします。MacならHomebrewで簡単に入れられます。 $ brew install git-lfs 適当なGitリポジトリを作成し、GitLFSを有効にします。…

2016年の振り返り

2016年もそろそろ終わりということで、毎年恒例の振り返りです。 仕事関係 自分の担当しているパートはだいぶ安定してきたこともあり、機能改善や効率化がメインでした。時間的な余裕もだいぶ出てきたのでイベント活動やOSS活動などにも時間を割けるようにな…

今年のGitHubの草状況

去年はこんな感じでした。 takezoe.hatenablog.com 仕事で使っているprivateリポジトリも含めた状況はこんな感じ。去年と比べるとだいぶ減ってますね…。 publicリポジトリだけだとこんな感じ。こちらは結構増えてます。年末にかけてコミットが増えているのは…

GitBucketでのGitLFSサポートについて考える

GitBucketに以前から要望として上がっていたGitLFSサポートですが、どうやったら実装できるんだろうと思い軽くリサーチしてみたところ、どうやらGitblitではすでにGitLFSがサポートされているようです。 github.com LFSサーバのソースコードの該当部分はこの…

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

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

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

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

GitBucket 4.8をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.8をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/4.8 リポジトリ名での検索 GitBucketで管理しているリポジトリが増えてくると、目的のリポジトリを探すのが難しいとい…