今年もPHP Matsuriにいってきました。
昨年も参加してみて、Cake、Symfony、Lithiumの開発者の方の話をきくことが
できて感動したのですが、今年も刺激を受けるために参加しました。

| 今年の印象


このBGMなくして、今年のPHP Matsuriは語れません。
何の前触れも無く、ながれるこのBGMを何度きいたことでしょう・・・・

今年も夜のゲーム大会が・・・。
何故か夜中の3時くらいに、巨大スクリーンでAngryBirdsをやる自分。
いや、ねむかったんで、息抜きに・・・

と、前置きは置いておいて。

昨年、Lithiumの開発者Nateの話をきいて、猛烈にLithiumに興味をもったのですが、
今年は、Lithiumのワークショップに参加することができました。

なんと、Lithium開発者の@gwoo(ギャレットさん)の隣という席配置。
詰まっていたら、話しかけてくれる心遣い!やさしかったです。

他の方のBlogを読めばわかりますが、
今年のPHP Matsuriはギャレットさんのノリに巻き込まれた感じです。
いや、とっても楽しかったって意味ですが。

Lithiumのセッションの話をきいて、ふと、今年つくるもの決めてなかったけど
そうだ
JenkinsとLithiumのプラグインをなんかつくれないだろうか。
と、夜中に思い立つという、去年の反省が活かしきれていない
スロースタートでした。

PHP Matsuriなのに、Javaと格闘している自分・・・・

2日間で結局JenkinsのPluginのチュートリアル通りまでしか
動かなかった・・・orz

| 今年できたこと

でも、今年は去年自分ができなかったこととして、
発表に参加するということができました。
(最終のLTでなく闇phpmatsuriの方ですが。)



いや、夜中なんで、皆さんの発表面白すぎでした。
闇PHP Matsuriを企画してくださったvoyagegroupさんに感謝です。
voyagegroupさんを持ち上げたわけではないですが、
「Tuningathonにいってみた」といったLTをさせてもらいました。
まぁ、時間がたらず、最後の結論を言う前にNinjaにきられたわけですが・・・

あと、テストワークショップも参加したのですが、
そこで教わったことを社内に持ち帰って、
自分が講師で、TDD勉強会ができたのも
良かった点です。

テストワークショップに参加してみて、
やっぱりプログラムは座学ではなく、体験してみないと
その本質はわからないと思ったからです。


| 振り返って

やっぱり、最後の皆さんのLTをきくと、
自分もなにがしかのものを発表できるくらいまで、
プログラムして、LTするべきだったな、
と思います。

発表してなんぼ何だと思います。

今年は大阪ってことで、最後の最後までいくかどうか
悩みましたが、行ってよかったです。

非日常がやっぱりPHP Matsuriにはあって、
その時間をみんなと過ごすだけでも刺激になりました。

とはいえ、2回参加してるのに、まだ最後の発表ができていないのは
悔しいので、来年こそは発表するぞ、と
1年後のために、ここに書いておきます。

来年こそは!
Macでいろいろ試したいミドルウェアをいれてきたが、
仕事でつかう環境は、Linuxなので、検証用に
ローカルにVMwareでCentOSの環境をつくることにした。
VMware Fusionはもっていたが、いちいち、GUI画面が立ち上がるのが
うっとしかったので、バックグランド実行できないかとおもって調べてたら、
できたので、メモ。

まずは、.vmxファイルに次の記述を追加

msg.autoAnswer = "TRUE"
signal.suspendOnHUP = "TRUE"
signal.powerOffOnTERM = "TRUE"

参考:http://communities.vmware.com/docs/DOC-6263

つづいて、起動スクリプトの作成
Macのデスクトップ上に
CentosBoot.commandというファイル名以下の内容を記述して保存

#!/bin/bash

/Library/Application\ Support/VMware\ Fusion/vmrun start /path/to/VMname.vmx nogui

参考:http://macosx.seesaa.net/article/115038173.html

CentosBoot.commandのアイコンをダブルクリックすると起動するようになる。

これで、TerminalでLinuxサーバに接続して操作できるようになった!
ログを効率よく管理ツールを探していたが、logstashなるものをみつけた。

http://code.google.com/p/logstash/

試しにインストール。
インストール手順のメモ。

centos5.5
のserver packageのみの状態からインストール。
各種開発ツールが入ってなかったのでインストールした
以下、インストールしたパッケージ(依存関係で勝手に入るのを除く)

# yum install gcc
# yum install gcc-c++
# yum install java-1.6.0-openjdk
# yum rubygems

rubyは1.8.6以降が必要だったので
RPM Searchから拾ってきてインストール

ruby-1.8.6.383-6.el5.kb.x86_64.rpm
ruby-devel-1.8.6.383-6.el5.kb.x86_64.rpm
ruby-irb-1.8.6.383-6.el5.kb.x86_64.rpm
ruby-libs-1.8.6.383-6.el5.kb.x86_64.rpm
ruby-rdoc-1.8.6.383-6.el5.kb.x86_64.rpm

準備がととのったのでlogstashに必要なもののインストール
インストールドキュメントにもあるが、elasticsearchをいれる

ES_PACKAGE=elasticsearch-0.12.1.zip
ES_DIR=${ES_PACKAGE%%.zip}
if [ ! -d "$ES_DIR" ] ; then
wget --no-check-certificate http://github.com/downloads/elasticsearch/elasticsearch/$ES_PACKAGE
unzip $ES_PACKAGE
fi

つづいて
logstash本体

# gem install logstash

がrackのバージョンがあわなくてうまくうごかない
http://code.google.com/p/logstash/issues/detail?id=5
を参考にrackのバージョンの入れ替え

# gem uninstall rack
# gem install rack --version 1.1.0

とりあえず、インストールまで、
実際の、configは次回に。
11/25に、「新人マネージャ研修」なるものを会社にて受講させていただいた。

あっ、ちなみに、私、10月からマネージャになってました。はい。

「最低1つ覚えっていってほしい」

の主旨があったとおり、
自分の脳内にリピートされるようになった言葉がひとつ

「それは"組織の成果"に結びつくか?」

という問いでした。

仕事をこなすうえで、
以前より、判断に迷うことが増えました。

決定がおくれることにメリットはありません。

迷ったとき、何を幹として自分は判断したらいいか。
その答えとして、

「それは"組織の成果"に結びつくか?」

を常に自分に問いていこう、
そう決心することができました。

どうしても、決定が遅れがちですが、
決定しなければ、すすみません。

いたずらに遅らせるのではなく、
「遅らせることを決定する」
くらいの決断ができるよう、
瞬発力を高めていきます。

ほかにも様々なことを学びましたが、
1つ、ここに上げて、実践していきます。


前回、配列(もどき)の話をしましたが、
実はbashはちゃんと配列をあつかえます。
(最近しりました・・・・)

ですので、こちらも忘れないように
備忘録をつけます。

bashの配列の構文例は次のようになります。

SERVERLIST[0]=192.168.0.1
SERVERLIST[1]=192.168.0.2
SERVERLIST[2]=192.168.0.3
SERVERLIST[3]=192.168.0.4


for SERVER in ${SERVERLIST[@]}
do
echo $SERVER;
done

です。
前回同様にSERVER名をechoするだけですが、
かなりすっきりしていて、
前回より直感的に理解し易いと思います。

これを知ってたら、前回のような書きかたはしないかもしれません。
(外部ファイルにしたい場合も結構あるので、そうとは限らないのですが・・・)

使い易い方をつかいわけるということで!