3-way merge の「3方向」とは何か?

https://ja.stackoverflow.com/questions/52019/git-%E3%81%AE-3-way-merge-%E3%81%A8%E3%81%AF%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AB%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A7%E3%81%99%E3%81%8B
・方向1「現在ブランチのコミット」
・方向2「マージ対象ブランチのコミット」
・方向3「現在ブランチとマージ対象ブランチの共通祖先コミット」
……の3つのコミットを元にしているので3wayマージである。



実際にマージ結果を作成する手順は以下。
X と Y の共通祖先となるコミット B (base) を見つける。
「X と B の diff」、「Y と B の diff」をそれぞれ求める。
2つの diff の結果を比較して、マージ結果を作成する。

対して 2-way merge は、単に「現在ブランチのコミット」「マージ対象ブランチのコミット」の2つのdiffからマージ結果を作成する。

棒倒し法による迷路作成

var makeMaze = mazeSize => {

	// 外枠を作成
	var fld = [...Array(mazeSize)].map(_=>[...Array(mazeSize)].map(_=>0));
	var initMap = (fld,y,x) => (x==0 || y==0 || x==mazeSize-1 || y==mazeSize-1) ? 1 : fld[y][x];
	fld = fld.map((arr,y)=>arr.map((_,x)=>initMap(fld,y,x)));

	// 内側に柱を作成
	var isEven = n => n % 2 == 0;
	var spawnPole = (fld,y,x) =>  ( fld[y][x] == 0 && isEven(x) && isEven(y) ) ? 2 : fld[y][x];
	fld = fld.map((arr,y)=>arr.map((_,x)=>spawnPole(fld, y, x)));

	// 柱を倒す
	var downPole = (fld,x,y) => {
		if (fld[y][x] != 2) { return; }
		// 最上段は4方向、それ以外は3方向のうちランダムで方向を決める
		var n=Math.floor(Math.random() * (y == 2 ? 4 : 3));
		// 倒す方向を算出して倒す
		var py=Math.round(Math.sin(Math.PI / 2 * n));
		var px=Math.round(Math.cos(Math.PI / 2 * n));
		fld[y+py][x+px] = 3;
	};
	fld.forEach((arr,y)=>arr.forEach((_,x)=>downPole(fld,x,y)));

	// 表示
	fld
		.map(arr=>arr.map(n=>n==0 ? ' ' : '#'))
		.forEach(arr=>console.log(arr.join("")));

};

makeMaze(21);

ECIプロトコル, ECIモード

https://reference.aspose.com/barcode/ja/net/aspose.barcode.generation/eciencodings/
拡張チャネル解釈識別子。(ECIEncodings enumeration)
QRコードに含まれるデータをエンコードするために使用される情報(文字コード種類など)。
実データとしてはQRコード先頭に「\000026」(UTF8の場合)などのデータが入った形になっており、古いQRリーダの場合はECIがあるQRコードを正しく読み込めない場合がある。

キメキャワ 限界ビートちゃん!!

クリア。
リズム天国の1ゲームのみを取り出したようなミニリズムゲーム
さくっと楽しめるが音楽がやたら癖になる。
出勤ボタンを押してプレイ開始したあと、10分プレイしないと退勤できないのはクスッとなった。

ゲームが面白い理由

https://www.youtube.com/watch?v=7PbpvkV_huM
自分の考えとしては、習熟(おおまかに言うと上手くなること)が面白い理由だと思う。
現代のゲームは総合芸術なのでいろんな楽しい要素があるが、選択と評価があることがゲームの要件で、「楽しい」ゲームの要件にはさらに習熟という要素があると思う。
具体例をあげていく。

くじ引き

これは「楽しく」ない。
これには選択と評価がある。カイジが会長とやったくじ引き勝負(イカサマは無しとする)はゲームである。

「正解の候補が1か2しかないハイ&ローゲーム」

次に出す例との比較としてこれを上げるが、これには運以外に結果をコントロールする手段が無い。
そういう意味でくじ引きと変わらない。
これは「楽しく」ない。

「正解の候補が1~100ならハイ&ローゲーム」

正しい手法と正しくない手法があり習熟の要素がある。
これは「楽しい」。

keep-alive

https://e-words.jp/w/HTTP%E3%82%AD%E3%83%BC%E3%83%97%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%96.html
初期のHTTPは一回の送受信のために接続を確立し、転送が終わると切断するという仕様だった。
現在はWebサーバとWebブラウザ間の通信では、TCPコネクションが維持され続けるようになって、リクエストやレスポンスの送受信に繰り返し使われる。
HTTP 1.1からは特に指定がなければコネクションが継続され、ヘッダ中で「Connection: Close」を宣言すると切断される。
(明示的に接続維持する場合は「Connection: Keep-Alive」と宣言する)