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

Webブラウザ上で Excel ファイルを作成してダウンロード - Excel Builder (.js)

Excel Builder (.js) を使って、Web ブラウザ上で動的に Excel ファイル (.xlsx) を作成し、ダウンロードする方法をご紹介します。 ソースは http://github.com/fits/try_samples/tree/master/blog/20150822/ サンプル作成 まずは、HTML を用意します。 今…

Gradle と Querydsl Scala を使った Querydsl SQL のコード生成

前回 の JPA に続き、今回は Gradle と Querydsl Scala を使って Querydsl SQL のコード生成を試します。 Gradle 2.5 Querydsl Scala 4.0.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20150810/ はじめに Querydsl SQL の場合は Scala …

Gradle と Querydsl Scala を使った Querydsl JPA のコード生成

Gradle と Querydsl Scala を使って Querydsl JPA の Scala 用コード生成を試してみました。 Gradle 2.5 Querydsl JPA 4.0.2 Querydsl Scala 4.0.2 ソースは http://github.com/fits/try_samples/tree/master/blog/20150727/ はじめに 「Gradle を使った Que…

JPA における一対多のリレーションシップ - EclipseLink

EclipseLink 2.6.1 RC1 を使って JPA の一対多リレーションシップを下記 2通りで試し、SQL の実行内容などを調査してみました。 (a) 単方向: @OneToMany + @JoinColumn (b) 双方向: @OneToMany + @ManyToOne 簡単にまとめると次の通りです。 タイプ 使用した…

Google スプレッドシートを REST API で操作

Google スプレッドシートを REST API で操作します。 API の利用には 前回 と同様にリフレッシュトークンを使います。 はじめに Google スプレッドシートの API を使うには、Google アカウントで API の利用を承認する際に scope で https://spreadsheets.go…

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

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

Google API 用のアクセストークンをサービスアカウントで取得 - Google API Client Library for Java

Google の各種 API を使うためのアクセストークンをサービスアカウントを使って取得してみました。 ライブラリは Google API Client Library for Java を使います。 Google API Client Library for Java 1.20.0 ソースは http://github.com/fits/try_samples…

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

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

Java のアノテーションプロセッサで Haskell の do 記法のようなものを簡易的に実現3

Java のアノテーションプロセッサを使って下記と同等の機能を実現する試みの第三弾です。 Haskell の do 記法 Scala の for 内包表記 F# のコンピュテーション式 前回 のものを改良し、ようやく下記のような構文を実現しました。 Optional<String> res = opt$do -> {</string>…

Java のアノテーションプロセッサで Haskell の do 記法のようなものを簡易的に実現2

前回 に引き続き、今回も Java のアノテーションプロセッサを使って下記と同等機能を実現します。 Haskell の do 記法 Scala の for 内包表記 F# のコンピュテーション式 今回は、F# のコンピュテーション式を模した下記のような構文 (前回断念したもの) …

Java のアノテーションプロセッサで Haskell の do 記法のようなものを簡易的に実現

「アノテーションプロセッサで AST 変換 - Lombok を参考にして変数の型をコンパイル時に変更」の応用編です。 前回は変数の型を var から java.lang.Object へ変更しただけでしたが、今回は下記と同等な機能の簡易版をアノテーションプロセッサで実現してみ…

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

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

Spring MVC で Controller を動的に切り替える - RequestMappingHandlerMapping のサブクラス利用

Spring MVC では、基本的に @RequestMapping アノテーションで指定した URL パターンに合致する Controller のメソッドを実行し、org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping クラスがその処理を担っています。 そ…

Apache Spark でロジスティック回帰

以前 ※ に R や Julia で試したロジスティック回帰を Apache Spark の MLlib (Machine Learning Library) を使って実施してみました。 Apache Spark MLlib 1.3.1 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20150427/ ※「 R …

Java 8 でグルーピング処理 - List<V> を Map<K, V> へ変換

Java 8 で List<V> を Map<K, V> へ変換するようなグルーピング処理をいくつか試してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20150420/ はじめに 今回は、下記をリスト化した List<Data> を id でグルーピングして Map<String, Data> へ変換します。 cl</string,></data></k,></v>…

Gradle を使った Querydsl SQL のコード生成

前々回 と 前回 に続き、今回は Querydsl SQL のコード生成を Gradle で実施してみました。 Gradle 2.3 Querydsl 3.6.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20150413/ なお、Querydsl 4.0 からパッケージ名等が変更になるような…

Gradle を使った Querydsl MongoDB のコード生成

前回の Querydsl JPA に続き、今回は Querydsl MongoDB のコード生成を Gradle で実施してみました。 Gradle 2.3 Querydsl 3.6.2 ソースは http://github.com/fits/try_samples/tree/master/blog/20150330/ Gradle を使ったコード生成 Querydsl MongoDB の場…

Gradle を使った Querydsl JPA のコード生成

今回は Querydsl JPA のコード生成を Gradle で実施してみました。 Gradle 2.3 Querydsl 3.6.2 ソースは http://github.com/fits/try_samples/tree/master/blog/20150322/ はじめに Querydsl JPA では JPA のエンティティクラスを元に Querydsl JPA 用のコー…

Julia でロジスティック回帰 - glm

前回 に続き、今回も Julia で GLM を実施します。 Julia v0.4.0-dev 今回は 「R でロジスティック回帰 - glm, MCMCpack」 のロジスティック回帰(GLM)を Julia で実装してみました。 サンプルソースは http://github.com/fits/try_samples/tree/master/blo…

Julia でポアソン回帰 - glm

以前、「R でポアソン回帰 - glm, MCMCpack」 にて試した GLM によるポアソン回帰を Julia で実施してみました。 なお、Julia は開発中の v0.4.0 を使用しました。 Julia v0.4.0-dev サンプルソースは http://github.com/fits/try_samples/tree/master/blog/…

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 で実装…

Compiler Tree API で Java ソースファイルをパースする

javax.tools と Compiler Tree API を使って Java のソースファイルをパースしてみました。 Java SE 8u31 前回 と同じように、ソースファイルを AST 化した CompilationUnitTree (実際は JCTree$JCCompilationUnit) を取得し、簡単な TreeVisitor を適用し…

アノテーションプロセッサで AST 変換 - Lombok を参考にして変数の型をコンパイル時に変更

Java のボイラープレートを補完してくれる Lombok の処理内容が興味深かったので、これを真似た簡単なサンプルプログラムを作ってみました。 Lombok 1.14.8 ソースは http://github.com/fits/try_samples/tree/master/blog/20150117/ はじめに Lombok はアノ…

Akka Streams で skip・take 処理

前回の 「Reactor で skip・take 処理」 と同様の処理を Akka Streams を使用し Java 8 で実装してみました。 Akka Streams 1.0 M2 ソースは http://github.com/fits/try_samples/tree/master/blog/20150112/ はじめに Gradle を使ってビルド・実行するため…

Reactor で skip・take 処理

「Bacon.js で skip・take 処理」と同様の処理を Reactor を使用し Java 8 で実装してみました。 Reactor ソースは http://github.com/fits/try_samples/tree/master/blog/20150104-2/ はじめに 今回は Gradle を使ってビルド・実行するため、下記のような b…

Bacon.js で skip・take 処理

リアクティブプログラミング用ライブラリの Bacon.js を Node.js 上で使用し、「RxJS で行単位のファイル処理」 で試したような skip・take 処理のサンプルを実装してみました。 Bacon.js ソースは http://github.com/fits/try_samples/tree/master/blog/201…

Ratpack で Java Web アプリケーション作成

Ratpack は以前 「Ratpack + JHaml + Morphia で MongoDB を使った Web アプリ開発」 で試しましたが、3年以上経っているので改めて試してみました。 今回は単純な Java Web アプリケーションを Ratpack で作成する事にします。 Ratpack 0.9.11 ソースは htt…

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 の結果を取得する手順は下記のようにな…

Sodium で関数型リアクティブプログラミング2 - skip・take 処理

前回に続き、Sodium を試してみます。 Sodium 今回は 「RxJava で行単位のファイル処理 - Groovy, Java Lambda」 で実装したものと同等の処理を Sodium を使って実装してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20141209/…

Sodium で関数型リアクティブプログラミング

関数型リアクティブプログラミング(FRP)用のライブラリ Sodium を試してみました。 Sodium Sodium には現時点で Java・Haskell・C++・C# 用のライブラリが用意されていますが(Embedded-C や Rust 用のライブラリも実装中の模様)、今回は Java 用のモジュ…

Spark SQL で CSV ファイルを処理2 - GeoLite2

前回の 「Spark SQL で CSV ファイルを処理 - GeoLite Legacy」 に続き、今回は Spark SQL を使って GeoLite2 City CSV ファイルを処理してみます。 GeoLite2 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20141112/ はじめに GeoLi…

Spark SQL で CSV ファイルを処理 - GeoLite Legacy

以前、H2 を使って CSV ファイルを SQL で処理しましたが、今回は Spark SQL を使ってみました。 Spark SQL 「IPアドレスから地域を特定する2 - GeoLite Legacy Country CSV」 で使った GeoLite Legacy Country CSV を使って同様の処理を Spark SQL で実装し…

Java アプリケーションの起動スクリプト - Windows・Linux

指定ディレクトリ内の全 JAR ファイルをクラスパスへ指定して Java アプリケーションを起動するスクリプト例です。 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20141103-1/ Windows の場合 (bat) lib ディレクトリ内の全 JAR フ…

Vagrant で VirtualBox 仮想マシンの CPU 数とメモリサイズを変更

Vagrant で VirtualBox 上の仮想マシンの CPU 数とメモリサイズを変更する方法としては、現時点で下記 2通りがあります。 (a) cpus や memory を使用する (b) customize を使用する ちなみに、Vagrant ソースの plugins/providers/virtualbox/config.rb を見…

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 サーバーの組み込み実行 まずは、普通の …

Vagrant で VirtualBox 上の CentOS 7 へ固定 IP を設定

はじめに Vagrant を使って VirtualBox 上で CentOS 7 を起動する際に、固定 IP を設定しようとするとエラーが発生しました。 Vagrant 1.6.3 VirtualBox 4.3.12 for Windows hosts Vagrantfile ・・・ Vagrant.configure(VAGRANTFILE_API_VERSION) do |confi…

成功するまで次を試すような処理へ Either モナドを適用 - FunctionalJava

成功するまで次の処理を試していくような処理に対して Either モナドを適用してみました。 使用した環境は下記の通りです。 Java SE 8u20 FunctionalJava 4.2 beta1 ソースは http://github.com/fits/try_samples/tree/master/blog/20140825/ はじめに Eithe…

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

Arrow (Kleisli) で List モナド - Haskell, Frege, Scalaz

「Scalaz でリストモナド - Kleisli による関数合成 」等で試してきた List モナドを使ったチェスのナイト移動の処理を Arrow (Kleisli) を使って実装し直してみました。 Arrow は計算のための汎用的なインターフェースで、モナドを扱うための Arrow とし…

Roy で List モナド

前回に続き、今回も Roy を試してみます。 Roy ではモナドを使った do 記法を使えるようなので、JavaScript で List モナド - Monadic 等で試したチェスのナイト移動の List モナド処理を同じように実装してみました。 Roy 0.2.2 ソースは http://github.com…

Roy による関数合成

Groovy, Scala, F#, Haskell による関数・クロージャの合成 や Java SE 8 で関数合成 で実施したものと同様の関数合成を Roy で試してみました。 Roy は JavaScript へコンパイルできる関数型のプログラミング言語です。 Roy 0.2.2 ソースは http://github.c…

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…

ジニ不純度の算出3 - Python, R, CoffeeScript

前々回 と前回 に続き、下記のようなプログラム言語でジニ不純度(ジニ係数)の算出処理を同様に実装してみました。 Python R CoffeeScript 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20140622/ Python で実装 Python 2.7 IronPy…

ジニ不純度の算出2 - Ruby, C#, F#, Erlang

前回 に続き、今回は下記のようなプログラム言語でジニ不純度(ジニ係数)の算出処理を同じように実装してみました。 Ruby C# F# Erlang 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20140608/ Ruby で実装 Ruby 2.0 JRuby 1.7 Rub…

ジニ不純度の算出 - 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…