昔の最近の出来事(2022.06)

2022/06/30

テレワーク。早くもなく遅くもなく終了。

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

もそもそとコーディング。

2022/06/29

テレワーク。早くもなく遅くもなく終了。

東京都コロナ感染者。新規は 3803人。なぜ跳ねる....

もそもそとコーディング。

TAB文字をgrepしたいと思って「grep '\t' foo.txt」とかやっても上手くマッチしなかったり。 Web検索してみると「grep $'\t' foo.txt」とすると「$'\t'」がTAB文字となってgrepの引数に渡るようです。 これを踏まえてmanページを見てみるとQUOTINGの項に 「Words of the form $'string' are treated specially.」って記されてました。 英語が読めないので答えが分っていないと文章の意味が解らないというのはさておき😓。 確かに「\t」だと「TAB文字とも読めるし、ただのtとも読める」という気もしますし、 「\\t」だと「二文字の"\t"という文字列とも読める」と。だから「$'\t'」という特別な表現が必要。覚えた。

2022/06/28

テレワーク。早くもなく遅くもなく終了。

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

もそもそとコーディング。

2022/06/27

テレワーク。早くもなく遅くもなく終了。

東京都コロナ感染者。新規は 1517人。減少傾向じゃないのがダメだな。
今はどういう人が感染しているんだ? 原因や要因の分析は行われているんだろうか?

もそもそとコーディング。

2022/06/26

AM中に起床。

掃除したり洗濯したり。

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

」っていう漢字があるのを知ったり。 JIS第4水準漢字らしいのですがMS-IMEでは出てきません。 中国語ならば入力可能なのか?と思い、Emacsの「M-x set-input-method」で「chinese-py」を選んで「mao」で探してみたのですが 「猫」の方しか見つからず。「M-x set-input-method」で「chinese-py-b5」を選んで「mao1」とすると 「貓」が出てくるようです。「猫」の方はいわゆる簡体字で「貓」の方は繁体字みたいです。 因みに、「ありがとう」をGoogle翻訳すると簡体では「谢谢」、繁体では「謝謝」となるようです。 簡体字のWikipediaによると、 簡体字は1950年代に制定されたそうなので、それより前から日本語として 常用漢字 になっていた繁体字については、積極的に簡体字に置き換える理由も無いのだろうと推測します。 なので、知らないと簡体字か繁体字かの区別は付かないという事だと思われます。
ところで、chinese-py-b5 だと「mao」と入れたところで「mao[1234]」って表示されて、 何かしらのグルーピングがされているようなのですが、1が何で 2が何で って覚えているものなのだろうか?

繁体字 簡体字 新字体 対照表」 というページを知りました。「繁体字」でも「簡体字」でもない「新字体」の漢字は日本製らしい。 「竜」とか「塩」は Google翻訳で中国語に翻訳すると違う漢字や見たことの無い漢字が出てきます。ほぅ...

新字体」というWikipediaの 「既存の字との衝突」の項が面白いと思いました。 「本来、「虫」(キ)は爬虫類を、「蟲」(チュウ)は昆虫などの小さな虫を表す別の字であった。」 というのを読んで、なぜ「爬虫類」って書くのかわかった気がします。 でも、「爬虫類」のWikipediaに 「爬蟲類」とも記されていて、「いや、それは違うんじゃないか?🤔」とは思ったりも。 試しに「爬虫類」を中国語に翻訳すると「爬行動物(繁体)/爬行动物(簡体)」となりました。 今や「虫」の文字にトカゲの要素は無くなっている気がします。

2022/06/25

起きたら午後もいい時間。寝すぎ。

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

何気に VGA解像度(640x480)と8K解像度(7680x4320)のピクセル数比って108倍あるってのに気づいたり。 マンデルブロ集合をVGA解像度でプリビューした後、8K解像度でレンダリングし始めてみたら、時間かかるなぁ?って思って 計算したら当たり前の結果でした😅。Full-HD解像度(1920x1080)とのVGA比だと6.75倍な訳ですが、 それよりちょっと解像度が高いくらいの感覚で8K解像度を扱ってはダメだと改めて思ったりも😓。

2022/06/24

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

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

手持ちのD言語コードをdmd2.099に対応。機械的な対応とは言え、何かしら更新が必要というのは面倒臭いです。 全然終わらず。

2022/06/23

テレワーク。早くもなく遅くもなく終了。

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

Web巡回して終了。

2022/06/22

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

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

調べ事して終了。

2022/06/21

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

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

EmacsのTRAMPで多段ssh接続ができるというのを知りました。 例えば、find-file(C-x C-f)で読み込みパスを指定するとき、 「/ssh:username1@host1|ssh:username2@host2:/path/file」みたいに指定すると、 host1にusername1でsshログインした後、そこからhost2にusername2でログインして /path/file を読み込むという 感じになるようです。人によっては使う場面は無いかも知れませんが、接続先のホスト上で動作しているVM上の ファイルを読み書きしたいような場面で便利です。

2022/06/20

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

東京都コロナ感染者。新規は 1076人。
全国で見ても重傷者数は少ない様ですが「だから大丈夫感」を出すのはダメかも。 以前知った通り、重症は死ぬかも知れないレベルで、意識があれば分類上は軽症/中等症ってのを 忘れかけているんじゃないか?と感じる事があります。無症状が 99.9% を占めているとかなら話は別ですが。

手持ちのD言語コードのコンパイル確認を行っていたところ、以前は問題なかったコードがコンパイルエラーするようになっていたり。 あるファイルAに記された名前付きenumを、別のファイルBに記されたコードでも使用するような場合に、ファイルBからはファイルAに 記されたenumが見えないという感じ。どうやら以下のように記す必要があるようです。

$ cat -n TestClass.d    #ファイルAに相当
     1  import std.stdio;
     2  import std.string;
     3
     4  enum TESTMODE{
     5    OFF,
     6    ON
     7  }
     8
     9  class TestClass {
    10    TESTMODE md=TESTMODE.OFF;
    11
    12    this(){ }
    13
    14    int setMode(TESTMODE mode){
    15      writef("setmode %s\n",mode);
    16      md=mode;
    17      return 0;
    18    }
    19  }

$ cat -n main.d    #ファイルBに相当
     1  import TestClass : TestClass,TESTMODE; //TESTMODEも記す必要がある
     2
     3  int main()
     4  {
     5    auto tc=new TestClass();
     6    tc.setMode(TESTMODE.ON);
     7    return 0;
     8  }

最初、main.dのimportは「import TestClass;」とだけ記していたのですが、それだとダメになっているのは 以前に遭遇していました。そこで「import TestClass:TestClass;」 と書き換えたのですが、「main.d(6): Error: undefined identifier `TESTMODE`」というコンパイルエラーとなり、 TestClass.dに記されている 名前付きenumの参照ができません。 最終的に「import TestClass : TestClass,TESTMODE;」と記すとOKになったという流れです。

エラーについて検索で調べている際に、D言語公式のフォーラムの過去記事で このような回答 があったのですが、現在は意味が変わってしまうようです。 TestClass.dというファイル名と TestClass というクラス名があるのでややこしいのですが、 現在は「import ファイルベース名 : クラス名とかenum名, ...;」という事のようです。 この為、フォーラムの回答のように「TestClass.TESTMODE.ON」と記すと一見 TestClass(.d)のファイルの中の TESTMODE.ONを参照している かのように見える(かつてはそうだったのかも知れない)のですが、実際には TestClassというクラスの中の TESTMODE.ON という 構造体変数だか TESTMODEっていうインスタンスの中のONってプロパティを参照しているだかに解釈されて別のエラーとなります。 importがやってる事の意味が解ればなるほどねと思うのですが、以前はC言語の#includeと同じ感じだったのに加えて、 名前を参照している部分で単に「undefined identifier」とだけ言われて、しかもフォーラムの記事も情報が古いとかなっていると 「なんでだよ?」となるわなとは思います。

2022/06/19

昼前起床。寝すぎ。

掃除したり洗濯したり。

東京都コロナ感染者。新規は 1622人。一週間前に、漸近しなければ1ヵ月後には 0になる傾きだと 記したのですが、記した直後から横ばい傾向になってます。

全く気づいていなかったのですが、Windows10ではcurlコマンドが標準でインストールされているらしい。 Cygwin32の時はパッケージインストールしていたのですが、何気に Cygwin64のbashコマンドラインで「type curl」してみると /cygdrive/c/Windows/system32/curlって返ってきたので「ん?」と思いました。 頻繁に使う事があまりないので気づいて無かったのもありますが、 Cygwin64を普段使いするようになった(過去の日記) 後も「curlを入れ忘れた」と思った事が無かったので、Windowsのcurlで普通に使えているのだろうと思います。

2022/06/18

起きたら午後もいい時間。寝すぎ。

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

PCの本体照明(一応ゲーミングPC)がコントロールできない状況になっていたり。先日のWindowsアップデートで妙になったっぽいのですが 再起動しても復帰せず。そういやと思い一旦シャットダウンしてから電源ONで復帰しました。 よく考えてみると、普段はスリープ→リジュームと再起動しか使っていない為、シャットダウンしたのってものすごく 久しぶりのような気がします。ハードウェアに関連する変になる事象は電源OFFまでしてみるのは重要と再認識しました。

D言語で連想配列型の変数のキーをソートしてforeachでループを回すみたいな事をやったのですが、 その時に普段いつも使う「foreach( i, key ; dict.keys )」を「foreach( i, key ; dict.keys.sort )」に書き換えたら 何故かコンパイルエラー。「foreach( key ; dict.keys.sort )」ならOKとなりました。納得はしていない🤔

import std.stdio;
import std.string;
import std.algorithm.sorting;

int main()
{
  int[string] dict;

  dict["abc"]=10;
  dict["def"]=20;

  foreach( i, key; dict.keys ){
    writef("i=%d key=%s  value=%d\n",i,key,dict[key]);
  }

  foreach( key; dict.keys.sort ){
    writef("i=xx key=%s  value=%d\n",key,dict[key]);
  }

  //以下だとエラー
  //$ dmd --version
  //DMD32 D Compiler v2.097.2-dirty
  //Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved written by Walter Bright
  //$ dmd foreach_test.d
  //foreach_test.d(26): Error: cannot infer argument types, expected 1 argument, not 2
//  foreach( i, key; dict.keys.sort ){
//    writef("i=%d key=%s  value=%d\n",i,key,dict[key]);
//  }

  return 0;
}

2022/06/17

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

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

ちょろりコーディング。

シェルのコマンドラインインターフェース。 bashのコマンドライン学習の動画を見る機会があったのですが、Linuxを動かすまでの手順の方が面倒くさすぎて 「こんなに手間をかけてまでCLI操作を習得するモチベーションが保てる初学者って居るのか?」という 疑問が湧いたりしました。 MS-DOS時代にはGUIという選択肢が無い都合上 CLIを使わざるをえないという感じだったように思いますが、 現在 PCやスマホで「コンピュータを使っている」という人でも CLIを使わない人は全く使わないという感じなのかな?と思います。
ところで、macOSは Windowsの様に MSYSやCygwinを入れるとかWSLやVMでLinuxを動かす必要も無く、 CLI操作に触れる事のできる環境にあると思うのですが、実際にCLIで操作している人ってどれくらい居るのだろう?

2022/06/16

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

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

EmacsのMagit(2.7系)で手持ちコードの git コミットを行おうとしたところ、何やらエラーでコミットメッセージ作成の バッファが開かなかったり。 どうやらこのへんの話で、Emacs28になってから エラーするようになっていたらしい。28.1に乗り換えて2ヵ月ほど経つのに、この間 gitコミットしたこと無かったのがバレた😅。 という訳で思い切って Magit 3系に乗り換えてみる事に。 パッケージインストールで magit-20220615.1159 というあまりにも新しすぎるバージョンを入れてみました。 現在はバージョンで言うと3.3.0みたい。 さておき、magit2.7系では拙作window-plusとの相性が悪くてウインドウ操作が不可能な状態に陥った為、 transientというパッケージにパッチを当てていたのですが(以前の日記)、 magitアップデートと同時に入った新しいtransientパッケージは 今の所パッチ無しでも大丈夫そう。

2022/06/15

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

東京都コロナ感染者。新規は 2015人。ん?なんかダメだな。

GIMPの2.10.32が出ていたり。 JPEG-XLの読み込みがイケるようになってるみたい。エクスポートは3.0までおあずけかな? てか、リファレンス実装となるlibjxlが1.0にならないと画像フォーマットとして 正式にサポートした事にはならないのかも知れませんが。

2022/06/14

テレワーク。早くもなく遅くもなく終了。

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

調べ事して終了。

2022/06/13

テレワーク。早くもなく遅くもなく終了。

東京都コロナ感染者。新規は 960人。漸近しなければ丁度1ヵ月後には 0になってる傾きには思ったりも。 そうは うまくいかないだろうとは思いますが。3回目ワクチン接種率と連動しているように見えなくはありません。 沖縄がダメなのはワクチン接種率と関係していると言われると否定はできないかも知れず(完璧に肯定できるだけの明確な証拠もありませんが)。 ワクチン接種率が 60% を越えた所から急に減る可能性はあるかも。去年の9月~10月はそんな感じだったと思います。

調べ事をして終了。

2022/06/12

AM中に起床。

掃除したり洗濯したり。

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

Emacsのorg-mode。我が家では自前でパッチをあてたりしている都合で Emacsに同梱されているのは使わずに、 ソースアーカイブとしてリリースされるものをビルドして使っていました。 しかし、以前 Org Modeの公式ページがリニューアルされた頃から、 ソースアーカイブがリリースされなくなってしまったようなので、現在は git cloneしたものを直接パッケージとして使い、 大分長い周期でpull実行してアップデートしています。 で、Emacsに同梱されているlisp/org下の org-modeは Emacsのgitリポジトリでアップデートされているのですが、 本家のorg-modeのリポジトリと同じものがコミットされている訳ではないようです。 例えば今日時点では ob-plantuml.elというファイルは本家で2022年1月15日に変更のコミットがあるのですが、 Emacsの方にはまだ反映されていません。Emacsのmasterブランチでも、大分メジャーなアップデートじゃないと 入ってこないみたいです。

ライブチャットで世界と繋がるか? 時々「時差がある事を忘れてないか?」って思う事はあります。 ネットワークで場所を越えられるのは確かなのですが 時間は越えられないという事実。 例えば 日本の昼間と同じ時間帯でオンラインチャットできる他の国って意外と少ないように思ったりも。

2022/06/11

AM中に起床。

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

普段使いしているEmacsは Cygwinのminttyから起動してbashコマンドラインから「emacs-w32 &」的な感じで 起動しています。で、何故か minttyのbashコマンドラインでIMEをONにして日本語文字列を入れようとしたところ 全ての入力が受け付けられなくなりました。しかたなくminttyをウインドウクローズボタンで閉じたのですが、 バックグラウンド実行していた emacs-w32も道連れで落ちてしまいました。mintty→bash→emacs-w32 のプロセスツリーの 関係から終了されたと思われるのですがダメージが大きいなぁと思ったり。 Cygwinで nohup コマンドって使えるんだっけ?と思ったら使えるようだったので、普段使いのEmacsは nohupで 包んで起動するようにしてみました。

2022/06/10

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

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

VMwareのFedoraを36にアップグレードしてみたり。壁紙は毎度変わるのですが、ちょっと触った感じでは 35とあまり違いが無いようだったり。 今の所、Emacsは 27.2で、ImageMagickも6系のままのようです。

2022/06/09

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

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

Emacs画像表示。最終的に magit-auto-revert-mode と global-git-gutter-mode の初期状態を「無効」にする事で大分改善したり。 ただ、-Qに比べるとまだ2倍遅いですが😓

2022/06/08

テレワーク。早くもなく遅くもなく終了。

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

Emacs画像表示。-Qで起動したあと、scratchバッファで

(package-initialize) ;;C-jで実行
nil

(require 'magit)     ;;C-jで実行
magit


てな感じで magitをrequireしてから画像をimage-modeで開き、nとかpとかで次の画像を開いてみると露骨に遅くなる模様。 package-initializeの実行だけなら変わりないようです。辛い。

どうやらmagitをrequireした時に自動的に有効になる magit-auto-revert-mode を無効にすると遅くならないのを発見。 どういうモードか意識したことが無い(てか存在自体を今日知った😓)ので無効にした時の副作用がよく判りません😓。

2022/06/07

テレワーク。早くもなく遅くもなく終了。

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

Emacsの -Q起動か否かで画像表示(ファイル読み込み?)の時間差がある件。 elpを使った時間計測が正しいのか実験コードで調べてみたけど正しそう。 「image-mode--setup-mode」という関数に-Q起動だとほぼ 0なのに、.emacsを読み込むと1秒かかるという感じ。 ただ、image-mode--setup-modeの中を edebugを使ってステップ実行してみるも、特に深い所に潜っている感じは無く。 元々1秒しかかからないので、ステップ実行で体感できるほどのつっかかりがある訳でもなく。
関数の呼び出し元となる場所で止めてみたところ、major-mode-suspendという関数の実行で少しつっかかりがあったり。 で、続けて実行すると件の 関数image-mode--setup-mode が実行されるのですが、すると何故か image-mode--setup-modeの実行時間が -Qの時と同じくらいの時間になったり。 時間計測の開始点がイマイチよく判らなくなったのですが、 major-mode-suspend という関数名から何かしら 関係はありそうな予感がしたりも?
major-mode-suspendの中は数行のコードしかないようですが、kill-all-local-variables って関数を 実行していて、これに時間がかかってそう。うーん?🤔

2022/06/06

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

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

何気に「emacs-w32 -Q」で起動して画像ファイルを表示していたのですが、image-modeで nキーを押して 次のファイル、その次のファイルと表示していると、いつもよりキビキビ表示されたり。 -Qの有無だけの差なので、画像ファイルの表示に差がある訳ではなく。ファイルの読み込みに何かしら 余計な時間がかかっているのでは?と推測したのですが、何に時間がかかっているのかをどうやって 調べれば良いのか見当が付かず。勘で magit を使わないようにしてみたら、大分早く読み込まれるようになったり。 うーむ🤔

elpというELISPプロファイラの存在を知ったり。「M-x elp-instrument-package」で image-mode を指定した後、 image-modeで画像を表示して、「M-x elp-results」で関数毎の実行プロファイルが表示されるようです。 因みに、「M-x elp-reset-all」で値をリセットできるようです。 判った事は 「image-mode--setup-mode」という関数の実行時間が -Qを付ける時と付けない時とで、300倍くらい差があるみたい。 何故こんなに差が付くのかはよく判らず。

2022/06/05

AM中に起床。

掃除したり洗濯したり。

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

鉄腕DASHでやってたハブの捕獲。あの蛇の捕獲道具はちょいちょい出てきますが、あれ、もうちょっとなんとかならないの? と毎度思います。

2022/06/04

AM中に起床。

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

先日、マカサル語でのマカサル文字とブギス文字の関係を知ったのですが、 そういや「チコちゃんに叱られる!」で「なぜアルファベットには大文字と小文字がある?」ってのを やってたな?と思い出したり。番組で示された理由は「紙を節約する為」って事でした(参考)。 で、検索している過程で 「大文字と小文字」 というWikipediaの存在を知ったのですが、ここには特に小文字の生まれた理由は記されていないようです。 関連して「小文字」というWikipediaも存在している ようですが、「筆記を簡単にするため」の一文があるだけで、こちらも明確に生まれた理由は記されていません。 少し探すと「なぜアルファベットには大文字と小文字があるのか?」 という記事があり、これがチコちゃんの元ネタになっているのかなぁ?と想像しました。
話は変わって、前述の記事から辿れる 「なぜ日本語には「ひらがな」と「カタカナ」があるのか?」 という記事もありました。ひらがな(平仮名)とカタカナ(片仮名)の生まれた経緯が記されています。 ひらがなもカタカナも800年代(平安時代)に生まれたようですが 明確な発祥時期は不明みたいです。 ひらがなもカタカナも音節文字 として形をなしていったと考えられているみたいですが、同時期に万葉仮名を簡略化するという事が行われたけど 用途が違ったようです。用途の違いがあるがために両方が残ったのかなぁ?と思ったりも。

2022/06/03

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

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

レイヤーセクション。残っていた「20回目のプレイ」っていうトロフィーを取得してプラチナゲット。 だがちっとも上達はしていない😓

2022/06/02

テレワーク。早くもなく遅くもなく終了。

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

調べ事をして終了。

2022/06/01

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

東京都コロナ感染者。新規は 2415人。
上海ロックダウン解除。急発進して大丈夫か?と思う所はあるのですが、検査でスクリーニングしているから大丈夫と いう事なのだろう。逆に、極少数ながら まだ新規感染者が出ている地域があるというのはどういう事なんだ? とは思ったりも。

Cygwinの3.4.xから32bitサポートが無くなる予定ですが、 gitリポジトリでは32bit向けコードの削除が始まっているようです。


TOP PREV