たつをの ChangeLog : 2004-12-17

くっつきBBSにセキュリティ上の問題(XSS)がありましたので、
修整し、最新版 Ver 1.0rc3 としてリリースしました。
<http://ta2o.net/tools/kuttukibbs/>

奥山敦史氏 <http://homepage3.nifty.com/oatu/index.html> に今回の
問題をご指摘頂きました。ありがとうございました。
(1) Edit 後に、エスケープした HTML タグが復活してしまう問題 → 対処
(2) 名前やE-mail(URL)がちゃんとエスケープされないことがある問題。
    これは主に cookie がらみ。クッキーから出すときにエスケープして
    なかった。 → 対処

あと、getlog.cgi のセキュリティホールにも対処しました。
getlog.cgi を利用している方(いる?)はこれだけでもすぐに置き換え
るか、利用を中止することをおすすめします。


無敵会議最終回 超忘年会議 〜 究極に役立つ無敵サイトを探す 〜
<http://www.muteki-kaigi.com/archives/000023.html>
日付2004/12/25 (土) 17:40-20:00 (17:30開場)
場所デジハリ東京本校
費用3,000円(税込、当日現金払)
定員限定80名(先着順)

最終回です。今年の締めくくりとして参加します。

今回の事前課題
Q1. あなたにとっての「究極のウェブサイト」のURLを教えてください。
ありきたりでつまんないんですけど、使用頻度が高くて実生活(←ネット
生活ではなく)を便利にしてくれているサイトを上げてみました。
...マイナーで無敵なサイトってあるのかなあ。当日が楽しみ。
とはいえ、来年はマイナーで無敵であさましいサイトを運営開始予定。
この記事に言及しているこのブログ内の記事

Perl の今更なお話。
個人的に、@{[ ]} での文字列中展開と三項演算子(COND ? THEN : ELSE)
の組み合わせが気に入っています。以下のように使います。
@{[($mode eq 'show') ? "checked" : ""]}
この例では、$mode が "show" のとき、「@{[...]}」全体が "checked"
に置き換わります。form の radio 等で便利。

その場しのぎなプログラムを書き散らすとき、
テンプレート的なものを使う必要がある場合はまずこの方法でやります。
で、変数部分が増えてきたら HTML::Template を使います。

参考:
「文字列中の関数と式を展開する」 in Perlクックブック
「ハードリファレンスを使った技」 in プログラミングPerl

ちなみに miyagawa 氏によると、こういうのもあって便利らしい。
- HTML::FillInForm (なかなか良い)
- HTML::Template::Expr (かなり遅い)
この記事に言及しているこのブログ内の記事

昨日[2004-12-16-4]の Shibuya Perl Mongers の水野氏のプレゼン
<http://www.takaaki.info/archives/000101.html> で出てきた、
マジカルインクリメントで「perl」という文字列を表示するコード
my $A="a";for(1..285075){$A++;}print"$A";
(出典:<http://www.perlmonks.org/?node_id=137638>)

それに関連して、
「指定した文字列が文字列インクリメントで何番目になるか」という問題。
<http://hori-uchi.com/archives/000243.html>
文字aをインクリメントしていくと、285075番目がperlという文字列にな
るということですが、ふと「horiuchi」は何番目なんだろうと気になり[...]

26進数と考えて以下のようにやってみました(数字無し、小文字を仮定)。
% perl -e '@A=reverse split//,"horiuchi";for(@A){$s+=(ord($_)-96)*
(26**$i++)};print $s-1,"\n";'
69106566940

うむ、miyagawa 氏の解のループの方が洗練されてる...
% perl -e '$n=0;$n=$n*26+ord($_)-ord("a")+1 for split//,"horiuchi";
print $n-1,"\n"'

ともかく、ざっくり試算すると普通に69106566940回文字列インクリメン
トすると、1, 2日はかかりそう。

たつをの ChangeLog
Powered by chalow