11/27に「Shibuya Perl Mongers テクニカルトーク#10」が開催されます。
発表者の一人であるYappoさんのShibuya.PM tech talk #10 の申し込み間に合わなかった人への提案とust時代の勉強会の関わり方というエントリをきっかけに、ここ福岡でも同日パブリックビューイングが開催されることになりました!
Fukuoka Perl Mongerlにて今回のパブリックビューイングが告知されています!
(上記案内ページから申込へ進めます)
今回の提案、そして会議室を快く提供してくれた株式会社Fusicさん、本当にありがとうございました。
codecheck.inのプチミーティングも隅っこで同時開催です。
一粒で二度おいしくなるといいなー。
2008年11月24日月曜日
2008年11月13日木曜日
svkでコンフリクト発生時にオルタネイトタイピングしなくて済む方法
僕はバージョン管理にsvkを使っているのですが、smergeや、pullすると稀にコンフリクトする時があります。
コンフリクトすると、
こんな感じでコンフリクトしたファイルをどうやって解決するか、いくつか選択肢が表示されるわけですね。
大抵は僕が悪いので、theirsを選択するのがほとんどです。
コンフリクトしているファイルがせいぜい2つ、3つくらいだとじっくり調査できるのですが、
たまにこれがハンパない回数聞かれるときがあります。
pullするの忘れてpushばっかりしてハッと思いだしてpullした時とか。
その度にtキー, エンターキー, tキー, エンターキー, ...と繰り返しタイプするのも大変です。
決まったリズムでキー叩くので仕事してるフリにも使えません。
ああ、こいつあきらかに一個一個消してんな、ってのがバレバレです。
CPAN ShellからCatalystやPlaggerインストール時にyes連打するのと似た感覚ですね。
ちなみにこれはちゃんと解決策あります。
参考 : CatalystやPlaggerのインストールでyes連打をしたくない - bokut.in
きっとsvkにもあるはず!と思って調べていたら、案の定ありました。
これで、以後コンフリクト時にはtheirsを自動選択してくれます。
これ、どうやら、
に書いてあったようです。
参考 : [svk-devel] svk resolver: obscure error, and obscure documentation
ちなみに、オルタネイトタイピングとは、tキーとエンターキーを交互にタイプすることから思いついた、オレオレスラングです。
参考 : オルタネイト
コンフリクトすると、
Conflict found on file xxx:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e]
こんな感じでコンフリクトしたファイルをどうやって解決するか、いくつか選択肢が表示されるわけですね。
大抵は僕が悪いので、theirsを選択するのがほとんどです。
コンフリクトしているファイルがせいぜい2つ、3つくらいだとじっくり調査できるのですが、
たまにこれがハンパない回数聞かれるときがあります。
pullするの忘れてpushばっかりしてハッと思いだしてpullした時とか。
その度にtキー, エンターキー, tキー, エンターキー, ...と繰り返しタイプするのも大変です。
決まったリズムでキー叩くので仕事してるフリにも使えません。
ああ、こいつあきらかに一個一個消してんな、ってのがバレバレです。
CPAN ShellからCatalystやPlaggerインストール時にyes連打するのと似た感覚ですね。
ちなみにこれはちゃんと解決策あります。
参考 : CatalystやPlaggerのインストールでyes連打をしたくない - bokut.in
きっとsvkにもあるはず!と思って調べていたら、案の定ありました。
export SVKRESOLVE="t"
これで、以後コンフリクト時にはtheirsを自動選択してくれます。
これ、どうやら、
svk help environment
に書いてあったようです。
参考 : [svk-devel] svk resolver: obscure error, and obscure documentation
ちなみに、オルタネイトタイピングとは、tキーとエンターキーを交互にタイプすることから思いついた、オレオレスラングです。
参考 : オルタネイト
VMware Fusionで動いているマシンのネットワーク設定を動的に切り換える方法
レアなケースだと思うのですが、NAT(VMを起動しているホストPCのみネットワークアクセスが可能な状態)とブリッジ(ホストPCが接続しているネットワーク上の他のマシンからもアクセス可能な状態)を使い分ける必要がある場合において、VM上のOSを再起動することなく、ネットワーク範囲を動的に切り替える方法がわかったのでメモします。
今回は僕がよく起動しているUbuntuでやってみます。

設定ボタンからネットワークを開き、、、

ブリッジ or NATに切り替えて、接続のチェックをオフ/オンする。
これだけで切り替えが可能です。
今まで再起動しないと反映されないと思いこんでいたorz
教えてくれた id:k1LoW ありがとう!
今回は僕がよく起動しているUbuntuでやってみます。

設定ボタンからネットワークを開き、、、

ブリッジ or NATに切り替えて、接続のチェックをオフ/オンする。
これだけで切り替えが可能です。
今まで再起動しないと反映されないと思いこんでいたorz
教えてくれた id:k1LoW ありがとう!
2008年11月12日水曜日
Proxyサーバーの変更をJavaScriptで自動化する
接続するホスト毎にProxyサーバーを変更したいケースがあります。
例えば、
localhostはProxyサーバーを通さないけど、他は通す。
とか、
特定のホストはProxyサーバーを通す。
とか、
平日はProxyサーバー通すけど土日は通さない。
とかとか。
実は今まで毎回Macのシステム環境設定から手動で切り替えていたのですが、さすがにめんどくささに耐えられなくなり検索したところ、なんとJavaScriptで動的に切り替えることが可能だったようです。
参考 : JavaScript または JScript を使った自動プロキシ ファイルの例
一言でいうと、JavaScriptで書いた設定ファイルをpacという拡張子で保存し、ブラウザやシステム環境設定から読み込む。というだけ。
早速やってみました。
まずは、proxy.pacというファイルを用意。
この例では、localhostとblog.cohtan.org以外のアクセスはdolipoというローカルのキャッシュサーバーをProxyサーバーとして経由する設定にしました。
このファイルを、proxy.pacというファイル名で保存し、システム環境設定のネットワーク設定から指定します。

こんな感じです。
たったこれだけで動的にProxyサーバーを変更することが可能になりました。
まさかこういうやり方があるとは、知りませんでした。
例えば、
localhostはProxyサーバーを通さないけど、他は通す。
とか、
特定のホストはProxyサーバーを通す。
とか、
平日はProxyサーバー通すけど土日は通さない。
とかとか。
実は今まで毎回Macのシステム環境設定から手動で切り替えていたのですが、さすがにめんどくささに耐えられなくなり検索したところ、なんとJavaScriptで動的に切り替えることが可能だったようです。
参考 : JavaScript または JScript を使った自動プロキシ ファイルの例
一言でいうと、JavaScriptで書いた設定ファイルをpacという拡張子で保存し、ブラウザやシステム環境設定から読み込む。というだけ。
早速やってみました。
まずは、proxy.pacというファイルを用意。
function FindProxyForURL(url, host) {
if (isPlainHostName(host))
return "DIRECT";
else if (shExpMatch(host, "blog.cohtan.org"))
return "DIRECT";
else
return "PROXY localhost-dolipo:3128"
}
この例では、localhostとblog.cohtan.org以外のアクセスはdolipoというローカルのキャッシュサーバーをProxyサーバーとして経由する設定にしました。
このファイルを、proxy.pacというファイル名で保存し、システム環境設定のネットワーク設定から指定します。

こんな感じです。
たったこれだけで動的にProxyサーバーを変更することが可能になりました。
まさかこういうやり方があるとは、知りませんでした。
2008年11月6日木曜日
MacBookの特定のキーがやたらカチカチうるさいので修理してきた
旧白MacBookから新アルミMacBookに乗りかえて満足していたのですが、
「H」キーだけタイプ時にやたらカチカチうるさかったので、Apple Store 天神のGenius Barに行ってきました。
裏側の調整だけで済むかもしれません。
といわれ、店の奥に持っていかれて待つこと15分、
すっかり「H」キーが静かになったMacBookが戻ってきました。
どうやらパンタグラフを交換してくれたようです。
お代もなし。ありがたやありがたや。
なかなか良いサービスですね。
近くに直営店があるのはメリットだなーと感じたのでした。
「H」キーだけタイプ時にやたらカチカチうるさかったので、Apple Store 天神のGenius Barに行ってきました。
裏側の調整だけで済むかもしれません。
といわれ、店の奥に持っていかれて待つこと15分、
すっかり「H」キーが静かになったMacBookが戻ってきました。
どうやらパンタグラフを交換してくれたようです。
お代もなし。ありがたやありがたや。
なかなか良いサービスですね。
近くに直営店があるのはメリットだなーと感じたのでした。
2008年10月1日水曜日
[tab2space]タブ文字をスペースに変換するとき、どうしてる?
SKK諦めて予測入力の出来るPrime使いはじめたcohtanです。
僕はコード書いているときに誰が見ても同じ見た目になることから、タブ文字をスペース4つ分に変換しています。
もちろんスペースキーを4回叩いているわけではなく、タブを押したら勝手にスペース4つ入るように設定しているだけです。
で、ここから本題。
ここにはいない他人が書いたコードにタブコードが入っている時にそれらをスペース4つに置き換えたい。
という状況が発生しました。
しかもここにはいない他人が書いているコードはたくさんあり、数百ファイルあります。
さぁどうするかと。
単純に、1つのタブコードに対して4つのスペースで置換したのでは見た目が変わってしまいます。
というのも、タブコードは文字列の頭を揃えるために使われる事があるので、4スペースの時もあれば、3スペースのときも、2スペースのときも、1スペースのときもあるのです。
なので、エディタにタブコードをスペースに変換する機能が備わっていれば、まず間違いなく文字列の頭を揃えてくれます。
ようは、これを自動で複数のファイルに対して実行したいと。
エディタ側に複数ファイルを一気にに編集する機能がついていれば可能っぽいですが、僕の愛用エディタであるvimではどうやっていいのかわかりません。
そこで、色々調べたところ、どうやらvimにはexモードという機能が存在し、コマンドのみを実行する事が出来るようです。
これをワンライナーで複数ファイルに噛ましてしまえば、エディタ上でタブコードをスペースに変換した時の美しい文字列の頭揃えが出来るはずです。
というわけで、出来たワンライナーがこれ。
この例では、拡張子がPHPのファイルに対して実行しています。
-exec 以降が肝で、
ようするに、:retして、:wqしてるだけなんです。
これを、カレントディレクトリ以下の*.phpに対してやってるだけ。
自前で文字列カウントしながらスペース変換やろうとすると結構めんどくさい気がするので、これはなかなか便利そう。
これでvimのコマンド部分だけを使って複数ファイルをごにょごにょする、なんてことも難しくないですね。
ひとつ悔しいのは、この機能を生粋のEmacserである、id:k1LoW氏から教えてもらったことです。
k1LoW++!
id:teramakoさんのエントリーが大変参考になりました。
ex(vim -e)コマンドを使おう
僕はコード書いているときに誰が見ても同じ見た目になることから、タブ文字をスペース4つ分に変換しています。
もちろんスペースキーを4回叩いているわけではなく、タブを押したら勝手にスペース4つ入るように設定しているだけです。
で、ここから本題。
ここにはいない他人が書いたコードにタブコードが入っている時にそれらをスペース4つに置き換えたい。
という状況が発生しました。
しかもここにはいない他人が書いているコードはたくさんあり、数百ファイルあります。
さぁどうするかと。
単純に、1つのタブコードに対して4つのスペースで置換したのでは見た目が変わってしまいます。
というのも、タブコードは文字列の頭を揃えるために使われる事があるので、4スペースの時もあれば、3スペースのときも、2スペースのときも、1スペースのときもあるのです。
なので、エディタにタブコードをスペースに変換する機能が備わっていれば、まず間違いなく文字列の頭を揃えてくれます。
ようは、これを自動で複数のファイルに対して実行したいと。
エディタ側に複数ファイルを一気にに編集する機能がついていれば可能っぽいですが、僕の愛用エディタであるvimではどうやっていいのかわかりません。
そこで、色々調べたところ、どうやらvimにはexモードという機能が存在し、コマンドのみを実行する事が出来るようです。
これをワンライナーで複数ファイルに噛ましてしまえば、エディタ上でタブコードをスペースに変換した時の美しい文字列の頭揃えが出来るはずです。
というわけで、出来たワンライナーがこれ。
find . -name "*.php" -exec ex -c 'ret' -c 'wq' {} \;この例では、拡張子がPHPのファイルに対して実行しています。
-exec 以降が肝で、
- ex - vim -e と同様。Exモードっというらしく、指定ファイルにコマンドを発行出来る。
- -c はコマンドを引数で指定するオプション。+でもいいみたいだけど、findに+を渡すと怒られてしまった。
ようするに、:retして、:wqしてるだけなんです。
これを、カレントディレクトリ以下の*.phpに対してやってるだけ。
自前で文字列カウントしながらスペース変換やろうとすると結構めんどくさい気がするので、これはなかなか便利そう。
これでvimのコマンド部分だけを使って複数ファイルをごにょごにょする、なんてことも難しくないですね。
ひとつ悔しいのは、この機能を生粋のEmacserである、id:k1LoW氏から教えてもらったことです。
k1LoW++!
id:teramakoさんのエントリーが大変参考になりました。
ex(vim -e)コマンドを使おう
2008年9月29日月曜日
MacUIMすごい
AnthyやSKKや予測変換のPrimeなど、オープンな日本語入力環境を手軽に構築でき、爆速vim環境なX11上のurxvtの中でも同様に動いてくれる素晴しいソフトです。
今まで、よくわからないままにX11上では、kinput2+cannaな環境でしのいでいたのですが、これからはMacUIMのSKKで全部統一できたのでしばらくこの環境で使ってみます!
参考 :
MacUIM – Trac
ことえりからの脱却「MacUIM」
最近の MacUIM には uim-xim が含まれていたのか……
今まで、よくわからないままにX11上では、kinput2+cannaな環境でしのいでいたのですが、これからはMacUIMのSKKで全部統一できたのでしばらくこの環境で使ってみます!
参考 :
MacUIM – Trac
ことえりからの脱却「MacUIM」
最近の MacUIM には uim-xim が含まれていたのか……
登録:
投稿 (Atom)
久しぶりにブログを書く
最初ログインできなくて焦った。 いや、ログインはできたのだが、ログイン後に自分のブログの管理画面に遷移できず、新しいブログを作成する画面になってしまったからビビッてしまった。 どうやら、Google+(現在はサービス終了)に紐づいたプロフィールを設定しているとこのような状況に陥る...
-
タイトルのようなことをちょっとやったのでメモ。 Postfixでアドレスを書き換える為にはカノニカルアドレスマッピングという機能を使用。 参考 : Postfixアドレス書き換え 設定例をいくつかメモります。 おまじない的にやること Postfix 2.2系の場合 特に無し。 書...
-
今年の3月に契約して5月末納車以降、大活躍な愛車の CX-5 XD(クリーンディーゼルモデル)。 もうね、このクルマめちゃめちゃいいですよ。ちょっと幅がでかいってのはありますが(全幅1840mm)走りがとてもいい。強力なトルクでしかもフラット。ハンドリングも大満足。...
-
Via: Emacsキーバインド強制elisp"鬼軍曹.el"をcommitした Emacsのキーバインドに慣れるため、強制的にカーソルキー他の機能を無効化してしまう鬼軍曹.elファイルがリリースされています。 これの作者の id:k1LoW からvim版作っ...