Java

Groovy で JBoss Drools を使う2 - CEP機能

前回 id:fits:20120104 に引き続き、今回は Drools の CEP 機能(Drools Fusion)*1を Groovy で簡単に試してみました。 Drools 5.4.0 beta1 Groovy 1.8.5 (java 1.7.0_01 64bit) サンプルソースは http://github.com/fits/try_samples/tree/master/blog/201…

Groovy で JBoss Drools を使う - ルールエンジン機能

JBoss Drools はルールエンジン(Drools Expert)の機能と CEP(Drools Fusion)*1 の機能を兼ね備えており、なかなか興味深いツールです。(さらに BPMN2 等も処理できる)というわけで今回は Drools のルールエンジン機能を Groovy で簡単に試してみました…

Groovy で Storm を使う

リアルタイムデータ処理の Storm を Groovy から軽く使ってみました。 Storm 0.6.1-rc Storm は CEP(複合イベント処理)の一種のようですが、Esper (id:fits:20081126)などよりも Hadoop (id:fits:20101010, id:fits:20101026)に近いような印象です。(…

Spark を使って単純なレコメンドを実施

分散処理フレームワークの Spark を使って、id:fits:20111123 で実施したような GitHub データの簡単なレコメンドを実施してみます。Spark はインメモリーに分散データをキャッシュできる等の特徴があり、個人的に Scala のコレクション API 風に MapReduce …

Groovy で Apache ZooKeeper を使う - Webコンテンツの分散ダウンロード

id:fits:20110925 や id:fits:20111016 でやったような Web コンテンツのダウンロード処理を Apache ZooKeeper を使って分散処理してみました。Apache ZooKeeper は分散システム間で協調動作させるためのサーバーソフトウェアで、シンプルで可用性が高くなる…

Apache Mahout でレコメンドを実践 - GitHub リポジトリをレコメンド

前回(id:fits:20111113)は適当なサンプルデータを使ったレコメンドだったので、今回は GitHub から API 経由で取得した実データを使ってレコメンドしてみます。 Apache Mahout 0.5 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/…

Apache Mahout で単純なレコメンドを実施 - Groovy

Groovy で機械学習ライブラリの Apache Mahout を使った単純なレコメンド処理を試してみました。 Apache Mahout 0.5 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111113/ レコメンド処理の実装 Apache Mahout の基本的なレコメ…

非同期処理でWebコンテンツをダウンロードする方法2 - Groovy, Scala, Java, C#

今回は、前回(id:fits:20111016)と同様の非同期ダウンロード処理を Java と C# で実装し、Groovy と Scala は別の実装方法を模索してみました。使用した機能は以下の通りです。 Groovy : Actor (GPars) Scala : 限定継続 + ops Java : Concurrency Utiliti…

非同期処理でWebコンテンツをダウンロードする方法 - Groovy, Scala, F#

前回(id:fits:20110925)、並列コレクション等で Web コンテンツをダウンロードする処理を実装してみましたが、今回はその非同期処理版を Groovy, Scala, F# で実装してみました。(主な仕様は前回と同じ) 実行例 groovy async_download_web.groovy destdi…

信頼されない証明書を使ったHTTPSサーバーにBasic認証でPOST - Ruby, PHP, C#, Java, Groovy

信頼されないSSL証明書(自己証明書)を使ったサイトに対して、Basic認証を行い POST するサンプルを Ruby, PHP, C#, Java, Groovy で実装してみました。サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111002/ サンプルは、第1引…

並列処理でWebコンテンツをダウンロードする方法 - Groovy, Scala, C#, Java, Ruby

複数のWebコンテンツ(HTMLや画像など)をダウンロードする際に 1件ずつ処理していたのでは非効率です。 というわけで、並列的にWebコンテンツをダウンロードするプログラムを Groovy, Scala, C#, Java, Ruby で実装してみました。主な仕様は以下で、外部ラ…

jclouds の BlobStore API - 単純な Blob の put/get

様々なクラウド環境に対して共通的な API でのアクセスを提供する Java 用ライブラリ jclouds の BlobStore API を試してみました。BlobStore API は Amazon S3, Windows Azure Blob, Google Storage 等、様々なクラウドストレージ環境をサポートしています…

Jersey + Hibernate + Guice による JavaEE 6 アプリケーション作成 - JAX-RS (JSR-311), JPA (JSR-317), DI (JSR-330)

Jersey, Hibernate, Guice を組み合わせて、JavaEE 6 を使ったアプリケーション(JAX-RS, JPA, DI)の簡単なサンプルを作成してみました。環境は以下の通り。 JavaSE 7 Maven 3.0.3 Jersey 1.8 Hibernate EntityManager 3.6.6 Guice 3.0 ソースは http://git…

BDDツール spock の Mock

Groovy の BDDツール spock における Mock の使い方を簡単にご紹介します。spock の Mock は定義が簡単なので個人的にはかなり有用だと考えています。 例えば、以下のような記述でモックの処理内容が定義できます。(実行回数と戻り値の組み合わせも可) 戻…

Ratpack + JHaml + Morphia で MongoDB を使った Web アプリ開発

これまで以下のような構成で作成してきたサンプルと同様のものを Ratpack + JHaml + Morphia の構成で作成してみました。 Sinatra + Haml + Mongoid, MongoMapper (id:fits:20110306) express + haml.js + mongoose (id:fits:20110409) Scalatra + Scalate +…

LINQやコレクションAPIを使ってCSVファイルからデータ抽出 - C#, F#, Scala, Groovy, Ruby の場合

id:fits:20110702 や id:fits:20110709 にて、SQL を使ってデータ抽出した処理を LINQ やコレクション API を使って実施し直してみました。(ただし、今回は station_g_cd でのソートを実施していない等、以前使った SQL と完全に同じではありません)今回は…

SQLを使ってCSVファイルからデータを抽出する方法 - Groovy + H2 データベース

CSV ファイルからデータを抽出するのに SQL を使いたいケースがあると思いますが、RDB をセットアップして CSV ファイルをインポートしたりするのは非常に面倒です。そこで、Groovy と H2 データベースを使って手軽に実施する方法をご紹介します。必要な環境…

JVM上の WebSocket サーバープログラム - Jetty, Grizzly, Netty, EM-WebSocket を試す

WebSocket の簡単なサーバープログラムを Jetty, Grizzly, Netty, EM-WebSocket をそれぞれ使って、Groovy や JRuby で実装してみました。 WebSocket のプロトコル仕様は確定しておらず、互換性の無い改訂が行われているようなので、今回は draft-ietf-hybi-…

Embed Jetty - Groovy と Scala で Jetty を組み込み実行

プログラム内での Jetty 組み込み実行を試してみました。 id:fits:20110521 で作成したサンプルの war ファイルを Groovy と Scala から組み込み実行してみます。使用した Jetty のバージョンは以下の通りです。 Jetty 8.0M3 サンプルソースは http://github…

Scalatra + Scalate + Morphia で MongoDB を使った Web アプリ開発

以前、Sinatra(id:fits:20110306)や express(id:fits:20110409)で作成したサンプルと同じものを Scalatra + Scalate(Scaml 使用)+ Morphia の構成で作成してみました。環境は以下の通りです。 Scala 2.9.0.1 sbt 0.7.7 Scalatra 2.0 Snapshot Scalate …

Scala で Morphia を使った MongoDB 操作

MongoDB のための Java 用オブジェクトマッピングツール Morphia を Scala で使ってみました。(Morphia は Ruby の Mongoid や MongoMapper と同等のツール)使用した環境は以下の通りです。 Scala 2.9.0 sbt 0.7.5 Morphia 1.0 Snapshot MongoDB 1.9.0 サン…

サムネイル画像の作成 - ImageMagick, GraphicsMagickのコマンドとJava, .NETの標準API

サムネイル画像を以下のような方法で作成してみました。 ImageMagick, GraphicsMagick による作成 Java, .NET の標準APIによる作成 細かいパラメータ指定などは行わず、サイズ 2048x1536, ファイルサイズ 1.4MB の JPEG ファイル(sample.jpg)のサムネイル…

Windows Azure 上で Scala アプリケーションを実行 - Windows Azure Starter Kit for Java 使用

Windows Azure Starter Kit for Java を使って、Windows Azure 上で簡単な Scala アプリケーションを実行してみました。 Windows Azure Starter Kit for Java Windows Azure SDK 1.4 Scala 2.8.1 sbt 0.7.5 今回は、Grizzly を使った簡単な HTTP サーバーア…

Maven での BDD - Specs, Specs2, RSpec, Easyb, spock

Maven3 を使ったプロジェクトでの BDD(振舞駆動開発)の実施方法をまとめてみました。 今回試した BDD ツールは以下の通りです。 Specs Specs2 RSpec Easyb(Maven2) spock 結果として、この中では Specs/Specs2 か spock あたりを使うのが良さそうです。…

Sinatra + Haml で MongoDB を使う - Mongoid, MongoMapper で関連とコンポジションを実装

Sinatra で MongoDB を使うために Mongoid と MongoMapper を試してみました。 以下のようなモデル構成を実装する事にします。 環境は以下の通り、テンプレートエンジンに Haml を使っています。 JRuby 1.5.6 Sinatra 1.1.3 Haml 3.0.25 Mongoid 1.9.5 Mongo…

Spring Data Document で MongoDB を使う

Spring Data - Document はドキュメントDBを扱うためのフレームワークで、MongoDB や CouchDB をサポートしています。というわけで、Spring Data - Document で MongoDB を使うサンプルを 2種類作ってみました。(基本的な構成は前回 id:fits:20110205 のサ…

Spring におけるアノテーションと設定ファイルの使い分け - SpEL, util:properties, AOP

Spring ではアプリケーションの構成(Bean 定義)を設定するための方法がいくつか用意されており、どれを使えばよいのか悩ましいところですが、個人的には以下のような使い分けが良さそうだと考えています。 DBの接続設定等のパラメータ系はプロパティファイ…

Ruby でパーサーコンビネータを使った CSV ファイルのパース処理 - RParsec 使用

id:fits:20101226 や id:fits:20101231 で実施したパーサーコンビネータによる CSV ファイルのパース処理を RParsec を使って JRuby でやってみました。環境は以下の通り。 JRuby 1.5.6 RParsec 1.0 サンプルのソースは http://github.com/fits/try_samples/…

Haskell, Scala によるパーサーコンビネータを使った CSV ファイルのパース処理

以前(id:fits:20101129, id:fits:20101204)試したような CSV ファイルのパース処理を書籍 Real World Haskell―実戦で学ぶ関数型言語プログラミング を参考に Haskell と Scala のパーサーコンビネータでやってみました。 Haskell の方は本の内容ほとんどそ…

Ruby, Groovy, Scala での Excel準拠 CSV ファイルのパース処理 - opencsv使用、Iterator.continually() 等

Excel の仕様に準拠した以下のような CSV ファイル(改行・カンマ・ダブルクォーテーションを要素内に含む)をパースし、第1・3の要素を標準出力に出力するサンプルを Ruby、Groovy、Scala で作成してみました。 CSVファイル例 test.csv 1,テスト1,"改行 含…