石垣カフェの最後

hcr2005-08-17


第3回説明会を開催 石垣問題解決へ

一部の人に注目されていた石垣カフェがついに閉鎖されるそうです.でも,石垣は存続されるそうで.彼らの頑張りも効果はあったようですな.
写真は,在りし日の石垣カフェです.

参照: id:hcr:20050212, id:hcr:20050220

追記

公式ホームページ(石垣★cafe 石垣★カフェ 石垣★cafe)がありました.もっと,詳細な情報を知りたい,奇特な方は,こちらをどうぞ.

Adaptive Referer Remover v0.2.1

拡張一覧のダイアログから,設定画面を開けないバグがあったので,v0.2.1にバージョンアップしました.

それだけでは,なんなので,http://addons.mozilla.org/に登録してみました.詳細ページは,これです.この拡張の更新確認ファイル(refererremover.rdf)を手元のサーバに置いているのですが,そのアクセスログを見ると,おなじみのja-JPやen-USなクライアントだけではなく,fr-FRとかde-DEとかen-GBとかzh-TWとか,さすがになかなか多彩です.

ちなみに,en-USとen-GBは,なにが違うんでしょう? en-USがいやだから,en-GBなローカライズファイルを作るなんていうのは,関西弁のローカライズファイルを作るようなもんでしょうか,ja-KSとかって.

Adaptive Referer Remover v0.2

hcr2005-08-12


特定のサイト(イントラネット上のサイトとか)のURLがリファラで漏れるのを防止するfirefox extension,Adaptive Referer Removerをバージョンアップしました.

ダウンロード

インストール - refererremover.xpi

使い方

ステータスバーのアイコンがグレーの時は,リファラを送ります.カラーの時は,リファラをブロックします*1

ステータスバーのアイコンをクリックすると設定画面が呼び出されます.正規表現を" "(半角スペース)で区切って,入力してください.デフォルトでは,"http://127.0.0.1"もしくは,"http://localhost"で初まるRefererを削除します.

なお,有効になっているかどうかの確認は,LiveHTTPHeadersが便利だと思います.

変更履歴

  • 2005/08/13 v0.2 ステータスバーに作動状態を示すアイコンを追加.設定ダイアログを追加.
  • 2005/05/29 v0.1 最初のリリース

*1:ただし,フレームを使っていたり,iframeなどを使われている場合は,リファラが送られる可能性があります.

Googleの検索結果に他言語/他検索エンジンへのリンクを追加

hcr2005-08-10


はてなブックマークで上っている米語(英語)学習に関する私的メモとか,それに言及するkawasakiのはてなダイアリー - 英語学習とかを読んでいると,「あぁ,英語の勉強をしないとなぁ」と思ってしまいます.

普段,できるだけ英語に触れるように,Googleで検索するときは,http://www.google.com/で,日本語だけではなく,The Webから検索*1するようにして,英語のサイトを優先的に見るようにしています.ただ,軟弱なので,「見つけたい情報は,日本特有のものなので,日本語の検索結果が必要なんだ」などと言い訳しながら,Advanced Search→LanguageからJapaneseを選択して,検索しなおす,ということをしていました.

これがあまりにも手間なので,FirefoxのSearch pluginを作ったりしていましたが,ついにGreasemonkeyのuser scriptとして,他言語での検索へのリンクを追加するスクリプトを作ってしまいました.日本語での検索へのリンクだけでは,さみしいので,はてな検索はてなブックマーク検索へのリンクも追加するようにしています.

これで,だいぶ楽になりました.楽になりましたが,当初の目的である「英語のサイトを優先的に見る」から離れてしまっているような気がするのが難点です.

そういえば,米語(英語)学習に関する私的メモで最後に挙げられているThe Elements of Styleは,持ってはいるけど,10ページぐらい読んで,放り出してあります...

The Elements of Style, Fourth Edition

The Elements of Style, Fourth Edition

*1:PreferenceでInterface Languageを"English",Search Languageを"Search for pages written in any language"としています.

WindowsでLinuxのファイルシステムにアクセスする

いままで,WindowsからLinuxファイルシステムにアクセスする場合は,Explore2fsを使う必要がありました.ただ,この方法では,普通のアプリケーションとしてファイルシステムにアクセスできるだけですので,実際にファイルを操作する場合は,一端,手元にコピーする必要がありました.

ところが,ext2/3をVFATやNTFSのように,ドライブとしてマウントするツールがありました.

It provides Windows NT4.0/2000/XP with full access to Linux Ext2 volumes (read access and write access). This may be useful if you have installed both Windows and Linux as a dual boot environment on your computer.

これはなかなかよさそうです.ときどき,手元のPCにLinuxを入れようとするのですが...

  1. 手元のPCにLinuxを入れようする
  2. しかし,完全にWindowsをやめる踏ん切りはつかないので,デュアルブートにする
  3. すると使えるディスクサイズが半分になる.かといって,いまさらVFATはかんべんしてほしい
  4. しかし,サイズが半分になるのは,耐えがたいので,Linuxを諦める.

という流れで,無限ループにおちいっていたのですが,これをつかうと,ホームディレクトリをext3のドライブに置けば,LinuxからもWindowsからもシームレスに見えるので,ついにLinuxのインストールが実現できそうです.

と思ったのですが,やっぱり,いつもの落し穴,「文字コード問題」がありました.日本語ファイル名の場合,Linux側は,UTF-8EUCなのですが,Windowsは,SJISです.日本語ファイル名のファイルをコピーすると,作成できませんでした,と怒られるのですが,エントリだけはできているようで,しかも,同じファイル名で,どんどん作られるので,かなり異常な事態となります.

というわけで,日本語ファイル名を使わなければ,かなり実用的だと思います.

シェル関数でタイムアウト その2

先日,シェルスクリプトタイムアウト用の関数を作ってみたのですが,計測したアプリケーションは,デーモンのような挙動をするプロセスでした.先日のスクリプトでは,内部で起動したプロセスのpidを見ています.ですが,デーモンの場合,起動したら,子プロセスを作成して,親プロセスは,さっさと終了してしまいます.そのため,タイムアウト関数も監視対象のpidはいなくなっているので,正しく動作しなくなっていたのでした.

というわけで,だいぶadhocな実装になってしまいますが,対策として,pidではなくプロセス名で監視して,タイムアウト時にkillallで,そのプロセス名を持つプロセスを全滅させることにしました.おかげで副作用が強烈になったので,注意して使いましょう...

使い方は,前回は「timeout 5 sleep 10」でしたが,プロセス名対応版では,「timeout_name 5 sleep sleep 10」のように2番目の引数に,監視対象のプロセス名を入れてください.

#!/bin/sh

timeout()
{
    count_timeout=$1
    shift 1;
    echo timeout: exec \'$@\'
    $@ &
    pid=$!
    count=0
    while [ $count -lt $count_timeout ]
    do
        isalive=`ps -ef | grep $pid | grep -v grep | wc -l`
        if [ $isalive -eq 1 ]; then
            echo timeout: $pid is alive.
            count=`expr $count + 1`
            sleep 1
        else
            echo timeout: $pid was disapeared.
            count=`expr $count_timeout`
        fi
    done
    isalive=`ps -ef | grep $pid | grep -v grep | wc -l`
    if [ $isalive = 1 ]; then
        kill -kill $pid
        wait $pid
        echo timeout: $pid was terminated by a SIG$(kill -l $?) signal.
    fi
}

timeout_name()
{
    count_timeout=$1
    pname=$2
    shift 2;
    echo timeout: $pname exec \'$@\'
    $@ &
    count=0
    while [ $count -lt $count_timeout ]
    do
        isalive=`ps -ef | grep $pname | grep -v grep | wc -l`
        if [ $isalive -ne 0 ]; then
	    echo timeout: $pname is alive.
	    count=`expr $count + 1`
	    sleep 1
        else
	    echo timeout: $pname was disapeared.
	    count=`expr $count_timeout`
        fi
    done
    isalive=`ps -ef | grep $pname | grep -v grep | wc -l`
    if [ $isalive -ne 0 ]; then
	killall -kill $pname
	echo timeout: $pname was terminated by a SIG$(kill -l $?) signal.
    fi
}

ジョブズのスピーチ

少し前に,Stanfordでのジョブズのスピーチ非常に話題なっていましたが,原文とスピーチのビデオとオーディオを発見しました.

ジョブズは,さすがに大勢の前でしゃべりまくっているだけあって,英語の発音がクリアなので,リスニングの練習にはもってこいだと思います.

ちなみに、ジョブズのスピーチは,WWDC05でのKeynote addressも見ることができます.(http://www.apple.com/quicktime/qtv/wwdc05/)