夜の歌

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

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

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

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

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

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

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

開発日記③

相変わらず、音楽レビューサイトを作り直し中。今は、UIをいじっているけど、なかな綺麗な形にはならない。ただ、HTMLとCSSの仕様の理解が進んできてて実装自体は楽しい。デザインについて、参考になる本を買ったので、色々と試してみる。

誰も教えてくれないデザインの基本

誰も教えてくれないデザインの基本

結局、何をゴールにして、Webアプリケーションを作っていくか。難しいけど、試行錯誤は楽しいところ。効率は、目指すのは当たり前だけど、とりあえずやってみないと。やってみて、結果をみて、考えて、修正して、再度やってみる。その連続。


今、他に『 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践』を読んでいる。読み終えたら、感想書きたい。

開発日記②

今、色々とやりたいことがあるけど、順番は上手くやりたいな。一番はLaravelの本を読んで、Laravelのことを理解していく。他に、GItのコマンドの確認、ターミナルの仕組み、MySQLについてなどをやっていきたい。

開発日記①

会社ではVagrantを使ってローカル開発環境を作り、開発している。Webサーバーは、Laravelのビルトインサーバー。昨日、ビルトインサーバーを終了しないで、Vagrant haltを行なった。そして、Vagrant upをして仮想環境を立ち上げて、ビルトインサーバーを動かそうとしたら、動かなかった。色々と試した結果、ターミナルを再起動をしたら、ビルドインサーバーが動いた。いやぁ、原因を追求したい。

ターミナルとは何か、など、調べると面白そう。