夜の歌

プログラミング、音楽、本について緩く書いていきます。

風邪で死んでた

先週から風邪を引いて、治るのに時間がかかった。やっと、治ってきて、集中して何かをやれるのが嬉しい。今、Laravelの設計で迷っている。ControllerやModelの役割はどうするか悩ましい。それにあたって、ちゃんとMVCの考え知りたいが、どこかにいい書籍はないのだろうか。なかったら、自分で考えて設計するしかない。


風邪を引いている間に、『石つぶて 警視庁 二課刑事の残したもの』を読んでいた。

石つぶて 警視庁 二課刑事の残したもの

石つぶて 警視庁 二課刑事の残したもの

機密費を横領した外務省職員を捜査し、謎を追っていく刑事の物語。以前、機密費について話題になっていたことがあったけど、こういう内容だったのね。二課の刑事は、官僚に容赦ないのね。忖度する場面が、ない。 この著者も本が今月出るから、購入しよう。

3月27日の『ヘウレーカ!』を観て

録画していたの3月27日の『ヘウレーカ!』を観た。 www4.nhk.or.jp

DNAやゲノムなどについて、本に例えて説明してあって分かりやすかった。DNAの塩基配列は、本でいうと情報のこと。ゲノムは、本でいうと内容のこと。遺伝子は、本でいうとタンパク質の内容が書かれている箇所のこと。エピジェネティクスは、本でいうとペンでマークされた箇所のこと。やっと、遺伝子に関する用語についての理解のとっかかりができた気がする。

また、番組の中で鳥の鳴き声を研究している鈴木俊貴さんが出ていた。鳥の鳴き声にも、単語と文法があると言う。実際に鳥の鳴き声を繋げて作った音声を流すと、鳥が集まってきたのだ。ちょっと、衝撃。すごい。

しかし、鈴木俊貴さんは、どうやって鳥の鳴き声に文法があるとことに気づいたのか。どうやら、森に半年ほど入って、観察していたら分かったらしい。どういうこと。。そんな人、いるんだねw

そろそろ4月!

息子とお風呂に入っている時に、息子の名前を呼んだら「はーい」と答えた。ちょっと疑問に思ったけど、脳は「は」という音を、どうやって「は」と処理しているのか。調べてみたい。

お昼、近所のイタリアンで食事。初めて食べる味にビビる。ワインも美味しいので、最近ちょくちょく通っている。なんか、雰囲気もいい。4月になったら、また行こう。

『日本の「中国人」社会』

honzのレビューを読んで購入。

中国人は、全て似たような人達だと思っていた。しかし、中国は広く、上海と北京でもかなり違いがあるらしく、日本にいる人に中国の話を聞くときは、注意が必要。 honz.jp

『ミリタリーテクノロジーの物理学<核兵器>』 多田将

発売当初に購入したけど、やっと読んだ。基本的な原子のことから、原子爆弾についてまで書かれている。今まで、原子について全然理解していなかった。

原子は原子核と電子でできていて、原子核は陽子と中性子で作られている。原子は電子があるから、原子同士はぶつかりあえる。電子がマイナスの電気を発していて、反発しあうからだ。基本的なことかもしれないが、理解できたら面白い。

この人の本を、また読んでいきたい。

Laravelの仕様について確認中①

Laravelの仕様について確認中。ログの出力内容とか調べたいけど、今はDBのアクセス方法の確認を行いたい。まとめたら、Qiitaにでも書いていきたい。

LaravelのhasManyを使ってリレーション関係を定義し、外部キーに主キー以外を設定して情報を取得したかったけど上手くいかなかった。まずは、これから調査する。

Laravelのログについて調査中①

Laravelのアプリケーションログの出力内容を調査。PHPエラーは、どのレベルのものが出力されているのか。また、その他にどのような内容が出力されるのか把握したいので調査。
■確認したいPHPエラー
 ・実行が中断
  ・E_ERROR:致命的なエラー
 ・実行は継続する
  ・E_WARNING:警告
  ・E_NOTICE:注意
  ・E_DEPRECATED:非推奨・廃止予定の記述
 ・実行されない
  ・E_PARSE:シンタックスエラー

参考記事
PHPのエラーの種類 - Qiita


Laravel5.7系を使っているので、5.5系と設定が違う模様。とりあえす、ログファイルへの出力内容が設定箇所を確認する必要がある。

Dockerの導入②

Dockerを導入中。調べた内容を、書いてみる。

・イメージ
Dockerの設定について書かれていて、コンテナを実行するためには、ビルドしないといけない

・コンテナ
ビルドしたイメージを使って、コンテナを起動する

イメージと、コンテナについての使い方は理解してきたのか。あとは、イメージとコンテナの詳細な内容を理解したい。

Dockerの導入①

今、Vagrantを使ってローカル環境の構築を行なっているけど、どうしても動作が重いからDockerへ移行を検討中。Laravelも使うから、Laradockを使ってやることにした。

laradock.io

Laradockのページに記載されている手順通りにやったが、Laravel側からMySQLへの接続が上手くいかない。どうやら、MySQLのバージョンが8系に上がって、セキュリティが強化されたのが原因ぽい。

blog.websandbag.com
MySQLのバージョンを固定するしかないのか。

PHPのinterfaceの理解①

PHPインターフェイスをどの場面で使えばいいのか分からなかったので、サンプルコードを書いてみた。

サンプルコードの内容は、国の情報を扱うクラスがあって、そのクラスには2つのインターフェイスを設定する。1つ目のインターフェイスは、言語を扱うメソッドを管理する。2つ目のインターフェイスは、宗教を扱うのメソッドを管理する。

<?php
/**
* 言語を扱うメソッドを管理するインターフェイス
*/
interface Language{
    /*
    * 言語を取得する
    *
    */
    public function getlanguage();
}

/**
* 宗教を扱うメソッドを管理するインターフェイス
*/
interface Religion{
    /*
    * 宗教を取得する
    *
    */
    public function getReligion();
}

/**
* インドの情報を扱うクラス
*/
class India implements Religion,Language
{
    /*
    * 言語を取得する
    *
    * return string
    */
    public function getlanguage(){
        return 'ヒンディー語';
    }

    /*
    * 宗教を取得する
    *
    * return string
    */
    public function getReligion(){
        return 'ヒンドゥー教';
    }
}


$india = new India();
echo $india->getlanguage() . "\n";
echo $india->getReligion();


出力

$ php test.php
ヒンディー語
ヒンドゥー教


インターフェイスは、ある情報を扱うクラスに必須のメソッドを実装させるために使う感じか。ちょいと理解。

※参考 qiita.com