技術

リソース情報を収集するためLinux標準ツール

故障発生時にCPU使用率やプロセス情報などのリソース情報を収集するツールをまとめてみました。 top $ top sar $ sar $ sar -u <取得間隔(秒)> <取得回数> # CPU使用率 $ sar -q <取得間隔(秒)> <取得回数> # プロセスの待ちキュー数 $ sar -r <取得間隔…

メッセージを委譲する

あるオブジェクトがメッセージを受け取った(メソッドが呼び出された)とき、実際の処理を他のオブジェクトに委ねることを“委譲(delegate)”と呼びます。RailsではModuleクラスのdelegateメソッド*1によって、委譲を簡単に実現することができます。 class B…

S3Syncを使ってAmazon S3からローカルディレクトリにファイルをダウンロードする

「S3Syncを使ってローカルディレクトリからAmazon S3にファイルをアップロードする」の続きです。S3Syncのインストールとssl.certs.sharをダウンロードして実行するところまでは、そちらの記事を参考にしてください。アップロードにならって、自動実行するた…

バージョンを確認する

いろいろなバージョンを確認するコマンドをまとめておきます。CentOS $ cat /etc/redhat-release CentOS release 5.5 (Final)Fedora 8 $ cat /etc/fedora-release Fedora release 8 (Werewolf) /etc/system-releaseでもOKです。 $ cat /etc/system-release F…

MySQLドライバのインストール

CentOSにMySQLドライバをインストールしようとしたところ、思いがけずつまずいたので、後学のためにメモしておきます。 環境 CentOS 5.5 Apache 2.2.3 MySQL 5.0.77 Ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] Rails 2.3.8 デプロイしようとし…

S3Syncを使ってローカルディレクトリからAmazon S3にファイルをアップロードする

まずはS3Syncをインストールします。 $ wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz $ tar zxvf s3sync.tar.gz $ sudo cp -pr s3sync/ /usr/local/ローカルディレクトリとAmazon S3間の通信にSSLを使いたいので、ssl.certs.sharをダウ…

ユーザーにroot権限の一部を委譲する

ユーザーにroot権限の一部を委譲し、rootとしてコマンドを実行できるようにためには、/etc/sudoersを編集します。/etc/sudoersには、誰が・どのホストで・誰の権限で・どのコマンドを実行できるか、が定義されています。sudoersの編集には専用コマンドが用意…

ルーティング

ルーティングの定義を一覧として表示します。 >> rs = ActionController::Routing::Routes >> puts rs.routesルーティングが受け取ったパスをどのように解析するかを表示します。 >> rs.recognize_path "/store"ルーティングが受け取ったパラメタからどのよ…

プログラムの実行時間を計測する time

ちょっと時間のかかるスクリプトを起動してから寝るときなど、ふと"で、このスクリプトには実際どれくらい時間がかかっているのだろう?"と疑問に思うものです。その疑問を解決してくれるのがtimeコマンド。引数に渡したコマンドの実行時間を計測してくれます…

ハッシュにデフォルト値を設定する

例えばキーワードごとの出現回数を集計するとき、キーワードをキーに、出現回数を値にしたハッシュを使って集計することがあります。新しい要素のデフォルト値はnilですが、このようなときは0になっていて欲しいものです。要素を初期化する処理をブロックと…

パターンにマッチする行を抽出する grep

ファイルを読み込んでパターンマッチングを行い、マッチする行を出力します。パターンマッチングには一部の正規表現を使用することが可能です。検索対象が指定されない場合は標準入力に対してパターンマッチングを行い、また複数のファイルに対して同時にパ…

行数、単語数、バイト数を調べる wc

ファイルを読み込んで行数、単語数、バイト数を調べます。左から順に行数、単語数、バイト数、ファイル名です。 $ wc access.log-20100920 9423473 141434037 2020211366 access.log-20100912標準入力を受け取れば、カレントディレクトリにファイル(ディレ…

RSpec on Railsのインストール

RSpec on RailsはRuby on RailsでRSpecを使うためのプラグインです。GitHubで公開されています。 RSpecとRSpec on Railsはバージョンを合わせておかないとうまく動かないことがあるそうなので、ここでは明示的にバージョンを指定しています。 ※1.3.2は1.3.0…

RSpecのインストール

RSpecはRubyでテスト駆動開発を実践するための代表的なテスティングフレームワークです。GitHubで公開されています。 RSpecとRSpec on Railsはバージョンを合わせておかないとうまく動かないことがあるそうなので、ここでは明示的にバージョンを指定していま…

number_validationsプラグインのインストール

number_validationsプラグインは数値のバリデーションを拡張するプラグインです。acts_as_opensocialプラグインと同じmasarakki氏によって開発されており、GitHubで公開されています。 ruby script/plugin install http://github.com/masarakki/number_valid…

cache_fuプラグインのインストール

d:id:tetsuyai:20101114の記事にまとめました。

acts_as_opensocialプラグインのインストール

acts_as_opensocialプラグインはオープンソーシャルアプリケーションを開発するためのフレームワークです。職場の同僚であるmasarakki氏が開発しており、GitHubで公開されています。 ruby script/plugin install http://github.com/masarakki/acts_as_openso…

attachment_fuプラグインのインストール

attachment_fuプラグインはファイルをアップロードするときに使う代表的なプラグインです。いまはGitHubで公開されています。 ruby script/plugin install git://github.com/technoweenie/attachment_fu.git

無人応答ファイルに無効なプロダクトキーが含まれています

現象 Parallels Desktop 5にWindows 7をインストールしようとしたところ、インストールの途中で「無人応答ファイルに無効なプロダクトキーが含まれています。Windowsのインストールを続行するには無人応答ファイルから無効なキーを削除するか、または、無人…

Nginxのインストール

2011年8月23日、加筆・訂正しました。 概要 2011年8月23日現在、Nginxの安定版は1.0.5(2011年7月19日公開)、開発版は1.1.0(2011年8月1日公開)、旧安定版は0.8.55となっています。開発版とは文字通り現在開発中のバージョンです。新機能やバグフィックス…

Capistranoとcapistrano-ext

CapistranoはRubyで作られたデプロイツールです。Railsを作った37signalsという企業で、自分たちが使うための実用的なツールとして作られました。Railsと相性がよいのはもちろんですが、Capistrano自体は汎用的なデプロイツールとして作られています。capist…

MuninでMySQLのグラフだけが表示されない3つの理由

MuninのMySQLプラグインは"mysqladmin extended-status"コマンドを実行して値を収集しています。MySQLプラグインが描くグラフだけが表示されない理由は、たいていの場合、このコマンドの実行に失敗しているためです。 mysqladminの場所が特定できていない /e…

Apacheで名前ベースのバーチャルホストを定義する

環境 CentOS 5.5 Apache 2.2.3 Phusion Passenger 2.2.15 Ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] 応答するバーチャルホストを識別する方法によって、バーチャルホストには名前ベースとIPベースの二種類があります。 名前ベースのバーチャル…

Railsアプリケーションの実行環境を構築する

環境 CentOS 5.5 Apache 2.2.3 Phusion Passenger 2.2.15 MySQL 5.0.77 Ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] Rails 2.3.8 RubyGems 1.3.7 Rubyのインストール RubyとRubyGemsはソースコードから最新版をインストールするので、yumでイン…

capistrano_colors

$ sudo gem install capistrano_colors Capistranoの実行結果を色付けして表示します。 $ vim ~/.caprc require 'capistrano_colors' capistrano_colorsを有効にするためには、さらに~/.caprcに記述します。 $ vim config/deploy.rb require 'capistrano_col…

.bash_profileがあるとMacPortsでインストールしたパッケージが見えなくなる

概要 .bash_profileを作成したところ、MacPortsでインストールしたパッケージが見えなくなって困っていたのですが、ようやく解決しました。直接の原因は.bash_profileを作成したことで.profileが読み込まれなくなり、それによってMacPortsがインストールした…

認証プラグイン restful-authentication

定番の認証プラグイン restful-authenticationを触ってみました。restful-authenticationはgithubでメンテナンスされています。まず、インストールします。 ruby script/plugin install git://github.com/technoweenie/restful-authentication.git

第3回AWS User Group - Japan勉強会

AWSソリューションアーキテクト Paul Horvath氏が講演されるということで、JAWSの勉強会に参加してきました。しかし業務の都合で遅れて参加したため、氏の講演の前半は聞き逃してしまいました。とほほ orz株式会社gumiのCTO 堀内さんによる『AWSによるソーシ…

ハッシュのソート

ハッシュを値の昇順にソートします。値が同じときはキーの昇順にソートします。 h = {1 => 10, 2 => 1, 3 => 5, 4 => 5} h.sort {|(k1, v1), (k2, v2)| (v1 == v2) ? k1 k2 : v1 v2 }

Macで快適にVimを使う plugin編

まずはプラグインをインストールするディレクトリを用意します。 mkdir $HOME/.vim/plugin mkdir $HOME/.vim/doc mkdir $HOME/.vim/autoload ダウンロードしたプラグインの中身をコピーします。例えば $ cp Downloads/rails/plugin/* $HOME/.vim/plugin $ cp…