2012-12-01から1ヶ月間の記事一覧

defprotocol, deftype, defrecord

clojure久しぶりに書いています。 defprotocolとかよく忘れるのでメモがてら貼っておきます。 protocolってthisが第一引数なのが前提なんですよね。このせいでモナドのreturnが定義できないってのに泣いた覚えが。 (ns myns) (deftype MyString [value]) (de…

INT 13h

"INT 13h"はBIOSが提供している割り込み命令で、ディスクの読み込みや書き込みを行うためのものです。 wikipedia AHレジスタの値により読み込みや書き込みといった各種操作を分岐します。 例えば"AH=02h"ならディスクからセクタを読み込む操作を指定したこと…

GUID Partition Table を読む

C

GPT(GUID Partition Table)のパーティションエントリを読むコードを書きました。 GPTの構成はざっくりと以下のとおり。 (詳細はWikiを参照のこと。) LBA0は事故防止のため従来のMBR。 LBA1はパーティションテーブルヘッダー。ディスクのGUIDやヘッダー自身…

Vimのmapとnoremapの違い

vim

':map'はrecursive, ':noremap'はnon-recursiveなマッピングを行うコマンドということですが 今ひとつピンとこないのでググってました。 そして見つけたのが ここ。 ここの例が最も簡潔でわかりやすかったのでメモ。 :map j gg :map Q j :noremap W j 'j'は'…

EDKでmrubyをビルドする

EDKでアプリケーションを作る方法を調べたかったので mruby on EFI Shellを参考に mrubyをビルドしてみました。 書いてあるとおりに進めたら問題なく動きました。ありがとうございます。 edk2_for_mrubyは使わず 前回ビルドしたEDKが '~/src/edk2' に置いて…

Ubuntu12.10でEDK2をビルド

Getting Started with EDK IIに従ってEDK2をUbuntuでビルドしてみた。 Edk2 source tree: $HOME/src/edk2 Native GCC 4.4 compiler installation: /usr/bin/gcc Intel ASL Compiler installation: /usr/bin/iasl これらが必要ということなのでまずはインスト…