会社帰りに近所の電器店へ寄って、
以上購入。帰宅してからR2蛍光灯のランプを交換しました。無事回復。……「あかり」とか「ホタルック」とかいうファ的だったりトゥルー的だったりする品を買いたかったけど、型が合うのはこれしかなかったんです。
某A氏から連絡がありまして(毎度ありがとうございます……)、fnews系CGIが全部動かなくなっていることに気付きました。エラーメッセージを調べてみると……あー、これPerlのバージョンが上がって、encoding pragmaが動かなくなってるんですね……。最近、この逐次雑記用のSSI(twitterのタイムラインを挿入しているもの)も、動かなくなっていたのを直したんですが、そうかこっちもか。
fnews系って古い上に規模が大きいので、直すの大変なんですよね……。でも放置はできないので、一念発起して書き換えることにしました。暫く本格的な開発はしていませんでしたが、類似の問題が起こる度にちょこちょこと修正はしていました。それでも今回直したコードの中には、前回の修正が2006年なんてものもあったりします。
修正方法は、ハードコーディングしているメッセージを外部ファイル(EUC-JP)に分離し、Encodeモジュールを使ってメッセージカタログとして読み込んで、それを出力するという方法を使いました。コメントが残っているので、ソースコード自体もEUC-JPのままですが、Perlインタプリタが解釈する部分はASCIIになる訳です。これでencodingを消すことができます。内部コードがUTF-8を経由してしまうのは仕方がありませんが、少なくとも自分でエディタでUTF-8なファイルを吐くことはせずに済みます(← UTF-8嫌い)。……evalを使う部分で use utf8;
しないといけなかったのが断腸の思い。何か方法無いかなあ?
ついでに、特定のスクリプトからしか使っていないのに分離していたライブラリを、2つばかり統合しました。fn-p.cgiが作られたら使うつもりだったのかなあ? 何も考えてなかったかな。
COMITIA自転車部向けの原稿がほぼ完成しましたので、LEZYNE SuperGPS購入以来の懸案事項であるFITファイル解析ツールの作成に着手しました。まずはとにかくファイル構造を取り込めるようにして、中身が実際どのように記録されているのかを確認せねば。
FITの解説って、GARMINのPDF原文と、日本語で解説しているWebサイトがあるんですが、前者はとても読み辛く、後者は明確に省略されている部分があるので、両方首っ引きで参照しないとなりません。後者の省略されている部分は、省略したまま実装すると、可変長部分の長さを取得できずにそれ以降がまったく読めなくなりそうなので、前者をきっちり読まないといけないんですよね……どうも用語定義されていないみたいな文書なので、あるページに書かれているのが何についてなのか、ぱっと見で理解できないのが辛いです。
取り敢えず今日の時点で、全体のヘッダ部分は(CRCを除き)取り出せるようになったので、次はメッセージ本体の個々のチャンクを解析する部分を作り始めています。早速、日本語解説で省略されている部分にぶち当たりましたですよ。
会社帰りに方南町経由で新宿へ。COMIC ZIN新宿店にて、
以上購入。あ、「ありすtoありす」を買い忘れた。
甲州街道経由で東口に回り、紀伊國屋書店新宿本店にて、
以上購入。いよいよ核心部の地形図を入手しましたよ。前後区間のも必要かもしれませんが……特に群馬県側。実は新潟県側は、越後湯沢以降について探訪済みですから。
夕食の後、青梅街道・五日市街道経由で帰宅。