ブログの引っ越しをした。

久しぶりの投稿です。 いろいろ思うところがあってブログの引越をしました。 もしよければ覗いてみてください。 https://uu64.me

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

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…