Archives

slack上からtrelloを管理・参照するhubot scriptを書いた

タスク管理ツールにまつわるこんな経験はお持ちでないだろうか。

  • 導入を推奨した人とごく一部の人にしか使われずに下火になっていく
  • 最初の2、3ヶ月だけ使われ、次第に下火になっていく
  • チケットを作るほどでも無いタスクが次第に増えていきタスクが作られなくなっていく

など。こうなってしまうにはさまざまな要因があるが、ひとことで言うと「ハードルが高い」ことにある。ダッシュボードを開くハードル、チケットを作るハードル、など。僕はredmine、kanban2go、trello、excel、カンバンボード(アナログ)を試した結果、

  • Easy access: ダッシュボードに0クリックアクセス出来なければならない
  • Easy share: 情報はクラウド上に保存され、どこからでもアクセス・改変出来なければならない
  • Easy comment: 適当なアイデアでも放り込むことが出来なければならない

という、3つの場面でのeasinessが大事であると気付いた。3つめはチームの文化も影響してくると思うが、0クリックアクセスはアナログのカンバンボードで無ければならないし、クラウドへの保存はwebアプリでないと難しい。クラウドに情報を保持して自動的に同期してくれるアナログのカンバンボードを何度夢想したことか。

しかしよくよく考えてみると、いつもデスクトップに開いているアプリがあることに気付いた。

slack。

チャットアプリはもはや常駐しているので、0クリックアクセスと言ってもよい。つまりslack上でタスク管理webサービスの閲覧・編集ができればいい。

という訳で、trelloのクライアントを作ってみた。

無題クリップ_110215_082912_PM_110215_084420_PM

https://github.com/Drunkar/hubot-trello-client

こまごまとしたコマンドはあるが、基本的にはリスト/カードの作成/削除が出来る。またtrelloはカードにコメントを付けられるのが非常に便利なので、カードIDを頭につけて発言すると勝手に該当のカードにユーザー名とコメントが付与されるようにした。これが意外と便利。

よく使うのは、

@<bot名> show

とやれば登録したボードのリストとカードをtree方式で表示してくれるので、カードIDをコピーして、

c:<カードID> ほげほげ

みたいな感じで発言してカードにコメントを残すという使い方。

27843768bc3e9da5cd62f8de613a74bd_110215_085050_PM

無題クリップ_110215_083249_PM_110215_084920_PM

カードにコメントするのはチケットを作るのに比べてかなりハードルが低いし、後から見返しても空気感が伝わりやすいので良い。

まあこれも使わなくなるかもしれないけどその時はまた次の手を考えよう。

ec2上のRedmineでプロジェクトを管理しよう!人生という名のp(ry

前回はBitNamiのインストーラを使いましたが、今回は普通にインストールします。

※2013-10-23追記:このやり方だとredmineのdevバージョンがインストールされるみたいなので、svn利用に変更しました。あと2.3.3でも大丈夫っぽいのでそっち使ってます。

インストールしたいのは、

  • Ruby
  • Redmineと必要なbundle
  • redmine_backlogs: v1.0.5    ←    ruby: 1.9.3, Redmine: 2.2.4 or 2.3.2が必要
  • nginx
  • MySQL

です。バージョンの指定がハマりどころですが、言われたら直すの繰り返しでもなんとかなります。

ec2を立ち上げてsshで接続するまではドットインストールのAmazon Web Services入門の#5までを参考に。

まずはいろいろ必要なものと、nginx、MySQLをインストールします。ec2でルートになるには”sudo su”でオッケーです。

$ sudo su
// 注: #はコメントアウトされてしまうので代わりに?を用いてます。
? yum -y groupinstall "Development Tools"
? yum -y install openssl-devel readline-devel zlib-devel curl-devel
? yum -y install mysql-server mysql-devel
? /etc/init.d/mysqld start
? yum install -y nginx
? service nginx start

Ruby 1.9.3のインストールはここを参考にしました。

? yum -y install libxml2-devel
? yum -y install libxslt-devel
? cd /tmp
? wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
? tar zxvf yaml-0.1.4.tar.gz
? cd yaml-0.1.4
? ./configure
? make
? make install

? cd ../
? wget ftp://core.ring.gr.jp/pub/lang/ruby/1.9/ruby-1.9.3-p392.tar.gz
tar xzf  ruby-1.9.3-p392.tar.gz
? ./configure --with-opt-dir=/usr/local --enable-shared --enable-option-checking
? make
? make install

/usr/local/bin/にインストールされてしまったので/usr/bin/にシンボリックリンクを張ります

? mv /usr/bin/ruby /usr/bin/ruby18
? ln -s /usr/local/bin/ruby /usr/bin/ruby
? ruby -v
    ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

rubygemsとbundleのインストール

? wget http://rubyforge.org/frs/download.php/76729/rubygems-1.8.25.tgz
? tar xzvf rubygems-1.8.25.tgz
? cd rubygems-1.8.25
? ruby setup.rb
? gem -v
    1.8.25
? yum -y install ruby-irb
? gem install rdoc
? gem install bundler

やっとredmineのインストールです。場所はBitNamiを真似て/opt/に置きます。

? cd /opt/
? svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3
? mv /opt/redmine-2.3 /opt/redmine
? bundle install --path vendor/bundle --without development test rmagick postgresql sqlite

以降のMySQLとかnginxとかの設定は下のページのまま行えばよいかと思います。

さくらVPSで nginx + MySQL + Unicorn + Redmine の運用 | コードを舐める日々

そんで、僕の場合は既にRedmineを使っていたデータがあるので、公式情報を参考にしてそれのリカバリをします。filesディレクトリを置き換えて、DBにバックアップしてたdumpをブッ込めば完成です。

backlogsのインストールはredmineのインストール後、公式の通りにやればできます。

Redmine Backlogs :: Installation

あと、Redmineはそのままだと限りなくダサいので、テーマをインストールすると良いと思います。だいたい見た感じではredminecrmのテーマがかなりいいデザインです。crm用のプラグインも提供されてますが、必要ないのでテーマだけもらいます。

http://redminecrm.com/pages/redminecrm-theme

ダウンロードしたzipを/opt/redmine/public/themesに展開して、管理> 設定> 表示> テーマで変更できます。

backlogsの使い方やその心は@ITの連載がいい感じです。

かんばん!~もし女子高生がRedmineで「スクラム」開発をしたら

これからredmine上でいろんなサービスとの連携とかできたら楽しそうだな―と思います。

amazon ec2でRedmine(BitNami編)

あープロジェクト管理してーわー
そんなお前 見込みアリ

というわけでRedmineを使いたいです。でも余分なパソコンはありません。

でも実は誰でも1台だけ無料で使えます。そう、amazon ec2のマイクロインスタンスならね。

しかしRedmineのインストールはRubyのバージョン指定とかなんやらでやたらと面倒臭いです。以前試行錯誤の果てにec2上でnginx+unicornで動かしていたのですが、もうちょっと設定の過程をすっきりさせたくて再インストールしようかなというところでさっそうと現れたのがBitNamiです。

http://bitnami.com/

なんでもワンクリックでRedmineやwordpressやjenkins等々をec2上に構築してくれるというではないですか。

このページの”Cloud Server”のとこをクリックするだけの簡単な構築作業です。

とはいえこれだけだと余りにも過程が不透明なので、インストーラーを使ってインストールしてみます。

まずec2のマイクロインスタンスを立ち上げてsshで接続するところまではドットインストールのAmazon Web Services入門の#5までを参考に。

マイクロインスタンスのメモリは613MBしかなく、RedmineのBitNamiインストーラを使うには2GBぐらい要るよと言われるので、まずはスワップ領域を確保します。

$ sudo dd if=/dev/zero of=~/swap.0 bs=1024 count=1048576
    1048576+0 records in
    1048576+0 records out
    1073741824 bytes (1.1 GB) copied, 28.9288 s, 37.1 MB/s
$ sudo mkswap ~/swap.0
    スワップ空間バージョン1を設定します、サイズ = 1048572 KiB
    ラベルはありません, UUID=c54b30ec-1727-423e-8f55-ce585a2cffe9
$ sudo swapon ~/swap.0

スワップ領域を1GB確保しました。インストールにはこれで充分でした。確保できていることを確認します。

$ sudo swapon -s
    Filename				Type		Size	Used	Priority
    /home/ec2-user/swap.0                   file		1048572	0	-1

そしたらインストーラをとってきて実行するだけです。超簡単。

$ wget http://bitnami.com/redirect/to/24967/bitnami-redmine-2.3.3-1-linux-x64-installer.run
$ chmod 755 bitnami-redmine-2.3.3-1-linux-x64-installer.run
$ sudo ./bitnami-redmine-2.3.3-1-linux-x64-installer.run

設定に関していろいろ聞かれますが、”English”と”Y”で答えとけば問題ないでしょう。Redmineの通知用のメールアドレスを登録したい場合はインストール中にできます。

これでインストールは終了です。簡単すぎて涙が出ます。

redmineのルートは/opt/redmine-2.3.3-1/になります。MySQLとか必要なものは全部この下にインストールされます。なのでデータベースにアクセスするには、

$ sudo mysql -uroot -p -S /opt/redmine-2.3.3-1/mysql/tmp/mysql.sock mysql

みたいな感じになります。面倒ですね。

普通に使う分にはこれで問題ないのですが、こういうローカルなインストールはなんか気持ち悪くて、バージョンの変更とかいうときに非常に面倒じゃないかと思って、結局またnginx+unicornを使うことにしました。それに関しては次の記事で。