君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

2017-10-01から1ヶ月間の記事一覧

Angular2/4とgoogle maps apiを使って、緯度経度から住所を取得してみた(逆ジオコーディング)

やりたいこと google mapのある地点をクリックした際に、 その地点の緯度経度・住所を取得する必要がありましたので、 google maps apiを使って逆ジオコーディングを実現してみました。 ジオコーディング / 逆ジオコーディングとは ジオコーディング 住所の…

Rubyの配列を集合として扱った時の操作がとてもわかりやすい(共通集合・和集合・集合の差)

配列の準備 ary1 = %w(a b c) # ["a","b","c"] ary2 = %w(b c d) # ["b","c","d"] %wというのはパーセント記法と言うやつです。 これを使うと配列の定義が簡単にできます。 今回の場合は文字列を要素に持つ配列を作成しています。 共通集合 p (ary1 & ary2) …

Rubyのmoduleとmodule_functionについて

moduleを定義する module MyModule def hello puts 'hello' end end MyModule.hello #=> undefined method `hello' for MyModule:Module (NoMethodError) これだけだと使えない。 moduleを定義 + module_functionを定義 module MyModule def hello puts 'hel…

Rubyのmoduleを使って定義したmethodは、インスタンスmethod内で使える。クラスmethod内では使えない。

include先のクラスにて、インスタンスメソッド内で使う module Hoge def hello puts 'hello' end end class Fuga include Hoge def call_mod_method # インスタンスメソッド hello end end fuga = Fuga.new fuga.call_mod_method Hoge moduleをincludeしてFu…

Rubyのselfが微妙に意味がわからなかったので、様々な文脈(トップレベル、class定義内、method定義内、module定義内)で出力してみた

Rubyのselfが微妙にわからん Rubyのselfが使う割にきちんと理解できていない気がしたので、 いろんな文脈で出力してみた。 トップレベルの文脈でのself コード p self 結果 main トップレベルではmainというオブジェクトがmethodを実行しているらしい。 へぇ…

Rubyのprivate methodはサブクラスからも呼び出せる

PHPとRubyのprivate methodを比較してみる 子クラスから親クラスのprivate methodが呼び出せるか、 確かめてみます。 PHPの場合 実行コード

劇的ビフォ◯アフターで学ぶデザインパターン(strategy編:after)

前回のソースコードをstrategyパターンを使用して書き換えていく 前回のソースコードから、戦略に関する部分についてクラスで切り出します。 戦略クラス(特定戦略時の振る舞いを持ったクラス)を作成 # ガンガン行こうぜのとき class StrategyGangan def se…

劇的ビフォ◯アフターで学ぶデザインパターン(strategy編:before)

このシリーズについて このシリーズでは、 デザインパターンを使う場合 デザインパターンを使わなかった場合 について、 「仕様変更があった時、既存コードの書き換えがどれくらい発生するか?」 という観点で比較し、デザインパターンのメリットをより感じ…

劇的ビフォ◯アフターで学ぶデザインパターン(state編:after)

前回のソースコードをstateパターンを使用して書き換えていく 前回のソースコードを見てみると、 状態と、その状態の時の振る舞いが描かれていることがわかります。 図の例なら、「HAPPY」「HAPPY時の振る舞い(hello, goodbye)」です。 これを状態クラスと…

劇的ビフォ◯アフターで学ぶデザインパターン(state編:before)

デザインパターンのメリットについて今一度確認したい 業務で使ったり使わなかったりするデザインパターンですが、 なかなかメリットについてつきつめて考えたことがない。 「なんとなくソースコードがきれいになった気がする。。。」で頭がとまってしまって…

Angular2/4で使えるdatatable「ngx-datatable」を使ってみた

Angular2/4にてテーブルのソートを簡単に行ったりpagerを簡単に作ったりしたい pagerだけ作るのであれば以下のmoduleでも良い。 github.com テーブルのソートなども行いたかったので、ngx-datatableを利用することにした。 github.com star数も1800超えで、…

ngx-datatableを使おうとしたらコンパイル時に「In ambient enum declarations member initializer must be constant expression」が発生

問題 Angular4で作っているアプリケーションにてdatatableを使おうとしたところ、 コンパイル時に以下のエラーが発生 In ambient enum declarations member initializer must be constant expression 解決方法 typescriptのバージョンを上げればよいらしい。…

使っているnode moduleのバージョンを確認したい

バージョンを確認する 現在使っているnode moduleのバージョンを確認する必要がありました。 アプリケーションディレクトリにて、 npm ls 直下のmoduleのみ確認したいときは、 npm ls --depth=0 npm installでinstallされるパッケージのバージョンを固定する…

Angular Materialを導入しようとしたら"has no exported member 'MdCheckboxModule'"と怒られた話

Googleが提唱している「MaterialDesign」を、Angular2/4上で簡単に使うことができる 「Anglar Material」を導入しようとしたら、moduleの読み込みに失敗しました。 has no exported member 'MdButtonModule'. CHANGELOG.mdを見てみると どうやら2017-10-05の…

ピザ◯ラから100枚のピザが届くまで 〜 CSRF対策とは(その2)

CSRF対策とは その1「CSRF攻撃」について その2「CSRF対策」について その3「RailsにおけるCSRF対策」について の「その2」です。 CSRF対策とは おさらい 問題点 解決方法(抽象) 解決方法(具体) 正常な場合 CSRF攻撃された場合 まとめ 補足 ワンタイ…

【性格診断テスト】16 personalities - INFP 和訳その2

(画像は “仲介者”型の性格 (INFP-A / INFP-T) | 16Personalitiesより) 16 personalities 診断 私はINFPタイプでした。 INFP より多くの情報を知りたいと思い、こちらの本の一部を和訳してみました。 https://www.amazon.co.jp/gp/product/B01ES8UZ4A/ref=k…

ピザ◯ラから100枚のピザが届くまで 〜 CSRF対策とは(その1)

CSRF対策とは 自分の中で曖昧になっている部分があったので、整理してみました。 これから3回に分けて解説しようと思います。 その1「CSRF攻撃」について その2「CSRF対策」について その3「RailsにおけるCSRF対策」について CSRF対策とは CSRF攻撃とは …

Railsのrenderメソッドについて、xml, html, jsonで試してみる

htmlで返す render html: 'content' class ApplicationController < ActionController::Base protect_from_forgery with: :exception def hello render html: '<ul><li>hello world</li><li>good bye world</li></ul>' end end ブラウザ上の表示 あれ。うまく表示されない。 エスケープ…

【性格診断テスト】16 personalities - INFP 和訳その1

(画像は “仲介者”型の性格 (INFP-A / INFP-T) | 16Personalitiesより) 16 personalities 診断 転職にあたって「私ってどんな人間なんだ?」と思いこちらをやってみました。 16 personalities 診断 私はINFPタイプでした。 INFP より多くの情報を知りたいと…

意思決定は殺人と同じだ。

はじめに 今月に入って僕は8人殺害している。 どいつも悪い奴ではなかった。 どちらかというと皆、可能性に満ち溢れた奴らばかりだった。 そんな人たちを次々に殺めていく。 ちょっと首を締めるだけで、人は簡単に死ぬ。 そんなことを思う。 首を絞められな…

Rails Tutorial、始めました。

ちょっと本腰入れてRailsの勉強をはじめていきます〜。 まずはRails Tutorialから。 https://railstutorial.jp/ 進捗報告していきますのでよかったら読んでみてください。 ではでは。

Angular2/4にて、フォーム(input)へのキー入力&入力内容(value)を検出する

Angular2/4にて、ユーザのキー入力を検出する Angular2/4にて、ユーザがフォームへ入力をしたこと検出してみたいと思います。 さらに、ユーザがエンターキーを押したときに、今まで入力した内容を取得してみます。 Angular2/4にて、ユーザのキー入力を検出す…

Angular2/4にてngSwitchを使ってtemplateの一部切り替えを行う

Angular2/4にてngSwitchを使ってtemplateの切り替えを行う 「routerを使う程ではないけど、templateを部分的に書き換えたいな〜」と思ったので、 ngSwitchを使用してtemplateの部分的な切り替えを行おうと思います。 Angular2/4にてngSwitchを使ってtemplate…

Angular2/4のLifecycle Hooksを理解する(ngOnInit編)

Angular2/4のLifecycle Hooksを理解する Angular2/4のLifecycle Hooksのうち、ngOnInitについて簡単な実験をして、 どのタイミングでngOnInitが発火するのか確かめてみることにします。 Angular2/4のLifecycle Hooksを理解する 前提 0. プロジェクトを立ち上…

rake aborted! Gem::LoadError: You have already activated rake *.*.*, but your Gemfile requires rake **.**.**. の解決方法

rakeコマンドを実行したときに時々起こる、rake aborted! の解決方法 結論。 rake *** ではなく、 bundle exec rake *** を使いましょう。 rakeコマンドを実行したときに時々起こる、rake aborted! の解決方法 解説 まずはエラー文を確認 なぜそういうことが…