ときどきの雑記帖 RE* (新南口)
滅びし獣たちの海
恐竜
前回 ミャンマーの首都が変わっていたのを知らなかったという話を書きましたが、 恐竜に関する話も自分たちの子供の頃とはずいぶんと変わっていますな (あさりよしとおがイグアノドンなんかの復元想像図の変遷を「まんがサイエンス」 で描いていたと思っていたけど違ったか まんがサイエンスの専門家一覧 - Wikipedia)。
哺乳類型爬虫類
恐竜とはちょっと違うんですが 「ディメトロドンって恐竜じゃないのか」「ややこしすぎる」恐竜とよく間違えられる古生物たち!! - Togetter に出てくる「哺乳類型爬虫類」ってのにすごーーく引っかかってたんですよ子供時代に。 一体どんな生物なのかと。 当時の自分の理解では、爬虫類にはない哺乳類の特徴として思いつくのが
- 温血(恒温動物)である
- 授乳する
- (鱗ではなく)体毛がある
くらいで、実際に「哺乳類型爬虫類」として図鑑などに載っていた古生物はそんな感じではなかったし、 哺乳類は爬虫類から進化したという話になっていたのでどういうこっちゃと。
先のtogetterにもあるようにこの「哺乳類型爬虫類」という言い方はもう使われておらず、 今は教科書の記載もこんな感じなのだとか。
質問
哺乳類は,爬虫類から進化したのではないのですか?回答
文部科学省からの検定意見により,平成24年度用教科書から,哺乳類は爬虫類から進化したと記述しておりません。
今までの教科書では,哺乳類は爬虫類から進化したと説明していました。しかし近年の研究の成果から, 哺乳類と爬虫類は,別物であるという考えが主流となっています。
(これもtogetterにありましたが)「魚竜」や「翼竜」、「首長竜」なんかも「恐竜」でしたもんねえ。わしらがガキンチョの頃は。
体温計
例のあれの影響で一年位前から毎朝体温を測っているんですが そろそろ体温計を新しいのにしようと思ったんですね。 これまで使っていた体温計は予測機能のないやつで 朝目覚めた直後の体温計測の時間がなんとももどかしかった (朝の1分、2分は貴重だ😄)ので、 今回は予測式のを買ったんですよ。
で、10日ほど両方ともを使ってくらべてみたのですが、 どうも予測式の方が0.6℃~1.2℃くらい高く出るんですね。 どちらの体温計も(自分で改めて)校正したわけでもなく、 どちらもが製品としてのバラツキもあるだろうし、 予測式はまあ誤差もあるだろうと思いつつも気になったので調べてみると 予測式は高めの数値が出るという話はあるみたいですね。
- 価格.com - 『予測検温の体温が高め』 テルモ ET-C231P のクチコミ掲示板
- OMRON MC-681 オムロン 電子体温計(わき専用) けんおんくん MC681 体温計のレビュー・口コミ - Yahoo!ショッピング - PayPayボーナスがもらえる!ネット通販
- 実測式と比べると、予測式の数値が高く出る | よくあるご質問 | オムロン ヘルスケア
ん、今まで使ってたのでも測定に10分はかかってないけど使い方間違えてる?
買うときに、(ドラッグストアではなく)薬局の店員さんに 「予測式のものではないですがいいですか」と念を押されたので、 間違って買ったということはないと思うけど。
でもまああれか。これまで使っていた方の体温計だと35℃台前半みたいなやたら低い数値が良く出ていたので 本当に使い方を間違っていたのかもしれない。
説明書まだあったかな。
タブレット
今一番売れている「タブレット」AmazonランキングTOP10!(2/12 12:34)(2/2) | ねとらぼ調査隊:2ページ目
今使っている(と言いつつ使う頻度はそれほどでもない)タブレットも 買ってからだいぶ経っていて、 処理速度をはじめ色々不満が出ているので 新しいものをと思ってはいるのだけど、 さて何が良いのやら。
ここまで3台androidタブレットを使ってきて「当たり」をひいた試しがないし、 androidタブレット自体あまり新製品が出てこなくなっている感じなので iPadにすっかなあと思いつつも、予算があまりないしねえ (PCもそろそろ更新したいのだ)。
Bourne shell のソースコード
オリジナルの bourne shell はシェル自体のソースコードもスゴイので一度見て欲しいhttps://t.co/pRDIDKFoGahttps://t.co/nXzWk8wvKF https://t.co/KdPsUe3Wyy
— AoiMoe a.k.aしお兄P (@AoiMoe) February 9, 2021
これは
#define LOCAL static
#define PROC extern
#define TYPE typedef
#define STRUCT TYPE struct
#define UNION TYPE union
#define REG register
#define IF if(
#define THEN ){
#define ELSE } else {
#define ELIF } else if (
#define FI ;}
#define BEGIN {
#define END }
#define SWITCH switch(
#define IN ){
#define ENDSW }
#define FOR for(
#define WHILE while(
#define DO ){
#define OD ;}
#define REP do{
#define PER }while(
#define DONE );
#define LOOP for(;;){
#define POOL }
こんな感じのマクロを駆使してまるでCには見えないこんなやつですね。
LOCAL VOID exfile(prof)
BOOL prof;
{
REG L_INT mailtime = 0;
REG INT userid;
struct stat statb;
/* move input */
IF input>0
THEN Ldup(input,INIO);
input=INIO;
FI
/* move output to safe place */
IF output==2
THEN Ldup(dup(2),OTIO);
output=OTIO;
FI
userid=getuid();
/* decide whether interactive */
IF (flags&intflg) ORF ((flags&oneflg)==0 ANDF gtty(output,&statb)==0 ANDF gtty(input,&statb)==0)
THEN dfault(&ps1nod, (userid?stdprompt:supprompt));
dfault(&ps2nod, readmsg);
flags |= ttyflg|prompt; ignsig(KILL);
ELSE flags |= prof; flags &= ~prompt;
FI
IF setjmp(errshell) ANDF prof
THEN close(input); return;
FI
/* error return here */
loopcnt=breakcnt=peekc=0; iopend=0;
IF input>=0 THEN initf(input) FI
/* command loop */
LOOP tdystak(0);
stakchk(); /* may reduce sbrk */
exitset();
IF (flags&prompt) ANDF standin->fstak==0 ANDF !eof
THEN IF mailnod.namval
ANDF stat(mailnod.namval,&statb)>=0 ANDF statb.st_size
ANDF (statb.st_mtime != mailtime)
ANDF mailtime
THEN prs(mailmsg)
FI
mailtime=statb.st_mtime;
prs(ps1nod.namval); alarm(TIMEOUT); flags |= waiting;
FI
trapnote=0; peekc=readc();
IF eof
THEN return;
FI
alarm(0); flags &= ~waiting;
execute(cmd(NL,MTFLG),0);
eof |= (flags&oneflg);
POOL
}
コードを見ていて LOCAL VOID exfile(prof)
の部分が気になった。
当時のCコンパイラーにはまだvoid
はなかったはずで、
VOID
がどういう定義なのかを追いかけてみると
V7/usr/src/cmd/sh/mode.h
で見つかった。
TYPE char CHAR;
TYPE char BOOL;
TYPE int UFD;
TYPE int INT;
TYPE float REAL;
TYPE char *ADDRESS;
TYPE long int L_INT;
TYPE int VOID;
TYPE unsigned POS;
TYPE char *STRING;
int
。まあ妥当っちゃ妥当か
(TYPE
は typedef
を単にdefine
使って置き換えたもの)。
oq
if→fi はまぁうんそうかなーとおもったけど case→esacは (゚Д゚) ってなるよね ※体感には個人差があります
— yoh (@yohhoy) February 9, 2021
if→fi、case→esac なのに do → od じゃないのは許せない…と思いませんか? 既にodコマンドがあったから使えなかったと聞いた事があるけど真偽の程は不明。果たして bource shell よりも od が先だったのか?
— IMAIZUMI Mitzyuki - Full Vaccinated (@bsdhack) February 9, 2021
個人的には流儀がふたつあるのが困るかも。if...fi, OK. case...esac, OK. do...done, ...... おい。
— Tsukasa #01 (@a4lg) February 9, 2021
do に「対応」するのは oq
だろうという意見(?)を見たのは bit だったかな。
なんで oq
なのかは
do oq
と書いてみたらわかりやすいだろうか?
ソートアルゴリズムの可視化
thread: Sorting algorithms visualized
— Matteo Portesi (@pottolama) January 26, 2021
some famous algo visualized using python, numpy and matplotlib😋
first is Odd-even sort!#Algorithm #python #visualization pic.twitter.com/Ay6hz7wl5h
stooge sort
↑で出てきたソートアルゴリズムで Stooge sort
Stooge sort! not so useful.. but pretty! pic.twitter.com/o3JaTkXN1j
— Matteo Portesi (@pottolama) January 26, 2021
が(bubble sort の部分は表示せんでいいんだけどどうにかできんのか) 聞き覚えのない名前でかつ動きが面白かったので調べてみると 日本語版のうぃきぺにもエントリがあった。
ストゥージソート(英: Stooge sort)は、再帰を用いたソートアルゴリズムのひとつである。
計算時間はO(n^(log 3 / log 1.5)) = O(n^2.7095…)であり、これはマージソートなどの効率的なアルゴリズムよりも、 それどころか非常に効率の悪い単純なソートの例としてよく挙げられるバブルソートよりも遅い。
アルゴリズムは以下の通りである。
- もし末尾の値が先頭の値より小さければ、それらを入れ替える。
- 現在処理している部分列の要素数が3以上であれば、
- リストの先頭2/3に対してストゥージソートを行う。
- リストの末尾2/3に対してストゥージソートを行う。
- リストの先頭2/3に対して再びストゥージソートを行う。
- そうでなければ終了。
ふむ。
一連の可視化のコードは mportesi/sorting_algo_visualizer: Python script to generate a visualization of various sorting algorithms, image or video. にあるとのこと。
all the (Bad!) code used can be found here:https://t.co/jBAd1zrx4o
— Matteo Portesi (@pottolama) January 26, 2021
Hugo メモ
数式をそれらしく表示させる
素のMarkdownでは数式をきちんと書けないのでどうやればいいのか調べてみると、 HTMLを使う(ただし、Hugoの設定をいじる必要がある)か MathJaxというのものを使うかするらしい。
設定を変更してHTML直書き
MathJaxを使う
- MathJaxを用いてHugoで数式を表現する - Stray-Notes
- HugoでLaTex記法を用いて数式(行列)を記述する方法 · tanaken.me
- Hugoに使われる数式のMarkdown
- Hugo に MathJax を導入して数式を書けるようにする - #m0t0k1ch1st0ry
- Hugoで数式(Mathjax)を書く時の注意事項 - Qiita
- Content Formats | Hugo
結果
MathJaxを導入するのは面倒そうなので(CDN使ってもいいけどさあ)、 HTML直書きでやってみる(config.tomlは修正済み)。
O(nlog 3 / log 1.5 ) = O(n2.7095...)
どうかな?
shortcode
Shortcode で解決する(設定を変更しない)やり方もあるらしい。
- Sophomoric Periods
- 【HUGO】マークダウンの中にHTMLコードを書いて表示する方法 | シラベルノート
- Simple Shortcode to Insert Raw HTML in Hugo · Ana Ulin