:set expandtab
で今後入力されるタブがスペースに変換される。
:retab
既存のタブはこのコマンドで変換される。
:set tabstop=4
としていれば4つのスペースに変換される。
2008年3月7日金曜日
2008年3月5日水曜日
2008年2月27日水曜日
2chのスレを自動保存
2chのスレを自動で保存する方法を考えます。
スレの進行が早いところはすぐにDAT落ちしてしまいます。プログラムによって定期的にDATを取得できたら便利です。
いきいきwikiによるとUser-AgentをMonazilla/1.00 (ブラウザ名/バージョン)にするといいようです。
また鯖の転送量を減らす目的でgzipを推奨しています。
例としてJaneviewのリクエストヘッダを見て見ます。

こんな感じです。
これよりどこにアクセスし、DATを取得しているか分かります。
取得したdatはgzipに圧縮されているのでgunzipで展開します。(gunzipコマンドのあるLinux環境を想定しています)
ここで注意して欲しいのは必ずgzipで返ってくるとは限らない点です。gzipではなく生のDATが送られてきても対応できるようにします。
例としてDATを取得するスクリプトをいかに示します。定期的に取得する場合はcronなどで回して下さい。
#!/usr/bin/perl
use Net::HTTP;
### Initial Setting ###########################
$server ="namidame.2ch.net";
$category ="campus";
$unixtime ="1234567890";
$backup_directory ='/var/www/';
###############################################
unless($backup_directory=~/\/$/){
$backup_directory.='/';
}
$s = Net::HTTP->new(Host => "$server") || die $@;
$s->max_line_length(0);
$s->keep_alive(300);
$s->write_request(GET => "/$category/dat/$unixtime.dat", 'User-Agent' => "Monazilla/1.00 (perl/1.3)" , 'Accept-Encoding' => "gzip" );
($code, $mess, %h) = $s->read_response_headers;
unless($code eq "200"){
print "Thread not found!\n";
exit;
}
open (FH,">$backup_directory$unixtime.dat.gz") or die $!;
while (1) {
my $buf;
my $n = $s->read_entity_body($buf, 1024);
die "read failed: $!" unless defined $n;
last unless $n;
print FH $buf;
}
close FH;
print "\n$code $mess\n";
foreach $key(keys %h){
print $key," ";
print $h{$key},"\n";
}
chdir "$backup_directory" or die $!;
$gunzip_message = qx/gunzip -f $unixtime.dat.gz 2>&1/;
if($gunzip_message=~/not.*in.*gzip.*format/){
exec "mv $unixtime.dat.gz $unixtime.dat";
}
スレの進行が早いところはすぐにDAT落ちしてしまいます。プログラムによって定期的にDATを取得できたら便利です。
いきいきwikiによるとUser-AgentをMonazilla/1.00 (ブラウザ名/バージョン)にするといいようです。
また鯖の転送量を減らす目的でgzipを推奨しています。
例としてJaneviewのリクエストヘッダを見て見ます。

こんな感じです。
これよりどこにアクセスし、DATを取得しているか分かります。
取得したdatはgzipに圧縮されているのでgunzipで展開します。(gunzipコマンドのあるLinux環境を想定しています)
ここで注意して欲しいのは必ずgzipで返ってくるとは限らない点です。gzipではなく生のDATが送られてきても対応できるようにします。
例としてDATを取得するスクリプトをいかに示します。定期的に取得する場合はcronなどで回して下さい。
#!/usr/bin/perl
use Net::HTTP;
### Initial Setting ###########################
$server ="namidame.2ch.net";
$category ="campus";
$unixtime ="1234567890";
$backup_directory ='/var/www/';
###############################################
unless($backup_directory=~/\/$/){
$backup_directory.='/';
}
$s = Net::HTTP->new(Host => "$server") || die $@;
$s->max_line_length(0);
$s->keep_alive(300);
$s->write_request(GET => "/$category/dat/$unixtime.dat", 'User-Agent' => "Monazilla/1.00 (perl/1.3)" , 'Accept-Encoding' => "gzip" );
($code, $mess, %h) = $s->read_response_headers;
unless($code eq "200"){
print "Thread not found!\n";
exit;
}
open (FH,">$backup_directory$unixtime.dat.gz") or die $!;
while (1) {
my $buf;
my $n = $s->read_entity_body($buf, 1024);
die "read failed: $!" unless defined $n;
last unless $n;
print FH $buf;
}
close FH;
print "\n$code $mess\n";
foreach $key(keys %h){
print $key," ";
print $h{$key},"\n";
}
chdir "$backup_directory" or die $!;
$gunzip_message = qx/gunzip -f $unixtime.dat.gz 2>&1/;
if($gunzip_message=~/not.*in.*gzip.*format/){
exec "mv $unixtime.dat.gz $unixtime.dat";
}
2008年2月18日月曜日
2008年2月13日水曜日
x11vncよく使いそうなオプション(追加)
前回の他に見つけた良く使いそうなオプション
-allow
リモートアクセスを許可するホストを設定する。
例)192.168.0.5からだけアクセスを許可する
-allow 192.168.0.5
例)192.168.0.0/24からのアクセスを許可する
-allow 192.168.0.
-nopw
パスワードファイルが無くても警告を出さない
*その他のx11vnc関連の投稿
x11vnc端末から実行した際に出るエラー出力が邪魔
x11vncの設定を保存するには
Ubuntu7.04 にx11vncをインストールする
-allow
リモートアクセスを許可するホストを設定する。
例)192.168.0.5からだけアクセスを許可する
-allow 192.168.0.5
例)192.168.0.0/24からのアクセスを許可する
-allow 192.168.0.
-nopw
パスワードファイルが無くても警告を出さない
*その他のx11vnc関連の投稿
x11vnc端末から実行した際に出るエラー出力が邪魔
x11vncの設定を保存するには
Ubuntu7.04 にx11vncをインストールする
2008年2月8日金曜日
2008年1月20日日曜日
School Days LxHの動画を抽出する
まずDVDの読めるPCでディスクを検索します。
次にMV.AFSという1.15GBくらいのファイルがあるのでHDDにコピーします。
この中にpssファイルがアーカイブされているので抽出します。
こちらで配布されているAFS Cutter Ver.1.00を使ってPSSファイルを抽出します。抽出したファイルはbinという拡張子になっていますがPSSファイルです。再生はVLCプレイヤーなどで出来ます。
ゲームで使われていないムービーは
AFS_0836・・・niceboatと書かれた延々と続くスタッフロール
AFS_0855・・・工事中でちゅ!と書かれた世界の落書き
参考
http://freeuse.ddo.jp/contents/game/ps2/ps2mov.html
次にMV.AFSという1.15GBくらいのファイルがあるのでHDDにコピーします。
この中にpssファイルがアーカイブされているので抽出します。
こちらで配布されているAFS Cutter Ver.1.00を使ってPSSファイルを抽出します。抽出したファイルはbinという拡張子になっていますがPSSファイルです。再生はVLCプレイヤーなどで出来ます。
ゲームで使われていないムービーは
AFS_0836・・・niceboatと書かれた延々と続くスタッフロール
AFS_0855・・・工事中でちゅ!と書かれた世界の落書き
参考
http://freeuse.ddo.jp/contents/game/ps2/ps2mov.html
2008年1月7日月曜日
2008年1月2日水曜日
perlでURLデコード
#!/usr/local/bin/perl
open (FH,"access.log");
open (FH2,">kekka.txt");
while(){
s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
print FH2;
}
close FH;
close FH2;
s置換演算子のオプションeは置換後の文字列(ここではpack('H2',$1))の評価を行う。
gオプションは繰り返しマッチさせる。
open (FH,"access.log");
open (FH2,">kekka.txt");
while(
s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
print FH2;
}
close FH;
close FH2;
s置換演算子のオプションeは置換後の文字列(ここではpack('H2',$1))の評価を行う。
gオプションは繰り返しマッチさせる。
2007年12月31日月曜日
2007年12月25日火曜日
2007年12月11日火曜日
2007年12月10日月曜日
mkfs,fdisk,parted,mkswap使い方
*fdisk
パーティションの切り直しにはfdiskを使います。
例えば、/dev/sdaのパーティションを編集するとします
fdisk /dev/sda
で起動
Command (m for help):
と表示されます。
pでパーティションテーブルの表示
dを押して次にパーティション番号を入力してパーティションの削除
nで新しいパーティションの作成
tでパーティションタイプの編集(FAT32のパーティションタイプは0b)
lでパーティションタイプ一覧表示
wで編集したパーティションを書き込み終了
aでブートフラグの設定
参考リンク
swapパーティションの作成
パーティションタイプ一覧
*parted
fdiskの機能に加えてパーティションのリサイズが行えます。
#parted /dev/sda
のように起動します
(parted)
と表示されます。
printでパーティションテーブルの表示
resize 番号 でパーティションのリサイズ
例)/dev/sda上のswapパーティションを縮小する
# parted /dev/sda
GNU Parted 1.7.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Disk /dev/sda: 4326MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 3800MB 3800MB primary fat32
2 3800MB 4318MB 518MB primary linux-swap
(parted) resize 2
Start? [3800MB]?
End? [4318MB]? 4000MB
(parted) print
Disk /dev/sda: 4326MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 3800MB 3800MB primary fat32
2 3800MB 4000MB 200MB primary linux-swap
(parted) quit
参考リンク
ITmedia partedの使い方
*mkfs
ファイルシステムを作成する。
*mkswap
スワップファイルシステムを作成する。
swapon,swapoff
GRUBについて
http://opentechpress.jp/developer/article.pl?sid=07/06/18/0135208&pagenum=3
http://d.hatena.ne.jp/kamopapa/20071118
GRUBをUSBメモリにインストールする
まず、パーティションを切るFATでフォーマットしアクティブフラグをセットする。
mkdir /mnt/usb/grub
cp /boot/grub/stage* /boot/grub/fat_stage1_5 /mnt/usb/grub/
umount /mnt/usb
とし
grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
と入力する。(USBメモリを/dev/sdaとする)
パーティションの切り直しにはfdiskを使います。
例えば、/dev/sdaのパーティションを編集するとします
fdisk /dev/sda
で起動
Command (m for help):
と表示されます。
pでパーティションテーブルの表示
dを押して次にパーティション番号を入力してパーティションの削除
nで新しいパーティションの作成
tでパーティションタイプの編集(FAT32のパーティションタイプは0b)
lでパーティションタイプ一覧表示
wで編集したパーティションを書き込み終了
aでブートフラグの設定
参考リンク
swapパーティションの作成
パーティションタイプ一覧
*parted
fdiskの機能に加えてパーティションのリサイズが行えます。
#parted /dev/sda
のように起動します
(parted)
と表示されます。
printでパーティションテーブルの表示
resize 番号 でパーティションのリサイズ
例)/dev/sda上のswapパーティションを縮小する
# parted /dev/sda
GNU Parted 1.7.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Disk /dev/sda: 4326MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 3800MB 3800MB primary fat32
2 3800MB 4318MB 518MB primary linux-swap
(parted) resize 2
Start? [3800MB]?
End? [4318MB]? 4000MB
(parted) print
Disk /dev/sda: 4326MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 3800MB 3800MB primary fat32
2 3800MB 4000MB 200MB primary linux-swap
(parted) quit
参考リンク
ITmedia partedの使い方
*mkfs
ファイルシステムを作成する。
*mkswap
スワップファイルシステムを作成する。
swapon,swapoff
GRUBについて
http://opentechpress.jp/developer/article.pl?sid=07/06/18/0135208&pagenum=3
http://d.hatena.ne.jp/kamopapa/20071118
GRUBをUSBメモリにインストールする
まず、パーティションを切るFATでフォーマットしアクティブフラグをセットする。
mkdir /mnt/usb/grub
cp /boot/grub/stage* /boot/grub/fat_stage1_5 /mnt/usb/grub/
umount /mnt/usb
とし
grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
と入力する。(USBメモリを/dev/sdaとする)
2007年12月9日日曜日
vsftpdへIEを使ってログインする
IEは標準でftpクライアントを持っています。
ログインした際は通常のファイルのようにドラッグ&ドロップによるアップロードやダウンロード。右クリックで削除、パーミッションの設定も出来ます。
ftp://hoge.jp/という風にアドレスバーに入れてもvsftpdの場合は下図の様なエラーになります。

iswebやgeocitiesのFTPサーバーへは上のようなエラーは出ず、この後にユーザー名とパスワードの入力を求められます。
vsftpdのサーバーへログインする際にはアドレスの前にユーザー名を書いてください。例えばfoobarというユーザーでログインしたいのなら
のようにアドレスバーに入力してください。この次にパスワードの入力を求められます。
パスワードも同時に入力したいのなら(例としてパスワードをpasswdとします)
と入力します。ログインした後にお気に入りに追加した場合、ftp://hoge.jp/としてお気に入りに追加されてしまうため、お気に入りの項目を右クリック→プロパティから上記アドレスに書き換えてください。
ログインした際は通常のファイルのようにドラッグ&ドロップによるアップロードやダウンロード。右クリックで削除、パーミッションの設定も出来ます。
ftp://hoge.jp/という風にアドレスバーに入れてもvsftpdの場合は下図の様なエラーになります。

iswebやgeocitiesのFTPサーバーへは上のようなエラーは出ず、この後にユーザー名とパスワードの入力を求められます。
vsftpdのサーバーへログインする際にはアドレスの前にユーザー名を書いてください。例えばfoobarというユーザーでログインしたいのなら
ftp://foobar@hoge.jp/
のようにアドレスバーに入力してください。この次にパスワードの入力を求められます。
パスワードも同時に入力したいのなら(例としてパスワードをpasswdとします)
ftp://foobar:passwd@hoge.jp/
と入力します。ログインした後にお気に入りに追加した場合、ftp://hoge.jp/としてお気に入りに追加されてしまうため、お気に入りの項目を右クリック→プロパティから上記アドレスに書き換えてください。
登録:
投稿 (Atom)