makotanの勉強日記

勉強したこととか設定系のメモとかそういうのを集めたもの

IntelliJ IDEAでmidjeのautotestをするまで

Intellij IDEA 12だとClojureプラグインが駄目なので13に変えるか、Intellijのサポートページからダウンロードしてインストール。って思ったけど、実はあんまり必須じゃ無いので詳細はパス

プログラムを作ってて面倒なのが、コードを書いてUnitTestを動かしてを繰り返すこと。いっそのことコードを書いたら勝手にUnitTest動かせば良いのに〜って思ってたらそんなのがClojureにはいっぱいあったので試してみた

leiningenがセットアップ済みの前提

leiningen用のmidjeプラグインをセットアップする

~/.lein/profiles.clj ってファイルを↓の内容で作成

{:user {:plugins lein-midje "3.0.0"}}

プロジェクトを作る

lein new midje test

そしたらプロジェクトファイルが作られるのでこの部分をちょっと変更するというかバージョンを書き換えてるだけ

:dependencies org.clojure/clojure "1.5.1"

:profiles {:dev {:dependencies midje "1.6.0"}})

コマンドでプロジェクト作成時に出来たmidjeのテストを動かす(意識的なのか、エラーになる)

lein midje

エラーになるけど、それが正しい姿なので気にしない

IntellijにLeiningenプロジェクトとして取り込む

次にIntellijで動かすので・・・ Run -> Edit Configurationの + ボタンを押して Leiningenを選択

Working directoryはプロジェクトを作ったディレクトリ、Nameは適当に(とりあえず midjeとして説明) Golesに midje :autotest を入力

さっき作った midjeを実行すると画面下にエラーが表示される

t_core.cljファイルの12行目辺りの => :default を => nil に変えてみると・・・

即座にそのファイルのテストが走ってエラーの数が一個減る!

実はIntellijClojureプラグインはそんなに優秀だと言いきれない(入力補完は結構優秀だけど)ので、編集時にリアルタイムにコンパイルエラーを表示したりとかのサポートが無いと個人的には辛かった(^^ゞ

それにしても、Clojureの編集してから結果がわかるまでの反応の早さは恐るべき物があるけど、IntelliJを使ったときのJavaの快適さとはまた別だな〜まぁ動的型付言語の一種だし仕方ないかw

LinuxにPostgreSQLを入れて外からアクセスできるようにする

OSに設定されてるPostgreSQLが古いときはPostgreSQLリポジトリを追加する

postgresqlの設定で、localhost以外からのアクセスを受けとれるようにする

一個目

sudo vim /etc/postgresql/9.3/main/postgresql.conf

listen_addresses = '*'

二個目

sudo vim /etc/postgresql/9.3/main/pg_hba.conf

host all all 192.168.0.1/24 trust

サーバをリスタートする

sudo service postgresql restart

あとはユーザ追加したり、データベース追加したりをpgadmin3からやれば簡単!

RDSと合わせたいときはサーバをUTCで作ってロケールをenなUTF-8にする。

RedHat系のLinuxでサービスの有効化などなど

サービスの一覧

sudo chkconfig --list

ここでonになっているサービスが有効なヤツ

サービスをマシン起動と一緒に起動するには

sudo chkconfig servicename on

サービスをマシン起動と一緒に起動しないようにするには

sudo chkconfig servicename off

よく操作するのに忘れるのでメモ

Mac上にvagrant(1.4.2)の環境を作る

VirtualBoxをインストールする

VMWareの場合はVagrantから購入すればたぶん動くはず

Downloads – Oracle VM VirtualBox

Vagrantをインストールする

ググるとすぐ出てくるところを見るとgemからでも出来るらしいけど、やってみたら動かなかったのでこっちからダウンロードしてインストールする。

Download Vagrant - Vagrant

boxファイルを用意する

例としてCentOS 6.5の64bit版をいれるところ

sudo vagrant box add centos_65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

他のboxが必要ならここから探すのが手っ取り早い。それにしてもちょっと見ない間に増えたなぁ〜

A list of base boxes for Vagrant - Vagrantbox.es

仮想マシンを作る

適当なディレクトリを作成してからinitコマンドって流れ

mkdir -p ~/vbox/centos65

cd ~/vbox/centos65

sudo vagrant init

これでディレクトリの下にVagrantfileが作られているので↓を参照しながら変更する

Vagrant Documentation

Vagrantで簡単仮想マシン構築 | Ryuzee.com

ちなみに、config.vm.box = "centos_65"とconfig.vm.networkとconfig.vm.provider :virtualbox do |vb|のあたりだけ変えた

それと、Emacsでsudo権限の編集をしたい場合は/sudo::/パス って開くとsudoで開ける

emacsでsudoしてファイルを開く - Qiita

注:ここから下は↓のまねのメモですm(__)m

Vagrantで簡単仮想マシン構築 | Ryuzee.com

仮想マシンを起動する

sudo vagrant up

仮想マシンsshする

sudo vagrant ssh

仮想マシンを終了する

sudo vagrant halt

仮想マシンを削除する

sudo vagrant destroy

MacのJava7でのjava.library.pathにライブラリを設定する方法

一番最適な判断方法はJavaの中でこれを出力する

System.getProperty("java.library.path");

そこに~/Library/Java/Extensionsがあるのに気がついたので

mkdir -p ~/Library/Java/Extensions

こんなコマンドでディレクトリを作成したあとでExtensionsなライブラリをln -s でリンクする

ln -s /usr/local/Cellar/elasticsearch/0.90.9/libexec/sigar/libsigar-universal64-macosx.dylib libsigar-universal64-macosx.dylib

例としてbrewでインストールしたlibsigar-universal64-macosx.dylibをセットしてみる

こうやるとバージョン固定になるので、バージョン部分などは適当にw

これならsudo使ったりしなくて良いのでちょっと良いなと思った

brewでElasticsearchのインストール記録

単なるメモ

コマンドは

brew install elasticsearch

これだけ。

% brew install elasticsearch ==> Downloading https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.9.tar.gz

################################################################## 100.0%

==> Caveats Data: /usr/local/var/elasticsearch/elasticsearch_makotan/ Logs: /usr/local/var/log/elasticsearch/elasticsearch_makotan.log Plugins: /usr/local/var/lib/elasticsearch/plugins/

To have launchd start elasticsearch at login: ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents Then to load elasticsearch now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch.plist Or, if you don't want/need launchctl, you can just run: elasticsearch -f -D es.config=/usr/local/opt/elasticsearch/config/elasticsearch.yml ==> Summary /usr/local/Cellar/elasticsearch/0.90.9: 35 files, 19M, built in 15 seconds

IntelliJ IDEAのUnitTestの実行ディレクトリがずれる問題

IntelliJ IDEAと他の環境の違い

IntelliJでマルチプロジェクトを作った状態でJUnitを動かすと、大元のプロジェクトで実行されてテスト用に使うファイルの位置がずれてエラーになったりする。

mavenでpackageしたりするときの位置と合わせる方法

設定

Run/Debug Configurations -> Defaults -> JUnit の Working directoryに $MODULE_DIR$ を入れる

これだけ

既存のテストがあればそっちも同じように変えるとOK