JIRA始めました

始めました。前から使いたかったのですが、噂通りよいです。
Excelは、やっぱり表計算ソフトです。

インストールは、AWSAmazon AMIでインスタントをsmallで作って、
ドキュメントInstalling JIRA - JIRA 5.2 - Atlassian Documentation見ながら、入れました。サクッと入ります。
デフォルトでインストールするなら、
JIRA HOMEや、インストールディレクトリは、ちゃんと確認しておきます。

SSLにしたかったので、nginxをフロントに立てて、リバースプロキシです。
ここで詰まったのは、
https://example.com
でJIRAに向ける事が出来ませんでした。502 Bad Gatewayがどうにも解決出来ず。
結局、サンプル通り
https://example.com/jira
にすることにしました。

tomcatの設定は、公式をIntegrating JIRA with Apache using SSL - Atlassian Documentation
公式では、apacheなので、
nginxの場合は、コチラConfigure Nginx 1.2 as proxy for Jira 5とか。
googleにjira nginxとか聞けば、たくさん答えてくれます。

んで、使い始めてるんですが、
好印象がほとんどで、困ったのは解決状況とステータスの扱いです。

・解決状況は、むやみに触らない。未解決(UNRESOLVED)は、特殊なので、要注意。
https://confluence.atlassian.com/display/JIRA/Defining+'Resolution'+Field+Values https://confluence.atlassian.com/display/JIRAKB/Closed+Issues+Showing+as+UNRESOLVED
・ステータスや解決状況は、ワークフローで操作したほうがいい。
 (個別にフィールドの更新を行わない、トランジションをで操作する)

まだ、ソースとの連携が出来てなかったり、使いきれてませんが、
1000円でこれは、お得感がはんぱないです。
近々、CONFLUENCEも購入すると思います。

Sphinxお試し

ドキュメント大事です。
いつも何で書こうか試行錯誤するのですが、
結局、読む側の事を考慮すると、仕事上、Officeになってしまいます。

たまたま技術的なドキュメントを書く事になり、
HTMLで見れればいいと制約がゆるいので、気になっていたSphinxを試してみます。

・インストール
Linux(CentOS)に入れます。
Mac OS X, Linuxへのインストール — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
のままです。

・プロジェクトの作成
sphinx-quickstartの詳細説明 — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会

ガーッとドキュメントを書いてみたんですが、いいですね。
画像がそんなに必要無い場合なんかは、プレーンテキストでバカバカ書けるので、
作業が止まらないというかストレスフリーです。
toctreeによる階層表現も、ちょっと馴染みづらいですが、慣れたら全然苦じゃないです。
何より、パワポで位置とか変に考えなくて済むので、ドキュメントを書く事に集中出来ます。
reSTもイマイチ把握しきれていませんが、必要最低限を覚えるのは、苦にならないですね。

ちなみに、編集→確認の作業ですが、
メインのPCがWindowsなので、
1.SphinxをいれたLinuxのrstファイルをWinSCPで編集。
  (Google日本語入力上で編集したかった)
2.make html
3.SphinxをいれたLinuxにnginxが入ってたので、
  Sphinxのhtmlのビルド結果を、nginxのlocaltionでalias設定してブラウザで確認。

参考)
Sphinxを使用しているサイト — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
reST構文メモ(Hishidama's Sphinx reStructuredText Memo)

keystoreだけで秘密鍵を忘れてた

JavaSSLやる時は、

keyToolで、
keystore作って、
CSR作って、
証明書買って、
keystoreにルート、中間、サーバ証明書をボコボコ突っ込む、
TomcatやJettyなどのアプリケーションサーバにそのkeystoreを配置する。
みたいな流れです。

で、盲点?なのが、
このサーバ証明書を、nginxとかで使いたい場合、
サーバ証明書はいいんですが、秘密鍵がありません。
一瞬、焦りますが大丈夫です。
ちゃんと、keystoreから秘密鍵がエクスポート出来ます。

といっても何かツールがあるとかではなく、
基本コードを書く必要があるのですが、
Google Code Archive - Long-term storage for Google Code Project Hosting.
いい時代ですね。コードあります。
wikiのUsage見れば、素直に分かります。
ソースも短いので、エイリアスを忘れてしまった場合などは、
少し手をいれると分かるようになります。

たまには。

プロジェクトにドップリ入ってしまった為、
更新がピッタリ止まってしまいました。

プロジェクトにドップリ入ってしまうと、
家に帰る途中も帰ってからも、プロジェクトの事ばかり考えてしまって、
なかなか他のチャレンジへのモチベーションが上がらないのがダメですね...

少し落ちついてきたので、
AirHTML5化とか、RedisとかAWSへの再引越しとか、
Play2とか、色々やりたいところです。

なんて言っても、今年は既にびっしりスケジュールが決まっているので、
まずは目の前の仕事をしっかり仕上げる事ですね。
最後までやり切るのは、大事な事だと思います。

さて、今年も残り1月半、コツコツ頑張ります。

FlexのTextFieldのスクロール

TextFieldなどで改行文字を表現している場合、
そのTextField上で、マウスホイールでスクロールすると、
TextField内のテキストも同時にスクロールしてしまいます。

これを抑止するには、

_textField.mouseWheelEnabled = false;

です。

正直、この現象が出た時、TextFieldがスクロールしてるとは思いませんでした。

参考:http://nondelion.com/archives/2008/10/27/0254

Jenkinsインストール

Flexでライブラリやらなんやら作ってたのですが、
一息付いたので、開発環境周りをやっとこうかと。

Jenkinsを、さくらのVPSにインストールしたいと思います。
War単体で実行や、Tomcatなどにデプロイしてもいいのですが、
せっかくRPMを提供してくれているので、
RedHat Repository for Jenkins
を参考にインストール。

$ sudo service jenkins start

で起動しますが、8080で起動するので、80で動くようにします。

Jettyの場合は、iptablesで80→8080リダイレクトしてましたが、
Jenkins以外でも使う想定だったり、他の事してみたかったりするので、
さくらVPSにjenkinsをインストールする - おもしろwebサービス開発日記
この方と同じ感じで、フロントにnginxを入れたいと思います。

nginxインストール

$ sudo yum install nginx

nginx.conf

$ sudo vi /etc/nginx/nginx.conf
http {
    ・・・
    server {
        listen      80;
        server_name example.com;

        location / {
            proxy_pass http://127.0.0.1:8080;
        }
    }
}

nginx起動

$ sudo /etc/init.d/nginx start

これで80番でjenkinsにアクセスする事が出来るようになりました。
あと地味にハマったのが、コチラhttp://blog.lunchub.com/post/12875858162/jenkins
あとコレも誤ってJenkinsにログインできなかったり、404エラーが起きたりの対処法 - anyone anywhere
ちょっと残念な感じです。

bitBucketからクローンしてビルドする。
パスワードをURLに含むわけにはいかないので、SSHで。

$ sudo -u jenkins

だと、なぜかユーザが切り替わらないので、

$ sudo -u jenkins -H ssh-keygen -t rsa

で鍵作成。
で、作成された公開鍵をbitbucketに登録。

$ sudo cat /var/lib/jenkins/.ssh/id_rsa.pub

bitbucketのアカウントのSSH keysから登録します。

一度known_hostsに登録。yesでOK。

$ sudo -u jenkins ssh bitbucket.org

これでJenkinsで、bitbucketのソースをクローンして、ビルドする事が確認出来ました。

と、ここらでURLを、http://example.com/jenkinsにしたくなったので、変更したら404が出る。
調べたところ、nginxで/jenkinsなどにリバースプロキシを設定する場合は、

$ sudo vi /etc/sysconfig/jenkins
JENKINS_ARGS="--prefix=/jenkins"

Jenkins側にもPrefixを指定する必要があるみたいです。
http://d.hatena.ne.jp/FGtatsuro/20120603/1338653541
ありがとうございました。

$ sudo vi /etc/nginx/nginx.conf
http {
    ・・・
    server {
        listen      80;
        server_name example.com;

        location /jenkins {
            proxy_pass http://127.0.0.1:8080;
        }
    }
}

bitbucketにコミットされたら、即ビルド
SCMポーリングだったり、定期実行などありますが、やっぱりフックしたいので、
https://confluence.atlassian.com/display/BITBUCKET/Setting+Up+the+Bitbucket+Jenkins+Service
ここ参考に設定しました。
bitbucketにpushしてみる。
・・・
ビルドしない・・・。
調べてみると、ビルド出来ない例も多そう。
あれこれ調べていると
http://www.tokoro.me/posts/security-for-jenkins/
Git PluginのnotifyCommitを使うやり方がいいよと言って下さってる方が。
試しにendpointに

http://example.com/jenkins/git/notifyCommit?url=url

を入れてみる。ビルドしない・・・。
curlでは、ビルドする。
あまりやりたくなかったけど、POSTで設定してみる。動く・・・。
うーん。とりあえずよしとします。

なんかスムーズには行きませんでしたが、
コミット、プッシュ→自動ビルドまで出来ました。
あとは、プラグインを色々試してみたいと思います。
お疲れ様でした。