ときどきの雑記帖 RE* (新南口)
パリは燃えているか
今週のしずえさん
ラジオ体操の発祥はアメリカの保険会社
15分
マイコンソフトが移植したPC-8801版『ディグダグ』、テープ版のロード時間は15分! - AKIBA PC Hotline!
ちなみに、PC-8801対応版が実行可能なのはPC-8801とPC-8801mkIIのみで、PC-8801mkIISR以降の機種ではプレイ出来ません。 また、テープ版のロード時間はかなり長い部類に入る、約15分(!)でした。
88用のデータレコーダーのボーレートはたしか600ボーか1200ボーだから、 ロードに15分かかるとするとどのくらいの容量だ?
8ビット時代のパソコンへの具体的な採用例としては、日本においてはNECのPC-8000シリーズなどではキャリア周波数は そのままでシンボル長のみ短縮した600bpsでの記録を標準としていた。シャープのMZシリーズではコンピュータ本体に直接内蔵され、 ソフトウェア制御によるパルス幅変調方式で記録を行い、他の機種と比較し、エラーの少ないアクセスと共に、 1200bpsの速度を実現していた。
600ボー(baud と bpsは違うものだけどこの時期のものだと大きな違いはなかったはず(要確認) ボーレート(baudrate)と転送速度(bps) | KEI SAKAKI’s PAGE. ボー - Wikipedia )として、
- 1秒当たりの転送量が600ビット
- 1バイト(8ビット)のデータを送るのに10ビット必要
と仮定すると毎秒60バイトの転送量で、 15分は600秒+300秒で900秒だから、15分で転送できるのは
(60 * 900) / 1024
で52KiBくらい?
なんか怪しい数字だなあ(前提がどこか違うor足りないのだろう)。
Perl
Learning Perl の新しい版がでるらしい。
[NEW RELEASE] Learning Perl, 8E -- If you're just getting started with Perl, this is the book you want. The 8th edition, by experts Randal L. Schwartz, @briandfoy_perl & Tom Phoenix covers the language up to version 5.34. https://t.co/J2xonwYzuJ #OReillyExperts #NewBook pic.twitter.com/2REiDbOPAr
— O'Reilly Media (@OReillyMedia) July 27, 2021
Programming Perl の方の新しいのはもうでないかな?
リニューアル
東急田園都市線5駅のリニューアルプロジェクト、本日開始 工事は駒沢大学駅から | 鉄道ニュース | 鉄道チャンネル
へー。 駅の施設もそうだけど、他の設備とかは大丈夫なんかな。 何年か前に桜新町の辺りでなんかあったような。
ああ、これだ。
田園都市線「地下区間」トラブル続発の理由 開業40年、老朽化が原因 - ライブドアニュース
田園都市線、特に地下区間がほとんどを占める二子玉川―渋谷間約9.4kmでは、この1年ほどの間に停電や発煙などのトラブルが相次いでいる。
10月19日には池尻大橋駅の隣駅、三軒茶屋駅で停電が発生し、9時過ぎから約3時間運転を見合わせたほか、 7月7日には渋谷駅付近のトンネル内で信号関係のケーブルから発煙、 その約1週間前の6月29日には桜新町駅で消防用の送水管が破損して水がトンネル内に吹き出した。 2016年の8月にも桜新町駅で信号設備の故障が発生している。
んで、設備の整備もちゃんと予定に入っている模様 (当たり前っちゃあ当たり前)。
東急,2021年度の設備投資計画を発表 〜田園都市線2020系9編成を増備〜|鉄道ニュース|2021年5月15日掲載|鉄道ファン・railf.jp
異常時対応力の強化を目的に,老朽化した土木・電気設備の健全性を保つための維持更新工事や列車運行管理システムの更新を行なう. 輸送障害発生時の支障区間を最小限にするため,田園都市線の用賀—二子玉川間に折返し運転施設を増設し, 2021(令和3)年度中に運用を開始する.
パリは燃えているか
8月に「映像の世紀」の再放送があると聞き、久しぶりに「パリは燃えているか」を聴くか。 と思ったがPCのSSD(とHDD)にも(何台かある)DAPにも見当たらない。 ひょっとして(今は使っていない)iPod nanoにしか入ってなかったか? 当時アルバムをリッピングしたPCからはもちろん代替わりしてるんだけど、 ライブラリの継承にぬけがあったか。
(リッピング元の)CDまだ持ってたかなあ…
GNU grep
GNU grep は /dev/null に出力すると、処理速度が異常に速くなる件について - Qiita
速くなっている理由はさておき、リンクのあった GNU grep 2.26リリース - 気ままなブログ ここ、以前見ていた記憶もあるけど更新止まってますね。
Ruby \K
そっか、Ruby(というか鬼雲?)にも\Kあったのだっけ。
ruby-trunk-changes 2021-07-28 - ruby trunk changes
doc/regexp.rdoc に \K による後読みについての記述がなかったのを追加しています。 [ruby-core:85707] [Bug #14500]
Update Capturing and Anchors sections of regexp documention · ruby/ruby@4fc9ddd
Copilot
- FSF-calls for white papers on philosophical and legal questions around Copilot | Hacker News
- FSF-funded call for white papers on philosophical and legal questions around Copilot — Free Software Foundation — Working together for free software
The paper should be no longer than 3,000 words.
3000語ってどのくらいの分量だろうと思ってググったらそのものズバリ 「英語で3千語って何ページ分?」といった疑問を解決する方法|Colorless Green Ideas なんてページが。 わりと使われる数なんだろうか?>3000語
glob zsh 9
ここまでの数回、以下のループの中にある処理を追いかけていたけど 今回はループを抜けたところから。
/* Check for qualifiers */
while (!nobareglob ||
(isset(EXTENDEDGLOB) && !zpc_disables[ZPC_HASH])) {
(略)
while (*s && !newcolonmod) {
func = (int (*) _((char *, Statptr, off_t, char *)))0;
(略)
}
if (quals && newquals) {
/* Merge previous group of qualifiers with new set. */
(略)
} else if (newquals)
quals = newquals;
}
↑このループの直後がこう↓
q = parsepat(str);
if (!q || errflag) { /* if parsing failed */
restore_globstate(saved);
if (unset(BADPATTERN)) {
if (!nountok)
untokenize(ostr);
insertlinknode(list, node, ostr);
return;
}
errflag &= ~ERRFLAG_ERROR;
zerr("bad pattern: %s", ostr);
return;
}
if (!gf_nsorts) {
gf_sortlist[0].tp = gf_sorts = (shortcircuit ? GS_NONE : GS_NAME);
gf_nsorts = 1;
}
strを引数として parsepat という関数を呼び出しているが そのstrはどこから来たものかといえば
void
zglob(LinkList list, LinkNode np, int nountok)
{
struct qual *qo, *qn, *ql;
LinkNode node = prevnode(np);
char *str; /* the pattern */
int sl; /* length of the pattern */
Complist q; /* pattern after parsing */
char *ostr = (char *)getdata(np); /* the pattern before the parser */
/* chops it up */
(略)
str = dupstring(ostr);
のように、zglobに対する引数由来のもの。
parsepatはというとこう。
/* turn a string into a Complist struct: this has path components */
/**/
static Complist
parsepat(char *str)
{
long assert;
int ignore;
patcompstart();
/*
* Check for initial globbing flags, so that they don't form
* a bogus path component.
*/
if ((*str == zpc_special[ZPC_INPAR] && str[1] == zpc_special[ZPC_HASH]) ||
(*str == zpc_special[ZPC_KSH_AT] && str[1] == Inpar &&
str[2] == zpc_special[ZPC_HASH])) {
str += (*str == Inpar) ? 2 : 3;
if (!patgetglobflags(&str, &assert, &ignore))
return NULL;
}
/* Now there is no (#X) in front, we can check the path. */
if (!pathbuf)
pathbuf = zalloc(pathbufsz = PATH_MAX+1);
DPUTS(pathbufcwd, "BUG: glob changed directory");
if (*str == '/') { /* pattern has absolute path */
str++;
pathbuf[0] = '/';
pathbuf[pathpos = 1] = '\0';
} else /* pattern is relative to pwd */
pathbuf[pathpos = 0] = '\0';
return parsecomplist(str);
}
諸君、我等の夏は今日で終わった!しかし、秋と冬はまだ始まってもいない。堪え忍び、打ち勝たねばならない未来が諸君の前に待っている。/オットー・フォン・レヴィンスキー大佐 外伝第一巻「戦艦ヒンデンブルグの最期」
— レッドサンブラッククロスbot (@RSBC_bot) July 24, 2021