君は心理学者なのか?

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

2017-01-01から1年間の記事一覧

ババァ!ノックしろよッ!ってならないためのlinuxパーミッション入門

思春期あるある 思春期を超えたことがあるみなさんなら 共感していただけると思うのですが、 突然親が部屋に来訪してくるとビビりますよね。 やましいことがあってもなくてもビビりますよね。 今回は、 linuxなら、 親が勝手に部屋に入ってこれなくなるので…

もうPermission deniedなんて怖くない!〜linuxのパーミッションについてかなり丁寧に説明してみる〜

開発中よく目にするエラー Permission denied. 環境構築中、よくこのエラー見ますよね。 よく見る割に「とりあえずsudoで無理やり対応」という雑な対応が多い気がしたので、 まずはパーミッションについて整理してみようと思いました。 前提 そもそも、linux…

rpmコマンドの使い方を整理してみる(LPIC対策)〜yumとの違いも比較してみた〜

rpmとは パッケージ管理システム。 パッケージとは、すごくざっくりいうとwindowsでいう「ソフトウェア」にあたる。 rpmはそれを管理するシステムなので、 linuxに何かパッケージをinstallしたり、 uninstallしたりするときに使用する。 rpmを使用してみる -…

lddコマンドでプログラムが参照している共有ライブラリ一覧を取得する(LPIC対策)〜依存関係とは何か〜

共有ライブラリとは 共有ライブラリとは、 「いろんなプログラムから使えるプログラムの部品」 実際に共有ライブラリをみてみる たとえばvimが使用している共有ライブラリ。 $ ldd /usr/local/bin/vim linux-vdso.so.1 => (0x00007ffcae5e8000) libm.so.6 =>…

エクスペクト・パトローナム!守護霊よ来たれ! くらいわかりやすい呪文「git push origin master」

Gitコマンド、呪文みたいだよね みなさんこんにちは。 git push origin master Git、いきなり使い始めると、 Gitコマンドがただの呪文のように見えますよね。 Gitコマンド使い始めの頃は、 ハリーポッターででてくる浮遊呪文 「ウィンガディアム・レヴィオー…

早とちりプログラマの失敗から学ぶデザインパターン(Factory Method:適用後)

このシリーズについて このシリーズは 後先のことをなにも考えずに実装してしまう『早とちりプログラマ』 と すぐに仕様変更を加える『後出し上司』 のという魅力的な2人から、 デザインパターンの有用さを学んでいこうという素敵な企画です。 (早とちりプ…

早とちりプログラマの失敗から学ぶデザインパターン(Factory Method:適用前)

このシリーズについて このシリーズは 後先のことをなにも考えずに実装してしまう『早とちりプログラマ』 と すぐに仕様変更を加える『後出し上司』 のという魅力的な2人から、 デザインパターンの有用さを学んでいこうという素敵な企画です。 (早とちりプ…

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 冬だと暖かいからいいけど夏…