2012/04 | 2012/05 | 2012/06
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2012年5月 6日

GWいろいろ 2012

関西から離れたから、今年になって人生で初めて帰省する、という行為を行ったことになる。結局関西に戻ってもあっちこっち行ってて昼間はほとんど家にいることはなかったんやけども。

詳細は、4/28, 29がスフィアのライブ@横浜アリーナ。29に帰阪して30は服の調達。その後は日本Androidの会神戸支部関係者のBBQ会、金山組の会合という名のボウリングと飲み、あとは図らずも神戸観光とそして滋賀の日吉大社と鞍馬温泉。最後の日曜だけちょっとゆっくりできたかなという感じで。といっても最後は帰る日ですが。

28に、実はネコミミ(necomimi)を調達できそうなら、と思ってニコニコ超会議がある海浜幕張に行ったんやけどもこれが長蛇の列で待ち合わせの時間に間に合わないっぽかったので一度諦め、次の日の朝から並んで購入するということをやっていたりする。

で。この調達したnecomimiを神戸支部BBQで付けてみたり付けさせてみたりしたわけですが、みんな結構おもしろがってた。楽しんでもらえたようで何より。特に、技術的変態の集まりでもあるわけなのでデバイス視点に興味津々やった。

さらに、necomimiは2つ買っていたりするわけで…1つは関西で欲しそうにしていた友達に買い取ってもらった。もともとあるデジカメのプレゼントキャンペーンで梅田方面へ行くはずが、キャンペーン主催側の気まぐれにより神戸に行くことに。結局、三宮に行ったはいいもののブツの取引をしただけで撮影したかったキャンペーンカーは現れず。一体何しに行ったんだかってな感じやった。

ボウリングはいつもどおりにいつもどおり。そんで、日吉大社に行って鞍馬温泉に行き。いろんなひとといろんなところで会うのに忙しかったような、そんなGW。大学卒業して以来の濃密スケジュールじゃないのかこれ。

▲top

投稿者 ただ : 22:03 | トラックバック (0) カテゴリー ; お出かけ

2012年5月13日

銚子のその先へ

今回は成田からさらに成田線を東へ銚子まで行ってきた。遠いわ!!

前に成田山に出かけたとき(Erbe 12.04.15)は昼ごろに成田に着いて、それから駅に戻ってきたのが17時過ぎ、という流れでそこから銚子に行こうとして途中で無理と気が付いたわけやけど。なので、今回はちゃんと昼に銚子に着くように行きまして。銚子鉄道、神戸にいたときからちょくちょく話題になってたから気になってた行きたかったんよね。

外川まで行って、海辺の村に佇んできた。ほんまに、何もないところやったけど、何もなさがまたいい味出してたなぁ。和歌山から移住してきた崎山治郎右衛門が、計画して作った漁村らしい。なるほどそれで整然としてるのか…。

帰りの電車で戻る時間を計算すると1時間ほどはゆっくりできるっぽかったので、ぶらぶらと長崎鼻まで足を伸ばしてみて…あそこ崖じゃないけど、何もないところに波が打ち寄せてて、その先は何も遮るものはない太平洋、その先は遥か彼方アメリカ大陸、という素晴らしいロケーションだった。灯台よりも先(海側)の岩場で滑ったときはどうしようかと思ってかなり焦ったけど…。

しかも、1人だったから滑らないように絶対注意してるはずなのに滑っちまった。足を引っ張られた感もなかったわけではないけど…。ノートPCを庇おうとして受身をとったせいか自分が思ってたのと回転方向が逆になったからか、かなり違和感があった。足は擦り剥いたけど、無事でよかった(ノートPCが)。

というわけで痛みに耐えながらも帰路についたわけですが、改めてみるに銚子鉄道の車窓からはことごとくキャベツ畑ですな。ほんまにキャベツの一大生産地っぽい。

▲top

投稿者 ただ : 23:38 | トラックバック (0) カテゴリー ; お出かけ

2012年5月21日

金環日蝕

本日は稀にしか拝むことのできない天文イベントが朝にあった。そう、金環日蝕。運よく、出勤前の時間帯に観察ができるってことで300円の日食観察グラスをドンキで買って臨んだわけやけど…。雲が結構出てますやん!!

そうこうしているうちに、欠け始める。そして、雲は切れたり、かかって厚くなったり。あのぉ、日食グラスを使って撮るか、使わずに撮るかすごく困るんですけどそれ。欠けるうちに、雲が切れるタイミングが多くなって、結局撮影はほとんどグラス付きに。コンデジなので、レンズの前に日食グラスを押さえつけて撮影。

しかし、結構暗めになってしまって(本来はそうなんやけど)、シャッタースピードが1/8sとかちょっと長めになってブレてしまうことが頻発。グラスをもう少し浮かせることができたなら輪郭も少しはマシになったのかなぁ。なんかカメラの固定器具を出してなかったのが失敗というかちょっと残念。

ずっと欠け始めぐらいの雲の状態なら、リングまでグラスなしで撮れたのになぁ。

▲top

投稿者 ただ : 20:17 | トラックバック (0) カテゴリー ; お出かけ

2012年5月22日

Cloud Foundryにデプロイしてみる

プログラミングはおろか、ほとんどブログの更新もままなっていないので、申し訳なさついでに更新ってことで…。Cloud Foundryを触ってみようと思ったのでnode.jsプロジェクトのデプロイまでを簡単に紹介してみましょうかと。

Cloud Foundryは、AWSやHeroku、DotCloud、GAEといったアプリケーションプラットフォームとしてのPaaSで、VMwareが提供しています。特徴的な点としては、このPaaSがオープンソースとして提供されていることで、日本ではNTTや楽天が活用しているようです。

Cloud Foundryのオープンソース版はMicro Cloud Foundryと言われていて自分の所有するサーバーにインストールできたりと、面白そうなのですが、まずはCloud Foundryにプロジェクトをデプロイしてみてみることにします。デプロイできるのはJava、Ruby、もしくはnode.jsのようなので、node.jsアプリを作ってみようかと。

必要なのは、node.jsとnpmのインストールなので、それをまずは。

[cloud@localhost ~]$ git clone git://github.com/ry/node.git
remote: Total 50773 (delta 39944), reused 46510 (delta 36585)
Receiving objects: 100% (50773/50773), 39.79 MiB | 204 KiB/s, done.
Resolving deltas: 100% (39944/39944), done.
[cloud@localhost ~]$ cd node
[cloud@localhost node]$ ./configure --prefix=$HOME
Checking for program g++ or c++ : /usr/lib/ccache/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : /usr/lib/ccache/gcc
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : yes
Checking for library util : yes
Checking for library rt : yes
Checking for fdatasync(2) with c++ : yes
'configure' finished successfully (3.133s)
[cloud@localhost node]$ make && make install
[cloud@localhost node]$ curl http://npmjs.org/install.sh | sh

そしてvmcのインストール。環境にはすでにRubyとgemがインストールされているものとします。今回はrvmを使っているのでrvmから一般ユーザー環境にvmcをインストール。Cloud Foundryで紹介されている手順書ではこれから先のコマンドでrest-clientとmime-typesがインストールされていないというエラーが出てきたのでそれらも一緒にインストール。

$rvm gem install --user-install rest-client mime-types vmc

次に環境変数PATHにvmcがあるディレクトリを追加(bashだと.bash_profileを編集)。

PATH=$PATH:$HOME/.gem/ruby/1.9.1/bin

そしてPATHを再設定($ source .bash_profile を実行するなど)。

$ vmc target api.cloudfoundry.com
$ vmc login

で、Cloud FoundryのAPI接続先と認証情報(メールアドレスとパスワード)を設定。認証情報はCloud Foundryに登録時に送られてくるメールに記載されています。

$ mkdir node_js_test; cd node_js_test
$ vi app.js
$ vi package.json

上記コマンドでnode_js_testディレクトリ下にapp.jsとpackage.jsonを作成します。

(app.js)
var app=require('express').createServer();

app.get('/', function(req, res) {
 res.send('Hello from Cloud Foundry');
});

app.listen(process.env.VCAP_APP_PORT || 3000);

(package.json)
{
 "name": "genestream",
 "version": "0.0.1",
 "dependencies": {
   "express": ""
 }
}

vmc pushコマンドを使用して、Cloud Foundryにファイルをアップロードします。

$ vmc push --runtime=node06
Would you like to deploy from the current directory? [Yn]:
Application Name: genestream ←入力する
Detected a Node.js Application, is this correct? [Yn]:
Application Deployed URL [genestream.cloudfoundry.com]:
Memory reservation (128M, 256M, 512M, 1G, 2G) [64M]:
How many instances? [1]:
Create services to bind to 'genestream'? [yN]:
Would you like to save this configuration? [yN]:
Creating Application: OK
Uploading Application:
 Checking for available resources: OK
 Packing application: OK
 Uploading (1K): OK
Push Status: OK
Staging Application 'genestream': OK
Starting Application 'genestream': .
Error: Application [genestream] failed to start, logs information below.

====> /logs/stderr.log <====


node.js:201
       throw e; // process.nextTick error, or 'error' event on first tick
             ^
Error: Cannot find module 'express'
   at Function._resolveFilename (module.js:334:11)
   at Function._load (module.js:279:25)
   at Module.require (module.js:357:17)
   at require (module.js:368:17)
   at Object. (/var/vcap/data/dea/apps/genestream-0-6f122da30088f95d9dd7af30fd9aabb6/app/app.js:1:71)
   at Module._compile (module.js:432:26)
   at Object..js (module.js:450:10)
   at Module.load (module.js:351:31)
   at Function._load (module.js:310:12)
   at Array.0 (module.js:470:10)


Delete the application? [Yn]:

おや、どうやら起動に失敗した模様。npm install で依存しているパッケージをローカルにインストールすることが必要のようです。

$ npm install
express@2.5.9 ./node_modules/express
├── qs@0.4.2
├── mime@1.2.4
├── mkdirp@0.3.0
└── connect@1.8.7
$ vmc push --runtime=node06

今度はうまく起動できたっぽいです。

$ curl http://genestream.cloudfoundry.com/
Hello from Cloud Foundry

$ vmc apps

+-------------+----+---------+-----------------------------+----------+
| Application | #  | Health  | URLS                        | Services |
+-------------+----+---------+-----------------------------+----------+
| genestream  | 1  | RUNNING | genestream.cloudfoundry.com |          |
+-------------+----+---------+-----------------------------+----------+

稼働状態も確認OKです。

▲top

投稿者 ただ : 23:33 | トラックバック (0) カテゴリー ; プログラミングとか

2012年5月23日

Facebook PHP SDKのgetLoginStatusUrl()がおかしい

いや正確には、getLoginStatusUrl()で返ってくるURLにfile_get_content()とかでアクセスした結果がおかしいんですが。

Facebookでログインしているかどうかを調べるには、PHP SDKの場合getLoginStatusUrl()メソッドを使ってログイン状態を確認するためのURLを生成し、そこにアクセスするようにします。getLoginStatusUrl()は、ログインしていてセッションがある/ログインしているがセッションがない/ログインしていないという3つの状態にURLを割り当てて、生成されたURLにアクセスすると状態に合わせたURLを取得することができるというメソッドで、何をしてるかというとリダイレクト先のURLを取得することになるんですが…これがなぜかうまく動かないという現象に遭遇中。

$login_status = $facebook->getLoginStatusUrl();
$res = @file_get_contents($login_status);
error_log(print_r($res, true));

という感じでログイン状態を調べると、$resが"Application Error"になる。ログがこんな感じ。

==> /var/log/nginx/xxxxxxxx-default-www-0.error.log <==
2012/05/21 15:33:51 [error] 5973#0: *406 FastCGI sent in stderr: "Application Error" while reading response header from upstream, client: 10.79.37.178, server: xxxxxxxx-default-www-0, request: "GET /aaaaaaaa HTTP/1.1", upstream: "fastcgi://unix:/var/dotcloud/php5-fpm.sock:", host: "xxxxxxxx.dotcloud.com"

どういうことやねんこれ。バグレポートっぽいのも一応出されていた。

てので報告されていたにもかかわらず、「もっと情報くれ」というメッセージを突き付けられ一旦Closedにされていて、 でも同じような内容が報告され、こちらは対応中…。いつになったら直るのか。

getLoginUrl()で得られるURLにアクセスしてみた後どうなるかってのもやってみたけども。

error_log(print_r($facebook->getUser(), true));
$login_url = $facebook->getLoginUrl();
$res = @file_get_contents($login_url);
error_log(print_r($facebook->getUser(), true));

==> /var/log/nginx/xxxxxxxx-default-www-0.error.log <==
2012/05/21 15:33:51 [error] 5973#0: *406 FastCGI sent in stderr: "0
0" while reading response header from upstream, client: 10.79.37.178, server: xxxxxxxx-default-www-0, request: "GET /aaaaaaaa HTTP/1.1", upstream: "fastcgi://unix:/var/dotcloud/php5-fpm.sock:", host: "xxxxxxxx.dotcloud.com"

最初にアクセスするとgetUser()で0が返ってくる、そして1度画面からログインすると両方とも自分のユーザーIDが返ってくる。謎…。

▲top

投稿者 ただ : 22:40 | トラックバック (0) カテゴリー ; プログラミングとか

2012年5月29日

Evernote Devcup Meetup行ってみた

本日夜に楽天タワーで行われた、Evernote Devcup Meetupに行ってきまして。夕方までは食品衛生責任者の養成講座を受講して、その後品川まで。最近Evernoteを触り始めたばっかりで、そんなに使いこなしてないのに「グループディスカッション」とかアジェンダに書いてあって何すんねやろ大丈夫かいな、と思ってたけど。グループディスカッション、アイデアソンやった…想定の範囲内ではあったけど、アプリ開発のコンテストをするってのにこんなところでアイデアソンとかしてどうなんやろう、とは思った(事前説明とかなかったし)。

で、Meetupの中身やけども。Evernote APIは社内での開発で使うものと同等のものを外部に提供しているということ、そしてドキュメントの整備もこれからどんどん進めていくということのよう。また、EvernoteのiPhoneアプリを実際にリリースされている開発者の方をパネラーにしたパネルディスカッションや、UXについての講演があったりといい話が聞けた。特にUXについてはアプリ開発全般について言えることだし、自分が持つ軸を2つ以上持つ「複眼」という観念は重要やなぁと思った。忘れないようにはしてることではあるけど、やっぱり片一方を置いていきがちになるよね、と自戒。

Evernoteのアプリについては、主に入力と閲覧、そして検索が大きく分けて存在していて、今は入力のアプリが多いという感じ。これからは検索が重要になってくるのではないかという話もあった。特にEvernoteに入力されるデータはメタデータに近いので、検索でいかに効率よく目的のものを見つけられるかということが焦点になってくる。

検索の機能をいかに工夫できるかがアプリとしての独自性というか独創性の見せ所なのかな、ということを感じた。

アプリのUXとアイデアの極意を語る、Evernoteの開発者イベント開催(ref. PCOnline)

▲top

投稿者 ただ : 22:59 | トラックバック (0) カテゴリー ; お出かけ , プログラミングとか

2012年5月30日

食品衛生責任者養成講習会

食品衛生責任者の資格を取ってしもた。取った、というよりかは「買った」と言っても過言ではないのだが…。この資格があれば、とりあえずカフェやったり食品の移動販売やったりできるようになる。あと雇われ責任者とか。まぁ、この資格は前から興味がちょっとあったりもしたけど、女子大生が高齢者のために大学を辞めて食品の移動販売業を始めたっていう記事を見て、こういうことにも使えるのか、と知ったのが申し込んだきっかけかな。

調理師系の資格とか、農・薬・医学系の学部を出ると一緒についてくる資格ではあるんやけど、生命系ではあれど工学系の出である僕にはついてこなかった資格なので講習会を受けるしか取得する方法はなかったんよね。

わざわざ有休を取ってまで取りに行く資格か、と言われれば微妙な気はするけど…まぁ役に立ちそうかなと。講習会会場もそんなに遠いところでやってるわけでもないし、地区ごとで受講して修了しても全国共通の国家資格やし。

しかしまあ、この講習会のアナログなことアナログなこと。まず、講習会の申し込みはFAX(受信できないといけないからコンビニからの送信は不可)を使ってやるか窓口に直接申し込みに行く(土日は保健所の窓口やってない)。ここいきなりハードル高いって。せめてWebから申し込みできるようにせんとあかんやろ。

そんでもって受講当日。通された結婚式式場はだいたい受講者数が200人ぐらいでほぼ満員状態。机の椅子ぎっしりに並んでるし全然左右に余裕がないからPC広げたりできない(内職できんやん…)。そして会場にはディスプレイ等のIT機器一切なし。前の演壇に講師の方が立って、本を広げて読み上げ始めたのに驚愕したというかちょっと笑ってもた。パワポすらなしなんて!

手元にある本を広げて追いかけるわけやけど、説明にあった記録の取り方とか、テンプレート類が本に書いてあって、「えーこれ紙ベースでやるのかおい、まさかな…」と思っているのだが。実際現場の人はどうやってるんやろうな…確かバイトしてた某寿司チェーンは紙に記録してたような気もしないでもないけど、実際電子的に記録してるところって大きなところと工場ぐらいなもんなんやろうかな…。

ともあれ、ようやく資格取った。ソフト開発とは関係ないけど。

▲top

投稿者 ただ : 22:44 | トラックバック (0) カテゴリー ; mein Erbe

MIB3

MIB3、早速観てきた。けど、神戸のときと違って徒歩圏内に映画館がない上に通勤経路上にもないからちょっと回り道せなあかんのよね…。今日行ったところが一番行きやすそうな気はした。始まる前にご飯食べれるし、とりあえず平日のレイトショーならほぼ貸切。

内容自体は、僕が好きなタイムパラドックス系の話やったんで十分楽しめた。終わり方もよかったし。すべての可能性が見えるって、シュタゲの時間線っぽい話でもあるし、アンドロメダのトランスっぽいところもある。

▲top

投稿者 ただ : 23:37 | トラックバック (0) カテゴリー ; お出かけ

2012/04 | 2012/05 | 2012/06