ときどきの雑記帖 RE* (新南口)
七転八倒
仕事猫
川崎の翌週は横浜。この調子で各地に現れるんだろうか😄
\仕事猫がついに横浜に登場!/
— 国土交通省 関東地方整備局 港湾空港部 (@mlit_kanto_port) October 11, 2023
10月14日(土)15(日)東京湾大感謝祭です!
是非お会いしましょう!
✨🐱👈ヨシ!#くまみね #仕事猫 #国土交通省https://t.co/daibm9kR7w pic.twitter.com/qdOY0EMkWL
最寄り駅
東京都世田谷区「桜新町駅」周辺を散歩してみよう!おすすめスポット“6選”を紹介|暮らし方から物件探し
最後は少し桜新町駅からは離れますが(徒歩20分程度)、自然ある快適な空間と、運動や遊びで訪れる人が多い場所、駒沢オリンピック公園です。
徒歩20分はさておき、駒沢公園を桜新町駅周辺のスポットというのは 無理がありそうな(田園都市線で一つ渋谷寄りの駒沢大学駅の方が近い)。
と思ったら駒沢大学より桜新町の方が近そうな「端」があるなあ…
船堀
都営新宿線「船堀」の再開発計画が前進 高層ビル2棟を建設へ 江戸川区役所の移転も | 乗りものニュース
どこかで聞き覚えのある名前、と思ったが10年ほど前にRuby Kaigiの会場になったところか。
RubyKaigi 2014, 18-20 september
2014年だったか。
K2
こ、これは
漫画「K2」 のポップアップストアが紀伊國屋書店新宿本店で開催決定! アクリルスタンドやおみくじ、富永総合病院のスリッパなどグッズが多数登場!#K2 #漫画https://t.co/rWNCt7jbjn @newscastjp
— NEWSCAST - 最新ニュースをいち早く (@newscastjp) October 13, 2023
ウルトラセブン
ウルトラセブンと江ノ島ってなにか繋がりあったっけ?🤔
🗓️11月3日(祝・金)
— 新江ノ島水族館 (@enosui_com) October 12, 2023
2つの追加イベントの受付を開始しました🔽
⭐️ウルトラヒーローと一緒に写真が撮れる「ウルトラショット」https://t.co/BPcUKqaTQF
⭐️閉館後の水族館でウルトラセブンのショーが楽しめる「エノシマセブンナイト」https://t.co/pjrSDRE4Mv pic.twitter.com/dqt1QaBcau
7つの島のエノシマセブンめぐり ~ウルトラセブンと怪獣たちの物語~ | イベント | 藤沢市観光公式ホームページ
新刊近刊
逆引きPython
Python プログラミング逆引き大全 450 の極意の通販/金城俊哉 - 紙の本:honto本の通販ストア
発売日:2023/11/30 |
出版社: 秀和システム |
サイズ:650ページ |
ISBN:978-4-7980-7155-8 |
というのを見かけ、そう言えば逆引きの数が違う(少ない)ものが出ていなかったっけ? と思って調べてみると
- 現場ですぐに使える! Pythonプログラミング逆引き大全400の極意 - 秀和システム あなたの学びをサポート!
- 現場ですぐに使える! Pythonプログラミング 逆引き大全357の極意 - 秀和システム あなたの学びをサポート!
- 現場ですぐに使える! Pythonプログラミング逆引き大全 313の極意 - 秀和システム あなたの学びをサポート!
これくらい? ちなみに発売日やらページ数を表にするとこう (450の定価はよくわからん(1980円てこたないと思う)
逆引き数 | 発売日 | 定価(税込) | ページ数 |
---|---|---|---|
450 | 2023/11/30 | 650 | |
400 | 2021/01/16 | 3300 | 828 |
357 | 2020/05/16 | 3190 | 706 |
313 | 2018/03/20 | 2860 | 554 |
ページ数が400→450で減っている?
乱数
買った。 思っていたより薄い本で少々驚いたけど 面白そうな内容だった(まだ少ししか読んでないが)
雑に作る
「雑に作る」できました!!
— 石川大樹 (@ishikawa_daiju) October 13, 2023
帯のフレーズが最高なので見て pic.twitter.com/8YVlecKG48
見かけたら中身をちょっと見てみよう
C++
10/12新刊『C++ソフトウェア設計-高品質設計の原則とデザインパターン』#オライリー・ジャパン (9784814400454) #KlausIglberger 著◆ 「#オライリー・フェア」棚にて!古典的デザインパターンを応用/発展させ、さらにその後に生まれた新しいデザインパターンとともに、Modern C++での活用方法を解説 pic.twitter.com/nizPn4GOlM
— 書泉ブックタワーコンピュータ書【営業時間11:00~20:00】 (@shosen_bt_pc) October 13, 2023
某所で見かけたのでぱらぱら眺めてみたら、 visitorパターンやら ○○パターンがわらわら出てきたので GoFの本かとスルーしたのだけど 「その後に生まれた新しいデザインパターン」は 気がつかなかった。 次に見かけたときはその辺も見ておこう。
オブジェクト指向
西暦2023年、オブジェクト指向に興味を持った入門者にお勧めする日本語書籍を考える
いろいろ
-
C uses “&” for the address-operator because ‘ampersand sounds like “address”’ | Hacker News
-
history - Why does C use the asterisk for pointers? - Software Engineering Stack Exchange
From: Ken Thompson
near on the keyboard: no. c copied from b so & and * are same there. b got * from earlier languages - some assembly, bcpl and i think pl/1. i think that i used & because the name (ampersand) sounds like “address.” b was designed to be run with a teletype model 33 teletype. (5 bit baud-o code) so the use of symbols was restricted.
マジですかい。それ。 >i think that i used & because the name (ampersand) sounds like "address."
Haskell
これはありがたい。
CVE-2023-38545
で
- 「過去最悪」の脆弱性に対処した「curl 8.4.0」が公開 - 窓の杜
- curlの脆弱性公開予告の情報まとめ(CVE-2023-38545, CVE-2023-38546) - Qiita
- How Serious Is The New Curl [CVE-2023-38545] Vulnerability? | Intruder
- CVE-2023-38545 & CVE-2023-38546 Curl and libcurl Vulnerabilities: All you need to know | JFrog
- curl の脆弱性(CVE-2023-38545)について | Armadilloサイト
どうも前評判(?)のわりには… という感が否めないのだけど Return error if hostname too long for remote resolve (0783247f) · コミット · Red Hat / centos-stream / rpms / curl · GitLab にあった差分を見たら
/* RFC1928 chapter 5 specifies max 255 chars for domain name in packet */
if(!socks5_resolve_local && hostname_len > 255) {
- infof(data, "SOCKS5: server resolving disabled for hostnames of "
- "length > 255 [actual len=%zu]\n", hostname_len);
- socks5_resolve_local = TRUE;
+ failf(data, "SOCKS5: the destination hostname is too long to be "
+ "resolved remotely by the proxy.");
+ return CURLPX_LONG_HOSTNAME;
}
こっちはともかく
- socksreq[len++] = (char) hostname_len; /* one byte address length */
+ socksreq[len++] = (unsigned char) hostname_len; /* one byte length */
に驚いた。 いやまあ確かに(後知恵孔明の目で見れば) いかにもなコード(キャスト)ではあるけど
- Curl/libcurl HIGH CVE-2023-38545 leaked early? | Hacker News
- Curl maintainer: How I made a heap overflow in curl : r/programming
- Is Curl Vulnerability leaked Before Schedule Time? : r/programming
- Is Curl Vulnerability leaked Before Schedule Time?
- Curl 8.4.0 | Hacker News
- curlコマンド、近年で最も重大な脆弱性が発覚 | TECH+(テックプラス)
one true awk
awk: regular expression too big: out of space in set_gototab...
・ Issue #199 ・ onetrueawk/awk- Correctly reset the goto table for a state. by millert ・ Pull Request #200 ・ onetrueawk/awk
が気になってone true awkのソースコードを(改めて)読んでいるのだけど
awk/b.c ・ onetrueawk/awk のコメントにこんなことが書かれていたのね
utf-8 mechanism:
For most of Awk, utf-8 strings just “work”, since they look like null-terminated sequences of 8-bit bytes.
Functions like length(), index(), and substr() have to operate in units of utf-8 characters. The u8_* functions in run.c handle this.
Regular expressions are more complicated, since the basic mechanism of the goto table used 8-bit byte indices into the gototab entries to compute the next state. Unicode is a lot bigger, so the gototab entries are now structs with a character and a next state, and there is a linear search of the characters to find the state. (Yes, this is slower, by a significant amount. Tough.)
Throughout the RE mechanism in b.c, utf-8 characters are converted to their utf-32 value. This mostly shows up in cclenter, which expands character class ranges like a-z and now alpha-omega. The size of a gototab array is still about 256. This should be dynamic, but for now things work ok for a single code page of Unicode, which is the most likely case.
The code changes are localized in run.c and b.c. I have added a handful of functions to somewhat better hide the implementation, but a lot more could be done.
で
awk/awk.h at d8e4368964e4471a54a755823004f2b1aabc0f80 ・ onetrueawk/awk
/* structures used by regular expression matching machinery, mostly b.c: */
#define NCHARS (1256+3) /* 256 handles 8-bit chars; 128 does 7-bit */
/* BUG: some overflows (caught) if we use 256 */
/* watch out in match(), etc. */
#define HAT (NCHARS+2) /* matches ^ in regular expr */
#define NSTATES 32
issueにあった情報ではこのNCHARSがおかしい(小さすぎるんじゃないか) という話らしいのだけど
bzero
- CVE-2023-5217 Mitigates memory vulnerabilities through explicit usage of bzero() | Hacker News
- CVE-2023-5217 Mitigates memory vulnerabilities through explicit usage of bzero() in lieu of memset(…, 0, …)
@@ -64,7 +64,7 @@ static void set_roi_map(const vpx_codec_enc_cfg_t *cfg,
vpx_codec_ctx_t *codec) {
unsigned int i;
vpx_roi_map_t roi;
- memset(&roi, 0, sizeof(roi));
+ bzero(&roi, sizeof(roi));
roi.rows = (cfg->g_h + 15) / 16;
roi.cols = (cfg->g_w + 15) / 16;
こんな感じでmemsetをbzeroに置き換える変更がたくさんあるんだけど bzeroって使って問題ない関数だったっけ?
FORTRAN Compiler on IBM 704
STATE B と STATE Cで共有しているっぽい LAMBDA(という領域)のSTATE Cでの利用状況をざっと調べてみる
>grep -e "LAMBDA" statec.asm
LAMBDA BSS 1200 4F14197
REM STATE C. PERFOPMS OPTIMIZATION ON LAMBDA TABLE. 4F14204
R01000 CLA LAMBDA,A ADD INTO GAMMA COUNTERS 4F14220
CLA LAMBDA-3,A 4F14229
R02600 LDQ LAMBDA-2,A SINGLE ELEMENT 4F14235
ANS LAMBDA-3,A EXTRACT TAGS AND STORE BACK 4F14241
CLA LAMBDA-6,A 4F14242
ORA LAMBDA-3,A 4F14243
SLW LAMBDA-6,A 4F14244
CAL LAMBDA-2,A EXTRACT FS BITS AND STORE BACK 4F14245
ORS LAMBDA-5,A 4F14247
CAL LAMBDA-1,A STORE BACK SYMBOL 4F14248
SLW LAMBDA-4,A 4F14249
STZ LAMBDA-3,A CLEAR TAG WORD 4F14251
R05300 CAL LAMBDA,A STRING BEADS... COMPRESS LAMBDA TABLE 4F14263
SLW LAMBDA,C 4F14265
CLA LAMBDA+1,A 4F14266
STO LAMBDA+1,C 4F14267
CLA LAMBDA+2,A 4F14268
STO LAMBDA+2,C 4F14269
R06400 CLA LAMBDA,A STORE ORDERED, REDUCED LAMBDA TABLE 4F14276
CLA LAMBDA,A 4F14280
CLA LAMBDA+1,A 4F14282
CLA LAMBDA+2,A 4F14284
ところどころインデックスレジスターにA(1番)ではなく C(4番)を使っているところがあるとか、±のオフセットの大きさが STATE Bでのそれと比べると小さいのが気になるかな。
FORTRAN
これ関連でまたてきとーぶっこいて 失笑(失望)をかっていた御仁がいたみたいだけど それはさておき、 その余波で(?) FORTRAN(やCOBOL)がなぜ今も使われ続けているのか という話題で一部盛り上がった模様。
積極的にFORTRAN/Fortranのコードを別の言語に移植しろとは言いませんし論文にもならないからやりたくないんでしょうけど、、、
— 電子計算機の沼 (@Hishinuma_t) October 12, 2023
私の拙い経験を紐解けば研究室の秘伝のタレなんて言われてるコードはだいたいバグってるから書き直したほうがいいですよ
根本的な問題として、計算科学の人はプログラム書き換えで論文になる目があるけど、物理系の人はプログラム書き換えてさらに新しい物理現象計算して初めて論文になるという構造的なものがある。だからいくら計算科学の人が物理の人に言っても変わらないのよね。オープンソースを評価する動きは広まりつ…
— Yuki Nagai (@cometscome_phys) October 12, 2023
例えば3万行のFortranコードがあり、現状スパコンで問題なく並列で動くし機能面もおおよそ満足する場合、機能追加するときにユーザーがFortranで書き足すのと3万行書き換えるのとどちらが大変か、という。よくできたコードほど書き換わるタイミングがない
— Yuki Nagai (@cometscome_phys) October 11, 2023
コード開発は論文にすることはできる。ただ物理屋って物理やりたいから物理屋である、というところ。誰か密度汎関数理論による第一原理計算をJuliaで高速に書く趣味プロ一緒にやる人いないかな
— Yuki Nagai (@cometscome_phys) October 12, 2023
Journal of Computational Physics | https://t.co/epPpQhsB0n by Elsevier https://t.co/3E1Z6Y8wRu
この辺の事情にかなり詳しい私が回答するなら,「ユーザの要望をかなえてくれるから」ですね.Fortranを使ってやりたいことを実現できる人が,使っています.
— 暗黙の型宣言 (@implict_none) October 11, 2023
ただし,”未だに”FORTRAN77完全準拠のコードを1から書く人はさすがに見かけず,77~2018の規格を混ぜて使っている人がほとんどですね. https://t.co/r3cFkcl6LE
科学計算でfortranが使われてる理由は単純で利用者がプログラマーじゃないから
— katsyoshi (@katsyoshi) October 11, 2023
Fortranには多重配列があります。また、leading dimensionがあります。部分行列が作れる。loopがinc, decで透明的。ここら辺はCよりFortranがイイと思ってます。
— 中田真秀 (@NakataMaho) October 11, 2023
逆に計算機そのものを専門とする側にとっては、計算機を利用する各分野は「適用対象の一つ」という「手段」に過ぎない、という見方もあって、「あいつらに売り込んでも旨味も見返りもないし協力的でもない」とみんなが思ったら、そちら向けの最適化や高速化とかは自然と考慮から外れていくので、まあ https://t.co/C0V4r3Oqne
— Dai MIKURUBE (@dmikurube) October 13, 2023
少なくとも地球科学ではプログラミングは手段であって、目的ではない。 https://t.co/9QVT759HQy
— 高田陽一郎 Youichiro Takada (@yt_geodesy) October 12, 2023
というのを眺めていたら
FORM
- 素粒子物理学に必須級のソフトウェア「FORM」の保守はたった1人の老科学者が担っている、新しい機器では使えなくなり研究が停滞する危険性 - GIGAZINE
- GitHub - vermaseren/form: The FORM project for symbolic manipulation of very big expressions
- FORM (symbolic manipulation system) - Wikipedia
この一件を思い出した(その後状況はどうなったんだろうか)。
Written in C
FORM was started in 1984 as a successor to Schoonschip, an algebra engine developed by M. Veltman. It was initially coded in FORTRAN 77, but rewritten in C before the release of version 1.0 in 1989. Version 2.0 was released in 1991. The version 3.0 of FORM has been publicized in 2000. It has been made open-source on August 27, 2010 under the GPL license.
FORTRANで書かれていたんじゃなかったっけか と思ったが、 確かに最初はFORTRANで書かれたものだったけど わりとすぐにCで書き直されていたらしい。
今日の重箱の隅
全銀システムのトラブルでまたCOBOLが注目を集めてるけど、COBOLの開発者はアメリカ海軍准将のグレース・ブリュースター・マレー・ホッパーさん。
— 来栖 めぐむ ✈️旅する零細経営者 📗出版4冊のポンコツ物書き (@MegumuKurusu) October 11, 2023
実はプログラム上の欠陥をバグと名付けたのも彼女で、その偉業を讃え、アーレイバーグ級ミサイル駆逐艦の名前にもなってるよ。 pic.twitter.com/xm5E6S38NI
アーレイ・バーグ じゃなくて アーレイ・バーク (Arleigh Burke)。
バグの話もちょっと(だいぶ?)アヤシイ (少なくとも有名な例のエピソードはプログラムの話じゃないよね)。
- アーレイ・バーク - Wikipedia
- Arleigh Burke - Wikipedia
- 世界初のコンピューターのバグは本当に「蛾」が挟まったのが原因 - GIGAZINE
- The World’s First Computer Bug
- The First Computer Bug!
- Software bug - Wikipedia
- bug - jargon file
サチる
「サチる」が意外に浸透していないようなのでいつ頃からある言葉なのか調べてみたら、昭和27年(1952年) 4月号のラジオ技術で「サチる」を発見! “サチらぬように特に電流饋還をかけてある回路が,こと志と違いサチるとは…” もう70年以上使ってるなら由緒正しい日本語だ! https://t.co/RrzJM7VvcJ pic.twitter.com/tvhh7qSPog
— dydt=𝕏 (@dydt_Nao) October 12, 2023
小田原
— にゃんだーすわん (@tadsan) October 13, 2023
一瞬何かと思ったがこのカタチはかまぼこか!😄
秋葉原
1994年の秋葉原について語っているメーリングリストを公開されている方(NetBSDの方?)がいました、当時秋葉原を訪れている方がどのように街を巡っていたのか、また店舗の雰囲気や評価、飲食店などを語り合っており、今では1994年の秋葉原を知る一つの資料にもなっています https://t.co/4snvpGIXOH pic.twitter.com/1sw2Y3sxGs
— マウス (@mouseunit) October 12, 2023
あれ、マ〇ポーシャって中央通り沿いにあったんだっけか?
コンピュータ館のとなりにあった蕎麦屋で天ざるを食べるのが楽しみだった😄
awk
多くは語りませんがawkは奥が深いですからね... https://t.co/mXdotMzAbZ
— sue445 (@sue445) October 13, 2023
多くのことはawkで出来る!ってやつですね…
— あべべ𝕏💜 (@akira_abe) October 13, 2023
すいません
訳
かなり好き気に入ってる pic.twitter.com/9opuy7XP6C
— 怠惰な勉強垢 (@spoil_student) October 12, 2023
PC-9801
本日10月13日はPC-9801生誕祭です。初代PC-9801は1982年10月13日 NECより最新16bitパソコンとして発売されました。皆様のおかげでめでたく41周年を迎えることができました。今日はぜひPC-98シリーズを愛する皆様で盛大にお祝い致しましょう。#PC98生誕祭 pic.twitter.com/vROYvpghmb
— PC-98愛好会.NET (@PC98LM) October 12, 2023
PC-100
㊗️PC-100 40周年🎉
— asayan (@asahara420316) October 13, 2023
今日は1983年10月13日にNECのPC-100が発売されてからちょうど40
年です。
時代がROM-BASICからやっとDISK-BASICに移り始めた頃、既にMS-DOSを中核に据えて高解像度グラフィックを武器にGUIを目指したこのマシンは最先端の向こう側でした。
大好きなマシンです♪ pic.twitter.com/45VoBsBIWC
PC-100は当時道玄坂にあった上新電機(J&P)で見たなあ (当時の行動範囲でたぶん一番近かったパソコン取り扱いショップ)。
今日10月14日はシャープ「パソコンテレビX1」が発表された日(1982年)。
— Oh!石 (@oec_Nibbleslab) October 14, 2023
いろんな意味で、衝撃的なマシンでした。 pic.twitter.com/BnHzRbd4v0
NeXT
NeXTも10月だったらしい。
- On this day in 1988, Steve Jobs unveiled the NeXT Computer : r/programming
- On this day in 1988, Steve Jobs unveiled the NeXT Computer
The roots of this development were sown 35 years ago, when Jobs released the NeXT Computer on Oct. 12, 1988.