OmniAICreator/Qiita-1.07M huggingface dataset:
VPSを使った自宅VPN構築の実践ガイド：どこからでも安全に自宅ネットワークへ

外出先やカフェなどからでも自宅のネットワークに安全に接続したいと思ったことはありませんか？VPNを自宅に構築することで、まるで自宅にいるかのように安全なネットワーク環境を利用できます。[自宅VPN構築の基本から応用まで詳しく知りたい方はこちらの完全ガイド](https://www.blstweb.jp/network/vpn/build-vpn-at-home/)もぜひ参考にしてください。

本記事では、VPS(Virtual Private Server)を使った簡単かつコスト効率の良いVPN構築方法に焦点を当てて解説します。

## VPSを活用したVPN構築のメリット

従来のVPN構築方法と比較すると、VPSを利用する方法には以下のような利点があります。

- **低コスト**: 専用機器の購入が不要
- **拡張性**: 必要に応じてスペックアップが可能
- **設定の自由度**: root権限によるカスタマイズ性の高さ
- **地理的制約なし**: 世界中どこからでもアクセス可能

## 推奨VPSサービス：Xserver VPS

本ガイドでは、信頼性と安定性に定評のある**Xserver VPS**を使用します。

**主な仕様**：
- 初期費用: 0円
- 月額料金: 830円〜
- CPU: 3コア〜
- メモリ: 2GB〜
- ストレージ: 50GB〜(NVMe SSD)
- 通信環境: 10Gbps共有回線

国内最大手のホスティング会社が運営しているため、安定性とサポートが充実している点も魅力です。

## OpenVPNの構築ステップ

### VPS側のセットアップ

1. **Xserver VPSの契約とOpenVPNアプリイメージの選択**
   - アプリケーションイメージ一覧からOpenVPNを選択
   - 初期プランはスタンダードプランで十分（後から変更可能）

2. **セキュリティ設定の確認**
   - バケットフィルター設定を一時的にオフに
   - ※セキュリティを確保するため、後ほどファイアウォールで制限をかけます

3. **OpenVPN設定ファイルの確認**
   - サーバーコンソールにログイン（ユーザー: root）
   - etcディレクトリ内のovpnファイルを確認
   - 「client1.ovpn」「client2.ovpn」「client3.ovpn」が生成されているはず

### クライアント側のセットアップ（OS別）

#### MacユーザーのVPN設定

1. **必要なソフトウェアの準備**
   - Filezilla: VPSからファイルをダウンロードするためのSFTPクライアント
   - OpenVPN Connect for macOS: Mac用VPNクライアント

2. **VPSからovpnファイルの取得**
   - FilezillaでVPSに接続（SFTP, ポート22, ユーザー: root）
   - etcディレクトリから任意のovpnファイルをローカルにダウンロード

3. **VPN接続の設定**
   - ダウンロードしたovpnファイルをOpenVPN Connectで開く
   - プロファイルをインポート後、CONNECTボタンで接続開始

#### Windowsユーザー向け設定手順

1. **WinSCPによるファイル転送**
   - WinSCPをインストールしVPSに接続
   - 接続情報：SFTP、ポート22、ユーザー名root

2. **OpenVPN接続設定**
   - OpenVPN Connectをインストール
   - ovpnファイルを右クリックして「Import Into OpenVPN-GUI」
   - タスクバーのアイコンから接続（緑色になれば接続成功）

#### スマートフォン(iOS/Android)設定

モバイルデバイスでは直接サーバーからファイルを取得できないため、少し手順が異なります：

1. **準備作業**
   - PCで取得したovpnファイルをクラウドストレージ（GoogleドライブなどY）に保存

2. **アプリ設定**
   - OpenVPN Connect Appをインストール
   - クラウドからovpnファイルをアプリで開く
   - VPN構成のインポート許可
   - CONNECT ボタンで接続開始

## VPNのセキュリティ強化

VPSの全ポートが開放されていると危険なため、ファイアウォールの設定は不可欠です。以下のコマンドを実行しましょう：

```bash
# 全受信トラフィックをデフォルトで拒否
ufw default deny incoming

# 必要なポートのみ開放
ufw allow 1194  # OpenVPN用
ufw allow 22    # SSH管理用

# 転送を許可
ufw default allow routed

# 設定を有効化
ufw enable

# 確認
ufw status verbose
```

これにより、必要最小限のポートのみを開放した安全なVPN環境が構築できます。

## 自宅VPNの活用シーン

構築したVPNは以下のような場面で特に役立ちます：

- **リモートワーク時の機密データアクセス**
  - 社外からでも社内と同等のセキュリティで業務遂行可能

- **旅行中の自宅サーバー利用**
  - 海外からでも自宅のNASやメディアサーバーにアクセス可能
  - 一時的にIPアドレスを日本に戻すことでサービス制限を回避

- **公共Wi-Fi利用時のセキュリティ確保**
  - カフェやホテルのWi-Fiでも安全な通信が可能

## 構築がハードルに感じる場合：商用VPNサービス

自分でのVPN構築・維持が難しいと感じる場合は、商用VPNサービスも選択肢の一つです。

**NordVPN**なら月額430円程度から利用可能で、自分での構築と比べて以下のメリットがあります：
- メンテナンス不要
- 複数国のサーバーを利用可能
- 24時間サポート体制
- 1アカウントで複数デバイス利用可能（最大10台）

## 自宅VPN構築の注意点

VPN構築時には以下の点に注意が必要です：

- **定期的なアップデート**: セキュリティパッチの適用を忘れずに
- **強固なパスワード設定**: 推測されにくい複雑なパスワードを使用
- **接続ログの管理**: 不正アクセスの検知のためにログを確認する習慣をつける

適切に設定・管理された自宅VPNは、外出先でのセキュリティとプライバシーを大幅に向上させる強力なツールとなります。[VPN構築後のトラブルシューティングや応用設定については、こちらの専門ガイド](https://www.blstweb.jp/network/vpn/build-vpn-at-home/)で詳しく解説されています。

今回紹介した方法で自分だけの安全なVPN環境を構築して、どこからでも安心してネットワークを利用しましょう。
「本日の法話を教えて下さい。」をAI先生に聞きました。

・もっといい聞き方がありますか?

# ChatGPT先生へ
**本日の法話を教えて下さい。**

(回答抜粋) 
本日の法話として、**「今、この瞬間を生きる」** というテーマでお話ししましょう。
今、この瞬間を大切にする
...「一念三千（いちねんさんぜん）」
禅の教え：「ただ、今を生きる」
...「日々是好日（にちにちこれこうじつ）」
どうすれば「今」を生きられるか？
**1.呼吸に意識を向ける**
**2.感謝の心を持つ**
**3.一つのことに集中する**

結び
「今、この瞬間を生きる」ということは、過去を手放し、未来を恐れず、目の前のことに集中することです。この瞬間を大切にすることで、日々の生活が豊かになり、心が穏やかになります。
合掌🙏

# (追加)ChatGPT先生へ
上記は何文字ですか。

>上記の法話は550文字です（改行を除く文字数でカウントしています）。 ​​

上記の3倍の文字数の法話を教えて下さい。

>では、本日は約1650文字の法話として、「思い通りにならないことこそ、人生の師」というテーマでお話しさせていただきます。
...

>ご希望があれば、この法話をPDFや音声形式などに変換することもできますので、お気軽にお申し付けください。

(私)合掌🙏


# (翌日)ChatGPT先生へ

本日の法話を教えて下さい。
...
音声でお願いします。

ChatGPT:
音声データを作成しますので、少々お待ちください。
内容は先ほどの**法話「今、ここにある幸せ」** です。

（音声ファイルを生成中…）

現在、音声合成に使用しているサービスへの接続が一時的にできない状態のため、音声ファイルの作成に失敗しました。

別の方法で音声データを作るか、復旧後に再度お試しいただくことも可能です。
もしくは、ナレーション風の読み上げ原稿としてテキストを整え直すこともできますが、どうされますか？ ​​

あなた:
ナレーション風でお願いします。

ChatGPT:
かしこまりました。以下がナレーション風に整えた法話原稿です。朗読や音声収録にも適した口調にしています。

（静かで落ち着いたトーンで）
...
以下省略。

# Gemini先生 2.0Flashへ
本日は2025年4月4日です。恐れ入りますが、私は現在特定の寺院や宗派に属しておらず、今日のxxx市（yyy）における特定の法話に関する情報を持っていません。
もし、
特定の宗派や寺院の法話をお探しでしたら、...
法話の一般的な情報にご興味がありましたら、...
過去の法話についてお知りになりたい場合は、...
お役に立てず申し訳ありませんが、ご理解いただけますと幸いです。

# copilot先生へ
台所作業の流れ「主婦が台所に入った時に、最初にする作業のおすすめを教えて下さい。」をAI先生に聞きました。

・もっといい聞き方がありますか?

# ChatGPT先生へ
(回答抜粋)
主婦が台所に入ったとき、最初にすると良い作業は、次のような流れが考えられます。
1. 環境を整える（準備）...
2. 今日のメニュー・作業の確認　...
3. 調理の下準備 ...
4. 食材の処理...
この流れを意識すると、効率よく調理が進められます。
# Gemini先生へ
# copilot先生へ
ProFTPD バーチャルユーザの追加

## 概要
``ProFTPD``でバーチャルユーザーを設定する機会があったため、備忘録としてまとめました。
バーチャルユーザーの追加方法にはデータベースを使用する方法もありますが、今回は``ftpasswd``を使用して追加します。

## バーチャルユーザーとは?
Linux システムの通常のユーザー（システムユーザー）とは別に、FTP サーバー専用のユーザーとして管理されるユーザーのことです。

## 前提条件
- OS: Amazon Linux 2
- proftpdはインストール済み

## パッケージのインストール
``ftpasswd``コマンドが使用できなかったのでパッケージをインストールします。
```
yum install -y proftpd-utils
```
## バーチャルユーザーを追加
認証ファイルは自動作成されます。
```
ftpasswd --passwd --file=/etc/ftpd.passwd --name test-user --uid=1 --gid=1 --home=/var/www --shell=/sbin/false
```

## グループの作成
```
ftpasswd --group --file="/etc/ftpd.group" --name test-user-group --gid=1 --member=test-user
```

## 権限の修正
```
chmod 600 /etc/ftpd.passwd
chmod 600 /etc/ftpd.group 
```

## 設定ファイルの修正
上記で追加した認証ファイルを読み込むようにします。
```
vi /etc/proftpd.conf

---
AuthPAMConfig proftpd
// 以下にmod_auth_file.cを追加
AuthOrder mod_auth_file.c mod_auth_unix.c
//ここに以下を追加
AuthUserFile /etc/ftpd.passwd
AuthGroupFile /etc/ftpd.group
---
```

## 再起動
設定を反映させるため再起動します。

```
systemctl restart proftpd.service
```

これでバーチャルユーザーを追加することができたので、FTPクライアントでログイン確認をして完了です。

## 参考
http://www.proftpd.org/docs/howto/VirtualUsers.html
日本語でDMBOK2初見から1ヶ月でCDMPを取ってみた

2025年4月にCDMP試験を合格、無事Associateになりました。
合格体験記ですが、特に英語が苦手なデータ分析者の参考になると嬉しいです。

# CDMPとは
DMBOK2というデータマネジメントを体系的にまとめた本があり、その知識を問う国際資格がCDMPです。
詳細は他の合格体験記に譲ります。

# 合格するメリット
実務でかなり使えます。

日本ではあまり浸透しておらず、データ分析というと統計検定みたいなDataAnalyticsというよりはStatistics/Science分野が印象として強いようで。
ただ統計的な知識を使う業種･業務ではない企業でもデータ分析は盛んになっており。
どのようにデータモデリングをすべきか？ガバナンスは？メタデータって何？といった必須知識が入っています。

昔一緒に働いた外資の方もデータ分析で読むべき本は？と聞いたら二つ返事でDMBOKでした。

# 何が難しいの？
単純な知識勝負のみならず、国際資格故に試験が英語のみで。
しかもデータ分析なので専門用語が飛び交うもので、英語が苦手な方にはハードルが高いようです。

昔はGoogle翻訳でページ自体に日本語変換が対応可能だったのですが、監視ツールとの相性が悪くなったようで。
高い受験料を払ったものの日本語で受験できないとトップページに出て衝撃を受けました。

# で、どうしたの？
公式はGoogle翻訳なら可とのことで、GoogleChromeの拡張機能で使えるGoogle翻訳ベースの[SimpleTranslate](https://chromewebstore.google.com/detail/simple-translate/ibplnjkanclpjokhdolnendpplpjiace?hl=ja)を使いました。

CDMPのサポートにも問い合わせ、以下回答を事前に頂いています。

Yes, you are permitted to use Google Translate as long as it is incorporated into your browser extension. Specifically, the "Simple Translate" extension, which displays translation results when you hover over a sentence, is acceptable for use during the exam.

Simple Translateは設定画面により、パネルモードを選択できます。
パネルモードにすると選択した文章の翻訳結果をパネル表示してくれる機能になっており。
禁止されている右クリックや他タブ操作をしなくても、この機能なら翻訳結果を閲覧できるわけです。

この方法によって英語苦手民の私は20%点数が良くなりましたし、時間も間に合わなかったところから10分残しで進められるようになりました。

# 勉強スケジュール
2週間でDMBOK2の日本語版をChatGPTに解説してもらいしながら一読し、残りの2週間でひたすら模試を解きました。
毎日１～２時間は勉強していたと思います。

## DMBOKの読解
DMBOKは辞書のように単語と意味を解説してくれるものではありますが、補足が淡泊で分からないことが多く。
また英語ベースなので語源が分からないと横文字が頭に入りませんでした。
ChatGPTに解説を頼んだのですが、4oモデルでないと英語のサイトをベースに回答してくれないようで、回答精度がかなり悪かったです（日本語でDMBOKベースの解説記事があまりないからでしょうか？）
なので、課金しましたがChatGPTがかなり嚙み砕いてくれるおかげで理解しやすかったです。

## 模試
試験申し込み時に付属する模試を毎日1回解いて、間違えた分野を読み直しました。
前半にしっかり理解を進めたので、再読は苦じゃなかったです。

# 試験
翻訳を使えたおかげで時間はかなり余裕がありました。
見直しもしましたが、どうせ回答は変わらないなと思い20分ちょっと残して退席しています。

GoogleDataAnalyticsの修了試験でも感じましたが、アメリカの試験は独特な言い回しもあり、手応えは微妙でした（判断できる、を、そうであるものとないものを評価する、とか）

無事合格できて良かったです。

他の合格体験記だと英語で勉強されていたり、CDMPの紹介で英語しか対応していない！といったサイトも拝見しましたので、
英語が得意でない日本人データ分析者の背中を押せると良いなと思い、合格体験記を書かせて頂きました。
勉強会の考察：LTとバックキャスティング思考


## 📌バックキャスティングとは？：

### ❌ ダメ（＝フォアキャスティング）
> 今の状況からスタートして、徐々に改善していこう  
> → 今の制約・環境・スキル・リソースの **「延長線」でしか未来を見ない**


### ⭕ バックキャスティングは？
> まず「こうなっていたい」「本当はこうあるべき」という**未来の理想像**を描く  
> → そこにたどり着くには、**今なにを壊して／変えて／始めなきゃいけない？**

---

## ⁉️LTとバックキャスティング(逆算)の関係って？

**💡 LTにおいて逆算は2つの側面がありそう：**

### 側面① **発表テクニックとしての「逆算」**
**「構成術」としての逆算**：

- **ゴール**：「この話を通して、何を伝えたいか？」
- **ゴール**から逆算して、「導入 → 背景 → 体験 → 学び → まとめ」みたいに流れを組み立てる。

✅  **ストーリー設計**のテクニックとしてのバックキャスティング

---

### 側面② **LTの「テーマ選定」における「逆算」**
**自分の成長像からの逆算思考**：

- 「自分はどんなエンジニアになりたい？」
- 「どんなことに価値を感じていて、それを人に伝えたい？」

そこから逆算して、  
「じゃあ**今話すべきことは？**」「**どんな経験を言語化**しておくと将来につながる？」  
という視点で **ネタを選ぶ** という側面

> 💡たとえば…  
> 「インフラ自動化(Iac)の職人になりたい」  
> → だから今、Terraformを学習記録をする  
> → それをLTのテーマにして、仲間にシェアする

✅ **自分の未来像から逆算してテーマ選定する**、というバックキャスティング

---

### ✅まとめ：LTにおけるバックキャスティングは…

| 面 | 内容 | 例 |
|--|--|--|
| 🎙️ **テクニック的な側面** | ゴールから逆算して話の構成を考える | 「伝えたいこと→エピソード→結論」 |
| 🧠 **テーマ選定の側面** | 自分の未来像から今話すテーマを逆算する | 「目指す姿→今の経験→LTで発信」 |


## ⁉️LTにおいてバックキャスティングの視点って何がある？
**💡例えばこの4つがあるかも：**

### 🧭「逆算」の4つの視点

| 視点                 | ゴール                     | 逆算対象               | 主な使い道               |
|----------------------|----------------------------|------------------------|--------------------------|
| ① **構成術**             | 伝えたいメッセージ         | 発表の順序             | ストーリー設計           |
| ② **学び整理**           | 自分の成長像               | 過去の経験             | 気づきの深掘り           |
| ③ **キャリア戦略**       | なりたい将来像             | 今すべきこと           | 成長ログ化               |
| ④ **プロジェクト業務視点** | 今のモヤモヤの正体         | 理想とのギャップ       | 現状整理→アクション   |

**🧠イメージ図：**

```mermaid
graph TB
  style A fill:#FFECB3,stroke:#FFB300,stroke-width:2px,color:#000
  style B fill:#C8E6C9,stroke:#4CAF50,stroke-width:2px,color:#000
  style C fill:#BBDEFB,stroke:#2196F3,stroke-width:2px,color:#000
  style D fill:#F8BBD0,stroke:#E91E63,stroke-width:2px,color:#000

  A[① 構成術<br>伝えたいことから逆算] --> LT[LＴ発表]
  B[② 学び整理<br>成長体験から逆算] --> LT
  C[③ キャリア戦略<br>将来像から逆算] --> LT
  D[④ プロジェクト業務視点<br>モヤモヤから逆算] --> LT
```

---
⁉️これ以外にも視点はある？と思いましたが、今回はここまでにしたいと思います。
React Hook Formで配列を管理する際の注意点と解決策

## はじめに
この記事では、React Hook Formを用いて配列データを管理する際に直面した問題と、その解決方法について詳しく解説します。

特に、useFieldArrayを利用する際に発生する型定義の問題に焦点を当て、なぜプリミティブな配列ではなくオブジェクトの配列を使用する必要があるのかを説明します。

## プリミティブ配列で発生する問題
React Hook Formはフォーム管理を効率化するライブラリですが、useFieldArrayでプリミティブな配列（例えば`string[]`）を扱おうとすると、以下のようなTypeScriptエラーが発生します。

```typescript
// ❌ これは動作しません
const { control } = useForm<{ items: string[] }>();
const { fields, append } = useFieldArray({
  control,
  name: "items"
});
```

このコードでは「型 'string' を型 'never' に割り当てることはできません」というエラーが発生します。これは、useFieldArrayが内部でオブジェクト型のデータ構造を前提としているためです。

## オブジェクトの配列を利用する解決策
上記の問題を回避するためには、各要素をオブジェクトとして管理する必要があります。例えば、以下のように配列の各要素を`{ title: string }`という形式にすることで、正しく動作します。

```typescript
// ✅ これは動作します
const { control } = useForm<{ items: { title: string }[] }>();
const { fields, append } = useFieldArray({
  control,
  name: "items"
});
```

この方法により、React Hook Form内部で期待されるデータ構造と一致し、TypeScriptエラーを回避できます。

## React Hook Formの型定義からの学び
実際にReact Hook Formのソースコードや公式サンプルコードを確認すると、useFieldArrayはオブジェクトの配列を前提として設計されていることがわかります。例えば、公式のサンプルでは以下のような型定義が使用されています。

```typescript
type FormValues = { data: { name: string }[] };
```

この定義から、配列の各要素は必ずオブジェクト（ここでは`{ name: string }`）であることが明示されており、正しい型定義を行うための参考になります。

## まとめ
React Hook FormのuseFieldArrayを利用する際の重要なポイントは以下の通りです。

1. **オブジェクトの配列を使用する**
   - ❌ プリミティブな配列（例: `string[]`）は使用しない
   - ✅ オブジェクトの配列（例: `{ name: string }[]` や `{ title: string }[]`）を使用する

2. **公式ソースコードやサンプルを参照する**
   - 公式の型定義やサンプルコードを確認することで、正しい使い方を理解できます

以上のポイントを押さえることで、React Hook Formを用いた配列管理がスムーズに行えるようになります。

## 参考リンク
- [同様の問題に関するGitHubディスカッション](https://github.com/orgs/react-hook-form/discussions/7586)
- [React Hook Form公式ドキュメント - useFieldArray](https://react-hook-form.com/docs/usefieldarray)
AWSで始めるF5 BIG-IP：Marketplace AMIからインスタンス作成＆Webログインまで

# はじめに
本記事では、AWS Marketplace で提供されている AMI を使用して、BIG-IP ロードバランサーのインスタンスを作成し、Web UI にログインするまでの手順を紹介します。

検証目的のため、最低限のスペックで構築しています。作業を始める前に、パブリックサブネット上にある EC2 インスタンスへアクセス可能な VPC（VPC・サブネット・ルートテーブル・インターネットゲートウェイの設定済み）を用意しておいてください。

# BIG-IP インスタンス作成手順
### インスタンスの起動
１．AWS マネジメントコンソールにログインし、[EC2] → [インスタンスを起動] を選択する。
２．以下の通りインスタンスの起動設定を行う。

■ アプリケーションおよび OS イメージ (Amazon マシンイメージ) 
・「その他のAMIを閲覧する」 
・「AWS Marketplace AMI」タブから以下を検索・選択
　　　F5 BIG-IP Virtual Edition - GOOD (PAYG, 25Mbps)
　　　※ **PAYG（従量課金制）** 方式の AMI を使用します。2025年4月現在、1時間あたり約 $0.33 の課金が発生します。

:::note info
「BYOL（Bring Your Own License）」方式の AMI も選択可能ですが、F5 ライセンスを所有していない場合は PAYG を選びましょう。
:::

![Bigip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3092281/cb633c99-da9f-47a1-a8b9-1a5cb460f3c1.png)

■ インスタンスタイプ
　- t2.medium を選択（最小構成として検証に十分）

■ キーペア
　- 任意のキーペアを選択、または新規作成

■ ネットワーク設定
　- 作成済みの VPC・サブネットを選択
　- 自動割り当てパブリック IP を有効化

■ セキュリティグループ
　- 新規作成または既存グループを選択し、以下のインバウンドルールを設定
　　- TCP 22（SSH）
　　- TCP 443（Web UI）
　　- TCP 8443（デフォルトの Web 管理ポート）

■ ストレージ
　- デフォルトで 41GB以上 が割り当てられます。必要に応じて変更可能です。

■ その他
　- その他の項目はデフォルトのままで問題ありません。

３．設定完了後、「インスタンスを起動」ボタンをクリックして作成します。
→ 初回起動時は、約6分程度の初期化時間がかかります。

### BIG-IPインスタンスへのSSHログイン

１．TeratermなどのSSH クライアントから作成した BIG-IP インスタンスに接続する。
→ ユーザー名「admin」として キーペアで選択したSSHキーを使用してログインします。

２．ログイン後、tmsh コマンドで管理者パスワードを変更します。これは Web UI にアクセスする際に使用するパスワードです。
```
# modify auth user admin password save sys config
```
### BIG-IP Web UI へのアクセス
ブラウザで以下の URL にアクセスし、Web 管理画面にログインします。
```
https://[インスタンスのパブリックIP]:8443
```
※ インスタンスに複数のネットワークインターフェースがある場合は、以下のURLを使用する場合もあります。
```
https://[eth0 の IP アドレス]:443
```

![Bigip2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3092281/c964ed9b-cf96-4e20-895b-690af1692793.png)

## おわりに

以上、AWS Marketplace の AMI を使用して F5 BIG-IP インスタンスを作成し、Web UIにログインするまでの一連の手順を解説しました。
WordPressのスパム攻撃対策reCAPTCHA備忘録に！

## はじめに

WordPressを利用しているクライアントから「突然スパムメールが大量に届くようになった」と相談を受けました。調査してみると、問い合わせフォームなどを狙ったスパム攻撃によるものでした。このようなスパム攻撃は、サイト運営者にとっても大きなストレスになります。スパム対応にかかる時間や精神的負担を考慮すると、迅速な対策が求められます。そこで今回は、WordPressにreCAPTCHAを導入してスパムを防ぐ方法について、実際に対応した内容と調べたことのまとめをしておきます。

## なぜWordPressサイトはスパム攻撃を受けやすいのか？
- WordPressは世界中で最も利用されているCMSであり、攻撃者にとって魅力的なターゲット。
- 初期設定のままのフォームやコメント欄が狙われやすい。
- 人気のテーマやプラグインの脆弱性を突かれることも。
- 会員登録機能付きサイトでは偽アカウントの大量作成も。
---
## スパム攻撃の代表的な手口
- **コメントスパム**：SEO目的で外部リンクを大量投稿。
- **フォームスパム**：お問い合わせフォームを悪用。
- **偽アカウント登録**：Botによる自動会員登録。
- **ログイン試行**：パスワードリストを用いた総当たり攻撃。
---
## reCAPTCHAとは？
Googleが提供する無料のセキュリティツールで、人間とBotを判別しスパムや不正アクセスを防ぎます。
### 特徴
- フォームやログイン時にBotをブロック。
- WordPressのようなCMSに特に有効。
- ユーザーに優しいv3も登場。

## v2とv3の違いは？
### reCAPTCHA v2
- 「私はロボットではありません」チェックボックス式。
- 画像認証あり。
**メリット**
- Botを確実にブロック。
- 安心感があるUI。
**デメリット**
- 操作の手間がある。
- モバイルでは煩わしさも。

### reCAPTCHA v3
- スコア（0.0〜1.0）でBot判定。
- 完全に裏側で動作。UIには何も表示されない。
**メリット**
- 操作不要で快適なUX。
- UIの邪魔にならない。
**デメリット**
- 誤判定の可能性。
- 閾値設定などの開発側対応が必要。

### どちらを選ぶべき？
- **確実に防ぎたい** → v2がおすすめ。
- **ユーザー体験重視** → v3がおすすめ。
- **ハイブリッド運用も可**：フォームにはv2、ログインにはv3など。

## WordPressにreCAPTCHAを導入する方法
### 方法は2つ
1. **HTMLコードを自分で埋め込む方法**
2. **プラグインを使う方法（初心者向け）**
### 手順（プラグイン利用）
1. GoogleでreCAPTCHAのAPIキーとシークレットキーを取得。
2. WordPressのreCAPTCHAプラグインに設定。
3. 自動的にフォームやコメント欄にreCAPTCHAが表示される。


## Google reCAPTCHAキーの取得方法
1. Googleアカウントで [reCAPTCHA公式サイト](https://www.google.com/recaptcha/admin/create) にアクセス。
2. サイト名・ドメイン・バージョン選択（v2/v3）。
3. 規約に同意し登録。
4. サイトキーとシークレットキーをコピー。
5. WordPressの設定画面に貼り付けて完了。

## プラグイン設定方法（例：reCAPTCHA by BestWebSoft）
1. WordPress管理画面 → 設定 → BWS Plugins → reCAPTCHA。
2. サイトキーとシークレットキーを入力。
3. 保存して完了。
4. 表示されないときはキャッシュをクリア。

## フォーム・コメント欄のスパム対策
- 今回は「WPForms」で作成されたお問い合わせフォームに対応。
- プラグインとコード埋め込みで簡単にreCAPTCHAを設置可能。

## 今すぐ導入したい！おすすめプラグインまとめ
- **reCAPTCHA by BestWebSoft**：初心者に最適、無料版も充実。
- **Advanced Google reCAPTCHA**：v2/v3両対応、WooCommerceにも対応。
- **Akismet Anti-Spam**：コメントスパム対策の定番。商用は有料。
- **Limit Login Attempts Reloaded**：ログイン試行の制限に。

## まとめ
WordPressサイトの安全運営には、reCAPTCHAの導入が効果的です。 攻撃を受ける前に備えるのが安心だなと思いました。

**アクション**
- ユーザーの負担が少ないv3も検討する。
- プラグインなら5〜10分で導入完了。
まずは手軽なプラグイン導入から始めてみるといいですね。

## **採用拡大中！**

アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を募集しています！
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう！

お問い合わせはこちらから↓  
[https://official.assisteng.co.jp/contact/](https://official.assisteng.co.jp/contact/)
AtCoder Beginner Contest 337 E - Permute K times 2 のかみ砕いた説明

# 1.問題
https://atcoder.jp/contests/abc377/tasks/abc377_e

# 2.説明
サンプル 1 の、$P = (5,6,3,1,2,4)$ を考えてみる。まず大事なのが、**どんな順列もいくつかのサイクルに分けられる**ということである。この順列の場合、

1 → 5 → 2 → 6 → 4 → 1 、 3 → 3

の 2 つのサイクルが存在する。これをもとに考察をしてみる。

まず、$P_{i}$ が何を表しているかというと、（当たり前だけど）**$i$ の 1 つ先の行き先**である。グラフ上で考えるなら、$i$ から伸びる有向辺の先と言える。

では、$P_{P_{i}}$ は何を表しているか？これは、$i$ **の 1 つ先の行き先（$P_{i}$）の 1 つ先の行き先（$P_{P_{i}}$）**、つまり $i$ の 2 つ先の行き先ということになる。

1 回操作を施すことにより、**$P_{i}$ は $i$ の 2 つ先の行き先を指し示すようになる（$P^2$）**。よって、これに対してさらに 1 回の操作を施すと、$i$ の 2 つ先の行き先（$P^2_{i}$）の 2 つ先の行き先 ( $P^2_{P^2_{i}}$)、つまり $2^2$ つ先の行き先になる。

これを $K$ 回繰り返すと、$P_{i}$ は $2^K$ 先の行き先（$P^{2^K}$）となる。
AWSのIAMユーザーのMFAデバイスを削除(登録解除)する方法

AWSのログインをIAMで管理している方はログインに使用しているIAMユーザーに対して多要素認証(MFA)の設定を実施していることが多いかと思います。

上記のMFAについて、
設定方法を紹介している記事は多くありましたが、削除方法を記載しているものがあまり見られなかったので記載してみようと思います。
※こちらで紹介している方法は2025年4月時点の画面をもとにしたものです。

# MFAデバイスの登録解除手順
対象のIAMユーザーでAWSアカウントへログインした後、右上のユーザー名の部分をクリックします。
表示されたリストから「セキュリティ認証情報」をクリックします。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3990347/64700012-050d-4862-849b-f9a1d0ad499f.png">

画面下部から「多要素認証(MFA)」のリストへスクロールし、削除対象のデバイスにチェックを入れ「削除」をクリックします。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3990347/20098f54-645e-4ecd-a698-8da0a3935212.png">

削除確認のポップアップが表示されるので「削除」をクリックします。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3990347/aa435bb2-09df-40ce-bbde-84822fd5714c.png">

元の画面に遷移され「MFAデバイスが削除されました。」と表示されれば削除完了です。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3990347/d313d898-86e9-486e-a86b-89b4481a397f.png">
ゼロから始める React Hook Form

## React Hook Formとは
React Hook Form は、Reactでフォームを扱いやすくするためのライブラリです。

React では通常、フォームの各入力欄を useState で管理し、それを集めてバリデーションして…という処理が必要になります。
React Hook Form を使うと、そういった作業を簡潔に書けるようになります。

具体的には以下のようなことができます：
- 入力値の管理
- バリデーション（必須、桁数、数値制限など）
- エラーメッセージの表示
- フォームの送信処理

## Reactとの関係性
React Hook Form の中核は `useForm()` というカスタムフックです。
これは React の Hook システム（useState や useEffect など）と同じ考え方で、フォームの状態を扱えるようにしたものです。

React の設計に沿っているため、シンプルなコードが書けます

## 実際にどう使うのか


### useForm の初期化
まずは useForm を使って、フォーム全体の管理を準備します。
```tsx
import { useForm } from "react-hook-form";

const { register, handleSubmit, formState: { errors } } = useForm();
```
- `register`
    - 各 input に適用して、フォームとして認識させる
- `handleSubmit`
    - フォーム送信時にバリデーションを走らせてから処理を行う
- `errors`
    - バリデーションでエラーになった項目の情報が入る

### 入力欄の登録
次に、フォームの中にある `<input>` や `<textarea>` に `register` を使って登録します。
```tsx
<input {...register("title", { required: "タイトルは必須です" })} />
```
ここで `"title"` はフィールド名です。オブジェクト形式でバリデーションルールも指定できます。

### エラーの表示
バリデーションエラーがある場合は、`errors` に情報が入ります。
それを使って、該当する入力欄の下にエラー文を表示します。
```tsx
{errors.title && <p>{errors.title.message}</p>}
```

### フォーム送信処理
送信時には `handleSubmit` を使います。
バリデーションが通ったときのみ、引数で指定した関数が呼ばれます。
```tsx
const onSubmit = (data) => {
  console.log(data); // data は各 register() に対応する値のまとまり
};

<form onSubmit={handleSubmit(onSubmit)}>
  {/* 各 input 要素 */}
  <button type="submit">送信</button>
</form>
```

### よく使うバリデーションの例
```tsx
register("time", {
  required: "時間の入力は必須です",
  min: {
    value: 1,
    message: "時間は0以上である必要があります"
  }
})
```

## React Hook Form のメリット
- 入力値を useState で個別に管理する必要がない
- バリデーション処理をわかりやすく書ける
- コードが短くなり、読みやすくなる

ちなみに、loadingはサポートしてなかったので今回私はそこだけuseStateを使いました。

## 参考リンク
https://react-hook-form.com/

ここに貼ってあるコードをコピペして使いました
統計学検定3,4級を受かるまで#1

統計検定の3級と4級を2025年の4月中に受かろうと思っているYumaです。
そのための備忘録として学んだことを書いていこうと思います。
勉強するのに用いるテキストとしては、下記の3冊を使います。
1. [完全独習 統計学入門](https://amzn.to/4cdXiR4)
2. [基礎から学ぶ統計学](https://amzn.to/3E3fXme)
3. [日本統計学会公式認定　統計検定３級・４級　公式問題集](https://amzn.to/4lhmxGp)

その時に、勉強したものや学習の過程で作成したもので、
グラフなどを作ることができると思うので、Pythonでグラフを作り、その備忘録としていきたいと思います。

勉強したことを書いていくので、
わからないところとかがありましたら、質問していただけるとうれしいです。



## 度数分布表とヒストグラム
### 度数分布表とは？
度数分布表は、データを一定の区間（階級）に分類し、
各階級に含まれるデータの数（度数）を集計した表です。  

この表をもとに、ヒストグラムを作成することができます。

### ヒストグラムとは？
ヒストグラムとは、度数分布表を視覚的に表現した「棒グラフ」のことです。

ヒストグラムの例としては、厚生労働省の出している[所得の分布状況](https://www.mhlw.go.jp/toukei/saikin/hw/k-tyosa/k-tyosa09/2-2.html)などがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559163/3e5db20f-22ae-4221-96e4-57e2ca1b4999.png)


このヒストグラムでは、年収が100万円単位で区切られており、これが度数分布表における各階級に相当します。  
各階級の代表値として、区間の中央値（階級値）を用います。  
度数は、各階級に属するデータの数を示し、ヒストグラムでは各棒の高さとして表現されます。  
相対度数は、各階級の度数を全体のデータ数で割った割合であり、上記の図では縦軸がパーセンテージ（相対度数×100）で表示されています。  
累積度数は、各階級までの度数を順次加算した値で、最終的には全データ数と一致するはずです。  
もし累積度数の最終値が全データ数と一致しない場合は、計算に誤りがあるため、再度確認してください。

## 平均値と度数分布表の関係

平均値は、度数分布表の階級値×相対度数で平均値が出る。
度数分布表を作ったとしても、平均値と言う統計量には大きな影響を与えないこと示している。
ヒストグラムが左右対象とした場合、平均値は対象軸の位置になる。

## 平均の種類
平均の取り方は一つではない。
4つの平均の取り方があり、用途によって使い分ける必要がある

3000円と10000万円を持っている時についてそれぞれ平均を出します。


### 算術平均 (Arithmetic Mean)

算術平均は、全ての値の合計をデータ数で割った値です。  
「合計の意味」を重視する場合に適しています。

**計算例:**

(3000+10000)/2





### 相乗平均、幾何平均
相乗平均は、各値の積のn乗根（nはデータ数）を求める方法です。  
成長率や比率など、掛け算的な性質を持つデータの代表値として利用されます。


### 2乗平均
2乗平均は、各値を二乗してその平均の平方根をとる方法です。  
データのばらつきを評価する際に有用です。


### 調和平均
調和平均は、各値の逆数の算術平均の逆数として求められます。  
速度や単位時間あたりの作業量など、比率を扱う場合に効果的です。
TROCCOでバクラクのデータ転送してみた

# ✨️TROCCOでバクラクのデータを抽出・転送できるようになりました！

# バクラクとは？
経費精算、請求書発行、入金消込、稟議申請などを一元管理できるクラウド型バックオフィスSaaSです。AIによる自動化機能も充実しているみたいです。
個人的には、経費申請の際のOCR機能が他の類似サービスよりも精度が高い印象です！！（とても助かってます）


https://bakuraku.jp/


https://bakuraku.jp/ai/



# TROCCOとは?
TROCCOは、データの連携・変換をスムーズに実現するクラウド型データ統合ツールです。
執筆者はTROCCOのカスタマーサクセスエンジニアをしています。

https://trocco.io/


# :satellite_orbital:　TROCCOで取得できるデータ一覧（2025/03現在）

| 取得対象API | 説明 | データ利活用アイデア |
|---|---|---|
| 申請一覧 | 経費精算、稟議申請など、バクラクに登録された申請の一覧を取得します。 | 申請データを分析し、経費削減や業務改善に役立てる。 |
| 所属一覧 | バクラクに登録された所属（部署、支店など）の一覧を取得します。 | 所属ごとの経費利用状況を分析し、予算配分や人員配置の最適化に役立てる。 |
| ユーザー情報一覧 | バクラクに登録されたユーザー情報の一覧を取得します。 | ユーザー情報を外部システムと連携し、シングルサインオンや人事管理を効率化する。 |
| 役職一覧 | バクラクに登録された役職の一覧を取得します。 | 役職ごとの承認ルートを設定し、ワークフローを効率化する。 |
| チーム一覧 | バクラクに登録されたチームの一覧を取得します。 | チームごとの経費利用状況を分析し、プロジェクト予算の管理に役立てる。 |

※バクラクのAPIドキュメントは一般公開されておりませんが、バクラクのAPI利用を申し込むと個別にいただけるような雰囲気です。


## 【バクラク】APIキーの発行
バクラクにログインし、共通管理の画面からAPIキーが発行できます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/458b121b-4899-437b-95c0-e1178f46f13b.png)

バクラクの各サービスごとに、スコープが絞れるようになっています。
取得したいデータに読み取りの権限を付与してあげましょう。
また、ここで発行されるAPIキーを控えておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/0dbfda51-956c-43fa-a342-95925a98c31b.png)


https://id.layerx.jp/api

# TROCCOで連携してみた


## 【TROCCO】接続情報の設定

先ほど控えておいたAPIキーを設定するだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/8fb4a168-2dec-466f-99db-26b12c128f9a.png)


https://trocco.io/connections/bakuraku/new

## 【TROCCO】転送設定の作成・実行

接続情報と、取得したいデータを選ぶだけでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/5c40106c-261a-44f5-8fce-e1fa8e6e31cc.png)

転送先にはスプレッドシートを指定してみました。

プレビューが表示されると、こんなかんじ⏬️
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/d00d1184-b4dc-4708-b492-8dc21fdebf27.png)

転送してみた結果は、こんなかんじ⏬️
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3033246/98101b22-37fe-40d5-ab77-f82bca133cfa.png)


`openedAt`が申請日、`approvedAt`が承認日に当たるようです。

例えば弊社の場合、経費申請は「翌月の第2営業日まで」というルールがあります。
申請日がそれ以上になっているものを集計することで、どの部署で申請が遅れやすいのか、などの原因分析が可能になりますね。
データを元にした指摘なら…相手も受け入れてくれる…はず？

より詳細な内容が取りたい場合は、`defaultFieldValue`、`requestUser`の項目をチェックすると良さそうです！


# 検証メモ（2025/04/21追記）
## 支払金額を取得したい!!
申請一覧の`defaultFieldValue`カラム内の`paymentAmount`から支払金額を取得できます。
JSONパスで指定して取り出せます。

## バクラクの申請画面へリンクさせたい!!
申請一覧の`id`カラムの値を、以下のように埋め込みましょう。
`https://workflow.layerx.jp/requests/{id}`でリンク



# おわり
いかがでしたでしょうか。
この記事を見てくださった方の、なにか少しでもお役に立てていたらならば幸いです🙏
AWSエンジニアのキャッチアップルーティン

# 私の経歴

新卒から約5年間AWSやPythonを主に扱うデータセンターにも行ったことがないようなエンジニアです！
2020年新卒入社ですが、2021年と2023年にはありがたいことにAWS Top Engineerにも選出されました。
そんな私が、よくチェックしているブログやサイトなどを共有したいと思います！
（皆さんがチェックしてるものもコメントいただけたら嬉しいです！）

# AWS公式系

## 最新情報チェック

AWS公式の最新情報をチェックします。（朝一）
全部確認してるととんでもない時間がかかるのでタイトルから興味のあるものだけ確認します。

https://aws.amazon.com/new/?nc1=h_ls&whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&awsf.whats-new-categories=*all

:::note info
**月曜日**と**日曜日**は更新されないので見ないです。
言語設定が日本語だと最新情報が出ないので英語にして確認します。
:::

## Builders Flash記事チェック

AWS公式が出しているエンジニア向けの記事ページです。
エンジニアが好きな技術特化の記事で分かりやすくまとめられているので興味のある記事は確認しています。

https://aws.amazon.com/jp/builders-flash/?awsf.filter-name=*all

:::note info
月初付近に更新されていることが多いので、それくらいの時期に毎月確認しています。
:::

## AWS blogチェック

AWS公式のニュースブログを確認します。
主に最新情報を掘り下げた記事を中心に確認しています。

https://aws.amazon.com/jp/blogs/aws/

## 週刊AWS

AWSの1週間分の最新情報を中の人がわかりやすくまとめてくれています。
日本語で非常にわかりやすいのでおすすめです。

https://aws.amazon.com/jp/blogs/news/tag/%E9%80%B1%E5%88%8Aaws/

:::note info
**月曜日**に更新されるので毎週月曜日にチェックしています。
:::

# その他

## AWSサポートごっこ

これはキャッチアップというか勉強法としてすごくおすすめなので是非やってほしいのですが、AWSを利用している会社でサポート契約をしていると、AWSサポートに問い合わせが行えます。
大抵の場合はメールで関係者全員に通知が飛ぶようになっていると思うので、それに**AWSサポートになりきって**答えてみるという遊びです。

自信がないうちは、こっそり答え合わせするだけでもいいと思います。
最後の方に参考情報を載せるとそれっぽくなります。

## LINEオープンチャット

AWSサポートごっこと似ているのですが、LINEのオープンチャットでAWSの非公式コミュニティに参加して質問をしたり回答をしたりします。
こちらは社外の人が抱えている課題が見えたり、学生さんのほのぼのした質問もあったりするので楽しく勉強できます。

# 弊社では一緒に働く仲間を募集中です！
現在、様々な職種を募集しております。
カジュアル面談も可能ですので、ご連絡お待ちしております！

募集内容等詳細は、是非採用サイトをご確認ください。
https://engineer.po-holdings.co.jp/
【#1】C言語未経験がC#を触ってみた - 値の入出力

## 0. 参考にさせていただいているサイト様
C# によるプログラミング入門
[基礎] 値の入出力
https://ufcpp.net/study/csharp/st_consoleio.html

## 1. 今回のゴール
> 「まずは慣れろ」ということで、とりあえず今は詳しい説明省略。

とのことなので、
・説明をひとまず飛ばして、入出力が出来るようにする。

## 2. 入力

値を受け取りたい時は、 **Console.readLine()** を用いる。

```C#
var str = Console.ReadLine(); 
```

**int.Parse**を用いることで、ユーザーが入力した値を整数に変換して変数に代入することができる。また、**double.Parse**を用いることで、実数として扱うことができる。

```C#
var n    = int.Parse(Console.ReadLine());  
var x = double.Parse(Console.ReadLine());
```

## 3. 出力

値を出力したい時は、 **Console.WriteLine()** を用いる。
（前回の記事でも触ったものになります）

```C#
int m = 1, n = 3;
Console.Write("m = {0}, n = {1}", m, n); 
```

**【フォーマット出力】**
・Console.Writeの第2引数mは0番目、第3引数のnは1番目の引数として {0}, {1} に対応します。
・"{0}"と記述することで、{0}の値を文字として表現できます。

```C#
using System;

public class Hello{
    public static void Main(){
        var answer = 9;
        Console.WriteLine("3 x 3 = {0}", answer);
    }
}
```

「3 x 3 = 9」が無事出力できました！
Mozcのinput mode初期値を「ひらがな」にしたい

# はじめに
古いパソコンにUbuntu22.04を入れて自宅の勉強用としています。
ただMozcを使用して英字入力と日本語語入力を切り替える場合に使いにくい部分がありました。
調べて対策しましたので、自身の備忘録として残しておきます。

# 環境
| 環境 | バージョン |
|:-:|:-:|
|OS|Ubuntu 22.04.5 LTS|
|PC|Surface-Pro-3|
|Mozc|mozc-2.28.4715.102(手動更新)|

# 現象
[command + SPACE]で英字(デフォルト)とローマ字入力(Mozc)を切り替えているわけですが、Mozcにおける初期設定が英字であることから起動時一発目は以下GUIから[input mode]を[Hiragana]に切り替える必要がありました。
Mozcの設定は起動時から日本語入力になっていてくれないと、毎回毎回めんどくさいです。
![markup_1000005717.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4035685/594f4504-cf8b-4daf-9497-e70126ac6a1c.png)

# 解決
色々ハマりましたが、現在は設定ファイルを変更するのみでいいそうです。
結論は下記です。ハマりポイントは後述しています。

```bash
cd ~/.mozc/
vi ibus_config.textproto
```

```diff 
 engines {
   name : "mozc-jp"
   longname : "Mozc"
   layout : "default"
 }
+active_on_launch: True
```
※最新版の設定ファイルの場所は下記です。
[~/.config/mozc/ibus_config.textproto]

起動時の初期状態の結果は以下のとおりです。
![Screenshot from 2025-04-04 17-17-46~2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4035685/934adc7c-962f-48a2-b694-bd0099f545f3.png)

# ハマりポイント
## その1 aptでインストールされるバージョン
私の環境においてはaptでダウンロードされるibus-mozcのバージョンがギリギリ外部ファイルからの初期値設定に対応していない。
参照：https://zenn.dev/oberk/scraps/510284319a9786

| 初期値変更可否 | Mozcバージョン |
|:-:|:-:|
|設定項目対応バージョン|2.26.4317以降|
|aptでインストールされるバージョン|2.26.4220|

※Mozcのバージョンは「ばーじょん」を変換すると、変換候補の中に出てきます。
![Screenshot from 2025-04-04 17-17-17~2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4035685/2737d7e5-cb26-4a9f-acd2-ee87b6f6c02e.png)


次回新しい環境にMoacをセットアップする頃にはaptなりで問題ないかと思いますが、今回はソースのコンパイルから実施しました。手順は下記です。

リポジトリの設定ツールからソースコードをDLするように設定変更
```bash
software-properties-gtk
```
以下のソースコードにチェック
![Screenshot from 2025-04-04 17-25-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4035685/7346ea02-3077-4f05-8a22-5c947d4ab4f1.png)

コンパイル用環境をインストール
```bash
sudo apt install build-essential devscripts -y
sudo apt build-dep ibus-mozc -y
apt source ibus-mozc
cd ~/.mozc/mozc*/
```
実施当時では[~/.mozc/mozc-2.28.4715.102+dfsg/]にs−スコードがインストールされました。

コンパイル/インストール
```bash
dpkg-buildpackage -us -uc -b
sudo apt install ./ibus-mozc*.deb
```

容量を食うのでソースコードをインストールしないように元に戻しておきます。
```bash
  software-properties-gtk
```

参考:https://askubuntu.com/questions/717098/make-ibus-mozc-start-in-hiragana-rather-than-direct-input-mode

## その2 古い情報が検索に引っかかる
古い情報にはソースを変更して再コンパイルの必要があると記載されており、
新しいソースで該当ソースが存在しなかったことからかなり遠回りしました。
ｔ公式ドキュメントを読むべきですね。
参考-公式ドキュメント:https://wiki.archlinux.jp/index.php/Mozc

## その3 設定ファイルの場所が異なる。
旧バージョンをインストールしたことがある場合は、設定ファイルが異なり、
そちらが優先されるようです。
以下のNEWに新規ファイルを設定していましたが、反映されずしばらく唸っておりました。

NEW：~/.config/mozc/ibus_config.textproto
OLD：/.mozc/ibus_config.textproto

こちらも公式ドキュメントの[設定]に記載がありました。
Javaデザインパターン勉強におすすめGitHub

### はじめに
Javaのデザインパターンを勉強する際に参考にしているサイトはいくつかありましたが、実際にプロジェクト階層になっていて、ソースが確認しやすい方法がなかなか見つからず悩んでいました。

しかしGitHubを探しているうちに、種類豊富なデザインパターンと、それぞれをわかりやすい表現で解説している素晴らしいプロジェクトを見つけました。今回はそのプロジェクトをご紹介します。

> ※GitHub全体に言えることですが、リポジトリをクローン・ダウンロードする際は自己責任でお願いします。

---

### URL
[https://github.com/iluwatar/java-design-patterns](https://github.com/iluwatar/java-design-patterns)

こちらのリポジトリには、様々な種類のデザインパターンがプロジェクト単位で整理されており、読みやすく理解しやすい構造になっています。
解説は各READMEに記載されています。

---

### 一例：`abstract-factory`パターン
https://github.com/iluwatar/java-design-patterns/tree/master/abstract-factory#programmatic-example-of-abstract-factory-in-java

- 王国（Kingdom）に例えて、種族（エルフ、オーク）ごとに城、王、軍隊などのオブジェクト群が一貫して表現されています。
- 拡張性のある設計になっており、新しい種族を追加する際にも既存コードの変更は最小限で済む点など、非常に実践的な内容となっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618113/5bbb87f8-493d-4b28-8902-641d32d2a60e.png)

---

### 関連パターンの記載

各デザインパターンの説明ページでは、関連する他のデザインパターンへのリンクも記載されています。
これにより、似たようなパターンや組み合わせて使うべきパターンをすぐに確認できるため、学習効率が非常に高まります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618113/df1a93b2-e1e5-46af-8736-0e34a7a30ab1.png)


---

### 終わりに

デザインパターンはどの設計にも必ずしも必要なわけではありませんが、それぞれのパターンを理解しておくことで、状況に応じて最適な選択をすることができます。

オブジェクト指向の理解を深めるためにも、また頭の整理や引き出しを増やす意味でも、このGitHubプロジェクトは非常に参考になると思います。

ぜひ一度覗いてみてはいかがでしょうか？
WordPressの会員サイトが作れる新しいプラグイン - 2025年リリース

WordPressで会員サイトを作るプラグインは多くありますが、
カスタマイズしやすいプラグインが**2025年1月にリリース**されたのでご紹介いたします。

## SPIRALセキュアセッションマネージャー
自由度が高く、**セキュリティに特化**したWordPressの会員サイトが構築できるプラグインです。

有料ではあるのですが、**大量のログインに耐えられるサーバーを用意してくれる**ので、
大きなサイトだったりアクセスが多いところではより価値があるように思います。
（規模に応じてオプションの価格は変えられる）

https://www.spiral-platform.co.jp/solution-app/wp-mls/

### 一瞬で作れるので見てみましょう

https://apl-support.pi-pe.co.jp/s3m/trial/

上記か無料トライアル版をインストールして有効化にした後、記事編集画面に飛んだところです。

まずは左のブロックメニューから3つ選んで、公開。
![qitta04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/eda45e14-8f27-42d4-87f5-38901127a305.jpeg)

もう**完成してしまいました。**
![qitta05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/3730ecfa-1ddf-4a6e-8069-cd021ffc2316.jpeg)
今回は無料版を使用しているので固定のユーザー名とパスワードでログインしてみます。

![qitta06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/0f48f4fc-35fe-438c-8b75-87ace20fa222.jpeg)
ログインもばっちりですね。

#### クラシックエディタでも同じ書き方
クラシックエディタはまだまだ利用しているサイト多いですよね。
表示したい箇所を囲うように使用しましょう。
```diff_html
[spiral-s-show-template]

[spiral-s-is-logged-in]
<p>ログインしています！</p>
[/spiral-s-is-logged-in]

[spiral-s-is-logged-in-hide]
<p>ログアウトしています！</p>
[/spiral-s-is-logged-in-hide]
```

#### PHPでも書ける
これは珍しい気がするのですが、PHP関数の仕様もサイトに公開されています。
テーマやfunction.phpに直接書き込んで利用できます。
```diff_php
<?php
$spiral = SSSM_Spiral_Member_Login::get_instance();

if ($spiral->is_logged_in()){
  echo "<p>ログインしています！</p>";
}else{
  echo "<p>ログアウトしています！</p>";
}
?>
```
ショートコード、PHPの書き方はこちらにまとめられています。

https://apl-support.pi-pe.co.jp/s3m/s3m_function/



### こんな所に使えます
・ ログインボタン
・ ログインしていない方に表示されるコンテンツ

![qitta01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/f2646de8-4d94-44e3-8e9d-cba77c34ad7d.jpeg)

・ マイページ　
・ 会員の情報を出力
・ **一般会員**か**特別会員**かでコンテンツ出し分け

![qitta02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/33a3974f-35f8-4354-bfbb-5d11eb1409cf.jpeg)
まだまだ紹介しきれないほどできることがあります...

### コンテンツの出し分けは特に自由度が高い
Webマーケティングをする上で効果的な、**ターゲットを絞る** 使い方ができます。

例えば、**関東出身か関西出身か**で違うものが見えたり、
何かに**当選した方だけ見えるページ**があったり、
**メルマガAに登録している20歳以上の男性にだけ見える**みたいな複雑なものも作れます！

## 今からやってみましょう！無料トライアル版
今回使用した無料トライアル版！

会員情報は固定ですが、
~~せっかく無料ですし、~~ 数分でできちゃうので触ってみましょう。

https://apl-support.pi-pe.co.jp/s3m/trial/

上記サイトからプラグインをダウンロードして、指示に従って有効化にすると、
記事編集画面にショートコードが追加されます。
![qitta03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3994096/69b0b7c4-78cb-4151-9225-a6c84d95e623.jpeg)

無料トライアルでも使える、ショートコードの詳しい仕様はこちらにまとめられているので、参考にしてください！

https://apl-support.pi-pe.co.jp/s3m/s3m_function/

## SPIRALもオススメ
今回は会員情報を保存する目的でSPIRALを利用しましたが、WordPress関係なくフォームを作ったりWebアプリを作ったり便利なプラットフォームです。
金融とか教育機関とかの実績が豊富でセキュリティの信頼ができるサービスでもあります。

気になる方は下記に紹介されているので見てみてはいかが？

https://www.spiral-platform.co.jp/service/spiralv1/

https://spiral.pi-pe.co.jp/
「418 I'm a teapot」のネタ集

# I'm a teapotとは？
> HTTP の 418 I'm a teapot ステータスレスポンスコードは、サーバーが、自身がティーポットであることを理由としてコーヒーを入れることを拒否することを示します。コーヒーとティーの複合ポットで、一時的にコーヒーが提供できない場合は、代わりに 503 を返してください。 このエラーは、1998 年および 2014 年のエイプリルフールのジョークである Hyper Text Coffee Pot Control Protocol に由来します。
> https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Status/418

~~エイプリールフールが3日前であることは気にしないでください~~
「エイプリールフールのジョークで作られたステータスコード」という認識で大丈夫です。

# Flaskで418エラーを返してみる
Flask(PythonでWebサーバーを立てるライブラリ)では、エラーを返す関数
「abort関数」が内蔵されています。それを使って418エラーを返してみます。
### コード
```python
from flask import Flask,abort

app = Flask("__app__")

@app.route("/")
def index():
    return abort(418) # ここで418エラーを返す

if __name__ == "__main__":
    app.run()
```

## 結果
ちゃんとエラーメッセージが出た！
![i'm a teapot from flask](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3930283/8a048f75-893e-4ae7-9283-980bdcbeb8dd.png)
(和訳: 
私はティーポットです。
このサーバーはティーポットで、コーヒーマシンではありません)

# GoogleのTeapot
https://www.google.com/teapot
GoogleにもTeapotエラーを返してくれるページがありました。
![i'm a teapot from google](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3930283/852978e8-4cdf-4457-8507-0ca7f7b52d3f.png)
いつもの404エラーで出てくるロボットの絵がティーポットに変わってますね。

# ステータスコードで画像が変わるAPIの結果
### 猫画像
https://http.cat/418

![i'm a teapot from cat image api](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3930283/fb9a3b38-6301-4d74-b058-e402395f77b6.jpeg)
猫がティーポットに入っている！

### 犬画像
https://httpstatusdogs.com/418-im-a-teapot

![i'm a teapot from dog image api](https://httpstatusdogs.com/img/418.jpg)
犬もティーポットに入ってます！

# 終わり
Googleの遊び心すごいですね。
いろんな言語で作ったサーバーの418エラーも見てみたいと思いました。

最後まで読んでいただきありがとうございました！
いろんなサイトで調べましたが、もしここに載っていないものがあれば
コメントで教えてください！
aws-sdk-railsの4系から5系へのバージョンアップ

# はじめに

こんにちは、Gakken LEAPのバックエンドエンジニアのmizunoです。
現在、私が担当しているプロダクトでは Amazon SES を使ってメール配信を行っていますが、`aws-sdk-rails` を 5 系へバージョンアップしたところ、テストが失敗しました。
この変更に伴う対応をメモとして残します。

## 発生したエラー

テストを実行したところ、以下のエラーが発生しました。
SES の設定に関するメソッドが存在しなくなっていました。

```bash
bin/rails aborted!
NoMethodError: undefined method 'add_action_mailer_delivery_method' for module Aws::Rails (NoMethodError)

Aws::Rails.add_action_mailer_delivery_method(
```

## 原因

[aws-sdk-rails 5.0.0 のリリースノート](https://github.com/aws/aws-sdk-rails/releases/tag/v5.0.0)を確認したところ、以下の変更が行われていました。

> Feature - [Major Version] Remove dependencies on modular feature gems: aws-actiondispatch-dynamodb, aws-actionmailer-ses, aws-actionmailbox-ses, aws-activejob-sqs, and aws-record-rails.

つまり、`aws-actionmailer-ses` などの関連 gem への依存が削除されたため、これまで使えていたメソッドが利用できなくなったようです。
さらに、`add_action_mailer_delivery_method` メソッドは削除され、代替手段が提供されています。

> Issue - Remove Aws::Rails.add_action_mailer_delivery_method in favor of ActionMailer::Base.add_delivery_method or the Railtie and configuration in aws-actionmailer-ses ~> 1.

## 対応方法

[aws-actionmailer-ses](https://github.com/aws/aws-actionmailer-ses-ruby)のドキュメントを参考に対応しました。

### 1. Gemfile に `aws-actionmailer-ses` を追加

ドキュメントの手順通り、`aws-actionmailer-ses` を追加します。
これにより、`aws-sdk-ses` と `aws-sdk-sesv2`が導入されます。

```diff_ruby:Gemfile
gem 'aws-sdk-rails', '~> 5'
+ gem 'aws-actionmailer-ses', '~> 1'
```

### 2. `delivery_method` の変更

これまで、Amazon SESのAPI v1を利用していましたが、aws-sdk-railsのバージョンアップを機にSES API v2へ移行しました。
SES API v2を利用することで、より効率的なメール配信が可能になり、今後の新機能開発にも対応しやすくなります。

そのため、config.action_mailer.delivery_method の設定を :ses から :ses_v2 に変更し、さらに ses_v2_settings を追加しました。
この設定により、SES API v2を利用したメール配信が可能になります。

```diff_ruby:config/environments/production.rb
Rails.application.configure do |config|
- config.action_mailer.delivery_method = :ses
+ config.action_mailer.delivery_method = :ses_v2
+ config.action_mailer.ses_v2_settings = { region: 'ap-northeast-1' }
end
```

### 3. `add_action_mailer_delivery_method` の削除

以下のコードは不要になったため削除しました。

```diff_ruby
- # SES
- Aws::Rails.add_action_mailer_delivery_method(
-   :ses,
-   credentials: 'credentials',
-   region: 'ses_region',
- )
```

## まとめ

最後にテストを実行し、問題がないことを確認しました。
また、テスト環境で実際にメールを送信し、無事にメールが届くことを確認しました。
今回の対応を通じて、テストの重要性を改めて実感しました。

## エンジニア募集

Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています！！
ぜひお気軽にカジュアル面談へお越しください！！

https://gakken-leap.co.jp/recruit/
生成AIアップデートまとめ（2025/3/24週)

[週刊生成AI with AWS – 2025/3/24週](https://aws.amazon.com/jp/blogs/news/weekly-genai-20250324/)

## Amazon Bedrock Guardrails、業界をリードする画像コンテンツフィルターの一般提供開始を発表
Amazon Bedrock のガードレール機能を強化し、画像コンテンツフィルター機能がGAになりました。

テキストに加えて望ましくない画像コンテンツを検出して除外するため、生成 AI アプリケーションにおけるユーザーエクスペリエンスの向上とモデル出力の管理に役立ちます。

### サポートされるカテゴリ
・ヘイト
・侮辱
・性的
・暴力
・不正行為
・プロンプト攻撃

プレビューリージョンでは引き続き、ヘイト、侮辱、性的、暴力の 4 カテゴリが利用できます。

ガードレール設定時のイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858908/79fe3c36-ba0c-4641-9318-10fc30141223.png)

引用：https://aws.amazon.com/jp/blogs/news/amazon-bedrock-guardrails-now-supports-multimodal-toxicity-detection-with-image-support/


## Amazon Bedrock Knowledge Bases がベクトルストレージとしてAmazon OpenSearch Managed Cluster をサポート

Amazon Bedrock Knowledge Basesに、ベクトルストアとしてAmazon OpenSearch Managed Clusterが利用できるようになりました。

Amazon Bedrock Knowledge Basesとベクターデータベースのネイティブ統合により、カスタムデータソース統合を構築する必要性を軽減できます。 今回のリリースでは、OpenSearchマネージドクラスタをベクターデータベースとして使用して、Bedrock Knowledge Baseで利用できる一連の機能を活用できます。 

この統合には、Amazon OpenSearch Serverless、Amazon Aurora、Amazon Neptune Analytics、Pinecone、MongoDB Atlas、 そしてRedisが含まれます。



## Amazon Q Business がアジアパシフィック（シドニー）リージョンで利用可能に

Amazon Q Business は、企業向けの生成AIアシスタントです。
今回、シドニーリージョンでも利用可能になりました。


## Amazon Bedrock カスタムモデルインポートで、リアルタイムのコストの可視化を実現

 Amazon Bedrock のカスタムモデルインポートを使用してカスタマイズされた基盤モデル (FM) を実行している場合は、コンピューティングリソースに対する完全な透明性を実現し、推論コストをリアルタイムで計算できるようになります。

### できること
・モデルを呼び出す前に、Amazon Bedrock コンソールと Amazon Bedrock API の両方を使用して必要最小限のコンピューティングリソース (カスタムモデルユニット、つまり CMU)が確認可能
・トラフィックの増加に対処するためモデルがスケールするときは、使用された CMU の合計数を Amazon CloudWatch メトリクスでリアルタイムに確認可能

### CMUを確認
CMUを使用して、次の式を使用してカスタムモデルの実行コストを見積もることができます。

総コスト=実行中のモデルコピー数×1コピーあたりのCMU数×1分あたりのCMUあたりの課金レート×（(5分間のウィンドウ数）/ 60）


## Amazon Q in QuickSight でシナリオ機能が一般提供開始
Amazon Q in QuickSight のシナリオ機能がGAになりました。

### 主な機能
・自然言語での命令に基づくダッシュボード作成
・サマリーの作成
・データストーリーの提供

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858908/761c02e8-aae0-4e26-9a8f-2d555bb44b95.png)

### 前提条件
・シナリオには最大10個のデータソースを追加可能
・ダッシュボードから一度に最大20のビジュアルを選択可能
・アップロードされるファイルは.xlsxまたは.csv形式である必要があり、1GB未満
・データソースには最大200列を含められる

引用：https://docs.aws.amazon.com/quicksight/latest/user/scenarios-create.html


## Amazon Q Business の Slack および Teams 連携機能をアップグレード

アップグレード内容
・Slack のワークスペースや Teams 組織内で複数の Amazon Q Business 統合を作成する機能
→一度に最大 10 個の統合をデプロイおよびテストし、テスト用、本番用、異なるユーザーグループ用に個別の統合を維持
・無料のテキストフィードバックのサポート
・レスポンスとソースのフォーマットの改善
・ユーザークエリでのより大きなファイル添付へのサポート

[統合サポート時のLaunch Blog](https://aws.amazon.com/jp/blogs/news/enhance-your-productivity-with-new-extensions-and-integrations-in-amazon-q-business/)
💻孤独感ゼロ！エンジニアのための「リモートワーク環境×メンタルケア」実践術10選

## 🏁 はじめに

「リモートワークが快適すぎてもう出社できない」  
「通勤も会議室の移動もないから効率的！」  

──そんな声が増える一方で、  
**「ふとした瞬間に孤独を感じる」「気づけば12時間以上PCの前に…」**  
といった、**メンタル面の疲れやストレス**を訴えるエンジニアも増えています。

特にエンジニア職は、集中力と創造力が求められるため、**メンタルのコンディションがパフォーマンスに直結**します。  
本記事では、**エンジニアのためのリモートワーク環境でできるメンタルケア術を10個**ご紹介します。  
全て**実体験や現場での声**に基づいた内容なので、ぜひ今日から取り入れてみてください。

---

## 🔍 リモートワーク環境でメンタルが乱れやすい理由

| 原因 | 解説 |
|------|------|
| 孤独感 | 雑談や相互フィードバックが減ることで、心理的に閉じた状態になりがち |
| 境界の曖昧さ | オンとオフの切り替えが難しく、常に仕事している感覚になる |
| 運動不足 | 自宅にいると自然な移動が激減し、気分転換の機会も減る |
| 情報過多 | Slack・Notion・GitHub…通知が多すぎて疲弊しがち |
| 進捗の可視化不足 | チームとの連携が減ると、「自分だけ何もできていない感」が強まりやすい |

---

## 🧰 メンタルケア実践術 〜エンジニア向け10のTips〜

### ① 擬似通勤で「始業・終業」を明確に切り替える

- 出勤時と同じように**朝に5〜10分外を歩く**
- 夕方も軽いストレッチや散歩で**業務モードから離脱**
- Apple WatchやGoogle Fitなどでルーチンをログ化

👉 **体を動かすことで脳がリフレッシュ**され、集中力もUP！

---

### ② 作業ログを「見える化」して達成感を得る

- `Obsidian`や`Notion`で**1日の進捗を可視化**  
- GitHubのContribution Graphを活用して、自分のアウトプットを定量化  
- 週1で「ふりかえりノート」をつけるのもおすすめ  

```markdown
## ふりかえり（2025/04/04）
- 実装：ログイン画面のバリデーション処理
- 気分：3/5（集中力やや欠ける）
- 課題：通知が多すぎて中断されがち
```

---

### ③ 雑談チャンネル＆音声常駐スペースの活用

- Discordの**常駐ボイスチャンネル**で「静かな雑談空間」を設置  
- Slackの`#random`チャンネルを盛り上げる工夫  
- GatherやoViceを使って、**仮想オフィス感**を出すのも◎

🔧 **「黙ってても誰かが近くにいる感覚」が孤独感を防ぎます。**

---

### ④ タイムボクシングでメリハリをつける

- `Focus To-Do`や`Toggl`などで**ポモドーロ的集中**（25分作業 + 5分休憩）  
- ブラウザ拡張「Forest」や「Cold Turkey」で集中環境を構築

```bash
# 例：CLIでポモドーロ
brew install pomodoro
pomodoro start 25
```

---

### ⑤ チームの「心理的安全性」を意識する

- コードレビューで「まず肯定的なコメント」から入る  
- Slackで`:eyes: → :ok_hand:`など、**リアクション文化を醸成**  
- 雑談付きのデイリースタンドアップもおすすめ

💬 **「発言しても否定されない場」があると安心感につながります。**

---

### ⑥ メンタルバロメーターを自作して定期測定

- Python + Streamlitで簡単な**感情記録アプリ**を作るのもおすすめ  

```python
import streamlit as st

mood = st.slider('今日の気分 (1=最悪, 5=最高)', 1, 5)
note = st.text_input('メモ')
if st.button('記録'):
    st.success(f'気分:{mood}, メモ: {note}')
```

🌡️ **「自分の気持ちを可視化」することは、予防的メンタルケアの第一歩です。**

---

### ⑦ Slack通知を時間帯でミュートする

- Slackの「通知スケジュール機能」で**業務時間外の通知を遮断**
- iOSやAndroidでも「集中モード」を活用して、**SNSやチャットの暴走から守る**

🚫 **通知のオン・オフを自分でコントロールするのは超重要！**

---

### ⑧ サブモニタに「癒し要素」を常駐させる

- 雨音や焚き火の動画（YouTube）をBGM代わりに再生  
- Apple TVやGoogle Nest Hubで**風景スライドショー**を常時表示  
- ターミナルでASCII猫を飼う（笑）  
  ```bash
  telnet towel.blinkenlights.nl
  ```

🧘‍♂️ **作業空間に“ホッとする余白”を入れましょう。**

---

### ⑨ 小さな成功体験を共有する習慣

- `#today-i-learned`チャネルで、**日々の学びや進捗をシェア**
- GitHub DiscussionsやSlackスレッドで「自分の成長ログ」をつける

📣 **「誰かに見てもらえてる感覚」＝承認欲求が満たされ、自己効力感UP！**

---

### ⑩ プロに頼る準備もしておく

- 社内EAP（Employee Assistance Program）を確認  
- Tech系に強いカウンセラーやコーチングサービス（例：cotree, Talkspace）をブックマーク  
- 匿名で話せる「オープンダイアログ」イベントも探してみる

🧑‍⚕️ **「限界を感じる前に頼る」ことは、弱さではなく戦略です。**

---

## 📌 まとめ

| カテゴリ | 具体策 |
|----------|--------|
| ルーチン | 擬似通勤、ポモドーロ、進捗記録 |
| コミュニケーション | 雑談VC、心理的安全性、TIL文化 |
| 環境整備 | デジタルデトックス、癒しスペース |
| 自己管理 | メンタルログ、Slack通知制御 |
| 外部支援 | カウンセリング、EAP、匿名相談 |

---

## 🧩 さいごに

エンジニアにとって、メンタルケアは**コード品質やチーム生産性にも直結する重要なスキル**です。  
日々の仕事を持続可能にするためにも、**ちょっとした工夫や習慣を取り入れることが、後々大きな差になります。**

もしこの記事が参考になったら「LGTM」や「自分のメンタルケアTips」もぜひコメントで教えてください！
初学者が初学者に薦める「読むべきIBM i 記事」まとめ

# はじめに
本稿では、IBM i 学びはじめ社会人1年目の私なんかが、初学者にお薦めするIBM i 記事をまとめてみました。

上司から「IBM i について学んでおいて」とキラーパスを受けた私が、何を学べばいいのか分からないと悩んでいる際に読んだ記事になります。

本稿は更新を行いながら記事の追加、情報の訂正を行っています。内容等誤りがございましたらコメントフォームよりご連絡いただけますと幸いです。

#### 本稿における引用元記事の担当者様、また会社様へ
著作権法第32条「引用の目的上正当な範囲であること」を基に起稿しておりますが、修正や削除等ございましたら、大変お手数をおかけしますがコメントフォームよりご連絡いただけますと幸いです。

***

# 「読むべきIBM i 記事」



## 基本編：IBMに関する知識や概要について

***

### e-BELLNET.com
https://www.e-bellnet.com/what-is-ibmi/introduction.html

まずは、ここから読んでいただきたい！と思う「IBM i の入り口」のような記事から紹介です。

本記事は、**安井賢克**さんという元日本IBMの方が**エバンジェリスト**として「IBM i を初めて学ぶ方に」と書かれた記事です。

右も左も分からない、そんな状況の方にでも理解しやすく書いてくださっています。IBM i の誕生経緯から、IBM i の特性、RBG言語についてまで網羅しています。

一項あたりの文字数こそ多いものの丁寧な説明に加えて、画像によるイメージ図が多くあるので、理解しやすいと思います。頑張って読んでみましょう！

また、e-BELLNET.comではIBM i に関わる情報が、たくさん配信されています！

***

### SOLPAC

https://www.solpac.co.jp/Column/IBM-i/IBMi/

学習を始めた頃、まず手こずったことは「エースってなに？」「Power?ACS?」ハードウェアの呼称やシステムの名称などが、さっぱりでした。

IBMという企業の歴史が長い分、様々な製品が存在します。何と何が繋がっていて、今はどういう名前なのか不明確でイメージしづらい印象がありました。

そんな方へお薦めしたい、**株式会社ソルパック**さんのこの記事を紹介します。

本記事では、5つの記事で構成されておりハードウェアを主点に歴史や技術、様々な観点で学べます。タイトルの「IBMを説明する時に役立つ」の通り、IBMを説明する視点で読むことができます。すなわち、IBM製品を初めて触る人に限らず、**IBM製品を営業等で販売する方**にも向けられた記事です。

当時のマシンの画像や、どのように変化していったのかが分かる資料もあるので、時代の流れと当時の開発者の想いに触れながら、読み進められます。

この記事を読むと、今後のIBM製品に関する情報が理解しやすいと思いますので、是非とも読んでいただきたい！です。

***

### 古閑 さくら

https://qiita.com/koga39chan/items/d2618eabca22141ecde9

ここで、Qiita記事より紹介します。
日本IBMで働かれている**古閑 さくら**さん（@koga39chan）の記事です。

IBM i の持つ特徴4点を分かりやすくまとめてくださっています。

様々な記事に出会う中で、これらの特徴はたくさん見かけることだと思います。ですが本記事では、簡潔にまとめて、それでいて分かりやすい。初学者にとっては、とてもありがたい記事です。

他にも「IBM i 駆け出し日記」として、たくさん投稿されています。是非、ご自身の環境に合わせて様々な記事を覗いてみてください！

***

### ランサ・ジャパン
https://www.lansa.jp/what-is-ibm-i-useful-information-to-know/

～準備中～

***

### MONO-X
https://mono-x.com/blog/673/

～準備中～

***

## 応用編：実践的な開発や発展について

***

### i Magazine
https://www.imagazine.co.jp/imagazine-7071/

**i Magazine**は、IBM i の専門誌であり、雑誌だけでなくオンライン記事としてIBM i だけでなく、IBMを取り扱うすべての方に向けた情報も発信しています。

本記事では、「基礎知識編」から始まり「操作・運用編」「開発編」「ツール・ソリューション編」「情報ソース編」と、流れに沿って包括してくださっています。

内容は非常に多く、全てを理解するには多くの時間を要しますが、たくさんの資料とここでしか得られないような情報もあるので、ゆっくりと時間をかけて読むことをお薦めします。

また、本記事は現在更新中とのことです。更新された際には、本稿でもURLの更新やお知らせをいたします。新たな記事も、とても楽しみです！

***

### Mikio Sasaki
https://qiita.com/gomAnomalocaris/items/6669728f368e87c2d75e

Mikio Sasakiさん（@gomAnomalocaris）の記事の紹介です。

IBM i について調べ物をしていると、最終的にはMikio Sasakiさんに辿り着く。と言える程、記事の量が膨大で得られるものがたくさんあります。

何か分からない事やエラーなどが発生すれば、一度Mikio Sasakiさんの記事を探してみることをお薦めします！

***

### 山口 優
https://qiita.com/You_name_is_YU/items/3964849e7803c8eaf767

山口 優さん（@You_name_is_YU）の記事では、実際に手を動かしながら学べる記事となっており、環境の構築からコマンドについても学ぶことができます。

是非、一緒に手を動かしながら学んでいただきたいです。


***

### ITmedia
https://www.itmedia.co.jp/keywords/ibm.html

**ITmedia**では、IBMに関する最新の情報を確認できます。

基本的な情報のみならず、IBMの企業動向を学ぶことが重要になってきます。時間があれば、立ち寄って最新情報を入手してみてください。

***

### 公式ドキュメント
https://www.ibm.com/docs/ja/i/7.5

言わずもがな、ではあるとは思いますが公式ドキュメントです。

正確性に関してはこれが一番ではありますが、如何せん読みにくい。理解しづらい、でも気が付いたらここで探している自分がいる。

何とも不思議な魅力のあるドキュメント。根気強く探せば何があります。

***


# 更新
公開日：2025年4月4日（金）
更新日：2025年4月7日（月）
🌟 エージェントAIが変える未来の仕事：AI時代のキャリア戦略とは？



## **1️⃣ エージェントAIがもたらす未来の変革とは？**  

近年、AI技術の発展により、仕事のあり方が大きく変わろうとしています。中でも、**エージェントAI（Agent AI）** は、人間の業務をサポートするだけでなく、**自律的に意思決定を行い、業務を最適化する存在** へと進化しています。  

では、具体的にどのような変化が起こるのでしょうか？ そして、私たちはどのようにAI時代の仕事と向き合うべきなのでしょうか？ 本記事では、**エージェントAIの未来の仕事への影響、実際の業界活用事例、そしてAI時代に必要なスキルセット** について詳しく解説します。  

---

## **2️⃣ エージェントAIが変える未来の仕事**  

### **🔹 1. 自動化が進む業務と新たに生まれる職種**  

エージェントAIの進化により、単純なルーチン業務の多くがAIによって自動化されるようになります。  

#### **📌 AIが代替する可能性の高い職種**  
🔹 データ入力・処理業務（バックオフィス業務）  
🔹 一部のカスタマーサポート（FAQ対応、チャットボット）  
🔹 簡単な経理・会計業務  
🔹 物流・倉庫作業（自律型ロボットによるピッキング）  

こうした業務の自動化はすでに進行中であり、企業のコスト削減や業務効率化に大きく貢献しています。  

#### **📌 AI時代に求められる新しい職種**  
一方で、AIの導入により、新たな職種も誕生しています。例えば：  

✅ **AIエージェントのトレーナー**（AIモデルのチューニング、フィードバック提供）  
✅ **AI倫理・リスク管理専門家**（AIの公平性・倫理問題を監視）  
✅ **データ分析・AI活用コンサルタント**（企業のAI導入を支援）  
✅ **人間とAIの協働デザイン専門家**（UI/UXデザイン、ヒューマン・マシン・インタラクション設計）  

💡 **結論:**  
「AIに仕事を奪われる」ではなく、「AIと協働するスキルを持つこと」が今後のキャリア成功のカギ。  

---

### **🔹 2. エージェントAIの業界別活用事例**  

#### **🏥 医療業界：診断支援AI & バーチャルアシスタント**  
- IBM Watson Health や DeepMind の AI は、**医療画像診断** をサポートし、医師の診断精度を向上。  
- **エージェントAIによる遠隔医療アシスタント** が普及し、患者対応の効率が向上。  

#### **🏦 金融業界：AIトレーディング & カスタマーサポート**  
- **自律型AIトレーダー** が株式市場のデータをリアルタイムで分析し、最適な投資判断を支援。  
- AIチャットボットによる**24時間対応の顧客サポート**（例：Bank of America の Erica）。  

#### **📦 物流・製造業：ロボティクスとエージェントAIの融合**  
- AmazonのKivaロボットのような**自律型倉庫管理システム** により、作業効率が劇的に向上。  
- **AIエージェントが需給予測を最適化し、サプライチェーン全体を効率化。**  

💡 **結論:**  
エージェントAIの導入により、業界全体が変革し、**業務の効率化と新しい価値創造が可能** になる。  

---

## **3️⃣ AI時代に求められるスキルセットとは？**  

エージェントAIの普及が進む中で、「人間ならではの強み」を活かすスキルが求められています。  

### **📌 未来の仕事で求められる3つのスキル**  

1️⃣ **データリテラシー & AI理解**  
📊 **データを読み解く力、AIの基本知識（機械学習・統計）を身につける** ことが重要。  

2️⃣ **クリエイティブ思考 & 問題解決力**  
🤖 AIがルーチンワークをこなす一方で、**「問題を発見し、解決策を考える力」** が求められる。  

3️⃣ **ヒューマンスキル（EQ） & AIとの協働力**  
💬 **共感力、コミュニケーション力、リーダーシップ** が重要。AIが苦手な分野を補完する人材が重宝される。  

💡 **結論:**  
「AIを使いこなす人材」になれば、AI時代のキャリアでも大きな価値を発揮できる。  

---

## **4️⃣ まとめ：エージェントAIがもたらす未来と人間の役割**  

🎯 **エージェントAI時代における重要ポイント:**  
✅ **AIがルーチンワークを代行し、人間はより高度なタスクに集中できる**  
✅ **新たな職種が生まれ、AIと協働するスキルが求められる**  
✅ **AIリテラシー、創造力、コミュニケーション力がキャリア成功のカギ**  

🌟 **未来の仕事は、「AIに奪われる」のではなく、「AIと共に創る」時代へ！** 🚀