2015年8月12日水曜日

jira + confluence + trac にしました

チケット管理をjiraに変更してから、とても快適になりました。
tracでのチケット管理は色々と手間がかかり、面倒だったのです。

tracで問題だった点は、
チケット間の画面移動が面倒。
表を作るのにsqlかその簡易版のタグでがりがり書かなくてはならない。すなわち管理が大変。
画面レイアウトが大変。(チケットテンプレートがブラウザから編集できない & 複雑 & wikiページのデザインも大変)
チケット内容の変更(ステータス変更のみであっても)が大変。(クリックやマウス操作が多すぎる)
フローや状態によってチケットの仕様を変えたいけどできない。
wikiの機能が貧弱すぎる。プラグインも扱いが面倒すぎる&使い勝手の良い物がほとんど無く工夫が必要。

jira + confluence でこれら全ての不満が解消しました。
サービスの継続開発をアジャイル形式(チケット駆動)で行っているため、tracだと少々ストレスがありました。

jiraでの不満点は、
メモリ消費が半端無い。 javaサーバってこんなばかみたいに消費するのですか・・・。そのうえページ初期化処理が重い。(キャッシュが効いている間?は快適)
設定画面があまり親切ではなく、大変。 改善の余地ありますね。よく行き来する関連ページへのリンクぐらいは網羅して欲しいです。


そして、なぜ trac をまだ採用しているか!

リポジトリブラウザ(差分表示)のみ使っています。
fisheyeがこれに相当するのですが、さすがに3つはコストアップが激しすぎます。 それにこれだけはTracので充分でした。
jiraに無料svnプラグインを入れて、svnのプラグイン設定でtracのurlを指定して差分表示を連動させています。

そう、未だに svn を使っているのです。
そろそろ git に切り替えたいです。

2015年8月10日月曜日

JIRA と Confluence をインストール

開発ではずっとTracを使っていましたが、管理が微妙に大変なので JIRA と Confluence を導入しました。
選んだ理由は、他を寄せ付けない圧倒的な高評価でしょうか。  といっても私はTracとRedmineとbacklogとSharePointしか知りませんが、この中ではダントツです。


インストール環境
・CentOS 6.6
・MySQL 5.5
・JiraとConfluenceは64bitインストーラー版

JAVAサーバーのためか、メモリを非常に消費します。 2ギガだとスワップで数ギガ発生し、しまいには初期セットアップでこけます。

インストーラーはちょっと不親切で、マニュアルを見ながら行う必要があります。
といっても、解説サイトが大量にあるので、困る事も無いと思います。

もしメモリ不足等でウェブアクセス後の初期化に失敗した後に再インストールを行いたい場合は、設定ファイルを削除してください。
初期化するかしないかは、設定ファイルがあるかないかで決まります。
CentOSでデフォルトなら、
/var/atlassian/application-data/jira/confluence.cfg.xml
/var/atlassian/application-data/confluence/confluence.cfg.xml

DBの文字コードですが、マニュアルでは utf8-bin と書かれています。
おそらく古いMySQL用だとは思いますが、binが一番軽量なのでbinで作りました。
最近のなら、utf8mb4-general で構築するのが一番良い気がします。

mb4で4バイトの漢字に対応。 general で日本語ソートばっちし。
binだとバイナリコードでソートされてしまうため、場合によっては意図した順番にならずに面倒かもしれません。



そして実際に使ってみた感想。



今までやりたくてたまらなかったことが、できちゃう!
ワークフローやフォームの内容を条件で切り替えられるのがいいですね。Tracはこれが出来なくてカオスでした。
しかし設定多すぎて最初が大変。
表示を日本語(翻訳表示)に指定すると、若干の問題がある。


Tracのデータをインポート!

とりあえず、文字化けしました。 概要は化けていないのに、詳細とコメントが文字化けです。 DBの文字コードに問題なし。
面倒なので修正用のSQLをささっと作って修正しました。

詳細の修正は概要をキーにしてupdateかけるだけでいいので、簡単でした。
問題はコメントの修正です。キーにできるカラムが無い・・・・あった! 作成日をキーにしました。 同じ秒に投稿された記憶がないので、唯一の値とかってに決めました。
ただ、trac側はマイクロ秒のユニックスタイムなので、これを日時にコンバートさせないといけません。

UPDATE jira.jiraaction AS T1, trac.ticket_change AS T2 SET T1.actionbody = T2.newvalue WHERE T2.ticket >= 0 AND T2.ticket < 1000 AND T2.field = 'comment' AND T1.CREATED = from_unixtime(TRUNCATE(T2.time/1000000 ,0));

T2.ticket >= 0 AND T2.ticket < 1000 は、量が多すぎるので分割しました。 やっと終わったと思ったらエラーになっていたので・・・。
T2.time/1000000 は、マイクロ秒を秒に変換で、TRUNCATEで小数点以下を切り捨て、from_unixtimeで日付フォーマット。

無事、全てのチケットが表示されるようになりました。
ただし、更新ログ系はまた別なので、ばけたままです。 どうでもいいので放置します。

2015年8月8日土曜日

Windows10 + virtualbox + vagrant + phpstorm + eclipse

本日ついに! 私の元へwindows10が来たので、ささっとインストールをいたしました。

いざ、仕事で使っている開発環境へ!

無謀ではないですよ。 事前調査は済ませてあります。

なんかあちこちで、2ch情報としてvirtualboxが動かないだの eclipseが動かないだのが拡散していますが問題ありません。
eclipseが動かないというのは、JAVAのバージョンがおかしいのかもね。
virtualboxが動かないというのは、バージョンが古過ぎる?


Windows10にアップグレードする前に、下準備をしておくと楽かもしれません。

まず、「マイピクチャ」内の画像を別の所に移動させておきます。
これやらないと、本当に恥ずかしい事になってしまいます。

ソフトウェア類、特にドライバ類は最新バージョンに上げておきます。
でないとwindows10を入れた後にエラーになる場合があります。

モニターを沢山つなげている人は displaylink がほとんどだと思いますが、これは古いドライバのままだと動きません。
公式サイトからDLしてきて、自分でアップデートしましょう。

OSやデスクトップ改造系の常駐物は、Windows10では使えない可能性大です。
私の場合、「絶対領域」が対応していませんでした。 デスクトップが画面が非常に不安定になります。(いきなりクリックできない等)

eclipseとphpstormは何もせずに全て正常に動きました。
私はコーディングをphpstorm、リポジトリ管理をeclipseで行っています。


virtualboxは、windows10でも問題無く動作しましたが、vagrantとの連動が動作しませんでした。
どうやら再設定が必要っぽいです。(設定しなおせば動くという情報は、ぐぐると沢山出てきます)

まず、virtualbox と vagrant を最新版にアップデート!
virtualboxは、アップデートするとネットワーク設定が壊れることで有名です。
そして案の定壊れました。

ホストオンリーアダプターの設定がおかしなことになったので、元に戻します。
予め正常時の設定をメモしておきましょう。

vagrant up! os起動完了!
しかし、sshログインに失敗するようで、認証エラーの荒しで終わります。

ここらへんの情報は、世界のstackに情報があつまっています。
どうやら、鍵ファイルをアップデートすれば良いらしい。 バージョン4系で作ったboxはそのままでは使えないということでしょうか。

書いてある通りに鍵ファイルを置き換えて vagrant up!
こんどは大成功し、box環境をなにやらアップグレートの荒しです。 バージョン5系のツール類をインストールしているもよう。

無事に、vagrant up が正常完了できるようになりました。


が、しかし

sshはログインできるが、ブラウザからwebminにもhttpdにもつながりません。 サーバへのpingは通るのでIPは間違っていない・・・ポートかなと思った所で終了です!



続き


ブラウザから接続きなかった理由は、ただの設定ミスでした。
DHCPの設定で、IPをvagrantで指定したIPv4アドレスと同じにしたらできました。


さらに追記
今回発生した vagrant + virtualboxでのトラブルは、windows10とは無関係でした。
windows7のマシンでも、まったく同じ現象を確認できました。