zsh、rvm、vim

zshを使ってみて、vimでファイルの編集中に「:!ruby %」で実行したらrvmがちゃんと動いていなかったので調べたら、vimは.zshrcを読まなくて、かわりに.zshenvを読み込んでいた。ln -s ~/.zshrc ~/.zshenvする必要がある(.zshenvを置いてない人は)。

参考はこちら:rails.vim, rvm, ZSH, and a curious (infuriating) bug

Popularity: 1% [?]

hdd死亡

みんなのブログをホスティングしていたマシンのhddが死にました

バックアップがあるので華麗に復旧、と思ったら、バックアップ用のディスクが死んでいるではありませんか!

\(^o^)/

Popularity: 1% [?]

さくらのVPSでLokka(コピペでインストール)

デフォルトのCentOS release 5.5だとRuby 1.8.5になってしまうので、えいやとソースからインストール。Lokkaで使うsqlite-develとWEBrick用にopenssl-devel、gemで使うのでreadlineとzlibのヘッダファイルも。

* ここからroot権限で。

# yum install readline-devel zlib-devel sqlite-devel openssl-devel
# mkdir -p /usr/local/src/ruby
# cd /usr/local/src/ruby
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.bz2
# tar jxfv ruby-1.8.7-p302.tar.bz2
# cd ruby-1.8.7-p302
# ./configure --prefix=/usr
# make && make test
# make install

rubygemsを用意。

# mkdir -p /usr/local/src/rubygems
# cd /usr/local/src/rubygems
# wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
# tar zxfv rubygems-1.3.7.tgz
# cd rubygems-1.3.7
# ruby ./setup.rb
# gem list
# gem install bundler

いよいよLokka。

*ここからは一般ユーザで。

$ mkdir lokka
$ cd lokka
$ wget --no-check-certificate https://github.com/downloads/komagata/lokka/lokka-v0.1.0.zip
$ unzip lokka-v0.1.0.zip
$ cd komagata-lokka-50a9c78/
$ bundle install --path bundle --without production test
$ bundle exec rake db:set
$ bundle exec rackup

これで起動する。

Popularity: 2% [?]

gpgとわたし

われわれのようなズボラな人間にとってのgpgの主な使い道は、リモート接続した先でrootユーザになるためにパスワードを調べるのが面倒くさくて、パスワードを書いたファイルをgpgで暗号化してログイン先のサーバのホームディレクトリに置くことだと思うのですが、いかがでしょうか。

*今はもうお客様のサーバではやっていません。本当です。

Popularity: 1% [?]

MeeGoでyum update失敗

何か知らないがChromeの更新に失敗していた。パッケージャのミスでrpmの取得先が間違っていたらしい。yum clean allしてからやり直した。

Popularity: 1% [?]

RhodesとiPhone SDK4

Rhodesが出力するbuild.xmlの

iphone:
configuration: Debug
sdk: iphonesimulator3.0

ここを

iphone:
configuration: Debug
sdk: iphonesimulator4.0

にするだけで動作した。

Popularity: 1% [?]

hp miniでMeeGo

MeeGoのインストール自体は問題ないが、無線LANが動かない。MeeGoユーザ会のフォーラムにも記載があったので試してみたが、Broadcomからパッチが提供されているようなのでそれを手順に追加した。メモがわりにここにも残しておく。

Broadcomのサイトから32-bit driverをダウンロード。

Kernel 2.6.33以上用のパッチも同じページからダウンロード。

$ cd Downloads
$ mkdir wl
$ mv hybrid-portsrc-x86_32-v5.60.48.36.tar.gz wl/
$ mv sta_5.60.48.36_2.6.33_kernel_patch.zip wl/
$ cd wl
$ unzip sta_5.60.48.36_2.6.33_kernel_patch.zip
$ tar zxf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
$ patch -p0 < patch
$ make clean
$ make
$ sudo modprobe lib80211
$ sudo insmod wl.ko
$ sudo cp wl.kp /lib/modules/``uname -r`/kernel/drivers/net/wireless/
$ sudo depmod -a

Popularity: 2% [?]

$HOME以下にvim7.2を設置

珍しく管理権限のない環境でプログラミングすることになり、vimがminimalしか入っていないのでそんな拷問を受けるつもりはないから$HOME以下に設置したのだが、–with-tlib=ncursesにするとどうもうまくいかなかったのでメモ。

最終的に、–with-local-dir=$HOME を追加すると動作した。途中、-tlibを指定しろと怒られ、-with-tlib=ncursesを指定すると今度はそんなものは見つからないと(–prefix指定しているのに!)怒られ続けてキャッチ22だった。

うまくいったやり方:
ncurses

$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
$ tar zxfv ncurses-5.7.tar.gz
$ cd ncurses-5.7
$ configure --prefix=$HOME
$ make
$ make install

vim

$ cd
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
$ tar jxfv vim-7.2.tar.bz2
$ cd vim72
$ ./configure --prefix=$HOME --with-local-dir=$HOME --disable-selinux
$ make
$ make install

Popularity: 1% [?]

shredの制限

ファイルの完全消去について調べていたらいろいろ知らないことがshredのmanに書かれていたのでメモ。

ext3の場合、rootflags=data=journalとかになっているケースではshredは期待通りの動作をしない。data=ordered(デフォルト)かdata=writebackだと問題ない。詳しくはmountのmanを参照のこと。

特定のネットワークストレージ機器やNFS3の場合、期待通りの動作をしない。

RAIDだと復元可能になることがある。

Popularity: 1% [?]

DiCEだとときどきだめみたい

細かい原因調査はまだなのだが、DiCEで管理しているDynamicDNSの更新管理がときどきうまくいかない。幸い、value-domainで取得しているドメインだとGETのリクエストで更新することができるので、それを利用することにした。

管理画面からダイナミックDNSの管理画面に遷移して、取得済みドメインを選択すると、「ダイナミックDNS設定情報」というページが表示される。そのページにある「アクセス先の例」に記載されたURLの最後のIPアドレスの部分を削って自分の持っているドメインのリストとして保存したら、接続元IPアドレスを返してくれる自分用の「確認君」を設置して、以下のスクリプトをcronで回して代用する。

require 'nokogiri'
require 'open-uri'

ip_address = ''
src = open('http://maniac.s154.xrea.com/test.php').read
doc = Nokogiri::HTML(src)
doc.search('span').each do |node|
        ip_address = node.inner_html
end
File.open('./list.txt').each do |line|
        uri = line.strip + ip_address
        tmp = open(uri).read
        puts tmp
end if ip_address != ''

まあ動いているのでこれでよし。

Popularity: 1% [?]