メモの最近のブログ記事

akamai勉強会に参加してきました

Akamaiさんとインターネットの裏側を覗く勉強会 : ATND

かなりの人気で、僕が登録した時にはもう枠が埋まっていたのですが、枠が増えたりキャンセルが出たりで、気づけば参加できるようになってました。

akamaiのようなCDNは、ある程度規模の大きいサービスでないと使う事はないので、どういうものかは以前から興味がありました。
いろいろインターネットの裏側が見えてとてもよかったです。
動画と資料は近いうちに公開するので、詳細はそちらで。
たぶんたくさんの人がレポート書いてくれるし。(他力本願)

日本のようにインタネット網が東京に集中してると、CDNによるコンテンツデリバリーの効率化の効果はあまりないので、どちらかというと負荷軽減や、帯域節約の意味が大きいと思うんですが、実際のところはどうなんでしょうね。

Rails自体をプロジェクト内に取り込む

Railsはシステムワイドにインストールして使うのが一般的だと思いますが、インストールされてるRailsのバージョンを気にしたり、ある日突然バージョンアップによって動かなくなったりするのを気にしたりしたくないので、プロジェクト内にインストールして使うようにしてみました。
こうしておくと、rubyがインストールされたシステムであれば、チェックアウトするだけですぐに動かす事ができるようになります。

rubygems をインストールする

"$TOPDIR/vendor/gems" にインストールします。
ドキュメントは必要ないのでインストールしません。

ruby setup.rb --prefix=$TOPDIR/vendor/gems --no-rdoc --no-ri

インストールした gem コマンドは直接は実行しないのですが、いちおう shebang を /usr/bin/env 経由で実行するように書き換えます。

vim $TOPDIR/vendor/gems/bin/gem
#!/usr/bin/env ruby

gem コマンドのラッパーを $TOPDIR/bin/gem に作ります。
環境変数 "$GEM_HOME" で rubygems がインストールされたディレクトリを指定します。
ruby の "-I" オプションで rubygems のライブラリのディレクトリを指定します。
今後はこれを実行する。

mkdir $TOPDIR/bin
vim $TOPDIR/bin/gem
#!/bin/sh
BIN_DIR=$(cd $(dirname $0); pwd)
TOP_DIR=$(dirname $BIN_DIR)
VENDOR_DIR=$TOP_DIR/vendor
GEM_DIR=$VENDOR_DIR/gems

GEM_HOME=$GEM_DIR /usr/bin/env ruby -I $GEM_DIR/lib \
$GEM_DIR/bin/$(basename $0) $*

ついでに ruby コマンドのラッパーも作る。

vim $TOPDIR/bin/ruby
#!/bin/sh
BIN_DIR=$(cd $(dirname $0); pwd)
TOP_DIR=$(dirname $BIN_DIR)
VENDOR_DIR=$TOP_DIR/vendor
GEM_DIR=$VENDOR_DIR/gems

GEM_HOME=$GEM_DIR /usr/bin/env ruby -I $GEM_DIR/lib $*

Railsをインストール

$TOPDIR/bin/gem を使って Rails をインストールします。
ドキュメントは必要ないのでインストールしません。
ドキュメントは大量にできるので、コミットすると大変な事になります。
最初ドキュメント込みで svk 使ってたら死にました。orz

$TOPDIR/bin/gem install --env-shebang --no-rdoc --no-ri rails

rails, rake コマンドのラッパーを作る。
$TOPDIR/bin/gem を汎用的に作っているので、シンボリックリンクをはるだけでおk。

ln -s gem $TOPDIR/bin/rails
ln -s gem $TOPDIR/bin/rake

プロジェクト開始

$TOPDIR/bin/rails コマンドでプロジェクトを開始する。

$TOPDIR/bin/rails $TOPDIR

動作確認

$TOPDIR/bin/ruby $TOPDIR/script/server

動いた!!\(^o^)/

今回はWebrick経由なので問題なく動いたけど、fcgi経由とかだと dispatch.* 辺りを調整しないとダメなはず。
その辺はまたやる。

Mii Editor

Miiエディタを使うとMiiのデータが編集ができるみたい

Miiのデータの転送にはMii Transferが使える
Mii Transfer

後で試してみよう

rails というか ERB で print debug

<%= object.inspect %>

なんか間違ってる気がするけど、これが限界

標準出力は捨てられる?
一生懸命標準出力に結果を出してて表示されないのでハマった

プロジェクトが多くなってくるといちいちアップデートするのが面倒くさくなってきたので、一行スクリプトを作ってみた。

d='^$';for i in `find $HOME -path '*/\.svn'|sed 's/\/\.svn$//'|sort`;do;echo $i|grep -q $d;if [ $? != 0 ];then;d=$i;echo $i;fi;done|xargs svn update

さすがに cron に登録するのは気が引けるので、毎日実行することにする。

svk だと svk pull -a でいけるんだよなー

昨日の自分のコミットログを一気に表示する

svn log -r \{`date --date yesterday '+%Y%m%d'`\}:HEAD -q|grep $USERNAME|sed 's/^r\([0-9]*\).*$/\1/'|xargs -n 1 svn log -v -r

subversion は内部的に GMT で保存しているみたいなんだけど、時間の指定が日付までしかできない。
subversion のバージョンが古いからかも

svn, バージョン 1.1.4 (r13838)

ウェブページ

Powered by Movable Type 4.21-ja

このアーカイブについて

このページには、過去に書かれたブログ記事のうちメモカテゴリに属しているものが含まれています。

前のカテゴリはホリエモンです。

次のカテゴリはCSSです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。