ときどきの雑記帖 RE* (新南口)
彼岸過迄
機動戦士ガンダムⅡ 哀・戦士編<HDリマスター> | アニマックス
「12枚しかコピー取れないんだぞ」 に(他にもいろいろあるけど) 時代を感じるなど。 もしリメイクするとしたら、 この辺の描写はどうするんですかね😄
Carbon
Mediumからの記事紹介のメールで 「Why the Rust Community Should Be Worried About the New Carbon Language」 という記事があるのを知った(有料会員でないと全文は読めないので 一部だけ読んだ)。
そういや今どういう状態なんだろう?>Carbon
世論調査の電話
昼の慌ただしい時間にかかってきた (ので即切りした)。
暑さ寒さも彼岸まで
とは言うもののいきなり気温が下がりすぎじゃないですかね。 それでいて
高温に関する早期天候情報発表。
— 荒木健太郎 (@arakencloud) September 23, 2023
9/27頃からは全国的に気温がかなり高くなり、この時期としては10年に1度程度しか起きないような著しい高温となる可能性がいつもより高まっています。最新の天気予報を活用しましょう。 pic.twitter.com/BD7tt7NuTc
また暑くなるの?
彼岸花
そういや去年は家の近くのバス通りの歩道 (の花壇的なエリア)に やたらと彼岸花が咲いているのを見かけたのに、 今年は全然見ないのは 去年の株は残っていないということなんだろうか (植えっぱなしのものかと思っていた)。
自販機の「あったかーい」
例年この時期にはぼちぼち 自販機の飲み物もが「あったかーい」 への切り替わりが始まっていたと思うのだけど 今年はまだ全然「あったかーい」を見かけないのは そういうこと(謎)なんですかね。
その割にコンビニの中華まんは始まってるな。
プロレス
「ワールドプロレスリングリターンズ」10月から金曜夜9時へお引っ越し!枠移動初回は「棚橋弘至 vs 内藤哲也」など4試合を放送|BUBKA Web(ブブカ ウェブ)
放送枠が深夜に移ったのっていつ頃だっけ? だいぶ昔のような記憶はあるんだけど
1994年4月から土曜の深夜時間帯に移動し、ほぼ毎週放送されるようになった。
2004年4月には、放送時間が30分に短縮されたと同時に、1時間枠で放送される全国ネットのプロレス中継は消滅した。
うははそこまで前だったか。
略
数式/関数:ドロップダウンリストを連動させる - なんでもエクセル(Nandemo Excel)
昔から、PC用語を日本語的な発想で省略表現する人が好きになれない。
例えば「USBメモリ」を「USB」と呼ぶ人。今どきなんでも USB規格で接続しているんだから、 その理屈だとマウスもキーボードも「USB」になるだろう。あとは「Googleスプレッドシート」を 「スプレッドシート」と略す人。それじゃ何の表計算ソフトか分からなくなる。いや「スプシ」とか論外だから。
Excel用語だと、「ピボットテーブル」を「ピボット」といっちゃう人。そういう人は「ピボットグラフ」はどう表現するのか。 もっとひどい人は「VLOOKUP」のことを「VLOOKがさぁ」などといってしまう。ここまでくると、中学校英語からやり直してくれといいたくなる。
最近遭遇した>VLOOKUPをVLOOKと略す人
その人たちはピボットテーブルもやっぱりピボットと略して言うのだけど、 ピボットグラフの存在は知らなそうではある。
新刊近刊
シェルスクリプトマガジン
9/23新刊:ISBN978-4-904807-83-5 USP研究所『シェルスクリプトマガジン vol.86』 15冊入荷 pic.twitter.com/C25p9wxrK4
— ジュンク堂書店池袋本店 PC書担当 (@junkudo_ike_pc) September 23, 2023
奇数月の25日発売だから もうそんな時期か (時の経つのは早い)。
awk
one true awkの最近の修正をちょっと眺めてみた。
issue #195
パッチ(の一部)を見るとこんなん
setlocale(LC_CTYPE, "");
setlocale(LC_NUMERIC, "C"); /* for parsing cmdline & prog */
+ awk_mb_cur_max = MB_CUR_MAX;
で、awk_mb_cur_max
が1のときは以前(UTF-8対応以前)と同じ。ということにするようだ。
issue #196
- if (type(p) == CCL && (*(int *) right(p)) == '\0')
+ if (type(p) == CCL && (*(int *) right(p)) == 0)
- if (type(p) == CCL && (*(char *) right(p)) == '\0')
+ if (type(p) == CCL && (*(int *) right(p)) == 0)
ここだけ見てもなにがどうなったのかよくわからんな。
issue #194
- for (int i = 0; i < n; i++)
+ for (i = 0; i < n; i++)
ここだけ見ても(ry
もうちょっと広い範囲でコードを見ると
awk/run.c at master ・ onetrueawk/awk ・ GitHub
int i;
if (ljust) { // print one char from t, then pad blanks
for (int i = 0; i < n; i++)
*p++ = t[i];
for (i = 0; i < pad; i++) {
//printf(" ");
*p++ = ' ';
}
} else { // print pad blanks, then prec chars from t
for (i = 0; i < pad; i++) {
//printf(" ");
*p++ = ' ';
}
for (int i = 0; i < n; i++)
*p++ = t[i];
}
*p = 0;
break;
ふむ。なんでこの修正前は if(とelse)の内側の for(の片方でだけ)で変数’i’を宣言していたのかよくわからんな。 どういう目的でこうしたんだろう? (こうなった時期を探す元気はない)
#197
out-of-bounds read for empty CCL · Issue #197 · onetrueawk/awk
FORTRAN Compiler on IBM 704
A=B+C
という入力をどう解析するか
というのを人間トレーサーになって
流れを追いかけてみたけど、
肝心のレベルの処理のところがよくわからんかった。
コードになっているのが 論文そのままじゃないってのがなあ。 馴染みのないCPU(のアセンブリ言語)というのもあるけど。
R
Python使いの皆さん、Rのキモいところをいっぱいお見せします - Qiita
面白い記事だった。%>%
そのもののことは知っていたけど
strange_function <- function(x){
x %>%
sum %>%
return
}
こういう書き方までできるとは思わなかった。 とは言うものの
ただ、これは流石によろしくないので、新しいパイプ(|>)は関数の呼び出しを必須にしています。 また、returnを普通の関数として扱うのもやばいので、禁止になっています。具体的には:
base_pipe_strange_function <- function(x){ x |> sum() |> return() } Error: function 'return' not supported in RHS call of a pipe
ということらしい。
from X
C/C++なんて2023年現在も「無限ループを本当に無限ループとして扱うべきか否か」で延々と議論してるような言語ですしね...(さっきまでちょっと見てた)
— yoh (@yohhoy) September 16, 2023
むかーしそんな話を読んだ覚えがあるなあ。 で調べてみたがちょっと(だいぶ?) 違っていた。
〈補遺〉gcc が生成する命令、その後……
gcc で生成する命令に焦点をあてている。gcc が、DBcc という Motorola 68020 の命令を使用するコードを生成することはなぜ難しいのか少し補足する。 DBcc の命令は、演算と条件分岐の 2 通りの操作を 1 つの命令で行なうので、ソース・コードの意味が一致していればこの命令を適用することができる。 この意味を満たしているかどうかの判断を特別に入れる必要がある点と、その判断を入れる器があらかじめ備わっているかという点が問題となる。
この記事に関して読者から手紙をいただいた。概要を次に示す。
〈読者より〉
「4.5 gcc の楽しみ」にある最適化の不備について、何も動作しないループを確かめるために、単純化して
main () { int i; for (i = 0; i <= 1000; i++) ; }
というプログラムをコンパイルしても、何もしないループが生成される。「フロー解析」の後に「ループ最適化」すれば解決する問題ではない、 と考える。原因は、現在の gcc に「何もしないループ」を検出・削除する機能がないからである、といことではないか ? この例では i という変数が初期化され、参照、変更が行なわれるから、確かに空でない life range があり、 空のループは削除可能なコードだとは認識されない、と考える。
これに対して、次のような回答をした。
〈読者へ〉
単純化した例を調べたところ、「ループ最適化を追加すればよい」という問題ではないことがわかった。この「空のループの検出」に関して rms に尋ねたところ、「空のループを削除する最適化を入れることは危険である。というのは待ち時間を生成したいために空のループを 使用することがあるからである」との意見であった。そこで、「空のループを削除する最適化オプションを新たに追加してはどうだろう ?」 という提案を行なったところ、rms から「普通のプログラマ『真のプログラマ』は空のループを書かない」という返事があった。。◆6
◆6
こちらの質問の意図は、「もちろん、わざわざ最初から空のループを書くプログラマはいない。しかし、他人のプログラムを修正した場合は、 想定した場所以外の所で空のループが発生し、その無駄のために効率か下がるのではないか ?」ということである。
「無限ループ」ではなく「空ループ」をどうするかという 話でした。
Ternary Operator?
?:以外の三項演算子でパッと思いつくのはPython の a<b<c とかかな
— kakiraちゃん (@kakira9618) September 18, 2023
三項演算子の例として出したんだろうけど
$ python
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 1<2
True
>>> 1<2<3
True
>>> 1<2<3<4
True
>>> 4>3>2>1
True
>>> 4>True>2>1
False
>>> 4>(3>2)>2>1
False
という動作なので、Pythonのこれは「三項演算子」の括りには入らないと思う。
6. 式 (expression) — Python 3.11.5 ドキュメント
比較はいくらでも連鎖することができます。例えば x < y <= z は x < y and y <= z と等価になります。 ただしこの場合、前者では y はただ一度だけ評価される点が異なります (どちらの場合でも、 x < y が偽になると z の値はまったく評価されません)。
形式的には、 a, b, c, …, y, z が式で op1, op2, …, opN が比較演算子である場合、 a op1 b op2 c … y opN z は a op1 b and b op2 c and … y opN z と等価になります。 ただし、前者では各式は多くても一度しか評価されません。
a op1 b op2 c と書いた場合、 a から c までの範囲にあるかどうかのテストを指すのではないことに注意してください。 例えば x < y > z は (きれいな書き方ではありませんが) 完全に正しい文法です。
磁気テープ
クラフトビール屋さんで飲んでいたはずなのに、気がつくとVAXのオープンリールテープを手にしていた。博物館でしか見たことがなかった。舞い上がっていたのでちゃんとラベルを見ていなかったけれど、これTeXが入ってるのか。僕とほぼ同じ年齢のテープだ。眼福。 pic.twitter.com/vNyjOoCJhA
— lemonade_air (@lemonade_air) September 17, 2023
コンピューター用のオープンリールの磁気テープ、 自分の記憶にあるのはもっと大きいもので とても片手で持てるようなものではなかったなあ。 真ん中の穴ももう少し小さかったような気がする。 まあ一口にコンピューター用の磁気テープと言っても 一種類ではないだろうけど。
オープンリールと言えば、自分は中学のときに放送委員をしていたのだけど 放送室にあった機材がオープンリールでねえ(遠い目)
あ、オーディオ趣味の方面で使ったことはないす>オープンリール
C
多分ほとんどの人は知らないけど、
— Armlin。 (MacでLinux。) (@ARMcoreLinux) September 17, 2023
「C言語は全くの初心者にはお勧めできない。」と、作ったデニスリッチー本人が言ってるんですよ。教育には向いてないとね。
80年後半のインタビューでそう答えてますね。なので少なくとも現代の言語がある中で言ったことではないです。
— Armlin。 (MacでLinux。) (@ARMcoreLinux) September 18, 2023
そういう発言をしていても不思議ではないし 自分も見聞きした覚えがあるような気もするけど、 やはりこういう場合は出典を明らかにしてほしいよねえ と思ったら
確かに K&R 時代(80年代迄)は、日本でも「C言語はプロの使う言語だから。素人お断り」という雰囲気あった。
— Shirouzu Hiroaki(白水啓章) (@shirouzu) September 18, 2023
ただ、下記リッチーのコメントを読むとそこまで否定的でもない。https://t.co/Dc4L6QoPDD https://t.co/0s5pJ0bjTZ pic.twitter.com/ibBdRenPca
というツイートがあった。 画像にある文章がなんとなく「変」なのは 機械翻訳されたものだからだろうか? (ツイート(「ポスト」とは書いてあげない)にあるリンク先 https://www.stroustrup.com/From-C-to-Cpp-dmr.pdf にあるのも英文だし)
んで、
https://www.stroustrup.com/From-C-to-Cpp-dmr.pdf
From C to C++: Interviews With Dennis Ritchie and Bjarne Stroustrup
By Al Stevens, January 01, 1989
In these exclusive interviews, Al Stevens talks with language pioneers Dennis Ritchie and Bjarne Stroustrup about where C and C++ came from and more importantly, where they might be going.
DDJ: As the designer of the C language, you are no doubt the world’s very first C programmer in a world where the number of C programmers is inestimable and growing fast. Yet, certainly C was not your first language. When did your programming career begin and with what systems?
というのを見ると Dr. Dobb’s Journal誌上でのインタビュー記事だろうか。 だとすると 日本語版DDJでも翻訳が掲載された(そしてそれを読んでいた) 可能性があるな。
教育云々という部分だとたぶんこの辺りだけど、 最初のツイートを補強するものではなさげ。
DDJ: Colleges and universities have started offering courses in C. Some C tutors have observed that many instructors either don’t understand C well enough or they don’t understand teaching well enough to insulate the novice student from the kinds of things you can do in C, things that the student cannot grasp. In light of that, and as compared to Pascal, how do you view C as a potential teaching language?
DR: Obviously, C was never designed to be a teaching language. It was designed as a tool to express the kind of programs that we were trying to write at the time. And it’s fairly low level in that concepts, like pointers, have a prominent role. I would not argue that C is a particularly good language for teaching programming. As Pascal was explicitly designed for that.
Pascal’s main fault is that you cannot use Pascal originally designed to express all the things you need to, certainly not in a systems environment, and not for general applications either because of explicit constraints that are built into the language. C was, from the very start, designed to do all the things that we found necessary in order to express ourselves, and little design thought was given to preventing people from using its powerful features.
Nevertheless, it’s possible to teach C in a way that’s reasonably safe if you start with parts of the language that are similar to other procedural languages. Then you can teach C’s more unusual aspects – pointers, for example – as cliches or set ways of expressing array manipulations and so forth. Later you can gradually widen out into the more general things possible with pointer manipulations.
I have not had the experience that the tutors have had. Part of the difficulty with being in a position like this is that you have very little opportunity to see what the novice really feels. But perhaps the reason there are not better instructors is that things have grown fast, and there might be people teaching C who only recently took the introductory course on the language themselves.
Obviously, C was never designed to be a teaching language.
と
I would not argue that C is a particularly good language for teaching programming.
はともかく「初心者にはお勧めできない」はどこから?
って、この記事が出典でない可能性もあるか。
すぽすっぽセンセイへのインタビュー記事はこちら
https://www.stroustrup.com/From-C-to-Cpp-bs.pdf
追記
何の気なしに元発言者のツイート(ポストとは(ry))を追いかけていたらこんなのを見つけた。 上記のインタビュー記事についてのツイートに対する返信だけど 気がついていなかった。
コメ有難う御座います!同年のインタビューでアメリカ版Cマガジンの編集者であるドロッタさん(72年からの友人で彼は前にベル研にいた)に答えてます。
— Armlin。 (MacでLinux。) (@ARMcoreLinux) September 18, 2023
本人も、その質問に対して明確な答えはなかったのかもしれませんね。
その経緯からCはUNIXの一部でしたし、教育向けに考えてはいなかったのでしょう。 https://t.co/c1pRmWRnBf pic.twitter.com/SCK6pFv0Zb
parse.y
parse.y 昔読んだ時より数段読みやすくなっている気がするけど、気のせい?
— kaneko.y (@spikeolaf) September 21, 2023
あとで(いつ?)チェックしておこう
JPL
ところでコズミックフロントとかディスカバリーチャンネルの宇宙ドキュメンタリー好きな方、youtubeでJPL検索してチャンネル登録すると幸せになれます。字幕生成から自動翻訳設定すると日本語字幕も出るから心配ない。
— 笹本祐一 (@sasamotoU1) September 22, 2023
メモメモ。
今日の遠い目
フジテレビの某番組においてアニメ「妄想科学シリーズ ワンダバスタイル」(2003年放送)OP主題歌「The IJIN-DEN 天才の法則」の序奏(イントロ)がBGMとして流れました、ややマニアックな作品であるワンダバスタイルのファンがスタッフにいると確信したと同時にPS2ゲームが発売されていたと今知りました pic.twitter.com/e2XDIgUdB4
— マウス (@mouseunit) September 22, 2023
20年前かあ>ワンダバスタイル