February 2009アーカイブ

[重要] セキュリティアップデート Movable Type 4.24 の提供を開始

Movable Type ユーザーの皆様

Community.pack を含む Movable Type において確認されたセキュリティ問題を解決した、バージョン Movable Type 4.24 の提供を開始いたします。

svn を使ってアップグレードした。

$ cd ~/mt
$ svn switch http://code.sixapart.com/svn/movabletype/tags/mt4.24/
$ env BUILD_LANGUAGE=en_US make code

git svn と git rebase

| コメント(0)

git svn を使って手元に git レポジトリを作っておきつつ、git svn dcommit -e でリモートの svn に反映させるという状況で git rebase を使ってみた時のメモ。

まず、どこかに trunk があって、branches/release-11 というブランチで次回のリリースにむけた最終調整をしているとします。次に、ちょっとわけがあって機能を追加するために branches/release-11 から feature ブランチを作ったとします。(ま、trunkから作るべきなんだけどさ。今回はそういう状況に遭遇した)


$ svn cp http://www.example.com/svn/myproj/branches/release-11 \
              http://www.example.com/svn/myproj/branches/feature-A
Commited revision 181

この状況で、release-11 では続々とバグ修正が放り込まれるのですが、ふと、feature-A で作業中の場合にもそのバグ修正が必要になりました。

まぁ、svn だけでやるなら svn log -v $REPOS/branches/release-11 --stop-on-copy して、feature-A を作った後のコミットをsvn merge で吸い上げることになるかとおもいます。

$ svn info | grep ^URL
URL: http://www.example.com/svn/myproj/branches/feature-A
$ svn merge -r182:257 $REPOS/branches/release-11
$ svn commit

さて、git-svn な環境だとどうやるのだろうかと実験してみた次第です。手元には git svn init 等でローカルの git リポジトリが作成され、かつ、 svn での変更はすべて fetch 済みとします。前述のように、feature-A は B の時点で fork したけど、release-11 では E--F の修正が行われ、feature-A でもそれらの修正が必要になったとします。


           C---D---G (remotes/feature-A)
          /
  ---A---B---E---F (remotes/release-11)

git svn fetch で svn 側の修正を再確認し、ローカルのブランチをそれぞれ featA と rel11 として作成します。

 $ git svn fetch
 $ git checkout -b featA remotes/feature-A 
 Switched to a new branch "featA"
 $ git checkout -b rel1 remotes/release-11 
 Switched to a new branch "rel11"

この時点で GitXgitk で確認すると以下の様になっているはずです。(B の位置で feature-A は作られたとします。)

           C---D---G [featA](remotes/feature-A)
          /
  ---A---B---E---F [rel11](remotes/release-11)

rebase のために、今の branch を取り込みたい修正を含む側である rel11 にしておきます。

 $ git checkout rel11
 $ git branch
   featA
   master
 * rel11

では rebase で rel11 側の修正を featA に取り込みます。--interactive (-i) は対話的モードで rebase を行うためのオプションです。

 $ git rebase -i featA rel11

再度、GitX か gitk で確認してみるとこんな感じに。しかし、C---D---G---E'---F' の枝には [rel11] とあり、しかもリモート側が設定されていないように見え、不安になります。[freatA](remotes/feature-A)は依然として G の位置にあります。

           C---D---G---E'---F'[rel11]
          /        [featA](remotes/feature-A)
  ---A---B---E---F (remotes/release-11)

なんでかなと思いつつ git svn dcommit -e で変更をリモート側の svn にも反映させます。

 $ git svn dcommit -e

さて、再度 GitX か gitk で確認してみると。。。あら不思議。remotes/feature-A がきちんと rel11 の位置にありますね。

           C---D---G---E'---F'[rel11] (remotes/feature-A)
          /        [featA]
  ---A---B---E---F (remotes/release-11)

rebase っていうんだから、git-rebase のマニュアルにあるように、枝の生えた位置が移動するような様子を GitX や gitk で確認できると思ったのですがちょっと違うんですね。例えば上記の例でも [rel11] というローカルブランチは当初 A--B--E--F だったのが rebase 後には A--B--C--D--G--E'--F' になっていて、これはマニュアルにあるイメージ(下図)と同じ結果なんですが、期待したビジュアルが得られないという。リモートの svn の変更点だけをみると rebase という言葉の響きとは違って、欲しかったコミット(E, F) を merge up しただけということなんですね。ううむ。まだまだ修行が足りないようです。

          A---B---C topic
         /
    D---E---F---G master

After "git rebase master topic", it would be:

                  A'--B'--C' topic
                 /
    D---E---F---G master

gistを埋め込んでみるテスト
悪くないねぇ。。
普段はWordPressのiG:Syntax Hiliterプラグインなんだけど、ずっとイマイチ感を感じていたのです。
でも文章とコードを交互に差し込んでいくスタイルの場合は今まで通りがいいのかな。

gist.github.comの埋め込みテスト - func09

Gist の embed は見た目きれいなんですが、RSS リーダーとかでは表示されないんですよね。文章とコードを交互に差し込むと、RSS リーダーで読むと「交互に差し込まれている」ことすら気づかないという。まぁ、document.write してるからしょうがないんですけどね。

Gist のページ自体は検索に引っかかるんだけど、それを embed したページは全く検索対象にならないという、なんとも歯がゆい状況に。

使う側としては Gist を使いつつ <noscript><pre> を使ってコードを書いておくのがいいのかな。まぁ、それはそれで Update したときにコードを更新しなくてはいけないか。ううむ。それは面倒だ。悩ましい。

UPDATE あ、CGDisplayRelease しないと画面が止まってしまうという致命的なバグがw。治しました。けど、command+tab でアプリケーションのメニューに表示されてしまうになってしまったな。しかも、クライアント側のスクリーンから離れると iTunes とかのフルスクリーンが解除されてしまう。

patch を使わずに、Cursorcerer を使う方がいいかもしれません。

前回は(といっても5ヶ月前ですが)fakeMouseMove(0, 0)として画面中央に君臨するカーソルを左上に移動させていたのですが、以下のパッチ(synergy-1.3.1用)でカーソルがクライアントから離れた時(とsynergycがサーバに繋いだとき)にカーソルを消すことができましたよという話。

もともと CGDisplayHideCursorCGDisplayShowCursor を呼ぶ部分は synergy には入っているんですよね。コメントアウトされてるのは、該当部分のコメントアウトを外してもカーソルが隠れることはないから。そこで Apple のドキュメントや google codesearch を使って調べてみたところキャプチャしてからじゃないと CGDisplayHideCursor は効かないようなので、kCGCaptureNoFill オプション付きで CGDisplayCaptureWithOptions を呼んでから CGDisplayHideCursor を呼んでみたら動きましたよと。

まぁ、Flash, DVD Player, QuickTime Player とかでは Full Screen にしてしまえばカーソルは消えるので、困っていたのは LocationFree のプレーヤーだけだったんですけどね。しかし、Apple の ドキュメントは素晴らしいですな。 http://developer.apple.com/documentation/

I've added my comment with the Gist url to SourceFourge synergy tracker: Mouse cursor doesn't hide on OS X - ID: 1516490. I'm not sure who is gonna find out this patch though :(

Now I got the idea how "SourceFourge Tracker:Patches" works so that the patch has been put into it. Fix to hide cursor on Mac OS X - ID: 2626889

--- lib/platform/COSXScreen.cpp.orig	2006-03-21 21:40:27.000000000 -0800
+++ lib/platform/COSXScreen.cpp	2009-02-22 16:52:45.000000000 -0800
@@ -560,7 +560,9 @@
 
 		// hide cursor
 		if (!m_cursorHidden) {
-//			CGDisplayHideCursor(m_displayID);
+			CGDisplayCaptureWithOptions(m_displayID, kCGCaptureNoFill);
+			CGDisplayHideCursor(m_displayID);
+			CGDisplayRelease(m_displayID);
 			m_cursorHidden = true;
 		}
 
@@ -580,7 +582,7 @@
 	else {
 		// show cursor
 		if (m_cursorHidden) {
-//			CGDisplayShowCursor(m_displayID);
+			CGDisplayShowCursor(m_displayID);
 			m_cursorHidden = false;
 		}
 
@@ -619,7 +621,7 @@
 	else {
 		// show cursor
 		if (m_cursorHidden) {
-//			CGDisplayShowCursor(m_displayID);
+			CGDisplayShowCursor(m_displayID);
 			m_cursorHidden = false;
 		}
 
@@ -669,7 +671,9 @@
 	else {
 		// hide cursor
 		if (!m_cursorHidden) {
-//			CGDisplayHideCursor(m_displayID);
+			CGDisplayCaptureWithOptions(m_displayID, kCGCaptureNoFill);
+			CGDisplayHideCursor(m_displayID);
+			CGDisplayRelease(m_displayID);
 			m_cursorHidden = true;
 		}
 

Gist にも置いておいたです。 http://gist.github.com/68351

ブルーレイディスクの私的録音録画補償金課金に関連して、「権利者」側が「やってあたりまえ、むしろこれだけ時間がかかったのは異常」的な会見を行ったというニュースを受けて、「また、ヒゲが何か言ってる」と思ったので、2年以上CDを買わず、ダウンロードのみによる購入を続けてきた人が現時点での思いをつらつらと書いてみる。

そもそも、補償金制度っていつから?と思って調べると 私的録音補償金管理協会なるサイトを発見。

平成5年6月1日から、私的録音に関する補償金制度が実施されています。

これって、レンタルレコード/CD屋のせいで食いっパクれるから始まったんだろうか。というか、いまだにレンタル屋を使っている人っているの?無いと死んじゃうの?(神保町ジャニスは古物商なんだっけか)

著作権の制限のひとつに私的複製がありますが、近年の録音機器の開発・普及に伴って、音楽などを録音して楽しむ方法が広範に定着し、著作物の有力な利用形態となり、本来著作権者等の受けるべき利益を害しているのではないか、との指摘がされるようになりました。これが私的録音問題です。特に、デジタル機器については、高品質の録音が可能であることから、権利者の利益に及ぼす影響が懸念されました。

ま、確かに、「CD買うはずだった人」の大多数がレンタルしたら「権利者の利益」に影響あるのは理解できる。だから、媒体/録音機器に課金して小賢しいことをしてる人から徴収ってのは、しかたないかなとは思うんだ。

けどさ、最初の時点でまともにCDを買うなどして対価を払った人への配慮が足りないんじゃね。

いやね、CDなんて2年以上買ってないからさ。mp3のファイルを買った時点でハードディスクにコピーになるわな。そんでさ、バックアップとって、iPod と iPhone に転送して、Lala.com にアップロードしたりしてると、少なくとも4回くらいはコピーしてるんだわ。その度に「権利者の利益」が損なわれてますね、そうですね、補償金払わなきゃなって、思わないでしょ。たとえ、どんだけ金余ってジャブジャブしててもさ。

レンタル屋はプレイヤーも一緒に配って DRM 付きのCDとかレンタルするか、補償金をレンタル料で徴収すればいいじゃね。

なんか、ダビング10とかで色々大人の取引が裏側であるんだけど思うけどさ、ニコニコのアンケートで「補償金に理解がある」とまとめられてる人たちも、払わなきゃいけない人と払わなくてもいい人の違いが必要と思った上での話なんじゃないかなとは思うんだけど、どうなんだろね。青臭い妄想にすぎないのかね。

「ブルーレイ課金は当然、早期実施を」権利者団体が意見表明
http://internet.watch.impress.co.jp/cda/news/2009/02/05/22346.html

私的録音録画補償金についての「権利者」側の会見
http://d.hatena.ne.jp/copyright/20090206/p1

JASRACなど7団体、ニコ動で私的録音録画に関するアンケートを実施
http://internet.watch.impress.co.jp/cda/news/2008/12/22/21949.html

20XX年モデルには乗らない、パソコンにも補償金を
http://pc.nikkeibp.co.jp/article/news/20090205/1011988/?P=1

「BD課金の遅れは異常」――権利者団体、早期の開始求める - ITmedia News
http://www.itmedia.co.jp/news/articles/0902/05/news120.html

いまだに同じ主張の繰り返し・・・もはや補償金に賛成する理由はない
http://blog.goo.ne.jp/krmmk3/e/0f9895669ba9d2a081b4cadd29e1a97a

この不況下でも NetflixTSUTAYA DISCUS と同じレンタルDVD宅配サービス) の業績が好調のようです。

でも、定説通り絶好調なのがNetflix。業績も上方修正。DVDをオンライン+郵送でレンタル、最近はインターネットでオンデマンドストリーミングもやっているシリコンバレーの会社。定額料金でレンタルし放題なのが時流にぴったりなわけです。

2008 年10-12月期は、売上は前年同期の19%増で$360 million(約330億円)、 利益は45%増で$22.7 million、会員も718,000人増えてトータル940万人になった。2008年通年だと、売上げ$1.36 billion(約1200億円)、利益 $83 millionなり。

On Off and Beyond: 不景気を追い風に絶好調なNetflix


周りで使っている人がここ最近増えているという実感はありませんが、前から使っているという同僚は多いです。私の郵便受けに Netflix の広告が送られてくる度に気にはなっていたんですが、なんとなく使わないうちここまで来てしまいました。

それでも結構映画は見ているんです。なぜかと言うと、サンフランシスコ市の図書館で無料で借りているからです。http://www.sfpl.org/ でログインすればオンラインで予約も出きるし、最寄りの図書館で ready to pick up な状態になればメールで知らせてくれる。確かに、DVDを図書館まで取りにいかなきゃいけないのは面倒ですね。私の場合は運良く自転車通勤の通勤経路に図書館があるのでそうでもないですが、Netflix の便利さを経験していないから我慢できるのかもしれません。

最近は新しい映画も劇場公開後すぐにDVD販売となるためか、図書館にもぞくぞくと新作が入ってきます。いかんせん、現在の私の英語力ではストーリーを見失うことも多いと思うので、あらすじを 映画生活Wikipedia 確認してから見たり、見た後にそれらのサイトで確認してます。

あまり面白いものをレンタルできなかった時は Amazon.com の Video On Demand を使います。新作なら一本 $3.99 とちょっと高いかもしれないけど、「見たいときにすぐ見れる」というところにそれぐらい出してもいいかなとは思っています。まぁ、2回しか使っていないですけどね。ちなみに、iTunes のレンタルも1回だけ使いました。ちょっとの間とはいえ、大体同じ値段でダウンロードを待たなきゃいけないなら Amazon でいいのではと思います。どうせ HD な映画を観るわけじゃないので。

これらの「充実した」映画生活の結果として、映画館に足を運ぶ機会が以前より増えました。「おでかけ」という要素もありますけど、大人 $8 〜 $9 と気軽に見に行ける値段なのも理由の一つです。

あと、IMAX で Dark Night を観たときの感動は忘れられない。次に IMAX な映画が公開されたらまた見に行くつもりです。海外ドラマ LOST のプロデューサー J.J. Abrams が作っている Star Trek (5月公開予定?) が IMAX 何じゃないかという話があるので楽しみにしているところです。宇宙戦争モノで IMAX というのはピッタリだと思いますしね。

About Me

このブログは Masayoshi Sekimura によって書かれています。現在はサンフランシスコ市内に在住し Six Apart, Ltd. でエンジニアをしています。 このブログ以外にオンラインでやっている事は qootas.org/sekimura/ で見ることができます。 メールは sekimura+blog@gmail.com までどうぞ。

このアーカイブについて

このページには、February 2009に書かれたブログ記事が新しい順に公開されています。

前のアーカイブはJanuary 2009です。

次のアーカイブはMay 2009です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.26