ときどきの雑記帖 倒行逆施編

最新ページへのリンク
目次ページへのリンク

一つ前へ 2016年1月(下旬)
一つ後へ 2016年2月(中旬)

ホームへ

2016年02月10日

■_

疾風の勇人 / 大和田秀樹 - モーニング公式サイト - モアイ 作者がとあるpodcast(的番組)で言っていたのだけど、 この時期の政治家(を含めた人物)たちの顔ぶれは 幕末のそれに劣らないくらい個性的な連中揃いだと。 ただ、あまりにも近い時代なのでこれまで書きづらさはあったのだけど 現時点ではほぼ鬼籍に入ったのでその気になったとかなんとか (メモったりしてないので不正確だけど概ねこんな感じの発言だったと思う)。

D の $

「等身大」を「実物大」の意味で使われると こう、むずがゆさがですね……

■_

■_

true(1) について。



#! /bin/sh # $OpenBSD: true.sh,v 1.2 1996/06/26 05:41:53 deraadt Exp $ exit 0

OpenBSD は↑なんだけど、GNU coreutils に入ってるのはってーと… coreutils.git - GNU coreutils 全体は各自で見てもらうとして、

coreutils.git - GNU coreutils

/* Act like "true" by default; false.c overrides this.  */
#ifndef EXIT_STATUS
# define EXIT_STATUS EXIT_SUCCESS
#endif

#if EXIT_STATUS == EXIT_SUCCESS
# define PROGRAM_NAME "true"
#else
# define PROGRAM_NAME "false"
#endif

↑こんな部分があったので false.c を見ると coreutils.git - GNU coreutils

coreutils.git - GNU coreutils

#define EXIT_STATUS EXIT_FAILURE
#include "true.c"

わはは。

■_

【セキュリティ ニュース】「Adobe Flash Player」に22件の脆弱性 - 更新は72時間以内に(1ページ目 / 全1ページ):Security NEXT さらに解放済みメモリへアクセスするいわゆる「use-after-free」の脆弱性6件のほか、ヒープバッファフローや型の取り違えといった脆弱性に対応。 use-after-free とかまだ残ってたんかーっ

2016年02月09日

■_

今年の大河ドラマ(意地でもタイトル出してあげない)を見ててやっぱそうだよな と感じたのが、「地図」の重要性ね。 地名だけぱっと出されてもそれがどういった位置にあって どういった場所なのか分かる人はたぶん少数派だと思うし、 それがわかれば勢力争いなんかも 飲み込みやすくなるんじゃないかなあ。などと。

で、三国志だけどこういう本が最近出てたのを見つけた。 図解 三国志 群雄勢力マップ 詳細版 ([テキスト]) にたような本が以前にも出てたみたいだけど 「詳細でない」版? 図解 三国志 群雄勢力マップ (LOCUS MOOK)

戦国の陣形 (講談社現代新書)
戦国の陣形 (講談社現代新書) 戦国の陣形 (講談社現代新書)
戦国の陣形 (講談社現代新書)

■_

■_

今日の新言語 Introduction to the Zig Programming Language - Andrew Kelley

Introduction to the Zig Programming Language - Andrew Kelley

The past few months I took a break from working on Genesis Digital Audio Workstation to work, instead, on creating a new programming language.

I am nothing if not ambitious, and my goal is to create a new programming language that is more pragmatic than C. This is like to trying to be more evil than the devil himself.

■_

Gitのコミットハッシュ値は何を元にどうやって生成されているのか - Mercari Engineering Blog で、sha1_to_hex関数のビット演算のところが若干読みづらいかもしれません。 という記述があるんだけど

Gitのコミットハッシュ値は何を元にどうやって生成されているのか - Mercari Engineering Blog

char * sha1_to_hex(unsigned char *sha1)
{
    static char buffer[50];
    static const char hex[] = "0123456789abcdef";
    char *buf = buffer;
    int i;

    for (i = 0; i < 20; i++) {
        unsigned int val = *sha1++;
        *buf++ = hex[val >> 4];
        *buf++ = hex[val & 0xf];
    }
    return buffer;
}

ふむ? そういうもんなんかなあ>「読みづらい」

それはそれとして、buffer の大きさが50なのはどういう理由からなんだろう? 20バイト(for の繰り返し回数から)を納めるにはちょっと過剰だし、 といってなにか適当なアラインメントにあわせたようでもない。

2016年02月08日

■_

沙村広明がヤンマガ初登場!孤介の天才剣士の数奇な戦人生描く | マイナビニュース 今週はセンゴクが休載なんでスルーしたんだけど、こんなのが載ってたのか。 ところで知らなかったので辞書ひいて調べたw>孤介 こかい【孤介】の意味 - 国語辞書 - goo辞書

とある発表のスライド見てたら「粉飾決済」なる言葉が出てきたんだけど

■_

■_

Dot Waves: A PureScript Short Story ・ bitantics の最初の方にあるこれ

  main :: forall eff. Eff ( timer :: Timer, dom :: DOM, canvas :: Canvas | eff) Unit
  main = do
    Just canvas <- getCanvasElementById "dot-waves"
    ctx <- getContext2D canvas

謎めいている……

■_

2016年02月07日

■_

とある新譜CDを買おうと思ったら、行動範囲にあったCDを扱う店がごっそりなくなってた。 どこで買えと(結局ぽちったけどさあ)。 ウインカー【通常盤】
ウインカー【通常盤】

「セキガハラ」コンビニ版を見かけたので(でもまだ完結してないよねこれ) 買ってみた。何じゃこりゃあw セキガハラ コミック 1-4巻セット (SPコミックス)
セキガハラ コミック 1-4巻セット (SPコミックス) セキガハラ 5 (SPコミックス)
セキガハラ 5 (SPコミックス) セキガハラ 1 (kindle版)
セキガハラ 1

お、これは面白そうな。 出版社のページには目次全部載ってる。 朝倉書店| コンピュータと数学

■_

■_

gawk 4.1.3 のソース読んでたらコメントにわたしの名前があったりして 嬉しいやらこそばゆいやら。

2016年02月06日

■_

現代用語の基礎知識って知らん間にずいぶんコンパクトになっちゃったのねえ。 書店で見かけてちょっと驚いた。 新語・流行語を加えてページ数が増加しており、本のサイズ自体も創刊時のB5判から1960年以降はA5判に、1972年からB5判に拡大。2005年からA5判増ページとなったが、創刊65年目の 2013年版では、A5判(通常版)とB5判(拡大版)が大小並んでリリースされている。 (現代用語の基礎知識 - Wikipedia) へー。通常版だけみたっぽいな。 長らく一社独占の状況であったが、1986年11月17日に集英社から『イミダス 1987年版』、1989年11月17日に朝日新聞社から『知恵蔵 1990年版』と同様の本が刊行されるようになった。ただし、両者とも2006年11月発行の2007年版を最後に休刊となり、一社独占に戻った。

一般書を探す | 歴史と教科書の山川出版社 最近、偶然このシリーズの存在を知ったのだけど 取り上げている人物が中々面白い。

■_

■_

gawk のソースコード眺めてたら意外なところが変わってた。

4.1.3

/* efwrite --- like fwrite, but with error checking */

static void
efwrite(const void *ptr,
	size_t size,
	size_t count,
	FILE *fp,
	const char *from,
	struct redirect *rp,
	bool flush)
{
	errno = 0;
	if (rp != NULL) {
		if (rp->output.gawk_fwrite(ptr, size, count, fp, rp->output.opaque) != count)
			goto wrerror;
	} else if (fwrite(ptr, size, count, fp) != count)
		goto wrerror;
	if (flush
	  && ((fp == stdout && output_is_tty)
	      || (rp != NULL && (rp->flag & RED_NOBUF) != 0))) {
		if (rp != NULL) {
			rp->output.gawk_fflush(fp, rp->output.opaque);
			if (rp->output.gawk_ferror(fp, rp->output.opaque))
				goto wrerror;
		} else {
			fflush(fp);
			if (ferror(fp))
				goto wrerror;
		}
	}
	return;

wrerror:
	/* die silently on EPIPE to stdout */
	if (fp == stdout && errno == EPIPE)
		gawk_exit(EXIT_FATAL);

	/* otherwise die verbosely */
	fatal(_("%s to \"%s\" failed (%s)"), from,
		rp ? rp->value : _("standard output"),
		errno ? strerror(errno) : _("reason unknown"));
}

引数で渡されてくる redirect 構造体、4.0.0 にもあるんだけど

4.0.0

/* efwrite --- like fwrite, but with error checking */

static void
efwrite(const void *ptr,
	size_t size,
	size_t count,
	FILE *fp,
	const char *from,
	struct redirect *rp,
	int flush)
{
	errno = 0;
	if (fwrite(ptr, size, count, fp) != count)
		goto wrerror;
	if (flush
	  && (output_is_tty
	      || (rp != NULL && (rp->flag & RED_NOBUF)))) {
		fflush(fp);
		if (ferror(fp))
			goto wrerror;
	}
	return;

wrerror:
	fatal(_("%s to \"%s\" failed (%s)"), from,
		rp ? rp->value : _("standard output"),
		errno ? strerror(errno) : _("reason unknown"));
}

構造体の中身が違う。

4.0.0

/* structure used to dynamically maintain a linked-list of open files/pipes */
struct redirect {
	unsigned int flag;
#		define	RED_FILE	1
#		define	RED_PIPE	2
#		define	RED_READ	4
#		define	RED_WRITE	8
#		define	RED_APPEND	16
#		define	RED_NOBUF	32
#		define	RED_USED	64	/* closed temporarily to reuse fd */
#		define	RED_EOF		128
#		define	RED_TWOWAY	256
#		define	RED_PTY		512
#		define	RED_SOCKET	1024
#		define	RED_TCP		2048
	char *value;
	FILE *fp;
	FILE *ifp;	/* input fp, needed for PIPES_SIMULATED */
	IOBUF *iop;
	int pid;
	int status;
	struct redirect *prev;
	struct redirect *next;
	const char *mode;
};
/* structure used to dynamically maintain a linked-list of open files/pipes */
struct redirect {
	unsigned int flag;
#		define	RED_FILE	1
#		define	RED_PIPE	2
#		define	RED_READ	4
#		define	RED_WRITE	8
#		define	RED_APPEND	16
#		define	RED_NOBUF	32
#		define	RED_USED	64	/* closed temporarily to reuse fd */
#		define	RED_EOF		128
#		define	RED_TWOWAY	256
#		define	RED_PTY		512
#		define	RED_SOCKET	1024
#		define	RED_TCP		2048
	char *value;
	FILE *ifp;	/* input fp, needed for PIPES_SIMULATED */
	IOBUF *iop;
	int pid;
	int status;
	struct redirect *prev;
	struct redirect *next;
	const char *mode;
	awk_output_buf_t output;
};

最後の awk_output_buf_t が増えてる。

mingw の setlocale 周りわけわかんねえ○| ̄|_

2016年02月05日

■_

完全禁煙になる模様>某社 (現時点では数カ所ある喫煙所(建物の外にある)でのみ喫煙可)

■_

2016年02月04日

■_

職場での近くにやたらと痰を切るような咳っぽいのを連発する御仁がいてつらい (クセになってんだろうなあありゃ)。

■_

■_

どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | プログラミング | POSTD

どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | プログラミング | POSTD

Donald Knuthはこの点を、次のように、うまくアドバイスしています。 

私たちは小さな効率化は忘れるべきです。97%は次のように言えるでしょう。早まった最適化は諸悪の根源だ、と。

ですが、Knuthの引用は「最適化は価値がない」と言っているわけではないことに注意して、 「Knuthの誤った引用はやめよう」や「早まった最適化は諸悪の根源という神話」といった記事を読んでみてください。

せっかくだから、↑で名前の出たこいつらも訳されないだろかw Stop Misquoting Donald Knuth! Joe Duffy - The 'premature optimization is evil' myth

2016年02月03日

■_

■_

■_

今日の重箱の隅。 大規模システムの保守における技術的負債とチームのモラル カタカナで「モラル」と書くと、 [三省堂辞書サイト]10分でわかる「モラル」 「道徳」「倫理」「良識」のことをいいます。 ですが、リンクのURLにもある通り元記事で使われているのは moral ではなく morale です。

大元の語源は同じもののようですが モラル(moral)は英語、モラール(morale)はフランス語です。末尾に「e」が付くか付かないかの違いのようですが、 英語やカタカナ語に輸入されたフランス語のモラール(morale)は、 困難に立ち向かう「士気」「やる気」を意味する語として扱われます。 企業や軍隊など組織や集団で、「社員のモラール」「モラールの向上」のような使われ方をします。 moraleの意味 - 英和辞典 Weblio辞書 ちゃんちゃん。

2016年02月02日

■_

某鉄道の券売機、新しくなってるのに気づいて良く見てみたら メッセージに使われる外国語が 英語のみからフランス語、スペイン語、中国語など6言語になってた。

■_

2016年02月01日

■_

そういえば今年になってから池袋のジュンク堂行ってない (今年は高橋会長のアレには行けなかったのねん)。 いや、去年の12月もか?

録画録画。 はに丸ジャーナル - NHK 「はにゃ!またみんなと会えるよ!2夜連続だよ!」 2月9日(火)・10日(水)午後10時55分~11時20分 総合テレビ

■_

■_

最新回 ハッカーの遺言状──竹内郁雄の徒然苔第27回:やっちまった | サイボウズ式 のリンクから ハッカーの遺言状──竹内郁雄の徒然苔第23回:やっぱりプログラミングは楽しい | サイボウズ式 にいって、

ハッカーの遺言状──竹内郁雄の徒然苔第23回:やっぱりプログラミングは楽しい | サイボウズ式

【付録】 
1つ目のプログラムの中で一番キモとなった部分を紹介しておく。答えは次回に書くので、
腕に覚えのある方はぜひ取り組んでほしい。私はすっきりした効率のいいプログラムに
到達するのに30分かかった。えーっ、この程度の問題に、と思ったが、結果が予想外に
面白い形だったので、まぁ30分の価値はあったかと思う。 
 
4, 9, 16, 25といった平方数(ほかの数の2乗になる数)を抜いた2以上の数の列 
 
2,3,5,6,7,8,10,11,12,13,14,15,17,18,19,20,21,22,23,24,26,…… 
 
のn番目の数を求める関数を作れ。例えば、n=3なら5を返す。

を見かけてそう言えばこれやってなかったし解答編も覚えてないからやってみよう。 とやってみたんですが、やっぱり解答のようなきれいな式はできなかった (あやしげな四捨五入が入った) ○| ̄|_

でまあそれはおいといて ハッカーの遺言状──竹内郁雄の徒然苔第24回:名前、名前、名前、……、戒名 | サイボウズ式 には解答として二つ式が書いてあって、 一見まるで違う形をしているが、実は両者は同じ値になる。暇があったら、上の2つの答えが正しいことの証明に挑戦してみてください。 とあるのですが、 最初 Excel (isqrt(x) はないので int(sqrt(x)) で代用)で やったらところどころ値が食い違うので ありゃやっぱり isqrt 持ってないとダメかと xyzzy で書いてみると

(defun iota (n &optional (start 0))
  (if (zerop n)
      nil
    (cons start (iota (1- n) (1+ start)))))

(defun f1 (n)
  (+ n (isqrt (+ n (isqrt n)))))

(defun f2 (n)
  (+ 1 n (isqrt (- n (isqrt n)))))
(mapcar #'f1 (iota 50 1))
(2 3 5 6 7 8 10 11 12 13 14 15 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32
33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57)

(mapcar #'f2 (iota 50 1))
(2 4 5 6 7 9 10 11 12 13 14 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32
33 34 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57)

やっぱり食い違いが。 なんか間抜けな間違いしてる?


一つ前へ 2016年1月(下旬)
一つ後へ 2016年2月(中旬)

ホームへ


リンクはご自由にどうぞ

メールの宛先はこちらkbk AT kt DOT rim DOT or DOT jp