正月病

正月はJavaScriptの趣味のコード作成、箱根駅伝、箱根駅伝によってさぼっていた外国語学習のツケの清算、若干の仕事、で全て消費してしまった。明日は出勤、1年間仕事の機械になる日々が始まる。仕事したくないなぁ。
大体正月って風習はおかしいよね。日本中で里帰りを強制される空気になり、私のように帰る場所がない人間にとっては大迷惑だ。あちこち渋滞するし、店が開いてないので食料はないし、オフィスも一斉に休むのでトラブルが起きても対処できない。箱根駅伝は面白いけど駅伝のせいで近所が大混雑して買い物に行けない。おまけに五月病もどきにかかってしまった。ああ明日が来なければいいのに。

明日も自分を奮い立たせるために、去年と今年の整理をしよう。
去年できたこと:JavaScript, PHPの勉強(プログラムが書けるようになった)、日記の更新(ほぼ毎日)、筋トレ(体重が4kg増加した)、外国語学習(1日20単語の習得を復習込みで強制されるプログラムを作成し、4か月継続中)、絵の模写(時間が取れた日に限る、3日おきくらいで1枚のペース)、仕事量と残業代を2%増やした
去年できなかったこと:イタリア語の文法書の読破(全然時間が取れない)、読書(時間が取れない)
今年の目標:去年できたことを1年間継続する。1/3のレース後に駒澤大学の大八木監督が言っていたように、逃げの練習はしない。


Enrico Pieranunzi – No Man’s Land(1989)


★★★★★╭( ・ㅂ・)و ̑̑
うわーすげぇなあ。前作に引き続き大ヒットだった。まずタイトル曲No Man’s Landが泣きの超名演奏で、ベースソロも素晴らしい。4曲目Blues In CはどこらへんがCなのか分からないくらい発散しているが緊張感と優れたインプロが充満した傑作、5曲目Land Breezeも吹っ飛ばされそうなテンションコードの連発とかっこええドラムソロが交錯するヒット、7曲目My Funny Valentineは前作のSomeday My Prince Will Comeのように意表を突かれる即興まるけの長い前フリが実に優れている。マジで何なのこの人。


Red Garland – Groovy(1957)


★★★★★
レビューでも言われているけれど、ジャズの教科書、というのがしっくりくるアルバム。レッド・ガーランドさんは軽快かつ、やさしいやさしい音を出す。派手さ、革新性はないが非常に聴きやすい。万人に受け入れられる音だろう。疲れたときに戻ってこれる場所、といったような演奏だ。3,5曲目で聞けるウッドベースを弦を使って普通に弾く奏法(何て名前なんだろ?)は他に無いような音が出ていて、引き込まれる。


Gustav Mahler, Seiji Ozawa(cond.), Boston Symphony Orchestra – Symphony No.5(CD8)

小澤征爾: マーラー交響曲全集 14枚組
★★★★☆
作風が勇ましいものに変わった。スター・ウォーズのような金管バリバリの第一楽章、過剰なくらいの盛り上げの第二楽章などなど、派手めの曲が続き、第四楽章でようやくメロディーがいい感じの曲がやってきた。歌曲以外では初の比較的そそられるメロディーだ。最終第五楽章も牧歌的ながら悪くない。1楽章あたりの長さも最大で18分程度となんとか聴けるサイズだった。このあたりからマーラーの本気が始まるのか。


エディット機能

六帖webアプリ
kickzone/TrainNavi2 · GitHub
線路のエディット機能を追加。実質、googleマップに合わせて線路の形を整えるための機能となった。1日で300行ちょいのコードを書いた。
上手くいかなかったことはたくさんある。まず、canvasにmousemoveのイベントをかましていると、要素のmousemoveのイベントが動作しない。駅オブジェクトをドラッグして位置を変更したいのに、クリックイベントは発生するものの、mousemoveが動作しないため何も起こらない。おそらくcanvasに吸い取られてしまっているのだろう。この場合、canvasのイベントは消し去っておく必要がある。

//stationというオブジェクトがcanvas上にあるとする
function OnStationMouseDown(evt){
var canvas = $("canvas")[0];
//canvasのイベントを捨てる
canvas.removeEventListener('mousemove', OnCanvasMouseMove, false);
canvas.removeEventListener('mouseup', OnCanvasMouseUp, false);
//新たにイベントを登録する
canvas.addEventListener('mousemove', OnStationMouseMove, false);
canvas.addEventListener('mouseup', OnStationMouseUp, false);
}
function OnStationMouseMove(evt){
//mousemoveイベントの処理
}
function OnStationMouseUp(evt){
//mousemoveイベントの処理
//イベントハンドラを元に戻す
canvas.removeEventListener('mousemove', OnStationMouseMove, false);
canvas.removeEventListener('mouseup', OnStationMouseUp, false);
canvas.addEventListener('mousemove', OnCanvasMouseMove, false);
canvas.addEventListener('mouseup', OnCanvasMouseUp, false);
}

さらに、JavaScript→PHPにPOSTを使って値を受け渡しするとき、配列の個数が1000を超えると、1000を超えたものから削除されていく、という恐ろしいPHPの仕様にぶつかった。
参考
この仕様を知らなかったので、大きなデータを保存したら一部が消えてしまってびっくらこいた。1時間くらいの作業が吹っ飛んだので非常にまいった。配列の受け渡しはやめて、半角スペースなどのセパレータをつけてPHPでpreg_splitを使って分解するように変更した。