健康と働き方の模索〜社会復帰にむけたさいよわさんのもがき〜

はじめに自己紹介

Aizackという名前で2018年ごろからTwitterで活動してきました。
主にはエンジニア系コミュニティに顔を出し、イベントやコミュニティイベントの開催を手伝っていたこともあります。 仕事は客先常駐のSE、チャットサポートのアルバイトを経て、自社製品のメールサポートエンジニアなどを経験してきました。
一方で、SE時代にメンタル疾患を発症し、それを抱えながら無理して働き続け、昨年に直近の会社を辞職。
その後に腰椎ヘルニアという怪我を発症したため、仕事どころか外出もままならない状況で辛うじて生きています。

本ブログの目的

このブログの目的は以下の3つです。

  • 健康で働けている皆さんにも世の中にこんな状況でもがく変わった人間がいることを知っていただきたい
  • 私同様に、どうにもならなくてもがき意気消沈している人にも「あなただけではない」と伝えたい
  • 私なりの方法で人生を諦めず、改めて人生の充実感を掴むために生き汚く歯を食いしばっていることを誰かに知ってほしい

一寸先は闇、明日は我が身という言葉がありますが、私はこの状況になって改めてこの言葉の重みを感じています。
偶然で社会から足を踏み外しつつ、それでも生き汚くもがく「さいよわさん」こと私の状況を読んで頂いてなにかの足しになれば幸いです

注意点

当然ですが、本記事で私が描くストーリーや精神疾患の話はあくまでもn=1の個別事象です。なんらかの示唆をえられる可能性は否定しませんが、他のケースで流用できるほどの理論はございません。そこだけはご留意の上、お読みください。

私の健康状態および取り巻く環境

健康状況としては大きく2つあります。

うつ病は脳が誤作動するため、私の場合は健康なときであれば処理できることができなくなりました。食事、風呂、買い物や洗濯などの日常動作の負担・体力消費が健康時の比にならないほど大きくなりました。

また、私の場合はうつ病から関連する症状として不眠症過敏性腸症候群*1といった症状も出ています。加えて、うつ病で自分の生活が管理できなくなることで「糖尿病」も発症しました。生活習慣がめちゃくちゃになることで別の大病が発症するという状況でした。

  • 2) 2023年に患った「腰椎ヘルニア」

2023年3月に外出中に歩けなくなるほどの腰の激痛を感じ、その後に病院で「腰椎ヘルニア」と診断されました。その後約1年病院を使い分け痛み止めの注射とリハビリを進めていますが、未だ外出には杖が必要で数百mも歩くことができません。仕事に復帰するのは困難な状況のためしばらくはリハビリと治療に本腰を入れるほかないというのが主治医の見立てです。

福祉の隙間とは

私は30代男性、いわゆる労働年齢の中でもボリュームゾーンに位置する属性を持っています。一応、うつ病の病歴で精神障害者手帳の3級はとれましたが、これは他の手帳に比べて支援内容は多くはありません。

実際、うつ病とヘルニアで働けなくなった私が依頼・申請できた福祉は「生活保護」の1択です。それはうつ病とヘルニアの症状が「国の福祉基準を満たすほど重篤ではない」と判断されたためです。

一方で私の状況は

  • 自宅では寝たきりor調子が良ければ家事の一部を時間をかけながら少しずつこなすことができる

  • もちろん仕事を探すが、世の中に必要なのは「障害の有無にかかわらず健康で安定して働ける人間」であるため、応募基準を満たしておらず、仕事は見つからない

  • にもかかわらず、病院に通い健康を取り戻すためのお金(移動費や医療費)はかかり続ける

  • そして必死に公共やNPOなどの支援を探すが「高齢者」「こども」「子持ちのシングル」「女性」といったキーワードは存在するが、私のような若い男性である時点で支援の対象外であることが非常に多い

上記のような打つ手が限定されている状況ではありますが、なんとか生き残っています。

これから私はどう生きるか

ひとまず、当面の目標は現在受けている「生活保護」を通じて、自身の生活を見直す。その中でヘルニアの治療を中心に外出可能な体力をつけていくことが先決だだ考えています。

その後は、障害年金の申請を進めて一定の収入をつくりつつ、福祉サービスである就労移行支援を通じて就職活動・社会復帰を行うという方針です。 正直、数年前の元気に働いていた頃の自分から見れば人生に希望を持つのは難しい状況になってきました。ただ、エンジニアの皆さんから学んだ行動力とそこでたくさんの失敗を経験して「まぁなんとかやっていけるでしょ」と考える楽観性は、今の私が生きる支えになっています。

正直なところ、上に書いた理想の方針の通りに進んでいくのかわかりませんが、これを実現してまたエンジニアの皆さんの楽しい集まりに胸を張って参加できるようになりたいと思っています。

復帰できましたら、これまでにたくさんご迷惑をおかけした皆さんにも謝罪したいと考えていますので、それを叶えるためにも環境に負けずに生き汚くもがく所存です。

*1:私の場合は、ストレスが強くなると場所を選ばすお腹を下す症状を持っています。食事に気をつけようとも高ストレス下であればコップ1杯の水でも耐えることはできません。油物などもっての外です。

スクフェス新潟に参加してきました

参加した立場

今回は実行委員(スタッフ)として参加しました。
これまでスクフェス等のイベントはオンラインのみ、しかも参加者と発表者しか経験がなかったので現地に行くスタッフは初めてでした。

参加した理由はひとえに、「主催であるじゅんぺーさんの熱意」に賛同したからだと思います。
私自身QAでもテスターでもアジャイルをやっているわけでもなく、参加当時は転職活動中(無職)だったのでじゅんぺーさんの熱意と個人的な興味で参加しました。

やっていたこと

実行委委員としては事前の定例MTGを半年ほど。
そして現地では、会場の設営・Onlineトラックの進行・自身の発表等様々なことを経験しました。
特に現地実施だったためか会場の設営に時間と手間が思いの外かかり、じゅんぺーさんはもちろんのこと会場のNINNOでお手伝いしてくださったスズキさんと霜村さんや早めに新幹線で来てくださったkobaseさんには本当にお世話になりました。

感想

初日・最終日両方を通して学んだことは沢山ありますが、現地開催に初めて参加したため「これが現地の熱量か!」と大変驚きました。
常に何かが起きており、何か起きるたびにダイレクトに反応がある。 「現地が減ってつまらない」というコロナ前からの参加者の方の嘆きがわかる気がしました。(とはいえ半分以上の時間スタッフ作業で話を聞けていないのですが…)

今回、現地とオンラインのハイブリッド開催となりオンライン側は、テストの街「葛飾」のおおひらさんと品川アジャイルの皆さんによる雑談配信が行われていたようで、後ほどスレッドをみるととても盛り上がっていたことを知りました。
現地だけでなく、オンラインも盛り上げて頂き本当に感謝しています。

さいごに

今回はじゅんぺーさん、そしてオープニングキーノートのダニエルどちらかが欠けていたら成り立たなかったんじゃないかと思うほど二人は重要な存在でした。

もちろん、スタッフ全員の誰かが欠けても大変だったと思いますが、現地のあの熱狂を生んだのは間違いなくあの二人がいたからだと思います。

スクフェス新潟に参加したおかげで私は初の現地スタッフという経験と様々な問題に取り組むことになりましたが、これは結論としては「楽しかった」と言っていいものだと思います。

毎週のようにやっていたMTGでの苦労も会場で起きた小さなトラブルたちもひっくるめて「楽しかった」が勝ちました。

おまけ

そんな私ですが、スクラムフェス新潟が縁で転職活動も終わり6月からお仕事をできる立場になりました。
製品のサポートエンジニアとしてこれまでの、システムエンジニアとカスタマーサポートの両方の経験を活かして頑張っていこうと思います。

AWS クラウドプラクティショナーの学習をはじめました(3)

実際にやってみていること

  • 試験ガイドとサンプル試験を探す
    • サンプル試験は解いてみる
  • 勉強方法を書いているブログを見つける
    • そこの方法を実践
    • skill builder(AWSの動画コンテンツ)でクラウドについて学ぶ
  • 上記をポモドーロ・テクニックを使い、25分の学習+5分の振り返りというサイクルで回して学習している

各ポモドーロの振り返り(2022/4/13)

【第1ポモドーロの振り返り】

  • プロビジョニング

    • AWSを操作する方法→API
  • プロビジョニングの方法(サービスを起動等管理する)

  • Amazon Virtual Private Cloud(VPC)

    • 論理的に分離したネットワークとしてAWSサービスを置くことが可能
    • パブリックサブネット
    • プライベートサブネット

【第2ポモドーロの振り返り】

  • 仮想プライベートクラウドVPC

    • 内側にEC2やELBを設定可能
    • サブネット
    • インターネットゲートウェイ(IGN)
      • これを通すと外部からサーバへアクセス可能
    • 仮想プライベートゲートウェイ
      • 認証を得たリクエストのみアクセス可能
    • AWS Direct Connect
  • セキュリティ

    • ネットワーク強化
      • パブリックサブネット
      • IGNとつながっているサブネット(IPアドレス
      • インターネット上からアクセス可能
    • プライベートサブネット
      • IGNとつながっていないサブネット(IPアドレス
      • サブネット側からの許可がある場合は接続可能
    • ネットワークアクセスコントロールリスト(ACL
      • サブネットへのパケット監視を行う
      • ステートレスのため毎回認証を行う
    • セキュリティグループ
      • EC2へのパケット監視を行う
      • ステートフルで、一度認証を通るともう認証はしない
  • アプリケーションセキュリティ
    • ユーザーアイデンティティ
    • 認証と認可
    • 分散型サービス妨害(DDoS)攻撃の防御
    • データの整合性
    • 暗号化

まとめ

  • 2ポモドーロ回すだけで十分な勉強時間と量が確保できることが分かってきた。
  • 一方で連続するとかなり疲れるので、2〜3ポモドーロを目安に長い休憩を入れても良いかも知れない。

AWS クラウドプラクティショナーの学習をはじめました(2)

背景

エンジニアになりたいと思っていてもプログラミング知識以前にクラウドの知識にも疎いことをふと実感したためです。

実際にやってみていること

  • 試験ガイドとサンプル試験を探す
    • サンプル試験は解いてみる
  • 勉強方法を書いているブログを見つける
    • そこの方法を実践
    • skill builder(AWSの動画コンテンツ)でクラウドについて学ぶ
  • 上記をポモドーロ・テクニックを使い、25分の学習+5分の振り返りというサイクルで回して学習している

各ポモドーロの振り返り(2022/4/12)

【第1ポモドーロの振り返り】

  • モジュール3開始

    • グローバルインフラストラクチャ
      • リージョン
        • 世界中にデータセンターを持ち、それらを高速ファイバーネットワークでつなぐ
        • リージョンは複数のデータセンターで構成されている
        • 選択要件
          • データガバナンスと法的要件の遵守(コンプライアンス
          • 利用顧客との近接性
          • 利用可能な機能
        • 料金
    • アベイラビリティゾーン
  • エッジロケーション

    • リージョンとは切り離されても、コンテンツを素早く顧客に提供できる
      • CloudFrontというCDNサービス
      • Route53というDNSサービス
      • AWS Outposts
        • 独自の建物内でAWSサービスを利用する際に使う
        • ミニリージョンのデータセンター
        • お客様の建物内で独立してAWSのサービスが利用可能
  • ポイント

    • リージョンは地理的に分離された場所にある
    • リージョンはアベイラビリティゾーンで構成されている
    • エッジロケーションでCloudFrontが実行される

まとめ

  • 今日は1ポモドーロしか回せませんでした。
  • とはいえ、それでもこれだけのノートが作れるポモドーロ振り返り、良いかもしれません。
  • 是非やってみてください。

AWS クラウドプラクティショナーの学習をはじめました(1)

背景

エンジニアになりたいと思っていてもプログラミング知識以前にクラウドの知識にも疎いことをふと実感したためです。

実際にやってみていること

  • 試験ガイドとサンプル試験を探す
    • サンプル試験は解いてみる
  • 勉強方法を書いているブログを見つける
    • そこの方法を実践
    • skill builder(AWSの動画コンテンツ)でクラウドについて学ぶ
  • 上記をポモドーロ・テクニックを使い、25分の学習+5分の振り返りというサイクルで回して学習している

各ポモドーロの振り返り(2022/4/11)

【第1ポモドーロの振り返り】

  • 試験ガイドとサンプル問題を発掘
    • サンプル試験解いた8/10
    • 全65問の試験で100〜1000点中700点で合格
  • 各分野の偏りは把握済み
    • 詳細は不明
  • 英語のオンライントレーニングがあるらしい(12h)
    • キルビルダーというらしい
    • 登録したら見れるかも→見れるので見てみる

【第2ポモドーロの振り返り】

【第3ポモドーロの振り返り】

  • EC2インスタンスの基本とそのタイプを学んだ
    • 汎用
    • コンピューティング最適
    • メモリ最適
    • ストレージ最適
  • どれも向き不向きがあって、用途別に分かれているらしい

【第4ポモドーロの振り返り】

【第5ポモドーロの振り返り】

  • Elastic Load Balancer

  • メッセージとキューイング

    • SQS
      • キューを送る・保持する・受け取るサービス
      • 自動スケーラブル -SNS
      • エンドユーザーにも通知できる
      • メッセージのチャネル(送り先)が多様
  • サーバーレス

    • インフラにアクセスできないもの
    • AWS Lambda
    • AWS Fargete
      • ECS、EKS用のコンテナ向きのサーバーレス
  • コンテナオーケストレーションサービス

    • Amazon Elastic Container Service(ECS)
      • Dockerを使う通常のコンテナをのせるもの
    • Amazon Elastic Kubarnates Service(EKS)
      • コンテナを大量にクラスタで運用するためのもの

【第6ポモドーロの振り返り】

  • 目標のモジュール2まとめテスト修了!のため中断

まとめ

  • ポモドーロ・テクニック+振り返りというやり方がすごく馴染み、集中が途切れにくい(反面相当疲れるが…)
  • AWSのskill builderの動画は日本語訳付きがあるので興味がある人は是非登録、見てみてほしい。
    • 動画での学習効率が高いのでとても頭に入る。

Rails Tutorial意図せず2週目(第7章 ユーザー登録)

背景

1周目第13章途中でどうしても問題が解消できなくなり、gitでソースコードを戻してもDBの状態が戻らない、Herokuにデプロイはできるがアプリケーションが表示されない等の問題達にぶち当たったため、意図せず2周目を開始することに。
今回は丁寧にわからない用語等あれば拾いつつ復習していこうと思います。

第7章 ユーザー登録

前章でUserのDBとModelを作成したため、本章ではユーザーを登録していきます。その中でRailsの以下のような機能に触れていきます。

  • debugメソッド
  • Railsの3環境、開発(development)、テスト(test)、本番(Production)
  • flashメッセージでの一時的なメッセージの表示

これらに加えて本番環境のHerokuにはSSLとPuma(Webサーバ)を設定していきます。

以下1周目はスルーしていた概念やコマンドの意味を調べる

3つの環境

Railsには元来、以下の3つの環境が備わっており、それぞれが疎結合(つながっていない状態)になっています。本章でここを掘り下げるためそれを深く理解するためにそもそもどのような環境でどのような違いがあるのか調べてみました。

  • 開発(development)
  • テスト(test)
  • 本番(Production)

私の少ない経験上、これら3つの環境は開発をする際に必要なものです。
開発環境では現在開発中のアプリケーションを保持し、テスト環境ではその妥当性のテストを行い、本番環境は一般ユーザーが見ることができる環境として切り分けておきたいのです。
3環境についてしらべていたところ、「システム開発の際に用意すべき環境」というちょうどよい記事があったので、こちらを貼っておきます。

私自身こういう大きなフレームワークにふれるのは初めてなので3環境が整っていることに驚きましたが、他のフレームワークでもあるものなのでしょうか。気になります。


各環境へのアクセス方法とその際のコマンドの使い方をRails Tutorial 第7章 ユーザー登録 コラム 7.1. Railsの3つの環境から引用してきました。以下引用です。

【各環境の使い方 コマンド】

$ rails console [各環境名]

$ rails server --environment [各環境名]

$ rails db:migrate RAILS_ENV=[各環境名]

また、db:migrateは語順を変えてこういう書き方も可能なようです。

$ RAILS_ENV=[各環境名] rails db:migrate


【結論】

  • Railsにはシステム開発に必要な3つの環境がはじめから用意してある
  • 各環境へアクセスする方法も定義してあるため差分確認も可能
  • 各環境が疎結合になっていることで事故が起きにくいように感じた
form_with

本章ではユーザー登録ページを作成する際にユーザー登録フォームを作成しました。その際に利用したRailsの機能が「form_with」です。
この機能を使うと、form_withブロック配下でHTMLのフォームが作成できます。 以下の例のように、form_withブロック配下にテキストボックスやメールフォーム、パスワードフォーム等の作成が可能になります。

[例: /app/views/users/new.html.erb(一部抜粋)]


<%= form_with(model: @user, local: true) do |f| %>

<%= f.label :name %>
<%= f.text_field :name %>

<%= f.label :email %>
<%= f.email_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>

<%= f.submit "Create my account", class: "btn btn-primary" %>
<% end %>


詳細についてはこちらのサイトに載っていたので、参照ください。

railsdoc.com

【結論】

  • form_withはブロック内にHTMLフォームを実装可能
  • フォームの種別(タイプ)はHTMLフォームに依存1

Rails Tutorial意図せず2週目(第6章 ユーザーのモデルを作成する)

背景

1周目第13章途中でどうしても問題が解消できなくなり、gitでソースコードを戻してもDBの状態が戻らない、Herokuにデプロイはできるがアプリケーションが表示されない等の問題達にぶち当たったため、意図せず2周目を開始することに。
今回は丁寧にわからない用語等あれば拾いつつ復習していこうと思います。

第6章 ユーザーのモデルを作成する

本章では前回作成したUsers Controllerを軸にUserに関するModelやDBを作成していきます。今後、ユーザー認証を行うための土台づくりです。
その中でDBのマイグレーションやActive Recordの使い方を学び、Railsの強力な概念を掴んでいきます。また、Model内でのバリデーション設定や正規表現などにも触れるため段々とRubyRailsの難しい部分にも触れていきます。

以下1周目はスルーしていた概念やコマンドの意味を調べる

Active Recordについて

Railsでデータベースを使ってやりとりするデフォルトのライブラリとして「Active Record」があります。これを利用してModelにデータを渡してデータベースの操作を行うことを本章で行いました。しかし、詳しい内容はわからないまま使っていたので、Railsガイドを参照して、ポイントを調べてみました。


以下、Railsガイド v7 Active Record の基礎からの引用です。

【Active Recordそのものについて】

  • Active Recordとは、MVCで言うところのM、つまりモデルに相当するものであり、ビジネスデータとビジネスロジックを表すシステムの階層です。
  • Active Recordは、データベースに恒久的に保存される必要のあるビジネスオブジェクトの作成と利用を円滑に行なえるようにします。

【ORMとして】

  • オブジェクト/リレーショナルマッピングO/RマッピングやORMと略されることもあります)とは、アプリケーションが持つリッチなオブジェクトをリレーショナルデータベース(RDBMS)のテーブルに接続することです。
  • ORMを用いると、SQL文を直接書く代りにわずかなアクセスコードを書くだけで、アプリケーションにおけるオブジェクトの属性やリレーションシップをデータベースに保存することもデータベースから読み出すこともできるようになります。

【結論】

  • Active RecordはMVCでいうModel相当でデータとビジネスロジックを表す階層である。
  • データをやり取りするORM(オブジェクト/リレーショナルマッピング)としてSQLを直接書かなくてもDBの操作を可能にする機能です。
  • 実際に第6章で書いていてもSQLを一切書くことなくDB操作が可能で、かなり楽にUserを作成できるようになりました。
  • これはSQLを知らない初学者にとっては非常に楽に開発が可能になる機能だと感じました。以前Java等でのORMを利用したことありましたが、それに比べて簡単にデータのCRUDができるActive Recordは凄いなと感じています。