現状と今後に関して

定食屋で瓶ビールで一杯やりながらブログの記事を書く。
憧れていた自分とは少し違うけれど,我ながら大人になったなと思う。

現状

現在,26歳で年収は300万程度。
IT業界に所属しているが,あまり技術があるとは言えない。
彼女と別れたら自分には話し相手すらいなかったことに気づいた。でも,遠方に住んでいる家族や友達と話すきっかけができて,本当は孤独ではなかったんだと気づかされた。
「周りに恵まれている。こんな俺なのに」と最近思っている。

これからどうしていきたいか?

とりあえず,転職は決まった。
1月末に想像以上に長居をしてしまった浜松を離れて東京の会社にお世話になる予定だ。
「どういう形であれ」,俺はとことんやってやるつもりだ。

それが自分の能力に関して,あるいは,人間的な面での苦悩だったとしても
とことんやってやろうと思っている。

甘さと優しさを履き違えていた自分を戒めるためにも,
死ぬ気で苦しんで,苦しんで,成長しようと思っている。

以上

PHPのお勉強

2月からWeb業界に転職するつもりなので,PHPの勉強をしている。

基本的にはバスと電車の中で本を読んで,
帰りにコーヒー屋で手を動かしてアウトプットという感じで進めている。

読んでいる本はコレ
一周目が終わって内容を理解したので,アウトプット中。

開発用サーバ: http://52.194.187.169

文法等については後日まとめる。
きちんと寝て,明日に備えよう。
やってきたこと,考えてきたことを出せればいい。

結果はどうあれ,あの日から全力でやってこれた。

以上


ネットワーク関連の勉強内容

今日勉強した内容について走り書き

プログラムのことについて,勉強しようとするとついつい書くのに夢中になってまとめる時間がなくなってしまう。

1時間勉強したら40分は勉強,20分はまとめる時間を取らないとだめだなぁ。

ドメインとか名前解決とか

名前解決

www.nekonisi.comを名前解決しようと思ったら下記の手順になる。

  • Client: nekonisi.comってどこよ? > ルートサーバ
  • ルートサーバ: わからんけど,comのこと知ってんのはコイツら > Client
  • Client: nekonisi.comってどこよ? > comのこと知ってるサーバ
  • comのこと知ってるサーバ: 13.231.122.238やで。 > Client
  • Client: サンガツ

ルートサーバ

DNSの頂点のサーバ。

全部で13クラスタある。

下記で確認できる。

PING *.ROOT-SERVERS.NET

もし,世の中をメチャメチャにしたければ,
この13クラスタを潰せば世界中のインターネットは止まる。

ping A.ROOT-SERVERS.NET



A.ROOT-SERVERS.NET [198.41.0.4]に ping を送信しています 32 バイトのデータ:
198.41.0.4 からの応答: バイト数 =32 時間 =167ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =81ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =71ms TTL=49
198.41.0.4 からの応答: バイト数 =32 時間 =66ms TTL=49



198.41.0.4 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 66ms、最大 = 167ms、平均 = 96ms

TLD(Top Level Domain)

ルートサーバがボスだとしたら,中ボス。
www.nekonisi.comcomの部分。

ルートサーバの次にたらいまわしにされるサーバ。

2LD(2nd Level Domain)

www.nekonisi.comnekonisiの部分。

wwwの必要性

元々は同じドメインでも

HTTP nekonisi.com 192.○.○.○ -> www.nekonisi.com

SMTP nekonisi.com 192.△.△.△-> smtp.nekonisi.com

POP3 nekonisi.com 192.□.□.□-> pop.nekonisi.com

という風に分けていた名残。

以上

host名を設定

IPをいちいち覚えていられないので,
host名を設定する。

  1. vim /etc/hostsで下記の書式に従って設定を追加する。
    1. IPアドレス 任意のhost名

WordPressの新しいエディタ正直使いにくい。

以上

AWSで簡単にwebサイトを

新しくデザインパターンの勉強でもしようかと思って,
Webサイトを作ったので導入方法だけまとめとく

1. lightsailでインスタンスを作成する。

詳細は省略

centosで作った。

2. sshで接続する

ブラウザでも接続できるけど,動きがモッソリしているのでgit-bashで接続した。

  1. アカウントページからpemファイルをダウンロード
  2. 任意の場所に保存(~/.ssh/hoge.pem)
  3. ssh -i ~/.ssh/hoge.pem user@host

3. (L)AMPのインストール

sshで入った後に,

sudo yum install -y httpd

sudo yum install -y mysql-server

sudo yum install -y php

でインストールできる。(mysql-serverはインストールできなかった。)

4. デーモン起動

sudo service httpd start

5. 接続確認

任意のブラウザでhttp://(ホスト名)にアクセスする。

6. 動作確認

サーバ内の/var/www/html/にindex.phpなりindex.htmlなりを作成し,再アクセスする。


今回はgithubのリポジトリから落としてくるように設定した。

7. gitのインストール

サーバ側で,sudo yum -y install git

8. Githubに公開鍵を登録

cd ~/.ssh/

ssh-keygenでEnter連打

cat ~/.ssh/id-rsa.pun

コピった文字列をgithubに登録する。

9. リポジトリをclone

git clone git://github/hogehoge

 

本当にサクッと動くもの作るだけだから,セキュリティとかは保証しない。

以上

LinuCの勉強

パイプリダイレクト

0: 標準入力
1: 標準出力
2: エラー出力
3以降: プロセスが開いたファイル

リダイレクション(標準出力)

出力先を変更する場合

1 > hoge : hogeに標準出力のみを出力
2 > hoge: hogeに標準エラー出力のみを出力
& > both: bothに標準出力,標準エラー出力の両方を出力

リダイレクション(標準入力)

  1. cmd1 < fileA: fileAの内容をcmd1に取り込む
  2. cmd1 < fileA | cmd2: fileAの内容を標準入力からcmd1に
    取り込み出力結果をcmd2に標準入力で渡す。

特殊なファイルや記述

<< here document

cat << eos:指定した文字列が現れるまでの内容を,コマンドの標準入力として扱う。

dev/null

読み込むと常にEOFが返ってくる。


tac

ファイルの内容を最後の行から表示する。


tee

標準入力を別のコマンドとリダイレクトすると同時に,ファイルも格納することが可能。

利用方法

標準入力から読み込んだデータを標準出力とファイルに出力する。

nl /etc/passwd | tee myfile.txt| head -3

パスワードをmyfile.txtに出力すると同時に,先頭3行を表示する。


コマンド同士の結合について

cmd1;cmd2

cmd1実行後,終了コードに関係なくcmd2を実行

cmd1&&cmd2

cmd1の終了コードが0ならば,cmd2を実行

cmd1||cmd2

cmd1の終了コードが0でなければ,cmd2を実行

※ 終了コードは, echo $?で確認可能


grepコマンド

オプション

-v : パターンに一致しない行
-n: 行番号を出力
-l: パターンに一致するファイル名
-i: 大文字,小文字を区別しない


headコマンドに関して

  • デフォルトで10行分出力
  • -100 で100行出力

trコマンド

標準入力から,入力した文字を指定したフォーマットに変換する。

例) 小文字のアルファベットを大文字に変換する。

tr ‘a-z’ ‘A-Z’
キーボード入力: hello
出力: HELLO

例) -dオプションで一致した文字を削除する。

tr -d ‘my’
キーボード入力: My name is yuko
出力: M nae is uko

※ ファイル指定は不可


sedコマンド

  • 単語単位の変換や削除にはsedコマンドを使用する。

メモ

エンジニアのための時間管理術で書いてあったので
常に,メモとペンを持ち歩くことにした。

脳内のリソースをROMとして使用するよりは,RAMとして使用したほうがいい。というような理屈だった。
ROMとしての役割は,メモとペンで事足りるでしょ というようなことだった。結構,納得した。

確かに,悩み事や,タスクが溜まっていると目の前のことに集中できなくなるし,効率が悪い。
それなら,とっとと悩み事を潰すか,タスクを忘れないようにメモをして目の前のことに集中したほうがずっとスマートな生き方だ。
なので,紙とペン,おすすめ

メモを見返してみると意外と面白い。

  • たまに,コンビニでコーラ買って外で飲むと自由を感じて旨い。
  • 姉ちゃんが,すき家のテイクアウトで,ミニを二つ頼んで,2つとも食う話を思い出して一人で笑う。
  • 結局,すき家か吉野家にいってしまう。

とか,くだらないことを書くのも面白い。

以上

LinuCの勉強

メモ書きを転記

プロセス

実行中のプログラムのこと

  • システム上では,常に複数のプロセスが稼働している。
  • コマンド実行で,プロセスは産まれ,プログラムの終了とともに消滅する。

プロセスの生成に関する手順

新しいプロセスは,親プロセスが自分のコピーである子プロセスの生成をカーネルにリクエストし,次に生成された子プロセスの中身が新しいコードに入れ替わる。

プロセスに関連するコマンド

ps: プロセスの情報を表示する基本的なコマンド

pstree: プロセスの階層構造を表示する。

top: プロセスの情報を周期的にリアルタイムに表示する。

プロセスの優先度について

nice値

優先度を表現する指標

プロセスの優先度

CPUによる実行を待つ複数のプロセスのうち,どれを実行するか?

  • niceコマンドで優先度を変更して,実行する
  • 実行中のプロセスから変更する場合は,renice または top コマンドを実行する。

シグナルについて

  • SIGHUP(1): 端末の切断によるプロセス終了
  • SIGINT(2): 割込みによるプロセスの終了
  • SIGKILL(9): 強制終了によるプロセスの終了
  • SIGTERM(15): Default
  • SIGCONT(18): 一時停止したプロセスの再開

killコマンドについて

kill コマンドで,プロセスを指定する場合は,killallを使用する。

基本コマンドとファイル操作

シェル変数

設定されたシェルのみが使用できる変数
setコマンドで確認する。

環境変数

設定されたシェルとその子シェルで起動したプログラムが使用する変数
envコマンドで確認する。
declare -xまたは,exportで設定可能。

 

以上

エンジニアのための時間管理術を読んで

まず,今日はとてもいい日だった。
起きる時間は少し遅くなってしまったが,布団も干せたし
色々なものも捨てることができた。

本屋に行き,資格勉強でもしようかな と思っていたが,
ふと,下記の本が気になったので読んでみた。

エンジニアのための時間管理術

システム管理者がユーザからの依頼と開発を両立させる方法を考えていく本だった。

以前,客先常駐で社内SEとして,業務を行っていた時,
常にトラブル対応に追われて,開発が全く進まなかった。

まぁ,愚痴を言っても仕方ない。

この本の中に,
「プライベートでも仕事でも同じ方法でタスク管理すべき」との内容が書かれていた。

明日から実践しようと思う。
事細かに明日の予定を決めてGoogleカレンダーに入れておいた。

完璧にこなせるように準備を万端にして寝よう。

毎日頑張ろう。

以上