log

はてなブログに移行した

最近は WordPress に書いてたけど今まで書いてた記事もひとつにまとめたくなって色々考えた結果はてなブログにまとめることにした。

記事の移行は、はてなダイアリーからはてなブログへの移行がボタン一発でできる感じだったのと、はてなダイアリーMovable Typeからの移行をサポートしてる感じだったので以下な感じにした。

いい加減定住した方がいい気はする。

bundle app を daemon 化した

最近 bundle exec ~ で立ち上げるサーバを VPS 上で複数立ち上げてて、daemon 化が上手くいかないので screen 上で立ち上げるという悲しいことをしていた。

tiarra とか TwitterIrcGateway とかは start-stop-daemon 使ってるので何とかならんかと色々試したらどうにかなったので記録を残しておく。

ちなみに今回 daemon 化してるのは Github の News Feed を IRC クライアントから見れるようにしてくれる 2nd_gig という IRC Gateway

vimperator から Pocket に投稿できるようにした。

ブクマを Delicious から Pocket に乗り換えたので、vimperator から Pocket に投稿できるように設定した。

一からプラグイン作ろうかと API ドキュメント読んだりしてたけどめんどくさそうだったので最終的に commandBookmarklet.js 使った。

後は Pocket のブックマークレット導入すれば勝手にコマンドを生成してくれる。便利。

そのままだと prefix が長いので .vimperatorrc の中で

let command_bookmarklet_prefix="b"

とか書いて :bpocket でブクマできるようにした。便利。

rails アプリを作り始める時の手順

普通に gem install rails して rails new newapp だと gem 環境が汚れるので、bundler を活用して極力少ない手数で開発を始める方法を調べた。

前提条件

  • ruby 1.9.3
  • bundler

がインストール済み。

手順

新規プロジェクトを作るディレクトリを作成。

% mkdir newapp
% cd newapp

bundle init して Gemfile を作成する。

% bundle init
Writing new Gemfile to /path/to/current/dir/newapp/Gemfile

Gemfile を編集して gem "rails" の行のコメントを外す。

% vi Gemfile
# A sample Gemfile
source "https//rubygems.org"

gem "rails" # edit

bundle install して rails をインストールする。path を指定して gem を特定ディレクトリ以下にインストールする。

% bundle install --path vendor/bundle

rails new コマンドでアプリ初期化。ただし、Gemfile を後で修正するのでこの時点では bundle 実行しないようにする。

途中で「Gemfile を上書きしますか?」というメッセージが出るので yes を選択。

% bundle exec rails new . --skip-bundle
...
    conflict  Gemfile
Overwrite /Users/yono/Desktop/newapp/Gemfile? (enter "h" for help) [Ynaqdh] Y
...

Gemfile を編集する。最低限必要なのは therubyracer のコメントを外すこと。

% vi Gemfile
...
group assets do
  gem 'sass-rails',   '~> 3.2.1'
  gem 'coffee-rails', '~> 3.2.1'
  
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platforms => :ruby # edit

  gem 'uglifier', '>= 1.0.3'
end
...

bundle で必要な gem をインストールする。

% bundle install

これでシステムの gem 環境を汚さず rails アプリの開発を始められる。

git でバージョン管理する場合の注意

rails new で入る .gitignore に gem をインストールしたディレクトリ(今回の場合は vendor/bundle)を追記しておくこと。

参考ページ

tiarraMetro の高速化

tiarraMetro を使ってると、どうしても初回読み込みが遅いのでしばらく使っていなかった。

が、IRC クライアントをずっと立ち上げてるとスマフォの電池を食いまくるので、tiarraMetro の高速化を図ることにした。

とりあえず MySQL に slow_query_log を仕込んでみたところ、未読数取得のSQLが重いらしいことがわかる。
INDEX 貼ろうかと思ったが既に貼ってるし、コードに手を入れるのはいやだし。

よくよく考えると log テーブルは追記のみなので、過去の log は定期的に別テーブルに移せばいいんじゃね?ということで以下の作業を実施した。

まずは tiarra を止める。

  # service tiarra stop

既存のテーブルを rename する。
# mysql -u tiarra -p tiarra
mysql > rename table log to log_20120917;

新規テーブルを log と同じ構成で作成する。
mysql> create table log like log_20120917;
mysql> exit;

tiarra を起動する。
# service tiarra start

これで初回読み込み時の待ち時間が10数秒から数秒に高速化された。
できれば待ち時間無しが望ましいけど……。

で、あとはこれを cron に仕込んで定期的に実行すればいいんじゃないだろか。
table 名はその日の日付にしといて。

最近興味があること

主に技術方面で、最近興味があることを列挙してみる。 手を付けたいけど付けられてないのが多すぎる……。

  • Environment
    • vagrant
  • CI
  • TDD
  • WAF
  • etc
    • LESS
    • haml
    • CoffeeScript

やってみたいのが、TDD やら何やら総動員した開発プロセスの最適化。 しかし作りたいプロダクトが無いっつーかネタがないっつーか。 深刻なネタ不足。