12月 142011
 

Google 「いいえ」を検索すると なぜか Yahoo! JAPAN がトップにランキングされます.

なぜでしょう?

それは Google が検索結果を算出するときに,他のページからのアンカーテキスト情報も参考にランキングを作成しているから です.

もう少し分かりやすく言うと,Google は検索結果のランキングを計算する際に,対象のサイトが他のサイトからどのようなテキストでリンクされているか,という情報も参考にしています.

例えば,「神戸大学」というテキストで「http://www.kobe-u.ac.jp/」にリンクしている(神戸大学をクリックするとhttp://www.kobe-u.ac.jp/に移動する)WEB ページがインターネット上に多ければ多いほど,「http://www.kobe-u.ac.jp/」というサイトは「神戸大学」である確率が高いということです.

したがって,インターネット上に「いいえ」をクリックすると Yahoo! JAPAN へ移動する WEB ページが多く存在している場合,Google は「Yahoo! JAPAN」と「いいえ」の間に大きな関係があると考えるわけです.

「いいえ」のリンク先が Yahoo! JAPAN なんて経験,男性ならあるんじゃないですか?;-P

追記:
「18歳未満」や「20歳未満」で Google 検索しても Yahoo! JAPAN や Google が上位にランキングされるようです.

11月 262011
 

・LVM2 のモジュールをロードし VG を活性化する

# modprobe dm-mod
# vgchange -ay

・LV, VG から PV(HDD) を取り除く

ext3, ext4 ではオンラインでファイルシステムの縮小はできません.
いったん umount してからファイルシステムを縮小する必要があります.
感覚としては FS → LV → VG の順番で小さくする.

# umount /dev/mapper/VolG00-lvroot
# e2fsck -f /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot 500G
# lvreduce -L 501G /dev/mapper/VolG00-lvroot
# pvmove /dev/sdb1
# vgreduce VolG00 /dev/sdb1
# pvremove /dev/sdb1
# lvextend -l +100%FREE /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot

以上で /dev/sdb1 は自由の身です(fdisk で好きなように).
resize2fs はオプションを指定しなければ空き領域いっぱいにファイルシステムを広げてくれます.

・すでに存在する LV, VG へ PV(HDD)を追加する

こちらは ext3, ext4 でもオンラインでできます.
が,やはり umount してからのほうが安全.
fdisk を使って /dev/sdb1 に LVM(8e)のパーティションを作っておきます.
感覚としては VG → LV → FS の順番で大きくする.

# umount /dev/mapper/VolG00-lvroot
# fdisk /dev/sdb
# pvcreate /dev/sdb1
# vgextend VolG00 /dev/sdb1
# lvextend -l +100%FREE /dev/mapper/VolG00-lvroot
# e2fsck -f /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot

resize2fs はオプションを指定しなければ空き領域いっぱいにファイルシステムを広げてくれます.
LVM は デバイス名(/dev/sd?)でなく UUID でディスクを認識しているみたい.
ディスクを追加して既存のディスクのデバイス名が変わってしまっても問題はない(人間は混乱する).

11月 182011
 

一度はやってみたい rm -rf /

さくらのクラウド を使って試してみた.

[root@sacloud ~]# rm -rf /
rm: it is dangerous to operate recursively on `/'
rm: use --no-preserve-root to override this failsafe

むっちゃ親切.

[root@sacloud ~]# rm -rf --no-preserve-root /
[root@sacloud ~]# ls
bash: /bin/ls: No such file or directory

reboot も shutdown ももう何もできない.

11月 072011
 

Git リポジトリを Web 上で閲覧したい時は gitweb を用いているのですが,ベタに表示されるコードほど見づらいものはない,ということで,gitweb でソースコードを syntax highlight させます.

gitweb は highlight というアプリケーションと組み合わせることでコードを自動的にハイライト表示することが可能となっています.

まずは highlight をインストール.

$ sudo yum install highlight

次に gitweb の設定を変更.

# vi /etc/gitweb.conf

gitweb.conf 中の projectroot の設定よりも前に以下を記述する.

$feature{'highlight'}{'default'} =[1];

これだけでハイライト表示してくれるようになったはず.
テーマ(色)を変えたいときは theme_examples から選んで

$ echo "" | highlight -s テーマ名 > /dev/null

としてやれば highlight.css が生成されるのでこの内容を gitweb.css の最後の方にあるスタイルと入れ替えてやればいい.

参考ページ:
day one: gitwebでsyntax highlight
Gitで遊ぶ | ももーい鯖覚書

11月 072011
 

複数人で共有したい Git リポジトリを作成したいときは,まず新しくグループを作成し,ユーザを追加する.

# groupadd project1
# usermod -G project1 user1
# usermod -G project1 user2

次に Git リポジトリを作成する.

$ mkdir project1.git
$ chgrp -R project1 project1.git
$ cd project1.git
$ git init --bare --shared=group

–shared オプションのデフォルトは group になる.
group と all はほぼ同じだが,all にすると全員が read できるようになる.

あとはクライアントから

$ git pull user1@server:/home/git/repos/share/project1.git
$ cd project1
ごちゃごちゃ作業して
$ git commit -a -m "comment"
$ git push origin master