ときどきの雑記帖 RE* (新南口)
星を砕く者
半袖
GW辺りで半袖を出したのだけど、 今週になって初めて今シーズン着た😄
脆弱性
GNU Cライブラリ(glibc) 2.27から2.38に重大(Critical)な脆弱性。CVE-2025=4802はdlopenを呼び出す場合に信頼されないLD_LIBRARY_PATH環境変数を優先し、静的コンパイルされたsetuidバイナリからでも攻撃者制御下の動的共有ライブラリを呼び出される可能性があるもの。 https://t.co/4uAmueTadL
— kokumօtօ (@__kokumoto) May 19, 2025
なお…
まだこういうのが残ってたのか
描く人
「ガンダム」キャラデザイン 安彦良和特別展 来場者1万人に|NHK 青森県のニュース
青森県立美術館では、「機動戦士ガンダム」のキャラクターデザインやアニメーションを手がけかつて 弘前大学に在籍したこともある安彦良和さんの特別展が先月19日から開かれていて、 イラストの原画や漫画の原稿など1000点あまりの資料が展示されています。
特別展の来場者が16日、1万人に到達し、記念セレモニーが開かれました。
約一か月で1万人。ですか。
0 oigin
JavaScriptのDateはなぜ月を0から数えるのか?仕様の背景と対策を調べてみた
まとめると、以下のようになります。
- JavaScriptを設計した際のJavaの仕様が引き継がれたと言う背景がある。
- JavaScriptに引き継がれたJavaの仕様はJava側では変更されたが、JavaScript側ではそのまま
なんでJavaで調べるのを止めちゃうかなあ😓
AI
AWK「awkの正規表現を使って、<h3>と</h3>の間の文字を抽出する方法」をAI先生に聞きました。 #ChatGPT - Qiita
awk 'match($0, /<h3>([^<]*)<\/h3>/, a) { print a[1] }'
えーあいに尋ねた結果だということだけど、これgawk拡張だよなあ。
The array argument to match() is a gawk extension. In compatibility mode (see Command-Line Options), using a third argument is a fatal error.
F-4
次期戦闘機に「烈風」、名づける意味あるのか? 突如よみがえった“80年前の戦闘機”の名 | 乗りものニュース
航空自衛隊も、1955(昭和30)年から1980(昭和55)年まで運用していたF-86F「セイバー」戦闘機に「旭光」、 1958(昭和33)年から1968(昭和43)年まで運用していたF-86D「セイバードッグ」戦闘機に「月光」、 1963(昭和43)年から1986(昭和61)年まで運用したF-104J/DJ「スターファイター」戦闘機に「栄光」という、 日本独自の漢字ニックネームを付けました。
しかしお世辞にも定着したとは言いがたく、その後に導入されたF-1、F-2、F-15J/DJ、F-35A戦闘機には漢字のニックネームは付けられていません。
F-4は? (日本独自のニックネームはついてなかったと思うけど)
numbat
物理次元型を持つ静的型付け言語「Numbat」の紹介 #Rust - Qiita
let w1: Mass = 0.5 kg
# let [変数名]: [型名(物理次元)] = [数値] [単位]
Numbat が異なるのは、「単位」ではなく「次元」そのものを型とする点です。 たとえば「km/h」ではなく「長さ/時間」として型を定義することで、より汎用的かつ柔軟な設計になっています。
どのプログラミング言語で記述されているのかとか 単位の部分をどう扱っているのかきになったので(ry
Languages Rust 93.4%
(予想はしていたけど)Rustですか。 んで構文解析は numbat/numbat/src/parser.rs at master · sharkdp/numbat · GitHub かな?
fn statement(&mut self, tokens: &[Token<'a>]) -> Result<Statement<'a>> {
if !(self.peek(tokens).kind == TokenKind::At
|| self.peek(tokens).kind == TokenKind::Unit
|| self.peek(tokens).kind == TokenKind::Let
|| self.peek(tokens).kind == TokenKind::Fn
|| self.decorator_stack.is_empty())
この辺かな?
「単位」はあらかじめ登録されたものだけ? ではなさそう…
- numbat/numbat/src/unit.rs at master · sharkdp/numbat · GitHub
- numbat/numbat/src/unit_registry.rs at master · sharkdp/numbat · GitHub
- Introduction - Numbat - scientific calculator with full support for physical units
ところでNumbatとは(アイコンがそうだけど)この動物らしい
HNやredditでもスレッドはあったけどそれぞれひとつずつ。 よく見つけたなあ>元記事
- [B! Math] 物理次元型を持つ静的型付け言語「Numbat」の紹介 - Qiita
- Numbat - A programming language with physical dimensions as types : r/rust
- Show HN: Numbat - A programming language with physical dimensions as types | Hacker News
新刊近刊
オープンソースで未来を築こう
『オープンソースで未来を築こう』が出版されますhttps://t.co/3RDTGUfcJP pic.twitter.com/p5Ui9WOs3V
— 角 征典/Masanori Kado (@kdmsnr) May 2, 2025
Vicky Brasseur『オープンソースで未来を築こう』の紹介用の動画https://t.co/c3GH7vnbH1
— 角 征典/Masanori Kado (@kdmsnr) May 2, 2025
awk
gawk
- Clean up code for setting ERRNO. - gawk.git
- Changes in he.po file
- Bug fix for PMA in regex_internal.c. - gawk.git
- Persistent memory functions: When and how should they be defined in your
- Problem with persistent memory and reg exp
- re_node_set_alloc relies on malloc(0) returning non-NULL
FORTRAN Compiler on IBM 704
前回の
A+B**C*(E+F)
という計算式は+(*(**A))+(*(**B**C)*[+(*(**E))+(*(**F))])
のように解析されて、そこから以下のような命令列が組み立てられる。u0 = + u1 + u3 u1 = * u2 u2 = * * A u3 = * u4 * u5 u4 = ** B ** C u5 = + u6 + u8 u6 = * u7 u7 = ** E u8 = * u9 u9 = ** F
これには「無駄」があるので「最適化」すると
u0 = + A + u3 u3 = * u4 * u5 u4 = ** B ** C u5 = +E +F
この「命令列」から機械語(or アセンブリ言語)に落とすのは難しくはないのだけど、 「後ろ」から生成していかないと 値がまだ入っていない一時変数を参照することになっちゃうんだよなあ。
あと
A + B + C
みたいな場合はどういう出力になるんだろう。 結合規則を考えれば
A + B + C → +(*(**A))+(*(**B))+(*(**C))
u0 = + u1 + u6
u1 = + u2 + u4
u2 = * u3
u3 = ** A
u4 = * u5
u5 = ** B
u6 = * u7
u7 = ** C
な感じになるのだろうけど(最適化はしていない)、 やっぱり「後ろ」からコードにしないとだよねえ
Hugoメモ
convert binary to character
— たいにゃん (@bugnekotinyan) May 16, 2025
intel8086CPUで、ALレジスタに0~15の値が入っているとき、 それをアスキーコードの0-9とA-Fに変換するアセンブラコードを5バイトで作って
BCD演算命令を「活用」するパターンだろうか?
assembly - Increasing Efficiency of binary -> gray code for 8086 - Stack Overflow
;; input: byte in AL. output: print 2 ASCII hex digits with BIOS int 10h
;; clobbers: CX, DX
hexprint_byte:
mov ah, 0Eh ; BIOS teletype call #
; push ax ; 1B 15c
mov dx, ax ; 2B 2c ; save number, and AH=call number
mov cl, 4 ; 2B 4c
shr al, cl ; 2B 8+4*4 cycles isolate the high nibble
.loop:
cmp al, 10 ; 2B 4c set CF according to digit <= 9
sbb al, 69h ; 2B 4c read CF, set CF and conditionally set AF
das ; 1B 4c magic, which happens to work
int 10h ; 2B BIOS teletype output (AL), no return value
; pop ax ; 1B 12c ; would do one extra pop if you used this instead of mov/xchg, so you'd need jmp ax instead of ret. But AND destroys AX
xchg ax, dx ; 1B 3c ; retrieve the original again (with AH=0Eh call number)
and al, 0Fh ; 2B 4c ; isolate the low nibble this time
dec cx ; 1B 3c ; PF is set from the low byte only, CH garbage isn't a problem.
jpe .loop ; 2B 4c-not-taken, 16c-taken
; 4-1 = 3, (0b11) which has even parity
; so JPE is taken the first time, falls through the 2nd
こんなの。
天然痘
これ、種痘史研究上は基礎知識に属することかと思うのですが以下では正解が示されていないので。人為的に接種する「種痘」に対して、自然に罹るものだから「天然」痘なのです。種痘という技術から再帰的に付された新たな名称であり、種痘によって予防できるものという含意がある https://t.co/A3pSgb8Q0s
— 🛡️✨𝙨𝙪𝙞𝙨𝙚𝙞_𝙨𝙚𝙣𝙨𝙚𝙞💉💉🚀🚀🚀💉💉 (@shoemaker_levy) May 16, 2025
とはいえ何ぞ出典を示したほうがいいですね。後日あらためて
— 🛡️✨𝙨𝙪𝙞𝙨𝙚𝙞_𝙨𝙚𝙣𝙨𝙚𝙞💉💉🚀🚀🚀💉💉 (@shoemaker_levy) May 16, 2025
いいかげん見飽きたのでレトロニム言いたいだけの人はどっか行ってくれませんかね
— 🛡️✨𝙨𝙪𝙞𝙨𝙚𝙞_𝙨𝙚𝙣𝙨𝙚𝙞💉💉🚀🚀🚀💉💉 (@shoemaker_levy) May 17, 2025
あまり気にしたことがなかったけど、確かに言われてみれば 不自然さがあるな>「『天然』痘」
日本パーソナルコンピューター博物館
5月31日(土)11時~16時
— 日本パーソナルコンピューター博物館 (@PCMUSEUM_JP) May 18, 2025
6月1日(日)11時~15時
第一回プレ・オープン企画展
「これまでのMSXと…」を開催します。
MSXの仕様はどこから来たのか、
何が実現され、どのような課題を残したのか。
その流れを感じ取って頂けるよう展示いたします。https://t.co/7zAveChv8Chttps://t.co/SAFZUftxu6
お、いよいよか。
再帰的頭字語
GNU is Not Unix的な? pic.twitter.com/JeDyiqUZtU
— hnakai (@hnakai0909) May 18, 2025
デフラグ
昔、ハードディスクのデフラグの様子をぼーっと見てるのって、なんか安らぎましたよね。ということで、デフラグツール風のアニメーションを #M5Stack Core 2 に表示するやつを作りました。なお、デフラグ中にうっかり触るとこんなことになります。M5Burner用のShare Codeは「LtjGqgD4cC5okIi1」です。 pic.twitter.com/djR92wOJ41
— きゅーこん (@cubic9com) May 19, 2025