むらじゅん風呂具

ITエンジニアとたまに歌手と司会などで活動する村中淳のブログ

2018年総括

思いつくものをさらさらっと書いてみる。

気づき知った1年

仕事でやりたいことがあるも、いろんなしがらみがありうまいこといかず。 声をあげて意見を言うことは忘れずも、「実力がすべて」だということなので、 学習を怠らず実績を作ることを2019年は意識して取り組みたい。

デレステがとても好きになる

もはや綺麗に1年続くと思ってなかったデレステ。 予想以上に曲が良かった。ありがとうMONACAさん。 今では高垣楓さんが大好きで、トリニティーフィールドの3人がお気に入り。 課金にとても躊躇してたけど、月に三千円くらいならどうってことないなあと思うようになる。

歌う機会をいただく

巡り合わせがよかったなあと思う、アークさんの30周年記念社歌へのサブボーカル参加。 レコーディングから撮影まで一切緊張しないで楽しんでた。

www.youtube.com

これに応募しようと思ったのはギルティをやってたことが大きい。 やるのも続けているのも、いま付き合っている友人ありきなので実のところ、 その人たちにはとても感謝している。 これからもどっかで「ステージ」には縁があればいいなあと思うので、 興味があるものにはどんどん飛び込んでいく。 併せて自己鍛錬も欠かさない。

思ったより給料が上がってなくて悲しい

さっき1年前の給料明細書を見返して悲しくなる。 来年は会社に有無言わさないくらいの実績を作ろう。 そして、「選択肢」も同時に持てるようにしておき心の余裕を持つ。 「余裕」、とても大事。

時間がある時にゆったり手帳見返しながら、もうちょい追記しよう。

Ansible 入門 備忘録

ドットインストールさん、お世話なってます。

https://dotinstall.com/lessons/basic_ansible

習ったことのメモ。

ドットインストール Ansible 入門

Ansibleの良いところは、管理するサーバにansibleをいれて、 操作したいサーバへ公開鍵認証してしまえばチャチャっと行えること。

Inventory ファイルの作成

処理対象となるホストを記述するグループ分けすることが可能

[web]
192.168.43.52

[db]
192.168.43.53

コマンド 対象ホストにpingを飛ばす

ansible all -i hosts -m ping

・オプション

-i → Inventory ファイルの指定

-m → モジュール指定

Inventory ファイルの指定は省略可能

ansible.config にてファイルを指定

vi ansible.cfg
----- 編集内容
[defaults]
hostfile = ./hosts
----- 編集終了後は以下でおけ
ansible all -m ping

Playbook の活用

サーバのあるべき状態を記述したもの

→ 冪等性(ある操作を1回行っても複数回行っても結果が同じであること)

vi playbook.yml
---編集内容---
- hosts: all
  sudo: yes #sudo権限が必要な場合にyes
  tasks:
    - name: add a new user
      user: name=murajun

実行コマンド

ansible-playbook playbook.yml

absent

ユーザがいない(いる場合には削除がされる)

---
- hosts: all
  sudo: yes
  tasks:
    - name: add a new user
      user: name=murajun state=absent

文法チェック

ansible-playbook playbook.yml --syntax-check

タスク確認

ansible-playbook playbook.yml --list-task

テスト実行

ansible-playbook playbook.yml --check

変数

ユーザ名を変数で管理する

---
- hosts: all
  sudo: yes
  vars_prompt:
    username: "Enter username"
  tasks:
    - name: add a new user
      user: name={{username}}

MWの設定

web サーバに対してのみ行うので、新しいセクションを作成する。 yumモジュールにて、名前とlatest(最新版)を指定。 さらにサービスモジュールで起動と自動起動設定をする。

---
- hosts: all
  sudo: yes
  tasks:
    - name: add a new user
      user: name=murajun state=absent

- hosts: web
  sudo: yes
  tasks:
    - name: install apache
      yum: name=httpd state=latest
    - name: start apache and enabled
      service: name=httpd state=started enabled=yes

htmlファイルを転送する

htmlファイル内容

<html>
hello from ansible!
</html>

playbookの内容変更

---
- hosts: all
  sudo: yes
  tasks:
    - name: add a new user
      user: name=taguchi
    - name: install libselinux-python
      yum: name=libselinux-python state=latest

- hosts: web
  sudo: yes
  tasks:
    - name: install apache
      yum: name=httpd state=latest
    - name: start apache and enabled
      service: name=httpd state=started enabled=yes
    - name: change owner
      file: dest=/var/www/html owner=vagrant recurse=yes
    - name: copy index.html
      copy: src=./index.html dest=/var/www/html/index.html owner=vagrant

recurse=yes

再帰的にディレクトリオーナーを変更してくれる

src

→コピー元

dest

→コピー先

インストールされていないとのエラー

~省略~

(libselinux-python) aren't installed!

なので、playbookに以下内容を追記している

- hosts: all
  sudo: yes
  tasks:
    - name: add a new user
      user: name=murajun
    - name: install libselinux-python
      yum: name=libselinux-python state=latest

変数を使ってインストールをする

yum: name={{item}} state=latest」と書いて、 その下に「with_items:」というのを作って、 その下に item にインストールするパッケージをリストとして作成

    - name: install php packages
      yum: name={{item}} state=latest
      with_items:
        - php
        - php-devel
        - php-mbstring
        - php-mysql

インストール後の再起動

notify:
        - restart apache
  handlers:
    - name:  restart apache
      service: name=httpd state=restarted

※handlers は最後に1回だけ呼ばれる。 複数箇所からrestart apacheを呼ばれても、 handlers が呼ばれるのは最後の1回のみ。

PHPを動作させる

copyモジュールを使って、hello.phpを作ってweb側に転送する。

- name: copy index.html
  copy: src=./index.html dest=/var/www/html/index.html owner=vagrant

hello.php ファイル内容

<?php

echo "hello from PHP!";

作ったplaybookを動かして結果を確認する。

MySQLの導入

playbookにDBサーバ用のセクションを作る。

- host: db
  sudo: yes
    tasks:
        - name: install mysql
          yum: name=mysql-server state=latest
        - name: start mysql and enabled
            service: name=mysqld state=started enabled=yes

MysqlでDBとユーザ作成

- name: create a database
    mysql_db: name=mydb state=present
- name:  create a user for mydb
    mysql_user: name=dbuser password=dbpassword priv=mydb.*:ALL state=present

python mysqldb がないとのエラーが発生。 playbookにインストールを加える。

- name: install mysql
    yum: name={{item}} state=latest
    with_items:
        - mysql-server
        - MySQL-python

playbook.ymlの内容まとめ

---
- hosts: all
  sudo: yes
  tasks:
    - name: add a new user
      user: name=taguchi
    - name: install libselinux-python
      yum: name=libselinux-python state=latest

- hosts: web
  sudo: yes
  tasks:
    - name: install apache
      yum: name=httpd state=latest
    - name: start apache and enabled
      service: name=httpd state=started enabled=yes
    - name: change owner
      file: dest=/var/www/html owner=vagrant recurse=yes
    - name: copy index.html
      copy: src=./index.html dest=/var/www/html/index.html owner=vagrant
    - name: install php packages
      yum: name={{item}} state=latest
      with_items:
        - php
        - php-devel
        - php-mbstring
        - php-mysql
      notify:
        - restart apache
    - name: copy hello.php
      copy: src=./hello.php dest=/var/www/html/hello.php owner=vagrant
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

- hosts: db
  sudo: yes
  tasks:
    - name: install mysql
      yum: name={{item}} state=latest
      with_items:
        - mysql-server
        - MySQL-python
    - name: start mysql and enabled
      service: name=mysqld state=started enabled=yes
    - name: create a database
      mysql_db: name=mydb state=present
    - name: create a user for mydb
      mysql_user: name=dbuser password=dbpassword priv=mydb.*:ALL state=present

エディタで学ぶ正規表現入門 備忘録

ひと通り実施したのでメモ書き。

https://dotinstall.com/lessons/basic_regexp_v2

正規表現: 文字列の検索パターン

  • 言語やツールで若干の文法の違いがあり

正規表現の文字

検索時に文字そのものを使うこと。メタ文字を使うことで高度な検索パターンを作ることができる

メタ文字

  • 「.」 → 改行を除く任意の1文字を示す

bat cat hat

→".at"とすることで左の単語が出る

This is a pen.

→"."で検索するとすべての文字が出てしまう

"."とすることでリテラル文字(最後のピリオド)だけ検索が可能

→これを エスケープする と呼ぶ

文字種の限定

  • [\d] 数字の0-9を表す
  • [\D] \d以外
  • [\w] a-z、A-Z、0−9、_
  • [\W] \w以外
  • [\s] スペース、タブ、改行など
  • [\S] \s以外 ※大文字は否定形となる

使ってみる

seki, 03-3001-1256
hidaka, 03-3015-3222
hayashi, 03-3017-7889
検索 \d\d-\d\d\d\d-\d\d\d\d
置換 XX-XXXX-XXXX

結果

seki, XX-XXXX-XXXX
hidaka, XX-XXXX-XXXX
hayashi, XX-XXXX-XXXX

hから始まり7文字の名前を伏せ字にする

検索 h\w\w\w\w\w\w
置換 h******

結果

seki, XX-XXXX-XXXX
hidaka, XX-XXXX-XXXX
h******, XX-XXXX-XXXX

量指定子

直前文字の繰り返しを指定

  • {n} n個
  • {min,max} min以上、max以下
  • {min,} min以上まで繰り返し

電話番号の検索は以下になる

検索 \d{2}-\d{4}-\d{4}

携帯番号にもマッチさせる

検索 \d{2,3}-\d{4}-\d{4}

5文字以上の名前をマッチさせる

検索 \w{5,}
  • ? {0,1}という意味
  • + {1,}という意味
  • * {0,}という意味

例 電話番号のハイフン有無両方にマッチさせる

03-3001-1256
0330011256
検索 \d{2}-?\d{4}-?\d{4}

例 文字が入っている場合

TEL03-3001-1256
T0330011256
検索 \w+\d{2}-?\d{4}-?\d{4}

例 すべてのパターンにマッチさせる

03-3001-1256
0330011256
TEL03-3001-1256
T0330011256
検索 \w*\d{2}-?\d{4}-?\d{4}

量指定子の注意点

例 ダブルクォーテーションで囲った文字を検索する

"apple", "apples", "pineapple"

".+" だと最初から最後まで選択された状態になる為、 ? を付ける

検索 ".+?"

位置を指定する アンカー

例 前の通し番号をマッチさせたい

1 taguchi 6
2 fkouji 9
3 seki 8
4 sekiya 7

\d だと末尾の数字もマッチしてしまう 行の先頭を意味する^(キャレット、ハットと読む)を使う

検索 ^\d

例 行の末尾をマッチさせる場合 行の末尾を意味する$(ダラー)を使う

検索 \d$

例 単語のsekiをマッチさせる(sekiyaをマッチさせない)

検索 \bseki\b

選択子というメタ文字

  • abc|123

abc or 124 を選択する

例 以下の2つともマッチさせたい

example.com
example.net
検索 example\.com|example\.net
※これでも可能 example\.(com|net)

文字クラス

以下全てにマッチさせる

bat cat hat
検索 bat|cat|hat
※以下でも可能
(b|c|h)at
[bch]at

大括弧で囲ったものを文字クラスと呼ぶ

  • [abc] a、b、c、の1文字を指す

例 cat 以外にマッチさせる

bat cat hat

[bh]at とすればいいが、単語が増えた場合にマッチしなくなる為 否定を表す ^ を使う

検索 [^c]at

否定の文字を追加する場合は追記する

検索 [^cb]at
  • ^ →[の直後のみ、否定を表す

例 AからFで始まるものを検索したい

A1
Q31
N18
C5
E32
L4
検索 [A-F]\d
※AからFまでの範囲指定
★文字コード表で文字の並びを意識する必要あり

例 番号の区切り記号が異なる場合

03^3015^3222
03-3015-3222
03.3015.3222

^\d{2}[^-.]

→これだと[^が否定を表すので、-か.以外を検索する

リテラル使用で ^\d{2}[^-.] とするも、^-.までという範囲指定でエラーが出る

→^\d{2}[^-.] とすればマッチ可能

. に関してはエスケープ(バックスラッシュをつけなくても)しなくても リテラルとして解釈される

^ は大括弧の後でなければリテラルとして解釈される

最終的な正規表現

^\d{2}[-.^]\d{4}[-.^]\d{4}$

改行とタブ

  • \t タブ
  • \r\n 改行(windows)
  • \r 改行(v9までのmacos)
  • \n 改行(unix、v10以降のmac)
  • \r\n|\r|\n 改行(すべてに対応)

例 空の改行を処理

abc

a
bb
cc


cc
検索 \n+
置換 \n

結果

abc
a
bb
cc
cc

キャプチャ

例 以下のhtmlリンクタグを作る

dotinstall, https://dotinstall.com
google,https://google.com
example, https://example.com

サイトとURLを記憶して置換する際に利用する

検索 .+,\s?.+

記憶する部分を囲う

検索 (.+),\s?(.+)

()で囲った部分は$1、$2で使うことが可能

置換 <a href="$2">$1</a>

結果

<a href="https://dotinstall.com">dotinstall</a>
<a href="https://google.com">google</a>
<a href="https://example.com">example</a>

後方参照

同じ数字が続いた際にマッチさせる

3, 8, 5, 4, 4, 5, 4, 1, 1, 5, 3, 3

検索 (\d),\s\1

覚えさせた値を1にして使う
→後方参照と呼ぶ

AWS 2段階認証(MFA)を導入した

やったことがなかったのでやってみた。

こちらがとても参考になりました。

qiita.com

仕組みはやってみるとわかります。

対象ユーザを作成

IAMのページからサクッと作る。

対象ユーザの認証情報へ。

MFAデバイスの割り当て にある管理をクリック。

MFA デバイス管理ページが出るので、

一番上の仮装MFAデバイスにチェックを入れて続行。

仮装 MFAデバイスの設定ページが出るので、 お持ちのスマホに仮装MFAアプリを入れましょう。

僕は、Google Authenticatorってやつを使いました。

Google Authenticator

Google Authenticator

  • Google LLC
  • ユーティリティ
  • 無料

インストールしたら、先ほどのページある「QRコードの表示」を押して、

導入したアプリで読み取る。

こんな感じで番号が表示されるので、それを設定ページに入力。

※時間経てば別の番号に切り替わるので2つ入れる。

入力後、MFAの割り当てをクリック。

作ったユーザでログインしてみる

アカウント名、パスを入れると「MFA認証」が出るので、

同じようにアプリで番号確認して入力すればログイン完了。

ええやん。

AWSの特徴でUIコロコロ更新変わるのでご了承ください

※2018年11月13日時点の情報

CentOS7 MySQL5.7でのrootパスワード強制変更

mysqlインストール、起動後に接続しようとした際に発生したエラー。

# mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

まずはいつものグーグル先生から辿る。

qiita.com

どうやら、mysql.sockファイルがないことが原因らしい。

# ls -lt /var/lib/mysql/mysql.sock
ls: /var/lib/mysql/mysql.sock にアクセスできません: そのようなファイルやディレクトリはありません

こやつを作る。

# touch /var/lib/mysql/mysql.sock

再度接続。

が!!ダメ!!!

# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

うーん?パスワード入れろってこと?? 入れるわ。

# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

なんでじゃ!? ちなみにパスワードは以下のコマンドで確認可能。

# grep -e 'A temporary password is generated for root@localhost' /var/log/mysqld.log

ここに関しては要わからんだったので、最終的にrootパスの強制変更に落ち着く。

www.rite.jp

mysqlを一旦停止して、–skip-grant-tablesオプションで起動するよう設定。

# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

このオプションは、

サーバーの権限システムをまったく使用せずに開始され、 サーバーへのアクセス権を持つすべてのユーザーに、 すべてのデータベースに対する無制限アクセス権が与えられます。

とのこと。 ※MySQL 5.6 リファレンスマニュアル参照

mysqlを停止して再度起動。

んで試すと入れた!やったぜ!

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

んで、パスワードの設定はこうするらしい。

update user set authentication_string=password("設定するパスワード") where user='root';

やってみる。

mysql> update user set authentication_string=password("***") where user='root';
ERROR 1046 (3D000): No database selected

「自分、データベース選んでないやん」って怒られる。

データベースを選ぶ。

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

変わったので今度こそ。

mysql> UPDATE user SET authentication_string=password("***") WHERE user='root';
ERROR 1054 (42S22): Unknown column `***` in 'field list'

うん?「カラムがないやん」って言われている。

ここも調べてみたら、なんてことはない。

入力した新しいパスワード(***の部分)は、

'(シングルクォート)で括らないとダメ。

直す。

mysql> update user set authentication_string=password('***') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql>

できた!

テーブルの再読み込みを行う。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>

mysqlの再起動をする。 と同時に設定していた、–skip-grant-tablesオプションを解除する。

これ忘れるとmysqlいじっている時にエラーが出るので注意。

# systemctl stop mysqld
# systemctl set-environment MYSQLD_OPTS=""
# systemctl start mysqld

よし、接続する!!

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

ミッションコンプリー。

さらっと書いたが結構時間がかかってしまった。

DBまわりもやりながら覚えないとなあ。

誰かの助けになれば幸いです。

gitとGitHubの復習

gitとGitHubってなんやねん?っとなっている人は、 以下のUdemyコースで無料で学べます。

はじめてのGitとGitHub | Udemy

1回やったきりだったので改めて復習。

Git と GitHub

バージョン管理するもの。 「どのファイルの何を」「誰が」「いつ」「何のために」、これらを変更した履歴を残せる。

Gitの仕組み

変更履歴を時系列順に記録する。 また記録を過去にさかのぼることが可能。 記録する際はコメントをつける。

リポジトリ

変更履歴を記録する場所。 Git init コマンドで新規ローカルリポジトリを作成する。

コミット

個人リポジトリに変更履歴を記録。

プッシュ

共有リポジトリに記録する。

個人のPCで作業をする → コミットする → プッシュするという流れが基本。

プル

共有リポジトリの情報をローカルに同期する。

GitHub

Gitリポジトリホスティングサービス。 要はオンライン上でファイルを預かってくれる。

GitHubの特徴

プルリクエストによるコラボレーション。 要は複数人でファイルの管理がしやすくなる。

基本的ワークフロー

  1. 作業するフォルダにてローカルリポジトリを作成 → git init コマンド
  2. ファイルの変更をステージングエリアへ追加 → git add コマンド
  3. ローカルリポジトリにコミット → git commit コマンド
  4. リモートリポジトリ(GitHub)にプッシュ → git push コマンド

ローカルリポジトリの作成

作業するフォルダを作成。作成後、そのフォルダに移動。

git init コマンドにて、ローカルリポジトリを作成する。

$ git init
Initialized empty Git repository in /Users/muranakajun/Desktop/test/.git/

GitHub上で作成したリポジトリを同期

GitHubヘログイン。新しいリポジトリを作成する。

名前を入力、Descriptionは説明文が必要なら入れる。

特に見られても困らなければPublicを選択してクリエイト。

そうすっとこんな画面が出て、今回は既にリポジトリ作成済みなので、

…or push an existing repository from the command line のコマンドを実行。

コマンドを実行するとGitHub上で確認できるようになる。

作成したファイル test をクリックすると中身が見える。

変更をコミットするフロー

  1. ファイル変更する
  2. ステージングエリアへ追加
  3. リポジトリにメッセージを付けてコミット

・git status コマンド

ステータスを見るコマンド。 何も変更がない場合は以下のように表示。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

ファイルに変更を加えた後で同じコマンドを打つとこうなる。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   test

no changes added to commit (use "git add" and/or "git commit -a")

変更加えてると、add使えと出てくれる。 んで、git add コマンドでステージングエリアに追加。

$ git add .

. をつけるとファイル全部ステージングエリアに動かすぞってこと。

ファイル名指定でもおk。

これでステージングエリアに追加されたことになる。

もっかいステータスを確認する。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   test

んで、コミットする。

$ Git commit -v

オプション v つけると、変更箇所が確認できる。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       modified:   test
#
# ------------------------ >8 ------------------------
# Do not modify or remove the line above.
# Everything below it will be ignored.
diff --git a/test b/test
index 484096a..db2c4f3 100644
--- a/test
+++ b/test
@@ -1 +1,3 @@
 Gitの練習
+・git add
+・git commit

一番上にメッセージつけて保存。

$ git commit -v
[master 1b72555] add, commitのコマンドを追記
 1 file changed, 2 insertions(+)

完了。

git log コマンドで変更履歴が見れる

$ git log
commit 1b7255522e782000a01f7a141a269bc8b870d129 (HEAD -> master)
Author: github muranaka-jun <tonjiru1013@gmail.com>
Date:   Fri Nov 9 13:08:25 2018 +0900

    add, commitのコマンドを追記
    
    講座の復習

commit 7c00af6d5b1047a1c936ac32b88cd6ec2461cf9d (origin/master)
Author: github muranaka-jun <tonjiru1013@gmail.com>
Date:   Fri Nov 9 11:07:13 2018 +0900

    initial commit

不要なファイルを削除する

ローカルリポジトリにあるファイルを削除する。

$ rm second.txt 

git rm コマンドでステージングエリアにファイル消したことを教える。

$ git rm second.txt
rm 'second.txt'

続いてコミットする。

$ git commit -v
[master 7af9e4f] second.txt 削除
 1 file changed, 1 deletion(-)
 delete mode 100644 second.txt

削除処理完了。

複数ファイルの変更をする

複数ファイルを変更、git add . コマンドを打つ。

$ git add .

んでコミットすればおk。

git diff コマンドでローカルとステージングとの差分を確認する

ファイル内容を追記してgit diff コマンドを打つ。

index 94a1902..86b8721 100644
--- a/test
+++ b/test
@@ -3,3 +3,4 @@ Gitの練習
 ・git commit
 ・git rm
 ・git status
+・git diff

ローカルとステージングの差分を表示。

git diff HEAD コマンドでステージングとコミットの差分を確認する

続いてaddしてから、

ステージングとコミットの差分を見る。

$ git diff HEAD
diff --git a/test b/test
index 94a1902..86b8721 100644
--- a/test
+++ b/test
@@ -3,3 +3,4 @@ Gitの練習
 ・git commit
 ・git rm
 ・git status
+・git diff

ステージングとコミットとの差分を表示。

GitHubにプッシュする

git push コマンドを使って、 今までの変更分をGitHub上にのせる。

$ git push origin master
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 4 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (16/16), 1.62 KiB | 831.00 KiB/s, done.
Total 16 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/muranaka-jun/test.git
   7c00af6..37a4b0b  master -> master

GitHub画面上で確認できるようになった。

ひととおり必要そうな部分を復習。

リベラルエンジニアズ 金子さんにカジュアル面談していただきました

最近、ツイッターで気になるエンジニアさんをフォローしてますが、 金子さんもその中のお一人。

株式会社リベラルエンジニアズとは

「エンジニアをもっと自由に。」というスローガンを抱えて、 SES業界で社員還元率82〜83%の超ハイレート給与体系をされている会社さんで、 金子さんは代表取締役をされている方です。

金子さんのツイッターを見ると、 随時カジュアル面談を受け付けているとのことで、 話を伺いに行きました。

なぜカジュアル面談をしたか?

僕自身、30過ぎてからエンジニアを始めて、仕事がいろいろと楽しくなってきた。

しかし、エンジニアとして技術力をつけたいと思っているなか、 会社から求められることとの摩擦を感じるようになった。

要は数字を上げろということだ。

ムラジュンは焦りすぎてる」

なんて言葉をかけられることが多くなり、 ちょっとした疑問が浮かぶようになる。

おれが焦っているだけなのか?

技術力の向上はさておき、数字を上げる働き方が正しいのか?

昔からモヤモヤした時は、 ひとりで考えない。 誰かに話をする 社内という閉ざされた中で考えるのもよくないと思ったので、 社外の方にきちんと聞いてみようと思った次第です。

思ったが吉日!すぐ連絡!調整!!はい決定!!

このスピード感がとても大事だと思ってます。

金子さんとってもお話しやすかったです

お会いする前に金子さんに関して、 ググって調べながら人物像を思い浮かべてましたが、正にそのままの人でした。

SESで仕事をされて、業界の悪臭に嫌気が募り、 自らが会社を立ち上げ社員へ高レート還元をする。

そこまでに至った過程、思いを話してくださいました。

僕もいま悩んでいることを話させていただき、 業界のあれやこれやの話を聞いてすごく納得。

同じような状況にいるから(ひえー)。

ただ、そこで悲観的になることはなく、 むしろやるべきことがすっきり見えたことが、とてつもなく大きかったです。

  • 学んだことをアウトプットする。
  • 他のエンジニアさんとコミュニケーションを取る。

シンプルにここから始めて、どんどん経験値を貯めようと思えた、 そして、背中を押してもらえたことで安心、ワクワクするのを感じました。

結論

お話させていただいて大変感謝しております。

いまいま、僕が金子さんに返せるものが何もないと感じているのがとても歯がゆい・・・。

なので、少しでも知名度アップに貢献できるようブログに書いている次第です。

※金子さんに許可いただきました。

もし、僕と同じで気になっているものが少しでもあれば、 カジュアルにお話していただけるので、ぜひ連絡してみてください。

liberal-en.jp

何かまたご縁があった際に、 「村中さん、いい感じっすね!!」 なんて言葉をかけてもらえるよう、迷わず揺れず進んでいこうと思います。

金子さん、ありがとうございました。