今日の記録 2020/5/27

読んだ

みんなのデータ構造 

ツリーに対する検索・挿入・削除を実装中


プログラミング Erlang - P141~144

名前サーバーを実装しようというもの。ついに実践的な分散システムの実装例が始まった!ステージ2のターミナルの二つを使っての例の時に、自分のPCの名前に「-」が含まれているせいでエラーを吐くという現象が起きた。ハイフンを名前に使うのはやめよう。
 次にステージ3では家にあるサーバーを使って実際にやってみようとしたのだが、まず `erl -name gandalf -setcookie abc` をサーバー側で実行しようとするとエラーがでる。そこで調べると hostname を設定する必要があるらしいので設定したところ起動はできた。

次はクライアント側から呼び出そうとするも、hostnameとして `gandalf@hoge.dom.com` のようにして `rpc:call(gandalf@hoge.dom.com, ...)` とすると @ 後ろの 「.」で構文エラーが起こる。サンプルではできているので、バージョンの違いかと調べる。すると「''」で囲めばいいらしい。なぜサンプルはそのまま書けているんだろう。そして修正後、再び入力してみると接続しているらしいラグがあり、行けそうだなと思ったが `{badrpc, nodedown}` と返ってきてしまった。多分同LAN内での hostname あたりの設定が何か間違っているのだと思うのだが、 サーバーと手元の Erlang のバージョンも違っていたりと、原因として考えられることがいくつかあったので今回は一旦先送りにすることにした。


安全な Web アプリケーションの作り方 - P184~189

ファイルアップロードフォームでの CSRF攻撃について。また実際の事件として、CSRF攻撃によって掲示板?などに犯行予告声明を出されてしまい、その被害者(CSRF攻撃が仕組まれていたサイトを閲覧してしまった人)が逮捕される事件が 2012 年にあったらしい。Web サイトを作る時はこのあたりかなり気を付ける必要があるのだが、気を付けることが多すぎて何をすればよいか、という感覚もある。一つ一つやっていくしかないのだが。とりあえずはこの本で紹介されているIPAの「安全なWebサイトの作り方」については、自身で趣味で何か作る場合は気を付けたい。


システムの科学 - P91 ~ 95

文章の意味というのを理解する時に、単に構文を解析しただけでは、その文章が正確に何を意味しているのかが分からないことが良くある。日本語の場合だと以下の話がツイッターなどで話題になっていたのを思い出した。

この例でも、人がある文章の意味を理解するために、絵を使っている。このように、言語というものはある点においては正しく理解することが不可能な場合がある。といっても、それがその言語の限界であるという訳では全くなく、殆どの場合は、別な書き方をすることによって曖昧さが無くなるように書ける。例えば、上の例の場合に、上から一番目のことを伝えたいのであれば、「猫の頭は、赤い魚を食べます」と言えば良い。私は日本語と、少し英語ができるだけであるが、ある何かについて曖昧さが無いように変換できない言語というものは存在しないのではないかと思う。
 また意味というものを表現する時には、大抵上の例のように階層化されたリスト構造が用いられているという話もあった。言語処理における構文解析でも、ツリー構造のデータを用いることでそのプログラムの意味というのを表現するが、人自体も意味というのをそのようなツリー構造で取らえている。それこそが、著者の言う言語学における理論と、情報処理との関係がとても近いものであるということの証拠である、ということになるのだと思う。どちらが先だったのかが気になる。てっきり、コンピューターを作る上で都合が良いからリスト構造を使っているのかと思ったが、もともと人がリスト構造でいろいろなものを理解していたという背景から、コンピューターはリスト構造を基本のものとして使うようになったのだろうか。


英語

一億人の英文法とDuo 4ページずつ

この記事が気に入ったらサポートをしてみませんか?