2009-10-21

Lamy2000 壊れる

6 日前、愛用の多色ボールペン Lamy 2000 が壊れてしまった。

Broken Lamy 2000

iPhone で写真を撮ったのでよく見えないかもしれない。Lamy は軸の真ん中あたりがクルクルっと回って、リフィルを交替できるやうになっている。壊れたのは、このネジのつけ根。

普通に書いてて、何かグラグラするなぁ、と思ったらボールペンが折れるやうに形が変わっちゃった。何かと思って、軸を回してみたら、この通り。

Lamy の魅力は、静かなノッキング・システム。手に馴染むこと。そして、安物のやうにすぐに壊れないこと、と思っていたのだけど、三つ目の魅力はなくなったと思っていいのかなぁ。というのも、この Lamy 2000 は 2009-08-20 に買ったばかり (実はお盆の帰省の際に、一本失くしてしまったの)。まだ、2 か月と持ってない。これじゃあ、100 円ボールペンと変わらない。

最近、忙しくて販売店にも顔を出せていなかったけど、時間を見つけて交換を要求してみるつもり。保証書とか手元にないから、無理かもしれないけどね。

2009-10-16

Beatles Mono Box is shipped from Amazon

昨日、9/30 頃に注文した Beatles Mono Box [Remasterd] を発送したよ、とのメールを頂いた。メールの送信元は Amazon 本来 Mono Box は 9/9 発売だったのだけど、予約だけで完売し、発売日ギリギリ前に予約した人は、受け取れない状況だった。初回限定発売という事もあって、もう買えないのでは? との声もあったけど、Amazon はやってくれた。 入荷困難となった時点で、10 月中に再入荷があるとのメールが届き、その後も入荷のさらなる遅れに対して、フォローのメールが続いた。 そして、ようやくの発送。きっと明日の午前中には受け取れるんじゃないかと、わくわくしてる。 - Posted using BlogPress from my iPhone

MsysGit で ssh のパスフレーズがパーミッション・エラーで使えない不具合

MsysGit 付属の GIT BASH で、過去記事の通りパスフレーズの設定を行ない ssh $host したら、次のやうなエラーが出て困った (ワーニングは下記の参照元をコピペした)。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/xxx/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/xxx/.ssh/id_rsa
Permission denied (publickey,gssapi-with-mic).

.ssh/id_rsa ファイルのパーミッションが 600 になっていない。危険なので ssh 接続は行なわなかったよ。という警告。

GIT GUI 付属の chmod でパーミッションを変更しやうにも、パーミッション値が変わらない。

git-bash$ cd .ssh
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:20 .ssh/id_rsa
git-bash$ chmod 600 id_rsa
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:21 .ssh/id_rsa

Cygwin 付属の chmod ならパーミッションを変更できた、やうに見えるけど

cygwin-bash$ git-bash$ cd .ssh
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:22 .ssh/id_rsa
git-bash$ chmod 600 id_rsa
git-bash$ ls -l id_rsa
-rw------- 1 masayuki ataka 2 2009-09-16 06:23 .ssh/id_rsa

GIT GUI 付属の ls で確認するとパーミッションが元に戻ってる。

git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:21 .ssh/id_rsa

そのせいか、GIT BASH 経由で ssh 接続にパスフレーズが使えない。

困った

解決方法

原因を一つに絞り込めていないのだけど、次の作業を行なったら不具合が解決した。

  1. Windows の環境変数「CYGWIN」を削除した
  2. Windows の環境変数「HOME」を削除した

両方の環境変数を削っても、Cygwin 及び MsysGit を使う上で特に問題は起きていない。

時間がなくて調べ切れてない。もしかしたら「HOME」を削除しなくても良いかもしれない。あと、環境変数「CYGWIN」には「ntsec」という値が設定されていたのだけど、その値の意味も調べてない。他の値に変更するだけでも動いたのかもしれない。詳しい方、コメント下さい。

MsysGit の Git GUI でパスフレーズ入力省略

Windows 用 Git 環境「MsysGit」をインストールすると、「Git GUI」というコマンド・ライン用アイコンと、「Git GUI」という GUI 版の Git (Linux でいうところの git-gui そのもの) が起動する。

ssh プロトコルで接続

Git repository が ssh プロトコルで公開されていると、git clone や fetch や push の度にパスワードを求められて困る。そこでコマンド・ライン派の人達におススメなのが、ssh の passphrase を使って、ssh-agent & ssh-add によりパスフレーズ入力を省略する方法。

Git Bash でそれを行なう場合、やり方は Unix と同じ。

GIT GUI でも、パスフレーズ入力を省略したい

GIT GUI は、Tcl/Tk で書かれたスクリプト (MsysGit には Tcl の実行コマンド wish も入っている!)。なので、GIT BASH で ssh-agent & ssh-add した後に続けて、GIT GUI に相当するコマンドを実行してやればいい。さうすると、コマンドラインから起動した GIT BASH ではパスフレーズ入力が不用になる。

実際の手順はこの通り:

$ ssh-agent bash
bash-3.1$ ssh-add
bash-3.1$ wish /c/Program\ Files/Git/libexec/git-core/git-gui

いささかコマンド・ラインが長い。.bashrc を作っておくと便利。

# .bashrc
alias git-gui='wish /c/Program Files/Git/libexec/git-core/git-gui'

使い方は、分かるよね。一応、書いとくと:

$ ssh-agent bash
bash-3.1$ ssh-add
bash-3.1$ git-gui

もう、Git GUI のアイコンは要らないね。全部 GIT BASH を使ってしまえばいい。

2009-10-15

SSH の passphrase 入力を省略する

ssh でログインしたり、scp コマンドでファイルを転送したり。こんな時、面倒なのが Password/Passphrase の入力。ただし、Passphrase を作っている場合に限り、このパスフレーズ入力をセッション中省略することができるやうになる。

Passphrase の設定方法は過去記事を参照してもらうことにして:

ssh-agent と ssh-add

使うコマンドは 2 つ。ssh-agent と ssh-add。

前者の引数で、パスフレーズを省略する「コマンド」を指定する。

後者のコマンドを実行すると、Passphrase の入力を促され、その後「ssh-agent」で起動したコマンドが終了するまでの間、Passphrase 入力を省略できる。

例えば次のやうにすると、

$ ssh-agent emacs &
$ ssh-add

Emacs の中から svn+ssh したりする時にパスフレーズの入力を求められなくなる。

まあ、ほとんどの人は、bash を ssh-agent の引数に渡すでせう。

$ ssh-agent bash
$ ssh-add

これで、ssh も scp もパスフレーズ要らずになるし、bash から起動する GUI 系アプリも (パスフレーズを要求されるのであれば) パスフレーズを省略できる。

ただし、bash を ssh-agent の引数に与えると、セキュリティー的には弱くなってしまうことには留意されたし。

MsysGit -- Windows 用 Git クライアント

Windows で git したい人には、2 つの選択肢がある。

一つは Cygwin についている git コマンドで、git-core パッケージからインストールする。これはほぼ完璧な Git のコマンドで、Linux 上で git を使うのとほぼ同じやうに使うことが出来る。問題は、Cygwin のパッケージ自体が大き過ぎること。git 一つだけ使うのに Cygwin インストールをためらう人は多いかもしれない。

そこでもう一つの選択肢。MsysGit。Git を使うための Minimam な SYStem をインストールしてくれる。

Minimum なシステムとは、git だけでなく、bash, cp, mv, rm, mkdir, rmdir を当然として ssh, perl, wish (Tcl) 等を含む。

インストール

msysgit のページから、「Git-1.6.4-preview20090730.exe」をダウンロードしてダブル・クリックするとインストール画面が動く。基本、デフォールトのままで良いと思うけど、一応自分が気になったところをコメントしておく:

  • 「Adjusting your PATH environment」。。。「Run Git from the Windows Command Prompt」を選んだ。
  • 「Choosing the SSH executable」。。。「Use OpenSSH」を選んだ。Plink はどうも使い方が良く分からなくて ^^;
  • 「Choosing CR/LF behavior」。。。「Use Unix style line encoding」を選んだ。改行コードの設定。Unix な人達と一緒に開発してる時は、この設定は必須かと。

使い方

「Git Bash」アイコンをクリックすると、ターミナルが起動する。コマンド・ライン派の git 使いは、こちらを使うと良いでせう。問題は、デフォールトで起動するターミナルが cp943 (Shift_JIS) しか対応していないこと。utf-8 で書いた commit log が git log コマンドで文字化けする。どうしやう...

コピペについては、clmemo@aka: Cygwin の黒いターミナルにクリップボードの中身を貼り付ける を参考にされたし。

ref

Cygwin の黒いターミナルにクリップボードの中身を貼り付ける

Cygwin で bash ターミナルを開くと、Windows のクリップボードの中身を貼り付けられなくて苦労する。

そこで重宝するのが、getclip といふコマンド。

$ getclip
Windows でコピペしたごにょごにょ

Linux コマンドをウェブ・ページからコピペして実行したい? そんな時はこんなコードを .bashrc に埋め込んでおく。

alias p=`getclip`

「p」と入力するだけで、クリップボードの中にコピペしたコマンドを実行できる。

Git Bash にもどうぞ

Cygwin さえ入っていれば、Git Bash (MsysGit より) からでも getclip を呼べて便利。長〜い git clone のための URL をコピペできなくて泣きさうになってた人は嬉ぶはず。

Git Bash と Cygwin 両方入れてる人がどれ程いるかは疑問だけど :p

2009-10-14

Android (HT-03A) は Push 通知が素敵

iPhone と Android の比較。Android は、iPhone に比べて「Push 通知」が素晴らしい。

メールを例に挙げませう。

通知用 LED

Gmail にメールが届くと、スピーカー横の小さな緑 LED が点滅する。ユーザーは、HT-03A の画面を開くことなくメールの到着を知ることができる。

LCD (画面) を灯けると、それだけでバッテリーを消費してしまう。画面を灯けずにメールの到着を知れるこの LED は素敵。

実を言うとこの時点では、本当に「メールが届いた」のか、「カレンダーの予定」がお知らせされたのか、はたまた「Twitter にリプライがあった」のかを区別して知ることは出来ない。ただ、何かの通知があったことだけを知ることができてるだけ。何の「通知」かを知るには、ハード・キーを一回押す必要がある。

通知用バー (Notification Bar)

ハードキーを一回クリックすると、ロック画面が現れる (ここで「MENU」を押すとロックが外れる)。

Android はこのロック画面で、「何の通知が来た」か知ることが出来る。画面上の Notificiation bar (通知用バー) を見てみやう。そこに「@」(アットマーク」の印がついていたら、メールが届いている。「1」(数字の 1) の場合はカレンダー通知。

小さな小さなアイコンだけど、その意味する所は大きい。ロック画面を解除しなくても、「LED」が光っていたのが「メールが届いたから」なのかそうでないのかを知ることができる。

通知用バーを引き下げる

メールが届いていた。内容を確認したい。

Gmail アプリを起動する必要があるだらうか? 実はその必要はない。

まず、MENU ボタンを押してロックを解除したら、通知用バーを引き下げるやうにドラッグする。すると、「通知」内容の詳細が表示される。メールの場合、「新着メール 未読 8 件」という具合。そこで更に「新着メール」と書かれた部分をタップすると、勝手に Gmail アプリが起動する。ぼくらユーザーの側からメール・アプリを起動しに行く必要はない。

これがメールの通知じゃなくて、予定 (カレンダー) の通知だった場合は、カレンダー・アプリが起動して予定の詳細を表示してくれる。

iPhone との比較

iPhone の場合、「Push 通知」は各アプリまちまちで、一か所に集まっていない。何かの通知が入っても、統一感がないのでスマートさがない。

例えば、メールであれば「メール」アプリのアイコンに表示される「未読数」をチェックしないといけない。メール・アプリが画面に表示されてなければ、画面をスクロールして表示する必要がある。とても面倒。

Twitter クライアントの Echofon はもう少しスマート。通知が来たタイミングでポップアップが現れる。

けれど、どの iPhone アプリでもさうだけど、「ロックを解除」しないと通知が来たことする知れない。これは、画面も灯けずに「通知」があることをお知らせしてくれる Android に圧倒的に遅れを取っているところだと思う。

といふわけで、「通知」から「メール確認」までをスムーズに出来るおかげで、Gmail のチェックは専ら Android で行なうことが多くなった今日この頃。モニター期間が終わって、Android を返すのがツラい。

ssh-copy-id -- SSH の public-key を送るコマンド

ssh で passphrase 認証を通すためには、秘密キーと公開キー (public key) の組みを使って、公開キーをホスト PC 側の .ssh/authorized_keys に追加する必要がある。

先日知ったのだけど、ホスト PC 側に公開キーを一発で登録するコマンドがある。それが ssh-copy-id。使い方はこの通り。

$ ssh-copy-id [user@]host-machine

このコマンド一つで

  1. host-machine の ~/.ssh と ~/.ssh/authorized_keys のパーミッションが設定され
  2. ~/.ssh/id_rsa.pub ファイルの中身が [user@]host-machine:~/.ssh/authorized_keys に追記される

もし、デフォールトの ~/.ssh/id_rsa.pub 以外をホスト PC に送りたい場合は、-i オプションを使う。

$ ssh-copy-id -i ~/.ssh/id_foo.pub [user@]host-machine

ssh-copy-id を使うためには、ホスト PC へログインする権限が必要。なので、ほとんどいつでも使えそう。authorized_keys なんて typo しそうなファイル名をタイプしないだけで、このコマンドをありがたく感じる。

2009-10-09

Google Chrome で FaviconizeTab

Firefox の拡張の一つに FaviconizeTab がある。「タブ」を favicon だけ残して小さくしてしまう拡張機能。タブが多くなると重宝する。

この FaviconizeTab 機能を Google Chrome の Extentions で作れないものかと思っていたのだけど、先日の Google Chrome 一周年記念パーティーで恐ろしいことを聞いた。既にこの機能は Chrome の一部に入っている!

Pin

Google Chrome - Pin

Google Chrome の FaviconizeTab 機能は「Pin」と呼ばれている。やり方は二通り。

  1. タブを右クリックして「Pin Tab」を選ぶ (赤丸で囲んだところ)
  2. タブを左の方に動かして、ウィンドウから離れるかどうかの位置に持っていく (緑の四角で囲んだところ)

解除は逆にする。タブを右クリックして「Pin Tab」のチェックを外してもいいし、タブを動かすだけでも解除される。

どのバージョンから使えるやうになってるか知らないけれど、少くとも Linux 版の Google Chrome 4.0.213.1 で動作することは確認した。

あとがき

あとは本家の FaviconizeTab のやうに、自動 Faviconize 機能が付いてくれると嬉しい。と、昨日のパーティーでさりげなく中の人に言っておいた。