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

Java 8 で Apache Flink を使用

前回 と同様の処理を Java8 のラムダ式を使って実装してみました。 Apache Flink 1.2.0 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170313/ サンプル 前回 の処理をラムダ式を使って Java で実装すると以下のようになりました。…

Groovy で Apache Flink を使用

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

reveno でイベントソーシング

「sourcerer でイベントソーシング」 等と同様の処理を reveno で実装してみました。 reveno 1.23 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170306/ はじめに 使用する Gradle ビルド定義ファイルは以下の通りです。 build.gr…

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 を起動して…

Akka の FileIO でファイルを読み書き

Akka (akka-stream) の FileIO を使ってファイルの読み書きを行ってみます。 Akka 2.5-M1 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170131/ はじめに akka-stream では Java 用の API は akka.stream.javadsl パッケージに…

Sourcerer でイベントソーシング

「Axon Framework でイベントソーシング」 や 「es4j でイベントソーシング」 と同様の処理を Sourcerer で実装してみました。 Sourcerer v4.0.1 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170110/ はじめに 以下のような Grad…

es4j でイベントソーシング

「Axon Framework でイベントソーシング」 と同様の処理を es4j (Eventsourcing for Java) で実装してみました。 es4j 0.4.5 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170107/ はじめに 今回はイベントをインメモリで保持する…

RxJava2 で並列処理

前回 と同じような並列処理を RxJava 2.0 で試してみました。 RxJava 2.0.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20161226/ はじめに まずは、map の処理と subscribe の処理を順番に 3回繰り返す処理です。 前回の Reactor との…

Reactor で並列処理

Reactor の並列処理を試してみました。 reactor-core 3.0.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20161208/ はじめに Reactor で以下のようなコードを実行すると、map の処理と subscribe の処理を順番に 3回繰り返します。(repe…

Spring Web Reactive を試す

Spring 5 で導入される Spring Web Reactive を試してみました。 本来なら Spring Boot で実行する事になると思いますが、今回は Spring Boot を使わずに Undertow で直接実行してみます。 ソースは http://github.com/fits/try_samples/tree/master/blog/20…

Java で行列の演算 - nd4j, commons-math, la4j, ujmp, jblas, colt

Java で以下のような行列の演算を複数のライブラリで試しました。 (a) 和 (b) 積 (c) 転置 とりあえず今回は、更新日が比較的新しめのライブラリを試してみました。 ND4J 0.6.0 Commons Math 3.6.1 la4j 0.6.0 UJMP 0.3.0 jblas 1.2.4 Colt Blazegraph 版 2.…

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) ドキュメントの内容を出力 まずは、ド…

Deeplearning4J で MNIST を分類

「Deeplearning4J で iris を分類」 に続いて、畳み込みニューラルネットを使った MNIST の分類を試します。 Deeplearning4J 0.6.0 Deeplearning4J のバージョンが上がって、@Grab を使った Groovy 上での実行が上手くいかなかったので、今回は Kotlin で実…

Keras で MNIST を分類

「Keras で iris を分類」 に続き、今回は Keras で畳み込みニューラルネットを使った MNIST の分類を試してみました。 Keras 1.0.8 Python 3.5.2 ソースは http://github.com/fits/try_samples/tree/master/blog/20160920/ 準備 Docker で実行するための Do…

Gradle で ScalaPB を使う

前回と同様の処理を ScalaPB で行ってみました。 ScalaPB であればビルドツールに sbt を使う方が簡単かもしれませんが、引き続き Gradle を使います。 Gradle 3.0 ScalaPB 0.5.40 今回作成したソースは http://github.com/fits/try_samples/tree/master/blo…

Gradle で Protocol Buffers を使う - Java

Gradle を使って Protocol Buffers の protoc で Java ソースコードを生成し、ビルドしてみます。 Gradle 3.0 protoc-jar 3.0.0 protobuf-java 3.0.0 Gradle から protoc コマンドを呼び出す方法もありますが、今回は protoc-jar を使いました。 protoc-jar …

Axon Framework でイベントソーシング

Axon Fraework のイベントソーシング機能を軽く試してみました。 Axon Framework 3.0-M3 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20160815/ はじめに 今回は以下のような Gradle 用ビルド定義を使います。 lombok は必須ではあ…

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…

node-ffi で OpenCL を使う2 - 演算の実行

「node-ffi で OpenCL を使う」 に続き、Node.js を使って OpenCL の演算を実施してみます。 node-ffi サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20160725/ はじめに 演算の実行には ref-array モジュールを使った方が便利なた…

Docker で OpenCL の実行環境を構築 - pocl

前回の 「node-ffi で OpenCL を使う」 では Windows 上で Node.js から OpenCL の API を呼び出してみましたが、これを Linux 上で行うために OpenCL の実行環境を Docker で構築してみました。 OpenCL の実行環境として pocl を使い、Linux は Fedora を使…

node-ffi で OpenCL を使う

Windows 環境で node-ffi (Node.js Foreign Function Interface) を使って OpenCL の API を呼び出してみました。 Node.js v6.2.2 (64bit Windows版) node-ffi サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20160627/ なお、OpenC…

Keras で iris を分類

Theano・TensorFlow 用のディープラーニングライブラリ Keras を使って、階層型ニューラルネットによる iris の分類を試してみました。 Keras 1.0.3 Python 3.5.1 ソースは http://github.com/fits/try_samples/tree/master/blog/20160531/ 準備 今回は Dock…

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 …

ConvNetJS で MNIST を分類2 - 畳み込みニューラルネット

前回 の続きです。 今回は畳み込みニューラルネットを使って MNIST の手書き数字を分類してみます。 Node.js 5.8.0 ConvNetJS 0.3.0 ソースは http://github.com/fits/try_samples/tree/master/blog/20160328/ 準備 誤差・正解率のグラフ化と畳み込みフィル…

ConvNetJS で MNIST を分類1 - 階層型ニューラルネット

Node.js で ConvNetJS を使って MNIST の手書き数字を分類してみます。 今回は階層型ニューラルネット、次回は畳み込みニューラルネットを試す予定です。 Node.js 5.8.0 ConvNetJS 0.3.0 ソースは http://github.com/fits/try_samples/tree/master/blog/2016…

MNIST データセットをパースする

MNIST データセットは、THE MNIST DATABASE of handwritten digits からダウンロード可能な手書き数字のデータです。 機械学習ライブラリ等に標準で用意されてたりしますが、 今回は Node.js と Java でパースしてみました。 ソースは http://github.com/fit…

D3.js による折れ線グラフ SVG の作成と PNG 変換 - Node.js

前回、(ConvNetJS による処理結果を)折れ線グラフ化した方法に関して書いておきます。 D3.js ソースは http://github.com/fits/try_samples/tree/master/blog/20160222/ 準備 Node.js で D3.js を使うには、下記モジュールを npm でインストールします。 d…

ConvNetJS で iris を分類

ニューラルネット用の JavaScript ライブラリ ConvNetJS を使って iris の分類を行ってみました。 ConvNetJS 0.3.0 ConvNetJS は Web ブラウザ上でも実行できますが、今回は Node.js で実行します。 ソースは http://github.com/fits/try_samples/tree/maste…

PureScript で DOM を操作

PureScript の下記ライブラリを使って簡単な DOM 操作を試してみました。 purescript-dom purescript-simple-dom ソースは http://github.com/fits/try_samples/tree/master/blog/20160125/ はじめに PureScript を使って実装するものと同等の処理を JavaScr…

virtual-dom のイベント処理

仮想 DOM を扱うための JavaScript 用ライブラリ virtual-dom では ev-xxx (例. ev-click) でイベント処理を扱えるようになっていますが、実際に機能させるには dom-delegator が必要なようです。 virtual-dom 2.1.1 dom-delegator 13.1.0 virtual-dom は …

pulp を使った PureScript の開発

PureScript 用のビルドツールに pulp があります。 pulp を使えば PureScript v0.7 から多少面倒になったビルドや実行が比較的容易になります。 pulp インストール Node.js の npm で purescript (コンパイラ) と pulp をインストールします。 pulp インス…

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

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

Android エミュレータの hosts ファイルを編集

Android エミュレータの hosts ファイルを編集する方法です。 以下のような方法が考えられます。 (a) shell で hosts へ行を追加 (b) pull と push で hosts を変更 (a) shell で hosts へ行を追加 行を追加するだけなら以下のように shell を使うだけです。…

Swift のビルド環境を Docker で構築

Ubuntu をベースとした Swift のビルド環境を Docker で構築してみました。 Swift 使用したソースは http://github.com/fits/try_samples/tree/master/blog/20151207/ Docker イメージ作成 ubuntu:15.10 のイメージをベースに Swift をセットアップしました…

Objective-C のビルド環境を Docker で構築

CentOS をベースとした Objective-C のビルド環境を Docker で構築してみました。 使用したソースは http://github.com/fits/try_samples/tree/master/blog/20151130/ Docker イメージ作成 今回は clang と GNUstep を使う事にします。 clang GNUstep バージ…

twemproxy + Redis 環境を Docker で構築

twemproxy(別名 nutcracker) + Redis の環境を Docker で構築してみます。 (twemproxy は memcached・Redis 用の軽量なプロキシです) twemproxy 使用した設定ファイル等は http://github.com/fits/try_samples/tree/master/blog/20151124/ Redis の Dock…

リストを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つずつ分配) ソ…

Python の機械学習環境を Docker イメージで作成

書籍「データサイエンティスト養成読本 機械学習入門編 (Software Design plus)」を参考に、numpy・scipy・matplotlib・scikit-learn パッケージをインストールした Python 3.5.0 の環境を Docker イメージとして作成してみました。 サンプルソースは http:/…

ResultSet の Stream 化

java.sql.ResultSet を java.util.stream.Stream 化する方法はいくつか考えられますが、今回は以下の方法を試してみました。 Spliterator インターフェースの実装クラスを作成 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/201510…

FunctionalJava の DB モナド?

FunctionalJava における fj.control.db.DB クラスの使い方を調べてみました。 FunctionalJava 4.4 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20151013/ はじめに 処理内容を見る限り fj.control.db.DB は Reader モナドをベー…

Spring Data Redis を Tomcat で JNDI リソース化

前回、Jedis を Tomcat 上で JNDI リソース化しましたが、今回は Spring Data Redis を JNDI リソース化してみます。 実際は org.springframework.data.redis.connection.jedis.JedisConnectionFactory を JNDI リソース化します。 サンプルソースは http://…

Jedis を Tomcat で JNDI リソース化

Jedis ※ を Tomcat 上で JNDI リソースとして扱えるようにしてみます。 ※ 厳密には redis.clients.jedis.JedisPool を JNDI リソース化します サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20150924/ はじめに Tomcat では標準的…

Windows上で Rust 1.3 を使用

以前、「Windows 上で Rust を使用」 では Rust 0.9 を使いましたが、今回は Rust 1.3 で試してみました。 Rust 1.3.0 https://www.rust-lang.org/ https://github.com/rust-lang/rust 環境構築 https://www.rust-lang.org/ から Windows installer をダウン…

nginx でリバースプロキシする際は HTTP レスポンスヘッダーのサイズに注意

nginx で Web サーバーをリバースプロキシする際は以下に注意が必要です。 (nginx 1.8.0 と 1.9.4 で確認) リバースプロキシ先からの HTTP レスポンスヘッダーのサイズが proxy_buffer_size の設定値を超えると 502 Bad Gateway エラーとなる その場合のエ…

Spring Data Redis におけるデフォルト設定の注意点

Spring Data Redis のデフォルト設定に関して、個人的に気になった点を挙げておきます。 (1) キーと値に JdkSerializationRedisSerializer を適用 (2) トランザクションサポートが無効化 (enableTransactionSupport = false) 今回使用したモジュールは以下…