2008-01-01から1年間の記事一覧

スレッドの同期

CLRのスレッド同期メカニズムは、Win32のスレッド同期メカニズムのオブジェクトラッパーにすぎない。 volatile read メインメモリから読み取りをおこなうことを強制(CPUキャッシュ無効化) CPUキャッシュ対策 マルチコアCPU下でCPUキャッシュを使用すると、複…

非同期処理

スレッド オーバーヘッド 1MBのアドレス空間をユーザーモードのスタックに予約される 実行コンテキストを持つ セキュリティ ローカライゼーション トランザクション コンテキストスイッチ スレッド切換 カーネルモードに入る CPUレジストリをスレッドカーネ…

.NET Framework 第2版

プログラミングMS .NET FRAMEWORK 第2版 (マイクロソフト公式解説書)作者: ジェフリーリッチャー,Jeffrey Richter,吉松史彰出版社/メーカー: 日経BP社発売日: 2006/12/09メディア: 単行本購入: 7人 クリック: 159回この商品を含むブログ (50件) を見る今後は…

自動メモリ管理

newobj命令 バイト数計算(型・フィールド) バイト数にオーバーヘッド領域(型オブジェクトポインタ・同期ブロックインデックス)を加で必要となる分を加算 8バイト(64ビットアプリケーションなら16バイト) 予約領域を確認 確保できるならNextObjPtrが指すアド…

Thread.Abort呼出

Thread.Abortは非同期的に動作する。 Thread.Abort呼出 スレッドにAbortRequestedフラグを設定して制御を戻す。 スレッド強制終了を検出した際、CLRはスレッドを「安全な場所」に置く。 スリープ・待機などのブロック処理をおこなっている場合、安全な場所に…

コンストラクタ・イベント

コンストラクタ インスタンスコンストラクタ .ctor 参照型の場合、引数なしのコンストラクタは自動的に生成される インライン初期化したフィールドは、コンパイル時にインスタンスコンストラクタコードに自動変換される。 コンストラクタの数だけ重複した初…

メソッド呼び出しとIL命令

「プログラミング .NET Framework 第2版」を読んでいます。 メソッド呼び出しとIL命令 メソッド呼び出しはILコードにおいてcall命令かcallvert命令に変換される。 call命令 static・インスタンス・仮想 変数を指定する nullはないことを想定 仮想メソッドを…

CLRのガベージコレクション

「プログラミング .NET Framework 第2版」片手に、ガベージコレクションについて。 ジェネレーション CLRのガベージコレクションはジェネレーションで管理される。 ジェネレーションは以下三つの考え方に基づいている オブジェクトが新しいほど、その寿命は…

JavaScriptのオブジェクト、コンストラクタ、プロトタイプ、スコープ等

Javascriptのオブジェクト、およびそれにまつわること等を、サイ本片手に覚え書き。 JavaScriptのオブジェクト オブジェクトはプロパティの集合 Javascriptのオブジェクトは順序付けされていないプロパティの集合。プロパティには数値、文字列、関数、オブジ…

実践CommonLisp:スカラー・コレクション

スカラー スカラーなデータ型・・・数、文字、文字列。 数 読取器は正規化してオブジェクトに変換する CL-USER> 10 10 CL-USER> 20/5 4 CL-USER> #xa 10 #bは二進数 #oは八進数 #xは十六進数 #cは複素数 実数の切り捨て/丸め CL-USER> (setf lis '(10.49 10…

市民です

メールが来ました。 本日より、qnzmさんは 「はてなダイアリー市民」になられましたのでお知らせいたします。はてなダイアリー市民とは、ユーザー登録されてから30日分の日記を書き、な おかつ最近30日以内に日記をお書きになったユーザー様のことです。(市…

Mac OS XでCommon Lispの実行環境を作る(CLISP + Carbon Emacs + SLIME)

質問があり、そういえばセットアップの説明を書いてなかったことに気づきました。 LispはGNU CLISP 2.43、OSはMac OS X v10.5 Leopard、実行はCarbon Emacs+Slimeです。 もっぱらCarbon Emacsからslime起動(M-x slime)、インタプリタにコマンドを打ち込む形…

実践CommonLisp:関数、変数、マクロ

関数 (defun name (parameter*) "ドキュメンテーション文字列:省略可能" body-form*) パラメータ オプショナルパラメータ(&optional) 引数の値にデフォルトを指定できる。指定なしの場合、NILになる。 デフォルト値かどうかは、デフォルト値のあとにもう一つ…

実践CommonLisp:シンタックスとセマンティクス

二つのブラックボックス lispには二つのブラックボックスがあって、ひとつは読取器(reader)、ひとつは評価器(evaluator)。 読取器は文字列をS式というLispオブジェクトへ変換する。 評価器はS式から組み立てられるLispフォームを決める。 S式 ひとつはアトム…

ビジネスマンのための「読書力」養成講座

「本の読み方」というものには興味があって、なぜかというと、自分が読んだ本の内容をすっかり忘れてしまっているということがよくあったからだ。過去形にしたのは、最近はノートにまとめをつくったり、大事なところは抜き出して時折振り返ったりして単に忘…

実践CommonLisp

lispに興味があるといいながら、基本的な書き方もよくわかってなかったので、少し時間をかけて読んだこの本。 ようやく一通りの文法を理解して、簡単なコレクションの操作やファイル入出力の基本や、lispでの評価方法や、マクロがなぜあれほどクローズアップ…

Google Chrome

Googleが提供する新しいブラウザをざっくり動かした感触。 使用感 軽い。 新しいページ読込中でも、ブラウザ側の操作はスムーズにおこなえる印象。 表示領域が大きい。 browser processとrenderer process browser processとrenderer processから構成されて…

「初めてのRuby」の復習をexpectationsで(変数と式)

# -*- coding: utf-8 -*- require "rubygems" require "expectations" #6章 変数と式 Expectations do expect [true, true] do a = "aaa" b = a [a == b, a.equal?(b)] end expect [true, false] do a = "aaa" b = "aaa" [a == b, a.equal?(b)] end #多値 ex…

「初めてのRuby」の復習をexpectationsで(メソッド)

# -*- coding: utf-8 -*- require "rubygems" require "expectations" #7章 メソッド Expectations do #多値 expect 2 do def foo; return 1, 2, 3; end a, b, c = foo b end expect [1, 2, 3] do def foo; return 1, 2, 3; end foo end #クロージャ expect …

「初めてのRuby」の復習をexpectationsで(オブジェクトとクラス)

# -*- coding: utf-8 -*- require "rubygems" require "expectations" #8章 オブジェクトとクラス Expectations do #加算メソッドの上書き expect 3 do class Fixnum alias original_add + def +(rhs); original_add(rhs).succ; end end 1 + 1 end #上書きの…

「初めてのRuby」の復習(入出力)

入出力はexpectationsに書き下すのが面倒そうなので普通に例文を写経。ユニットテストだと、こういう外部リソースとのアクセスが絡むとどう扱うか悩みます。DBアクセス(接続確立〜データ取得)、ファイル情報取得、ログ出力、認証付のWebアクセス・・・セオリ…

「初めてのRuby」の復習をexpectationsで(配列とハッシュ・文字列)

「初めてのRuby」を読みました。 特異メソッド・特異クラス周りについては馴染みきっていない印象です・・・知らなかったときよりは理解が深まりましたが。 その他、Rubyでの書き方や細かな動きの部分で知らないことが多く、ためになりました。 この「初めて…

Rubyテスティングフレームワーク・expectations

http://expectations.rubyforge.org/files/README.html http://d.hatena.ne.jp/keyword/expectations (via http://d.hatena.ne.jp/rubikitch/20080508/ruby187)Rubyのテスティングフレームワークであるexpectationsを動かしてみたのでメモ。 このテスティン…

クォートと準クォート、マクロ

「プログラミングGauche」を読んでます。 リストへのクォート リストはクォートされていれば「リストデータ」、クォートされていなければ「プログラム」として解釈される。 gosh> (+ 1 2 (+ 1 2)) 6 gosh> '(+ 1 2 (+ 1 2)) (+ 1 2 (+ 1 2)) リストをクォー…

cut

「プログラミングGauche」を読んでます。ちょっと前まで「ANSI Common Lisp」を読んでいたような…? なんとなくlisp周りの本あっちゃこっちゃと読み散らかしていて我がことながら少し呆れます。それで、cutを知りました。 gosh> ((cut <> 4 4) +) 8 こんな感…

Emacs再入門

入門 GNU Emacs 第3版作者: Debra Cameron,James Elliott,Marc Loy,Eric Raymond,Bill Rosenblatt,宮下尚,半田剣一,新井貴之,鈴木和也出版社/メーカー: オライリー・ジャパン発売日: 2007/03/12メディア: 大型本購入: 14人 クリック: 331回この商品を含むブ…

JavaScript 第5版

GWは、「JavaScript 第5版」を買って読んだのでした。 最初、JavaScriptのリファレンスを買うつもりだったのだけれど、横に並んでいたこちらを買ったのは、もう少し突っ込んでJavaScriptの挙動が書いてある本が読みたいなと思ったから。 というのも、今まで…

しかくとまる

特にひねりもなく写経。firefoxで表示を確認。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>qnzm.test</title> </haed> <body> <div id="divc"> </div></body>

プロダクトへの愛

そのスティーブとたまたま「マイクロソフトとアップルのどこが違うか」という話題になった時に、彼が言った言葉が今でも心に残っている。 「マイクロソフトのプロダクツにはソウル(魂)が無い」 この言葉には本当にまいってしまった。 Life is beautiful: …

暗号と認証のキーワードを説明してみる

正確な定義はwikipediaを見てもらうとして… 共通鍵暗号 送信者と受信者が同じ鍵を使う。 DES、TripleDES、AES等がある。 送信者と受信者の間では暗号化された情報がやりとりされるため、データを奪われても情報は漏れない。 互いに同じ鍵を使う必要があるが…