ポモドーロテクニック入門を読んだ。


電脳書房さんより、アジャイルな時間管理術 ポモドーロテクニック入門
を買ってみました。

一応全部読み終わったので、思ったことを書いていきます。

ポモドーロとは、イタリア語でトマトのことであり、ポモドーロテクニックとは、トマト型のキッチンタイマーを使って時間を区切って物事に取り組むことです。
別にトマト型のキッチンタイマーじゃなくてもできますが、筆者は機械的なトマト型のキッチンタイマーのほうが集中できるというふうに書いてました。時間を区切ることができればなんでもいいと思います。ケータイのタイマーでも全然いいでしょう。

やることは非常にシンプルで、

  • やるべきことのリストを1枚の紙に書き出す。
  • そこから優先順位を考えて、いくつかを今日やることリストに移す。
  • タイマーを25分にセットして、リストの項目を1つずつ取り組む。
  • タイマーが鳴ったら、5分くらい休憩する。
  • 対象のToDoが終わったら、線を入れて終わったことがわかるようにする。
  • それを繰り返す。
  • 一日の終わりに、振り返りを行う。

振り返り云々はさておき、25分に区切って集中するというのはとてもいい方法だと思いました。人間の集中力は長くても30分程度しか持たないと思うし、頻繁に休憩を取り入れるほうが能率が上がるというのはなにかの本で読んだことがあります(カーネギーの本だったかな…)。

また、25分取り組むというのは何かを始めるいいきっかけになると思います。一度取り組み始めたら終わらせなければならない。そういうプレッシャーでなかなか始めることができない(完璧主義で)。そんなものはどっかに置いといて、とりあえず25分取り組んでみて、そこからフィードバックを得る。そのほうがずっと建設的だなと思います。

いいなと思った点としては、他にもあって、非常にアナログなのです。
準備するものは、

  • 鉛筆
  • キッチンタイマー

だけです。特に上位2つはデジタル化できるんじゃないの?と思うかもしれません(私も読んでて思いました)が、本を読んでいる間に、こういうのはアナログなほうがすぐに始められるし、ルールに縛り付けられなくて済むんじゃないかなと思うようになりました。特に、割り込みが発生したときに、すぐに対応できるのはやっぱり紙だなと思いますし。もちろんデジタルではできないという意味ではないです。デジタル向きか、アナログ向きかと言われたら、アナログ向きだという意味です。

本には、序盤にポモドーロテクニックの紹介、取り組み方、ルールの替え方、振り返りの仕方、休憩の仕方、割り込みへの対応の仕方(内なる割り込み・外的割り込み)、チームでやるには?ということについて書かれています。アジャイルな時間管理術という副題が付いていますが、1人アジャイルに向いている考え方だなと思います。イテレーションを回すのに、期間は基本2週間で、それぞれのToDoのベロシティを計測するという感じだと思うのですが(ペロシティとは、項目に対してかかるコストの単位)、ポモドーロテクニックだともっと短くて、期間は1日で、それぞれのToDoのポモドーロを計測します(ポモドーロは、基本25分の固まり)。

人の見積もりの精度は、経験則に依存しています。また、ToDoのコストが短ければ短いほど、見積もりは正確になります。その精度を上げる意味でも、自分が見積もった項目が何ポモドーロかかったのか?を計測し、その見積もりに対しての振り返りを行います。自分のできる能力の把握し、今後の予定の立て方に活かすことができるようになります。

意外だったのが、休憩の仕方のところで、休憩のときにメールの返信やニュースサイトのチェックを行うのがよいと思っていたのですが(気分が切り替わってていいのかなと…)、それだとストレスがあって本当の休憩にならないから、そういうのはToDoに入れてしまえというところでした。

自分が一日に何ポモドーロ取り組むことができて、どれくらいのことをこなすことができるのか。それを把握するのが大事だなと思います。
あとはやはりToDoリストをどんどん倒していけるという楽しさがあるかなと思います。特に何をしていたのかよくわからないまま、一日が終わってしまったということがないよう、振り返りを行いつつ、ポモドーロテクニックを習慣化していきたいところです。


Gehirn RS2にRailsをデプロイしてみた。

※これはやり方というよりもやってみたという日記です。

ゲヒルン株式会社というのをご存知でしょうか?僕は先日知ったのですが、ここが提供しているGehirn Web Serviceがとても魅力的に感じたので、ちょっと試してみようと思って作成中のRailsのプロジェクトをデプロイしてみました。

ちなみにゲヒルンはエヴァンゲリオンのネルフの前組織の名前です。
最近テレビ版エヴァンゲリオンを見終えた自分としては、なるほど!と思って興味を持ったというのがあります。

Gehirn Web Serviceは、レンタルサーバのRS2、DNS、データストアのKVSがあります。今回使ってみたのは、RS2のみです。よかったら、DNSも使ってみたいと思ってます。

RS2は共用サーバですが、メモリを64GB持っているし、データのバックアップも自動で行われるし、Ruby、Python、Node.js、PHPなど、様々な言語環境を動かすことができます。WordPressやEC-Cubeのインストールはクリック1つ。データベースはMySQLですが、何個でも作られるという親切さ。セキュリティも堅牢。それでいて月々315円から。上位プランの945円のもあります。詳しくはRS2のサイトを見てください。

Gehirnのサービスを使うにはユーザ登録が必要です。そこで、GehirnIDを取得します。
その後、RS2の契約を行います。フル機能で2週間のお試しができます。今は私もお試し中です。

やったことをとりあえず列挙していきます。

Gehirn Web Serviceにログインして、RS2のところでSSHの公開鍵を登録します。

Gehirn Web Services

Gehirn Web Services2

GehirnのSSHは基本的に公開鍵認証なので、この作業は必須でしょう。

次に、データベースを作っておきます。
データベースは、データベース名がデータベースユーザ名にもなります。

次に、nginxとpassengerを使えるようにします。
方法はqiitaに書いてありました。
Gehirn RS2でnginx+Passengerを動かしてみる

ここを参考に以下のようにしました。
SSHでRS2にログインしてください。

rs2 install rails # Railsのインストール
# インストール後
rs2 use rails # Railsを使えるようにする
gem install passenger
passenger-install-nginx-module
# 一つ目の選択肢は1を、nginxのインストールパスは/home/[ユーザ名]/nginxを指定する

次に、nginxの設定を行って、nginxがちゃんと動くことを確認します。
/home/[ユーザ名]/nginx/conf/nginx.conf を編集します。
しかし、その前に、まずは自分が使えるポートを調べましょう。
ドメインから、ドメインの設定を選択します。
Gehirn Web Services3

プロキシ先ポート番号から、適当な番号を選びます。
おそらく、これが自分が使えるポート番号です。
ここで選んだポートに、リバースプロキシで80番ポートからアクセスできるようになります。
今回は61493ポートを選びました。そして保存します。

Gehirn Web Services4

そして、 /home/[ユーザ名]/nginx/conf/nginx.conf を編集します。
ポートは先ほど指定した61493を指定しています。

http {
    passenger_root /home/[ユーザ名]/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18;
    passenger_ruby /home/[ユーザ名]/.rvm/wrappers/ruby-1.9.3-p327/ruby;
    # 略
    server {
        listen       61493; # 80番ポートから変更
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/[ユーザ名]/nginx/html; # htmlから変更
            index  index.html index.htm;
        }
    # 略

その後、nginxを起動します。

cd /home/[ユーザ名]/nginx/sbin
./nginx

ちなみに、nginxの停止は、nginx -s stop、再起動はnginx -s reloadです。

そして、http://[ユーザ名].gehirn.ne.jpにアクセスします。
nginxの画面が表示されたら、成功です。

さて、ここまでできたら、あとはrailsプロジェクトを展開します。
自分の場合は、bitbucketでソースを管理しているので、そこからgit cloneします。
RS2からbitbucketにアクセスする必要があるので、RS2にSSHの鍵を作成します。

ssh-keygen

bitbucketの公開鍵登録に、先ほど作った/home/[ユーザ名]/.ssh/id_rsa.pubを登録します。

そして、git cloneします。clone先は、/home/[ユーザ名]/public_html/[プロジェクト名]

cd /home/[ユーザ名]/public_html
git clone git@bitbucket.org:[bitbucketのユーザ名]/[リポジトリ名].git

config/database.ymlを編集します。productionのところです。
データベース名とユーザ名は一緒です。データベースのパスワードは作ったときのものを…。

bundle installします。
余計なもの(capybara-webkitとか)が入るとエラーになるので、
productionに必要なものだけを入れましょう。その後、rake db:migrateです。

bundle install --without development test
RAILS_ENV=production rake db:migrate

成功しない場合は、database.ymlとかが怪しい?

最後に、railsプロジェクトをnginx + passengerで動かすためにnginx.confを書き直します。

# 略
    server {
        listen       61493; # 80番ポートから変更
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/[ユーザ名]/public_html/[プロジェクト名]/public;
            index  index.html index.htm;
            passenger_enabled on;
        }
# 略

そして、nginxを再起動します。
それから、アプリのURLにアクセスしてみましょう!

できたら、成功です。完了です。

たぶん、これであっているはず…。
間違っている場所などがあったらご指摘ください。

あとは色々と自動化していったりしないとなー、デプロイとか。


MAMPのMySQLにRailsを繋ぐ(訂正版)

MAMPのMySQLにRailsを繋ぐで書いた方法だと、シンボリックリンクが消失してしまい、毎回作成しなければならないようだったので、ダメでした。
mysql.sockの場所を指定できればなぁ…と思ったらできるようでした。単純に調べが足りなかった…orz
socket: /Applications/MAMP/tmp/mysql/mysql.sock を追加します。

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: hoge
  pool: 5
  username: ****
  password: ****
  host: localhost
  port: 8889
  socket: /Applications/MAMP/tmp/mysql/mysql.sock

買い物に行ってきたなど

昨日は合同勉強会に参加、今日は選挙に行ってきた。
その後、買い物に出かけた。

以前から彼女と一緒に指輪でも見に行ってみようぜ!という話をしていたので、市街地に出かけてみた。

彼女から4℃に行ってみようと言われたので、二人でイソイソと店の前まで行ったが…入れなかった…。

自分たちにはあまりにも高い敷居。

対応にしどろもどろしてしまうのではないか?
入ったら最後、絶対に買わなければならない空気になるのではないか?
お店側からのプレッシャーに俺たちは耐えられるのか?
いいや、耐えられるわけがない!

二人で話し合った結果、「今日はやめておこう」ということになった。

先延ばし…。日本人的発想…!!
そこがダメ…!圧倒的欠如…!!!
ダメだ…!このままでは…!?

こういうときは百貨店に行ってみるに限る。
高島屋に行ってみた。

こういうところならばディスプレイを眺めることができるので、色々見られる。
うろうろとしていたら、店員さんに話しかけられ、あれよあれよという間にリングの試着とかしてきた。
店員さんと色々と話している間に「面白い彼女さんですね!」と言われた。
どういうことなの…。

とりあえず指のサイズがわかったのと、つけてみたいやつを取り寄せてもらうことになった。

彼女のブログも更新されることであろう。