ときどきの雑記帖 RE* (新南口)
真夏の夜の夢
Russ Cox
ここがちょっと気になった
I don’t believe that the “BDFL” (benevolent dictator for life) model is healthy for a person or a project. It doesn’t create space for new leaders. It’s a single point of failure. It doesn’t give the project room to grow. I think Python benefited greatly from Guido stepping down in 2018 and letting other people lead, and I’ve had in the back of my mind for many years that we should have a Go leadership change eventually.
under 500 LoC
Can you implement a Lisp with support for macros in under 500 LoC? : r/lisp
勝手にCで書くものと思い込んで それは厳しい、というか無理じゃね? と思ったが、リンク先をたどるとJavaっぽい?
渋谷
「これが、同じ街なのか…?」ついに渋谷駅直結を果たした“国道の向こう側” 地形すら変えた大開発4年間を定点比較 | 乗りものニュース
だいぶ変わったっぽいけどまだ行ってない
youtube
redditのとあるスレッドから YouTubeへリンクをたどったら オススメ(?)で出てきたのでメモ
Can Great Programmers Be Taught? - John Ousterhout - Agile LnL - YouTube
John Ousterhout Reflects on “A Philosophy of Software Design” - YouTube
CSV
- By the 1970s, many business applications were using CSV, from accounting to inventory management systems.
- IBM included CSV support in its Fortran compiler, making it useful for scientific and engineering applications.
- CSV wasn’t an official standard yet, but it was widely used due to its simplicity and effectiveness.
の、CSV support in its Fortran compiler
ってのが気になった。
そんなのあったっけ?
Looking ahead, the future of CSV might involve some tweaks:
- Efforts to standardize it further.
- New tools to better handle its quirks.
は、まあそうですね。としか
ed
つづき。
tline += (((lp-linebuf)+03)>>1)&077776;
の部分の意味が(たぶん)分かった、
行の実体が置かれている位置の管理は 16ビット単位の整数で行っていて、さらに
bno = (atl>>8)&0377;
off = (atl<<1)&0774;
上位8ビットと下位8ビットで分けられている。 上位8ビットは512バイト単位のブロックを区別する番号で、 下位8ビットはそのブロックの中での位置を表している。 ただし、512バイトの中で 位置を1バイト単位で表すには 9ビットの大きさが必要だが ここには8ビットしかない上に 前回書いたように別の目的で1ビット使っているので 2ビット足りない。
が、前述の式では(1ビット左シフトした上で) 下位の9ビットを取り出している。
bbbb_bbbb_ssss_ssss atl (元データ)
b_bbbb_bbbs_ssss_sss0 <<1 (1ビット左シフト)
1_1111_1100 774 (774(8)のビットパターン)
s_ssss_ss00 off 取り出したビットパターン
ここで改めて
tline += (((lp-linebuf)+03)>>1)&077776;
を見てみると、+03
があやしい
(というか前回書いた時点ではその意味が読み取れなかった)
これがどういうことかというと
>seq 0 15 | perl -ne "printf qq!%d,%d,%d\n!,$_,(($_+3)>>1)&~1,$_+3&~3"
0,0,0
1,2,4
2,2,4
3,2,4
4,2,4
5,4,8
6,4,8
7,4,8
8,4,8
9,6,12
10,6,12
11,6,12
12,6,12
13,8,16
14,8,16
15,8,16
4バイト単位に調整しているんですな。 こうすることで別目的のための1ビットと もう1ビットを捻出していると。
新刊近刊
出版社: ライツ社 (2024/12/31)
eniac
本日『コンピューター誕生の歴史に隠れた6人の女性プログラマー』が発売となりました!https://t.co/Wnu385pGPW
— 共立出版 (@kyoritsu_pub) July 30, 2024
刊行を記念して、著者のキャシー・クレイマンさんからメッセージが届きましたので、4回に分けてご紹介します。
本日はそのPart.1です。
続きは明日以降のPart.2、3、4でお届けします。 pic.twitter.com/xG3xwkFgQU
『コンピューター誕生の歴史に隠れた6人の女性プログラマー』刊行記念📚
— 共立出版 (@kyoritsu_pub) July 31, 2024
著者キャシー・クレイマンさんからのメッセージPart.2です。
今回は、6人のうちの1人、キャスリーン・マクナルティ・モークリーについて。本書未収録の貴重な写真とともにお届けします。
書籍詳細👇https://t.co/QS5gbWfmgL https://t.co/65kf16JUpc pic.twitter.com/l1oXW9iF09
『コンピューター誕生の歴史に隠れた6人の女性プログラマー』刊行記念📚
— 共立出版 (@kyoritsu_pub) August 1, 2024
著者キャシー・クレイマンさんからのメッセージPart.3です。
今回は、6人のうちのひとり、ベティ・ホルバートンについて。彼女は生涯をかけてコンピューターの発展に尽力した先駆者です。
書籍詳細👇https://t.co/Wnu385p90o https://t.co/urENJkuY9l pic.twitter.com/XNmZPDUtW1
『コンピューター誕生の歴史に隠れた6人の女性プログラマー』著者キャシー・クレイマンさんからのメッセージPart.4(最終回)です。
— 共立出版 (@kyoritsu_pub) August 2, 2024
最後は、ジーン・ジェニングス・バーティクについて。彼女は、自身の体験談を語り、女性の活躍を奨励し続けた人物です。
書籍詳細はこちら👇https://t.co/Wnu385pGPW https://t.co/0K8b5m63Fq pic.twitter.com/4KvSpOnuFh
#ニューズウィーク日本版 にて、新刊『コンピューター誕生の歴史に隠れた6人の女性プログラマー』の紹介記事が公開されました!
— 共立出版 (@kyoritsu_pub) July 31, 2024
世界初のプロフェッショナル・プログラマーは女性だった...コンピューター開発史に埋もれた先駆者たちを描いて https://t.co/FvyQ8Rawa6 @Newsweek_JAPANから
この本買った。 ENIACは途中までは配線を組み替えて動作を変えていたので 今日的な意味での「プログラマー」なのか ちょっと気になっていたのだけど、 ざっと見た感じでは プログラムをメモリーに置く(という表現が正しいかはさておき) ように改造された話もあるようなので その辺の心配は無用だった模様。
にしても UNIVACとかCOBOLとかサブルーチンとか 気になるキーワードが出てくるなあ>共立出版アカウントの一連の投稿
ABOUT FACE
8/3先行販売:ISBN978-4-8399-8188-4 マイナビ出版『ABOUT FACE インタラクションデザインの本質』Alan Cooper、 Robert Reimann、 David Cronin、 Christopher Noessel著 上野学監訳 ソシオメディア株式会社訳 30冊入荷 pic.twitter.com/kMnNcwo0vp
— ジュンク堂書店池袋本店 PC書担当 (@junkudo_ike_pc) August 3, 2024
(先行販売とはいえ)もう店頭に出ているのか。 つーてもお値段的に厳しいわねえ… 他にも買いたい本はあるし
awk
OTA
feature request: -f like option, but the last one processed · Issue #125 · onetrueawk/awk
--
を置かなくても、以後の引数に対するオプション解析をしなくする
-f
のようなオプションが欲しいと。
gawk
MinRX
mikehaertel/minrx: Minimal matcher for POSIX Extended Regular Expressions をちょこちょこ眺めているのだけど minrx/ALGORITHM.txt at main ・ mikehaertel/minrx ・ GitHub というファイルがあるのね
MinRX is an Non-deterministic Finite Automaton (NFA) based regular expression matcher that introduces a new algorithm and automaton structure for computing the matching substrings of POSIX Extended Regular Expressions (EREs). I call this enhanced automaton a Structured NFA, abbreviated SNFA. It could also possibly be called a Stacked NFA with the same abbreviation.
A bug in parsing of conditional ops?
A bug in parsing of conditional ops? の話の続き。
Rubyでも同様の話があったと思うのだけど、 演算子の優先順位とは別に構文規則の定義によって そうなってしまうというのが原因で、 演算子の優先順位と矛盾しない形で定義すれば…?
やっつけプログラム
%{
#include <stdio.h>
#include <stdlib.h>
struct tree {
int op;
struct tree *lhs;
struct tree *rhs;
};
typedef struct tree tree;
tree* new_tree(int op, void *lhs, void *rhs);
void dump_tree(tree *t);
int yylex(void);
int yyparse(void);
%}
%union {
tree* val;
}
%token RELOP
%token NL
%token VAR
%token NUMBER
%type <val> exp
/* Lowest to highest */
%right '='
%nonassoc RELOP /* == != > >= < <= */
%left '+' '-'
%left '*' '/'
%%
/**/
line: exp NL { dump_tree($1); }
| error NL
;
exp : VAR { $$ = new_tree(VAR, "variable", NULL); }
| VAR '=' exp { $$ = new_tree('=', new_tree(VAR, "variable", NULL), $3); }
/* | exp '=' exp { $$ = new_tree('=', "variable", $3); } */
| NUMBER { $$ = new_tree(NUMBER, "number", NULL); }
| exp RELOP exp { $$ = new_tree(RELOP, $1, $3); }
| exp '+' exp { $$ = new_tree('+', $1, $3); }
| exp '-' exp { $$ = new_tree('-', $1, $3); }
| exp '*' exp { $$ = new_tree('*', $1, $3); }
| exp '/' exp { $$ = new_tree('/', $1, $3); }
%%
tree*
new_tree(int op, void *lhs, void *rhs)
{
tree *p = malloc(sizeof (tree));
p->op = op;
p->lhs = (tree *)lhs;
p->rhs = (tree *)rhs;
return p;
}
void
dump_tree(tree* t)
{
if (t == NULL)
return;
static int level = 0;
char op[2] = {0};
char *p;
if (t->op == VAR || t->op == NUMBER)
p = (char *)t->lhs;
else if (t->op == RELOP)
p = "RELOP";
else {
op[0] = t->op;
p = op;
}
printf("%*sop=`%s`\n", level*2, ((level>0) ? " " : ""), p);
if (t->op != VAR && t->op != NUMBER) {
level++;
dump_tree(t->lhs);
dump_tree(t->rhs);
level--;
}
}
int *p;
int
yylex()
{
if (*p)
return *p++;
return 0;
}
int
yyerror(char const *str)
{
fprintf(stderr, "%s\n", str);
return 0;
}
int SYMS[] = {VAR, RELOP, VAR, '=', NUMBER, NL, 0};
int
main()
{
p = SYMS;
return yyparse();
}
>kmyacc -d -v expr.y
>gcc y.tab.c
>a
op=`RELOP`
op=`variable`
op=`=`
op=`variable`
op=`number`
githubのgistにでも置いた方が良かったか。
FORTRAN Compiler on IBM 704
Hugo メモ
エントロピー
@各位
— しゃみ (@seimi_0501) July 29, 2024
こんな漢字があるそうですよ pic.twitter.com/2fE72N6ZEk
88
来週8/8は PasocomMini PC-8801mkIISR 詳細発表!! pic.twitter.com/k7zyNcNfCA
— yone (@yone) August 1, 2024
お、いよいよすな
霧笛
霧笛が聞こえてきたら負け(^_^;) pic.twitter.com/eN8zLIewqg
— 迷人 (@s_meijin) August 1, 2024
完結編はよく知らない(すっとぼけ
Emacs
え、明日はEmacsの話が何しても通じる勉強会とか想像したら楽しみになってきた
— よんた (@keita44_f4) August 3, 2024
へーそんなものが。 と他の投稿を見ると 東京Emacs勉強会 サマーフェスティバル2024 - connpass のことのようだ
16:05 tadsan Evolution of Emacs Lispダイジェスト
これが気になる😄