座標変換と最適化
2次元の座標変換の話しとして、平行移動・拡大・線対称・回転などの 座標変換と、そのプログラムを通して関数の値の受渡しを説明する。
後半は、グラフィックスの世界では高速処理への要求も高いので、 コンパイラの最適化のネタを話す。
求人一覧(学外閲覧不可)
学内向けの求人一覧のページで、肝心の企業名が文字化けで見えないトラブルを対処。 参照元にしている Excel ファイルで、機種依存文字『(株)』が 大量に使われているため、CGI で文字コード置換を行う。 ついでに、H18年度データも閲覧できるように修正する。
# 昨年と今年で Excel ファイルのデータ並び順が違うのはやめてけれ….
実務者説明会
昨日、緊急連絡システムの実務者向けの説明会として、 武生東小学校にて説明を行う。 長男がこの4月より小学校(味真野小だけど)だし、 小学校のパソコンルームを見学したいとの思いもあり、 上嶋先生に同行する。
端末が Win/98 + IE 5.5 だったりと、改善の余地を見ながら、説明を行う。 機能説明以外にも、迷惑メール対策で 『Thunderbird とか使おう!』とか、 『トップページのメールアドレスは画像表示にするとか工夫が必要』 といった別ネタも紹介する。
緊急メールの利用者確認のためのURL表示で、 『署名区切り"\n– \n"があると、空行以下を見逃す利用者が多いんだけど…』 との指摘を受ける。自分自身は携帯のメール表示は『フォントサイズ小』の 設定なので、『見逃す』という状況をあまり考えてなかった….
# ある程度年配の人は『フォントサイズ大』が普通だからなぁ…
# ということで、署名区切りを消す!
電子メールとWWWとセキュリティ
WWW の仕組みと電子メールの仕組みを、 URLからコンピュータ名を抜きだし、DNS に問い合わせIPアドレスを求めて、 スキームからプロトコルとポート番号を決めて、サーバに問い合わせ…. といった流れを説明する。
セキュリティの話しとして、バッファオーバフローなどの問題と、 ネットワークによる攻撃説明を行う。
緊急連絡システムをオープンソースで公開
以前より地域貢献ネタとして作成していた、 緊急連絡システムのプログラムをオープンソースとして公開する。 公開にあたり、プログラム中の設定ファイル内に書き込まれていた、 ホスト名を、PHP変数 $_SERVER[‘SERVER_NAME’] 等の変数を積極的に利用し、消す。
# 人為的に、緊急連絡システムが攻撃を受けないようにするため。
参照カウンタ法とガベージコレクタ
共有のあるリスト構造の例で参照カウンタ法を説明する。 参照カウンタの別の応用事例として unix でのファイルシステムを紹介。
循環リストで参照カウンタ法が使えない事をあげ、 別の対応法としてのガベージコレクタを説明する。 ガベージコレクタの実用言語として、Lisp,Java,等をあげ、 処理方法として、マークアンドスイープ法、コピー法を紹介する。
GrWinを使ったグラフィックス
GrWin を使って、グラフィックスの演習。 一般的なコンピュータ画面の左上原点の座標系で資料を作成。 XYグラフや媒介変数系の関数グラフの課題に取り組んでもらう。
サブネット
TCP/IPの話しの続きとして、サブネットマスクによるネットワーク分割 とルータでの中継の話しや、実際のネットワーク構成図を交えた説明を 行う。この際にプライベートアドレスやグローバルアドレスも解説。
ネットワークサービスの説明への導入として、IPアドレスとポート番号の 役割を説明し、DNS とドメイン名の説明を行う。
Mail::Internet モジュールの使い方
メールデータの処理をしたいけど、モジュールで簡単に扱うために… 動作確認のためのサンプルプログラム。 以前は、正規表現やら状態遷移やら考えながら、 えっちら・おっちらと処理してたけど、モジュール使うと簡単ね。
#!/usr/bin/perl use Jcode ; use Mail::Internet ; use Mail::Address ; use MIME::Words ; # メールヘッダ・本体を標準入力から読み込む $mail = new Mail::Internet \*STDIN ; $head = $mail->head->header_hashref ; # From ヘッダを解析 @from = Mail::Address->parse( $head->{From}[0] ) ; print "From: ".$from[0]->address()."\n" ; # Subject を解析・デコード $subject = MIME::Words::decode_mimewords( $head->{Subject}[0] ) ; Jcode::convert( $subject , "euc" ) ; print "Subject: $subject\n" ; # メールヘッダの表示 $c = 0 ; foreach $key ( keys %{$head} ) { $c++ ; $d = 0 ; foreach $item ( @{$head->{$key}} ) { print $c.":".++$d.":" ; print $key." => ".$item ; } } # メール本文の表示 $c = 0 ; foreach $line ( @{$mail->body} ) { print ++$c.":" ; Jcode::convert( $line , "euc" ) ; print $line ; }
東小学校で説明
説明のために真面目に背広を着ていたら、 会う先生にことごとく『どうしたの、いつもにない真面目な恰好!?』と、 英M先生・数S先生・情S先生と、3連発を食らう…