昔の最近の出来事(2025.06)

2025/06/30

テレワーク。早めに終了。

org-modeでの LaTeX式のレンダリング。previewした場合とHTMLにエクスポートした場合との違いを 調べてみたところ、previewの場合はテーマに連動していると思われる背景色と文字色でレンダリングされ、 PNGフォーマット的には256色PNGになっているようですが、HTMLエクスポートした場合は文字色は黒固定で 背景は透明(ただし色は白だったり黒だったり不確定)でレンダリングされ、 PNGフォーマット的には8bit Grayscale PNGになっているようです。この為、


という事が起こっていました。やりようが無いので、 「ダーク系テーマでは ewwによる HTML表示で LaTeXレンダリングした画像の文字が読めないのは諦める」 しか無しという結論🥺。

2025/06/29

AM中に起床。

掃除したり洗濯したり。

Emacs31系でewwを使用すると、

⛔ Warning (files): Missing ‘lexical-binding’ cookie in "~/.emacs.d/url/cookies".
You can add one with ‘M-x elisp-enable-lexical-binding RET’.
See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
for more information.

というワーニングメッセージが出るのですが、自動生成ファイルの為 以前対応したような方法で書き換えても、また上書きされてしまいます。 どうすれっての?🤔

org-modeで LaTeX式を透明度付き画像にレンダリングしたとき、テーマがダーク系だと文字色も黒で読めない 感じになっていました。透明度付きのPNGであれば、背景色は良しなに抜いてくれるので、 そういうPNGにレンダリングできれば良いハズですが、例えばlualatexを使用する場合は背景色を透明度に 変換する為に ImageMagickの convertを使ってうまく背景色を透明度に変換する必要があります。 という訳で、convertコマンドをこねくり回してなんとなく所望の結果が得られるようになったり。 しかし、org-mode内で org-latex-previewコマンド(C-c C-x C-l)ではうまくいくのですが、 HTMLにExportした画像はなんかイマイチ。previewと ExportではPNG画像の生成方法が違うのだっけ?🤔

2025/06/28

AM中に起床。

ちょろりお出かけ。 カッターナイフの替え刃を購入したのですが買う時に迷いました。 欲しかったのは19mm幅のタイプだったのですが、パッケージには「大」や「小」と記されていました。 ところが、パッケージの見た目が「小」の方が大きく「大」の方が小さいという感じになっていて、 これはどういう事だ....としばし迷いました。「大」が所望の19mm幅のタイプだったのですが、 買い慣れていないと判らんなぁとは思ったりも。

そういや新PCでBlenderでのレンダリングを試していなかったなぁ?と思いちょろっと試したのですが、 使い方をすっかり忘れてしまっていて レンダリングパラメータもどれが何だかさっぱり記憶から消え去っていたり🥺。 GTX1080よりも大分速いハズですがベンチマークの記録が無いため正確な比較はできず。

2025/06/27

テレワーク。気持ち早めに終了。

ちょろりコーディング。

2025/06/26

テレワーク。早めに終了。

調べごとをして終了。

2025/06/25

テレワーク。早めに終了。

自作の d-ts-modeを Emacs31系で動かしていたところ、 「apply: Symbol’s function definition is void: c-ts-mode--anchor-prev-sibling」 というエラーメッセージが出たり。30系では再現しなかったので調べてみたり。 どうやら lisp/progmodes/c-ts-mode.el で定義されている関数が 30系では c-ts-mode--anchor-prev-sibling だったのが 31系では c-ts-mode--prev-sibling に なっているようだったり。c-ts-mode内でしか使われない想定の関数を外で使っているヲレが悪いのか?🤔 仕方がないのでバージョン判定分岐を入れて対応。

2025/06/24

テレワーク。早めに終了。

調べごとをして終了。

2025/06/23

テレワーク。早めに終了。

調べごとをして終了。

2025/06/22

AM中に起床。

掃除したり洗濯したり。

以前、手持ちのD言語コードで dmdコンパイラが ICE落ちしている と思われるものがあったのですが、どこで落ちているのかを調べてみたり。 と言っても、コンパイラをデバッガに食わせて調べる訳では無く、手持ちコードの どの行を含んでいると ずっこけるのか?というのを調べた感じです。結果として、構造体の動的配列を .lengthプロパティで 初期サイズを決定するだけのコードがダメそう。その行をコメントアウトするとコンパイルは通る (ただし意図した動きにはならない)のが判ったのですが、 「Point[] pl; pl.length=10;」みたいなのを含んだだけでダメなのでどうしたもんか。 因みにPointは構造体ですが「struct Point{double x,y;}」という単純なものです。 単一コードで再現するか試してみたのですが再現せず。というか他の手持ちコードでも似たような事を そこらじゅうで行っているし、ldc2では大丈夫なので 何故これだけ?という感じです🤔。
そういやと思い、-Oによるオプティマイズをやめてみたところ ずっこけないようです。 どうしてもdmdを使う必要がある場合は、ワークアラウンドとして使えるかも知れません。

2025/06/21

AM中に起床。

通院。

以前、Cygwinに screenコマンド の5.0.0のテスト版が来ていた のですが、正式リリースとして5.0.1-2が来てました (アナウンス)。 以前5.0.0を野良ビルドしてみた時に 日付表示は組み込み機能になっているのを知ったので、.screenrcのhardstatus設定は次のように移行してみました。

#for4.x.x
#hardstatus alwayslastline "%{= kw}%-w%{= rw}% %t%{= kw}%+w %=%H %c %Y/%m/%d"

#for5.0.0
truecolor on
hardstatus alwayslastline "%{= #bfbfbf;#000000}%-w%{= #bfbfbf;#800000}%n %t%{= #bfbfbf;#000000}%+w %=%H %c %Y/%m/%d"

Cygwin screen 5.0.2-1 テスト

Emacsの起動は「COLORTERM=truecolor emacs-w32 -nw」という感じで起動 (スナップショット画像はテスト中の Emacs31系なので ./src/emacs -nw で起動してますが)。 目の疲労対策としてダーク系テーマを使うまで テーマ変更に興味が無かったのですが、 テーマの色反映もGUIと同じ感じになるようです。

2025/06/20

テレワーク。早めに終了。

全く気付いていなかったのですが、Emacsのtrampメソッドに podmancp というのがあるのを知ったり。 scpやpscpと同じ外部転送メソッドの仲間のようです。多段接続では使えないので、コンテナが動作している ホストでEmacs起動した場合に使えるようですが、VirtualBox上の Fedoraで emacs-gtk+x11 を起動して 使ってみた感じ、podmanメソッドに比べてなんか遅くないか?とは思ったりも。

2025/06/19

テレワーク。早めに終了。

Emacs31。VirtualBox上のFedoraの上で起動したpodmanコンテナに多段接続 (「/plink:user@host|podman:containerID:/tmp」とか)でdiredで開いてファイルコピーを 試したところ、大きすぎた為なかなか終わらなかったので C-gでキャンセル。 その後そのまま小さなファイルのコピーを試したらそれもコピーができず。 どうもセッションがダメになっているようで、一度「*tramp/podman ...*」のバッファを削除して 再度開き直して小さなファイルのコピーを試したらOKでした。これは30.xでも、コンテナじゃなくても 同じだったので、リカバリ操作として対応するしかないかもなと思ったりも。 うーむ、どうも大きいファイルは転送がうまくできない予感🤔。 多段接続では scp/pscpなどの外部転送メソッドは使えないので、何かしらの手段で分割して送った後に結合するとか、 手動でscpとか podman cp を使ってコンテナの中に送り込むしか無いか.....? それにしても読み出し方向の速度は気にならないくらいなのに、書き込み方向が遅いのはやっぱり納得できない。

2025/06/18

テレワーク。早めに終了。

Emacs31。そういえば30系までは JPEG画像表示は256色に減色されていたのですが、 31系ではフルカラー表示になってます。

commit 8cd4ab7abde87ac04e05442196b4646ab46df9a7
Author: Manuel Giraud <manuel@ledu-giraud.fr>
Date:   Thu Nov 21 17:19:59 2024 +0100

    Do not use libjpeg quantization (bug#74476)

    * src/image.c (jpeg_load_body): Remove libjpeg quantization.

 src/image.c | 80 +++++++++++++++++++++++++++++++-------------------------------------------------
 1 file changed, 31 insertions(+), 49 deletions(-)


随分前から減色するようにハードコーディングされていたのを、 フルカラー表示になるようにパッチを当て続けていたのですが もう無くて良くなりそうです。

2025/06/17

テレワーク。早めに終了。

Emacs31系でzlc-modeがうまく動かなくなっている件。以下の二つの不具合が生じました。


どちらも lisp/minibuffer.el に加えられた変更が影響していました。いずれもzlc-mode側では どうしようも無いため、lisp/minibuffer.el の方に30系以前の動作に戻す カスタム変数を用意して 設定する方向でひとまず対処しておく事にしてみたり。 再定義した関数を.emacsに書いておく方法もあるかと思いますが、あまりにも大きな関数だった為 自分でビルドするなら いいかと思った次第。

あと、.elファイルを読み込むと、

⛔ Warning (files): Missing ‘lexical-binding’ cookie in "~/develop/emacs_lisp/emacs_msgprint/msgprint.el".
You can add one with ‘M-x elisp-enable-lexical-binding RET’.
See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
for more information.

という感じのWarningメッセージが表示されるのを対応してみました。 何やら .elファイルの先頭とかにコメントで「-*- lexical-binding: nil -*-」を含むように 更新しまくったのですが、そもそもこれって何?🤔

2025/06/16

テレワーク。早めに終了。

Emacs31系。コマンドなどの補完候補一覧を表示する「*Completions*」バッファが、なにやらウインドウ表示 の外に出ている分がバッファにも記されなくなっているようです。続きを見るには何やらボタンを押せ みたいな事になっていて なんだこれ?と思ったり。 一番困るのは zlc-modeがこの変更の影響を受けて 動きがおかしくなってしまう点。 今年の2月頃に lisp/minibuffer.elに加えられた変更の様です。そして以前のように振る舞う設定も無さげ🥺。

Emacs31系でzlc-modeの候補補完がうまく動かなくなっているのを調べてみたり。 zlc-modeでは途中まで一致する文字列を補完した後、残りの文字列を候補から選ぶといった動きを行うのですが、 残りの文字列の区切りが認識されずに全文字列を足すような動きになっています。 違いのある文字位置はテキストプロパティの有無で判断しているのですが、Emacs31系ではテキストプロパティが 全部剥がれた文字列が伝わってきている為、区切り位置の判断ができなくなっているようです。 前述のminibuffer.elの変更とは別の変更の影響を受けている模様。うーむ🤔

2025/06/15

AM中に起床。

yank-mediaの件。先日の生成されたPNGファイルが妙な件は、試しにGdipCreateBitmapFromScan0() に指定しているフォーマットを PixelFormat32bppARGBから PixelFormat24bppRGBに変更してみたら 所望の絵になったり。でも、こんなの実際に動かせば気づくんじゃないか?と思うので、 32bitARGBか24bitRGBを見分ける必要がある(けど今はそれが無い)のだろうか?🤔
元のデータは BITMAPV5HEADER として固定解釈しているので、bV5BitCountフィールドを見て 24だったらPixelFormat24bppRGB、そうでなければ PixelFormat32bppARGB と雑に分岐してみたり。 しかし、32bitARGBになるようなケース(「Win+Shift+S」およびGIMPで透明度付きレイヤーの領域コピーデータなど) は BITMAPV5HEADER のデータではなくて直接PNGフォーマットでクリップボードに入るようなので、 事実上24bitの方しか通らないかも知れません。 また、以前自作したクリップボード画像をPNG保存するプログラム でもあったように、Officeスイートでクリップボードに入れた 32bit画像は、 透明度がデタラメになる場合があるので万事OKとはいかない (自作プログラムでは透明度の除去をlibpng側で行ってましたが GDI+にはそれらしいスイッチが無い)かもしれません。

Emacs31系で plink接続できない件。 tramp-process-connection-typeを tにして sshや scpでのアクセスは可能、 tramp-process-connection-typeを nilにして plinkではなくて sshxにしてもアクセス可能なので、 plinkだけが何故かダメになっているように見えます。謎🤔
どうやら、以前遭遇した Cygwinの場合はカスタム変数 tramp-use-connection-share を nilにしなくてはならない件の話が変わったみたい。 カスタム変数 tramp-use-connection-share に suppress というシンボルを指定すればイケました。 30.1でも suppress指定で大丈夫そうなので、 .emacsで「(setq tramp-use-connection-share nil)」としていたのを 「(setq tramp-use-connection-share 'suppress)」に変えてしまった方が良さげ。

Emacs31系でのパッチの確認を行っていたのですが、 以前追加したイタリック体のフェイスを持たないフォントファミリーで 斜体表示をする機能が動いてないなぁと思ったり。自前のカラー絵文字パッチでは現在のHDCからLOGFONTを 取得してDirectWriteに渡してるのですが、公式のカラー絵文字対応ではそういう事はやっていなさげ。 斜体にする事はあらかじめHDCに仕込んであるので、それを反映すればDirectWrite描画に対しても斜体変形が 機能するのですがどうしようかなぁ?🤔
HDCからフォントフェイスを生成する CreateFontFaceFromHdc()というのがあるのですが、 公式の w32dwrite.cでは定義されていないようだったので追加して、GLYPH_RUNの fontFaceに 反映してみるように試したところ、あっさり所望のものに対応できたのでこれで良いじゃんという事にしたり。

Emacs31 イタリック表示テスト

一応、絵文字にも作用するのですが合字はダメです(例では🍄‍🟫)。異体字セレクタが入る場合もダメです。 あと、描画が欠ける場合があるのも同じです。 「UDEV Gothic HSJPDOC」はイタリック体のフェイスを持っていますが、このようなフォントの場合は 斜体での表示は行われないため 描画が欠ける事はありません。オプショナルな機能ということでよしなに。

2025/06/14

AM中に起床。

散髪にお出かけ。

Emacsの gitリポジトリの masterブランチ(31系になる予定)に IMEパッチ&その他パッチをあててみたり。 自前のカラー絵文字対応は関係コードがうまくリジェクトされたので、それ以外でパッチがうまく当たらなかった所 を直してひとまずコンパイルだけは通してみたり。とりあえず使える感じではあるのですが、 コンパイルメッセージ(warning/info)が山ほど出るようになってます🥺。 こんなの出るんだと思ったのをいくつか挙げてみます。


直すのは地味に面倒臭かったです。まぁ、Emacs31系のブランチが生成されるのは、まだ当分先だとは思いますが。

IME&他パッチをあてて Cygwinでビルドした masterブランチの Emacsをちょろっと試してみたのですが、 Tramp+plinkでリモートマシンに繋がらなくなってたり。他にも微妙に動きが怪しい所があるようです。うーむ🤔

以前 試したyank-mediaというクリップボードの画像データ 貼り付けで、PrintScreenで保持したクリップボード画像が貼り付けられないのを確認しようと思ったのですが、 Windows11では 「PrintScreenキー」と 「Win+Shift+S」が同じ動作をするようで、 DIBv5のデータをGDI+で PNGにセーブするという経路を通ることができないようだったり。
IrfanViewとかで選択&コピーすれば DIBv5のクリップボードデータとなるようなので、そちらでテストしてみることに。 ファイルパスがCygwinファイルパスになっているのをWindowsファイルパスに変換するようにして ファイルセーブされるようになったのですが、生成されたPNGファイルがなんだか妙な感じだったり。 24bitBGRを 32bitBGRAでセーブしている?🤔

2025/06/13

テレワーク。早めに終了。

Web巡回して終了。

2025/06/12

テレワーク。早めに終了。

調べごとをして終了。

2025/06/11

テレワーク。早めに終了。

FreeDOS。VirtualBoxのFreeDOS環境 で描画速度が遅い256byteデモ (Puls)を Windows10のVMwareに構築してあったFreeDOS環境でも再確認してみたのですが、 やっぱりVMwareでは描画速度に問題は無い感じだったり。 命令セットのエミュレーションはしていないハズなので、見かけ上 VirtualBoxの VGAはめちゃくちゃ遅い という事になりそうですが、いくらなんでもVMwareとの速度差があり過ぎないか?とは思ったりも。

2025/06/10

テレワーク。早めに終了。

調べごとをして終了。

2025/06/09

テレワーク。早めに終了。

おもむろに VirtualBox上に FreeDOS環境を構築してみたり。 ダウンロードページにリンクの張られているインストール動画を参考に入れてみました。 ひとまず 256byteの デモをいくつか動かしてみたのですが、描画速度が遅いものがあったり。 VMwareの時は大丈夫だったと思いますが、VirtualBoxではダメな場合がある?🤔

2025/06/08

AM中に起床。

掃除したり洗濯したり。

ゲゲゲの鬼太郎のセレクション放送。今回は1985年11月30日に放送された「だるま妖怪相談所」って回でしたが、 内容はさておき、鬼太郎の声を戸田恵子があててたのかと今になって思ったり。 戸田恵子と言えばアンパンマンの中の人と連想するのですが、アンパンマンのアニメ放送開始は 1988年10月3日だったらしい(参考Wikipedia)ので、 今回の鬼太郎の放送よりも少し後って事になります。

ウマ娘のアニメ。耳の位置が正確に設定されていると電話の受話器はそうなるか。

2025/06/07

AM中に起床。

アパートのケーブルTV設備の工事に立ち合い。

全然関係無い流れから「MFゴースト」の原作連載って終了してるのを知ったり。 最終巻は6月6日に発売された模様。そして「昴と彗星」という「頭文字D」「MFゴースト」に続く 物語の新連載が始まるらしい。ほぅ...

手持ちD言語のコードメンテナンス。一通り対応し終えたのですが、 コンパイラ(dmd/ldc2/gdc)の違いによってコンパイラが落ちたり、生成された実行ファイルが ずっこける場合があったり。今のところ原因調査まで手が付かず。

そういえば Emacsの pretest 30.1.90が 5月にリリースされていますが (以前のメモ)、30.2としてリリースするのはいつ頃の 予定なのだろうか?

2025/06/06

テレワーク。気持ち早めに終了。

手持ちD言語のコードメンテナンス。

2025/06/05

テレワーク。早めに終了。

Web巡回して終了。

2025/06/04

テレワーク。早めに終了。

調べごとをして終了。

2025/06/03

テレワーク。早めに終了。

手持ちD言語のコードをメンテナンス。捗らない。

2025/06/02

テレワーク。早めに終了。

調べごとをして終了。

2025/06/01

AM中に起床。

掃除したり洗濯したり。

ゲゲゲの鬼太郎のセレクション放送。今回は1968年1月24日に放送された「吸血鬼ラ・セーヌ」って回だったのですが、 まだ白黒なんだっけ?と思ったりも。 日本でのカラーテレビ本放送開始は1960年9月10日とされているようです(参考Wikipedia)。 フジテレビのカラー本放送開始は1964年9月7日とされているようなので(参考Wikipedia)、 鬼太郎の第1期テレビ放送時点では放送局の都合で白黒というよりは製作の都合で白黒だったのかしら? と思ったりも。さておき、1968年1月だと 人類が月面に立つ1年半ほど前ですが、 1970年前後の数年って急速に色々進歩しているのを感じられたのではないかなぁ?と思います。 ギリギリまだ生まれていませんけど😓。

手持ちD言語のコードをメンテナンス。なにやらdmdでのコンパイルで落ちる場合があったり。

$ dmd -m64 -O -I. -version=Unicode -version=Windows10 -version=IE5   -c GameFrame.d -of=GameFrame.obj
tym = x14
Illegal instruction


ICE落ちって事か?何も判りません😓。ldc2やMinGWクロスgdcでは大丈夫そう。


TOP PREV