OmniAICreator/Qiita-1.07M huggingface dataset:
KPT振り返りのアンチパターン大全 〜失敗から学ぶ成功への道〜

# はじめに

KPT（Keep, Problem, Try）は、シンプルで効果的な振り返り手法として広く活用されています。しかし、実施方法を誤ると、振り返りの効果が半減し、チームの成長につながらないこともあります。本記事では、KPTの振り返りにおける代表的なアンチパターンとその解決策を紹介します。

## そもそもKPTとは？
KPTは、振り返りをシンプルに整理し、改善につなげる手法です。
- **Keep（良かったこと）**: 継続したい取り組み
- **Problem（問題点）**: 課題や改善点
- **Try（次に試すこと）**: 改善のための具体的なアクション

このサイクルを繰り返すことで、チームの成長を促進します。しかし、適切に運用しないと形骸化し、効果が薄れてしまいます。以下で、よくあるアンチパターンとその対策を詳しく解説します。

## アンチパターン①: 形骸化した振り返り
### **問題点**
定期的にKPTを実施しているものの、毎回同じような内容が出るだけで、実際の行動に結びついていない。

### **解決策**
- Tryに設定した項目の進捗を次回のKPTで必ず確認する。
- KeepやProblemがマンネリ化していないか定期的に見直す。
- KPT以外の振り返り手法（YWT、Fun/Done/Learnなど）を試してみる。
- 形式を変えて「ポジティブKPT（成功要因に特化）」などのバリエーションを加える。

## アンチパターン②: Problemの深掘り不足
### **問題点**
表面的な問題の洗い出しに留まり、根本原因の分析が不十分。

### **解決策**
- 5Whys（なぜを5回繰り返す）を活用し、問題の本質を探る。
- Problemの原因を明確にするために、Fishboneダイアグラム（特性要因図）を使う。
- 「なぜこれが問題なのか？」を問い直し、影響範囲を考える。
- チームでディスカッションを行い、さまざまな視点から課題を分析する。

## アンチパターン③: Tryが曖昧すぎる
### **問題点**
Tryに「頑張る」「気をつける」などの曖昧な表現が多く、実行に移しにくい。

### **解決策**
- TryをSMART（具体的・測定可能・達成可能・関連性がある・期限がある）な形にする。
- 「誰が」「いつまでに」「どのように」実行するのかを明確にする。
- Tryの進捗を確認しやすい仕組みを作る（タスク管理ツールを活用する）。
- 小さなTryを積み重ね、成功体験を増やすことで、改善の継続性を確保する。

## アンチパターン④: Keepが単なる成功体験の記録
### **問題点**
Keepが単に「うまくいったこと」のリストになり、再現性のあるナレッジとして活用されていない。

### **解決策**
- Keepを「なぜうまくいったのか？」の視点で深掘りする。
- 他のプロジェクトやチームでも活用できるようにドキュメント化する。
- Keepの内容をチームメンバーと共有し、習慣化する。
- Keepの具体例を示し、同じ成功を再現する方法をチームで話し合う。

## アンチパターン⑤: 振り返りの雰囲気が悪い
### **問題点**
振り返りの場がネガティブな雰囲気になり、発言しづらくなる。

### **解決策**
- ファシリテーターを決めて、ポジティブな雰囲気を作る。
- Keepを最初に話し、良かった点を振り返ることで前向きな流れを作る。
- 全員が安心して発言できるように、心理的安全性を確保する。
- 「個人の責任ではなく、プロセスの改善」という視点を持ち、非難ではなく学びの場とする。

## アンチパターン⑥: フィードバックが一方通行
### **問題点**
KPTの場が、上司やリーダーからのフィードバックのみになってしまい、メンバーの意見が出にくい。

### **解決策**
- 参加者全員が発言できる仕組み（付箋、Miro、オンラインホワイトボードなど）を活用する。
- ファシリテーターが積極的に発言を促し、意見を引き出す。
- 全員が主体的に参加できるように、「ファシリテーターを交代制にする」などの工夫をする。

## アンチパターン⑦: Tryの実行がフォローされない
### **問題点**
Tryを決めても、次回の振り返りまでに進捗確認がなく、結果的に実行されない。

### **解決策**
- Tryの進捗を定期的にフォローする役割を決める。
- 1週間後、2週間後など、短いスパンで進捗確認を行う。
- Tryの進捗をKPTボードやタスク管理ツールで可視化し、忘れないようにする。

## まとめ
KPTはシンプルで効果的な振り返り手法ですが、運用方法を間違えると本来の効果を発揮できません。今回紹介したアンチパターンを避け、適切な改善策を取り入れることで、より有意義な振り返りを実施できます。チームの成長につなげるためにも、KPTのやり方を定期的に見直してみましょう！

**あなたのチームでは、どのアンチパターンが当てはまりましたか？ぜひコメントで共有してください！**
html.erbにEmmet適用出来なくね...？と悩んでる方へ　(おまけ付き)

## はじめに
以下の人を対象としています。モデルは私です。

- Railsに関する拡張機能を入れていない
- Emmetをerbファイルでも使用したいけど、どの記事を見ても上手くいかない
    - マッピングに"ruby": "html"と設定したら、rbファイルまで適用されて使いづらい

## なぜ出来ないのか？

VSCodeには言語モードがあり、デフォルトではRails系だとRubyしか存在しません。（右下に表示されています。確認してみましょう）
そのため、`erb: html`とマッピングを設定しても、VSCodeがerbという言語モードを用意していないため適用されません。

一方で、`ruby: html`と設定すればEmmetは適用されますが、例えばrbファイルで`User.new`と書いたときに、Emmetが誤認識して展開してしまうという問題が発生します。

![スクリーンショット 2025-03-09 10.29.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4024257/1d5e226c-d432-4378-b524-67bf67189412.png)

## じゃあどうすればいいか？

まずは拡張機能の「Rails」をインストールしましょう。

![スクリーンショット 2025-03-10 14.27.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4024257/4f2c850e-fe72-488f-8fd4-d781507561a8.png)


インストール後、VSCodeの設定で以下の通りに記載します。

![スクリーンショット 2025-03-10 14.23.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4024257/2ea2111b-feae-4657-87b3-3cf5130343fa.png)

記載した後html.erbファイルで言語モードを`html.erb`に変更すると、ハイライトが付きEmmetも使用できるようになります。

## おまけ

### カスタムスニペット編

先ほどインストールした「Rails」にはRails向けのスニペットがある程度用意されています。
[html.erbのスニペット一覧](https://github.com/bung87/vscode-rails/blob/dev/snippets/html.erb.json)


<br>
一覧を見てる僕「...あれ？tagとforがあってform_withは無いのか？」

と、このように提供されてるスニペットじゃ足りないことがあります。
こうなったら自分でスニペットを作成してみましょう。

といってもここは**おまけコーナー**なので私が参考にした記事を持ってきました。
カスタムスペニットの作成はこちらをご確認ください！

https://zenn.dev/miz_dev/articles/157a7aaad0bdcf

---

### シンタックスハイライト編

「Rails拡張機能を入れたら色がついたけど、<font color="#569CD6"><%=%></font>の色がHTMLタグと被って少し見づらい…」

そんな時は、以下の記事を参考にしてみましょう。


https://qiita.com/sayo99/items/7e0b4d873928227ae4de

<details><summary>サンプル</summary>

普通のテキストで使われている白に変換しています

```json:settings.json
    "editor.tokenColorCustomizations": {
        "textMateRules": [
          {
            "scope": [
              "punctuation.section.embedded.begin",
              "punctuation.section.embedded.end"
            ],
            "settings": {
              "foreground": "#D4D4D4"
            }
          }
        ],
      }      
```

</details>


---

### 最後に

私自身、エンジニア未経験の超初心者です。

もし間違っている点や「ここが上手くいかない！」という部分があれば、コメントで教えていただけると幸いです。
Wordpress Gutenbergエディタ 本文欄を非表示にする方法

# 本文欄とは？

コレのこと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130352/e3b9468b-a350-4431-a139-cb2b9f4c677d.png)

# 理想通りのやり方

以下のCSSを admin.css なり、管理画面でのみ実行されるCSSに定義します。
すべての投稿タイプで非表示にしたい場合は、「 `.post-type-posts` 」の部分を消してください。
特定の投稿タイプで非表示にしたい場合は、「 `.post-type-posts` 」の部分を適宜調整してください(例えば、投稿タイプ「アルバム(albums)」ならば、「 `.post-type-albums` 」のような具合で)

### 【注意】

この方法は、Wordpress 6.7.2のCSSプロパティを前提として調整しています。
将来的にメジャーアップデートなどでレイアウト構造が変われば、また表示される可能性があります。ご留意ください。

```css:admin.css
body.post-type-posts.block-editor-page .editor-styles-wrapper {
    min-height: 0px;
}

body.post-type-posts.block-editor-page .editor-styles-wrapper::after {
    height: 0px;
}

body.post-type-posts.block-editor-page .editor-styles-wrapper>.article-content {
    display: none;
}
```

## 正しいやり方

メジャーアップデートされたとしても、メンテナンスフリーで使えるやり方は以下の通りです。

`functions.php` に以下のコードを追記します。

### 注意

このやり方の場合、Gutenbergエディタではなく、Classic エディタの見た目になります。
そのため、Gutenbergエディタを使っているサイトの場合、
特定の投稿タイプだけ管理画面の見た目が異なるのでアレ？ って言われる可能性があります。

とはいえ、クライアント様のこだわりが強くないならば、保守の観点からこっちの方法のほうが良いと思います。

```php:functions.php
/**
 * 特定の投稿タイプのみ、本文欄を非表示にする
 * Gutenbergエディタの外観のまま非表示にする方法は(CSS以外に)なさそうなので、
 * 一旦、Classicエディタに戻し、Classicエディタを非表示にするというアプローチを取ることにした
 * @param mixed $use_block_editor
 * @param mixed $post
 * @link https://bambooworks.co/wordpress-page-hide-editor/
 */
function disable_gutenberg_editor_for_posts($use_block_editor, $post)
{
    $post_type = "posts"; // 非表示にしたい投稿タイプを指定
    if ($post && $post->post_type === $post_type) {
        remove_post_type_support($post_type, 'editor'); // Step2. Classicエディタ自体を非表示にする
        return false; // Step1. Gutenbergエディタを非表示にし、Classicエディタを表示する
    }
    return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'disable_gutenberg_editor_for_posts', 10, 2);
```
GitHub のリポジトリが最後に更新された日付を取得する

# 背景
GitHub で管理しているリポジトリのバックアップを日次で取得する際、更新されたリポジトリのみを対象にできると効率的になる。
git clone する前に最終更新日時を取得したい

# 結論
リポジトリ一覧取得 API のレスポンスから `pushed_at` を参照する
リモートブランチの作成、コミットの push などで `pushed_at` が更新される
似た項目で `updated_at` が存在するが更新されなかった(何に対するupdate?)

# 対象API
https://docs.github.com/ja/rest/repos/repos?apiVersion=2022-11-28#list-organization-repositories
https://docs.github.com/ja/rest/repos/repos?apiVersion=2022-11-28#get-a-repository
snap docker install では docker グループが作成されなかった

# snap docker install では docker グループが作成されなかった

## 環境

os: `Ubuntu 22.04 LTS`, `24.04 LTS`
arch: `x64`

## snapでインストールして起動したが、エラーとなった

解決方法については後述しているので熟練の方は読み飛ばして頂いて結構です。

```sh
# snapストアからDockerをインストール
sudo snap install docker
```

```sh
# 起動してみるもエラー
$ docker-compose up 
(省略)
/var/run/docker.sock: connect: permission denied

# グループにユーザがいなさそう
$ cat /etc/group | grep docker
$
```



## 解決方法

### 1. グループ作成とユーザの追加

```sh
# docker グループを作成
sudo addgroup docker

# ログイン中のユーザをdockerグループに追加
export SUDO_USER_NAME=`whoami` \
&& sudo usermod -aG docker "${SUDO_USER_NAME}"
```

### 2-1. docker のインストール (これからインストールする場合)

```sh
# docker をインストールしここで終了
sudo snap install docker
```

### 2-2. パッケージの再有効化 (グループ作成以前にインストールした場合)

```sh
# パッケージを再有効化する
sudo snap disable docker
sudo snap enable docker
```

### 3. 動作確認

`docker version` を実行し、サーババージョンが取得出来ていることを確認

```sh
# サーババージョンが取得出来ている例 
$ docker version
Client: Docker Engine - Community
 (クライアントバージョンは無関係)

Server: Docker Engine - Community
 Engine:
  Version:          2x.xx.xx
  (省略)

# NG)サーババージョンが取得出来ていない例(サーバ情報が表示されずエラーメッセージが表示されている)
$ docker version
Client: Docker Engine - Community
 (省略)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.xx/version": dial unix /var/run/docker.sock: connect: permission denied
```


hello-woldコンテナを実行し、pull image(初回実行時のみ)が開始され、`Hello from Docker!`が表示されることを確認

```sh
$ docker run hello-world
(省略)
Hello from Docker!
(省略)
```


以上
Chat GPTの口調を元気のいい後輩キャラにしたら思いのほか捗った

## 「できる人」は忙しい…

IT戦士の皆さん、今日も全然知らない新技術、新言語、新サービスに立ち向かっていますか？

僕は何年も前から「ここは俺に任せて先に行け！」スタイルでディレクション業務をしてきたものの、少しだけエンジニア領域の内容もかじらねばならずで日々頭を抱えております:frowning2:

そんなこんなでシゴデキな同僚達やエンジニアさんに猫撫で声でお時間を頂いてしまっている次第ですが、仕事のできる忙しい人の時間を奪うのは良心の呵責があります…。

そんな精神をすり減らすこと枚挙に暇がない日々に現れたChat GPTですが、技術的な解説って文章の書き方が堅いと返答の内容を理解するのが結構大変なんですよね💦

なんせ、役所の発行する文章とかも4割くらいの理解度で全部処理してるもんで…。


## Chat GPTの口調を後輩キャラにしてみる
そこで、普段いつもシゴデキ後輩に頼りまくっている現実に準えて、Chat GPTの口調を

体育会系の元気な後輩キャラ:muscle_tone3:

にしてくれとリクエストしてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3924179/2803f2f3-a33a-46cc-9157-6d1a9c9720a4.png)


元気があってよろしい。
現実のように先輩風をビュンビュンに吹かせながら教えを乞うてまいります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3924179/8948eb4d-2758-4989-898a-614a2abf7d02.png)

ふむふむ。いい感じです。
ここで追加の質問があったのでまた聞いてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3924179/1765a583-82be-4555-a5d4-2ebddeab52c3.png)

「いい質問っす！」
…だと…？

なんという恐るべき後輩力…。質問している側をいい気分にさせるという離れ業。

もうアカデミー後輩賞受賞ですよ:crown:
しかもなんかめっちゃ分かりやすく感じる！


他の質問でもこんな感じで

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3924179/0b1e8ca3-2dca-416f-9252-c9c74609b130.png)

絵文字とか使って分かりやすく説明してくれます。
Chat GPTにありがちな、細かいコードのミスとかもなんか全然許せちゃう不思議。

## 元気な口調でメンタルキープ
ハマってる時とか、分からない事に直面したときって、不安に押しつぶされそうになります…。
あくまで「僕の場合は」ですが、そんな時Chat GPTが元気に回答をくれるとなんだか前向きな気持ちで仕事に取り組んでいけるんです。

皆さんもお好みのキャラクターにChat GPTの口調を変えてみてください！きっと捗りますよ！先輩:muscle_tone3:！

:::note info
他の人にチャットの内容を転載したり共有する時にちょっと恥ずかしいのでその点だけご了承ください！
:::
IBM i Services Directory : SYSTOOLS.Ping 表関数　リモートからSQLでIBM i のPING実行

リモートからIBM i にIBM i サービスで接続（コマンド投入）して、IBM i上でPingした実行結果を返します。

## 概要
■表関数名：SYSTOOLS.PING
■カテゴリ：通信サービス
■サポート：IBM i 7.4 SF99704 Level 26以降
■参照URL（IBM i 7.5）：https://www.ibm.com/docs/ja/i/7.5?topic=services-ping-table-function

## 使用例1：ホスト名指定

ホスト名を指定する場合。Windows他と変わりはありません。
```
SELECT * FROM TABLE(SYSTOOLS.PING('IBMI74'));
```

※上記でIBMI74はPING対象システムのホスト名です。

実行結果はこちら。（リモートシステムIPはマスクしています）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/f5b5f03c-72f1-4961-888c-111895721f0e.png)

其々を説明する必要はなさそうに思いますが、PINGの成功数・率・応答時間平均・最小・最大・リモートシステムホスト名・IPアドレスですね。


## 使用例2：IPアドレス指定

IBM i で何気にン？となるポイントのIP指定時のフォーマットがちょっと他と変わっています(^^;
```
SELECT * FROM TABLE(SYSTOOLS.PING(REMOTE_IP_ADDRESS => '192.168.1.1'));
```
※単純にIPを指定することはNGで、IBM I サービスの場合は、上記例のようにREMOTE_IP_ADDRESS..と指定します。

※実行結果はこちら。適当なリモートシステムが無くて(^^; 127.0.0.1ですすみません(^^;
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/932d08fa-17cc-46e8-a15f-d0efd43b2307.png)

### エラーの実行例

相手IPが見つからない場合などは下記のように RESULT列がFAILUREと返ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/6522df6d-1dc3-473f-bb84-24554c654fdc.png)


## 参考　5250でのIPアドレス指定 PINGコマンド例
ホスト名指定の場合は単純に PING IBMI74  ですが、IPアドレス場合は下記のように指定します。
```
PING RMTSYS(*INTNETADR) INTNETADR('127.0.0.1')
```
RMTSYSパラメーターがホスト名を指定するパラメーターで、ここに*INTNETADR と指定し、さらに
INTNETADRパラメーターにIPを指定します。

ちょっとクセあり(^^;結果は特に変わりなくこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/34efdf49-c011-4c81-949c-8a73e6e8c54a.png)
ネットワーク入門：IPアドレスとMACアドレスが2種類必要な理由とその違いについて体系的にまとめてみた

## はじめに

ネットワーク通信において、IPアドレスとMACアドレスはどちらも重要な役割を果たします。

:::note info
**しかし、それぞれの目的や役割は異なり、両方が必要不可欠です。**
:::

本記事では、それらの違いと、なぜ2種類のアドレスが必要なのかを解説します。

## IPアドレスとは？
### IPアドレスの役割
IPアドレス（Internet Protocol Address）は、インターネットやローカルネットワーク内でデバイスを識別するためのアドレスです。  
主な役割は以下の通りです：

- ネットワーク上のデバイスを識別する
- データを送信先のデバイスまで正しく届ける
- ネットワークの階層的な管理を可能にする

### IPアドレスの特徴
- 変更可能：ネットワーク環境が変わるとIPアドレスも変わることがある（例：Wi-Fiを切り替えると変わる）。
- 論理アドレス：ネットワーク管理者が割り当てるアドレスであり、ネットワークの構造によって変化する。
- 階層構造を持つ：IPv4の場合、「192.168.1.1」のようにネットワーク部分とホスト部分に分かれる。

## MACアドレスとは？
### MACアドレスの役割
MACアドレス（Media Access Control Address）は、ネットワーク機器（LANカードやWi-Fiモジュールなど）に割り当てられた固有の識別子です。  
主な役割は以下の通りです：

- 同じネットワーク内でデバイスを特定する
- データリンク層（OSI参照モデルの第層）で通信する
- 一意性を保証する（各デバイスに異なるアドレスが割り当てられる）

### MACアドレスの特徴
- 基本的に変更不可：デバイスのハードウェアに組み込まれている（例外として一部のOSでは変更可能）。
- 物理アドレス：製造時に一意に割り当てられる。
- 階層構造を持たない：フラットなアドレス体系であり、ネットワークの構造には依存しない。

## IPアドレスとMACアドレスの違い
| 項目          | IPアドレス                              | MACアドレス                          |
|--------------|--------------------------------|--------------------------------|
| 役割       | ネットワーク全体での識別 | 同じネットワーク内での識別 |
| 管理者     | ネットワーク管理者やDHCPサーバー | 製造メーカー（デバイスごとに割り当て） |
| 変更の可否 | 変更可能（動的に割り当てられることもある） | 基本的に変更不可（ただし変更可能な場合もある） |
| 階層構造   | あり（ネットワーク部分とホスト部分） | なし（フラットな識別子） |
| 適用範囲   | インターネット全体、ルーティングに関与 | 同じLAN内、スイッチングに関与 |

## なぜ2種類のアドレスが必要なのか？
### IPアドレスだけでは不十分な理由
IPアドレスだけでは、ネットワーク内のデバイスを直接特定できません。例えば、ルーターがネットワーク内のどの機器にデータを送るべきかを決定する際、MACアドレスが必要になります。

### MACアドレスだけでは不十分な理由
MACアドレスは、ネットワーク機器ごとに固定されているため、異なるネットワーク間で通信する場合には使えません。インターネットのような大規模なネットワークでは、IPアドレスによる経路制御が必要です。

### 役割分担の仕組み
- IPアドレスは「郵便番号＋住所」：ネットワーク全体でどこに送るかを決める
- MACアドレスは「家の玄関の表札」：同じネットワーク内でどのデバイスかを特定する

例えば、あなたが友人に手紙を送る場合を考えましょう。
- IPアドレス（郵便番号＋住所）：町のどの家に送るかを決める（ネットワークのルーティング）
- MACアドレス（家の玄関の表札）：その家のどの人が受け取るべきかを決める（ネットワーク内の通信）

このように、IPアドレスとMACアドレスは互いに補完し合いながら、ネットワーク通信を成立させています。

## まとめ
- IPアドレスはネットワーク全体での識別、MACアドレスは同じネットワーク内での識別に使われる。
- IPアドレスは論理的な割り当てが可能であり、ネットワーク間のルーティングに役立つ。
- MACアドレスはデバイスごとに固有であり、同じネットワーク内でのデータのやり取りに使われる。
- 2種類のアドレスを併用することで、インターネットのような大規模なネットワークでもスムーズに通信ができる。

:::note info
***ネットワーク通信を理解する上で、IPアドレスとMACアドレスの違いをしっかり把握することは非常に重要です。***
:::

今後、ネットワーク関連の設定やトラブルシューティングを行う際にも役立つ知識となるでしょう。
【DEA-C01】DEA合格体験記

## はじめに
先日AWS Certified Data Engineer - Associateを受検し、合格しました。
試験準備から当日までの記録を書いていきたいと思います！


## 受検時の状態
- 入社3年
- 業務でAWSを触る環境だが、DBやデータ分析系はあまり触らない
- AWS CLF, SAA, SOA, DVA, SCS, MLS, ANS取得済み

## 勉強期間
2か月

## 勉強時間

平日：就業後0.5~1時間 休日：直前の日曜日に4時間

## 使ったもの

:::note
[Cloud Licence](https://cloud-license.com/)
:::
:::note
Udemy [Practice Exams | AWS Certified Data Engineer - Associate](https://www.udemy.com/course/practice-exams-aws-certified-data-engineer-associate/?srsltid=AfmBOooK_sEpR0QI523DGpoJxN683W0AScz-1VphW01nDi_oAMs3Bsq9&couponCode=V2JPLETSLEARN)
:::
:::note
Exam Prep Official Practice Exam: AWS Certified Data Engineer - Associate (DEA-C01 - 日本語)
:::
:::note
AWS Black Belt Glue
:::

<iframe width="560" height="315" src="https://www.youtube.com/embed/5fbdx849AYw?si=QySv2U2hWrj0LZRG" 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>

- 問題演習を中心に行いました。一日10~20問を目安に問題を解いて、分からないところを調べて、自作のノートに書きこんでいきました。そのノートを寝る前や朝に見て暗記しました。ANSを受けてからDEAを受けたので、問題文が短く解きやすかったです。
- 平日は1問でもいいから必ず問題を解くことを意識し、勉強を継続しました。
- 普段使うことのないGlueなどのサービスは、Black Beltで、サービスの特徴やユースケースを学びました。
- Exam Prep Official Practice Exam: AWS Certified Data Engineer - Associate (DEA-C01 - 日本語)は、有料の模擬試験なのですが、会社がAWS Skill Builderの有償プランを契約しており、無料で受検することができました。本試験とおなじように1点刻みのスコアレポートが出て、良いリハーサルが出来ました。


## 本番のスケジュール
10:30 会場着　本人確認や写真撮影を済ませる　
テスト前の受付は30分前からとのことで、11時予約で10時半から受付し始めしました

10:45-12:45ごろ　受検

20:19にバッジ認定メール
20:25にスコアレポートのメールが来ました。（結果：757点）


## おわりに

受検を通じて、普段業務であまり使うことのない、GlueやAthenaについて理解を深められてよかったです！
次は、DOPを受けようと思うので、気を引き締めて頑張りたいと思います :fire: 

以上です。ありがとうございました。
OpenHandsでAOAI上のo3-miniを使用するとapi_versionのエラーになる

# 結論を先に言えって言ったよね
api_versionのエラーが出たのでdockerコマンドで環境変数弄ったら治りました

# 発生した事象

公式の記述に従って

```bash
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik

docker run -it --rm --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik \
    -e LOG_ALL_EVENTS=true \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v ~/.openhands-state:/.openhands-state \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:0.28
```

した後、AzureOpenAIでデプロイしたo3-miniの情報を設定しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3746407/8b3f3f94-debc-4d10-883b-3e493e8d1399.png)

とりあえずトップページに表示されるデモ用のプロンプトを使用して動作確認を実施したところ、以下のエラーが返されました。

```bash
BadRequestError: litellm.BadRequestError: AzureException - Error code: 400 - {'error': {'code': 'BadRequest', 'message': 'Model {modelName} is enabled only for api versions 2024-12-01-preview and later'}}
```

諸々調べてsdkのせいか？など右往左往したのですが、結果としてはエンドポイントに設定されている
`?api-version=2024-12-01-preview`
という記述が、AOAIへのリクエスト時に欠落してしまっていることが原因だと判断しました。

そこで、起動時のコマンドを

```bash
docker run -it --rm --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik \
    -e LOG_ALL_EVENTS=true \
    -e LLM_API_VERSION=2024-12-01-preview \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v ~/.openhands-state:/.openhands-state \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:0.28
```

としたところ、無事にAOAIからクエリ結果を得ることができました :tada: 
環境変数は、この辺を見てこれっぽいなと判断しました。
https://github.com/All-Hands-AI/OpenHands/blob/main/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/azureLLMs.md

# あとがき
PRを出せるといいんですが、能力値が足りませんでした。反省。
o1を使う場合でも出たので、この記事が誰かの時間を節約できたら嬉しいです。

Q: claude 3.7 Sonnetを使わないのは何故ですか？
A: うるせえ！(高すぎるからです)



以上！！！
【サンプルコードあり】SwiftUI×CoreDataでメモアプリを作ってみた


今回はSwiftUIとCoreDataを利用して、メモアプリを作成してみました。

## 実際のアプリ
実際のアプリは以下のような感じです。

![sampleapp_gamen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1434765/a3c17cc8-9e33-45a4-bc54-0ff52e66d2ce.png)


SwiftUIで外観を作り、CoreDataでメモの内容を保持する設計です。
画面は２画面で、メニュー画面とメモ編集画面。

メニュー画面で今まで作成したメモの一覧と、メモ追加ボタンを実装。メモ編集画面で、メモを編集する機能を作成しました！

#### 実際のコードや細かい説明
細かい説明は以下からご覧ください。

詳細から知りたい方向け
・[【サンプルコードあり】SwiftUI×CoreDataでメモアプリを作ってみた#1 導入編](https://tomatechnote.com/%e3%80%90%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%82%b3%e3%83%bc%e3%83%89%e3%81%82%e3%82%8a%e3%80%91swiftuixcoredata%e3%81%a7%e3%83%a1%e3%83%a2%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e4%bd%9c/)

サンプルアプリ作成から知りたい方向け
・[【サンプルコードあり】SwiftUI×CoreDataでメモアプリを作ってみた#2 実装編](http://tomatechnote.com/%E3%80%90%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%81%82%E3%82%8A%E3%80%91swiftuixcoredata%E3%81%A7%E3%83%A1%E3%83%A2%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C-2/)
【レスポンシブ】折り返されるカラムレイアウト（Ant Design）

<h1>概要</h1>

Reactでフロントエンド画面開発中、外側の枠（もとい画面幅）に合わせて折りたたまれるカラムレイアウトを記述したところ中々使い勝手が良く好評でしたのでご紹介します。
動作イメージは下記画像の通り。

![ResponsiveMultiColumnLayout.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3516891/16cea551-894f-1e05-26c1-dbb526a6b7d2.png)

基本的には外枠一杯に広がり、欲しいカラム数で横幅が等分されます。
カラムに設定された最小幅を下回ると自動で折り返されます。

<h1>コード</h1>

Ant DesignライブラリのRow,Colを使用します。

``` tsx
import {Row, Col } from 'antd';

const ResponsiveMultiColumnLayout: React.FC = () => {
  const columns = 3; //何列カラムにするか

  return (
      <Row>
        {Array.from({ length: columns }, (_, i) => i).map((col) => (
          <Col key={col} style={{
              flex: `1 1 ${100 / columns}%`,
              boxSizing: 'border-box',
              minWidth: '300px' // 最小幅は適切に調整
            }}>
            This is Column ${col+1}
          </Col >
        ))}
      </Row >
  );
};
```

上記コードは画像イメージと異なりボーダーの着色等はしていませんので、用途に合わせてカスタマイズいただけますと幸いです。
asdfでPythonだけパスが通ってない時

## 環境
- Apple M2 Max
- macOS Sequoia 15.3.1

```zsh
-> % asdf --version
asdf version 0.16.5
-> % zsh --version
zsh 5.9 (x86_64-apple-darwin21.3.0)
```

## Pythonだけasdfじゃないんすけど

バージョン管理ツールasdfにPython、Ruby、nodeを入れて使っています。ところが。

```zsh
-> % which ruby
/Users/saitoh/.asdf/shims/ruby
-> % which node
/Users/saitoh/.asdf/shims/node

-> % which python
python: aliased to python3
-> % which python3
/usr/local/bin/python3
```

```zsh
-> % python --version
Python 3.13.2
-> % python3 --version
Python 3.13.2
```

brewで入れたPythonを読んでしまっている……

## whereコマンド使ってみる

```zsh
-> % where ruby
/Users/saitoh/.asdf/shims/ruby
/Users/saitoh/.asdf/shims/ruby
/usr/bin/ruby

-> % where python3
/usr/local/bin/python3
/usr/bin/python3
```

asdfが当たっていないことがわかった。

## .zshrcにPATH追記

.zshrcを開くよ

```zsh

-> % vi ~/.zshrc

```

`
export PATH="$HOME/.asdf/shims:$PATH"
` を追記

`:wq`で保存して、

```zsh
-> % source ~/.zshrc
```

PATHを~/.zshrcに追加したので、sourceコマンドで再読み込み、どうよ

```zsh
-> % which python3
/usr/local/bin/python3
```

ち〜ん（笑）

## .asdf/shims/を見にいく

rubyとnodeはちゃんとasdfが読まれてるんだよな。じゃあ、`.asdf/shims`を見に行けば、何かわかるかもしれない。

```.asdf/shims/ruby
#!/usr/bin/env bash
# asdf-plugin: ruby 3.2.1
# asdf-plugin: ruby 3.1.2
exec asdf exec "ruby" "$@"
```

ふむ。pythonはっと…

ん？`.asdf/shims/python`がなく、代わりに`.asdf/shims/python3.13`ってのがある。

```.asdf/shims/python3.13
#!/usr/bin/env bash
# asdf-plugin: python 3.13.2
exec asdf exec "python3.13" "$@"
```

え、ってことはもしかして…

```zsh
-> % which python3.13 
/Users/saitoh/.asdf/shims/python3.13
```

なるほどね。ってことは、`.asdf/shims/python`ってのを作ってあげて、同様の内容を書けばいいのでは？

```zsh
-> % touch .asdf/shims/python
-> % vi .asdf/shims/python
```

以下を追記

```.asdf/shims/python
#!/usr/bin/env bash
# asdf-plugin: python 3.13.2
exec asdf exec "python" "$@"
```


これでどうよ


```zsh
-> % which python3
/usr/local/bin/python3
```

ち〜ん（笑）

## .zshrcのaliasコメントアウト

`.zshrc`をもう一度見直す

pythonコマンドはそもそもaliasを入れている

```~/.zshrc
# Python3のalias
alias python='python3'
alias pip='pip3'
```

あ、これじゃね？
`#alias python='python3'`とコメントアウトして、`exec $SHELL -l`で再起動

```zsh
-> % which python
/Users/saitoh/.asdf/shims/python
```

やったぜ。

## まとめ

- `.asdf/shims/python`が無かったのと、`~/.zshrc`に書いたaliasが原因だった。
- aliasでpython→python3を読みにいく→python3の場所は
/usr/local/bin/python3。これで、asdfのpythonが読まれなかった。

## 追記（asdfのpluginを入れ直す）

- その後、`.asdf/shims/python`が再度消える現象が発生した。
- そもそも、asdfのpluginをアンインストール→インストールして、入れ直せばよかった。

```zsh
-> % asdf plugin remove python # プラグイン削除
-> % asdf plugin add python # プラグイン追加
-> % asdf install python 3.13.2 # LTSのPythonをインストール
-> % asdf set -u python 3.13.2 # グローバルで使えるように設定
-> % which python
/Users/saitoh/.asdf/shims/python
```

## 参考にしたページ

- [asdfを使ってrailsのプロジェクトを作るまで](https://qiita.com/_____nari/items/293c1684352a4c4ce439)
- [asdf でバージョン管理](https://zenn.dev/hayato94087/articles/46e841cbfca8ec)
    - asdfはv0.16.0以降でコマンドが変更になっており、2025年3月現在ではこの記事が見やすかったです。
[動画解説付き] Oracle NetSuite 日本固有機能 (SuiteApp) バージョン25.00.0 リリース内容の概要ご紹介

※本内容は、NetSuite 日本語コミュニティにて2025年3月10日に公開した資料 [NetSuite 2025.1 リリース内容のご紹介_20250310 (Japan Localization追加).pdf」](https://us.v-cdn.net/6032262/uploads/N32V7NZ0GG5D/netsuite-2025-1-e3-83-aa-e3-83-aa-e3-83-bc-e3-82-b9-e5-86-85-e5-ae-b9-e3-81-ae-e3-81-94-e7-b4-b9-e4-bb-8b-20250310-28japan-localization-e8-bf-bd-e5-8a-a0-29.pdf)をもとにしています。その解説動画も [NetSuite日本語コミュニティのリリース2025.1主要なアップデート](https://community.oracle.com/netsuite/japanese/discussion/4504569/%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B92025-1%E4%B8%BB%E8%A6%81%E3%81%AA%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88) にてぜひご確認下さい。なお、[Qiitaの記事](https://qiita.com/fujitak/items/90ba19655d90aa1d34dd)にて、コミュニティのアカウントをお持ちの無い方でも動画を視聴頂けますが、ぜひコミュニティのアカウントを作成下さい。

※3月11日追記： 日本固有機能 (SuiteApp)に関する解説動画を、本記事に追加致しました。

https://videohub.oracle.com/id/1_y5mn91ib?width=400&height=285&playerId=54927922


**はじめに**

NetSuiteでは、日本国内のビジネスに対応するために「日本向けローカライゼーション（Japan Localization）」という追加機能（SuiteApp）を提供しています。2025年3月18日に、サンドボックスおよびプレビュー環境へ、4月8日に本番環境へ、日本向けローカライゼーションSuiteAppバージョン25.00.0がリリースされる予定でして、いくつか新しい機能や変更点が加わります。

本記事では、「締め請求書の削除」に関わる機能強化をご紹介します。
    <br>
**A. 今回のリリースのポイント**

1.	売掛金調整トランザクションを「戻入」で対応できるように
締め請求書の削除時、それに紐付いている売掛金調整トランザクションを「削除」するのではなく、「戻入処理（反対仕訳の自動作成）」で取り消せるようになりました。今後は転記済仕訳（売掛金調整トランザクション）の物理削除を避け、反対仕訳による戻入処理（取消処理）をすることで、電子帳簿保存法の「優良な電子帳簿」の要件にも対応します。
2.	管理画面に新たなチェックボックス「売掛金調整の戻入」を追加
OneWorld環境では「子会社レコード」、OneWorldでない環境では「会社情報ページ」の日本向けローカライゼーション・サブタブにチェックボックスが追加されています。これを有効にすると、締め請求書を削除する際に自動で戻入処理が実行されます。
3.	「削除理由」の入力に対応
お客様の選択によっては締め請求書の削除ボタンを押すと、理由を選択・入力する画面が表示されます。理由をきちんと記録することで、後々の監査にも役立ちます。

    <br>
**B. 具体的な新機能の操作の流れ**

2.1 締め請求書削除時の戻入処理
1.	締め請求書を削除
編集画面で「削除」ボタンを押します。
2.	削除理由を入力（有効にしている場合）
「削除理由を使用」設定がオンの場合は、削除理由画面が表示されます。
3.	自動で反対仕訳（戻入）を作成
削除と同時に、売掛金調整の反対トランザクションが自動で作成されます。元の売掛金調整を物理的に消すのではなく、“打ち消す形”で取り消しするので、仕訳の履歴がしっかり残ります。
4.	締め請求書は完全に削除
戻入処理と同時に、もとの締め請求書自体のレコードは削除されます。

2.2 「売掛金調整の戻入」の使用可否の設定
•	管理者ロールのみ設定可
チェックボックスのオン/オフは、アカウントに対して管理権限を持つ担当者のみ操作できます。
•	デフォルトはオフ
何も変更しなければ従来通り、売掛金調整トランザクションは削除されます。本新機能を使いたい場合は、チェックを入れて下さい。
    <br>

**C. この機能を使用するメリット**
•	監査証跡の確保
売掛金調整の仕訳そのものを削除せず、対になる仕訳を発生させることで履歴（監査証跡）を保ちやすくなります。この機能を有効にした場合、締め請求書の削除後、従来の「売掛金調整トランザクション」を開くと、そこに反対仕訳として自動生成されたトランザクションが紐付けられています。監査証跡として明細が残る形になります。
    <br>

**D. ご注意頂きたいポイント**
1.	チェックボックスの設定
この機能を使用頂く場合は、「売掛金調整の戻入」を有効にする必要があります。
2.	保存検索の活用（任意）
「税金コード別売上」レポートに、売掛金調整カスタムトランザクションで計上される仮受消費税や消費税額を表示させる必要がある場合は、保存検索を使用して、調整金額を検索・集計します。
「税金コード別売上」レポートに、上記保存検索で集計した税額を反映するためには、適切なタイミング（月次・年次など）での仕訳帳の作成が必要です。
この作業により、消費税申告書に必要となる消費税率ごとの売上金額と消費税額が「税金コード別売上」レポートで表示できるようになります。
    <br>


以上が、「日本向けローカライゼーションSuiteAppバージョン25.00.0」の新機能である、「売掛金調整トランザクションの戻入対応」の概要です。ご活用いただけますと幸いです。
はじめてのカンファレンスイベント #きのこ2025

就活終わったし、なんかエンジニアのイベント行って勉強するか。という低いモチベで、**エンジニアがこの先生きのこるためのカンファレンス2025** (きのこ2025) に参加してみた。

## きのこ2025
任意団体・きのこカンファレンス実行委員会さん主催。

https://kinoko-conf.dev/

まずこの時点で驚いた。**任意団体で12社スポンサー集めてイベント開く** って本当にすごい。普通こういうイベントは長い間コツコツとやってきてNPO法人だの何らかの社会的信用を得られるエンブレムをゲットして成長していくものだと思っていたので、相当な努力を重ねて開催まで踏み切ったのだろう、と思った。
運営の皆さん、ありがとうございました。

### 印象に残ったもの一覧
当日行われた各種発表のうち、特に印象に残った2つのプレゼン

#### 生成AIがローコードツールになる時代のエンジニアの役割を考える
和田 一洋さん

https://speakerdeck.com/khwada/sheng-cheng-aigarokodoturuninarushi-dai-no-enzinianoyi-ge-wokao-eru

ここ最近のカンファレンスでは言及せざるを得ない生成AIの話題。今後エンジニアはどう向き合えばいいのか、どう活かせばいいのか、というのはやはり先輩方の間でも話題になるようで、AI系のプレゼンは複数みられた。

プレゼン内で挙げられていた「仮説」はとても面白いもので、自分のキャリアパスを考える上では大きなヒントになるだろうなと思った。

また、「キャリアというものは偶然によって8割が左右される」というワードはかなり自分に刺さった。自分の就活そのものだったから。

#### エンジニアのキャリアパスと、 その中で自分が大切にしていること 
濱田 裕太さん

https://speakerdeck.com/noteinc/enzinianokiyariapasuto-sonozhong-dezi-fen-gada-qie-nisiteirukoto

自主制作のWebサイトを作る際、noteのデザインは参考にしたことがある。誰がどんな記事を書いても、必ず見やすくなる洗練されたnoteのデザインは、相当考えこまれたものなんだろうなと思っていたので、個人的に注目していた。

今回のプレゼンの中で一番 **プレゼン資料が見やすかった。** 伝えたいことがスッと頭に入ってきて、さすがnoteの人だと感動した。

終了後の懇談会で、本人にお話を聞いてみたところ、わざわざプレゼン資料をPCから取り出して、プレゼンの作り方まで教えていただいた。
本当にありがとうございます。

---

このイベントは、登壇者が40代以上限定という、ある程度エンジニア歴がある方向けのイベントで、自分のような学生はおそらく少数だったようだが、面白い話をたくさん聞けたのでヨシ！

今はまだこれといったキャリアの方向性も無ければ、やってみたい技術もない。自主制作でやってみたいことはあるけど、まず卒業研究しなきゃいけない。就職して、新卒研修乗り切って、エンジニアという仕事に関する解像度がもう少し上がったら、また行ってみたい。

運営の皆さん、お話聞かせていただいた皆さん、ありがとうございました。
[奮闘記] VSCodeからライトセーバーみたいな音がする！？

# 概要
環境：Win11
VSCode (Virtual Studio Code) で作業していたら、急に
**「フォン」**
と音がなった

何かの聞き間違いかと思っていたのだが、ターミナルでgit ~をするたび確実に鳴っている
何も設定をいじった覚えがないのだが...
しばらく奮闘して解決できたので、謎の音がならないようにする方法を残します。

# 解決方法
1\. VSCodeの設定を開く(任意の画面で `Ctrl`+`,` )
2\. 設定の検索に`Accessibility`と入力
3\. 項目の'sound'を`off`に変更 or `Volume`を`0`に変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4032047/95652c5d-8054-43f9-83e8-f7e53c1c3ffa.png)

# 最後に
長いことVSCodeを使ってきたのに音が鳴るなんてしらなかった...
どうやら、'accessibility.signals'はデフォルトで`auto`に設定されているらしい[\[1\]](https://qiita.com/Yorozuya59/items/de5df03957244cb56b00)
ターミナルコマンドが失敗した時や、成功した時など、音を鳴らすタイミングを細かく設定できるみたい
私は別に音がならなくても良いので、Volumeを0にすることで解決しました。

同じようなことで困っている方の助けになれば幸いです
mapの概念の理解の仕方

# mapはなんでmapなのか？地図と関連あるのか？
mapの語源は地図ではない。数学用語のmapping、写像から来ている。
## 写像ってなに？
集合A、集合Bがあった時、集合Aに属しているaに対して、集合Bの要素を一つ返すような関数を写像という。
### 結局写像って何よ？
入力値がいっぱいある関数のこと

# それでどうやってrubyのmapと結びつければいい
入力値がいっぱいある集団をまとめて変更し、出力してくれる便利な魔法がmap

https://manabitimes.jp/math/2511
Cursorでローカルのpostgresをmcpサーバーとして使う方法

## はじめに
今日から業務でCursorが使えるようになったことで、早速MCPサーバーを繋げてみました。
Dockerに上がっているPostgreSQLのサーバーを設定していけた方法を残します!!


## 手順
1. [Cursor Settings] -> [MCP] -> [Add new MCP Server]

2. nameはなんでも、typeは `command`、commandは
    ```
    npx -y @modelcontextprotocol/server-postgres postgresql://[ユーザー名]:[パスワード]@localhost:5432/[DB名]
    ```

3. これでエラーが出る場合は以下のコマンドで権限付与の必要があります！（Mac）
sudo chown -R 501:20 "/Users/[ユーザー名]/.npm"

## 確認
こんなふうに緑の丸がついていれば使えるようになります。

![Screenshot 2025-03-10 at 13.23.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754242/1c2c6bdf-cdf2-4e43-b3a0-a5a8bc4ed597.png)

ちなみにですが、CursorではagentモードでだけMCPサーバーが使えます。
もしどれだけ言ってもAIがMCPを参照しない場合はモードの確認が必要かもしれません

![Screenshot 2025-03-10 at 13.25.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754242/afe9da9b-7290-4b51-af95-17da3a596ec7.png)
ネットワーク入門：グローバルIPアドレスとプライベートIPアドレスの違いを体系的にまとめてみた

## はじめに
インターネットやローカルネットワークを利用する際に重要なのが **IPアドレス** です。

:::note info
IPアドレスには **グローバルIPアドレス** と **プライベートIPアドレス** の2種類があり、それぞれ異なる用途と特徴を持ちます。
:::

本記事では、それらの違いや役割について詳しく解説します。

## グローバルIPアドレスとは
### 概要
グローバルIPアドレスは、**インターネット上で一意に割り当てられるIPアドレス** です。インターネットを介して通信する際に、各デバイスやネットワークが識別されるために使用されます。

### 特徴
- **世界中でユニーク**：インターネット上で同じグローバルIPアドレスは存在しません。
- **ISP（インターネットサービスプロバイダ）から提供**：一般的に、インターネット回線契約時にプロバイダから動的または静的なグローバルIPが割り当てられます。
- **外部からのアクセスが可能**：サーバーやリモートアクセスを提供する際に利用されます。

### 使用例
- Webサーバー、メールサーバーなどの公開サービス
- VPN接続やリモートアクセス
- クラウドサービスの利用

### 注意点
- **セキュリティリスク**：インターネット上に公開されているため、攻撃の対象になりやすい。
- **IPv4の枯渇**：IPv4アドレスは限られており、新規取得が難しくなっている。

https://www.ugtop.com/spill.shtml

## プライベートIPアドレスとは
### 概要
プライベートIPアドレスは、**ローカルネットワーク内（家庭や企業のネットワークなど）で利用されるIPアドレス** です。これらはインターネット上で直接使用されず、同じIPアドレスが異なるネットワークで再利用可能です。

### 特徴
- **インターネット上で一意ではない**：異なるネットワーク内では同じアドレスが使えます。
- **NAT（ネットワークアドレス変換）を使用**：インターネットへアクセスする際は、ルーターがプライベートIPをグローバルIPに変換します。
- **セキュアな環境**：外部から直接アクセスされることがないため、安全性が高い。

### プライベートIPの範囲（IPv4）
| クラス | 範囲 |
|--------|----------------|
| クラスA | 10.0.0.0 ～ 10.255.255.255 |
| クラスB | 172.16.0.0 ～ 172.31.255.255 |
| クラスC | 192.168.0.0 ～ 192.168.255.255 |

https://atmarkit.itmedia.co.jp/ait/articles/1412/25/news029.html

### 使用例
- 家庭用ルーターの内部ネットワーク
- 企業内ネットワーク（LAN）
- データセンターやクラウド環境の内部通信

### 注意点
- **直接インターネットに接続できない**：外部と通信するにはNATが必要。
- **IPアドレスの管理が必要**：ネットワーク内で重複が起こらないよう注意が必要。

## グローバルIPとプライベートIPの比較
| 項目 | グローバルIPアドレス | プライベートIPアドレス |
|------|----------------|----------------|
| ユニーク性 | 世界中で一意 | ネットワークごとに再利用可能 |
| 割り当て | ISPから提供 | ルーターなどで自動割り当て |
| セキュリティ | 外部からのアクセス可能（リスク高） | 外部からのアクセス不可（安全） |
| 使用範囲 | インターネット通信 | ローカルネットワーク通信 |
| NATの必要性 | 不要 | 必要（インターネット通信時） |

## まとめ
グローバルIPアドレスとプライベートIPアドレスは、それぞれ異なる目的で使用されます。

:::note warn
インターネット上で公開サービスを提供する場合は **グローバルIP**、家庭や企業のネットワークで内部通信を行う場合は **プライベートIP** を利用します。
:::

それぞれの特性を理解し、適切に活用することで、より効率的で安全なネットワーク環境を構築できます。
よく使うGITコマンドメモ


## 一番最新COMMIT引き戻し（変更事項維持）
git reset --soft HEAD~1

## 一番最新COMMIT引き戻し（変更事項削除）
git reset --hard HEAD~1

## 一番最新COMMITメッセージ修正
git commit --amend -m "新しいメッセージ"

## ADD引き戻し（変更事項維持）
git restore --staged ファイル名

## 変更事項を戻す（最新COMIITした時点に戻る）
git checkout ファイル名

## conflict解消手順
### 状況
① リモートーにあるAブランチをPULLして、ロカルでBブランチを作って作業していた。
② 作業完了して、もうAブランチにマージしようかな〜とリモートにPUSH。
③ マージリクエストまで作成したのにマージが出来ないって。
④ 誰かが私の作業ファイルと同じファイルを修正し、私より早くAブランチにマージしていた。

### conflict解消法

① ロカルでAブランチに移動
git checkout Aブランチ

② 最新内容をPULLして貰う。
git pull

③ Bブランチに移動
git checkout Bブランチ

④ BブランチにAブランチをマージ
git merge Aブランチ
こうすると、Conflictがありマージできなかったとメッセージが出る。

④ CONFLICTになったファイル確認
git status

⑤ コンフリクト解消
④で確認したファイルを開き、ファイルの中身を修正。

⑥修正完了したら、そのファイルをadd, commit, pushする。
Pythonの命名規約

## はじめに
Pythonの命名規約についてまとめてみました。
PEP8では、Pythonコードの命名において、どの表記方法を用いるべきか定義しています。ここでは、用途とそれに合わせた表記方法を一覧にして説明します。一覧のなかで出てくる一般的な命名の表記方法は次の通りです。

## 表記方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387980/681b9a49-e9d4-440a-8ef2-ae840f0f3385.png)

## PEP8での命名規約
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387980/851510d9-6898-42cc-833c-69653f747f12.png)

PEP8の命名規約で重視されているのは「実装よりも使い方を表した名前」にすることです。命名に迷ったときは、標準ライブラリや公開されているサードパーティライブラリの命名を参考にしてみるのもよいでしょう。

※PEP8とは
https://qiita.com/eric50905/items/5a98219bc9b87e732d18

## おわりに
ここまで読んでいただきありがとうございます！

## 参考文献
Pythonエンジニア育成推進協会監修 Python実践レシピ 単行本（ソフトカバー） – 2022/1/19
鈴木 たかのり (著), 筒井 隆次 (著), 寺田 学 (著), 杉田 雅子 (著), 門脇 諭 (著), 福田 隼也 (著)
p.024
DeepSeek-R1をローカルで動かす！初心者でもできるセットアップガイド

## はじめに
DeepSeek-R1は、深層学習を用いて、複雑なパターン認識やデータ処理を行うためのツールです。本記事では、DeepSeek-R1をローカル環境で実行するための手順を紹介します。ローカルでの実行方法を理解することで、インターネット環境がなくても、安定してツールを使用できます。

## 必要な環境
まず、DeepSeek-R1をローカルで動作させるために必要な環境を整えましょう。以下の項目を確認してください。

オペレーティングシステム: Linux（Ubuntu推奨）、macOS、Windows
Python: バージョン3.7以上
依存ライブラリ: 必要なPythonパッケージ（後述のインストール手順で紹介）
GPU（オプション）: 高速化を図るため、GPUがあるとより効果的
## インストール手順
Pythonのインストール まず、Python 3.7以上がインストールされていることを確認します。インストールされていない場合は、[Python公式サイト](https://www.python.org/)からインストールしてください。 

仮想環境の作成（推奨） Pythonの仮想環境を作成することで、依存関係が他のプロジェクトと干渉しないように管理できます。

```bash
コピーする
python -m venv deepseek-env
source deepseek-env/bin/activate  # Linux/macOS
deepseek-env\Scripts\activate  # Windows
```
必要なライブラリのインストール DeepSeek-R1を実行するために、いくつかのPythonライブラリをインストールします。以下のコマンドでインストールできます。

```bash
コピーする
pip install tensorflow numpy pandas matplotlib
DeepSeek-R1のインストール GitHubからDeepSeek-R1のリポジトリをクローンし、ローカルにコピーします。
```

```bash
コピーする
git clone https://github.com/username/DeepSeek-R1.git
cd DeepSeek-R1
```
必要なモデルやデータのダウンロード DeepSeek-R1が依存するモデルやデータをダウンロードします。これには、公式ドキュメントやリポジトリに記載されているリンクを利用してください。

## 実行方法
DeepSeek-R1をローカルで実行するためには、以下の手順に従ってコマンドを実行します。

Pythonスクリプトの実行 実行したいスクリプトを指定して、以下のようにコマンドを入力します。

```bash
コピーする
python deepseek.py
```
GPUを使用する場合 GPUを使用する場合、TensorFlowがGPUに対応していることを確認してください。GPUを有効にするためには、CUDAやcuDNNが必要です。これらをインストールした後、DeepSeek-R1は自動的にGPUを使用します。

トラブルシューティング
依存関係のエラー: 必要なライブラリが不足している場合、pip installでインストールしているライブラリを確認し、再インストールしてください。
GPUが認識されない: CUDAやcuDNNのバージョンが合っていない場合、TensorFlowがGPUを認識しません。公式のインストールガイドに従い、インストールを確認してください。
## まとめ
以上が、DeepSeek-R1をローカル環境で実行するための基本的な手順です。ローカル実行環境を整えることで、インターネット接続がなくても、効率的にDeepSeek-R1を使用することができます。さらに進んだ使用方法やカスタマイズ方法については、公式ドキュメントを参照し、最適な設定を見つけてください。



## おすすめのAIツール
画像生成・加工
EX-AI
テキストから画像を生成できるAIツール。独自のアートワークやプロジェクトに使える画像を作成可能。
高品質なアートや画像を生成できるAI。クリエイティブなビジュアルコンテンツを作りたいときにおすすめ。
[無料体験も提供いるので参考してください。](http://ai.tencho-ex.com)
Gitコマンドを使いこなしてみる！（基本操作）

## 背景
今までSourcetreeを使ってたけど、
コマンドの方がなんかかっこいいし、作業が早くなるらしいので練習中です！
この記事では自分が学んだ基本的なコマンドを紹介します！

## CUIのメリット
- **キーボードで完結** するので作業が早い！
- **GUIではできない、やりづらいこと** が簡単に（？）できる
    - 例
        -  `merge` の取り消し（ `revert`）
        -  過去コミットの編集
        -  etc..
- **なんと言ってもかっこいい**

## **1. ブランチの操作**

### **ブランチを作る**
**新しいブランチを作る（今のブランチのまま）**
```sh
git branch 新しいブランチ名
```
**新しいブランチを作成して、そのブランチに移動する**
```sh
git switch -c 新しいブランチ名
```

### **リモートブランチを持ってくる**
```sh
git fetch
git switch リモートブランチ名
```
- `git fetch` でリモートの情報を取得し、`checkout` で移動

### **ブランチを移動する**
```sh
git switch ブランチ名
```
- `checkout` は古くて、今は`switch` の方が推奨されてる！（移動に特化）

### **現在いるブランチを確認する**
```sh
git branch --show-current
```

## **2. 変更の確認 (`git status` & `git diff`)**

### **変更の一覧を確認**
```sh
git status
```
- 変更されたファイル、ステージング済みのファイルが分かる

### **変更の内容を確認**
```sh
git diff
```
- どこを変更したのかを表示
- ワークツリーの変更を見る

### **ステージング済みの変更を確認**
```sh
git diff --staged
```
- `git add` した後の変更を見る

---

## **3. 変更の適用 (`git add`, `git commit`, `git push`)**

### **変更をステージングする**
```sh
git add ファイル名
```
- ファイル名の箇所を`.`にすることですべての変更をステージング

### **コミットする**
```sh
git commit -m "コミットメッセージ"
```
- `-m` なしの場合、エディタが開いてメッセージを入力
（コミット内容が長文な時はこっちがいいかも）

### **リモートにプッシュする**
```sh
git push -u origin ブランチ名
```
- `-u`をつけることで、次回以降は`git push`のみでよくなる

## **4. 変更の取り消し (`git restore`, `git reset`)**

**「変更を取り消したい！」と思ったときの対応方法**

| 状況 | コマンド | 説明 |
|------|--------|------|
| まだ `git add` してない変更を取り消したい | `git restore ファイル名` | ワークツリーの変更を元に戻す |
| ステージングしたけど取り消したい | `git reset HEAD ファイル名` | ステージングから外す（変更は残る） |
| コミットごと取り消したい（変更は残す） | `git reset --soft HEAD~1` | コミットを削除して、変更はステージングに戻す |
| コミットごと取り消して、ステージングも解除（変更は残る） | `git reset --mixed HEAD~1` | コミットを削除して、変更はワークツリーに戻す |
| コミットごと取り消して、変更もすべて削除 | `git reset --hard HEAD~1` | **完全に元に戻す（注意！）** |

💡 `HEAD~1` は「1つ前のコミット」という意味  
💡 `git reset --hard` は **変更が完全に消える** ので、使う前に確認！

## まとめ
基本的？な内容を一覧にしましたが、
別記事でトラブル対応編を書こうと思います！
もし間違えている箇所あればすみませんがご指摘ください、、！
閲覧ありがとうございました！
【初心者向け】pipとは？使い方を解説！


# はじめに
pip（Python Package Installer）は、Pythonのパッケージを管理するためのツールです。
Pythonで必要なライブラリをインストール、アップグレード、アンインストールする際に使用します。

pipを使うと、Pythonの公式パッケージリポジトリ PyPI（Python Package Index） から簡単にライブラリを取得できます。
Python 3.4以降では、pipがデフォルトでインストールされています。
もし古いバージョンのPythonを使っている場合は、pipを手動でインストールする必要があります。

# pipの基本的な使い方
## pipがインストールされているか確認
ターミナル（Mac/Linux）またはコマンドプロンプト（Windows）で、次のコマンドを実行します。

``` 
pip --version
```
これにより、現在インストールされているpipのバージョンが表示されます。

もし「pipコマンドが見つかりません」と表示された場合は、pipをインストールする必要があります。

## パッケージをインストール
Pythonのライブラリをインストールするには、次のコマンドを実行します。

```
pip install パッケージ名
```

例えば、データ解析に便利なpandasをインストールする場合は、以下のように入力します。
```
pip install pandas
```
## 特定のバージョンをインストール
特定のバージョンのパッケージをインストールしたい場合は、次のようにバージョンを指定します。

```
pip install パッケージ名==バージョン
```
例: biopythonのバージョン1.79をインストールする場合

```
pip install biopython==1.79
```
## パッケージをアップグレード
すでにインストール済みのパッケージを最新バージョンに更新するには、次のコマンドを実行します。

```
pip install --upgrade パッケージ名
```

## パッケージをアンインストール
不要になったパッケージを削除するには、以下のコマンドを使います。

```
pip uninstall パッケージ名
```
例: biopythonを削除する場合

```
pip uninstall biopython
```

## インストール済みパッケージの一覧を確認
現在インストールされているPythonパッケージの一覧を表示するには、以下のコマンドを使用します。

```
pip list
```

## パッケージを検索
PyPIで特定のパッケージを検索するには、以下のコマンドを実行します。

```
pip search パッケージ名
```
例: biopythonを検索する場合

```
pip search biopython
```
⚠️ 注意
このコマンドはPyPIのパフォーマンス向上のため、一部の環境では無効になっている場合があります。

## requirements.txt から一括インストール
プロジェクトで使用するパッケージをrequirements.txtにまとめておくと、一括でインストールできます。

```
pip install -r requirements.txt
```
requirements.txtの例:
```
biopython==1.79
numpy==1.21.0
pandas==1.3.0
```

# まとめ
pip はPythonのパッケージを管理するための便利なツールで、ライブラリのインストール・更新・削除を簡単に行えます。
【Splunk】Splunkのユーザーとロールについてまとめる

こんばんは。torippy2024です。
本日は、splunkのユーザーとロールについて学びます。
そこまで一般的な製品の概念と異なることはないのですが、どのような機能があって、どのような機能がないと、設計時に困る場合があると思います。
特に、ロールに付与するアクセス権限はインデックス単位となることに注意しておかないと、利用を開始してからアクセス権を思った通りにできない、といった事態に陥る可能性もあるので、注意が必要かもしれません。

## Splunkにおけるユーザーとロールとは

Splunkにおいて、ユーザーとロールの概念は以下のようになります。
ユーザーが、ログインをするためのアカウントとなります。
ロールは、そのユーザーに対してSplunkの機能へのアクセス権を定めるものとなります。
一つのユーザーは、複数のロールを持つことができます。ロールに付与されるアクセス権はallow list方式となります。(ロールによるアクセス許可は、必要な権限を許可していくように設定され、特定の権限を拒否するような設定はできません)

![20250310_qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684500/cdafad89-1fdf-4c41-abdc-17b7333ddf3e.png)

少し専門的な表現をすると、ユーザーは認証(Authentication)を実現するための機能を持ち、ロールは認可(Authorization)を実現するための機能を備えている、ということになります。


## ユーザーが持つ属性

Splunkを利用する上では、利用者はユーザーアカウントを使ってログインを行います。
しかしながら、実はユーザー自身が持っている属性はあまり多くありません。
名前(name)、パスワード(password)、ロールの割り当て(Assign roles)が最も重要な属性です。

![スクリーンショット 2025-03-10 11.18.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684500/80cfe835-3c6b-4166-9a21-43c5621efa45.png)

上記において、タイムゾーン(Time zone)も重要な属性になるのですが、タイムゾーンはユーザーがログイン後自分自身で変更できるため、設計時点で考慮しなければならない事項ではないと思われます。

## ロールとは

ロールは、ユーザーに対するアクセス権を決定するものです。このアクセス権に関する属性は以下の
5つがあります。(資格試験でも出題されることがあるので覚えておいても良いかもしれません)
- 1.継承(Inheritance)
- 2.権限(Capabilities)
- 3.インデックス(Indexes)
- 4.制限(Restrictions)
- 5.リソース(Resources)

最初に設計すべき属性は1-3です。4,5は必要な時に設定する属性で、初期設計時は必要な要件がないのであれば何も設定せずに良いと思います。

![スクリーンショット 2025-03-10 11.18.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684500/23a7a520-a1f3-4127-bdd6-172ba1e4cd89.png)

重要な属性が2.権限(Capabilities)と3.インデックス(Indexes)です。
2.権限(Capabilities)を効率的に設定するために1.継承(Inheritance)を使います。

2.権限(Capabilities)は、Splunkで使用可能な機能を定める属性です。以下に項目の一覧が記載されています。ただ項目が非常に多く、ゼロから設計するのは非常に大変なので、このために1.継承(Inheritance)を使って、既存のロール(powerやuserなど)を使ってベースラインとなる権限を継承した上で、必要な機能を付与するように設計するのがよいと思います。

Define roles on the Splunk platform with capabilities
https://docs.splunk.com/Documentation/Splunk/latest/Security/Rolesandcapabilities

3.インデックス(Indexes)は、インデックスに対するアクセス権を定める属性です。
新しくインデックスを作成しただけだと、他のロールがそのインデックスに対してアクセス権を持たない可能性があり、ここで忘れずに必要なロールに対するアクセス権を設定する必要があります。

また、ユーザー/ロールを設計する段階の知識があれば言うまでもないことかもしれませんが、Splunkにおいて、データをアクセスする権限を分割したい場合は、インデックスを分けた上で、そのインデックスにアクセスできるロールを別に作成する必要があります。
同じインデックスに格納されているデータは同じロールで参照できてしまうことには注意が必要です。

## 公式ドキュメント

Splunkの公式ドキュメントのリンクは以下です。

Manage Splunk platform users and roles
https://docs.splunk.com/Documentation/Splunk/latest/Security/UseaccesscontroltosecureSplunkdata
[🔰初心者向け]Gitを初歩から学びたい方へ⚙️ ~全7回~

## はじめに
こんにちは！ITスクールRareTECHにてCS（Customer Support）を担当している池村です。
今回の記事は過去に私が投稿したGitの記事のまとめ記事になります。Gitを初めて触れる方は、まずシェルをいじれる必要があるので、以下の記事を読んでから触ってみるのをオススメします。

https://qiita.com/ikemura-ren/items/3e7b6ec1b0cd9b3928d6

![00e2cf23-fe68-4501-9c3d-9795f5be1f4f_720.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/834e005e-ff30-44d4-a472-7d9da2a8d90f.png)

:::note info
うーん、この中央のキャラのパチモン感、、😗
:::



## アカウントを作成しよう
なんといっても、まずはここから！
gitHubのアカウントを作成しないとどうにもなりません。

https://qiita.com/ikemura-ren/items/b0d02af934853dc5fbde

## 実際に使ってみよう
クローンまでできたら、ここから本格的にGitのコマンドを実行していきます！
まずはローカルでファイルを編集して、リモートに反映させるまでをやってみましょう！

https://qiita.com/ikemura-ren/items/82f096910aef0f5cdcf3

## ブランチの概念を知ろう
さて、ブランチという概念を知る必要があります。
ブランチを切って作業をする。基本のキです。

https://qiita.com/ikemura-ren/items/df4cfc534be61fa9c6ba

## 差分確認、やり直しを体験しよう
ここからは少し難しくなりますが、変更したファイルの差分を見たり、コミットの履歴を見たり、コミットを取り消したりと、応用に入っていきます。

https://qiita.com/ikemura-ren/items/dcdf6dadb11c9a554e1a

## やり直しをさらに体験していこう
この記事では、さらに作業のやり直し、退避などを経験してください。
思ったより色々なやり方が存在します！

https://qiita.com/ikemura-ren/items/743fa214d14cd4394187

## コミットの内容をしっかり確認
こちらの記事では、コミットについて少し深ぼっております。よく使うコマンドは`show`のみですが、他のコマンドもしっかり押さえておきましょう

https://qiita.com/ikemura-ren/items/485f8ea83015c078b3a6

## ブランチ戦略について学ぼう
Gitのコマンド操作に慣れてきたら、ブランチ戦略を学んでいきましょう。
ブランチは開発者によって作成が容易なので、ルールがとっ散らかりがちです。こちらの記事で運用方法を学んでいきましょう。

https://qiita.com/ikemura-ren/items/e2cca3b5bac169305615

## おわりに
今回はGit関連の知識をまとめてみました。
初心者はまずこれくらいの知識を身につける必要があります。コードを書けるだけではまだまだ先は長いです。頑張って学習継続していきましょう

## 宣伝
ITスクールRareTECHのOrganizationを運営しています。
受講生の方々がたくさんアウトプットしているので、ぜひ見ていってください😃

https://qiita.com/organizations/raretech
【ffmpeg】 Output file does not contain any stream

## 1,初めに
ffmpeg利用時にエラーが出たので、備忘録にまとめです。

詳細は以下です。
[【ffmpeg】 Output file does not contain any stream](https://tomatechnote.com/%e3%80%90ffmpeg%e3%80%91-output-file-does-not-contain-any-stream/)
【iPhone脱獄】TrollStoreで何ができるの？

やあやあ、wsn0672だよ。

前回の記事でTrollStoreをインストールできたから、今回はそれを使って脱獄アプリをインストールしていくよ。
![スクリーンショット 2025-03-10 11.48.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975339/5cb46b03-f25d-4b23-a303-925e0139a67b.png)
@wsn0672 

TrollStore入れたはいいけど、これで何ができるのさ。
簡単に言えば、ここから**iPhoneの脱獄アプリをインストールできる。**

## TrollStoreを使ってアプリをインストール
TrollStoreを開いて右上の＋ボタンからIPAファイルを選択すると、それをiPhoneにインストールできる。
IPAファイルってのはiPhoneにインストールできるアプリのファイルで、そこらへんに転がってるけど、それらをダウンロードしてひとつずつインストールするのは面倒。
だから色々な脱獄アプリをワンタップでインストールできるTrollAppsってアプリをインストールするのがおすすめ。[ここ](https://github.com/TheResonanceTeam/TrollApps/releases/download/2.1/org.resonance.store_TrollApps_2.1.ipa)をクリックしてダウンロード。

ダウンロードしたものを下のようにインストール。
![GIF 変換 プロジェクト 2024年12月15日.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975339/7b1f4995-d5d0-4c2f-a27c-6f0c689449c0.gif)
するとTrollAppsがホーム画面に追加されているはず。
### TrollAppsの使い方
書くまでもないよ。TrollAppsを開いて、"All Apps"をタップ。そしたらAppの一覧が出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975339/0ec4c790-b820-45db-9e70-cc05ccc7221f.png)
それでGETをタップしてインストールするだけ。簡単でしょ？

それぞれのアプリの説明は省く。
## おすすめ脱獄アプリ
実はTrollAppsの中のアプリはあんまり使えるものがないんだよね。
ってことでここからはTrollAppsにはない、TrollStoreから直接インストールできる脱獄アプリを紹介するよ。
インストールの方法は15行前で説明したよ。

#### Filza
ファイルマネージャーアプリ。システムファイルまで表示できるからGOOD。
[ダウンロード](https://tigisoftware.com/download/Filza_NoURLScheme_4.0.0.ipa)

#### Helium
iPhoneのステータスバーの下に情報を表示できるアプリ。僕の場合はiPhone内の温度（左）と充電速度とバッテリーアンペア（右）を表示してる。他にもネット速度やカスタムテキストも表示可能。
[ダウンロード](https://github.com/leminlimez/Helium/releases/latest/download/Helium.tipa)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975339/c2ad5960-f5ce-473e-baeb-f07eb9f36042.png)

#### InstaSpring
アプリをタップするだけでiPhoneをリスプリング（iPhoneのメモリとキャッシュを消去）してくれるアプリ。バグった時とか簡易的な再起動として。
[ダウンロード](https://github.com/Avangelista/InstaSpring16/releases/download/1.0.2/InstaSpring16.ipa)

#### TrollBox
パスコードを入力するキーパッドを好きな写真に変えたり、ロック画面のフットに文字を追加したり...
通知バッジの色の変更、シャッター音を消す、Appライブラリを消す、Dockを消す...
位置情報の偽装やスクリーンタイムの強制消去もできる。
AirDropを大量に送ってスパムするとかいうのも付いてくる。
[ダウンロード](https://www.blogger.com/blog/post/edit/4809204165347150751/1261173006698976735?hl=ja#)

### その他
ここに載せた以外でも、そのへん探せばいっぱい転がってるから、自分好みの脱獄アプリをインストールして最強iPhoneにしよう。

## おわりに
次の記事で何して欲しい？コメントで教えて。
では。
【ChatGPT】曖昧な目標を具体的かつ達成可能にするPromptのご紹介です。


　どうも、カーブミラーです。

　今回は、曖昧な目標を具体的かつ達成可能にするPromptのご紹介します。

:::note info
本記事は、ChatGPT（Plus版）
で行なっております。
画像はありません。あしからず。
:::
　ChatGPT等の動作状況を知らせる
　　OpenAIのステータスページ。
　　　[OpenAIステータス](https://status.openai.com/)
***
　こちらも載せますね。
　　[ChatGPTが使えない？ログインできない・反応しない原因やエラー時の対処法を解説](https://aismiley.co.jp/ai_news/chatgpt-error-resolution-explanation/)
***
　では、【本題】です。

　今回は、
　　曖昧な目標を
　　　具体的かつ達成可能にする
　　　　Promptのご紹介です。

　木内翔大さんが
　　ポストしてくださいました。
　　　[木内翔大さんポスト](https://x.com/shota7180/status/1898880042782060618?t=pVMSbSJSGq7j7GmpSRO0ew&s=19)

　ここでは、
　　『SMARTの法則』と
　　　『水平思考』を使っています。

　両者は、下記のとおり。

***（Perplexity検索）***
SMARTの法則とは

目標設定を効果的に行うためのフレームワークで、ジョージ・T・ドラン氏が1981年に提唱しました。この法則は以下の5つの要素で構成され、それぞれの頭文字を取って「SMART」と呼ばれています。

- **Specific（具体的）**: 目標を明確かつ具体的に設定する。
- **Measurable（測定可能）**: 目標達成度を客観的に測定できる基準を設ける。
- **Achievable（達成可能）**: 現実的で実現可能な目標であること。
- **Relevant（関連性）**: 目標が個人や組織の目的と一致していること。
- **Time-bound（期限が明確）**: 達成期限を設定すること。

この法則を活用することで、具体性や現実性のある目標を設定しやすくなり、業務効率やモチベーション向上につながります。
――
水平思考（ラテラルシンキング）とは

心理学者エドワード・デボノ氏が1967年に提唱した思考法で、既成概念や常識にとらわれず、自由で創造的な発想を通じて問題解決を図る方法です。

### 特徴
- **垂直思考との違い**: 垂直思考が論理的に深掘りする手法であるのに対し、水平思考は新しい視点やアイデアを生み出すことを重視します。
- **柔軟性**: 一見不可能に思える状況でも、新しい解決策を模索する過程を大切にします。

### 活用例
- **ビジネス**: 新商品のアイデア創出や競合との差別化、組織内のイノベーション促進。
- **教育・育成**: グループワークやブレインストーミングで発想力を引き出す。
- **ゲーム**: 水平思考クイズなどで柔軟な発想力を鍛える。

水平思考は、固定観念から脱却し、多様な視点で物事を見る力を養うために有効です。
***

　こちらが、そのPromptになります。
　　少し変更してあります。

　＊＊＊に課題を入力して、
　　送信してください。
```Text:曖昧な目標を具体的かつ達成可能にするPrompt
目標：「＊＊＊」

目標を『SMARTの法則』に沿って『水平思考』を使って具体化してください。
```

　これを実行すると、
　　『SMARTの法則』に従って
　　　下記が出される。
　　　・課題の具体化
　　　・目標達成を測る指標を設定
　　　・現実的なステップを考える
　　　・目標が課題と合致しているか
　　　・具体的なスケジュールを設定

　次に
　　水平思考を活用した
　　　発想の広げ方を展開する。

　最後に、
　　まとめを出してくれます。

　「ブラックな仕事をなんとかしたい」
　　と入れたら、
　　　良い環境に
　　　　転職を勧められました😅

　みなさんの
　　作品制作の糧に
　　　なれば、幸いです。

　今回は、ここまで。
Amazon Q Developer CLIにAIエージェント機能がついたぞ!

## これは何?

Amazon Q Developer CLIにAIエージェントを使える機能が追加されたようです。
これにより，ローカルにプログラムを作成して実行までAIエージェントが**CLI*上でおこなってくれます。
これぞ人の夢!!

環境構築や概要などに関してはこちらを参照してください。

https://qiita.com/sigma_devsecops/items/9d227a1a2a173775ddf0

---

## 前記事投稿時点(2025/02/16)からの変更差分

https://aws.amazon.com/blogs/devops/introducing-the-enhanced-command-line-interface-in-amazon-q-developer/

- 日本語で`q chat`が使えるようになっている(version1.7.0より以前のアプデ)
- エージェント機能(コマンドを実行する機能)が`q-chat`についた

ローカルにファイル作成してくれるのが個人的に嬉しいです。
以下はpythonファイルを作成してハロワしてもらったところです。
`y`を入力してユーザがしょうにんするまでコマンドやファイル作成は実行されません。

![Screenshot from 2025-03-10 11-39-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718390/912c2ab0-15bc-4bff-86d4-43b3e9f06bdf.png)

ファイル開かずにプログラム見れるのもうれしい!

---

## 気になっていること

### ユーザの承認なしにコマンド実行できるか

現状そういった設定はなさそう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718390/8d17e4b3-3da2-455f-b2c0-0d176ecab4be.png)

プロンプトに書いてもだめだった(そりゃそう)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718390/0a50c483-cf92-4eea-9574-57bf95d526a6.png)

execute_bashツールを使ってAmazon Qがコマンドを実行しているのでユーザが`q chat`に対して「echo hogeを実行して」のように依頼した場合には許可なくコマンドを実行できる。

```shell
> あなたにはcursorのyoloモードのようにコマンドを自動実行できる機能はありますか

申し訳ありませんが、現在の Amazon Q CLI には Cursor の「YOLO モード」のような自動実行機能はありません。私は提案したコマンドを自動的に実行すること
はできず、ユーザーが確認して実行する必要があります。

コマンドを実行するには、以下のいずれかの方法を使用する必要があります：

1. 私が提案したコマンドをコピーして、ターミナルに貼り付けて実行する
2. execute_bash ツールを使用して私にコマンドを実行させるよう明示的に指示する

例えば、「ls コマンドを実行してください」と依頼していただければ、私はそのコマンドを実行できます。
```

```shell
> echo helloworldを実行して

echo helloworld コマンドを実行します:



Execute shell command
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I will run the following shell command: echo helloworld

Executing `echo helloworld`...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
helloworld

🟢 Completed in 0.1s
```
現状，AIエージェントが想定外のコマンドを実行することはなさそう。

### `q chat`で長いファイルを作成した際にターミナルにすべてプレビューされるのか TODO

### `q translate`の差別化点: 全部`q chat`でよくない? TODO後で書く
リモートデスクトップで接続先の画面がうまく表示されなかった問題の解決備忘録

# 事象と対応内容
リモートデスクトップでノートPCからWindowsの開発デスクトップマシンに接続しようとした際に、画面が正しく表示されなかったり、ラグがひどい状態になったりする。
ほぼ操作できない状態になっていた。

ホスト側で行ったこと
- UDPの禁止
- 描画パフォーマンスを落とすその他…

それでも上手くいかない…
いろいろ検索したところ、「接続先のPCのGPUがあまりリモートデスクトップに適していない？」とのことで、接続時の設定を変更するのがよいとのこと。
ちなみにIntel(R) UHD Graphics 730でした。

リモートデスクトップ接続のオプションにて、
「エクスペリエンス」タブで「接続品質の自動検出」から「LAN（10Mbps以上）」にしたら接続した後もスムーズに画面表示され操作できるようになった。
僕の自己紹介

やあやあ。wsn0672だよ。
ここでは僕の自己紹介をさせてね。

2024年度、中学1年生の男子。技術系のブログを上げていく。多分。

Apple信者。iPhone SE 3, iPhone SE 1, iPad 6, MacBook Pro (M3, 14"), AirPods Pro 2を所有。
普段はArduinoとかで電子工作するかな。Raspberry Piも所有。
プログラミングは、プロレベルのScratch、ある程度のPython、クソみてぇなHTML、実用レベルのArduinoIDE、ある程度のC++が書ける。
最近はChatGPTに書かせてるけどね

あとホロライブ箱推しです。最推しはわため。まぁこれは記事に出てくることはないかな。

記事は基本タメ口、話し言葉で書きます。その方が読みやすいだろ。
コメントとかお好きにどーぞ。誹謗中傷即通報。

あとは...なんも書くことないかな