2011年5月27日金曜日

Microsoft.Skypeでいまさら気づいたこと

昨日突然落ちてから、二度と立ち上がらないSkypeを見て、

WindowsでしかSkypeが使えなくなる

日を想像してしまった。
あれ、最新版をインストールし直してもダメ。あっそ。え!?
パソコン再起動してもダメじゃないか!

2011年5月26日木曜日

絵画の素晴らしさ

絵画の素晴らしさは、絵の具が浮き立った現物を、その前面に立って直視しなければ、絶対に分からない。それが、Bunkamuraでモディリアーニの裸婦を目の当たりにして、大いなる衝撃と共に初めて知った真実である、と断言できる。

実際、その直後に買った写真集を観ても、これは全く別物だというはっきりとした感覚の上でしか観る事はできなかった。それでも後日のために、一応買ってしまってある。

だから、世界中の美術館の絵をハイビジョンの写真に撮ってパソコンで鑑賞したところで、モディリアーニによって描かれた婦人の両目は、ただ不釣り合いなだけにしか見えないだろう。

まだ自分は、http://www.googleartproject.com/を観ていない。だが恐らく期待はずれに終わるはずだ。それをこれから(後で時間が出来た時に)ゆっくり確認したい。

アミット・スード 「Webに作る美術館の美術館」』 - TED

2011年5月24日火曜日

僕は本当に幸せなんだ。

ラウル・ゴンサレス・ブランコ。サッカーキングの素晴らしいインタビュー。この本は一体どこで買えるのだろう? と思ったらAmazonで買えた。せめてものお礼に買っておく。そういえばシーズン当初もインタビューがあったのを、確かメモしたと思ったが・・あった。しかしサッカーキング以外のサイトになっている。そこでサッカーキングのサイト内を探してみると、元の記事を発見。こちらも紙の本がAmazonに売っているので、合わせて買っておくとしよう。

もう一度、本当のラウルを

幸せなシーズン

WebGLを無効にする for FireFox4

node.js関係のサイトを見ていたら、WebGLの話が出てきたので、そういえばWebGLってJavaScriptの描画速度が向上したとかなんとか(V8?)で、統合というか、発展的解消に向かっていたやつとは違ったっけ?(追記:下方に追記したが、残った方がWebGLだった) と全くもって五里霧中な記憶を正すべく、ググっていると、WebGLの仕様レベルでの深刻なセキュリティ問題という、つい最近(2011/5/11)の指摘を発見。パニック調な自分は慌てて webgl firefox4 無効 で検索。こちらのサイトを参考に早速WebGLを無効に。サンキューです。

about:config で webgl.disabled を true

アドレスバーに"about.config"と打って、表示される警告を検討の上、"最新の注意を払って使用する"ボタンをクリック、フィルタ窓でwebglと入力すると見つけ易い。webgl.disabledという行でダブルクリックすると値がトグルで変わる。falseになっていたらtrueにする。

結局残った方がWebGLなのか、何なのか、全く別な話の勘違いなのか、現時点では不明のまま。引き続き、霧の中をターンパイクや碓氷峠を思い出しながら進んで行く。

と、こちらのブログにより、ほどなく霧は晴れ、自分の勘違いで、残った方がWebGLで、統廃合されたほうが、O3DというGoogle陣営のものだったということが判明。

2011年5月22日日曜日

radikoの録音

昔ながらのラジカセでラジオをカセットテープに録音出来ない(環境がない)場合の代替手段として、Macと3つのアプリを使って、radikoの録音をする方法のメモ。

3つのアプリ
(1) FireFox4
(2) Soundflower
(3) Audacity

FireFox4
radikoの動作用ブラウザ。まあ、Flashで動いているようなので、他のブラウザでも良いだろう。

Soundflower
詳しくは知らないが、オープンソースのMacOSX用『仮想オーディオデバイス』なるものらしい。サイトからダウンロードし、パッケージファイルを実行するとインストールされるようだ。インストールすると、MacOSXのシステム環境設定の中のサウンドの、出力、および入力で、Soundflowerが選択できるようになる。

Audacity
詳しくは知らないが、オープンソースの音を録音、編集するソフト。このMacOSX用を使う。サイトからダウンロードすると、必要なファイルがAudacityフォルダに入っており、この中のAudacityを起動する。


手順
1. まずFireFox4で www.radiko.jp を開き、対応しているラジオ局を選択する。すると、Flashのウィジェットっぽい、ソフトラジオみたいな細長いウィンドウが別ウィンドウで表示され、選択したラジオが放送される。この細長いウィンドウの選局タブを選ぶとラジオ局を替えることもできる。また、再生ボタンと停止ボタンで、音声のON/OFFが出来るようだ。この後の手順において、適宜、選局や音声のON/OFF操作を行う。

2. Audacityを起動し、メニューの録音と再生からソフトウェアによる再生にチェックを入れる。これはpreferenceのソフトウェアによるスルー再生と全く同じ。どちらを操作してもよい。ただしスピーカーから音を出さない場合は、逆にこのチェックを外す。続いて、再生デバイスをBuilt-in Outputに、入力でバイスをSoundflower(2ch)に、入力チャンネルは適宜、以上を設定する。

3. MacOSXのシステム環境設定のサウンドの出力をSoundflower(2ch)に設定する。

4. Audacityで録音ボタンを押すと共に、すかさずrakioで選局し、音声をONにする。もちろんradikoはすでに再生操作済みでもよい。

5. タイマ録音する場合は、手順4のところで、録音ボタンを押す代わりに、『録音と再生』メニューの『タイマーを使った録音』を選択し、タイマを設定する。設定した時間の範囲で録音される。ただし当然、radikoの操作は前述の通り、手動による操作であり、タイマに連動してradikoの放送再生が始まる訳ではないので、もしタイマ録音したければ、予めradikoは付けっぱなしにしておくとか、別途何らかの方法でタイマ起動するとか、が必要。

ポイント
通常Macのスピーカーに出力している音声を、Soundflowerという仮想デバイスに出力することによって、録音したい音をSoundflowerが受け取る。これが手順4の設定。続いて録音アプリの入力装置をSoundflowerにすることによって、録音したい音を受け取る。つまり、

radiko -> スピーカー

を、

radiko -> Soundflower -> Audacity -> スピーカー

とするわけだ。

プレビューの注釈ツール

超今さらだが、Mac付属のアプリ「プレビュー」では、PDFに注釈を付けることができる。これは超便利。「プレビュー」で付けた注釈(を保存したPDF)は、Acrobat Readerで読んでもちゃんと見える。Acrobat Readerでも出来るのかと思ったが、(表示できるものの)編集は出来なそう。

ADCで配布されている『Objective-Cプログラミング言語』(日本語版)の重要な部分にマーカー入れるのにとっても重宝している。

読み進めていると分かり辛いドキュメントだなあと感じていたが、他でObjective-Cの基礎的な事を学んでから戻ってきてみると、こうした重要な記述があって非常に助かる。

-- ADC配布の日本語ドキュメントにある『Objective-Cプログラミング言語』より --

当然ながら、アクセサメソッドを使用してオブジェクトの独自のインスタンス変数にアクセスする場合は、selfを明示的に呼び出す必要があります。以下に例を示します。

self.age = 10;

またはこれと同等の

[self setAge:10];

self.を使用しない場合は、インスタンス変数に直接アクセスします。次の例では、ageのアクセサメソッドは呼び出されません。

age = 10;


※何故か分からないがFireFox4で上記blockquoteを表示すると、濁点の位置が文字の右上じゃなく、左上に付いているという奇妙な現象が。この動きを見ると、全角であっても、濁点を別に描画しているということになるが(左上に濁点が付くフォントは無いと思うので)。

ラウル、国内カップ初冠

Goal.com

ラウル自身のゴールは成らなかったが、5−0で快勝。レアルマドリードでも成し得なかった、国内カップ、初の栄冠に輝く。

内田選手も控えキーパーがスタンバイしている様子をカメラが捉えた時は、(すでに2人交代しているので)出番が無いかと思われたが、81分、最後の締めくくりに出場し、得意のファルファンとのコンビネーションでオーバーラップすると、ゴールライン際から精度の高いクロスを上げていた。

Gaora@スカパー302chでliveが放送されることを知ったのはギリギリだったが、なんとか間に合って観ることができた。良かった=**2。

シーズンを締めくくる最後の戦いに勝利し、来シーズンのEL出場権を獲得したシャルケ04だが、今季のブンデスリーガでの成績はCLとは違い極度の不振、降格ラインぎりぎりで残留したといっていい順位だった。そんな不振なチームでもフジテレビ12nextで放映されたのは、内田選手のスタメンに定着する大活躍があってこそ。そのお陰でラウルの数々の勇姿を観ることができた。本当に感謝している。シャルケとの契約はあるとは言うものの、来シーズンのことはまだわからない。だがインザーギもミランで1年契約を延長したし、ラウルもまだまだ魅せてくれるはず。だから自分も絶対ヨーロッパへ行くぞ!


ノイアーに肩車されてカップを掲げる内田 - 時事通信@Yahoo!JAPAN

2011年5月21日土曜日

非営利検索サイト

いつも検索トップに表示されるサイトが突然表示されなくなってしまった。ひょっとしてショッピングモールの横やりか? あるいは大口スポンサーへのGoogleの勝手なサービスか?

その検索結果に表示されなくなったお店は、大手ショッピングモールにも出店していて、そちらのページはトップ付近に表示されるのだから、そのお店自体に何か問題があるとは考えられない。

また、ある大手検索サイトの結果を見ると、そのお店自身のショッピングサイトの広告が出されており、それがスポンサーリンクのトップに表示される。お店の名前で検索しているのだから、それは当然だろう。しかし、通常の検索結果には出てこない。広告料自体がどうなっているのかだが、広告からのクリックを取るように仕組んでいるとしか思えない。他に解釈のしようがあるだろうか。もし広告のクリックにより広告料を消費するタイプだったとしたら、ちょっと問題アリだと思うので、恐らくそうではない(クリックは関係ない)と信じたいところだが。

こういうことがもし営利企業の特権だとしたら、早めに検索エンジンはインフラとして認定し、自社の利益に準ずる表示ランク制定を行った場合、それを明示する義務を負わす(重い罰則付きの)法律を作るか、さもなくば、そうしたことに左右されない検索サイトを作る必要があると思う。

自分なら、その検索キーワードに対して、人気のあるサイトが上位に表示され、さほど人気のないサイトが広告によって表示させたい。無論、例え黙っていても上位に表示されるサイトであっても、それとは別に広告を表示したい場合は、オプションで指定できる。しかし逆に、お金を払うからこのサイトを表示しないでくれ、というのは戴けないので完全に却下である。

2011年5月17日火曜日

JRのTED Prize wish:アートを通して世界をひっくり返す

TEDではビルゲイツもプレゼンタの1人にしか見えない。シンプルだけどそこには何かある。

JRのTED Prize wish:アートを通して世界をひっくり返す

※ビデオの上にくるくる回って邪魔なアイコンは、一旦ポーズすると消えるみたい。バグなの?

土手に目から下が貼ってあって、列車に目が貼ってあって、列車が通ると顔が出来るっていうのが最高!

この中で最後に出て来るプロジェクトのサイト:
INSIDE OUT A GLOBAL ART PROJECT

TEDは本当に素晴らしい、しかし。

同時に素晴らしいのは、その講演自体であることは言うまでもない。例えばこれ。
アンジェラ・ベルチャー:自然を使って電池を育てる | Video on TED.com

とても素晴らしい発表だが、せっかくなら2時間枠の科学ドキュメンタリーにしたいと思う人は多いはずだ。そうすれば、こんなに急いでまくしたてる必要もないし、笑う間も十分取れる。

こうしたものを初めはプレゼンテーションとして観ていたが、あるとき自分の考えの中の1つと繋がると、それはむしろ、TV番組であるべきだと確信するようになった。

自分はリビングで1人で空腹を満たすためだけにご飯を食べるとき、悪癖でTVを観たくなってしまうのだが、ほとんどの場合観たい番組がない。結果、食べながらチャンネルサーフィンに終始する。こんなとき、TEDチャンネルがあれば、と誰もが思うはずだ。もしTEDを知っていれば。何しろ内容が選べるというところが素晴らしい。言うなればTEDチャンネルの中にサブチャンネルが沢山あるのに等しい。TED1、TED2..という具合に。だから最近ではiPadをテーブルの上に立てたりしてみたが、どうもまどろっこしい。常にそこにあるわけじゃないから、持ち運んでバスタブの蓋を立てて、見終わったら仕舞って、なんてね。今日はiPhoneで観たが、これもテーブルにベタ置きすると観辛いし、立てかけるちょうどいい何かがないと使い難いことが分かった。でも大きさが小さいことは思いのほか気にならなかったのはちょっとした驚きだった。

もちろんこうしたことは、他の人なら違ったコンテンツを選ぶだけだ。本当いうと私のお気に入りは、よくブレイクタイムという番組ならぬ番組として流される、自然や街の風景が、軽音楽に載って、文字通り流れて行く番組だ。ただ欲を言えば、空腹を満たす作業の合間だけではなく、もっとじっくり無駄な時間を過ごす時に使いたい。つまり、観る、からもう一歩進んでというか踏み込んで、その番組の中に入り込みたいのだ。偶然撮られた人をフォローしたり、そこへ行きたい、その場所や地域をもっと知りたいと思ったら、ちょっとマークアップするだけでいい。忽(たちま)ち自分の35年計画の中に組み込まれ、日程表まで出来上がる。そんな時代まで10年とかからないだろう。

まあ要するにだ。TVが好きだけど見たい番組がない。これが自分がTVを作りたい*モチベーションになっているということであり、それにはTEDのような秀逸なコンテンツが重要で、そうした秀逸なコンテンツの卵は、まだまだ世の中に沢山あり、番組化されるのを待っているのだということだ。

*TVを作るというのは自分のコンセプトにおけるメタファ。

p.s. TEDのEmbedをこのブログのエントリ幅に合わせるには
embedコード内の432を380、240を216に。objectタグのwidth=446を400、height=326を292に。これらはコード内に2カ所づつある(objectおよびembed)

プリンタの印刷時間

プリンタを滅多に使わない自分の状況では、電源ONから最初の印刷の準備ができるまでの数分間が、ほとんど印刷時間とイコールになる。しかしカタログスペックの毎分印刷枚数には当然含まれない。マジックだ。

2011年5月14日土曜日

世の中にはすごいやつがいるもんだ


とは、とあるDがつくマンガのアニメでのセリフ。しかし、昨日は心底驚いた。ダメもととはいえ、エバポレータとその周辺全取っ替え締めて25万円成り、と宣告されたエアコンのガス漏れが、見事、ケミカルの力と、それを操る匠の技とツールズによって、修復されたのだ! しかもお値段、なんと、1万2千円ポッキリ! ライト付きボールペンとポケットティッシュのおまけ付き。

修理が終わって、お店の女将さんが、お待たせしました〜と戻られたとき、まあ半分諦めていたというか、NGを覚悟していた自分は、「で、如何だったでしょうか?」と聞くと女将、「へ?」という感じなので、「あの、直りました?」と聞き直すと、(ん?なにいってんのこの人、あり前じゃない、直しにきたんでしょ?)と思ったりはされなかっただろうが、「あ、よく効いてますよ」と。思わず地球の裏側まで聞こえる大声で「すごーい!!!!」と叫んでしまった。ブラジルにお住まいの方々、ごめんなさい。

しかも値段を聞いて2度ビックリ。電話では3回作業をやって(ガス漏れが)止まったという方もいらっしゃいます、と聞いていたのだが、自分の場合は通常の1回の作業で大丈夫だったそうだ。しかも恐らくガス漏れチェック時に充填したと思われるガスが残っていて、エアコンのガスの補充は無しで大丈夫だったとのこと。いやむしろこれ以上入らないぐらい入っていたらしい。

作業を終えて受付の方に出ていらしたご主人も、作業中の強面とは打って変わって、話をする時はとても優しく腰の低い、丁寧なご対応。帰りはスタッフの方も含め、みなさんでお見送りして頂いた。結局ドア2ドアで7時間の行程だったが、非常に有意義な体験だった。

それにしてもガスがフルフル残っていたとは。いや確かに行きの道中、エアコンから冷たい風が出ていて、内気にしても利くので、おっかしいなあ、まだガス残っているのかなあ、とは思っていたのだが、原工房さんには「あっという間に抜けちゃうんですよ」と言われていたので。一体どういうことだったのだろう。結果オーライといえば確かにそうなのだが。

ただ臭いがまだ始動時に結構残っている。車の下が真っ黄色になっていたということなので、下回りを洗えば多少は違うかもしれない。顔のヒリヒリも未だ多少起こるが、オレの顔にブラックライトを当てたらリアル黄色人種になっているのかが心配。インクはディズニーランドの再入場用のスタンプと一緒だと聞いていたので、害はないと思うが。


エア漏れに気いたのは実は去年の冬。ただ冬だったし、前輪のステーの付け根が割れたのを交換した痛みも癒えぬうちだったので、暑くなる手前まで問題先送りを決め込んでいた。それだけじゃない。2年前にエアコンのパーツの一部を新品交換しているのだ。漏れといってもそう大きな故障じゃないだろうと、決め込んでしまっていた。だから25万と聞いた時ようやく、ああ、このままじゃダメだなと。やるかやらないか、やるならどこまでやるのか、ちゃんと決めてからやろうと。

だが本格的な夏場を前に、すでに乗れなくなる別な問題が起こってしまった。

エアコンのガス漏れをチェックするのに、チェック用のガス?を入れ、漏れている箇所を選定する(ブラックライトを当てると黄色になる)のだが、これが系内に残っているらしく、かなり薬剤臭い。臭いだけならまだ我慢のしようもあるのだが、自分はこういう溶剤系に若干アレルギー体質であり、顔がヒリヒリしてくるのだ。

一刻も早く洗い流したいのだが、306のエバポレータはダッシュボードを丸ごと外さないと何も届かない。ノズルを延ばしてエアコンクリーナーをかける事すらできないのだ。何とか方法はないものかと再び原工房さんへ相談するも、もう自然乾燥を待つか、さっさと交換するしかないが、結構乾くのには時間がかかると思うよ、と再び宣告されてしまったのだ。

こうなると、みんなどうしているのか、どんな部品なのか、単体で買ったら幾らするのか、まあそういったことをあてども無く探さずにはいられなかった。そうして、ブロアハウジングという言い方で説明されていた故障部品が、どうやらエバポレータという部品らしいことが分かり、ついには全く同じと行って良いほど良く似た、しかも同じ306、見積金額まで同じという情報が見つかった。こうなったら自分も後を追うしかないい。

早速そのサイトに掲載された情報からお店に電話すると、どうやら直るかもしれないと。しかもかかっても2万円という、必ず直る保証はないとはいえ、実に明朗会計。あとは自分がダメ元で試すかどうかだけ。

問題は場所。千葉県はその半島のど真ん中。これ以上無い中心点にあるので、自宅からはるばる遠征するには、片道2時間超、休憩や渋滞を考慮すれば、3時間越えも覚悟しなければならない。

と、思ったのだが、落ち着いて考えれば、そのぐらい大した距離ではないではないか。千葉のど真ん中なんて行った事無いし、楽しいドライブじゃないか。ただ今日(昨日)行くにはエアコンが効かない車はさすがに辛い距離ではないか、とも思い、もう少し涼しそうな来週辺りをと思ったが、スケジュールを確認するとちょっと都合が合わなそう。そこで改めて外へ出て体感温度を確かめてみる。確か今日(昨日)は29度になるっていう天気予報だったが、午後3時の時点で、半袖なら全然暑くない。これなら時間的にこれ以上暑くなることはないはず。ということで事は決まったのだった。


そうそう、途中休憩で寄った海ほたるだが、えびえび焼き(たこ焼きの海老版)と、たい焼き風の海ほたる焼き(小倉、メロン)も美味かった。

匠のお店:有限会社ワールドサービスファクトリー
匠のお店の先人:gori's modfiy factory

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点よりはマシだということだよ。」

2011年5月8日日曜日

無駄な時間

無用の用という言葉を、自分は子供の頃、アニメ『一休さん』で知った。内容は忘れたが、言葉だけは覚えている。自分なりには、結局カオスなのか、つまり間接的な作用の階層(連鎖)とでも言えばいいのか、のように思っている。

ちなみにカオスという言葉は、映画『ジュラシックパーク』の原作(日本語訳)より前には知っていた。確か「北京で蝶が羽ばたくと、ニューヨークで嵐が起こる」(ウィキペディアより抜粋)的な内容だったと思う。だがバタフライ効果という言い回しを知ったのはもっと後だった気がする。風が吹けば箱屋(桶屋)が儲かる、とは系が違うだろうか。

さて、そうして(これまでの時間も含めて)無駄な時間を過ごす重要な意義の1つに、無駄に過ごしたいという怠け心がある。ボーっとするとかは逆に苦手なので、そんなときは、寝るか、どうでもいい(目的の定まってない)ことをやって、リラックスする。言わば頭の柔軟体操のようなものではないだろうか。

そんな無駄な時間を過ごしていたら、JMakiという、昔用賀のセミナーで聞いた懐かしいものの日本語訳プロジェクト「JMusu」のMLが出てきた。残念ならが、JMusuのリンク先は今は無きglassfish.jpで、辿り着けないのだが、JMakiの日本語ページがしっかり公開されている。まださらっとしか読んでないが、仮にこのページがあまり読まれなかったとしても、自分にとってこの存在意義は大きいし、こうした素晴らしい作業を行った方々、有志の『有志』が、その人にとって有意義なものであったことを願わずにはいられない。

要するに、人生は日々の積み重ねであり、古い経験は朽ち果ててこそ肥やしになるだろう。そして人生は毎日が新しい。無駄を意識しようとしまいと、あるいは言い訳にしようと、常にそこには新しい選択がある。明日を選ぶのは自分なのだ。

もし翻訳SNSが人気を博すことになれば、随分な無駄が肥やしになるはずだ。

2011年5月6日金曜日

クラスのカテゴリ機能

カテゴリ機能という言い方は我ながらおかしいと思うのだが、クラスのカテゴリ、って切ってしまうと、Objective-Cの記法というより、普通の説明みたいで分かり辛いというか、溶けてしまうので、カテゴリ機能と仮に付けている。

さて、そのカテゴリ機能(書く度に変だと思う:P)だが、名前空間ではないので、結局最後は1つのクラスに統合される。で、重複した場合、元になるクラス(カテゴリ修飾されていない)と重複した場合は、カテゴリ修飾された方が強い(勝つ)。しかしオーバライドとは違って、負けた方は”使えなくなる”ので注意が必要。

作業分担でも効果的とのことだが、ルートクラス(NSObject)にもカテゴリ機能を使ってメソッドを追加できるので、世代ギャップ的にぶつかるケースは出てきそうだが、メソッド名がそもそも長いというのが伝統らしいので、メソッド名の中に名前空間的修飾を入れてしまうのかもしれない。まるでCのように。というかCだし。あ、そういうこと?

といっておきながら、そんなに被ることもないか、という気も。

2011年5月5日木曜日

iOSの抽象レベル

iOSの、と言って良いかどうかという問題もあるが、例えばNSString。これにinitWithContentsOfURLというメッセージでいきなりコンテンツが取れてしまうというのはどうなんだろう。そもそも頭のNSというのに何か意味があるのか。しかしスーパークラスはNSObjectというルートクラスであり、これがURLを知っているわけではない。

Stringというと、もっと低レベルなイメージがある。そのため、StringがURLを知っているという印象がうまくない。せめてTextなら、と思うが。

しかし、全体像が見えてくれば、こうしたところのチューニングも、もう少し合ってくるのではないかと思うので、ここは鵜呑みにして進んで行こう。

2011年5月4日水曜日

iPad2のKindleの英英辞書のダウンロード

単語を選択してもGoogleのAdに怪しげなDownloadボタンしか出てこないと思い込んでいたが、そのDownloadこそ、Free Dictionary Downloadだった。

井上陽水さんの歌じゃないが、もーさんざん探して見つからないので、諦めたら気がついた。

逆にiPhone4では辞書を別にDownloadしていたけど使えなかったと思っていたら、iPadのようにdownloadボタンが出る訳でもなく、いつの間にか使えるようになっていた。

NSDictionary

P45

nullが追加できない、とあるが、コード上nilを追加しようとしている。現段階では憶測だが、nilといえばリストの空要素であり、nullではないと思うのだが。

また代替的に使うためのクラスとしてNSNullとあるが、これこそ本来のnullオブジェクトでいいのではないか。つまり、nullとしてNSNullを使うのは当然なのではなかろうか。

ところでこのJSONのパースにJSON.frameworkが一般的らしく、ググると、yajl(yet another json library)なるものがあったりする。

yet anathoer -- 反主流、少数派など、だけど小粋な(そこまで言ってない?)-- が付く物はソフトウェア、特にオープンソースに多いとの情報が転がってたり。

JSONライブラリの簡単な比較はこれなど。他にTouchJSONがある。

2011年5月3日火曜日

initWriteContentsOfURL:

initWriteContentsOfURL: - Deprecated in iOS 2.0.

Deprecatedの訳
非推奨みたいな意味だろうと思っていたが、辞書的にしっくりこないのでググる。と、こちらに「廃止予定」という訳が載っていた。非推奨でもいいような気がするが、廃止になったら非推奨じゃ済まなくなるからね。

代替メソッド
initWithContentsOfURL:encoding:error:
initWithContentsOfURL:usedEncoding:error:

両者の違いはencodingが入力であり、呼ぶ側が指定することになる。usedEncodingは取り込んだデータのencodingをセットして返してくれる。らしい。

encoding / usedEncoding
NSStringEncodingなんだが、リファレンスで検索しても出てこない。そこでXcodeで入力し、Jump to Defineすると、unsigned int の typedefじゃないか。で、すぐ上にenumがずらっと並んでいる。まてよ、

enum { NSASCIIStringEncoding = 1, /* 0..127 only */
NSNEXTSTEPStringEncoding = 2,
.
.
};

と書いてある。何か変だなあと思うとタグがない。いいんだっけ? ま、書いてあるんだから良いんでしょうきっと。
でも、initWithContentsOfURL:encoding:error: を使う場合、encodingに何を指定したらいいのか。コンテンツとURLのエンコーディングが違う場合は、こちらを使って明示しなければならないのではないか? とすると、こちらを使う方が、initWithContentsOfURL:usedEncoding:error:より確実なのか? いや、ケースバイケースな気がする。とりあえずinitWithContentsOfURL:usedEncoding:error:で良いものはencodingを指定しなくて良いので、こちらのほうが、古いinitWriteContentsOfURLに近いと思えば良いだろう。

NSError
NSError Class Reference
の中で、
An NSError object encapsulates richer and more extensible error information than is possible using only an error code or error string.
とあるが、この than is が分からないのでググると、
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1335271008
が出てきた。何でも出て来るなあ本当に。みんな、すごいすごい。
ということは、information than information is なのかな。
バカちょんなエラー情報(エラーコードやエラーメッセージ)よりricher で more extensibleだと。

で、こちらのブログに日本語で書かれたものがあって大助かり。ありがとうございます。メソッド名に対応して<a>タグにid=initWithContentsOfURLusedEncodingerrorのような格好でメソッド名(:は無し)が付いているので、リンクが近くて良い。すばらしい。

"Upon return, if url is read successfully, contains the encoding used to interpret the data."

という意味が、used toで引っかかってしまい、何となくurlの内容のencodingがセットされるという意味じゃないかと思うのだが、確信が持てない。で、先の日本語訳でやはり大体そういうような意味だったので納得できた。

「used to --(昔は)よく〜した(ものだった) 」じゃあ、ねぇ。

Objective-Cのコロン
initWriteContentsOfURLではなく、initWriteContentsOfURL:
コロンは最初のパラメータ。コロンがないということはパラメータがないということ。で、偶然か慣習か、コロンの直前の単語がパラメータを示す単語になっている(している)みたい。initWriteContentsOfURL:だとURLが第一パラメータ。2つ以上あっても同じで、initWithContentsOfURL:encoding:error: なら、URL、encoding、errorがそれぞれパラメータになっている。だが、これだけ見ても型が分からないので、中途半端な感じが否めない。でも、もしかしたらそれは、単に馴れてないからその効果が分からないというだけかもしれない。cやc++は関数名的な部分の名前しか分からないわけだから。まあ、早く大きな声で言えるよう、馴れることだ。