super

オーバーライドしたとき、親クラスのメソッドを呼ぶには super

falseとnil

rubyの「真」は、falseとnil以外 (数値の 0 は true)

フレームとブロック

フレームはオブジェクト(self((メタクラス、クラス/モジュール、インスタンス 'すべてがオブジェクト'))と定義のある場所((self.classとは限らない))cbase)をもつ ブロックは関数本体(body)とローカル変数(scope)と定義の属す場所*1(klass)をもつ フレームが…

デバッグの基本

log/環境名.log ActiveRecord, ActionController では、logger属性、ビューでは、@logger ActionView::Helpers::DebugHelper#debug Kernel#p のHTML版のようなもの script/console モデルのデバッグ script/breakpointer BreakPoint#breakpoint

環境名

railsにデフォルトで用意されている実行環境名 development test production 環境名が使われる場所 script/server -e 環境名 環境変数 RAILS_ENV config/environments/環境名.rb config/database.yml の各セクションの先頭は、「環境名: 」 log/環境名.log

setterとローカル変数代入

self.foo = 'hoge' # setterメソッドが呼ばれる foo = 'hoge' # ローカル変数fooへの代入と解釈される

mysqldump

すべてのデータベース mysqldump --opt --all-databases > dump.sql mysql < dump.sqlデータベース mysqldump --opt --databases データベース名 データベース名 ... > dump.sql mysql < dump.sqlテーブルとデータ mysqldump --opt データベース名 > dump.sq…

ERb

埋め込まれたコードの直後の改行を抑制するには - をつける。 <% for item in @items -%> foo bar <br/> <% end -%></br/>

load, require, include, extend

Kernel#load 指定したファイルを無条件にロードする。 Kernel#require 1度読んだファイルは2度読みされない。拡張子は、.soまたは.rbのみで、また拡張子は自動補完される。 Module#include クラスにモジュールをMix-in Object#extend オブジェクトの特異クラ…

すべてがオブジェクト

メタクラス モジュール/クラス インスタンス Module, Class module ,class で作り(定義)、定数へ代入(クラス名は定数) Class#new で作り(インスタンス化)、変数へ代入 モジュール クラス インスタンス化 × ○ Mix-in ○ × モジュール (Moduleのインスタンス) …

引数

メソッド呼び出しのとき、最後のパラメータとしてハッシュを指定するときは、中括弧を省略できる メソッド定義のとき、'*'は多重代入のルールに従う 左辺の最後の'*'は、対応する左辺右辺の要素を配列として代入する。対応する要素がなければ、空の配列を代…

LANGUAGE と /etc/environemnt

日本語インストーラでインストールした場合、 LANGUAGE 環境変数が設定されてしまう。 設定している場所は、 /etc/environment

環境変数を未定義にするには

sh

unset

WEBrickが異常に遅い

名前解決のせいで遅くなってるっぽい。 do_not_reverse_lookup で回避。 require 'webrick' Socket.do_not_reverse_lookup = true srv = WEBrick::HTTPServer.new({:DocumentRoot => '/home/foo/public/', :BindAddress => '0.0.0.0', :Port => 3000}) trap(…

GNU getopt

オプションには long形式と short形式(1文字)がある オプション引数 short形式の場合、-xオプション引数 long形式の場合、--xxx=オプション引数 複数のshort形式オプションは、まとめても可 -abc は、-a -b -c と同じ オプションの終了を表すには -- wget -o…

Rails で日本語

config/environment.rb で $KCODE = "UTF8" config/database.yml で encoding: utf8 MySQL の /etc/mysql/my.cnf で、[client]と[mysqld]を default-character-set = utf8 文字コードとは関係ないが、debianだと /var/run/mysqld/mysqld.sock なので、 confi…

ログ

リングバッファ dmesg /var/log/dmesg syslogd /etc/init.d/sysklogd で起動 /etc/syslog.conf で設定 ほとんどのログは /var/log/ に置かれる 中でも重要なのは /var/log/syslog

ディスク管理

パーティションを切るには cfdisk ファイルシステムをフォーマットするには mkfs.ext3 ext3 lost+found 書き込み中のデータの断片 新規作成された直後のext3には、lost+foundディレクトリだけがある状態 /etc/fstab mountコマンドは、デバイスファイルまたは…

zsh

sh

パラメータ展開フラグ ${(展開フラグ)変数名} プロンプト展開(PROMPT EXPANSION) PROMPT変数で適用される特別な展開のこと? print -P でも適用することができる

screen

http://d.hatena.ne.jp/xaxe/20061002オプション -r デタッチしたセッションに再接続 -ls セッション一覧 キーバインド (prefix) d デタッチ (prefix) : コマンド入力 (prefix) [ コピーモード 移動はviライク スペースキーでマーク 履歴バッファがあり、ス…

fg

sh

zshのfgは fg %番号

etch

dist-upgrade で地道に etch へ移行した。 /etc/apt/apt.conf で、APT::Default-Release "testing"; openssh-server の debconf で、disable challenge-response は no

vim-rubyのインストール

gem

% sudo -s # gem install vim-ruby # exit % vim-ruby-install.rbvim-ruby-install.rbを実行すると、インストール先を聞かれるので、/home/ユーザ/.vimを選択する。.vimrcに2タブの設定をする。 au FileType ruby set ts=2 sw=2 expandtab au FileType eruby…

RubyGemsのインストール

gem

.zshrc export RUBYLIB=/opt/lib/ruby/site_ruby/1.8/ export GEM_HOME=/opt/rubygems/ export PATH=/opt/bin:/opt/rubygems/bin:$PATH% tar xzvf rubygems-バージョン.tgz % cd rubygems-バージョン % sudo -s # mkdir /opt/rubygems # ruby setup.rb confi…

su, sudo

substitute user su 代行ユーザになる sudo 代行ユーザで実行する sudo /etc/sudoersはvisudoで編集しなければならない。 sudoのPATHは、元のユーザのものでも、代行ユーザのものでもない。 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/…

MySQLインストール

# apt-get install mysql-server-4.1eximと依存関係があるので、インストールされていない場合には、 インストールされる。 eximのdebconfはlocal delivery onlyを選択する。 % mysqladmin -u root version % mysqladmin -u root variables # /etc/init.d/my…

rcスクリプト

/sbin/init /etc/inittab読み込み /etc/init.d/rcS /etc/rcS.d/S* /etc/init.d以下のスクリプトへのシンボリックリンクになっている /etc/rcランレベル.d/K* /etc/rcランレベル.d/S* rcスクリプトの引数 start stop restart reload (設定ファイルの再読み込…

FHS

bin コマンド sbin システム関係のコマンド lib ライブラリ src ソースファイル include ヘッダファイル share アーキテクチャに依存しないもの /boot Linuxカーネルイメージ /proc 擬似ファイル /dev デバイスファイル /mnt ディスクを一時的にマウントする…

cpコマンド

ディレクトリのコピー Windowsのxcopyコマンド > xcopy /s /e src destsrcディレクトリの直下をdestディレクトリの下にコピーする。 cpコマンドの場合 % cp -r src destsrcディレクトリをdestディレクトリの下にコピーする (dest/src が作られる)。 また、de…

coLinuxとDebianのインストール

coLinuxインストーラ(coLinux-0.6.4.exe) ネットワークアダプタは、TAP-Win32を使う(WinPcapは使わない) ルートイメージのディストリビューションは Debian を使う ルートイメージのサイズ変更とスワップの設定 Debian-3.0r2.ext3-mit-backports.1gb.bz2 を…