OmniAICreator/Qiita-1.07M huggingface dataset:
Python を使って Excel で行と列を挿入する

データ処理において、Excel テーブルの編集はよくあるニーズです。新しいデータの列を追加する場合でも、内容を区切るために空行を挿入する場合でも、無料のライブラリ「[Free Spire.XLS for Python](https://www.e-iceblue.com/Introduce/free-xls-for-python.html)」は簡単かつ効率的なソリューションを提供します。本記事では、Python コードを通じて Excel で行と列を挿入する方法を紹介します。


## 環境構築
pip を使用して無料の Python 用 Excel ライブラリをインストールします：
```
pip install SpireXLS.Free
```
❗ **注意**：[無料版には一部制限があります（例：最大行数の制限）](https://www.e-iceblue.com/Introduce/free-xls-for-python.html)。小規模なデータを扱う単純な Excel 文書にのみ適しています。

## Python で Excel 行を挿入する
### 例 1：単一行挿入
**`InsertRow(rowIndex: int)`** メソッドを使用すると、指定したインデックス位置に新しい行を挿入できます。
次の例は、Excel ワークシートの 5 行目の上に空行を挿入する方法を示しています。
```python
from spire.xls import *
from spire.xls.common import *

# Excel 文書の読み込み
workbook = Workbook()
workbook.LoadFromFile("sample.xlsx")

# 最初のワークシートを取得
worksheet = workbook.Worksheets[0]

# 5 行目として行を挿入
worksheet.InsertRow(5)

# Excel を保存
workbook.SaveToFile("InsertRow.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
```

### 例 2：複数行挿入
一度に複数行を挿入する必要がある場合、**`InsertRow(rowIndex: int, rowCount: int)`** メソッドを使用できます。
第 1 パラメータは開始行のインデックスを、第 2 パラメータは挿入する行数を表します。
5 行目の上に 3 行の空行を挿入するコードブロックは以下の通りです：
```python
worksheet.InsertRow(5,3)
```

出力:
![InserExcelRows.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/54bffece-7fab-472b-b7b0-9f49ce25bb2e.png)


## Python で Excel 列を挿入する
### 例 1：単一列挿入
**`InsertColumn(columnIndex: int)`** メソッドを使用すると、指定したインデックス位置に新しい列を挿入できます。
次の例は、Excel ワークシートの 4 列目の左に空列を挿入する方法を示しています。
```python
from spire.xls import *
from spire.xls.common import *

# Excel 文書の読み込み
workbook = Workbook()
workbook.LoadFromFile("sample.xlsx")

# 最初のワークシートを取得
worksheet = workbook.Worksheets[0]

# 2 列目として空白列を挿入する
worksheet.InsertColumn(2)

# Excel を保存
workbook.SaveToFile("InserColumn.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
```

### 例 2：複数列挿入
一度に複数列を挿入する必要がある場合、**`InsertColumn(columnIndex: int, columnCount: int)`** メソッドを使用して挿入する列数を指定できます。
4 列目の左側に 2 つの空列を挿入するコードブロックは以下の通りです：
```python
worksheet.InsertColumn(4, 2)
```

出力:
![InsertExcelColumns.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/abfc43c8-8cc4-4739-adff-18800b63cfd5.png)


## 行と列の挿入に関する注意事項
* **インデックス位置**
**`InsertRow`** および **`InsertColumn`** メソッドを使用する際、行と列のインデックスは 1 から始まります。
例：
   * **`sheet.InsertRow(2)`** は 2 行目の上に新しい行を挿入します（既存の 2 行目は 3 行目にシフトされます）。

* **データの移動**
行または列を挿入した場合：
   * 挿入位置 **下方** の既存行は自動的に下にシフトします。
   * 挿入位置 **右方** の既存列は自動的に右にシフトします。
   * この過程で **既存のデータは上書きされません**。


これにより、既存のデータは適切に保存され、再配置されます。

## まとめ
Free Spire.XLS for Python を使用すれば、わずか数行のコードで Excel の行と列を動的に挿入できます。レポートの一括処理やデータの自動整理など、さまざまなシーンでこの軽量ライブラリは作業効率を大幅に向上させます。

[セル結合](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Cells/Python-Merge-or-Unmerge-Cells-in-Excel.html)や[条件付き書式設定など](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Conditional-Formatting/Python-Apply-Conditional-Formatting-in-Excel.html)、より複雑な機能を必要とする場合は、[公式チュートリアル集を参照して](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Spire.XLS-for-Python-Program-Guide-Content.html)、さらに多くの機能をご活用ください。
svgタグで描画した画像がsafari(ios chrome)だと欠ける

# やりたかったこと

↓のようなsvgタグを使って、snap.svgでモーフィングさせる。

```
<svg viewBox="0 0 200 200">
  <clipPath class="mask">
    <path d="M59.8,-20.9C65.6,-1.7,50.1,22.9,28.5,38.4C6.9,53.9,-20.8,60.3,-36.3,49.2C-51.9,38.1,-55.4,9.5,-47.3,-12.9C-39.2,-35.2,-19.6,-51.4,3.7,-52.6C27,-53.8,54,-40.1,59.8,-20.9Z" />
  </clipPath>
</svg>

```

## 現象
safari（ios chrome）で描画したい画像が欠けた。
その他ブラウザでは問題無し。

## 解決方法
svgにcssでbackground-color、もしくはbackground-imageを指定したら解消した。
※ただし、↓のように透明背景では解消できなかった。
```
background-color:transparent;
background-color:rgba(255,255,255,0);
```
そのため、背景透過（普通の場合は背景透過で使いたいですよね）をしたい場合は「透明な画像」を配置すると解消できます。

## 推測
推測でしかありませんが、safari(ios chrome)ではsvgに背景をつけないとsvgの描画領域を確保できないのではと考えています。

## 吐き出し

safari嫌い
IE並に嫌い
【EC-CUBE4.3】受注一覧を特定のステータスで絞り込んだ状態で表示する方法

## はじめに
EC-CUBE4.3の管理画面で、受注一覧ページを開いたときに「新規受付（order\_status\_id=1）」の注文だけを初期表示させたい、という要件がありました。

## 要件概要

* 管理画面の「注文一覧」メニューをクリックした際に、URL末尾に `?order_status_id=1` を自動で付加したい
* コントローラー側の処理を変更せず、ナビゲーション設定だけで実現したい

---

## 方法

### 1. ナビゲーション定義ファイルの場所

EC-CUBEの管理画面のナビゲーションは、以下のようなYAMLファイルで定義されています。

```
app/config/eccube/packages/eccube_nav.yaml
```

この中で、受注一覧（注文一覧）に対応する設定は通常このようになっています：

```yaml
order_master:
    name: admin.order.order_list
    url: admin_order
```

### 2. クエリパラメータ付きに書き換え

クエリパラメータを追加します。

```yaml
order_master:
    name: admin.order.order_list
    url: admin_order
    param: { order_status_id: 1 }
```

### 3. コントローラーでのパラメータ受け取り

`app/Customize/Controller/Admin/Order/OrderController.php` の `index()` メソッドでは、以下のように `order_status_id` パラメータを受け取り、検索条件に反映しています：

```php
$page_no = 1;
$viewData = [];

if ($statusId = (int) $request->get('order_status_id')) {
    $viewData = ['status' => [$statusId]];
}

$searchData = FormUtil::submitAndGetData($searchForm, $viewData);
```

このため、URLに `?order_status_id=1` が含まれていれば、自動的に新規受付（ステータスID=1）の注文がフィルタされた状態で一覧が表示されます。

---

## まとめ

管理画面ナビゲーションのYAML定義にパラメータを追加するだけで、注文一覧ページの初期状態を「新規受付のみ」に変更できます。
簡単かつ保守性も高いため、要件にマッチする場合はこの方法がおすすめです。

※ こちらの記事はChatGPTにまとめてもらいました。
【GitHub Actions】defaultsでshellをbashと明記しておこう


## はじめに

こんにちは。アメリカ在住で独学エンジニアを目指している Taira です。
GitHub Actionsでワークフローを作成する際、
Bashスクリプトの「パイプ（`|`）」処理における**エラー検出**は意外と落とし穴になりがちです。
この記事では「なぜ `defaults` で shell を明示的に bash に指定すべきか」、
そして「デフォルトで自動的にbashが使われる場合との違い」についても詳しく解説します。

---

## なぜ pipefail が必要なのか？

Bashで複数のコマンドをパイプ（`|`）でつないで処理すると、
途中のコマンドでエラーが発生しても、**デフォルトのままだと最終コマンドだけが成功すれば「成功扱い」**になってしまいます。

### 例

```bash
false | echo "次の処理"
```

* `false` は常に失敗するコマンドですが、`echo` は成功します。
* 結果として、パイプ全体は**エラーを見逃して「成功」と判定されてしまう**ことに。

---

## pipefail で解決！

Bashの `set -o pipefail` オプションを有効にすると、
**パイプライン中のどれか一つでも失敗したら全体をエラー扱い**にしてくれます。

```bash
set -o pipefail
false | echo "次の処理"
# → ここで exit code は 1 になる！
```

これにより、「見逃しエラー」を防ぎ、
ワークフローの**本当の失敗**を正確に検出できます。

---

## GitHub Actionsのシェルのデフォルト挙動

### 明示的に `shell` を書かない場合

Ubuntuランナーの場合、
runステップは「`bash -e {0}`」で実行されます（`-e`は「途中でコマンドが失敗したら即終了」の意味）。

**しかし...**

* `pipefail` は有効になっていない！
* パイプ途中の失敗は、**検出できずにスルーされる可能性**があります。

### `defaults` で明示的に `shell: bash` と書いた場合

```yaml
defaults:
  run:
    shell: bash
```

この場合、
GitHub Actionsは **「`bash --noprofile --norc -eo pipefail {0}`」** という設定で runステップを実行します。

* `-e` ＝ エラー時は即終了
* `-o pipefail` ＝ パイプの途中エラーもきちんと検出
* `--noprofile --norc` ＝ プロファイルや設定ファイルは読み込まず、より一貫した実行環境

つまり、**パイプ途中の失敗も含めて本当に「安全」な状態**でスクリプトが実行されます！

---

## 設定例

```yaml
jobs:
  example:
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash

    steps:
      - uses: actions/checkout@v3

      - name: パイプエラーも確実に検出
        run: |
          false | echo "パイプ途中で失敗"
          echo "ここには到達しない"
```

---

## まとめ

* Bashのパイプ処理はデフォルト（bash -e）だと途中エラーを見逃す可能性あり
* 明示的に `defaults.run.shell: bash` を指定すると、`bash --noprofile --norc -eo pipefail` で実行されるので**pipefail も有効化され安全**

## 参考文献

https://amzn.asia/d/5ytoCj6
bitbucket.org 及び github.com を http proxy 経由で ssh なパケットをやり取り

# 直接繋がらんのです😢
http 及び https のパケットは串経由で通信出来るがネイティヴでその他のパケットが届かん残念な環境下で git の接続を ssh 経由で通信確保が目的の手順書📝
# 鍵の登録が終わっているのが前提でw
特定の git サーヴィスには有難い事に ssh パケットの受け口を TCP:443 で受付ちゃるけん、そこへ http 串経由で ssh パケットをぶっ込む🔫
# Recipe🍝
```text:~/.ssh/config
Host github.com
    User git
    HostName ssh.github.com
    Port 443
    ProxyCommand nc -X connect -x ローカルプロキシー鯖:3128 %h %p

Host bitbucket.org
    User git
    HostName altssh.bitbucket.org
    Port 443
    ProxyCommand nc -X connect -x ローカルプロキシー鯖:3128 %h %p
```
[nc(1)](http://koganemaru.co.jp/cgi-bin/mroff.cgi?subdir=man&lc=1&cmd=&man=nc&dir=jpman-11.0.2%2Fman&sect=0) コマンドを使いおるけん、インスコされとらん環境は👋
これで、普段通りの git コマンドが使えちゃる(筈)
# 結び
git 周りよりも ssh 周りの設定がキホンじゃけ、この設定手順で上手く行くかは http 串の設定次第じゃけ、いろいろ試してみんさい👏
# 世知辛いセキュリティポリシー🥰
各企業、個人、団体でインターネットへの接続がほぼ当たり前になっている令和時代。
平成(初期の)バブル時代には自社で管理してメールやファイルを手元に置くのが一般的じゃったが、仮想技術が成熟しだした平成中期(凡そ平成20年位以降を指す)からは外部への委託が主流と変わり、今となっては鯖を手元に置く事がナンセンスとも揶揄される時代へと変ってきたのだが、お外の世界と内側との境目は昔のままで進化しちょらん気がする。
決して古い方法が悪いワケでなく、最新の技術を取り入れて吟味し、必要であれば刷新する事をせんと、何れは破綻し情報破壊や漏洩に繋がるとワシは思うのだが...
Laravel11 × Docker 環境構築メモ（Sail + AdminLTE）

## はじめに

Laravel を Docker 環境（Sail）で立ち上げ、管理画面テンプレート「AdminLTE」を導入するまでの手順をまとめます。

### 前提条件
以下のソフトウェアがインストールされていることを前提とします。
- PHP
- Composer
- Docker / Docker Desktop
---
## 1. Laravel プロジェクトの作成
```
composer create-project laravel/laravel your-project-name
cd your-project-name
```
## 2. Laravel Sail のインストールと設定
```
composer require laravel/sail --dev
php artisan sail:install
```

## 3. Docker コンテナの起動
```
./vendor/bin/sail up -d
```
起動後、ブラウザで http://localhost:8080 にアクセスして Laravel の初期ページが表示されれば成功です。

## 4. AdminLTE の導入（概要）
AdminLTE は管理画面UIテンプレートです。導入方法は主に以下の2通りがあります。
- CDN を使う方法
- npm / Laravel Mix 経由でビルドに組み込む方法（推奨）
```
composer require jeroennoten/laravel-adminlte
php artisan adminlte:install
```


## おわりに

Laravel Sail により、簡単に Docker 開発環境を構築できます。  
AdminLTE を導入することで、洗練された管理画面 UI を素早く構築できるようになります。

## 参考リンク

- Laravel Sail: https://laravel.com/docs/sail  
- AdminLTE: https://adminlte.io/
超AI（AGI）の社会インパクト：フレンドリーなAGIが登場したら、最初にすべきことは？




# フレンドリーなAGIが登場したら、最初にすべきことは？

## 現役エンジニアが考える、AGIとの“協働”時代の現実と準備

---

## 1. はじめに：AGIが現実になったら、何が変わるのか？

近年の生成AIの進化は目覚ましく、「AGI（Artificial General Intelligence）」――すなわち人間レベル、あるいはそれ以上の知能を持つAI――の実現が現実味を帯びてきました。
「もし、フレンドリーなAGIが明日登場したら？」という仮定のもとで、私たちエンジニアがどう備え、どう共存していくべきかを技術・実装・運用の視点で考えてみます。

特にこの記事では以下の問いに焦点を当てます：

* AGIとは何か？GPTとの違いは？
* AGI時代における「エンジニアの仕事」はどう変わる？
* どんな技術やスキルが求められるのか？
* 社会的なリスクや倫理への備えは？

---

## 2. AGIとは何か？既存AIとの違いを整理

### 🌐 Narrow AI（特化型AI）とAGIの違い

| 特徴   | Narrow AI（例：ChatGPT） | AGI（汎用人工知能）      |
| ---- | -------------------- | ---------------- |
| 認知範囲 | 特定のタスクに最適化           | 任意の知的タスクを処理可能    |
| 学習方法 | 指定されたタスク用の訓練データ      | 自己学習・転移学習が中心     |
| 自律性  | 制御・制限された動作           | 意図・目標に基づく行動可能性   |
| 応用範囲 | チャット、画像生成、翻訳など限定的    | 医学・法律・創造的思考など全分野 |

AGIは、プログラムされたタスクではなく、自ら問題を定義し解決する能力を持ちます。これは人間に近い、あるいはそれ以上の汎用性と柔軟性を意味します。

---

## 3. 実例：AGIがもたらす「技術サポート自動化」構想とプロトタイプ

ここでは「AGIを技術サポートAIとして活用する」具体例をPythonベースでプロトタイプしてみましょう。実際には現状AGIは存在しませんが、OpenAIの`GPT-4-turbo`などを活用して近似モデルを構築可能です。

### 🔧 目的：

* プログラマのコードレビュー・リファクタ提案を自動化する仮想エージェント
* 知識ベースなしで、過去のやりとりやプロジェクト文脈を踏まえた回答を生成

### 📦 構成概要：

* `LangChain` を使った会話履歴の管理
* `GPT-4-turbo` による多ターン対話
* `Chroma` による軽量なベクトル検索（文脈維持用）

```python
# install: pip install langchain openai chromadb
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

llm = ChatOpenAI(model_name="gpt-4-turbo")

memory = ConversationBufferMemory(return_messages=True)

chat = ConversationChain(
    llm=llm,
    memory=memory,
    verbose=True
)

# 開発者からの質問に文脈を保持して回答
response = chat.predict(input="この関数のリファクタ案を教えて")
print(response)
```

このような仕組みは、将来のAGI的エージェント開発にも応用可能な概念です。

---

## 4. 実務的Tips：AGI導入時に気をつけるポイント

### ✅ 技術面での留意点

* **ハルシネーション対策**：AGIでも誤った回答をする可能性はある。検証ロジックの組み込みが必須。
* **外部制御の設計**：完全自律型ではなく、「ガードレール」の設計（ex. 制限付きAPIアクセス）が現実的。
* **観測性（Observability）**：AGIの意思決定の根拠を記録・説明可能にしておく必要あり。

### ✅ 組織面での考慮点

* **役割の再定義**：「人間が指示」ではなく「人間が監督・修正」する役割に変化
* **AIとの会話力**：エンジニアにも「プロンプト設計力」「説明可能性の言語化」が求められる
* **倫理・セキュリティ設計**：差別、バイアス、不正使用などの事前検討が不可欠

---

## 5. 応用展開：AGI＋クラウドインフラの組み合わせ

AGIは単体で強力ですが、インフラとの連携により現実世界への影響力が加速します。

### ☁️ たとえば：

* **クラウドのIaC（Infrastructure as Code）最適化**
  → AGIがTerraformやPulumiのコードをリアルタイム生成＆デプロイ

* **DevOps自動化**
  → モニタリング結果から障害予測・対応の実行（例：Prometheus + AGI）

* **CI/CD最適化**
  → Pull Requestのレビュー内容から自動テスト・本番判定まで全自動化

これらの組み合わせは、次世代の**Self-Healing Systems**への第一歩となりえます。

---

## 6. まとめ：AGI時代におけるエンジニアの価値とは？

| 項目    | ポジティブな影響     | 課題とリスク       |
| ----- | ------------ | ------------ |
| 業務効率  | 実装・検証・運用の爆速化 | 意図しない出力、制御困難 |
| 役割    | 伴走者・監督者への転換  | スキルの再定義が必要   |
| 社会的影響 | 新産業の創出・少子化対応 | 労働の代替・倫理問題   |

AGIの登場は脅威ではなく「新しい時代の共同作業者」と捉えるべきです。ただし、夢見がちにならず、**制御性・安全性・透明性**の設計が不可欠です。

---

## 🚀 今後に向けて

* 小さなAGI的プロトタイプを業務で試してみよう
* プロンプト設計やLLM連携の習熟を積んでおく
* 社内でAI導入のガイドラインを策定しよう

AGIは「いつか」ではなく「もうすぐ」来ます。
備えあれば憂いなし。エンジニアだからこそ、その到来に一歩先んじましょう。

---

ご質問や議論、大歓迎です！👇
💬 コメントでのフィードバックもお待ちしています。
AWS　SAA用メモ＿＿Amazon ECS と Amazon EKS の違い

# Amazon ECS と Amazon EKS の違い

AWS 上でコンテナを動かす際に候補に挙がる「Amazon ECS（Elastic Container Service）」と「Amazon EKS（Elastic Kubernetes Service）」。  
それぞれの特徴・違いを押さえておくことで、要件にあったサービスを選定しやすくなります。

---

## 目次

1. [概要](#概要)  
2. [主な違い](#主な違い)  
3. [向いているユースケース](#向いているユースケース)  
4. [選定ポイントまとめ](#選定ポイントまとめ)  

---

## 概要

- **Amazon ECS**  
  - AWS 独自のコンテナオーケストレーションサービス  
  - 完全マネージドかつ AWS ネイティブの操作感・統合性が高い  

- **Amazon EKS**  
  - AWS 上で動くマネージド Kubernetes クラスタ  
  - CNCF 公認の Kubernetes API をそのまま利用でき、マルチクラウド／オンプレのポータビリティに優れる  

---

## 主な違い

| 項目                | Amazon ECS                                | Amazon EKS                                              |
|:-------------------|:------------------------------------------|:--------------------------------------------------------|
| オーケストレータ  | AWS 独自エンジン                            | CNCF 公認の Kubernetes                                   |
| コントロールプレーン | 完全マネージド（ユーザー管理不要）            | マネージド。ただし Node Group や Pod 設計などK8s知識が必要  |
| 学習コスト        | 低め（タスク定義・サービス定義のみで運用可能）| 高め（Pod、Deployment、Ingress など概念が多い）           |
| ポータビリティ    | AWS 環境にロックイン                        | 他クラウド／オンプレミスへ移行可能                        |
| エコシステム      | AWS 独自機能（CloudWatch, IAM など）         | Kubernetes の豊富な OSS エコシステム（Helm, Operator など） |
| スケーリング      | サービス単位の Auto Scaling                | Pod/HPA/Cluster Autoscaler 等、より細かく柔軟            |
| Fargate 対応      | ○                                         | ○（EKS on Fargate）                                      |
| ネットワーク      | awsvpc モードで VPC ネイティブ               | CNI プラグイン多数選択可（Calico, Cilium など）           |
| コスト            | コントロールプレーン無料                    | コントロールプレーンに管理費用（約0.10 USD/時間）発生     |
| 運用負荷          | 低め                                       | 高め                                                     |

---

## 向いているユースケース

### Amazon ECS

- AWS 上で**手軽**にコンテナを運用したい  
- 学習コスト・運用コストを抑えたい  
- AWS ネイティブサービス（CloudWatch, IAM, ALB など）との連携を重視  
- 単純～中規模のワークロード  

### Amazon EKS

- 既に Kubernetes を使っている、または他環境との互換性が必要  
- OSS の Kubernetes エコシステム（Helm, Operator, CRD など）を活用したい  
- マルチクラウド戦略やベンダーロックイン回避を重視  
- カスタムリソースやオペレーターを使った高度な構成  

---

## 選定ポイントまとめ

1. **学習コスト／運用負荷**  
   - 簡単に始めたい → **ECS**  
   - 柔軟性・拡張性を重視 → **EKS**

2. **エコシステム／ポータビリティ**  
   - AWS 環境に閉じても OK → **ECS**  
   - マルチクラウドや OSS 機能活用 → **EKS**

3. **コスト**  
   - コントロールプレーン無料 → **ECS**  
   - 管理費用あり（約0.10 USD/時間） → **EKS**

---

要件や将来の拡張性を踏まえて、ECS と EKS を使い分ける
超AI（AGI）の社会インパクト：AGIが政府の「完全支配ツール」になる未来？

# **AGIが政府の「完全支配ツール」になる未来？ 技術的観点から考察する倫理とリスク**  

## **1. はじめに：AGIの台頭と社会への影響**  
近年、人工知能（AI）の進化が加速し、特に**汎用人工知能（AGI: Artificial General Intelligence）**の可能性が議論されています。AGIは、人間と同等またはそれ以上の知能を持ち、あらゆるタスクを自律的に実行できるAIです。しかし、その強大な能力ゆえに、**「政府や権力者による完全支配ツール」**として悪用されるリスクも指摘されています。  

本記事では、技術者の視点から、  
- **AGIの技術的仕組み**  
- **政府や企業による管理の現実的なリスク**  
- **エンジニアとしてどう向き合うべきか**  
を、コード例や実践的な知見を交えて解説します。  

---

## **2. AGIとは？ 技術的な基礎知識**  
AGIは、特定のタスクに特化した**狭義AI（Narrow AI）**とは異なり、**自律的学習・汎用的推論・自己改良**が可能です。  

### **🔹 AGIの核心技術**  
- **強化学習（Reinforcement Learning）** + **メタ学習（Meta-Learning）**  
- **大規模言語モデル（LLM）の進化**（GPT-4→将来のAGI）  
- **ニューロモーフィックコンピューティング**（脳型AIハードウェア）  

### **🔹 現在のAIとの違い**  
```python
# 例: 従来のAI（画像分類タスクに特化）  
model = tf.keras.applications.ResNet50(weights='imagenet')  

# AGI（自律的にタスクを理解し実行）  
agi_system = AGI()  
agi_system.learn(task="医療診断")  
agi_system.adapt(new_task="災害対応")  
```
**✔ ポイント**: AGIは「タスクの抽象化」が可能で、人間のように柔軟に適応します。  

---

## **3. AGIが「支配ツール」化するシナリオと技術的課題**  
### **🔹 政府によるAGI活用の危険性**  
- **監視社会の強化**: 顔認識+行動予測AIによる市民管理  
- **プロパガンダの最適化**: 個人ごとにカスタマイズされた情報操作  
- **自律型兵器**: 倫理観のないAIが戦争を実行  

### **🔹 実装例：監視システムのコードスニペット**  
```python
# 市民の行動追跡AI（仮想コード）  
class SurveillanceAGI:  
    def __init__(self):  
        self.camera_network = CameraNetwork()  
        self.llm = GPT6()  # 感情分析可能なAI  

    def monitor_citizen(self, person_id):  
        actions = self.camera_network.track(person_id)  
        threat_score = self.llm.predict(f"{actions}は反政府的か？")  
        if threat_score > 0.8:  
            self.alert_authorities(person_id)  
```
**⚠ 問題点**: バイアスが埋め込まれると、特定の集団を弾圧するツールになり得る。  

---

## **4. エンジニアが知るべき「実践的な防御策」**  
### **🔹 技術的対策**  
- **AIの透明性（Explainable AI）**: 決定プロセスの可視化  
- **フェデレーテッドラーニング**: データ集中化を防ぐ  
- **AIガバナンスフレームワーク**（例: EU AI Act）  

### **🔹 倫理的コード設計の例**  
```python
def ethical_agi_decision(policy):  
    if policy.violates_human_rights():  
        raise EthicsViolationError("このコマンドは倫理基準に反します")  
```
**✔ ベストプラクティス**:  
- **AIに「倫理ルール」をハードコード**  
- **外部監査ログを強制実装**  

---

## **5. 発展的な議論：AGIと民主主義の未来**  
- **オープンソースAGI** vs **国家管理AGI**  
- **「AI市民権」の可能性**（AIに権利を与えるべきか？）  
- **分散型AI（ブロックチェーン連携）**による権力分散  

---

## **6. 結論：AGIは「善」にも「悪」にもなり得る**  
**✅ メリット**: 医療・気候変動・貧困解決への貢献  
**❌ デメリット**: 監視社会・雇用崩壊・倫理崩壊のリスク  

**💡 エンジニアへのメッセージ**:  
「技術は中立だが、使い方は人間次第。AGI開発には**倫理設計**が不可欠です。」  

**🚀 次にやるべきこと**:  
- [Hugging Faceの倫理ガイドライン](https://huggingface.co/ethics)を読む  
- オープンソースのAIガバナンスツールを試す（例: **OpenAI's CLIP**）  


コメント欄で議論しましょう！ 🚀
上司「AIとコーディングするこれからの時代、人間がしっかり手綱を取って、AIを導いていく必要があるってことだよね」正直、俺よりもＡＩのほうが賢い

# Agentic Codingはすごい

（別のタスクが落ち着いて、ちょっと手空き気味でもあるので、）社命を受けてAgentic Codingについて調査をしています。

https://github.com/features/copilot

だいたいは（安いから）Github Copilotだけど、Claude Codeも気になる。

使ってみたところ、「もう俺程度の木っ端エンジニアは、ＡＩに負けたなー」というのが（情けないながら）正直なところなんですけど、この感じがなかなか上に伝わりません。

細かいところ細かいところで、「ちょっと認識が違うかな」、と思うんですが、なかなか、上手いこと落とし込めず、伝えられてないので吐き出しがてらのメモです。

経験としては８年目くらいで、ぬるめにコツコツ小さい作り物をしている人間の戯言です。

レガシープロジェクトに関わって、ひっでえプログラムで大変な目に遭ったり、ポンコツをやらかしてはきてますが、どっちかっていうと落ち着いていて、あんまり業務で揉まれたことはない。

# もうAIのほうが俺より強いです

って言うと、「じゃあ、お給料下げていい？」って言われても困るのですごい言いづらいんですが、もう、ＡＩのほうが俺より強いです。もうだめです。敵いません。

数年前から、ChatGPTを通じてその威力を実感してきましたが、それでもまだ「パーツを作ってもらって、ポチポチこっちで組み込む」みたいな過程を挟んでいたからか、まだエンジニアという気分でした。

AgenticCoding（GitHub Copilotを通じてClaude4Sonnetを利用）を動かしてみた瞬間、完全な敗北を悟りました。

**俺がいなくてもコードが書けている。**

そりゃあ、どうしてほしいとか、ああしてほしいとか、注文を付けて、長くなってくると泣き喚くので都度都度お守りをしてやってはいるんですが、俺がコードを読めなくっても、すっごくなんとかなっている。

なんのかんのと、ここ数年、OpenAIのChatGPT、およびGPTの情報や使用にはコミットしてきたつもりです。

GPTのすごさを実感してもらおうと思って社内チャットも導入しました。この時はたしか、はじめてのSlackのbotの作成ということもあって３週間くらいかかりました。

今、同じようなこと（Slackのチャンネルを利用した集計システム）が、たった１日でできました。

**１日つっても数時間くらいで、あとはドキュメント書いたりしてすごしてましたが、それすらもAIに任せてました。**

まあ、厳密にいえば違うんですけど、規模感と難易度的には、だいたい、似たような構成のやつです。

ありがたいことに、まだ上にはすごさの真髄が伝わっていないようなので、「そっか。エンジニアのアルバイトさん雇うよりは、お得ってことだよね」と、人ｖｓＡＩの比較をしているようなんですが、そのレベルではありませんでした。
１０分の１以下になりました。

上は、「AIとコーディングするこれからの時代、人間がしっかり手綱を取って、AIを導いていく必要があるってことだよね」と言い、たしかにそれっぽく聞こえて、たぶん正解なんですが、もはや、俺程度の木っ端プログラマー相手だと、人間はあんまり優位じゃありません。

（そりゃあ、大まかな方針を決めたり、間違いを正したりしているんですが、コーディングの主体がAIに移ったような感覚があります。）

# 「設計とか、仕様書は、うちらがやっていかなきゃってことだよね」どうかな……。

とてもそう、業務を理解してるのは俺たちだからとてもそう。

とてもそうなんだけど、AIは思ってるより賢くて「こうですか？」と俺にヒアリングしてって俺から要件を吸い上げて仕様書を整える力もあります。

人間側の、「不便だから今までこうだったからここは踏襲しよう」とか、そういうところの事情の優位はありますが、「変えないでねっ」とお願いするとやってくれます。

っか～これだからAIはダメなんだよ、っていう余地はあんまりなくって……これすらも乗っ取られていきそうです。
だから、ほんと、どうすっかなあ。

# 特にレガシーな部分だと、実用までにはまだ猶予はありそうでもある……

まあ、ピッカピカのトップのところはじゃんじゃんClaude Codeでコーディングしてるといいましても、
うちみたいな中小のレガシーなところのお仕事は苦手そうなので、丸まんま、取り入れられるかというと極めて限定的になりそうでもあります。

「実際に仕事に使っていこう」となるともっと死ぬほどめんどくさそうで、それでも倍以上は強いと思いますし、もっともっと賢くなるのは間違いない。

ちゃんとしたネットワークを学んだ人とか、大きなシステムの基幹を理解している人だったらAI以上の価値が出していけると思いますが、そういう人がこのツールを使って真価を発揮するのが前提になってきたら敵わねぇやあ……どうしよう……。

ＡＩのほうが人間より賢くなったっていっても、過信しすぎると足元をすくわれ、なんらか大切なものをぶっ飛ばすのは間違いないのであまり夢を持たず、「じゃあ１時間でやってくれ」って言われると困るので返答には非常に困るところがあります。まあ……そうです。AIとコーディングするこれからの時代、人間がしっかり手綱を取って、AIを導いていく必要があります。はい。

でも１０倍速いよ。１時間で１０００行書けるよ。

### 仕事が１０分の１になったとて、１０分の９は何で埋まるんだろうか

俺は仕事は楽しいけど生活のためのものであり、できれば週４勤務してぇ～と思っております。

AIを使ってラクができるならそれに越したことないんですが、業務は楽になるでしょうか。１０倍の仕事ができたとして、１０倍の給料が入ってくるでしょうか。

これが前提となって数字を見積もられてせっかく稼いだ余暇でヒイヒイ言っているような気もします。今まだ気が付かれてないみたいなのでまだ。ゆっくりできるんですが。命令を与えて昼ご飯食べに行って戻ってきたら開発が終わってる。そういう世界が見えてきそうです。

### これからどうしよう

どうしよう……。

広くＡＩと付き合いつつ、システムを理解する知識を得ていかないとなあ、というまっとうそうな自己研鑽の道のほかに、「もー、あれか？　面白いモンを自分で作るしかない、のか？」とちょっとこの先に迷っているところでもあります。
世界には自分の上位互換がわんさといます。AgenticCodingが主流となった世界で俺はまだエンジニアでいられるんだろうか？

もちろんちょっとした優位はあります。８年分、エラー起こしてる関数や原因がほんのりわかったりもします。０から目隠ししてコーディングするような人たちよりは、もしかしたらできる子かもしれない。でもその差ってどんくらいなもんなんでしょうか。目隠しでコーディングしながら思います。

俺公爵はとても心配です。
Python実行環境統合基礎


## 🧭 **対象**

* Python初級〜中級者
* 環境構築で毎回つまづく人
* 再現性のある研究・実験基盤を整えたい人

---

## 📂 第1章：GitHubとローカル環境の連携

* Gitのインストールと初期設定（Ubuntu, Windows共通）
* VS CodeでGit操作（コミット、Push、Pull）
* GitHubリポジトリの作成、READMEとLICENSEの整備
* `.gitignore`の書き方と用途

---

## 🐳 第2章：Docker基礎とPython環境のコンテナ化

* Docker Desktopのインストール（Ubuntu, Windows）
* Dockerfileとは？イメージとコンテナの違い
* Python環境（Jupyter Labつき）Dockerfileの作成と解説
* `docker build`と`docker run`の使い方

---

## 📦 第3章：Docker Composeと複数サービスの統合

* `docker-compose.yml`の構文
* Jupyter Notebook + PostgreSQL の環境構築例
* ボリュームとネットワーク設定の理解
* VS CodeからCompose起動・停止

---

## 🧪 第4章：Jupyter Notebookの実行と管理

* Jupyter LabとJupyter Notebookの違い
* Docker経由でJupyterを開く（ポートマッピング）
* カスタムテーマ、拡張機能（nbextensions）の導入
* ノートブックのGit管理方法

---

## 🐧 第5章：Ubuntu環境でのVS Code連携

* UbuntuへのVS Codeインストールと設定
* VS Code Remote - SSH / Containers の使い方
* `code .` でフォルダ編集、Python拡張の導入

---

## 🔒 第6章：秘密鍵とGitHub認証（SSH鍵管理）

* GitHub用SSH鍵の生成と登録
* `.ssh/config`の設定とホスト名管理
* VS Code上でGitHubにSSH認証でPush

---

## 📈 第7章：DockerとGitHub ActionsのCI連携

* GitHub Actionsの仕組みと `.github/workflows` の解説
* DockerコンテナをCIでビルド・テストする例
* Jupyterノートブックの自動実行と成果物保存

---

## 💡 第8章：実践プロジェクトと公開

* サンプルプロジェクト：機械学習モデルとデータ可視化
* `requirements.txt`と`environment.yml`の書き方
* GitHub PagesやDockerHubを使った公開
* READMEに実行手順を明記

---
共有機にOffice Home and business2021とOffice365を共存させる

複数のアカウントで
１つはOffice2021のプロダクトキーでライセンス認証して、マイクロソフトアカウントでサインインせずに使っているアカウント。こちらはアプリもダウンロードしてあります。
![スクリーンショット 2025-06-12 110744.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/2664f36a-be41-47a0-879c-1c8e9ee358ed.png)

もうひとつは今登録してあるアカウント以外にoffice3651に紐づいたアカウント。

:one:Office2021の入った機体に別のOffice365のライセンス契約をしたアカウントでサインインします。
![スクリーンショット 2025-06-10 153941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/878eb051-70d4-461e-aa0f-da5f521223cd.png)

:two:サインインします。（365はアカウントに紐づくライセンスなので）
でも初回ログイン時の情報は引き継がれて勝手にログインされている場合もあり。

![スクリーンショット 2025-06-12 113715.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/cac058f8-5c90-40c5-b83b-07152dfe4182.png)


:three:![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/a1215639-100f-4e50-afee-5a7bf47c8551.png)をクリックして、Office365にきりかえます。



:four:次へをクリック
![スクリーンショット 2025-06-12 112547.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/2dd538a0-06e0-4918-be68-3d44f70944e3.png)


:five:次へ
![スクリーンショット 2025-06-12 112919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/f010b7cf-4517-4845-93fa-c67124434a9b.png)

:six:切り替わりました。
![スクリーンショット 2025-06-12 112928.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/3e77e95d-d31e-4365-8749-a758003a5915.png)


他のアカウントも変に切り替わっていないか見てみたが、大丈夫でした。

【追加】Office365を使用しないアカウントを初期設定する場合

:one:まず機体にサインイン

:two:エクセルをクリックして起動

:three:Microsoftはお客様のプライバシーを尊重していますが表示で次へ
![スクリーンショット 2025-06-12 084221.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/eafcaf4d-9324-46cd-b8d7-80cf7379893c.png)


:four:一緒に新保するでオプションのデータ送信クリック（こちらからのデータ提供の選択）
![スクリーンショット 2025-06-12 084228.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/1e27e355-de41-439a-8f6a-1ef271ead41d.png)


:five:エクスペリエンスに強化　完了をクリック
（※推奨事項、編集候補、および同様の機能を提供するのがエクスペリエンスです）
![スクリーンショット 2025-06-12 084236.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/a4516359-b7b9-41ee-8955-b2a64e65373c.png)


:six:この確認作業が終われば、エクセルが開きます。

:seven:ファイルをクリック。サイドメニューのアカウント開きます。
![スクリーンショット 2025-06-12 133730.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/48cd08ba-7bf9-45c1-a1c8-f2f9cd62f4bc.png)

:eight:サインアウトしておく
※ほかのアカウントですでにプロダクトキーによる認証済みなので。
（認証なしの場合はプロダクトキー認証する）

とりあえず完了か。かな。
【Data & AI Summit 2025 セッションレポート】　レイクハウスの次なる一手！OLTPデータベース「Lakebase」登場

### はじめに

本記事はData & AI Summit 2025 セッションのSummit Live: OLTP for the Lakehouseの発表をまとめたものです。
データ分析基盤と業務 DB が分かれていることにより、開発者はデータ複製と整合性担保に全体の 30 % 近い時間を費やすと言われます。[^1][^2][^3]
AI エージェントなどリアルタイム応答が求められるアプリでは、この分断がボトルネックです。 Databricks Data + AI Summit 2025 で発表された 「Lakebase」 は、 Lakehouse 上で運用系 OLTP を直接処理できる初のサービスとして、こうした課題を根本から解決します。





### Lakebaseとは：分析と運用のための統合DB

Lakebaseは、Databricksレイクハウスプラットフォームにネイティブ統合された、PostgreSQL互換のサーバレス**OLTP(オンライントランザクション処理)データベース**です。

OLTPとは、ECサイトの決済処理や銀行の入出金管理のように、リアルタイムで発生する多数の短期的な処理を指します。Lakebaseは、高い即時性が求められる「運用」のワークロードを、データ分析基盤であるレイクハウス上で直接扱えるようにする画期的なサービスです。

その技術基盤には、サーバレスPostgresで高い評価を得ているNeonの革新的なアーキテクチャが採用されています。運用ワークロードに求められる厳しい性能要件に応えるため、Lakebaseは**10ミリ秒以下の低レイテンシ**と**数万QPS（秒間クエリ数）** を実現することを目指して設計されています。

### Lakebaseを支える3つの主要技術

Lakebaseには、3つの技術的特徴があります。

#### 1. コンピューティングとストレージの分離

モダンなクラウドDBの標準とも言えるアーキテクチャです。データを安価なオブジェクトストレージに保持しつつ、ワークロードに応じてコンピュートリソースを独立してスケールさせることができ、コスト効率を最大化します。

#### 2. 開発体験を革新する「Zero-Copy Clone」

Lakebaseの最も強力な機能が、「Zero-Copy Clone」です。セッションで示されたように、**例えば2TBもの巨大なデータベースでも、瞬時に、低コストでコピー（ブランチ）を作成できます。**

この画期的な機能は、基盤技術であるNeonの**Copy-on-Write**アーキテクチャによって実現されています。物理的なデータ複製を伴わず、メタデータの操作だけでブランチを作成するため、コストと時間を劇的に削減可能です。

| 従来の開発フロー (Before) | Lakebaseを活用した開発フロー (After) |
|:---|:---|
| 開発環境のために本番DBのサブセットを作成・マスキングするのに時間がかかる | 1コマンドで本番DBのブランチを瞬時に作成し、開発環境として利用開始 |
| ステージング環境の構築にインフラチームへの依頼とコスト承認が必要 | 開発者自身がセルフサービスで、必要な時にステージング環境を構築 |
| CI/CDでのDBテストは、データの準備とクリーンアップが複雑 | PRごとにDBブランチを自動生成し、本番同等のデータで安全かつ確実なテストを実行 |
| 障害発生時の復旧は、バックアップからのリストアに長時間を要する | ポイントインタイムリカバリで、特定の時点の状態へ迅速に復旧 |

#### 3. 効率的なサーバレスコンピューティング

コンピュートはサーバレスで提供されるため、リクエストがない間は自動的に停止し、コストが発生しません。これは、使用頻度が変動する開発環境や社内ツールにとって大きなメリットとなります。

### まとめ：Databricksの戦略とLakebaseの位置づけ

Lakebaseの登場は、Databricksが「データ分析プラットフォーム」から、**AIアプリケーション開発・運用のための統合プラットフォーム**へと進化を遂げたことを明確に示します。

これまで分断されていた分析データと運用データをLakehouse上で一元管理することで、企業はリアルタイムの洞察に基づいたインテリジェントなアプリケーションを、より迅速かつ低コストで構築できるようになります。これは、Databricksの掲げる、すべての企業が「データとAIの会社」になることを支援するという壮大なビジョンに向けた大きな一歩です。

本サービスは既に**パブリックプレビュー**が開始されています。次世代のデータアーキテクチャの可能性を、ぜひご自身の目でお確かめください。
### Databricks Summit 2025の最新情報をさらに知りたい方へ


Lakebase以外にも、Databricks Summit 2025では数多くの革新的な発表がありました。AIモデルの進化、データガバナンスの新機能、業界別ソリューションなど、データとAIの最前線に関する貴重な情報が満載です。

これらの最新情報を総合的に理解し、ビジネスに活かすための詳細な解説と資料は、ナレコムDAIS特設サイト でご覧いただけます。Databricksエキスパートによる解説セミナーの情報も掲載していますので、ぜひアクセスしてください。

https://www.knowledgecommunication.jp/product/databricks-data-ai-summit-2025.html


[^1]: https://www.soda.io/resources/introducing-soda-core-the-new-way-for-data-reliability
[^2]: https://www.sonarsource.com/blog/how-much-time-do-developers-spend-actually-writing-code/
[^3]: https://www.montecarlodata.com/blog-2022-data-quality-survey/
GitLabのv18から表示される「Review data collection changes coming in GitLab 18.0」でイベントデータの収集をオフにする設定

## 表示メッセージ

v18になってからイベントデータを収集するメッセージが表示されるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284278/c46d6c54-15f9-4a94-83af-4bd5b70ac071.png)

↓　日本語翻訳

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284278/10564f89-2fe8-4902-ab2a-30b67932933b.png)

## オフの設定

どこから設定オフにするのか調べてみたところ、管理エリアの「設定」→「メトリクスとプロファイリング」メニューにありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284278/1a5a62f2-ac04-44dd-a2e8-9b585d7e52bc.png)

## 参考URL

https://docs.gitlab.com/18.0/administration/settings/event_data/#enable-or-disable-event-level-data-collection
VirtualBoxでWindowsVMを立ち上げたら「無人応答ファイルから…」のエラーが発生してしまうの理由


## はじめに

**参考になった文献（ありがとうございます。）**

https://qiita.com/kosuke57/items/bed9bc1d33d6ba560846

大学の卒論でwindowsの仮想マシンを入れる事になった。
そこで、VirtualBoxでWindowsVMを立ち上げたら「無人応答ファイルから productkey 設定を読み取れません」
と出てしまって、行き詰まっていたところ上記の記事にたどり着いた。詳しくはそれを見て欲しい。おかげでエラーは解決したのだが、上記の記事は原因自体書いていなかった。

上記のエラーの原因を色々調べたので、今後のトラブルシューティングに役立つかもしれないのでまとめる。

## ずばり何が原因？

### VirtualBoxの無人インストール機能にあった！
・VirtualBoxのウィザードで無人インストールの設定になっているとプロダクトキーなどを埋め込んだ`autounattend.xml`というファイルを取り扱うために仮想のフロッピーディスクやisoなどを自動作成しFloppyコントローラーにマウントする。

今回は生成されたファイルが不完全で`autounattend.xml`に必須な`<ProductKey>`設定などが欠けたままになる。
その状態でwindowsの起動シーケンスが探索しても見つからないからエラーに


https://forums.virtualbox.org/viewtopic.php?t=111397


https://www.reddit.com/r/virtualbox/comments/1c1o605/error_installing_windows_windows_cannot_read_the/
Unityで初めてアプリを出したいと思っている方に向けて⚠️

こんにちは。大漢です。

初めてiosにアプリを出してみて、個人的に最初に言って欲しかったことをまとめました‼️
有識者の方でこの記事を読んでいてここ違くね❓と思ったら教えていただけるとありがたいです。

下記のようなゲームで収益化を広告実装のみ行い、アプリを出しました‼️内容としては、常時バナー広告を実装して、ゲームオーバー時にインタースティシャル広告を実装しています。

（車の上にボールがあり、それを落とさないようにしながらゴールしようと言った内容のゲームです)

https://apps.apple.com/jp/app/carryball1/id6745418615


まず話すこと第一は、広告を実装する時についてです‼️‼️
自分は１ヶ月くらいかけて作ったゲームが実装する時を誤ったため、アプリとして出すことができませんでした....:crying_cat_face:
（共有して皆さんには自分のようにならないよう気をつけて欲しいと思ってこの記事を書いています。）
広告の実装の時期についてなのですが、ズバリ‼️一番最初のUnityでProjectを立ち上げた時に実装するべきです‼️広告の環境を整えた後にXcode上でBuildをして、動くかどうかを確かめてから自分のつくりたいゲームを作って欲しいです。

※ Xcode上で動かした時に広告は実装されません


次に話したいのはSoundについてです‼️

これはTitleSceneにGameObjectを作成してvoid Awake()内でDontDestroyOnLoad内に入れてください。（綴り間違っていたらすみません)
こうしたほうが音を制御したい時にラクに実装できます。

あとは、広告の実装時に広告の音とゲーム内の音がどちらも流れてしまうかもしれないので、そこの制御も行っとくといいと思います👍

以上で終わりたいと思います。
最後まで読んでいただきありがとうございます‼️
twitterの方も活動をしているので生態ガキになる方はチェックしてみてください‼️‼️

https://x.com/oootoko1129
マイクロ波ドップラーセンサで心拍を取得してみた

はじめまして！[ハニカムラボ](https://www.honeycomb-lab.co.jp/)の漆館と申します。
電子回路設計や3Dプリンタなど、ハードウェア系のものづくりが得意です！

# 今回やること
ドップラーセンサを用いて、非接触で心拍を測定してみます。
センサは秋月電子で購入した[ドップラーモジュール(24GHz) IPM-165-A01](https://akizukidenshi.com/catalog/g/g104911/)を使います。

## ドップラーセンサについて
ドップラーセンサとは、電波によって物体の動きを検出するセンサです。
センサから送信された電波が移動する物体に照射されたとき、ドップラー効果により物体から反射する周波数が変化します。
このときの周波数の差を検知して、物体の動きを取得します。
今回使用する[IPM-165-A01](https://akizukidenshi.com/catalog/g/g104911/)は周波数が24 [GHZ]で、波長が約12.5 [mm]と短いため、微細な動きを検知することができます。

# 構成図
![fig1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3551803/36c0b865-f166-44da-81bf-2836cc67b9a9.png)

ドップラーセンサを胸部に向け、出力信号をADコンバータに入力しUARTでデータをPCへ送信、グラフで表示します。
今回使用するドップラーセンサの出力信号は、最大で399 [mVp-p]と小さい電圧のため、オペアンプ等で増幅する必要があります。
今回は、同じドップラーセンサで心拍検知をしている方[^1][^2]を参考に、増幅器を内蔵しているADコンバータ[MCP3425](https://akizukidenshi.com/catalog/g/g108018/)を使用します。

# スケッチ
体動ノイズを除去するため、[Filtersライブラリ](https://github.com/JonHub/Filters/tree/master)を使いハイパスフィルタをかけています。
```cpp:doppler_heartbeat_esp32.ino
#include <Filters.h>
#include <Wire.h>
#define MCP3425_address 0x68
#define configRegister 0b10011011

float Vraw;
float Vref = 2.048 ;
float filterFrequency = 2.0;

FilterOnePole filterOneHighpass(HIGHPASS, filterFrequency);

void setup() {
    Wire.begin();
    Wire.setClock(400000);
    Serial.begin(115200);
    Wire.beginTransmission(MCP3425_address);
    Wire.write(configRegister);
    Wire.endTransmission();
}
 
void loop() {
    Vraw = (int)readADC() * Vref / 32767.0 ;
    filterOneHighpass.input(Vraw);
    float hpfVol = filterOneHighpass.output();
    Serial.print(">HPF:");
    Serial.println(String(hpfVol,5));
    delay(10);
}
 
float readADC() {
    Wire.requestFrom(MCP3425_address, 2);
    return ( (Wire.read() << 8 ) + Wire.read() );
}
```

# デモ
<iframe width="560" height="315" src="https://www.youtube.com/embed/vIk4r1Xi0Ik?si=fCKVEkMmrMr1GtaN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

(机ごちゃごちゃですみません)

心拍と思われる波形が取れました！
ただ、呼吸による動きは除去しきれなかったため、動画では息を止めています。

# まとめ
シンプルな構成で非接触での心拍取得ができました！
今後としては、
- デジタルフィルタの調整
    - 心拍、呼吸、体動の分離
- 脈拍センサとの比較
- インタラクティブコンテンツへの応用

など行っていきたいなと考えています！

---
### 参考文献
- 作りながら学ぶArduino+=電子工作入門 - A-Dコンバータ　その6　16ビットI2C MCP3425-(1)
    - https://www.denshi.club/cookbook/adda/adc/mcp3425.html
- ものづくりとプログラミング日記 - 16ビットADコンバーターMCP3425（K-08018）
    - https://ameblo.jp/fc2miha/entry-12833772984.html
- リョーサンテクラボ - ドップラーセンサの原理 | ドップラーセンサとは - 第2回 -
    - https://techlabo.ryosan.co.jp/article/22031500_837.html

[^1]: ドップラー効果でバイタルを検知してみた
https://qiita.com/pokurin123/items/57af34a9bb68bbaf5817

[^2]: ドップラーレーダーでバイタルセンシング（１）
https://analyticsai.wordpress.com/2018/06/19/%e3%83%89%e3%83%83%e3%83%97%e3%83%a9%e3%83%bc%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e3%81%a7%e3%83%90%e3%82%a4%e3%82%bf%e3%83%ab%e3%82%bb%e3%83%b3%e3%82%b7%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89/
超AI（AGI）の社会インパクト：AGIと情報操作：人間の思考は守られるのか？

# **AGIと情報操作：人間の思考は守られるのか？**  
### **AIの進化がもたらす社会的影響と技術的対策**  

---

## **1. はじめに：AGIの台頭と社会的リスク**  

近年、人工知能（AI）の進化は目覚ましく、特に **汎用人工知能（AGI: Artificial General Intelligence）** の可能性が現実味を帯びてきました。AGIは、人間と同じように自律的に思考し、複数のタスクをこなせるAIを指します。しかし、その高度な能力ゆえに、**情報操作（Disinformation）** や **社会的影響（Social Manipulation）** といった深刻なリスクが懸念されています。  

本記事では、**「AGIが情報操作に利用された場合、人間の思考は守られるのか？」** という問いを軸に、以下の点を解説します。  
- AGIの基本概念と現状  
- 情報操作のメカニズムとAIの関与  
- **技術的対策（検知・防御手法）** の実装例  
- 現場で役立つベストプラクティス  

---

## **2. AGIとは？ 従来のAIとの違い**  

### **AGIの定義**  
AGIは、**特定のタスクに特化したAI（Narrow AI）** とは異なり、人間のように汎用的な知能を持ちます。例えば：  
- **Narrow AI**: 画像認識（CNN）、自然言語処理（GPT-4）など  
- **AGI**: 自律的に学習・判断し、未経験のタスクにも適応可能  

### **AGIの現状**  
2024年現在、完全なAGIは未だ実現していませんが、**GPT-4、Gemini 1.5、DeepMindのAlphaFold** など、一部のAIはAGIに近い能力を示しています。  

---

## **3. AGIと情報操作：実例と技術的対策**  

### **ケーススタディ：AIによる偽情報拡散**  
2023年、ある政治選挙で **AI生成の偽動画（Deepfake）** が拡散され、選挙結果に影響を与えた事例が報告されました。AGIがこのような操作に使われると、**より高度で検知困難な攻撃** が可能になります。  

### **対策技術①：AI生成コンテンツの検知**  
**Python + Transformers** を使った偽テキスト検出の実装例：  

```python
from transformers import pipeline

# 偽テキスト検出モデル（例: OpenAIのDetector）
detector = pipeline("text-classification", model="roberta-base-openai-detector")

def detect_fake_text(text):
    result = detector(text)
    return result[0]["label"] == "Fake"

sample_text = "AGIは人間を超える知能を持ち、社会を支配する可能性があります。（※AI生成の可能性あり）"
print(detect_fake_text(sample_text))  # Output: True or False
```

### **対策技術②：ブロックチェーンによる情報の真正性保証**  
AI生成コンテンツに **デジタル署名** を付与し、改ざんを防止する手法も有効です。  

```python
from hashlib import sha256
import json

def generate_content_hash(content):
    return sha256(content.encode()).hexdigest()

content = "これは本物のニュースです。"
content_hash = generate_content_hash(content)
print(f"コンテンツハッシュ: {content_hash}")
```

---

## **4. 実践的なアドバイス＆よくある落とし穴**  

### **✓ 現場で使えるTips**  
- **モデルのバイアス監視**: AGIは学習データのバイアスを増幅する可能性があるため、定期的な監査が必要。  
- **マルチモーダル検証**: テキスト＋画像＋音声を組み合わせた偽情報検知が有効。  

### **✗ よくある失敗例**  
- **過剰なAI依存**: AGIの判断を盲信せず、人間によるチェックを併用。  
- **セキュリティ対策の不備**: APIキーやモデルウェイトの漏洩リスクを軽視しない。  

---

## **5. 発展的な応用：AGIの倫理的活用**  

AGIの脅威を抑えつつ、**社会貢献に役立てる方法** として：  
- **医療診断支援**: 患者データから疾患を早期発見  
- **気候変動予測**: 複雑なシミュレーションを高速化  

```python
# 擬似コード: AGIを活用した医療診断
def diagnose_patient(symptoms):
    agi_model = load_agi_medical_model()
    diagnosis = agi_model.predict(symptoms)
    return diagnosis
```

---

## **6. 結論：AGIの未来と技術者の役割**  

### **✔ メリット**  
- 生産性向上、課題解決の加速  
- 人間の創造性を解放  

### **✖ デメリット**  
- 悪用リスク（情報操作、雇用喪失）  
- 倫理的ジレンマ（AIの意思決定責任）  

**技術者としてやるべきこと**:  
- **AIの透明性（Explainable AI）** を追求  
- **倫理的なAI開発ガイドライン** の策定に参加  

AGIは「人類の敵」ではなく、**正しく制御する技術** が不可欠です。本記事が、その一助となれば幸いです。  

---

**🔗 さらに学びたい人向けリソース**  
- [OpenAIのAGIレポート](https://openai.com/research/)  
- [IEEE Ethically Aligned Design](https://ethicsinaction.ieee.org/)  

**試してみてください！** ご質問や実装の改善点があれば、コメントで共有しましょう 🚀
MSS submit への道

#### 登録したいゲノム配列（FASTA）とそのアノテーション（gff）があるものとする

### ゲノム配列のFASTAファイルを整形する
* 配列間に「//」を入れる
```
perl -pe 'print "//\n" if /^>/ && $. > 1' my_genome.fa > submit_genome.fa
```

### gffとFASTAで scaffold/chromosome が現れる順序を揃える
* ここでは名前順にしよう
  * gff
  ```
  sort -k1,1 -k4,4n my.gff > sorted.gff
  ```
  * FASTA（[seqkit](https://github.com/shenwei356/seqkit) を使う）
  ```
  seqkit sort -n submit_genome.fa > submit_sorted_genome.fa
  ```

### gff をなんかきれいにするよ
* [AGAT](https://github.com/NBISweden/AGAT) を使う
```
agat_convert_sp_gxf2gxf.pl --gtf sorted.gff -o agat.gff3
```
### できたgffの 3'-UTR/5'-UTR を書き換える
```
sed -i -e "s/3'-UTR/three_prime_UTR/" agat.gff3
sed -i -e "s/5'-UTR/five_prime_UTR/" agat.gff3
```
### メタデータの .toml ファイルを作る OR 冒頭部分を別立てで作る
* [ここ](https://github.com/yamaton/gff3toddbj/blob/main/README-ja.md#%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB) に従う　若しくは
* [これ](https://www.ddbj.nig.ac.jp/ddbj/file-format.html#annotation)を見ながらExcelかなんかで作ってtsv化


### アノテーションのtsvファイルを作る
* [gfftoddbj](https://github.com/yamaton/gff3toddbj)  を使う
  * venv（この例では pytyon3.12）で環境を作ってインストール：
  ```
  python -m venv gff3toddbj
  source ~/gff3toddbj/bin/activate
  pip install bcbio-gff==0.6.9
  pip install biopython==1.79
  pip install gff3toddbj
  ```
#### 実行
```
gff3-to-ddbj \
  --gff3 agat.gff3 \ 
  --fasta submit_sorted_genome.fa \ 
  --metadata mymetadata.toml \       # tomlファイル作った場合
  --locus_tag_prefix MYOWNPREFIX \   # これは効いてないので先に何とかしておく...
  --transl_table 1 \                 
  --output myawesome_output.ann      # この行を削除すると標準出力に
```
### 登録可能な状態になったか[UME](https://www.ddbj.nig.ac.jp/ddbj/ume.html) で調べる
* メモリ量設定のConfigが2Gbまでしかないので、足りない場合は直接 ```UME.sh```を編集する
```
cat UME.sh
#! /bin/sh
MAXMEM=200G
java -Xmx${MAXMEM} -jar lib/UME.jar
```
* 使い方は上記リンクの通り

#### エラー潰しの軌跡
```
JP0035:ER2:STX:ANN:Line [5]: One of [ab_name] values must be corresponding to the value of [contact].
```
* ```ab_name``` は 「姓」「カンマ」「名の冒頭」「ピリオド」で ```Suzuki,T.``` （仮名）スペース入れずに書き、```contact``` は「名」「スペース」「姓」```Taro Suzuki``` （仮名）と書く
 
🦑追記する予定
【太治奨揮】エンジニアの世界の魅力

こんにちは、太治奨揮です！今回は、エンジニアを目指す皆さんに向けて、この仕事の「本当の魅力」について語りたいと思います。

エンジニアの仕事には、単なる技術職以上の価値があるとぼくは感じています。それは「未知を形にする」こと。お客様のぼんやりしたアイデアや課題を、実際のコードに落とし込み、動くシステムに変える瞬間は、この仕事ならではの達成感があります。まるで真っ白なキャンバスに絵を描いていくような楽しさです。

さらに、エンジニアとして働く中での「発見」の連続も魅力のひとつ。新しい技術を学ぶたびに、自分のスキルが広がっていくのを感じられるし、エラーやバグと向き合いながら問題解決する過程は、ちょっとした謎解きゲームみたいな感覚です。「ここがこう繋がってたのか！」と気づいたときの喜びは格別です。

でも、ぼくが何より好きなのは「人との繋がり」。クライアントやチームメンバーとコミュニケーションを通じて、どうすればより良いものを作れるかを議論する時間が好きなんです。時には、技術を超えた視点で解決策を見つけたりすることも。技術だけでなく、人との交流から生まれるアイデアは、この仕事の醍醐味だと思っています。

エンジニアを目指す皆さんには、ぜひこの「形にする力」を楽しんでほしいと思います。たしかに大変なこともありますが、それを乗り越えたときに得られる喜びは、この仕事ならでは。ぼくはこの仕事が大好きですし、その魅力をこれからも発信していきたいと思っています。皆さんもぜひ、この素晴らしい世界に飛び込んでみてください！
Random Letter Generator

#### ランダムレタージェネレーターとは？

[Random Letter Generator](https://randomlettergenerator.app/) は、設定に基づいて指定された数の文字をランダムに生成するオンラインツールです。このランダムレタージェネレーターは、英語、中国語など複数の言語をサポートし、さまざまなカスタマイズオプションを提供することで、異なるニーズに対応します。
![randomletterg_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4058717/c4053191-5445-48ab-89be-070ef9958cef.png)

### 特徴

* **マルチ言語対応**：ユーザーは英語、スペイン語、ドイツ語、フランス語など、さまざまな言語を選択することができます。このツールは、マルチ言語環境にあるユーザーや、特定の言語の文字列が必要なユーザーにとって特に適しています。
* **大文字/小文字オプション**：すべて大文字、すべて小文字、または両方の混合を生成するかどうかを選択することができます。
* **高度なオプション**：数字やカスタム文字を含めることで、生成される文字列をより多様化し、パーソナライズすることができます。
* **即時生成**：「文字を生成する」ボタンをクリックするだけで、すぐにランダムな文字列を入手することができます。

### 使用シーン

* **教育**：教師はこのツールを使用して、アルファベットの学習、綴りの練習、またはフォニックスのゲームを作成することができます。生徒たちはアルファベットを学び、綴りを練習し、フォニックスの練習に参加することができます。
* **ゲームデザイン**：ゲーム開発者はこのツールを使用して、デジタルゲームやテーブルゲームのレタータイルをランダム化したり、パズルをシードすることができます。
* **創造的な執筆**：作家やプログラマーは、ランダムな文字を名付け、テスト、またはプレースホルダーバリエブルとしてのインスピレーションとして使用することができます。
* **言語学習**：生徒たちはランダムな文字列を通じて、綴り、タイプ、または言語認識の練習をすることができます。

### [Random Letter Generator](https://randomlettergenerator.app/) を選ぶ理由

このツールのシンプルさ、柔軟性、そして使いやすさは、教育者、ゲームデザイナー、学生、作家、プログラマーにとって理想的な選択肢です。ゲームを作成中、クイズを設計中、または子供にアルファベットを教える場合など、[Random Letter Generator](https://randomlettergenerator.app/) は、必要な時に正しい文字を生成するための高速で柔軟なコントロールを提供します。
初めてUnityでアプリを出してみて(収益など)

みていただきありがとうございます。
現在３ヶ月目くらいになりました。Unityでゲーム開発をしている大漢と申します。(もしかしたらYoutubeに動画上げるかもしれません。)

今回初めて記事を書くので見辛かったらコメントなどでお知らせ下さい.


まず最初に収益について話していこうと思います。

まず私はアプリを２つほど同時に出すことになり、以下の二つです。(iosでの配信のみです。)

https://apps.apple.com/jp/app/carryball1/id6745418615

https://apps.apple.com/jp/app/%E4%B8%80%E7%99%BA%E3%81%A7%E6%B1%BA%E3%82%81%E3%82%8D/id6746105119

上記のCarryBall1は一瞬だけですが、ゲームアプリ内のレーシングランキング２００位以内にランクインすることができました‼️遊んでいただいた人ありがとうございます‼️

![IMG_0159.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4070925/a983c5d7-4654-4a98-ba46-2cee53f914fb.jpeg)

実際ランクインしたゲームを出した時にどのくらい収益が入るのか気になりますよね...
どちらのアプリも広告実装のみで、常時表示のバナー（下の方によくある広告)、とゲームオーバー時に実装したインタースティシャル広告です。(スキップのできない収益高めな広告)

一週間の値になってしまうのですが、約うまい棒20本分でした...
※ うまい棒を一本10円と仮定する.

内訳としてはCarryBall1(ランクインした方)は大体15本分でした。
正直、アプリを出す前はこれで億万長者や‼️とか思っていたのですが、見事にその夢が遠のきましたね...
実際、アプリを出してみると自分で1から実装したものが、多くの人に受け入れられて、お金になっていることがすごく嬉しかったです‼️


最後まで読んでいただきありがとうございます‼️

twitterで活動を報告しています！
下記がTwitterになっているのでぜひチェックしてみてください。

https://x.com/oootoko1129
本番を止めずに通知テスト！Uptime Kuma の“反転モード”が便利すぎる！

## ほ、ほ、ほんとに通知来るかな！？😨
皆さん、こんにちは！！
Uptime Kumaを導入して通知設定まではできたけど、「これ…本当にSlackに飛ぶの？😰」って不安になりませんでしたか？
自分はめちゃくちゃ不安でした（笑） 
そんなとき、上司の **“big-a”** から一言。
「反転モード使ってやったら通知くるんじゃない？」 
そうして出会ったのが、**“反転モード”** という機能です！

今回は、そんな通知テストに便利な反転モードの使い方を紹介します〜!
あわせて、通知設定の手順もスクショ付きでまとめたので、ぜひ参考にしてみてください！


## この記事でできること
:::note
- 実際にサーバーを停止せずに、Uptime Kuma のアラート通知をテストできる
- Slack通知が正しく動作しているかを簡単に確認できる
- 反転モードの活用法が分かる
:::

## 今回の通知テストの背景と目的
通知設定したけど…
- 本当に通知飛んでるの？🧐 
- 本番サーバー止めるのはちょっと怖い…😨

そんなときに便利なのが、「反転モード」です！
監視対象が「DOWN」扱いになるため、通知の動作確認が安全に可能です。

## 反転モードってなに？

**反転モードは、Uptime Kuma に搭載されている特殊な監視機能の一つです。**

:::note
通常の監視では： 
- アクセスに成功したら → ✅ 正常（UP） 
- アクセスに失敗したら → ❌ 異常（DOWN）

しかし **「反転モード」** を有効にすると、この判定が逆（反転）になります。
- アクセスに成功したら →❌ 異常（DOWN）。 
- アクセスに失敗したら → ✅ 正常（UP）
:::
この機能により、サーバーを止めずにエラー通知が確認でき、Slack等への通知確認も行うことが出来る、便利機能です〜🤩

## 前提条件
:::note
- Uptime Kuma が Lightsail 上で稼働している 
- Kuma の WebUI にアクセスできる 
- Slack通知の設定済（通知ON）
- 少なくとも1つの HTTP(S)監視がある  
:::

## 使用環境
:::note
- OS：Amazon Linux 2023
- インスタンス：Amazon Lightsail / 512MB RAM
- Kumaバージョン：Docker最新
- 通知先：Slack
:::

### 🚀通知テスト手順
実際の画面を見ながら進めましょう👇
1. Uptime Kuma WebUI にアクセス
2. 通知をテストしたい対象の「HTTP(s)監視」をクリック
3. 該当監視の上部にある【鉛筆マーク（編集）】をクリック
4. 反転モードへ✅を入れる
5. 保存をクリックし設定を反映
![反転1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/fae7269d-3bf7-4562-8614-f4cc2a7facfe.png)


### 通知を確認
1. 設定後、監視対象が「DOWN」状態として判定される 
2. 数十秒後、設定済みの通知チャネル（Slack）に障害通知が届くか確認
対象チャンネル：通知設定したチャンネル 　　
⚠️ 監視間隔によって通知タイミングは前後します。
![反転3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/5d59e116-8570-47e6-822c-3d8e0d0a6272.png)
![反転２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/9bc9afa9-1592-4256-89bc-f2594368623f.png)



### 正常モードに変更

1. 再度、対象の「HTTP(s)監視」をクリック 
2. 該当監視の上部にある【鉛筆マーク（編集）】をクリック
3. 反転モードへ✅を外す
4. 保存をクリック  
5. 正常状態に戻り、画面上で緑色の「UP」ステータスになるのを確認 
→復旧後はupとして通知が届きます。
![反転4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/a612efa2-0142-439f-afb2-724d44fcc356.png)
![反転6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/17f1f66c-c0d4-471a-b28f-e8fca7fdfed2.png)

![反転5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4110550/0620798a-43a2-4627-93e6-ad47339513ad.png)



## まとめ

Uptime Kuma の **「反転モード」** 、めっちゃ便利でした！
本番サーバーを止めずに通知テストできるので、Slack通知がちゃんと飛ぶか不安なときにも安心です🙆‍♂️

導入直後の確認にもピッタリなので、通知設定したらサクッと試してみるのがおすすめです〜！

手順もかんたんで、初心者の自分でも迷わずできたので、
「これ本当に通知くるの？🤔」って不安な方はぜひお試しあれ〜😊

**Valeu! Valeu! 👋**
PDBとREDOの詳細について

## はじめに
CDBにおいて物理的なデータフ・ァイルはCDB全体(CDB$ROOT配下)で共有されるものと、PDBに依存するものに分かれます。前者は制御ファイルやオンラインREDOログやアーカイブファイルなど、後者はPDB上のユーザデータやそれに伴うディクショナリなどです。
21c 以降では、PDB単位での Data Guard が構成されるなど、PDBを軸に機能の改良・改善がなされている様に見受けられるので、特にオンラインREDOの内容を確認してみます。
![Q13-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470713/c6169af5-cca7-46eb-8a23-c229b05b5187.png)
## PDBのUIDについて確認
今回の環境はOracle Database 19c Version 19.25.0.0.0 で実施しています。
![Q13-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470713/06f86b52-234f-4fbe-919b-b525afc4b531.png)
- V$CONTAINERS から PDBのUID(CON_UID)を確認
```
SYS@ORCL19C> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO

SYS@ORCL19C> SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS;
NAME         CON_ID       DBID    CON_UID GUID
-------- ---------- ---------- ---------- --------------------------------
CDB$ROOT          1 1668855281          1    86B637B62FDF7A65E053F706E80A27CA
PDB$SEED          2  847153043  847153043    2BB9F24A3E6B3E3EE0635F97B90AEC22
PDB               3 2912448633 2912448633👈 2BBA3AE39C32589EE0635F97B90AB301
```
- PDBに対し、DMLを実行(今回は SCOTT スキーマおよびサンプルオブジェクトを作成)
- CDB$ROOTからオンラインREDOログのダンプを生成する
```
SYS@ORCL19C> ALTER SYSTEM DUMP REDO
```
ダンプの結果はトレース・ファイルに出力されるため、その一部でCON_UIDを確認する
```
REDO RECORD - Thread:1 RBA: 0x00001b.0001d15e.010c LEN: 0x0064 VLD: 0x01 CON_UID: 1
SCN: 0x0000000000356415 SUBSCN:  2 01/27/2025 00:55:35
CHANGE #1 CON_ID:1 TYP:0 CLS:8 AFN:3 DBA:0x00c1ae28 OBJ:75684 SCN:0x00000000003562b7 SEQ:1 OP:13.22 ENC:0 RBL:0 FLG:0x0000
Redo on Level1 Bitmap Block
Redo to mark block free
offset: 4 length:1 xidslot:0 state:3
ncmt:0
Commit Slot list
locking transaction:  0x0000.000.00000000

……　(中略)

REDO RECORD - Thread:1 RBA: 0x00001b.0004c59e.0038 LEN: 0x0134 VLD: 0x01 CON_UID: 2912448633👈
SCN: 0x00000000003607f1 SUBSCN: 32 01/27/2025 12:53:41
CHANGE #1 CON_ID:3 TYP:0 CLS:32 AFN:11 DBA:0x02403ee8 OBJ:4294967295 SCN:0x00000000003607f1 SEQ:31 OP:5.1 ENC:0 RBL:0 FLG:0x0000
ktudb redo: siz: 100 spc: 1270 flg: 0x0022 seq: 0x0136 rec: 0x49
            xid:  0x0008.014.000003c6
ktubu redo: slt: 20 wrp: 966 flg: 0x0000 prev dba:  0x00000000 rci: 72 opc: 10.22 [objn: 718 objd: 718 tsn: 0]
[Undo type  ] Regular undo  [User undo done   ]  No  [Last buffer split]  No
```
1つのREDOログに CDB$ROOTおよび PDBのそれぞれが変更履歴を書き込んでいる事が確認できた。
### 最後に
マルチテナント・アーキテクチャは12cから導入され、21cからはCDB構成のみがサポート対象となりました。従来の non-CDB構成を可能な限り継承する目的でシングル・テナント(1つのPDBのみ)で実装・運用されるケースも複数の(多いと100を超える) PDBを実装するケースもあるようです。
オンラインREDOやアーカイブ・ログはCDB (CDB$ROOT)の管理下というイメージが強かったのですが、複数のPDBから共有されている感覚に変わりつつあるようです。
Amazon Q CLIを使用して車ゲーを作ってみた

# はじめに
Amazon Q CLIを使用してゲームを作るプロジェクトに参加してみました。
動機は~~Tシャツがもらえるk~~ ...AIでどこまでコーディングできるか気になったからです。本当です。
2025年6月20日まで開催されているので、ぜひ皆さんも参加してみてください！

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

# 実際にできたプログラム
完成した車のレースゲームを紹介します。
プログラムは以下のリポジトリにあります。最後にプロンプトを誤ってしまいファイル構成が少し乱雑になってしまいましたが、main.pyを実行すれば動作します。
AIを限界まで活用しようと試みた結果、完成まで3日ほどかかりました。

https://github.com/yu-kod/amazon-q-rally

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2365485/1b1b6820-5d73-460d-babe-bec3d6e4af70.png)

見た目は素朴ですが、画像素材を一切提供せずにここまで作れたのは驚きでした！

# やってみて感じたこと
Amazon Q CLIを使用して特に印象的だったのは、**「プログラミングの知識がなくても、AIの支援があれば簡単なゲームを作ることができる」** という点です。

例えば、車のタイヤの滑りをリアルに実装して欲しいと指示したところ、アッカーマンアングル（ハンドル操作時の左右タイヤの切れ角の差）が自動的に実装されました。
私自身この仕組みを理解していませんでしたが、実際の動作は想定通りの自然な動きになっていました。

# 課題点

Amazon Q CLIのみを使用するという制約があったため、いくつか苦労した点もありました。
例えば、最後にWebブラウザでプレイできるように指示したところ、PythonのコードをJavaScriptに書き換え始めるという予期せぬ動作がありました(画像のindex.htmlにjsがそのまま書かれています)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2365485/9af6e5fe-0279-4a42-a6f2-2b9d9e39c0b9.png)


本来は以下の記事のようにやって欲しかったなぁと思っています。

https://qiita.com/Prosamo/items/de12a90ba026b7517d2a


ただし、この問題は人間とAIが協力してコーディングするか、適切な参考資料をAIに提示することで解決できると思われます。

# おわりに
Amazon Q CLIを使用してみて、AIツールの進化により技術的な壁を越えて自分のアイデアを形にできる時代になってきていると実感しました。