「若冲と江戸絵画」展ペアチケットに当たった!

「プライス・コレクション」に応募で応募したら当たった。メールはまだ来ていないけれど、トラックバックが来たのとここで当選者の発表があったので。初めてはてなの懸賞に当たったので、とってもうれしい。
あまり意識していなかったけれど、ペアチケットなんだよね。ブログの場ではあるけれど、大阪の友人に向けて「観に行くから東京に来い!!」とかここで言って見るか。

ってゆうかって言うな

「それ、知ってます」は禁句
思わず反応してTB打ってしまう。上記のエントリの内容は全くその通りと思うついでに、「それ、知ってます」に似たパターンを書こう。
取り上げたいのは「ってゆうか」だ。「ってゆうか」は「いいえ」とか「いや」とかに比べると否定的なニュアンスが低いので使いやすいけれど、明らかに相手の発言を無効化するひどい言い草だ。それなりに異なる意見を述べるのであれば何の問題ないのだけど、言葉を差し替えただけの同じ内容を重ねる人がいかに多いことか。
例えば、「明日は雨が降るらしいね」に対して「ってゆうか、降水確率100%やったしな」とか返す具合だ。どうも相手の話を「うん、そうだね」と肯定するのが嫌らしい。もはや口癖になっている人も見受けられるが、そういう方々は営業の基本「YesBut法」を学んでみてはどうだろうか。
相手の言葉を言い換えるのは失礼な行為だろう。「君の言葉ではダメだから言い直してあげるよ」ということを意味するからだ。勿論、仕事上ではお互いの認識にずれがないかを確認する意味で、あえて別の表現で「合ってますよね」と確認を取ることがあるが、これは相手の意見を肯定するがゆえに行う行為なので全く主旨が違う。
喋るたびに「ってゆうか」と言われると、自分の発言はそれ程拙いものかと思ってしまう。そう思えば思うほど、「ってゆうか」の次に素晴らしい言葉を期待するのだけど、いつも期待を裏切られる。言い換えて余計に解り難い表現になっていることもあるのだから目も当てられない。
自己主張されるのは結構なことだが、その前に相手の主張を素直に受け入れてみよう。そしたら、今まであまり喋らなかった相手が雄弁に話しだすかもしれないよ。

「つまずいても大丈夫!」と言われてつまずいた

算数・数学が得意になる本 (講談社現代新書)

算数・数学が得意になる本 (講談社現代新書)

「つまずいても大丈夫!」と書かれていて安心したせいか、この本の説明で見事につまずいた。まだ読んでいる最中ではあるが、つまずいた内容を書いてみる。
まずは、書籍のつまずいた箇所を引用してみよう。尚、書籍の分数表記はちゃんと上下に数字が並んでいるが、ブログ上では表現し難いので「分子/分母」と書き換えているのでご了承を。

1枚のピザを4等分すると、1/4のピザが4つできます。ですから、
1 ÷ 1/4 = 4
は、「1枚のピザを1/4ずつ分けるとしたら4人に配れる」と説明できます。

1-9 「分数で割る」とはどういう意味か

数学的センスの無さを棚に上げて臆面もなく書くけれど、これは解り易いのか。みんな、上の説明を読んで「ふーん、そうだったんだ」とか思うのか。正直、ここだけを20回以上は読み直したけれど釈然としなかった。
解らないのが、なぜイコールの右に「4つ」がくるのかということ。「1枚のピザを4等分すると、1/4のピザが4つできます。」をそのまま式にすると

1 ÷ 4 = 1/4 × 4

みたいな感じになりそうで仕方がない(勿論間違い)。「4つ」という解が実は「1/4が4つ」という性質であることを隠蔽してしまっても良いものか。プログラムの「==」が頭に棲みつきすぎたせいで、数学の「=」が謎になってしまった。
著者の芳沢光雄さんはどういう見解だろうか。ブログは「ひょっとしたら本人が読むかも」という期待をこめられるので嬉しい。

ブログシステムの批判は難しい

ブログ進化論?なぜ人は日記を晒すのか

ブログ進化論?なぜ人は日記を晒すのか

404 Blog Not Found:野山獄にようこそ!でDanさんが紹介していたの見て購入。Danさんの書評内容は確かにと思うところだけど、自分自身が読み終えて率直に感じた感想は「良い事しか書いてない」だった。こう書くと著者の岡部さんがブログをひいきして書いたように聞こえるので補足すると、現状のブログの有様をそのまま書くとメリットばっかりだったという意味だ。
不思議に思って意地悪くブログのデメリットを考えてみたけれど、なかなか思い付かない。ブログが批判されそうな事象を想像すると以下のような感じか。

犯罪系しか思い付かない。しかし、これらはブログでなくともあらゆる媒体に当てはまるようなことなのでブログ本体のデメリットとは言いがたい。職場からブログ書き込み、処分とかならブログのせいで仕事をさぼる人が増えたなどデメリットとして通用するだろうか。これも本質的でないような気がする。
なぜブログを批判的に扱いにくいかを考えると、人間にとって必要とみなされている行動の範疇だからだろう。例えば「コミュニケーションはしない方が良い」とか「長生きしない方が良い」とかいう考え方は成り立ちにくい。つまり、コミュニケーションのようなデフォルトで肯定されているジャンルにブログも入っているのと考えられる。
Wikiは時間のムダだみたいな痛烈な批判(「ブログは時間のムダだ」みたいな)が現れる日がくるのだろうか。

ほとんどの人が参加する会議はしてはいけない

そう思った。今日、自分自身が参加しない少数派の立場だった。要件の当てはまる人だけを選んでの会議なのだろうけれど、逆にそこまで厳密に情報の壁を立てる必要があるのだろうか。参加しない人間にとってみれば、「自分たちには教えたくない内容なのだ」と勘ぐりたくもなる。
ほとんどの人が会議の対象なら思い切って全員参加にしてしまおう。内容が当人に関係あるかどうかではない。コミュニティーから除者にしたという行為が大問題だからだ。参加した者は内容を知っているから、「大した内容ではない」とか「関係ない人が聞いても仕方がない」とか言えるが、参加していない者はその判断すらできない。
結局、主催者というのは参加者のことを考えることに精一杯で、被参加者のことなど頭の片隅にもないようだ。もし、そんなことはないと否定するなら、それは被参加者には聞いて欲しくない内容だったことを暗示することになるだろう。
被参加者となった気持ちを率直に書くと「一生懸命やるのアホらし。どーでもえーわー」である。こんな気持ちをもつ社員を増やさないように、上長の方々は是非気を付けて欲しい。

楽譜XMLを策定する 3 (音符)

楽譜XMLを策定する 1 (序章)で考えた横軸をベースに音符を考えてみる。

<note timing="1/4"/>
<note timing="2/4"/>
<note timing="3/4"/>
<note timing="4/4"/>

4分音符の表記例。こういう単音でリズムが簡単な場合は読みやすいけれど、次の例だと最悪。

<note timing="1/8"/>
<note timing="2/8"/>
<note timing="2/4"/>
<note timing="3/4"/>
<note timing="4/4"/>

最初の4分音符が8分音符2つに分解されているだけだけど、かなり理解しにくい。つまり、「3/8」と「2/4」の位置が同じというところが数学的な視点に反するからいけない。但し、音符の長さはうまくいく。

<note length="1/4"/>
<note length="2/8"/>

上の2つは同一の長さなので、混乱しない。音符の位置(演奏タイミング)については良い代替案が思いつかないので残課題。
あと、音符にまつわるものとしては、付点音符、連符、タイなどがある。例えば付点4分音符は

<note length="3/8">

としても表現できるけれど、これでは8分音符が3つタイで繋がっていても同じ表記(こういう場合はタイを使わないが、XMLを見てどちらか判断するのに楽典のルールを知っている必要が出てくるという観点で)になってしまう。これらは楽譜で表記が分かれている以上、XMLでも分けて書きたいところ。
こうなってくると構造化に頼るほうがいいかもしれない。例えば3連符の場合は以下のように表現する。

<triplet>
<note length="1/8">
<note length="1/8">
<note length="1/8">
</triplet>

しかし、これはこれで鬱陶しい。というのも、8分音符の3連符は1/8の長さではないのだ。そのときだけ読み替えるよいうような発想のXMLにはしたくない。とは言っても

<note length="1/12">
<note length="1/12">
<note length="1/12">

というように正確に表現したところで判り難い。分数で音符の横軸を表現するのには無理があるのだろうか。これについては再度検討が必要そうだ。

端末が遠いときは気を付けよう

最近、会社でリモートで繋ぐ端末が多すぎてかなり混乱する。Windowsリモートデスクトップも色々あるし、もちろんUnix系OSSSHで繋ぐことも多い。ファイヤーウォールの関係上、一回中継のサーバーにログインしてからSSHで別サーバーに繋いだりすることもあるし、どれも重要なサーバーだけど常に緊張していては作業できない。
本番環境とかを色々繋いでたあとにテスト環境に繋ぐと安心して気が抜けてしまう。お陰様で今日はかなり派手なヘマをした。ネットワークの設定をしているときにiptablesの設定を消してしまってホスティング環境のテストサーバーを隔離してしまった。
SSHすら繋がらなくなったときは流石にひいた。手元にサーバーがあればコンソールでログインしてすぐに直せるけれど、そうはいかない。テスト環境が使えないとかなり迷惑度が広いし、ホスティングのホームページ見たら作業以来にOS再インストールとかしかないしと絶体絶命。
ただ、逃げ出すわけにも行かないので、ホスティング業者に電話したり、メールフォームで問い合わせたりして、結構業者さんが好意的にこちらの要望どおり手伝ってくれて、夜遅くではあるけど復旧した。
今日は生きた心地がしなかったなぁ。coLinuxがあまりに自由にできるので、好き放題するのに慣れ過ぎていたけれど、それはかなり危険なことなんだと自覚した次第。気持ちの持ちようなので別にcoLinuxが悪いわけではないけれど。

初心者向けの説明 変数の代入

プログラムを始めた当初はどのジャンルも敷居が高く感じられたし、人に聞いても理解できるような回答をもらえたことはとても少なかった。
そんな経験から思い付きだけど、プログラムを全く知らない人向けに少し咀嚼してみようと思う。言語は自分にとっても最初に学んだJavaで。テーマも思い付きだけど、今回は変数を説明してみる。
子供にイメージさせるなら「箱」という説明で良いと思うけれど、「箱」の説明でいくとオブジェクトとか参照とか(知らない人は無視していい言葉)が出てきたときに理解を妨げるので、「箱」とは言わないようにする。
それよりも直球で中学生で勉強する方程式からイメージするほうが良いような気がする。連立方程式を解くときに代入法というやり方があったのは記憶にあるだろうか。例えばこんな感じ。

x + y = 2
x - y = 0

これを解くのに代入法を使うと、まず上の式が

y = 2 - x

と置き換えることが出来て「y」が「2 – x」であることが知れる。ここで判明した「y」の内容を式ごと下の式に突っ込む。

x - (2 - x) = 0

これはもう少し分かりやすく置き換えると

x + x = 2

となってxが1だと知れる。
ここで言う代入という行為がプログラムでは頻繁過ぎるくらいに行われる。例えばJavaで変数に値を代入するときは以下のようになる。

x = 3;

イコールが代入というのが慣れないけれど、あとはセミコロンが付いているくらい。セミコロンはプログラムの区切りで日本語の「。」と同じ。

x = 3;
y = x + 10;

これでyの中身を見てみると13となっている。xに3が入って3と10とを足して、と順番に考えると解り易い。イコールで右から左に代入されることさえ理解できればそれ程難しくはないと思う。本当にプログラムを書くときは、最初に使う変数の名前をコンピュータに教える「宣言」が必要だったりするけれど、それを同時に説明しようとするからややこしくなるので、宣言はスルー。
ただ、上の式のような例を見ていると、いかにも数字の世界という感じがして嫌だ。いきなり「私には向いていないかも」なんて思ってしまう。
大丈夫、数字だけなわけがない。結構文字とか入れることが多い。

x = "こんにちは";

とか出来る。ダブルクウォートで囲んでいるのは文字だよというコンピュータへのしるし。
あと、変数というのは中身を変えることが出来る。

x = "わいはサルや";
x = "ぼくドラえもん";

これは、最終的にxは「ぼくドラえもん」になってしまう。どんどん上書きされる。
さて、ここまで読んでくれたとしても、何故変数が必要なのかは解らないと思う。最初のうちは、毎回「ぼくドラえもん」と書くと大変だからという理由で良いかと。変数があるから便利な点や、ないと困る点は当然あるけれど、最初のうちはスルーしても問題がないと思うので。
どうだろう。プログラムでいう変数に代入するという行為が少しでも理解できただろうか。あまりにも無視していることが多すぎて、結構語弊だらけなのだけどね。う〜ん、思い付きで書き始めたからオチがないな。

創聖のアクエリオンを聴こう

創聖のアクエリオン

創聖のアクエリオン

Go Tight!

Go Tight!

創聖のアクエリオンの主題歌。どちらもサントラで飽きるほど聴いた曲だけど、インストルメンタルが聴きたいがためにマキシシングルをAmazonで購入してしまった。菅野よう子作品は楽曲自体がかっこいいので、坂本真綾の曲でもインストルメンタルを結構聴いた(勿論、真綾アリはもっと聴いたけど)。
アクエリオンも同様で、AKINOの瑞々しい歌声を聴くのとインストルメンタルで楽曲自体を楽しむのとダブルに楽しむことができる。
歌詞についても

一万年と二千年前から愛してる
八千年過ぎた頃からもっと恋しくなった

という部分のインパクトが大きく、「一万年と二千年前から愛してる」が既にはてなダイヤリーキーワード化されている始末。とにかく菅野音楽が好きで聴いていない方がいるなら、間違いなく聴いて損はしないと思う。
それと音楽的な話だけじゃなくて音質がとても良い。国内では最上のミキシングのレベルだと思う。ちょっとステレオ感がやり過ぎなところもあるけれど、コンプレッサやリバーブの兼ね合いなどは非常に参考になる音源といって良いと思う。
曲自体はJ-POPのジャンルかと思われるので、アニメソングと言わずに聴いてみてはいかがだろうか。GO TIGHT!

PHPだと「===」と「!==」を使ってしまう

PHPでコーディングするときは「===」とか「!==」を結構使う。具体的には以下のような感じ。

if (foo() === true) {
echo 'OK';
} else {
echo 'NG';
}

fooという関数の戻り値が正真正銘のtrueの時には、という挙動にしたいためにこうなる。
一方でJavaScriptのコーディングをするときには、あまり「===」とか「!==」を使わない。あくまで自分自身の問題だけど、世間的にはJavaScriptでも型比較をよくするものだろうか。因みにprototype.jsの1.4では「!==」が1つ見つかっただけで、他は全て「==」と「!=」だった。
JavaScriptでも

if (0) {
alert("true");
} else {
alert("false");
}

とすれば「false」と表示されるし、0以外の数値なら「true」と表示されるので、感覚的には近いはずなんだけど(ちゃんと型比較しないと意図した結果にならない可能性があるという意味で)。
Javaだとそもそも型(というより参照先か)が同じでないと「==」にtrueが返ってくることはないし、Perl(全然詳しくないけれど)だと、確か数値は「==」で文字列は「eq」みたいな感じで演算子ごと区別されていた気がするので、こうゆうこと考えたことすらない。
何でPHPだとよく「===」とか「!==」を使ってしまうのだろうか。単なる癖かな。