なんとなく日記

Everyday studying...

ZabbixでVPSのメモリを監視するには@DTI-VPS

どうやらDTIのVPSではvm.memory.size[free]とかは使えないらしい。実際には使えないのではなくて、ホストの方のメモリが出てくるようなので、計測には使えないと言うこと。で、どうすればいいのかというと、/proc/meminfoの値を使う。具体的にはこんな感じ。 $ grep 'MemFree' /proc/meminfo | sed -e 's/^[^:]\+:[^0-9]\+\([0-9]\+\)[^0-9]\+$/\1/g' 363892 んで、この値はkBなので適宜どこかで補正してやればいい。大まかで良ければ1000倍するなど。

zshのプロンプトにrvmのRubyを表示する

rvmを使っていると、「いま何のRubyだっけ」と思うことがあったので、プロンプトに表示するようにしてみました。 autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-[%b]' zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]' precmd () { psvar=() # for vcs_info LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" # for rvm [[ -n "$rvm_ruby_string" ]] && psvar[2]="$rvm_ruby_string" # for gemset ind=$(expr index $GEM_HOME $rvm_gemset_separator) if [ $ind -ne 0 ]; then length="$(expr length $GEM_HOME)" sub_length=`expr $length - $ind + 1` gem_spec=`expr substr $GEM_HOME $ind $sub_length` [[ -n "$psvar[2]" ]] && psvar[2]="$psvar[2]$gem_spec" fi } VCS_PROMPT="%1(v|%F{green} %1v%f|)" RUBY_PROMPT="%2(v| %U%B%F{magenta}(%2v)%f%b%u|)" PROMPT=$'%{\e[32m%}$LOGNAME@${WINDOW:+"[$WINDOW]"}%B:%b%{\e[m%}[%~]$RUBY_PROMPT$VCS_PROMPT\n%% ' 上記のように設定すると下の画像のように表示されます。これでいろいろ迷うことが無くなりました。

Emacs 23.2 on Mac OS X

Emacsも23.2になったということで、そろそろ移行してみることにしました。下記の参考文献をもとに、各種パッチを当ててビルドしていきます。 % wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.2.tar.gz % wget http://jaist.dl.sourceforge.jp/macemacsjp/47194/inline_patch-23.1.96-b2.tar.gz % wget http://github.com/downloads/typester/emacs/feature-fullscreen.patch % tar zxvf inline_patch-23.1.96-b2.tar.gz % tar zxvf emacs-23.2.tar.gz % cd emacs-23.1 % patch -p0 < ../inline_patch-23.1.96-b2/emacs-inline.patch % patch -p1 < ../feature-fullscreen.patch % ./configure --with-ns --without-x % make bootstrap % make install % open nextstep/Emacs.app あとはここを参考にフォントの設定をして完了。あとはちまちま設定を追加していくのみですかね。 参考文献 typester's emacs at master - GitHub Full-screen support for Cocoa Emacs on OS X | Sanity, Inc. Twitter / junyaogura: Emacs 23.

rvmで拡張ライブラリを複数のRubyにインストールする方法

まあたいしたことではなく、単にシェルスクリプトを使うだけです。例えばTokyoCabine Ruby APIだと、 % ruby extconf.rb % make % sudo make install などとするわけですが、これを下記のように実行すれば、それぞれのRubyにインストールされます。 for version in ree ree-1.8.6 1.8.6 1.8.7 1.9.1; \ do rvm use $version; make clean; ruby extconf.rb; make; make install; \ done

ツイッター仕事で役立つ即効ワザ57 - これからの人の入門書

Twitter献本というのでしょうか、@takeuchさんのつぶやきをRTして見たらなんと本が届きました(ちょっと違う)。ありがとうございます。 ツイッター仕事で役立つ即効ワザ57 著者: 日経PC21 出版日: 2010-04-29 出版社/メーカー: 日経BP社 カテゴリ: Book さて本の内容ですが、一言で言うと「これから始めるなら、とりあえず読んでおけ」という内容です。アカウントをとるところから、iPhoneや携帯電話での利用方法、投稿やフォローの仕方など、一通りのことが記載されています。 これは良いなと思ったのが、「とりあえずX人程度フォローしてみよう」という下り。それとつぶやき方のコツ。このあたりって始めたときに何して良いのか分からなくなって、そのまま止めてしまった人に是非読んで欲しい。そんな内容でした。 また企業アカウントについても書かれているのも、この本の特徴です。これからTwitterを始めようと考えている会社にとっては、手引きになる内容です。うまくTwitterを広報に使おうと考えている方は、一度読んでみることを強くお勧めします。 まあ実はReplyとMentionの違いをよく理解してなかったので、非常に助かったりしました。「Twitterのことはもう知ってるよ」という方も、「ほー」と思うことがあるのではないでしょうか。私にとってはそれくらい充実した内容だったりしました。

NetGenesis SuperOPT100E - 複数台接続ならちゃんとしたルータを

マイクロリサーチ NetGenesis SuperOPT100E (100Mbps対応ブロードバンドルータ) MR-OPT100E 著者: 出版日: 出版社/メーカー: マイクロリサーチ カテゴリ: Personal Computer 最近ネットが重い感じがしていて、どうもルータの性能不足かなと思い始めました。そもそもFFXIとかやると、PC3台、PS3、サーバ1台が繋がるため、安いルータでは性能不足気味になるようです。自宅サーバを解説しているのとMMORPGを安定してやりたいと言うことで、上記ルータを利用することにしました。 で、導入して一月ぐらい経過しましたが、すこぶる順調です。相手のサーバが重いときはどうしようもないですが、謎の接続不良とかはなくなりました。最近ネットが重くて、と言う方は、一度いいルータを利用してみるのはいかがでしょうか。

TokyuRubyKaigi02参加者募集中!

と言うわけで、Go!肉の日に開催される、TokyuRubyKaigi02の参加者募集のお知らせです。 TokyuRuby会議02 -参加登録- : ATND すでに20名もの方が登録されているのですが、まだまだ募集中です。酒・肉が好きな方であれば、Rubyを知らなくても全然問題ありません。とりあえず来ると良いと思うよ。

RubyのMySQLドライバを見る - アクティブチェック問題

前々回、前回の続きです。次はMySQLドライバを調べてみます。 ActiveRecordからRuby/MySQLへ さてアクティブチェックしては、connection_adaptors/mysql_adaptor.rbのactive?メソッドでした。 def active? if @connection.respond_to?(:stat) @connection.stat else @connection.query 'select 1' end # mysql-ruby doesn't raise an exception when stat fails. if @connection.respond_to?(:errno) @connection.errno.zero? else true end rescue Mysql::Error false end ここでは、@connection.statか@connection.query 'select 1'が呼び出されます。その前に、まず@connectionとはなにかと言うと、親クラスであるAbstractAdapterの38行目にあるinitializeメソッドで作成されるインスタンス変数です。ファイルはconnection_adaptors/abstract_adaptor.rbです。 def initialize(connection, logger = nil) #:nodoc: @connection, @logger = connection, logger @runtime = 0 @last_verification = 0 @query_cache_enabled = false end このメソッドはconnection_adaptors/mysql_adaptor.rbの200行目で呼び出されるわけです。このクラスは同じファイルの75行目でインスタンスを生成しています。 # Establishes a connection to the database that's used by all Active Record objects.

WordPress on nginx with FastCGIのCentOSの場合

以前の記事はDebianだったのですが、それをCentOSに設定したので、そのメモ。 ここを参考に、FastCGI用daemonのスクリプトを作成。 % sudo vim /etc/init.d/php-fastcgi #!/bin/sh # # php-cgi - php-fastcgi swaping via spawn-fcgi # # chkconfig: - 85 15 # description: Run php-cgi as app server # processname: php-cgi # config: /etc/sysconfig/phpfastcgi (defaults RH style) # pidfile: /var/run/php_cgi.pid # Note: See how to use this script : # http://www.cyberciti.biz/faq/rhel-fedora-install-configure-nginx-php5/ # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 spawnfcgi="/usr/bin/spawn-fcgi" php_cgi="/usr/bin/php-cgi" prog=$(basename $php_cgi) server_ip=127.