日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)
2007/09/03 編集
_ [Web制作] 自治体サイトWebアクセシビリティ調査@ユニバーサルワークス
イケてない自治体サイトNo1は板橋区――ユニバーサルワークス調べ@ITmedia
そっちの切り口で記事にする発想はなかった。板橋区涙目…
「電子メールについては、送信途中において悪意のある第三者による盗聴等の可能性も指摘されていますのでご留意ください。」とあります。意見・感想を送るフォームが、千葉県が運営主体ではないドメインに存在していることを思い起こし、妙に納得してしまいました。
[千葉県のWebアクセシビリティ調査結果|有限会社ユニバーサルワークスより引用]
テラ皮肉。
『試験運用中』とあり、何を指してのことなのかよくわかりませんが、何にしてもサイトの信頼を著しく欠きますので早く本気を出してください。
[板橋区のWebアクセシビリティ調査結果|有限会社ユニバーサルワークスより引用]
といい、妙に辛口というかくだけているというか。(ところで試験運用中というのはどこに書いてあるのだろうか)
コラム読んでみると、かなり個人の趣味色が強いように感じて会社情報見てみたら、形としては会社の形態を取ってるけど実体はほとんど個人的な活動だったのですね。なるほど。
2007/09/05 編集
_ [体調不良] 陥入爪
だいぶ昔から足の親指の爪が巻いて食い込んでいたのだが、最近は膿むようになってしまった。
2〜3ヶ月前には左足が膿んで、2〜3日激痛が続いたのち膿が炸裂。グチャグチャに崩れた後はだいぶ楽になった。
先週からは今度は右足が同じ状態に。本日限界を突破。膿と血が混ざった何かが出てきています。
そもそも膿むようになったのは、数ヶ月前からはさみ型の爪切りを無くして奥の方が切れなくなったため。
この機会にいい物買ってみるかと、菊秀にて SUWADA つめ切りブラック買ってみました。
弱い力でもさっくり切れる。凄い。普通の爪切りと違ってパチッと切れるのではなく柔らかく削れる感じなので、切れた爪が飛ばない。新鮮な感覚。しかしこれは巻き爪・陥入爪対策としてはあまり効かない予感がします。
とりあえずコットンパッキングしてみますよ。
ドイツ ヘンケルネイルニッパー@47CLUB
2007/09/07 編集
_ [システム運用][Perl] Apache Combined Log を効率的にパースする正規表現メモ
ググるとよく見つかるのははてな - Apache形式のログを解析する正規表現を教えてください (Geekなぺーじ : アクセスログの読み方(apache combined logの場合)) の
($host, $ident, $user, $time, $request, $status, $bytes, $referer, $agent)
= ($line =~ /^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/);
だが、最長一致の .* が多数登場するためか、マッチ処理がとても遅い。たった10万行パースするのに Core2 使って23.7秒ってあり得なくね?
できるだけ最短一致でマッチさせるように
($host, $ident, $user, $time, $request, $status, $bytes, $referer, $agent)
= ($line =~ /^([^ ]*) ([^ ]*) ([^ ]*) \[([^]]*)\] "(.*?)" ([^ ]*) ([^ ]*) "(.*?)" "(.*?)"/);
という感じにすると、同環境にて約21倍速くなった。(1.12秒)
実際には Request String をさらに分割取得したいことが多いので
($host, $ident, $user, $time, $method, $resource, $proto, $status, $bytes, $referer, $agent)
= ($line =~ /^([^ ]*) ([^ ]*) ([^ ]*) \[([^]]*)\] "([^ ]*)(?: *([^ ]*) *([^ ]*))?" ([^ ]*) ([^ ]*) "(.*?)" "(.*?)"/);
という感じで使うと良さ毛だ。
_ [システム運用][Perl] Apache Combined Log 解析正規表現ベンチマークの補足 (2007/10/05)
(高速に) Apache の log を解析する正規表現として My RSS 管理人ブログで取り上げられたようなので、これに絡んで補足。
"([^"]*)"
ではなく "(.*?)"
を使うべき
最初にそこで例示された
m!^([^\s]*) [^\s]* [^\s]* \[([^]]*)\] "([^"]*)" ([^\s]*) [^\s]* "([^"]*)" "([^"]*)"!
だが、HTTP Request には稀に " が含まれていることがあるため、その場合 "([^"]*)"
の部分でマッチミスを起こす。
このため、最初に自分が取り上げた上記正規表現では敢えて "(.*?)"
としていたわけである。
…というコメントを寄せたところ補足を加えていただけたようだが、それでも Referer と User-Agent の部分を (.*)
に戻されただけなので、Request に " が含まれていた場合に対応できていない。また、以下に示す通り、(.*)
に変えるだけでも劇的な効果を得られるので、 を
(.*?)(.*)
は (.*?)
にした方が良い。
"(.*?)"
と "((\\"|[^"])*)"
はどちらが高速なのか
また、最初に送信したコメントでも触れたが、Request 中に " が含まれる場合は \" とエスケープされてログに記録されるので、"(.*?)"
の部分は "((\\"|[^"])*)"
とすると解析パフォーマンスを向上させられる可能性があると考え、ベンチマークを取ってみた。(以下全てのベンチマーク環境は Pentium III 1GHz マシンの Debian GNU/Linux 3.1 - Perl 5.8.4)
rx_optim_pmakino1 が /^([^ ]*) [^ ]* [^ ]* \[([^]]*)\] "(.*?)" ([^ ]*) [^ ]* "(.*?)" "(.*?)"/
で、rx_optim_pmakino2 が "(.*?)"
の部分を "((?:\\"|[^"])*)" で置き換えたものである。
rx_optim_pmakino2 10204/s -- rx_optim_pmakino1 46691/s 458%
…予想に反してかえって大幅に遅くなってしまった。
ではひょっとして、わざわざ [^ ]*
や [^"]*
等を使わずに単純に最短一致の .*?
にした方が速くなるのか? と試してみたところ、(rx_optim_pmakino3 → /^(.*?) .*? .*? \[(.*?)\] "(.*?)" (.*?) .*? "(.*?)" "(.*?)"/
)
rx_optim_pmakino1 46691/s -- rx_optim_pmakino3 51633/s 111%
はい、速くなりました。[^ ]*
なんか使うより .*?
使った方が速いのね。
[^\s]
と \S
と [^ ]
はどれが速いのか
※[^\s] は \S でも OK です。
[(高速に)Apache の log を解析する正規表現 : a++ My RSS 管理人ブログより引用]
というコメントで、[^\s]
と \S
と [^ ]
はどれが最速なのか気になったのでそれも比較。(rx_optim_myrss3 が [^\s]
、rx_optim_myrss4 が \S
、rx_optim_myrss5 が [^ ]
)
rx_optim_myrss3 44522/s -- rx_optim_myrss5 47010/s 106% rx_optim_myrss4 48470/s 109%
\S
> [^ ]
>> [^\s]
、ということらしい。
[.+?]
と [.*?]
はどちらが速いのか
上記の最速パターン、最初は必ず何かしらの文字列が入ることが確定している部分については当初 .*?
ではなく .+?
でマッチさせていた。が、実は .*?
の方が微妙に速いっぽいような結果が見え隠れしていたのでそれも比較。(rx_optim_pmakino1 が .*?
、rx_optim_pmakino4 が .*?
)
rx_optim_pmakino4 45366/s -- rx_optim_pmakino1 46837/s 103%
僅かだが .*?
の方が速いらしい。
結局最速なのは
色々小細工するよりも、実は最初の最も遅い例の .*
を片っ端から .*?
に置き換えた
/^(.*?) .*? .*? \[(.*?)\] "(.*?)" (.*?) .*? "(.*?)" "(.*?)"/
が最速だったと。
Request String をさらにメソッドとリソースとプロトコルに分割するなら
/^(.*?) .*? .*? \[(.*?)\] "(\S+?)(?: +(.*?) +(\S*?))?" (.*?) .*? "(.*?)" "(.*?)"/
で。
(もっとも、LogFormat をいじれるのであればそもそもログ自体を TSV にしてしまうのが一番効率が良いのだが)
(ちなみに正規表現は事前にコンパイルしておくことができるそうなのでそれも試してみたが、速度に全く変化が見られなかった。)
(2009/02/28追記)
スペース区切りのApacheデフォルトログ書式(Combined Log Format)を解析する正規表現の解説 - アルバイト論というエントリが出来ているのに気づいた。
速度的な面での探求ではないけど、どんなおかしなログが来ても正しく解析できるような正規表現とは何なのかを調査されていて一見の価値ありだと思った。
(2014/05/05追記)
たった6個のsedを通せば、Apacheログは驚くほど扱いやすくなる - Qiita にていくつか検証・コメントさせていただいた。
_ [システム運用][Perl] Apache Combied Log を解析する CPAN モジュール
Name | Description | Rating | Last Update |
---|---|---|---|
Regexp::Log::Common | A regular expression parser for the Common Log Format | 5 | 2007/3/2 |
Parse::AccessLogEntry | Parse one line of an Apache access log | 5 | 2005/4/27 |
Apache::ParseLog | Object-oriented Perl extension for parsing Apache log files | 1 | 1998/10/17 |
Apache::Yaalr | Perl module for Yet Another Apache Log Reader | 0 | 2007/8/7 |
Apache-LogRegex | Parse a line from an Apache logfile into a hash | 0 | 2006/10/21 |
Logfile::Access | Perl extension for common log format web server logs | 0 | 2004/10/25 |
HTTPD::Log::Filter | a module to filter entries out of an httpd log. | 0 | 2004/4/26 |
これらを使った場合のベンチマークも取ってみたい
2007/09/08 編集
_ [音楽][物欲][Mac] 残念な 3G iPod nano
春頃からなんとなく iPod nano 欲しいなと思いつつ「9月にはさらに小さくて軽くなった新モデルが出るだろう」と期待して待ってたのに
新iPod nano発表、やっぱり太め - Engadget Japanese
新iPod nano 実機ギャラリー、インプレッション - Engadget Japanese
何この劣化…
Engadget でさんざん取り上げられてた流出画像まんまだったなんて…。
あと1年この状況が続くなら今のうちに 2G nano 買った方が吉か…
B000IDHI9A
価格.com - iPod nano MA426J/A シルバー (4GB) 価格比較
iPod touch はぜひ触ってみたいけど、店頭で体験すれば十分だ。
痛いニュース(ノ∀`):新iPod、「iPod touch」登場。マルチタッチスクリーン採用、無線LAN搭載…従来モデルは160GBに
2007/09/09 編集
[2007/9/8]
FFFTP をVer.1.94にバージョンアップ。
- 平田豊さんがnakkaさんのライブラリを使って、OLEドラッグ&ドロップを実装してくださいました。FFFTPからエクスプローラなどへのドラッグ&ドロップができるようになりました。
- 平田豊さんが、ホスト上でのファイルの移動を実装してくださいました。ホスト側にあるファイルを、子フォルダに移動させることができます。
[履歴@Sota Web Pageより引用]
ktkr
2007/09/14 編集
_ [音楽][物欲] 難聴防止型イヤホンマイク inCore
ER-4S の満足度が高すぎて、最近新しいヘッドホンを試してなかったわけですが、
高音質で耳に優しいイヤフォンが紡いだ奇跡 - [男のこだわりグッズ]All About
イヤパッドの形状がちょっと興味深い。これはちょっと欲しい。
「静か」を持ち歩く。ポータブルサイレント空間”インコア”@フェイス
携帯用しかないのがちょっと…
iPod に特化した製品も作って欲しいんですが…
2007/09/15 編集
2007/09/17 編集
_ [日記/blog] Referer spam 臭が強い検索サイト
tDiary のリンク元を見ていると、ここ最近見慣れない検索サイト?からのアクセスが急増していることに気がついた。
ざっと眺めていると、ある程度共通点がある。
- このサイトへのリンクは、ページのメインコンテンツからではなく、「関連エントリー」「ピックアップ・エントリー」等としてページ最後などに小さな枠として表示されている
- アフィリエイトがページの大半を占めているものが多い
- 関連エントリーのリンク先が tDiary サイトであることが多い
どうも、検索サイトを装って Anti Referer Spam プラグイン対策を行ったうえで tDiary を狙った spam サイトではないかという疑いがある。
(Anti Referer Spam プラグインの作者の日記でもちょうど spam 対策漏れについて取り上げられていた)
アクセスログに記録されていたものを多い順にざっと整理すると以下のような感じだ。
サイト | キャッチコピー | アフィリエイト | 関連エントリーのリンク先 | pmakino.jp アクセスログへの初出 | アクセス量 | アクセス元 IP の偏り | 独断による spam サイト判定 |
---|---|---|---|---|---|---|---|
YGブログ検索 | Yahooブログ検索とGooブログ検索を同時に表示します。 | 無し (楽天へのリンクはあり) | ほとんど tDiary | 2007/6/24 | 非常に多い | 若干ある | グレー |
入れ⇔替え検索 | 単語2つで検索してみてください。検索結果の違いを一覧できます。 | あり、楽天 | 全て tDiary | 2007/4/12 | 多い | 若干ある | グレー |
人気商品検索 | 今話題の人気商品、人気アイテムを探索 | もろ Amazon、Yahoo、楽天ほか | ほとんど tDiary | 2007/6/8 | 多い | 顕著にある | 黒 |
くっつき検索 | 複数単語で検索する時、間のスペースを削除して検索すると全く違う検索結果になることがあります。スペースを入れた検索結果とスペースを消した検索結果を比較できる検索サイト、それが「くっつき検索」です。 | もろ Amazon、Google | ほとんど tDiary | 2007/6/28 | 多い | 顕著にある | 黒 |
ワード探偵 | 単語から【説明・関連語・関連ニュース・動画・ブログ・関連商品】情報を調査します。 | もろ楽天、Google | tDiary か他の spam サイト | 2007/7/2 | 多い | 若干ある | 黒 |
ポピュラーワード | ポピュラーな話題を探検してみませんか? | もろ Amazon | tDiary か他の spam サイト | 2007/7/20 | 少ない | それなりにある | 黒 |
クラウド・ニュース | ニュースサイトの直近の記事を収集し、特徴語抽出を行い、タグクラウド形式で表示します。 | もろ楽天 | 全て tDiary | 2007/6/6 | 少ない | 顕著にある | 黒 |
RakuPla | 商品数15,000,000点以上の楽天市場から、商品を簡単に検索できます | もろ楽天 | 全て tDiary | 2007/5/24 | 少ない | サンプル少なすぎて判断不能 | 黒 |
楽天ショッピングサポート | キーワードで検索すると、様々な補助機能により楽天ショッピングをサポートします | もろ楽天 | tDiary が多い | 2007/8/6 | 少ない | サンプル少なすぎて判断不能 | 黒 |
フュージョン検索 | 検索エンジンのマッシュアップ | あり、楽天 | 全て tDiary | 2007/5/2 | 少ない | サンプル少なすぎて判断不能 | グレー |
くらべえ | 通販ショップ(楽天市場、Yahoo!ショッピング、ビッダーズなど)を一括価格比較 | もろ Yahoo!、楽天 | ほとんど tDiary | 2007/8/25 | 少ない | サンプル少なすぎて判断不能 | 黒 |
何でも検索 | 今。最も瞬なワードの最新情報をお届け | あり、Amazon、bidders | tDiary が多い | 2007/8/16 | 少ない | サンプル少なすぎて判断不能 | 黒に近いグレー |
夢人 | あり、Amazon | 全て tDiary | 2007/7/20 | 少ない | サンプル少なすぎて判断不能 | 黒に近いグレー | |
FAQ PAPER | 質問検索エンジンです。気になる単語を入力してみてください。あなたの気になる単語について質問を検索します。 | 無し | tDiary の他にも様々 | 2007/9/18 | 少ない | サンプル少なすぎて判断不能 | 白 |
(他にも *.some-lie.com や *.freeweb.shachihoco.com、*.adultadultadult.net 等、あからさまにアダルトなサイトからも Anti Referer Spam プラグインをすり抜けてきたものがあったが、これは論外である)
個人的に黒だと判断したものは下記のように Apache で弾くことにし、過去のリンク元一覧からも一掃した。
SetEnvIf Referer "^http://([^/]+\.)?item-word\.com" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?words\.sohjiroh\.info" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?wordtantei\.com" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?pop-wd\.com" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?cloudnews\.net" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?rakupla\.com" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?shopping\.rash\.jp" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?kurabee\.net" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?youtubeyoutubeyoutube\.info" referer_spam
SetEnvIf Referer "^http://([^/]+\.)?pson-wd\.com" referer_spam
deny from env=referer_spam
(ちなみに httpd.conf で設定している Referer spam 対策関連の部分を過去に設定してきたものも含めてまとめて抜粋するとこんな感じである)
この手のサイトは今後も増えてきそうだ。
(10月10日追記: 同じようなことやってる人発見 → ぱぱネット(仮) - SEOスパムの蛆虫野郎どものリスト)
2007/09/23 編集
_ [他] 小倉秀夫の素人論
続きがあるのかどうかわからんがとりあえずメモ
ちなみに前回の流れから小倉先生については悪い印象が拭えない中だが、
おっしゃることはもっともなのですが、小倉先生の言いたいのは、外野にいる無責任な立場の素人の声を傾ける必要はないであろうということであって、依頼者の声に耳を傾ける必要はないということではないので、まったくかみ合っていないのではないでしょうか?
Posted by こりき at 2007年09月21日 15:18
[404 Blog Not Found:黙って引っ込んでいられなくなった玄人 - この記事へのコメントより引用]
小飼弾さんよりトラックバックを頂きました。ただ、何か勘違いをしているような気がします。
自分の主張を受け入れない専門家に対して「素人は引っ込んでいろと言うのか」と文句をつけているのは、別にその専門家の顧客ではありません。
[la_causette: 潜在的な顧客ですらないより引用]
についてはもっともなことだと思う。
ただ、対象が誰にせよ「素人は黙って引っ込んでいろ」ということを言ってしまえる人は、自分の顧客に対しても同じようなあしらい方をしているんじゃないかという疑いも拭えない…が、
専門家に対して「素人は引っ込んでいろと言うのか」という言葉が出てくるときと言うのは、その素人の言動が間違っていることを論理的に諭されたときに素人側から出てくる言葉なのです(言われた側の専門家は、かなり懇切丁寧に説明をしているのに。)
[la_causette: アマチュアは神様か?より引用]
本人の主張を信じて良いなら、そうでもないということらしい。
ただ、たびたびフレームを巻き起こしている実績を踏まえると、「それって単に説明が下手なんじゃネーノ?」という疑いも。まあ悪い見方をすればきりがないか。
2007/09/24 編集
_ [音楽][物欲] テルミンmini
楽器に触れずに空間に手をかざして音程を変える世界最古の電子楽器「テルミン」。
それを簡単に組み立て、なおかつ演奏までできるという「テルミンmini」が付録についた「大人の科学」がいよいよ今週末の28日に発売される!
[いよいよ「テルミンmini」発売間近! - てれびのスキマより引用]
大人の科学マガジン編集部BLOG - テルミンmini発売まであと2週間ちょっと
こ れ は ほ し い 。
Cornelius 好きとしてここは外せないところです。
この商品が注文可能になった際にEメールでお知らせします。
[Amazon.co.jp: 大人の科学マガジンVol.17 テルミン: 本: 大人の科学マガジン編集部より引用]
工エエェェ(´д`)ェェエエ工
Amazon 在庫切れ…orz
本屋を駆け回るしかないのか…?
大人の科学.netで予約できるらしい。 確 保 。
…1個でいいのか? いいのか?
2007/09/30 編集
_ [他] 藤沢市ごみ処理有料化
明日からなのでメモ。
ごみ処理有料化@藤沢市
資源とゴミの分け方・出し方@藤沢市
容器包装以外のプラスチックは不燃ごみって…まともに考えるとかなり痛いな…。
今まで CD-R とか CD ケースとかガンガンプラごみ扱いで出してきましたが…あれは NG でしたか
_ ななし [町田市は、とっくに有料化、CDやFDを不燃ごみでだしました。とんかちでたたきました。でも戸別収集でっせ。]
_ ぎり [こんにちはこんにちは! http://ascii.jp/elem/000/000/063/63560/]