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

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

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

ホームへ

2015年03月31日

■_

某社は結構前から年度は1月始まりに変わってるので今日は特に何もなく。 つーても新卒の入社は4/1なんだけど。

■_

2015年03月30日

■_

gawk extension の仕組み、4.1でなんか変わってたぽい。 またちょっと読んでみるか。

「オーバースペック」を 正反対の意味に使われてどっと疲れる(某社での話)。

ジーンズの尻ポケットに長財布入れてる(当然盛大にはみ出してる)御仁を 割に見かけるのだけど盗られたりしないんだろかあれ。 あ、チェーンつけてるのもいたか。

■_

■_

ぺちぺ7。 気になってコード見てみたら、codezinの記事のものからさらに変更されてる模様。 一昨日ちょっと書いたようにハッシュの辺りが気になってたのでその辺を眺めたのだけど… php-src/zend_types.h at master · php/php-src



typedef struct _Bucket {
	zval              val;
	zend_ulong        h;                /* hash value (or numeric index)   */
	zend_string      *key;              /* string key or NULL for numerics */
} Bucket;

typedef struct _zend_array HashTable;

struct _zend_array {
	zend_refcounted   gc;
	union {
		struct {
			ZEND_ENDIAN_LOHI_4(
				zend_uchar    flags,
				zend_uchar    nApplyCount,
				zend_uchar    nIteratorsCount,
				zend_uchar    reserve)
		} v;
		uint32_t flags;
	} u;
	uint32_t          nTableMask;
	Bucket           *arData;
	uint32_t          nNumUsed;
	uint32_t          nNumOfElements;
	uint32_t          nTableSize;
	uint32_t          nInternalPointer;
	zend_long         nNextFreeElement;
	dtor_func_t       pDestructor;
};

/*
 * HashTable Data Layout
 * =====================
 *
 *                 +=============================+
 *                 | HT_HASH(ht, ht->nTableMask) |
 *                 | ...                         |
 *                 | HT_HASH(ht, -1)             |
 *                 +-----------------------------+
 * ht->arData ---> | Bucket[0]                   |
 *                 | ...                         |
 *                 | Bucket[ht->nTableSize-1]    |
 *                 +=============================+
 */

なにこれ。>レイアウト

他にも ハッシュと配列が全く一緒のもの typedef struct _zend_array HashTable; になってるし、構造体のメンバーから arHash がなくなってる (これは↑のレイアウトの恩恵? なのだろうけど)。

で、nIndex = h | ht->nTableMask; とゆー意味深なことをやっている

https://github.com/php/php-src/blob/master/Zend/zend_hash.c#L399

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  (idx != HT_INVALID_IDX) {
		p = HT_HASH_TO_BUCKET_EX(arData, idx);
		if (p->key == key || /* check for the the same interned string */
		    (p->h == h &&
		     p->key &&
		     p->key->len == key->len &&
		     memcmp(p->key->val, key->val, key->len) == 0)) {
			return p;
		}
		idx = Z_NEXT(p->val);
	}
	return NULL;
}

続く。

かもしれない。

■_

ん、これは? 1401-FORTRAN-Illustrated.html

2015年03月29日

■_

大人はどこで勉強するの?自宅以外で多いのは1位図書館、2位は最近よく見るあの場所! – しらべぇ | 気になるアレを大調査ニュース! 図書館は席取りが厳しいし、スタバは年中混んでるし(少なくとも良く通りがかるところにあるのは) その他の喫茶店は大抵「うるさい」。 コワーキングスペースは、幾つか見たのは金額的にちょっと…だったなあ。 げしょ。

Windows 10 でのデバイスドライバーのアーキテクチャってどうなってんでしょか (Vista位までしかよく知らない)。

図書館といえば、よく新聞を山ほど積んで(さすがに最新のものばかりではなかった) 検索スペースなどを占拠し続けてる御仁を見かけるんだけど ああいうの放置しといていいのかね職員は。 って面倒に巻き込まれたくはないんだろうけどさあ。

go-to platform について情報をいただきました。 ありがとうございます。 go-toの意味・用例|英辞郎 on the WEB:アルク によれば、 go-to general → 大黒柱の将軍、頼れる将軍 go-to guy →頼りになるやつ go-to person → 頼りになる人 というものがあるので、そういうことだろうと。なるほどハイフンのあるなしでずいぶんと違うんですね。

ロバート・クリンジリーが20年以上ぶりに本を出していて、その邦訳も出ていた - YAMDAS現更新履歴 IBM 云々で、もしやと思い調べると Amazon.co.jp: 倒れゆく巨象――IBMはなぜ凋落したのか: ロバート・クリンジリー, 夏井 幸子: 本 原題は“The Decline and Fall of IBM”という直接的、挑発的なものである。邦題は、ルー・ガースナーによる“Who Says Elephants Can’t Dance”(巨像も踊る)から来ているが、ガースナー以降3人のCEOの功罪の「罪」が大きく、IBMは破綻の危機に瀕している、というのが筆者の主張である。 うわーやっぱりアレの翻訳本かー。 はい。またしても原著買ったが以下略のパターンでしたw ま、技術書じゃないんで読み進めるのはちょっと辛かったんですが。

■_

■_

2015年03月28日

■_

日本海海戦時の両軍の艦隊運動を知りたかったのだけど 見やすく? するためにか、スケールが微妙なものばっかりで 特に距離が良くわからん(文章追いかければところどころ数字が出てくるけど)。 英語で調べれば何とかなるかもと思い「Battle of Tsushima」で辿ってみたが あまり変わらなかった。

COMIC ZIN 通信販売/商品詳細 日露戦役写真帳第9巻 旅順の攻防 これちょっと中身を見てみたい(で、良かったら買ってみたい)けどシュリンクされてるんだよなあ。

いろいろなことをやらされるExcel ですが、 ある機械とそのオプションパーツを管理するのに、 本体にセル一個、オプションパーツに一個(複数あるときはセパレータ挟んで連結) ってのは筋悪だよねえ… といって結合セルとか使われると以下略(ry

■_

■_

PHP 7のパフォーマンスが高い理由 (4/4):CodeZine なかださんが構造体のサイズ云々のところに間違いがあるとかツイートしてたけど それはさておき

PHP 7のパフォーマンスが高い理由 (4/4):CodeZine

  if (UNEXPECTED(error_code != ZPP_ERROR_OK)) { \
    if (!(_flags & ZEND_PARSE_PARAMS_QUIET)) { \
      if (error_code == ZPP_ERROR_WRONG_CALLBACK) { \
        zend_wrong_callback_error(E_WARNING, _i, _error); \
      } else if (error_code == ZPP_ERROR_WRONG_CLASS) { \
        zend_wrong_paramer_class_error(_i, _error, _arg); \
      } else if (error_code == ZPP_ERROR_WRONG_ARG) { \
        zend_wrong_paramer_type_error(_i, _expected_type, _arg); \
      } \
    } \
    failure; \
  } \
} while (0)

do while文になっていますが、条件式が0となっているのでループしません。 では、なぜdo while文になっているかというと、 途中でbreakして抜け出せるようにするためです。

え? >途中でbreak~

あ、ひょっとして

PHP 7のパフォーマンスが高い理由 (4/4):CodeZine

  if (UNEXPECTED(!zend_parse_arg_array(_arg, &dest, check_null, 0))) { \
    _expected_type = Z_EXPECTED_ARRAY; \
    error_code = ZPP_ERROR_WRONG_ARG; \
    break; \
  }

  _optional = 1;

  ……

  } while (0); \

こっちのことか。確かにこれは break 使えると便利だけど その外側にある(だよね)末尾に ';' がついていない方の while(0) はどうなるのだろう。 あと、構造体のレイアウトの解説でのハッシュの説明がなんか引っかかる(PHP7のほう)…

PHP7はなぜ速いのか(zval編) - hnwの日記 PHP7の現状 | yohgaki's blog

■_

またぞろ楽しい訳になってるようで 【翻訳】Return-Oriented Programmingで64ビットLinuxを攻撃する手法 | POSTD とりあえず一個だけ。

【翻訳】Return-Oriented Programmingで64ビットLinuxを攻撃する手法 | POSTD

実行保護(NX):スタック上のコードを実行しようとすることは、セグメンテーション違反を引き起こします。 この機能は多くの名前で呼ばれており、例えばWindowsにおけるデータ実行防止(DEP)、 あるいはBSDでXOR演算を書く(W^X)などがあります。ここではNXと呼ぶことにします。 なぜなら64ビットLinuxはこの機能をCPUのNXビット(“Never eXecute”)によって実装しているからです。

64-bit Linux Return-Oriented Programming

Executable space protection (NX): attempting to execute code in the stack causes a segmentation fault. This feature goes by many names, e.g. Data Execution Prevention (DEP) on Windows, or Write XOR Execute (W^X) on BSD. We call it NX here, because 64-bit Linux implements this feature with the CPU’s NX bit ("Never eXecute").

なんじゃそりゃw> あるいはBSDでXOR演算を書く(W^X) W^X - Wikipedia, the free encyclopedia

2015年03月27日

■_

なんじゃこりゃー アニメ「ドリフターズ」公式サイト

QCon Tokyo 2015 Conference|QCon 東京 2015 カンファレンス みずしまさんの名前が

Excel で

■_

2015年03月26日

■_

今週末はどこかに桜を見に行きますかね。 が、日曜日は残念な天気っぽい?

■_

■_

異動の季節。 わたしはしませんが。

■_

My 2015 Programming Languages Tool Belt - Odes of the Occult A friend of mine approached me recently with a question: "What are your current thoughts on go-to platforms for building web apps? Even though he asked about "go-to platform for web apps" I replied with a list of languages I would consider using for building software in general these days - my programming languages tool belt. この、「go-to platforms」ってどういう意味なんだろ。

それはそれとして、 Ruby/Rails、Go、Clojure、Haskell、Scala、Rust、Elixir。と。

2015年03月25日

■_

お、pbook と ebook 同時発売? O'Reilly Japan - コンピュータシステムの理論と実装

今週の日曜(日曜始まり)まで新ウルトラQ がMXで放映されてたのだけど (実は一つ前の番組が旧作のウルトラQで、一時間連続で円谷タイム)、 最終回を迎えて(新は12話までなのね)次はどうなるのだろうと思ってたら 番組表を見たところ怪奇大作戦ぽい。 もちろん、岸田森さんの方ね。

なんじゃらほい。 Ruby Performance Optimization AND Your Code as a Crime Scene The Pragmatic Bookshelf | Ruby Performance Optimization

■_

■_

今日も重箱の隅。 【翻訳】若手開発者の後悔 | POSTD 最後の最後のこれ フリーランス開発者への教訓:作業単価を値上げした方がいいのでは? 原文ではこう。 Moral for the freelancer: You might as well raise your rates :-P いやまあきちんと対処しようとすると面倒だとは思うんだけどね>「:-P」

2015年03月24日

■_

以前、「ビッグセブン」に類する言葉が英語版Wikipediaに見あたらないという話を 書いたことがありますが、 「大艦巨砲主義」もないっぽい? 大艦巨砲主義 - Wikipedia Battleship - Wikipedia, the free encyclopedia The Rise and Fall of the Battleship (And Why They Won't Be Coming Back) | Popular Science

■_

■_

2015年03月23日

■_

桜の開花宣言が出たらしく。

数年前にみた覚えのあるサイトを探してたんだけど、どうも まるごとなくなってしまった geocities にあったものっぽい?

なんか(ちょっと毛色の変わった?)入門書が流行ってる? Amazon.co.jp: アイディアを実現させる最高のツール プログラミングをはじめよう: 池澤 あやか: 本 Amazon.co.jp: pixivエンジニアが教えるプログラミング入門 (星海社新書): 金子 達哉: 本 Amazon.co.jp: 世界が変わるプログラム入門 (ちくまプリマー新書): 山本 貴光: 本

■_

■_

Ask Peter Norvig - Leada Blog ってので

Q3: What books have influenced your thinking the most and/or what books do you think you’ve learned the most from? という質問に対する答えがこう。 Structure and Interpretation of Computer Programs really solidified and gave names to the concepts I had been learning about programming. Kevin Murphy’s new “Machine Learning” book is, for me, the best of the current ML books. I also learned a lot from the lecture notes by Andrew Ng and Andrew Moore. Judea Pearl’s book Probabilistic Reasoning in Intelligent Systems, and before the book his papers and hearing him talk in person, demonstrated to me why I was having so much trouble trying to build systems based on Boolean logic, and showed that probability is the right foundation for dealing with any situation that involves uncertainty. Also: The Inmates are Running the Asylum, Programming Pearls, and The Practice of Programming.

2015年03月22日

■_

渋谷東急プラザ最終日。コインスペースまたできないかなあ。 と思ったら移転のお知らせ出てたのか コインスペース 移転のご案内 | コインスペース 東急プラザ 渋谷店 カフェ代わりの時間制多目的スペース QFRONTの7階って何があったっけ?

文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。 なにそれ。 Amazon.co.jp: 動かして学ぶ3Dゲーム開発の数学・物理 eBook: 加藤潔: Kindleストア

IT業界人の横文字会話がヤバい「エビデンスとってフィックスしたらコールバック」「フィードバックちょうだい」 : IT速報 英語もどきの単語使われるよりよっぽどいいんじゃなかろうか。>横文字

アイディアを実現させる最高のツール プログラミングをはじめよう
アイディアを実現させる最高のツール プログラミングをはじめよう 買った。 読んだ。 以下略。

3/21は休みだった - L'eclat des jours(2015-03-22) そういえば振替休日なるものは昔はなかったのだ ということを聞いた覚えがある。 振替休日 - Wikipedia 1973年の国民の祝日に関する法律が改正されたことにより制定された。これにより祝日(国民の祝日)が日曜日の場合、その翌日となる月曜日が休日となった。1973年の天皇誕生日(4月29日)が日曜日で、同年4月30日が最初の適用日となった。 ふむ。

なんか年に一度「春分の日」に一便だけ運行されるバスがあるらしいのだけど、 年によって違う(可能性がある)ってことなんだろうか。 春分の日 - Wikipedia

■_

■_

うひゃひゃw Java is Pass-by-Value, Dammit! - Scott Stanchfield Translations Available! Woohoo! というのは訳していいぞということなんだろか。

Java is Pass-by-Value, Dammit! - Scott Stanchfield

I finally decided to write up a little something about Java's parameter passing. I'm really tired of hearing folks (incorrectly) state "primitives are passed by value, objects are passed by reference".

I'm a compiler guy at heart. The terms "pass-by-value" semantics and "pass-by-reference" semantics have very precise definitions, and they're often horribly abused when folks talk about Java. I want to correct that... The following is how I'd describe these

(略)

Java is strictly pass-by-value, exactly as in C. Read the Java Language Specification (JLS). It's spelled out, and it's correct. In http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.1:

8.4.1 か。覚えとこ。

■_

読もうと思ってたらもう三つめか linux-insides/Initialization at master · 0xAX/linux-insides You will see here a couple of posts which describes full cycle of the kernel initialization from the first steps after kernel decompressed to starting of the first process runned by kernel.

2015年03月21日

■_

テクニウム読了。面白かった。 書評やら感想やらはすでにたくさんあると思うので省略w。 (「人工知能」ならぬ)「人工知性」は興味深いものがあったのと、 アーミッシュの話(遺伝子組み換え作物を受け入れてる人がいるとか、 アーミッシュの中でも技術に対するスタンスが違うグループが存在しているとか)は印象に残った。 おや、こんな本がでるのか。 Amazon.co.jp: 『テクニウム』を超えて――ケヴィン・ケリーの語るカウンターカルチャーから人工知能の未来まで (NEXT VISION(NextPublishing)): 服部 桂: 本

nexus7。ついにまともに起動しなくなった(Googleのロゴは表示されるんだけど、 そのあとの4つのオブジェクトがぐるぐるの画面に行かない)。

坂の上の雲。BSで再放送してるんだけどついに日本海海戦に。

映画「イミテーション・ゲーム」に登場した小道具たち - ZDNet Japan から Why you should watch The Imitation Game and why you might want to skip it - TechRepublic The Imitation Game tells the story of Alan Turing, the brilliant mathematician and father of computing. うん。どこの宣伝で見かけたのか忘れたけど、 「コンピューターの~」じゃなく「father of computing」の方が違和感ないね。

■_

■_

ARM もトッパンだった(様な記憶がある)し、 トッパンじゃないかなあ… と思ったがamazonさんではひっかかりませんことね。


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

ホームへ


リンクはご自由にどうぞ

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