読者です 読者をやめる 読者になる 読者になる

Groovy で Apache Flink を使用

「Groovy で Apache Spark を使用」と同様の処理を Apache Flink で試してみました。 Apache Flink 1.2.0 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170311/ サンプルスクリプト 今回はローカルで実行するだけなので Execution…

Groovy で Cassandra を組み込み実行

Groovy で Apache Cassandra を組み込み実行してみました。 Apache Cassandra 3.10 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170227/ 組み込み実行 まずは、設定ファイルを用意しておきます。 今回は実行に必要な最小限の設定…

Groovy で Elasticsearch を組み込み実行

Groovy で Elasticsearch を組み込み実行してみました。 Elasticsearch 5.2.0 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170203/ (a) クライアント接続しない場合 まずは、クライアント接続が不可な Elasticsearch を起動して…

Lucene API で Solr と Elasticsearch のインデックスを確認

Groovy で Lucene の API を使用して Solr や Elasticsearch のインデックスの内容を確認してみました。(Lucene 6.2.1 の API を使用) ソースは http://github.com/fits/try_samples/tree/master/blog/20161024/ (a) ドキュメントの内容を出力 まずは、ド…

Groovy の @Grab で Spark Framework を実行

Spark Framework - A tiny Java web framework を Groovy の @Grab を使って実行してみました。 Spark Framework 2.5 Groovy 2.4.7 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20160801/ はじめに 以下のように @Grab を使った Sp…

JMX で Java Flight Recorder (JFR) を実行する

Java Flight Recorder (JFR) は Java Mission Control (jmc) や jcmd コマンドから実行できますが、今回は以下の MBean を使って JMX から実行してみます。 com.sun.management:type=DiagnosticCommand この MBean は以下のような操作を備えており(戻り…

JDI でオブジェクトの世代(Young・Old)を判別する2

前回 の処理を sun.jvm.hotspot.oops.ObjectHeap を使って高速化してみたいと思います。(世代の判別方法などは前回と同じ) 使用した環境は前回と同じです。 Groovy 2.4.6 Java SE 8u92 64bit版 (JDK) ソースは http://github.com/fits/try_samples/tree/…

JDI でオブジェクトの世代(Young・Old)を判別する

前回、オブジェクトの age を取得しましたが、同様の方法で今回はオブジェクトが Young 世代(New 領域)と Old 世代(Old 領域) のどちらに割り当てられているかを判別してみたいと思います。 (ただし、結果の正否は確認できていません) 使用した環境は…

JDI でオブジェクトの年齢(age)を取得

HotSpot VM の世代別 GC において、オブジェクト(インスタンス)には年齢 (age) が設定されており、Minor GC が適用される度にカウントアップされ、長命オブジェクトかどうかの判定に使われるとされています。 そこで今回は、Groovy で JDI (Java Debug …

Deeplearning4J で iris を分類

Deeplearning4J (DL4J) を使って 「ConvNetJS で iris を分類」 と同様に iris を分類してみました。 Deeplearning4J 0.4-rc3.8 今回は Groovy を使って実行します。 ソースは http://github.com/fits/try_samples/tree/master/blog/20160412/ 準備 iris …

Google Cloud Print を Web API で操作 - Unirest 使用

リフレッシュトークンを使って Google Cloud Print を Web API で操作してみます。 Google Cloud Print 以前、「Google アカウントで Google API を利用 - google-api-services-gmail」 では Apache HTTPClient を使いましたが、今回は Unirest を使っていま…

リストをN個に分割 - Groovy, Java, Python

リストをなるべく均等に N 分割する処理を Groovy・Java・Python で実装してみました。 今回は、[0, 1, 2, 3, 4, 5, 6, 7] を 3分割した結果が [[0, 1, 2], [3, 4, 5], [6, 7]] となるような処理を想定しています。 (余り分を先頭から順に1つずつ分配) ソ…

Google アカウントで Google API を利用 - google-api-services-gmail

前回はサービスアカウントを使う方法を試しましたが、今回は Google アカウントを使って Google API を利用してみます。 ソースは http://github.com/fits/try_samples/tree/master/blog/20150621/ はじめに API 利用までの手順は次の通りです。 (1) クライ…

Gradle の起動スクリプト自動生成を無効化する - application プラグイン

Gradle の application プラグインにおける起動スクリプトの自動生成を無効化する方法です。 Gradle 2.4 ソースは http://github.com/fits/try_samples/tree/master/blog/20150607/ はじめに application プラグインを使用して gradle build を実行すると、…

Spring を使った Web アプリケーションへ Ehcache を適用し JMX でモニタリング

Spring を使った Web アプリケーションへ Ehcache を適用し、JMX でキャッシュ状況を取得できるようにしてみました。 Ehcache サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20150508/ Spring へ Ehcache を適用 Spring には Cache…

Compiler Tree API で Java ソースファイルをパースする2 - Groovy で実装

前回 の処理を Groovy で実装してみました。 Java SE 8u31 Groovy 2.4.0 今回使用したソースは http://github.com/fits/try_samples/tree/master/blog/20150216/ (a) com.sun.tools.javac.main.JavaCompiler 利用 前回 Java で実装した内容を Groovy で実装…

MyBatis / iBatis の動的 SQL を API で作成

MyBatis / iBatis の API を使って DB へ接続せずに Mapper XML の動的 SQL を作成する方法です。 MyBatis iBatis ソースは http://github.com/fits/try_samples/tree/master/blog/20141221/ MyBatis の場合 動的 SQL の結果を取得する手順は下記のようにな…

IPアドレスから地域を特定する2 - GeoLite Legacy Country CSV

前回、GeoLite2 と GeoIP2 Java API 等のライブラリを使って IP アドレスから国と都市を特定しましたが、今回は GeoLite Legacy の Country CSV ファイル (IPv4用) を使って国を特定する処理を実装してみます。 GeoLite Legacy なお、前回は IPv6 でも処理…

IPアドレスから地域を特定する - MaxMind DB Reader, GeoIP2 Java API

MaxMind が提供している無償の IP Geolocation DB である GeoLite と Java 用ライブラリを使って IP アドレスから国や都市を特定してみました。 今回は Java 用ライブラリの下記 2種類を試してみる事にします。 MaxMind DB Reader GeoIP2 Java API どちらも …

SQL から参照しているテーブルを抽出 - FoundationDB SQL Parser

FoundationDB SQL Parser を使って SQL から参照しているテーブル (from 句で使われているテーブル) を抽出する方法をご紹介します。 FoundationDB SQL Parser 1.4.0 これを応用すれば SQL から CRUD 図を生成するような処理も比較的容易に実装できると思…

Apache FtpServer で FTPS サーバーを組み込み実行

Apache FtpServer を使って Groovy で FTPS (FTP over SSL/TLS) サーバーの組み込み実行を試してみました。 Apache FtpServer 1.0.6 ソースは http://github.com/fits/try_samples/tree/master/blog/20140916/ FTP サーバーの組み込み実行 まずは、普通の …

Java用 SSH クライアントライブラリ - ganymed-ssh2, sshj, JSch, Apache SSHD

主要な Java 用の SSH クライアントライブラリを使って簡単なサンプルを作成してみました。 Ganymed SSH-2 sshj - SSHv2 library for Java JSch - Java Secure Channel Apache SSHD ソースは http://github.com/fits/try_samples/tree/master/blog/20140814/…

Apache Solr を組み込み実行

オープンソースの全文検索エンジン Apache Solr は、 Servlet として実装されており、通常は jetty 等のサーブレットエンジン(コンテナ)で実行しますが、今回は組み込み実行を試してみました。 Apache Solr 4.9.0 ソースは http://github.com/fits/try_sam…

Groovy で Apache Spark を使用

Java で Apache Spark を使用 や Scala 2.10 で Apache Spark を使用 に続き、今回は Groovy で同様の処理を実装してみました。 Apache Spark 1.0 money_count.groovy @Grab('org.apache.spark:spark-core_2.10:1.0.0') import org.apache.spark.api.java.Ja…

ジニ不純度の算出 - Groovy, Scala , Java 8, Frege

書籍 「集合知プログラミング」 の 「7章 決定木によるモデリング」 にあったジニ不純度(ジニ係数)の計算を下記の JVM 言語で関数言語的に実装してみました。 Groovy 2.3 Scala 2.11 Java SE 8 Frege 3.21 今回のソースは http://github.com/fits/try_samp…

Gradle を使って JAR ファイルへ AspectJ を適用

Gradle を使って既存の JAR ファイルへ AspectJ を適用してみました。 Gradle 1.12 AspectJ 1.8.0 Gradle 用の AspectJ プラグインとして gradle-aspectj というものがあるようですが、今回は AspectJ (aspectjtools) に含まれている Ant 用の AjcTask (i…

Gradle で任意の Maven 設定ファイルのローカルリポジトリ設定を適用する

Gradle のビルドスクリプトにて mavenLocal() を使用した際、${user.home}/.m2/settings.xml ファイルに localRepository 設定があれば、これを反映してくれますが、現時点では任意の Maven 設定ファイル (settings.xml) の localRepository を反映する方…

Groovy のトレイトと @Immutable

Groovy 2.3 からトレイト機能が追加されています。 Groovy 2.3 ここで、トレイトと @Immutable アノテーションを共に使用した場合、現バージョン (2.3) では以下のような注意点がありました。 トレイトで定義したプロパティの値は変更可能 (immutable と…

Commons OGNL でマッピング・フィルタリング・畳み込み

以前、Java でマッピング・フィルタリング・畳み込みを試しましたが、 今回は Commons OGNL を使って OGNL 式によるマッピング・フィルタリング・畳み込みを Groovy で試してみました。 Commons-OGNL 4.0-SNAPSHOT サンプルソースは http://github.com/fits/…

Groovy で Dempsy を分散実行

前回 と 前々回に続き、今回は Dempsy を Groovy で分散実行してみます。 Dempsy 0.7.9 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20131208/ はじめに Dempsy を分散実行するには ZooKeeper が必要となりますので 「GroovyでZo…

Groovy で Dempsy を単独実行2 - KeySource

前回に続き、Dempsy を Groovy で単独実行してみます。 今回は KeySource の設定有無でどのように挙動が変わるかを簡単に調べます。 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20131201/ KeySource 無しの場合 まず、前回サン…

Groovy で Dempsy を単独実行1

以前、Groovy で Storm を使う にて Storm を Groovy から使ってみましたが、今回は同様のフレームワークである Dempsy を Groovy で単独実行してみました。 Dempsy 0.7.9 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20131130/ …

Groovy で ZooKeeper を組み込み実行

以前、Groovy で Apache ZooKeeper を使う にて ZooKeeper のクライアントを Groovy スクリプトで実装しましたが、今回は ZooKeeper のサーバーを Groovy で組み込み実行してみました。 Apache ZooKeeper 3.4.5 サンプルソースは http://github.com/fits/try…

Gradle でアプリケーションを zip 化する

Gradle を使って Vert.x を組み込み実行する単純な Web アプリケーションを zip 化してみました。 Gradle 1.8 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20131020/ zip 化のタスク定義 とりあえず、Gradle のビルド定義 build.…

CommonsとSpringのBeanUtils.copyProperties

Commons BeanUtils に Bean のプロパティをコピーする BeanUtils.copyProperties() というなかなか便利なメソッドがありますが、同名のメソッドが Spring にもあります。 (当然ながらパッケージ名は異なります) ちなみに Seasar2 にも BeanUtil.copyProper…

Gradle の Scala プラグインで -Xprint オプションを使用

Gradle の Scala プラグインで -Xprint オプションを試してみました。 Gradle 1.7 -Xprint はコンパイル途中のコードを出力する Scala コンパイラのオプションで、 -Xprint:<フェーズ> のようにコンパイルフェーズを指定して使用します。 例えば -Xprint:typ…

R による XML の CSV 化

R を使って XML の内容 (特定の要素のみ) を CSV ファイルへ出力してみました。 R 3.0.1 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20130922/ CSV 化の対象 XML は下記で、VALUE 要素の属性とテキストノード値を CSV 出力す…

Gradleでリソースファイルの出力先を変更

Gradle で Java プラグインを使う場合、main のクラスファイルやリソースファイルの出力先は下記のようになっています。 Gradle 1.7 ファイル種類 出力先の設定 デフォルト値 クラスファイル sourceSets.main.output.classesDir build/classes/main リソース…

Netty 4 で WebSocket

以前、Jetty, Grizzly, Netty(3.2.4), EM-WebSocket を使って WebSocket の簡単なサンプルを実装しましたが、今回は Netty 4.0.7 を使って同様の処理を実装してみました。 Netty 4.0.7 Final サンプルソースは http://github.com/fits/try_samples/tree/ma…

Vert.x を組み込み実行

Vert.x を Groovy と Java で組み込み実行してみました。 Vert.x 2.0.1 ソースは http://github.com/fits/try_samples/tree/master/blog/20130825/ Groovy で組み込み実行 まずは Groovy で組み込み実行してみます。 通常の Vert.x スクリプトとの違いは下記…

Maven を Gradle 上で実行 - SVNKit によるソースのチェックアウト付き

前回 は Groovy スクリプトで Maven を実行してみましたが、今回は Gradle 上で実行してみる事にします。 Gradle 1.6 Maven 3.0.5 ソースは http://github.com/fits/try_samples/tree/master/blog/20130731_2/ 既存資産の pom.xml を Gradle に移行するのが…

Maven を Groovy スクリプト上で実行

Groovy スクリプト上で Maven を実行するには下記のような単純なスクリプトを用意するだけです。 Groovy 2.1.6 Maven 3.0.5 ソースは http://github.com/fits/try_samples/tree/master/blog/20130731/ mvn_run.groovy (Maven 実行スクリプト) @Grab('org.a…

Cucumber を Groovy で実行2 - Maven, Gradle

はじめに 前回 に続き、今回は Maven と Gradle を使って cucumber-jvm を実行してみます。 フィーチャやステップ定義は前回と同じものをそのまま使いますが、common.groovy の @Grab('org.seleniumhq.selenium:selenium-java:2.33.0') は不要なのでコメント…

Cucumber を Groovy で実行 - 単体実行

はじめに cucumber-jvm は BDD ツール Cucumber の Java 実装版です。 cucumber-jvm 様々な JVM 言語 (clojure、Groovy、Scala、JavaScript 等) を使ってステップ定義を実装できるので、今回は Groovy でステップ定義を実装、単体実行してみる事にします。…

Java Scripting API で CoffeeScript を実行

はじめに Java SE 6 から実装されている Java Scripting API を使えば JavaScript を JVM 上で実行できます。そして、CoffeeScript は JavaScript にコンパイルできます。 と言う事で Java Scripting API を使って CoffeeScript を実行する Groovy スクリプ…

Functional Java で Iteratee - take の実装

Functional Java の Iteratee を使って、以前試した Play2 の Iteratee (http://fits.hatenablog.com/entry/20130212/1360681996, http://fits.hatenablog.com/entry/20130216/1361027691) や RxJava (http://fits.hatenablog.com/entry/20130310/1362876…

記号文字の URL エンコード - Java, .NET, JavaScript, Ruby, Python, PHP

下記のような文字をいくつかのプログラム言語の標準的な API で URL (URI) エンコードしてみたらどうなるか試してみました。 ; / ? : @ = & % $ - _ . + ! * ' " ( ) , { } | \ ^ ~ [ ]使用した言語は下記の通りです。 Groovy (Java API) C# (.NET Fram…

RxJava で行単位のファイル処理 - Groovy, Java Lambda

前回 (id:fits:20130224) のファイル処理と同様の処理を RxJava を使って実装してみました。今回作成したソースは http://github.com/fits/try_samples/tree/master/blog/20130310/ Groovy で実装 まずは Groovy で実装してみました。 Groovy 2.1.1 前回の…

Vert.x で WebSocket

Vert.x 1.3.1 Final で単純な WebSocket 処理を実装してみました。単純な JSON データを送受信するチャットサーバーを Vert.x で、動作確認のためのクライアントを HTML5 で実装する事にします。サンプルソースは http://github.com/fits/try_samples/tree/m…

軽量 Web フレームワークで REST API を実装 - Vert.x, Gretty, Play2 Mini, Socko, Restify

個人的に REST API の実装では JAX-RS (Java)*1 や Sinatra (Ruby) あたりを使っていますが、今回は選択肢を増やす目的で下記のようなフレームワークを試してみました。 Vert.x (Java, Groovy, JavaScript, Ruby, Python) Gretty (Java, Groovy, Scal…