Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

Node-REDから LINE Bot に Push してみる Part.1

やりたいこと

下記の記事を参考にして、自分でも Node-RED から LINE Bot に Push メッセージを送ってみようと思います。

簡潔に纏めるため、数回に分けて記載します。

Raspberry Pi を準備する

筐体は昔に使っていた Raspberry Pi 3 Model B を使用します。

下記を参考にして microSD を初期化し、Rasbian を microSD に焼いていきます。

OS は Raspbian を使用します。

上記をダウンロードし、 microSD にイメージを焼きます。 作業は macOS から行っています。

microSD を物理的にマウントした後にターミナルから確認します。

$ df -h
Filesystem              Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1              112Gi  108Gi  3.7Gi    97% 1818468 4293148811    0%   /
devfs                   187Ki  187Ki    0Bi   100%     646          0  100%   /dev
/dev/disk2s1            14Gi  2.4Mi   14Gi     1%       0          0  100%   /Volumes/Untitled
$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            120.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +120.1 GB   disk1
                                 Logical Volume on disk0s2

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.5 GB    disk2
   1:                 DOS_FAT_32                         15.5 GB    disk2s1

/dev/disk2s1microSD なので、一度アンマウントします。

sudo diskutil umount /dev/disk2s1
sudo diskutil unmountDisk /dev/disk2
### 例

$ sudo diskutil umount /dev/disk2s1
Password:
Volume (null) on disk2s1 unmounted
$ sudo diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

ダウンロードした Raspbian Buster with desktop のイメージの確認をします。

$ ls ~/Desktop/2019-09-26-raspbian-buster.img
/Users/iganari/Desktop/2019-09-26-raspbian-buster.img

上記のイメージを dd コマンドによって microSD への書き込みます。

sudo dd bs=1m if=~/Desktop/2019-09-26-raspbian-buster.img of=/dev/disk2
### 例

$ sudo dd bs=1m if=~/Desktop/2019-09-26-raspbian-buster.img of=/dev/disk2
3652+0 records in
3652+0 records out
3829399552 bytes transferred in 17100.346498 secs (223937 bytes/sec)
$

約5時間かかりました… 😰

一度、 microSD を抜き差しします。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            120.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +120.1 GB   disk1
                                 Logical Volume on disk0s2

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.5 GB    disk2
   1:             Windows_FAT_32 boot                    268.4 MB   disk2s1
   2:                      Linux                         3.6 GB     disk2s2

/dev/disk2Linux が追加されているのが分かります。

この microSDRaspberry Pi に挿入して、起動してみます。

やっと、起動に成功しました!!

Raspbian Buster with desktop の初期設定をする

兎にも角にも Wifi を設定しましょう。

この時、IEEE802.11b しか認識しなかったので調べたところ、Raspberry Pi 3 Model B+ から IEEE 802.11a に対応しており、今回使用した Raspberry Pi 3 Model B は IEEE802.11b/g/n のみ対応していることが分かりました。

こういうところも事前に調べられれば良かったかもしれません…

気を取り直して、Raspberry Pi の初期設定を行っていきます。

パッケージの更新

  • apt コマンドを用いて、パッケージをアップデートします。
sudo apt-get update
sudo apt-get upgrade

SSH ログイン出来るように設定する

  • openssh-server をインストールします。
sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
  • 上記の設定が正常に設定出来たかを確認するために、一度再起動してテストを行います。
sudo shutdown -r now
  • 再起動後、他の PC からこの Raspberry Pi に対して、SSHログインが出来れば設定は完了です。

標準のエディタの変更

Raspbian の標準エディタは nano が採択されています。しかし、 普段 nano を使わないユーザには戸惑うかも知れません。

そのような時は、標準エディタを変更してしまいましょう。下記は、標準エディタを Vim に変更するやり方です。

  • Vim のパッケージをインストールします。
sudo apt install vim
  • インストール出来ているか確認します。
sudo apt list --installed | grep vim
### 例

$ sudo apt list --installed | grep vim

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

vim-common/stable,now 2:8.1.0875-5 all [installed]
vim-runtime/stable,now 2:8.1.0875-5 all [installed,automatic]
vim-tiny/stable,now 2:8.1.0875-5 armhf [installed]
vim/stable,now 2:8.1.0875-5 armhf [installed]
  • 既存の標準エディタを確認します。
$ ls -la /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Sep 26 09:08 /etc/alternatives/editor -> /bin/nano
  • 既存の標準エディタの置き換えをします。
sudo unlink /etc/alternatives/editor
sudo ln -s /usr/bin/vim.basic /etc/alternatives/editor
  • 標準エディタを再確認します。
$ ls -la /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Jan  4 14:00 /etc/alternatives/editor -> /usr/bin/vim.basic
  • nano をアンインストールします。
sudo apt remove --purge nano

参考 URL

まとめ

とりあえず、Raspberry Pi を換装するところまで出来たので、ここまで。

次回で Node-RED をインストールしていきます。

MacBook Air のハードケースを年毎に取り替えてみる💻

新年になって初めての買い物は下記のノートPC用のハードケースです。

Belk New MacBook Air 2018 13 インチ ケース

https://www.amazon.co.jp/gp/product/B07KXFHBYV

なぜ購入したかというと、傷防止のためと勉強会やカンファレンスに参加した際に頂くシールを貼るためです。

本体に直接貼ると、例えば会社からの貸与マシンの場合は会社に返却の際にすべて剥がさないといけなかったり、そもそもシールを貼れるスペースが限られているので定期的にシールを入れ替えるか、シール自体を重ねないといけません。

それはとても悲しいので、ハードケースを付けて年毎に付け替える運用にしてみました。

後からハードケースを見直せば、その年にどんな場所に顔を出したのか、どんな分野に興味があったのかが見れるはずなので面白いかなと思っています。

1年後にこのハードケースがどんな装飾になっているか、今からとても楽しみです:D

f:id:nari_kyu:20200104143431j:plain

2019年の振り返りと2020年のこれから

新年あけましておめでとうございます🎍

2019年は公私ともに再出発の年でした。

今の気持ちを忘れぬよう、(抽象的にぼかしますが)素直に書いてみようと思います。

2019年について

2019年に起きた主なこと

  • 引っ越し
  • 転職
  • 持病
  • 再起

2019年は自分にとっては生まれ変わるきっかけを与えてくれた年でした。

引っ越しについて

部屋が一つ増えました。そのおかげで家にコーディング専用の机を置くことが出来、家でコードを書く環境が整いました。

また、アクセス出来る駅が増えました。東京の東側に住んでいるのですが、歩いていける距離に電車の駅が複数あることにより、勉強会の帰り道などで、より早く帰れるようになりました。

転職について

それまでの会社も好きだったのですが、訳あって前線からは遠ざかっていたこともあり、自分に自信が持てず保身にばかり走っていた状況でした。

その状況を変えるために、転職をしました。

転職した会社に入って半年経ち、既にいろいろ問題もありますが、チャンスもたくさんある会社なので、ここで出来ることを精一杯やろうと決めています。

持病が発覚

この歳になって、持病が発覚しました。生死に関わるものではなく、普段の生活にも支障は無いのですが、特効薬みたいなものも未だ見つかっていない病気なので、いまは漢方薬を処方してもらい、長くゆっくり直していく予定です。

再起について

エモい話ですが、自分の怠慢のせいで、人生において1番大切な人との繋がりを無くしてしまいました。すべて自分のせいですが、当時は相当荒れたし、後悔で夜中に目が覚める事は今でも少なくありません。

ただ、自分が変わらないとなにも変わらないことは火を見るより明らかなので、「その人が信じてくれていた自分を信じて、がむしゃらに行動をし成果を出す」と覚悟を決めました。

何年掛かってもかならず追いついて、今度こそ腹を割って話せるようになると心の奥に誓いを立てました。

2020年について

決意

2019年下半期、とりわけ10月以降は自分のキャパシティを超えたスケジュール密度で技術領域への挑戦を行いました。2ヶ月間走り続けましたが、今でも自分自身に自信が持てずにいます。

ただ、それでも目をかけてくれる周りの方はたくさんいます。なので、その人たちが信じてくれている自分を信じて走り続けます。

いつか、自分自身も自分を信じてあげれるようになれるよう走り続けます。

また、周りを巻き込むことが出来る能力や、周りを巻き込みたいと思っている人を1番に支援することが出来る能力も合わせて培っていきたいと思っています。

具体的な技術領域(希望を含む)

  • Infrastructure as Code
    • Terraform, Ansible
  • Programming
  • Cloud
  • OSS
  • IoT
    • Node-RED, Noodl
  • VUI
    • LINE Clova

インフラエンジニア出身であり今は SRE に身を置いているので、そのバックグラウンドを元に Infrastructure as Code やサービスの全体設計を俯瞰して考え・話すことが出来るようなりたいと考えています。

OSS に関しても自分で扱えるようになるだけではなく、翻訳やコミュニティにも貢献していきたいと思っています。

パブリッククラウドに関しては GCP, Azure をメインに引き続き学んでいきます。

IoT や VUI は興味こそあるのですが、なかなか手をつける時間を作れていなかったので、意識して作っていこうと思います。

コミュニティ活動

今の自分を形成しているのはコミュニティがあったからだと思っています。

参加してたくさんの仲間に会えたことで、本来出会えなかったたくさんの尊敬する方々や、より広い世界とのコミュニケーションを持てるようになりました。

そういったすべての出会いへの感謝を次の世代つなげるために、今後もコミュニティへの参加およびお手伝いや登壇をより積極的にしていこうと思っています。

まとめ

エモい話も若干入れつつ、2019年の振り返りと2020年のこれからを書いてみました。

立てた誓いが決してブレぬように心の中で反芻しつつ、自分をとりまく環境に積極的にこれからも挑戦していきたいと思います。

🎄CUI を使ったクリスマスツリー 2019年🎄

npm を用いたツリー

###  コマンド例

docker run -it node npm xmas
  • 実際に実行してみると…

f:id:nari_kyu:20191225164848p:plain

Docker Hub に公開されているツリー

###  コマンド例

docker run -it lukaszlach/merry-christmas 
  • 実際に実行してみると…

f:id:nari_kyu:20191225164855p:plain

まとめ

Happy Christmas, Best friend !! :D