銀河の歴史がまた1ページ(日記)

Last Update (2025/05/17 19:24:19)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

jdiaryの最新(作成)記事ダイジェスト

2025.05.16(金) 21:09:33 emacs 29.4 shr.wl / eww.el 見物

emacs 29.4 shr.wl / eww.el 見物

tag: emacs

emacs eww の textarea 入力がうまくいかないのでちょっとソースを見てみた。

/usr/share/emacs/29.4/lisp/net/ 以下にソースがある。

shr.el は Simple Html Renderer の略。 libxmlで解析したHTMLのdomからread-only属性を付与したテキストとしてテキストエディタの画面にinsertする形でレンダリングしている。

eww.el は shr.el を使う形で実装されている。 HTMLフォームの入力を実現するため、inputの箇所だけread-only属性を外してテキストをinsertしている。

tableの中にtextareaがある場合、shr.elの中で行うtableのセルのサイズ計算は簡易的なものなので、高さが1行しか確保されず、textareaの上にinsertされる空行部分のみ表示されtextareaの内容は表示されない、という動作をしている。

ewwではtextareaが表示されないなーと思っていたのだが、オレwikiではtableの中にtextareaがあるから表示されないという落ちだった。

tableのセルのサイズ計算を emacs lisp で行うのも重いだろうし、これはどうしたもんかね。

ewwにおけるtextareaの問題は他にもあって修正するのはいろいろ大変そうなのはわかった。

emacs-30.1ではtextareaの問題がちょっと直っているので今後に期待。

2025.05.15(木) 21:36:02 ジークアクス第6話

ジークアクス第6話

tag: anime

バスク・オムとサイコガンダムが来た。もう終わりだ。

ついったーでは一部に絶望説が流れる。

Zガンダムは見てなかったので取り急ぎ2話と3話を履修。

ああ。これはアカン。

初代ガンダムからサブキャラ引っ張ってきてボコる展開が続いているけど今回はZガンダムからヤベー奴連れてきたな。

次回登場するのはサイコガンダムmk2のようだが、これは拡散メガビーム砲3門、メガビーム砲20門、ビーム砲10門を搭載する大火力。

普通のキシリア暗殺計画ならコロニーごと破壊するという発想は出てこないが バスク・オムとセットで出てくるならやりかねないという奇妙な信頼があるようだ。

p.s.

ただ、今回はバスク・オム本人は地球に居るままっぽいのでそこまで酷いことにはならないだろう。たぶん。

2025.05.14(水) 10:02:34 ヘッドレスchromeを使ってWebサイトのdomをダンプする

ヘッドレスchromeを使ってWebサイトのdomをダンプする

tag: chrome, headless, web, html

chrome --headless --disable-gpu --dump-dom https://www.yahoo.co.jp/

2025.05.10(土) 14:32:20 emacs-30.1 dired が動かない → gls をインストールして .emacs に設定を追加

emacs-30.1 dired が動かない → gls をインストールして .emacs に設定を追加

tag: freebsd, emacs, freebsd-14.2

emacsからdiredを起動した時のエラーメッセージは以下。

Listing directory failed but ‘access-file’ worked

原因と対処方法は以下に書いてあった。

原因はlsコマンドにオプション --group-directories-first が存在しないこと。

gnu ls ならこのオプションは存在するので、coreutilsをインストール。

sudo pkg install coreutils

~/.emacsに以下を追加。

;;
;; emacs 30.1 work around : dired not work
;;
;; sudo pkg install coreutils and set below
;;
(setq insert-directory-program "gls" dired-use-ls-dired t)
(setq dired-listing-switches "-al --group-directories-first")

これで FreeBSD上の emacs 30.1 の dired が動作した。

p.s.

MacOSのemacs使いの人も同じ現象で困っている模様。 あっちのlsの由来もそういえばFreeBSDのユーザーランドが発祥だったっけ。

2025.05.06(火) 14:58:19 FastAPI入門メモ

FastAPI入門メモ

tag: fastapi, python

日本語の公式解説が充実しているのは助かる。

多量の顔文字を使ったページが async / wait の解説にあるのは笑ったが英文の方は挿絵までついていてさらに笑ったw

Python 3.6 から追加された async / wait を全面的に使ったフレームワークが FastAPI らしい。

Django や Flask はそれよりも前に開発されたので async / wait をほぼ使っていないか部分的にしか使っていないらしい。

JavaScriptでもみかける async / wait だが、これは、並行処理(concurrency)を可能にする記述方法。 WebAPI処理のように、IO律速の場合(通信相手がいて返事がCPUクロックと比べて遅いとわかっていて、自分側の処理はほぼ負荷なしの場合)に高効率。

似ているようで異なる並列処理(parallelism)はスレッドを同時に複数使う記述方法。 巨大な画像処理や巨大な行列演算など、CPU律速の場合に向いている。

FastAPIが async / wait を全面的に採用できるのは、外部とのIOをAIOライブラリ(Async IOライブラリ)のみで実施しているからのようだ。

またFastAPIはPython 3.8以降の型ヒント、Pydantic(データ型の検証を行う外部ライブラリ)を全面採用しており、JSONデータの型付け、型検証を行う。

2025.05.05(月) 11:33:43 春の文房具その2

春の文房具その2

近所の本屋(有隣堂)でモレスキンノート(Moleskine)扱っていてちょっと驚いた。

たぶん一時的な扱いだろうけど。

結構いいお値段だが手触りはいい。

個人的にはミニ6穴システム手帳派w (紙の面積が少ないのは認める)(ミニ6穴システム手帳派って紙の面積で言えばKOKUYO Campus ミニのサイズと同じなんだよな。。。)

2025.05.04(日) 21:32:58 俺は星間国家の悪徳領主!

俺は星間国家の悪徳領主!

tag: anime

アニメ版はド派手にアニオリ入れてて話がよくわからんことになっている。

コミックス版は素直な流れでこっちの方が好き。原作小説も素直な流れを持っていた。ダメなのはアニメ版だけ。

p.s.

この作品は、作者が気晴らしのため気軽に書き始めたものらしく、最初の頃はなろうで暇な時だけ書く不定期連載だったのだが、なぜか人気が出て書籍版が出てコミックス版が出てアニメ化までされるという数奇な運命をたどったらしい。

2025.05.01(木) 19:18:03 Internet Archive 系サービス

Internet Archive 系サービス

こちらは会員登録不要で利用できるっぽい。

Books Archive では 1990年のOh!Xとかが見えたww

2025.05.01(木) 17:09:22 オレwikiにサムネイル画像オンメモリキャッシュを取り付け

オレwikiにサムネイル画像オンメモリキャッシュを取り付け

tag: wiki

おー。10msくらいでサムネイル画像(110KBくらい)が表示される。これはいい。

キャッシュ削除のタイミングで悩んだが、定期実行スレッドから時間経過で削除する実装にしておく。

2025.05.01(木) 16:22:49 国会図書館デジタルコレクションに登録してみた

国会図書館デジタルコレクションに登録してみた

NDLサーチの方からインターネット経由で会員登録してみた。 ログインをクリックすると下の方に新規登録リンクが出る。

本登録に必要なのはメールアドレスと、本人確認書類のjpeg画像(運転免許証またはマイナンバーカード)。

本登録の場合は、一度仮登録になって5日ほど(現在混雑中らしいが)後に本登録への移行があるらしい。

懐かしの1980年の雑誌とかが検索にヒットする。 ラジオの製作とかあったゾ。 今は仮会員なので見れないけどw

ちょっと興奮してきたwww

2025.04.30(水) 11:50:14 GW中の勤務日

GW中の勤務日

あまり長く休みが続くのも良くない。たぶんw

2025.04.29(火) 16:54:54 天気も良くお散歩日和

天気も良くお散歩日和

気温もちょうど良く。

4月末から5月初めくらいがいい季節。

その後はずっと暑いw

2025.04.28(月) 11:57:46 無印良品のUSB扇風機が充電式になってた

無印良品のUSB扇風機が充電式になってた

充電機能はいらんやろ。。。 リチウムイオン電池搭載したら捨てにくいじゃん。。。

手頃なUSB扇風機を探さないと。

2025.04.27(日) 16:53:19 春の文房具

春の文房具

4月は文房具コーナーが拡張されて新作が出現してくる季節。

今年は KOKUYO の Campus ブランドで A5 ルーズリーフを推している雰囲気がある。 marumanも相乗りして A5 ルーズリーフを出している。

A4とかB5だとちょっと大きくて重いという向きにはA5サイズは便利かも。 (陳列量から言えばまだまだA4やB5がメインだろうけど)

A6まで行くと本当にメモ用紙になってしまうのでここら辺が今時のサイズなのかも。

2025.04.26(土) 13:35:09 5/6の振替休日

5/6の振替休日

tag: wiki

5/4(日曜日)みどりの日の振替休日が5/6になっているの珍しい。

カレンダー計算ロジックで再現するのにちょっと悩んだw

2025.04.23(水) 18:21:06 オレの eslint.config.js (eslint v9)(flat config版) 作ってみた

オレの eslint.config.js (eslint v9)(flat config版) 作ってみた

tag: eslintv9, eslint, eslint-flat-config

HTMLの中に埋め込まれているようなプレーンなJavaScriptのチェック用にeslintの設定を作ってみる。

eslint v9では設定ファイルの構造がflat configに変わったようなので最小限設定を作ってみた。

■eslintのインストール

node と npm はインストール済みの想定。

どこか適当な新規ディレクトリの中に移動して以下を実施。

今回は ES module 前提で設定してみた。

# package.json作成
cat > package.json << "EOF"
{
    "private": true,
    "type": "module"
}
EOF

# eslintインストール
npm install --save-dev eslint @eslint/js eslint-config-prettier globals

設定ファイルの作成とテスト実行


# 設定ファイル作成
cat > eslint.config.js << "EOF"
//
// eslint.config.js
//

import eslint from '@eslint/js';
import prettierConfig from 'eslint-config-prettier';
import globals from 'globals';

// プレーンなjs用の設定
const jsConfig = {
  files: ["**/*.js", "*.js"],
  languageOptions: {
    globals: { ...globals.browser , ...globals.node },
    parserOptions: { ecmaVersion: "latest" },
  },
  rules: {
    "no-unused-vars": "warn",
    "no-console": "warn",
    "no-var": "warn",
  },
};

// 設定をマージ
export default [
  eslint.configs.recommended,
  jsConfig,
  prettierConfig // フォーマット関連のルールを無効化
];

EOF

# チェック対象サンプルソースコード生成
cat > hoge.js << "EOF"
console.log("hello world");
var v = 3;
const v1 = 4;
hogehoge(1, document.form.testid);
window.open("url");
EOF

# チェック実行
npx eslint --debug hoge.js

以下のような感じでチェック結果が出る。

D:\HOME\eslint\hoge.js
  1:1  warning  Unexpected console statement              no-console
  2:1  warning  Unexpected var, use let or const instead  no-var
  2:5  warning  'v' is assigned a value but never used    no-unused-vars
  3:7  warning  'v1' is assigned a value but never used   no-unused-vars
  4:1  error    'hogehoge' is not defined                 no-undef

x 5 problems (1 error, 4 warnings)
  0 errors and 1 warning potentially fixable with the `--fix` option.

eslint.config.jsの中にエラーがあると、エラーメッセージからエラーがある行が特定できないのが結構キツい。

ここの例みたいに、とにかく単独で動作する eslint のディレクトリがあれば文法チェックできるかも。

設定ファイルは基本的にデータ構造定義だけのJavaScriptになるので、設定ファイルが正しいかどうかはeslintの動作で見るしかないっぽい。

parserOptionsがトップに定義されているなどよくある間違いはeslintがチェックしてくれるが、中括弧が余計に入っていてデータ構造が崩れているような場合は単に無視される。

設定ファイルがノーマルなJavaScriptになったので、環境変数を見てxxxしたい、みたいなのは書きやすいと思う。

p.s.

package.jsonの中のtypeがcommonjsの場合はここで書いた設定ファイルはES Module形式で記載されているのでeslint.config.mjsというファイル名で保存する。


Copyright(c) 1996-2024 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。
メール本文に 6020-5440-3372 とか私の 本名 を漢字で書いて頂くと、ウチのSPAMフィルタを通過できます。

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using white list SPAM filter. To avoid it, please write 6020-5440-3372 in mail body. This key word is valid since 2009-06-14 until 2024-12-31.)