MacPortsで入れたzshは/etc/zshenvを読まない。

MacPortszshをインストールして使っているんだけど、
zshのデフォルトの初期化ファイルであるはずの


/etc/zshenv


を読んでくれない。
いろいろ試したけれど、
/etc/zprofile
/etc/zshrc
/etc/zlogin
のいずれも読んでくれず。

結局
~/.zshrc
に記述して、とりあえず(ココ1年ほど)使っていたんだけど、
いいかげんイラッとするので、ゴニョゴニョしててふと思った。


あ、MacPortsのインストールディレクトリのなかなのかも。


MacPortsはデフォルトの/opt/localに入れてたので、


/opt/local/etc/zshenv


を作ったら、読みこみやがった。なんじゃそれー!!

一年ぐらいの謎がようやくとけた。って、感が悪すぎるか > 自分

Embed API Tutorialを勝手に要約

とりあえず、明日の自分へ。
Google Developers


つっこみお願いします。

イントロ

どんなwave API アプリでも "wave" が基本的な構成要素で、
それは、WavePanelオブジェクトに内包される。
WavePanelオブジェクトの初期化と、データの反映のしかたを解説

Wave で"Hello, World"

とりあえず、サンプルみるが早いよと。
"Welcome"というwaveを表示するページね。
(といいつつ、このコードだとそんなものは表示できんと思うのですが。。。)


ただ、waveのsandboxのアカウントは要るし、
組込むwaveのwave IDもご準備くださいな。

たったこんだけのコードでも、ポイントはいくつかある。

  1. scriptタグで Wave API JavaScriptを読みこむ。
  2. "waveframe"って名前のdiv要素を作る。実際実行時には、wave はiframe要素という形で、このdiv要素の中にできる。
  3. WavePanelオブジェクトをつくるためのJavascript
  4. 一意のwave IDで、waveを読みこむ。
  5. WavePanelをinitして、さっきのdiv要素につっこむ。
  6. 以上の全部のコードを、bodyのonloadで実行。

以下、このステップを説明しまっす。
(は、また明日)

息子と親父

息子とお風呂に入ってると、
息子が急に
「大きくなったら、パパになるの」
と僕を指して言いだした。
取り様はいくつもある台詞だったので、
「パソコンとか使いたいのか?」
と問うと、すこしハッとして、やりたいと応えた。
その問いを持ってしても、彼の真意はわからなかったが、
3歳5ヶ月ぐらいでこんなことも言えるのかという感慨もあり、
僕は笑みを抑えることができなかった。
僕みたいになっちゃあまずいなあと、現実的な思いも抱きつつ、
ふと、自分も父親に、そんな台詞を言ったことがあるのだろうかと思った。
物心付いてからは、親父に憧れを抱いたことはなかっただけに、
せめてこのくらいのころに、同じような台詞を言っててほしいなと思った。

Embed APIでwave開発をかじる。

3つの開発方法

waveには以下の3つの開発方法があるようです。

  1. Robots API
  2. Gadgets API
  3. Embed API


どれの説明もいろいろなところで解説されているし、
ぶっちゃけ、あまり理解できてないので、とりあえずサンプルを動かしてみます。
Robotsはちょっと大掛りになりそうだったのと、Gadgetsは根本的にいつまで経っても好きになれないので、
Embed APIをチョイスします。

サンプルコードが動くまで。

APIページに行くとチュートリアルがあるので見てみると、
サンプルコードもあるので、それを動かしてみます。
APIページは以下です。
Google Developers


サンプルコードをローカルに保存しますが、ブラウザで見ますが、動きません。
それもそのはず、真ん中あたりに"waveID"とかって、もろに個別に指定しなければならなそうな文字列がありますからね。

Currently, you can obtain the wave ID within Wave by selecting a wave and then selecting Debug->Get Current Wave ID


と書いてあるので、サンドボックスにてその通りにして、waveIDを取得し、それに書きかえてアクセスすると表示されました。

Previewサイトの情報を使ってサンプルコードを動かしてみる

じゃ、サンドボックスの情報では動いたけれど、プレビューサイトの情報ではどうかと。
コードを見る限りだと、次の部分にもうすこし変更が必要そう。

var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/');
wavePanel.loadWave('wavesandbox.com!w+waveID');


まず、URLが違うでしょう。waveのURLをサンドボックスPreview版のサイトを比較すると、
対応するのは、

http://wave.google.com/wave/


になるのではないかと。
また、プレビューには"Debug->Get Current Wave ID"というリンクはないので、
これもURLから割りだすと、

wavesandbox.com!w+waveID


の"wavesandbox.com"は"googlewave.com"
waveIDは"w%252B"と末尾の".3"とを省くと、waveIDが取得できます。

以上の方法を使用して、waveは見れました。

ちょこっとwaveアプリ開発を見てみた。

waveアプリの開発方法?は、

  1. 「Gadget」
  2. 「Embed」
  3. 「Robot」


の3つがあるようですが、
今日は、「Gadget」で開発する感じを追ってみた。
といっても、解説記事を読んだだけですが。。。


プレビュー公開が始まったGoogle Wave「超」入門(1/4)−@IT


こちらの記事は最近書かれたものみたい。
10万人プレビュー記事かな。
この記事の最初3ページにて、「Gadget」でのサンプルアプリ開発が解説されていますが、
waveのapiをコールしてい以外はいたって普通のガジェット開発と同じ。
waveのapi自体も普通のオブジェクトのメソッドコール。同期やらなんやらは全く考えなくていい。
やや、拍子抜けした。
apiの内部でめんどくさいことは全て処理してくれている構造みたい。ありがたや。