2009-05-31

Git で no branch に commit した時の対処法

Git で、branch を理解・把握せずに動いていると、どのブランチに所属もしていない状況で commit してしまうことがある。いわゆる (no branch) でのトラブル。この時、commit 分は git リポジトリーに登録されているけど、そのコミット・ログを読むブランチがないので、その変更分を正規のブランチから確認できなくなってしまう。

こういう時は、master に戻った後、hash 値を参考にして merge してやる。

実行例

$ git branch
* (no branch)
  master

commit した先のブランチが (no branch)。

$ git checkout master
Previous HEAD position was 9a5e01d... Hoge Hoge Commit Log
Switched to branch "master"

master ブランチに checkout コマンドで戻ると、(no branch) の最新 HEAD の hash 値が表示される。この hash 値を使って、master ブランチに git merge する。

$ git merge 9a5e01d

これで、迷子になった commit 9a5e01d... が master に戻って来た。メデタシ、メデタシ。

Ubuntu 8.04 でサスペンド復帰後に音が出なくなる不具合の対策

Ubuntu 8.04 でサスペンドすると、復帰後に音が出なくなってしまう。ネットで調べたところ、音関係の module を再読み込みすればよいことが分かった。

具体的には、modprobe コマンドを使って snd_hda_intel モジュールを一度削除して、その後もう一度インストールする。

コマンドを毎回打つのは大変なので、shell script を作った。

#!/bin/sh

pm=pm-suspend
snd=snd_hda_intel

sync && $pm && modprobe -r $snd && modprobe $snd

こいつを /usr/local/bin に pm-suspend-snd.sh という名前で置いて、sudo コマンドで呼び出してやる。

$ sudo pm-suspend-snd.sh

Suspend じゃなくて Hibernate したい場合は、pm=pm-suspendpm=pm-hibernate に変更されたし。

ソースコードは gist に登録してあるので、git 使いの人はこちらから最新版をどうぞ。

$ git clone git://gist.github.com/120717.git pm-suspend-snd

注意点

どっかのプロセスが snd_hda_intel を掴んでいると、modprobe -r に失敗する。エラー・メッセージはこんな感じ:

FATAL: Module snd_hda_intel is in use.

原因の一つは、GNOME の音量調節アプレット。アプレットを右クリックして削除してしまうのが一番簡単な解決策。

もう一つは pulseaudio。これが何のコマンドか知らないけだけど、次のコマンドを打つと pulseaudio を殺せる。もしかしたら、アンインストールしてしまってもいいのかもしれない。

$ pulseaudio -k

後はオーディオ関連のコマンド。何気に firefox が音を掴んで離さないことが多い。

2009-05-27

Git で集中リポジトリーに push したら、自動でワーク・ディレクトリーにも反映させる

やりたいのは、こんなこと。

  1. ローカル PC「foo」で HTML ファイルを編集してる
  2. コードを書き終えたので、サーバー「bar」の中にある集中管理リポジトリーへ push
  3. 自動でサーバー「bar」内の公開用ディレクトリーに情報が反映される

2. から 3. の間のタイムロスを、ほとんど 0 にしたい。

こうゆう時、git の hook を使う。

リポジトリーの用意

リポジトリーの構成を、実際のコマンドを例に書いておく。

まずはローカル PC「foo」上に hoge-html プロジェクトを作成。

you@foo ~% mkdir hoge-html
you@foo ~% cd hoge-html
you@foo hoge-html% git init
you@foo hoge-html% touch main.html
you@foo hoge-html% git add main.html
you@foo hoge-html% git commit -am 'first commit'

次にサーバー「bar」に、皆で使いための集中リポジトリーを立てる。公開リポジトリーは 、/vir/git に置くものとする (パーミッションは適当に設定し直して下さい)。

you@foo hoge-html% ssh bar
you@bar ~% mkdir -p /var/git/hoge-html.git
you@bar ~% cd /var/git/hoge-html.git
you@bar hoge-html.git% git --bare init --shared
you@bar hoge-html.git% exit
you@foo hoge-html% git remote add origin ssh://bar/var/git/hoge-html.git
you@foo hoge-html% git push origin master

最後に、bar で公開用ディレクトーの設定をする。ここでは、~/public-html ディレクトリーの内容がネットに公開されるものとする。

you@foo hoge-html% ssh bar
you@bar ~% git clone /var/git/hoge-html.git
you@bar ~% chmod -R g+rw hoge-html
you@bar ~% chmod -R g+s hoge-html
you@bar ~% ln -s hoge-html/main.html public-html/main.html

hook の設定

今回は push 後に自動実行されて欲しいから、集中リポジトリーの post-update hook を使う。post-update hook は、集中リポジトリーに push された後に一度だけ実行されるフック・スクリプト。hook はデフォールトで無効になっているので、次のやうにして有効にする。

you@bar ~% cd /var/git/hoge-html.git/hooks
you@bar hooks% cp post-update.sample post-update
you@bar hooks% vi post-update
you@bar hooks% chmod +x post-update

post-update の中身は、こんな感じ。

you@bar hooks% cat post-update
#!/bin/sh

(cd /home/you/hoge-html && git --git-dir=.git pull)

ポイントは 2 つ。

  1. post-update hook スクリプトに実行権限 (chmod +x) を与えること
  2. hook の中で git pull する時、--git-dir=.git を忘れないこと

1. を忘れると hook スクリプトが動かない。2. を忘れると、「ここは git リポジトリーじゃない」と言って怒られる (この意味が分からなくて 1 時間以上ハマった)。

ref

2009-05-26

激安・ハイドンの交響曲全集

Complete Symphonies

Amazon で、ハイドンの交響曲全集が 3,232 円で予約発売されている (発売予定日は 2009-06-09)。激安すぎる!! これはどうしたことか?!

ハイドンの交響曲全集

本題に入る前に、ハイドンの交響曲について簡単な説明をば。

ハイドンはオーストリアの作曲家。フルネームは Franz Joseph Haydn (フランツ・ヨーゼフ・ハイドン)。 1732 年生まれ 1809 年没。時期的にはバッハの後、ベートーヴェンの前。モーツァルトより先に生まれているけど、モーツァルトが短命だったので、モーツァルトより後に死んでいる。

ハイドンは交響曲をたくさん書いた。交響曲の番号は 104 まで。この他、番号なしの交響曲 (交響曲 A とか交響曲 B とか) があるので、交響曲の数は 110 曲弱。交響曲の様式を確立したこともあり、ハイドンは「交響曲の父」と呼ばれる。

ハイドンの交響曲の演奏時間は、一曲 15 分から 30 分。CD 一枚に入るのは 3 〜 4 曲。全ての交響曲を CD に納めると、30 枚を越える大ボックスになる。これまでに、ハイドンの交響曲を全曲録音した指揮者は 2 人しかいない: アンタル・ドラティ (CD 33 枚組) とアダム・フィッシャー (CD 33 枚組)。

Complete Symphonies (Box) Haydn: Complete Symphonies [Box Set]

一般によく演奏されるのは、93 番から 104 番までの 12 曲。ロンドンに住むザロモン氏に招かれて、「ザロモン・コンサート」の中で演奏されたことから「ザロモン・セット」と呼ばれる。この他、初期の名作 6 番「朝」、7 番「昼」、8 番「夕」などもよく聞かれる。2009 年のウィーンフィル・ニューイヤー・コンサートでは珍しく 45 番「告別」が演奏された (2009 年はハイドン没後 200 周年に当たる)。

mp3 の全集

最近、クラシックの CD はとても安くなった。昔は 2 万円以上していたボックスが 1 万円を切って再販されることも、しばしばある。ハイドンの交響曲全集も値段が下がったボックスの一つだった。

ドラティの全集 (33 枚組) が 6,665 円。フィッシャーの全集 (33 枚組) が 9,990 円。ドラティは有名な指揮者で、異稿版も録音している。フィッシャーは、この全集で初めて名前を聞く指揮者だけど、ドラティより好みな演奏も少なくない。録音が新しいのも魅力。どちらの全集を買おうか悩んでしまう。えいやっと、両方買ってしまうのも手かもしれない。

さて、そんな中現れた 3,232 円の全集。これはどういったものか? レーベルは Nimbus Records。指揮者はアダム・フィッシャー。CD の枚数は 8 枚。8 枚? 8 枚では 104 の交響曲はとても収録し切れない。その秘密はフォーマットにあった。

実はこれ、mp3 の全集だった。Amazon の解説によると、320 kbps の mp3。iPod に転送して聴くもよし、カー・オーディオで聴くもよし、といふことらしい。

mp3 は非可逆な圧縮音源なので、CD に比べて音質は劣る。とはいえ、iPod なんかに入れる場合は、最初から mp3 や AAC に変換してしまう人が大半だらうから、変換の手間が減ると考えてもいいのかもしれない (33 枚もリッピングするのは大変だものねぇ)。いずれにしろ、選択肢が増えたことは喜ばしい。

rel

激安のクラシック CD に興味のある方は、こちらもどうぞ (mp3 ではないけれど)。

2009-05-20

DoCoMo が Android 携帯を発表

DoCoMo から、Android 携帯が出る。Android は OHA が開発している携帯電話の OS。OHA を起ち上げたのは Google なので、Android ベースの携帯電話を Google Phone と呼ぶ人もいる。

Android のソースコードはオープン・ソース。誰でも Android を使って携帯電話を作ることができる。世界で最初に Android の携帯電話を作ったのは HTC というメーカーだった。リリースされたのは 2008 年 10 月。発売されたのは米国のみ (後に英国も)。

Google 好きな人達は、Android フォンが日本で何時発売されることかと気をもんでいた。そして遂に、DoCoMo から Android Phone が出るという正式発表があったというわけ。メーカーは HTC。型名は「HT-03A」

概要

概要を、iPhone との比較で書いておきませう。

HT-03A iPhone 3G
メーカー (キャリア) HTC (DoCoMo) Apple (Softbank)
リリース時期 2009 年 6 or 7 月 2008 年 7 月 11 日
寸法 (高さ,幅,厚さ) 113 x 56 x 14 mm 115.5 x 62.1 x 12.3 mm
重さ 123 g 133 g
ディスプレー 3.2 インチ HVGA (320x480) 3.5 インチ HVGA (320x480)
ストレージ microSDHC (max 4GB) 内蔵 (max 16GB)
カメラ 3.2 M (オートフォーカス付) 2.0 M (オートフォーカスなし)
3G 連続通話時間 4 時間 5 時間
アプリの入手 Android Market iPhone App Store

この他、(iPhone) と同じく GPS, Bluetooth, Wi-Fi (802.11b/g) に対応。YouTube や Google Maps の専用アプリも付く。

iPhone には無い機能で一番に挙げるべきは、アプリのバックグラウンド動作が可能な点でせう (iPhone 使いはこれにずっと悩まされている!)。あと目に付くのがハードウェア・キー。ホーム・キー, メニュー・キー, 戻るキー, 検索キー, 通話キー, 終話キーが付いている上、トラックボールもある。ただしハードウェア・キーボードは付かない。

あと、地磁気センサー (方位磁石) とビデオ録画機能も iPhone にない。ただ、この機能は新 iPhone に付くという噂もあるので、iPhone と比べて... と言うのは、ね。少し待ちませう。

デモ動画

HT-03A のデモ動画を YouTube で見付けたので、それを貼って、このエントリーを締めませう。

「Android 搭載ケータイでの Google モバイル・サービス」以外は音声解説入り。各々 1 分 30 秒の動画。お楽しみあれ。

概略的な動画。日本語入力、ウェブ・ブラウズ、Google Maps、Gmail、YouTube。

Google Maps アプリの説明。ローカル検索、GPS を使った現在位地表示、航空地図とストリート・ビュー、そしてルート検索。

Gmail アプリの説明。スレッド・ビュー、検索・スター・ラベル、新着メールの通知、メールの作成、Google Talk。

コンタクト・リストの説明。Google Contacts との同期。コンタクト画面から「携帯に発信」、「SMS を送信」、「自宅にメールを送信」、「Google Talk でチャット」、「自宅の住所を地図で見る」。

検索アプリの説明。検索ボタン、日本語入力 (予測入力)、検索デモ。

YouTube アプリの説明。動画の再生、早送り、巻き戻し、プログレス・バー。動画・写真のアップロード。

2009-05-13

映画「スター・トレック」を観た

告知通り、映画「スター・トレック」のジャパン・プレミア試写会に参加してきた。

試写会が開かれたのは、新宿ミラノ 1。18 時開場。19 時からイベント。20 時に舞台挨拶。20:20 上映開始。22:30 終了の予定だった。

会社で業務を終えて、すぐ新宿に向かう。着いたのは 19:15 頃。受け付けブースで招待券を座席指定券に交換してもらう。映画館の中は SF ばりに青いライトがチカチカ光り、スタートレックの世界に入ったよう。ホールに入ると、至るところに案内兼警備の人が居る。座席指定券を見せると、席まで案内してくれた (Thanks!)。

スクリーンには、ジャパン・プレミアの様子が映し出されている。レッド・カーペットの上をセレブが歩いて、紹介を受けて、写真を撮られて、そしてまた新しいセレブが登場する。日本のどこかでやってるプレミア・ショーの様子なんでせう。これが 19 時から始まるイベントと理解した。映画は楽しみだけど、セレブの顔は知らないので (失礼!) ちょっと退屈。ヒマだな〜と iPhone をチェックしたら、20:30。あれ〜予定遅れてる? と思った瞬間、音楽が変わった。舞台挨拶が始まる。あわてて、iPhone の電源を落とす (エチケットね)。

司会の人が場を持たせた後、監督が登場。続いて監督が主役らの名前を呼び、応じて俳優さんが舞台に上がる。こーゆーの、初めて見るのでちょっと感動。ただ、初めて名前を聞く俳優さんばかりだし、まだ映画を観てないので、俳優さんが登場してもテンション上がんないんだよね。あ、エリック・セラの名前は知ってる。この時だけは、テンション上がった。彼はヴィラン (悪役) をやったのね。

司会が質問して、皆がリップ・サービス (?) で答えて、舞台挨拶は終了。いよいよ映画が始まる。

感想を書く前に

まずは自己紹介。ぼくは...

  • 映画は好き。といっても年十回、映画館に通う程度の初級者。
  • SF が好き。映画ならスター・ウォーズ。アニメならエヴァンゲリオン。作家なら、ヴェルヌ、アシモフ、ホーガン、カード etc。
  • トレッキーじゃない。スター・トレックは全く見たことがない。エンタープライズ号とスポックの名前は聞いたことがある、程度の初心者。
  • 今年、一番面白かった映画は「ウォッチメン (Watchmen)」(エヴァ劇場版「破」を除く)

こんな感じです。そんな人間が観てきた、映画「スター・トレック」の感想です。

映画の感想 (ネタバレあり)

面白い。SF に拒絶反応さえない人なら、みんな楽しめるんじゃないかしらん。スポック以外の名前を知らなかったぼくだけど、主要クルーがすぐに分かるようになった。初めてスタートレックを見る人でも、とまどうことはない。

映画は、SFX ばりばりだったけど、主軸は人間ドラマになっている。CG が下手に CG CG していないのが良かった。ストーリーは、カークとスポックの反目と友情を、カークの視点から描いている。これがとってもアメリカっぽくっていい。陽気で陰湿にならない明るさがある。見てて気分が良くなるんだね (「ウォッチメン」とは大違い!)。アメリカで大ヒットというけれど、むべなるかな。

不満は字幕。席が後ろだったのと、視力が良くないので、時々字幕が読めない所があった。白い字幕に、白い画面が重なる所もあって、文字読めない。ストーリーが分かんなくなったところもある。

例えば、後半、「敵船は土星の近くを通る。だから土星の衛星の裏側に出れば、探知されない」なんて台詞がある。だけど、次の場面で敵船は地球に到着しちゃうんだよね。土星の話はなんだったのか? ここら辺、ちょっと字幕を読み違えたかもしれない。気になる。気になる。もう一度観に行こうかな〜、なんて考える。

うん。そーゆーのを抜きにしても、もう一回観に行きたいな。だって楽しい映画だったから。

2009-05-12

Linux でプロセスのメモリー使用量をソート表示する

Linux でプロセスのメモリー使用量を調べる、の巻 第三弾。

第一弾・第二弾では、特定のプロセス (firefox とか) のメモリー使用量を調べる方法を書いた。

今回は、特定のプロセスのメモリー使用量を調べるんじゃなくて、どのプロセスのメモリー使用量が多いかを調べる方法。

やり方は簡単。ps コマンドに --sort オプションを渡してソートしてあげるだけ。sort オプションの引き数には、ソートしたい項目の名前を使定する。

例えば、RSS の大きい順に並べる場合はかうする。

$ ps alx --sort -rss
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1000 11317  6240  25   5 625832 373216 -     SNLl pts/0     96:08 /usr/lib/firefox-3.0.10/firefox
4     0  5707  5704  20   0 334184 66080 -      SLs+ tty7      27:35 /usr/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
0  1000 32045  7854  30  10  61152 41516 -      SN   pts/3     45:37 emacs
(続く)...

--sort の引数に -rss と指定しているね。rss の前にマイナス記号を付けているのがミソ。マイナス記号を付けると、ソート順が降順になる。

sort オプションは複数の引数も受け付ける。

下の例は、「ユーザーごとのメモリー利用量」を調べてる。

ps aux --sort user,-rss
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
avahi     5268  0.0  0.0   5280  2068 ?        Ss   Apr29   0:00 avahi-daemon: running [linux-aka.local]
avahi     5269  0.0  0.0   5148   792 ?        Ss   Apr29   0:00 avahi-daemon: chroot helper
daemon    4609  0.0  0.0   1836   520 ?        Ss   Apr29   0:00 /sbin/portmap
daemon    5779  0.0  0.0   1812   396 ?        Ss   Apr29   0:00 /usr/sbin/atd
dhcp      5042  0.0  0.0   2268  1144 ?        S    May08   0:00 /sbin/dhclient -1 -lf /var/lib/dhcp3/dhclient.eth0.leases -pf /var/run/dhclient.eth0.pid -q -e dhc_dbus=31 -d eth0
107       8405  0.0  0.2   9732  5284 ?        Ss   Apr30   0:11 /usr/sbin/hald
107       8438  0.0  0.0   2032   812 ?        S    Apr30   0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
klog      5128  0.0  0.1   3712  2624 ?        Ss   Apr29   0:00 /sbin/klogd -P /var/run/klogd/kmsg

まず、ユーザーでソートした後、RSS で降順に表示させているわけ。

あとがき

ps コマンドの sort オプションは、日経 Linux を読んでて知った。

2009-05-11

映画「スター・トレック」ジャパン・ギャラクシー・プレミアに参加する

映画「スター・トレック」のジャパン・プレミア試写会に参加する。概略は以下の通り。

  • 日時: 2009-05-29 (金) 20:00-22:30
  • 場所: 新宿ミラノ 1
  • 参加費: 無料

この試写会には、AMN のブロガー資格で参加する。

今回は、5月29日(金)の一般公開に先駆けて、映画「スター・トレック」ジャパンプレミア試写会に、皆さんをご招待いたします。

5/12(火)開催 映画「スター・トレック」ジャパンプレミア試写会のお知らせ|AMN関連イベント情報|AMNからのお知らせ|Agile Media Network より引用

AMN はブロガーと企業 etc. を繋げることが目的にした会社。今までは、「製品」紹介系のイベントを開いていたけれど、今回は試写会へのブロガー参加を目指すらしい。イベントの毛色がいつもと違う。

イベントの募集要件にも、「ブロガーであること」の他に「映画、宇宙、SF が好きな方」というのが加わった。

幸いなことに、映画は好きだし、宇宙も好きだし、SF も好き (SF マガジンのオール・タイム・ベストに投票したら、一年分の SF マガジンが当たったこともある ^^;)。これ幸いとイベント参加を申し込んだ。どうやら抽選になったやうだけど、当選したので、ここにエントリーを書いてる次第。既に手元には、紹待券も届いた。

実はスター・トレックは (SF の中でも) 敬遠してて、ほとんど筋を知らない。えーと、スポックさんという耳の長い (でもエルフじゃない?) 人がいるってのは知ってる。あと、戦艦の名前も知ってる。USS エンタープライズっていうんだよね? なので、すっごくスター・トレックには初心者。せっかくなので予習はせずに、初心者の視点で映画を楽しんでこようと思う。感想は 5/13 (水) に書けると思う。