いろんなところで使いそうなのでメモ。
大崎さんの perl メモの URIエスケープ・アンエスケープする に詳しい。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
大崎さんはエスケープ対象の指定に [^\w ] を使っている。他のウェブサイトでは s/(\W)/'%' . unpack('H2', $1)/eg; という書き方をしているものがあるが、(\W) では正しい結果にならない。\W ではスペースが %20 にエスケープされてしまうからだ。
まず \w とスペース以外を %HH 形式に変換し、そのあとスペースを + にする、というのが正しい。もっとも、多くのプログラムでは以下に示すようなデコードを行っているので、%20 でも + でもスペースに変換してくれる。
大崎さんの perl メモの URIエスケープ・アンエスケープする に詳しい。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
- url encode
sub url_encode($) {
my $str = shift;
$str =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;
$str =~ tr/ /+/;
return $str;
}
大崎さんはエスケープ対象の指定に [^\w ] を使っている。他のウェブサイトでは s/(\W)/'%' . unpack('H2', $1)/eg; という書き方をしているものがあるが、(\W) では正しい結果にならない。\W ではスペースが %20 にエスケープされてしまうからだ。
application/x-www-form-urlencoded でのエンコードでは
control names と values のスペースは + に変換し,
それ以外の予約文字を %HH の形式に URIエスケープします.
まず \w とスペース以外を %HH 形式に変換し、そのあとスペースを + にする、というのが正しい。もっとも、多くのプログラムでは以下に示すようなデコードを行っているので、%20 でも + でもスペースに変換してくれる。
- url decode
sub url_decode($) {
my $str = shift;
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
return $str;
}
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20030826/1/
以前ローソンでカードで買い物したとき、もらったレシートにカード番号が全桁記載されていて驚いた。いまでも変わっていないんだろうなあ・・・。
以前ローソンでカードで買い物したとき、もらったレシートにカード番号が全桁記載されていて驚いた。いまでも変わっていないんだろうなあ・・・。
* JavaScript で id や name 属性でオブジェクトにアクセスする
この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [JavaScript]
<a href="/" id="backlink" name="backlink"><戻る</a>
上記 a 要素があるとする。スクリプトから href 属性をコントロールしたいので、
id と name を明示的に指定して名前付けをしてある。
しかし、例によって UserAgent によって、名前でのアクセスの仕方が異なる。
alert(document.links['backlink'].href);
alert(links.['backlink'].href);
alert(backlink.href);
調査結果は省略するが、Mozilla と IE でそれぞれどの表記にも対応している訳ではなく、両方で使用できるパターンは無かった。
複数のブラウザに対応させる良い方法は無いだろうか?
Google で javascript オブジェクト 有無 判定を検索すると、もじら組のページがヒットした。
ブラウザ判別とオブジェクト検出 - Web標準普及プロジェクト
http://www.mozilla.gr.jp/standards/webtips1004.html
オブジェクトが存在するかどうかを直接チェックする方法だ。汎用的な手法ということで、このコードを使うことにした。
上記 a 要素があるとする。スクリプトから href 属性をコントロールしたいので、
id と name を明示的に指定して名前付けをしてある。
しかし、例によって UserAgent によって、名前でのアクセスの仕方が異なる。
- パターン
alert(window.document.links['backlink'].href);alert(document.links['backlink'].href);
alert(links.['backlink'].href);
alert(backlink.href);
調査結果は省略するが、Mozilla と IE でそれぞれどの表記にも対応している訳ではなく、両方で使用できるパターンは無かった。
複数のブラウザに対応させる良い方法は無いだろうか?
Google で javascript オブジェクト 有無 判定を検索すると、もじら組のページがヒットした。
ブラウザ判別とオブジェクト検出 - Web標準普及プロジェクト
http://www.mozilla.gr.jp/standards/webtips1004.html
オブジェクトが存在するかどうかを直接チェックする方法だ。汎用的な手法ということで、このコードを使うことにした。
ブラウザ判別に代わる方法として、実際に使いたいオブジェクトの有無を判定するオブジェクト検出という方法があります。
function toggleLayer2(id){
if (document.getElementById) {
if (document.getElementById(id).style.visibility == "hidden") {
document.getElementById(id).style.visibility = "visible";
} else {
document.getElementById(id).style.visibility = "hidden";
}
} else if (document.all) {
if (document.all(id).style.visibility == "hidden") {
document.all(id).style.visibility = "visible";
} else {
document.all(id).style.visibility = "hidden";
}
} else if (document.layers) {
if (document.layers[id].visibility == "hide") {
document.layers[id].visibility = "show";
} else {
document.layers[id].visibility = "hide";
}
}
}
Google で perl url エンコードを検索、と書いたら、それが自動的に Google へのリンクになってくれるとうれしい。ということで、以下の正規表現による置換を cl.conf に追加した。
chalow はキーワードの置換に perl の eval() を使っている。eval() の中身は文字列として表記しなければならないため、" や ' のエスケープが面倒。そのせいもあってあんまりきれいな正規表現じゃないけど、普段使いにはこれで十分でしょ。ちなみに、上記正規表現で使ってる url_encode() はさきに紹介したもの。
s!(google\s*で\s*(.*?)\s*(を|で)検索)!"<a href=\"http://www.google.com/search?num=50&lr=lang_ja&ie=euc-jp&q=" . url_encode($2) . "\" title=\"Google 検索: $2\">$1</a>"!eig;
chalow はキーワードの置換に perl の eval() を使っている。eval() の中身は文字列として表記しなければならないため、" や ' のエスケープが面倒。そのせいもあってあんまりきれいな正規表現じゃないけど、普段使いにはこれで十分でしょ。ちなみに、上記正規表現で使ってる url_encode() はさきに紹介したもの。
PC関係のメモ から。
http://mylab.jp/diary/20030819.html#p01 よりも
http://mylab.jp/diary/20030821.html#p01 の方が正しそうなのでそちらを転載。
http://mylab.jp/diary/20030819.html#p01 よりも
http://mylab.jp/diary/20030821.html#p01 の方が正しそうなのでそちらを転載。
/usr/local/apache/logs/host1-access_log /usr/local/apache/logs/host2-access_log
{
rotate 50
daily
sharedscripts
postrotate
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2> /dev/null` 2> /dev/null
EXT=`date +%Y%m%d`
for f in $1;
do mv $f.1 $f.$EXT;
/bin/gzip -f $f.$EXT
done
endscript
}
- 試してみたがうまく動かない
ローテーション回数を50としているが、古いファイルを削除できていない。-v オプションを付けて logrotate を実行するとよくわかるが、単に .1 .2 といったファイルを探して削除しようとしているので、名前を変えていると削除できないのだ。 find でタイムスタンプが一定以上古いファイルを探し出して rm に渡して消すとか、そういった仕組みを入れてあげないとうまくいかないだろう。* SQL Server のトランザクションログの運用
この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [MS SQL Server] [バックアップ]
トランザクションログがいっぱいになると、その時点で DB が停止する。
今回のプロジェクトではどのような運用が望ましいのかを調査。
[SQL:02744] Re: トランザクションログの見積り
http://www.users.gr.jp/ml/archive/sql/2744.asp
現在のトランザクションログサイズは、814MBだ。これだけあれば十分だろう。
今回のプロジェクトではどのような運用が望ましいのかを調査。
- フルバックアップで十分。
今回のプロジェクトで使用している SQL Server では、毎日 2:30 に DB のフルバックアップを取得している。この時点で前回バックアップからのトランザクションログを破棄してしまって構わない。また、トランザクションログのサイズの見積もりは、以下のようにして行う。[SQL:02744] Re: トランザクションログの見積り
http://www.users.gr.jp/ml/archive/sql/2744.asp
現在のトランザクションログサイズは、814MBだ。これだけあれば十分だろう。
mod_auth_cookie、mod_ticket のどちらも apache のモジュール。apache レベルで 特定のトークンを持っているかどうかをチェックし、アクセスの可否を決定できるようにする。
ライブラリ側にあるとうれしい機能だな。以前作ったサイトは、これで置き換えられるかもしれない。もっとも、あのときは cookie を使わないようにするという仕様と、学習のためにあえてすべてをアプリ側で実装するようにしたんだった。
ライブラリ側にあるとうれしい機能だな。以前作ったサイトは、これで置き換えられるかもしれない。もっとも、あのときは cookie を使わないようにするという仕様と、学習のためにあえてすべてをアプリ側で実装するようにしたんだった。
2003-08-13 で書いた、syslog の使い方について調査。
運用ツール、夜間バッチなどでエラーや作業結果をログに書くとき、
アプリケーション独自のログに書くよりも、syslog に書いた方が汎用的だし、管理もしやすい。
/etc/syslog.conf に、テスト用のログのファシリティと出力先をセット。
コマンドラインから syslog にメッセージを送ってみる。
書けたようだ。
そんな時にどうすれば楽かを調べた。perl から syslog に書くためのモジュールがあるようだ。
Sys::Syslog モジュールを使う時の設定
http://www.egroups.co.jp/message/perl-lesson/722
冗長だと思われる部分を削り、テスト環境固有の情報を追加したのが以下のコード。
これだけ。
なるほど、システムのインクルードファイルを変換する必要があるのだな。
ということで作業。しかし、上記作業をしても、stdarg.ph がない、というエラーが出てしまう。
Google で syslog stdarg.ph を検索したら、見事にヒット。Nomail というツールの FAQ に、stdarg.ph のことが書いてあった。
http://www.ku3g.org/negi/nomail/FAQ
これを参考にして h2ph を実行したらうまくいった。それでも、-w スイッチを付けてスクリプトを実行すると以下のような警告が表示されてしまう。まあ致命的ではないので問題はないだろう。
Re: [perl-lesson] Sys::Syslog モジュールを使う時の設 定
http://www.egroups.co.jp/message/perl-lesson/728
運用ツール、夜間バッチなどでエラーや作業結果をログに書くとき、
アプリケーション独自のログに書くよりも、syslog に書いた方が汎用的だし、管理もしやすい。
- 事前準備とテスト
syslog.conf を設定。/etc/syslog.conf に、テスト用のログのファシリティと出力先をセット。
# syslog test
local6.* /var/log/syslog_test.log
コマンドラインから syslog にメッセージを送ってみる。
$ logger -p local6.debug -i -t "sample" "sample log"
$ tail -f /var/log/syslog_test.log
Aug 20 15:14:20 pro sample[4826]: sample log
書けたようだ。
- perl から syslogd にメッセージを送る
ツールは シェルスクリプトや perl スクリプトで書く場合が多い。そんな時にどうすれば楽かを調べた。perl から syslog に書くためのモジュールがあるようだ。
- perl から syslod に書くためのサンプルスクリプト
perl-lesson ML の過去ログに良さそうなものがあった。Sys::Syslog モジュールを使う時の設定
http://www.egroups.co.jp/message/perl-lesson/722
冗長だと思われる部分を削り、テスト環境固有の情報を追加したのが以下のコード。
#!/usr/bin/perl
use Sys::Syslog; # all except setlogsock, or:
print "Syslog test\n";
openlog(__FILE__, 'cons,pid', 'local6');
syslog('debug', 'this is another test');
closelog();
これだけ。
- 環境
[hiroaki@sonic hiroaki]$ cat /etc/turbolinux-release
Turbolinux Server 6.5 (Jupiter)
[hiroaki@sonic hiroaki]$ perl -v
This is perl, version 5.005_03 built for i386-linux
- ライブラリが足りない。
上記スクリプトを動かす前に -wc のチェックをかけたところ、エラーが発生した。$ perl -wc syslog.pl
Constant subroutine __stub_lgammal redefined at /usr/lib/perl5/5.00503/i386-linux/gnu/stubs.ph line 58.
Constant subroutine __stub_lgammal_r redefined at /usr/lib/perl5/5.00503/i386-linux/gnu/stubs.ph line 64.
Can't locate stdarg.ph in @INC (did you run h2ph?) (@INC contains: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 .) at /usr/lib/perl5/5.00503/i386-linux/sys/syslog.ph line 7.
BEGIN failed--compilation aborted at syslog.pl line 3.
- did you run h2ph?
did you run h2ph? というエラーメッセージにあるとおり、h2ph という作業が必要なようだ。h2ph はシステムにあるヘッダを perl から扱えるようにする perl スクリプト。作者は Larry Wall だ。Google で h2ph perl syslog を検索すると、qm-pop3d-pw というツールの readme.txt がヒット。そこの最後の行に記述があった。おまけ
perlでSys::Syslogモジュールを使うのはちょっと面倒です。
うまく設定できていないと、-lオプションを付けると認証できなくなります。
# cd /usr/include
# h2ph *
# cd /usr/include/sys
# h2ph *
を行って、syslog.phを作成しておいてください。
また、Syslog.pmの一部のバージョンではうまく動かないことがありますが、
そのような場合、connect関数内にある、my $syslog = &_PATH_LOGをmy $syslog = &_PATH_LOG()とすると動くことがあります。
なるほど、システムのインクルードファイルを変換する必要があるのだな。
ということで作業。しかし、上記作業をしても、stdarg.ph がない、というエラーが出てしまう。
Google で syslog stdarg.ph を検索したら、見事にヒット。Nomail というツールの FAQ に、stdarg.ph のことが書いてあった。
http://www.ku3g.org/negi/nomail/FAQ
Q. stdarg.ph が無いというエラーが出るんですけど
A. Linux の glibc-2.1.x では syslog.h から stdarg.h が include
されています。stdarg.h は
/usr/lib/gcc-lib/i586-redhat-linux/2.95.3/include/
とか非常にわかりにくいところにあり,Perl をインストールする時
に見落していることが多いようです。
# cd /usr/lib/gcc-lib/i586-redhat-linux/2.95.3/include/
# h2ph stdarg.h
として生成してください。
これを参考にして h2ph を実行したらうまくいった。それでも、-w スイッチを付けてスクリプトを実行すると以下のような警告が表示されてしまう。まあ致命的ではないので問題はないだろう。
$ perl -wc /home/hiroaki/test/syslog.pl
Constant subroutine __stub_lgammal redefined at /usr/lib/perl5/5.00503/i386-linux/gnu/stubs.ph line 58.
Constant subroutine __stub_lgammal_r redefined at /usr/lib/perl5/5.00503/i386-linux/gnu/stubs.ph line 64.
Constant subroutine __need___va_list undefined at /usr/lib/perl5/site_perl/5.005/i386-linux/stdarg.ph line 9.
/home/hiroaki/test/syslog.pl syntax OK
- まだ書けない。
実行してみたが、全然書かれない。tail -f /var/log/syslog_test.log しているが、一行も書き込まれないのだ。Google で perl Sys::Syslog を検索すると、再び perl-lesson ML がヒット。Re: [perl-lesson] Sys::Syslog モジュールを使う時の設 定
http://www.egroups.co.jp/message/perl-lesson/728
> Syslog.pmを覗いてみたところ、UDPでsyslogに書き込んでるみたいですが、
> 僕のRed Hat 6.2に入ってるsysklogd-1.3.31-17は、
> デフォルトではUDP経由での書き込みを受け付けません。
> #man syslogdでrオプションのところに書いてありました。
perldoc Sys::Syslogしてみると、
setlogsock $sock_type (added in 5.004_02)
Sets the socket type to be used for the next call to
openlog() or syslog() and returns TRUE on success,
undef on failure.
A value of 'unix' will connect to the UNIX domain
socket returned by the _PATH_LOG macro…
と書かれているので、「setlogsock 'unix';」とopenlogの前に書いたら
syslogdのオプションを変えなくてもうまく行きそうです。
(「use Sys::Syslog qw(:DEFAULT setlogsock);」とされてますし」
- 書けた。
setlogsock を呼ぶようにしたら書けた。最終的なコードは以下のようになった。#!/usr/bin/perl
# use Sys::Syslog; # all except setlogsock, or:
use Sys::Syslog qw(:DEFAULT setlogsock); # default set, plus setlogsock
print "Syslog test\n";
setlogsock 'unix';
openlog(__FILE__, 'cons,pid', 'local6');
syslog('debug', 'this is another test');
closelog();
ms-help というスキームがある。こんな感じ。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconconnectio ...
この ChangeLog でも、2003-06-17 などでこのスキームを使ったリンクを張ったことがある。
クリックすると MSDN の help をブラウザで表示してくれるのだが、
これを mozilla でクリックするとどうなるのかを試してみた。
というか、このスキームでアクセスした場合、いったいどこのリソースを参照しているのかを知りたかった。
結局、ローカルにインストールされた MSDN help を参照しているようだ。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconconnectio ...
この ChangeLog でも、2003-06-17 などでこのスキームを使ったリンクを張ったことがある。
クリックすると MSDN の help をブラウザで表示してくれるのだが、
これを mozilla でクリックするとどうなるのかを試してみた。
というか、このスキームでアクセスした場合、いったいどこのリソースを参照しているのかを知りたかった。
- 結果
IE が立ち上がって、IE にヘルプの中身が表示された。結局、ローカルにインストールされた MSDN help を参照しているようだ。
Set-Cookie2 の方が指定できるパラメータが多いようだ。
Set-Cookie と Set-Cookie2 のどちらを使ったらよいかだが、現在のところは Set-Cookie でいいと思う。
2003年5月1日(木曜日) のえび日記 > 「Set-Cookie2」
http://altba.com/bakera/hatomaru.aspx/ebi/topic/555
連載:インターネット・プロトコル詳説(2)HTTP(Hyper Text Transfer Protocol)〜後編
http://www.atmarkit.co.jp/fnetwork/rensai/netpro02/netpro01. ...
Set-Cookie と Set-Cookie2 のどちらを使ったらよいかだが、現在のところは Set-Cookie でいいと思う。
2003年5月1日(木曜日) のえび日記 > 「Set-Cookie2」
http://altba.com/bakera/hatomaru.aspx/ebi/topic/555
連載:インターネット・プロトコル詳説(2)HTTP(Hyper Text Transfer Protocol)〜後編
http://www.atmarkit.co.jp/fnetwork/rensai/netpro02/netpro01. ...
man表示内容をファイル保存させたい
http://www.itmedia.co.jp/help/tips/linux/l0697.html
col を使って、man の出力から制御コードを取り除いている。
http://www.itmedia.co.jp/help/tips/linux/l0697.html
col を使って、man の出力から制御コードを取り除いている。
$ man ls | col -bfx > ls.txt
http://bulknews.net/lib/doc-ja/etoys.ja.html
やっぱり perl の真髄はモジュールにありということか。例外をサポートしてる言語は便利だな。
やっぱり perl の真髄はモジュールにありということか。例外をサポートしてる言語は便利だな。
いろんなところで話題になってる、Google を電卓にする機能。
Googleの特殊機能 電卓機能
http://www.google.com/help/features.html#calculator
「よーしパパ半径10cm の円の面積求めちゃうぞー」という場合。
http://www.google.com/search?lr=lang_ja&ie=euc-jp&q= ...
Googleの特殊機能 電卓機能
http://www.google.com/help/features.html#calculator
「よーしパパ半径10cm の円の面積求めちゃうぞー」という場合。
http://www.google.com/search?lr=lang_ja&ie=euc-jp&q= ...
http://www.keynavi.net/ja/bugh/
中身は見てないが、何かの役に立ちそうなのでメモ。
他のサイトのコメントを見ていると、「場当たり的で美しくない解法ばかり」
という意見が目立つけど、仕事ではそうも言ってられないときもあるからなあ。
中身は見てないが、何かの役に立ちそうなのでメモ。
他のサイトのコメントを見ていると、「場当たり的で美しくない解法ばかり」
という意見が目立つけど、仕事ではそうも言ってられないときもあるからなあ。
新人の研修カリキュラムにセッションを追加することになった。というか、以前に「セッションも学んでほしい」と言われていたのを、私が忘れてただけだったりする。というわけでカリキュラムに追加。
この段階での確認項目
・セッションとは何かを説明できること
・セッションを実現するための仕組みについて、2つ以上の手法を説明できること
・セッションハイジャックと、その対策について説明できること
さて、perl でどうセッション実現しようかな。2003-08-13 のモジュールもいいが、単に cookie を使った簡単なやつにしようか。
セッションデータは、/tmp/USER_NAME/session 以下 にファイルとして保存する。
ユーザ名が hiroaki ならば、 /tmp/hiroaki/session に保存。
クライアントからリクエストが来たら、セッション ID があるかどうかをチェックする。
セッション ID がリクエストに存在し、かつ有効であれば処理を続行。
セッション ID が存在しないか、存在しても無効な値か、タイムアウトしている場合はログイン画面を表示する。
・セッション ID は、必ずサーバ側で生成したものをクライアントに与えるようにする。
・セッション ID の生成には、必ず乱数を含める。
(時刻 + 乱数 + サーバ側環境変数 + クライアント側環境変数) を md5 する、位は必要。
・リクエストされる度にセッション ID を振り出し直すと ID の強度を高められる。
・通信経路を暗号化しないと、盗聴されてセッション ID を乗っ取られる恐れがある。
【連載】セキュアなWebサイトを運営するための Webアプリケーションに潜むセキュリティホール
第3回 気を付けたい貧弱なセッション管理
http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole ...
[PHP-users 17254]Re: セッションハイジャック対策
http://ns1.php.gr.jp/pipermail/php-users/2003-August/017782. ...
この段階での確認項目
・セッションとは何かを説明できること
・セッションを実現するための仕組みについて、2つ以上の手法を説明できること
・セッションハイジャックと、その対策について説明できること
さて、perl でどうセッション実現しようかな。2003-08-13 のモジュールもいいが、単に cookie を使った簡単なやつにしようか。
- Cookie を使った簡単なセッションを実装する
ログイン画面で ID とパスワードによる認証が完了したら、セッション ID を振り出し、Cookie にセットする。セッションデータは、/tmp/USER_NAME/session 以下 にファイルとして保存する。
ユーザ名が hiroaki ならば、 /tmp/hiroaki/session に保存。
クライアントからリクエストが来たら、セッション ID があるかどうかをチェックする。
セッション ID がリクエストに存在し、かつ有効であれば処理を続行。
セッション ID が存在しないか、存在しても無効な値か、タイムアウトしている場合はログイン画面を表示する。
- セッションハイジャックへの対策と考え方
カリキュラム終了後には、以下が必要な理由を説明できるようになっていてほしいな。・セッション ID は、必ずサーバ側で生成したものをクライアントに与えるようにする。
・セッション ID の生成には、必ず乱数を含める。
(時刻 + 乱数 + サーバ側環境変数 + クライアント側環境変数) を md5 する、位は必要。
・リクエストされる度にセッション ID を振り出し直すと ID の強度を高められる。
・通信経路を暗号化しないと、盗聴されてセッション ID を乗っ取られる恐れがある。
【連載】セキュアなWebサイトを運営するための Webアプリケーションに潜むセキュリティホール
第3回 気を付けたい貧弱なセッション管理
http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole ...
[PHP-users 17254]Re: セッションハイジャック対策
http://ns1.php.gr.jp/pipermail/php-users/2003-August/017782. ...
セッションを実現するための仕組みについて調査。
ライブラリに任せるなら、Apache::Session が有名なようだ。
Apache::Session モジュール v1.52
http://member.nifty.ne.jp/hippo2000/perltips/apache/Session. ...
Perlでセッション管理するためのPerlモジュール
http://www.ahref.org/perl/a.phtml?number=10000007
Perlモジュール/Apache::Session - Perlによるセッション管理モジュール。
http://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5 ...
ライブラリに任せるなら、Apache::Session が有名なようだ。
Apache::Session モジュール v1.52
http://member.nifty.ne.jp/hippo2000/perltips/apache/Session. ...
Perlでセッション管理するためのPerlモジュール
http://www.ahref.org/perl/a.phtml?number=10000007
Perlモジュール/Apache::Session - Perlによるセッション管理モジュール。
http://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5 ...
SoftwareDesign で高林さんの pdumpfs の記事を読んだら、
なんだか ruby をインストールしたくなった。
たしか先日 1.80 がリリースされたはず。ここは一発チャレンジだ。
まだ枯れてはいない 1.80 をインストールする。
コンパイルとインストールはとくにトラブル無く進んだ。
ただ、make test の結果が、
の一行だけってのがなんか寂しい気もした。
何のテストしてるのかもよくわからないし。まあいいか。
ということで、インストール完了。
なんだか ruby をインストールしたくなった。
たしか先日 1.80 がリリースされたはず。ここは一発チャレンジだ。
まだ枯れてはいない 1.80 をインストールする。
wget http://www.t.ring.gr.jp/archives/lang/ruby/1.8/ruby-1.8.0.tar.gz
tar zxvf ruby-1.8.0.tar.gz
cd ruby-1.8.0/
./configure && make && make test
su
make install
コンパイルとインストールはとくにトラブル無く進んだ。
ただ、make test の結果が、
test succeeded
の一行だけってのがなんか寂しい気もした。
何のテストしてるのかもよくわからないし。まあいいか。
ということで、インストール完了。
サーバで動いてるサービスを監視できる仕組みを作る必要がある予感。
perl などから syslog に書けるようにする必要があるだろう。
アプリケーション毎のログファイルに出力しても良いのだが、
それを毎日一つ一つチェックするのは大変。
ここでも「ポケット一つ原則」を適用すべきだろう。
なにかトラブルやその予兆があったら自動的にメールする、
といったことも syslog に任せられるみたいだし。
http://www.infoscience.co.jp/technical/press/
Linux管理者への道 第3回 システム管理の基礎 syslogdの設定をマスターしよう
http://www.atmarkit.co.jp/flinux/rensai/root03/root03a.html
Linux管理者への道 第4回 サーバのログ監視ツールを使いこなそう
http://www.atmarkit.co.jp/flinux/rensai/root04/root04a.html
いちばん近道な Linuxマスター術 第4回:システムログの読み方を理解しよう
http://www.itmedia.co.jp/help/howto/linux/0007master/04/
http://www.deer-n-horse.jp/linux/tips/swatch.html
perl などから syslog に書けるようにする必要があるだろう。
アプリケーション毎のログファイルに出力しても良いのだが、
それを毎日一つ一つチェックするのは大変。
ここでも「ポケット一つ原則」を適用すべきだろう。
なにかトラブルやその予兆があったら自動的にメールする、
といったことも syslog に任せられるみたいだし。
- syslog の仕組みと使い方
ログ管理 〜syslogとその周辺〜http://www.infoscience.co.jp/technical/press/
Linux管理者への道 第3回 システム管理の基礎 syslogdの設定をマスターしよう
http://www.atmarkit.co.jp/flinux/rensai/root03/root03a.html
Linux管理者への道 第4回 サーバのログ監視ツールを使いこなそう
http://www.atmarkit.co.jp/flinux/rensai/root04/root04a.html
いちばん近道な Linuxマスター術 第4回:システムログの読み方を理解しよう
http://www.itmedia.co.jp/help/howto/linux/0007master/04/
- 出力されたログをチェックする
Swatchでログ監視するhttp://www.deer-n-horse.jp/linux/tips/swatch.html
たつをの ChangeLog から。
http://nais.to/~yto/clog/2003-08.html#2003-08-12-1
http://nais.to/~yto/clog/2003-08.html#2003-08-12-1
wget http://openlab.ring.gr.jp/Jcode/Jcode-0.83.tar.gz
tar zxvf Jcode-0.83.tar.gz
cd Jcode-0.83
perl Makefile.PL
make
make test
make install
デサント製のゴーグル。肌に触れる部分がシリコンになっている。
AGL-9500 というモデル。もっと安い 1500円の物もあったが、シリコンに惹かれて購入。
FKD インターパーク店内の DESCENTE D310 で5%税込み1995円。
使ってみると、吸い付く感じが少しだけするような気がするが、あんまり変わらないかも。
デサントのオフィシャルサイトは flash が無いと閲覧さえできないというアクセシビリティを無視したサイトなのでトップーページにのみリンク。代わりに一般小売店のサイトの商品紹介ページにリンクしておく。
アリーナスイムゴーグルAGL9500を通信販売【水着専門店ベタートゥモロー】
http://mizugishop.com/goggle/AGL9500.htm
arena/アリーナ
http://www.descente.co.jp/arena-jp/
AGL-9500 というモデル。もっと安い 1500円の物もあったが、シリコンに惹かれて購入。
FKD インターパーク店内の DESCENTE D310 で5%税込み1995円。
使ってみると、吸い付く感じが少しだけするような気がするが、あんまり変わらないかも。
デサントのオフィシャルサイトは flash が無いと閲覧さえできないというアクセシビリティを無視したサイトなのでトップーページにのみリンク。代わりに一般小売店のサイトの商品紹介ページにリンクしておく。
アリーナスイムゴーグルAGL9500を通信販売【水着専門店ベタートゥモロー】
http://mizugishop.com/goggle/AGL9500.htm
arena/アリーナ
http://www.descente.co.jp/arena-jp/
http://ton.2ch.net/body/kako/1012/10120/1012030613.html
314 :病弱名無しさん :02/05/05 19:34 ID:0gIj8LKQ
ずいぶん前にテレビでチャック・ウィルソンw)がやってた
肩こりに効く体操っていうので随分楽になりました。
まず立って、肩幅くらいに足を開き、1キロ程度のダンベルかペットボトルを両手に持って、
�]咾鮨�ばした状態で肩を前から後ろに回す×15回(1セット)
�∀咾鮨�ばして頭の上から太もものあたりまで上げ下ろしするのを繰り返す。
このとき、右腕と左腕は交互に。
説明が上手く出来ないけれど、病院で教えてもらった肩こり体操より効く!
グランプリでは順位に応じて入着ポイントがもらえる。
ポイントは Nintendo 64版 F-ZERO X とGameCube 版 F-ZERO GC で共通。
左の列が順位、右の列が入着ポイント。
1 100
2 93
3 87
4 81
5 76
6 71
7 66
8 62
9 58
10 54
11 50
12 47
13 44
14 41
15 38
16 35
17 33
18 31
19 29
20 27
21 25
22 23
23 22
24 21
25 20
26 19
27 18
28 17
29 16
30 15
(ライバルのポイント + 101) - (自分の現在のポイント) = 優勝に必要なポイント
上記の入着ポイント表から、優勝に必要なポイントを得られる最低の順位を求める。
例)
ライバルが 240ポイントで、自分が285ポイントだとする。
仮にライバルに一位を取られた場合、ライバルは 240 + 100 で340 ポイント。
自分は 341 ポイント以上であれば勝てるので、341 - 285 = 56 ポイント以上獲得すれば勝てる。
56ポイント以上獲得できる最低の順位は 9位だ。
相手がどんな順位であろうと、自分が9位以上でゴールすれば勝てる。
ところで、入着ポイントじゃなくてドライバーズポイントと呼ぶ方が一般的?
ポイントは Nintendo 64版 F-ZERO X とGameCube 版 F-ZERO GC で共通。
左の列が順位、右の列が入着ポイント。
1 100
2 93
3 87
4 81
5 76
6 71
7 66
8 62
9 58
10 54
11 50
12 47
13 44
14 41
15 38
16 35
17 33
18 31
19 29
20 27
21 25
22 23
23 22
24 21
25 20
26 19
27 18
28 17
29 16
30 15
- 優勝するための入着ポイント計算
決勝で自分が何位以内でゴールすれば優勝できるかは、以下の手順で求められる。(ライバルのポイント + 101) - (自分の現在のポイント) = 優勝に必要なポイント
上記の入着ポイント表から、優勝に必要なポイントを得られる最低の順位を求める。
例)
ライバルが 240ポイントで、自分が285ポイントだとする。
仮にライバルに一位を取られた場合、ライバルは 240 + 100 で340 ポイント。
自分は 341 ポイント以上であれば勝てるので、341 - 285 = 56 ポイント以上獲得すれば勝てる。
56ポイント以上獲得できる最低の順位は 9位だ。
相手がどんな順位であろうと、自分が9位以上でゴールすれば勝てる。
ところで、入着ポイントじゃなくてドライバーズポイントと呼ぶ方が一般的?
トビトビについて(攻略スレより)
これ、かなり楽しい。「おおぞらをとぶ」って感じ。
http://game4.2ch.net/test/read.cgi/famicom/1060359454/18-25n
これ、かなり楽しい。「おおぞらをとぶ」って感じ。
http://game4.2ch.net/test/read.cgi/famicom/1060359454/18-25n
やり方は、グリップ性能が良くて軽いマシンを作り
ある程度のスピードをつけて飛び降り、空中でスティック+曲がる方向のLRトリガーを押しっぱなしにする。
空中で目一杯スライドターンをする感じ。
1.ジャンプした瞬間くらいから左ハンドル+Lボタン=左スライドターン開始。
2.両方押したままにしておくと勝手に上昇していく。
この飛行テクを使うと旋回しつつ上昇するが、旋回の方向を左右に入れ替えつつ
蛇行すると 通常じゃ飛べないような距離を飛ぶことができる。
具体的には、まず左旋回で飛び出したら、マシンが90度横を向いた時に反対方向へ
切り返し。 右旋回で180度ターンしたら再び左、また180度で右…といった感じ。
こんな軌道
→→↓ →→↓
↑ ↓ ↑ ↓ ↑
→→↑ →→↑
ズレてるかも。
カレントディレクトリにあるファイルとディレクトリへのシンボリックリンクを、/tmp/lntest に作成するシェルスクリプト。大したことをやってるわけじゃなくて、for 文でループさせてるだけ。実を言うと、単に bash での for 文の使い方を知りたかっただけだ。
いちおう削除も書いておこう。
$ for i in *; do ln -s "`pwd`/$i" "/tmp/lntest/$i"; doneダブルクオートしておくと、ファイル名にスペースが入っていても大丈夫。
いちおう削除も書いておこう。
$ for i in /tmp/lntest/*; do rm -f "$i"; done
* こんな ChangeLog メモツール、Weblog ツールがほしい
この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [ChangeLog メモ]
- 結城さんの日記を読んでいて触発された。
2003-04-24 にも書いたけど、もっと便利な Weblog ツール、ChangeLog メモツールがほしい。結城浩の日記 2003年7月1日 (火) - WebLogツールのアイディア
http://www.hyuki.com/diary/dia0307.html#i01
- 私が ChangeLog ツールに求めること
テキストエディタで書けること。専用のツールがないと書けないのは NG。面倒な文法やタグ、記述のルールが少ないこと。
そのツールでしか通用しないようなルールを新たに覚えるくらいなら、最初から SGML で書く。
ルールがあったとしても、勝手にそれを付加してくれるフィルタが用意されてるなら構わないけど。
たとえば ChangeLog メモでは、日付と名前以外の部分はタブでインデントしなければならない、というルールがある。
これは日付以外のところはツール側で勝手にタブを付加してくれてもいいはずだ。Emacs の ChangeLog モードはこれをやってくれるので便利だ。自動整形には100%の精度は求めない。ある程度編集を楽にしてくれればそれでいい。
また、文字列を自動的にリンクや文書構造に変換してくれるとうれしい。
http:// や ftp:// という文字列があれば、当然リンクになってほしい。
メールや NetNews でよく使われる引用記号の > や | が行頭に来ていたら、引用部だと解釈してほしい。
行頭に ・ が来ていたら、箇条書きだと解釈してほしい。
行頭に 1.、次の行頭に 2.、さらに次の行頭に 3. とあったら、番号付き箇条書きだと解釈してほしい。
Google で *** を検索、と書いたら、Google へのリンクになってほしい。
日付をある程度定められた書式で書いたら、その日付の ChangeLog エントリへのリンクになってほしい。
ISBN を書いたら、オンライン書店の該当商品ページへのリンクになってほしい。
http:// のリンク先文字列の末尾が .jpg、 .png、.gif のいずれかだったら、
サムネイルを表示してほしい。
・・・。なんかリンクばっかりだな。ハイパーリンクはハイパーテキストの真髄だから当たり前か。
書いた内容を再利用できること。他のツールやフォーマットに変換や移行が簡単にできること。
内容の検索が簡単にできること。
スタイルシートなどで、見た目の変更が簡単に出来ること。
http クライアントや proxy にキャッシングしないように指示するには、http レスポンスヘッダに以下を組み込む。
proxy を経由した場合に情報が失われるおそれがあるので、html にも以下の情報を入れておくのが望ましい。Pragma が HTTP 1.0 用、Cache-Control が HTTP 1.1 用。両方入れておけば完璧。
HTTP/1.1: ヘッダフィールド定義
http://www.studyinghttp.net/rfc_ja/2616/sec14.html#sec14.9
Cache-Control: no-cache
Pragma: no-cache
proxy を経由した場合に情報が失われるおそれがあるので、html にも以下の情報を入れておくのが望ましい。Pragma が HTTP 1.0 用、Cache-Control が HTTP 1.1 用。両方入れておけば完璧。
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
HTTP/1.1: ヘッダフィールド定義
http://www.studyinghttp.net/rfc_ja/2616/sec14.html#sec14.9
14.9 Cache-Control
Cache-Control 一般ヘッダフィールドは、リクエスト/レスポンス連鎖上のすべてのキャッシングメカニズムが従わなければならない指示を記述するために使用される。キャッシュがリクエストやレスポンスに不利になるように干渉させないような振る舞いを指定する。これらの指示は、常にデフォルトのキャッシングアルゴリズムを上書きするものである。
F-ZERO GX