Archives for 11月2011

ノマド旅 – 小湊鐵道から養老渓谷、クワクボリョウタ展まで

「世間的には休日」「だけど仕事はある」「でもなんかリフレッシュしたい」という人は、ノマド旅をすることをおすすめする。

ノマド旅とは、ノマドワークをしながら旅をすることで、レジャーとワークを同時に楽しむことを可能にする。意外な出会いもあるかもしれない。

そこまでして仕事しなくていいじゃないかという意見はもちろんある。

が、現実にはやらなければならないことがあり、なおかつどこかにも行きたいのである。逃げつつも戦うみたいなことでもある。

ということで、千葉駅にやってきた。朝はそれなりに寝坊したので11時近い。

持ってきたのは、MacBookAir 11inch、モバイルバッテリー、WiMAX接続可能なAndroid程度。やろうとしているのは、執筆関係の作業と開発関係の作業。あと資料作り。

IMG 2953

千葉駅は、東京からは総武線で一本。その気になれば、すぐの場所である。

IMG 2955

千葉から内房線に乗る。

内房線。なんという旅情豊かな響きだろう。内房線と外房線をぐるりと一周すればいろいろな考え事ができそうだ。

内房線に乗って5駅くらいのところに「五井」という駅がある。ここはなんのへんてつもない駅なのだが、ここから小湊鐵道というローカル線が出ており、房総半島を横断することが出来る。

ちなみに小湊鐵道は、千葉からすぐのところにあるにしてはえらいローカル線であり、例えばドラマの田舎のシーンもここで撮影することもあると聞く。

IMG 2961

ホームに行くと、待っていたのは電車一両。しかもものすごい旧式。

IMG 2958

五井駅の時刻上はフォントなどが味がある。無人駅がほとんどで、当然Suicaなんてもんは使えない。

電車に乗ると、すぐに田舎感満載な風景に遭遇した。

IMG 2994

この古ぼけた味のある駅票は、JRには決して作れないだろう。

作業をしつつ、たまに窓の外の車窓で癒されながら、上総牛久へとやってきた。ここで一旦乗り換えをする。というのも乗ってきた列車はここが終点だからだ。

切符は一日フリー切符というのを買っているので、途中下車が自由だ。ちなみに次の発車まで1時間近くある。

IMG 2970

作業をし、きりのいいところで、やめてお茶を飲んでまったりとする。

時間の流れが限りなくゆったりしてる。

ぽかぽかした陽気のなかうつらうつらする。駅は昔ながらのスタイルで自動改札なんてもんはない。

IMG 2971

この木の柱の味わいとか出そうと思ってだせないだろう。

IMG 2976

しばらくして接続の電車が到着し、乗る。ここまで行き先を決めていなかったのだが、養老渓谷というところでソバを食べようと思い立った。

IMG 2979

ということで到着。

電車内で、かなりの作業が進んだ。

IMG 2978

ここの駅は上総牛久以降初の有人駅で、観光地だ。

温泉地でもある。日帰り温泉に行ったりできるし、何より駅構内に足湯があって、乗客は無料で入れる。

千葉からすぐな場所なのに、このひなびた感じ!

IMG 2982

駅前で山菜ソバを食う。

IMG 2981

この山菜ソバ、普通のとちがって、でかい山菜がそのままはいっている。

例えばキクラゲとか15cmくらいある。

ここが目的地なので、折り返し帰る。

夕方までには家に着きたいからだ。

ただし、次の電車まで1時間以上ある。周辺を散策しよう。

IMG 2983

養老渓谷というだけあって、ハイキングコースなどが充実している。

駅からすぐのところに渓谷ぽいところもある。とりあえず自然が一杯でなごむ。石灰質の地層と紅葉が綺麗だったのでパチリ。

IMG 2993

しばらく歩くと視界が開けて、渓谷が見渡せる橋に出た。

IMG 2987

橋のたもとでは、こんな看板が。

IMG 2986

なんと、アーティストクワクボリョウタ氏の作品が展示されている最中だという。

思いがけず、入ってみる。

IMG 2988

古民家を再生した系のギャラリーで、中では光と影を活かした作品が展示されていた。

作品を堪能した後、元きた道を戻ると、更に高いところに橋がかかっている。

あそこへ行ってみよう。

IMG 2985

たどりつくと、ほとんど人はいなくて、自然ばかりだった。

IMG 2991

紅葉がいいかんじの落ち葉があったのでパチリ。

IMG 2990

さっきの橋がすごく小さく見える。

IMG 2992

この後、待合室にて最終作業を行いつつ、乗るべき電車に乗り、無事千葉から自宅へと帰宅。

昼に出て夕方に着いたのに、なんだかえらい遠くまで行ってきたような、そんな感覚。

養老渓谷は、ネジ式で有名なつげ義春氏が隠遁を望んだ地だという。

ちょっとぶらりどこかに行った気になりたい人に、小湊鐵道はおすすめ。

Read More

NetBeansでPlay Frameworkを使うときのnetbeansifyのコツ

NetBeansでPlay Frameworkを使うとき、netbeansifyを使う(よね?)。

$ play netbeansify
~        _            _
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/  
~
~ play! 1.2.3, http://www.playframework.org
~ framework ID is local
~
~ OK, the application is ready for netbeans
~ Just open /Users/harakazuhiro/gitrepo/vaqumplay as a netbeans project
~
~ Use netbeansify again when you want to update netbeans configuration files, then close and open you project again.
~

使わず、コーディングをしてもいいけど、netbeansifyコマンドを使うと、追加で入れたモジュールのなどもインポートされるため、補完やエラーチェックなどが設定無しに行う事が出来る。

なので、定期的にnetbeansifyコマンドを使って、プロジェクトをリフレッシュするとよい。

ただし、たまにモジュール類を読み込めてないケースが起きる。

そういうときは、PLAY_INSTALL_PATH/modules/モジュール名/appフォルダをNetBeansのプロパティからクラスパスとして設定してあげると、無事認識されるようになる。

PLAY_APPLICATION_PATH/lib以下に外部モジュール(.jar)を入れた際には、NetBeansのプロパティからlib以下をクラスパスとして同様に登録すると補完などがそのまま使えるようになるが、ここにクラスパスを置いて動作するのはjarファイルのみ。なので、ネイティブなモジュールをここに含めても、Playを動作させると動かなかったりする。

なので、「play run」などでも動作させるには、シェルでも別途クラスパスを通す必要がある。あと、lib以外にjarファイルを置いてNetBeansでクラスパスを通した場合も、NetBeansの中の話だけだから別途設定する必要がある点に注意。

あと、netbeansifyコマンドでNetBeansプロジェクトで開くと、一部のディレクトリしか表示されない状態になる。ここに任意のディレクトリを含めたい場合は、PLAY_APPLICATION_PATH/nbproject/project.xmlのsource-folderノードにこんな風に追加するとよい。

<source-folder style="tree"><label>フォルダ名</label><location>フォルダの場所</location></source-folder>

いや、まあPlayに限らない話なんだけど、Playが便利にNetBeans対応しちゃうものだからものぐさになるわけで。

Read More

PlayFrameworkでGETクエリーつきのURLを生成するなど

CakePHPだと「URL/?mode=view」みたいなURLを生成するには、

$url = Router::url(array(
    'plugin' => 'hoge_plugin',
    'controller' => 'hoges',
    'action' => 'view',
    $id,
    '?' => array('mode' => 'view'),
));

みたいな感じで、「?」をキーに「’?’ => array(‘mode’ => ‘view’)」と連想配列で渡してあげるが、PlayFrameworkだと、アクションへの名前付き引数という形で渡す事ができる。

これはこれで、非常にわかりやすい。「?mode=view」の部分が「’query’ => array(‘mode’ => ‘view’)」とかみたいな書き方にならなくてよかったと思う。URLの階層構造そのまんまな感じで直感的だ。多少(?)冗長だけど。

このあとのPlayFrameworkと比較するためにヘルパーを使わず埋め込み変数で書くと

<a href="<?php echo $url ?>">hogehoge</a>

こんな感じで使うことになる。

PlayFrameworkではどうかというと、

HogesController.view(mode:'view')

みたいな書き方でテンプレート側で生成することが出来、

<a href="@{HogesController.view(mode:'view')}">hogehoge</a>

こんな風に使う。

これをコントローラー側では、

public static void view(String mode) {
    // 処理
}

といった具合で呼び出せる。引数にして、引数にもらう。実にシンプルだ。

例えば、

<a href="@{HogesController.view(id:1)}">hogehoge</a>

みたいなGETクエリーがあった場合は、

public static void view(Integer id) {
    // 処理
}

としても取得できるし、

public static void view(Long id) {
    // 処理
}

としても取得できる点がナイス。

ちなみに、この引数形式はGETでもPOSTでも受け取る事ができるが、

POST    /hoges/view     Hoges.view

とroutesで指定しておくことで、POSTでのみ受け付けることが可能になる。

では。

Read More