OmniAICreator/Qiita-1.07M huggingface dataset:
API Gateway・Lambda・AuroraでAPIを作成してみた[CloudShell編]

# はじめに

みなさんこんにちは！この記事では、「API Gateway・Lambda・AuroraでAPIを作成してみた」というテーマのもと作成方法を複数回に分けてご紹介しております。今回はCloudShellを使用してデータベースを操作する方法についてご紹介します。

# 目次

* [全体編](https://qiita.com/kazuki_horiuchi/private/cb80dbfd51e77255c653)
* [VPC・サブネット・セキュリティグループ編](https://qiita.com/kazuki_horiuchi/private/a9fef24b77a52e0109b1)
* [Aurora編](https://qiita.com/kazuki_horiuchi/private/a3dc6dec1dc5f1ec9445)
* CloudShell編 << 今回はこちら
* [Lambda編](https://qiita.com/kazuki_horiuchi/private/1663571a754ca6e36b2f)
* [Secrets Manager編](https://qiita.com/kazuki_horiuchi/private/8711e7be2e9ea20a56b0)
* [API Gateway編](https://qiita.com/kazuki_horiuchi/private/9cb5352c45211b3573f9)

# CloudShellとは

AWS公式が提供するドキュメントによると、CloudShellについて以下の記載があります。
> ブラウザベースのシェルである AWS CloudShell を使用すると、AWS コマンドラインインターフェイス (CLI) でスクリプトをすばやく実行したり、AWS CLIを使用してサービスAPIを試したり、他のツールを使用して生産性を向上させることができます。

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

一言で表すと、ブラウザ上でCLIやコマンドラインを実行できるサービスになります。今回はEC2インスタンス作成やMySQLをインストールする手間を省くため、CloudShellを使用していきます。

# 本記事の対象

全体の構成図に対して、本記事では赤字で記載しているCloudShellの作成、Auroraとの接続を行いデータベースを操作していきます。

![image.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/0f8825c3-0ffd-81f1-4cc4-f37d8adea40f.png)

# データベース操作の流れ

以下の流れで実施していきます。

* CloudShellの作成
* Auroraと接続
* SQLを実行

:::note info
前提として以下が必要となります。詳細は[目次](#目次)のリンクよりご確認ください。

* VPC・サブネット・セキュリティグループの作成
* Auroraの作成
:::

# データベースを操作してみた

## CloudShellの作成

「Create VPC enviroment (max2)」をクリックし、既に作成したVPC・サブネット・セキュリティグループを選択します。

![cloudshell.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/6f7177b6-2297-68b5-f31c-7d965f6004c6.png)

## Auroraと接続

RDSプロキシのエンドポイント、データベースの認証情報を確認した上で、CloudShellのコンソールにて以下コマンドを実行します。

``` CLI
mysql -h [RDS Proxyのエンドポイント] -u [データベースのユーザ名] -p
```

パスワードを入力します。

```　CLI
Enter password:[パスワード]
```

以下が表示されれば接続完了です。

``` CLI
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2120956092
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
```

## SQL実行

### データベース作成

今回は「dev」というデータベースを作成し、操作対象に選択します。

``` SQL
CREATE DATABASE dev;
USE dev;
```

### テーブル作成

今回は「book」というテーブルを作成します。

``` SQL
CREATE TABLE book (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    price INT
);
```

### データ格納

「book」テーブルにレコードを追加します。

``` SQL
INSERT INTO book(id, name, price)
VALUES
(1, 'book1', 500),
(2, 'book2', 1000),
(3, 'book3', 2000);
```

最後に、レコードが追加されていることを確認します。

``` SQL
SELECT * FROM book;
```

追加したレコードが表示されれば完了です。

``` SQL
+----+-------+-------+
| id | name  | price |
+----+-------+-------+
|  1 | book1 |   500 |
|  2 | book2 |  1000 |
|  3 | book3 |  2000 |
+----+-------+-------+
```

# 終わりに

いかがだったでしょうか。今回はCloudShellを使用してデータベースを操作する方法についてご紹介しました。次回は[Lambda編](https://qiita.com/kazuki_horiuchi/private/1663571a754ca6e36b2f)についてご紹介します。是非、次回以降もご覧いただけますと幸いです。もしこの記事がお役に立ちましたら、「いいね」「記事のストック」をお願いします！

---

- AWS は、米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
- その他、記載されている会社名および商品・製品・サービス名は、各社の商標または登録商標です。
API Gateway・Lambda・AuroraでAPIを作成してみた[Aurora編]

# はじめに

みなさんこんにちは！この記事では、「API Gateway・Lambda・AuroraでAPIを作成してみた」というテーマのもと各リソースの作成方法を複数回に分けてご紹介しております。今回はデータベース部分を対象に、サブネットグループ・Auroraの作成方法についてご紹介します。

# 目次

* [全体編](https://qiita.com/kazuki_horiuchi/private/cb80dbfd51e77255c653)
* [VPC・サブネット・セキュリティグループ編](https://qiita.com/kazuki_horiuchi/private/a9fef24b77a52e0109b1)
* Aurora編 << 今回はこちら
* [CloudShell編](https://qiita.com/kazuki_horiuchi/private/b2804424e44ad4c4790e)
* [Lambda編](https://qiita.com/kazuki_horiuchi/private/1663571a754ca6e36b2f)
* [Secrets Manager編](https://qiita.com/kazuki_horiuchi/private/8711e7be2e9ea20a56b0)
* [API Gateway編](https://qiita.com/kazuki_horiuchi/private/9cb5352c45211b3573f9)

# 本記事の対象

全体の構成図に対して、本記事では赤字に関連するリソース(Aurora・RDS Proxy・サブネットグループ)を作成していきます。

![image.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/ec6ded38-6e80-07b1-3702-520191a75f9b.png)

# 作成の流れ

以下の流れで作成していきます。

* サブネットグループの作成
* Auroraの作成
* RDS Proxyの作成

:::note info
前提として以下が必要となります。詳細は[目次](#目次)のリンクよりご確認ください。

* VPC・サブネット・セキュリティグループ編の作成
:::

# 実際に作成してみた

## サブネットグループの作成

まずは、Auroraを作成する際に必要となるサブネットグループを作成します。

|設定項目 |設定値 |
|---|---|
|名前|任意のサブネットグループ名|
|VPC|既に作成したVPC|
|AZ|ap-northeast-1a, ap-northeast-1c|
|サブネット|Aurora用サブネット①、②|

:::note info
AZには少なくとも2つのAZを含める必要がありますので、ご注意ください。
:::

## Auroraの作成

続いてAuroraを作成します。Auroraは設定項目が多いため詳細は以下スクリーンショットよりご確認ください。

<details><summary>詳細な設定項目と設定値</summary>

![aurora1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/a19630ec-36d6-da2c-11df-023362242313.png)

![aurora2.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/b5fc7a77-59bd-a862-113e-b2128e7c5cdd.png)

![aurora3.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/a69b9b8d-7090-64ce-3cac-c2d831974054.png)

![aurora4.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/73755a39-f563-71d3-3095-ed2d29687a8d.png)

![aurora5.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/87c5388e-0aeb-4a47-d396-4334581a0dbc.png)

![aurora6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/9b6de928-fe3e-5b5a-f130-c7179ae46ab8.png)

</details>

## RDS Proxyの作成

RDS Proxyも設定項目が多いため詳細は以下スクリーンショットよりご確認ください。

<details><summary>詳細な設定項目と設定値</summary>

![rdsproxy1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/1ef9db20-7384-1ba4-e56c-a3f2f011d987.png)

![rdsproxy2.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/5b425f7b-7f85-68b5-f0de-2829446c8be4.png)

</details>

# 終わりに

いかがだったでしょうか。今回はデータベース部分を対象にAurora・サブネットグループの作成方法についてご紹介しました。次回は[CloudShell編](https://qiita.com/kazuki_horiuchi/private/b2804424e44ad4c4790e)についてご紹介します。是非、次回以降もご覧いただけますと幸いです。もしこの記事がお役に立ちましたら、「いいね」「記事のストック」をお願いします！

---

- AWS は、米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
- その他、記載されている会社名および商品・製品・サービス名は、各社の商標または登録商標です。
API Gateway・Lambda・AuroraでAPIを作成してみた[API Gateway編]

# はじめに

みなさんこんにちは！「API Gateway・Lambda・AuroraでAPIを作成してみた」というテーマのもと、各リソースの作成方法を複数回に分けてご紹介しております。最終回である今回は、API Gatewayより今まで作成したLambda関数を呼び出し、Auroraの情報をレスポンスとして受け取る方法についてご紹介します。

# 目次

* [全体編](https://qiita.com/kazuki_horiuchi/private/cb80dbfd51e77255c653)
* [VPC・サブネット・セキュリティグループ編](https://qiita.com/kazuki_horiuchi/private/a9fef24b77a52e0109b1)
* [Aurora編](https://qiita.com/kazuki_horiuchi/private/a3dc6dec1dc5f1ec9445)
* [CloudShell編](https://qiita.com/kazuki_horiuchi/private/b2804424e44ad4c4790e)
* [Lambda編](https://qiita.com/kazuki_horiuchi/private/1663571a754ca6e36b2f)
* [Secrets Manager編](https://qiita.com/kazuki_horiuchi/private/8711e7be2e9ea20a56b0)
* API Gateway編 << 今回はこちら

# 本記事の対象

全体の構成図に対して、本記事では赤字で記載しているAPI GatewayからLambda関数を呼び出す部分を作成していきます。最後にブラウザ上でAPIを呼び出していきます。

![image.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/16e5ecd8-67a4-0a66-0416-87b479e6a4f5.png)

:::note info
前提として以下が必要となります。詳細は[目次](#目次)のリンクよりご確認ください。

* VPC・サブネット・セキュリティグループの作成
* Auroraの作成
* Auroraへデータの格納
* Lambda関数の作成
* Secrets Managerの作成
:::

# 作成の流れ

以下の流れで実施していきます。

* APIの作成
* リソースの作成
* メソッドの作成
* 動作確認
* APIのデプロイ
* APIの呼び出し

# 実際に作成してみた

## APIの作成

まずはAPIを作成します。今回はREST APIを作成します。

![apigateway1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/e758ee75-81df-5c9f-5c5c-c5a17955d167.png)

## リソースの作成

APIを作成した後はリソースを作成します。今回は「item」といったリソース作成します。

![apigateway2.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/6291153c-9153-c55b-0722-d78e321804b3.png)

## メソッドの作成

続いてメソッドを作成します。今回はAuroraの情報を取得しますので、メソッドタイプは「GET」を選択します。また統合タイプで既に作成したLambda関数を選択します。

![apigateway3.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/dee2f310-3691-e092-635e-55d12d980ded.png)

## 動作確認

APIの動作確認をします。先ほど作成したメソッドを選択し、[テスト]タブよりテストを実行します。レスポンスの中にデータベースの情報が含まれていれば動作確認完了です。

![apigateway4.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/281a0128-6d33-b684-d97d-f5c00117f1f4.png)

## APIのデプロイ

APIの動作確認ができましたのでデプロイします。今回は新しく「api」ステージを作成しデプロイしていきます。

![apigateway5.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/82407102-4cc7-9f34-a03d-0d66847ab99e.png)

## APIの呼び出し

最後にブラウザよりAPIを呼び出してみます。ステージにデプロイしたAPIを選択します。「URLを呼び出す」に記載しているURLをコピーして、ブラウザのアドレスバーに貼り付けます。

![apigateway6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/9f9afb59-3013-6116-521f-0f532873bd9e.png)

ブラウザ上でデータベースの情報が確認できれば完了です！

![apigateway7.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3773682/b585ef3b-f940-bca4-9765-d69559bd2c08.png)

# 終わりに

いかがだったでしょうか。「API Gateway・Lambda・AuroraでAPIを作成してみた」というテーマのもと、各リソースの作成方法を複数回に分けてご紹介しました。もしこの記事がお役に立ちましたら、「いいね」「記事のストック」をお願いします！

---

- AWS は、米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
- その他、記載されている会社名および商品・製品・サービス名は、各社の商標または登録商標です。
React ,TypeScriptのprops分割代入 基礎

分割代入でpropsを受け渡しするコードをよく見かけますが、毎回混乱するので基礎の確認です。

## 分割代入の基礎
```typescript
// オブジェクトの分割代入
const person = {
  name: "田中",
  age: 25
};

// 分割代入を使わない場合
const name = person.name;
const age = person.age;

// 分割代入を使う場合
const { name, age } = person;
```

## Propsを分割代入
```typescript
type Props = {
  imageUrl: string;
  userName: string;
  fullName: string;
}

// 分割代入なし
export const Test: FC<Props> = (props) => {
  return (
    <>
      <img src={props.imageUrl} />
      <p>{props.userName}</p>
      <p>{props.fullName}</p>
    </>
  );
}

// 分割代入あり
export const Test: FC<Props> = ({ imageUrl, userName, fullName }) => {
  return (
    <>
      <img src={imageUrl} />
      <p>{userName}</p>
      <p>{fullName}</p>
    </>
  );
}
```
または、途中で分割代入する。
```typescript
type Props = {
  imageUrl: string;
  userName: string;
  fullName: string;
}

export const Test: FC<Props> = (props) => {
  const { imageUrl, userName, fullName } = props;
  
  return (
    <div>
      <img src={imageUrl} />
      <p>{userName}</p>
      <p>{fullName}</p>
    </div>
  );
}
```
分割代入すると、
・コードが短くなる（props.を何度も書かなくて良い）
・使用するプロパティが明確になる
・デフォルト値の設定が簡単

といったメリットがあります。

## 終わり
propsの説明はたいてい「propsとは、親コンポーネントから子コンポーネントへ値を渡すための仕組み」から始まるので混乱し、整理しておきたかったです。
init.elをデバッグする最小構成Emacsの起動方法

メリークリスマス！[Emacs Advent Calendar](https://qiita.com/advent-calendar/2024/emacs)です。

Emacsの設定は楽しいですよね。
私も日々`init.el`をいじったりscratchバッファで評価したりの日々です。

そんなとき、原因のわからない思わぬ動作に出会うことがあると思います。
自分の設定が悪いのか、それともパッケージのバグなのか。
後者ならIssueへのコントリビュートチャンスです。

そこで本稿では、Emacs動作の原因を切り分けする方法を紹介します。
私がやっている方法ですが、何かの参考になれば幸いです。

## 最小限の起動

切り分けのために、まずはEmacsに何も読み込ませずに起動する方法を使います。
これには`emacs --quick`または`emacs -Q`を使います。

以下は`--quick`オプションについてのhelpです。
`--quick`オプションは、設定を読み込まずEmacsをまっさらな状態で起動します。
オプション名の通り、爆速でEmacsが起動します。[^quickemacs]

[^quickemacs]: Emacsの起動は本来とても早いものです。もし1s以上かかるのであれば、ぜろけーさんの[Emacs の起動時間を""詰める""](https://zenn.dev/zk_phi/books/cba129aacd4c1418ade4)が役に立つと思います。

```console
$ emacs --help
...
--no-init-file, -q          load neither ~/.emacs nor default.el
--no-site-file              do not load site-start.el
--no-x-resources            do not load X resources
--no-site-lisp, -nsl        do not add site-lisp directories to load-path
--no-splash                 do not display a splash screen on startup
--quick, -Q                 equivalent to:
                              -q --no-site-file --no-site-lisp --no-splash
                              --no-x-resources
...
```

## 最小限のinit.el

次に最小限の設定を用意します。
切り分けに必要なのは、必要なパッケージのロードと自分の設定の2つのみを書いたものになります。

例えば、前回のgoggle.el紹介に使った`init-test.el`は以下です。

```init-test.el
;; 見た目の設定
;; (push '(font . "VL ゴシック-20") default-frame-alist)
;; (push '(width . 50) default-frame-alist)
;; (push '(height . 13) default-frame-alist)

;; package.elが管理するパッケージのディレクトリ
(let ((default-directory  "~/.config/emacs/elpa/"))
  (normal-top-level-add-to-load-path '("."))
  (normal-top-level-add-subdirs-to-load-path))

;; 自分のelispファイルのディレクトリ
;; (let ((default-directory  "~/.config/emacs/lisp/"))
;;   (normal-top-level-add-to-load-path '("."))
;;   (normal-top-level-add-subdirs-to-load-path))

;; package.elに任せる
;; (package-initialize)

;; 設定管理にleaf.elを使う場合
;; (require 'leaf)
;; (require 'leaf-keywords)
;; (leaf-keywords-init)

;; 検証するパッケージの読み込みと設定
(require 'goggles)
(goggles-mode +1)
(setq goggles-pulse-iterations 10)
(setq goggles-pulse-delay 0.1)
(custom-set-faces
 '(goggles-added ((t (:background "#00ff00"))))
 '(goggles-changed ((t (:background "#ffff00"))))
 '(goggles-removed ((t (:background "#ff0000"))))
 )
```

ポイントは以下の2+1点です。

1. load-pathの設定をする
    - 普段はpackage.elが管理するパッケージのディレクトリを手動で設定します
    - 必要に応じて自前のelispディレクトリを設定します
    - `(package-initialize)`でpackage.elに任せることもできます
1. 検証したい設定をする
    - 検証したい自分の設定を書きます
    - leaf.elやuse-packageを使う場合は、最低限の読み込みを追加します
1. (Optional) 見やすさの設定をする
    - デフォルトのフォントやフレームサイズが小さいためいれています

## 最小限の設定のみ読み込んで起動する

最後に、用意した`init-test.el`のみを読み込んで起動します。
これには`emacs --load FILE`または`emacs -l FILE`を使います。

前の`--quick`オプションと合わせて、以下のコマンドで最小構成Emacsが起動するはずです。
このEmacs上で再現性を検証しましょう。

```console
$ emacs -Q -l init-test.el
または
$ emacs -Q -l init-test.el TEST_FILE.ext
```

## まとめ

- Emacsを任意の最小構成で起動する方法を紹介しました
- Emacsの設定沼は楽しいぞ
あなたの会社は、「生理休暇」を申請できるか

# 生理休暇（なかったら違法）
生理休暇は、労働基準法で定められた休暇だ[^1]。
生理でしんどいとき、休めるのは女性の権利である。

    労働基準法 （昭和 2 2 年法律第 4 9 号 ） （ 抄 ）
    （生理日の就業が著しく困難な女性に対する措置）
    第六十八条 使用者は、生理日の就業が著しく困難な女性が休暇を請求したときは、その者を生理日
    に就業させてはならない。

だから「やった！　ちゃんと就業規則に生理休暇があるぞ！　良い会社だ！」と思ってはいけない。
これは標準的に備わっているべきものだ。
しなかったら罰金もある。

でも、実際、あなたの務めている会社は、実質的に生理休暇を申請できるだろうか？

実際、死に制度となっていて、使用しようとすると「ええっと、なん、ですか？？？」となってしまう会社も多いんじゃないか。
（よいところは、あっさり認めてくれたり＋αで有給にしてくれていたりするだろう。）

実際のところはどうなんかというと、体調不良として、有給で補っているケースがたくさんありそうだ。
っていうか、弊社はそうだ。いじわるされてるわけではなく、単に使われていない。マジで。
欠勤にはなってしまようなので、本当に「休める」以上の意味はない。「体調不良による有給」or「テレワーク」に吸収されていると思われる。
（そっちだと、お賃金が下がらないからね。）

エンジニアの女性比率は二割くらいらしい。

https://librus.co.jp/it_career/new/stock/1110

せっかく良い制度があっても、上司が男性で言いづらかったりすると、実質的に「この制度、全然使えない」ということも多いだろう。さっぱりと「生理です/了解です」、という申告が可能なチームもあれば、「えっと、あの、おなかが痛いです」「わかりました」で処理しているところもあるだろう。

いうまでもなく、女性の生理については個人差がありまくり、また、通常、センシティブ過ぎて話すものでもないかもしれないのだ、が、休みにかかわってくると、業務の調整が必要だ。

全く問題なく働く人もいる。根性で絶対休まない人もいれば、月に数日は確実にダウンする人もいる。症状が重篤であれば婦人科を受診しよう。

それはそれとして、会社をどう休むか/休ませるかである。

## 女性の部下から、体調不良の申告があった場合

管理者としては、「体調不良で休みます」という申告があった場合、何日くらい続きそうか、周りに感染させそうか、もう少し情報が欲しいところだが、相手を間違って詰問すると、最悪のディスコミュニケーションが生じる。

生理についてどう扱うかは、マジでその時その時の状況によると思うのだが、
女性から体調不良/腹痛の申告があった場合、

- 直接の言及は避け、明日はいけそうか、感染性はありそうなものではないかやんわり聞く
- 仲のよさそうな女性にパスして、生理かどうかそれとなく聞いてもらう
（※上司に伝えることは了解してもらう）
- メールやslackなど、周りに聞こえないように、クローズな方法で聞く
限られた人数で、というのがポイントで、必ずしも１：１でなくてもよい。
- 有給の残数について不安そうにしていれば、制度を案内する
- **いっそ理由は聞かない**

といったような対応が必要だろう。

ときどき、会社の制度はあっても使われないものがもうメンテされてない関数のように残り続ける。
せっかくの制度なのだから、一回、きちんと制度が生きているかシミュレーションしてもいいんじゃないでしょうか。

っていうかご存じでして？　生理休暇？
そういうものがあります。

おそらく、生理休暇がうれしいのは、まだ入社したてで有給が足りない、入ったばかりの女性だと思われます。
（有給の付与は最低半年後からなので、会社によっては、入社時に有給はない。
それは不便なので、と、良い会社は入社時に付与してくれることもある。）

「え？　なにそれ？　そんなんなくてもやってきたけど」と言わず、いざというときに使えるようにメンテしておくとよいでしょう。

こういうの、だいたい、一番つらいのが、一番発言権のない、一番下の子になるからな……。

こういう制度を笑い飛ばさない会社は、きっと、女性エンジニアを大切にしてくれる、良い会社です。

https://xn--alg-li9dki71toh.com/roumu/female/menstrual_leave/


[^1]:「便利だからこの制度で休んじゃって旅行に行こ（笑）」みたいな、使用者側にかなり悪意のあり、制度を悪用するようなケースは、「リモートワーク中にゲームし放題じゃん（笑）」と同じような、属人的な問題かな～と思います。私自身は、そういうケースは稀だと思っています。
Cadence VS Code Extension

[Previous << Flow Dev Wallet](https://qiita.com/flowcadence/items/506522b43325705d9b8b)
[Next >> FlowWallet Provider Spec](https://qiita.com/flowcadence/items/caa67ecf27a07dc2ee29)

https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a#reference-2020832ebee1810a325a

この拡張機能は、Flowのリソース指向スマートコントラクトプログラミング言語である[Cadence](https://qiita.com/flowcadence/items/87147a26f1d2b89b46ca)を[Visual Studio Code](https://code.visualstudio.com/)に統合します。これにより、シンタックスハイライト、タイプチェック、コード補完などの機能が提供されます。

ほとんどのEdit 機能（型チェック、コード補完など）は、Cadence Language Server で実装されていることに注意してください。

<h1>Features</h1>

* Syntax highlighting (including in Markdown code fences)
* Run the emulator, submit transactions, scripts from the editor

<h1>Installation</h1>

拡張機能をインストールするには、[VS Code IDEがインストール](https://code.visualstudio.com/docs/setup/mac)されていることを確認してください。
その後、[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=onflow.cadence)からCadenceの拡張機能をインストールできます。

<h1>Developing the Extension</h1>
<h3>Prerequisites</h3>

* Must have Typescript installed globally: `npm i -g typescript`

<h3>Getting Started</h3>

* Run the Typescript watcher: `tsc -watch -p ./`
* Launch the extension by pressing `F5` in VSCode
* Manually reload the extension host when you make changes to TypeScript code.(TypeScriptコードに変更を加えた場合は、手動で拡張ホストを再読み込みします。)


<h3>Configuration for Extension Host if Missing (launch.json):</h3>

```ruby
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "extensionHost",
      "request": "launch",
      "name": "Launch Extension",
      "runtimeExecutable": "${execPath}",
      "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
      "outFiles": ["${workspaceFolder}/out/**/*.js"]
    }
  ]
}
```

<h3>Building</h3>

もし、ソースから拡張機能を構築する場合は、拡張機能自体と Flow CLIの両方をビルドする必要があります（インストールしたことを示すバージョンがない場合）。拡張機能を開発している場合や、未公開機能へのアクセスが必要な場合を除き、（上記の）Flow CLI インストールオプションを使用してください。はるかに簡単です！

まだインストールしていない場合は、依存関係をインストールします。
```ruby
npm install
```
次に、拡張機能をビルドし、パッケージ化します。
```ruby
npm run package
```

これにより、パッケージされた拡張機能を含む`.vsix`ファイルが作成されます。

パッケージされた拡張機能をインストールします。
```ruby
code --install-extension cadence-*.vsix
```
VS Codeを再起動すると、拡張機能がインストールされているはずです！

*Last updated on **Nov 26, 2024** by **Chase Fleming***

翻訳元

https://developers.flow.com/tools/vscode-extension

***
<b>[Previous << Flow Dev Wallet](https://qiita.com/flowcadence/items/506522b43325705d9b8b)
</b>

[Flow blockchain / Cadence version1.0ドキュメント](https://qiita.com/flowcadence/items/3073d69c6e9895e68b5a) (Cadence VS Code Extension)

<b>[Next >> FlowWallet Provider Spec](https://qiita.com/flowcadence/items/caa67ecf27a07dc2ee29)</b>
NetSuiteへのメニュー追加（ナビゲーションメニューバーに追加する）

## 初めに
 NetSuiteのメニュー追加・変更などは、そんなに頻繁にしないであろうから、すぐに忘れてしまうと思いますので、備忘も含めて投稿します。

## ゴール
 以下の画面のように勉強(遊びやすく！？)しやすくするためにNetSuiteメニュー内テトリスメニューを追加します。NetSuiteでテトリスの作成方法は、過去記事を参照下さい。

:::note alert
 業務中にテトリスはやってはいけないと思いますので、くれぐれもお気を付け下さい。
 私たちはあくまでSuiteScriptの研究という事でメニュー化しております。:writing_hand:
:::

 
 https://qiita.com/iyashina/items/7ab9b9f1ac2b88d29ad9

 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/059e2856-3d5d-adde-0250-4b43e1bc5ba6.png)

## 1.URLをNetSuiteのメニューにする。

上記の[テトリスを作成して](https://qiita.com/iyashina/items/7ab9b9f1ac2b88d29ad9
)出来上がったスクリプトデプロイメントのURLをメニュー化します。
カスタマイゼーション > センター及びタブ > センター・リンク > 新規をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/920d97da-a1f0-0243-5ddb-590a5a88113b.png)

適当な名前(ここではテトリスと入力)とURLを入力してください。
URLは、デプロイメントのURLの前に以下のように入力してください。
```
https://(ここはアカウント).app.netsuite.com/(スクリプトデプロイメントURL)
```
を追加してください。そして、保存して下さい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/f4c72bbc-a8d7-cefb-c813-0afd02cb7696.png)

## 2.センター・タブにセンター・カテゴリ：テトリスとテトリスメニューを追加する。
　既に利用中のセンター・タブにテトリスメニューを加えます。
  今回は、センターの種類：クラシックセンターのConsulting Teamに追加します。(リストの一番上のやつです。)
  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/65a35e02-2139-28d3-fe86-d021b229c985.png)

センター・タブ画面で編集ボタンを押して、カテゴリの一番下にテトリスと入力。今回はIDは空白にします。(自動で作成されます。)
そして、保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/7928af26-3c56-3d9a-13a3-1b9f7bace5d8.png)

登録されたカテゴリ：テトリス行にある編集リンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/5af888ba-f362-a669-b076-82831ab217fa.png)

センター・カテゴリ画面から下の方のリンクから上で作成したリンク：テトリスを選択します。名称変えたい方はラベルに入力してください。
そして、保存ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/c9dc0e7a-528d-993e-d979-4163d6f100f3.png)

これでメニュー追加は完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114483/e32fa844-455b-23b4-5f7e-bfca9dd3ebe9.png)

:::note info
以下のリンクにてより詳しくメニュー(センター)が理解可能かと思いますので、ご参考まで。(英語です。)
:::
:::note info
既にNetSuiteご利用の方は、NetSuiteヘルプサイトから日本語で参照可能です。ご確認ください。
:::

https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_164208316196.html
(理系フリマ(2))シンセ先輩からもらったCore 2 duoでArduino UNO3をLチカ(2)(長期記事)


参考(利害関係は、ありません、自己学習の為に紹介、東京秋葉原の書泉ブックタワーで見かけた)

https://bookplus.nikkei.com/atcl/catalog/24/06/12/01431/


目的
Ubuntnまでをいれる


いろいろ
めんどいのでかなり省略(本1冊分に相当するので)
(たぶん、日経のムック?雑誌?のインストールディスクを使うと楽?(DVDが付いていないらしい?))
難易度　ほぼ、レベル99(初心厳禁、プロ専用)
もんくがあるなら、かかってきてちょん♡!!



●1 Ubuntnをダウンロード


https://jp.ubuntu.com/download

![o_coq679.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/2fec599c-868f-56b8-7905-c96a7e409605.jpeg)



●2 DDwinでコピーする(管理者権限で起動)
(東京秋葉原のあきばおー2号店で買った32GBぐらいUSBメモリ約300円)
(ブート非対応とか0セクターが書き換えても戻るのもあるから気付けろ)

https://www.si-linux.co.jp/techinfo/?DD%20for%20Windows


![o_coq680.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/7b408d24-99af-ed21-6b7c-0ad01a3f3506.jpeg)


●3 インストールする(たぶんおぼえている限りでは、全てNext)


ぶっさして電源おん(全てをワープ)


結果(成功)


![o_coq681.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/0ba96757-f63f-1118-cec7-aa124419094e.jpeg)
レトロPCのためのBASIC講座４　文字データ

# 前回のおさらい
[前回](https://qiita.com/kawamo55/items/bea997c22e18c050c70f)の最終的なプログラムでは、INPUT文の直後に”S1="という部分がありますが、これは入力する際に表示する文字データを与えています。
このように、ダブルクオート ” で囲まれている部分は文字データとして扱われ変数に入れることも可能です。
文字列を入れる変数は、文字を扱っている変数であることがわかるように変数名の後ろに＄をつけます。
S$="STRING"
といった具合で使います。

# 今回のプログラム
今回のプログラムは、INPUT文を使って文字列をS$に入力して、PRINT文で
INPUT STRING=「入力された文字」
を表示するようにします

10 INPUT "STRING=",S$
20 PRINT "INPUT STRING="+S$

RUNで実行してみると入力された文字がINPUT STRING=の後ろに表示されることが確認できます。
このように文字列にも＋という演算子が有効で”INPUT STRING"+S$で文字列の足し算ができることがわかります。

# 今回の動画
https://youtu.be/dua9hjgs7Qc
Many-Shot In-Context Learning with Node-RED and Gemini

大規模言語モデルの進化により、In-Context Learning（ICL）の可能性は飛躍的に拡大しています。特に、Many-Shot ICLは従来のFew-Shot ICLを超える可能性を秘めた、非常に興味深いアプローチです。本記事では、Node-REDとGemini APIを使用して、Many-Shot ICLを実装する具体的な方法を詳細に解説します。

## Many-Shot ICLとは何か？

Many-Shot In-Context Learningは、従来のFew-Shot学習と異なり、数十から数百の学習例を活用するアプローチです。より多くのコンテキスト例を提供することで、言語モデルはタスクの微妙なパターンをより深く理解し、高度な推論と一般化を実現できます。

### なぜGeminiか？

Geminiは最先端の大規模言語モデルの一つであり、従来のモデルと比較して非常に特徴的な点は、100〜200万トークンという驚異的な長さのコンテキストウィンドウを利用できることです。この広大なコンテキストウィンドウにより、Geminiは現時点でMany-Shot In-Context Learningを実行するのに最も適したモデルとして高く評価されており、複雑で長文な情報処理に優れた能力を発揮しています。

### 技術的な利点

1. **より高い精度**: 豊富な文脈情報により、モデルはタスクの本質をより正確に理解できます
2. **柔軟性の向上**: 複雑なタスクや特殊な要件に対して、より適応的な対応が可能になります
3. **汎用性の拡大**: 単一のプロンプトテンプレートで、多様なユースケースに対応できます

## Node-REDとGemini APIを使用したMany-Shot ICL実装

以下に、Node-REDを使用してMany-Shot ICLを実装するための具体的な手順と、サンプルフローを紹介します。

### 必要な準備

1. Node-RED
2. Gemini APIキー

### フローの構成

我々のMany-Shot ICLフローは、以下の主要なノードで構成されます：

- functionノード（学習例の生成）
- HTTPリクエストノード（Gemini APIへのアクセス）
- functionノード（レスポンス処理）

### 詳細な実装ステップ

#### 1. functionノードの設定（changeノード + templateノードでも実装可能）

functionノードでは、多数の学習例を動的に生成します。以下は、文章分類タスクのサンプルテンプレートです：

```javascript
const learningExamples = [
    { input: "素晴らしい商品でした！", label: "肯定的" },
    { input: "期待はずれでがっかりしました", label: "否定的" },
    // さらに多くの学習例（50-100程度）
];

const taskDescription = "以下の文章の感情を分類してください：";
const prompt = learningExamples.map(ex => `入力: ${ex.input}\n分類: ${ex.label}`).join('\n\n');

msg.payload = `${taskDescription}\n\n${prompt}\n\n入力: ${msg.input}\n分類:`;
return msg;
```

#### 2. HTTPリクエストノードの設定

Gemini APIへのリクエストを処理するノードを設定します：

```javascript
const options = {
    method: 'POST',
    url: 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent',
    headers: {
        'Content-Type': 'application/json',
        'x-goog-api-key': '[YOUR_API_KEY]'
    },
    body: JSON.stringify({
        contents: [{
            parts: [{ text: msg.payload }]
        }]
    })
};
return options;
```

#### 3. 応答処理関数ノード（switchノード + changeノードでも実装可能）

APIレスポンスから必要な情報を抽出します：

```javascript
const response = msg.payload;
if (response.candidates && response.candidates[0]) {
    const extractedLabel = response.candidates[0].content.parts[0].text.trim();
    msg.payload = {
        originalInput: msg.input,
        predictedLabel: extractedLabel
    };
}
return msg;
```

## まとめ

Many-Shot ICLは、大規模言語モデルの可能性を大きく広げる革新的なアプローチです。Node-REDとGemini APIを組み合わせることで、柔軟で強力な機械学習ソリューションを比較的簡単に実装できます。
llm prompt

System Prompt Engineering Guide
https://qiita.com/sharakus/items/7da625b6aed1e8945952

【Prompt flow入門①】Prompt flowの作成・実行・カスタマイズ方法
https://qiita.com/sakue_103/items/0c1c225f52c2aeab4be1

初心者なりのPrompt Engineering手法解説【モックプロンプト編
https://qiita.com/ist-i-j/items/f3ac930a4958b591e7ce

Prompt Engineering_3　Prompting technique
https://qiita.com/zaziko_github/items/c121bcbd6acad78b69f3

架空のコンペ『LLM Prompt Reverse』を考えたのでトイプロブレムに使ってください！
https://qiita.com/Isaka-code/items/d09b2b4b031f1c856b7e

テーブルデータをLLMに渡して分析させる方法を試してみた
https://qiita.com/k3black/items/91c3799863acb35a603f

# Reference

論文紹介: DORY: Deliberative Prompt Recovery for LLM
https://qiita.com/hiyoko1729/items/5276b0f00256afc9d620

# the others
prompt builder
https://qiita.com/Keiji_otsubo/items/5530b75a6ec472641d63


LangChain(Python)のPrompt基本使い方
https://qiita.com/FukuharaYohei/items/f1f3ed2d4ef5a3db11ae
.NET9でWinFormにアップデートされた内容

.NET9では、WinFormに以下の新機能が追加されています。

- **テーマ**

  Windows Formsは初期段階でダークモードをサポートしており、.NET 10では完全なサポートを目指しています。アプリケーションのカラーモードは、次の値に設定できます。

  - SystemColorMode.Classic：デフォルトの明るいモードで、以前のバージョンのWindows Formsと同じです。
  - SystemColorMode.System：Windowsの設定に従って明るいモードまたはダークモードを使用します。
  - SystemColorMode.Dark：ダークモードを使用します。

  ```xml
  <NoWarn>$(NoWarn);WFO5001</NoWarn>
  ```

  ```csharp
  Application.SetColorMode(SystemColorMode.Dark);
  ```

  ![Image](https://mmbiz.qpic.cn/sz_mmbiz_png/4CAA63nvHRDg7Wvt20GarYy6lvGEYVr2ibeMNlyGVf2opB2rbXs7hHfwFSIHngA6Dqq3bwamsODibRmKic3LcomUA/640?wx_fmt=png&from=appmsg)

  ボタンの効果は小さいです。

- **ToolStrip属性AllowClickThrough**

  ToolStripコントロールのAllowClickThrough属性のデフォルト値はFalseです。ToolStripButtonがあり、クリックイベントがある場合、現在のフォームがフォーカスされておらず、表示されているときにToolStripButtonをクリックすると、フォームが最初に選択され、フォーカスが当たります。次にToolStripButtonをクリックすると、その効果が発生します。AllowClickThroughをTrueに設定すると、現在のフォームがフォーカスされておらず、表示されているときにToolStripButtonをクリックすると、ボタンの動作が直接実行され、フォームがフォーカスウィンドウになります。

- **System.Drawing.Imaging.Effects**

  System.Drawingライブラリは、GDI+ビットマップ効果をサポートするようになり、ぼかしや色調効果を含みます。これらの効果はGDI+の一部でしたが、現在までSystem.Drawingを通じて公開されていませんでした。

  Bitmap.ApplyEffect(Effect, Rectangle)メソッドを呼び出してビットマップに効果を適用できます。必要な効果と、効果を適用する領域を指定するオプションのRectangleパラメータを提供します。Rectangle.Emptyを使用して画像全体を処理します。

  System.Drawing.Imaging.Effects名前空間には、次の効果を含むことができます：

  | 名称                        | 含義                                                     |
  | --------------------------- | -------------------------------------------------------- |
  | BlackSaturationCurveEffect  | 黒の飽和度を調整し、画像内の濃黒の濃度と純粋さに影響する     |
  | BlurEffect                  | ぼかし効果で画像の鮮明さを減少させ、細部を平滑化またはノイズを減少させます |
  | BrightnessContrastEffect    | 画像の明るさとコントラストを調整し、画像を明るくしたり暗くしたり、より強烈または柔らかくします |
  | ColorBalanceEffect          | 画像の色バランスを調整し、画像内の赤、緑、青の比率を変更する |
  | ColorCurveEffect            | 曲線を用いて異なる色チャンネルを調整し、画像の色の細かさと階層感を増加させます |
  | ColorLookupTableEffect      | 色変換表（LUT）を適用して画像色を変換し、特定の色彩スタイルまたは効果を実現する |
  | ColorMatrixEffect           | 色マトリックスを使用して画像の色を変えることができ、特定の色調およびカラーフィルタ効果を作成できます |
  | ContrastCurveEffect         | 画像のコントラスト曲線を調整し、画像の異なる領域の明るさと暗さを制御する |
  | CurveChannel                | 色チャンネル（赤、緑、青）を個別に調整し、各色の表現を詳細に制御するために使用します |

  > **InvertEffect**のコードサンプル:

  ```javascript
  var bmp = new Bitmap(Image.FromFile("Microsoft_logo.png"));
  var invertEffect = new System.Drawing.Imaging.Effects.InvertEffect();
  bmp.ApplyEffect(invertEffect);
  bmp.Save(DateTime.Now.ToString("ddHHmmssfff") + ".png");
  ```

  効果は次のとおりです：

  ![Image](https://mmbiz.qpic.cn/sz_mmbiz_png/4CAA63nvHRDg7Wvt20GarYy6lvGEYVr2ViaGONibSwys15IH49YbZ2hqn8aTQ8W3L1QOHj7ib7opIVbHPZmeTmh2Q/640?wx_fmt=png&from=appmsg) &nbsp;&nbsp;&nbsp;
  ![Image](https://mmbiz.qpic.cn/sz_mmbiz_png/4CAA63nvHRDg7Wvt20GarYy6lvGEYVr26kGKO0ZZn2FanHqEXqh8qJR5nRG2EjW0WShksjShE96xtowLxphjsQ/640?wx_fmt=png&from=appmsg)

- **FolderBrowserDialog多選**

  FolderBrowserDialogは、多くのフォルダを選択できるようになりました。これらのフォルダはSelectedPaths配列に格納されます。マルチセレクト機能を有効にするには、Multiselectをtrueに設定します。

(Translated by GPT)
API Best Practices ~モバイルまたはウェブで連続リクエストが必要な場合の一回限りのAPI呼び出しを作成する

## モバイルまたはウェブで連続リクエストが必要な場合の一回限りのAPI呼び出しを作成する

https://protobuf.dev/programming-guides/api/#make-one-off-rpc

Webやモバイルのクライアントがデータ依存関係のある 2 つのクエリを行う必要がある場合、
ベストプラクティスは、クライアントを往復から保護する新しい RPC を作成することです。

モバイルの場合、2 つのサービスメソッドを 1 つの新しいメソッドにバンドルすることで、クライアントに余分な往復のコストを節約する価値があります。

サーバー間呼び出しの場合、ケースはそれほど明確でないかもしれません。
これは、サービスのパフォーマンスに対する敏感さと、新しいメソッドを導入する認知オーバーヘッドの量に依存します。

---

ひとつ前では小さい粒度でRPCを作成しclientでバッチ処理するように書いていましたが、
こちらでは依存性があるなら新規に統合したRPCを生やしなさいという認識。
https://protobuf.dev/programming-guides/api/#create-methods-manipulate-small-bits
羊のオーナー制度をスマートに！ソラカメとSORACOM Fluxでの挑戦！

本記事はSORACOM Advent Calendar 2024 10日目の記事です！

https://qiita.com/advent-calendar/2024/soracom

# はじめに

羊の飼育をしている知り合いから、「もっと情報発信をして羊のことや地域のことを知ってもらいたい」「羊の飼育の様子を情報発信するのも、実は手間が掛かっていて大変」みたいな雑談をしていたのがキッカケ。以前に、羊のオーナー制度をやったときに、オーナーに対する報告などのちょっとしたことも手間でという話がありました。
最近の生成AIブームにあやかって、もしかしたら画像解析して、この結果を使えるのでは？とアイデア提案したのがキッカケです。


# システム構成
全体のシステム構成はこのようになっています。
* ソラカメ
* SORACOM Flux
* SORACOM Harvest Files
* LINE Messaging API
* LINE公式アカウント
* ATOM Cam公式アプリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/63361f78-33a9-d737-d71f-e643fd1d052a.png)


<br>
大まかな処理は次のとおりとなります。

1. ソラカメから定期的に画像を取得
1. OpenAIで画像に対してのコメントを自動生成
1. LINE公式アカウントで情報を発信

遠隔確認もやりたいということで、ATOM Camアプリはそのまま使ってもらうことにしています。

# SORACOM Fluxの実装
SORACOM Fluxの実装は次のとおりです。

最初の処理が以下になります（下段の処理フロー）
1. タイマーをイベントソースに起動
1. 決まった定刻の条件を満たすときに次のアクションを起動
1. SORACOM APIでソラカメの画像をSORACOM Harvest Filesにエクスポート
<br>

次の処理が以下になります（上段の処理フロー）
1. SORACOM Harvest Filesのファイル作成をトリガーにイベント起動
1. AIアクションを使って、画像からコメントを生成
1. 生成されたコメントをLINEに通知
1. 続けて、画像データのメッセージで通知


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/29d66cc5-f001-5981-2610-d990f712eb27.png)



# 最終的な結果
LINE公式アカウントでの情報発信は以下のようになります。
かわいらしい絵文字も挿入してくれるのが、生成AIがさすがだと思いますね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/a537593e-24b6-b05b-59c7-a6fbedc5fbca.png)


# 考察
上記のコメントを見ても、エサを食べている様子を上手く伝えてくれていますし、「育てていきますね！」などは羊の飼育を情報発信する役割として上手くコメントが生成されているような気がします。


# まとめ
ソラカメ＋SORACOM Fluxを使うことで上記のようなことがサクッと実現できたのはすごいと思います。もちろん、LINE公式アカウントの作成やLINE Messaging APIの使い方など、いろいろ事前に知識があったことでのスピード感もありますが、基本的には ローコード 且つ ソラコム環境 でシステムがクローズしているのはすごいことだと思います。
最終的な情報発信ツールとしては、まだまだ本来の目的に合ったものに向けてのブラッシュアップは必要だと思いますが、もともと抽象度が高くなりがちな課題に対するアプローチとしては、サクッと作って、サクッと試して、フィードバックのサイクルを早く回すという点においては、十分かと思いました。


# お友達追加はこちらから
テスト運用なので突然運用を停止する可能性もありますが、羊の飼育を一緒に楽しんでくれる方はどうぞ！

https://lin.ee/uG7t054

![S_gainfriends_2dbarcodes_BW.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/d4921ab7-3b8c-fbfd-175d-a5136dde1173.png)

# おまけ：生成AIによるコメント集

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/737acce4-89f9-167e-aea4-3ffa1e7c723c.png)

> こんにちは！羊たちが元気に遊んでいる様子をご報告します。彼らはお昼寝の後に仲良くおしゃべりしているかのようです。ふわふわの毛並みに、ちょっとした泥んこ遊びも楽しんでいる様子。草の匂いがする新鮮な空気の中で、みんなとってもハッピーそうです！これからも大事に育てていきますね！
<br>
<br>


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21408/a84f4856-6858-5795-6668-79d8872d7f97.png)

> こんにちは！今日は羊たちが元気にご飯を食べている様子をご報告しますよ。ふわふわの毛に包まれた可愛い羊たちが、仲良くお食事中です。自然の中でのびのびと過ごしていて、とても幸せそうです！これからも大切に育てていきますね。

# その他の参考リンク

https://qiita.com/yukima77/items/68b133628a00b1e2a654

https://qiita.com/yukima77/items/e2b78d506575d82d9bce

https://qiita.com/yukima77/items/7b65d0695f06ec074343
スマホでフロント画面をテスト方法「Android」

1.開発者モードを起動
  ①設定 ⇒ システム ⇒ ビルド番号 を 7回連続で押下する
  ②設定に戻り、開発者向けオプション ⇒ 「USBデバッグ」を有効にする

2.スマホをPCに接続する「線で」

3.スマホで接続を許可する

4.スマホとPCは同じブラウザを開く、「Edge又はChrome」

5.PCで新しいタブを作って、上の欄に chrome://inspect を入力する 「EdgeとChrome」は
同じ命令

6.そうすると、下記画面で、スマホ情報が見える
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575774/281c00d7-58a5-96ee-d2a7-83ef82ee1381.png)

7.最後はIPマッピングする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575774/2ee7d672-d59e-7543-0258-e14d0b232181.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575774/5addf0d8-506a-8a03-215b-815fd1eee325.png)
右：PCのIP
左：スマホのIP
ダイアログで「Enable port forwarding」を忘れないで

8.スマホでlocalhost:xxxxを開いて、テストを行う。
デザイナーから見たユーザーインタビューの重要性

## はじめに
はじめまして！ランサーズ株式会社でデザイナーをしているすずめです🐦

現在は新規事業のSaasのUI/UXを担当していて、ベータ版のローンチから1ヶ月が経ったので実際に使っているユーザーの方の声を聴きながらよりサービスが使いやすくなるように日々チームの仲間と体験向上に取り組んでいます。
そのためにチームで行っているのがユーザーインタビューです。リサーチャーの方と共に実際に利用してくれているユーザーが課題に感じていることに加え、実際の使い方を観察することで、ユーザー自身も気づいていない課題も深掘りしていきます。
今回はそのプロセスと実施して学んだことを振り返りたいと思います！

## インタビュー準備
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975189/9f2e74af-ca1f-5de1-f402-26589ac81ead.png)

まず最初に、利用する各ユーザータイプの役割とその接点をつなげて俯瞰して見るためのマップを作成しました。このマップ自体はローンチ前に一度作成していましたが、そこからさらに実際のユーザーの利用状況を見ながらアップデートしていきました。
書き出してみると実際の体験がSaas上でスムーズに行われていなさそうな点や自分たちで行動を理解できていない点が何箇所か見つかりました。
そして今回はこの気になる点を深掘ってインタビューしていくことになりました。

## プロトタイプの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975189/dbfa4a3c-d95a-57d8-b426-17a7ed7938dc.png)
中には、話を聞いてみないと改善案を作成するのが難しいような曖昧な課題と、課題と解決策がある程度わかっているようなものがあったので、前者はインタビューを通して深掘りをしていき、後者はプロトタイプを実際に作成して改善案を見てもらい、さらにフィードバックをもらう方針で進めていきました。

## 結果の振り返りと課題発見
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975189/37fb3607-3bb1-bf48-e1c8-ddd21e8809e0.png)

インタビューはリサーチャーの方が作成してくれるインタビューガイドをもとに行います。
今回は4名の方にインタビューをして、リサーチャーの方が話を聞き、私が会話内容をメモにとっていく形で進めていきました。

リサーチャーの方から学んだ、インタビューをする上で重要な以下2点のポイントを念頭に置いて参加しました。 ・ユーザーの発言をそのまま鵜呑みではなく、行動観察をしていること ・表層的な課題ではなく、踏み込んで本質的な課題を捉えるようにしていること

インタビューで実際に聞いた内容をインタビュー直後に振り返り、課題だと思う点はピンクのマーカーで、新たな発見だと思うものは黄色のマーカーで印をつけることで
見つかった課題やペインポイントから「本質的なニーズ」が何なのかを一緒に議論して、要件にまとめていきました。
画像はインタビュー内のごく一部なのですが、ご覧の通り課題や発見したところは山のようにありました笑

## 実際にUI作成してリリースまで
振り返りと課題から得た知見を基に、チーム内でリリースまでのissueの優先順位とスケジュール決めを行い、開発に入っていきました。
今回は実際に使ってくれている方により早く届けるために、ここはデザインなしで要件だけ決めれば改善できる、バックエンドがなくてもフロントエンジニアの方と相談してリリースまでできる、など細かく役割分担をして早くリリースできる方法を探りながら進めていきました。(←まだ模索中です😅)

## 学んだこと
### インタビューしないと気づかない根本の課題が見つかった
今回のインタビューで課題だと思っていた点が、実際の使い方を深掘りしていく中でそもそも他の理由で使いづらく感じていることがわかりました。
### 見当がついている改善も＋αの改善案が見つかった
改善案のプロトタイプを見てもらった結果、さらに使いやすくするためのフィードバックやその理由を聞き出すことができました
### 実際に操作をしてもらうことで使いづらい点が見つかった
インタビュー中に画面を共有していただき、目の前で実際の操作の手順を見せてもらったところ、意図した使い方がされていないところや、入力に手間取っているところがいくつか見つかりました。

## まとめ
今回のインタビューを通してよりユーザーの理解度が上がり、結果的に改善案に自信を持てたことで開発のスピードが速くなったと思います。
また、インタビューをするための準備でユーザーのフローをチームで振り返ることで、曖昧だったユーザーのフローがより明確になった状態でさらにユーザーの声を聞くことができました。
今後もインタビューを通じてより使いやすいサービスになることを目指していきます。

最後まで読んでいただきありがとうございました！！
React　ViteとCRA(Create React App)の違い

アプリ開発中つまずいたポイントを共有します。

udemy視聴後、そちらを参考にReactでアプリ開発しようとhoge.jsxに記述したhogeをブラウザで表示させたく準備を行っておりましたが、udemyではそもそもindex.htmlにscriptタグの記述をしていないためhoge表示に少々時間を費やしました。

以下をブラウザで表示したい
```hoge.jsx
import  "./styles.css";

export const Todo = () => {
  return <div>hoge</div>
};

```

```index.jsx
import React from 'react';
import ReactDOM from 'react-dom/client';

// src 配下のファイルを相対パスで指定
import { Todo } from './Todo.jsx';
import './styles.css';

const rootElement = document.getElementById('root');
const root = ReactDOM.createRoot(rootElement);

root.render(
  <React.StrictMode>
    <Todo />
  </React.StrictMode>
);

```

```index.html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Hoge-App</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="./src/index.jsx"></script> <!--ここの記述が必要-->
  </body>
</html>
```

今回のアプリはViteを使用しており、udemyではCRA(Create React App)を使用している違いがあるためだったことが分かりました。

＜ViteとCRAの違い＞
![FireShot Capture 001 - Vite React Setup - chatgpt.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3707255/93fdd8bf-c1de-0533-d311-4051e102c0b7.png)
上記のようにjavascriptの指定の違いによりscript記述の違いがありました。


# JISOUのメンバー募集中！
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか？
興味のある方は、ぜひホームページをのぞいてみてくださ！
▼▼▼

https://projisou.jp
CharlesでAndroidの通信を確認するための証明書インストール手順

# はじめに
[TVer Advent Calendar 2024](https://qiita.com/advent-calendar/2024/tver)16日目の担当のyabukuです。
TVerではフロントエンドのQAを担当しております。
昨日は[@kanataxa](https://qiita.com/kanataxa)さんの『Backend Enabling Teamができて半年くらい経ちました』でした。
今回はCharlesのAndroid設定について書いていきます。
TVerでは通信の中身を見る機会が多く、検証ツールとしてCharlesを使用しているのですがAndroidの設定に苦戦したので皆さんに共有できればと思いました。
# CharlesのAndroid設定について
#### Chalesとは
Charlesはリクエストやレスポンスの内容を確認できたり、書き換えられるツールです。
![Charles.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935917/79fea80f-76e9-0415-61a1-be4a90501780.png)
#### Chalesの導入方法
以下6つの工程を踏めばAndroidでCharlesが使用できます。
1. PCにCharlesをインストールする
2. PCのCharles設定をする
3. Androidに証明書をインストールする
4. AndroidのCharlesの設定をする
5. PCのCharlesを起動する
6. AndroidのWi-Fi設定を切り替える

導入方法の詳細は[こちら](https://qiita.com/ishigaki_hige/items/cf86d35e13470a543551)を参考にしてください。

#### 苦戦したこと
私が苦戦したのは上記工程の **3.Androidに証明書をインストールする**になります。
Androidはadbコマンド等で証明書を入れるだけではダメで拡張子を変更して入れてみたりしたのですがどれも上手くいきませんでした。

#### 解決方法
CA証明書としてCharlesの証明書をインストールする事で解決しました。
詳細は以下になります。
1. CharlesのHelp > SSL Proxying > Save Charles Root Certificateを選択しPCの任意のディレクトリに証明書を保存する
2. Googleドライブの任意のディレクトリに証明書をアップロードする
3. 設定 > セキュリティーとプライバシー > その他のセキュリティとプライバシー > 暗号化と認証情報 > 証明書のインストール > CA証明書にアクセスする![CA証明書.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935917/ef64b5dc-12d8-695b-dcf4-7cf686ed52c3.png)
4. インストールするを押下する
5. PINを入力し、ドライブにアップロードした証明書を選択する

あとはCharlesの導入方法の4.5.6を実行すれば使用する事ができます。

# 最後に
Charlesの導入の記事はどれも『Androidに証明書をインストールする』という一文で記載される事が多く、私のように沼った人の助けになれば良いなと思っております。
明日の[TVer Advent Calendar 2024](https://qiita.com/advent-calendar/2024/tver)17日目は[@HaSuzuki](https://qiita.com/HaSuzuki)さんによる『Jetpack Compose で AppSearch に対応する』です。
来年は不具合分析もしくは自動テストについて記事を書けたらなと思っております。
【Rails】Pay.JPのコンソールエラー解消方法

# 記事概要
Pay.JPを実装している場合に、「Uncaught Error: 既にインスタンス化されています」というコンソール上のエラーを解消する方法をまとめる。

# 言語やフレームワーク
|| 使用技術 |
| ---- | ---- |
| フロントエンド | HTML |
| バックエンド | Ruby 3.2.0 <br> Ruby on Rails 7.0.8.6 |
| データベース | MySQL |
| インフラ | - |
| API | - |
| その他 | Pay.JP |

# 前提
- クレジットカード決済機能として、Pay.JPを導入している

# 事象
クレジット登録ページへ画面遷移後、コンソール上にエラー「Uncaught Error: 既にインスタンス化されています」が発生する
[![Image from Gyazo](https://i.gyazo.com/864d043b09ca24c3c2dae361c4e94b69.gif)](https://gyazo.com/864d043b09ca24c3c2dae361c4e94b69)

# 解決方法
## ビューファイルを編集
turboをオフにするため、link_toメソッドに`data: { turbo: false }`を追記する
```erb
<%= link_to '更新', new_card_path, class: "item-red-btn2", data: { turbo: false } %>
```
```erb
<%= link_to 'もどる', user_path(current_user.id), class:"back-btn", data: { turbo: false } %>
```

## ブラウザ画面
[![Image from Gyazo](https://i.gyazo.com/6fe4f567f0c8a098111951927c09694c.gif)](https://gyazo.com/6fe4f567f0c8a098111951927c09694c)
効率とパワー

# ある負荷を超えるとパワーが下がるので一定の負荷を維持することが最大の効率になる
### グットプット　受信側に到着する速度
>負荷に対する、グットプット(goodput)（有効なパケットが受信側に到着する速度）

### 輻輳が起こると受信側は機能しなくなる
>負荷が上昇するにつれ、`グッドプットは最初は負荷と同じ速度で増加する。容量を達すると、増加は緩やかになる`。これは、トラフィックがバースト的に一時的に大量に生じたことにより、ネットワーク内のバッファでロスが発生するためである。もし、トランスポート層プロトコルが貧弱に設計されていて、遅れたパケットを廃棄せず再送する方法であったとすると、ネットワークは輻輳状態に陥る。この状態では、送信側は狂ったようにパケットを送り続けても、そのほとんどは無駄な努力となる。

### パワーを最大化させることがネットワークの性能を良い状態にする
>グッドプットも遅延も輻輳状態では悪化する。遅延が急激に増大するまでは、ネットワークは良い性能を達成している。kleinrockはパワー(power)という指標を提案した。
パワー=負荷/遅延

>パワーは負荷の上昇とともに、`最初は増加し、その後最大値に達した後は、急激に下がる`。`パワーを最大化する負荷は、トランスポート層にとって最も効率の良い負荷`となる。ねっっとワークとしてはこの状態をできるだけ維持するのが良い。

# 感想
輻輳をもう一度復習したい
検証ブロッカーチェックをビルドパイプラインに組み込んだ話

## はじめに
はじめまして。QA歴3年目の者です。
先日の**GREE Tech Conference 2024**（以下、GTC）で、「実機ビルドのエラーによる検証ブロッカーをゼロに！『ヘブンバーンズレッド』のスモークテスト自動化の取り組み」を発表しました。
本記事では、発表時の「今後の展望」にも触れた**検証ブロッカーチェックをビルドパイプラインに組み込む**際のフロー変更点、つまずいた点、そして得られた知見を共有します。

##### ビルドパイプラインとは
> アプリケーションのビルド（構築）からテスト、デプロイ（配布）までの一連の作業を自動化する仕組みのことです。



##### **GREE Tech Conferenceとは**
> グリーでは、さまざま事業領域でサービスを開発・運営するとともに、技術的なチャレンジにも積極的に取り組んでいます。
GTCは、これらのチャレンジを通じて得られた知見や、今後の取り組みを共有する技術カンファレンスです。

▼**公式サイト**
https://techcon.gree.jp/2024


## GTCで発表したこと

まずGTCで発表した内容について簡単に紹介します。
### 課題
* 検証ブロッカーの発生により、当日テストが実施できない
* QA期間が1日短縮される

補足: 「ブロッカー」とは、ビルドが動作しないなど、テストが開始できない不具合を指します。
### 解決方法
* ビルド完成直後に自動スモークテストを実施
（ビルドは夜間に完成することが多い）
* すでに存在していたSlack通知チャンネルを活用し、スモークテストサーバーで常時チャンネルを監視。通知を受け取ったタイミングで自動テストを開始するフローを構築
### 新たな課題
* Slackがダウンしたり通知が失敗すると機能しない
* Slack通知までにタイムラグが発生する
* ビルド不具合以外の要因でスモークテストが最後まで完了しないケースがある
### 今後の展望
* ビルドパイプラインへの組み込み
* スモークテストの精度向上

今回は、上記のうち「ビルドパイプラインへの組み込み」について共有します。

## ビルドパイプラインへの組み込み
改めて、課題、解決方法、構成図、フローチャートの変更点、つまずいた点、そして得られた知見についてお話しします。

### 課題
* Slackがダウンしたり、通知が失敗すると機能しない
* Slack通知にタイムラグが発生する
### 解決方法
* **ビルドパイプラインに直接組み込む**
一部のフローをJenkins Jobとして構築しました。この作業はQAチームだけでは対応が難しかったため、エンジニアと共同で進めました。

### エンジニアと共同作業を進められた理由
* **エンジニアが協力的だった**
プロジェクト全体の品質意識が高く、エンジニア側からの積極的なサポートを受けることができました。
* **エンジニアにもメリットがあった**
ビルドパイプラインの改善によって、エンジニア側にも以下の利点がありました。

### エンジニアのメリット
* **夜間の作業負担が軽減**
ビルド作成担当のエンジニアが、夜間にビルド完成後の起動確認を行う必要がなくなった。
* **進捗の可視化**
Jenkinsのダッシュボードでテスト進捗を簡単に確認できるようになった。

### QAのメリット
* **時間の短縮**
Slackを介さないフローに変更したことで、テスト完了までの時間が短縮された。

### 構成図
![Qiita_構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623006/bff20297-a7dc-c58f-ccaf-dc6252957b89.png)
### フローチャート
#### 発表時のフローチャート
![Qiita_発表時フローチャート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623006/3c439699-6edd-8213-a46a-60a4ea94a35a.png)

* Slack通知チャンネルを1分ごとに監視し、「ビルド完成通知が来たか」「キューにタスクがたまっているか」を確認します
* 自動スモークテストは通信環境や端末の挙動によって失敗しやすいため、エラー扱いになった場合は再実行する仕組みを採用しています

#### ビルドパイプラインへの組み込み後のフローチャート
![Qiita_ビルドパイプライン導入後フローチャート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3623006/039e6581-0be7-bfb8-32ee-84ffb46ce676.png)


* Slackを介さず、ビルド完成後に即時自動テストを開始できるようにしました
* Jenkins Job部分は、エンジニアに対応してもらいました

### つまずいた点と得られた知見
以下に、「面倒でもやったほうが良い」と感じた点を共有します。
1. **Jenkins Job導入時の課題**
    -  サーバーOSやPythonをバージョンアップする必要があり、インストール済みモジュールが削除されました
    -  **解決策**
        -  必要なモジュールはリスト化しておく
1. **スクリプトファイルの構成変更**
    -  フローチャートが変更されたことで、スクリプトの構成を見直す必要があり、実装に時間がかかりました
    -  **解決策**
        -  フローチャートを作成し、整理してから実装する
1. **新しいWindows端末での再構築**
    -  新しい端末に変わった際、環境再構築に時間を要しました
    -  **解決策**
        -  必要なモジュールや環境設定をリスト化する
1. **エンジニアとの共同作業**
    -  資料はあったものの活用されず、質問し合いながら進める形になりました
    -  **解決策**
        -  ミーティング資料には「解決したいこと」「やりたいこと」を明記する
        -  手段やフローはMTG中に補完する
### 導入した結果
* テスト進捗を確認できるようになったことが、予想外にありがたいと分かった
    * 今までどのビルドがテスト中なのか分かりづらかった
    * テスト完了時間が見通せるようになるメリットがあった

## 最後に
今回の取り組みは、GTC発表前にとあるエンジニアの方から「Jenkinsパイプラインに取り込めばよくない？」という提案をいただいたことがきっかけで動き出し、実現しました。
Jenkins Jobを実装してくださったエンジニアの方、相談に乗ってくださった方々に感謝します。また、マシン調達や回線確保、社内調整をしてくださった上司にも深く感謝しています。
スモークテスト自動化のアイデアを思い付いたのは2023年1〜2月頃だったため、ここまで時間がかかりましたが、今後は他のチームへの導入も目指していきたいと思います。
State of AI Report 2024: Research

### State of AI Report 2024(Benaich, 2024)

https://www.stateof.ai/


#### Q: Research topics に関して、このレポートの概要を教えてください
#### A: 

提供された情報源に基づいて、Researchに関する部分を詳細にまとめます。

### 1. 生成AIモデルの性能向上と競争激化

2024年の生成AI研究は、モデル性能の向上と競争の激化が特徴です。情報源によると、OpenAIのGPT-4が長らくトップの性能を誇っていましたが、Claude 3.5 Sonnet、Gemini 1.5、Grok 2などのモデルが追い上げ、性能差は縮まっています。

* **OpenAI o1**: OpenAIは、推論計算能力の強化に注力したo1をリリースしました。これは他の研究機関の追随を許さない、OpenAIの戦略的な優位性を示しています。
* **Llama 3**: Metaは、オープンソースのLlama 3ファミリーをリリースしました。Llama 3.1 405Bは、GPT-4oやClaude 3.5 Sonnetに匹敵する性能を示し、オープンモデルが商用モデルとの性能差を埋めた最初の例となりました。

これらの進展により、モデル開発者は、新しい機能や製品の差別化に注力せざるを得なくなっています。

### 2. モデルの効率化と軽量化

生成AIモデルの巨大なサイズと計算コストは、実用化における課題となっています。研究者は、モデルの効率化と軽量化に取り組んでおり、以下の点が注目されています。

* **モデル圧縮**: モデルの層やニューロンを削減することで、性能を維持しつつサイズを縮小する研究が進んでいます。
* **蒸留**: 大規模モデルの知識を小規模モデルに転移する蒸留技術が注目されています。GoogleのGemini 1.5 FlashやGemma 2は、蒸留によって軽量化されています。
* **量子化**: モデルのパラメータの精度を下げることで、メモリ要件を削減する量子化技術が注目されています。MicrosoftのBitNetは、量子化によってメモリとエネルギーの消費を大幅に削減することに成功しています。
* **表現微調整**: モデルの重みを変更せずに、内部表現を操作することで、モデルの動作を制御する表現微調整（ReFT）が注目されています。ReFTは、従来の重みベースの微調整方法に比べて、パラメータ数が大幅に少なく、デバイス上でのパーソナライズに役立つ可能性があります。

### 3. マルチモーダル化と応用分野の拡大

テキストだけでなく、画像、音声、動画、3Dモデル、さらには生物学的データなど、複数のモダリティを扱うマルチモーダルモデルの研究が活発化しています。

* **VLM**: Vision-Language Model（VLM）は、画像とテキストを組み合わせたタスクを実行できます。主要な生成AIモデルは、すべて視覚機能を備えており、小規模モデルでも優れた結果を達成しています。
* **テキスト to ビデオ**: Stability AIのStable Video Diffusionは、テキストプロンプトから高品質の動画を生成できる最初のモデルの1つです。Google DeepMindとOpenAIも、強力なテキスト to ビデオモデルを開発していますが、まだ一般公開されていません。
* **生物学**: AlphaFold3は、タンパク質の構造予測において画期的な成果を上げました。DeepMindは、AlphaProteoというタンパク質設計モデルも発表しています。また、EvolutionaryScaleのESM3は、タンパク質の配列、構造、機能を学習するマルチモーダルモデルです。

### 4. 推論計算とデータキュレーションの重要性

大規模な計算クラスターの構築と維持は、ますます困難になっています。研究者は、計算効率を向上させるための新しいアプローチを探求しています。

* **分散型低通信（DiLoCo）**: Google DeepMindは、デバイス間の通信を削減するDiLoCoという最適化アルゴリズムを提案しました。
* **データキュレーション**: 効果的な事前学習には、データキュレーションが不可欠です。Google DeepMindのJESTは、学習過程でトレーニングデータの関連性を動的に評価し、計算コストを削減しつつ性能を維持します。

### 5. 倫理的課題と安全性への取り組み

生成AIの利用に伴う倫理的な問題や安全性のリスクに対する懸念が高まっています。研究者は、これらの課題に対z索しています。

* **合成データ**: 生成AIモデルのトレーニングに合成データを使用するケースが増えています。しかし、合成データの使用がモデルの劣化を引き起こす可能性があるという懸念も示されています。
* **データセットの汚染**: トレーニングデータにテストデータや検証データが混入するデータセットの汚染が、モデルの性能を過剰に評価している可能性が指摘されています。
* **オープンソースモデル**: オープンソースモデルの定義やライセンス、データセット、アクセス方法に関する透明性の問題が指摘されています。
* **jailbreaking**: 生成AIモデルを不正な目的に利用しようとするjailbreakingの試みが相次いでいます。研究者は、jailbreakingに対する防御策を開発していますが、攻撃手法も進化しており、いたちごっこの様相を呈しています。
* **解釈可能性**: 生成AIモデルの判断過程を理解し、説明する解釈可能性の研究が重要視されています。

### 6. 今後の研究方向

生成AIの研究は、今後ますます発展し、以下のような分野が注目されると考えられます。

* **AGI**: Artificial General Intelligence（AGI）の開発は、生成AI研究の究極の目標です。ARC賞など、AGIの開発を促進するための取り組みも始まっています。
* **推論能力の向上**: 生成AIモデルの推論能力を向上させるための研究が重要視されています。Quiet-STaRやGoogle DeepMindの研究は、推論能力の向上に貢献する可能性があります。
* **オープンエンド性**: 新しい知識を生成できるオープンエンドな生成AIシステムの開発が注目されています。
* **信頼性の向上**: 生成AIモデルの信頼性を向上させるための研究が重要視されています。hallucinationやconfabulationなどの問題に対処するための研究が進んでいます。

生成AIの研究は、急速に進歩しており、その成果は社会に大きな影響を与える可能性があります。今後も、倫理的な配慮と安全性の確保を重視しながら、研究開発を進めていく必要があります。
Cursor AI機能が使えないとき

## このようなエラーが出ませんか？
> connection failed

> Please check your internet connection or use a VPN and try again. If this persists, please email hi@cursor.so.
## これで解決するかも
1. `` Cmd/Ctrl + , ``で設定メニューを開く
2. 検索窓に`` Http2 ``と入力
3. `` Cursor > General: Disable Http2 ``にチェックを付ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3875475/4914e212-42db-0eb4-a8b7-ea0d55b57dc0.png)

以上。
もしこれで解決したら、いいねお願いします！
LINE WORKS Developer Console で Bot を登録する

# LINE WORKS Developer Console で Bot を登録する手順

LINE WORKS Developer Console を使用して、Bot を登録する方法です。

## 手順概要
1. Bot メニューにアクセスする  
2. Bot を新規登録する  
3. 必要な情報を入力し、設定を保存する  

## 1. Bot メニューにアクセスする
まずは、LINE WORKS Developer Console の **Bot メニュー**にアクセスします。以下のリンクから直接アクセスできます。  
[LINE WORKS Developer Console - Bot メニュー](https://dev.worksmobile.com/jp/console/bot/view)



## 2. Bot を新規登録する
### (1) 「登録」ボタンをクリック
画面右上にある「**登録**」ボタンをクリックします。
![temp_1733817654093.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/bedf4775-129d-3892-b405-bb6b1410a4db.png)

## 3. 必要な情報を入力する
### (1) Bot 名の設定
「**Bot登録**」画面が表示されます。以下の項目を入力します。

- **Bot名**: Bot を識別しやすい名前を入力します。  
- **説明**: Bot の機能や用途を簡潔に説明します。  
- **Callback URL**: Bot との通信に使用する URL を指定します。  

![temp_1733817672425.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/ad871172-f2c4-c102-3131-a46ae0925077.png)


### (2) 管理者の設定
「**管理者**」セクションで、以下の設定を行います。

- **主担当**: Bot の主な管理者を設定します。  
- **副担当**: 必要に応じて、副担当を設定します。  

![temp_1733817686558.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/67da3b62-de53-ecc1-4b6f-b1976a7cbc28.png)


### (3) 保存
画面下部にある「**保存**」ボタンをクリックして、設定内容を保存します。

## 補足
Bot の登録が完了したら、次のステップとして管理画面での Bot の設定を行ってください。

---

以上の手順で LINE WORKS Developer Console に Bot を登録できます。不明点や質問があれば、コメントでお知らせください！