熟すと腐るは紙一重

プログラミングに纏わる話や身の回りの話

「ズルさ」と「サボり」の違い

フィヨルドブートキャンプでプログラミング学習中のにしめです😊 フィヨルドブートキャンプでは様々なカリキュラム(プラクティス)があり、現在プロを目指す人のためのRuby入門(通称チェリー本)を読むというプラクティスに取り組んでいます。
背景として、私はRubyFizzBuzz問題を解いたり、カレンダーを表示するプログラムを書くプラクティスを終えて現在のチェリー本に入ったところです。
ようやく少しRubyを書き始めた程度ですが、チェリー本を読んでいて今の自分にはまだ難しいなと思う部分が多々出てきました。フィヨルドブートキャンプでは技術書の読み方などのドキュメント(記事)もあり、それらの記事を読んで技術書をどう読み進めたら良いか知ったり、日報にメンターさんや受講生から進め方のアドバイスをもらったりできます。
そうしているうちに、自分の中で1つの解が見えてきたので忘れないうちに書き出しておこうと思います。
先に自分が参考に読んだ記事を紹介しておきます。
学習を加速させるインデックス読書術 - Qiita

技術書、最初から完全に理解するか、頭の中にインデックスを作るか? 〜 #チェリー本 が後半から難しくなる問題を考える - give IT a try

学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try

技術書が難しくて分からない

これは初学者に限らず、熟練したプログラマの方でも遭遇するそうです。ですので、まず自分だけが分からなくてレベルが低いと思わなくても大丈夫。
そうは言うものの、自分は本を読みながらその先にあるプラクティスを想像し、これを読んである程度頭に知識を入れてからでないと苦労するぞ。という気持ちがありました。なので分からない部分をどの程度飛ばしても良いのか、どれくらい脱力していいのか悩んでいて、日報にもそのような気持ちを書きました。

苦労して読むより書いて苦労した方が効率的かつ楽しい

特に技術書の1周目は分からない箇所だらけだと思います。そこで苦労しながら読むのはスピードも落ちるし、集中力は持たないし、最悪の場合読むのを辞めてしまったりします。

書いて苦労した方が効率的かつ楽しい

「苦労する」と「楽しい」は本来反対の意味合いを持つので文章的には矛盾していると思います。プログラミングの関しての話になってしまいますが、メンターさんからもらったアドバイスにこんな言葉がありました。

  • コードを書くために必要最小限の事前知識は必要ですが、本を読むだけでは知識にはならず、自分の手と頭を動かしてコードを書いた方が勉強になる。
  • 教科書に詰まってモチベーション下がるぐらいなら次のプラクティスに進むのも全然アリ。

ここで言われている、必要最小限の事前知識を僕は一応得ています。これはFizzBuzzのコードを書く前に、ゼロからわかる Ruby 超入門 と言う書籍を読んでおり、Rubyに触れていると言う点でです。
つまり、技術書を読む中で難しい箇所や理解が追いつかない点があっても、全部理解しようとしなくて良い。その状態でコードを書き出しても良いし、詰まったら必要な箇所を読んで調べる形式の方が効率が良いということです。
実際に、僕は難解な技術書を読んでいるより、分からなくてもコードを考えて書いている方が楽しく感じます。コードを書いて詰まりまくって調べて覚えた方が知識が定着しやすいよって教えてもらって技術書を読む時の気が楽になりました😊

なぜ最初から最後までしっかり読みたくなるのか

今までの育ってきた環境が大きく影響していると思うのですが、例えば部活動や持久走大会、学校のテストなどで大人たちから「ズルをするな。ズルは良くない」と教えられてきました。なので技術書を読み進めて行く上で、読み飛ばすことや途中で違うことを始める事がズルをする事だという認識が無意識のうちに発生してしまっていました。真面目に全部読み終えてからじゃいけないと。
では、技術書を読まずにプラクティスや課題をクリアするために、ネットで調べて拾ってきたコードをコピペして動くコードを完成し、理解してないまま提出するのはどうか。それはきっと「ズル」ではなく「サボり」です。やるべき事さえもやっていないからです。
社会人になって仕事をしながらや、育児をしながら勉強するのって本当に大変です。時間が無いので、効率よく進めなければいけません。それには多少のズル賢さが必要だなと思いました。

ズルくても良いけどサボると意味がない

上に書いたように、自分の中で技術書を読み飛ばすことはズルをする事だという意識があったのだと思います。だけどこれは前述した「サボり」ではないのだと思いました。もし僕が技術書に一切目を通さずプラクティスをクリアしたことにし、コピペでコードを完成させたとしたらそれはサボりであって自分の力はつかないので意味がありません。

  • ズルすることを許容し、モチベーションを下げない事。
  • どうせ苦労するなら楽しく苦労する。
  • 技術書を読み飛ばすことはサボりでは無いのでこれが全部読めないと(理解できないと)前に進んだらいけないなんて自分を追い込まないで。

これが真面目すぎる僕が見つけた1つの解です(笑)
誰にでも当てはまる考え方では無いし色んな読み方があるけど、1つの道しるべとして書き残しました。

オンラインLTに初登壇しました

フィヨルドブートキャンプでプログラミング学習中のにしめです。
今回は、鹿児島.mkというエンジニアコミュニティが主催するLT会に初登壇した際の記事を書きたいと思います😄

speakerdeck.com

鹿児島.mk

鹿児島.mk - connpassを参考に紹介すると、

「プログラミング初学者や初見のエンジニアでも気軽に参加できる」 がコンセプトのエンジニアコミュニティです。

と書いてあります。つまりとってもオープンで温かいコミュニティです。名前に"鹿児島"と付いてますがオンラインイベントの場合、全国どこからでも参加できます😄 実際、私も今回が初参加でしたが、とても温かく迎え入れて頂けました😊 上記のコミュニティページの説明にもありますが、slackやDiscordが用意されているので、イベントに参加される場合は事前にそちらに登録して、テキストで自己紹介を済ませておくと良いかもしれません😄

f:id:tsuyochannel:20210811131554p:plain
slackでの自己紹介の様子

私も登壇を申し込んでからslackに参加して、自己紹介チャンネルで簡単に挨拶をしました😄 こうしておくと、主催者側もどんな人が参加するのか分かりますし、この人はしっかりしているからドタキャンとかしなさそうだなとか、連絡に対してちゃんと返信がありそうだなとか、安心感を与える効果もあると思います。(主催者側ではないので、あくまでも予想ですが)自分の事を相手に知ってもらっていた方が当日の不安やドキドキが軽減されます😇
この時も返信やスタンプで反応して頂けて嬉しかったです。

LTに挑戦してみようと思ったワケ

これは今学んでいるフィヨルドブートキャンプ内で、初めてのLT会というイベントが定期的にあるんですが、受講生はここでLT登壇の経験を積む事ができます。ですが、ある時受講生の数名がこのスクール外のLTイベントに果敢に登壇されている姿を見て、自分もスクールの中だけではなくて外へ身を投げ出して行かなければ!と感化されたのがキッカケです。勇気をくれた受講生のみんな、ありがとうございます😌

なぜ選んだ先が鹿児島.mkだったのか

これは半分、たまたまです。笑
ちょうどその頃、フォローしていた鹿児島.mkからイベントが公開された通知が飛んできて、LT会をやりますと。
こんな良いタイミングで目にするなんて、もう出るしかねぇって感じになったわけです😂しかも運良くそのイベント当日は仕事が休みだったのです。
それと残り半分は、LTの中でも触れていますが鹿児島のコミュニティがずっと気になっていて、地元のエンジニアの方や初学者の方と知り合いたいと思っていたからです。

いざ資料作り

そんな感じで、やー!っと申し込んだのは良かったのですが、実はスライドの資料もまともに作ったことがありませんでした。
どうやって作るのかもわかっていないのですが、以前スクールの受講生がLT会の時に紹介していたCanvaというサービスを「いつか俺もこれを使うんや!」とブックマークしていたので、これを使うことにしました。覚えていた自分えらい。
仕事も育児も忙しいため、余裕を持って開始した方が身のためだと思っていたので、1ヶ月前くらいから資料作りは開始しました。
資料を作る際は過去の受講生のLT会の動画を見たり、フィヨルドブートキャンプでメンターをして下さっている伊藤さんの書いた記事を読んだりして意識しました。

blog.jnito.com

テーマ決め

LTは初登壇です。自分はまだ技術的な話をする勇気はありません。では今の自分に何ができるだろうと考えた時に、自己紹介なら自分にも出来るかも!と、思いました。背伸びをせず、自分に出来る事をやろうという気持ちでした😌
鹿児島.mkにも初参加でしたし、コミュニティに入っていくのにはちょうど良いテーマだなと思い、自分の事を知ってもらえるような資料を作ることにしました。

練習、練習

資料作りは基本的に子供が寝静まって、家事が終わってから深夜にやるしかありませんでした。2日に1回、1時間作業できるかできないかという程度です。少しづつ追加していき、読み返して削ってという作業を繰り返していきました。LTでは厳密ではないものの、発表時間は5分若しくは10分という決まりがあります。今回は5分でしたので、それに収まるように読む練習をしていきました。初めてのLT登壇だったので、絶対5分で収めたいという謎の意気込みがあったので、資料のボリューム調整や読むスピードの練習は多めにやりました。おそらく本番までに20回くらいは読む練習をしたと思います。
小学生の時に読んだイチローの自伝に、「練習に裏付けられた自信」という言葉が書いてあり、これだけ練習したのだから大丈夫だろうという自信を持って臨もうと思ったのと、絶対緊張するので練習をたくさんしておけば緊張を和らげる事ができそうと思ったからです。

LT本番

本番は開場30分前から接続状況のテストがありました。ここで主催者や参加者の方と初めてあいさつをして接続のテストをするのですが、本番前に雑談を軽くできたので緊張が少しほぐれて良かったです。 あと、少し前に自宅の通信環境を整えておいたので、安定してインターネットに繋げたことはひとつの安心材料となりました。
おうち通信環境改善日記 - 熟すと腐るは紙一重

19時になるとLT会が始まり、順番に発表が進んでいきます。私の出番は3番目だったので、割と早く出番が来ました😌
発表が始まりスライドの画面共有をすると、それまで見えていた参加者の顔やコメントツールが見えなくなるため、反応が見えない中で一人で喋らないといけないので一瞬不安になりました。しかし、もう自信を持ってやるしかないと気持ちを切り替えて臨みました。練習した甲斐もあり、5分ちょうどで発表を終える事ができ、ほっとしました😌この時、事前にしっかり練習しておいて良かったな〜と思いました。
今回のLT会では、LeacTion!というコメントツールを使い、聴講者がリアルタイムにコメントを書き込んでいきました。自分も発表が終わった後にこのコメントを見たのですが、とても温かいコメントに溢れていて嬉しくなりました。
21時ごろに全ての発表が終わり、その後は懇親会に少し出て参加者の方々とワイワイお話ができたので楽しかったです😊

不足の事態に備えてやっていた事

LT初登壇というだけでもプレッシャーなので、本番にそれ以上の負荷がかかっても対処できるように、事前想定と準備をしました。

  • 通信環境が悪かった場合の対処を考える。
    一旦アプリを落として再接続する
    PCの再起動
    テザリングを試みる
    など、あらゆる対処法をイメージしておけば、もしもの時も慌てずに対処できそうです。
  • スライドが開かなかった・見えなかった時の対処を考える。
    ブラウザのプレゼンテーションモードで画面共有しようと考えていましたが、最悪直前にこのウェブサイト自体が開かなかったり、ブラウザのタブを間違えて消してしまった場合を想定し、別の場所(今回はデスクトップにしました)にPDFでファイルを書き出して置いておき、すぐに開けるようにしておく。

こうしていくつかの不足の事態を事前に予測して準備しておいたり、対処の手順をイメージしておくことで、もし何か起きても慌てずに対処できるかもしれません。特に発表に慣れていない初学者などは緊張状態に不足の事態が重なるとパニックになったり冷静に対処できなくなるかもしれないのでいしっかりと準備をしておくと良いかなと思います。
本番は特にハプニングもなく終えられたので良かったです😊

仲間はできたのか

発表スライドの中で、仲間を作ろうという趣旨の話をしました。これは自己紹介をテーマに決めた最大の理由なのですが、自分のことを知ってもらう事で仲間を増やしたかったからです。
では実際にLT会(コミュニティ)に参加して仲間ができたのかというと、たくさんできました!LT会が終わったあと、Twitterでフォローしてもらったり、メッセージをもらったりと輪を広げる事ができたなと思います。本当にチャレンジして良かったなと思いました😊

総括

LTは初めての人にとってはハードルが高いかもしれません。しかし、背伸びせず今自分にできることを発表すれば良いと思います。テーマが決まっていないLT会や、初学者にも優しいコミュニティがあれば是非挑戦してみて下さい。
そしてコミュニティに参加するともれなく仲間を増やす事ができます。地元のコミュニティなら尚更温かく迎えてくれると思うのでオススメです。
事前準備や練習をしっかりとすることで、気持ちに少し余裕ができるので本番の自分のために準備をしておくと安心です。
鹿児島.mkはとても優しい方々ばかりですので、参加した事がない方でもウェルカムだと思います😄

感謝

最後に、初参加にも関わらず温かく迎えてくださった先輩方、ありがとうございました。また次のイベントや勉強会も参加したいです😄
そして当日応援に駆けつけてくれたフィヨルドブートキャンプの受講生の方々、勇気をもらいました!本当に嬉しかったです😊
自分も他の方がチャレンジする時は全力で応援したいと思います!

おうち通信環境改善日記

またまた久しぶりのブログになってしもうた。
フィヨルドブートキャンプでプログラミング学習中のにしめです。
自宅の通信環境を改善した話を書き残しておきます。結論から言うと、

  • 光インターネットを再契約した。

  • ホームルーターを買い替えた。

  • LANケーブルを交換した。

です。以下に詳しく書いていきます。

光が帰ってきた

2019年11月にスマホSoftBankで買ってから、SoftBank Air(以下、Air)という置き型Wi-Fiを契約して使っていました。理由としては、それまで使っていたコラボ光の月額使用料が高かった事から、固定費を抑えるためです。
Airは速度は遅いと感じる場面はあるものの、そこまで大容量通信を必要としていなかったので、不便はあまりなかったです。動画の送信やアップロードが遅いですけどね。(上りの速度って言うのかな?)
2021年3月に楽天モバイルの1年無料キャンペーンに便乗してeSIMを契約したのと同時期に、楽天ひかりも1年無料になるって事で、試しに契約してみました。2年目からは通常料金になるのですが、他のプロバイダーよりは安かったのでまぁ良かろうくらいの気持ちで😇
3月に申し込んだのですが、1ヶ月経っても何の連絡もなく、カスタマーセンターももちろん電話は繋がりません😂Wi-Fi環境はあるので気長に待っておけばいいかと放置していたところ、4月後半に電話があり工事日を決める段取りなどが進みました。工事といっても以前光を使っていたので、実際には工事は発生していません。
申し込みが相当多かったのか、業者が来れたのは7月8日でした。こうして無事開通したので、我が家に光が帰って来ました。

いざ高速通信!・・?

早速、以前使っていたBUFFALO製のルーターを繋ぎます(ここは業者が設定)ルーター捨てずに取っておいた自分天才やんとホクホクした気持ちで見守ります。
業者のおっちゃんを見送り、いざインターネット開始!ところが、何か変です。遅い。話が違うやんけー!光に変えたはずなのに、以前と変わらない速度でした。楽天ひかりはネットでの評判があまりよくなかったのでやっぱりNUROとかにしとけばよかったのか・・・と後悔の念がよぎる。この時のスピードテストの数値は2.4Mbps

f:id:tsuyochannel:20210729104424p:plain
この数値がどれくらい遅いのかも分かっていなかった。

フィヨルドブートキャンプで一緒に学んでいる仲間にアドバイスをもらい、ルーターを買い換えた方が良いかもという結論に至りました。この時に教えてもらったメソッドも良さそうなので紹介しておきます😊

www.obregonia1.com

ホームルーター選び

ルーターもどれを買えばいいのか分かりません。性能が良くて安いのが無いかと探していたところ【楽天1位】って書いてあるtp-linkというメーカーの物を発見し、購入しました。初めて知るメーカーだったので不安でしたが、これで良かったと満足しています😊丁度楽天ポイントも貯まっていたのでラッキーでした。

item.rakuten.co.jp

いざ高速通信!・・??

ついに届いたルーター開封し、チビっ子2人の面倒を見ながら何とか設定し、ワクワクでスピードテストしました。が、まさかの7.6Mbpsくらいでした😭(マジかよー!)
楽天ひかりが遅いのか?設定間違ったか?と色々危惧したのですが、ルーターに同封されてきたLANケーブルに目が行き、これを換えてみることにしました。業者が設置したモデムから、購入したルーターのWANポートまでは業者が用意したLANケーブルが繋がれていました。これを購入したルーターに同封されてきたケーブルに付け替えてみたところ、劇的に速度が速くなりました!🤩
f:id:tsuyochannel:20210729112533p:plain

色々とムダになったかと思っていたので、かなり安堵しました。
時間帯によっては速度にムラがあり、奥さんから「遅くない?」と文句を言われる事もありますが、電波も頑張ってるんだよとなだめてやり過ごしております。

Airの解約

10月、11月、12月に契約解除すれば違約金は0円で済んだのですが、それまでに月額使用料もかかってしまい、総支払額が大きかったので7月いっぱいで解約しました。楽天ひかりが月々0円なのはありがたいです。
どうしても速度に不満が出るようなら、キャッシュバックや割引のタイミングを狙ってNUROとかに変えればいいかなーと思っていますが、今のところ不満なく使えているのでよかったと思います😊

結論

もしかすると、BUFFALO製のルーターのままでもLANケーブルを換えておけば速度は上がったのかもしれませんが、もう新しいルーター買っちゃったので考えないことにしてます😂
それに、IPv4からIPv6を使えるようになったので混雑時もマシになったはずとポジティブに捉えています😄
もしルーターを換えても速度が改善しないと思っている方はLANケーブルを買い替えてみるのも手かもしれません。高い物ではないので試す価値はあると思います。
これで光のように、プログラミングの学習スピードも上げていきたい所存!

Scrapbox

Scrapbox初めてみた!ところが…?

フィヨルドブートキャンプでプログラミング学習中のにしめです。
日頃からアウトプットを意識的に増やしていきたいよな〜と思ってはいたのですが、限られた時間の中でどうやったらいいのだろうと考えていました。
そんな時、同じ受講生がScrapboxを使っているのを目にし、なんだかおしゃれで手軽にアウトプットできそうだな😄と思って、今回ようやく始める事ができました👏
その時少し困った事が起きたので、書いていきたいと思います。

ネットの情報を見ながらやってみる

Scrapboxの始め方は検索すればたくさん出てきますので、私もそれらの記事を参考にアカウント登録などを進めました。ここまでは順調でした😊
一通り初期設定を終え、「よーし、皆んなみたいなおしゃれな見た目にするぞ!」と、写真を挿入して見た目を整えようと、ネットに書いてある要領で写真をドラッグ&ドロップで貼り付けました。ところが、サムネイル画像が表示されません。何度やってもできませんでした。

f:id:tsuyochannel:20210430130036p:plain
このように、両サイドの記事に画像が表示されませんでした。

原因と対策

この事について、フィヨルドブートキャンプ内のDiscordでつぶやいたところ、仲間の一人からこんな記事を教えてもらいました。

HEIC形式の画像ファイルをJPGに変換する方法|PC利用Tips集|PC・ネットワークの利用方法|利用方法|東京経済大学情報システム課

自分が画像を貼り付けた手順はこうです。

  • iPhone11からAirDropを使ってMacにひょいっと画像を転送

  • それをドラッグしてScrapboxのページに貼り付け

上の記事を読むと分かるのですが、iPhone11から写真のファイル保存形式がHEICとなるようで、これがScrapboxに対応していなかった事が原因だったようです。
対策として、AppleのサポートページにあるようにMacに保存した写真を一度プレビューで開きます。そして、「ファイル」>「書き出す」の順に選択して、保存前に JPEGPNG などのフォーマットを選択します。
これでデスクトップなりに書き出して、後はドラッグ&ドロップするだけで完了です!

f:id:tsuyochannel:20210430131856p:plain
画像のサムネイルが表示され、おしゃれな見た目になりました(よね?)

少し面倒ですが、以上の手順でアップロードできる事がわかりました😄
なお、iPhone側の設定で、HEIC形式ではない形式で保存することもできるようですが、AppleはHEIC形式を推奨しているようです😌

これから粒の小さいアウトプットでもScrapboxを使って気軽に書いて行こうと思います!😊

3年の月日を振り返って

育児の記録

久しぶりの記事になってしまいました。
今回はプログラミングではない話題について書きたいと思います。
私事ですが、先日次女が3歳の誕生日を迎える事ができました。この記念に、今の気持ちや状況を記録に残しておきたいなぁと思ったので、このブログに書いていきます😌 誕生日を迎えると言うと、ごく自然な事のように聞こえるかもしれませんが、私たち家族にとっては大変感慨深いものです。
次女が誕生した時のことについては、フィヨルドブートキャンプのアドベントカレンダーに参加した際に少し書いているので、よかったらお読み下さい。

tsuyochannel.hateblo.jp

産まれる前の生活

3年前、次女は出生体重400g台と言う、極めて小さな体で産まれてきました。医学の世界では、字の通り「極低出生体重児」と呼ばれたりします。
妻は次女を妊娠中、8週目からずっと入院しており、絶対安静の状態でした。上には当時2歳だった長女もおり、24時間勤務の私は毎日家に帰ってこれないため、妻の実家へ長女を預けて生活していました。
朝勤務が終わると、自宅へ帰り着替え・洗濯などを済ませ、妻の実家へと急ぎます。しばし長女と遊んだ後は妻が入院している病院へ2人で行き、夕方病院の洗濯物と共に実家へ戻り、長女の風呂・ご飯を済ませ、歯磨き・寝かしつけまでやります。時には長女が寝てからそぉ〜っと起こさないように爪を切ったりしなければならないので、自宅へ帰るのは深夜2時過ぎの時も少なくありませんでした。
そしてまた翌朝仕事へ出かけるという日々だったのですが、この時から、子供がいつ産まれても対応できるように、お酒を1滴も飲んでいませんでした。いつ何時呼び出されてもいいように、リュックの中には必要書類や印鑑、通帳、モバイルバッテリー、携行食、お茶などを常に入れて持ち歩くようにしていました。

非情な知らせ

時が流れて、ある日のこと。勤務中、深夜に妻から「破水したかもしれない」と連絡が入りました。その時まだお腹の赤ちゃんは22週と0日です。
朝勤務を終えた後、病院へと急ぐと、羊水がほぼ0になっているので、至急大きな病院へ転院しなければならないと言われ、NICU(新生児集中治療室)のある病院へ救急搬送されました。
両親へ連絡したりしながら家族控え室で待っていると、主治医の先生が来られ「今すぐ産まれるような状況ではないですが、非常にシビアな状況です。1日でも長くお腹の中に留めておけるよう最善を尽くしていきます。」と言う趣旨のお話がありました。それから妻はMFICU(母体胎児集中治療室)に移され、厳重な管理の元入院となり、医師からこんな話をされました。

「医師として説明しなけらばならないので、1つの選択肢を提案します。胎児は今22週と0日ですが、週数の割りに体重が小さいです。この週数には誤差があるため、今なら週数を1日修正し、21週と6日とすることもできます。治療を早急に開始しないといけない為、猶予は後2時間です。ご夫婦で話し合って、2時間以内に決めて下さい。」

なぜ、医師がこんな話をしたかと言うと、日本では母体保護法によって人工妊娠中絶が可能な期間が決められており、22週目以降は中絶手術は認められていません。週数を修正し、21週と6日とすることにより、人工妊娠中絶も選択できるよう提案されたのです。
医師のくせに、中絶を奨めるなんて!と思った方もいるかもしれませんが、これには深い訳があります。もし22週0日で産まれた場合、生存できる確率は50%程です。そして、生存できたとしても大きなリスク(障害)を負って生きていく事は避けられないと言う事実からです。子が障害を負うと言うことは、両親へも大きな負担がのしかかります。それが一生続くかもしれないと思うと、中絶を選ぶ方々も中にはいるでしょう。どちらが正しい選択かは正解は無いと思います。だから医師は私たちにリスクの説明を行い、判断を委ねたのです。

もしこれを読んでいる人が同じ立場だったらどうしますか?

私たち夫婦に与えられた時間は2時間です。2時間でお腹の子の運命を決めなければなりませんでした。
静かな病室のベッドの上で、妻は悩み、涙を流していました。
当時、妻はNICUで働く看護師であり、誰よりも低出生体重児のリスクを理解していたからです。これまでも、幾度となく苦しむ家族の姿を一番近くで見てきました。壮絶な治療の末に天国へと旅立っていく赤ちゃんを何度も見て心を痛めてきた一人です。そんな現実を知っていて、悩まないわけがありませんでした。
しかし、私には迷いはありませんでした。妊娠8週から大きな血腫があるにも関わらず、お腹の中にしがみつき、ここまで耐えてきた命です。"生まれたい"という強い意思を感じずにはいられなかったですし、私たちの手でその鼓動を止める事は到底出来ないと思いました。どんな子が生まれようと、受け入れる。話し合いの末、私たちは妊娠を継続する意思を固めました。
この時、私は心の中でこう考えていました。

これは神様からの挑戦状だ。絶対負けねぇぞ。ナメんなよ。

MFICUでは子供は面会できないため、勤務日以外は一人で毎日面会へ行きました。新生児の世界では1日でも長く、100gでも大きく成長することが、赤ちゃんの予後に大きく関わります。毎日祈るような思いでした。

その日が来た

羊水が微量に増えては流れるを繰り返しながら、緊張の日々を過ごしていました。いつものように、もうすぐ勤務が終わろうとしていた時、私の携帯に電話が入ります。妻からでした。電話口の妻から「今から産むことになった!赤ちゃんの心拍が弱くなってる!」と告げられ、電話の向こう側がざわついているのが分かりました。私は上司にその事を伝え、大急ぎで病院へ向かいました。
病院へ着くと家族控え室へ案内され、間もなくして執刀医から、赤ちゃんはすぐさま蘇生された後NICUへ移されたと説明を受けました。羊水が無いまま約2週間耐え抜き、24週と2日目に緊急帝王切開で出産となったのです。
妻は産後の縫合処置などがあり、まだ初日は動けないため、最初に赤ちゃんに面会したのは私でした。保育器の中で両手の手のひらに収まるくらいの小さな命は必死に生きていました。まだ自発呼吸が出来ないため、気管挿管され呼吸器に繋がれ、体には点滴やたくさんの管が入れられ、厳重な衛生・体温管理を受けていました。肌はまだ透けていて、耳や体の器官も完全に出来上がっていません。蘇生した医師から、現在のところは順調に進んでいることと、生まれて数日間が1つめの大きな山場だと説明を受けました。
その後は入院手続きの説明、手術や処置に関する説明と同意書のサインがこれでもかというくらいあり、ご飯も食べる暇もなく、その日家に帰ったのは21時くらいだったと思います。
こうして私たち夫婦は、極低出生体重児の親となったのです。子がこれからどんなリスクを追っていくかは未知でした。

面会の日々

妻は産後の傷の痛みはあるものの、経過は順調に1週間で退院しました。入院中も、出産の次の日から車椅子に乗ってNICUまで行っていて、母親は強いなと思いました😅
退院後は自宅から毎日二人で面会に行きます。嵐のような悪天候の日でも面会は欠かしませんでした。妻は少しでも栄養のある母乳を届けるため夜中も寝ずに搾乳を頑張り、本当にわずかしか寝ていなかったと思います。長女を実家へ預け、昼前に面会に行って19時〜21時頃帰る日々の繰り返しです。日によっては赤ちゃんの体調がおもわしくない時もあり、そんな時は心配で怖くて帰ることが出来ず、23時頃帰る日も少なくありませんでした。2歳の長女はその間も泣かずに実家で過ごしていてくれ、本当に助かりました😭
この毎日擦り切れるような日々を送り、本当にテレビも携帯も見る暇もないくらい時間に余裕がありませんでした。体力も精神力もとっくに限界を超えています。けど、一番はやっぱり妻が辛かったんじゃないかと思います。健康に産んであげられなかった自分を責めていましたし、不安しかなかったと思います。私も必死で支えましたし、長女を含め家族を崩壊させてはならない、なんとかこの形を維持するんだ!という思いでした。
食事も院内のコンビニで買って食べるくらいしか出来なかったので、Tポイントは沢山溜まりました。笑

転院

治療を続けていく中で、今いる病院では受けられない手術があり、別の道を選択するかどうかと考える時期がありました。妻は毎日寝ずに、必死でネットで情報を探し、日本で唯一その手術が受けられるこども病院を見つけました。しかしその病院は私たちが住む地方から1,300km以上離れていたのです。その上入院中の我が子はまだ気管挿管されており、移動に飛行機が使えません。新幹線で行けば7時間以上かかり、その間子の体力が持つかどうかも賭けでした。この転院を現実にするためにはクリアしなければならない問題が多かったのです。
それでも一縷の望みに賭けて、できる事は全てやろうと夫婦で話し合い、医師や看護師、転院先の病院と共に壮大な転院計画が進められることになりました。転院前には院内でシュミレーションやカンファレンスを幾度となく行い、安全な移動かつ緊急事態に備えます。
1度目は転院の前日に子が体調を崩し、当初の予定より1ヶ月半ずれたものの、生まれてから8ヶ月目に転院することとなりました。医師3名が付き添う厳戒体制で約7時間かけて県外の病院へ到着し、私たち夫婦は数名の医師から何時間もIC(informed consent=説明と同意)を受けました。
医師から「事前に頂いていた情報よりも、全身状態がかなり悪い。」と聞かされ、長時間の移動がかなり命懸けだったことを改めて思い知りました。しかし驚くのは転院先の医療チームがその後の1週間で劇的に回復させたことです。この病院に来てよかったと胸を撫で下ろしました。
転院前の見立てでは、1ヶ月くらいの入院で帰れるだろうと踏んでいたのですが、精査していくうちに様々な問題が見つかり、いつ帰れるか全く見通しがつかなくなりました。最初の2週間は手術や検査の連続なので長女を実家へ預けて来たのですが、長期戦ともなるとさすがに母子分離が長いのは問題があると考え、一旦私だけ戻り、妻は残って家(マンスリー)を探し、私は保育園の休園手続きなどをして長女を連れて県外の転院先へとトンボ帰りしました。こうしてプチ移住生活がいきなり始まり、2歳の娘を連れて毎日病院へ面会へ行く日々が続きました。とにかく毎日病院と家の往復です。県外生活中、公園へ連れて行ってあげられたのは1回だけでした😓
クリスマスも年越しも正月も見知らぬ土地で過ごし、毎日が濃い上にマッハで過ぎて行きました。病院から帰るのも夜遅く、幼い娘に23時頃コンビニ弁当を食べさせざるをえなかった時はすごく心苦しかったのを今も覚えています。それでも娘はわがままひとつ言わず毎日笑って病院へついて来てくれ、風邪ひとつ引きませんでした。私たち夫婦も長女に寂しい思いをさせないよう、必死で愛情を注ぎました。

1歳。そして自宅へ

県外での生活を頑張り、転院からちょうど100日目に地元へ戻ってくることが出来ました。
戻ってもすぐには自宅には帰れないため、入院生活は続きます。今度は小児科に入院なので付き添い入院が必要で、妻と交代で病室へ泊まりました。私は仕事の長期休みから復帰しており、勤務日以外は病室に泊まったので家でほとんど寝ていませんでした😅
そうこうしているうちに、1歳の誕生日を病院で迎えました。本当は家でお祝いしたかったのですが、1年以上入院し、誕生日の3週間後にようやく退院して家に連れて帰ることができました。家族揃ったあの時の気持ちはなんとも言えない幸福感に満ちていました。みんな本当によく頑張ったと思います。長女も妹と初めて会えてとっても嬉しそうでした。ひとときも離れずべったりくっついている姿を見ると、なんだか感動して泣けてきました。

家での生活

1年の入院生活を経て自宅へと戻って来たわけですが、本当に大変なのはここからでした。
次女には医療ケアが残り、今まで病院で看護師さんが手伝ってくれていたケアを在宅で全てしなければなりません。これが本当にきつかったですね…😅
これまで以上に精神と体がすり減り、夫婦喧嘩は増えるし、寝れない、食べる暇ない。テレビすらの娯楽までも皆無。毎日吐き戻す次女の対応に体力を持って行かれ、どうしたら良いのか分からず試行錯誤の日々です。次女だけでなく長女のお世話もしなければなりませんし、1日のうちに休憩が10秒あれば良い方でしたね…
こんな生活が約1年半くらい続きました。
次女を連れて初めて家族全員で外出できたのは、次女が1歳半頃に2時間くらいだけでした。公園に行っただけでしたが、こんな幸せなことはありませんでした。普通に生まれていればすぐに公園になんて行けるでしょうし、旅行にだって行きますよね?その当たり前の日常すらも送ることのできなかった私たちにとって、わずか2時間の公園も奇跡に感じました。
普段気づいていないだけで、当たり前なんてものはないのです。

3歳になる

そんな次女が今年3歳を迎えることが出来ました。あまりの激動の日々に、まだ3年しか経っていないのか…(この先体力持つのか。笑)と言う思いと、もう3年も経ったのかという思いが入り混じっています。生まれた当時は何度も生死の境をさまよい、生きているだけでも奇跡なくらいでした。その400g台のちいさな体で生まれた命は今日もこうして生きています。そしてあの頃は想像も出来なかった3歳の誕生日を元気に迎えることができ、この上ない幸せを噛み締めています。もし次女が普通に産まれていれば、何気ない1日に感謝することはなかったかもしれません。家族で公園へ行ったり、ご飯を食べたりするような小さな幸せを感じることはなかったかもしれません。
まだ医療ケアは残っているし、成長発達も遅れているのでリハビリや通院を何年も続けなければならず、正直一般家庭のような普通の生活は送れていません。睡眠時間だって4~5時間です。それでも我が家なりの家族の形を見つけつつ、小さな幸せを感じる余裕は出て来ました。(ただ慣れたのかもしれませんが…。)
こんな大変な状況の中でも、私はプログラミングの勉強を始め、今半年くらいは継続できています。少しでも環境を良くしたいし、たくさん勉強して給料を今より上げて子供や妻に余裕のある生活を送らせてあげたいと思っています。特に妻には無理をさせてしまっているので、これからの人生はもっと楽しみながら豊かに送れるように、今自分に投資するしかないと思って頑張っています。幸い良い人たちに出会い、楽しく学習できているのでこの出会いを大切に、生涯仕事を通して付き合っていけたらいいなと思っています。

最後に

この記事を書き始めた時は、3年を簡単に振り返って記録に残しておこう。くらいの軽い気持ちだったのですが、3年の間に色々な事があり過ぎて長くなってしましました😅
もしここまで読んで下さった方がいましたらありがとうございます。
今後も仕事・育児・勉強とどれも全力で頑張って行きたいと思います😊!

僕とsshの2週間戦争

今回はssh接続を鍵認証で行う方法について、僕のつまづいた点をまとめていきたいと思います!
まず初めに、この記事は僕が今学んでいるフィヨルドブートキャンプのプラクティスの話になります。主にここで学んでいる人に向けて書きますが、これからsshで鍵認証を設定する方へもヒントになればと思います。
では早速僕がsshに苦戦し、クリアして行く経緯を振り返って行きます!

日報を見ると、2020年12月23日に「sshの基本を理解する」と言うプラクティスに入っています。さくらのVPSコンソールを使って、Debiansshをインストールするところまでは出来ました。その流れで$ vim /etc/ssh/sshd_config とコマンドを打ち込んで、設定ファイルをvimで変更していこうと思ったのですが、ここでまず詰まります。

vimが!vimがぁぁぁぁぁぁぁぁぁぁぁぁ!!!!

Firefoxのブラウザ上でさくらVPSのコンソールで作業していたところ、vimの挙動がおかしくて、かなりはまってしまいました。

12月25日の日報にもこう記してあります。僕はSlackで質問したり、Q&Aを作成したりして他の生徒に質問をしました。結果的に、FirefoxではなくChromeを使用することでvimの挙動がおかしくなる事象は解決したのですが、原因は分からず時間だけが過ぎて行き、全然進まない状況にかなり疲弊していました。

最初は1時間ほどプラクティスを進めよう〜と言う気持ちで取り掛かったのですが、見事にはまってしまい、深追いしても解決しない・時間だけが過ぎていく・疲弊する。と、負のスパイラルに陥って凹みました。 初学者の壁は高く、厚いです。(頭もオーバーヒート)

12月27日 この日も深夜にかけてもくもくと戦います。

ssh-copy-id -i ~/.ssh/client_rsa.pub nishime@にしめのIPと打つも、通らず、しかも途中からなぜか改行しているのに先頭の文字から上書きされるバグが起こり出し、ため息が出る。。 そこで指摘を受けて気づいたのが、ずっとさくらVPSのコンソール上で作業していたのは、クライアント側(つまり自分のMacのターミナル)でしなければならなかったという事。 クライアントって分かりにくいよ!!!

アホですね。そもそもクライアントって意味を勘違いしていたようです。 プラクティスの説明をよく見ると、図で分かりやすく書いてあるのですが、初学者からするとクライアントってビジネス的には「取引先や顧客」などを意味する為、自分から見て相手側をイメージします。なのでずっとサーバー側で作業していたのですが、この業界ではクライアントがローカル側というのは常識らしいです。にしめのレベルがあがった。
他の人の日報を見ても、同じミスをしている人がちらほら居ました。仲間から指摘で無事間違いに気づいた僕は次の沼に飛び込んで行きます。(また沼かよ!😅)

クライアント側を理解した僕は久々にMacのターミナルを開き、鍵認証のみssh接続を許可するように設定を変更して行きます。 まずはクライアントでキーペアを作成。
cd ~/.ssh
ssh-keygen -f client_rsa -t rsa -b 2048
ls ~/.ssh 結果👉client_rsa client_rsa.pub id_rsa  id_rsa.pub known_hosts
client_rsa client_rsa.pub id_rsa id_rsa.pub known_hosts

そしてクライアントにキーペアの登録
ssh-add -K ~/.ssh/client_rsa
ここまでは順調だった。次に鍵をサーバーに登録(ssh-copy-idコマンドを使った方法)しようとしたのですが、
ssh-copy-id -i ~/.ssh/client_rsa.pub -p 5000 nishime@自分のIPアドレス
と打つと、
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 自分のIPアドレス port 5000: Operation timed out
となってしまう。(Portは22から5000に変更済み。)

さらに、サーバー側でsudo vim /etc/ssh/sshd_configし、設定を変更するも、:wqで保存終了できず、E45: 'readonly' option is set (add ! to override)となる😓

この度重なるエラーについて、Slackで質問したり、ググったりしたのですが、解決できませんでした。

最終的にどうしたか

叫んだ。

すると、すぐさま仲間やメンターさんが反応してくれ、僕の都合の良い時間でお助け会(スペシャルタイム)を開いてくれることになりました。思ってもみない事態となり、驚きと感謝でいっぱいになりました。 これが、2021年1月5日の出来事です。

そして1月7日。前日の深夜になんとか自分の直面している問題点を日報にまとめ、zoomでお助け会が開かれました。

結果的に何が問題だったのか

sudo journalctl -xeでログを見ていくと、line122と言う表記が見つかりました。sudo vim /etc/ssh/sshd_configを開くと、最上段になにやらswap fileなるものができています。 これは他のプロセスが、編集中に強制終了したりするとできてしまうファイルらしく、おそらく最初にFirefoxのさくらVPS上でvimの挙動がおかしかった際、画面が固まってしまい強制終了したりしていたのでできたものかと思います。
再度sshd_configに戻り、122行目を見ると、知らぬ間にコピペされたコマンドが入り込んでいました。 この行を消すことでsshの起動は問題なくできるようになりました!

次に、vimがreadonlyになって保存終了できない問題です。
先程のswap fileを削除します。コマンドは以下。
ls -la
sudo rm .sshd*
これでswap fileが削除され、vimが変更保存できるようになりました!

無事sshが起動するようになったので、課題の「クライアントにキーペアの登録 」に進みます。しかしここでもまた問題が起きます。(どんだけ〜)
ssh-copy-id -i ~/.ssh/client_rsa.pub -p 5000 nishime@自分のIPアドレスしても返ってこない。こういう時に原因としてよく挙げられるのが、PortかIPアドレスが間違っているという事例らしいのですが、何度確認しても両方合っているんですよね…
そこでメンターさんが自分のローカルでPort5000で接続したり、元々の22で接続したりを試してくれ、22の時はすぐに返ってくるのに、5000だとやたら時間がかかりタイムアウトすることに気づきました!さすがです!w

そうです。このPort5000が良くなかったのでした😓

ウェルノウンポート以外だったらなんでも良いのですが、そのポートが何かに使われたりしていたらダメみたいで、5000は運悪く何かに使われているか、なんらかの原因で接続できないポートだったようです。 と言うわけで、Portをみんなが使っているのと同じ数値(今回は50022)に変更し、事なきを得ました。

まとめ

  • さくらのVPSコンソールはFirefoxを推奨しているが、Chromeの方が無難でした。

  • vimを強制終了したりすると、swap fileができてしまい、:wqで保存終了できなくなる。

  • Portは基本なんでも良いが、5000は辞めた方がいいよ💔

  • フィヨルドブートキャンプの皆んなは優しいし、メンターさんも最高ですので是非入会して一緒に学びましょう!

これで僕のssh2週間戦争は終止符を打ち、無事お正月を迎えることができたのでした。 お世話になった方々、本当にありがとうございました。 また詰まったら、もう少し早くSOSを出したいと思います😇

見えてきたエンジニア像

これは「フィヨルドブートキャンプ Part 1 Advent Calendar 2020」の13日目の記事です。
フィヨルドブートキャンプ Part 1 Advent Calendar 2020 - Adventar
昨日はmasuyama13さんのプログラミング学習中の人が稼働中のシステムに不具合を発生させた話 - No Solution for Lifeでした。

Part 2もあります。
フィヨルドブートキャンプ Part 2 Advent Calendar 2020 - Adventar

朝は1杯の白湯からスタートしています、にしめです😌 人生初のアドベントカレンダーです😆
中身は至って真面目な記事ですので、最後までお付き合いください。笑

初めに、私は2020年8月から大名エンジニアカレッジとフィヨルドブートキャンプでプログラミングを学んでいます。
今回は私が約4ヶ月間プログラミングを学習して行く中で見えてきた、目指すエンジニア像について書いていきたいと思います。

なりたい姿が見つかるまで

学習を始めた頃、「何か作りたいもの(サービス)を見つけると継続できたり楽しくなったりしますよ。」と言うアドバイスを頂いたのですが、自分にはそんなものがありませんでした。そもそも、プログラミングによってどんなものが作れるのかも分かっていないので無理もありません。ですが、学習を続ける中で、こんなものがあったら良いのにな〜という物が少しだけ見えてきたので、それを今回はご紹介したいと思います。
私がプログラミングを学ぶきっかけになった話は前回のブログ記事をご一読頂ければと思います。(短いのですぐ読めます)

プログラミングを学ぶきっかけ - 熟すと腐るは紙一重

自分にしか経験したことのない事

私には二人の娘がいます。今は公務員として働きながらフィヨルドブートキャンプのカリキュラムを受講して、少しずつですがプログラミングを学んでいるところです。公務員と言っても、消防職員ですので勤務は24時間です。これまで火災や救助現場も数多く経験してきましたが、現在は救急隊として多忙な部署に配属されているため、寝る間も無く出動し続けています。最近は新型コロナの脅威も肌で感じつつ、プレホスピタル(病院前救護)の最前線として過酷な肉体労働をこなしている毎日です。 そんな中、家に帰れば可愛い娘たちが待っており、仕事の疲れを癒してくれたり、追い討ちをかけてきてくれたりするわけですが、今から数年前は本当に大変でした。

その前に、皆さんは「医療ケア児」という言葉を耳にしたことがあるでしょうか?おそらく、ほとんどの方が初めて聞いた言葉だと思います。 次女が生まれたのは、2018年のことです。出生体重476gという極低出生体重児として産まれました。その日から私達家族の生活は一変しました。毎日NICUに通い、ひたすら病院と家の往復生活です。1年以上の入院生活中、最先端の医療を受けに遠く離れた県外の病院へ転院し、家族で県外へ移住…本当に大変でした。(あの究極の日々を思い出すと泣けてきます)今でも定期的に1,300km以上離れた病院へ通っています。小さく産まれた事により、娘には医療ケアが必要です。前述の医療ケア児については、以下のリンクが分かりやすくまとめてあるので、一度見て知って頂けたらと思います。

florence.or.jp

社会の「不」を解決したい

私達家族が経験した事で、社会の役に立てる事はないか。この生活リズムに慣れてきた今、今度は誰かの役に立ちたいと思えるようになってきました。予想もしていなかった初めての経験、周りには同じ境遇の人は居ない。情報不足、地域医療格差、コミュニティとの距離…。経験した私たちにしか分からない不安や不便、負担があり、世に役立つサービスを作る事で、それらを少しでも解決出来たらと思っています。
例えば、受けられる社会福祉の申請においても市役所に提出する書類は山ほどあり、それに目を通し、記入して市役所まで持って行く。この作業を何回もしなければなりません。ただでさえ忙しい病院通い中、夜中の2時・3時に書類を書いていたことも少なくありませんでした。もちろんインターネットで調べたりはするのですが、各種制度は、国で共通のものもあれば、市町村ごとに要件が違うものまで様々で、制度ごとに調べなければならず時間がかかります。 自治体と提携し、傷病名や出生体重、世帯収入などから該当する制度を一括して検索できて、書類の書き方を調べられるようなWEBページがあれば家族の負担を軽減することが出来ると思います。同時に市や県の担当職員の業務軽減にも寄与できるかもしれません。
今挙げた例は、現時点で思いつく限りのほんの一例ですが、エンジニアになってこういった社会の「不」を解決していきたいです。

地域を繋ぐ。盛り上げる。

プログラミングを学び始めて、全国色々な地域の方とコミュニケーションを取ることが増えました。 そこで改めて自分が住んでいる街のポテンシャルに気付かされ、もっと外へ向けて発信していって良いんだ!と、自信を持てるようになりました。
ところが、私と同じように街の人々は自分たちの持つ魅力に気づいていません。私はこの地元に生まれて地元で育っているので、多方面に知り合いがおり、人との繋がりも深いです。その強みとインターネットの技術を活かして、魅力あるお店や街をアピールする手伝いができれば、街の人々の意識を変えることができるかもしれません。サービスを作るエンジニアとしてだけでなく、そこに人を繋げること。自分にしかできない役割りを確立できれば、街をもっと盛り上げることができると思っています。

なぜここまで追い込めるのか

正直、子育てをしながら不規則な肉体労働、医療ケア児のお世話と、プライベートな時間なんてほぼありません。学習の進みも遅い方だと思います。それで0からプログラミングなんて我ながら追い込んでるな〜と思います。笑
でも自分がエンジニアになることで、将来必ず誰かを楽にできると信じています。それはこれから産まれてくる医療ケア児とその家族であったり、街の人であったり。規則正しい仕事に就けば私の家族にも楽をさせてあげられると思っています。挑戦しなければ何も変えることは出来ませんし、将来何も変わっていなかったとしたら、それは私の責任です。とは言え、心が折れそうになったり疲れたりすることもあり、そんな時は子供達の寝顔を見て、「この寝顔を見たらまだまだ頑張らなきゃだな。」と話しています。

「え?私の寝顔は!?😑」と、隣で睨むヘビに震えながら…w

※記事タイトルのボツネタは、「見えてきたエンジニア像〜ぱおん」でした😇
どなた様も年末の事故にはお気を付けください😌w