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

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) 今回使用したモジュールは以下…

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 からパッケージ名等が変更になるような…