Error: I'm afraid this is the first I've heard of a "text" flavoured Blosxom. Try dropping the "/+text" bit from the end of the URL.

Mon, 25 Dec 2006

OS X で Esperanto を入力する

キーボードの U.S. Extended を選ぶと、Alt-6 (サーカムフレックス) Alt-b (ブリーブ) が入力できるようになるみたいだ。あとは続けて c, g, h, j, s / u をうてばいい。

Wikipedia の Esperanto の項に書いてあった

sonĝi (うたう不定形)

しかし全然語彙を覚えてない件

#

Sat, 23 Dec 2006

色を何にあわせるべきか

こう定期的にモニタの色を気にしたりして、結局デフォルトに戻したりを繰り替えているけれど、何にあわせればいいのかわからない。

今日はなんとなく NVIDIA Contorol Panel からのキャリブレーションを実行してみた(マルチモニタの接続先を変えたので)のだけど、かなり今まで見てた色と違って怖い(ホントに恐ろしさを感じる)

ウェブ関連の画像を作るときは、むしろ積極的にキャリブレーションすべきじゃない気がするけど(世の中の人の殆どはキャリブレーションをしないし、そして安い液晶を使っている)、そういう考えも相まってどこにあわせるか悩む。

そしてついでに MacBook のキャリブレーションもしてみたけど、結構青い方向に補正された。うううううん。


うーん。結局入力/出力であってればいいんだから自分の使う範囲で色があってればいいんだよなぁ……

ウェブの画像作る時ってどうすればいいんだ。


あと疑うべきが多すぎる。モニタ自体(ハードウェア)、モニタプロファイル、モニタの設定、OS のドライバ設定、自分の眼。

#

Fri, 08 Dec 2006

XP Reinstall

起動時にブルースクリーンさんがでしゃばってなかなか起動しなくなってしまったので再インストールしました。

nLite でどうでもよさそうなのを軽く削って、CD ブート。

起動したと思ったら NIC が認識されてなくて途方に暮れた。マザボ付録の CD からドライバ入れて解決。怖かった。これのために部屋をひっくりがえした。見つからない見つからない……結局なぜか DELL の付属品入れに入ってた。引っ越しのときに適当な大きさだったから入れたんだろうけど……

ネットワークが繋がったら

とかごたごたやった。

そして

を入れた。既にメインマシンじゃないので適当


でなんかちょっとたったらハードディスクが一気に全部使い果たされてていきなりウィルスかとあせった。なんかオフラインファイル機能が有効だったらしく、ネットワークドライブを勝手に同期されてた。こわい。

#

Wed, 08 Nov 2006

オートリロードの設定がめんどいので設定をオートにする試み

オートリロードでリロードが楽になるのはいいんだけど、リロードさせるために設定をしたりとかするのがすっごいめんどく感じるようになってきたので設定もオートでやろうぜって思った。

Rinda::Ring は UDP で検索したり登録したりしてサービス呼び出せるライブラリで、これを使うと一瞬で上のようなことができちゃってオレスゲー感を味わえます。ちょーLL

まず tuplespace を起動する。以下のスクリプトそのまま。このタプルスペースはサービスの情報を統括してる。

require 'rinda/ring'
require 'rinda/tuplespace'

DRb.start_service

ts = Rinda::TupleSpace.new
place = Rinda::RingServer.new(ts)

DRb.thread.join

次に各種リロードサービスを tuplespace に登録するスクリプト。 こいつらはブラウザとともに常駐して、リロード要求をうけつける。これらはもちろん RingServer と同じホストで動いている必要はない。

以下は例

reloadfx.rb

#!/usr/bin/ruby

require 'rinda/ring'
require 'net/telnet'

class Reload
    def reload
        telnet = Net::Telnet.new({
            "Host" => "localhost",
            "Port" => 4242
        })
        telnet.puts("content.location.reload(true)")
        telnet.close
    end
end

reload = Reload.new
DRb.start_service(nil, reload)

provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide

DRb.thread.join

reloadsafari.rb

#!/usr/bin/ruby

require 'rinda/ring'
require 'net/telnet'

class Reload
    def reload
        <<-`EOC`
        osascript -e '
        tell application "Safari"
            do JavaScript "location = (location.href);" in document 1
        end tell
        '
        EOC
    end
end

reload = Reload.new
DRb.start_service(nil, reload)

provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide

DRb.thread.join

でもって、上記サービスをタプルスペースから検索し、リロードメソッドを呼ぶスクリプト

#!/usr/bin/ruby
# reload.rb
require 'rinda/ring'

DRb.start_service
ts = Rinda::RingFinger.primary

ts.read_all([:name, :Reload, DRbObject, nil]).each do |i|
    begin
        p i[2].reload
    rescue Exception => e
        puts e.message
        puts e.backtrace
    end
end

この reload.rb を呼ぶだけで、何の設定もなしに、ネットワーク内のブラウザをリロードする。

新しくブラウザを起動したら同時にそのブラウザ用の Provider を起動すれば、それも何の設定もなしにリロードしてくれるってわけですよ。やばい!

Rinda::Ring さいこう>< DRb は Ruby の宝><

もうちょっといぢってみる。

#

Thu, 02 Nov 2006

Creammonkey のデバッグ改造版をつくった

Creammonkey 0.8 がリリースされたため、そちらをご利用ください :)


Creammonkey という Safari で userjs を使えるようにするものがあるのですが、userjs を書いている時いちいちメニューから Reload All User Scripts をするのが面倒くさいので改造してみました。

MIT ライセンスらしいのでビルドしたやつを公開。なにぶん Xcode 使ったのも初めてなのでこれでいいのかよくわかりません。ソースを公開したいときとか diff とりたいときってどこまでやればいいのかわからない。

Creammonkey-Debug.zip Original Copyright (c) 2006 KATO Kazuyoshi

Debug というメニュー項目が追加されるので、それをチェックしておけばページリロードのたびに userjs もリロードされます。

#

Sat, 21 Oct 2006

RAID 組みました。

なんか消えてたので google cache から復元


用件

ステップ

  1. 新しいハードディスク 250GB をとりつける
  2. パーティションを切り、RAID1 を一個 missing で構築する
  3. grub をインストールする
  4. grub の kernel 起動オプションを変更しとく
  5. 既存ファイルのコピー
  6. 古いハードディスクをとりはずし、新しいハードディスクに入れ替える。
  7. 同じようにパーティションをきり、RAID1 に参加させる。

最終的に思ったポイント:実際ファイルコピーするのは最後にしよう。grub インストール前にファイルをコピーしてしまってハマった。


まず BIOS (起動時に F2 で入る) で新しく接続したドライブを認識するようにする。SATA の on/off

sudo fdisk /dev/sdb
> p
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

> n
> p
> 1 #パーテーション番号
> 1 #最初のシリンダ

> +249500M
> t # タイプ変更
> fd # Linux raid auto detect
> a # ブートフラグ

> n
> p
> 2

> [RET]
> [RET]
> t
> 2
> 82

> p
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       30334   243657823+  fd  Linux raid 自動検出
/dev/sdb2           30335       30401      538177+  82  Linux swap / Solaris
> w

とりあえず swap を有効にしてみる

$ sudo mkswap /dev/sdb2
Setting up swapspace version 1, size = 225545396 kB
no label, UUID=269dcbba-b161-4002-9a4d-29fe964d61b6

$ sudo swapon /dev/sdb2
$ swapon -s

RAID1 を一つのデバイスを missing にして作成する

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing 
mdadm: array /dev/md0 started.

ファイルシステム作成 ext3

sudo mkfs.ext3 /dev/md0

grub install

sudo grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> quit

vim /etc/fstab で md0 をマウントするように

/dev/md0       /               ext3    defaults,errors=remount-ro 0       1
proc            /proc           proc    defaults        0       0
/dev/sdb2       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0

vim /boot/grub/menu.list の上の方に追加。md0 を root とするように

title       Ubuntu, kernel 2.6.15-27-386 (raid)
root        (hd0,0)
kernel      /boot/vmlinuz-2.6.15-27-386 root=/dev/md0 ro quiet splash
initrd      /boot/initrd.img-2.6.15-27-386
savedefault
boot

作ったファイルシステムに現行システムをコピー

cd /
sudo mkdir new-disk
sudo mount -t ext3 /dev/md0 /new-disk 
sudo telinit 1
# syslog とか全部止めたりしてファイルシステムの使用を最小限に
# ここからは ssh できないのでちまちまうってく
# パーティションは一つしかないため簡単に
cd /
cp -ax / /new-disk
mkdir /new-disk/proc

シャットダウンして付け替える。ここから sda は新しい 250G のディスク

/dev/sda にたいして、fdisk して、mdadm -a で RAID に追加

sudo fdisk
# 上と同じ
sudo mdadm /dev/md0 -a /dev/sda1
cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sda1[2] sdb1[0]
      243657728 blocks [2/1] [U_]
      [>....................]  recovery =  2.8% (6982720/243657728) finish=70.8min speed=55698K/sec

unused devices: <none>

こっちのディスクにも grub をインストール

sudo grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> quit

設定を保存して、メールの送信先を設定しとく

mdadm --detail --scan >> /etc/mdadm/mdadm.conf
dpkg-reconfigure mdadm

で終わり。のはず。実際構築したときはいろいろハマって起動しなかったりした。grub のインストール手順がおかしかったのと、grub が渡す kernel 引数が悪かったせい。

それと頭悪くて fdisk の桁を一個間違えて RAID missing 構築までやってしまった。やりなおすために

sudo umount /new-disk
sudo mdadm --misc --stop /dev/md0
sudo swapoff /dev/sdb2

とかやって、fdisk しなおした。


root ファイルシステムがないとか言われて起動しなかったときは、ずっと待ってると BusyBox shell に落ちるのでそこでなおしたりした。 これは kernel 引数が RAID デバイスになっておらず /dev/sda を参照していて、sda は RAID に参加するまえでミラーリングされていなかったで、ファイルシステムが存在せずエラー、とかいうやつ。

mount /dev/md0 /tmp; chroot tmp

fstab の修正をして、/boot/grub/menu.list を修正した。

けど、menu.list のほうが、title がかぶっていてはダメらしく、めんどいので grub 中に edit して起動して、起動してから書き換えた。


そんなわけで RAID1 になりました。一度つけて外して resync の様子とか見たりしたり。RAID になったからって、別に表面所何かが変わるわけではなく、ハードディスク変えて容量が増えただけという感じ。

まだ慣れてないので、「バックアップとらないとなぁ」と不安になってしまったりする。「そういえば RAID 組んだんだからそんなに気にしなくても」とか打ち消したりとかなんとかとかとかとか。とかばっかりだなねる

<


menu.lst 検索して

# kopt=root=/dev/md0 ro

を設定。アップデートはしってもいいように

#

Sat, 14 Oct 2006

RAID 組みたい

二個250GBのHDD買ってソフトウェア RAID1 にしようと思った。まだ買ってないしやってない。

今の SC430 には HDD が一個ついていてこいつの容量は 40GB。箱の中の下についているHDDディスク入れるところは一個だけあいてる状態。

なので、とりあえず一個を開いてるところに入れて、その一個だけで RAID1 を構成し、40GB をコピーして (ついでにパーティションを分け直す) から HDD を入れ替えてミラーリングという、のは、できるのだろうか。


不安点


Windows の方は D ドライブと C ドライブを分けていて、D をデータドライブにしているんだけど、この D ドライブをそのまま RAID 上のネットワークドライブにしたい。

#