replus

RE;COIL (リコイル)メンバーのarc@dmzによる日記

CPU実験まとめ

CPU実験

CPU実験とは大学の演習の一つで、その名の通りCPUに関係する様々なことを班単位で実験するもの。演習としての最終目標は

で、それとは別に、処理の速さなどを競うコンテストが春休み期間中に開かれている。

今年は例年通り

を正しく処理できるCPUを班ごとに作るよう指示され、3/11にコンテストが行われた。

役割分担

一学年が5-6人ごとに5つの班に分かれた。僕の班は5人で、結果的に、ハードウェア・コンパイラ・シミュレータとライブラリとデバッグ・ソフトウェアと遊撃・UIと入力データ、というふうな役割分担になった。

僕は最後の「UIと入力データ」、つまりソフトウェアや発表の見た目をデザインしたり、レイトレーサに食わせるモデリングデータを生成する役。一時期シミュレータの手助けをしたこともあったが僅かで、実は一番CPUから遠いところを担当していたことになる。

CPU実験においてCPUから遠いところを担当するためには、班としてその他の核となる部分に対して十分に力を割けていることが必要条件になるが、その点、僕の班は心強かった。

最後に時間切れとなった部分があるので、今さらながらもう少し他の分野で助力できていたら、と思うこともあるが、班全体の目標は「(今の実験基板を使うCPU実験が今年で最後なので)何か面白いことをやりたい」だったので、その意味では何とかなったと思う。

班としての成果

近々に発表資料を公開する予定なのでお待ちください。

UIと入力データ

僕が担当したところについて、もう少し詳しく書けることを書く。

rtcad

まず、入力データ、つまり3Dのモデリングデータは数値の羅列で構成されるデータであり、とても直感的に扱えるものではなかったので、それをGUIで表示・編集できるソフトウェア「rtcad」を作った。データの文法ミスが怖かったのでパーザ・文法チェッカなど、入力データを正しく便利に作成するために必要になると思しきほとんどの機能を実装してある。

発表資料公開に併せてrtcadと取り扱い説明書を公開予定です。

その他UIなど

また、実験基板で動かすレイトレース以外のソフトウェア(テトリス)の背景を描き、半年を通して発表用資料の作成に当たった。後半の仕事は丸っきりデザイナーであり、プログラムとはあまり関係ない。

感想

とりあえず

この班にいられて幸せだった。学ぶことが多かった。

実験を通して考えたこと

UIとかデザインって、最低限の部分は機能として考えられるのに、それ以上は機能と切り離されてデザイナの領分になるという不思議な性質を持っている。そのために、業務用に特化したソフトウェア・アーキテクチャではUIへの配慮なんてなくてもいいものとして考えられることさえあるけれど、実際のところ、その考えかたには違和感を覚える。

そうではなくて、ある目的に特化したソフトウェアでは、目的が限られているためにUIへの配慮が機能の制約で代替されていることが多いのだと思う。つまり、やれることが少ない代わりに・やれることが少ないゆえに、細かく色々なパラメタをいじる必要性にも乏しいのではないか。

また、UIやデザインが軽視されるのは恐らく今のPCの入力インターフェースの乏しさにも起因している。結局のところどのPCにもついている入力はキーボードとマウスくらいのもので、人間の手は2本あるのにマウスは一つ。PCの操作に熟練した人が2本の腕をフルに使えるキーボードで操作するCUIを好むのは当たり前だ。PCへの入力の局面でもどかしい思いをするようでは、GUIによる出力はやむなく軽視される結果となる。

Wiiの拡張デバイスが全部BluetoothでPCと繋げられたり、MacBook AirやMacBook Proがマルチタッチデバイスを搭載したり、PCの入力に使えるチャネルは着実に、少しずつ増えてきている。昨今携帯電話を使ってPC向けサービスを拡張する試みが多いが、ある意味入力装置に乏しいPCの世界に携帯というインターフェースでアクセスしているとも取れる。

今後どのようなデファクトスタンダードが生まれるのか分からないが、ソッチのほうに期待と興味を持っている一人として、今後の成り行きに注目していたい。

あれ、CPUからかけ離れた話になってしまったぞ。高速化という観点では、PCの操作を高速にできるようにするというこじつけも可能か?処理速度が何倍に向上してもキーボードの入力速度はそんなに速くならないものネ。

Mac OSX(Tiger) 再インストールの記録

もうLeopardが出てしばらく経つのにTigerを再インストールしたわけだが、恐らく定番のアプリなど変わりないところも多いと思うので、誰かの参考になることを願いつつ(いつか自分がまたこういうことをするときのためにも)記録を残しておく。

インストールしたアプリケーション

一般向け

比較的誰でも使いやすいと思しきものは次のとおり。

自宅警備員向け

自宅サーバとしてMacを使う場合、こういうものがあると便利。

サーバのためのアプリケーションはmacportsで一通り揃う。

 以下、macports経由でインストールしたもの。

 その他のサーバ用アプリ。

設定したこと

全てのファイルをFinderに表示する。

$ defaults write com.apple.finder AppleShowAllFiles TRUE

~/.bashrc

export PATH=/opt/local/bin:$PATH
export LANG=ja_JP.UTF-8

~/.bash_profile

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

/Library/StartupItems/Firewall/Firewall

OS X標準のファイアウォールでは生温いという人のために。

僕の環境ではen0, en1, fw0(Firewire)でメインのWindows機とMac miniが接続されているので、ルール1000及び1010(IP通信を全て許可)がある。

cf. http://miko.org/~tatyana/tech/OSX/OSX_Firewall.html

#!/bin/sh

IPFW='/sbin/ipfw -q'

$IPFW -f flush
$IPFW add 10 divert 8668 ip from any to any via ppp0

# LANとループバックの通信はすべて許可
$IPFW add 1000 allow ip from any to any via en*
$IPFW add 1010 allow ip from any to any via fw0
$IPFW add 2000 allow ip from any to any via lo*

# 危ないIPからの通信は拒絶
$IPFW add 2010 deny ip from 127.0.0.0/8 to any in
$IPFW add 2020 deny ip from any to 127.0.0.0/8 in
$IPFW add 2030 deny ip from 224.0.0.0/3 to any in
$IPFW add 2040 deny tcp from any to 224.0.0.0/3 in

# 外への通信、コネクション確立済みの通信、フラグメントパケットは許可
$IPFW add 2050 allow tcp from any to any out
$IPFW add 2060 allow tcp from any to any established
$IPFW add 2070 allow tcp from any to any frag

# SSH, IMAP, HTTP, PeerCast
$IPFW add 2080 allow tcp from any to any dst-port 22 in
$IPFW add 2090 allow tcp from any to any dst-port 143 in
$IPFW add 2100 allow tcp from any to any dst-port 80 in
$IPFW add 2110 allow tcp from any to any dst-port 7144 in

# Microsoft Messenger
$IPFW add 2120 allow tcp from any to any dst-port 6891-6900 in

# 残りのTCP, ICMP通信をすべて拒絶して記録
$IPFW add 12190 deny log tcp from any to any
$IPFW add 20000 deny log icmp from any to me in icmptypes 8

最新の記事を全23件中3件目から計2件表示