« 2006年03月 | 過去ログ一覧 | 2006年05月 »

2006-04-01 (Sat)

svn-diff.vim が便利

あまりにも普通に使いすぎていて拡張機能だったって事を忘れていましたけど、svn-diff.vim っていうのが便利です。コマンドラインで svn を使っていてログの編集に vim を使っているならマジオススメ。

ダウンロードしてきた svn.vim を ~/.vim/ftplugin/ に入れるだけで使えるようになります。

何が便利かって言うと、svn commit をした時に表示されるログの編集画面と一緒に、svn diff の内容も表示されるようになります。不要な編集を commit しようとしていないかの最終確認にも使えますし、ログをちゃんと書こうと思ったら編集内容を見ますよね?

ちょっとした事なんだけど、今では commit 時に一緒に diff が表示されないと何やら不安になります。 :-)

△トップ | コメント (3) | トラックバック(1)

2006-04-04 (Tue)

見てるページを全部 Google Bookmarks に登録する Greasemonkey スクリプト作った

フッと思い付いたで、作りたくなった。そして作ってみた。こんなに Google にデータを送信しまくるのは気が引けるけど、意外とおもしろい。気が引けない勇者はどうぞ使って下さい。

フォームと IFRAME を作って、IFRAME にフォームの内容を送信して、最後に両方削除してるっていうだけです。XMLHttpRequest だと Google でのクッキーの扱いとか面倒そうだったのでこうしました。ていうか、これ、CSRF の脆弱性があるって事なんだよね。だからそのうち上記のスクリプトは利用出来なくなるような気がする。

で、登録する処理だけなら簡単に出来たんだけど、細かい所で意外に苦労した点が多かったので、そこら辺まとめてみました。

* フレームのページが余分に登録されてしまう

はてな質問のコメント欄 を参考にして (self.location.href!=top.location.href) の場合に処理を中止するようにすると、フレームや IFRAME のページでの処理を排除する事が出来ます。

IFRAME を使ってるページがあると、IFRAME の内容までも登録されてしまう。IFRAME を使って広告を配信しているサイトとか多いので結構邪魔。フレームを使ったページも、全部のページが登録されてしまう。どうしても IFRAME とフレームの両方を除外する処理を作る事が出来なかったので、top.location.href が空の場合に処理を飛ばすようにしました。これだと、IFRAME のページが登録されなくなる。

* IFRAME を removeChild すると読み込み中のままになる

フォーム送信後に隠しIFRAMEを削除すると、ページが読み込み中のままになってしまう現象が発生する。removeChild するタイミングを setTimeout を使って1テンポ遅らせたら発生しなくなった。

* ページの文字コードが UTF-8 以外だとタイトルが文字化けする

一番苦労した所。Google Bookmarks 側では文字コードの判別とかはやっていないようで、EUC-JP のページからフォームを送信すると、日本語が EUC-JP のまま登録されてしまって文字化けしてしまう。フォームに Accept-charset="UTF-8" を付けたら化けなくなった。


最後になりましたが、閲覧履歴を保存して検索とかってのを真面目にやりたいなら、風博士 を使ったり、プロキシサーバを使った全文検索 とかをやったりした方が良いです。

△トップ | コメント (0) | トラックバック(0)

Greasemonkey 用スクリプト - Google My Cache

※Greasemonkey は Firefox 用の拡張機能です。詳しくは Firefox まとめサイト で確認して下さい。

表示したページを全て Google Bookmarks に登録するスクリプトです。利用にはあらかじめ Google にログインしておく必要があります。

普通に Google Bookmarks を利用する事が出来なくなりますので、既に Google Bookmarks を利用している方はこのスクリプトの利用を諦めて下さい。

ブックマークしたページには、その日の年月日と、AutoPost というラベルが自動的に付与されます。

一旦閲覧したサイトの情報を何度も送信したくないので、全てのページに対して Cookie を発行しています。Cookie でいっぱいになります。ブラウザを終了させると登録された Cookie は削除されるようになっています。ていうか、このスクリプトで Cookie って大分重要な位置を占めてるので、Cookie オフな人は使わない方が良いです。

Google 関連のサイトと、ローカルホスト(localhost,127.0.0.1)、ローカルネットワーク(192.168..,172.16..)、サーチエンジンっぽいアドレス(****/search?)は、登録処理を行なわないようにスクリプト内で強制的に処理しています。

query string(URL の ? 以降)と、location.hash(URL の # 以降)は、排除するようになっています。query string を許可しちゃうとクッキーとブックマーク数が格段に増えて多分困った事になるかと。

ドキュメントのサイズが1000バイト以下の場合も、処理を中断するようになっています。本当は Not Found のページを排除したかったんだけど、やり方よくわかんないのでサイズが小さいページは情報量も少ないだろうって事でこうしました。すいません適当で。

アクセス頻度が高いようなサイトは、なるべく exclude に指定しまくった方が良いです。認証が必要なページとかも登録されちゃうので、そういう所も exclude に登録しておいた方が良いでしょう。逆に、include をうまく使って、特定サイトの閲覧履歴を作るっていうやり方もおもしろいかもしれません。

尚、このスクリプトを利用したせいで Google のアカウントが停止とかになったり、嫁に履歴を見られて修羅場になったりとかしても責任取れませんのでご利用は計画的に。

» 続きを読む...

△トップ | コメント (3) | トラックバック(1)

2006-04-05 (Wed)

グーグルサイト内検索のフォームを作ってくれる Greasemonkey スクリプト、を探してきた

というわけで、どこかに advanced search できる Greasemonkey とかないかな?欲しいものは、今見てるサイト(ディレクトリ)について OR(AND)検索できる普段は隠れている検索フォーム。

引用元: 全文検索が温い!(個人的に) (KoshigoeBLOG より)

あったら便利かもしれないと思った。

機能としては、Google Toolbar にあるっぽいけど、これ、入れてないんだよな。

で、Greasemonkey の方に興味あったので調べてみました。

Userscripts.org に二つあった。

Search Site は DIV がどうのこうのっていうエラーが出て動かない。コメント欄でも阿鼻叫喚っぽくてワラタ。修正が入るまでは使えない。

Search Onsite も何だかうまく動かない。インストールして、マウスカーソルを左上に持っていくと検索フォームが表示されるんだけど、検索結果の表示がおかしい。表示されたりされなかったり。ただ full window にチェックを入れておけば動作も怪しくないので、常にチェックを入れるようにしておくと便利に使えそうな感じ。

ちなみに、スクリプトの115行目をこんな風に変更すれば常にチェックが入った状態になる。

SearchOnsite.cbox = anew("input", {"type":"checkbox", 'checked':'checked'});

関係ないけど、この anew っていう便利関数はイイね。こういうのが思い付く体になりたい。

△トップ | コメント (0) | トラックバック(1)

2006-04-06 (Thu)

Mixi Organizer を更新した

Mixi Organizer に、新機能を追加したので告知しておきます。

過去の日記一覧を表示するポップアップウィンドウの機能を、トップページにある最新日記一覧の所にも表示するようにしました。

それだけ。

△トップ | コメント (0) | トラックバック(0)

2006-04-14 (Fri)

Google Calendar で Monthly ページから時刻の表示を消す方法

早速 Google Calendar で遊んでます。

共有機能が使いやすくていいかも。Map との連係も便利。今まで自作のプログラム使ってたけど、乗り換えよっかな。

で、まぁ、どうでも良い事なんだけど、月表示の時に予定の時刻が表示されるのが邪魔くさいので消した。こんな CSS を適用するだけ。

.month_event em.time {
   display: none;
}

Firefox だったら、 userContent.css に書いておいたりすると良い。Firefox1.5 以上なら moz-document が使えるので、積極的に使うべし。

@-moz-document url-prefix(http://www.google.com/calendar/) {
   .month_event em.time {
      display: none;
   }
}

» 続きを読む...

△トップ | コメント (0) | トラックバック(0)

2006-04-15 (Sat)

Greasemonkey 用スクリプト - Hide Google Calendar Navi

※Greasemonkey は Firefox 用の拡張機能です。詳しくは Firefox まとめサイト で確認して下さい。

Google Calendar の左側にあるカレンダーとかのメニューの表示・非表示を切り替える機能を追加するスクリプトです。

インストールすると、画面の上の方に [ Toggle MenuBar ] とかいう文字が表示されるようになるので、それをクリックする事で切り替え出来ます。

オフィシャルで提供されそうな機能だけど、我慢出来ない人はどうぞ。

» 続きを読む...

△トップ | コメント (2) | トラックバック(5)

2006-04-16 (Sun)

Google Calendar のナビゲーションの表示を切り替えるブックマークレット

先日作った Google Calendar のナビゲーション部分の表示と非表示を切り替えるスクリプト、ブックマークレットの方が使える人も多くて幸せだろうって事に気が付いたので作った。

以下のリンクをブックマーク(お気に入り)に登録して、Google Calendar の画面でクリックするだけで使えます。

このスクリプトの元スクリプト。

var e=document.getElementById('nav').style;
e.display=(e.display)?'':'none';
_ResizeCalFrame();

2006-04-20: 単純に書けたので直した。

△トップ | コメント (0) | トラックバック(0)

2006-04-18 (Tue)

Debian(Sarge) で apache2 SSL の設定

自署名でローカル用に SSL の環境を構築する。

一般に開放するような場合は、もっとずっとちゃんとやらないといけないので、あんまり参考になりませんというか、そんなに詳しく書いてないというか、全然責任持てないんで、ええ。

まずは apache2 のインストールから。

# aptitude install apache2

SSL サイト用の設定ファイルを作成する。雛形が用意されているので、それをコピーしてから編集すると良い。

# cd /etc/apache2/sites-available
# cp /usr/share/doc/apache2/examples/ssl.conf.gz ssl.gz
# gzip -d ssl.gz

最低限書き換える必要があるのはこのくらい。

--- ssl.conf    2006-04-18 15:28:22.000000000 +0900
+++ ssl   2006-04-18 14:37:45.000000000 +0900
@@ -80,14 +80,14 @@
 ## SSL Virtual Host Context
 ##

-<VirtualHost _default_:443>
+<VirtualHost 192.168.145.128:443>

 #   General setup for the virtual host
 DocumentRoot "/usr/share/apache2/default-site/htdocs"
-ServerName www.example.com:443
+DocumentRoot "/path/to/root"
+ServerName 192.168.145.128:443
 ServerAdmin you@example.com
-ErrorLog /var/log/apache2/error_log
-TransferLog /var/log/apache2/access_log
+ErrorLog /var/log/apache2/error_log.ssl
+TransferLog /var/log/apache2/access_log.ssl

 #   SSL Engine Switch:
 #   Enable/Disable SSL for this virtual host.
@@ -105,7 +105,7 @@
 #   in mind that if you have both an RSA and a DSA certificate you
 #   can configure both in parallel (to also allow the use of DSA
 #   ciphers, etc.)
-SSLCertificateFile /etc/apache2/ssl.crt/server.crt
+SSLCertificateFile /etc/apache2/ssl/apache.pem
 #SSLCertificateFile /etc/apache2/ssl.crt/server-dsa.crt

 #   Server Private Key:
@@ -113,7 +113,7 @@
 #   directive to point at the key file.  Keep in mind that if
 #   you've both a RSA and a DSA private key you can configure
 #   both in parallel (to also allow the use of DSA ciphers, etc.)
-SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
+SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
 #SSLCertificateKeyFile /etc/apache2/ssl.key/server-dsa.key

 #   Server Certificate Chain:

次は証明書の作成。自分しか使わないので、設問は適当で良いでしょ。apache2-ssl-certificate コマンドを実行すると、/etc/apache2/ssl/apache.pem というファイルが作成される。

# cd /etc/apache2
# mkdir ssl
# apache2-ssl-certificate

モジュールとサイト別設定ファイルを有効にする。

# a2enmod ssl
# a2ensite ssl

apache を再起動。

# /etc/rc2.d/S91apache2 force-reload

これでブラウザでアクセスすると SSL のアクセスになる、が、証明書の警告が表示される。盲目的に証明書を自分のブラウザに組み込む前に、その証明書が自分で作ったものかを確認する必要がある。

まずはサーバ上の SSL の指紋を確認しておく。以下のコマンドで確認出来る。

# openssl x509 -sha1 -noout -fingerprint -in /etc/apache2/ssl/apache.pem

それで、ここに現れる Fingerprint と、ブラウザの警告に表示される証明書の内容の Fingerprint(拇印とかフィンガープリントとか?)が一致するか確認して、本当に自分で用意した証明鍵かどうかを確認した方が良い。世の中何が起きるかわからない。そのための SSL なんだから、最初から慎重にしないとね。

以上。

△トップ | コメント (0) | トラックバック(0)

2006-04-20 (Thu)

Google Calendar で TODO 管理する Greasemonkey スクリプト

オレが作ったもんじゃないんだけど、結構便利そうなんで紹介。

インストールすると、カレンダーリストの下に TODO 用のウィンドウが表示されます。クリックするとその場で編集が始まって、エンターキーで保存。データは prefs.js へ保存されます。

まだ開発中みたいなんで、これからもっと便利になるかもしれないですね。とりあえずネットワーク上に TODO を保存出来るようにはしたいっぽいです。あとは縦スクロールが邪魔なのがなんとかなればなあ。

△トップ | コメント (0) | トラックバック(0)

2006-04-21 (Fri)

livedoor Reader について

各所で絶賛されてるけど、使いやすいね、これ。乗り換えよっかな。RSS リーダって OPML があるから乗り換えコストがほぼ0なのが嬉しい。

結構細かい所に今まで見掛けなかった工夫が凝らしてある。

フィード一覧のスクロールバーの位置が左側だったり、未読がいっぱいあっても一件目は素早く表示されたり。レートで分類ってのも初見な気がする。あとやっぱ PIN 機能がイイ。まだ全文読めないブログもいっぱいあるので、後でまとめて別画面表示出来るようになるのは嬉しい。

あと OPML のインポート画面に出てくるチェックボックスなんだが、ドラッグでまとめてチェックの解除とか出来るけどどうなってんだ、こりゃ。これが今一番気になる。

△トップ | コメント (0) | トラックバック(0)

2006-04-28 (Fri)

トラックバックにサイトの縮小画像

トラックバックにサイトの縮小画像を入れてみた を見て、コリャおもしろいと思ったので真似した。

リビルドすんのめんどいから、今の所 これこれ だけ表示。

あんまり多いと逆に見通しが悪くなりそうだけど、うちはあんまりトラックバックも多く無いので悪くないかも。

△トップ | コメント (0) | トラックバック(0)

2006-04-30 (Sun)

tagging めんどくさい

はてなブックマーク b:id:laisoの利用法について で、タグ付けって大変だし自動分類も出来ないし不便だよって事(なの?)が書いてありましたが、オレも先週くらいから、タグ付けなんて面倒くせーことやってらんないよって思い始めました。ていうか最近タグ付けがめんどくて、ブックマークすんの躊躇しちゃうのよね。最初の頃に比べてブックマーク量も大分減ったし。そんでもう一回見たくなったページを探すのに、一々自分の閲覧の履歴を思い返して探してるからね、もうアホかと。

そんなこんなで、こんな面倒くさい事はコンピュータにやってもらえば良いジャンと、自動分類する仕組みを考え始めました。

と言っても、まだあんまり入れ込んで作っていないので仕組みも単純で、本文、URL、はてなブックマークと delicious のタグ、なんかの情報を元にしてタグ付けをして自動分類だとか言って喜んでいるレベルですが。一応HTMLの全文も保存しているので全文検索出来ますし、サイトが消えちゃっても手元にキャッシュが残ってるのは安心出来ます。

意外とこういう仕組みって需要あるんですかね。システムが勝手にお勧めのタグを付けてくれて、あとで暇な時に整理出来たり、見向きもされないようなブックマークは検索しても後ろの方になったりとか、出来ると嬉しい。

でも、plagger のやり方 ブックマークしたurlを記録しておいて全文検索したい てのは楽で良さそうだなー。namazu にも渡せるとは…。まだ plagger デビューしてないんだけど、早く使ってみたい。

△トップ | コメント (1) | トラックバック(0)

 
Copyright (C) Kyosuke Takayama, Some rights reserved.