君は心理学者なのか?

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

Angular2/4にてbootstrapのmodalウィンドウを開き、閉じた時に親コンポーネントに値を反映させる

Angular2/4を使ってmodalウィンドウを表示する bootstrap標準のmodalウィンドウを、 Angularから開こうと頑張った話です。 bootstrapとAngular以外は使っておりません。 Angular2/4を使ってmodalウィンドウを表示する 0. 準備 0-1. プロジェクトの作成 0-2. …

最近の出来事を元に脚本を書いてみる。その5

はじめに この話はいい感じにフィクションです。 登場人物 わたし(26)…会社員 ボーカル(20代後半) ギター(20代後半) M 時刻は22時を回ったところ。 吉祥寺サンロードは、まるで一方通行になってしまったみたいだ。 人々はみんな、駅の方へ向かって歩いている…

【Git】時よ戻れ!〜RPGゲームの「セーブ」とGitの「commit」の比較から、commitとは何かについて考えてみる〜

commitとは結局なんなのか 結論 commitとは、 どのセーブ地点にも戻ることができる 高機能な「セーブ」 解説 RPGのセーブとGitのcommitを比較してみます。 RPGの「セーブ」 ここに冒険の書v0.1があります。 冒険が進んだので、冒険の書v0.2として保存しよう…

Angular2/4のngOnChangesはオブジェクトプロパティが変わったことを検知しない〜Lifecycle HooksのngOnChages, ngDoCheckの違い〜

ngOnChangesを使って、子に渡したプロパティが変わったことを検知する 親コンポーネント /** app.component.ts */ export class AppComponent { public datas = 1; onClick() { this.datas ++; } } <button (click)="onClick()">押してください</button> <app-child [parentProperty]='datas'></app-child> 子コンポーネント

Angular2/4にて、Cannot find name SimpleChangesエラーが出た時の対処法

Angular2/4にて、Cannot find name SimpleChangesエラー 変更検知をしたかったので、以下の記述をしたところ、 Cannot find name 'SimpleChanges'. というコンパイルエラーが出た。 export class ChildComponent implements OnInit, OnChanges { @Input() pa…

Angular2/4の*ngIfと[hidden]の使い分け/違い〜Component自体は削除せず非表示にするにはどうしたらよいか〜

結論 *ngIfを使うとComponent自体消えてしまうが、 [hidden]を使うと非表示になるだけでComponentはそのまま残る。 *ngIfの場合 <app-sample *ngIf="showFlg"></app-sample> [hidden]の場合 <app-sample [hidden]="showFlg"></app-sample> いきさつ Angular2/4にて、こんなことがあった 2つのComponentA、ComponentBがある タブAがアクティブの時Co…

Angular2/4にてjQueryを読み込んで使用する

Angular2/4にてjQueryを使いたい どうしても使いたいときってありますよね。 Angular2/4にてjQueryを使いたい 0. プロジェクトを立ち上げる 1. index.htmlファイルにてjQueryを読み込む 2. AppComponentにて「アンビエント宣言」をする 3. app.component.ts…

マルウェアとは何か〜WordPressに設置されていたマルウェアを解析してみた結果、恐ろしいソフトがでてきた〜

結論 WordPressのドキュメントルート上に、 wp-includes/wp-pages.lib.php https://www.japan-secure.com/entry/how-to-perform-wordpress-security-measures.html がもし設置されていたら、それはマルウェアなので 直ぐに削除すること。 ※ 抜本的な対策では…

オーキド「こういうものには つかいどきがあるのじゃ」〜Rubyよりもシェルのほうが良いときもある。プログラミング技術は要件に応じて使い分けよう〜

上司からの司令 上司「data.txtファイル中の、この数字を昇順にしてくれ。なるはやで」 1 45 31 2 上司が欲しい出力結果はこんな感じ。 1 2 31 45 Rubyを使用した場合 elements = [] File.open('data.txt') do |file| file.each_line do |row| elements << r…

最近の出来事を元に脚本を書いてみる。その4

はじめに この話はいい感じにフィクションです。 登場人物 わたし(26)…会社員 マスター(41)…バーのマスター 省吾(42)…常連 小杉(35)…常連 杏奈(30)…常連 あやか(26)…常連 M 今日はマスターの誕生日。僕はケーキをもって店に向かった。 マスター「おーいらっ…

そのテーブルに、idは必要ですか?〜idの必要性とデータの一意性についてもう一度考えてみる

テーブルに必ずと行っていいほど入っているidカラム 普段扱っているテーブルには、だいたいidカラムが含まれている。 Ruby on Railsのmigration機能を使うと勝手にidカラムが入ったりする。 当たり前のように存在するidカラム。 そのidカラムの必要性につい…

公開鍵認証によるssh接続ができない。パスワード認証になってしまう(/var/log/secureにてsshd[3437]: error: key_from_blob: can't read rsa key が表示された時の対処法)

ssh接続が出来ずパスワード認証になってしまう こういうとき見るべきところは、だいだい以下の項目。 接続元 .sshのパーミッションは700か id_rsaのパーミッションは600か 接続先 authorized_keysのパーミッションは600か sshdの設定が「RSAAuthentication y…

【脚本】最初で最後のssh〜プロセス1〜

登場人物 伊藤彩(27)…インフラ&サーバサイドエンジニア。 前職で本番環境のDBを吹き飛ばした経験あり(※) 田端祐介(32)…プロジェクトマネージャ 白井(30)…サーバサイドエンジニア。中途入社。彩の部下。 ○株式会社セントレイ(午後) ワンフロアのオフィス…

なぜ、データベースを正規化するのか。正規化のメリットについてソースコードレベルで考えてみる(第一正規化)

正規化のメリットについてソースコードレベルで考えてみる DB設計をする際、あたりまえのように正規化していたのですが、 「なぜ正規化するか」についてはあまり良くわかっていませんでした。 調べると 正規化の理論は、 データの冗長性を排除し、 更新時の…

最近の出来事を元に脚本を書いてみる。その3

はじめに この話はいい感じにフィクションです。 登場人物 わたし(26)…会社員 店長(36)…店長 客(20)~(60) ...同じ会社の会社員。12名 M 間違えて一駅手前で降りてしまった。 あまり降りない駅なのでしばらく探索。 フラフラしているうちにカフェバーを発見し…

最近の出来事を元に脚本を書いてみる。その2

はじめに この話はいい感じにフィクションです。 登場人物 わたし(26)…会社員 まり(24)…劇団員 M(モノローグ) 夜22時。帰りの電車の中。私は立ったまま本を読んでいた。 SE(効果音) 電車がとまる音 M 最寄り駅で車両を降りようとしたとき ?? 「かろて…

最近の出来事を元に脚本を書いてみる。

初めに この話はちょうどいい感じにフィクションです。 登場人物 鹿目(56)常連 わたし(26)常連 まり(24)常連 省吾(42)常連 マスター(40)バーのマスター 鹿目「だから男はだめなんだよ〜 きめるときはきめないとさ〜いいように扱われて終わるんだよ…

ほんのちょっとの仕様変更がバタフライ・エフェクトを起こす。「ラヂオの時間」はそれを教えてくれる、三谷幸喜の傑作コメディだ。

三谷幸喜の「ラヂオの時間」とは コメディの脚本家として有名な三谷幸喜の、初の映画監督作品。 あらすじはこんな感じ。 “ラジオ弁天”のスタジオでは、まもなく始まるラジオ・ドラマ『運命の女』の生放送のためのリハーサルが行われている。 初めて書いたシ…

rbenvによって定められるバージョンはどこに保持されているのか(global, local)

globalの場合 $ rbenv versions * 2.3.0 (set by /home/vagrant/.rbenv/version) 2.3.1 2.4.1 /home/vagrant/.rbenv/version で指定されているらしい。確かめてみる。 $ cat /home/vagrant/.rbenv/version 2.3.0 確かにversionファイルに記述されている。 試…

rbenv install --listをしたときに、installしたいバージョンが無い時の対処法

rbenvで特定のrubyバージョンをinstallしようとした ruby 2.4.1が欲しかった。 $ rbenv install --list ... 2.3.4 2.3.5 2.4.0-dev 2.4.0-preview1 2.4.0-preview2 2.4.0-preview3 2.4.0-rc1 2.4.0 2.5.0-dev ... 無い。 原因 ruby-buildのバージョンが低い…

システム開発課の一日 〜徒然なるままにシステム開発用語〜

この会話はファンクションです (ナレーション) とある会社の業務系システムを開発している情報システム科の一室。 皆、一心不乱にキーボードを叩いている。 (効果音) キーボードを叩く音 上司 「かろてん君さー、このフラグがtrueの時って子供を殺せばい…

git cloneしたあとに--recursiveを付け忘れたことに気づいた。あとからsubmoduleをcloneしたい。

Git

submoduleで管理しているライブラリをcloneし忘れた いつもなら git clone --recursive {gitリポジトリurl} でcloneしてsubmoduleで管理しているライブラリもcloneしてくるのだが、 git clone {gitリポジトリurl} としてしまった。 対処法 git submodule upd…

Docker for Macが重いので、VagrantでcoreOSをたててDocker Composeを導入する

Docker for Macが重い Docker for Macを立ち上げると、Macのファンがとてもうるさくなる。 Docker for Macはハイパーバイザ型の仮想化をしているらしいが、 そのハイパーバイザがとてもCPUを枯渇させることがある。 denor.daa.jp 冬だと暖かいからいいけど夏…

データベースの「データ型」とは何か?(その1)

はじめに 皆さん、データベースのデータ型について意識した事はありますか? 「データ型って何?」って思ったそこのRails使いの方! rails db postgres=# \d table_name を叩いてみましょう。 ※ table_nameは存在する適当なテーブル名 すると、以下のテーブ…

MySQLにて外部キーが貼れない。エラーは出ていない(MySQLのストレージエンジン・InnoDBとMyISAMの違い)

MySQLにて外部キーを貼ろうとした table_aのidがtable_bのidを外部キーとして参照するように、 以下のようなSQLを流した。 alter table `table_a_name` add constraint table_a_name_ibfk_1 foreign key (table_a_id) references table_b_name(table_b_id) o…

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を実行しているらしい。 へぇ…