1. Solr4.5を動かしてみる

全文検索エンジンSolrにRDBのデータを喰わせてインデックスを作成するところまでを目標に、

Solr4のインストール〜構築を行っていきます。

  1. Solr4を動かしてみる
  2. Solr4のコア設定
  3. Solr4のインデックス設定(さわりだけ)
  4. Solr4にRDBのデータをくわせる
  5. Solr4でレプリケーションを構築する

1.1. まずはjavaのインストール!

RHEL系だったらyum, debian系だったらapt-getで入れてしまいましょう。

[続きをもっと見る…]


gradleでマルチプロジェクト

2013-10-17

今回のテーマは「gradleでマルチプロジェクトをビルド」です。

そもそも、マルチプロジェクトとは何か?、ですが、複数のプロジェクトを含むツリー構造のプロジェクトを指します。

例えば、

rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトa1
|— サブプロジェクトB
|— ライブラリ

とか

|— rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトB
|— ライブラリ`

みたいな構造のプロジェクトです。

[続きをもっと見る…]


gradleで使うファイルについて

2013-10-02

gradleコマンドは、いくつかのファイルを暗黙的に使ってビルドを行います。
(antのbuild.xmlやmavenのpom.xmlと同じですね。)

gradleが使うファイルには下記のようなものがあります。

  • build.gradle ・・・ メインのビルドスクリプトです。
  • settings.gradle ・・・ 設定ファイルです。プロジェクトツリーを定義します。マルチプロジェクトの場合必ず必要となります。
  • gradle.properties ・・・ プロパティを設定します。ここで設定したプロパティはbuild.gradleから参照することができます。

gradleはカレント・ディレクトリからbuild.gradleを探し、このファイルを参照してプロジェクトのビルドを行います。
つまり、build.gradleのおいてあるディレクトリでgradleコマンドを実行してあげないといけないということですね。

[続きをもっと見る…]


Android Studioとgradle

2013-09-15

gradleとは・・・

JVM言語向けのビルドツールです。Groovyで記述され、Groovyでタスクを記述することができます。
JVM言語向けビルドツール、と書いたのは、Javaだけでなく、もちろんGroovy, Scala等のビルドを行うこともできるからです。
AndroidStudioでは標準のビルドシステムとして採用されています。

Javaのビルドツールには

  • Ant
  • Maven
  • Ivy

等がありますが、これらのxmlベースでタスクを管理するビルドツールに比べて、柔軟なタスクの記述ができるようになっています。
また、

  • gradleからAntを実行
  • MavenやIvyのリポジトリを依存関係解決に使用

したりと便利な機能も備えています。

[続きをもっと見る…]


データ移行

非常に一般的で良くある話です。
それなのに、データ移行の確からしさについては議論されることが少ないように感じます。
データ移行の手順については比較的良く議論されるのですが。

データ移行の手順についてレビューを行っていると、必ずといっていいほど、その手順が、そのスクリプトが正しいかどうかという会話になります。
帰着として、「動かして確認しよう」というパターンが多いです。

[続きをもっと見る…]


androidでJSONを扱う機会があり(昨今のAPIはJSON形式のものが圧倒的に多いのでJSONを扱う機会は私に限らず多いと思うのですが)、
JSONをオブジェクトにパースするライブラリについて調べてみました。

1. android.util.JsonReader

実は、JsonReaderクラスがandrodの標準APIに存在します。

[続きをもっと見る…]


order byにインデックスが効かないケースの前に・・・order byにインデックスが使用されるのは、どんな時?

  • 単独でインデックスが張られているカラムをorder byに指定したとき。
  • Where節内で使用したカラムとorder byで指定したカラムと合わせて複合インデックスが張られているとき(ただし、Where内では定数が指定されていること)

この通りに指定してもインデックスが効かないケースがあります。

それが下記です。

[続きをもっと見る…]