CDレビュー: Franz Schubert, Boston Symphony Orchestra, Charles Munch(Cond), 1955 and 1958 – Symphony No.8 in B Minor “Unfinished”, Symphony No.9 in C “The Great” (RCA Living Stereo Collection CD 51)

/A>
★★★★★
いやあ交響曲っていいものですね!

シューベルトは「魔王」をほとんどの中学校で習うこともあって歌曲の作曲者として理解されていることが多いけれど、なんと交響曲を9つも作っている。未完成のものも含めると13もあるらしい。

こんなこと言うと怒られるかもしれないが、シューベルトを含めドイツ・オーストリア系の作曲者って作風が「ダサカッコいい」と思う。ベートーヴェンは美しいメロディーや和音もさることながら時々ユニゾンや爆音和音でダサい洪水を投げてくることがある。運命の冒頭とか交響曲6番の終盤の謎連発和音、7番4楽章の運動会みたいなメロディーなど。ブラームスもこの正統派ダサカッコいい系譜に位置する。リストもそうかも。

シューベルトの交響曲はベートーヴェンの美しさを引き継ぎつつ、ダサさをさらに洗練して頻度を高めたように聞こえた。彼の体に流れる熱い音楽的血潮がこのダサさを生み出し、聞き手を共振させて一種の興奮を引き起こす。特に、交響曲8番の第1楽章、9番の1,4楽章は顕著だ。

8番の第1楽章はほとんど演歌だ。オーケストラと演歌の融合を1825年に果たしているなんて超前衛的だ。9番の第1楽章はカッコいいはずの場面で盆踊りみたいな三連符が大量出現する。そして第4楽章は歓びの歌のパクリ、もといリスペクトした主題が要所で現れ、ズッコケそうになりながら絶頂、大団円を迎える。演奏は非常にダイナミックで、力が余りすぎて時々木管金管が前に滑ってしまっているがそれもよし。シューベルトはダサさを極め転じて人を感動させる魂を持った作曲家として私の心に刻まれた。

クラシックの他のCDレビューはこちらです。rokujo.hatenadiary.com


CDレビュー: Giuseppe Verdi, Rome Opera Orchestra And Chorus, 1960 – La Traviata(RCA Living Stereo Collection CD 47, 48)


★★★★☆
イタリアの誇るオペラ王ヴェルディの中期の作品。邦題は「椿姫」というらしい。全くイタリア語のわからない身としては1枚目はやや盛り上がりに欠けるが2枚目が素晴らしい。途中、セリフを歌ではなく左マイクの真ん前で喋らせる演出もあり1960年当時としては前衛的だったのではないだろうか。たぶんラストはヒロインが死んでる。

(日本では単品発売されていないようなのでボックスセットへのリンクを貼ります)

クラシックの他のCDレビューはこちらです。rokujo.hatenadiary.com


Head First Design Patterns

Head First Design Patterns
デザインパターン入門書。引っ越しで時間が取れず読み終わるのに3か月もかかった。2004年の本なのでJavaの仕様が古いと思われるけれど、精神は汲み取れた。全体を通して言っていることは、クラス間の依存性をなくすということ。あるオブジェクトが他のオブジェクトの仕様を知らなくても良いようにする。継承よりインターフェースでプログラミングする。これがこの本の一番のポイントだったように思う。10年間行き当たりばったりでプログラミングしてきたことを大いに反省した。これをどのように実際の仕事につなげていくか、は各言語仕様の詳しい解説書が必要になるだろう。
次はさしあたりすぐに必要なPHPの本を読む予定。


窓枠エアコン

昨日の朝、窓枠エアコンを設置した。ヤマダで一番安い機種、中国HaierのJA-16Mだ。いままでセパレートタイプの普通のエアコンしか使ったことがなかったので、利点や欠点など全く知らなかった。気が付いた点をリストアップしていく。

まず、設置について。工事不要で簡単設置と書いてあるが大嘘。念のため高くなってでも工事を発注してよかったと思っている。窓に置くだけのものではないので、取り付けるための四角い金具を窓に固定するのだが、これは電動式ドライバーがないと不可能だった。脚立も必要。金具も大変だが本体の取り付けも大変。大きさが高さ77cmと普通のセパレート型のエアコンと同じくらいだけれど、室外機に相当する設備も内蔵しているため23kgと非常に重い。普通のエアコンは7kgくらい。で、これが軽い力で金具に嵌まらず、電気屋さんがずいぶん苦労しなさっていた。夏場に重いものを持って大きな力をかけるのは一般人には地獄だと思う。

設置場所と隙間について。窓枠エアコンは窓を1/3くらい開けっ放しにして、空いた場所に金具を取り付ける。したがって窓のロックができないことが第一の欠点だ。回転式の補助錠を使えばとりあえずは空かなくなるが、完全なロックではない。自分のマンションは窓に防犯用の柵がかかっているのでまずこの点は心配ないが、1階に住んでいる方はやめたほうがいいかもしれない。第二の欠点は、虫が入りやすいこと。窓が開いたままなので、エアコンの左右に隙間ができる。ペラペラのゴム製セパレータ?がついているが、これでは心もとない。大抵はパテが付属しているので、これを使って隙間をなくす必要があるが、エアコンをつけるのは暑い時期なので塗るのが大変。なんとか、昨晩は虫を1匹も入れないことに成功した。

性能については全く問題がない。部屋は冷えるし、湿度80%以上にならなければドレーンから水が垂れることもない。消費電力も、セパレート型とほぼ同じ約500W。安物なので風量のコントロールが強と弱しかないが、高いものならもっと細かい設定もできるだろう。昨日は性能テストのため昼前から電源を入れた。室温が35度から30度に下がると、作業効率は上がるわ眠くならないわ、今まで相当体力を消耗していたのだとよくわかった。猫も楽そうによく寝ていた。よく寝ているのは、いつものことだけれど。


CDレビュー: Clark – Feast/Beast(2013)


★★★★★
エレクトリック魔人Clarkさん。この人は天才であると思う。1曲として似たような曲がない。自分の好きな音を重ねていったらこんなんできちゃいました、と思われる29曲(他人の曲も数曲入ってるけど)。狂気と哀愁と静謐と押しの強さが全部同居している。

Disk1はどちらかというと静。6曲目 Glow は何が起きてるのか分からんが中毒性がある。10曲目Peterのようにこっちに迫ってくる曲はダメージが大きい。さらに11曲目Untitledで底まで落ち込んだ心を12,13曲目のBibioさんのリミックスが救ってくれる構成に驚いた。1枚目は深入りするとマズそうな曲が多い。

Disk2は動、テクノ系ビートが多め。2曲目My Machinesのような変態シンセはどうやったら作れるんだろうね。3曲目D&T、6曲目Let’s Get Clinicalもやばい。原曲一つも知らないけど、きっと目茶目茶になってるんだろうなぁ。11曲目Siberian Hootyはこれは一体リズムがどうなってるの?12曲目Hammersmashedが一番このアルバムで破壊力大きい。最初から最後までわけわかめの狂気尽くし。いや、ちゃんと曲の体裁は整ってるんだけど、わかるようで何やってるのか全然分からない。で、ラストThe Galactic Tusks、珍しいパッド重ねまくりのアンビエントで荘厳に全く救いがなく終わってしまう。

バカ高い技術と常人には真似の出来ない音の配置を2時間程度たっぷり堪能できる素晴らしいアルバムでした。
この人の曲で初めて聞いたHerr Barの衝撃はいまだに忘れられない。ビデオは初めて見たけれど、相当キテるね。これを作ったR James Healyという人の精神を疑う。

電子音楽の他のCDレビューはこちらです。rokujo.hatenadiary.com


筋トレと柔軟

落ちてしまった体重を増やすため、筋トレすることにした。以前の自分と比べて、肉が削げ落ちてしまったことが原因とみたからだ。この見立ては当たっていたようで、一か月半で体重が1.5kg戻った。摂取したタンパク質が体を素通りしてしまったのだろう。
2-3日に一回ミネラルウォーター2リットルPET6本を積んで走っていた自転車がパンクして、家まで手で運ばざるを得なくなった。筋トレの効果でだんだん運ぶのが楽になってきた。胸にくっつけなくても短時間なら運べるようになった。いずれ、全行程(10分くらい)すべて腕の力だけで運べるようになりたい。
筋トレは超回復理論を採用し、2-3日に30分程度1回。ペットボトルを買う日に合わせている。毎日やると時間が足りないし疲れるから、というのもあるけど。この夏は暑いしエアコンの無い部屋なので苦しい。
柔軟体操も同時期に始めた。前屈、開脚、股関節の体操を毎日。30代となると柔らかくなるのに異様に時間がかかる。一か月半続けてまだ、前屈が地面に届かない。あと3cm。あと3cmがなかなか縮まらない。それだけに達成できた時の喜びは大きくなると期待している。


やはり平日は時間がない

完成はまだまだ先にお預けか。
Eloquent Javascriptを読み終わった。正直、作ってるプログラムの抽象度が高くて何をやっているのか感覚でしか分からないところが多かった。foreachに相当する関数やらメッセージハンドラの登録やら、全部自前の関数でやってしまう野性味あふれる本だった。おそらく現代なら巷に溢れているライブラリで間に合わせてしまうだろうに。JavaScriptは組み込みオブジェクトもすぐ改造できるくらい自由度が高い上に少ないコードで手っ取り早くブラウザの数多い機能を操れることが魅力だが、リスクも高く、自分でプログラムを把握していないとたちまちバグだらけになる恐れがある。俺ルールをがっちり固めておかないと辛い。
ところで、オンライン版がなんと読み終わった日に2nd editionにアップグレードしてしまった。。!チャプターの数が1.5倍に増えていて、前回見当たらなかったnode.jsやcanvasへの言及やらチャプター名が完全に変わっているところもあり、おそらく全面改訂だろう。3か月くらいかかったというのに。ああ、この苦労は何だったんだ。


進捗

作り始めてみたら、PHPだけですべて実装できそうなので、JavaScriptを使うのをやめてPHPだけで実装することにした。引っ越しが入ったとはいえ4か月間かけて読んだ本はデザインパターンとJavaScriptの本だったので、何の役にも立たなかった。。PHPはまだ少ししか触っていないので、ちょうど良い経験になりそうだ。
ログイン画面、問題集作成画面、問題登録画面のみ作成完了。肝心の出題画面ができていないので、まだ非公開。
ログイン画面についてはここを参照した。
Eclipseを使用して開発中。オートコンプリートがそこそこ使えること、テストが即座にできることから、メモ帳を使っていた時代より作業時間は大幅に短縮できている。デフォルトでステップ実行できないことが残念。Xdebugというツール?を導入すればできるらしいので、次回試してみよう。
1点、PHPは画面遷移を伴うアプリケーションしか作れないのではないか、という危惧があったが、formタグのactionを空にする、という手法を使えば、ボタンを押してPOSTしても自分のページに遷移するだけでしかもクロスサイトスクリプティングも防げる、と一石二鳥であるとわかったので、これを使う。

<form action="" method="post">
<input name="password" type="text" value="pass" />
<input name="action" type="submit" value="login" />
</form>

のようにすれば、$_POST[“pass”] で入力したパスワードをゲットして、PHPだけでもパスワード入力画面に「パスワードが違います」などと表示することができる。ただし自ページ遷移なので、同じPHPのコードを2回実行することになる。上の例ならloginボタンを押したことを検知するために

// ログインボタンが押された場合
if (isset($_POST["login"])) {
// 入力チェック
if (empty($_POST["password"])) {
$errorMessage = "パスワードが未入力です。";
}
}

のようにせにゃいかん。これなら1回目にページを表示したときはloginボタンが押されてないのでif文の中は実行されず、次にloginボタンを押せばif文の中が実行される。


LanguageTrainer続き

※自分用のメモなので、適宜編集します
今日は日曜なので、実装の時間が若干は取れそうだ。
2014-04-10の仕様を変更する。

必要なテーブル


[LTUser] ユーザー
UserID
UserName
Password

[LTTable] テーブル名
TableID
TableName
TableType 出題フォーマット番号

[LTElement]問題
TableID
ElementID
Question 問題 XMLで書く
Answer 意味 XMLで書く

[LTLog]学習履歴
UserID
TableID
ElementID
Memory 記憶した程度を数値で記録 0:忘れた 1:なんとなく覚えている 2:覚えている
Flag 復習のためのフラグ 0:一度も解いていない 1:1回解いた 2:一週間後の復習をした
4:ニ週間後の復習をした 5:一か月後の復習をした
Count 解いた回数
Time 最後に解いた日付(年月日で十分)

[テーブル仕様について]
・仕様を作成しながら、これって別に言語の学習以外にも使えるよね、と思ったので、LTTable.TableTypeを追加し、この数字に対応してQuestionの解釈を変更できるようにする予定。例えば、いずれ囲碁も学習したいので、詰碁を登録してQuestionとAnswerでは画像を表示したい。このとき、表示を切り替える必要がある。汎用性を持たせるため、XMLで書く予定。TableTypeでCSSや表示方法を切り替えてはどうか。
・LTLogはUserID-TableID-ElementIDでユニークにして、更新していく形式をとる。問題と使用歴が多くなるにしたがってログが異様に多くなってしまうことを防ぐ。

[動作仕様案]
1)ログインして、UserIDを決定
2)テーブルを選択して、TableIDを決定
3)一定の法則に従い(後述)ElementIDを決定し、問題を出題 LTElement.Questionを表示する
4)「答えを見る」ボタンを押したらLTElement.Meaningを表示、記憶の度合いによって「覚えていない」「なんとなく覚えている」「覚えている」を押させる、押したらLTLogに記録する
5)問題登録画面では問題と解答をセットで入力させる

3a)「一定の法則」はサーバー側で記述する。これが一番肝の論理となる。
・2014-04-01の記事で書いたように、忘却曲線に対応した復習のタイミングに該当した問題を優先して出題する。


学習した翌日に一回目
その一週間後に二回目
二回目の復習から二週間後に三回目
三回目の復習から一ヵ月後に四回目
すなわち、
LTLog.Flag=1 かつ 現在時刻 – LtLog.Time>=1日 の問題
LTLog.Flag=2 かつ 現在時刻 – LtLog.Time>=7日 の問題
LTLog.Flag=3 かつ 現在時刻 – LtLog.Time>=14日 の問題
LTLog.Flag=4 かつ 現在時刻 – LtLog.Time>=1か月 の問題
の順で優先して出題する。
復習時に「覚えている」を押したらFlagをインクリメントする。「なんとなく覚えている」なら要復習なのでFlagはそのまま。「忘れた」なら復習のやり直し、Flagはデクリメントする。Flagは0にはしない。
・これらを使い切ったら、未出題の問題、すなわちLtLogテーブルにレコードが存在しないものを出題する。未出題の問題がなくなったら、ランダムに出題する。ランダムに出題した場合はFlagとTimeを更新しない。ただし、「忘れた」場合のみ、Flagをデクリメントする。
・Memoryはランダム出題の際の優先度として使用する予定。数字が少ない(忘れてる)ほど出題されやすくする。


息切れ

毎日暑いせいで息切れする。夕方になると、ランニングを終えたように息苦しくなる。起きてきて仕事部屋に入ると、東から差し込む朝日のせいで気温は7時の時点で35度、9時ごろ太陽がどいて33度、また日中35度、15時ごろエアコンを掛けるために西向きの部屋の窓が閉まるので風が無くなり空気が蒸し始め、そのまま風呂に入る前まで33度程度、一日中高温なので体力が奪われ頭がよく動かない。ハンカチ気化熱効果で夏バテすることはないけど、仕事してても1時間半ごとに10分程度仮眠を取らないともたない。4日後にエアコンが届いたらどのくらい楽になるだろうか、と期待している。
猫は暑さに慣れたのか、室温35度でもあまり辛そうじゃない。あんたたちのために買ったのに。