日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)
- p (01/03)
- Thiramil (10/26)
- 久々にいまむらを食べたい通りすがり (09/28)
- Fluxadir (05/16)
- Antiprestin (11/08)
2011/03/21 編集
_ [Web制作][システム運用] wget で取得した QUERY_STRING 付きページをオリジナルと同じ URI で表示させるには
wget --mirror で Web サイトをまとめて取得すると、QUERY_STRING がついている URI は ? が @ に置き換えられた形で保存される。
これを無理矢理元のサイトと同様に表示させたかったらどうすれば良いか。
mod_rewrite 使って URL 中の ? を内部で @ に書き換えて実ファイルにつなげてやればいいんでないの、と単純に考えると、
RewriteEngine on
RewriteRule (.*)\?(.*) $1@$2
…となるわけだが、実際にはこれではうまくいかない。
原因は RewriteRule に QUERY_STRING は渡らないため。
ならば、こうすれば良い。
RewriteEngine on
RewriteCond %{QUERY_STRING} (.+)
RewriteRule (.*) $1@%1?
RewriteCond で QUERY_STRING を先行してマッチさせておき、RewriteRule で後方参照して付け足す。
また、最後の ? によって QUERY_STRING を削除する。(これをやらないと書き換えが無限ループしてしまう)
なお、拡張子が激しく壊れるために適切な Content-Type が返されなくなり、IE 以外のブラウザでは HTML として解釈されずソースを表示してしまう場合があるので、
DefaultType text/html
も加えておいた方がよい。
…ということで、3月中に引き上げなければならなくなった (けどサーバ側プログラムの移行先がない) 動的生成ページが多数ある某サイトを無理矢理待避するやっつけ仕事が終わった。
2011/03/25 編集
_ [ソフトウェア][Firefox] Firefox 4.0 で使ってるアドオン・ユーザ CSS メモ
そろそろ対応版が出揃いつつあるので、Firefox 4.0 で使ってるアドオンやユーザ CSS を改めてまとめ直しておきます。
まず about:config で設定
- extensions.checkCompatibility.4.0 : false
- 拡張機能のバージョンチェックを無効化
browser.tabs.tabMinWidth : 16タブの最小幅を Firefox 1.5 並に減らす(←4.0では効かない)- browser.tabs.loadDivertedInBackground : true
- 外部アプリケーションから URL を渡された時にウィンドウをアクティブにしない
- dom.popup_maximum : 100
- livedoor Reader でピンを一気に開けない問題対策
基礎 UI 向上系アドオン
- FireGestures
- マウスジェスチャ
- AutoPagerize
- 複数ページに分割されてるコンテンツを無理矢理1ページ化
- Tab Overflow Scrollbar (Firefox 4.0 未対応だが使える)
- タブをいっぱい開いた時にスクロールバーを出す
- ツリー型タブ
- タブをツリー化して折りたためるように
- Make Link
- ページタイトルと URL、リンク HTML 等をクリップボードにコピー
- BarTab (Firefox 4.0 未対応だが使える)
- 再起動時にタブの読み込みを遅延させて大量のタブが一気に再読込されることを防ぐ
- Resurrect Pages
- 開けなかったページを Internet Archive や Google キャッシュ等から探す
ボタン追加系アドオン
- Clear Cache
- キャッシュを消す
- Undo Closed Tabs Button (Firefox 4.0 未対応だが使える)
- 閉じてしまったタブを元に戻す
- Hatena Bookmark
- はてブ
- Video DownloadHelper
- ようつべの FLV ダウンロードに
広告・Flash ブロック系アドオン
- Adblock Plus
- 広告ブロック
- Flashblock
- 俺が動いていいと言うまで Flash は動いちゃダメ
開発・検証系アドオン
- DOM Inspector
- DOM ツリーとか見せてくれる、Firefox 2.0 まで標準装備だったやつ
- HttpFox
- サーバとの HTTP の通信内容を見せてくれる
Firefox Throttle(Firefox 4.0 未対応)帯域を絞って低帯域シミュレーション。IE 版もある。通信不安定気味で Vista 非対応な NEGiES より使える。(1.1.6 は Firefox 4.0 で正常動作しない)- RefControl
- Referer の送信をブロックしたり解除したり
- Web Developer
- いろいろ無効化してみたり、フォームの GET と POST を入れ替えてみたり。
Webアクセシビリティ・ツールボックス(Firefox 4.0 未対応)ページがアクセシブルかどうかを検証するのに役立ついろいろな機能(新しい Firefox に対応しなくなって久しい)- Firebug
- デバッガ
- YSlow
- ボトルネック調査
- Wappalyzer
- そのページで使われてるフレームワーク表示
ユーザ JS
- Greasemonkey
- 本体
- Bright Focus (for buttons, links, and textboxes)
- フォーカスしてるテキストエリアやボタンをハイライト
AutoPagerize複数ページに分割されてるコンテンツを無理矢理1ページ化(拡張版に移行)
MakeLink の設定
- タイトルとURL
%text%
%url%
- ハイパーリンク
(HTMLエンティティを使用するにチェック)<a href="%url%">%text%</a>
- 引用
(HTMLエンティティを使用するにチェック)<blockquote cite="%url%" title="%title%">
%text%
</blockquote>
<p class="source">[<cite><a href="%url%" title="%title%より引用">%title%</a></cite>より引用]</p>
userContent.css
/* 印刷時は明朝ベースで見出しだけゴシック */ @media print { * { font-family: "ヒラギノ明朝 Pro W3", "MS P明朝", serif; } h1, h2, h3, h4, h5, h6, th, dt { font-family: "ヒラギノ角ゴ Pro W6", "メイリオ", "MS Pゴシック", sans-serif; } } /* 別窓指定のリンクを見分けられるようにする */ [target="_blank"]:after { content: "[\5225\7a93]"; /* 別窓 */ color: #FF0000; background-color: #FFFFFF; font-size: 90%; } /* PDF へのリンクを見分けられるようにする */ a[href$=".pdf"]:after { content: "[PDF]"; color: #FF0000; background-color: #FFFFFF; font-size: 90%; } /* mailto スキームのリンクを見分けられるようにする */ a[href^="mailto:"]:after { content: "[Mail]"; color: #FF0000; background-color: #FFFFFF; font-size: 90%; } /* javascript スキームのリンクを見分けられるようにする */ a[href^="javascript:"]:after { content: "[JS]"; color: #FF0000; background-color: #FFFFFF; font-size: 90%; }
2011/03/27 編集
_ [Twitter][Perl] Togetter にまとめられた内容を TSV 化する Perl スクリプト
Togetter にまとめられたツイートを Excel で加工したくなったが、Togetter 自身には CSV 等でエクスポートする機能はないようだったので、スクリプト書いた。
#!/usr/bin/env perl use strict; use warnings; use utf8; binmode STDOUT, ':utf8'; binmode STDERR, ':utf8'; use LWP::UserAgent; use HTML::TreeBuilder; my $url = shift or die; my $ua = new LWP::UserAgent; $ua->env_proxy; my $res = $ua->get($url) or die; my $content = $res->decoded_content or die; my $tree = new HTML::TreeBuilder; $tree->parse($content) or die; print join("\t", 'Date', 'User', 'Tweet'), "\n"; foreach my $item_tree ($tree->look_down('class' => 'list_item')) { my $tweet = $item_tree->look_down('class', 'tweet')->as_text; my $user = $item_tree->look_down('class', 'status')->look_down('_tag', 'a')->as_text; my $date = $item_tree->look_down('class', 'status')->look_down('_tag', 'span')->as_text; print join("\t", $date, $user, $tweet), "\n"; }
以上を togetter2tsv.pl として保存したうえ、
perl togetter2tsv.pl http://togetter.com/li/xxxxxx > result.txt
という感じで使う。