2018-01-01から1年間の記事一覧

O'REILLY JavaScript 第5版を飛ばし読む(20章 HTTPの制御)

よく使う Ajax はどのような仕組みで動いているのか、概要をまとめる。 XMLHttpRequest クライアントとサーバーの間でデータを伝送するための機能を、クライアント側で提供するAPIのこと。Ajaxプログラミングで利用される。 以下の構文で XMLHttpRequest を…

O'REILLY JavaScript 第5版を飛ばし読む(13章 Webブラウザに組み込まれたJavaScript)

ここではDOMの構造やJavaアプレットの話が出てくるが、今回は割愛。 セキュリティ関係の話だけ少し取り出す。 JavaScript のセキュリティ JavaScript ではできないこと ユーザーの Web ブラウザ上で悪意のあるコードが実行されないよう、スクリプトの動作に…

O'REILLY JavaScript 第5版を飛ばし読む(9章 クラスとコンストラクタとタイプ)

仕事で JavaScript 結構書くので、基礎的なところは抑えときたいと思って、O'REILLY JavaScript 第5版を飛ばし読みしています。まずは JavaScript でのクラスの実現方法から。 JavaScript におけるコンストラクタ、メソッド JavaScriptのオブジェクトは、new…

Q学習でOpen AI GymのPendulum V0を学習した

強化学習のQ学習を勉強したので、せっかくなので Open AI Gymの 「pendulum v0」の学習を実装した。 この記事では Q 学習の基礎は知っているという前提で、学習環境や実装で苦労した点を説明する。 gym のインストール gym をインストール $ pip install gym…

mac にpyenv で python3 の環境を構築した

機械学習関係の勉強をしてみたくなったので、mac に python3 の環境を構築した。 pyenv のインストール python2 が必要になることがあるかもしれないので、pyenv をインストールしてバージョン管理する pyenv のインストール $ git clone https://github.com…

Effective Javaを勉強します【第10章】

項目66. 共有された可変データへのアクセスを同期する synchronized 予約語 Java ではマルチスレッドを取り扱うことができる。しかし複数のスレッドが同じオブジェクトを 同時に操作すると、プログラムが意図しない動作をする可能性がある。この問題を解決す…

Effective Javaを勉強します【第9章】

項目57. 例外的状態にだけ例外を使用する 例外は、例外的条件に対してのみ使用すべきであり、通常の制御フローに対しては、 決して使用すべきではない。 例えば、パフォーマンス改善を目的として以下のような例外を利用したループを書く人がいる。しかしパフ…

Effective Javaを勉強します【第8章】

項目45. ローカル変数のスコープを最小限にする コードの可読性と保守性を向上させ、誤りの可能性を減らすためにローカル変数のスコープは最小限にすべきである。 スコープを最小限にするには? ローカル変数のスコープを最小限にする最も強力な技法は、ロー…

Effective Javaを勉強します【第7章】

項目38. パラメータの正当性を検査する コンストラクタやメソッドの引数(パラメータ)に関して何らかの制約(参照がnullではいけないなど)がある場合は、 文書化し、メソッドの初めに検査をすることでその制約を強制すべきである。 上記を行わない場合、意…

Effective Javaを勉強します【第6章】

項目30. int定数の代わりにenumを使用する 一年での季節、太陽系の惑星、トランプの役など、固定数の定数からその値が成り立つ型を列挙型と呼ぶ。Java4以前で列挙型を表現する際には int enum パターンが用いられていたが、Java 5以降では enum 型を用いて列…