ETロボコン
組み込みシステムの普及のために、過去の UML ロボットコンテストを変更して 開催している。 UML によるシステム記述による「モデリング審査」というのが、このコンテストの特徴でしょう。
ゲーム専門学校からみた風景
ゲーム専門学校の裏側をネタにしたマンガ。 内容はある意味予測した通り。 このネタを見て、『きちんとした技術者になろう!』と思う人が入って来て欲しい。 絶対ゲーム業界に入りたいとは思って欲しくない。
相変わらず…
情報構造論の試験の採点中。例年よりはすこし簡単にしたつもり。 先日、子供の保育園行事のくじ引きで、ハノイの塔をもらったので、 導入部ヒント付きで証明を出題したりする。 授業中の説明した問題と見ためは違うけど、再帰方程式が同じ…といった 問題で、難易度的にも簡単なはず。 だけれども、実際は、例年通りの成績かぁ!?
メモリ使用量と処理速度の関係などの説明問題を出題したが、 仮想記憶などの用語を交えて…という部分では、キャッシュと区別がついていない学生が チラホラ…
仮想関数の応用と抽象クラス
#中間試験が始まり、専攻科授業用の資料準備がのんびりできた…
先週説明した仮想関数の話しの応用として、多態性、直列的継承、多重継承、抽象クラス などの事例を、概念として説明する。
ウィルス除去サーバの弊害
以前より学校全体にて導入していたウィルス除去サーバ NetShelter も導入から時期が経過し、 性能問題などから更新となった。 このため先週より新しいウィルス除去サーバに切替えたのだが、 昨日少しトラブルがあった様子。
自宅サーバへメールが届かない
色々と作業の中、自宅 tsaitoh.net にも Cc: でメールを投げたら、 『"tsaitoh.net"がみつからない』とのエラーで、 ウィルス除去サーバが返送してくる。 新しいサーバ運用開始から、自宅にメールを送るのは最初だったので、 サーバの問題を懸念する。
Dynamic DNS のサーバが拒否るのか?
特に、自宅サーバ tsaitoh.net は Dynamic DNS を使っており、 tsaitoh.net を正引きしたアドレスと、 それを逆引きした時のドメイン名は一致しない。 こういうサイトは、『SPAMボット化したパソコン』と疑われ、 メールの配送・受信拒否というトラブルの憂き目に会いやすい。
対外メールサーバを SPAM サーバと誤認?
しかし、センターの方に確認したら、Internet から DMZ 内部のウィルス除去サーバに メールを中継する対外接続サーバを、『ゴミメールを大量に投げてくる SPAM サーバと誤認』 したことで、対外接続サーバからの接続を一時的に拒否しているみたい。 前述症状は、この影響の可能性が大きい様子。 現在 情報センターにて、設定の見直しをしている状況との連絡を受ける。
演習
時間としては、先週から取り組んでいる N進数 の取扱いプログラムの 課題時間とした。
よくある間違い
演習の時に3年生がよく、プログラム作成時にやりそうな間違いとして、 いくつかのネタを紹介する。
/* 平均点を求めたい。*/ int sum = 100 ; /* 合計点 */ int size = 3 ; /* 人数 */ float mean ; mean = sum / size ; ........... mean = (float)sum / (float)size ; と書くべき。 printf( "%f" , mean ) ; ★平均点は 33.0 点 平均点を求めるつもりのプログラムでも、 sum / size はそれぞれ整数型なので、割算も整数型で行われる。 /* 点数が可ならば(60≦点<80) */ if ( 60 <= point < 80 ) ..... if ( 60 <= point && point < 80 ) と書くべき。 処理... ; ★処理は(ほとんどの処理系では)必ず実行される。 条件式は、(60 <= point) < 80 と解釈される。 60 <= point は論理値 0 or 1 を返す。 その (0 or 1) を 80 と比較するため。 /* 実数データの読み込み */ double x ; scanf( "%f" , &x ) ; ........ scanf( "%lf" , &x ) ; と書くべき ★xはゴミの値となる。 %f は float型(4byte)の入力フォーマット。 scanf は、xの場所に、入力データを 4 byte だけ格納する。 しかし、x は double 型で (8byte) の値。残りの 4byte にはゴミが入ったまま。
メールの送信にかかる時間の変化
緊急連絡システムでは、大量のメールを送信するために、 携帯などのキャリアから迷惑メールサーバと疑われて発送が遅延する場合がある。 その確認のために、5分間毎のキャリア毎の送信完了メール数をカウントしてみた。 FN ちょうど6/5に不審者出没で大量メールが発送されたので… /FN
このグラフは、5分毎の送信完了のメール数を積み上げグラフ化したもの。 17:40頃に、各学校の連絡送信が重なり、5分間に最大600通近くを送信している。 18:00頃,18:50頃のグラフに、vodafone 宛の送信の山が他のキャリアと比べ、 遅れているのが解る。
考察
よって、このグラフから見ると、 送信数は 途切れた山 になっている点から、顕著に 迷惑サーバ扱い を受けていないと思われる。
FONT SIZE -1 # 送信制限を加えられ、配信遅延が発生していれば、なだらかな山が長く伸びると予想される。
これは、各学校の管理者宛に送付されたメールを各学校で配信するタイミングが分散するため、 大きな送信ピークが発生していないと思われる。 送信履歴を確認すると、 17:40〜17:50までに8校が送信作業を行っている。 その後の送信数の変化を見ると、18:00頃まで送信が続いている。 このことから、送信完了までに 10 分程かかっていることが解る。
現在、市からの配布を各学校が再配布する際の操作の簡単化のために、 モデレータ送信機能 FN 市からのメールを各学校管理者(モデレータ)の携帯に配布し、配信を認められれば、 送付を受けたメールの内容をそのまま保護者に配信する機能。 /FN の実装準備が終っている。 この機能が利用されると、各学校での配布の作業が単純化されるため、 配信タイミングが重なることが懸念される。 モデレータ送信機能の利用が始まったら、また検討の必要がでてくると予想される。
演習(malloc+free)
先週の後半に引続き、malloc+free による可変長配列を使ったプログラム作成の課題に 取り組んでもらう。
仮想関数
先週の継承の話しの続きとして、 派生クラスの基底クラスへの型変換のあるプログラムを説明し、 『格下げ』されると、元の派生クラスの特徴が失われる問題点を説明する。 その問題を解決するための仮想関数の説明を行う。