久しぶりの投稿です。 いろいろ思うところがあってブログの引越をしました。 もしよければ覗いてみてください。 https://uu64.me
よく使う Ajax はどのような仕組みで動いているのか、概要をまとめる。 XMLHttpRequest クライアントとサーバーの間でデータを伝送するための機能を、クライアント側で提供するAPIのこと。Ajaxプログラミングで利用される。 以下の構文で XMLHttpRequest を…
ここではDOMの構造やJavaアプレットの話が出てくるが、今回は割愛。 セキュリティ関係の話だけ少し取り出す。 JavaScript のセキュリティ JavaScript ではできないこと ユーザーの Web ブラウザ上で悪意のあるコードが実行されないよう、スクリプトの動作に…
仕事で JavaScript 結構書くので、基礎的なところは抑えときたいと思って、O'REILLY JavaScript 第5版を飛ばし読みしています。まずは JavaScript でのクラスの実現方法から。 JavaScript におけるコンストラクタ、メソッド JavaScriptのオブジェクトは、new…
強化学習のQ学習を勉強したので、せっかくなので Open AI Gymの 「pendulum v0」の学習を実装した。 この記事では Q 学習の基礎は知っているという前提で、学習環境や実装で苦労した点を説明する。 gym のインストール gym をインストール $ pip install gym…
機械学習関係の勉強をしてみたくなったので、mac に python3 の環境を構築した。 pyenv のインストール python2 が必要になることがあるかもしれないので、pyenv をインストールしてバージョン管理する pyenv のインストール $ git clone https://github.com…
項目66. 共有された可変データへのアクセスを同期する synchronized 予約語 Java ではマルチスレッドを取り扱うことができる。しかし複数のスレッドが同じオブジェクトを 同時に操作すると、プログラムが意図しない動作をする可能性がある。この問題を解決す…
項目57. 例外的状態にだけ例外を使用する 例外は、例外的条件に対してのみ使用すべきであり、通常の制御フローに対しては、 決して使用すべきではない。 例えば、パフォーマンス改善を目的として以下のような例外を利用したループを書く人がいる。しかしパフ…
項目45. ローカル変数のスコープを最小限にする コードの可読性と保守性を向上させ、誤りの可能性を減らすためにローカル変数のスコープは最小限にすべきである。 スコープを最小限にするには? ローカル変数のスコープを最小限にする最も強力な技法は、ロー…
項目38. パラメータの正当性を検査する コンストラクタやメソッドの引数(パラメータ)に関して何らかの制約(参照がnullではいけないなど)がある場合は、 文書化し、メソッドの初めに検査をすることでその制約を強制すべきである。 上記を行わない場合、意…
項目30. int定数の代わりにenumを使用する 一年での季節、太陽系の惑星、トランプの役など、固定数の定数からその値が成り立つ型を列挙型と呼ぶ。Java4以前で列挙型を表現する際には int enum パターンが用いられていたが、Java 5以降では enum 型を用いて列…
項目23. 新たなコードで原型を使用しない ジェネリックとは 1つ以上の型パラメータを宣言に持つクラスやインターフェースのこと。 例) public interface List<E> extends Collection<E> { ... } List<E>:ジェネリック型 E:仮型パラメータ List<String>:パラメータ化され</string></e></e></e>…
項目13. クラスとメンバーへのアクセス可能性を最小限にする 情報隠蔽のメリット 実装とAPIを分離し、他のモジュールとはAPIを介して通信を行い、詳細な実装は外部へ公開しないことを 情報隠蔽という。メリットとしては、以下のような点が挙げられる。 他モ…
GASで簡単なWebアプリケーションを作って公開してみます! 作るもの 酒好きの友人と幹事当番制で月1で飲み会を開催していて、開催も20回を超えていろいろ美味しいお店も見つかったので、その飲み会の履歴を記録するページを作ってみようと思います。以下の…
無料で簡単にWebアプリが公開できるGoogle Apps Scriptなるものがあると聞いて試してみました。 Google Apps Script を追加する まずはGoogleドライブにアクセスします。 新規 > その他 > アプリを追加 を選択し、「script」で検索します。Google Apps Scrip…
Objectクラスのequals、hashCode、toString、clone、finalizeはすべて オーバーライドされるように設計されているため、明示的な一般契約がある。 これに従わないと、この契約に依存しているHashMapやHashSetなど他のクラスが 適切に機能しない恐れがあるた…
入社3年目になりましたが、全然Javaの基礎できてないなと思いまして、 effective javaの学習を始めました。まず第1章から。 項目1. コンストラクタの代わりにstaticファクトリーメソッドを検討する staticファクトリーメソッドとは クラスのインスタンスを返…
今までずっとbashを使ってきましたが、補完が強力とか作業がいろいろ捗るとか聞くので、重い腰を持ち上げてzshに乗り換えることを決めました。 環境 MacOS Sierra 10.12.3 Homebrew 0.9.9 zshインストール Homebrewは入れている前提です。 以下のコマンドでz…
開発していて地味にハマったのでメモ。 概要 削除・更新系の処理実行前に確認画面を表示するために、bootstrapのmodalを利用。 ボタンを押すとmodalが一瞬表示されるが、何もUI操作をしていないのにmodalダイアログが閉じてしまう。 原因 異なる2つのgemの…
railsの開発環境をvagrant上のcentos7に構築するスクリプトを作成し、GItHubに公開しました。利用手順をREADME.mdに記載してあります。postgresqlの設定など、手順の一部は手動で実施する必要があります。 github.com 以下の環境で動作確認。 OS: macOS Sier…