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 型を用いて列…

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

項目23. 新たなコードで原型を使用しない ジェネリックとは 1つ以上の型パラメータを宣言に持つクラスやインターフェースのこと。 例) public interface List<E> extends Collection<E> { ... } List<E>:ジェネリック型 E:仮型パラメータ List<String>:パラメータ化され</string></e></e></e>…

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

項目13. クラスとメンバーへのアクセス可能性を最小限にする 情報隠蔽のメリット 実装とAPIを分離し、他のモジュールとはAPIを介して通信を行い、詳細な実装は外部へ公開しないことを 情報隠蔽という。メリットとしては、以下のような点が挙げられる。 他モ…

Google Apps Script(GAS)で自作アプリを公開する

GASで簡単なWebアプリケーションを作って公開してみます! 作るもの 酒好きの友人と幹事当番制で月1で飲み会を開催していて、開催も20回を超えていろいろ美味しいお店も見つかったので、その飲み会の履歴を記録するページを作ってみようと思います。以下の…

Google Apps Script(GAS)を試す

無料で簡単にWebアプリが公開できるGoogle Apps Scriptなるものがあると聞いて試してみました。 Google Apps Script を追加する まずはGoogleドライブにアクセスします。 新規 > その他 > アプリを追加 を選択し、「script」で検索します。Google Apps Scrip…

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

Objectクラスのequals、hashCode、toString、clone、finalizeはすべて オーバーライドされるように設計されているため、明示的な一般契約がある。 これに従わないと、この契約に依存しているHashMapやHashSetなど他のクラスが 適切に機能しない恐れがあるた…

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

入社3年目になりましたが、全然Javaの基礎できてないなと思いまして、 effective javaの学習を始めました。まず第1章から。 項目1. コンストラクタの代わりにstaticファクトリーメソッドを検討する staticファクトリーメソッドとは クラスのインスタンスを返…

macでbashからzshへ乗り換えた話

mac

今までずっとbashを使ってきましたが、補完が強力とか作業がいろいろ捗るとか聞くので、重い腰を持ち上げてzshに乗り換えることを決めました。 環境 MacOS Sierra 10.12.3 Homebrew 0.9.9 zshインストール Homebrewは入れている前提です。 以下のコマンドでz…

RailsでBootstrapのmodalが開いてすぐ閉じてしまう問題

開発していて地味にハマったのでメモ。 概要 削除・更新系の処理実行前に確認画面を表示するために、bootstrapのmodalを利用。 ボタンを押すとmodalが一瞬表示されるが、何もUI操作をしていないのにmodalダイアログが閉じてしまう。 原因 異なる2つのgemの…

macOS Sierra + Vagrant + CentOS7でRuby On Railsの開発環境を構築する

railsの開発環境をvagrant上のcentos7に構築するスクリプトを作成し、GItHubに公開しました。利用手順をREADME.mdに記載してあります。postgresqlの設定など、手順の一部は手動で実施する必要があります。 github.com 以下の環境で動作確認。 OS: macOS Sier…