エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

インフラ勉強メモ『2018/01/09』

機能要件と非機能要件

機能要件→システムの機能として求められる要件。これは何が出来る?ってお話。
非機能要件→セキュリティや運用正等、機能要件以外のものを指す

アプリケーションエンジニアは機能要件を達成するために頑張るとかは一概には言えない感じなのかも。
解決したい課題にフォーカスしたのが機能要件なのかな。

ミドルウェア

サーバOS上でサーバが特定の役割を果たすための機能を持つソフトウェアのこと。

・・・後で調べ直すの必須だなぁ・・・

パブリッククラウドプライベートクラウド

パブリッククラウドAWSとか、IaaS、PaaS、SaaSとかのやつ。
クラウドサービスの中でも、物理的に他と共有しない独立した環境で、かつクラウド上にあるものがプライベートクラウドかな?

EC2とかで物理的に他とシェアしない専用のスペース用意するやつとかがプライベートクラウド・・・たぶん?

サイジング

トラフィック(通信量)に応じて、サーバのスペックやネットワーク帯域を見積もるの設計のこと。

このシステムだと、これくらいのスペックが必要だ!みたいなやつ。

MACアドレス物理アドレスイーサネットアドレス

ネットワークのチップとかに割り当てられたアドレス。前半24bitはメーカー、後半は重複しないように割り当てられてる。

つまり、各メーカーは16,777,216までしか製品を作れない・・・って十分か?十分じゃなかったら前半のメーカーのbitを複数持ったりするのかな。A社はこれとこれとか。

OSI基本参照モデル

( ゚∀゚)・∵. グハッ!!

や、やばい、これ何度も見てるのに未だ覚えられてないのマズすぎるでしょ・・・

アプリケーション層、プレゼンテーション層、セッション層、トランスポート層ネットワーク層データリンク層物理層

■コードを繋いで、有線の通信(Ethernet)、インターネットでIPとか検索、ハンドシェイクで通信確立(TCP)、セッションという一括りで通信の内容を固めて、どんな形式でデータを送るかを定めて、アプリケーション層で入出力!

・・・なんかびみょーに違う感。調べ直し・・・

  1. 物理層→ケーブルやコネクタの形状とか。
  2. データリンク層MACアドレスとかで同一ネットワーク間の通信規程。
  3. ネットワーク層→ルーティング。どこと通信するかとか。IPアドレスこれ
  4. トランスポート層→データ転送の制御。エラー検出等。
  5. セッション層→コネクション確立やデータ転送のタイミング規程。RequestとResponse。
  6. プレゼンテーション層→圧縮や文字コード等の表現形式
  7. アプリケーション層→HTTPとかの通信規程レベル

全然ちげええええ今すぐ消したいレベルだけどあえて残して私の戒めにしよう・・・はい・・・いい復習になりますね・・・

コードの形、ローカル通信、ネットワーク通信、ハンドシェイク等の通信形式、RequestとResponseのタイミング調整、具体的なデータの形式、データの送信形式・・・

・・・うん、もう一度勉強し直さなきゃ・・・

ここまで

この本のP14までで気になったものメモ。少しずつ読み進めよう。

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化(WINGSプロジェクト阿佐志保 山田祥寛)|翔泳社の本

インフラ側の知識も手に入れるべき・・・?【87日目】

今日はdockerで環境構築・・・したかった人生だった。

今日はWeb漁ってDockerでとりあえず環境構築をすることを学ぼうとして・・・出来なかった。

そもそも、単語で???ってなってるし、基礎を学んでないんだからそりゃそうよね・・・

身近で使っているものの仕組みがわかってない

PHP-fpmとnginxってよく聞くけど・・・

qiita.com

ここで突っ込まれてるのそのままな私。Laradocとかで簡単環境構築!ってしてた私には、ここらへんを今まで一度も触ってなかったなと。

先輩からコピペをやめようと言われたわけでして。なので、ちゃんと理解してdockerファイル作らなければ。

その学習は『今』本当に必要?

基礎を手に入れるために、いろいろ勉強しようと動いたわけですが。
フロント周りだけを学べばいいのか?それともdockerについても学ぶべきなのか?

そこら辺取捨選択しなきゃスピード持って学べないし、少し考えようと思いながら、とりあえずネットあさってます。
でも、出来れば本とかで基礎しっかり勉強したいところ。

ゴールを考えて、スケジュールを立てなければ

投資する時間がどれくらいなのかも考えるべき。

作ってみたいものメモ - エンジニアのひよこ_level10

例えば、この前の記事の静的なWebページを作るまでが目標なら、各ステップに何日かけるかを考えないといけない。

ステップ1の時点でそれなりに時間がかかるのかもしれない。そのためには、どれくらいかかるのか見積もらなきゃいけない。
そのためには、自分がどれくらい知識があるのかも考えないといけない。

たぶん、今の私では『学ぶ時間』が見積もれない。だから、先輩に相談してみるのもあり。

そのための判断材料を探しておかなければ。

日記

一から何かを作ることを意識すると、自分がどれくらい知識と技術がないかを痛感させられる。

この前の作ってみたいものメモは、書いてよかったと思う。そこに必要な技術が何かを明らかにして、そこに足りない知識を少しずつ確認していきたい。

あーこう考えると勉強の時間もっとしっかり取らなければなーって思えた。やっぱり出力、メモって大切。

新しいことを始めるvs今の知識を深める【86日目】

今の悩み

昨日作りたいメモ書きました。
見た方は気づくと思いますが、私が仕事で使うものを自分一人で作って理解を深めようという目的でした。

ただ、今友人のプロダクトなど、新しい技術に触れる凄くいい機会が目の前にあります。

貴重な機会に飛び込むのと、地盤を固めること、どっちが大切なのかを昨日の昼にすっごく悩んでました。

地盤を固めるのは仕事しながらでも出来る

安定を取って理解を深めようとするのは良いけれど、それ自体は仕事をしながらでも出来る。

友人に相談して頂いたアドバイスの一つです。

仕事で足引っ張ってるのを何とかするために得られる機会を逃す・・・っていうのももったいないってのもわかる。ってことで結構揺れてます。

まあやる余裕あるかは別だけどね!

ってことで、お仕事の後の時間がどれくらいとれるか、そして得られた時間をどう投資するかを優先度決めてやっていきましょう!

もし仕事忙しければ、そこでどうせPHPとかの知識手に入るわけですしね!

日記

ってことでめちゃめちゃ昨日今日悩んでました。

まあ、何にしてもとりあえず動こう!どちらにしろ動くことに損はない!

仮想通貨投資に手を出してみようかなと。【85日目】

動機は仮想通貨の流れ知ること

仮想通貨がいろいろ世間を騒がせているってことで・・・

で、何が起こってるかわかんない。調べるにしても何から調べたらいいのやら。

そんな風に思ってたら、とりあえず会社の人からまずは買ってみること。そしたらわかる。

ってことで、とりあえず取引所登録しようってことで今申請中。

取引所?販売所?

んでもって、とりあえず買う環境作ろうと思ったら、取引所だったり販売所とかなんか違う!?ってことがわかって。

私が登録したのは取引所でした。

なので、『買います!』『売ります!』みたいな値段リストとかが目まぐるしく動いてるわけですね。株もこんな感じなのかな。

詳しくはまだわからないけどとりあえず勉強!

API使って何か作ろうぜ!の前に何が起こってるかわかんないから、それを知るためにまず当事者になります!

ってことでこれからそこで得た学びもブログに書こうかなって思ってます。

日記

何かをするにあたって、目的を考えるようにしようと思ってたり。

プログラミング勉強ってことで、他の人のプロジェクト入ろうとしてたけど、本当に勉強したいのはそれなのかな?必要かな?とか考えたり。

まあ、やらないよりやったほうがいいのは間違いない。ただ、それ以上にやりたいことが今目の前にある。

うむ。ちゃんとそこら辺は他の人と相談しながら決めよう!あくまでこれは私だけで考えたお話だしね。

作ってみたいものメモ

ぶっちゃけ、作る前から諦めてしまいそうな私がいるので、
ここでアウトプットすることでモチベーションを生み出そうとかいうそういうやつ

やりたいこと

おすすめ音楽をみんなでシェアするページ

ステップ1

  1. Dockerで環境構築
  2. GCPで公開

ステップ2

  1. 静的なWebページ作成
  2. 自分の好きな音楽を静的に公開
  3. Sass、bootstrapを使う

ステップ3

  1. 公開する情報をデータベースで保持
  2. フォームから追加可能にする
  3. テストコードも書く

#ステップ4 1. 管理画面を作る 1. ログインを可能にする

ステップ5

  1. 新規登録を出来るようにする
  2. ユーザーが自由に登録出来るようにする
  3. 利用規約作る・・・

ステップ6

  1. ソーシャルログイン
  2. twitterbot作成

ステップ7

  1. アナリティクス入れる
  2. GAイベント入れる

ステップ8

  1. ABテスト出来るようにする(技術習得目標に)

感想

うへぇ・・・こう考えるとやること多い・・・
すっごい単純なページを作るだけでもこれだぜ・・・大変だね。サービス作るって・・・

LaravelのsortByとorderByの使い所【84日目】

sortByとorderByの違いって?

sortBy()の使い所は、コレクションをソートする時に使います。
orderBy()where()とかと同じで、データベースから取得する時に使います。

使い方の違い

$query->get()->sortBy('id');
$query->orderBy('id')->get();

この2つの文がありますが、sortBy()get()してから使います。
まあ、コレクションに対してやるんだからそうよね。

orderByのいいところ

getは極力最後に使いたいので、

$query()->where('id', $id)->orderBy('created_at');

いろいろ書く
$query->get();

って書いた方が見やすかったり、処理わかりやすかったり、柔軟だったり

そもそも引数がコレクションのこともあるかもしれない

function (Collection $items) {
$items->sortBy('id');
}

引数がコレクションなら、そもそもsortByの方しか選択肢ないよねっていう。

同じことが出来るなら、正しい方を選ぶ癖つけよう。

getfirstとか、plucklistsとか。最終的に同じこと出来るなら、より短くてわかりやすいやつを選ぶ方が良いよね。

そのためにも、Laravelではどんなこと出来るんだっけっていうのを元のソースコードやドキュメント読んでちゃんと知っておかなきゃって思った1日でした。

日記

とうとうVSCodeを卒業して、IDEに手を出す日が来てしまいました・・・

ってことで、今後IntelliJを使う練習する予定です。

自分のPCにも、PHPStorm有料で買うのも視野。お金かけて何かを買うのは、
何かを始める動機、やらない理由を塞ぐことにも繋がるので、
自分への投資って大切。

こうやってブログ書くのも、PCを高い金で買って自分にプレッシャーかけたのがきっかけだし!

今日の運動

ごめんなさい、予定があって運動どれくらいやるか未定いいいいい

せ、せめてエアロバイク3.0kmはやる予定!

配列の中に配列が入っている時のforeach書き方2つ【83日目】

普通ならこうだし、これでも良いんだけど

foreach($array as $items) {
  echo 'first: ' . $items[0] . PHP_EOL;
  echo 'second: ' . $items[1] . PHP_EOL;
}

f:id:willow710kut:20180104223934p:plain

こんな書き方もあるよ

foreach($array as list($a, $b)) {
  echo 'first: ' . $a . PHP_EOL;
  echo 'second: ' . $b . PHP_EOL;
}

f:id:willow710kut:20180104223842p:plain

ちなみにlistの他の使い方

$func = function() { return array(0, 1, 2);};
list($a, $b, $c) = $func();

f:id:willow710kut:20180104223019p:plain

配列を解体して受け取ることが出来るみたい。

どっちが良い?

ってのが自分でもわからない。見栄えはどっちがいいかな。

順番に対して大きな意味とかあるのであれば、前者が良いかも?
ただ、それならキーを入れたい気もする。

どれがどういいかはまだわからないので意見ほしいかも。

日記

仕事始まりましたね。

やっぱり気分が違う。楽しい。けどやっぱり壁はいっぱいあるわけで。

そういや、同期と新規事業こんなの出来ないかなってお話してました。
まあ、似たのあるのはそうなんだけど、マネタイズとか、提供方法とか考えれば
どこかで差別化、優位性とか出せて住み分け出来るかもってお話してた。

どうやったら世の中のためになるのかなーとか。問題解決出来るのかなーみたいなことを
これからも考えるのをやめないでいたいですね。

今日の運動

腹筋ローラー5回(朝)
エアロバイク 3.0km(今から)

Web業界って今後どう変わるのかなって考えてました【82日目】

テキストってどれほど重要かな。

■たくさんの文字を読むより、一枚の絵を見たほうがわかりやすい。
これに覚えがある方も多いと思います。

プレゼンテーションは文字を少なく。むしろ画像だけでいい。
文字の説明より漫画の方がいい。

いろんな例があると思います。
そう考えると、いかに図や絵、あるいは動画がネットに溢れるかが大切なのかなとか。

ただ、これらは制作に時間と労力がかかります。だからいかに供給できる環境を作れるかが次のステップになったりするのかなって考えていますが、まだ思いつくアイディアは全て二番煎じ・・・

まあ手っ取り早くやれる方法なんて私が一人で考えたところで他の人がやってるに決まってるよね\(^o^)/

AIにYesNoを正しく回答させることは可能か

■『なぞなぞ』があって、それに対する質問を正しく答える事ができるか?
AIに求めるアウトプットは3択。『Yes』『No』『わからない』

このたった3つのアウトプットに絞れば正しい回答を返せるかを考えてみた。

でもこれ、人間にすら難しい。
だって、インプットとなる『質問』がすでに間違っていたらどうしようもない。

そもそもに、この3つの回答の内に正しい選択肢が存在するかわからない。YesでありNoである質問をされたらどないせいっていう。

インプットを絞る。つまり質問は限られた選択肢にすることは簡単だけど、ユーザーの満足度が云々とかいろいろ考えてました。

日記

私の好きな遊びに『ウミガメのスープ』『水平思考ゲーム』ってものがあって、

■○○でこんな事件が起こりました。と出題者が出来事の説明をする
■YesかNoで答えられる質問を出題者にして、真相を当てる

そんなゲームです。これをAIに任せられないかとかいろいろ考えてた。

身近なものをAIに置き換えることを考えようとしたけど、なかなか難しい気がする・・・少なくとも私がさっと作れるものじゃなさげ。

んー新しいものを考えるって難しいね。

今日の運動

エアロバイク 3.0km