Scrapboxに移行しました
ブログは移行しました。
https://scrapbox.io/foldrr
Firefox GreasemonkeyでXPathResult.prototype is undefined
XPathResultを配列と同様に扱いたかったのでprototypeをいじろうとしたけどできない。
しかも以下の結果はundefinedになってしまう…。
alert(XPathResult.prototype); // undefined
調べてみたらこんなページがあった。
Firefox GreasemonkeyでXPathResultforeachしたい
GreasemonkeyではXPathResultしたかったのだけどprototypeが変更できなかったので関数を作ることにした。
function each(xs, f){ if(xs instanceof Array){ for(var i = 0, n = xs.length; i < n; i++){ f(xs[i]); } return; } if(xs instanceof XPathResult){ for(var i = 0, n = xs.snapshotLength; i < n; i++){ f(xs.snapshotItem(i)); } return; } }
Firefoxでサイト名を取り除いてページタイトルを短くするGreasemonkeyスクリプト
環境
- Firefox 3.5
- Greasemonkey
問題
ブラウザへ登録したブックマークのタイトルが長すぎて見つけるのに苦労する。
特にページ名の先頭にサイト名があると邪魔。
解決
余分な名前を取り除いてくれるスクリプトを作成してみた。
settings に設定追加して使う。
(function (){ var settings = [ // Amazon { url: "http://www.amazon.co.jp/", patterns: [ "^Amazon.co.jp: ", ":*$", ] }, ]; function wildcard_to_regexp(wildcard){ var s = wildcard; s = s.replace(/\./g, "\\."); s = s.replace(/\*/g, ".*"); s = s.replace(/\?/g, "\\?"); s = s.replace(/\|/g, "\\|"); s = s.replace(/\(/g, "\\("); s = s.replace(/\)/g, "\\)"); return new RegExp(s); } function main(context){ var href = location.href; for(var i = 0, n = settings.length; i < n; i++){ if(0 <= href.indexOf(settings[i].url)){ var title = document.title; for(var j = 0, jn = settings[i].patterns.length; j < jn; j++){ var re = wildcard_to_regexp(settings[i].patterns[j]); title = title.replace(re, ""); } document.title = title; } } } main(document); })();
CentOS標準で入っているApacheの他に別プロセスを起動したい
問題
Apacheプロセスを複数起動したい。
解決
いつか設定ファイルをコピー・編集することで複数起動できる。
まずは設定ファイルをコピーする。
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd2.conf # cp /etc/httpd/conf.d /etc/httpd/conf2.d
ドキュメント・ルートを別個に用意する場合は作成しておく。
# mkdir /var/www/html2
NICやポートの設定
httpd2.conf、conf2.d/ssl.conf を編集しNICやポートが重ならないようにする。
特にNICを分ける場合は元々の設定ファイルも編集する必要があるので注意する。
httpd2.conf の編集箇所は以下。
Listen 192.168.11.102:80 : ErrorLog logs/error_log2 : CustomLog logs/access_log2 combined
conf2.d/ssl.conf の編集箇所は以下。
Listen 192.168.11.102:443 : ErrorLog logs/ssl_error_log2 TransferLog logs/ssl_access_log2
サーバの起動
# apachectl /f /etc/httpd/conf/httpd2.conf -k start
サーバの停止
# apachectl /f /etc/httpd/conf/httpd2.conf -k stop
サーバ起動時にエラーが発生する
サーバ起動時に下記メッセージが表示される場合がある。
ポート番号は80あるいは443が表示される。
# apachectl -f /etc/httpd/conf/httpd2.conf -k start (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs
Listen でポート番号のみを指定すると、Apacheは全てのNICをListenしてしまう様子。
そのため、各サーバの設定ファイルでIPを指定すれば回避できる。
http.conf だけでなく、ssl.conf の設定も忘れやすいので注意。
Windowsのmsysgitでログが見られない
環境
- Windows XP Professional SP3
- msysgit 1.6.3
問題
コンソールでgit log すると表示が崩れてしまいログが見られない。
Windowsコマンドラインから空ファイルを作成する
環境
- Windows XP Professional SP3
解決
C:\>type nul > hoge.txt