移転中
記事のあちこちに誤りや不統一があるため、http://alexei-karamazov.hatenablog.com/に移転することにしました。
このサイトの記事は移転完了次第、順次削除していきます。
pythonのお勉強
とりあえず、ここを参考にしてICMPを実装してみる。
そのためには、ICMPの内容をRFCで復習しよう。
SICP一人勉強会(第1章)
- 作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/02
- メディア: 単行本
- 購入: 35人 クリック: 1,149回
- この商品を含むブログ (480件) を見る
基本的に毎週土曜にコツコツ読み進めよう。
今日は環境構築として、DrRacketをダウンロード。昔はDrSchemeだったのだけども。
0.0 環境構築
1.1 プログラムの要素
この章で扱うデータは数値データのみである。
そのため以降の議論では、この章の冒頭に記載してある強力な言語の持つ三つの仕掛けはそれぞれ
- 基本式…数値
- 組み合わせ法…数値を組み合わせた演算
- 抽象化法…変数と数値の対応づける
に限定される。
1.1.1 式
ここでは基本式としての整数の評価、および演算子と引数を組み合わせた式の評価を行っている。
ここで利用されている+や-などの演算子も式であるため、以下のように評価することが可能である。数値の場合は評価した結果として数値を返すが、演算子の場合は、procedureを返す。
> + #<procedure:+> > - #<procedure:->
1.1.2 名前と環境
1.1.2では新しく変数と環境という概念が定義されている。
ここでは変数とはある計算対象(数・演算子など)を指し示すものの別名である、と定義している。
defineを用いることで変数名と、その変数の評価結果の対応を決めることにより、変数名を使って計算対象(例えば数値とか演算子とか)を指し示すことができる。よって評価結果をもたない変数というものは定義できない。
そうした変数名と、その評価結果としての計算対象の組み合わせが環境である。
演算子も同様にして定義できる。以下のようにplusとして演算子+を再定義して、plusを+の代わりに利用することも可能。
> (define plus +) > plus #<procedure:+> > (plus 2 3) 5
一般的には変数を「データを格納しておくメモリ領域の識別子」として定義されることが多い。この場合、そのメモリ領域に値が格納されていなければ、変数の評価はできない。
Ubuntuにrootとしてログイン
一般ユーザからログインしてrootに昇格するのでなく、直接rootユーザとしてログインできるようにする設定
以下のコマンドでrootでのログインパスワードを設定する。
# passwd root
次に/etc/lightd/lightd.conf (なければapt-get install lightdでインストール) に
greeter-show-manual-login=true
を1行追加する。
無線LANのセキュリティ
WEPとWPA、WPA2が存在する。
WEP(Wired Equivalent Privacy)
40ビットの共通鍵を使う方式と104ビットの共通鍵を使う方式があり、鄽と呼ばれる24ビットの初期化ベクトルとを組み合わせてネットワークキーとする。
RC4という暗号化アルゴリズムを利用している。
鄽がパターン化されやすいという問題点があり、通信内容を一定時間取集すれば解読される危険性がある。
WPA2
WPAの新方式。暗号化アルゴリズムとしてAESのみを採用している。AESはハードウェアで暗号化処理を行うため高速かつ安全であるが、機器自体が対応している必要がある。