2009年6月2日火曜日

分散なんとか勉強会で「CouchDB Relax」発表しました

こちらもスライドを置いておきます。
Git同様に公開用に少しだけ調整しています。



Futonデモ、CouchAppデモ、Sofaデモなど、なんだかんだで45分きっかりお話した感じでした。
僕もまだちゃんとわかっていないところが多いので、これからも色々さわってみます。

この勉強会の直前にプログラミングErlangを購入しました。
プログラミングErlang
プログラミングErlang
posted with amazlet at 09.06.02
Joe Armstrong
オーム社
売り上げランキング: 12450
おすすめ度の平均: 5.0
5 前準備
5 Erlangならこの本が一番


これからCouchDBのソースコードも読んでみようと思います。

当日の様子はcodecheck.inのustreamにあがってます。
codecheck.in ustream

参加してくれた皆様のレポ。
DistributedHoge « Ecogrammer
Distributed Hoge - 分散なんとか勉強会 codecheck.in at Fusic - 気が向いたら
分散なんとか勉強会 発表資料 - [foool]丘の上
分散なんとか勉強会無事fork完了

分散なんとか勉強会で「Subversion -> SVK -> Git」発表しました

スライドを置いておきます。
公開用に少しだけ調整しました。



今回の勉強会では、後半GitとGithubを使ったハンズオンを予定していた為、
僕はGitへ移行した自分の体験などをお話しました。
途中Githubが落ちるというハプニングもありましたがとりあえずみんなforkしあう所まではいけたようです。

CouchDBの話もしてきたのですが、それは別エントリで。

当日の様子はcodecheck.inのustreamにあがってます。
codecheck.in ustream

参加してくれた皆様のレポ。
DistributedHoge « Ecogrammer
Distributed Hoge - 分散なんとか勉強会 codecheck.in at Fusic - 気が向いたら
分散なんとか勉強会 発表資料 - [foool]丘の上
分散なんとか勉強会無事fork完了

2009年3月18日水曜日

手軽に始めるVimperator入門

先日、「Vimperatorで始めるVim入門」という内容で「テキストエディタ勉強会」で話してきました。
軽く参加者の皆さんにアンケートを取ったのですが、予想以上にご存知の方が多く、また、よくわからないままにアンインストールした方が多かったです(笑)。

時間の都合上具体的なセットアップ方法等はお話しませんでしたので、今日は前回の復習も兼ねて、そこらへんからエントリを書いてみたいと思います(随分時間あいちゃってごめんなさい)。
  • インストール
  • 基本操作
  • 最低限あるとうれしいプラグイン
という感じで進めます。
あらかじめ、XUL/Migemoというローマ字で日本語を検索出来るプラグインをインストールしておいてください。プラグインとの連動で使用します。

インストール

https://addons.mozilla.org/ja/firefox/addon/4891
ここからインストールします。
これは大丈夫ですね。

さて、いきなりですが、インストール直後におまじないが必要です。
勉強会でもお話した通り、起動するといきなりアドレスバーなどがなくなってしまいます。
Vimperatorの設定ファイルである、.vimperatorrcというファイルを作成し、

MacOSX / Linux : 自分のHOMEディレクトリへ
Windows : C:¥Documents and Settings¥"ユーザー名"

です。
Windowsのケースは僕も試したわけではないので、詳しくは
Vimperatorの初期設定
をご覧下さい。

.vimperatorrcの中は、
set guioptions+=mTb
set wildoptions=auto
set complete=sl

と書いてくださいね。

基本操作

勉強会でお話した一通りのショートカットキーを列挙します。
ページ内移動は、

jklh: ↓↑→←
CTRL-d: 半ページダウン
CTRL-u: 半ページアップ
gg: ページ頭へ
G: ページ最後へ

リンクのクリックは、

fキーを押すと番号が表示されるので、その番号をタイプ
fキーを押してキーワード絞り込み(fとタイプ後、linkとタイプすると、linkと書かれているリンク先だけ絞り込まれる)

URLを開くときは、

oキーを押して文字を入力


Vimperatorの動きを一時的にオフにしたいとき(Livedoor ReaderやGmailのショートカットキーを使いたい時など)
CTRL-z(ESCで復帰)

これだけですね。
とりあえず意図しない動きになった時はESCキーを押してください。
# Vim使うようになるとESCキーは一番叩くキーになります。

これで一通りネットサーフィンは出来ると思います。

最低限あるとうれしいプラグイン

codereposに沢山のプラグインがあることをお話しました。
その中から特に便利なプラグインを紹介します。

ちなみにプラグインは、

MacOSX / Linux : HOMEディレクトリの.vimperator/pluginディレクトリの中
Windows : C:¥Documents and Settings¥"ユーザー名"¥vimperator¥pluginディレクトリの中

にそれぞれおきます。

migemo_hint.js

http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/tags/1.2pre/migemo_hint.js

これは非常に便利です。
fキーを押してキーワード絞り込み(fとタイプ後、linkとタイプすると、linkと書かれているリンク先だけ絞り込まれる)
これにローマ字入力による日本語リンクタイトルの絞り込みが可能になります。
先日の勉強会で参加者の関心が高かったプラグインです。

autoIgnoreKey.js

http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/tags/1.2pre/autoIgnoreKey.js

これは、GmailやLivedoor Readerなど、独自にショートカットキーが設定されているウェブサイト向けに、
自動でVimperatorをサスペンドしてくれるプラグインです。

とりあえず、プラグインの紹介はこの二つで。
ビュンビュン操作できるようになってくれば、快適そのものです!

おわり

今回のエントリ、いかがだったでしょうか。
キーボードによるブラウザの操作の楽しさを感じとってもらえると幸いです。

今回紹介したのは最低限の操作のみでした。
もっと知りたい場合は、:helpもしくは、vimfox.comさんの基本操作やチートシートが非常に参考になると思います。

Vimfox
Vimperatorの基本操作
Vimperator Cheat Sheet

これまでの使い方から変化を感じ、心地よさを覚えればあとは自分でどんどん突きつめていってください。

ちなみに僕はガッツリカスタマイズなんてしてなく、
非常にライトに使ってます。

PostfixでメールのToやFromを書き換える方法

タイトルのようなことをちょっとやったのでメモ。
Postfixでアドレスを書き換える為にはカノニカルアドレスマッピングという機能を使用。

参考 : Postfixアドレス書き換え

設定例をいくつかメモります。

おまじない的にやること

Postfix 2.2系の場合

特に無し。
書き換えルールを設定ファイルに記述していけばOKみたい。

Postfix 2.3系の場合

local_header_rewrite_clients = static:all
をmain.cfに書く。

2.3系ではデフォルトでは、
local_header_rewrite_clients = permit_inet_interfaces
となっているようで、$inet_interfacesにマッチしたクライアントIPアドレス以外からのメールに対して書き換えが行われないようです。

とりあえず、2.2系と同じ動作にするには、
local_header_rewrite_clients = static:all
としておけばいいみたい。

実際の設定例

main.cf
# 書き換えるアドレスの対象
canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipient

# 送信者、受信者双方に適用
canonical_maps = regexp:/etc/postfix/canonical.regexp

# 送信者のみ書き換え対象
# sender_canonical_maps = regexp:/etc/postfix/sender_canonical.regexp

# 受信者のみ書き換え対象
# recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical.regexp

とか書いて、
/etc/postfix/canonical.regexp
/^hogehoge/ fugafuga

とかしておくと、
エンベロープ送信者アドレス、エンベロープ受信者アドレス、
メッセージヘッダの送信者アドレス、メッセージヘッダの受信者アドレス、
マッチしたもの全てを書き換えます。

From: hogehoge@example.com
が、
From: fugafuga@example.com
こんな感じに書き変わるというわけです。

置換したい対象を制限する場合は、
canonical_classesの中身を指定すれば良いです。

メッセージヘッダーのToアドレスだけ書き換えたい場合は、
canonical_classes = header_recipient
という感じ。

ちなみに、.forwardとかで呼びだされるプログラムには、もちろん書き換え済みのアドレスが入ります。
非常に便利!

2009年2月28日土曜日

Plagger::Plugin::Notify::Skype こさえた

ソースはcodecheck.inに。

Skype4Py必須です。
しかもMacでしか動作確認してないです。
ひどい俺用プラグインですいません><

plugins:
- module: Subscription::Config
config:
feed:
- url: http://b.hatena.ne.jp/articles

- module: Notify::Skype
config:
skype_id: echo123


こんな感じで、この例では、「Skypeテスト通話」のアカウント(echo123)宛に通知します。

Apple Wiress Keyboardの電池が切れた

バリバリ活躍中のキーボード、



使いはじめてから大体2ヶ月で電池が切れました。
まープログラム書いたりVimpでショートカットキーガシガシタイプしていたのでこんなもんかなと。

今回はカメラのストロボ用にたくさん買っているアルカリ電池を投入。
それにしても3本使用ってマジ中途半端。

本当に、美人は金がかかる。

TerminalでSkypeチャット出来るskypesh.pyを作りました

先日のcodecheck.inのテキストエディタ勉強会でid:kiwanamiさんがskype.elを発表。Emacsの中でSkypeしている姿を見て、衝撃を受けました。というか全体的にEmacsの人達は濃かったw

それはさておき後日codecheck.inのIRCでも「僕らはTerminalの中で生活しているから、SkypeもTerminalで出来ればいいよね」「なんでSkypeのシェルがないんだろう」みたいな話が出てきて、そういえばSkype4PyというPython製のSkype APIにアクセスするモジュールあるし、これ使ったら意外と出来るかもとAPIを調べたところ、結構簡単に試作品が出来てしまいました。

コードはcodecheck.inに置いてます。

skypesh.py

Skype4PyがインストールしているPythonの環境なら動くと思いますが、MacOSXでしか動作確認してません。
動作イメージはこんな感じ。



% ./skypesh.py SKYPE_ID

でSKYPE_IDとのチャットを開始!

上記のスクリーンショットは僕のMacのX11 + urxvtからテスト用アカウントである「cohtan.org」宛にメッセージが飛ばし、また受信している様子です。

現在は相手からのチャットメッセージを受けとった後、プロンプトを戻す方法がわからず、現状は一旦自前で改行することでプロンプトを出すという感じ。

また、実行の際はSkypeのクライアントは実行されている必要があります。
なので、Skypeクライアントのチャットウインドウにも同様のチャットが展開されます。

ただ、インターフェースが普段使っているurxvtに統一できるのがメリット。
IRCD化してしまってもよさそうです。

久しぶりにブログを書く

最初ログインできなくて焦った。 いや、ログインはできたのだが、ログイン後に自分のブログの管理画面に遷移できず、新しいブログを作成する画面になってしまったからビビッてしまった。 どうやら、Google+(現在はサービス終了)に紐づいたプロフィールを設定しているとこのような状況に陥る...