路線の表示

六帖webアプリ
kickzone/TrainNavi2 · GitHub
駅、線路の描画のみ完成。現時点では、路線を選択してStartボタンを押すと駅と路線が描画されるだけ。将来の拡張を見越して、スクロール前の絶対位置や倍率なども考慮して設計しながらコードを書くので骨が折れる。でも後で楽になるはず。
ソースを分散したので、開発効率は大幅に上がった。以前のようにメモ帳だけ、しかも単一ファイルで開発していてはデバッグが大変すぎて苦しかった。来週は電車を走らせてみよう。

課題
Javascriptはクラスベースの言語ではない。仕事でC++やC#ばかり使っているので、どうしてもオブジェクトの共通メソッドとしてのクラスメソッドを実装したくなってしまう。しかしながら、クラスメソッドとしてプロトタイプにメソッドを記述すると、thisの嵐になってしまう。

TNStation.prototype = {
makeObject : function(cj, stage, coefXY, latView, lonView){
this.stage = stage;
this.cj = cj;
var sha = new cj.Shape()
this.shape = sha;
var gr = sha.graphics;
//描画
gr.beginStroke(this.line.lineColor).beginFill(this.line.lineColor).drawRect(-5, -5, 10, 10, 1);
//stageに追加
stage.addChild(sha);
//初期位置、係数を保存しておく
this.initLatView = latView;
this.initLonView = lonView;
this.coefXY = coefXY;
},
setScale : function(scale){
this.scale = scale;
this.shape.scaleX = scale;
this.shape.scaleY = scale;
},
moveObject : function(latView, lonView, centerX, centerY){
var x = ((this.longitude - this.initLonView) * this.coefXY + (lonView - this.initLonView) * this.coefXY) * this.scale + centerX;
var y = ((this.initLatView - this.latitude) * this.coefXY + (this.initLatView - latView) * this.coefXY) * this.scale + centerY;
this.shape.x = x;
this.shape.y = y;
}
}

thisばっかりで読みにくいし、thisを付け忘れやすくエラーの原因にもなる。なんとかならないか。


さむさむ

昨日今日と最低気温がたったの3度、寒い!
寒いのに蚊は家の中に入ってくるし、猫は1日中小屋から出てこなくなったし、手も足も冷えるし、冬服や冬布団を準備しなきゃいけないし大変だ。
毎年季節は巡るけれど、一度として同じ気持ちで季節を迎えたことがない。今年は、冬が来ることに対して緊張している。なぜだろう。
今年は仕事の密度が急激に上がり、1日10時間程度の労働の後、手持ちの時間が1時間あるかないか。時間が過ぎるスピードが加速している。メイド・イン・ヘブンでも食らったのではないか。


The Rough Guide To Irish Music (1996)


★★★★★
アイルランド音楽。これはいいよ!これこそ牧歌的、と言えるサウンドが多いものの、ポップなものも、ダンス的なものも、地元賛歌のカントリー曲も、あらゆる要素が詰まっている。ダンス的なものはやはり繰り返しが多く、楽器も、ギターとフィドルがベースだけれどインド風打楽器もあるしバンドネオンもあるしケーナ?のような笛もあるしもう何でもありだ。一番燃えたのが4曲目のOn Horseback。ギターとベースで現代的な要素を混ぜつつノリノリ超人フィドル+右側の萌え打楽器というどストライクな編成に、新幹線もビックリな新快速超快速な楽曲。こんな爽快な曲があるなんて!youtubeに楽曲があった。'On Horseback' ~ Eileen Ivers – YouTube
14曲目のHand Me Down The Tackleも単純ながら高揚する。足音も掛け声もイカしてる。


Michel Petrucciani – Solo Live(1998)


★★☆☆☆
古めのジャズと並行して最近のジャズも聞いておこう、ということで、ボックスセット “Dreyfus Jazz 20 Years” 20枚組を順に聞いていきます。
1枚目。非常に独特なタッチで有名らしい、ミシェル・ペトルチアーニのソロピアノCD。打音が非常に強く、それだけではなく、1音1音が異常に長い。ピアノロールでいうとすべての音のタイムラインが全部重なっている感じ。したがって、全く飛べない。言わば、地を這うジャズ。地底ジャズ。私には、合いませんでした。これも強烈な個性の一つなんだろうけど、この長ーい地面を掘り進む音は、疲れます。ごめんなさい。もっと老人になってから聞きます。とどめは10曲目caravan。海底火山でも掘り当ててしまったかのような絶望しかない音色。でも、アンコール前の”I remember one more!(もう1曲あるんだった!)”という一言が、すごーくかわいい。


Bill Evans – Waltz for Debby(1961)

★★★★☆

ジャズの100枚。 – 「ジャズの100枚。」シリーズ全100タイトルセット – UNIVERSAL MUSIC JAPAN
のシリーズが安いので、1枚ずつ聞いていくことにした。まず1枚目。定番中の定番らしい。透明なピアノ、もやの向こう側にいて見えづらいドラムス、うなりの強いベース、特にベースの演奏は今まで聞いたことのないくらい歌っている。エヴァンスさんの演奏はキレイすぎてなぜかいつも落ち込む。ライブの収録みたいなんだけれど、編集の都合か売り手の都合か、拍手がすぐにフェードアウトするのは良い印象を受けない。余計なものを一切省いたスタンダード中のスタンダード、といった演奏は素晴らしいんだけど、自分の精神が、まだこの曲が体に浸透するに至るまで発展していないようで、いい演奏なのはわかるけれど、いま一つ足りなく感じてしまう。通り過ぎてしまう。BGMになってしまう。力技や技巧、目まぐるしい展開や独創性、そういったものに飽きて、いずれこのCDに戻ってくると気が来るのかもしれない。時々、自分に語り掛ける目的で聞いてみるといいのかな。


Beethoven, Friedrich Gulda(pf): Piano Sonata No.18-22(CD9)

Amazon.co.jp: Ludwig van Beethoven, Horst Stein, Wiener Philharmoniker, Friedrich Gulda : Beethoven: Piano Sonata No. 1-32, Piano Concertos No. 1-5 – 音楽
★★★★☆
小品揃いの1枚。18番の4楽章が三連符ダサ爆発曲となっており、かなり暑い。19番、20番は突然地味になるが、それもそのはず、この2曲だけは出版される9年前に作られたものらしい。
このCDの胆は21番「ヴァルトシュタイン」。グルダさんの演奏はとにかく速い!速い!まるでジェットコースターだ。笑っちゃうくらいだ。この映画のテーマ曲だったのでよく覚えているが、こんなに速くなかった。この速度のせいで、手数で分散しがちな楽曲が一つの大きな塊になっているようだ。曲の大局を支配する大波小波はよく表現されており、このシリーズの名演奏の一つに数えてよいと思う。第2楽章は第3楽章のおまけで、3楽章目もシンプルながら心に響く主題、そして後ろで鳴ってるジェットコースターその2が印象的。
22番は地味。


root化

F-11Dというスマホを持っている。Android端末がどういうものか触ってみたい、という目的で、新宿の中古PC屋で5000円で購入した。金のかかるSIMカードは刺さないで、オフラインのみの利用だ。オフラインでも、エクスプローラー的なアプリさえインストール済みなら、APK Downloaderを使用してアプリをいくらでも入れられる。現在は電車内で映画を見るための端末と化している。今日判明したところによると、オフラインでもGPS機能は使用できるらしい。せっかくTrainNavi2をオフラインでも使用できるように変更中なんだから、GPSと連動させる機能を作ってみてもいいかもしれない。動作確認が実機でできるというのはありがたい。
さて、必要があって、root化(システムフォルダへのアクセス権を得ること)を試してみたところ、2時間ほどでできた。
参考リンク:
むう゛の: USB Driverのインストールとadb接続 F-11D編
むう゛の: Android 4.0.3(ICS)のroot化・・・F-11D(V26R42B)の場合
root化の過程でAndroidアプリの開発環境を得ることができた。夢がひろがりんぐだが、Javaの習得が必要なので、また長い道のりになりそうだ。
しかしexploitのコードを書ける人ってすごいよな。メモリ上のアドレス直書きしてるし。憧れちゃう。いつかハードウェアハックできるような腕前になってみたい。


Beethoven, Friedrich Gulda(pf): Piano Sonata No.15-17(CD8)

Amazon.co.jp: Ludwig van Beethoven, Horst Stein, Wiener Philharmoniker, Friedrich Gulda : Beethoven: Piano Sonata No. 1-32, Piano Concertos No. 1-5 – 音楽
★★★★★
何故か「田園」の副題がついた15番。言うほど牧歌的ではないです。むしろ宮廷的。1楽章目にあまり肩の力が入っておらず安らかに聞けます。2楽章目が演歌炸裂、クサメロが出てきてそのままメタルにでもできそうでたまりません。3-4楽章とまるで交響曲のような構成。3楽章はwikipediaに農民的な響きって書いてあるけど農民的ってなんだ?上流階級の踊りっぽいけどなぁ。
16番の第1楽章は非常に変わっていて、右手と左手がほんの少し(16分?)ずれてます。ずれ部分の直後の同一主題を小さく弾くところがかわいい。激しい部分と可愛い部分を交互に挟む名曲。さらに第3楽章がダサい主題なのに非常に熱いダサアツの一曲、走って走って最後に意外な結末になる、という優れた曲でした。
17番は「テンペスト」として有名らしいです。1楽章目はやはりダサアツ、さらにラストが静かという点で16-3と共通しています。ただし今回のダサには泣き成分がかなり強めに含まれていて、しかも激しい。3楽章目は非常に有名ですがこの6/8の泣きメロの嵐は素晴らしいですね。グルダさんのやや誇張気味で腕力あふれたダイナミック演奏が実に良い効果を生んでいて、心が終始かき回されてどうにかなってしまいそうです。文句なしのMVP。


今後の予定

kickzone/TrainNavi2 · GitHub
結局、起動時の読み込み処理までしか完成できなかった。来週こそは、線路を描画したい。線路が描画できたら、次は列車の動的読み込みと表示だ。そこまでやれば、前回のTrainNaviとほぼ同機能になる。しかしながら、追加したい機能は大量に存在する。いつまでかかることやら。
当面の残り作業(優先順)

  • 駅、線路の描画
  • 列車の読み込み
  • 列車の表示、アニメーション、発車停車時の速度変更 列車の加減速 – diary 六帖
  • パッケージファイルの読み込み
  • 拡大縮小

追加したい機能(優先順)

  • スクロールできるようにする。
  • スクロールに合わせた画面表示をする。画面にないオブジェクトを削除して動作を軽くする。スクロールして画面内に入ってきたところではじめて表示する。
  • 通過点のエディット機能、ベジェ曲線で完璧な線路を引くためのGUI作成。ベジェ曲線 – diary 六帖
  • GoogleMapと連携する。地図上を列車が走る。
  • スキン機能。あらゆる路線図を作れるようにする。
  • ターゲットとなる列車を決めて、強調表示する。今どのあたりを走っているかが分かる。
  • 駅をクリックしたら情報を表示する。あと何分で電車が来るとか、目的地を決めたらそこまでかかる時間とか。
  • 列車をクリックしたら情報を表示する。現在速度とか表定速度とか、次はどこに止まるかとか。
  • 運賃を表示できるようにする。FareMap(自作)の機能を全部移植する。
  • 時刻表を自動生成する。
  • この際、NAVITIMEみたいな最短経路・最安経路生成機能も付けてしまう。