日記

■2017年12月31日(日)13:31  終わらないインストール
インストールが進まない
Windows 10無償アップグレードサービス期に更新に失敗して動かなくなっていたCore i3マシンにWindows 10のパッケージ版を入れようとしたのですが、途中でビジーになったまま帰ってきません。怪しい計測ボードをつけているからかもしれないので、外して再トライでしょうか。

フィッシュアンドチップス
久しぶりにフィッシュアンドチップスです。日本でやると結構お金がかかるのですが、ともかくタラ(まあ、切り身でよいですが、半身が安く売っていたらその方がよい)とジャガイモ相当量(今回は10個使いました)を用意し、まずジャガイモを柵切りにして揚げます。二度揚げするのもよいですが、今回は某書を参考に大きめのフライパンに芋を全量突っ込み、浸るくらい油を入れて室温から加熱する方法を用いました。あまりに強火だと焦がしそうですが、カセットコンロフルパワーで大丈夫でした。その後タラをから揚げにするわけですが、今回は片栗粉を使ってみました。衣をつけずに揚げると崩れます(一度目に白濁した油に懲りて二度目に衣をつけずに揚げてひどいことになりました)。最後に酢をかけて食べます。ワインビネガーもよいですが、今回はモルトビネガーです。芋は上手に揚がったのですが、タラはもう少ししっかり揚げてもよいかもしれません。片栗粉は、薄力粉と違って油が濁りにくいですが、衣が厚くなると食感がもさもさになります。軽くはたくくらいでよいようです。揚げたタラと芋が皿に山盛りというおやつどころでない量になりますが、ヨーロッパでの標準はこうです。水筒一杯のミルクティーを甘くして添えるか、コーラの500mlボトルにするかは好み次第ですね(500mlの缶ビールというのもありです)。こういうものは労働者階級の食べ物なので、ひたすら量を稼いで安上がりに出すのが結果としておいしかったりするのですが、日本で自炊でやると10ユーロほどもかかります。でも食べたいときは食べたい。そういうものです。

■2017年12月30日(土)02:14  文句を言わずに動きました
DG-D08IW2Lに自作ソフトを入れてみました
何の問題もなく動きました。タッチ画面の感度との関係で調整は必要そうというか、反応にむらがありますが、まずもって軽快に起動します。おそらく使っているライブラリが小型でかつ最小限だからだと思いますが、おそらくフォームアプリケーションであろうソフトウェアが起動にやたらと時間がかかっていたのを知っているだけに、やはりお前かドットネットライブラリ、というところです。

■2017年12月29日(金)08:44  鞄の条件
重たい鞄
山田祥平さんがわかっちゃいるけど重くなるというエッセイを書いていましたが、実際鞄は重くなりがちです。指摘されている通り、一定の保護機能を持ったかばんはそれ自体が軽くないうえ、中身もノートPCにタブレット、コンパクトカメラ、ノート、モバイルルーター、ポータブル音楽プレーヤー、イヤホン、マウス、折りたたみ傘が基本的に入っており、これに防寒着やら着替えやらが入るのでパンパンになります。まあ、ポータブル音楽プレーヤーは持ち歩かなくてもよいというか、持ち歩いても仕方がない(移動中に音楽を聴くことが事実上不可能と判断される)感じですが、その場合でもおそらく移動先で音楽を聴くために、データの入ったポータブルハードディスクが代わりに入ります。普段でこれですが、これが旅行となると、ミラーレスカメラと交換レンズ数本、交換用バッテリー数個、できれば三脚に雲台を入れることになります。イベントであれば、参加者キット(予稿集、レポート用紙、プログラムなど)や出展ブースで渡される資料も入ります。知り合いにも時々重装備を指摘されるのですが、装備を減らすとなるとおしゃべりくらいしかできることがなくなります。

鞄の条件
鞄というのはけして安くないわけですが、使用に耐えると判断するための条件を考えてみます。まずバックパックは不可です。両手が自由になり、かつ重い荷物を持って移動するには適した形態なのですが、背中に回ってしまった荷物を取り出すことは実用的ではありません。容量の面からウェストポーチやアタッシュケースなどは問題外です。少なくともA4の資料が入った封筒を入れられ、上記のものが入るだけのスペースが必要です。つまりショルダーバッグ(メッセンジャーバッグ、トートバッグなどを含む、肩から掛けることが前提になっている鞄)一択になります。狭い通路での行動や相乗りの交通機関での移動がある(交通ハブから目的地への移動にバスに乗るでも会場の移動にバスに乗るでもいいですが)ことから幅のあるバッグよりも底が深い縦長のバッグが適当でしょう(それでも通路を通る時他人にぶつけないよう注意が必要ですが)。鞄自体は当然として、肩紐も十分頑丈でなければなりません。重量物を入れて歩いて、真っ先に壊れるのが肩紐の固定部で、縫い目がほつれただの、カラビナが割れただのということになります。肩紐の長さはある程度短くできる必要があります。一度下ろさないとバッグの底に手が届かないようでは用をなしません。こう書いていくと、女性用の縦型トートバッグあたりが結構実用的な気がしてきますが、スタイリッシュなトートバッグを肩にかけて颯爽と街を闊歩するのが似合う質でもないので、偵察行動中の将校を重装備化したような縦型ショルダーバッグになります。とりあえず現在のお気に入りはアスキーストアで売っていたショルダーバッグですが、肩紐がどうしても捻じれるのを何とかしたいところです。

■2017年12月24日(日)17:41  xmlparserとcheckxmlparse
xmlparserとxmlanalyzer
XMLドキュメントを解析するCのライブラリを見つけられなかったため、自分で書きました。今までは対象のファイルの構造を決めつけて解析していましたが、今回は汎用です。厳密に文法通りではないのですが、形式をチェックするのでなければ支障はないと思います。xmlparser.cがパーサー、xmlanalyzer.cがレキシカルアナライザー、ヘッダファイルはxmlparser.hとxmlanalyzer.hです。xmlparser.hをincludeし、xmlparser.libをリンクしてxmlparser()を呼び出します。メモリ上にXMLドキュメントを展開し、文字コードをUTF16にしてから渡します。xmlsetfalgs()でデバッグフラグの指定が可能です。

checkxmlparse
少々使い方が込み入っているので、サンプルを作りました(作った本人がイベントのキャッチの仕方がわからなくなったという…)。本来ならブロックないしはトークンを処理する際にコールバックを呼び出す方がわかりやすいのですが、xmlparser()はパースしてリデュースが起こる際に識別文字列で検索してコールバックを呼び出す仕様になっています。このため必要ならタグや内容がリデュースされる際にデータを保存したうえで、ブロックがリデュースされる際に開始タグをキーとしてコールバックが呼び出されるところで処理することになります。NGXViewのXMLCheckプロジェクトがサンプルです(これは後日独立したプロジェクトにしてダウンロードできるようにします)。本体部分はcheckxmlparse.cで、そのままビルドするとメッセージボックスで解析状況を表示しますが(つまり表示ごとにOKしないといけません - キャンセルもできますが)、コンパイルの際にXMLCHECK_FILEをdefineすると(171行目)解析状況をファイルに書き出します。解析用のデータはsource(104行目)に入れます。

本体を読んでもどのタイミングでどのコールバックが呼び出されるのかわからなくなって、検証用にサンプルを書いたわけですが、いささか情けない話ですね。

ライブラリはリリースの設定でビルドしたため、デバッグの設定でリンクするとコンパイルオプションの設定が違うとかランタイムライブラリが競合すると言われますが、実行に際しては特段問題は出ません。64bit、UNICODE文字列使用の設定です。

そういえば開発プロジェクトをMy Documentsに置かないことについて
私の場合、C言語ベースの開発プロジェクトはC:/PROJECTに置いています。これは昔のプログラムで空白や漢字を含むパスを受け付けないものがあるためです。さすがにもう少なくなりましたが、ファイルをサーバーに転送する際などにトラブルが起きることがあります。

過去ログ 2012年04月 
2016年05月 06月 07月 08月 09月 10月 12月 
2017年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2018年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2019年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2020年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2021年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2022年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2023年01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月 
2024年01月 02月 03月 04月 05月 06月 07月 08月 09月