2014年11月14日金曜日

proxygenビルド

今話題のproxygenをビルドしてみました。

ちなみに、proxygenってのは、たとえばSourceForgeの記事によれば
米Facebookは11月5日、C++向けのHTTPライブラリ「Proxygen」を発表した。サーバーやクライアント向けコードが含まれており、HTTPを利用したC++プログラムのやりとりを改善し、HTTPを利用するアプリケーションの構築を容易にするという。
Proxygenは、HTTPライブラリとシンプルなWebサーバーを組み合わせたソフトウェアフレームワークで、Facebook社内においてHTTPサーバーやプロキシ、クライアントなどを構築する際に利用されている。Proxygenの公開の目的として、高性能なHTTPサービスの開発と実装を支援するとしている。サーバーとクライアントコードを含み、既存のアプリケーションと容易に統合できる高性能のHTTPフレームワークを目指しているという。
という、素敵なサムシング なわけです。GitHubで公開されているソースコードをざっと見たところ、綺麗な構造で、期待が高まります。

で、ビルドです。基本的にhttps://github.com/facebook/proxygenに書いてあるのに従えばOK。ubuntu環境を用意するところから始めました。"Support for Mac OSX is incomplete."とか書いてありますけど、依存するfollyやらfbthriftやらをどうやって用意するんだ、という問題があるので、まあ、現時点ではちと難しいんではないでしょうか(homebrewでfolly入れてみなよ、みたいなことがGoogle Groupの方で書かれていましたが…)。

1. OSインストール編

1-1. まず、VMware Fusion 6でインスタンスを作りました。ubuntu 64ビット用テンプレートを使って 、ディスク20GB、メモリ2560MB(2.5GB)、1 CPU(古いiMacなもんで)でセットアップ。なお、メモリは最低2GB必要とのこと。
1-2. http://www.ubuntu.com/download/desktop からubuntu 14.04.01 desktopのisoファイルをダウンロード。14.04.xxだったら何でもいいんじゃないでしょうかね。
1-3. ダウンロードしてきたisoファイルをVMゲストの光学ドライブに接続して起動。言われるがままにインストール。OSのアップデート、再起動など勧められるがままに従う。

2. ubuntu上での準備編

$ sudo apt-get install git
$ mkdir git && cd git
$ git clone https://github.com/facebook/proxygen.git

3. ライブラリビルド編

$ cd proxygen
$ export SRC_HEAD=`pwd`   ##これ、後で使う。
$ cd proxygen
$ ./deps.sh

4. サンプルサーバビルド編

$ cd httpserver/samples/echo
$ g++ -std=c++11 -o my_echo EchoServer.cpp EchoHandler.cpp -lproxygenhttpserver -lfolly -lglog -lgflags -pthread -I$SRC_HEAD -I$SRC_HEAD/proxygen/fbthrift/thrift/folly -I$SRC_HEAD/proxygen/fbthrift -L$SRC_HEAD/proxygen/httpserver/.libs -L$SRC_HEAD/proxygen/fbthrift/thrift/folly/folly/.libs

## https://github.com/facebook/proxygenに書いてあるまんま(g++ -std=c++11 -o my_echo EchoServer.cpp EchoHandler.cpp -lproxygenhttpserver -lfolly -lglog -lgflags -pthread)だとエラーが出るので、-Iと-Lを指定。

5. サンプルサーバ動作確認編

$ sudo apt-get install curl
$ curl -v http://localhost:11000/
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 11000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:11000
> Accept: */*
> 
< HTTP/1.1 200 OK
< Request-Number: 1
< Date: Fri, 14 Nov 2014 13:13:31 GMT
< Connection: keep-alive
< Content-Length: 0
< 
* Connection #0 to host localhost left intact

以上。何も戸惑う箇所はありません。ライブラリのビルドに時間がかかるものの、手間もかかりません。

そして、気になるHTTP/2。
Proxygen: Facebook's C++ HTTP LibrariesThis project comprises the core C++ HTTP abstractions used at Facebook. Internally, it is used as the basis for building many HTTP servers, proxies, and clients. This release focuses on the common HTTP abstractions and our simple HTTPServer framework. Future releases will provide simple client APIs as well. The framework supports HTTP/1.1, SPDY/3, and SPDY/3.1. HTTP/2 support is in progress. The goal is to provide a simple, performant, and modern C++ HTTP library.
FacebookがHTTP/2対応版を出してくるのを 待つか(それって、でも、来年2月とかになるのかな)、独自にSPDY用のコードをごにょごにょしてHTTP/2対応させてみるか…。はてさて。

2014年11月8日土曜日

SKProductsRequestでハマった。抜け出したけど。

前回に引き続き、iOSアプリの開発ネタです。初めてっていうのは、いろいろな問題にぶち当たりますな。

原因不明でアプリがクラッシュすることが何度かあり、どうやら、アプリ内課金の関係で、Appleのサーバに問い合わせに行っている最中に、「遅い!もういいよ!」みたいな感じで画面遷移(具体的には、ナビゲーションの「戻る」を押す)をしてしまうと、ごく稀にこの問題が発生する、ということまで絞り込むことができた。
ごく稀にというのが、まあ、厄介なところ。

ちなみに、アプリがクラッシュした時のXcode(ちなみにバージョンは6.1)の表示はこんな感じ。

コードがこれ↓


スタックがこれ↓


これだけだと、さっぱり、意味がわからない。

"Enqueued from com.apple.root.default-qos"と"EXC_BAD_ACCESS"とかでググっても、なかなかこれというのが見つからないし、なんと言っても、"Enqueued from com.apple.root.default-qos"と"SKProductsRequest"の組み合わせで検索結果がゼロというのに参った。
SKProductsRequestのstartメソッド呼ばない限りクラッシュしないので、この関係だってことは間違い無いと思うんだけど…。

そして、結局、自分で、何が原因なのかわかりました。ので、情報共有です。

こんなコードを書いていたんですよ。どこかで見たコードのコピペですけど。
- (void)startRequest
{
    SKProductsRequest* productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifiers]];
    productRequest.delegate = self;
    [productRequest start];
}
これだと、サーバからのレスポンスを受け取った時に、selfがdeallocateされてしまった後だと、まずいことになるんですよね。productRequestの後始末が考慮されていない。

というわけで、僕が採った解決法はこれ。
まず、ヘッダファイルでこんな宣言。
@property (nonatomic, strong) SKProductsRequest *productRequest;
そして、本体コードでは、
- (void)startRequest
{
    _productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifiers]];
    _productRequest.delegate = self;
    [_productRequest start];
}


これに加えて、viewWillDisappearで、delegateを無効化してやる処理を加えました。
- (void)viewWillDisappear:(BOOL)animated { _productRequest.delegate = nil; [[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; }


そしたら、(今のところ?)ばっちり、っぽいです。なんか自信なさげな書き方で恐縮ですが。いかんせん、稀にしか起こらない問題なので断言が難しいのです。

iOSアプリでの各国語対応。なるほど、そうだったのか。

久しぶりにブログ書きます。
ちなみに、会社で、仕事の一環として、時々英語でブログ書かされたりしてるんですが、なんていうか、仕事で書くのって気が重いですね。ま、それはさておき。

実は、内緒にしていましたが、ここ最近、iOSアプリを作ってたんです。初めての。
それで、一応、大した手間じゃないので、各国語対応させてみよう、と、ということで、ベース言語(実際は英語で記述)、それに加えて日本語用の文字列ファイルを用意しました。

今まで、「iPhoneの使用言語」として日本語と英語を設定してそれぞれでの表示を試してみては、ふむふむ、うまくいっておるわい、と思っていたのですが、先ほど、iPhoneの使用言語をイタリア語に設定してみると、期待に反してなんと日本語の文字列が表示されてしまうではないですか。
うーむ、何か間違った設定をしているのだろうかと軽くググってみたけれども、うまく期待する答えにたどり着けない。

結局、自分で原因がわかって全て丸く収まりました。
こういうことです。↓

設定言語を、英語⇒日本語⇒イタリア語、という順で変更すると、「使用する言語の優先順位」(設定アプリの「一般>言語と地域」の中にある)が

  1. イタリア語
  2. 日本語
  3. 英語

となってしまうんですね。自動で。

この状況で、アプリがイタリア語にローカライズされていないからアプリのベース言語(つまり英語)が選ばれるかと予想していたのですが、そうではなく、英語よりも高い優先度で日本語を使う設定に(iOSの判断によって)なっているので、日本語が表示される、と。そういうことでした。
つまり、「iPhoneの使用言語」よりも「使用する言語の優先順位」のほうが意味がある、と。

ここで、仮に、日本語(と英語の両方)が「使用する言語の優先順位」に含まれていない場合、ベース言語(つまり英語)が表示されるんでしょうね。
試してみたいのですが、「使用する言語の優先順位」は手動で編集できないので、残念です。

ところで15年ぐらい前はローカライズを"l10n"、国際化を"i18n"とか表記してたんですけど、これって今の若い人にも通じるんでしょうかね。逆に、今では別の表記をしているなら、それを知りたい。
ちなみに由来は
"localization"⇒"lxxxxxxxxxxn"(LとNの間に10文字)⇒"l10n"
"internationalization"⇒"ixxxxxxxxxxxxxxxxxxn"(IとNの間に18文字)⇒"i18n"
なので、表記が"l10n"や"i18n"であっても、「えるじゅーえぬ」「あいじゅーはちえぬ」などと読むことはなく、よみがなとしてはやはり「ろーからいぜーしょん」「いんたーなしょならいぜーしょん」でした。少なくとも僕の周辺では。

2014年3月12日水曜日

VMwareが重すぎるのでなんとかしたメモ


これまでVMware Fusion 6 + Windows 8の上で動作させていたMeta Trader 4が、(Mavericksインストール以降)もう、とにかく遅すぎて苦痛だったのでなんとかしました。同じお悩みを抱えた方の参考になれば、と思い情報を共有します。

といっても、先人により提供された有用な情報がweb上のあちこちにありますので、付加情報を中心に。

まず、Meta Trader 4をVMwareなしで(しかも無料で)マック上で動かす方法はこれ。

  1. 最新のXQuartzをインストール。僕がインストールしたのはv2.7.5。超簡単。説明不要。
  2. 最新のPlayOnMacをインストール。僕がインストールしたのはv4.2.2。超簡単。説明不要。
  3. MT4をインストール。Windowsでインストールしたことがあれば迷うこと無し。インストール後に言語設定をEnglishにしておくのが吉。
  4. THVをインストール。あ、必要なければインストール不要ですけど。MT4のディストリビューションによっては、インストールされたファイルを再配置する必要あり。その場合、ターミナルでゴニョゴニョする必要があるので、ターミナルの扱いになれていない人には勧められません。 
すみません。簡単すぎて、全然説明する必要なかった。

で、とりあえずうまく動作するようになった後の話。…ここから先が少しは新鮮な情報かも。

最初にインストールした(マックの)アカウントとは別のアカウントでもMT4 on PlayOnMacを使いたい場合にどうするか。つまり、同じMT4環境を妻にも使わせたいが、自分のマックのアカウントのパスワードを教えたくはない、というような場合。

こういう場合、THVをインストールしたり、いろいろ独自の設定を加えて使いやすくした環境を、まるごとコピーしてしまえばよいのです。

まず、PlayOnMac自体を、インストールしたユーザ以外のアカウントからも使えるようにする。他のバージョンではどうなっているか知らないけれど、v4.2.2の場合は、これをしないとPlayOnMacが起動に失敗する。

$ chmod -R a+rx /Applications/PlayOnMac.app/Contents/Frameworks/Python.framework

僕の場合これだけでうまくいったけど、それでもうまく行かない場合は、コマンドラインからPlayOnMacを起動(↓)してやると、エラーメッセージなんかが読めて問題解決が期待できる。かも。

$ cd /Applications/PlayOnMac.app/Contents/MacOS
$ ./playonmac



で、いよいよ、MT4環境を他のアカウント用にもコピーする方法。
ここでは、自分のアカウントがuserA、追加するアカウントがuserBと仮定。userBは制限付きアカウントでOK。
ちなみに、それぞれのマックアカウントでMT4を起動して同時に同じMT4アカウントを使用しても問題なさそうです(責任はとれませんが)。

userAアカウントでは全てのセットアップが完了していて、PlayOnMacのMT4のための仮想ドライブのパスは

/Users/userA/Library/PlayOnMac/wineprefix/vDriveForMT4

であると仮定して話を進めます。

別のアカウントでログインして、PlayOnMacを起動してMT4をインストールする。仮想ドライブのパスは

/Users/userB/Library/PlayOnMac/wineprefix/vDriveForMT4

にした、と仮定。

そこまで済んだら、それぞれのMT4 on PlayOnMacを終了させておく。

ここから先は、ターミナルでの操作。繰り返しますが、ターミナルでの操作に自信のない人にはおすすめしません。というか、僕は責任とれないので、全て自己責任でどうぞ。

あ、そうそう、ここではFXCMのMT4を使っているので、他社の提供するMT4の場合はパスおよびディレクトリ名を実際のものに置き換えて考える必要があるでしょうね、もちろん。

PlayOnMacの仮想ドライブ内のMT4フォルダを/tmpにコピーしてパーミションを変更。

userA $ cd ~
userA $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userA $ cp -r "FXCM MetaTrader 4" /tmp/
userA $ chmod -R a+rx "/tmp/FXCM MetaTrader 4"


userBのPlayOnMacの仮想ドライブ内のMT4フォルダをバックアップ(名前変更)した上で、/tmp以下からMT4ディレクトリをコピーしてくる。

userB $ cd ~
userB $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userB $ mv "FXCM MetaTrader 4" "_FXCM MetaTrader 4_"
userB $ cp -r "/tmp/FXCM MetaTrader 4" ./


ここまでできたら起動確認。

うまくいったら、バックアップしておいたフォルダを削除

userA $ rm -rf "/tmp/FXCM MetaTrader 4"
userB $ cd ~

userB $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userB $ rm -rf "_FXCM MetaTrader 4_"


ところで、我が家では、MT4をMacBookAirで動作させておき、それをiMac(ちょっと古くて性能はへぼいが画面は大きくて快適)からリモート操作する、という運用をしている。初代アルミiMacでOSX Mavericks + VMware Fusion 6 + Windows 8 + MT4 + THVは動作が重すぎて、どうしようもなくなってしまったのだ。

ついでなので、この運用についても情報共有を。

Apple Remote Desktopという、素敵な、しかし現時点で7800円もする、Apple謹製のソフトがあるわけだけど…。高いよ!

というわけで、VNCという枯れた技術を使うことにします。

MacBookAir側でVNCサーバの設定:「システム環境設定>共有」で「リモートマネジメント」にチェックを入れ、「コンピュータ設定…」内のチェックボックスを3つともチェックし、パスワードを設定しておく。アクセスを許可するユーザを限定するのが、まあ、普通はよいでしょう。

iMac側でVNCクライアントの設定:Chicken ( http://sourceforge.net/projects/chicken/ )をインストールする。設定は難しくないのでそれ以上は省略。ちなみに、僕はここ数年JollysFastVNC (Home edition)という有償VNCクライアントを使っていたのだけれど、JollysFastではOSXの提供するVNCには接続ができなかった。どういうわけか。

以上です。説明上、MacBookAirだiMacだと書いていますが、機種は関係ないです。Mavericks(あるいは最近のOSX)が入ったマック同士が同じサブネットにつながっていれば同じことができるはず。

2013年10月2日水曜日

Scratch 2.0 on Surface RT

これまでにも何度か書いたことがあるけれど、MITメディアラボのScratchというプログラミング言語(開発/実行環境)が素晴らしい。以前も、うちの娘(現在、小1)に、Scratchで遊ばせたことがあるのだけれど、それなりに楽しんでいたようだ。その時はMacBook Airかなんかで、マウス使って操作してた。

ところで、我が家にはどういうわけかSurface RTがある。マイクロソフトのタブレットだ。超お手頃価格で入手する方法があったとか。そろそろ新しいモデルも出るらしいから、また安く手に入る機会があるかも。


しかし、我が家におけるこのSurface RTの主な使い道というのが、「YouTubeを見る」「ネットでニュースを見る」以外にない、という事態になっており、これはなんだかもったいない、と思っていたところ、ひらめいた。そうだ、これにScratchをインストールすればいいじゃないか、と。新幹線の中とか飛行機の中とかで重宝しそうだ。

ところが、その後判明したのだけれど、Surface RTでは、ノーマルWindows向けのScratch 1.4(ネイティブアプリ)を動作させることができない。プロセッサが違うので。
しかし、ありがたいことに、Webブラウザ経由でScratch 2.0(Flashアプリ)を動作させることができると判明。後述「わくわくプログラミング」の作者の方から、twitterで教えていただいた。素晴らしい。
iPadにはできない芸当ですよ(Flash動かないから)、マイクロソフトさん、もっとプッシュしたらどうでしょう?

というわけで、娘(小1)にScratch 2.0で遊べる環境を整えることにした。紆余曲折あったが、現時点での最新状態を元に手法を共有したい。

0. わくわくプログラミング

素晴らしい本だ。まずはこれを入手して、娘の机の上にさりげなく置いておく。我々の世代の幼少期における「こんにちはマイコン」がそうであったように、実際にコンピュータを前にしていない時にも繰り返して読むような書物は絶対にあった方がいい。

1. Scratch遊びに関する認識について
娘は「ゲームに没頭するとバカになる」という認識を持っているようだったので(それはそれで素晴らしい考えだ)、「これからScratchでやろうとしていることは、むしろ勉強である」と言って聞かせた。

2. Windowsアカウントを新設
- 当然、アカウント種別は安全な子供用アカウント。
- メールアドレスを持たないローカルアカウントにした。メールはまだ不要。
- パスワードなしでログインできるようにした。(パスワードの設定欄を空欄にする)
参考URL:
http://windows.microsoft.com/ja-jp/windows-8/set-up-kids-accounts

3. Windowsの日本語入力モードを「かな入力」に
「ローマ字入力」は小1には厳しいので「かな入力」できるように設定を変更。
http://support.microsoft.com/kb/2771145/ja

4. IE10の「ダブルタップでズーム」機能を無効化
Scratchではアイコンやらブロックやらをクリック(タップ)する頻度が非常に高いわけだが、Scratch 2.0を動かしているIE10の「ダブルタップでズーム」機能のせいで、変なタイミングで画面が拡大したり縮小したりして、思い通りの操作ができない。これはストレスがたまる。マウスを使う、というワークアラウンドもあるのだろうけれど、それだとデバイスとしてSurfaceを利用する意義がない。
というわけで、「ダブルタップでズーム」機能を無効化する方法がここに書いてある。
http://answers.microsoft.com/ja-jp/ie/forum/ie10-windows_8/%E3%83%80%E3%83%96%E3%83%AB%E3%82%BF%E3%83%83/b7416a18-8df3-41fa-ae2c-039c0eb45634?msgId=ac957c55-d9d5-44d3-876c-826e33e1623a
最初、Modern UI(メトロUI)の「タイル」から開くIE10(Windowsストアアプリ版)を使用中に、チャーム(画面右端からのスワイプで出てくるメニュー)からの「インターネットプロパティ」で設定を変更しようとしたのだが、設定できる項目がほとんどなく、この方法では無理だということが判明。
「タイル」から「デスクトップ」を開き、デスクトップ表示の「タスクバー」(画面左下)からIE10(デスクトップ版)を起動する。そして、IE10のウィンドウの右上にある設定アイコンをクリックすると、豊富な設定項目が現れるので、ここからCSSの設定を行う。ここでの設定は「タイル」から直接選択されているIE(フルスクリーン)にも適用される。
Windows8の用語(チャームやら何やら)はこのサイトを参考にした。
http://snow-white.cocolog-nifty.com/first/2012/04/windows-8-8a86.html

5. スクリプトエリア
スクリプトエリア内でブロックを選択したり、ブロックの文字入力エリアを選択するのが、タッチパネル&指先では難しかった。しかし、これは、スクリプトエリア右下のズーム機能を使えば解決できる。これも、わくわくプログラミング」の作者の方からアドバイスいただいた。ありがたや。

6. タッチキーボード(未解決)
Scratch 2.0(というかFlashアプリ)で文字入力を行いたいときに、文字入力欄を選択しても、タッチキーボード(ソフトウェアキーボード)が自動では出てきてくれない。どうやらこれは既知のバグらしい。
今のところ、ハードウェアキーボード(Touch Cover)を使っているのだけれど、これだと、膝の上ではあまりにも使いづらい。とりあえず、タッチキーボードを表示させる方法(その都度、設定チャームから階層を辿る必要あり。めんどくさい…)を教えなければならないだろう。
キーボードを表示させるキーボードショートカットとか設定できないのかな、とか思ったんだけど、考えてみればそもそもキーボードが無い状態なのでキーボードショートカットを設定できるとしても意味無いな。
うまい方法がないか考え中。

とりえあず以上。またなにかあれば更新します。

2013年7月12日金曜日

レンタルするモータースポーツ入門

こないだ「所有しないクルマ道楽、バイク道楽」と題して書いたけれど、他にもすごいものを発見。

それは、86レーシングカーレンタル走行システム86 Racer's

破損時の負担上限額を10万円に抑える保険(的なもの)も込みで、20分走行枠が44,750円というレンタル料金。期間限定のキャンペーンで120分が同じく166,500円。これに加えて、サーキットの走行料金(20分だと4,200円)がかかる。場所は富士スピードウェイ。

この価格、高いようで安いと思う。都内の月極駐車場の駐車料金が年間で30〜90万円ぐらい(当然もっと高いところもある)なことを考えると、たまにしかサーキット通い出来ない都内在住者が、サーキット用のセカンドカーを所有して、かつサーキットreadyな状態にメンテナンスするってのは、相当に贅沢な趣味であると言わざるを得ない。
クルマの購入費用と保管/維持費をレンタル/走行料金にそのまま投入できたら、けっこう頻繁に、かつ、たっぷりとサーキットを楽しめるはず。しかもベストコンディションの車両で。しかも、事故後の修理費用を気にせずに。

素晴らしい。

 * * *

あ、そうそう、こないだ書いたBKライディングスクール、参加してきたけどすごくよかった。

なんといっても、転倒しても大丈夫(クローズドサーキットだから/革つなぎを着ているから/バイクが壊れても修してくれるから)という安心感の元で、大胆にいろいろなことにチャレンジできるのがいい。生憎の天気で、膝スリを体験することは出来なかったのだけれど、すごく上達したと思う。写真を見るとまだまだひどいけど。

こないだ、久しぶりに会った大学時代の仲間が、やはり以前にこのBKRSに参加したことがあるとのことで、次回は一緒に行こう、と話が弾んだ。また秋ぐらいに参加したいので、それまでに、とにかく脚をもっと鍛えないといけない。これから暑い季節だけど頑張ろう。

それから、86アカデミーのコントロールテクニックプログラムの上級コースが受講者を募集し始めたので、申し込まねば。一応、上級コースの申し込み資格は有しているので。

2013年6月17日月曜日

所有しないクルマ道楽、バイク道楽

子育てが忙しいと、なかなか趣味に没頭というわけにはいかない。
ましてや、そもそもお金にも時間にもゆとりがないとなると、なおさらだ。

というわけで、趣味の類いは以下のように、ほぼ凍結されていた。
  • クルマ:仮に2シータースポーツを所有するとしても(家族をほったらかして)乗る時間がない。そもそも2台持ちは現実的でない。
  • バイク:所有していても乗る時間、メンテする時間がない。というわけで、まだしばらくは持てない。バイク自体のレンタルは可能だが、通常はレンタル車両でのサーキット走行が禁止されている。慣れないバイクで一般道(箱根ターンパイクとか)は、スリル有りすぎてちょっと…。
  • ギター:家で弾くことは出来る。が、スタジオ通い/バンド練習/ライブは難しい。
  • 運動系:朝5時に早起きすればジョギングは可能。ただし、早寝が許可されない(妻の話を聞く、家事をこなす、など、夜は忙しい)し、朝食の準備が僕の担当なので、実際は結構難しい。平日の定期的な水泳は当然無理。週末にプールに行ってもずっと子供の相手なので、自分は泳げない。
いや、これは愚痴ではない。現状の棚卸しだ。

今回、これらの凍結されていた趣味のうち、モータースポーツ系のものについての素晴らしい解を紹介したい。そう、最近(半年ぐらい前になるが)、気がついたのだが、現代の日本には、モータースポーツ系の素晴らしいサービスがあるのだ。

まずは、4輪編。

J-Wave(FMラジオ局)の有名DJでもあるピストン西沢氏が講師を勤めるこのアカデミーでは、トヨタのメガウェブ敷地内のスペースで、トヨタ86を使って、車体のコントロール方法を学ぶことができる。
考えてもみて欲しい。車の購入費、タイヤ代を捻出できたとして、アクセルターンなどを(誰かに迷惑をかけることもなく、こちらが嫌な思いをすることもなく)練習できる場所を、どうやって探せばよいのだろう? ジムカーナ練習会など、サーキット利用が必然となってくる。そんな時間を「頻繁に」確保することが出来るだろうか? クルマを手に入れたけど、サーキットには半年に1回しか行けません、では、クルマがもったいなすぎる。
翻って、このアカデミーを見てみると、以下のような美点が見つかる。
  • 都内の便利なロケーション(僕の場合は自転車で20分ほど)
  • 平日の夜に行われているので、週末を犠牲にする必要なし
  • スタッフが水を撒いていてくれるので、滑らせやすい(タイヤの節約にもなる)
  • 車両代、タイヤ代を考えると、個人では到達不可能なほど安価
  • プロの講師陣から指導を受けられる
  • ピストン西沢さんのトークがおもしろい(→待ち時間が気にならない)
僕はこれまでに2回参加したのだけれど、現在施設改装中なので、8月のリニューアルオープンをワクワクしながら待っている。

fun2drive
これは、クローズドサーキットではないものの、欲求を満たしてくれるナイスサービス。
ユーノスロードスター(NA8C、5MT)が3時間で4980円とのこと。これはイイ!
箱根/御殿場に行く口実を探さねば。

おもしろレンタカースポーツ
fun2driveと似ているけれど、こちらはレンタル場所が千葉の野田。

つづいては、2輪編。

BKライディングスクール(BKRS)
車両のレンタル付きで、サーキットライディングを指導してくれるスクール。全員レンタルバイクでの受講、かつ、使用する車両はホンダのVT250系で統一しているようなので、確立された指導法が期待できる。レッスン料金は車両レンタルを含めて平日2万円。
革つなぎもレンタルしてくれていて、そのレンタル料金も2000円と破格(RSタイチやクシタニのレンタルサービスは、モノが違うとはいえ、送料抜きで10500円)。
場所が富士宮市の白糸スピードランドで、ちょっと遠いのが難点(朝5時には家を出ないとな)だけれど、実に魅力的。
近々、初参加予定。帰ってきたらレポートするので乞うご期待。

ちなみに、BKRSに参加するためにブーツも用意した。XPD XP-3Sってやつ。近所のライコランドで店頭見本を履いてみたらサイズがよかったので買おうとしたんだけど、買いたい色が置いていなかったので、最終的にアマゾンで購入。
なお、楽天の「在庫有り」フィルタはまったく意味がなく、「在庫がありませんでしたすみません」というがっかりなお知らせに何度か泣かされた。アマゾンでは、そういう裏切りがなかった。定価販売だったけれど。

柏 秀樹 プロデュース 『レンタル&レッスン』
車両レンタルありのバイクスクールとしては、こんなのもある。ただし、レンタル前提ではないので、前出のBKRSとは意味合いが異なる。
ここでは、逆に、というか、バイクを選べるメリットを活かしたいところ。料金は、たとえばドカのM696あたりをレンタルした場合、レッスン料込みで3万円強。RSタイチとかのつなぎをレンタルするとこれに加えて1万円ほど、ってことになるのかな。


…あ、そうだ、クルマとバイクだけじゃなくてヨットについても書かないとな。
それはまた別の機会に。