メニュー

関連ページリンク

トップ > 004.D > 004.D - 人気ブログ(Blog)検索結果詳細 (2009年1月9日 9時)

[neta]macbook を効率的に使うための変態的設定を探る

昨年の12月以降、前からつかっていたMacBook(白いやつ。白は汚れがめだつので、アルミのやつがほしくてしょうがない。)の利用環境を見つめ直して以来、集中的にMacBookやOSXの使い方を調べ続けてきた。

以下は、この2ヵ月間で自分のMacBookの利用環境はどのようになったのか、前からもっていたMacBookにインストールしたApple以外のソフトウェアの状態をベースに、そこからの変化や新たに気付いた使い方のメモ。

■効率的に mac を操作するには

つまるところ、PC を効率的に操作する方法とは「マウスをつかわないこと」これにつきる。マウスをつかうには人生はあまりにも短かすぎると、ゲーテがいったという話を知人から聞きました。これを聞いて以来、自分は PC にマウスをささずにつかっています。

プログラマが扱いやすいデスクトップ環境において、重要なポイントは下記の3つだとおもう。

  • マウスをつかわないでいいこと
  • プログラマブルであること

OSX はキーボードのみで操作しようとすると、なにかにつけて不便です。まず、safari。これはキーボードのみで操作しようとすると大変だし、なにかにつけて不便だ。ここはカスタマイズ性にすぐれている firefox を採用するべきだ。firefox に vimperator を入れてつかうことにより、マウスに触れないでウェブブラウズできる。オススメである。ただ、vimperator は、設定が面倒だったり、情報収集にかかるコストが高いので、がっつりと時間をとって、習得・設定作業にあたらないといけない。もうすぐ vimperator 2.0 がリリースされるというタイミングであるし、firefox 3.1 がリリースされるというタイミングであるから、今のタイミングで導入するのは、オススメできない。もうすこし待ったほうが利口だとおもう。vimp のすぐれているのは、そのプログラマブルさだろう。思うまままにブラウザをカスタマイズでき、JS で挙動を制御できる。数行の JS をかくだけでブラウザの挙動をかえられる。これは実にすばらしいことだ。xpi なんかを書くのは面倒そうなのでなかなか手がでないが、この程度なら自分でもやれるな、という気になるのがよい。.emacsを書く感覚で書けるのだから、これは楽だ。

テキストエディタは vim か emacs をつかうのがよいだろう。プログラマブルなエディタをつかうのがプログラマにとっては重要なことだとおもう。vim と emacs のどちらがすぐれているかということについては、様々な議論があり、free するべきか否かという問題と同程度には重要な問題ではあるが、本稿では触れないことにする。なお、現在、私はコードをかくのは vim で行っており、それ以外の一切を emacs でやっているという蝙蝠状態である。vim はほとんどカスタマイズしていないが、emacs はかなりいろいろカスタマイズしている。emacs は lisp なので、簡単に設定できてよい。

IRC クライアントも快適なものをつかいたい。プログラマというものは、IRC で50を超えるチャンネルに入っている場合がおおいので、50を超えるチャンネルでも快適に閲覧できるようなクライアントであることがのぞましい。安定していて、日本語の扱いがよいものとなると、irssi と limechat しかないだろう。自分はいままでながらく limechat をつかっていたのだが、irssi にのりかえた。これは limechat が macbook のメモリを喰うからという理由によるものである。irssi は自宅サーバでうごかして ssh でつないで見るといった使いかたができるので便利である。irssi はpluggableである。perl で拡張ができる。大変便利。

window manager をどうするべきか、ということも重要な問題だ。ウィンドウのきりかえやリサイズといったところも、すべてキーボードで行いたい。となると、mac はつかいにくいので、X11 の中ににげこむ。X11 の中で、キーボード操作に特化した window manager をつかうのがよいだろう。いろいろつかってみた感じでは stumpwm がよかったので、これを常用することにした。元々は ratpoison をつかっていた。stumpwm はプログラマブルなところがよい。common lisp で書かれているから、ソースをいつでも見れる。設定ファイルも common lisp だ。emacs に慣れている人間にとってはすごい安心感だ。

■所感

mac を効率的に扱うためには、mac らしさを捨てることが必要なのではないかという結論に至った。

■本日の参考文献

http://d.hatena.ne.jp/zariganitosh/20090108/1231380054

作者:tokuhirom

更新日:2009年1月9日 18時37分

このブログのホーム

ratpoison から stumpwm に移行する

stmpwm は common lisp でかかれた X の window manager です。

  • GNU Screen っぽい操作感
  • full common lisp
    • 設定を詳細にできる
    • 再起動しなくても設定をかえられる
    • 設定を S 式でかける

といったところがセールスポイントです。

ratpoison の作者の人がつくったものだそうですが、「C だと、設定とかめんどいし、謎言語つかって設定するのとかめんどいからもう全部 common lisp でよくね?」的な感じな様子。

自分は ratpoison が好きだし、emacs も好きなので、つかってみることにしました。

■インストールする

まず、stumpwm が依存しているものたちをいれます。stumpwm は common lisp で書かれているので、common lisp 処理系をインストールする必要があります。今回は stumpwm 作者がつかっている処理系であるところの sbcl を使いました。なんだかんだで、それが安心でしょう。

ついでに gnupg をインストールしておきましょう。asdf というツールが gnupg に依存しているのです。asdf は common lisp のライブラリをインストールするためのシェルです。CPAN command や gem みたいなものだとおもえばよいでしょう。

sbcl と gnupg2 は mac ports で入れました。

% port install sbcl
% port install gnupg2

次に、sbcl から asdf をつかって、依存ライブラリを入れます。sbcl を起動し、対話モード(REPL)にはいって、S 式をぶちこみます。

% sbcl
(require :asdf)
(require :asdf-install)
(asdf-install:install :clx)
(asdf-install:install :cl-ppcre)

途中で、gnupg の鍵があってないけどどうするのさ?と聞かれたりするので、0 を入力して無視しましょうと書くとセキュリティ方面の人からおこられるので、ちゃんとした方がいいです。

依存関係のものを入れたら、あとはもう普通のアプリケーションと同様に

./configure
make

で OK。./stumpwm というバイナリができているので、これを実行すればウィンドウマネージャとして動作する。

~/.xinitrc に設定を書きましょう。

■操作方法

C-t を prefix とした、screen 的な操作体系である。詳しくは、マニュアルを参照のこと。

「C-t :」が、eval にあてられていることに注意する。ratpoison からの移行組ははまる可能性が高い。ratpoison でいうところの colon は ; にわりあてられている。colon をsemicolon にわりあてるのは意味不明だが、しょうがない。

colon では、

  • タブ補完が効く
  • define-stumpwm-command をつかえばオリジナルのものを定義できる

ということに留意する。

colon で実行できるコマンドのうち、特に覚えておくとよいものとして loadrc がある。loadrc を実行すると、設定ファイルを reload できるので大変便利である。

■設定方法

~/.stumpwmrc というファイルに、設定をかく。S 式を書く。自分の場合は下記のようにした。

;; -*- lisp -*-
;; configuration file for stumpwm
;; written by tokuhirom

(in-package :stumpwm)

;; Set the default shell
(setf *shell-program* "/bin/zsh")

;; set background-color
(run-shell-command "xsetroot -solid black" t)

;; open-terminal
(define-stumpwm-command "open-terminal" ()
  (run-shell-command "urxvt"))

;; open-www-browser
(define-stumpwm-command "open-www-browser" ()
  (run-or-raise "/usr/local/mozilla-central/obj-ff/dist/bin/firefox" '(:class "Minefield")))

;; emacs
(define-stumpwm-command "emacs" ()
  "Start emacs unless it is already running, in which case focus it."
  (run-or-raise "/usr/local/bin/emacs -T Emacs" '(:class "Emacs")))

;; コマンドの prefix
(stumpwm:set-prefix-key (stumpwm:kbd "C-3"))

;; key-bindings
(define-key *root-map* (kbd "C-e") "emacs")
(define-key *root-map* (kbd "e") "emacs")
(define-key *root-map* (kbd "C-c") "open-terminal")
(define-key *root-map* (kbd "c") "open-terminal")
(define-key *root-map* (kbd "C-f") "open-www-browser")
(define-key *root-map* (kbd "f") "open-www-browser")

;; マウスカーソルを右下に固定する
(run-with-timer 5 5 'banish-pointer)

■ run-or-raise

stumpwm の面白い機能として、run-or-raise がある。これは、あるコマンドを実行するか、すでに実行ずみであればフォーカスを与えるというコマンドである。よく使うアプリケーションをキーボードショートカットで実行するといった用途につかえる。

このコマンドは、window の class や title で、既に実行しているかどうかを判断する。run-or-raise する対象のアプリケーションの class 名がわからない場合にはshow-window-properties コマンドをつかうとよい。

■感想

ratpoison からの移行については、ほとんどとまどうことはなかった。さすが同じ作者である。

S 式で書けるのは楽。ratpoison では、謎のコマンドを一生懸命羅列しなくてはいけなかったが、stumpwm では本物のプログラミング言語をつかって設定できる。気にくわないところがあれば、本体のソースコードを参照し、うわがきすることも容易である。動作しているウィンドウマネージャの挙動を動的に書きかえられるというのは本当にすばらしいものです。

作者:tokuhirom

更新日:2009年1月9日 17時55分

このブログのホーム

[mac]X11.pkg 2.3.2 がリリースされてる件

http://xquartz.macosforge.org/trac/wiki

X11.pkg の 2.3.2 がリリースされている。これは注目すべき事態です。

Leopard の x11.pkg は腐っていて、フルスクリーンモードにならないという不具合があって、

Q. Leopard にしたらフルスクリーンモードにできなくなったのですが
A. Leopard の X11.pkg をアンインストールして Tiger のものをいれてください

という、嘘みたいな FAQ がのっているような状況でした。

これが、2009-01-02 の 2.3.2 リリースでなおりました。

いやー、ほんと、昨日がんばって、フルスクリーンモードにならない不具合の情報を必死に調べていた俺涙目です。

作者:tokuhirom

更新日:2009年1月3日 20時51分

このブログのホーム

navi2ch を emacs の batch mode で一気に巡回させる life hack

navi2ch という emacs でうごく 2ch browser があるのですが、ノートPCでオフラインのときに巡回しようなどとおもうと、あらかじめ ma mi などとうって、手動で巡回しないといけなくて、ちょっと面倒です。面倒な上に、emacs はシングルスレッドなので、巡回している間は emacs がつかえなくて残念です。

というわけで、emacs の batch モードで、navi2ch の巡回をやるようにして、cron でぶんまわしてみた。

(progn
  (load "navi2ch")
  ;; (setq navi2ch-use-lock nil)
  (navi2ch)
  (navi2ch-bookmark-goto-bookmark "") ;; ここを適当なブックマーク名にかえる
  (navi2ch-bm-mark-all)
  (navi2ch-bookmark-fetch-mark-article))

作者:tokuhirom

更新日:2008年12月30日 23時33分

このブログのホーム

howm のトップっぽい雰囲気の HTML を生成するスクリプトをかいた

http://gist.github.com/41283

最近、howm とかつかいはじめてみたが、hcal.rb とやらがうごかなかったので、自分用に適当にでっちあげるの術。

作者:tokuhirom

更新日:2008年12月30日 0時24分

このブログのホーム

[perl]Apache2::AuthenMobileJP かいた

ケータイの端末IDで認証できる Apache モジュールつくってみました。なんかすでにありそうだったんですが、みつからなかったので自分で実装するというよくあるパターンに。既存のツールをくみあわせればそれなりにできるんだけど、それなりにめんどいから自分でつくったという。

下記のように設定すると、許可した端末IDのときだけコンテンツにアクセスできるようになります。IP 制限も Net::CIDR::MobileJP でやっているので、安心です。

PerlLoadModule Apache2::AuthenMobileJP
AuthType MobileJP
AuthName "My private documents"
require user 143789047492342_oe.ezweb.ne.jp

mod_perl2 で認証ハンドラかくのは初めてだったので意外と苦戦しました。mod_perl1 か

ら API が地味にかわってるので、ときどき調べるのが面倒です(Apache2::compat つかっ

たら負けかな、とおもっている)。

まだコンセプトってかんじですが、github にあげときます。

http://github.com/tokuhirom/apache2-authenmobilejp/tree/master

作者:tokuhirom

更新日:2008年12月29日 11時35分

このブログのホーム

[irssi]irssi で eijiro ひいてみる

irssi plugin 初挑戦。まあ、perl なので、まあそんなにつまることもないですね。

Web::Scraper で alc からスクレイピングしてきて、結果を HTML::FormatText::W3m で整形してだす、と。

富豪的かつライセンス的にアレですが、個人用途なので。

irssi プラグインをはじめて書いてみた感想としては、すごい簡単。としかいいようがないですね。our $VERSION にバージョンかいて、%IRSSI っていうハッシュにメタデータうめたら、あとは command をフックするとかシグナルをフックするとか、そういう感じ。すごいやりやすかった。そして、こういう風にフック機構をもたせる場合には、CPAN から適当にひろってきたモジュールで適当に仕事をやっつけられる perl って最強だな、とおもうのでした(まあ、他の言語だったら、「HTML をながしこんで text にする」というニッチなフレームワークはあまり存在しないんじゃないかな。こういうものがアップロードされていて、かつ見つけられるというのは CPAN のすごさなのだろうか)

use strict;
use warnings;
use Irssi;
use URI;
use Web::Scraper;
use HTML::FormatText::W3m;

our $VERSION = "0.01";
our %IRSSI = (
	authors     => "tokuhirom",
	contact     => "tokuhirom gmail",
	name        => "eijiro",
	description => "search eijiro",
	license     => "Public Domain",
	url         => "http://irssi.org/",
	changed     => "2006-09-20T21:46:00+09:00"
);

Irssi::command_bind('eijiro', sub {
    my ($data, $server, $witem) = @_;
    return unless $data;

    my $url = sprintf('http://eow.alc.co.jp/%s/UTF-8/', $data);
    my $res = scraper {
        process 'id("resultList")', 'res', ['HTML', sub {
            HTML::FormatText::W3m->format_string($_)
        }];
    }->scrape(URI->new($url))->{res};
    print "---- eijiro result of '$data' ----\n";
    print _shorten($res, 512);
});

sub _shorten {
    my ($src, $limit) = @_;
    if (length($src) > $limit) {
        substr($src, 0, $limit) . '..';
    } else {
        $src;
    }
}

作者:tokuhirom

更新日:2008年12月29日 0時1分

このブログのホーム

perl advent calendar 2008 終了のお知らせ。

http://perl-users.jp/articles/advent-calendar/2008/

\(^o^)/

というわけで、無事に 25 日まで走りきることができました。ご協力ありがとうございま

した。

当初は最後までまわるか不安でしたが、終わってみれば、想定していた方々にぜんぜんま

わりきらなかったなーという印象がのこりました。

あとはシースーを残すばかりです。

作者:tokuhirom

更新日:2008年12月26日 17時9分

このブログのホーム

[plagger]EFTの現状

Plagger には EFT という仕組みがあって、ブログ等から本文を抽出するための XPath や

perl script があつまっていて、大変便利です。

今みたかんじだとこのへんにいくつかありますね。

作者:tokuhirom

更新日:2008年12月26日 12時26分

このブログのホーム

[neta]macbook を効率的に使うための変態的設定を探る

昨年の12月以降、前からつかっていたMacBook(白いやつ。白は汚れがめだつので、アルミのやつがほしくてしょうがない。)の利用環境を見つめ直して以来、集中的にMacBookやOSXの使い方を調べ続けてきた。

以下は、この2ヵ月間で自分のMacBookの利用環境はどのようになったのか、前からもっていたMacBookにインストールしたApple以外のソフトウェアの状態をベースに、そこからの変化や新たに気付いた使い方のメモ。

■効率的に mac を操作するには

つまるところ、PC を効率的に操作する方法とは「マウスをつかわないこと」これにつきる。マウスをつかうには人生はあまりにも短かすぎると、ゲーテがいったという話を知人から聞きました。これを聞いて以来、自分は PC にマウスをささずにつかっています。

プログラマが扱いやすいデスクトップ環境において、重要なポイントは下記の3つだとおもう。

  • マウスをつかわないでいいこと
  • プログラマブルであること

OSX はキーボードのみで操作しようとすると、なにかにつけて不便です。まず、safari。これはキーボードのみで操作しようとすると大変だし、なにかにつけて不便だ。ここはカスタマイズ性にすぐれている firefox を採用するべきだ。firefox に vimperator を入れてつかうことにより、マウスに触れないでウェブブラウズできる。オススメである。ただ、vimperator は、設定が面倒だったり、情報収集にかかるコストが高いので、がっつりと時間をとって、習得・設定作業にあたらないといけない。もうすぐ vimperator 2.0 がリリースされるというタイミングであるし、firefox 3.1 がリリースされるというタイミングであるから、今のタイミングで導入するのは、オススメできない。もうすこし待ったほうが利口だとおもう。vimp のすぐれているのは、そのプログラマブルさだろう。思うまままにブラウザをカスタマイズでき、JS で挙動を制御できる。数行の JS をかくだけでブラウザの挙動をかえられる。これは実にすばらしいことだ。xpi なんかを書くのは面倒そうなのでなかなか手がでないが、この程度なら自分でもやれるな、という気になるのがよい。.emacsを書く感覚で書けるのだから、これは楽だ。

テキストエディタは vim か emacs をつかうのがよいだろう。プログラマブルなエディタをつかうのがプログラマにとっては重要なことだとおもう。vim と emacs のどちらがすぐれているかということについては、様々な議論があり、free するべきか否かという問題と同程度には重要な問題ではあるが、本稿では触れないことにする。なお、現在、私はコードをかくのは vim で行っており、それ以外の一切を emacs でやっているという蝙蝠状態である。vim はほとんどカスタマイズしていないが、emacs はかなりいろいろカスタマイズしている。emacs は lisp なので、簡単に設定できてよい。

IRC クライアントも快適なものをつかいたい。プログラマというものは、IRC で50を超えるチャンネルに入っている場合がおおいので、50を超えるチャンネルでも快適に閲覧できるようなクライアントであることがのぞましい。安定していて、日本語の扱いがよいものとなると、irssi と limechat しかないだろう。自分はいままでながらく limechat をつかっていたのだが、irssi にのりかえた。これは limechat が macbook のメモリを喰うからという理由によるものである。irssi は自宅サーバでうごかして ssh でつないで見るといった使いかたができるので便利である。irssi はpluggableである。perl で拡張ができる。大変便利。

window manager をどうするべきか、ということも重要な問題だ。ウィンドウのきりかえやリサイズといったところも、すべてキーボードで行いたい。となると、mac はつかいにくいので、X11 の中ににげこむ。X11 の中で、キーボード操作に特化した window manager をつかうのがよいだろう。いろいろつかってみた感じでは stumpwm がよかったので、これを常用することにした。元々は ratpoison をつかっていた。stumpwm はプログラマブルなところがよい。common lisp で書かれているから、ソースをいつでも見れる。設定ファイルも common lisp だ。emacs に慣れている人間にとってはすごい安心感だ。

■所感

mac を効率的に扱うためには、mac らしさを捨てることが必要なのではないかという結論に至った。

■本日の参考文献

http://d.hatena.ne.jp/zariganitosh/20090108/1231380054

作者:tokuhirom

更新日:2009年1月9日 9時37分

このブログのホーム

ratpoison から stumpwm に移行する

stmpwm は common lisp でかかれた X の window manager です。

  • GNU Screen っぽい操作感
  • full common lisp
    • 設定を詳細にできる
    • 再起動しなくても設定をかえられる
    • 設定を S 式でかける

といったところがセールスポイントです。

ratpoison の作者の人がつくったものだそうですが、「C だと、設定とかめんどいし、謎言語つかって設定するのとかめんどいからもう全部 common lisp でよくね?」的な感じな様子。

自分は ratpoison が好きだし、emacs も好きなので、つかってみることにしました。

■インストールする

まず、stumpwm が依存しているものたちをいれます。stumpwm は common lisp で書かれているので、common lisp 処理系をインストールする必要があります。今回は stumpwm 作者がつかっている処理系であるところの sbcl を使いました。なんだかんだで、それが安心でしょう。

ついでに gnupg をインストールしておきましょう。asdf というツールが gnupg に依存しているのです。asdf は common lisp のライブラリをインストールするためのシェルです。CPAN command や gem みたいなものだとおもえばよいでしょう。

sbcl と gnupg2 は mac ports で入れました。

% port install sbcl
% port install gnupg2

次に、sbcl から asdf をつかって、依存ライブラリを入れます。sbcl を起動し、対話モード(REPL)にはいって、S 式をぶちこみます。

% sbcl
(require :asdf)
(require :asdf-install)
(asdf-install:install :clx)
(asdf-install:install :cl-ppcre)

途中で、gnupg の鍵があってないけどどうするのさ?と聞かれたりするので、0 を入力して無視しましょうと書くとセキュリティ方面の人からおこられるので、ちゃんとした方がいいです。

依存関係のものを入れたら、あとはもう普通のアプリケーションと同様に

./configure
make

で OK。./stumpwm というバイナリができているので、これを実行すればウィンドウマネージャとして動作する。

~/.xinitrc に設定を書きましょう。

■操作方法

C-t を prefix とした、screen 的な操作体系である。詳しくは、マニュアルを参照のこと。

「C-t :」が、eval にあてられていることに注意する。ratpoison からの移行組ははまる可能性が高い。ratpoison でいうところの colon は ; にわりあてられている。colon をsemicolon にわりあてるのは意味不明だが、しょうがない。

colon では、

  • タブ補完が効く
  • define-stumpwm-command をつかえばオリジナルのものを定義できる

ということに留意する。

colon で実行できるコマンドのうち、特に覚えておくとよいものとして loadrc がある。loadrc を実行すると、設定ファイルを reload できるので大変便利である。

■設定方法

~/.stumpwmrc というファイルに、設定をかく。S 式を書く。自分の場合は下記のようにした。

;; -*- lisp -*-
;; configuration file for stumpwm
;; written by tokuhirom

(in-package :stumpwm)

;; Set the default shell
(setf *shell-program* "/bin/zsh")

;; set background-color
(run-shell-command "xsetroot -solid black" t)

;; open-terminal
(define-stumpwm-command "open-terminal" ()
  (run-shell-command "urxvt"))

;; open-www-browser
(define-stumpwm-command "open-www-browser" ()
  (run-or-raise "/usr/local/mozilla-central/obj-ff/dist/bin/firefox" '(:class "Minefield")))

;; emacs
(define-stumpwm-command "emacs" ()
  "Start emacs unless it is already running, in which case focus it."
  (run-or-raise "/usr/local/bin/emacs -T Emacs" '(:class "Emacs")))

;; コマンドの prefix
(stumpwm:set-prefix-key (stumpwm:kbd "C-3"))

;; key-bindings
(define-key *root-map* (kbd "C-e") "emacs")
(define-key *root-map* (kbd "e") "emacs")
(define-key *root-map* (kbd "C-c") "open-terminal")
(define-key *root-map* (kbd "c") "open-terminal")
(define-key *root-map* (kbd "C-f") "open-www-browser")
(define-key *root-map* (kbd "f") "open-www-browser")

;; マウスカーソルを右下に固定する
(run-with-timer 5 5 'banish-pointer)

■ run-or-raise

stumpwm の面白い機能として、run-or-raise がある。これは、あるコマンドを実行するか、すでに実行ずみであればフォーカスを与えるというコマンドである。よく使うアプリケーションをキーボードショートカットで実行するといった用途につかえる。

このコマンドは、window の class や title で、既に実行しているかどうかを判断する。run-or-raise する対象のアプリケーションの class 名がわからない場合にはshow-window-properties コマンドをつかうとよい。

■感想

ratpoison からの移行については、ほとんどとまどうことはなかった。さすが同じ作者である。

S 式で書けるのは楽。ratpoison では、謎のコマンドを一生懸命羅列しなくてはいけなかったが、stumpwm では本物のプログラミング言語をつかって設定できる。気にくわないところがあれば、本体のソースコードを参照し、うわがきすることも容易である。動作しているウィンドウマネージャの挙動を動的に書きかえられるというのは本当にすばらしいものです。

作者:tokuhirom

更新日:2009年1月9日 8時55分

このブログのホーム

[mac]X11.pkg 2.3.2 がリリースされてる件

http://xquartz.macosforge.org/trac/wiki

X11.pkg の 2.3.2 がリリースされている。これは注目すべき事態です。

Leopard の x11.pkg は腐っていて、フルスクリーンモードにならないという不具合があって、

Q. Leopard にしたらフルスクリーンモードにできなくなったのですが
A. Leopard の X11.pkg をアンインストールして Tiger のものをいれてください

という、嘘みたいな FAQ がのっているような状況でした。

これが、2009-01-02 の 2.3.2 リリースでなおりました。

いやー、ほんと、昨日がんばって、フルスクリーンモードにならない不具合の情報を必死に調べていた俺涙目です。

作者:tokuhirom

更新日:2009年1月3日 11時51分

このブログのホーム

navi2ch を emacs の batch mode で一気に巡回させる life hack

navi2ch という emacs でうごく 2ch browser があるのですが、ノートPCでオフラインのときに巡回しようなどとおもうと、あらかじめ ma mi などとうって、手動で巡回しないといけなくて、ちょっと面倒です。面倒な上に、emacs はシングルスレッドなので、巡回している間は emacs がつかえなくて残念です。

というわけで、emacs の batch モードで、navi2ch の巡回をやるようにして、cron でぶんまわしてみた。

(progn
  (load "navi2ch")
  ;; (setq navi2ch-use-lock nil)
  (navi2ch)
  (navi2ch-bookmark-goto-bookmark "") ;; ここを適当なブックマーク名にかえる
  (navi2ch-bm-mark-all)
  (navi2ch-bookmark-fetch-mark-article))

作者:tokuhirom

更新日:2008年12月30日 14時33分

このブログのホーム

howm のトップっぽい雰囲気の HTML を生成するスクリプトをかいた

http://gist.github.com/41283

最近、howm とかつかいはじめてみたが、hcal.rb とやらがうごかなかったので、自分用に適当にでっちあげるの術。

作者:tokuhirom

更新日:2008年12月29日 15時24分

このブログのホーム

[perl]Apache2::AuthenMobileJP かいた

ケータイの端末IDで認証できる Apache モジュールつくってみました。なんかすでにありそうだったんですが、みつからなかったので自分で実装するというよくあるパターンに。既存のツールをくみあわせればそれなりにできるんだけど、それなりにめんどいから自分でつくったという。

下記のように設定すると、許可した端末IDのときだけコンテンツにアクセスできるようになります。IP 制限も Net::CIDR::MobileJP でやっているので、安心です。

PerlLoadModule Apache2::AuthenMobileJP
AuthType MobileJP
AuthName "My private documents"
require user 143789047492342_oe.ezweb.ne.jp

mod_perl2 で認証ハンドラかくのは初めてだったので意外と苦戦しました。mod_perl1 か

ら API が地味にかわってるので、ときどき調べるのが面倒です(Apache2::compat つかっ

たら負けかな、とおもっている)。

まだコンセプトってかんじですが、github にあげときます。

http://github.com/tokuhirom/apache2-authenmobilejp/tree/master

作者:tokuhirom

更新日:2008年12月29日 2時35分

このブログのホーム

[irssi]irssi で eijiro ひいてみる

irssi plugin 初挑戦。まあ、perl なので、まあそんなにつまることもないですね。

Web::Scraper で alc からスクレイピングしてきて、結果を HTML::FormatText::W3m で整形してだす、と。

富豪的かつライセンス的にアレですが、個人用途なので。

irssi プラグインをはじめて書いてみた感想としては、すごい簡単。としかいいようがないですね。our $VERSION にバージョンかいて、%IRSSI っていうハッシュにメタデータうめたら、あとは command をフックするとかシグナルをフックするとか、そういう感じ。すごいやりやすかった。そして、こういう風にフック機構をもたせる場合には、CPAN から適当にひろってきたモジュールで適当に仕事をやっつけられる perl って最強だな、とおもうのでした(まあ、他の言語だったら、「HTML をながしこんで text にする」というニッチなフレームワークはあまり存在しないんじゃないかな。こういうものがアップロードされていて、かつ見つけられるというのは CPAN のすごさなのだろうか)

use strict;
use warnings;
use Irssi;
use URI;
use Web::Scraper;
use HTML::FormatText::W3m;

our $VERSION = "0.01";
our %IRSSI = (
	authors     => "tokuhirom",
	contact     => "tokuhirom gmail",
	name        => "eijiro",
	description => "search eijiro",
	license     => "Public Domain",
	url         => "http://irssi.org/",
	changed     => "2006-09-20T21:46:00+09:00"
);

Irssi::command_bind('eijiro', sub {
    my ($data, $server, $witem) = @_;
    return unless $data;

    my $url = sprintf('http://eow.alc.co.jp/%s/UTF-8/', $data);
    my $res = scraper {
        process 'id("resultList")', 'res', ['HTML', sub {
            HTML::FormatText::W3m->format_string($_)
        }];
    }->scrape(URI->new($url))->{res};
    print "---- eijiro result of '$data' ----\n";
    print _shorten($res, 512);
});

sub _shorten {
    my ($src, $limit) = @_;
    if (length($src) > $limit) {
        substr($src, 0, $limit) . '..';
    } else {
        $src;
    }
}

作者:tokuhirom

更新日:2008年12月28日 15時1分

このブログのホーム

perl advent calendar 2008 終了のお知らせ。

http://perl-users.jp/articles/advent-calendar/2008/

\(^o^)/

というわけで、無事に 25 日まで走りきることができました。ご協力ありがとうございま

した。

当初は最後までまわるか不安でしたが、終わってみれば、想定していた方々にぜんぜんま

わりきらなかったなーという印象がのこりました。

あとはシースーを残すばかりです。

作者:tokuhirom

更新日:2008年12月26日 8時9分

このブログのホーム

[plagger]EFTの現状

Plagger には EFT という仕組みがあって、ブログ等から本文を抽出するための XPath や

perl script があつまっていて、大変便利です。

今みたかんじだとこのへんにいくつかありますね。

作者:tokuhirom

更新日:2008年12月26日 3時26分

このブログのホーム