メモ

Objective-C++

Objective-CではCの機能は使えるが,C++の機能は使えない。C++が使えるのはObjective-C++という。Objective-C++についてはこちら。 日本語ドキュメント - Apple Developer OOを理解できていない者にとって,オブジェクト指向言語の中で別のオブジェクト指向…

ReadP

「GHCのメジャーバージョンが知らぬ間に7に!」というくらいHaskell離れしてましたが,とあるスクリプトを作るために久しぶりに使ってみた。 とりあえず必要なのはParserCombinator。以前に作った自前のモノでもよいのだが,今回はReadPを使うことにした(Te…

キー間格差の問題点

Nキーロールオーバーについて書いたが,ゲーマーではないので実はどうでも良かったりする。気になったのはモディファイアキーとその他のキーがUSBキーボードでは区別されて送信されるという点である。 一般のUSBキーボードでホストとのやりとりで用いられるB…

ドライバ

NキーロールオーバーのUSBキーボードがあったとして,それ用のドライバはどうするのかという問題はあるが,普通に考えたら必要はなくOS標準のドライバでいけるのではないか。OSのドライバならBIOSとは違いBoot Protocolを前提にしているわけではなくReport D…

USBでNキー同時押しの可能性

USBキーボードでもNキーロールオーバーは可能のはずで,そうしたキーボードがないのはそれによるメリットがないからか。 体の構成上,意味のある入力として可能なのはおそらく10キー同時押し程度。普段の使い方を見るに5キー以上同時に押すことはなさそう。4…

Set_Protocol Request

"Device Class Definition for Human Interface Devices (HID) version 1.11"のp.63に以下の記述がある。 Boot Keyboards must support the boot protocol and the Set_Protocol request. Boot Keyboards may support an alternative protocol (specified in…

Nキーロールオーバー

押下したすべてのキーを認識する機能。ゲーマー以外はほぼ必要なさそうなものだが,RealforceやHHK Professionalなどのいわゆる高級キーボードは大抵サポートしている。ただしUSB接続の場合はUSB KeyboardのBoot Protocolに制限される模様。すなわち,モディ…

HID

USBキーボードとのやりとりについては"Device Class Definition for Human Interface Devices"に書いてある。 "HID Usage Table"を見ればキーのUsageIDがわかる。例えば,"a"なら04h。 http://www.usb.org/developers/devclass_docs/HID1_11.pdf http://www.…

Usage

wikipedia:スキャンコードソースはWikipedia。 UsageとはUSBキーボードにおけるスキャンコードの呼称。正確にはスキャンコード相当のものはUsageID。

リピート機能・LED

USBキーボードではリピートレートやディレイ時間の設定は持たない。同機能をサポートする場合はキーボードではなくホスト側でなされなければならない。 LEDの点灯・消灯の状態についても同様でキーボードはホストからの命令によってLEDの状態を変えるだけ。…

Haskellで動的スコープ

参考:http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#implicit-parameters GHCでは"-XImplicitParams"というオプションで暗黙的なパラメータというのが使えるようになる。こいつがどうやら動的スコープみたいなもの…

Polymorphic Recursion

data T a = K (T Int) (T a) f :: T a -> a f (K x y) = if f x == 1 then f y else undefined The Haskell 98 Reportの「4.4.1 Type Signatures」より。型シグネチャのありなしで再帰関数の型が変わる例。型シグネチャなしだと T Int -> Int と推論される。…

ピピンはPPC

ねぎタン塩はひっくり返さない マナカナは一卵性 Dランクはピピン To Heart? というわけで,今更だが『らきすた』にはまり中。

SKK

SKK Openlab - SKK = I SKKという名前がコンビネータ論理から来てるとは知らんかった。作者が佐藤雅彦氏ということもだが。

The Monomorphism Restriction

単相性制限 規則 1. 与えられた宣言グループが制限を受けないというのは以下の場合であり、その場 合にかぎる。 (a): そのグループ内のすべての変数それぞれが関数束縛あるいは 単純パターン束縛により束縛されている。且つ (b): そのグループ内の単純パター…

ghciで複数行入力

今さらだけどghciの使い方を勉強してみる。基本じゅうよー。 式の途中に改行を入れる Prelude> :{ Prelude| let { fact 0 = 1 Prelude| ; fact n = n * fact (n - 1) Prelude| } Prelude| in fact 5 Prelude| :} 120 オフサイドルールに従ったレイアウトは使…

Ctrl+[

手が小さいのでEscキーがホームポジションから遠いのがViを使ってるときの悩みだった。が,"Ctrl+["でも同じだということに今さっき気づいた。何年Vi使ってるんだっけ,オレ。。

Monadic Parser Combinators

四角い車輪を再発明してしまった。 今後はParsecを使おうと思っていたのだが,Monadic Parser Combinatorsってどんな感じに実装するのかが気になってしまった。そこで,自分なりに考えてParsecのソースを見て確認しよう,そしてそれで終わり,という予定だっ…

Parsecを使ってみた

module Parser where import Text.ParserCombinators.Parsec import Text.ParserCombinators.Parsec.Char data Expr = E_Val Val | E_Seq [Expr] instance Show Expr where showsPrec d (E_Val v) = showsPrec d v showsPrec d (E_Seq []) = showString "()"…

マイ箸

マイ箸はあたりまえだけど洗う必要があります。それによる水質汚染ってどんなもんなんだろう?割り箸(間伐材でない)とどちらが環境負荷が大きいのだろう?ってのがここ最近の疑問でした。 どうやらよくわかってないみたいです。 割ばしと洗い箸の場合は、…

なぜコンピュータは2進法?

『なぜコンピューターは2進法で、人間はそうでないのか - 小人さんの妄想』を読んで。なかなかおもしろいエントリーで,普段,整数というか自然数しか扱わない人間には微分をつかってe進法が効率が良いとか示すあたりは非常に興味深かったです。が,気にな…

Haskellでbitwise演算

http://haskell.org/ghc/docs/latest/html/libraries/base/Data-Bits.htm bitwise andとbitwise orがちょとかわいい。 (.&.) :: a -> a -> a (.|.) :: a -> a -> a

MacでMPEG-2

Macを使って1年になるけど,標準ではMPEG-2ファイルを再生できないことをはじめてしった。DVDは見れるのにな。不思議だ。 調べてみるとVLC media playerなるもので再生できるらしい。 ほかにも,Apple純正のQuickTime MPEG-2再生コンポーネントなるものがあ…

王道の狗

王道の狗 (1) (ミスターマガジンKCDX (941))作者: 安彦良和出版社/メーカー: 講談社発売日: 1998/06メディア: コミック クリック: 1回この商品を含むブログ (12件) を見る安彦良和氏のマンガといえば,そう,肉感である。ネオデビルマン3巻でうけた衝撃はい…

『Compiling With Continuations』が復刊してた

注目のコンピュータサイエンス本: ホットコーナーで『Compiling With Continuations』が紹介されていた。絶版じゃなかったのかしらとリンク先を見てみると,ペーパーバックで復刊してました。発売日を見てみると2007年2月12日,最近じゃんと思ったが今年は20…

三國無双5

三國無双5がPS3で出るらしい。これはオレにPS3を買えってことか。Oblivionも9月に出るし、PS3を買っても良い気がしてきたぞ。まあ、Oblivionは360版ならもうすぐに出る訳だが・・・。そして三國無双5もそのうち360で出そうだし・・・。やっぱりまだ買うの…

rlwrap

http://utopia.knoware.nl/~hlub/rlwrap/ readlineラパー。これを使うことによって任意の対話型プログラムでコマンド履歴などreadlineの機能を使うことができるようになるらしい。 使い方: rlwrap <対話型プログラム>こんな便利なものがあるとは知らなかっ…

TAPL 15.5.3の解答例

研究室の環境が使えなくなりつつあるのでここに載せる。 public class T { public static void main(String[] args) { S[] arr = new S[10]; f(arr); } public static void f(C[] arr) { arr[0] = new C(); } } class C { } class S extends C { }

色盲の人にもわかる色使い

『色盲の人にもわかるバリアフリープレゼンテーション法』 http://www.nig.ac.jp/color/ 神奈川県発行『色使いのガイドライン(PDF版)』 http://www.nig.ac.jp/color/guideline_kanagawa.pdf 卒論発表に使うグラフや図の色を決めるのに参考にした。 色使い…

文字や数字の複数形

江川泰一郎『英文法解説(改訂三版)』によると、文字や数字の複数形には、"1's, t's, A's, UFO's"などのように-'sを付ける。