ときどきの雑記帖 RE* (新南口)
激闘は憎しみ深く
ガンダム@テレ玉
哀戦士編だと、ランバ・ラル戦死→黒い三連星(マチルダさん戦死)→リュウ戦死 と順番が一部入れ替わっているのは良いとして、 マチルダさんとリュウ(二人だけではないけど)の追悼が 同じタイミングになっちゃったので 二人を比べているような印象を持ったなあ公開当時。
おおきく振りかぶって
高校野球マンガ」50年の大変化に納得の理由 「プレイボール」「おおきく振りかぶって」そして令和は? | マンガ温故知新 | 東洋経済オンライン
『おおきく振りかぶって』(2003年~)
もう20年やってんのか(休載多いけど)
そして、令和の今読むべき最先端の作品が、クロマツテツロウ『ベー革』(2021年~)だ。
これは知らなかった。 機会があったら(ry
ところで高校野球じゃないけど、お休み中の本編に代わって連載中の 「昭和のグラゼニ」、正直何がやりたいのかよくわからん
御無礼
「むこうぶち」連載25周年記念のポップアップストアが9月13日より開催! 秋葉原を皮切りに全国3会場を巡回 - ライブドアニュース
・東京(秋葉原)9月13日~9月23日
グランエンタス(秋葉原オノデン1F)
ブックタワー行くついでに行ってみるかな
メモ
swift-syntax
- [The Sequel to a Dream of Ruby Parser’s Grammar - Speaker Deck]](https://speakerdeck.com/ydah/the-sequel-to-a-dream-of-ruby-parsers-grammar)
- Ruby Parser progress report 2024 - Speaker Deck
を読んでたら出てきたswift-syntaxが気になったのであとで(ry
- GitHub - swiftlang/swift-syntax: A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.
- swift-syntaxに入門してみた #Swift - Qiita
- Swift: SwiftSyntaxでソースコードの抽出と部分書き換えする
- swift-syntaxを用いて、簡単なコマンドラインツールを作ってみる
- SwiftSyntaxが面白い - Speaker Deck
Modulo-Sort
- Modulo-Sort: sorting integer arrays in linear time without worrying about your data’s distribution : r/programming
- AlgoNoRhythm/Modulo-Sort: Sorting integers reasonably fast
Modulo Sort is a sorting algorithm designed specifically for positive integers. The expected time complexity of Modulo Sort is O(n * d), where n is the number of elements in the input array, and d is the number of digits of the maximum remainder (modulo value) within the sub-arrays created during the sorting process.
checked c
Releases ・ checkedc/checkedc-llvm-project
Lisp本
Common Lisp Recipes の邦訳について続報します。費用の半分程度を著者が負担する形式を扱う出版社さんに検討頂きましたが、見送りとなりました。総ページ数から予想されるコストと売上予測がマッチしないとのこと。残念ですが、検討頂いたことに感謝します。⇒
— 不可解計画 (@project_enigma) September 11, 2024
なかなか難しいねえ。
UB
16ビット左シフトすることで最上位ビット(=符号ビット)に影響する可能性があるので
undefined-behavior
ということ?
の件。
【C言語】32bit変数を32bitシフトすると0になる保証が無い未定義の動作 - C言語が好きかい? https://bugs-c.info/gcc-11-fanalyzer/125/
■8bit変数を24bitシフトすると?
//gcc -Wall -Wextra -fsanitize=undefined #include <stdint.h> #include <stdio.h> int main(void){ uint8_t x80_8bit = 0x80 ; uint32_t x80_32bit = 0x80 ; // 符号無しのxを24bitシフトすると? if((x80_8bit << 24) < 0)//未定義動作 puts("-"); else puts("+"); if((x80_32bit << 24) < 0) puts("-"); else puts("+"); }
gcc -Wall -Wextra -fsanitize=undefined でコンパイル&実行してみると、以下の走行時エラーが発生します。
runtime error: left shift of 128 by 24 places cannot be represented in type 'int'
8bit幅の変数を24bitシフトしてINT_MAXを超えると未定義動作となるので注意しましょう。
まあそうですよねー。
なんでこれが未定義動作なのかなのは見当がつかないでもないけど、 実際のところ「原因」になったであろう CPUはどういったものでどういう動作をしていたんだろう?
- 安易な気持ちで左bitシフトしてはいけない(C/C++)
- 左シフトおよび右シフト演算子: « および » | Microsoft Learn
- 未定義動作 - Wikipedia
- 未定義動作 | Zen Language Documentation
Mouse
CP/M向けのForth(っぽい)処理系。
Mouse is an interpreted stack orientated language designed by Peter Grogono around 1975. It was designed to be a small but powerful language for microcomputers, similar to Forth, but much simpler.
The version for CP/M on the Walnut Creek CD is quite small at only 2k.
記事中に Walnut Creek CD のサイトへのリンクもあって ダウンロードはできるんだけど 拡張子が.lbrってファイルは何者?
redditの方に、PascalやCで書かれたソースコードへのリンクがあった
- http://mouse.davidgsimpson.com/mouse79/mouse79_c.txt
- http://mouse.davidgsimpson.com/mouse83/mouse83_c.txt
- http://mouse.davidgsimpson.com/mouse79/mouse79_pas.txt
- http://mouse.davidgsimpson.com/mouse83/mouse83_pas.txt
modifier
modifierってどうやって発明したんだ
— kaneko.y (@spikeolaf) September 6, 2024
Rubyのmodifier(後置ifとかね)はPerl由来だということは この投稿に対するリプライでまつもとさんが答えているけど、 そもそもの動機はperl4のどこかで ifやunlessにブレースが必須にしたことの救済(と言っていいのか)で 導入したんじゃなかったか。 つまり
if (cond)
statement;
を
if (cond) {
statement;
}
のように書かなければならなくなった(実は閉じブレースの直前のセミコロンは 省略できるけどそれはまた別の話)のを
statement if (cond);
と書けるようにした。と
んで、こういう記述方法自体はまったくのPerlオリジナルではないような記憶があるんだけど よくわからん
WG14
https://t.co/GQRFKbTvOf WG14の文書置き場に色々文書が追加されておるな。C言語の最新の動向を探りたい人は要チェックだ
— mod_poppo (@mod_poppo) September 7, 2024
そういえばstrnlenも最近のWG14にあった
strnlen
WG14 N3289 Title: Standardize strnlen and wcsnlen (v2)
These functions have been part of the GNU project’s C library since at least 2001 [3] and later became part of the POSIX.1-2008 standard.
結局GNU起源だった?
C++
C++の方もメモ
https://t.co/fs5JCTDeOU 見てた。C++にパターンマッチ導入するにあたって変数導入する構文どうするかだけど、パターンの右に特に何も記号なく識別子を並置するのが変数導入とする(だいたいasパターンぽく動くがvariantの時とか色々)規則がシンプルでよろしかろう、みたいな提案をBjarne自ら出してた
— kinaba (@kinaba) September 7, 2024
glibc
glibc のソースは GNU の公式リリース から入手できます。
$ wget https://ftp.gnu.org/gnu/glibc/glibc-2.39.tar.gz $ tar zxf glibc-2.39.tar.gz
ftp.gnu.orgから直接とってきていいのか気になった。 明確に禁止されているわけではないし、 今どきの環境ならそれほどの負荷でもないかもしれないけど ダウンロードするときはミラーサイト使えって 言われていた世代なのでね
縮小
デスクトップ版の #Excel で #PIVOTBY、#GROUPBY、#PERCENTOF、#イータ縮小ラムダ 使えた!
— ちゅん🐤 (@KotorinChunChun) September 7, 2024
※Insiderではない https://t.co/sGhwKjIaOu pic.twitter.com/Gt3pnP9qxK
ExcelのGROUPBY関数もイータ縮小ラムダも来てない。
— はけた@できるExcel2021 (@excelspeedup) September 8, 2024
(どうでもいいですが、イータ簡約じゃなくて、イータ縮小っていうんですね。自動翻訳のせいだと思いますが)
「イータ縮小」は自動翻訳じゃなくて 例の人の訳語の選択が影響してんじゃないですかね…
ってMSのページを見たら
値を集計する方法を定義するラムダ関数または eta 削減ラムダ (SUM、AVERAGE、COUNT など)。
PIVOTBY function - Microsoft Support
A lambda function or eta reduced lambda (SUM, AVERAGE, COUNT, etc) that defines how to aggregate the values.
確かにreduceという単語自体にはその訳もあるけどさあ
数学の世界で、λx. fx = f という変形をすることをη簡約というらしく(λx. fxは、エクセルだと「LAMBDA(x , f(x))」で、これがfと同じということ)。
— はけた@できるExcel2021 (@excelspeedup) September 8, 2024
それと同じ操作感になるように、ほぼすべての関数について対応する巻子オブジェクトを作ってくれているっぽいですね。 https://t.co/BUaqkSk579
Excelでeta reductionとか出てくるとは。
— かも (@kamosuica) November 16, 2023
一般人が理解できるのか?意外と慣れるのかも。
η-変換
上に挙げた2つの規則の他に、第3の規則としてイータ変換が導入されることがある。イータ変換の基本的なアイデアは、 関数の外延性である。ここでいう外延性とは、2つの関数が全ての引数に対して常に同じ値を返すようなとき、 互いに同値であるとみなすという概念である。イータ変換は以下の変換である。
η-reduction
η-reduction (eta reduction) expresses the idea of extensionality,[24] which in this context is that two functions are the same if and only if they give the same result for all arguments. η-reduction converts between λx.f x and f whenever x does not appear free in f.
まあ「簡約」という訳語を使っても 「なにそれ?」 となりそうではある
新刊近刊
New this week: It’s time to lift the lid on great senior leadership. The latest from James Stanier:
— PragmaticProgrammers (@pragprog) September 13, 2024
Become a great engineering leader, the kind that runs a healthy, ambitious, and efficient organization; this practical guide will provide you with the skills to get there.… pic.twitter.com/UyEgGE2O6z
awk
FORTRAN Compiler on IBM 704
stated
MC0380 TXL MC0400,B,0 FINISHED WITH S(I) 4F14978
TXI MC0210,A,-3 CONTINUE SCANNING S(I). J TO J+1 4F14979
MC0470 CAL SCRIPL,C 4F14987
ANA MASK2 EXTRACT S(K) IN ACC 4F14988
CAS SCRIPL+2,A AND COMPARE WITH SYMJ (S(I)) 4F14989
I, J, Kは添え字変数(みたいなもの)で、それぞれ対応するインデックスレジスターがある
変数 | レジスター |
I | B |
J | A |
K | C |
たぶんこう。
それはそれとして、29ビット目から32ビット目をチェックしている 一連の流れについて
CP0250 SXD 3QBAR,A 4F15029
LDQ SCRIPL+1,A EXAMINE OP1 (S(I)) 29,30,31,32 4F15030
この時点で
MQ
+------------------------------------+
|S00000000011111111112222222222333333|
|S12345678901234567890123456789012345|
++------------------------------------+
Acc
+-------------------------------------+
| |
| |
+-------------------------------------+
こうなっているのを
LGL 30 4F15031
アキュムレーターとMQレジスターを連結して30ビット左へシフトして
MQ
+------------------------------------+
|333333 |
|012345 |
+------------------------------------+
Acc
+-------------------------------------+
| S00000000011111111112222222222|
| S12345678901234567890123456789|
+-------------------------------------+
こうなる(空白部分はたぶん0)。 そして
LBT 4F15032
TRA CP0310 OP1 (S(I)) 29 = 0 4F15033
TQP CP0370 OP1 (S(I)) 30 = 0 4F15034
アキュムレーターの最下位ビットが元のMQレジスターの29ビット目になっているので、 LBT命令でその最下位ビットをテストして 0なら直後の命令(TRA CP0310)を実行、 1なら1つスキップしてその次の命令(TQP CP0370)を実行するのだけど これはMQレジスターの最上位ビットが0のときにジャンプするというもの。 つまりシフト前のMQレジスターの30ビット目がオフなら CP0370 というラベルへ飛ぶ
CP0310 SLN 1 OP1 (S(I)) 29 = 0 OR OP1 (S(I)) 30 = 1, SO 4F15035
RQL 1 SET STORE LITE 4F15036
TQP CP0350 OP1 (S(I)) 31 = 0, SO SET STO LITE 4F15037
SLN 2 OP1 (S(I)) 31 = 1, SO SET STQ LITE 4F15038
すると、このCP0310というラベル位置に来るのは コメントにある通り 29ビット目が0のときか 30ビット目が1のとき。 そしてMQレジスターを左方向に1ビット ローテートして
MQ
+------------------------------------+
|33333 3|
|12345 0|
+------------------------------------+
31ビット目をテスト(TQP CP0350)
CP0350 RQL 1 4F15039
TRA CP0380 4F15040
このあとで32ビット目をテストするためにもう1ビットローテート。
MQ
+------------------------------------+
|3333 33|
|2345 01|
+------------------------------------+
すぐに無条件ジャンプしているのは TQP CP0370でジャンプしたときに 「つじつま合わせ」で2ビットローテートする
CP0370 RQL 2 4F15041
が挟まるから。
そして32ビット目をテスト(TQP CP0420)
CP0380 TQP CP0420 TEST OP1 (S(I)) 32 4F15042
SLT 4 OP1 (S(I)) 32 = 1, SO SET FLPTSW 4F15043
CP0400 TXH 0,0,0 4F15044 nop
TRA CP0430 4F15045
*
CP0420 SLN 4 OP1 (S(II) 32 = 0, SO SET FXPTSW 4F15046
*
CP0430 PXD 0,0 4F15047
Hugo メモ
Anode and Cathode
電流が「あの~」って言いながらダイオードに入っていくイメージで覚えた(小学生のとき) https://t.co/8UiSFJU5g3
— シャポコ🌵 (@shapoco) September 13, 2024
— カワヅ (@necobut) September 13, 2024
ア・バオア・クー
#女神転生
— 深海四畳半 (@aMwutOwlbygyaSv) September 13, 2024
初代ファミコン版には「アバオアクー」が登場する🤓絵的にもガンダムのアレの怪物化と思い変な事するなあと思ったがだいぶ後でボルヘスの『幻獣辞典』にある由緒ある?存在とわかった。しかし今度はなぜガンダムがこれを要塞の名前にしたかわからないのであった… pic.twitter.com/aDu8ihPosB
そう言えば(?)、ダンバインに登場するオーラシップの 「ウィルウィプス」は元々 ウィル・オー・ウィスプ (ウィルオウィスプ - Wikipedia) からとった「ウィルウィスプ」 だったんだけど、発音しづらいという声が上がって 変わったとかいう話を聞いた覚えがあるんだけど どこでだったか
Car
シカ―(Car)走行中🦌💨✨✨✨
— 『しかのこのこのここしたんたん』公式【TVアニメ7月より放送開始!】 (@shikanoko_PR) September 13, 2024
9/13~9/18の6日間
新宿・渋谷・池袋周辺を
シカ―(Car)が駆け巡る🦌🦌🦌🦌
明日は渋谷を走行予定🌹🌙
見つけたら是非#しかのこ のタグを付けて
教えてください✨#しかのこのこのここしたんたん pic.twitter.com/zilDKIZV6p
ちょっと観に行きたかったかな(笑
毎年一つ
Dave が今年4つくらいの言語を試してるって言ってて、俺は0だなぁと言ってたらMatz は5個かなぁと言ってて格を感じた
— _ko1 (@_ko1) September 13, 2024
見覚えのない名前が多いなあ
lpython, crumb, cobalt, koa, motion, wrench, promit, adorad, minima, sage, pluto