2011-01-01から1年間の記事一覧

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コンテンツをダウンロードする方法3 - node.js, C#

今回は、Node.js と Async CTP を使った C# で実装してみました。 node.js C# : Async CTP サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111030/ node.js の場合 以前は Windows で node.js を使用するのに Cygwin を使ってビル…

非同期処理で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 で実装してみました。主な仕様は以下で、外部ラ…

Micro Cloud Foundry 上で Sinatra + MongoMapper アプリケーションを実行する

「Sinatra + Haml で MongoDB を使う id:fits:20110306」で作成した Sinatra + Haml + MongoMapper のサンプルをプライベートクラウド PaaS 環境の Micro Cloud Foundry 上で実行してみました。サンプルソースは http://github.com/fits/try_samples/tree/ma…

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 と完全に同じではありません)今回は…

ScalaQuery で SQL を実行 - StaticQuery の使用

id:fits:20110702 で使った SQL を ScalaQuery でも実行してみました。ScalaQuery ではテーブル毎にテーブルオブジェクトを定義するのが一般的なようですので、SQL を直接使うケースは少ないかもしれませんが、とりあえず StaticQuery で 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)のサムネイル…

Add-on SDK を使った Firefox 拡張機能の作成 - JavaScriptの有効/無効を切り替える

Firefox 4 の拡張機能を簡単に作成するためのツール Add-on SDK を使って拡張機能を作成してみました。 不要な手間が軽減されるため、個人的にはかなり有用なツールだと思います。使用した環境は以下の通りです。 Add-on SDK 1.0b4 Python 2.7.1 Firefox 4.0…

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 サーバーア…

Windows Azure 上で F# の Web ロールを実行

Windows Azure 上で単純な F# の Web ロール用アプリを実行してみました。id:fits:20100906 の F# による ASP.NET のサンプルをそのまま使ってみるつもりだったのですが、Compute Emulator でのページ表示時に以下のようなエラーが発生し、解決策が見つから…

node.js + express + haml.js + mongoose で MongoDB を使った Web アプリ開発

以前(id:fits:20110306)に Sinatra で作成したサンプルの node.js 版を作成してみました。環境は以下の通りで、Sinatra 版と同等の構成になっています。 node.js 0.4.0 Express 1.0.7 Haml.js 0.5.1 Mongoose 1.1.24 MongoDB 1.8.1 rc1 サンプルのソースは…

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…

Cygwin を使って node.js と npm をインストール

Cygwin で node.js と、node.js のパッケージ管理ツール npm をインストールしてみました。 使用した環境は以下の通りです。 Windows 7 Cygwin 2.738 node.js 0.4.0 npm 0.2.18 node.js のビルドとインストール node.js のビルドとインストールは、http://no…