Archive for the ‘日記’ Category

今年は市のがん検診制度を利用して、胃がん検診は胃カメラにした。今までの会社の検診では「バリウム」だったが、あれで一体何が分かるのかと思う。胃カメラは費用や時間が掛かるといっても、こうやって市ですら安く提供できるのに、会社の検診センターではしない(「知らない・できないふり」)というのは、明らかな手抜きだと思うし、良識を疑う。人数が多くて大変なのは分かるが、働いていて本当に必要な人に無意味(逆に危険すらある)な検査をして、それでいいと思っているのかと思う。

案内が来るまでは、いわゆる「人間ドック」を考えていたのだが、3-4万円も掛かる(補助は出るものの1万円程度)ので、内容を検討したら、市の制度でもそれほど不足がないので、とりあえずはそれで済ませることにした。一番大きかったのは、胃カメラができることだ。そうでなかったら人間ドックにしたと思う。笑えるのは、人間ドックでもバリウムのところがあることだ。何だかねえ・・・ 不足なのは、腹部超音波だ。自費だと6千円くらい掛かるとのこと。自覚症状がある訳ではなく、今までも毎年していた訳でもなく、半ば趣味で受けていたのでw、来年にした。

探したら、意外にも近くの医院でも胃カメラができるので、久しぶりに行った。電話で聞いたら、慣れない方だったようで、最初はがん検診と特定検診を全部受ける話だったのに、中身の話になって「胃カメラをお願いします」と言ったら、胃カメラだけの話になってしまっていた。それでも、ちゃんと次回(結果を聞く日)は残りを受けられる手配をしたので、問題ない。

意外だったのは、同じ「胃カメラ」でも、通常のものとがん検診のものがあることだった。がん検診のものは、費用を抑えるために生検などはしないとのことだった。自覚症状はないし、去年も問題なかったし、問題があれば知らん顔することはないだろうから、その時はまた診てもらえばいいと思って安い方にした。それから、この医院(医師)は口でなく鼻から入れるのを推しているようだった。打ち合わせの時に鼻と言われて、やっぱり痛そうだし、僕は鼻が詰まり気味で中が狭そうだからちょっと遠慮したのだが、鼻からしたいようだった。それで、鼻が駄目なら口に変更できると言っていたので、嫌な予感はしたものの、物は試しと鼻で同意した。

検査は先週の予定だったのだが、所要である病院に行ったら調子がすごく悪くなってしまい、今日に延ばしてもらった。準備の時に、看護師さんがパイプを挿してどちらの鼻の穴が通りやすそうか調べたら、どちらも入らなくて笑った。慢性鼻炎(鼻詰まり)のせいで中が狭くなっているようだ。それで口に切り替えたと思ったのだが(実際、喉の麻酔もした)、医師は鼻にチャレンジする気満々で、嫌な予感はしたのだが、さすがに止められないからやらせておいたら、意外なことに、最初に右から入れたらスルっと入った。(じゃがさんの情報で)心配していたのだが、鼻は痛くなかった。麻酔が効いたせいかも知れないが、腕がいいのだろう。

管は結構太かった。去年の口からのと同じくらいで、直径5mmはありそうだった。事前に見ていて、「これは無理だろう」と思っていたが、上に書いたようにスルっと入ってしまった。でも、喉は何度も「おえっ」となったので、鼻だからといって全く楽な訳でもなさそうだ。「おえっ」とはなったが、今回の医師は去年よりは上手だと思った。看護師さんも親しみやすくて良かった。

検査中にやたらにほめられて、少し気分が良かったw ただ、看護師さんも医師も、なぜか「上手ですよー」とほめてくれたが、鼻や喉に管を通されるのに上手も下手もあるのだろうか?w そもそも、上手なのは医師と看護師さんだ。

検査後に画像を見た感じでは、大きな問題はなさそうとのことだった。ただ、長年のピロリ菌(除菌済み)のせいで胃壁がザラザラ・デコボコだとか、逆流性食道炎などはあった。たまにある胸焼けもそのせいとのことだった。いい薬があって、最初に連続して飲めば、あとは胸焼けの時に飲むだけでいいというのを処方してもらった。対症療法でずっと飲み続けるのは嫌だが、それならいいと思った。

そして、一番問題なのは血圧だった。医師はそれほどでもなかったが、看護師さんは結構心配してくれて、何度も測り直してくれた。去年から約1年間様子を見ていたのだが、暑くなっても下がる気配がないので、検診などが一段落したらそこで診てもらおうと思っている。今は、上が平均150mmHg前後で、結構頻繁に軽い頭痛がするようになったので、薬も仕方ない。

あと、今年から無料で受けられるという風疹の抗体検査を、先日の打ち合わせのついでにしてもらって、今日結果を教えてもらった。自分では罹った記憶がなく、予防接種もしてないのに「抗体あり」なのは意外だったのだが、かなり多い(200以上)ので、充分接種の必要がないというのがおもしろかった。はしかになったのは記憶にあるが風疹はなく、いつの間にか罹って治っていたのだろうか。風疹をはしかとか水疱瘡と思い込んでいたのかも知れない(昔は、そういうのは特に医者に行くこともなく、行っても特に検査などせず、数日間休んで寝てれば良かったので)。だから、逆にそこら辺の抗体がなくて、あとで罹ってひどい目に遭うのだろうかと今気付いた。が、まあそれもおもしろいからいい(本当に??)。

胃カメラの費用は3200円くらいだった。ただ、逆流性食道炎の薬が出たので、その費用は別に掛かった。

次回持参する大腸がんの検便の説明を看護師さんが丁寧にしてくれたのは、いくら何度もやって慣れているとはいえ、今までそんな説明なんてなかったので、ありがたかったしうれしかった。しかも、(小さくて書きにくいから、)日付を容器に書かなくても、袋に書くだけでいいという、細かい親切心もありがたかった。

結構、小さい子連れの父親(単独)が多くて感心したし、時代を感じた。あの医院は、子どもなどで混んではいるが、雰囲気が良くて、行くと元気が出るのがいい。先日行っただけでなぜか体力を奪われた大病院とはエラい違いだ。ただ、帰って食事をしたら、さすがに疲れが出て来て眠い。と言いつつ、これを書いてしまったw

 

(17:15 加筆・修正)

  •   0
  •   1

前の会社で、若い社員が見たこともない妙な車※で出勤して来たのを見て、何だろうと思って調べたらポルテだった。それ以来、この車を見るたびに(その人を思い出すとともにw)いろいろな想像をする。

※補足: 一見パッソのような感じだったので、「まあ、*さんも(当たり前だけど)普通の車に乗ってるよね」と思って(少しがっかりして)いたのだが、良く見るとすごく妙だったので、俄然気になった。

車の概要

  • 左側だけスライドドア(だけ。普通のドアなし)という、全く不思議な仕様 (同じクラスに、両側スライドドアの車種もあるようだ): こんなの見たことなかった。
  • 元はパッソ(前の型)? (ちょっと見ただけでは、僕には区別ができない)
  • 外見は可愛いけど、やり過ぎでない(派生種のスペイドはBb的雰囲気)ところに好感が持てる。
  • エンブレムが違うタイプがあるようで、そこも謎(スペイド?)。

僕には、普通の人が「どうしてもポルテじゃなきゃいけない」と思う理由が思い浮かばない。普通のコンパクトならパッソでいいだろうし、スライドドアが要るなら両側に付いている車種の方が便利なように思う。

乗っている人を想像してみる。

  • 若い、ちょっとおしゃれなお嬢さん? (実際には主婦やおばさんも居そう)
  • 車にこだわりのある人(変わった仕様に惚れ込んで)
  • 車なら何でもいい人(安いから?)
  • 高齢のご家族思いの人?
  • 不思議ちゃん??

結局、プロファイリングはほとんどできない。平均値を推測すると、「変わり者」なのかも知れないwし、幅広く分散していて平均に意味がないのかも知れない。

それはともかく(そういうことがあるから?)、パッソに比べると親しみが湧くし、乗っている人にも興味が湧く。どういう理由で乗っているにせよ、安直にメジャーに走ってないところに好感が持てるのだ。

(21:16 補足)

  •   0
  •   0

3回目の車検なので、ディーラーに行って来た。車には問題なく、ブレーキ液、LLC、発煙筒の交換程度で済みそうだ。ちょっと気になっていたのだが、ブレーキパッドは意外にもまだ大丈夫なようだ。走行距離は約54500kmで、まだ交換したことがないのだが、随分もつものだ。きっと、(通常時は)車間を充分開けてなるべくブレーキを踏まないようにして、赤信号の前などは、後ろに車が居ない時は惰行しているせいだろう。

ブレーキパッドの減りについては、仮説(もしかしたら定説なのかも)あるいは謎がある。同じスピードから停まるのでも、ゆっくり減速した方が減らない気がする。スピードが同じならエネルギーも同じなので、ブレーキの減りも同じはずなのだが、何かが違うようだ。結構な謎だ。

減り量が加速度に関係するとすれば、強く踏む(急に停める)ほど減りが大きくなるだろう。そういう点では、全然得意でないのだが、物理の力積で考えると、車のスピード(→ 運動量: mvv)を急に(後述の力積: Fttが小さい)減らすと力積(→ FtF)が大きくなるから、ブレーキに掛かる力が大きくなって減るのだろうか? → 式で書いたら分かった気がする。やっぱり、加速度が関係しているようだ。(← 実際には誤りだった。6/25 7:35の追記を参照のこと)

運動量と力積の関係: m⊿v =F⊿t (mは質量) より、
F
= m⊿v/⊿t (⊿v/⊿tは加速度)
速度vの変化時間⊿t が小さいほど(加速度は大きくなり)、力F大きくなる。

(6/25 7:35追記) その後、ブレーキパッドの減り量は、掛ける(踏む)力の大きさだけでなく、力を掛ける(た)時間にもよるのではないかということに気付いた。例えば、弱く掛けても長時間掛け続ければ減り量が大きくなるということだ。すると、上の式ではF⊿t がその力と掛けた時間なので、結局、減り量はm⊿vによることになる。

つまり、一番最初の「エネルギーも同じなので、ブレーキの減りも同じはず」の考えどおり、同じスピードなら減りも同じになりそうだ。ただ、減りに非線形性があって、強く掛けると減りが速く(または遅く)なる可能性もあるが、それについては調べないと分からない。が、理論上は、同じスピードを停めるなら、停まるまでの時間(急ブレーキかそうでないか)に関係なく同じ減りと言えそうだ。

更に余談だが、質量が小さいほど力Fは小さくなるので、軽い車のブレーキは減りにくいだろう。つまり、軽さは正義なのだw あとは、停まりながら(例は書かないが何らかの方法で)車を軽くするとブレーキの減りも減るだろうが、なかなか現実的ではない(爆)。ロケットのような話か。

もう一つ上の式から言えるのは、急加速(加速度が大きい)すると力Fが大きくなるので、(当然ながら)燃料を食う。この時も、軽い車ほど燃料消費量の増加は少ない。やっぱり、軽さは正義なのだ。

ただ、同じ式から軽さにはデメリットもあることも分かる。同じ力を受けた場合に、軽い物ほど加速度が大きくなるのだ。例えば、大型トラックに追突された場合、普通車より軽自動車の方が吹っ飛びやすいってことか(加速度の大きさと吹っ飛ぶのは違う気もするが、ダメージとしては似たようなものか)。

これを緩和するには、ブレーキと同じく現実的でないが、追突される直前に(何らかの方法で: 地面に杭を打つ?)車を重くすればいい。仮に車が充分に重くなって、衝突しても動かなければ、加速度は0だ。果たしてそれで乗員が無事かは疑問だが、そもそも停車していて加速度が0なら動かないので大丈夫という話になる。本当に?? → 普通の車だと(戦車や装甲車の類でないと)、ぺちゃんこになって駄目でしょう。残念。。。

あとは、エンジンブレーキの使用量の差が効くのだろうか。ただ、僕の場合、面倒なので、停まる時にシフトダウンはあまりせずにニュートラルで惰行するから、エンジンブレーキは関係ない気もする。これに関係するのは車の摩擦係数で、エンジンブレーキを使わなくても効くが、まあ、それほど大きくはなさそうだ。

他の可能性としては、仮に完全に停まる場合には1回ごとの減りが同じだとしても、ゆっくり減速するのを習慣にしていると、結果的に長期的には停車する回数が減る(その間に信号が変わるなど)ためにブレーキの減りが少なくて済むことはありそうだ。これは結構おもしろい。

それはともかく、毎回そうなのだが、代車の軽の質の向上に感心した。質といっても無駄な高級「感」などではなく、走行性能である。乗るたびに良くなっている気がする。今回はワゴンRの「ハイブリッド」(本物かは不明w)だったが、あれならコンパクトカーの出る幕はなさそうだ。確かに、安全性は普通車に比べたら劣るのだろうが、まあ、運の問題もあるし、僕は「適宜」でもいいかなと思う。僕が「とりあえず」車を買うことになったら、(安いのであれば、)そこら辺で手を打つだろう(まあ、どちらかと言えばアルトの方が趣味だがw)。他人にも勧めたいが、安全性の懸念があるので、敢えてはしない。

出だしや巡航では全く不満はない。出だしでは、軽くアクセルを踏むだけでいつの間にか60km/hくらい出ていて、後ろの車と距離が付いていることが多かった。モーターアシストのおかげか、全然うるさくならないので、スピードが分からないせいもありそうだ。もちろん、小さくて軽くて取り回しやすいのはいい。

欠点としては、(ATはずっと昔からそんな感じなのだが、)中間加速の時だけ、キックダウンしてもうるさくなるだけでもたつくことくらいだ。この点では是非MTにしたい。それでも、難しいことを考えず、余裕で運転できるのはいい。降りる時に気付いたのだが、意外にもドアがかなり重そうで、随分安全そうな感じがした(本当かどうかは不明)。あと、アイドリングストップは全力で止(や)めて欲しい。そのうち、そういうハッシュタグ(#stop-idling-stop?)でもできないものか? 仮に買うとしたら、ないものに限る(なんてこと言ってるから、選択肢が減るのだがw)。

あと、オーディオも(ラジオも)カーナビもないのに、なぜかヘッドアップディスプレイのスピードメーターが付いていたのだが、意味あるのだろうか? 元々のメーターが中央に寄っていて見難く(そのせいで、しばらくスピードが分からなかった)、その代わりになるからいいが、それならメーターを普通の場所に付ければ充分な気がした。あと、最初、メーターに"D"と出ている(写真中央付近)のが"0"(km/h)に見えて、HUDに出しているから"0"にしているのかと誤解した。

それから、代車のエアコンは(新車らしいにも関わらず)今の車と同じくらい効かないw だから、帰納的に(?)僕の車のエアコンには問題なさそうなことが分かった。

帰路、すごく懐かしいスカイラインがあった。小学生の頃、見た気がする。「ケンメリ」なのだろうか(その頃は全然詳しくなかったので、分からない → 調べたら、燃料タンクの蓋の位置から、その次の「ジャパン」のようだ)。ナンバーも当時の感じ(栃57)だから、ずっと乗っているのだろうか? 廃車せずにいればそのままなのか。当時の車らしく、タイヤが分厚かった。さすがに僕でも、少し薄い方がいいと思った。あと、仕方ないことだが、ボディなどに少し錆が出ていた。

ディーラーはいつものようにアットホームで良かった。先日所要で行ったある病院(人の問題だけではないが、行くだけで疲れ果てる※)とは全然違う。あと、担当のおじさんは、「そろそろ乗り換えはどうですかー?」などと聞くなんて野暮なことをしないばかりか、相変わらず「アルトワークスはサスが硬過ぎるから勧めない」と言っていた。いつもながら、そこが問題だw それにしても、普通の店なら、たとえ硬過ぎて実用性が皆無だって、「本格的な走りができて速いですよー」とか勧めて来るだろうに、本当に正直なところにいつも参っている。そこが彼の技なのかw

※金曜にその病院に行ったら(僕の治療などではない)どうにも調子が悪くなって、昨日はダウンしていた。そのため、昨日予定していた胃カメラを延期した。今朝も回復したとは言えなかったので、車検を延期しようか迷ったのだが、頑張って行ったら元気が出た。

 

PS. 無事終わって、さっき引き取って来た。整備費用が意外に高く、約3.6万円(税込み)だった。10万円持っていけば(自賠責や税金などを合わせても)お釣りが来るだろうと高をくくっていたのだが、あっさり超えた。「結構高いですね」と口から出そうになったが、止めた。普通の店なら絶対に言うが、それほどその店を信頼しているのだ。

調べてみると、高かったのはLLCの部品代(液の代金)で、6000円(1500円/l)だった。確かに、この分がなければ10万円で足りて、想定内だった。LLCの交換は自分では無理だ(やればできるが、やる気はしない。手間以外にリスクも高い)。まあ、7年で交換したので、1年当たりでは約千円と安いものだ。他の料金はリーズナブルだった。明細を見るまでは、「発煙筒が高いのかな(3千円くらいかと思った)。自分で買えば良かったか、失敗したな」と思っていたが、そんなことはなく、千円未満だったw ただ、消費税が高く、3千円近かった。秋からは更に上がるのかと思うと、遊民としては溜息しか出ない・・・

ちなみに、いつものように、帰る時にはブレーキが効きすぎて(代車よりずっと効くので、そう感じる)戸惑った。あと、代車に比べて意外に加速が悪かったw おそらく、代車は感じが良く分からないからテキトーにアクセルを踏むので、加速し過ぎていたのだろう。ただ、当たり前のことだが、「軽さ」は代車の方が確実に上だった。これはもう、どうしようもない。それにしても、自分の車に戻って感じた、シートや運転席のフィット(タイト)感とか、ギアがスコっと入るのは快感だった。

(13:37, 14:09 わずかに変更+加筆; 19:22 終わった件を追記, 題を少し変更; 6/25 7:35 ブレーキの減り量の考察について訂正)

  •   0
  •   0

やっぱり、役人てのは平均値としてはクソアホ無能揃いだということを確信した。

ニュースで、茨城県の読みがなを30年以上も誤ったままにしている役所の話を読んだが、その画像を見て、それよりもムカつくことに気付いた。

画像の赤丸はそのニュースに元々付いていたもの。下の茶色は僕が気付いたものだ。

30年以上も読みがなすら直さないところでも、元号は一瞬で直せるすのか。

どこを見て仕事をしているか(いや、そもそも仕事なんてしてないのだろう)が良く分かる。全くアホかバカかだよ。「お前らにやる金なんてない!」と言いたい。何が「マスターデータが誤っている」、「会員が多い」だよ。元号だって同じことだろうが。その論理なら、未だに「昭和」で出せよ。クソが!

(2番目) 以下は6/12に書き掛けたものの、全くおもしろくないので止めたものだが、ついでに出す。

悪いことがない振りをしていれば、すべてうまく行くのか。自分で書かせた報告書を「読んでいない」と威張って受け取らなければ、それが指摘しているであろう問題までなくなるのか。

おもしろい論理だ。小学生レベルだな。いや、小学生に失礼かも知れない。

そして、その問題が発現する頃にはリタイアして悠々自適で知らん顔? それなら本当に問題は起こらないね。彼らだけには。

とにかく、気楽にお仕事をしている連中につける薬はない。

  •   1
  •   0

でも、そういう時に作ったものには結構高い確率でバグが潜んでいるので、喜ばしいばかりでもないw

半ば疲れつつも飽きずに作っているMlhi(音楽再生履歴・感想の記録・検索システム)のwebの見た目を改良できたので、結構進んだ気がした。とはいえ、それは、SpotifyのミニプレーヤーにMlhi対応機能を組み込むための準備なので、実際にはそれほど進んでいない。というのは昨日の話で、今日は更に進み、ミニプレーヤーにMlhi対応機能を組み込んで動き出した。いろいろ改良したいことはあるが、「一段落」している。

昨日からの作業は、ミニプレーヤーに対応機能を組み込むための準備とその実装である。いろいろな機能を組み込みたいが、「ミニ」なので表示に使える面積が小さい。そこで、何をどのように表示するかの検討が重要だ。

今回組み込もうとした機能は、以下である。

  • 評価の表示
  • 再生履歴の表示
    • 再生回数
    • 完奏率

評価はwebと同様にアイコン(♥など)と色でいいが、再生履歴は、回数と完奏率を別々に出すのではスペースを食うので、減らし方を考えた。デザインは全く素人だが、その代わりに(結果的に)工学的に考えた。

スペースを節約するため、表示する部品を一つにするとすると、2つの情報を1つにすることになるので、2次元とか3次元的な表示になるのだろう。最初は、マークの形と色で表すとか小さな円グラフにするとかを考えたが、どうも今ひとつだった。完奏率は、やっぱりwebの棒グラフが見やすい。それで、ミニプレーヤーを眺めながら考えているるうちに、再生位置のバー(プログレスバー)が目に付いた。これがうまく使えれば、スペースとしては全く問題ない。そして、プログレスバーの下に完奏率の棒グラフを並べることを思い付いた。この時、再生回数はグラフの色で表すのだ。早速、イメージ図を描いて検討した。

なかなか良さそうな感じなので、試してみることにした。ただ、いきなりミニプレーヤーに入れるのは大変だし、駄目だった時に疲れ果てるので、試しにwebに入れてみた。すると、結構いい感じにできたので、採用することにした(webもこの表示に変更した)。ついでに、以前からやりたかったのだが、アイコンなどへのマウスオーバーで値(評価の値や再生回数)を出せるようにした(上方のベージュ色の四角は、完奏率にマウスオーバー)。再生回数を表示しないようにしたので、なおさらこの機能が必要になったのだ。

あとで気付いたのだが、棒グラフでの表示方法は、以前から謎だったYouTubeでの良い評価率の表示(なのだろうかと、今推測している)に似ている。棒を細くするところは、まさにそのものだ。

Webのいいところは、ページの表示内容をプログラムで書けるので、ある値の色やその段階がどのようになるか試しに表示させられることだ。これで色や計算式を調整・確認した。のだが、例によって思わぬ間違いがあった。再生回数から色への変換式に対数を使ったのだが、PHPのlog()は自然対数(普通は"ln()"と書くと思っていたのだが、log10()があるし、数学ではlogとlog10だから、僕の思い違いかも・・・)で、想定していた常用対数(底が10, "log10()")でないために、実際には変な値になっていた。それでも、対数や色は細かく確認できない(やればできるが、それらしかったので正しいと思い込んだ)ために気付かなかったのだが、ミニプレーヤー(計算にはbcというプログラムを使ったので、自然対数しか使えない)に組み込んだ時にwebと色や係数が違うことでようやく気付いたw

上に少し書いたが、再生回数を色で表すために数値を色に変換する処理が必要で、これにも少し苦労した。最初は、グラデーションの方法・式(検索するといろいろ出てくる。が、ほとんどはRGBで計算していて、HSVでなくていいのかなと思う)で無段階にする(例: サーモグラフィーのようなイメージ)ことを考えたが、そこまで細かく色が判別できる訳ではないし、その必要もないし、グラデーションでは常に期待する(好きな)色が出る訳ではないので、好きな系統の色を選んで10段階(色)にすることにした(今はとても便利で、色チャートのサイトがいっぱいあって、いくらでも色が選べる → 例1, 例2)。ただ、それでも問題はあって、使い続けると曲の再生回数が無限に増えるので、いつかはオーバーフローして「最大」の色ばかりになってしまうことだ。色数を固定したままそれを防ぐには、何らかの方法で再生回数を色に割り当てる(対応させる)必要がある。

再生回数の最大値は、将来は例えば100回とかにもなるだろうし、一方で、常に「1回」という曲もあるだろうから、最大値との比でのリニアな変換にしたら、全体としては再生回数の多い曲は少なく、ほとんどの曲は小さい値だろうから、(少ない回数を薄い色に割り当てた場合)ほとんど見えなくなってしまう。それで、標準偏差で再生回数の分布を求めて「何とか」(ここには特にアイデアはなかったw)できないかと思ったのだが、使っているDBのSQLiteにはその機能がない。自分でSQLを書けば出せるが面倒なので止めて、ふとひらめいた対数を使うことにした(音量は対数表示することから連想したのだと思う)。対数を使うことで、小さい値の変化は拡大され、大きい値では圧縮されるので、結果的に幅の広い再生回数の違いが見やすくなるはずだと考えた。音で言えば、レベルメーター(今は滅多に見ないが・・・)の棒の長さを色にすることに相当する。この対数が上に書いたものである。

その変換は、基本的には、DBに記録された曲のうちで最大の再生回数を求め(この機能はSQLiteにもある。こういうのが一発でできるところが、DBの深みにはまる原因なのかも知れないw)、それと対象の曲の再生回数の比の対数で色の番号を決めている。どういう訳か、実際の変換式は複雑になったのだが、その理由はすっかり忘れたw おそらく、対数には0を与えられないとか、値域(色の番号)を0から9にするとか、そういう理由だったと思う。

ちなみに、最大の再生回数を求めるにはちょっとしたSQLを実行する必要があって、そのためのプログラムを作る必要があると思い、疲れているので「またかよー(一体、いくつ作ればいいんだ?)」とうんざりな気分になったのだが、曲をSpotifyとDBから検索するために作ったプログラム(webで検索に使っているもの)にそのSQLの判定部を「適当に」(= "1 order by played_cnt desc limit 0,1")入れたらできてしまったので、ちょっと驚いた。自分では全く想定していなかった用途に使えるのはおもしろいけど、結構怖い。こういうところからセキュリティホールが生まれるのかも知れない。

ここまでが昨日の話(log/log10の誤りに気付いた話とSQLの話を除く)で、今日、ミニプレーヤーに組み込んだ。久し振りのTck/Tk(どう考えても仕様が狂っている・・・)や肥大化したシェルスクリプト(調べたら、約1万行になっていた・・・)に手こずったが、さっき、何とか動き出した

早速使ってみると、満足するどころかすぐにいくつも文句が出て来るw 例えば、完奏率の棒グラフの色が鮮やか過ぎて目障りだとか、コメント(せめて有無)も見たい(→ とりあえず、コメントがあればアイコンを出し、マウスオーバーで出るようにできたが、間抜けな場合もあるw: 6/20 16:39 → 暫定対応した。: 6/22 8:41)とか、webと同様にマウスオーバーで値を見たい(→ それほど手間が掛からずに追加できた。: 6/20 12:34)などだ(我ながら、全くわがままだ)。もちろん、アイコンのクリックで評価などの値を設定したいとか、GMBのミニプレーヤーにも組み込みたいなどの希望・予定はあるが、次の段階の話だ。

以前苦しんだフォントと同様に、色も奥が深く、webと同じ値でもミニプレーヤーでは違って見える。おそらく、大きさ(面積)や背景や周囲の色によるのだろう。鮮やか過ぎたものは、とり急ぎ渋目の色に変えたのだが、この辺りはじっくり調整する必要がありそうだ。(こういう時に、変更したい箇所で右クリックすると色チャートが出て変更できたりすると便利だが、さすがにそれは全くもって無理だw)

 

(6/20 7:43 加筆・修正; 6/20 12:34, 16:39 マウスオーバーを追加した件を追記, わずかに修正)

  •   0
  •   1

音楽プレーヤ(GMB)に表示されたSex Pistolsのアルバム(1977)のジャケットを見て、ふと思った。(天ぷらみたいにw)「ボロクソ」の語源は"bollocks"なのかと? が、調べたらそういう話はまったく出て来なかったので、偶然の一致のようだ。まあ、「一致」とは書いたものの、意味は同じゃないしね。でも、ちょっと残念だw

 

ちなみに、僕はこのバンドが全然好きじゃない。近年、調子は悪かったものの時間には余裕があった時に、「いろいろな音楽を聴いてみよう」と思って、レンタルしたり買いまくった時期があって、その時のものだ。そもそも、買うのも無駄だと思って散々迷った挙句にレンタルしたくらいだw ただ、偶然ではあるが、このバンドに居たらしい人のバンド(Public Image Ltd)が大昔に出した、"Compact disc"(1986)(元々からなのか、いろいろな形態があるからなのか、今は"Album"と呼んでいるようだ※)というアルバムは結構好きだ。学生の頃、店頭で見て、名前以外は何も知らなかったものの、いかにも人を喰ったようなタイトルや、ジャケットがいい感じだったので、買った。

※今、Spotifyでこのアルバムを見てみたら、ジャケット画像は"album"なのにアルバム名は"Compact Disc"になっていて、なかなか不思議だ。あと、Discogsを見たら、このアルバムには"Cassette"もあるようで、こういう(しょうもないことで遊ぶ)のは結構好きだw

あと、まったくどうでもいい(良くない)ことだが、このバンドの名前の最後に"."は付くのか付かないのか(彼らのサイトやWikipediaにはなく、Spotifyや僕の取り込んだCD(のデータ)にはある)、気になって夜も眠れなくなりそうだw

ついでに話を戻すと、"bollocks"は"bolloc"の複数形ではなく、元からsが付くようだ。これはこの単語が指す物から来ているのだろうか? 世の中に謎は多いw

  • Compact Disc

    Compact Disc

    Compact Disc, an album by Public Image Ltd. on Spo…

  •   0
  •   0

ようやく正式な名前を決めた、Music listening history and impressions "Mlhi" DB (音楽再生履歴と感想の記録・検索システム※)に、先日やる気が出てしまったgmusicbrowser(GMB)対応機能にを追加しようと作り出し、さっきようやく動き出したのだが、気付いたら一週間経っていたw

※日本語の名前は今考えたので、やけに長いうえにダサいw

まあ、見た目はほとんど変わらない(そういうふうに作ったので)。GMBで再生した曲は再生の都度DBに記録され、履歴webに出る。Spotifyと同様に完奏率が出るし、評価やコメントを付けることもできる(それ以外の細かいことはまだだが)。

GMB対応に伴うDBの構成変更の内容が確定していなかったのと、うっかりDBを壊すのが怖いので、今はテスト用のDBを使っているが、もう少ししたら本物に切り替えたい。

それから、Spotifyでもそうしたのだが、再生した曲のDBへの登録を外部プロセスでなく、GMB本体(Spotifyではミニプレーヤー)に組み込んだ。これもまだできたてで怖いのだが、外部プロセスの場合、再生開始してからDBに登録されるまで30秒近く掛かっていて、いつも「遅いなあ、まだかよ」と思っていたのが、瞬時に(数秒以内に)登録されるようになったのが大変気持ちいい。これなんだよ! (と、ひとりごつw)

以下に、少し実装の話を書く。

  • 以下のような流れでGMBの再生履歴をDBに登録する。
    1. GMBで曲の再生を開始する。
    2. GMBはDB登録プログラムにトラックIDを指定して、「再生開始の登録」として起動する。
    3. DB登録プログラムは、GMBからDbusで曲情報を取得して本システムのトラックIDを生成し、再生開始日時と再生回数をDBに登録(それぞれ、追記、加算)する。
    4. 最初に再生する曲の場合、主な曲情報(タイトル、アーティスト名など)と完奏率、評価、コメントなどもDBに登録(転記)する。
    5. その曲の再生が終了する。
    6. GMBはDB登録プログラムにトラックIDと完奏率を指定して「再生終了の登録」として起動する。
    7. DB登録プログラムは完奏率をDBに登録(加算)する。
  • GMBの曲のトラックIDは、MD5で音響指紋のハッシュを求め、それをBase64(base64url)で短くしたものにした。
    • 今は、仮にGMBの曲がSpotifyと同じものでも関連付かないが、将来は(ISRCへの変換・対応テーブルのようなものを作って、)同じ演奏を関連付けられるようにしたい。
  • 本システムでは複数種類のトラックID(例: ISRC, Spotify, GMB, 音響指紋)を混在して使うが、それらをプリフィクスで区別(URLのスキームのような感じ)するようにしている。
  • GMBでのジャケット画像は当然ながらローカルのファイルだが、近頃は(リモートの)webページと(ローカルの)file:スキームは混在して使えないようなので、画像ファイルをsym-linkで仮想的にwebサーバの配下に置き、リモートのファイルとして指定している。馬鹿らしいが、サーバの設定では対処できなかったので、そうした。GMBの演奏がSpotifyと関連付けられるようになれば、Spotifyの画像を参照することもできるが、それも馬鹿らしい。
    • なお、ジャケット画像が曲のファイルに埋め込まれている場合もあるが、それを表示するには、抽出して一時ファイルを作ることになって管理が煩雑になるので、現在は使っていない。
  • GMBは、内部に曲の再生開始と終了時に実行される関数があり、しかも、終了時に完奏率を計算してくれるので、事前に「面倒だ」と思っていたのが馬鹿らしいほど、手間が掛からずにさらっと組み込めた。
    • また、今までの再生履歴を記録してくれていたのもありがたい。ただ、今までにファイルを移動したりして履歴が消えてしまったものがあるのが残念だ。今後は本システムを使うことで、そういう問題を防げる。
  • DBには2つフィールド(カラム)を追加した。音楽プレーヤspecificなトラックIDとアルバムIDである(後者は念のために追加したが、まだ使っていない)。将来的には、現在あるSpotfify専用のトラックIDとアルバムIDを廃止して、こちらだけにしたい。

思わぬ利点は、今までは、GMBはSpotifyと違って評価が付けられない(実際にはできる)とか再生履歴が残らない(上記のとおり、実際には残る)とかコメントが書けない(実際には書ける)などの理由で(要は、見やすくないとか手軽に更新できないのが面倒だったようだ)、余りGMBで聴かなくなっていたのだが、これができてから、(テストの意味もあるが、)俄然使う気が起こったことだ。将来的には、SpotifyとGMBをシームレスに(シャフル)再生できそうな(したい)気がして来て、夢にはまったく限りがないw

BTTFで言えば、やっと落ち着いたと思っていたら、またドクが来て、「未来に道は要らない!」とか言われて引き戻されるようなものだw

あと、やけに長いコメントが入っている曲が見付かったりする(CD-DBに入っていたのが取り込み時にそのまま入ったのだろうが、今まで全然知らなかった。 ← 実際にはコメントに購入日を記載した時に気付いたはずだが、すっかり忘れていた)のは、おもしろいのはもちろん、今までは不便で活用できなかった情報が生かせそうな点もwebでの履歴表示のいいところだ。

これでもまだ83%といった感じだが、大分落ち着いてきた。でも、プログラム中に山ほど"TODO"があるので、なかなか先は長い。そういうのは普段は何もないのだが、突然牙を剥くので(早速、ここに載せる画像を追加する時に出たw)まったく油断できない。

 

(6/17 19:46 若干加筆・修正)

  •   0
  •   2

時々、なぜか、(意識高そうに見える)しょうもないものを流行らせようとする技術系の人が居る。この前はマストドンとかいう名前すらクソダサイのがあったが、今日はマークダウン(以下MD)だ。やれやれ。

Wordが面倒だからMDを使おうとか、「お前、何も分かってないな」だ。MDこそ面倒だ。Wordをテキトーに使う方がずっと楽だ。それに、誰も使いたくてWordを使って居る訳じゃない。

これを読んだ普通の人が、(まあ、滅多に居ないと思うが)「よーし、僕もMD使っちゃうぞー!」とか思ってやりだしたら、ただでさえ低い日本の生産性はさらに低下するだろう。まあ、それでも個人の趣味で使うならいいが、最後にとんでもないことが書いてあって、この人に技術的なセンスはないと確信した※。

MDをPDFに変換してビジネスの書類にする??

は? アフォですか?

無理なうえに無意味・無駄だ。こいつは何も分かってない! そもそも、PDFに変換するならMDなんて使う必要も意味もないし、仕事の書類なんてさまざまな書式があるのに、それに合わせられないし、一番問題だと思うのは、PDFなんかにしたら、データが再利用できないことだ。MDと違ってそれっきりで、FAXと同じだ。それでいいの?? アナタノアタマハショウワデスカ?

 

蛇足だが、「じゃあどうするの?」と言われたら、僕ならこうする。

Wordで出す必要があって、書式が決まっていて(定形の書式)、何度も出す必要があって、しかも、自分で打ち込むのが厄介なら(こんなことは滅多にないが)、そのWordドキュメントを作るプログラムを作る。書類ごとに変わる箇所だけをテキストで書くとかフォームに打ち込んでそのプログラムに通せば、Wordができるようにする。これこそ楽ちんだ。何度も出さないなら、テキトーにWordで書けばいい。これの何が大変なのか? あと、なぜかPDFで出す必要があって、書式が自由なら、EvernoteとかLibreOfficeでいいよ。書式が決まっているなら上と同じだ。その他は自分で考えろ(ただし、MD以外でね)w

 

※この人の経歴を見ると「うーむ・・・」と思わされるが、やっぱりそうだった。

 

(6/16 18:36 スマフォで認証ダイアログが出て鬱陶しいので、元記事のリンクの仕方を変更)

  •   1
  •   0

Jayson Gillhamのラフマニノフのピアノ協奏曲 第2番を聴きながら、例のDBに感想を書いていて思った。(第2楽章について)

オケもピアノもちょっと溜めが足りない(あっさりしている)感じ。

の「『溜めが足りない』とか『あっさりしている』って何だろうかね」と。

他には、近頃良く使う「わざとらしい」もある。楽譜に書いてあるのかないのか(ない気がする。テヌートのようなのは書いてありそうだが、少し違う気もする)、音楽用語があるのかないのか(これはあると思う)、分からないし、あってもなくてもどっちでもいいが、そう思った理由を自分で分からないので(いや、分かっては居るが言葉にできないだけなんだと思う。更に言えば、この、「文字」として書く時に問題になっているだけで、自分の感情としては理路整然としていて、何も不明なことはない。当たり前だが)、この表現は果たして正しいのか、ちょっと不安、というか、疑問に思った。この「正しい」というのも難しい。おそらく、「みんなが使っている」という意味だろうか。でも、別に他の人が使ってなくたって気にしないから、全く不安ではない。が、他の人に全く伝わらなかったら困るから、そこが「不安」となる。

いずれにしても、おもしろいのは、「曲がいい」ことは感じることだ(もう何百回も聴いているから、当たり前のことだ)。だからこそ、「なんでそういう風に弾くかな」(あくまでも個人的な感想w)と思ってしまうのだ。

 

書いてから少し考えたら、

自分でしか読まないなら、他人に分かる表現である必要はない。

が、

あとで自分で読んで分かる表現で書かないと、意味がない。

のが難しいと思った。上記の「溜めが足りない」などはまだいいが、例えば、その時の気分を率直に書いて(すごく良かった時に)「!!!」とかじゃ余り意味がないし、かといって、自分しか読まないのに長々と書くのは面倒なので、そこはうまい方法(技術)があるといいと思う。例えば、"."を押すだけで、その時の気持ちが記録できるといい。

そういうのが、配信などでの「評価」(例: ★の数、Thumbs up/down)に繋がっているのかも知れない。それだけでは足りないが。

  •   0
  •   0

鋭意寄り道しながら開発中の音楽再生履歴記録・検索システム(仮)の横道の、gmusicbrowser(GMB)で再生した曲も履歴DBに入れようと四苦八苦準備している中で出たこぼれ話。

そもそもは、GMBで各演奏(録音, 曲)を区別する値「トラックID」は、音響指紋をハッシュ(ダイジェスト)処理で短くしたものを使う方針にした時、有名なハッシュ処理方式のMD5の結果が32文字と長いのが気に入らなくて、何とかしたいと思ったのが発端である。そんな、とても細かい話が書いてあるので、読まれる方はほとんど居ない気はするが、(いつものように)僕の整理のために書く。

まあ、そもそも、トラックIDは曲名などではないので、手で打ち込んだり目で見て何かする(読む)ことはないし、長いとはいっても音響指紋自体ではないので1つが数KBになる訳でもないから、それによってDBのサイズが肥大化することもないので、完全に好みの問題だ(有名な林檎のオジさんがやってそうな話かもw)。

なぜ"CRC48"がないのか?

はじめに目を付けたのはCRCである。ただ、僕が使っているPHPには32ビット(8文字)のCRC32しかなく、どうも心許ない気がした。具体的には、ID(曲数)が増えた時に重複(「衝突」)しそうな気がした。とは言え、僕はこの分野に詳しくないので、本当に32ビットで不十分なのかの確証はない(理論上は、32ビットでは約40億(232-1)通りの表現ができるが、重複(冗長性)を持たせているだろうから、現実的にはもっと少なそうだ。それでも、数万曲だったら完全に余裕だろう。ただ、ハッシュの表現範囲がどうやって決まるのかが分からないので、特定の使い方で範囲が狭くなるのなら安心できないと思った)。まあ、これも全く気分的な問題だ。

探すと、64ビットのCRC64(16文字)はあった。が、それは少し長く、僕としては12文字くらいのが欲しかった。それは"CRC48"というべきものなのだが、いくら探してもほとんど出て来ない。調べると、ハッシュ値を短くする方法が分かったので、それでCRC64を48ビットに短くできた。最初は単純にマスク(≒除算または剰余)して短くすればいいのかとは思ったのだが、詳しくないので、安直なことをしてハッシュの強度が下がる(→ 衝突しやすくなる)のが嫌なので、丹念に調べた。結局は普通にマスクしても問題なさそうだった。念入りにするには、長いハッシュを分割してXORする方法があった。

それにしても、CRC48がないのが不思議だ。Stack overflow(コンピュータ技術者のQ&Aサイト)でも、「結構要る」という意見もあった(UUIDに使うらしい)。全く不便だ。

音響指紋計算プログラムfpcalcの隠れオプション-hashの不思議

CRC48を探したり試行錯誤しているうちに、音響指紋の計算に使っているfpcalcに、探していたものそのものかも知れないオプションがあることが分かった。それが-hashで、検索してもほとんど出て来ないので、知っている人は少なそうだ。

これを指定すると、音響指紋の値に加えて、音響指紋のハッシュ値も出てくる。この値があまりにも妙なので、うなってしまった。この値を使うと、同じ演奏(録音)が分かる可能性がある。ただ、残念ながら、常に分かるとは限らない。

同じ演奏(録音)のハッシュ値は同じか近いことがあるが、全く違うこともある。全く同じファイルなら同じだが、リマスターや単にベスト盤に入っているだけで異なってしまうことがあった。逆に、リマスターでもオリジナル版でもモノラル版でもレコード版でも同じ値になったりもした。同じ演奏で値が違う場合も、最後の桁が1だけ違う場合もあったし、特定の桁が思わせぶりに違う場合もあった。以下にその例を示す。

  • "Bohemian Rhapsody": b04cb826 (リマスターでないベスト盤), 904cb826 (リマスターとそうでないオリジナルアルバム)
  • "Crazy Little Thing Called Love": d434a0ae (リマスターでないオリジナルアルバムと新しいベスト盤), d400a0ae (リマスターでないベスト盤), d42ca02e (リマスターのオリジナルアルバム)

謎の挙動だ。それぞれの桁に意味があるような気がして、それを突き詰めるのもおもしろそうだったが、いつも同じ動きをしないと不便なので(僕としては、同じ演奏ならすべて同じ値になるか、同じファイルでない限り、全部別になって欲しい)、使うのは見送った。そもそも、同じ演奏(録音)かどうかは音響指紋の間の「距離」で確率として表すとのことなので、ハッシュは簡易的に似た演奏を見分けるにはいいだろうが(-hashオプションを紹介しているページには、重複したファイルを減らす使い方が書いてあった)、IDとして使うのは良くなさそうだ。

SHA-3(というかWikipedia)に騙されたw

CRC48に落ち着き掛けたのだが、厳密に言えば、CRCはハッシュではないし、自分で勝手に短くするのが気に入らず、任意の長さで出せる標準的なハッシュ方式を探した。すると、SHA-3はそれができるとのことだったので、プログラムをダウンロードして48ビットで試してみたら、エラーになった。調べたら、最短ビット数(224ビット)が決まっていた。あと、任意でなく数とおりしか指定できなかった。任意の長さにできるというのは、確かWikipediaで見たのだが、鵜呑みにするのは良くないと実感した。今回はちゃんと確かめたから良かった。もしかしたら、プログラムを変更すればできたのかも知れないが、中身がチンプンカンプンだった。

MD5を短くする。

SHA-3は諦めたものの、「短いハッシュ」で調べているうちに、Stack overflowで目から鱗のアイデアを見付けた。Base64エンコーディングで文字数を減らすのだ。ハッシュ値は普通は、"10f280198c517c830fa302c4e1bcca7b"(MD5の例)のように16進数で書く。これは元々は数値なので、Base64で表せば短くできるのだ。簡単に言うと、16進数は0-9とa-fしか使わないが、Base64はもっと多くの文字を使うから1桁で示せる値が多いので、短く書ける(桁数が減る)。

MD5は128ビットと数が大きいので手こずったが、できた。元は32文字だったのが"EPKAGYxRfIMPowLE4bzKew"のように22文字で表わすことができ、10文字も短くできた。希望は12文字くらいだったが、(今はobsoleteになっているけど)実績あるハッシュ処理を使うことで、衝突の心配が皆無になるだろうから許せると思い、今に至る。これで、いつでもGMBで再生した曲をDBに登録できる(屏風の中から虎を出してくれたらそのプログラムを書きさえすればねw)。

なお、この方法でCRC64も12文字にできる(基本的には、数値なら何でも可)ので、途中まではそれを使おうとしていたが、CRC48を止めたのと同じ理由でMD5の方が良さそうだったので乗り換えた。

(6/11 6:09追記) ちょっと思い付いて調べたら、SpotifyのトラックIDも僕と同じ22文字だった(アルバムIDも同じ)。これもBase64みたいな表記なので(例: 7oYN5pKRoFiVLoDFK6R3O1)、元はMD5のような長さの値なのだろう。偶然の一致だけどおもしろい。ハッシュ値だとしたら、何の情報を元にしているのか興味あるところだ。そして、(これは想像だが、)ID数が数億になるとCRC64では不足するのかも知れない。もちろん、使い切るまで衝突しない訳ではないので、ある程度の余裕が要ると思う。その点で、MD5にしたのは正解だったのではないか。

それに引き換え、(前にも書いたが)マイナンバーは脆弱だ。個人の番号は10進数で12桁なので全く余裕がない。当てずっぽうな値でも有効になるだろうし、(おそらくありえないがw、)長く使われ続けると不足するので、将来は死んだ人の番号を使い回す羽目になると思う。素人でも分かるくらいのしょうもなさだ。そのうち、そういう問題の解消を名目にしてまた新しい仕組みが(利権の確保とともに)生まれるのだろう。役人連中は楽だね。

似たようなことはISRCにも言える。12桁と短いうえに、区分されていて使える数が少ないから、いつかは破綻するし、年を2桁で表記するからとても古い録音は扱えないし(例えば、"19"は1919年なのか2019年なのか? まあ、仕組みができてから録音されたものを登録するスタンスなのだろうが・・・)、2100年以降は使えない。始まったのは2000年以降と推測するが、だとしたら日本の役所並みにお粗末だ。

ちなみに、確認と評価のため、音響指紋のMD5でGMBに入っている全曲(約1.5万曲)のトラックIDを生成してみたところ、90組くらい同じIDが出たが、衝突ではなく、元が同じ演奏(例: 重複したファイル、タグを変えたものとオリジナル、(ごくまれに)収録アルバムが異なる同じ演奏)のためだったので、本来の目的が達成できていることが分かったし、問題なくIDに使えることも分かったので安心した。あと、大量の曲ファイルに重複がほとんどなかったのには、我ながら感心した。なお、音響指紋の計算(fpcalc)が意外に遅く、大量の曲の処理には結構時間が掛かった。

心なしか、ものすご〜く本題から外れている気がするし、ちょっと買い物に行くのにハマーとかモビルスーツに乗るようなくらいやり過ぎな気がしないでもないが、趣味だし、いろいろな知識が得られたので良しとしようw

(6/11 5:41, 6:09 わずかに加筆・修正、追記; 6/11 10:32 わずかに補足)

  •   0
  •   1