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

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

一つ前へ 2015年4月(中旬)
一つ後へ 2015年5月(上旬)

ホームへ

2015年04月29日

■_

自転車

sw展

今日は映画公開直前の宣伝のためなのか都内を色々巡っていたようで。 写真を見ると両腕が外されているようですが、 たしか以前に聞いた話では両腕がついた状態だと幅がありすぎて道交法上 公道を走れないとかなんとか。 あれ、でもデッキアップのイベントのときに現地でつけてたわけじゃないよな??

■_

■_

shell > 前に打ったコマンドを再度実行 > !cat / !ls - Qiita !catとすると最後に実行したcatコマンドを、!lsとすると最後に実行したlsコマンドを再実行できるようだ。 時折こういった感じの記事を見かけますが、 マニュアル見たりしないんですかね。 Bash Reference Manual

それとは別にこういう「再発見」な記事を見かけると なんかこう世代間の断絶というか文化的境界といったものを感じたり(大げさ)。 csh の modifier とか一生懸命覚えましたがねえ… (忘れたけどw) Command History (Linux in a Nutshell, 3rd Edition) History substitution

Command History (Linux in a Nutshell, 3rd Edition)

8.6.6. History Modifier Examples

From the preceding, command number 17 is:

    %17 cat ch01 ch02 ch03

Event 	Command 	Command
Number 	Typed 	Executed
19 	!17:s/ch/CH/ 	cat CH01 ch02 ch03
20 	!17g& 	cat CH01 CH02 CH03
21 	!more:p 	more cprogs/01.c (displayed only)
22 	cd !$:h 	cd cprogs
23 	vi !mo:$:t 	vi 01.c
24 	grep stdio !$ 	grep stdio 01.c
25 	^stdio^include stdio^:q 	grep <">include stdio<"> 01.c
26 	nroff !21:t:p 	nroff 01.c (is that what I wanted?)
27 	!! 	nroff 01.c (execute it)

↑こういうのね。

んでbashも結構使えると。 調べないけど zsh とか ksh はどうなんだろ。

Bash Reference Manual

9.3.1 Event Designators

An event designator is a reference to a command line entry in the history list. Unless the reference is absolute, events are relative to the current position in the history list.

  • ! Start a history substitution, except when followed by a space, tab, the end of the line, ‘=’ or ‘(’ (when the extglob shell option is enabled using the shopt builtin).
  • !n Refer to command line n.
  • !-n Refer to the command n lines back.
  • !! Refer to the previous command. This is a synonym for ‘!-1’.
  • !string Refer to the most recent command preceding the current position in the history list starting with string.
  • !?string[?] Refer to the most recent command preceding the current position in the history list containing string. The trailing ‘?’ may be omitted if the string is followed immediately by a newline.
  • ^string1^string2^ Quick Substitution. Repeat the last command, replacing string1 with string2. Equivalent to !!:s/string1/string2/.
  • !# The entire command line typed so far.

長くなるので 9.3.2 Word Designators と 9.3.3 Modifiers は略。

■_

ヒストリーとは違うけど、大学のときにお世話になった先生が command.com のテンプレートを 自在に操ってたんだよなあ。マネできなかったw Tsuneta's Homepage:MS-DOS Command

Tsuneta's Homepage:MS-DOS Command

なお、標準状態でファンクション・キーは下記の機能に設定されていますが、MS-DOSのコマンドで設定変更できます。

F1 <C1> : 特定のバッファから1文字コピーする。
F2 <CU>+#文字 : 特定のバッファから#文字以前の文字列をコピーする。
F3 <CA> : 特定のバッファから全ての文字列をコピーする。
F4 <S1> : 特定のバッファのポインタを1文字進める。
F5 <SU>+#文字 : 特定のバッファから#文字以前までポインタを進める。
F6 <VOID> : 現在の入力を無効にして新規にコマンドを受け付ける。(以前の特定のバッファが有効)
F7 <NWL> : 現在の入力文字列を新たに特定のバッファに取り込み新規にコマンドを受け付ける。
F8 <INS> : 特定のバッファのポインタを止めて入力する。
F9 <REP> : <INS>と同じ?
F10 <^Z> : CTRL+Z(1AH)を入力する。

2015年04月28日

■_

とあるblogを読んでいましたらば。 「Machiavellian」という単語が目についた。 いわゆる「マキャベリスト」のことなのだろうことは文脈から察せられたのだけど、 ふむ英語ではそうも呼ぶのかね。と思いつつウィキペを見ると… また、このマキャヴェリズムから派生して生まれた、権謀術数主義者(目的達成のためには手段を選ばない人) を指す語を「マキャヴェリスト」という。しかし英語ではこれに当たる語は Machiavellian [1]であり、 マキャヴェリストは和製英語とみられる。 (マキャヴェリズム - Wikipedia)

なんだってーッ

ということで英英辞典での説明はこちら Machiavellian - definition of Machiavellian in English from the Oxford dictionary

■_

■_

バグを見つけるのにいろいろと。 LLVM Project Blog: Simple guided fuzzing for libraries using LLVM's new libFuzzer

LLVM Project Blog: Simple guided fuzzing for libraries using LLVM's new libFuzzer

Fuzzing (or fuzz testing) is becoming increasingly popular. Fuzzing Clang and fuzzing with Clang is not new: Clang-based AddressSanitizer has been used for fuzz-testing the Chrome browser for several years and Clang itself has been extensively fuzzed using csmith and, more recently, using AFL. Now we’ve closed the loop and started to fuzz parts of LLVM (including Clang) using LLVM itself.

で、こういう話も。 How Heartbleed could've been found - Hanno's blog

■_

あとでよむ I, J, and K Should Die Loop counter - Wikipedia, the free encyclopedia This style is generally agreed to have originated from the early programming of FORTRAN[citation needed], where these variable names beginning with these letters were implicitly declared as having an integer type, and so were obvious choices for loop counters that were only temporarily required. The practice dates back further to mathematical notation where indices for sums and multiplications are often i, j, etc.

2015年04月27日

■_

【翻訳】Redditに潜む害悪をデータ分析 – ネットの深い闇へ続く道 | POSTD ここ、いつの間にか 翻訳のフィードバックをする というリンクが。以前は感想云々てなやつだったような。 あと、 本日の気になるテック系ニュース というのも。 リンクを辿っても良くわかんないけど (翻訳候補?) hourly POSTD | 日刊より更新するテック系メディア

■_

■_

What would be your ideal programming language? : programming で、 The ideal programming language is already invented - Lisp. The problem is that the world is not ideal so Lisp is not very suitable. We have to use less ideal and more practical languages. とか It already exists. とかいうコメントにうけた(リンク先に注目)。

■_

Teach Foundational Language Principles | May 2015 | Communications of the ACM という記事。 本文はまあどうでも良くて(マテ)

Teach Foundational Language Principles | May 2015 | Communications of the ACM

Conclusion

Future applications and systems will increasingly rely on principled and formal language-based approaches to software development to increase programmers' productivity as well as the performance and reliability of the systems themselves. Software developers will need a solid understanding of language principles to be effective in this new world and increased emphasis on these principles in computer science education is required. For readers interested in the topic of programming languages in education, we strongly urge consulting the work of the SIGPLAN Education Board (http://wp.acm.org/sigplaneducationboard/), which rewrote from scratch the "Knowledge Area" of "Programming Languages," contained in the first public draft of the 2013 Computer Science Curricula Report (http://cs2013.org).


Copyright © 2015 by the ACM. All rights reserved.

■_

“What will C++17 be?” -- Bjarne Stroustrup on C++17 goals : programming How does D improve on C++17? : programming

■_

挙げられている項目が結構広範囲で面白かった How to Become a Better Programmer

How to Become a Better Programmer

Here are some of mine so you get an example of what they look like:

    You feel better when you exercise
    Exercise will make you more confident
    What do you mean? How do you know? What difference does it make? What if you are wrong? What would you accept as evidence?
    What are you thankful for?
    What I think I heard you say is …
    Carbs will eventually give you a headache and will eventually kill you.
    Just because someone says something is true, doesn’t mean that it is.
    How people interpret what you say and do is influenced by their own experience
    Say “thank you” whenever it is even remotely appropriate
    Find out what people want and give it to them (if at all possible)
    Everyone wants to be God, treat them accordingly
    Don’t let the perfect or the ideal be the enemy of getting started or good enough.
    Improve by just 1%
    Who do you want to be?
    What is holding you back?
    Failure is good. It is how we grow.
    If you aren’t failing, you aren’t growing.
    Worry about success

2015年04月26日

■_

録画予約done。 パトレイバー実写版、短編シリーズを再編成した“特別編”がテレビ初放送 長編劇場版の公開前に - ねとらぼ

■_

2015年04月25日

■_

■_

■_

How to maintain programmer's health :: Jakub Chodounský :: The diary of a software developer から結論のところだけ。

How to maintain programmer's health :: Jakub Chodounský :: The diary of a software developer
Conclusion

Getting healthy is not as difficult as you might have thought. Just stick with the following:

    change positions,
    take breaks,
    don’t do stupid things like crossfit,
    walk more,
    breathe properly,
    train movement and strength and
    get more sleep.

Do it for a few month and you’ll see the difference.

© 2014 Jakub Chodounský

これだけだと目新しいことはないし面白くも何ともないかw

■_

Peter Norvig 先生がアレをプログラムで解いてた When is Cheryl's Birthday?

■_

Elixir - The next big language for the web で、

Elixir - The next big language for the web

Déjà vu

Like with Ruby 12 years ago, once again I feel that this new platform is so much better than the other solutions. And it is not just a gut feeling, there are rational arguments to back it up. Another similarity is that Dave Thomas is also excited about Elixir and has written a book about the language.

It it is as if everything is aligned for Elixir to be the next new big thing for web development. In the last 10 years Ruby and Python have been popular choices for the web. I think it is likely that in a few years Elixir instead will be the go-to language for new web projects.

おお、今度は意味がとれるぞw >will be the go-to language for new web projects

2015年04月24日

■_

■_

■_

忘れた頃に。 ところでこれ php-src/zend_hash.c at master · php/php-src 行番号じゃなくて関数名で指定できないかな…

php-src/zend_hash.c at master · php/php-src

static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, zend_string *key)
{
	zend_ulong h;
	uint32_t nIndex;
	uint32_t idx;
	Bucket *p, *arData;

	h = zend_string_hash_val(key);
	arData = ht->arData;
	nIndex = h | ht->nTableMask;
	idx = HT_HASH_EX(arData, nIndex);
	while (EXPECTED(idx != HT_INVALID_IDX)) {
		p = HT_HASH_TO_BUCKET_EX(arData, idx);
		if (EXPECTED(p->key == key)) { /* check for the the same interned string */
			return p;
		} else if (EXPECTED(p->h == h) &&
		     EXPECTED(p->key) &&
		     EXPECTED(p->key->len == key->len) &&
		     EXPECTED(memcmp(p->key->val, key->val, key->len) == 0)) {
			return p;
		}
		idx = Z_NEXT(p->val);
	}
	return NULL;
}

例の構造体の構成と、この Z_NEXT() やらを考えると php-src/zend_hash.h at master · php/php-src

php-src/zend_hash.h at master · php/php-src

static zend_always_inline void _zend_hash_append(HashTable *ht, zend_string *key, zval *zv)
{
	uint32_t idx = ht->nNumUsed++;
	uint32_t nIndex;
	Bucket *p = ht->arData + idx;

	ZVAL_COPY_VALUE(&p->val, zv);
	if (!IS_INTERNED(key)) {
		ht->u.flags &= ~HASH_FLAG_STATIC_KEYS;
		zend_string_addref(key);
		zend_string_hash_val(key);		
	}
	p->key = key;
	p->h = key->h;
	nIndex = (uint32_t)p->h | ht->nTableMask;
	Z_NEXT(p->val) = HT_HASH(ht, nIndex);
	HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx);
	ht->nNumUsed = idx + 1;
	ht->nNumOfElements++;
}

php-src/zend_types.h at master · php/php-src

php-src/zend_types.h at master · php/php-src

#define Z_NEXT(zval)				(zval).u2.next
#define Z_NEXT_P(zval_p)			Z_NEXT(*(zval_p))

ハッシュ表の形式変えてますね Open addressing - Wikipedia, the free encyclopedia

たぶん見てもスルーしてたと思うけど PHP 7's new hashtable implementation | Hacker News 取り上げられてた。 んで PHP's new hashtable implementation に詳しい解説が。 構造体のレイアウトが(記事の書かれた日付からして当然とはいえ) 今のものとは異なる部分があるけど、解説は参考にできそう。

続く?

2015年04月23日

■_

コンビニで、トイレを借りたおっちゃんが荷物をレジ台において行ってしまい さらにそのレジで接客されて唖然としたなど (客が少なくて開けてるレジ一つ→使ってない方のレジの台に荷物放置→ レジ待ち列発生→荷物置かれたレジ開ける→)。 挙げ句にそのおっちゃん、わたしが会計してる脇から手を伸ばして無言で荷物持ってった。

駅の改札を出たら、それほど離れてもいない東口と西口で 別々の区議会議員候補がそれぞれ演説してるのが一辺に耳に入ってきて 以下略。

■_

2015年04月22日

■_

tvk、テレ玉、チバで攻殻機動隊 Stand Alone Complex を放送してるんだけど、 オープニングが Get 9、エンディングが I do でないのがちょっと寂しい。 というか、日テレの放送以外でこの二つだったのあっただろうか。

相対位置の変化の話とか面白かった "砲術の話題あれこれ第3話 丁字戦法について"

■_

■_

某駅でバスを待っている間、ずっと選挙演説聞かされてぐんにょり。 自分には関係ない選挙区だったしそもそも内容が(ry。

2015年04月21日

■_

通勤で使っている駅にポスターが貼ってあるんですよ。 上田城(とその周辺?)で行われる桜の開花に併せたイベントの。 んでまあそのイベントそのものはどうでも良くて、 ポスターに書かれた宣伝文句に「真田三代の城」とかなんとかあるんですが 上田城は、甲斐武田氏の旧臣である真田昌幸により、1583年(天正11年)に築城された平城である。 (上田城 - Wikipedia) 「三代」にはならんような……

■_

■_

linux-insides/linux-mm-2.md at master ・ 0xAX/linux-insides ・ GitHub 気がつけばこのシリーズも結構なボリュームに。

0xAX/linux-insides ・ GitHub
      Booting         Fix nasm output format           
      Concepts        Update README.md                 
      DataStructures  grammar                          
      Initialization  Update linux-initialization-5.md 
      Theory          Fix quote in paging documentation
      mm              Update README.md                 

追いかけて読んでみるのも面白いかと。

■_

InfoQ。 例の、Bounded contextの件ですが 以前にも登場していた模様。

コンテキスト境界を使って大きなドメインモデルを小さくする - InfoQ では 開発者はドメイン駆動設計(DDD)のコンテキスト境界という概念を使って、巨大なモデルを複数の小さなモデルに分割できる ... とあり、 RESTを使ったエンタープライズ統合から学んだこと - InfoQ では それに対して、彼の解決策は、ドメイン駆動設計(DDD)の概念である境界づけられたコンテキスト内に各チームの定義を ... こちらだと正しく? 「境界づけられたコンテキスト」という訳になっていますね。

■_

Selected Intelligence ― Parallel Map in Elixir

  defmodule Parallel do
    def pmap(collection, fun) do
      me = self
      collection
      |> Enum.map(fn (elem) ->
           spawn_link fn -> (send me, { self, fun.(elem) }) end
         end)
      |> Enum.map(fn (pid) ->
           receive do { ^pid, result } -> result end
         end)
    end
  end

■_

Java - もう参照渡しとは言わせない - Qiita のコメントに、 参照呼び出しを参照渡しで定着させた訳者がそもそも元凶だろう というのがあるんですが、 英語表記でも pass by reference/value と call by reference/value というのがあるし、元になった文書(書籍)によったんじゃないかなあという気はします。 深く追いかけるつもりはないけど。 Call By Reference Pass By Reference Parameter Passing

■_

InfoQ もういっこ。

作業環境における神経多様性 を読んで、そもそも「神経多様性」ってなによ? って疑問がありまして。 ぐぐってもこれ。ってのは引っかからないし。

んでまあ英語ではどう書かれていたかというと Neurodiversity (ハイフンありなしで意味はかわらないっぽい)で、 それは Neurodiversity - Wikipedia, the free encyclopedia とウィキペディアにありました。 これを読んでもなんとなくという感じにしか理解できてないんですがそれはそれとして、

翻訳記事のアタマ。 Sallyann Freudenberg博士はQCon Londonで,作業環境における神経多様性について講演した。 プログラミングは複雑で創造的な作業だ。Freudenberg博士は, プログラミングを行うプログラマが一般的に使用している,数多くの技術について検討した。例えば, とありますが原文 (Neuro-diversity in the Work Place) は Dr. Sallyann Freudenberg talked about neuro-diversity in the work place at QCon London. Programming is a complex creative task, and Freudenberg explored a number of the techniques that programmers in general use to help them achieve it. Examples include: で、「explored」 が「検討した」は違うような気がするし、 「techniques that programmers in general use to help them achieve it」の 「to help them achieve it」が訳文から抜け落ちてるのはよろしくないような。

数々の techniques についての訳はすっとばして(めんどくさい) 最後、 “このように多様な感覚に対して,どの程度敏感かはさまざまです。多様性を許容する場所を作るべきだ, というのが私の見解です。”と氏は言う。 を原文 "We all are diverse in how sensitive we are to these different senses, and in my view we would do well to create workspaces that allow that diversity," said Freudenberg. と比較すると、 記事全体の主題から考えて workspaces を単なる「場所」としてしまうのは疑問に思います。 この文の直後にも 例えば,私の息子が校長室に呼ばれました。いたずらだからではなく,ある評価のためにです。 彼は何もしませんでした。時計の秒針が赤色で,始終"彼に対して叫んで"いたからです。 から始まるパラグラフがありますが、 So to give you an example, my son was taken to the headmaster's office; not because he'd been naughty but for an assessment. He couldn't work because the clock had a red second hand that was "screaming at him" the whole time. の、 「He couldn't work」が「彼は何もしませんでした」は違うだろうと (そもそも訳文のブツ切り感が気になりますがw)。 校長室に呼ばれた~ なので、最初は筆者の息子さんは学生(生徒)なのかと思ったのですが work だからそうではなさそうだし、そもそもこの記事全体が 仕事をする環境について述べたものですよね。


一つ前へ 2015年4月(中旬)
一つ後へ 2015年5月(上旬)

ホームへ


リンクはご自由にどうぞ

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