2011年5月13日金曜日

Xcode4でのGit


なんかいまいち、出来たり出来なかったり。クライアント側の操作、特にpush、何かエラー(Commit or discard the changes and try again.)なのに、実際、リモート側へpushされているというこの事実。でもプロジェクトファイルが何か可笑しい。ま、ファイルの修正は出来ているので、暫く使い込んで様子を見るか。

そんなことしてないで、Xcode使わないで、別なGitツールを使ってやれば良いのではないかという気がしてくる。

Finderのサイドバーから取り除く方法

取り除きたい項目の右メニューに『サイドバーから取り除く』というのがあるのだが、すでに本体を削除してしまっていた場合、サイドバー上の項目を選択出来なくなってしまう。あてずっぽうで作ってみたが、うまく行かない。そこで探したところ、

『Mac OS X v10.6.7 以降で、Finder のサイドバーから項目を削除する方法』

に書いてあった。cmdキーを押しながらFinderの外へドラッグ。以前はcmdキーが不要だった。

こうした微妙なニュアンスの言葉を探すのは、単純にググるだけでは難しい。ググる前にヘルプだろうと思うが、逆にヘルプだとググる以上に難しかったりするから笑えない。だから最近ではヘルプよりGoogleという感じになっている。

もう少し気の利いた意味の絞り込み方法があれば良いと思うのだが。

2011年5月12日木曜日

GNU MediaGoblin

Gitを読んでいたらサイドバーの『フリーのメディア共有ソフト開発プロジェクト「GNU MediaGoblin」』が目に入った。

「ユーザがデータを所有する」という考えは自分と同じだが、「まず写真にフォーカス」というところが違う。

だが自分でデータを所有するということは、様々なデータを物理的に異なるサーバ上に置く、とか、さらにそれがDBシステムを使っていれば、物理的に異なるテーブル上にデータが置かれることになりそうである。これが悩みだ。今のところ、自分はデータ交換時間を諦めることで、星の数ほどあるユーザ毎に細切れになったDBから、任意の組み合わせでデータを取ってきて表示したりする、ことが出来れば良く、次にキャッシュ的な機能をユーザ毎に(ユーザのための)インデックスを作る事で対応できれば良い、と開き直っている。そうしたインデックスはフォローしあうことで再利用されると、より効率的になりそうだ。だが問題はそれより恐らく、ディスカバリのための方法であり、巨大なディレクトリに日々追加されるデータから属性を見抜き、適宜ユーザインデックスを更新するというのは、実際どんなインパクトがあるのか、想像できない。結局、ユーザが所有するとは、どういう状態を指すのかということになってしまうのではないだろうか。そしてこの、今使っているパソコンにあるデータに、誰でもアクセスできるとしても、実質的にアクセスしない人のほうが圧倒的に多くなる気がする。まあ、ただそれは、1人の人間がデータを脳内に送る帯域に限度がある、ということで帳消しになるはずなので、実はあまり意味がないことなのかもしれない。

他には、物理的には共有された同じデータ種類(写真なら写真)を扱う巨大なテーブルを無機的にホストするiaasのようなものがあれば、ユーザからは自分専用のDBに見せることは出来るのかもしれない。つまり、レンタルサーバを借りて、mysqlのコマンドを打ってテーブルを作る代わりに既存のテーブルをテンプレートに、自分専用のインスタンスを作ることができる。レンタルサーバは実際にはその裏にもっと巨大な共有DBと繋がっていて、ユーザの要求に応じて、そこへ仮想的にユーザ専用のレコードを追加したりする。こうしたiaasと直接契約できるなら、自分で立てた物理マシンからも同じ事ができる。

つまりそれにより、ユーザ毎に別々なマシンになるより、巨大な共有DBの中にデータが収まる割合のほうが大きくなる分、アクセス効率(実転送時間)は良い(短い)だろうという漠然とした想像。

ああ、ただ逆に、例えば写真サイトの場合、写真をアップロードする手間が省けるので、実は逆にユーザ毎にマシンが別なほうが効率が良いのか? ある種p2pというか、半p2p。データは自宅のNASに保存、NASが公開、写真サイトがインデックスを管理、クライアントは写真サイトからURIを貰ってダウンロードは直接行う。か。

NASはまあまあ省電力なので、上げっぱなしでも電力事情に反しない範囲で運用できるかもしれない。クラウドの単位当たりの電力がNASと比べてどうかだが、普通に考えてクラウドのほうが効率良くないと可笑しい気はする。ただデータ転送したら余計に電気食いそうだし、そこは全体でどうかをチェックしないと分からないのかも。

Git

ギット、と読むのが近いようだ(発音記号:git)が、ジット、と読んでしまう自分。だからだろうか、バージョン管理を使った事も無いのに、風の便り程度の思い込みで、Xcodeから使おうとして、全然変更内容が反映されないに至ってようやく、ようやくまともにGit(ギット)って何? push、pullってどうするの? コミットじゃダメなの? という思いを解消すべく、Xcodeという括りを捨てて、普通にGitって何?というところに立ち返って『分散バージョン管理システムGitの使い方入門』を読み始めたところ。

薄々感づいていた通り、コミットはローカルリポジトリへのコミットであって、XcodeでLocation(自分としてはリポジトリのマスタサーバのつもり)として指定した場所へのコミットでも何でも無いらしいことが分かりつつある。

簡単にいうと、リポジトリ間の操作がclone、push、pullであり、commitはローカルリポジトリということのようだ。

自分専用のPCが2台あって、同じプロジェクトを開発している場合でも、マシン毎にリポジトリが出来るわけで、例えば会社のオフィスと自宅という体制の場合(セキュリティ上、物理的にマシンを外へ出さない)、オフィスの自分と自宅の自分は別だと思っていた方が分かりやすそうだ。

ところが自分の場合、モバイル先でコード編集をガンガンやる予定なので、むしろGit(ギット)であるべき、な気がする。そうすると、敢えて省電力兼モバイルを考慮してairにこそマスタリポジトリを置くべきだな、なんていうのはアの付くアレってことだな。あ、それでgitか!

Git(ギット)と仮名を振ることで、だんだんジットではなくギットが浸透してきた気がする。

ただコミットという印象からは、マスタのリポジトリに対するものがコミットであって欲しいなあ。これも勝手な思い込みか・・・。ローカルへのコミットはオレオレコミット、いやローカルコミットで、マスタへのコミットはマスタコミット。そのままだが。マスタは何をマスタとするか、だから、色んなバージョンがあった場合も、対象が明確になって良い。そういう意味では『共有(シェアード)コミット(オレオレへの対義)』とローカル(局所)コミットの方が良いかな。漢字と(カタカナ)の位置は、使い易さの順。つまり共有コミットとローカルコミットをペアで使うほうが、何となくしっくりくる気がする、ということ。

2011年5月9日月曜日

ホモセクシャルと性同一性障害

私はどちらでもないが、どうも一部のメディアを見聞きしていると、ゲイとニューハーフを一緒くたにしているのではないか、と思えて仕方が無い。

なぜなら、ゲイの方々はものすごくお奇麗、とかなんとか表現しているからだ。百歩譲って、映画『フィラデルフィア』で、アントニオ・バンデラスを美しいと表現するのを好しとしたとして、トム・ハンクス演じる弁護士さんを、前述の一般的な表現でもって『お奇麗』っていうのはないだろう。まあ、人は皆、そのままで美しい、という哲学的な意味でなら、それはそうだろうが、とあるメディア等での表現は、そういう意味ではないからだ。

中身を以て人であるとするなら、外見が男でも女性だし、その逆もまた然り。それと性の対象がどちらかはまた別な話。

そんなメディアなんかどうでもいいと言えばそれまでだし、ちょっとぐらい言葉遣いが違ったからって、意味が通じれば良いでしょ?と言われればそうかもしれないが、やはりハッカーとクラッカーは使いわけた方が良いと思うし、そうすることは、何かその人への幾ばかのリスペクトが含まれると思う。

電話で予約

花粉症なので病院で薬を貰っているのだが、これが2ヶ月に1回なので、つい予約日を忘れてしまう。以前、auのmedia skinを使っていた当時は、ケータイのスケジュール帳に予定を入れておいたのだが、iPhoneになってから、何故かとても面倒で、別にiPhoneのアプリの問題というより、何か習慣が変わると、それまで惰性で出来ていたことが、出来なくなってしまう、という問題だと思っている。

そこで、普通に電話で予約したら、そのまま予定表に記入してくれればいい、ということに気づいた。仕組みは至って簡単だ。会話の内容をアプリで解読し、スケジュール帳に登録する、それだけである。ただ問題もある。言うは易く行うは難し。理屈は簡単でも実装するのは大変だということ。とはいえ、それはあなたを知らない自分の話であり、もうそんな会話(日本語)の読解なんて簡単、というあなたにとっては容易いだろう。

それともう1つ問題があった。

予約はまず、診察時に行うのだった。自分はときどき、予約を忘れたり間違ったりして、電話で予約し直すからそういう話になるのだが、そもそも診察時にする予約を守れば良い訳だから、病院と自分との間の情報が、iPhone(とその先のサーバ)で管理されていれば良い訳だ。カルテも薬も薬局も。しかしそんな情報をiPhone(とその先)に置くというのも抵抗がある。自分もそろそろ古い人間の側なのだろうか。それとも良識ある判断、なのだろうか。

何も変わらない明日

とある君「いいよね、自分で選択出来る人は。」自分「いいえ、誰でも(訳注:パクリです)。」とある君「僕に選択なんてないよ。」自分「ありますよ沢山。例えば靴下を履きます?それともはかない、石田純一さんニアンですか? そうですか、履きますか。じゃあ、右足から履きます?左足から履きます?」とある君「いちいち気にしてないよ。」自分「ね、選択があるじゃないですか。今日は右、明日は左から履くんですよ。」とある君「そんなの、何が変わるの?」自分「やってみれば分かります。いえ、実際分からないんですけどね違いは。だって、右から履いた今日と左から履いた今日は同時に実行出来ないじゃないですか。ね? でも確実に違いますよ。例えば時間。右から履いたときと左から履いた時で、僅かですがおそらく意識しないで履くより、時間がかかるはずです。特に最初は。だって、あれ?今日はどっちだっけ?とか、思うでしょ?でしょ?」自分「それに、例えば右足に穴が開いてたとするじゃないですか。でもまだ小さかったとしますよね?しかも親指の先辺りだったとするでしょ?その穴が。得てしてソックスの穴なんてそんなもんですよ。そうすると、左足に履けば今日ぐらい持つとか、思ったりしません? しますよね?ね? そうなんですよ。そうすると左に履き替えるでしょ? ほら、もう全然昨日と違うじゃないですか。ね?」とある君「いや、それ、いや、だけどさ、大した違いじゃないじゃん。」自分「わっかんない人だなあ。じゃあね、そこで30秒違ったとしますよね、いつもと履く時間が。そうしたら信号1個違いますよ実際。ね?ということは、出会いの可能性からして恐ろしく違ってきますよ。まあ、どっちに転ぶかは分かりませんけどね。」とある君「でもさ、選択っていうのは意思じゃん。そこでさ、信号1個違ってさ、初めて合う人がいたとするよね? でもそれって合いたくてあってるわけじゃないじゃん。そしたら選択でも何でも無い、ただの偶然じゃない。」自分「あたりまえじゃないですか。偶然ですよ。その偶然を選ぶんですよ。だってそうでしょ? 生まれた瞬間からして、選ぶ頭が無いじゃないですか。能がないでしょ? 意思だって無いに等しいじゃないですか。そんな中、日々明日が訪れるんですよ? 偶然と選択、そして結果オーライですよ。全ては。ね? いつしか知恵を付けたつもりで、考え抜いて緻密にやったところで、確かにひょっとしたらその緻密な計画通りに事が運ぶかもしれない。でもそれはたった1つの偶然でどうにでも変わってしまうかもしれない。つまり結果オーライなんですよ喩え緻密な計画通りだったとしても。1つの信号待ちの違いが、すべての計画を狂わせてしまうことだって有り得るんですから。」とある君「いや、そんなことないよ。確率っていうかさ、自分に関心がない人は、永久にそうなんだもん。すれ違う人間が1人や2人違ったって、自分に関心がないとか関係がない人っていう意味では”同じ人”じゃん。ってことはさ、そんなぐらいな違いじゃ、確かに100%断言はできないけど、ほとんど99%以上変わんないよ。」自分「じゃあ街で偶然知り合いに合うのはどう説明するの? 誰だって思いも寄らない知り合いと偶然再会するもんだよ。俺だって3回ぐらいはある。一度なんか浜松にある辞めた会社の同期の営業さんと六本木のディスコでバッタリ会ったんだぜ。しかもそのせいで人生大きく変わったし。どう変わったかは教えないけど。」とある君「ふ〜ん、そうなんだ。でもさ、だからさ、それは君の運であって、確率の問題からしたら、僕には当てはまらないよ。」自分「そうだよ、その通りだよ! 君には当てはまらない。君には君の選択があるんだから。いいかい?もし君が生涯を通じて、そんな偶然が起こらなかったとしたら、君が見事にそれを選択してのけたってことじゃないか。君はそんな偶然に何か期待しているみたいだけど、それがもし、避けたいことだとしたら? 君は全く正しい選択をしたことになる。そうして本当に君が驚くような偶然を避け切ったとしたら、100点じゃないけど、40点よりはマシだということだよ。」