Snow Leopardに”Google App Engine Launcher”をインスコする際に躓いたので、書き留めておく事に。

GAEのサイトからOSX用のdmgファイルをダウンロードして、中にあったGoogleAppEngineLauncher.appを、Applicationsディレクトリにコピーしました。
んで、いざ起動すると以下の様に怒られた訳ですよ。


The Google App Engine Runtime could not be extracted (perhaps
you are running the Launcher from the dmg? If so, drag copy the Launcher
to your local disk first.) GoogleAppEngineLauncher.app may not work correctly.

「もしかしてdmg上で実行してんじゃないの?プゲラ」とか言われて、軽くいらっとしたのですけれども、ここは大人なのでぐっと我慢しました。

んだもんで、調べたらどうやらアプリケーションパッケージ内のパーミッションが悪いよーみたいな事が書いてありました。
ちなみに、ココを参考にしました。
多分、手順はこんな感じだと思います。(私は学があまりないので、雰囲気で英語を読みます。)

  • まず、GAEをApplicationsにコピーするだろ
  • それから、右クリックして「パッケージの内容を表示」を選択するんだ
  • 次に、Contentsの中のResourcesの中にある「GoogleAppEngine-default.bundle」を右クリックして「パッケージの内容を表示」だ
  • 表示出来たら、Contentsの中のResourcesを右クリックして、「情報を見る」を選択するんだ
  • 出て来たウインドウの右下にある鍵マークをクリックして、君のパスワードを入力しよう。
  • 其れが出来たら、書き込みと読み込みの両方の権限を与えてあげるんだ!

で、一応指示通りにやったんですけど、全然だめな訳ですよ。
とりあえず、権限が悪いのだなあーと言う事はわかったので、じゃあもうrootでアプリ起動すればいいじゃんと言う事で


sudo open /Applications/GoogleAppEngineLauncher.app

したら、見事動きましたよ。

ここ最近のギークハウス界隈の動きがとても活発ですね。
東京、京都、愛知などいろんな所にギークハウスが増えていっておる様です。

ギークハウスプロジェクト

我が家も私の知らない間に「ナードハウス」と銘打ってギークハウス的な運営をしております。
実は其れ以前からこのシェアハウスは存在していて、もうかれこれ5年ぐらい経とうとしておるのですよ。
そこで、ルームシェアしてよかった事、悪かった事をまとめてみる事にします。

ルームシェアのメリット

1、家賃が安い
我が家は6SLDKで¥157,000という奇跡的な破格の物件でして、
6人で住むと一人頭、約¥26,000という驚異的な値段を誇っております。
光熱費を1万円ずつもらっていますが、それでも十分すぎる安さです。
2、部屋が広い
一人暮らしだと大体6~10畳ぐらいの部屋になると思います。
我が家も個人の部屋はそれぐらいなのですが、リビングが20畳あります。
自室に居続けると窮屈になりがちなので、大きなリビングがあるととても開放的です。
ただ、でか過ぎるためか、今の季節はエアコン付けても寒いです。。
3、良い家電が安く買える
実質的に安くなる訳ではないですが、共同出資で買うので各自の負担は少なくなります。
我が家には47型のフルスペックハイビジョンテレビがあったりします。
誰もテレビ見てないですけれども。
4、情報量がハンパではない
人が多ければそれだけ流通する情報が多いのは当然ですね。
同居人が同じ業界の人間だったりすると、その情報の有用性はさらに上がります。
私は元々Webにはあまり興味なかったのですが、今ではすっかりWebの人になってしまいました。
5、誰かいる
やっぱり自宅に帰って来て誰かが居るってのは寂しくないものです。
鍋やったり、お酒飲んだり、なんだかんだで楽しいものですよ。

メリットは上げていくと切りがないのでここらへんで。。
次はルームシェアのデメリットを上げてみます。

ルームシェアのデメリット

1、我慢しなければいけない事が多々ある
全てのデメリットはココに集約されるといっても過言では無いぐらい。。
当然っちゃ当然なんですが、ルームシェアも小さな社会な訳なので、
思い通りにならない事なんて多々あります。
私が寝てる時にリビングで騒がれたりするととてもイラッとするw
2、お金の計算が面倒
シェアメイトというか運営者的なデメリットですが、お金の計算が本当に面倒です。
家賃を期日までに徴収しきれなかったりすると、自分の財布から立て替えたり
しなくてはいけないので、ちゃんと帳簿を付けておかないと痛い目を見ます。
3、他人のルーズさが気になる
ゴミをほったらかしにしてたり、足音がうるさかったり、電気がつけっぱなしだったり。
私は結構そういう所が気になってしまうので、小さなストレスが溜ったりします。
そういう場合は、直接言ってあげるか、全力で我慢して下さいw
4、流されてしまう(誘惑が多い)
自制心の強い人ならば問題はないかと思いますが、同居人から楽しそうな誘いがあると
ついついやらなければ行けない事を放って遊んでしまったりします。
また、我が家はゲームやらマンガが大量にあるので、やっぱり遊んでしまいます。。
5、引っ越しができない
これも運営側のデメリットですが、一度シェアハウスとして運営してしまうと
個人の都合で引っ越しをしたりする事が困難になります。
「代わりにオーナーになってあげるよー」って言ってくれる同居人が居れば
其れ程問題にはならないかな。

以上、ざっとまとめた限りではこんな感じになりました。
やはりメリットは物質的、デメリットは人間関係に集中しますね。
飽くまで個人的な意見なので、この限りではないと思いますが。

ルームシェアを長続きさせる秘訣は「気遣いと我慢とやや無関心」ですw
どうしても全員が同じ価値観なんてのは100%ありえなく、
時に横暴に見える振る舞いも必ずしますので(自分も含め)、
相手には極力気遣い、横暴な態度には我慢し、プライベートには極力踏み込まない。
この3点が出来ればとても良い関係が保てると思います。

ここ何年かで結構ルームシェアも認知されて来ているみたいだようーという話しも
ちらほら聞きますので、ちょっと興味ある方、実際にやってみようという方の
参考になれば幸いで御座いますようー。

PHPのrequireで良く判らない挙動をしたのでブログで取り上げてみます。
ちなみに原因も解決策もハッキリしていません。。
誰か知ってたら教えて下さいまし。。

Hoge.php


<?php

// クラス定義の前に、クラスの有無を判定する。
// 結果:true
var_dump(class_exists('Hoge'));

// クラスの定義
class Hoge {}

上記の様にクラス定義の前にクラスの有無を判定した場合、
そのクラスは存在すると解釈されておるのですが、
サブクラスを作成した場合は、そうでもなさそうなのです。。

SuperClass.php


<?php

// クラス定義の前に、クラスの有無を判定する。
// 結果:true
var_dump(class_exists('SuperClass'));

// 親クラスの定義
class SuperClass {}

SubClass.php


<?php

// 親クラスが定義されているファイルを読み込む。
require_once 'SuperClass.php';

// クラス定義の前に、クラスの有無を判定する。
// 結果:false
var_dump(class_exists('SubClass'));

// 小クラスの定義
class SubClass extends SuperClass {}

なんとまあ、サブクラスが定義されていない事になってるじゃありませんか。。
何なんだろうと思ったので、ひとまず親クラスの継承を取っ払ってみる事に。

SuperClass.php


<?php

// 結果:true
var_dump(class_exists('SuperClass'));

class SuperClass {}

SubClass.php


<?php

require_once 'SuperClass.php';

// 結果:true
var_dump(class_exists('SubClass'));

class SubClass {}

なんだかやっぱり継承すると駄目になるみたいです。
そこで、上記のファイルを1つのファイルにまとめてみました。


<?php

// 結果:true
var_dump(class_exists('SuperClass'));

class SuperClass {}

// 結果:true
var_dump(class_exists('SubClass'));

class SubClass extends SuperClass {}

これだと、両方とも定義されている事になっている様です。
なんでだろう。。

requrireって記述した所にごっそり書き加えられるイメージ(飽くまでイメージ)
で使ってたんだけどこの挙動を見る限りでは、そうではないみたいですね。

ちなみに、小クラスの定義の後にクラスの有無を判定すると、クラスは存在している様です。

SuperClass.php


<?php

// 結果:true
var_dump(class_exists('SuperClass'));

class SuperClass {}

SubClass.php


<?php

require_once 'SuperClass.php';

class SubClass extends SuperClass {}

// 結果:true
var_dump(class_exists('SubClass'));

なんでこうなるか、理由知っている人いたら教えてください。。