mieki256's diary



2026/07/03(金) [n年前の日記]

#1 [prog] Emacs系エディタ用のコメント行の名称が分からない

テキストエディタの xyzzy や Emacs は、ソースファイルの最初のあたりにコメント行で色々書いておくと、そこで指定したメジャーモードや文字エンコーディングでそのファイルを開いてくれる機能がある。以下のような感じのコメント行で…。

#!python
# -*- mode: python; Encoding: utf-8; coding: utf-8 -*-
# Last updated: <2026/07/07 21:25:17 +0900>

この、2行目3行目を、何と呼べばいいのかわからないなと…。

ググったところ、「モードライン」と呼んでる場合もあったけれど…。エディタ画面の下のほうにある、現在のモードを表示している行もモードラインと呼ばれることがあるようで…。

「マジックコメント」という呼び方も見かけた。どうやら Ruby あたりから始まった呼び方のようで、今では色々な言語でもその呼び方が使われている、とAIは言っていたけれど。Emacs系エディタの世界ではマジックコメントという呼び名はそもそも使ってなかったそうで…。

このあたりのコメント行は、一体どう呼べばいいのだろう…。

いやまあ、今時フツーのプログラマーはソース書く時に Emacs系エディタは使わんやろ、Visual Studio Code か vim あたりを使うんじゃないの? という気もするので、今更どうでもいい気もするのだけど。

ただ、今回、どういう記述をすればいいのか忘れてしまって、ちょっとググろうとした時に名称が分からなくて困ったという…。

余談。xyzzyに関数を追加してた :

xyzzy の siteinit.l に、このあたりの文字列を挿入する関数を追加していたことを忘れていた。

;; 文字コード判別用の文字列を挿入
(defun insert-my-coding-check-string-utf8n()
  (interactive)
  (insert "-*- mode: <ModeString>; Encoding: utf-8; coding: utf-8 -*-"))

(defun insert-my-coding-check-string-sjis()
  (interactive)
  (insert "-*- mode: <ModeString>; Encoding: sjis; coding: sjis -*-"))

M-x insert-my-coding-check-string-(utf8n|sjis) で挿入できる、とメモしておくけれど明日には忘れてそう…。M-x insert-m まで打って補完、ぐらいは覚えておきたいけれど…。

#2 [pygame] pygameをWebブラウザ上で動かせるpygbagを試用

Python で2Dゲームを作れる、pygame というモジュール/ライブラリがある。ローカル環境で動かすことが前提のライブラリだけど、pygbag というツール? モジュール? を利用すると、pygame を利用しているスクリプトをWebブラウザ上でも動かせると知ったので試用してみることにした。

環境は Windows11 x64 25H2 + Python 3.10.10 64bit + pygame-ce 2.5.6。CPU : AMD Ryzen 5 5600X。GPU : NVIDIA GeForce GTX 1060 6GB。

インストール :

インストールは以下。
pip install pygbag
or
python -m pip install pygbag

今回は pygbag 0.9.3 がインストールされた。

スクリプトを修正 :

pygameを使ったスクリプトは、そのままでは pygbag 用にならないので、ほんのちょっとだけ修正が必要らしい。以下を参考にして修正。

_【pygbag】「たった10分で」pygameをブラウザ上で動かす! #Python - Qiita

以下を修正すればいいのかな…?
  • スクリプト名は main.py にしておく。
  • スクリプトや画像の類は任意のフォルダに入れておく。
  • import asyncio を最初のあたりに追加。
  • def main(): を async def main(): に変更。
  • clock.tick() の直後に await asyncio.sleep(0) を追加。
  • main関数を asyncio.run(main()) で呼び出すように変更。

pygbagで変換 :

pygbag を呼び出して、Webブラウザで実行できる状態に変換する。スクリプトが入っているフォルダと同階層で以下を打つ。
python -m pygbag フォルダ名

変換終了後、Webサーバが実行されて待ち状態になるので、Webブラウザで http://localhost:8000/ にアクセスすれば、pygameスクリプトをWebブラウザで実行できる。

終了はコマンドプロンプト上で Ctrl + C。

Webサーバに公開 :

フォルダ名\build\web\ の中に公開用のファイル群一式が入っている。今回は以下が入っていた。これをWebサーバ上にアップロードすればいいのだろう…。
favicon.png
hellopygbag.apk
hellopygbag.tar.gz
index.html

Webサーバが Apache の場合、かつ、このあたりのファイル種類について設定がされてない場合は、.htaccess でファイル種類を指定する必要があるかもしれない。
AddType application/wasm .wasm
AddType application/octet-stream .data
AddType application/octet-stream .apk

.gz が x-gzip に割り当てられてない場合は以下の記述も必要、とAI (Google Gemini)が言っている。自分の環境では指定しなくても動いてくれた。おそらく Apache2 全体の設定で既に指定されているのだろう…。
<IfModule mod_mime.module>
    AddEncoding x-gzip .gz
</IfModule>

AIは、キャッシュを使わないようにする設定も提示してきたけれど、その指定は必要なのかな…。

サンプル :

Webサーバに置いてみたけれど、実行できるだろうか…。

_pygbag sample

ページを開いて、ロードが終わると、Firefoxの場合は「準備できたからタッチせよ」と英文で言ってくるのでページをクリックすれば動く。はず。動くといいなあ…。Google Chrome の場合は、ロードが終わればそのまま実行開始になった。

Firefox 152.0.4、Google Chrome 150.0.7871.4上では動いてくれた。手元の環境、CPU : AMD Ryzen 5 5600X、GPU : NVIDIA GeForce GTX 1060 6GB 上では結構滑らかに動いている。

ソースと画像は以下。 AI(Google Gemini) に作成してもらった。このくらいのスクリプトなら一発で生成してくれるのね…。

_main.py
_image.png

#3 [pc][prog] ripgrepをインストールしてみた

Windows11 x64 25H2上で ripgrep なるツールをインストールしてみた。AI(Google Gemini)によると、Rustで書かれた爆速のgrep、らしい。バイナリファイルを除外したり、色付けされたりするらしい。VSCode(Visual Studio Code)でも使われているのだとか。

_【捜索生活向上1】ファイル検索ツール「ripgrep」を利用して、俊足かつ効率的に見つけ出す。 初心者 - Qiita

今回は choco (Chocolatey)経由でインストールした。管理者権限でコマンドプロンプトを開いて、以下を打った。
choco install ripgrep

rg.exe というのが ripgrep のコマンド名らしい。以下の場所にインストールされた。
> which rg
"C:\ProgramData\chocolatey\bin\rg.exe"

AI(Google Gemini)によると、以下のような使い分けがいいだろうとのこと。

元々、VSCodeの拡張の todo-tree が、「ripgrepが見つからないから手動でインストールせよ」と言ってきたので今回インストールしてみたけれど、たしかに VSCode のインストール場所を探したら rg.exe が入っていた。VSCode も使っているというのはおそらく本当らしい。ちなみに以下の場所に入っていた。
C:\Users\(USERNAME)\AppData\Local\Programs\Microsoft VS Code\4fe60c8b1c\resources\app\node_modules\@vscode\ripgrep-universal\bin\win32-x64\rg.exe

choco経由版をアンインストールした :

zipで入手できる版があると知った。

_Releases - BurntSushi/ripgrep

こちらを使うことにしよう…。ripgrep-15.1.0-x86_64-pc-windows-msvc.zip を入手して解凍。中に入ってる rg.exe をパスの通った場所に置く。今回は D:\home2\bin\ 以下に置いた。

> rg --version
ripgrep 15.1.0 (rev af60c2de9d)

features:+pcre2
simd(compile):+SSE2,-SSSE3,-AVX2
simd(runtime):+SSE2,+SSSE3,+AVX2

PCRE2 10.45 is available (JIT is available)

choco経由でインストールした版はアンインストールした。
choco uninstall ripgrep

以上、1 日分です。

過去ログ表示

Prev - 2026/07 -
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project