Saturday, April 18, 2009

9 life lessons

ちょっと普通のブログみたいなこと書いてみます。

よく知らないんですけど、有名なクライマーの9つの教訓は他の分野でも当てはまるいい話のようでした(ちゃんと聴き取れてない)。
Matthew Childs: Hang in there! 9 life lessons from rock climbing

1. Don't let go - 手を離すな
2. Hesitation is bad - ためらいは良くない
3. Have a plan - 無計画ではだめだ
4. The move is the end - 進む限り辿り着く
5. Know how to rest - 休む方法を知る
6. Fear sucks - 恐れは人を無能にする
7. Opposites is good - 対称的な力は良い
8. Strength ≠ success - 力だけでは成功しない (バランンスが重要)
9. Know how to let go - 撤退(失敗)する方法を知る

適当に意訳してみましたが、わかりにくいのは 7 の対称性についてで、岩壁の割れ目に体が入る場合は突っ張るようにして登り、逆に指先しか入らない割れ目では自動ドアをこじ開けるようにして体を支えるので、その左右対称な力のことを言っているようです。

1, 9 は矛盾するように見えますが、状況によってはって感じですよね。変な例ですけど、満員電車の車内に自力で立とうとしない奴っていますよね。ドアが閉まったら、完全脱力で他人に寄りかかるのではなく人として自力で立とうとする努力が欲しいと思います。逆にドアが空いたら、無理に社内に留まろうとせずに流れに身を任せる感じで一旦ホームに出る潔さ。

6 もアレですね、電車がホームに到着したときに降りる人がまだいるのに乗ろうとする奴。利己的に座りたいからという人が大半かとは思うのですが、乗り遅れてしまうのではないかという恐怖を克服できない人もいるんじゃないかなと思います。

ルールにより制約が生じる大半のスポーツと違い、環境と肉体が制約となるフリークライミングならではの原理に近い教訓だと思いました。

Sunday, April 12, 2009

using SyntaxHighlighter

SyntaxHighlighterを試してみました。


class FooController < ApplicationController
before_filter :set_foo

# 詳細
def show
end
end

EMOBILE H11LC with Mac - a review

イーモバイルの小型通話+データ通信端末 H11LC を買ってしまいました。
Mac につないで実際に利用した場合のレビュー記事が見つからなかったのでちょっと書いてみます。

まだ一週間も経っていませんが、いまのところは、まあ、いいんじゃないですかね。

使う前は、一度何かをインストールすればあとは、USBで接続したらもうネットに接続されると勝手に思い込んでいましたが、実際は、
1. USBで接続すると、"Modem" という名のボリュームがマウントされる
2. そのボリュームに含まれる "H11LC_utility_mac_V1_00.app" または /Application にインストールされる "EMOBILE H11LC Utility.app" を起動する
3. その Utility で接続をクリックするとモデムで発信してネットに接続する
最低でも3アクション必要で、(自分の環境では) utility の起動に数秒かかります。

勝手に接続すると、接続料金が知らずに加算されていたりしそうなので、考えてみればあり得ないですね。
でも、USBに挿したらメニューバーの常駐アプリケーションの表示が変わり、メニューから「接続」を選択できたりするといいのに。

あとは文章にするのが面倒なので箇条書きに列挙します。

他に気づいた点を列挙すると、
* microSD のボリュームも utility 起動にちょっと遅れてマウントされるので USBメモリと同じ感覚では使えない
* 有機ELだからなのか?ディスプレイは日中の太陽光の下では非常に見にくい
* なぜか試供品扱いのストラップになる USBケーブル2 はかっこ悪いが便利なので外せない

音楽プレイヤーに関しては、(音質を気にするなら使わない前提で)
* utf-8 の日本語ファイル名は表示できている
* スペック通り mp3 以外は再生できないので m4a などは変換する必要あり
* mp3 の(ID3などの)タグ情報は参照されないのでファイル名でのみ識別
* mac 接続してユーティリティーを起動すると音楽再生は停止する
* イヤホンを接続するためには黒くダサイ専用イヤホンマイクを利用するか、ありえないデザインと大きさの黒いアダプタを利用する必要がある (pdfマニュアル p21 参照) => 他の携帯向けの変換アダプタが使えるか?
* 背面スピーカーからの音量は以外と大きいのでポケットに入れて、フロ掃除したりするときのBGMには使えるかも
* プレイリストの編集はメモリカードでなく本体のメモリ?に保存され、本体からでしか操作できない
現実的にはmp3を厳選するか、たくさん入れて全曲プレイリストのランダム再生?

Mac と他のシステムとファイル共有したりするときのいつもの問題だが、
* Finder を利用してコピーするとリソースフォークが ._ファイル名 として保存されるてしまい、音楽再生時に ._ファイル名.mp3 を無視してくれないので、いちいち「ファイルが壊れています」と表示されウザイ
* Spotlight 環境設定で除外しないと Spotlight の index が作成されて容量がムダになる (._ ファイルと同様、 Mac OS X 側の問題)

プログラマの視点からのどうでもいいこととしては、
* Utility はいちおう Cocoa アプリケーションのため、連絡先編集などのテキスト入力で emacs binding は使えるが、コスト削減のためか Windows 版と同じ設計(デザイン)で非常に格好悪い(スプラッシュ画面が出るようなアプリケーションに共通の格好悪さがある)。

あとは、参考資料
* イーモバイルのダウンロードページに H11LC の マニュアル(pdf)があります。
* ASCII.jp でのレビュー
* 小暮祐一という方のブログ記事
* みんぽす (先のリンクに複数のレビューあり)
などを参考にしてください。

Thursday, April 2, 2009

Pulling forked changes with git - an example

うれしいことに、拙作 script/refactor を改善する変更の pull request のメッセージが届いていたので早速、 pull しようと思ったけど手間取ってしまったのでそのメモです。

GitHub のガイド wiki には Pull Requestsがあるんですけど、手元の git (v 1.6.2.1) では、そのまんまだとリモートブランチとローカルブランチの名前が同じになってしまって、何かすると
warning: refname 'tjsheehy/master' is ambiguous.

のような warning が出て気持ちわるい。

試行錯誤の結果、シンプルにローカルブランチは作らずに master ブランチで pull して GitHub に push しました。
$ git remote add -f tjsheehy git://github.com/tjsheehy/script-refactor.git
$ git pull tjsheehy master
$ git commit


また、CHANGELOG をつくるのには、
$ git log --pretty=format:"* %s [%an] %h" | cat
こんな感じでログをフォーマット指定の pager なしで吐いて、切り貼りしました。


でも、あれですね。メジャーなプロジェクトをホストしている人は pull request 来まくって、ウザいでしょうね。

あと思うのは、 ssl_required など、とりあえず GitHub に引っ越しただけのプロジェクトとか fork されまくってるけど全然本家にマージされてないやつとかどれ使っていいのかわからなくて困りますね。Network グラフをみてどのリポジトリの本気度が高いか見極める必要があるし。