apacheの設定

By | 2008年10月12日

よくモジュールがどれか分からなくなるので備忘録として残しときます。

mod_authz_home.so  =>  <strong>Deny, Allow</strong>とかの設定を使うのに必要なモジュール
mod_dir.so, mod_autoindex.so  =>  <strong>Indexes</strong>を使うのに必要なモジュール

最近よく忘れる。。。

そういえば最近 flash 系のネタが少ないな。。。
もうちょっといじるようにしないと。
うーん。。。

fedora6にUSB接続でHDDを繋げ新しくLVMでパーティションをきる

By | 2008年10月8日

はじめに

windows で使ってた HDD を色々な諸事情のため linux で使うことになりました。
備忘録も兼ねて構築したのをメモっときます。

興味ない人すみません。

HDD 接続

USB 接続すると /var/log/message に情報が出力されます。

kernel: USB Mass Storage support registered.
kernel:   Vendor: IC35L120  Model: AVV207-1          Rev: V24O
kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
kernel: SCSI device sdb: 241254720 512-byte hdwr sectors (123522 MB)
kernel: <font color="red">sdb</font>: Write Protect is off
kernel: <font color="red">sdb</font>: assuming drive cache: write through

こんな感じ。重要なのは赤い文字で囲ったとこ。
家の環境だと /dev/sdb に今繋いだ HDD があるってこと。

パーティション構築

次にパーティションを切りなおそうと fdisk をうつと何故かエラーがでて動かない。

1
$ fdisk /dev/sdb

ファイルシステムは作り直せるのかなと思って作り直した。
そーするとパーティションを切り直せた。解決。
どーやら NTFS のせいで悪さをしてたみたい。

1
2
$ mkfs.ext3 /dev/sdb
$ fdisk /dev/sdb

fdisk の使うコマンド

1
2
3
4
n : 新しくパーティションを切る
t : タイプの変更(LVMにする時はこれを使う)
d : パーティションの削除
p : 既存のパーティションの確認

ざっくりいうとこんな感じ。
詳細はここを見て下さい。

$fdisk /dev/sdb
 
The number of cylinders for this disk is set to 15017.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-15017, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-15017, default 15017):
Using default value 15017
 
Command (m for help): p
 
Disk /dev/sdb: 123.5 GB, 123522416640 bytes
255 heads, 63 sectors/track, 15017 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15017   120624021   83  Linux
 
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
 
Command (m for help): p
 
Disk /dev/sdb: 123.5 GB, 123522416640 bytes
255 heads, 63 sectors/track, 15017 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15017   120624021   8e  Linux LVM

LVM構築

用語説明 詳細はここ

PV : 物理ボリューム
VG : ボリュームグループ
LV : 論理ボリューム
PE : 物理エクステント

まず PV を作成。

1
2
3
4
5
6
7
8
9
10
11
12
13
$pvcreate /dev/sdb
$pvdisplay /dev/sdb
 
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name
  PV Size               115.04 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               PE1e1K-u67E-JcdK-DjLR-twDV-mqpr-gBzpyW

次に VG を作成。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$vgcreate [VG名前] /dev/sdb
     -e サイズ(default 4m) : 物理エクステントの大きさを変更
$vgdisplay /dev/sdb
 
  --- Volume group ---
  VG Name               [VG名]
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               115.04 GB
  PE Size               4.00 MB
  Total PE              29449
  Alloc PE / Size       0 / 0
  Free  PE / Size       29449 / 115.04 GB
  VG UUID               9gzpCP-O3bX-doFn-gJYR-I0h7-tZ9g-adQ2bd

そして最後に LV を作る。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$lvcreate -L [サイズ(30G)] -n [LV名] [VG名]
$lvdisplay
 
  --- Logical volume ---
  LV Name                /dev/[VG名]/[LV名]
  VG Name                [VG名]
  LV UUID                PFZ1M8-4zda-veNg-hJVW-7CW9-1Ohz-xjxYVL
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                80.00 GB
  Current LE             20480
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:2

LVの名前を変えたい。

1
$lvrename [VG名] [old LV名] [new LV名]

VGの名前を変えたい。

1
2
3
$vgchange -an [old LV名]            #LVを無効にしている
$vgrename [old VG名] [new VG名]
$vgchange -an [new LV名]            #LVを有効にしている

最後にファイルシステムを作成

1
$mkfs.ext3 /dev/[VG名]/[LV名]

あとは mount して使用する。
/etc/fstab に書いとけば再起動しても大丈夫。
ふむ。地味にながくなった。

参考資料

http://pantora.net/pages/linux/lvm/1/
http://pantora.net/pages/linux/lvm/2/
http://pantora.net/pages/linux/lvm/3/

Posted in lvm

wordpressの外部ブログにはてなスターを表示する方法

By | 2008年10月5日

簡単にフローから説明すると

(1) はてなスターに外部ブログとして登録
(2) header に追記

基本的にはこれでできます。
かんたーん。

(1)のフローですけど詳細はここを見て下さい。
はてなにちゃんとまとめられてますんで。
そこで取得してきた js をそのまま header に付与するだけで OK。

header の編集は wordpress の
「管理画面」->「デザイン」->「テーマエディタ」->「ヘッダー(header.php)」を選択すると編集できます。
(※ただし選択しているテーマによって差異があるやもしれません。)

はてなで発行されたトークンと js と一緒にスタイルシートを変更してはてなスターを表示するようにします。

1
2
3
4
5
6
7
8
9
Hatena.Star.SiteConfig = {
  entryNodes: {
    'div.post': {
      uri: 'h2 a',
      title: 'h2',
      container: 'h2'
    }
  }
};

赤字のところはテーマによって違うかもしれませんので、自分のテンプレートの DOM を確認して変更して下さい。
基本的にはこれで「はてなスター」がタイトルの横にでるようになります。

ほんとあっという間につけることができるので便利ですね。
MT をつかっているという人はここを参考にするといいと思います。

最終的に header に付け足したコード

1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
Hatena.Star.Token = 'トークン';
Hatena.Star.SiteConfig = {
  entryNodes: {
    'div.post': {
      uri: 'h2 a',
      title: 'h2',
      container: 'h2'
    }
  }
};
</script>

近況

By | 2008年10月3日

しばらく Xen をすることになりました。
それはそれで凄い楽しみ。

ま、それはいいとして今作ってるのが
Benchmark のライブラリ、 あとは ASDebuger。

ASDebuger は動くっちゃ動くから、さっさと公開したいけど、
未実装の機能がそれなりにあって、
インターフェイスすら決めてないのが何個か…. orz

それもさっさとしたいなー
だ・れ・かぁ・・・・・たすけて

actionscirpt3 で変数に格納された値を使って動的にインスタンスを生成

By | 2008年9月29日

以前からできないのかなと思っていて、
ちょっと調べたらできそうだったので調べてみた。

試した環境は Flex3 SDK です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.getDefinitionByName;
 
    public class Hoge extends Sprite {
        public function Hoge() {
       var cls:Class = getDefinitionByName("flash.text.TextField") as Class;
            var t:TextField = new cls();
            t.text = "hoge";
            t.y = 100;
            addChild(t);
 
            var t2:TextField = new TextField();
            t2.text = "fuga";
            addChild(t2);
        }
    }
}

特に重要なのが8-9行目ですね。
これで動的にインスタンスを生成することができるみたいです。

getDefinitionByName便利ですね。
でもよく考えればできそうな気もせんでもないような。。。。
ま、できてなによりです。

参考資料
http://blog.isocchi.com/2007/12/flex-actionscript.html
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=1241

——————————————————————————————–
追記: 2008/9/30 22:52

パフォーマンスがちょっと気になったのでベンチをとってみた。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package {
 
    import flash.display.Sprite;
    import flash.utils.getTimer;
    import flash.utils.getDefinitionByName;
    import org.libspark.utils.Dumper;
 
    public class Generate extends Sprite{
 
        private static const ROUND:uint = 50000;
 
        public function Generate(){
            bench(generate_new, "new");
            bench(generate_class, "[new - class]");
        }
 
 
        private function generate_new():void{
            for (var i:int = 0; i < ROUND; i++){ new Sprite(); }
        }
 
        private function generate_class():void{
            for (var i:int = 0; i < ROUND; i++){
                var cls:Class = getDefinitionByName("flash.display.Sprite") as Class;
                new cls();
            }
        }
 
        private function bench(func:Function, tag:String):void{
            var start:uint = getTimer();
            func();
            trace((getTimer() - start) + "ms :" + tag);
        }
    }
}
[64bitの結果]
330ms :new
659ms :[new - class]
355ms :new
658ms :[new - class]
 
[32bitの結果]
1285ms :new
1172ms :[new - class]
1285ms :new
1211ms :[new - class]

会社でも試した結果、おそらく32bitだと[new – class]の方がはやかった。
なぜだーーーーーと思って、家の64bit環境で試したら上記のような結果。
まぁ。。。納得?

できねーしw