ホーム » スタッフ (ページ 209)
「スタッフ」カテゴリーアーカイブ
データベースの正規形とオブジェクト指向
データベースの設計におけるER図の書き方で、 補足説明として対応数やロール、弱実体などの説明を行う。 この際に、汎化の説明があったので、これに伴いオブジェクト指向の話を少し行う。
オブジェクト指向の一部として、派生・導出・継承というキーワードを簡単に説明する。 また、ER図との関連性として、UMLを紹介し、フローチャートやPADなどが 振る舞い図として発展していることや、データ記述でもクラス図なども紹介する。
次に、データベースの正規化の話の説明として、第2正規形までを説明。 全属性が単一の値であれば原子値と呼ばれ、 すべての項目が原子値になっているものを第一正規形と呼ぶ。 一つのキーが決まると、他の属性も1つの物に絞り込める場合、 従属関係があると呼ばれる。 一つのキーが決まれば、他の属性がすべて従属するものは完全従属と呼ばれる。 他の非キー項目間で従属関係があるものは、部分従属と呼ばれる。 部分従属がなくて完全従属であれば、第2正規形と呼ぶ。
ネットワークとTCP/IP
先週のネットワークの物理層(LAN)の続きということで、 WANの全容を紹介した後、Ethernetの接続とTCP/IPの話をする。
WAN
LANでは拠点内の接続だけど、WANでは接続は電話が中心となる。 電話では音声の波を電気の波に変換して送られるが、 コンピュータのデジタル信号で送る場合には、間にモデムが入る。 しかし、通常の電話では64Kbps通信しかできないので、 デジタル信号で送るISDN(Max 128Kbps)が出てきた。 しかしながら速度が遅いため、音声信号の高周波帯にデジタル信号を入れ、 下り優先で帯域を割り振ったADSLが使われる。 しかしながら交換機までの距離が短くないと高速通信ができない。 最近は、CATVやFTTH(光ファイバ通信)が使われ、100Mbps通信ができる。
本当なら、AM/FM/PMなどの変調方式も説明すべきだけど、 時間を考え省略。
EthernetとIP接続
Ethernetの説明として、サブネットに分割しルータで中継…というIP接続の基本を説明する。
説明にあたり、バス型・リング型・スター型・ネット型・ツリー型などの説明の後、 Etherではバス型接続で、CSMA/CD方式をとることを説明する。
CSMA/CD方式では、 (a)バスが使われていないことを検出(Carrier Sense)し、 (b)使われていなければ使う(Multiple Access)。 しかしながら、キャリア無し検出からデータを出すまでの間のタイムラグがあるため、 (c)信号をだしたら他に使う人がいて通信に失敗するかもしれない(Collision Detect) このため、 (d)衝突が発生したらリトライするけど、リトライ待ち時間は乱数で決める。 この方式では、バスに接続する機器が多いと、どちらにしろ待ち時間が長くなる。 このため、ネットワークを細かく分離したサブネットを作る。 サブネット間には、ルータやブリッジを置いて、中継をしてもらう。
サブネットの分割以外にも、接続用のHUBで内部的な接続を必要に応じてつなぐ スイッチングHUBを使うことで、バス競合を減らすように工夫をする。 でも、分割されたサブネットのどこに機器があるのか、どう中継させるのかを 判断するメカニズムが必要。
IPプロトコルは、このサブネット間の中継を行うためのプロトコルで、 ネットワークの聞きを識別するための番号を個別に割り振る。 この番号は、IPv4では32bitを用いるが、近年のIPv4アドレスの枯渇から、 IPv6が使われるようになってきた。IPv6では、128bitを使用するため、アドレス枯渇はない。
授業時間が短くなってきたので、IPアドレスではネットワーク番号とホスト番号に 分けて、ネットワーク番号が違えば別サブネット、同じならサブネット内で通信という メカニズムまでを説明する。
2010年11月14日(第190回)
- 数学の部屋 第54回 物理の池田先生にインタビュー 長水先生
math101114.mp3 - 長水先生が生出演
- 誠市、ご縁市について
長水先生が生出演しました。
鯖江の地域通貨「ハピー」です。誠市に福鉄で来るともらえるそうです。
PTAMお試し中
ARToolKitを試す中、sampleVRMLのライブラリのコンパイルがうまく通らず、 現実逃避の情報探し。 この中で、リアルタイムに画像内の特徴点を見つけ、空間認識できる PTAM(Parallel Tracking and Mapping for Small AR Workspaces – Source Code) なるものを見つける。カメラの移動による視差変化を使ってくれて、 ソースコードも公開されている。
デモ画面を見ていても、最初のカメラ移動から空間をうまく認識しているのが 分かるし、普通のMacBookで動いているのもすごい。
Webに載っている情報を元に、手元でコンパイルを試みているけど、 うまく通ってくれないなぁ…
# もう少し別ネタを元にコンパイル試すか…
# Xcode 使わないで書いてある環境の方が馴染みやすいと
# 思うのはオッサンな証拠…
コンパイルを試みるけど、TooN::Vector で Zerosが見つからないとかいう エラーがでる。TooNのベクトルのZero初期化なんだけど、どうも バージョンが合っていないと思われるので、最初から 入れ直し。
Auto Focus カメラはダメ、単焦点Webカメラ必須
上記の資料にそって作業したところ、うまく動くようになった。 しかしながら、問題が1つ。 iSight だと、パソコン操作者側を撮るので、外付けのUSBカメラに変えてみた。 外付けでも普通に動き出すのはいいんだけど、 実験で使用したのは Auto Focus 付きのUVCカメラなんだけど、 初期状態のフォーカスに固定になり、視点移動でカメラを動かすけど、 ピンボケでトラッキング対象をうまく見つけられない。
ということで、単焦点のAuto Focus 機能の無いカメラを購入しないとダメあるね。
ARToolkit拡張現実感プログラミング入門…
卒研でARToolkitが使えないかと、試したりしているんだけど、 外部カメラの解像度指定方法しらべてたら、参考にしている 『ARToolkit拡張現実感プログラミング入門』の一番最初の部分が、 そのままWebに載っているじゃないの…
ほっほぉ、OpenGLの解説のいい本も紹介してある。 さっそく発注するあるね。
Mac OS Xでカメラ解像度指定
simpleTestあたりの実験で、USB外部カメラが使えるのはいいんだけど、 iSight なら丁度いいサイズ(max?)なんだけど、外部カメラは最大解像度で ムダに大きい動画を取得している。調べてみると、 main で arVideoOpen( vconf ) を呼び出す際の vconf がプログラム先頭で、 以下のように宣言されてるのね。
// // Camera configuration. // #ifdef _WIN32 char *vconf = "Data\\WDM_camera_flipV.xml"; #else - char *vconf = ""; // デフォルトそのままだとダメ。 + char *vconf = "-width=640 -height=480"; #endif
使える設定は、プログラムの "ARToolKit/doc/video/index.html#VideoMacOSX" に説明が書いてある。
秋の遠足にてバーベキュー
3年生の工場見学旅行中に例年実施されている 秋の遠足にて、4EIでは「ふくい健康の森」にて バーベキューをしました。
朝は、雨が降っていて心配でしたが、 集合時間には晴れ、バス停から健康の森までを ウォーキング。参加費1000円にて昨日購入した 食材が足りるかなと心配でしたが、調度良い量で きれいにすべてなくなりました。


晴れているとはいえ、季節的にも寒いバーベキューでしたが、 楽しめました。
2分木で式を表現
2分木の応用として、2項演算子と数値を表現する方法を説明した。
式と表記法
木での表現の前に、式を演算子の優先順位のカッコ無しで表現する手法として、 逆ポーランド記法などを説明する。また、逆ポーランド記法で表記されたデータを 処理する場合にはスタックなどが便利であることも説明する。
中置記法: 1+2*3 逆ポーランド記法: 1,2,3,*,+ (後置記法) 前置記法: +,1,*,2,3
スタックを使えば、逆ポーランド記法データから値を求める処理が簡単。 数値ならスタックに積む。演算子なら2つデータを取って計算し、結果を再びスタックに積む。
| | | | |3| + | | |2| |2| |6| / \ |1| |1| |1| |1| |7| 1 * ------------------- / \ 1 , 2 , 3 , * , + 2 3
2分木で式を表現
struct Expr { int value ; // left,right==NULLの時は数値 char op ; struct Expr* left ; struct Expr* right ; } ; struct Expr* Integer( int v ) { // 数値の木を作る struct Expr* ans ; ans = (struct Expr*)malloc( sizeof( struct Expr ) ) ; if ( ans != NULL ) { ans->value = v ; ans->op = ' ' ; // dummy ans->left = ans->right = NULL ; } return ans ; } struct Expr* Operator( char op , // 式の木を作る struct Expr* l , struct Expr* r ) { struct Expr* ans ; ans = (struct Expr*)malloc( sizeof( struct Expr ) ) ; if ( ans != NULL ) { ans->value = 0 ; // dummy ans->op = op ; ans->left = l ; ans->right = r ; } return ans ; } int eval( struct Expr* e ) { // 木の式を評価 if ( e->left == NULL && e->right == NULL ) { return e->value ; } else { int l = eval( e->left ) ; int r = eval( e->right ) ; switch( e->op ) { case '+' : return l + r ; case '*' : return l * r ; } } } void main() { struct Expr* exp = Operator( '+' , Integer( 1 ) , Operator( '*' , Integer( 2 ) , Integer( 3 ) ) ) ; printf( "%d" , eval( exp ) ) ; }
Moodleネットワーク機能
現在福井高専で運用している Moodle サーバへの機能拡張をするための、 打ち合わせに同席した。現在、f-leccsではシングルサインオンにより、 県立大学に設置されている f-leccs の Moodle サーバは、関係学校より 自由に使える。 こういう2重のMoodleサーバを運用している中で、機能拡張で、 Moodle ネットワーク機能と、携帯でアンケートを取る機能を、見せてもらった。
Moodleネットワーク機能は、他のMoodleサーバにも接続できるようになる機能みたい。 シングルサインオンで使える f-leccs があるから、 必須ではないが、将来的にシームレスに Moodle を連携するときには便利かな。
家庭用向け太陽光発電システムって…
今年度は、福井県機械工業会の方々との連携事業に関係しているけど、 エコがキーワード。講習会では、太陽光発電などの話を聞いているけど、 実際家庭で使う太陽光発電の話が家電Watchで記事になっているので、 メモを残す。
緊急連絡システムのメールでの確認
緊急連絡システムでは、システム全体の利用状況を見るために、 全学校で緊急メールが出されると、管理者用のメールアドレスにも メールを送るようにしてある。 でも、もう一人の管理者の先生から、最近管理者用のメールが届かないとの連絡。 (私は熊の季節には、あまりにも数多いメールが来るので、自分宛ははずしておいた)
確認してみると、最近情報処理センターのメールシステムの更新で、 管理者用のメールアドレスから、実際の管理者へのメール転送機能が設定されていなかったのが 原因だった。 ということで、センターの方に転送の設定方法を聞いて設定。 実際は、usermin(webmin)で、.forward ファイルを編集する。 usermin には、.forwardファイルを直接書き込む設定があったので、 .forward ファイルの書き方を確認しながら、転送設定を行った。