(Introduction to Informatics 2)
^ ^^ ^
メールがどのように相手に伝わるか、MUA、MTA(それぞれの専門用語については 調べてみて下さい)の関わりを図にすると上のようになる。
本学のメールシステムは最近(去年の今頃)大きく変更された。
現在は GMAIL(Google のサービス) をベースに運用されている。
このサービスは IMAP という方式でアクセスできる(昔に比べて便利になった)。
我々はPC上で動くメールソフトから(GMAILのサーバ情報を設定した上で)アクセス(読み書き)できる。と同時に、
ブラウザから(GMAILのサイトを開いて)読み書きすることもできる(図の右側)
さらに、他のコンピュータ(スマホ等も含めて)から(メールソフトにサーバ情報の設定を行えば)もアクセスが可能。
よく使われるターゲット名として、all, clean 等がある。
Makefileの中で、最初に書かれたルールがデフォルトのターゲットとなる。
ここに all を指定することがよく行われている。
Makefile の 基本を学ぶページでは、ターゲットの名前をMakefile 内に列挙する書き方が よく見られる(これはこれで必要だが)。が、ここでは、 「このフォルダに置かれた、同じ種類のファイルすべて」のような漠然とした指定方法を 紹介しておく。
MD=$(wildcard *.md)
HTML=$(MD:.md=.html)
これをルール記述に先立って入れておく。
変数 MD には、wildcard 関数によって ワイルドカードを含む表現 *.md
が展開され、 「そこに置かれた .md ファイル を列挙したリスト」が代入される。
次の行では、そのリストの各要素の、拡張子部分をそれぞれ .md から .html に変更したファイル名のリスト(それぞれのファイルは存在していなくていい)が代入される。
こうしてリストを定義しておいて、
all : $(HTML)
のような定義を(変数定義をのぞいた)先頭部に書いておくと、それがデフォルトのターゲットとなる。
デフォルトのターゲットをMakefileに記述したら、
make
のように引数なしで呼んでみよう。
板書の説明では、図のような3つのソースファイルが置かれた状態のフォルダを想定する。
make all または make コマンドにより、この3つのターゲットファイルに対するルールの呼び出しが行われることになる(右図)。
もう一度 make 呼んだ場合(2回め以降は)何もしないですぐに終了することも確認。
以下のいずれかの操作を行い、
そのあとあらためて make を起動すると、
変更のあったソース、または消去されたターゲット、に関係する変換プログラムだけ起動されることも確認されたい。
また、clean ターゲットも作っておこう。
clean :
del $(HTML)
ここでは、依存ファイル(コロンの右)は空でいい。
del コマンドがこのままで動作しない時は、
clean :
cmd /c del $(HTML)
のように cmd コマンド(コマンドプロンプトそのもの)の /c オプションに 実行したいコマンドを渡すようにする。
そうした上で、
make clean
で、(そのフォルダにある)*.html がすべて消されることを確認する。
ビルドツールはなるべく少ない処理数で、望ましい状態を維持するためのツールの1つ。
たとえば(その意味では同じ目的を持つツールである)バックアップツールは、 「コピー」の側に「オリジナル」と同じものが揃っているという状態を維持しようとする。 そのため、「コピー」側に
のいずれかの場合にデータ転送を行い、
「コピー」側の方が新しければそのファイルについては何もしない。
ビルドツールの論理もほぼ同様。
なお、ファイルの新旧比較には、ファイルに付与されている情報として「最終更新日時(タイムスタンプ)を用いる。
題材ファイルは前回資料を参照。
たとえばこのページ(ここではバイナリエディタを使っているが Atom+Hex-view でも大丈夫だろう) を参考に題材ファイルを眺めてみよう。
リファレンス的に使える資料として、たとえばここを参照しよう。
例:(上に貼ってあった)白黒画像は画素数83(横)✕48(縦)のサイズの画像だが、 これをダンプしてみると、
数値83(十六進で53)が右図のように見えている箇所があることがわかる。
また、2値画像なので、1と0のビットから構成されるが、白い部分には1が並んでいる (そのバイトを十六進表記して ff が並ぶ)ことも見てとれるだろう(下図)。
題材ファイル:
=> 本節は次回
=> 本節は次回
(考察と計算)
(前回出した課題ですがあらためて出しておきます)
前回2.1節に置いたBMP形式の画像ファイル(または自分で作ってもいい)のいずれかについて、
Atomエディタで開き、
その16進ダンプを表示させ、
その先頭の数行のデータの中で、
当該ファイルのデータサイズや縦横の画素数といった情報がどこに埋め込まれているか
推測と、「BMP形式のフォーマット」についての調査を鍵にして、
見つけ出してみて下さい。
わかったことをご報告下さい。
また、2.2節の音声データについても同様に調べてみて下さい。
なお、今回(口頭で話したように)メールについても、しくみの理解と、使い慣れることが必要であり、今回課題はメールで提出してみて下さい(Google classroomでの提出口は設定しません)。
(当初予定していた以下の課題は次回にまわします。)
Webページ上に表示できるもの(リンクとして外部データを参照するのではなく)として、 どんなデータを扱うことができるか、調査してみて、結果を報告ください。
どこそこ(URL)にこんな記述があった、という調査結果でもいいが、できれば 実際に検証(HTMLファイルを作ってそこに表示させてみる)してみて下さい。