[{"content":"やる気がないわけではない。\nむしろ逆です。\n本当は全部ちゃんとしたい。\nそれなのに、今日も何もできてない。\nちゃんと勉強したい。\n計画は完璧な形にしたい。\nノートはきれいにまとめたい。\n中途半端にしたくない。\nそうやって準備だけ整えて、\n気づいたら1日が終わってます。\n理想が高すぎる 勉強するなら、100点取れるようになりたい 始めるなら、継続できないと意味がない これが自分の首を絞めている。\n失っているもの 完璧にやろうとする理由はシンプル。\n失敗したくない。\n努力した結果がしょぼかったら耐えられない。\nやったのにできなかったとき、傷つく。\nやらないでいれば、「本当はできる自分」でいられる。\nだからやらずにいる。\nその代わりに、\n今日という時間を確実に失っている。\n解決策はひとつだけ 考え方を変えるしかない。\n60点でいい 途中で終わってもいい 前に進んだ事実だけを評価する 完璧じゃなくていい。\nゼロよりマシな一歩を、認めること。\n","date":"2026-01-20T15:37:00+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2026/01/20/","title":"完璧にやろうとして何もできない病"},{"content":"場所 ハローワーク内の会議室。\n参加者は20人ほどで、着席場所は自由でした。\n持ち物 雇用保険の失業等給付受給資格者のしおり 筆記用具 マイナンバーカード ハローワーク受付表 ハローワークナビ 必要な時間 約2時間\n内容 ① 雇用保険受給資格者証の受け取り ひとりずつ名前を呼ばれて、挙手してその場で\n「雇用保険受給資格者証」を受け取りました。\nその際にマイナンバーカードの確認もありました。\n出席確認も兼ねているのかな。\n私は賃金額確認中のため仮交付でした。\n支給番号などが未記入の状態のものを受け取りました。\n② 雇用保険説明(ビデオ＋口頭) 失業給付を受け取るしくみや、\n失業認定申告書の書き方について説明を受けました。\n必要な求職活動回数は原則2回以上ですが、\n初回認定日に限っては1回でOK であり、\n今回の説明会参加が1回とカウントされる とのこと。\n雇用保険受給資格者証に記載されていた初回認定日まで、\n「あと1週間しかないの！？」と一瞬焦りましたが、\n今回は特に追加の活動は不要とわかり、ひと安心しました。\n注意点として、以下を脅し気味に説明されました。\n1日数時間でも働いたら書く 書かないと不正受給扱いになる可能性がある 絶対にバレる、バレたら返還＋ペナルティ ③ 公共職業訓練やセミナー等の紹介 無料で受講できるのはいいなーと思いましたが、\nどこも自宅から遠い場所で、近所で受けられるものがほとんどありませんでした。\n田舎はつらいなぁ…と思いつつ、と聞き流しました。\n④ 国民年金について説明 年金事務所の方から、\n第2号被保険者から第1号被保険者への切り替え手続きが必要\nという説明がありました。\n私はすでに手続き済みなので、聞き流しました。\n感想 正直、2時間は長くて結構疲れました。\n30分前に到着したのですが、誰もいなくて無駄に不安に過ごした時間があったのも地味にしんどいです。（ほぼ全員5分前くらいに来た）\n心配性なのでそんなギリギリ行動できない。\n","date":"2026-01-08T17:37:00+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2026/01/08/","title":"【退職】雇用保険受給者初回説明会の参加"},{"content":" 種類 加入者 保険料の負担 第1号被保険者 自営業、農林業者、無職、自由業者、学生 各自で納付 第2号被保険者 厚生年金保険加入者、共済組合員、船員 給与から天引き 第3号被保険者 第2号被保険者に扶養されている配偶者 自己負担なし 退職に伴い、厚生年金保険の資格も喪失しましたので、第2号→第1号被保険者へ変更する手続きが必要です。\n手続きする場所 国民年金に加入するための手続き\nhttps://www.nenkin.go.jp/service/kokunen/kanyu/20140710-04.html\n市役所または年金事務所でできるそうですが、マイナポータルだけで完結できました。\n個人の方の電子申請（国民年金）\nhttps://www.nenkin.go.jp/denshibenri_kojin/denshibenri_kojin/shinsei_kojin.html\nマイナポータルのトップ画面で 「年金＞国民年金に加入する方・加入中の方の手続き」を選択。\n提出するもの 資格取得（種別変更）届\n必要な時間 マイナポータル経由のねんきんネットで申請してから、約二週間で完了になりました。\n年末年始を挟んだので時間がかかったのかも。\n国民年金保険料の前納 国民年金保険料の納付は口座振替・前納をすると割引が適用されてお得だそうです。\n国民年金保険料の前納\nhttps://www.nenkin.go.jp/service/kokunen/hokenryo/zenno.html\nこのうち、「2年前納」制度が最も割引が大きく、17,010円も安くなるとのこと。\n国民年金保険料の「2年前納」制度\nhttps://www.nenkin.go.jp/service/kokunen/hokenryo/ninenzenno.html\n途中で厚生年金に切り替わっても返金される とのことなので、手元に余裕資金があるなら、2年前納が最適解 のようです。\nこちらもマイナポータル経由のねんきんネットから手続きできました。\n支払い方法 口座振替を申し込んだため案内待ち。判明次第追記予定。\n感想 市役所で国民健康保険の手続き中に、「国民年金の手続きはしましたか？」と聞かれ、「マイナポータルから申請しました」と答えました。市役所から年金事務所に確認し、申請が届いていることを確認して終わりました。\nおそらく何もしていなければその場で国民年金の手続きも完了できたので、マイナポータルから申請する必要がなかったと思います。\n自宅でマイナポータルから申請できたのは便利でしたが、結局健康保険の手続きで市役所に行くことになったので、同時に完了できる市役所での手続きを選べばよかったと後悔しています。\n他の手続きで市役所に行く予定がある場合は、まとめて市役所で手続き 行く予定がない・平日動けない場合はマイナポータル一択 が最適解だと思います。\n","date":"2026-01-07T16:37:00+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2026/01/07/","title":"【退職】国民年金の手続き"},{"content":"退職に伴い、健康保険の資格を喪失しましたので、他の健康保険に加入しなければなりません。選択肢として次の方法がありますが、私は国民健康保険に加入しました。\n家族が加入している健康保険の扶養になる 社会保険の任意継続保険者となる 国民健康保険に加入する 1. 家族が加入している健康保険の扶養になる 失業保険を受給していて、日額が基準を超えると扶養に入れないそうです。\n私は、今回は失業保険を受給するつもりで、計算していませんがおそらく超えると思われるので選択しませんでした。\n※正確な可否は加入先の健康保険組合によって異なると思います。\n2. 社会保険の任意継続保険者となる 最長2年間、社会保険を延長するという「任意継続」制度があります。\n任意継続した場合の保険料は、健康保険のサイトに掲載されていました。\n在職中は会社が負担していた分も自己負担になるため、保険料は高くなるケースが多いです。\n3. 国民健康保険に加入する 国民健康保険の保険料は、世帯の前年の所得に応じて算定されます。市役所で試算してもらうことができます。\n事前に試算してもらった結果、任意継続するより国民健康保険の方が若干安く、手続きをさっさと終えられる国民健康保険を選びました。\n手続きする場所 市役所\n手続きに必要なもの 本人確認書類（運転免許証、マイナンバーカード） 健康保険の資格喪失証明書 健康保険の資格喪失証明書について 待っていても届かなかったので、離職票のコピーでなんとかなるかと思い市役所に行ってみましたが、「資格喪失証明書は必須」と帰されてしまいました。\n14日以内に手続きが必要と期限が迫っていたので、人事にメールで問い合わせると、すぐにPDFで資格喪失証明書が送られてきました。\n印刷して無事に手続き完了できました。結果的に14日を過ぎても特に問題ありませんでした。\n必要な時間 約30分程度で終わりました。\n支払い方法 不明。追記予定。\n感想 健康な身体のおかげで、病院に行くことはなく、手続きも特にトラブルなく済みました。\n健康保険の資格喪失証明書をすんなり入手できなかったのが悔しいです。必要な場合は人事に連絡を、とかどこかに書いてあっただろうか。書いてなかったと思うんだけど。見落としかなぁ。\n余談ですが、\n社会保険は社保（シャホ）\n国民健康保険は国保（コクホ）\nと略されます。\n初めて手続きする私には、用語を覚えるのが難しかったです。\n","date":"2025-12-26T16:37:00+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2025/12/26/","title":"【退職】健康保険の手続き"},{"content":"離職票を受け取ってからすぐにハローワークに行きました。\n（参考）雇用保険の具体的な手続き\nhttps://www.hellowork.mhlw.go.jp/insurance/insurance_procedure.html\n持ち物 離職票 マイナンバーカード 証明写真　マイナンバーカードを提示するなら不要 必要な時間 タイミングが悪く混雑している時間帯に行ったせいもあり、待ち時間含めて3時間かかりました。\nやったこと ①受付 総合案内にて、失業保険の手続きに来た旨を伝えます。\n離職票をここで提出します。\n②求職申込み ハローワークインターネットサービス上に「求職者マイページ」を開設します。\n結構入力しなければならない内容が多いので、スマホ一つでは大変でした。\n事前に登録しておくこともできるもよう。\n③登録した求職登録の内容確認 求職者マイページに登録した内容を職員の方と一緒に確認します。\n任意入力なので入力しなかった項目とか。「希望年収は？」等。\n④ 手続き 退職理由の確認 マイナンバーカード確認 振込先口座の記入 受付票の受け取り 今後のスケジュール説明（雇用保険受給者初回説明会の日程について） 感想 手続き自体は難しくありませんでしたが、とにかく時間がかかりました。\n特に求職申込みの入力項目が多く、スマホだけで対応するのはかなり大変です。\n事前に求職者マイページを作っておくのを強くおすすめします。\nマイナンバーカードもあると写真提出を省略できるので便利です。\n","date":"2025-12-23T12:37:00+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2025/12/23/","title":"【退職】はじめてのハローワーク"},{"content":"約10年間続けてきた会社を退職しました。\n仕事には恵まれていました。\n周囲の人達にも助けられてきたし、自分自身も確実に成長できたと思います。\n一方で、年数を重ねるにつれて\n「自分の得意・不得意」「やりたいこと」が前よりはっきりしてきて、\n今の仕事とのズレも見えるようになりました。\n退職を選んだ理由 ① 30歳・10年目 一区切りとして、自分のキャリアを棚卸ししたくなった 心の余白ができ、将来のことを冷静に考えられた ライフイベントや家族のこともあり、価値観が変わりつつあった ② 小さな違和感が積み重なった 求められる役割と、自分の適性に少しズレを感じるようになった 「対人より黙々と作業するほうが好きな自分」 に気づいた ③ 会社の文化が合わなかった コロナ前から完全リモートワークで働けていたが、出社回帰の雰囲気が強くなってきた 朝礼で企業理念を大声で読み上げたり、当番がスピーチをする習慣があり、これで消耗した ④ 「このままの私」が嫌だった 勉強しない 文句は言う、不満はある でも結局、なにも変えない 周囲がそんな空気で、気づけば私自身もそうなっていて、\nそんな自分を私自身が一番嫌っていました。\n「このまま続ける未来」と「新しい挑戦をする未来」を比べた時、\n後者のほうが明らかにワクワクしていて、\n「変わらないこと」より「変えてみること」を選びたいと思うようになりました。\n今の会社でよかったこと 多くの人に助けられて10年以上働き続けられた 信頼していたし、信頼されていた 給料が良かった 完全リモートワークで働けていた 周囲の反応 ありがたいことに、「戦力として頼りにしている」「辞められると困る」と言ってもらい、退職時期についてはかなり引き留められました。\n私自身も長くお世話になった職場なので、できるだけ迷惑をかけたくはなく、次の職場が決まっているわけでもないので、最後まで責任を持って引き継ぎや対応を行いました。\n（正直、逆に迷惑になっていないか不安でしたが、その点も問題ないと言ってもらえました）\n出社回帰への不安については正直にはっきりと伝えたのですが、「あなたはこれからもこのまま在宅勤務で問題ない」と言われました。ですが、「私だけOK」という状況は居心地がよいとは言えず、違和感が残りました。\nこれからどうするか とりあえず休みながら考えたい 走り続けてきた約10年だったので、まずは休みながら、自分のペースを取り戻したいです。\n「何を選ぶか」だけでなく、「どう生きたいか」も含めて考える時間にします。\n今まで触れてこなかった分野を学び直したい これまで仕事で深く関わってこなかった分野を、改めて基礎から学び直したいと考えています。\n資格取得を目指したい 2026年のIPA試験がどのようになるか、まだ明らかになっていませんが。何かしらのIPA高度試験の合格を目標にしたいと考えています。\nまとめ これからの道がはっきり見えているわけではなく、不安のほうが大きい日もあります。\nそれでも今は、「ここからまた始めていいんだ」と思えるようになりました。\nこのブログも、そんな小さな挑戦と試行錯誤の記録として、読んでもらえたらと嬉しいです。\n","date":"2025-12-10T10:15:48+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2025/12/10/","title":"【退職】会社辞めました"},{"content":"こんなのが表示されるようになった Action Required:\nO365 connectors within Teams will be deprecated and notifications from this service will stop.\nLearn more\nabout the timing and how the Workflows app provides a more flexible and secure experience. If you want \u0026gt; to continue receiving these types of messages, you can use a workflow to post messages from a webhook \u0026gt; request.\nSet up workflow\nhttps://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/\n2024 年 8 月 15 日より、Microsoft Teams の Office 365 コネクタ機能が廃止されます。\nスケーラブルで柔軟性があり、安全な方法で Teams との間で情報を中継するソリューションとして、Power Automate ワークフローをお勧めします。\nとのこと。\nワークフロー作成 Teamsでチャネルを右クリックし、「ワークフロー」を選択 「Webhook要求を受信するとチャネルに投稿する」を選択 名前を入力し、「ワークフローを追加する」をクリック 「ワークフローが作成されました。POST要求を行って実行してください」の下に記載のURLに対してPOST実行するようにする 設定したチャネルがプライベートチャネルだからか、投稿時にエラーになった\nWorkflowsで作成したワークフローを開いて「投稿者」を「フロー ボット」→「ユーザー」に変更したら投稿できるようになった Adaptive Cards の使い方はこの辺を参考にする\nhttps://adaptivecards.io/samples/ ","date":"2024-07-09T20:44:32+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/07/09/","title":"Webhook要求を受信するとMicrosoft Teamsチャネルに投稿する"},{"content":"現在のバージョン 1 2 3 4 5 6 $ hugo version hugo v0.125.7+extended darwin/arm64 BuildDate=2024-05-08T14:46:24Z VendorInfo=brew $ which hugo /opt/homebrew/bin/hugo $ brew --version Homebrew 4.3.5 Homebrewの更新 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ brew update ==\u0026gt; Updating Homebrew... Updated 2 taps (homebrew/core and homebrew/cask). ==\u0026gt; New Formulae codecov-cli geni kubelogin poutine ==\u0026gt; New Casks font-beiruti font-palemonasmufi-bolditalic font-palemonasmufi-regular itermai font-palemonasmufi-bold font-palemonasmufi-italic impel xnapper ==\u0026gt; Outdated Formulae aom c-ares curl freetds git highway hugo libsodium node openldap openssl@3 pcre2 php ruby ruby-build sqlite You have 16 outdated formulae installed. You can upgrade them with brew upgrade or list them with brew outdated. Hugoの更新 1 2 3 $ brew upgrade hugo $ hugo version hugo v0.127.0+extended darwin/arm64 BuildDate=2024-06-05T10:27:59Z VendorInfo=brew 設定ファイルの更新 netlify.toml\n1 2 [build.environment] HUGO_VERSION = \u0026#34;0.127.0\u0026#34; .github/workflows/main.yml\n1 2 3 4 - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: \u0026#34;0.127.0\u0026#34; ","date":"2024-06-16T17:03:01+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/06/16/","title":"【Hugo】バージョンをアップデートする"},{"content":"Googleが開発した画像ファイルフォーマットで、WebP（ウェッピー）と読むらしい。\n静止画とアニメーションの両方をサポート。\n特徴 JPEG、PNGに比べて高い圧縮率。 ロスレス圧縮（画質を一切劣化させない圧縮）と有損圧縮（若干の画質劣化を伴う圧縮）の両方をサポート。 透過画像をサポート。 アニメーション画像もサポート。GIFの代替として使用できる。 作り方 Googleが提供するツールをダウンロード\nhttps://developers.google.com/speed/webp/download\nmacOS: Homebrewを使ってbrew install webpコマンドでインストール\n変換コマンド実行\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ cwebp tsumarika.jpg -o tsumarika.webp Saving file \u0026#39;tsumarika.webp\u0026#39; File: tsumarika.jpg Dimension: 960 x 960 Output: 43002 bytes Y-U-V-All-PSNR 40.17 47.15 45.30 41.41 dB (0.37 bpp) block count: intra4: 2088 (58.00%) intra16: 1512 (42.00%) skipped: 362 (10.06%) bytes used: header: 172 (0.4%) mode-partition: 8103 (18.8%) Residuals bytes |segment 1|segment 2|segment 3|segment 4| total macroblocks: | 2%| 11%| 14%| 74%| 3600 quantizer: | 36 | 36 | 31 | 23 | filter level: | 11 | 15 | 20 | 25 | tsumarika.jpg(184KB) → tsumarika.webp(43KB) になった。\n","date":"2024-06-13T19:33:32+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/06/13/","title":"WebPってなに？"},{"content":"デフォルトでは、Gitはファイル名の大文字・小文字の変更を検知してくれないらしい。\n1 2 3 4 5 6 7 # 設定変更する $ git config core.ignorecase false # もしくは、追跡をやめてもらってから $ git rm --cached hoge.php # 再度ステージ $ git add Hoge.php ","date":"2024-06-12T18:41:59+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/06/12/","title":"【Git】ファイル名の大文字小文字の変更を検知してくれない"},{"content":" ターミナル＞タスクの構成＞テンプレートからtasks.jsonを生成＞Others を選択\ntasks.json ファイルを以下に修正\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format \u0026#34;version\u0026#34;: \u0026#34;2.0.0\u0026#34;, \u0026#34;tasks\u0026#34;: [ { \u0026#34;label\u0026#34;: \u0026#34;Laravel Serve\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;shell\u0026#34;, \u0026#34;command\u0026#34;: \u0026#34;php artisan serve\u0026#34;, \u0026#34;runOptions\u0026#34;: { \u0026#34;runOn\u0026#34;: \u0026#34;folderOpen\u0026#34; } } ] } VSCodeを閉じて、再度開くと実行されるのを確認\n参考にさせていただきました。\nhttps://supilog.supisupi.com/blog/b1e6undi9op2/\n","date":"2024-06-09T16:55:50+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/06/09/","title":"【VSCode】フォルダを開いたときにコマンドを自動で実行する"},{"content":"急にロリポップでレンタルサーバーを借りてみた。\nエコノミープランでもPHP使えるんだ。安いな！？とおもって。\nさっそくいろいろ遊んでみることにした。\nまずこのHugoブログをデプロイしたい。\nGitHubリポジトリのSettings \u0026gt; Actions secrets and variables に以下のSecretを登録\nFTP_SERVER: ロリポップのアカウント情報から取得 FTP_USERNAME: ロリポップのアカウント情報から取得 FTP_PASSWORD: ロリポップのアカウント情報から取得 FTP_SERVER_DIR: blog/ Actions を開き set up a workflow yourself をクリック\nmain.yml を以下にする\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 name: blog on: push: branches: [master] workflow_dispatch: jobs: ftp-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: \u0026#34;true\u0026#34; #これがないとthemeがcloneできない # Netlify用の設定を書き換え - name: Modify hugo.toml run: | sed -i \u0026#34;s|baseURL = \u0026#39;https://tsumari.netlify.app/\u0026#39;|baseURL = \u0026#39;https://tsumari.pupu.jp/blog/\u0026#39;|g; \\ s|# relativeURLS = true|relativeURLS = true|; \\ s|# canonifyurls = true|canonifyurls = true|\u0026#34; hugo.toml head -n 7 hugo.toml - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: \u0026#34;0.125.7\u0026#34; extended: true - name: Build run: hugo --minify - name: Sync files uses: SamKirkland/FTP-Deploy-Action@4.3.0 with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} server-dir: ${{ secrets.FTP_SERVER_DIR }} local-dir: ./public/ ","date":"2024-05-12T16:35:07+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/05/12/","title":"GitHub Actions でFTP自動デプロイ"},{"content":"モチベーション iOS、Androidアプリの作り方をあまりイメージできない 学生の時にJavaでAndroidアプリ作ったことしかない… 他の言語に触れる機会をつくりたい メモ Flutterのプログラミング言語はDart\nJava/Python/JavaScriptの特徴を備える https://docs.flutter.dev/get-started/install/macos/mobile-ios?tab=vscode\nVSCode Flutter extensions install Download the Flutter SDK Add Flutter to your PATH ~/.zshenv file.:export PATH=$HOME/development/flutter/bin:$PATH Configure Xcode sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer \u0026amp;\u0026amp; xcodebuild -runFirstLaunch' xcodebuild -downloadPlatform iOS sudo xcodebuild -license Install CocoaPods brew install cocoapods Android Studio install https://developer.android.com/studio?hl=ja HelloWorld\n","date":"2024-01-27T10:47:32+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2024/01/27/","title":"『動かして学ぶ！Flutter開発入門』"},{"content":"結果 午前Ⅰ得点：免除\n午前Ⅱ得点：76.00点\n午後Ⅰ得点：73点\n午後Ⅱ得点：56点\n不合格でした。\n感想 午後Ⅱがあと4点とは驚きました。\n感覚としては「確実に落ちたな」と思えるくらいボロボロだったのに、こんなに高得点だなんて…\n「どうせ合格できない」と思っていたけど、本気でもっとちゃんと勉強すればいけたのでは…？ って感じですね。\n来年もまた頑張ります。\nその前に、とりあえず4月は情報処理安全確保支援士を受験してみようと思っています。\n同じことにならないようにちゃんと勉強しよう。\n","date":"2023-12-21T18:28:14+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/12/21/","title":"データベーススペシャリスト試験不合格でした"},{"content":" モダンJavaScriptの基本から始める React実践の教科書\nモチベーション jQuery全盛期でフロントエンドの知識が止まっている もともとJavaScriptはWebブラウザ上で複雑な動きを実装する程度のものでしたが、今はフロントエンドだけではなく、バックエンドも実装することができます（Node.jsなど） スマホアプリ、デスクトップアプリケーション等もJavaScriptで実装できてしまいます どうやって？そのイメージができてない…。 メモ Chapter1 モダンJavaScript の基礎 従来のコードは、手続き的でわかりやすい反面、レンダリングコストの問題が発生しやすかったり、コードが肥大化してくるとどこで何をしているかわからないつらさ→これを解決するのが仮想DOM\nプレーンなJavaScript例\n1 document.getElemenyById(\u0026#34;nushida\u0026#34;).aapendChild(textElement); jQueryの例\n1 $(\u0026#39;#nushida).append(textElement); パッケージマネージャー\nnpm npm install [パッケージ名] npm install yarn yarn add [パッケージ名] yarn install node_modules フォルダが生成される ECMAScript\nJavaScriptの標準仕様 1年に1回更新される「ES2015」「ES2016」 ES2015(ES6) が転換期 let, constを用いた変数宣言 アローファンクション Class構文 分割代入 テンプレート文字列 スプレッド構文 Promise モジュールハンドラー（webpack）\njsやcssをひとつのファイルにまとめてくれる トランスパイラ（Babel）\nJavaScriptの記法をブラウザで実行できる形に変換してくれるもの 新しい記法で書かれたJavaScriptを古い記法に変換してくれる Vite\nChapter2 モダンJavaScript の機能に触れる let, constを用いた変数宣言 var 上書き可能 再宣言可能 let 上書き可能 再宣言不可能 const ※ほとんどの場合で使用 上書き不可能 オブジェクト型の場合、中の値を変更可能 再宣言不可能 テンプレート文字列 従来 \u0026quot;私の名前は\u0026quot; + name + \u0026quot;です。\u0026quot;; ES2015以降 `私の名前は${name}です。` アロー関数 従来\n1 2 3 function func1(value) { return value; } アロー関数 （「=\u0026gt; があれば関数」と考える）\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 const func2 = (value) =\u0026gt; { return value; } //引数が1つの場合、カッコを省略可能 const func3 = value =\u0026gt; { return value; } //処理が単一行の場合は波括弧とreutnrを省略可能 const func4 = (num1, num2) =\u0026gt; num1 + num2; //カッコで囲んでまとめて省略して返却 const func5 = (val1, val2) =\u0026gt; ( { name: val1. age: val2 } ) 分割代入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 const myProfile = { name: \u0026#34;つまり\u0026#34;, age: 24, }; // myProfile.~ が冗長 const message = `私の名前は${myProfile.name}です。年齢は${myProfile.age}歳です。`; //分割代入を使用。一致するプロパティ名を取り出せる const { name, age } = myProfile; const message = `私の名前は${name}です。年齢は${age}歳です。` //抽出したプロパティ名に別名をつける const { name: newName, age: newAge } = myProfile; const message = `私の名前は${newName}です。年齢は${newAge}歳です。` //デフォルト値指定可能 const { name = \u0026#34;ゲスト\u0026#34; } = myProfile; const message = `私の名前は${name}です。` //配列も可。格納順通りに。 const myProfile = [\u0026#34;つまり\u0026#34;, 24]; const [ name, age ] = myProfile; const message = `私の名前は${name}です。年齢は${age}歳です。` スプレッド構文 要素の展開\n1 2 3 4 5 6 7 8 const arr1 = [1, 2]; const summaryFunc = (num1, num2) =\u0026gt; console.log(num1 + num2); //普通に配列の値を渡す場合 summaryFunc(arr1[0], arr1[1]); //スプレッド構文 内部の要素を順番に展開してくれる summaryFunc(...arr1); 要素をまとめる\n1 2 3 4 5 const arr1 = [1, 2, 3, 4, 5]; const [num1, num2, ...arr2] = arr1; console.log(num1); //1 console.log(num2); //2 console.log(arr2); //[3,4,5] 要素のコピー、結合\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 const arr4 = [10, 20]; const arr5 = [30, 40]; const arr6 = [...arr4]; console.log(arr4); //[10,20] console.log(arr6); //[10,20] //イコールでコピーすると const arr8 = arr4; console.log(arr4) //[10,20] console.log(arr8) //[10,20] arr4[0] = 100; console.log(arr4) //[100,20] console.log(arr8) //[100,20] ←こいつにも影響が出る map関数 1 2 const nameArr = [\u0026#34;佐藤\u0026#34;, \u0026#34;高橋\u0026#34;, \u0026#34;つまり\u0026#34;]; nameArr.map((name) =\u0026gt; console.log(name)); filter関数 1 2 3 4 5 const numArr = [1,2,3,4,5]; const newNumArr = numArr.filter((num) =\u0026gt; { return num %2 === 1; }); console.log(newNumArr); //[1,3,5] \u0026amp;\u0026amp; と || について || はその左側がfalseなら右側を返す\n1 2 3 const num = null; const fee = num || \u0026#34;金額未設定です\u0026#34;; console.log(fee); //金額未設定です \u0026amp;\u0026amp; はその左側がtrueなら右側を返す\n1 2 3 const num = 100; const fee = num \u0026amp;\u0026amp; \u0026#34;何か設定されました\u0026#34;; console.log(fee); //何か設定されました Chapter3 JavaScript でのDOM 操作 プレーンなJavaScriptやjQueryでは「この要素を」「高操作する」というように手続き的にDOM操作を行う Reactは「宣言的」 HTMLのidやclass、DOMの階層構造とJavaScriptが密接で複雑になりやすく保守が難しかった Chapter4 React の基本 コンポーネント 他のファイルでも使えるように export 他のファイルから使う import 拡張子は .jsx で作成する イベント名、CSSプロパティ名すべてキャメルケースになる onClickButton props コンポーネントに渡す引数のようなもの state コンポーネントが持つ状態 再レンダリング 変更を検知してコンポーネントを再処理する React Hooks useState useEffect Chapter5 React とCSS CSS Modules\n1 import classes from \u0026#34;./CssModules.module.scss\u0026#34;; Styled JSX\n1 2 3 \u0026lt;style jsx\u0026gt;{` /* ここにCSSを書く */ `}\u0026lt;/style\u0026gt; styled components\nEmotion\n1 /** @jsxImportSource @emotion/react */ Tailwind CSS\nコンポーネントライブラリ\nHeadless UI Chakra UI Material-UI Semantic UI React Chapter6 再レンダリングの仕組みと最適化 再レンダリングが起きる条件\nStateが更新された propsが変更された 再レンダリングされたコンポーネント配下のコンポーネントすべて コンポーネントのメモ化（memo）\n1 const Component = memo(() =\u0026gt; {}); 関数のメモ化（useCallback）\n1 2 3 const onClickButton = useCallback(() =\u0026gt; { alert(\u0026#39;ボタンが押されました\u0026#39;); }, []); 変数のメモ化（useMemo）\n1 2 3 const sum = useMemo(() =\u0026gt; { return 1 + 3; },[]); Chapter7 グローバルなState 管理 バケツリレー 下層のコンポ ーネントで使うために本来不要なpropsを受け渡していくこと コードが複雑化 再利用しづらいコンポーネントになる 不要な再レンダリングが増える Reactが提供しているContext を使うことでグローバルな値を管理 React.createContext で Context の器を作成 Provider で囲む コンポーネントで React.useContext を使う グローバルState管理ライブラリ Redux Recoil Apollo Client Chapter8 React とTypeScript TypeScript\nJavaScript で Type(型)を扱えるようにしているもの 1 2 3 4 // : string で指定 let str: string = \u0026#34;A\u0026#34;; str = \u0026#34;10\u0026#34;; //OK str = 10; //NG npx create-react-app [プロジェクト名] --template typescript tsconfig.json にプロジェクトに合わせた設定をおこなうことでルールをカスタマイズ\n型を定義することでエラーを防ぐ\nコンポーネントにも型を付与する\nChapter9 カスタムフック 任意の処理をまとめて自作のHooks(use〜)を作成する実装 ロジックをコンポーネントから分離 複数コンポーネントでのロジックの再利用 React標準Hooks useState useEffect useCallback useMemo useContext ","date":"2023-11-06T18:52:25+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/11/06/","title":"『モダンJavaScriptの基本から始める React実践の教科書』"},{"content":"発生したこと Docker や ECS の勉強中。\nWindows でビルドした Docker イメージを、ECR にプッシュして、\nそれをベースイメージにして CodeBuild でビルドしようとしたら\n[Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested\n原因 ビルドした環境とCPUアーキテクチャが違うから発生しているらしい。\n適当に選ばないでちゃんと適切なものを選択しないとだめだな…。\nx86_64\nインテル社が発表したx86アーキテクチャを64ビットに拡張したもの。 aarch64\nスマートフォンやタブレットなどで多く使われるARMアーキテクチャを64ビットに拡張したもの。 解決方法 CodeBuild の環境イメージを\naws/codebuild/amazonlinux2-aarch64-standard:2.0\n↓\naws/codebuild/amazonlinux2-x86_64-standard:4.0\nに変更したら、ビルド成功した。\n参考 CodeBuild に用意されている Docker イメージ\n","date":"2023-10-31T16:36:38+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/10/31/","title":"【Docker】WindowsでビルドしたDockerイメージがAWSで使えなかった"},{"content":" システム運用アンチパターン\nモチベーション 「権限を持たない開発者」が私なので、何か出来そうなことがあれば参考にしたい メモ 1章 DevOpsを構成するもの 1日に30回のデプロイは、あなたの組織の最終目標ではないかもしれません。 変更の内容を理解できない人がたとえ5人承認したとしても,変更の安全性は高まるはずがない より多くの承認プロセスといった厳しい制限を増やし続けて安全性を手に入れているつもりになりがち このような時に無駄なやり取りこそがDevOpsが解決しようとしているもの DevOpsはツールについてではなく、チームがどのように一緒に働くかについて考える ツールによって可能になることに焦点を当てる CAMS：cluture（文化）、automation（自動化）、metrics（メトリクス）、sharing（共有） 2章 パターナリスト症候群 パターナリスト症候群：ある行動の実行や承認に必要な資格や信頼性を持つのは特定の人物だけである 自動化の価値は何度でも実行できるという点にある 承認プロセスの本当の目的を分析 →自動化で解消する 作業が発生していることを必要な人に知らせていること 変更を中止する必要があるような、アクションの衝突がないこと 変更のリスクが組織にとって許容できるものであること 標準的な変更：すでに確立された変更管理によって事前に承認。やり方や影響を理解している レビューが行われていること 操作や変更が適切なテストサイクルを経ていること 承認者がプロセスの中で何を確認しているか？ 承認依頼を即座に却下する原因となるものはなにか？ 承認するすべての依頼が満たしているべき条件は何か？ タスクを実行できる人を制限することで、リスクを減らすことができているわけではなく、一部の人にプレッシャーを集中させているだけ 何かが機能していると確認できることは、単にエラーがないと確認できることよりも価値がある 知識を共有ことは責任を共有するために必要なこと 責任の拡大に対応するためにはシステムの全体像を一定のレベルで理解する必要がある 電子メールでの通知、通知先のメールアドレスをアプリケーションで管理しない。既存の配信リストを利用 通知リストの管理は組織のサービスデスクのプロセスで行うことが出来るはず。 自動化の継続的な改善に取り組む 3章 盲目状態での運用 自分たちが開発したシステムが本番でどのように動作するかをより詳細に理解することが求められている 本番前の環境で完全かつ徹底的にテストするのは実行不可能になりつつある 本番環境で初めてテストされる処理もある 運用の可視化 メトリクス：システムリソースのある時点での測定値 CPU使用率・メモリ使用率など＋アプリケーション用のカスタムメトリクスを開発すること リクエスト数：どのくらいの頻度でこの処理が発生しているか？ エラー数：どのくらいの頻度で失敗しているか？ レイテンシ：完了するまでにどのくらいの時間がかかるか？ 何を測定するか？健全なメトリクスと不健全なメトリクスを分けるものは何か？ ログ：システムで発生したイベントを記述した、システムが生成するメッセージ 価値あるものとするために 構造化されたログフォーマットにする（JSONのような） 適切なログレベルで記録する エラーメッセージを読む時に生じる疑問を想定する 4章 情報ではなくデータ 利用者が値の良し悪しを知ることができるように、ウィジェットに文脈を与える 最も重要な項目が最初に目に入るようにダッシュボードを構成 5章 最後の味付けとしての品質 テストピラミッド ユニットテスト＞統合テスト＞エンドツーエンドテスト ユニットテスト テスト対象のユニットに含まれないものは、モックやスタブを使用（統合テストで扱うべき） 統合テスト 実際のDB接続してデータの書き込みや読み込みを検証 6章 アラート疲れ システムメトリクス（CPU使用率・メモリ使用率など）のアラートを受けても何をしたら良いかわからないことが多い。 なぜ、どのようにしてその状態になったのかについて何の文脈も与えてくれない アラートには関連するドキュメントが必要 アラートを受け取った時に取るべき手順を説明する手順書 そもそもなぜそれが通知する必要のあるアラートなのかも記載 アラートメッセージに手順書へのリンクを記載 5分待てば自然に解除されるかもしれない時ではなく、すぐに調査する必要があると確信したときにアラートをトリガする 必ずしも真夜中に誰かを起こす必要はない。発生していることを認知すれば十分なアラートは、メールなどにする 7章 空の道具箱 システム全体が自動化を念頭に置いて設計されていないと、自動化の欠如が生じる 運用とは、プロダクトを構築し維持するために必要なすべてのタスクや活動のこと サーバの監視 テストパイプラインの管理 ローカル開発環境の構築 これらが頻繁に繰り返される場合、標準化することが重要 自動化によって、権限を与え、スピードを上げ、再現性を高める 8章 業務時間外のデプロイ デプロイのレイヤ 機能デプロイ フリートデプロイ アーティファクトデプロイ データベースデプロイ テストを組織の文化の一部にする テストケースのないマージリクエストは不完全なマージリクエストであるという考えを徹底させる 自動化ですべてを確認できるわけではありません。しかし、それは手動のテストも同様です。 不確実性を組織が許容できる範囲まで減らすことは可能 9章 せっかくのインシデントを無駄にする 人を直接批判してはならない。行動や振る舞いに焦点を当てる。 今となっては明白な事実でも、その場では曖昧だった可能性があることを認識すう 人ではなくシステムを責める 10章 情報のため込み：ブレントだけが知っている 組織全体での情報共有が促進されず、あるトピックに関してキーパーソンにすべてを任せるようになったとき 目標は、スタッフが離職しても、組織が活動するために必要な知識を保持すること 11章 命じられた文化 「○○を使ったシステムの使用経験が2～3年あること」 実際にはどのような経験が必要なのか？ 12章 多すぎる尺度 組織の目標を意識すると、自分がこれから取り掛かる予定の仕事が違って見えるようになる 感想 後半は飛ばし飛ばし読んだけど…\n何を達成したいのか、目的をはっきりさせること が大事だなってことを改めて感じました。\nあとは、エラーメッセージ。「○○処理でエラーが発生しました」…で？どうすればいいの？ の部分を明確化するのも必要ですね。意外とできてない。\n","date":"2023-10-24T18:02:04+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/10/24/","title":"『システム運用アンチパターン』"},{"content":" 分散システムデザインパターン\nモチベーション コンテナの使い道がわからないから理解を深めるため メモ シングルノード\n1台のマシン上で動く複数のコンテナについて\nサイドカー アンバサダ アダプタ マルチノード\n複数のマシンにまたがるコンテナについて\nレプリカがロードバランスされたサービス シャーディングされたサービス スキャッタ・ギャザー ファンクションとイベント駆動処理 オーナーシップの選出 バッチ処理パターン (MapReduceとは‥？)\nワークキューシステム イベント駆動バッチ処理 協調的バッチ処理 感想 ぜんっぜん意味がわからなかった…。\nコンテナについての知識不足が一番の原因だと思うけど、翻訳された日本語を読むのが難しいのもあるかもしれない…。\n「レプリカがロードバランスされたサービス」だけは辛うじてイメージできた。\nいきなりこんな難しいオライリー本を読んで理解しようとするのではなく、いろいろ知らない単語があったのでそれをひとつひとつ調べて理解していくことから始めないとだめかなぁ…。\n","date":"2023-10-17T10:44:10+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/10/17/","title":"『分散システムデザインパターン』"},{"content":"何回説明読んでもイメージが全然できなかったんだけどようやくわかってきたかも。\nDockerfile ＝ 設計書\n↓Build 試作品（Image）\n↓run container\nこれを大量生産、3Dプリンターでぽこぽこ作るみたいな 頭が悪いので、こういう例え話に変換しないと理解できない。\n","date":"2023-10-04T18:51:45+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/10/04/","title":"【Docker】ようやくわかってきたかも"},{"content":"何時に起きるか、何時に寝るかを決める まず何時に起きるかを決める。そこから逆算して6〜7時間睡眠を取れる時間に寝る。\n朝早く起きたら何をするか決めておく 着替えと洗顔が終わったら、やりたいことをやる。\n朝活のよくあるエピソード「散歩をする」「本を読む」「勉強する」とか。\n何のためにそれをするのか考える 「じゃあ明日の朝は早起きして本読むぞ〜」程度の気持ちだと絶対起きれない。目的がないから。\n朝のアラームを聞きながら、「なんで今やらなきゃいけないんだ？眠いんだけど。夜でよくね？」という考えになってスヌーズボタンを押してしまう。\n「なぜ、朝、早く起きてやらなければいけないのか」を自分が納得できる理由で説明できる状態にしておく。\n理由が出てこないなら、朝起きる必要はない。\n無理やりにでも起きる やることと目的が決まったなら、あとは朝起きるだけ。\nどうやって起きるか？起きるしかない。\nどうしても早く起きられないなら、もっと早く寝るしかない。\nしかしもっと早く寝るためには、早く起きるしかない。\n早く起きないと、夜眠くならない。\n10分くらいずつでも無理やり朝早く起きて調整していくしかないと思う。\n","date":"2023-09-28T06:32:12+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/28/","title":"朝、早く起きるために"},{"content":" 瞬時に「言語化できる人」が、うまくいく。\nhttps://amzn.asia/d/3QT3avy\n私はコミュニケーション力がないので、色々なコミュ力本や話し方本など読んできましたが、\n何も変わらないのは、「どう伝えるか」より「何を伝えるか」が大事 というのを読んで、確かに。と思いました。\n確かに「どう言ったら…？」より、「何を言ったら…？」で上手に話せない状況のほうが多いです。\n言語化できるようにするためのトレーニング法として、メモ書きを紹介されています。\n内容は『0秒思考』と似ています。\nただ、過去に『0秒思考』を読んだ時も実践しようとしましたが、私にはこれ難しいんですよね…。\n「問い」が思いつかない。 なんでもいい、と言われるとなおさらわからん 辛うじて考えた問いに対して「どう思う？」と言われても… 本当にわからない、解決策ない だから「まじでムカつく」くらいしか出てこない（語彙力がない） と、今日は本に対するどう思う？を書いてみました。\nどうでしょうか。少しは練習になったかな。\n","date":"2023-09-22T07:23:54+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/22/","title":"『瞬時に「言語化できる人」が、うまくいく。』"},{"content":" 1 2 3 4 5 6 7 8 9 10 11 12 13 DECLARE START_TIME NUMBER; END_TIME NUMBER; ELAPSED_TIME NUMBER; BEGIN START_TIME := DBMS_UTILITY.GET_TIME; --何らかの時間がかかる処理 END_TIME := DBMS_UTILITY.GET_TIME; ELAPSED_TIME := (END_TIME / START_TIME) / 100; DBMS_OUTPUT.PUT_LINE(TO_CHAR(ELAPSED_TIME, \u0026#39;FM00000.000\u0026#39;) || \u0026#39;秒\u0026#39;); END; ","date":"2023-09-20T07:47:25+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/20/","title":"Oracle PL/SQL で経過時間を記録する"},{"content":"Amazon Athena とは S3内のデータをSQLを使用して分析できるサービス。\nCloudFront ログのテーブルの作成 以下のユーザーガイドに従って進める。\nAmazon CloudFront ログのクエリ\nhttps://docs.aws.amazon.com/ja_jp/athena/latest/ug/cloudfront-logs.html\n以下の DDL ステートメントを Athena コンソールのクエリエディタに貼り付け、38行目のLOCATION をログを保存する S3バケットに変更し、実行します。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 CREATE EXTERNAL TABLE IF NOT EXISTS default.cloudfront_logs ( `date` DATE, time STRING, location STRING, bytes BIGINT, request_ip STRING, method STRING, host STRING, uri STRING, status INT, referrer STRING, user_agent STRING, query_string STRING, cookie STRING, result_type STRING, request_id STRING, host_header STRING, request_protocol STRING, request_bytes BIGINT, time_taken FLOAT, xforwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, response_result_type STRING, http_version STRING, fle_status STRING, fle_encrypted_fields INT, c_port INT, time_to_first_byte FLOAT, x_edge_detailed_result_type STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start BIGINT, sc_range_end BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0026#39;\\t\u0026#39; LOCATION \u0026#39;s3://CloudFront_bucket_name/\u0026#39; TBLPROPERTIES ( \u0026#39;skip.header.line.count\u0026#39;=\u0026#39;2\u0026#39; ) cloudfront_logs テーブルが作成されます。\n[Edit Settings] (設定を編集) をクリックし、Amazon S3 内のクエリ結果の保存場所をセットアップ。私はs3://CloudFront_bucket_name/athena にしました。\nCloudFront ログのクエリ例 date 列名は予約語であるため、二重引用符で囲みます。\n1 2 3 4 5 6 7 SELECT DISTINCT * FROM cloudfront_logs WHERE \u0026#34;date\u0026#34; BETWEEN DATE \u0026#39;2018-06-09\u0026#39; AND DATE \u0026#39;2018-06-11\u0026#39; LIMIT 10; カラムが日付と時刻で分かれており、かつUTCのため日本時間に修正して出力します。\n長い。もっといいやり方あるかもしれない。\n1 2 3 4 5 6 SELECT date_format(at_timezone(Cast(concat(date_format(\u0026#34;date\u0026#34;, \u0026#39;%Y-%m-%d\u0026#39;), \u0026#39; \u0026#39;, \u0026#34;time\u0026#34;) as timestamp), \u0026#39;Asia/Tokyo\u0026#39;), \u0026#39;%Y-%m-%d %H:%i:%s\u0026#39;) as \u0026#34;datetime\u0026#34;, \u0026#34;request_ip\u0026#34;, \u0026#34;method\u0026#34;, \u0026#34;uri\u0026#34;, \u0026#34;result_Type\u0026#34;, \u0026#34;query_string\u0026#34;, \u0026#34;user_agent\u0026#34; FROM cloudfront_logs LIMIT 10; ","date":"2023-09-12T06:16:42+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/12/","title":"CloudFrontのログをAthenaで検索"},{"content":"私は2023年秋に情報処理技術者試験のデータベーススペシャリストを受験する予定です。\n受験する理由 7年前 基本情報技術者試験 不合格\n4年前 応用情報技術者試験 不合格\n昨年春 基本情報技術者試験 合格💮\n今年春 応用情報技術者試験 合格💮\n本当にやっと、ギリギリ応用情報に合格できたレベルの私は、\nその先の高度試験のことなど全く考えておらず、まともに調べたことすらなかったのですが、\n応用情報技術者試験に合格すると2年間高度試験の一部（午前Ⅰ試験）免除になるということを合格後初めて知りました。\n勿体無いからとりあえず応用情報の午後問題でも選択した、一番得意なデータベースの試験に申し込みました。\n基本も応用も落ちた人が一発合格できるとは思っていませんが、\n「勉強を継続して、習慣づける」ってことが大事なんだなっていうことが、この歳になってわかってきた気がするので、手を止めたくない気持ちで。\nなのに、現在の状況 仕事がトラブル続きだったり、私生活が多忙ということを言い訳にして勉強できていません…。\n参考書は受験申し込み後すぐに購入済み。\n特典の過去問題PDFは、ダウンロードしてiPadで取り組もうとしたものの、あまりにもやりづらすぎて断念し、コンビニで印刷してきました。\n…そこまではしました。\nでも、そこからまともに勉強に本腰を入れることができないでいます…。\nどうするか？ 朝にやる 夜の自分に期待してはいけません。「疲れた」っていう言い訳が出てくるので。\n朝のうちにやる。朝からやることやれたっていう達成感で気分もよくなる。天気もよければなおよい。\n少しでもいいからやる 午後試験は問題文が超長いです。本気でやったら1時間以上は普通に持っていかれる。\nだから「今から始めてもなあ…」って考えて後回しにしてしまう。\nちょっとでもいいから読む。せめて午前試験を1問でも解く。\nモチベーションの維持はStudyplus に頼る 意外と同じくDB受験目標の方達がいます。皆さんちゃんと勉強してるなあ…。と、タイムラインを眺めて焦る。\n本当にだめだったら図書館に行く のんびりしちゃう理由が「家にいるから」かもしれないなら図書館に行って勉強することを検討する。\n合格できないだろうけど、合格するつもりでやる 「どうせ合格できない」と思い過ぎていると思う。「やってもやらなくても合格できないんだから、やらなくていいだろう」になっている。\n確かに合格は厳しいけど、問題文の読み方や用語くらいはちゃんと理解した上で臨みたいから、ちゃんとやる。\n","date":"2023-09-11T05:29:28+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/11/","title":"データベーススペシャリストの受験に向けて"},{"content":"こんにちは、tsumariと申します。\n文章能力もコミュニケーション能力も低いので\nブログを始めたものの何を書いていいのかわからない…。\n一応ITエンジニアということで\nいろいろアウトプットしていければと思っています。\nずっとブログでも始めようかなーとは考えていたものの行動に移せずいたんですが、\nHugoというものを見つけてようやく作ってみた次第です。\n昔はHTMLでホームページ作って自分で描いたイラストを載せたりするのが趣味でした。\nそんな感じのこともまたやりたいなぁ、と…。\n","date":"2023-09-10T12:28:51+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/10/","title":"自己紹介"},{"content":"1. Create a site https://gohugo.io/getting-started/quick-start/#create-a-site\n1 2 3 4 5 6 hugo new site hugo-practice cd hugo-practice git init git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke echo \u0026#34;theme = \u0026#39;ananke\u0026#39;\u0026#34; \u0026gt;\u0026gt; hugo.toml hugo server 2. Add content https://gohugo.io/getting-started/quick-start/#configure-the-site\n1 hugo new content posts/my-first-post.md 3. Create a Netlify account https://app.netlify.com\n4. Create a new site with continuous deployment https://gohugo.io/hosting-and-deployment/hosting-on-netlify/\nを参考に。。\n","date":"2023-09-09T16:11:03+09:00","permalink":"https://tsumari.pupu.jp/blog/posts/2023/09/09/","title":"【Hugo】Hugo を試してみる"}]