主に技術方面で、最近興味があることを列挙してみる。 手を付けたいけど付けられてないのが多すぎる……。
- Environment
- vagrant
- CI
- Jenkins
- Travis CI
- TDD
- RSpec
- factory_girl
- WAF
- Rails
- meteor
- etc
- LESS
- haml
- CoffeeScript
やってみたいのが、TDD やら何やら総動員した開発プロセスの最適化。 しかし作りたいプロダクトが無いっつーかネタがないっつーか。 深刻なネタ不足。
tiarra のログを Web から閲覧できるようになるフロントエンド tiarraMetro を導入した。
tiarraMetro 用のテーブル定義と現状運用していた DB のテーブル定義が少し違ってそのままでは導入できなかったので、そこらへんの作業録を残しておく。
カラムを追加する。
alter table channel add column readed_on DATETIME;
alter table channel add column view tinyint(1) NOT NULL DEFAULT '1';
カラムと index を追加する。
alter table log add column is_notice tinyint(4) DEFAULT NULL;
create index channel_id_and_created_on on log (channel_id, created_on);
新たにテーブル作成する。
CREATE TABLE priv (
id INTEGER NOT NULL AUTO_INCREMENT,
nick_id INTEGER DEFAULT NULL,
msg text,
is_notice tinyint(4) DEFAULT NULL,
is_me tinyint(4) DEFAULT NULL,
created_on datetime DEFAULT NULL,
updated_on datetime DEFAULT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
テーブル定義の変更はこれだけ。今のところは問題なく動いてる。 あとはリンク先にある導入手順通りに進めればおk。のはず。
自分自身の頭の中の整理のために、普段使ってるソフトウェアとWebサービスをまとめてみる。
Firefox の最新版を使っている。
Firefox の何がいいかというと、アドオンによる拡張性。これに尽きる。素の Firefox とか使う気が起きない。vim や Emacs と同じで、自分以外の他人が設定した Firefox も使う気になれない。
プライベートで Mac, 仕事で Linux/Windows 環境を使ってるのでマルチプラットフォームに対応してる Firefox か Chrome くらいしかブラウザの選択肢が無い。Chrome も悪くないけど拡張性が低いと感じるので現状は Firefox 使ってる。
普段使ってるアドオンは以下。
主に AutoPagerize と Tumblr 環境のために入れている。Firefox9 の Tumblr 環境は構築するのに一手間必要で、手順は @rarihoma さんから教えてもらった(http://twilog.org/tweets.cgi?id=rarihoma&word=%40mEGGrim¶m=asc)。
ちなみに入れてる UserScript は以下。
同じく Tumblr 環境のために入れている。
タブを縦表示に切り替えるアドオン。他にもツリー型タブとかいろいろあるけど、これが軽くて使いやすい。他は重かったり Firefox の最新版に対応してなかったりする。
同じく無いと死ぬアドオン。Firefox の操作を vim 風にしてくれる。 入れてるプラグインは以下。
URLをダブルクリックすると、リンクでなくてもそのURLを開いてくれる。地味に便利。
vim を使っている。NeoBundle 入れたおかげでいろんなプラグインを試しては消し試しては消しを手軽にできるようになって便利。
ブログは全然落ち着かずにあちこちふらふらしてる。
最近 WordPress に落ち着いたかと思ったら今度は jekyll が気になってきた。Markdown で書けるのは素晴らしいと思う。
考えてみると、定期的にブログ書きたい病が発病してそのたびにプラットフォームを変えてる気がする。
ブログも上記の備忘録の一部なので、可能であればローカルにもテキスト形式で保存しておいて検索可能にしておきたい。
jekyll だと Markdown 形式のファイルが残るし、WordPress だと org2blog を使っていれば手元にテキストファイルが残る。あとはブログ自体のデザインとか機能のカスタマイズ性だったり、ホスティングにするかサービス借りるかとかそういうアレ。jekyll だと github の Web 使えるから楽といえば楽。
むやみに変えまくってもいいことないのでしばらくは WordPress で行く所存。
ShowOff も Shower も HTML でプレゼンテーション用のスライドを作るためのツール。
ShowOff は markdwon ファイルを動的にHTMLファイルへと変換する簡易Webサーバで、Sinatra を使って作られてる。
Shower は CSS と JavaScript のセットを提供してて、指定された形式で HTML を書くとスライドを作ることができる。HTML5 に対応してるし見た目も綺麗。
ShowOff の方が便利だと思うけど(HTML 直接書くのは辛いし)、Shower の見た目も捨てがたいよねってことで両方を組み合わせたツールを作ってみた。ベースは ShowOff で Shower のガワをかぶせた感じ。
https://github.com/yono/showoff
とりあえず、以下の機能は動いた。
以下の機能はまだ動いてない(試してないものも含め)。
ShowOff と Shower を無理やりつなげるために書いた部分が汚くなってしまって直したい。
ついに Wiki も PDF 出力が!ってことで喜び勇んで試してみたらそのままじゃ動かなかったのでメモ。
環境は以下の通り。
gem のインストールやらほげほげは省略(たぶん後で別途まとめる)。
PDF 出力自体は(rmagick install 済みという条件付きで)可能。
ただし、そのままだと日本語のフォントが汚い。かつ、漢字が出力されない。
解決策としては、config/locales/ja.yml の 169 行目辺りを変更する。
general_pdf_encoding: SJIS # コメントアウトされてるのでコメントを外す
# general_pdf_encoding: CP932 # 元々はこっちが使われているが、コメントアウトする
つまり、general_pdf_encoding の値を CP932 から SJIS へ変更する。
これで日本語フォントが修正されて漢字もちゃんと出力されるようになる。
死ぬほど眠いから今日はここまで。
話にはよく聞くけど実際 Jenkins 使ったことないなーってことで、ちょうど手元で試してた rails3 のプロジェクトを対象に構築してみることにした。
以前は rcov 使ったと思うんだけど、rcov は 1.9.* には対応してないらしい。 最近の流行りは simplecov らしいってことで simplecov を入れる。
参考: Ruby 1.9.2 + Rails3でテストカバレッジを取るにはSimpleCovが良さそう | FIRN.JP
ちなみに rspec までは導入済みという前提。
必要なのは simplecov と simplecov-rcov。前者がカバレッジ計測で後者は出力フォーマットを rcov 互換にする。
まずは Gemfile に simplecov と simplecov-rcov を追加。
group :test do
gem 'simplecov', :require => false
gem 'simplecov-rcov', :require => false
end
追加したら bundle install を実行。
$ bundle install
spec/spec_helper.rb に以下の記述を追加。 require 'rspec/rails' よりも前じゃないと正常に動作しないっぽい。
require 'simplecov'
require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'
準備ができたら rake spec を実行する。結果は coverage/rcov 以下に出力される。
$ rake spec
simplecov の設定はひとまず完了。
手順は 以前エントリにまとめた のでそれをそのまま使う。
これを済ませておかないと clone でこける。
参考: Ubuntu ServerにJenkinsをセットアップしてGitレポジトリと連動するまでのまとめ - jiska
sudo -u jenkins -H git config --global user.email "jenkins@jenkins-server"
sudo -u jenkins -H git config --global user.name "jenkins"
今回の用途だと以下の三つを入れておくといいらしい。
インストールは http://jenkins-server:8080/pluginManager から GUI で実行可能。便利。