ときどきの雑記帖 RE* (新南口)
Do Not Go Gentle Into That Good Night
こうしす!
(前編の)放送に気がついたのが放送の翌朝で、 後編はどうしよかと思っていたのだけど…
TVアニメ映画「こうしす!EE 総集編映画版 ~こちら京姫鉄道広報部システム課~」 前編
— 京姫鉄道合同会社(京姫鉄道出版) (@kyoki_railway) May 28, 2024
本日の放送をご覧いただきありがとうございました。
引き続き次週もご視聴ください!
この番組はご覧のスポンサーと弊社の提供でお送りしました。#こうしす #tokyomx pic.twitter.com/Z6S6BByr5T
「提供ラムダノート」!
昨晩見逃した方、来週も後編があるよ! https://t.co/JjwxLwzRe9 https://t.co/TOsy0IZD9I
— 専門性・売上・原稿 (@golden_lucky) May 28, 2024
とりあえず後編のタイマー録画仕掛けた😄
邪悪なハンコ屋
こちらでございます(笑) pic.twitter.com/I2fmOCCQzI
— やる気なし婆 (@vr26z) May 29, 2024
どこにあるんだろうと調べてみたら谷中なのか。 なんとなく西日本のような気がしたのだけど
実店舗「邪悪なハンコ屋 しにものぐるい」谷中銀座店のご案内 - 邪悪なハンコ屋 しにものぐるい オリジナルハンコ、認め印通販
こちら谷中銀座店は店舗面積が1.5坪ほどの、 すれ違うのがやっとの(本当に)小さなお店です。
数人で満員になってしまう店内と、カタログでの商品閲覧になるため、 ご来店の際は、サイトにてご注文したい商品をあらかじめ決めて、 商品名、型番(m001などの数字)をメモしておかれますと よりスムーズにご注文できると思います。
谷中銀座も昨今は人出が多そうで行きづらいっちゃ行きづらい
The First Microprocessor
- MP944: The First Microprocessor (2014) | Hacker News
- Home - First Microprocessor | 50th Anniversary of the Microprocessor 2020
義〇〇
日本に染まりつつあるフランス人家族に“カツ丼”を食べさせたら…… まさかの変化に「なんだか嬉しい」「日本に早く来て欲しい」(1/2 ページ) - ねとらぼ
するとお父ちゃんは、お母ちゃんの母である義理母のことを話題に。 「義理母が作るトンカツはめっちゃおいしい」と明かしつつ、 日本の米の品質の良さについても熱く、そして誇らしげに語ります。
そこは「義理の母」とか「義母」じゃないんだろうか。
- 義母(ぎぼ)とは? 意味・読み方・使い方をわかりやすく解説 - goo国語辞書
- 義父母の意味や読み方 わかりやすく解説 Weblio辞書
- 義親 - Wikipedia
- ここで、よく「義両親」や「義実家」という言葉をみかけます。とても違… - Yahoo!知恵袋
「義実家」のように、 なんか無理やり漢語っぽくしようとしているのをよく見かけるようになった気がする。
ニンジャバットマン
アニメ「ニンジャバットマン対ヤクザリーグ」制作決定!山寺宏一がバットマン役で続投 | マイナビニュース
ニンジャバットマンは公開初日に観に行ったぞ😄
ingenuity
火星ヘリコプター「インジェニュイティ」の冒険は続く - その最後の任務と未来 | TECH+(テックプラス)
どんな意味なんだろうと調べてみたら
ingenuityの意味・使い方・読み方|英辞郎 on the WEB
- 〔人の〕創意工夫[発明]の能力、創造力◆不可算
- 創意あふれる[巧妙な]アイデア[構想・計略]
- 〔創意ある〕考案品、発明品
へー。 そう言えば火星探査機って他にも色々あったよねえ。 で調べたら
- マーズ2020 - Wikipedia
- インジェニュイティ - Wikipedia
- パーサヴィアランス - Wikipedia
- マーズ・サイエンス・ラボラトリー - Wikipedia
- 探査車キュリオシティ
- マーズ・エクスプロレーション・ローバー - Wikipedia
- オポチュニティ - Wikipedia
- スピリット (探査機) - Wikipedia
ふむ。
ラス前
いよいよ次回で完結
最終回直前の『ナポレオン 覇道進撃』。
— 司史生@2版制作中 (@tsukasafumio) May 30, 2024
皇帝、パリに帰還す。
ナポレオンを野心に満ちた大悪党として描いてきた本作だが、二十年余の長期連載の終わりを迎え、皇帝を迎える老兵たちにおのれを重ね合わせて泣いた。
超人ロックも(作者が亡くなられたので)もう載ってないし、 ドリフターズはいつ掲載されるかわからない。 てな状況だから、アワーズ買うのも止めるかねえ… それなりに読んでいる連載もあるにはあるんだけど
[lr]?trim
詳しくは元記事を参照してもらうとして
これはPHPのバグ???
ってのは「(読者に対する)問いかけ」でもないのなら 「ドキュメントにあたれ」って話だよねえ
何か月か前にもPHPじゃない別のプログラミング言語で 同様の記事を見たような気がするんだけど、 はてなんだったか。
空のアーカイブ作成はご容赦願います
Windows 11 では 7z をコマンドラインでも圧縮・解凍できるようになっていた #PowerShell - Qiita
実は、Windows 10 1803 以降には tar コマンドが同梱されています。この tar コマンドは GNU tar ではなく、FreeBSD 版 tar (libarchive) です:
(略)
そのため、tar -c を実行しても GNU tar でおなじみの 空のアーカイブ作成はご容赦願います という独特な表現を見ることはできません:
というのが気になったので(ry
gnutar/gnutar/po/ja.po at master · aosm/gnutar
#: src/tar.c:2226
msgid "Cowardly refusing to create an empty archive"
msgstr "空のアーカイブ作成はご容赦願います"
なるほど。そういう原文からの翻訳なのか。
ところで他の部分を見てみると
gnutar/gnutar/po/ja.po at master · aosm/gnutar
#: lib/paxerror.c:179 lib/paxerror.c:211
#, c-format
msgid "%s: Read error at byte %s, while reading %lu byte"
msgid_plural "%s: Read error at byte %s, while reading %lu bytes"
msgstr[0] "%s: %s バイト目で読み込みエラー (%lu バイト読み込み中)"
msgstr[1] "%s: %s バイト目で読み込みエラー (%lu バイト読み込み中)"
#: lib/paxerror.c:192
#, c-format
msgid "%s: Warning: Read error at byte %s, while reading %lu byte"
msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes"
msgstr[0] "%s: 警告: %s バイト目で読み込みエラー (%lu バイト読み込み中)"
msgstr[1] "%s: 警告: %s バイト目で読み込みエラー (%lu バイト読み込み中)"
ん、なんじゃこれ。 目的はわかるけどこんなのあったの知らなかった(忘れていた?)。
- 3 POファイルのフォーマット
- 12.6 複数形の翻訳
- 11.2.6 複数形(plural forms)にたいする追加の関数
- Translating plural forms (GNU gettext utilities)
- Plural forms (GNU gettext utilities)
新刊近刊
囲碁AIの技術と思想
【新刊紹介】『囲碁AIの技術と思想』(坂じゅんいち 著、税込1,760円、電子版あり)が発売。長年、囲碁教育の普及に取り組んできた著者が、AIについて、その誕生以来の歴史から研究。AI時代における囲碁と文化をテーマに本書を書き下ろした。 https://t.co/2Ktmmk7PGc pic.twitter.com/iVxenB2it3
— BOOKs 第三文明 (@BOOKs_d3) May 18, 2024
この本、書店で見かけたのでパラパラ眺めてみたのだけど 自分の興味に合いそうな感じだった (まだ買ってない)
【目次】
まえがき
第1章 計算機の歴史
第2章 AIの誕生と発展
第3章 コンピューター囲碁からAI囲碁へ
終 章 AIが人類につきつけるもの[特別収録] 対談 AI・囲碁・教育――その未来を展望する 劉知青(北京郵電大学教授)×坂じゅんいち
関数電卓がすごい
こちらもついに校了しました! 芝村裕吏@siva_yuri
— 一ノ瀬翔太 (@shotichin) May 31, 2024
『関数電卓がすごい』(ハヤカワ新書、6/19発売)。これめちゃめちゃ面白いです。気づいたらスマホを横にして関数電卓をたたいている自分がいた pic.twitter.com/zPLXVkBGHg
ハヤカワ新書も面白そうなものが多い(全部は買っていられない…)
江戸の天才数学者 世界を驚かせた和算家たち
『江戸の天才数学者 世界を驚かせた和算家たち』鳴海 風/著 1210円 (新潮社選書)
— 書泉_MATH (@rikoushonotana) May 31, 2024
発売中!江戸時代に華開いた日本独自の数学文化。世界の数学者を驚かせた関孝和、渋川春海、建部賢弘、会田安明など八人の天才の熱き生涯。 pic.twitter.com/97UWhxGaiH
awk
v7
ん、でも
if (var in array)
がない?
もうちょっとv7のawkのソース v7unix/v7/usr/src/cmd/awk at master ・ v7unix/v7unix ・ GitHub を追いかけてみた
inの処理は v7unix/v7/usr/src/cmd/awk/run.c at master · v7unix/v7unix にあるんだけど
instat
obj instat(a, n) node **a;
{
cell *vp, *arrayp, *cp, **tp;
obj x;
int i;
vp = (cell *) a[0];
arrayp = (cell *) a[1];
if (!(arrayp->tval & ARR))
error(FATAL, "%s is not an array", arrayp->nval);
tp = (cell **) arrayp->sval;
for (i = 0; i < MAXSYM; i++) { /* this routine knows too much */
for (cp = tp[i]; cp != NULL; cp = cp->nextval) {
xfree(vp->sval);
vp->sval = tostring(cp->nval);
vp->tval = STR;
x = execute(a[2]);
if (isbreak(x)) {
x = true;
return(x);
}
if (isnext(x) || isexit(x))
return(x);
tempfree(x);
}
}
}
obj instat(a, n) node **a;
{
cell *vp, *arrayp, *cp, **tp;
obj x;
int i;
vp = (cell *) a[0];
arrayp = (cell *) a[1];
if (!(arrayp->tval & ARR))
error(FATAL, "%s is not an array", arrayp->nval);
tp = (cell **) arrayp->sval;
for (i = 0; i < MAXSYM; i++) { /* this routine knows too much */
for (cp = tp[i]; cp != NULL; cp = cp->nextval) {
xfree(vp->sval);
vp->sval = tostring(cp->nval);
vp->tval = STR;
x = execute(a[2]);
if (isbreak(x)) {
x = true;
return(x);
}
if (isnext(x) || isexit(x))
return(x);
tempfree(x);
}
}
}
どうみても全要素を列挙するものですねえ。
やっぱりあるキーが連想配列にあるかどうかを調べる方のin
はないのかと思いつつ検索してみたら
最初のawkとnawk(現在one true awkになったやつ)の違いを
まとめたページ
AwkChannelWiki: oawk
があった。
そこでいろいろ挙げられている中にこれがあった
Can’t test for an element being “in” an array:
$ /usr/xpg4/bin/awk 'BEGIN{ a[1]=7; if (1 in a) print a[1]; exit }' 7 $ /usr/bin/awk 'BEGIN{ a[1]=7; if (1 in a) print a[1]; exit }' awk: syntax error near line 1 awk: illegal statement near line 1
あ。やっぱり。 そのほか挙げられている項目には知っていたものも 知らなかったものも。
ところで
v7unix/v7/usr/src/cmd/awk/awk.def at master · v7unix/v7unix
#define BOTCH 1
struct nd {
char ntype;
char subtype;
struct nd *nnext;
int nobj;
struct nd *narg[BOTCH]; /* C won't take a zero length array */
};
BOTCH
て😄
makefileの中を見ると
v7unix/v7/usr/src/cmd/awk/makefile at master · v7unix/v7unix
token.c: awk.h
ed - <tokenscript
rm temp
と、edを使っていた。 こういう使い方ができるのは知っていたけど 実際に使っている例はあまり見た覚えがない。
実際どういう操作をしているかというと
v7unix/v7/usr/src/cmd/awk/tokenscript at master · v7unix/v7unix
e y.tab.h
1,$s/# *define *//
1,$s/^/"/
1,$s/ /", /
1,$s/$/,/
w temp
e token.c
/= *{$/+1,/^};$/-1d
-r temp
w token.c
q
こう。
ちなみにOTAではin
が関係している部分がどうなっているかというと
awk/awkgram.y at master · onetrueawk/awk
for:
FOR '(' opt_simple_stmt ';' opt_nl pattern ';' opt_nl opt_simple_stmt rparen {inloop++;} stmt
{ --inloop; $$ = stat4(FOR, $3, notnull($6), $9, $12); }
| FOR '(' opt_simple_stmt ';' ';' opt_nl opt_simple_stmt rparen {inloop++;} stmt
{ --inloop; $$ = stat4(FOR, $3, NIL, $7, $10); }
| FOR '(' varname IN varname rparen {inloop++;} stmt
{ --inloop; $$ = stat3(IN, $3, makearr($5), $8); }
;
awk/awkgram.y at master · onetrueawk/awk
| pattern IN varname { $$ = op2(INTEST, $1, makearr($3)); }
こんな感じに二つ(IN
とINTEST
)にわかれていて、
後者に対応する関数は
awk/run.c at 5dab2871759082fb9037c23af5e9387bb6366e1d · onetrueawk/awk
intest
Cell *intest(Node **a, int n) /* a[0] is index (list), a[1] is symtab */
{
Cell *ap, *k;
char *buf;
ap = execute(a[1]); /* array name */
if (!isarr(ap)) {
DPRINTF("making %s into an array\n", ap->nval);
if (freeable(ap))
xfree(ap->sval);
ap->tval &= ~(STR|NUM|DONTFREE);
ap->tval |= ARR;
ap->sval = (char *) makesymtab(NSYMTAB);
}
buf = makearraystring(a[0], __func__);
k = lookup(buf, (Array *) ap->sval);
tempfree(ap);
free(buf);
if (k == NULL)
return(False);
else
return(True);
}
こう。まあそうだよね。という内容すね
もうひとつ、連想配列のキー列挙の方も見てみると
awk/run.c at 5dab2871759082fb9037c23af5e9387bb6366e1d · onetrueawk/awk
instat
Cell *instat(Node **a, int n) /* for (a[0] in a[1]) a[2] */
{
Cell *x, *vp, *arrayp, *cp, *ncp;
Array *tp;
int i;
vp = execute(a[0]);
arrayp = execute(a[1]);
if (!isarr(arrayp)) {
return True;
}
tp = (Array *) arrayp->sval;
tempfree(arrayp);
for (i = 0; i < tp->size; i++) { /* this routine knows too much */
for (cp = tp->tab[i]; cp != NULL; cp = ncp) {
setsval(vp, cp->nval);
ncp = cp->cnext;
x = execute(a[2]);
if (isbreak(x)) {
tempfree(vp);
return True;
}
if (isnext(x) || isexit(x) || isret(x)) {
tempfree(vp);
return(x);
}
tempfree(x);
}
}
return True;
}
v7時代の面影がありますな。
FORTRAN Compiler on IBM 704
nmake
https://t.co/BjWDsWqy8M VS2022のnmakeでは関数使えるようになってたのか
— ( Φ _⊞) (@n0kada) May 31, 2024
マジで。 とリンク先を見ると
NMAKE マクロを使用する | Microsoft Learn
マクロの関数
NMAKE には、文字列、項目の一覧、ファイル パスを変更するために使用できる一連の関数が含まれています。 それらの関数は、Visual Studio 2022 以降の NMAKE で使用できます。
関数の構文
関数では、次の構文を使用します。
$(function_name arg0,arg1,arg2...)
おー。 でももうVisual Studio使って何かを作ることはないかなあ。
class
すげぇ、今朝登録されたオブジェクト指向についての質問にアラン・ケイが答えてる。https://t.co/lT1owC2JAe
— よーいちろーX🌗ワク5+陽性1 (@youichirou) May 31, 2024
The second version of Simula (Simula-67) used the term “Class” for the descriptions that could be instantiated into “objects” which carried out the descriptions. Some of the background for this term very likely came from its use in mathematics. (以下略)
へー。
で、
しかもこれは日本人が書いた質問で、あのアラン・ケイに「日本ではしばしばクラスとインスタンスの説明に、タイ焼きの型とタイ焼きを例に出すことがあります」という会話をしている。アラン・ケイに。 https://t.co/YwaivmcqoG
— よーいちろーX🌗ワク5+陽性1 (@youichirou) June 1, 2024
とあるのでスレッドを追いかけると
In Japan, it is often explained that a mold for baking sweets called Taiyaki is a class, and the finished Taiyaki is an object.
これか。 それに対する返事がこう
In a completely object-oriented language, you would also need a mold for the mold, and a mold for that, etc., and “molds” for the parts of the Taiyaki, etc.
It’s interesting that most “natural languages” are powerful enough to handle meta relationships, but most programming languages are not (including so-called “object-oriented” languages).
アセンブラ
今日定年退職される方と少しだけお話
— とみながたけひろ (@takehiro_t) May 31, 2024
「これからどうされるんですか、やっぱプログラム書くんですよね?」
「もう絶対C++なんて使わない、アセンブラで趣味に走ります」
強すぎる…
わかる。凄く分かる。わかりみが凄い。やっぱり開発のメインはアセンブリにしたい。コンパイラはツール開発だけで十分。 https://t.co/zWDaHMkXjH
— 内藤 時浩 (@NAITOTokihiro) May 31, 2024
超若い子たちとチームを組んでますが「アセンブラは書ける気がしません」って言ってたw
— 岩崎啓眞@スマホゲーム屋+α (@snapwith) May 31, 2024
超若い子たちに「6502とかZ80だったら100%、僕勝てるね」って爆笑しながら話をしてましたw https://t.co/YkKFOWgZ3x
最初の(定年退職された)方がどんなCPU向けのアセンブリ言語を使うのかが ちょっと気になる😄
その昔、何度か言及したことのあるAMDの29000という(正確にはそのバリエーション) RISC向けのプログラムをアセンブリ言語で書いたとき(無論お仕事)に、 「こんなの人間が手で書くもんじゃねえ」 と思いましたですね😄
29000は命令体系なんかも好きではあるんだけど、 さすがに丸ごとアセンブリ言語で(それなりの大きさの)プログラムを書くのは無理😓 29000は大昔のものだけど、RISCっぽい石はどれもそんな感じじゃないかなあ (異論は認める)