こんか

昨日,作業スケジュールを引いていた隣席のマネージャに,「そーいや今年の祝日,変わってるんだっけ」と声を掛けられました.手帳にバッチリ印を付けていたので,そのまま伝えました.夏季「お盆休みとかあるからあまり動けないな」は毎年のことですが,「今年はオリンピックもあるし」という台詞を聞き,そーいやそーだったなと.完全に他人事,傍観者視点のイベントという自分の認識を認識し,ビクーリしましたとさ.

すいよーだけどどーでしょ

毎週水曜出社の慣性を維持すべく昨夜,特に必須の用事はないものの「明日は出社」の連絡を入れました.今朝後悔.大雨じゃないですか.それに先日ぽちったのがそろそろ届きそうな気配.おまけに今日の天秤座は最下位.テンション下げて出社しました.

電車混んでました.雨だから出社控える人が多くなることを期待したのですが,雨だから出社するの嫌だなと思う人が多くなっただけで,むしろ雨だから自転車じゃなくて電車にしようの人が増えた感じか.

出社したらしたでわりと有意義.会議もそうですけど,いろいろやるべき案件が降ってきて,伴って会社にある諸々を持ち帰る必要が出たり.

けんしう

今期2回目の新入社員研修.前回もPCの向こうの反応が解りませんでしたが,とりあえず最初に「よろしく」最後に「おつかれ」の声は聞こえました.ところが今回はそれすらなく徹頭徹尾,私が一方的に喋って終了でした.基本的にはPCでPowerPointやExcelを弄っているので講義中,Teamsのウィンドウを観ることはありません.ところが,ふとした間にそれを見ると,黒背景に何も語らぬ名前の表示が並んでいて,ちょっとぞっとします.なんか,ゼーレのモノリスに睨まれている気分.逃げちゃだめだ.

けんしう

毎年の恒例行事.新入社員研修でWindowsとPowerPointとExcelとWordを教えるの巻.昨年は初めてのWebを通した研修で,PCの向こうのみんなの反応が読めず,苦労しました.あれから1年.Web会議で喋ったり聴いたりするのに慣れ,どんなもんかが解ってきたので,もう大丈夫です.反応を気にせずただただ喋るのみ.

そんなわけで半日,ずっと喋っていました.喉がやられました.相変わらず時間配分はうまく行かず,前半だらだらで後半まきまきでした.もっと頻繁に講義するなら徐々に改良できますが,忘れた頃に再演ですからね.なかなか.

新人さんの日報を読むと,それなりに響いたようで,嬉しいところです.全社員に見られてビビってか,誰もコメントを送っていないので,私は第1号になってみよう.同じコメントを全員に送っても味気ないので,それぞれ別々の内容.考えて作文するのに1時間くらいかかったのではなかろうか.

しゅっしゃ

ここ1箇月ばかし,毎週水曜の出社が続いたので,惰性でそういうことにすることにしました.今日の通勤電車は,朝も夜も久しく混んでいました.緊急事態宣言と春休みを脱したからでしょうか.

今日の3分の2は会議的なもの.画面越しでない分,それなりに有意義な気だけはしました.会議以外の時間では,昨年度下期の考課の自己評価を記入したり.なんか集中できず,もういいやな書きっぷりで提出しました.半年後の上期考課に備え,考課の研修で紹介されたとおり,超簡易な日記的なものをExcelにつけていこう,と思って早1週間.だめぽ.

ぴんぐ

フルカラー画像を指定の色パレットに寄せたPNG画像へ変換するプログラムを作っています.パレット番号を指す主の画像データ部分の圧縮に数日,手こずりました.圧縮アルゴリズムは,LZ77とハフマン符号化をコラボレーションしたデフレートなるものが使われているようです.

フリーのzlibなるライブラリを使えば実現できるそうですが,.NET Framework 4.5以降のSystem.IO.Compression.DeflateStreamでもこれが使われているとのこと.余計な外のライブラリとか使いたくないので,.NET一本で行きました.初めて使うのであれこれ調べつつ.

ところが,そうして作ったPNGファイルが,これまで使っていた他のプログラムで開けないとの指摘を受けました.たしかに,貰ったその既成プログラムで開けません.こちらで開けるのは,同じ.NET Frameworkで開こうとするから良い感じに互換するってことでしょうか.エラーメッセージはPNGファイルの形式不正の雰囲気を醸していましたけど,タグ構成とか合っているとしか思えないし,ちゃんとIDATチャンクデータの冒頭にzlibのヘッダっぽい2バイトも足しているというのに,むむむ.

攻め方を変えて今度はDeflateStreamを使わず,単純にSystem.Drawing.BitmapでFormat8bppIndexedなPNGを出力してみました.そもそもこれが一番楽な方法でした.が,これでも貰った既成プログラムで開けません.

仕方ない,zlibを導入するか.しかし,良い感じにDLL化されたものが見つかりません.調べるの下手なのよね.結局,ソースコードをDLしてビルドしてDLLにしました.メソッドの使い方とか呼び方とかいろいろ調べ,何とか実装.が,これでも貰った既成プログラムで開けません.圧縮レベルとかいろいろ変えても駄目.

貰った既成プログラムの更新日,15年近く前になっていました.これはもしや,最新のzlibじゃ駄目ってことかな.ってことで,古のソースコードを掘り出しました.といってもせいぜい10年前のやつ.それ以上は私のGitHub力不足で引き出せませんでした.

さて,その古のソースコード,DLL化するのに一苦労.最新版のはVisual Studioですぐビルドできるようにプロジェクトファイルが付いてきたのですが,10年前のにはありません.そもそも,Linuxを想定されてか,ちょろちょろコンパイルエラーも出ちゃう.地道に潰して,無事DLLにしました.が,これでも貰った既成プログラムで開けません.

libPngを使ってみるか.いや,どの道その中でzlibが使われるしな.もう万策尽きているのでは.そろそろ白旗か.ってところで,コーディングミスに気づきました.

マネージの画像データ配列をアンマネージ配列へコピーせずにzlibのメソッドを呼び出していました.なるほど,メモリ上の不定値群を圧縮して突っ込んだPNGを生成していたのね.そこ直したら無事成功.やったね.今日のてんびん座1位は伊達じゃなかった.なお,.NET Frameworkでの圧縮はうまく行かず終いでした.

いがいとやることあった

昨日の何時かからの会議にて,調べて回答する宿題を出されました.その後の何時かからの会議にて,その回答を得ました.とっとと回答したかったのですが,ついでに関連資料を更新して添付したく,それ以上に優先したい仕事があったので,後回しにしていました.

今日は終日,社外作業.とは言え,例によって先方の仕事中に当方の手が空く時間があるだろうと思っていました.どっこい,意外とやることがありました.そうこうしているうちに,催促というわけではありませんが,昨日の質問の明文化と若干のリマインドを兼ねたメールが飛んできました.言われずとも,ちゃんと憶えていましたよ.

終業間際のお片付けタイムの際,一人で内職し,回答メールを返送しました.これで心残りを一つ片づけた上で週末を迎えられます.と,添付しようとしていた資料の件,忘れていました.週明けに更新して再送しますわ.

ひとばしら

社内の情報交換のため,ビジネスチャットアプリ?のTeamsにそんなチームが作られました.誰が最初に投稿するのか.やってやりましたよ.昨日の「皆さんも気を付けなはれ」の件を載せました.と,なんやかんやで,解決したらその方法を教えてね的な流れになりました.正直,その辺は社内のネットワーク担当者こそお仕事と思って挑んでほしいところですけど,その担当者から振られた感じ.ま,いいさ.他の仕事を優先して牛歩してやる.出る杭,ただでは打たれぬ.