ときどきの雑記帖 RE* (新南口)
School Days
ダイヤ改正
東横線や目黒線で、 新横浜行き、 湘南台行き、 海老名行き を見るとなかなかに違和感が (すぐに慣れるだろうけど)
Eテレ
メモ。
Eテレ新番組「情報I」3/24スタート…NHK高校講座 | 教育業界ニュース「ReseEd(リシード)」
日経サイエンス
今月は買わねば。 しかし圏論もいろいろなところにでるようになったねえ。
📗3月25日発売!
— 日経サイエンス (@NikkeiScience) March 18, 2023
日経サイエンス2023年5月号
🤖特集:話すAI 描くAI
【特別解説:数学の数学「圏論」の世界】
・クール・コンピューター 熱くならない計算機を作るhttps://t.co/pfM1W3cfgs #科学 #AI pic.twitter.com/eOWrqo8fw2
【宣伝】3月25日発売の日経サイエンス2023年5月号に掲載されるEmily Riehl氏の記事の翻訳を担当いたしました!作図不可能性の証明に抽象数学が使われるという話から始まり、数学における抽象化とその有効性について、圏・群・∞-圏の概念と例に触れつつ解説されています。https://t.co/GkN8eFyRmh
— ぴあのん (@piano2683) March 18, 2023
買いたくなる見出し。5月号がなんで3月発売なのかよくわからんが。4月にならないと予算がないので4月に買おう。 https://t.co/498t6MciwE
— 日本の科学と技術 (@scitechjp) March 18, 2023
chatgptとアシモフ
圏論
計算理論の基礎
本書はMIT屈指の名講義をまとめた計算理論の教科書です。15年ぶりの改訂となります『計算理論の基礎 [原著第3版] 1.オートマトンと言語』(Michael Sipser 著)は、4月下旬の発売です。https://t.co/HcmBAzUIMe pic.twitter.com/OH1JxooZOI
— 共立出版 アリがと蟻 (@1738310) March 20, 2023
なお、第2版と同じく、本書は3分冊となります。残りの2冊、「 2.計算可能性の理論」(田中圭介・藤岡 淳 監訳・阿部正幸・植田広樹・太田和夫・渡辺 治 訳)と「3.複雑さの理論」は、5月上旬に同時発売です。https://t.co/r2SSIEKUeR
— 共立出版 アリがと蟻 (@1738310) March 20, 2023
zillion
UNIX 開発者ケン・トンプソン、現在使用するOSは Raspbian | スラド Linux
これまで Apple に投資してきた億兆年も惜しくないと思い、Linux、具体的には Raspbian に移行したとのこと。
And I’ve come, within the last month or two, to say: even though I’ve invested a zillion years in Apple, I’m throwing it away, and I’m going to Linux. To Raspbian, in particular.
gnu nonoption
せっかくなので(謎)glibcも調べてみた。
nonoptionでgrepしてみると 2.0と2.0.1とでこうなった (1.19では見つからず。2.0.2以降は調べていない)
2.0
posix/getopt.c:256:static const char *nonoption_flags;
posix/getopt.c:257:static int nonoption_flags_len;
posix/getopt.c:367: /* Determine how to handle the ordering of options and nonoptions. */
posix/getopt.c:393: sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
posix/getopt.c:394: nonoption_flags = getenv (var);
posix/getopt.c:395: if (nonoption_flags == NULL)
posix/getopt.c:396: nonoption_flags_len = 0;
posix/getopt.c:398: nonoption_flags_len = strlen (nonoption_flags);
posix/getopt.c:401: nonoption_flags_len = 0;
posix/getopt.c:486:#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
posix/getopt.c:487: || (optind < nonoption_flags_len \
posix/getopt.c:488: && nonoption_flags[optind] == '1'))
posix/getopt.c:490:#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
posix/getopt.c:517: while (optind < argc && NONOPTION_P)
posix/getopt.c:555: if (NONOPTION_P)
2.0.1
posix/getopt.c:256:static char *nonoption_flags;
posix/getopt.c:257:static int nonoption_flags_max_len;
posix/getopt.c:258:static int nonoption_flags_len;
posix/getopt.c:278: if (nonoption_flags_len > 0) \
posix/getopt.c:280: char __tmp = nonoption_flags[ch1]; \
posix/getopt.c:281: nonoption_flags[ch1] = nonoption_flags[ch2]; \
posix/getopt.c:282: nonoption_flags[ch2] = __tmp; \
posix/getopt.c:316: /* First make sure the handling of the `nonoption_flags' string can
posix/getopt.c:319: if (nonoption_flags_len != 0 && top >= nonoption_flags_max_len)
posix/getopt.c:325: nonoption_flags_len = nonoption_flags_max_len = 0;
posix/getopt.c:328: memcpy (new_str, nonoption_flags, nonoption_flags_max_len);
posix/getopt.c:329: memset (&new_str[nonoption_flags_max_len], '\0',
posix/getopt.c:330: top + 1 - nonoption_flags_max_len);
posix/getopt.c:331: nonoption_flags_max_len = top + 1;
posix/getopt.c:332: nonoption_flags = new_str;
posix/getopt.c:402: /* Determine how to handle the ordering of options and nonoptions. */
posix/getopt.c:428: if (nonoption_flags_max_len == 0)
posix/getopt.c:432: sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
posix/getopt.c:435: nonoption_flags_max_len = -1;
posix/getopt.c:438: int len = nonoption_flags_max_len = strlen (orig_str);
posix/getopt.c:439: if (nonoption_flags_max_len < argc)
posix/getopt.c:440: nonoption_flags_max_len = argc;
posix/getopt.c:441: nonoption_flags = (char *) malloc (nonoption_flags_max_len);
posix/getopt.c:442: if (nonoption_flags == NULL)
posix/getopt.c:443: nonoption_flags_max_len = -1;
posix/getopt.c:446: memcpy (nonoption_flags, orig_str, len);
posix/getopt.c:447: memset (&nonoption_flags[len], '\0',
posix/getopt.c:448: nonoption_flags_max_len - len);
posix/getopt.c:453: nonoption_flags_len = nonoption_flags_max_len;
posix/getopt.c:456: nonoption_flags_len = 0;
posix/getopt.c:541:#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
posix/getopt.c:542: || (optind < nonoption_flags_len \
posix/getopt.c:543: && nonoption_flags[optind] == '1'))
posix/getopt.c:545:#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
posix/getopt.c:572: while (optind < argc && NONOPTION_P)
posix/getopt.c:610: if (NONOPTION_P)
なんでこんなに違うんだろう? まあそれはさておき変更履歴を調べると 2.0.1/ChangeLog.6にこんな記述があった。
Mon Jan 6 03:31:46 1997 Ulrich Drepper <drepper@cygnus.com>
* posix/getopt.c: Only use the bash generated environment variable
to determine non-option parameters when using in GNU libc and if
the argument vector given to getopt is the same as given to the
program.
ChangeLogにはこういう記述があった。
1997-01-28 04:23 Ulrich Drepper <drepper@cygnus.com>
* version.h (VERSION): Bump to 2.0.1.
* posix/getopt.c: Handle another problem introduced by the
nonoption_flags array. We must be able to work with reordered
argv arrays. Reported by Andreas Schwab.
どんな問題があったのかはよくわからん。
FORTRAN Compiler on IBM 704
つらつらと眺めているのだけど なかなかタイヘン。
配列の次元数によってディスパッチするこのコード なるほどなあと唸った。
CLA L(2) EXAMINE DIMCTR 4F11187
CAS DIMCTR TO DETERMINE 4F11188
TXI 1D0000,0 WHETHER DIMESNION OF 4F11189
TXI 2D0000,0 VARIABLE IS 1, 2, OR 3. 4F11190
3D0000 LXA L(6),4 PREPARE TO PICK UP 3 COEFFICIENTS. 4F11191
DIMCTR(配列の次元数が入っているワークエリア)の値を 2と比較することによって、 2未満→1次元 2→2次元 2超→3次元 に切り分けると。
これだと4次元以上は対処できないけど(それ用にコードを書けば別) 配列の次元数は3までという仕様なので 問題なし。と。
DIM1 SYN 0200 DRUM TABLE ORIGIN -DRTABS,DIM.SR, 4F15905
DIM2 SYN 0500 DRUM TABLE ORIGIN -DRTABS,DIM,SR. 4F15906
DIM3 SYN 0800 DRUM TABLE ORIGIN -DRTABS,DIM,SR. 4F15907
DIMCTR SYN ERASE COMMON WORKING STORAGE. 4F15908
DMP SYN E( 4F15909
DOE SYN ERASE COMMON WORKING STORAGE. 4F15910
SimpleHTTPServer
役に立つUNIXの一行コマンドを集めた投稿サイト。
— 新山祐介 (Yusuke Shinyama) (@mootastic) March 20, 2023
- ひとつ前のコマンドをrootで実行: "sudo !!"
- 現在のディレクトリをHTTPで公開: "python -m SimpleHTTPServer"
- mountの出力結果を見やすく: "mount | column -t"
- ASCIIコード表を表示: "man ascii"
など。https://t.co/QGO0yDIZhW
python -m SimpleHTTPServer
は「おおー」という感じ。
なるほどねえ。
walk it off
JAPAN WALKS IT OFF! JAPAN WALKS IT OFF! 🇯🇵🇯🇵🇯🇵 pic.twitter.com/K5VBlpIyTC
— FOX Sports: MLB (@MLBONFOX) March 21, 2023
この「walk it off」ってどういう訳になるんだろう?
追記
この場合の「walk it off」は「サヨナラ勝ち(をした)」と訳せるらしい。 なるほど。
【サヨナラ勝ち】は英語で何て言う?「サヨナラホームラン・サヨナラ負け」などの英語もご紹介 | 英語の達人WORLD
walk off xxx
(サヨナラホームラン、ヒット、等々)は知ってたけど
↑の「itのあるなしでの違い」もあって素直に(?)そう取れなかったわ😓
南武線武蔵小杉駅
武蔵小杉駅の南武線から横須賀線への乗り換えは最高に鬼畜って話。 pic.twitter.com/lKtDIeOQtR
— 📸🌸暴総族のカイソク🌸📷 (@kaisoku58t) March 3, 2023
なんどか流れてきたので観たけど、結構前にとったものじゃないかなあこれ。 1年前からホームドア稼働してるけどその気配もない (その後横須賀線ホームも下りホームが増設されてる)。
だから
「人がいない」から「まだ」いいのよ。
— ねこのメ (@nekonom63385142) March 19, 2023
これ平日の夜とかも人であふれかえってるから、こういうとこを通る人間がいて、クッソ危ない。
ようあれで、まだ転落やらで人死にが出てないと思う。 https://t.co/8XDETTDWl5 pic.twitter.com/ryZar8Nr86
この心配は無用じゃないすかね。
- 横須賀線武蔵小杉駅「新下りホーム」が本日供用開始、コンコース拡張し階段3か所・エスカレーター・エレベーター1基ずつが稼働|武蔵小杉再開発|武蔵小杉ブログ(武蔵小杉ライフ 公式ブログ)
- JR武蔵小杉駅の南武線ホームドア供用開始が2022年3月13日(日)に決定、2月1日・2日に本体設置工事を実施|武蔵小杉駅周辺|武蔵小杉ブログ(武蔵小杉ライフ 公式ブログ)
- 武蔵小杉駅 南武線初のホームドア 3月から使用へ | 中原区 | タウンニュース
JR湘南新宿ラインや東急東横線など、複数の路線が乗り入れる武蔵小杉駅。 南武線ホームは南武線口から横須賀線へ向かう乗客のルートにもなっており、 朝夕の通勤通学ラッシュのピーク時にはホーム上が混雑し、安全面からホームドアの設置が望まれていた。