12/30 (火)
池袋散策
本を買うために池袋のジュンク堂に出てきた。
ジュンク堂で1万円以上買ったら店内にある喫茶店で使える400円分のチケットが貰えた(普通のコーヒーや紅茶は400円)。 本を買う前にその店でコーヒー飲んじゃったんだけど、チケットの期限があるのでもう一杯紅茶を飲んだ。
[Food] もうやんカレー 池@池袋
もうやんカレー 池(公式、ぐるなび)で晩飯を食べる。 ビルの地階にある怪しい感じの店で、マンガ喫茶のようにマンガ本が棚に並んでいる。 昔の喫茶店のような店だ。
薬膳っぽい怪しいカレーが多い。 カレー以外のサイドメニューも多い。 とりあえずチキンカレーを食べる。
12/27 (土)
ホイッスラー展@横浜美術館
12/18 に見れなかったホイッスラー展(公式)に再チャレンジ。 今日はちゃんと開催日だった。
19世紀末から20世紀の米国生まれで、後にイギリスに渡る絵画・版画家。 今回の展示では彫刻が多い。 16〜17世紀のオランダ版画やドイツの版画を見慣れた目にはホイッスラーの版画は非常に白く感じる。 しかも線が非常に柔らかい。 鉛筆で描いたんじゃないかと思うぐらいだ。
副題にある「ジャポニスムの巨匠」とあり江戸期の美術とのホイッスラーの関係が説明されているが、よく分からない。 ノクターンは日本の浮世絵の構図を取り入れて云々も本当なのかしら?
12/21 (日)
[Movie] ベイマックス
チネチッタで吹き替え版の『ベイマックス』の 3D 版を見てくる。 最初予告を見た時は兄を失った少年とロボットの織りなす人情劇だと思ったのだが全然違った。
まさにこんなかんじだ。
ベイマックス、視聴前・視聴後のイメージの変化。 pic.twitter.com/BFf4CFlpss
mdash; Yukky (@YukkyMinor) 2014, 12月 22
12/20 (土)
github はどうやって SSH 認証をしているのか?
github は ssh-keygen で作成した SSH 公開鍵を Web 経由で登録することで、SSH 認証を可能にしている。 しかし SSH で githubm.com に接続する際のユーザー名は git なので全員が git@github.com を使っていることになる。
SSH に登録した公開鍵に対応する秘密鍵が ~/.ssh/github_rsa の場合、以下のように ssh コマンドでテストをする。 この入力中に nminoru というキーワードはないが、github.com からの応答には nminoru が特定されている。
$ ssh -T github.com -l git -i ~/.ssh/github_rsa Hi nminoru! You've successfully authenticated, but GitHub does not provide shell access.
登録した全員の SSH 公開鍵を順に試してマッチするものを探せば原理的には可能だが、そんな重い処理をするものだろうか?
12/18 (木)
[Food] カレー専門店スミレ@下北沢
今日は有給休暇なので前から狙っていたアイスクリーム・スパゲティを食べに行く。 その前に下北沢の飯屋で腹ごしらえする。 駅から出てすぐに偶然目についたカレー専門店スミレ(I LOVE 下北沢)に入る。 看板通り玉子焼きが二つ入ったカレー。
[Food] Cafe Eierschale@世田谷
ドイツ発のアイスクリーム・スパゲティが日本で食べられる2店舗のうち都内にある唯一の店 Cafe Eierschale(公式)へ。 下北沢駅を出て10分以上歩く住宅街の中にひっそりとあるドイツ仕込みのパティシエのカフェだそうだ。
肝心のアイスクリーム・スパゲティだが、ただのアイスクリームをその場で麺状にひねり出した後に盛り付けるだけ。 原料がアイスクリームだがから麺と麺はすぐにくっついて「ふんわりした触感のただのアイスクリーム」になってしまう。 手間がかかる割りに味が良くなるわけじゃないので残念なかんじだ。
今日世田谷で見た変な納豆屋
Cafe Eierschale へ行く途中で見た変な納豆屋。 納豆工房せんだい屋というらしい。 納豆の自動販売機を見たのは初めてだ。
[Movie] 寄生獣 PART1
横浜中華街の景徳鎮で会食の時間まで横浜美術館で時間を潰す気だったのだが、木曜日は横浜美術館の定休日だそうだ。 横浜ワールドポーターズ内のイオンシネマみなとみらいで映画を観てゆく。
[Food] 景徳鎮@横浜中華街
映画の鑑賞後は予定通り横浜中華街の景徳鎮(公式、食べログ、ぐるなび)の本館へ。 社内の賞を貰った記念の祝賀会ということで、賞金からのただ飯を食べる。
12/15 (日)
[Movie] ゴーン・ガール
川崎 109 シネマズで『ゴーン・ガール』を観る。 原作の小説を読んでいたので粗筋は知っていたが、概ね原作通りのストーリーだ。
小説版では出てこなかったが、ニックとマーゴとの会話で「なぜエイミーとの婚前契約書(プレナップ)を破らなかった」みたいなことを言うシーンがある。 プレナップは離婚時に結婚前の財産をどう分配するかに関するもので、エイミー側は信託財産はニックに渡さないというものだと思うが、ニック側にはエイミーに渡るのを防ぎたいほどの財産があるのかしらん? 父親の家?
12/13 (土)
[Movie] ホビット 決戦のゆくえ
チネチッタで『ホビット 決戦のゆくえ』(原題は The Hobbit: The Battle of the Five Armies)の 3D 吹き替え版を観る。 二部の『竜に奪われた王国』でエレボール内での竜との戦いを執拗に描いているのを見て悪い予感がしていたが、三部もアクション作品になっている。 指輪物語の時にも思ったけど、ピーター・ジャクソンはトールキンの原作はあくまでも原作に過ぎないだろうなぁ。
12/10 (水)
git のメモ
会社の開発は subversion に替えて git を使うようになったが、いろいろ悩むこともあるので分かったことをメモしておく。
過去のリビジョンに戻す
Subversion だと update コマンドを使って過去のリビジョンに一時的に戻ることができる。 例えば特定の障害がどのリビジョンから発生するようになったか・解消したかを調べる時によくやる。
過去のリビジョンに一時的に戻りたい場合は、事前に svn log で戻りたいリビジョン番号を調べておいて、svn updateを実行する。
$ svn update -r201
最新のリビジョンに戻りたい場合には -rHEAD を指定して再度 svn update する。 -rHEAD は省略することも可能である。
$ svn update
git で同じことをする場合 git log で戻りたいコミットのハッシュタグを調べて、git checkout を使う。
$ git checkout <commit>
終わったら戻りたいブランチ名を指定
$ git checkout master
特定ファイルの過去のバージョンを取り出す
Subversion では指定ファイルの指定したリビジョンを標準出力に表示する svn cat がある。 foo.c のリビジョン 201 の内容を見たければ、以下のコマンドを実行すればよい。
$ svn cat -r201 foo.c
git の場合は git show を使う。
$ git show <rev>:<path>
<rev> にはハッシュタグやブランチ名を指定できる。 具体的には master ブランチにある src/foo.c を見たければ、以下のように打つ。
$ git show master:src/foo.c
現在、src ディレクトリにいても git show master:foo.c のように省略することはできない。
別ブランチにある特定の修正を取り込む
Subversion だと共に trunk から派生した foo ブランチと bar ブランチがあった場合、自分は foo ブランチに開発を進めているが bar ブランチの内容を取り込みたい場合には svn merge を使う。
$ svn merge svn://host/repo/trunk/ svn://host/repo/branches/bar/ . $ svn commit
これと同じことをする方法が良く分からない。 現在は以下のようにしている。
- 修正が複数のコミットにまたがりまた取り込みたい修正部分がある場合は、git diff を使ってパッチを作ってそれを patch コマンドで宛てた後に、個別のファイルを修正して調整する。
- とりこみたい修正がコミットとして独立している場合は、個別に git cherry-pick を実行する。
コミット履歴一覧
git commit --amend や git reset によって HEAD を移すと、git log では参照できないコミットができる。 git reflog を使うとコミット履歴の一覧を表示させることができるので、git log では参照できないコミットを見つけることも可能となる。
$ git reflog
リモート側のブランチ
まずリモートのブランチをリスティングするにはブランチを指定せずに origin サーバから pull して情報を集める。
$ git pull origin
その後で -r オプションを使って branch コマンドを実行すると、リモート側のブランチがリスティングされる。
$ git branch -r origin/master origin/foo origin/bar
その後でリモート側のブランチ名を指定しながら、ローカルに新しいブランチを作成する。 リモート側とローカル側で同じブランチ名を使う必要はない。
$ git checkout -b mynewbranchname origin/foo
認証付きプロキシサーバの設定
外部の HTTP/HTTPS/GIT サーバへアクセスするのにプロキシサーバを経由する必要がありかつそれが認証付きの場合は、認証 ID とパスワードを指定する。
$ git config --global http.proxy http://user:passwrod@proxy.example.com:8080
ただし認証 ID に @ が含まれている場合には、URL エンコードが必要なようだ。 例えば認証 ID が nminoru@example.com だった場合、以下のように指定する必要がある。
git config --global http.proxy http://nminoru%40example.com:passwrod@proxy.example.com:8080
ブランチの分岐時点からの差分を表示
ブランチを分岐させた後からの差分を表示したい場合がよくあるが、これは以下のようにする。 たとえば master ブランチから派生した topic ブランチがあり、master ブランチにも topic ブランチにも更新が入った時、git diff master topic で差分をとることができるがこれは期待しものにならない。
この場合、2つのブランチ名を ... と 3 つのピリオドでつなぐと 2 つのブランチの分岐点を探し、そこから右側のブランチの差分を表示してくれる。
git diff master...topic
12/1 (月)
[MyWeb][PostgreSQL] PostgreSQL Advent Calendar 2014 に書いたよ
PostgreSQL Advent Calendar 2014 の初日分に記事として、「PostgreSQL プラン・ツリーの概要」を書いたよ。