夜の歌

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

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

開発日記④

今、Laravelの本を読んでいる。

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

何のために読んでいるかというと、Laravelのアーキテクチャを理解するために読んでいる。じゃあ、何故、理解する必要があるのか。それは、Laravelを使いこなして、Webアプリケーションを作りたいから。

じゃあ、本をただ読むだけで、Laravelのアーキテクチャを理解することはできるのか。それは、難しいと思う。だから、本を読むだけじゃなくて、自分なりに文章を書いてみるといいかもしれない。それと、実装してみる。ちょい、ちょい進めていこう。

あと、今年は、アウトプットの質を高めたい。どうにかしていこう。