昔の最近の出来事(2022.03)

2022/03/31

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

東京都コロナ感染者。新規は 8226人。

Web巡回して終了。

2022/03/30

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

東京都コロナ感染者。新規は 9520人。

--with-native-image-api のBMP画像対応。ZIPなどのアーカイブに入っているBMPファイルを表示 しようとしたら外部コンバータで表示されたり。lisp/image.elに image-type-header-regexps という変数があり、データフォーマットのヘッダ識別子が登録されているのですが、 BMPについては無いようだったり。「("\\`BM" . bmp)」を足せばアーカイブに入っている BMPファイルも外部コンバータを使わずに表示されました。

ところで、どの画像データを表示できるかは 組み込んだライブラリなどによって変わります。 にも関わらず、それとは関係無しに image-type-header-regexps や image-type-file-name-regexps が 定義されているのはダメなんじゃないか?と今更ながら思ったりも。 「image-types」という組み込み変数があり、自力表示できる画像タイプはこちらに記されているようです。

image-types ;;and press C-j
(bmp svg imagemagick png gif tiff jpeg xpm xbm pbm)

imagemagickを例外的に扱う必要はありそうですが、これを元にして image-type-header-regexps や image-type-file-name-regexps を初期値として構築するべきじゃ ないかなぁ?🤔。ただ、組み込みimagemagickよりも自力表示を優先しようとすると imagemagick-types-inhibitの設定が面倒臭そうですけど😓

という訳でimage-typesに従って表示方法を変えるコードを考えてみました。

(let ((temp-image-type-file-name-regexps
       '(("\\.png\\'" . png)
         ("\\.gif\\'" . gif)
         ("\\.jfif\\'" . jpeg)
         ("\\.jpe?g\\'" . jpeg)
         ("\\.bmp\\'" . bmp)
         ("\\.xpm\\'" . xpm)
         ("\\.pbm\\'" . pbm)
         ("\\.xbm\\'" . xbm)
         ("\\.ps\\'" . postscript)
         ("\\.tiff?\\'" . tiff)
         ("\\.svgz?\\'" . svg)
         ))
      (temp-image-type-header-regexps
       `(("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm)
         ("\\`P[1-6]\\(?:\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)*[[:space:]]\\)+\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)*[0-9]\\)+\
\\)\\{2\\}" . pbm)
         ("\\`BM" . bmp)
         ("\\`GIF8[79]a" . gif)
         ("\\`\x89PNG\r\n\x1a\n" . png)
         ("\\`[\t\n\r ]*#define \\([a-z0-9_]+\\)_width [0-9]+\n\
#define \\1_height [0-9]+\n\\(\
#define \\1_x_hot [0-9]+\n\
#define \\1_y_hot [0-9]+\n\\)?\
static \\(unsigned \\)?char \\1_bits" . xbm)
         ("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . tiff)
         ("\\`[\t\n\r ]*%!PS" . postscript)
         ("\\`\xff\xd8" . jpeg)    ; used to be (image-jpeg-p . jpeg)
         (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)")
                  (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)")))
             (concat "\\(?:<\\?xml[ \t\r\n]+[^>]*>\\)?[ \t\r\n]*<"
                     comment-re "*"
                     "\\(?:!DOCTYPE[ \t\r\n]+[^>]*>[ \t\r\n]*<[ \t\r\n]*" comment-re "*\\)?"
                     "[Ss][Vv][Gg]"))
          . svg)
         ))
      (selected-image-type-file-name-regexps '())
      (selected-image-type-header-regexps '())
      )

  (dolist (fn-regexp temp-image-type-file-name-regexps)
    (if (image-type-available-p (cdr fn-regexp))
        (add-to-list 'selected-image-type-file-name-regexps fn-regexp)
      ))
  (dolist (hd-regexp temp-image-type-header-regexps)
    (if (image-type-available-p (cdr hd-regexp))
        (add-to-list 'selected-image-type-header-regexps hd-regexp)
      ))

  (setq image-type-file-name-regexps selected-image-type-file-name-regexps)
  (setq image-type-header-regexps selected-image-type-header-regexps)

  (when (image-type-available-p 'imagemagick)
    (let ((imagemagick-inhibit-types
           '(((GIF GIF87) . gif)
             ((PJPEG JPX JPEG JPG JFIF) . jpeg)
             ((PNG PNG24 PNG32 PNG8) . png)
             ((PNM PBM PGM PPM) . pbm)
             ((SVG SVGZ) . svg)
             ((TIFF TIFF64 TIF) . tiff)
             ((XBM) . xbm)
             ((XPM) . xpm)
             ((BMP) . bmp)
             ))
          (inh-types '())
          )

      (dolist (inh-type imagemagick-inhibit-types)
        (if (image-type-available-p (cdr inh-type))
            (setq inh-types (append inh-types (car inh-type)))
          ))

      (dolist (img-type inh-types)
        (add-to-list 'imagemagick-types-inhibit img-type))
      (add-to-list 'imagemagick-types-inhibit 'JXR)
      (add-to-list 'imagemagick-types-inhibit 'BPG)
      (add-to-list 'imagemagick-types-inhibit 'JXL)
      )
    (imagemagick-register-types)
    )
  )

(add-to-list 'image-format-suffixes '(image/tga "tga"))

関数化しようかと思ったのですが、ImageMagickの所に自分都合の事情があって .emacs に直置きしてます😅。 関数image-type-available-pを使えば 変数image-typesに含まれているかどうかを検査できるようだったので利用してみました。 件のBMPについては、組み込みImageMagickでない無い場合でも 27.2では image-use-external-converterを t にすれば 外部コンバータ使用で表示し、28系でnative-image-apiを有効にした場合は 組み込みImageMagickの場合でも GDI+での表示になりました。29系で WebPやHEICが組み込み描画可能になった場合はheicやwebpに対応する 追加変更が必要ですが、イケるか否かに自動追従できるかなと思います。

2022/03/29

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

東京都コロナ感染者。新規は 7846人。

外部コマンドで画像表示されない件。 よくよく調べてみるとimage-type-file-name-regexpsという変数の設定の仕方がマズかったのが全ての原因でした。 この変数はlisp/image.elの中で以下のように定義されています。

(defvar image-type-file-name-regexps
  '(("\\.png\\'" . png)
    ("\\.gif\\'" . gif)
    ("\\.jpe?g\\'" . jpeg)
    ("\\.bmp\\'" . bmp)
    ("\\.xpm\\'" . xpm)
    ("\\.pbm\\'" . pbm)
    ("\\.xbm\\'" . xbm)
    ("\\.ps\\'" . postscript)
    ("\\.tiff?\\'" . tiff)
    ("\\.svgz?\\'" . svg)
    )
  "Alist of (REGEXP . IMAGE-TYPE) pairs used to identify image files.
When the name of an image file match REGEXP, it is assumed to
be of image type IMAGE-TYPE.")

このリストにマッチする画像ファイル名はEmacs自身が表示できるものとして解釈されるようです。 問題はbmpファイルが含まれているのですが、実際にはEmacs自身で表示できません。 そこで本来は書き換えるものでは無いのでしょうが、.emacsで再定義してbmpをマッチ対象から 外していました(以前の日記)。
で、今回 --with-native-image-api で GDI+ を使う場合にBMPを表示可能になる為のコードを masterブランチ(29系)から取り込みました。これにより変数image-type-file-name-regexpsに bmpを含める必要が出てきました。しかし、現時点では27.2を使っているので、27.2の時は bmpを含めず、28系且つ--with-native-image-apiでBMP対応した場合は bmpを含めるという 事にしたかったので、.emacsでの上書き設定を変更したのですが、変更の仕方がマズかったというオチでした。 修行が足りません😓。

2022/03/28

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

東京都コロナ感染者。新規は 4544人。ダメだね。

「--without-imagemagick --without-native-image-api かつ 変数image-use-external-converter が t」 で外部コマンド起動で画像表示されない件。 どうやら lisp/image.el 内の関数image-type内で呼ばれている 関数image-type-from-file-name が 「--without-native-image-api」ではエラーするようです。 masterブランチの lisp/image.el では新しい関数が足されててそれを使用しているようなのですが、 その部分だけを取り込んでもダメでした。仕方ないので --without-native-image-apiの時は w32-use-native-image-API が nilに設定されるのを利用して、いきなり 関数image-type-from-file-name を実行しないようにしてみました。 ひとまず 「--without-imagemagick --without-native-image-api かつ 変数image-use-external-converter が t」 でも外部コマンドを使って画像表示されるようになったり。

masterブランチの lisp/image.elを眺めていて heicがサポートされるみたいってのを知ったり。 ただ、src/image.cを見てもこれで対応できてるのかよく判らず。macOSだけが対応される? いずれにしてもEmacs-29のリリースまではImageMagickに頼るという事で。

何気に26.3のimage.elを眺めていて、外部コマンドで画像表示する仕組みってこの頃は無かったんだっけ? って思ったり😅。外部コマンドで画像表示するのを明確に意識するようになったのは 組み込みImageMagickでJPEG2000画像を表示するとSegfaultする (過去のメモ)のがきっかけでしたが 27.1になってからの話でした。 26.3以前(24.4とか)でも美人時計のコードで外部コマンドを使って画像を表示する事ができていた (参考)ので、 TANE自身が使い方を知らなかっただけで前からあったのだと思ってました。

2022/03/27

昼頃起床。

掃除したり洗濯したり。

東京都コロナ感染者。新規は 7440人。ちょっと下がりが弱まっていないか? 絶対数で見ると死亡者数は少なくはないと思うのですが。

Emacsのmasterブランチ(現在29系)に --with-native-image-api で GDI+対応した時に表示できる 画像フォーマットにBMPが追加されているようだったり。ちょっと追加したら対応できるみたいなので、 28.0.92に取り込んでみたり。.emacsの設定を 27系と共存させようとするとちょっと面倒臭いのですが 一応ネイティブ表示していそう。
流れのついでで「--without-imagemagick --without-native-image-api」でImageMagickもネイティブimage-APIも無し でビルドして、image-use-external-converter を tにしておけば、JPEG,PNG,GIF,PBM系,TIFF 以外は全て外部コマンド で表示しようとするハズだよね?と思ってなんとなくテストしてみたら何故か外部コマンド実行が発動されない ようだったり。例えばJPEGはlibjpegで対応されるので表示できるのですが、逆に言うと画像が全く表示できない訳 (-nw相当に解釈されてるとか)では無く。 「--without-imagemagick --with-native-image-api」でネイティブimage-APIだけを有効にすると 対応していない画像フォーマットは全て外部コマンドを使用して画像表示されました。 ん?どういう事だ?

「--without-imagemagick --without-native-image-api かつ 変数image-use-external-converter が t」で 何故か外部コマンド起動で画像表示されない件。少し調べてみた所、lisp/image.el 内の関数image-typeが エラーを返しているのが直接の原因のようです。image-converter ってTYPEが返って来て欲しいのですが 返ってこず。関数image-type-from-file-header と 関数image-type-from-file-name がTYPEを確定できなかった 場合はnilを返してくれると上手く動きそうなのですが、signalを使った例外ハンドリングを行っている のが原因で image-converter ってTYPEを返す条件を実行できないように思ったりも。

2022/03/26

AM中に起床。

東京都コロナ感染者。新規は 7440人。

以前、MS-IMEでローマ字入力と英数入力を混在するとき、英字入力を終えたところで シフトキーを押すとローマ字入力に戻すことが出来るのを知ったのですが、 いわゆる「以前のバージョンのMS-IME」はもっとまともな挙動だったらしいというのを知りました。 前のMS-IMEでは「Shiftキー単独で英数モードに切り替える」という設定が可能で、この設定を有効にすると ローマ字入力時にシフトキーを一度押せば英数に切り替わり、もう一度押せばローマ字入力に戻るというトグル動作になるようです。 シフトキーの単独入力は文字入力は無いのをうまく使っているという点で、今更ですがかなり合理的な 機能だと思うのと、「新しいMS-IME」でも大文字始まりの英文字入力からローマ字に戻す方は機能するのですから、 逆ができないのは単純になんで?とは思います。
ところで、ローマ字入力中でも「半角/全角 (E/J)」キーは効くようなので(というのを今知った😓)、 「テキストエディターにemacs、ビルドにmakeを使う」のような半角英文字交じりの文章を一気に入れられるっちゃ入れられるみたい。 ただ、文章の最初に小文字英単語が出てくるとすべての文章を入力するのは無理です。

例文 新MS-IMEでのローマ字入力
emacsはテキストエディタです 主語がローマ字で「えまcs」になるのでCtrl-Tで英字に変換する必要があるがそこで一旦入力が切れる
また、切らずに入力すると「えまcしゃてきすとえでぃたです」となり「しゃ」を「sは」に分離できないため修正も不可能となる
Emacsはテキストエディタです 「Emacs」の入力後シフトキーを一度押せばローマ字入力で継続入力可能
テキストエディタのemacsです 「emacs」がローマ字になるが全文入力後に一旦変換し場合によってemacsを半角英文字に修正が必要
テキストエディタのEmacsです 「Emacs」の入力後シフトキーを一度押せばローマ字入力で継続入力可能

「Shiftキー単独で英数モードに切り替える」が使えれば、上記いずれの例文もIMEをONにしたまま 文章を切ること無く入力可能です。

2022/03/25

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

東京都コロナ感染者。新規は 7289人。

ちょろり調べ事。

そういや本日でへっぽこページは22周年を迎えました。毎度見てくださっている方々に感謝いたします。 ふにゃふにゃしたページですがこれからもよろしくお願い致しますm(_'_)m

2022/03/24

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

東京都コロナ感染者。新規は 8875人。

Web散策してて知った The Matrix Awakens: An Unreal Engine 5 Experience の実際の動画。すげぇな。

2022/03/23

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

東京都コロナ感染者。新規は 6430人。

そういえば Emacsの git log を眺めていると、まぁまぁな頻度でRevertコミットが行われているように思います。 時間的にコミット後に割とすぐダメなのに気づいて自分で戻すという感じにも思うのですが、 コミットする前に気づかないのはなんで?とは思います。コミットしてからテストしてるんだろうか?

2022/03/22

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

東京都コロナ感染者。新規は 3533人。

電力供給が厳しい状況らしいけど、19:30時点でNHK総合でしか 警報が出ていないような。 速報出せば急激に減るだろうとは思いますけど。

Web巡回して終了。

2022/03/21

AM中に起床。

東京都コロナ感染者。新規は 3855人。

そういやと思い、Emacs 28.0.92を Cygwin32でビルドしてみたり。ただし--with-native-compilationは無し。 ビルド自体も起動してちょっと動かしてみた感じも特に問題なさげ。

Cygwin32でlibjxlのビルドって試してみたこと無かったなぁ? と思いビルドを試してみた所エラー。configure相当のcmake実行でclangのエラーを検出したのですが、原因がよく判らず。 Cygwin64の方でも大丈夫なんだっけ?と思い試してみると、cmakeで突っかかる所はなかったのですが、 Cygwin32とは違う理由でコンパイルエラー。

Cygwin32をアップデートしたらcmakeでclangのエラーは検出されなかったり。 コンパイラに関するアップデートはなかったように思ったのですがひとまず結果オーライという事で。 でもやっぱりビルドでコンパイルエラー。どうやらCygwin32もCygwin64もgflagsというライブラリに関連しているようです。 Cygwin64ではそもそもgflagsがインストールされていないのが原因でヘッダファイルが見つからなくてコンパイルエラーになりました。 Cygwin32の方は大分前にOpenCVをCygwinでビルドしようとした時に 野良ビルドした為ヘッダは存在していたのですが、何故かリンクに失敗しているという感じでした。 いずれにしてもビルドできなくなっているようです。

OpenCVのビルドではgflagsが何なのかはよく判らずに手順にあるのでビルドしただけだったのですが、 gflagsについて検索してみると同じ名前の違うものがあるようです。 一つはMicrosoftのデバッグツールにそういうコマンドがあるらしい (参考)。 もう一つは件のgflagsの方で、こちらはGoogleが公開しているコマンドラインオプション解析のライブラリです (gflagsのGitHubリポジトリ)。 ただ、ちょっと前にはgflags無しでビルドできたのを鑑みますに、 個人的には「これ、使わなきゃダメ?」って感じがしなくはありません。

gflagsを野良ビルド。小さなライブラリなのでビルドはできたのですがlibjxlのビルドでやっぱりエラー。 コンパイラへのライブラリ指定オプション -lgflags で何故かエラーする為、手でライブラリ(libgflags.a)を 指定してリンクをしたり。ひとまず tools/djxl.exe のビルドに成功。 Cygwin32でビルドした Emacs 28.0.92 から djxlコマンドを経由して jxl画像を表示する事ができたので ひとまず大丈夫そう。

libjxlのツールのビルド。どうやらビルドに失敗していたのは cjxl_ng と djxl_ng という以前は無かった新しいコマンドのようです。 前から存在する cjxl と djxl はビルドできるみたい。makeの順番の都合でdjxlがビルド出来なかったのですが、 toolsディレクトリの中で make djxl のように実行すれば、所望のコマンドだけはビルドできるようです。 cjxl_ng と djxl_ng は今のところ手動で対応する必要がありました。直接の原因は/usr/local/libに インストールされているlibgflags.aを見つけられないからのようですが、コンパイラのライブラリサーチパスに /usr/local/libが含まれていないようです。この為、-lgflags となっているのを「/usr/local/lib/libgflags.a」で 直接ファイル指定するか、-Lオプションを使って「-L/usr/local/lib/ -lgflags」でライブラリパスを追加する 必要がありました。ヘッダのインクルードパスには /usr/local/include は含まれていそうですが、 /usr/local/lib は自動で検索対象にしてくれないんだっけ?とは思ったりも🤔。

2022/03/20

AM中に起床。

掃除したり洗濯したり。

東京都コロナ感染者。新規は 6502人。

MS-IMEで、例えば「Emacsというテキストエディターがあります」と入力したい場合、 一度も文節を区切らずに一気にローマ字入力してしまうと 「Emacstoiutekisutoedhita-gaarimasu」となってしまい、どうやっても「toiu.....」を ローマ字入力と認識してくれなくて日本語変換対象になりません。 半角英数文字交じりの少し長めの日本語文章を変換しようとすると、どうにもうまく変換できなくて困ってしまいます。 先日述べた「妙な状態になったらリカバリできない」の一例かも知れません。

もう少し調べてみたら、途中からローマ字入力認識に切り替える手段がありました。 「Emacs」を入力した後に「シフトキーを一度押す」とそこから先はローマ字入力として認識されるようです。 「makeコマンドを使用します」の場合は「make」が「まけ」とローマ字入力されますが、これは 以前知った「Ctrl + T」で「まけ」になった所を英数半角文字列変換で 「make」にしてしまえば良さそう。 という訳で、「テキストエディターにEmacs、ソースコードのビルドにmakeコマンドを使用します。」 てな文章も途中で確定無しに入力できるようになった(ただし「負け」を「make」に直す操作は必要)気がします🙂。

音声の情報量。日本語文章を音声にするのと、ひらがなで記すのは一見同じ情報量という気がするのですが、 「母はハハハと笑った」のような場合は、助詞の発音が判らないので ひらがなで記す方が不利 かも知れません(「ハハハハハハと笑った」の可能性がある)。 助詞の発音が不明なことが誤変換になってしまう要因の一つなのかも?と思ったりもします。 で、思ったのですが、いっそのこと助詞の「~は」を「~わ」で入力してしまってIMEに変換させてしまってはどうか?と。 そうすれば音声入力で「ははわはははとわらった」が正しく変換できるのであればIMEでも変換できる だろうと思ったりも。ただ、「わ(wa)」はローマ字入力がしんどいですけど😅。

そういえば 面白い誤変換を集めた「誤変換の宴」っていうWebサイトがありました。 サイト自体が流石にもう存在しないだろうと思いながらも検索してみたら、インターネットアーカイブに残っているらしい 事が判りました (参考, アーカイブサイト)。 いつくらいの話か覚えていなかったのですが1995年~1997年くらいのサイトだったようです。

2022/03/19

AM中に起床。

東京都コロナ感染者。新規は 7444人。

そういえば、IMEで文章を入力していると文節単位くらいで変換してしまう癖が付いてしまってます。 そうすると、例えば「橋の端を歩く」と「箸の端を持つ」の「はしの」は大体直近の変換が一番最初の候補に 出てくる感じになると思います。ある程度長い文を変換すれば、文脈(例えば文の動詞など)から正しい可能性が高い単語に変換できるんじゃないか? と思う訳ですが、長い文を入力して誤変換があった場合、その修正の仕方が 「一旦 誤変換されたもので確定した後、誤変換された単語までカーソルを移動してその単語だけを削除&再入力&変換で修正してしまう」 という感じになります。こうしてしまうと、テキストエディタ上の修正は行われますが、IMEから見ると 誤変換があったことを認識していない為、もう一度同じ文を変換すると誤変換された状態で覚えられてしまいます。 誤変換をIMEの操作で修正して確定できれば良いのですが、如何せんキーバインドが覚えられなくて妙な状態になったらリカバリできない、 一回確定してダメな所を直した方が早い、といったような理由でIME上で修正する感じになりません。 なので、賢くならないのは当然だろうねぇ と思う訳です😓。 で、出来上がっている文書を読み込ませてAI的に学習するようなものって無いんだっけ?と思った訳ですが、 そんなものは無いみたい🤔。

2022/03/18

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

東京都コロナ感染者。新規は 7825人。

一昨日の地震以降、東北地方では余震が続いているなぁ。

少し前に、絵文字を含んだ org文書をLuaLaTeXを経由してカラー絵文字を 含めてPDF化できる事を知りました。ただ、エスケープシーケンス的にフォントを切り替える必要が あるのがちょっと面倒臭いなぁ?と思ったので、「@@latex:{\segoe 🙁}@@」のように{}でブロック化 すれば \normalfont でフォントを戻す必要が無くなるかもと思いました。 しかし、こうしてしまうとhtmlに変換する場合はブロックが丸ごとエクスポートされなくなってしまいます。 そういやマクロ機能ってのがあったな?(参考)と思い、 以下のようにしてみたらlatexでもhtmlでもイケたかも。

#+MACRO: mexlt @@latex:{\segoe $1}@@
#+MACRO: mexht @@html:$1@@
#+MACRO: em {{{mexlt($1)}}}{{{mexht($1)}}}

  マクロのテスト「{{{em(🙂)}}}」です。

latex出力とhtml出力はそれぞれ以下のようになります。

--- latex
マクロのテスト「{\segoe 🙂}」です。

--- html
マクロのテスト「🙂」です。

マクロemは再帰展開されて「@@latex:{\segoe 🙂}@@@@html:🙂@@」となり、 latexエクスポートの場合は @@latex: の方だけが残り、 htmlエクスポートの場合は@@html: の方だけが残るという流れです。 再帰展開できないマクロだったらダメだったかも。 ただ、一文字の絵文字を入れるのに、別途10文字の「{{{em()}}}」を入れる必要があるのは かなり面倒臭いのですが、「\segoe 🙂\normalfont」よりは短くなるのでギリOKって感じかな? 微妙ですけど😓

2022/03/17

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

東京都コロナ感染者。新規は 8461人。

数日前、Emacs 28.0.91を飛ばしているんじゃないか?と記したのですが、 pretestのアーカイブサイトを見ると 1月9日付けで 28.0.91 がリリースされてました。そういや 1月に gitリポジトリを見たときに 28.0.91のタグが打たれてた のは気づいていたのですが、リリースアナウンスが無いなぁ?と思ってそのまま忘れてました😓。 探し方が悪かったのかアナウンスは出てました (Emacs pretest 28.0.91 is out)。むぅ。 という訳で 28.0.91が飛ばされた訳でも無く、ソースのリリース無しに Windowsのバイナリがビルドされてた訳でも無いという事でした🙇

2022/03/16

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

東京都コロナ感染者。新規は 10221人。

23:40頃に結構長く揺れたなぁと思ったら日付が変わる少し前に 東京MX以外のTV各局が地震番組に切り替わったり。

そういやビルゲイツって何歳なんだっけ?って急に思ったり。今日時点で66歳らしいのですが、 他にもコンピュータ(ソフト)界隈で思いつく人物の今の年齢を少し調べてみたり。

名前 年齢 参考
ドナルド・クヌース 84 参考
ケン・トンプソン 79 参考
アンドリュー・タネンバウム 78 参考
スティーブ・ウォズニアック 71 参考
坂村健 70 参考
リチャード・ストールマン 68 参考
ビル・ジョイ 67 参考
ラリー・ウォール 67 参考
ビル・ゲイツ 66 参考
ジェームズ・ゴスリン 66 参考
グイド・ヴァンロッサム 66 参考
ウォルター・ブライト 64-65 参考
まつもとゆきひろ 56 参考
リーナス・トーバルズ 52 参考

改めて見ると、66歳くらいはそういう世代なんだなぁ と思ったりも。

2022/03/15

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

東京都コロナ感染者。新規は 7836人。減ってはいるけど何故減ってるんですかね? 現状、行動の仕方が一定という状態の下、感染の可能性が高い行動をしている人が徐々に感染し尽くして いる感じなのかしら? もしそのような理由だとすると、4月から新生活を始めるようなイベントがあると 急に増える可能性は高いだろうと想像します。

Emacs 28.0.92がリリースされてました (Emacs pretest 28.0.92 is out)。 IMEパッチをあててビルドしてみたり。ちょろっと使った感じは問題なさげ。ただし--with-native-compilationは無しで。
そういえば以前、CygwinのMailingListでも 28.0.50でネイティブコンパイルのテストを 行っている投稿があったのですが、その後 問題無い感じになってるのかしら?

そういえばフォントの「源ノ角ゴシック」や「源ノ明朝」の英語名は「Source Han ...」と言うようです。 「源」が「source」って事なのだろうか? てか、そこを翻訳するの?と思ったりもします。 英語のWikipediaを見てみると、 日本語での読みの話は出てこないし、中国語や韓国語も読みが違うようです。 Google配布だと Noto Sans CJK とかになるのですが、とにもかくにも同じものに違う名前がいくつも付いててややこしいです。

2022/03/14

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

東京都コロナ感染者。新規は 4836人。

以前、Emacsのorg-modeで作成した文書を LuaLaTeXを経由してPDFファイルに変換する方法を整えました。そのときは、絵文字を変換する方法 に辿り着けなくて、XeLaTeXでフォントを指定すればイケるかも?くらいに留まっていました。 で、まだ絵文字ダメなんだっけ?と思ってWebを眺めていたら、 「LuaTeXでカラーフォント・絵文字✌(SVG/COLR/CBDT)」 という記事の存在を知りました。因みに記事の更新日は2020年4月13日なので、LuaLaTeXの環境を 整えていた時には存在していたハズですが気づかなかったのかと😓。 さておき、試してみたところ、上手くカラー絵文字でPDFに変換できるようです。 ただ、フォントフォールバックされる方式ではなくて、ターミナルのエスケープシーケンスのように 「次の文字からこのフォントを使います」と前置きする方式なので、絵文字を使っている事を意識して フォント切り替え操作する必要があります。

OrgMode+LuaLaTeXでColorEmoji

2022/03/13

AM中に起床。

掃除したり洗濯したり。

東京都コロナ感染者。新規は 8131人。

放置状態になっている手持ちのD言語コードを整理したり。 結局ツールバーのDPIスケーリング対応は全て自前で行う必要がありそうなのですが、 ツールバーを使ったコードってひな形のコード以外に無いので、手間と効率とが釣り合わなさすぎて停滞中😓。

Emacs-28系のgitブランチをpullしてみたら、emacs-28.0.92のタグが打たれているようだったり。 ん?28.0.91を飛ばして28.0.92? なんで?🤔

2022/03/12

AM中に起床。

東京都コロナ感染者。新規は 9164人。そういえば、現在も重傷者とされている人はそこそこの人数居る ようですが、重傷者数のうちワクチン接種している人ってどれくらいの割合なのだろうか?

Web散策をしていて、Emacsに comment-region や uncomment-region や comment-or-uncomment-region というコマンドがあるのを知ったり。 選択した範囲をバッファの言語モードに応じてコメントアウトしたりコメントアウトを外したりする ものみたいです。helpで調べてみると 19.20以前から導入されていたようです。 大量にコメントアウトしたい場合には使えるかも知れませんが、数行ならば手やキーボードマクロで 対応した方が早そうです😅。 だた、comment-box コマンドはちょっと面白いかも。

2022/03/11

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

東京都コロナ感染者。新規は 8464人。

あまりの眠さに急速停止。

2022/03/10

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

東京都コロナ感染者。新規は 10080人。

Web巡回して終了。

2022/03/09

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

東京都コロナ感染者。新規は 10823人。

DMDの2.099.0が出てる模様。 リリースは3月6日付けになってますがアナウンスは3月9日付けっぽい?

2022/03/08

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

東京都コロナ感染者。新規は 8925人。

調べ事して終了。

2022/03/07

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

東京都コロナ感染者。新規は 5374人。月曜だしな。

そういえばInkscapeで絵文字を入力すると Segoe UI Emoji が使われますがモノクロでレンダリングされます。 GIMPってどうだっけ?と思って 2.10.30 で試してみたらこちらはカラーでレンダリングされました。 Inkscapeのフォーラムで「emoji」をキーにして検索してみたのですがトピックを見つけられず。 でもGoogle検索するといくつか見つかり、カラー絵文字でレンダリングできている画像があったのですが、 Linuxだったり Noto Emojiだったりなので、カラーでレンダリングするには条件があるのか?と思ったりも。

2022/03/06

AM中に起床。

東京都コロナ感染者。新規は 9289人。

minttyでの画像表示。どんなファイルがイケるのか試してみたり。「man mintty」を見た感じ、

       Image support
              In addition to the legacy Sixel feature, mintty supports graphic image display (using iTerm2 controls).
              Image formats supported comprise PNG, JPEG, GIF, TIFF, BMP, Exif.

って記されていたので、普通の画像ファイルは大体大丈夫じゃないかと思われます。 しかし、手持ちのファイルで試してみると、途中で表示がキャンセルされるものがあるようです。 正確には判りませんが、元のデータサイズに制限があるんじゃないか?という感じがします。 showimgスクリプトでは、

    $echo -en "\e]1337;File=name=$(echo "$img" | base64 -w 0);inline=1"
    $echo -en "${width}${height}${pAR}:$(base64 -w 0 "$img")\a"

てな感じで、エスケープシーケンスの後にファイル名やファイル本体をbase64変換してターミナルに ぶちまけるという事を行ってるみたいです。4kx2kサイズのJPEGファイルはOKなのに、1280x960サイズのPNGファイルは 途中で切れるという感じになってて、前述JPEGは1MiBより小さく、後述PNGは1MiBより大きいという関係になってました。 という所から、データサイズ(画像サイズではない)に制限があるんじゃないか?と推測しています。

minttyのカラー絵文字サポート。メニューで選べるらしいのですが、選べなかったのでCygwinのminttyはそういうもの なんだっけ?と思いWeb検索してみると こちら のページに対応方法が記されていました。どうやら絵文字シーケンスを画像表示に置き換える という仕組みでカラー絵文字対応になるようです。 書いてある手順をスクリプトとして実行すれば良いと思いますが、読み進める順番で手動入力したらイケました。 実際に実行したのは以下のような感じです。

  cd $(cygpath "$APPDATA")
  mkdir mintty
  cd mintty/
  mkdir emojis
  cd emojis/
  wget 'https://raw.githubusercontent.com/mintty/mintty/master/tools/getemojis'
  bash getemojis -d

getemojisスクリプトを一部修正する手順が入ってましたが 最新のでは不要になってそうです。 参考ページにも記されている通り そこそこ時間がかかります。実行が終わると参考ページの通り 絵文字のスタイルが選べるようになります。 Emacsを「TERM=xterm-direct emacs-w32 -nw」で起動した後、以前知った list-charset-charsで一覧表示してみた結果が以下。

絵文字対応したminttyでemacs-w32 -nw

ターミナル表示とは思えないリッチ感です😅。Windowsの GUI Emacs(Cygwinの emacs-w32も含む)でも カラー絵文字が表示できればなぁ🥺。

minttyで画像ファイルを表示するshowimgスクリプト。標準入力を食ってくれないのは不便に思う場面があったので ちょろっと改造してみました(showimgex_20220306a.tar.xz)。 ファイル名に '-'(ハイフン)を指定すると標準入力から画像を読み込みます。 例えば「convert test_image.jp2 -resize 500 png:- | showimgex.sh -」みたいにパイプで繋げば、 サポート外画像やリモートファイル画像も比較的簡単に表示できるかと思います。 結局、大きなサイズのデータ表示に失敗する場合があるのですが、前述の例の様に予め小さくしておけば 表示できるっちゃできます。ファイルサイズ(もしかするとbase64変換後のサイズかも知れませんが)が 1MiB前後くらいに失敗するかしないかしないかの境界がありそうなので、 minttyの方で対応できれば一番良いかなとは思いますけれども。

2022/03/05

昼過ぎ起床。寝すぎ。

掃除したり。

東京都コロナ感染者。新規は 10806人。

テキストファイルの改行コード。そういえば昔の Mac OS って改行コードがCRだったのですが、 今でもそうなんだっけ?と思って調べてみたり。 どうやら macOSは UNIXなので LFになっているそうです (参考:改行コードのWikipedia)。

そういえば、たまにminttyで起動したCygwinからWindowsの ipconfig コマンドを実行する 事があるのですが、画面に表示するだけだと日本語文字が化けずに表示されます。 前は化けていたような気がするのですが? ipconfigコマンドが UTF-8に対応しているのか?と思ってパイプで繋ぐとやっぱり Shift_JIS の模様。 TTY かパイプかで挙動が違うみたい。ややこしい....

何気にminttyのページを眺めていたら、 何やら「Image display support」って記されていて、 showimgっていうスクリプトを使うと 画像を表示できるらしいというのを知りました。

mintty 画像表示テスト

上側が showimgスクリプトを使ったminttyの画像表示で、下側はimg2sixelを使ったsixelでの画像表示です。 画像ファイルにPNGを使ってますが当然JPEGはイケます。 拡大しないと判りませんが、showimgスクリプトでの表示はフルカラー表示になってます。 sixelは256色表示なのでディザってます。これ、いつからできるようになってたのだろう? 因みに、間にscreenコマンドを挟んでしまうとダメなようです。でも、コマンドラインでちょろっと 画像を表示したい場合とかには十分な気もします。 あと、背景に壁紙を貼る事もできるようです。ちょっと思ったのは、背景画像の貼り付けもエスケープシーケンスで コントロールできるならば、80年代の日本のパソコンのようにグラフィック面の手前にテキスト表示面がある 感じになるかも?とは思ったりも。

2022/03/04

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

東京都コロナ感染者。新規は 10517人。

EGRETⅡ mini」ってのが出ているのを知ったり。 「TATSUJIN」とか「GUN FRONTIER」とか「RAYFORCE」も収録されてるの?マジで?
そういやTATSUJINって セガサターン/PlayStation世代以降のコンシューマ機やPCに移植されているってのを聞いたことが無いなぁ? と思って検索していたら「株式会社TATSUJIN」という会社の存在を知りました。 ゲームのTATSUJINとは無関係なのか?と思ったら思いっきりスマホ向けに移植作品を作っていたので どういう会社なんだ?と思って調べてみたり。 最終的に東亜プランのWikipedia で色々判明しました。ざっくり言うと、東亜プランが倒産した後に知的財産権の所有元が不明になってた時期が あったようですが、2011年に版権元が見つかり更にその後 2017年にTATSUJINのメインスタッフである弓削雅稔氏が 株式会社TATSUJINを発足したという流れのようです。 東亜プランのWikipediaでは弓削氏はサウンドコンポーザーとして記されていますが、 TATSUJINのWikipediaを見ると プロデューサー兼プログラマ兼サウンドコンポーザーという人だったらしい。スゴ。
ところで、前述 東亜プランのWikipediaのゲームデザイナーの項の中に「金子ナンペイ」って記されていたのですが、 ん?イラストレーターの?? 同一人物なの?と思って調べてみたら本人らしい事が判明。 何故か持ってる画集「金子ナンペイのフキダシたいの。」(2005年11月15日 初版)の中に、 氏の半生を綴ったページがあるのですが、確かにゲーム会社にキャラクターデザイナーとして入社したと 記されていました。それが東亜プランだったとは。

2022/03/03

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

東京都コロナ感染者。新規は 12251人。減らないねぇ。
ロシアとウクライナのニュースの比率が多めになっているのが、相対的にコロナの状況を隠している感じに思えます。 医療負荷は高いままだし死者数も少なくはないように思うのですが。

Web巡回して終了。

2022/03/02

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

東京都コロナ感染者。新規は 12693人。

「漫勉neo」の新シリーズ。先日、番組表を見ていてたまたま気づきました😓。 何週間か前にたまたま「漫勉」のサイトへのリンクをはったのですが、 その時に新シリーズの事が書いてあった記憶が丸で無く。書いてあったとしたら節穴にも程がある感じに自分で愕然とします。 さておき、エピソード(12)は「弱虫ペダル」の渡辺航氏。「いい時代のGペン」ってなんだろう?というのは気になりました。 そういや弱虫ペダルって秋田書店の少年チャンピオン連載だよなぁ?と思ったり。 というのも、漫勉に出演している漫画家さんは講談社か小学館の雑誌連載作家という印象があったので。 今調べてみると、漫勉(無印)のシーズン4に出演していた 清水玲子氏は 白泉社の作家さんでした。 出版社縛りがある訳では無いのかも知れません。

2022/03/01

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

東京都コロナ感染者。新規は 11813人。

Web巡回して終了。


TOP PREV