OmniAICreator/Qiita-1.07M huggingface dataset:
今流行りのChatGPT（OpenAI）のAPIを使った名前ジェネレーターを作った

# なぜ作ろうと思ったのか
1. GPT-4が登場して、急に流れきたな…
1. なんか作りたいなぁ
1. OpenAIのAPIも少し前に出てたなぁ
1. そういえばホグワーツレガシーのキャラメイクで名前考えるの辛かったなぁ

ということで作ってみることにしました。

# 作ったもの
- [名前ジェネレーター](https://name-generator.deg84.app)という、年齢、性別、職業、趣味、特徴などのテキスト情報を基に、オリジナルのキャラクターや人物の名前を生成するサービスを作りました
- 入力された情報をOpenAIのAPIに投げて、名前を生成しています

ちなみに、このプロダクトは、株式会社mofmofの「水曜日の個人開発」にサポートされています。
https://indie-dev.mof-mof.co.jp

# 技術的な話
## 技術スタック
- OpenAI API
- Next.js
- TypeScript
- ESLint
- Prettier
- daisyUI
  - Tailwind CSS

Next.jsはApp Directoryを使ってみています。
まだベータなので本格的に使うかはちょっと悩ましいですね…

## OpenAI API周り

OpenAI APIのCompletionsを使っています。
https://platform.openai.com/docs/guides/completion/text-completion
https://platform.openai.com/docs/api-reference/completions

ChatGPTのようにChat用のAPIもありますが、やり取りして出力するような内容でもないので今回はCompletionsを使いました。

ちなみに、APIからGPT-4を使うためには招待が必要で、まだ招待をもらえていないので名前ジェネレーターで使っているモデルは`text-davinci-003`です。

### 日本語はトークン消費量が多い

トークンの計算はここでシミュレート出来ます。
https://platform.openai.com/tokenizer

例えば「こんにちは」の場合、日本語（こんにちは）だと6トークン、英語（Hello）だと1トークン。

トークン量に応じた課金なので出来る限りトークン量は減らしたいところです。

入力された文字列はそのままですが、OpenAI APIに投げるときの文章は英語にすることで、トークン量を抑えています。

## daisyUI
今回、初めてdaisyUIを試してみました。

これまでChakra UIをよく使用していましたが、App Directoryとの相性があまり良くないと聞いたため、Tailwind CSS系の代替案を探していました。そこで、ChatGPTに相談したところ、daisyUIがおすすめだと教えてもらいました。

daisyUIは、Chakra UIやBootstrapのように緻密に設計されたスタイルではなく、必要なパーツがほどよく揃っているという印象を受けました。
UIデザインに自信があるエンジニアや、UIを整えることが得意で好きな人にとっては、とても良い選択だと思います。

また、daisyUIはダークモード対応が自動で行われるため、手間が省けます。
さらに、豊富なテーマが用意されているので、配色に悩むことなく、好みのテーマを選んで使用することができました。

# その他苦労ポイントとか

## 英語にしたことで、欲しい結果が返ってこない

前述の通り、トークン量を抑えるために英語にしたところ、生成される名前がすべて英語表記になってしまいました。

日本人であっても、`木村隆史`という結果が欲しい場合に`Takashi Kimura`になってしまうことがあります。

これに対処するために、以下のテキストをプロンプトに追加しました。

```
Answer in the format "Japanese notation (English notation)"
```

この変更により、日本語表記と英語表記の両方が返ってくるようになりました。

## 関係ない文字列が含まれることがある

例えば、

```
名前： 田中 翔太 (Tanaka Shota)
```

のような感じで`名前：`が含まれることがあります。

一応、プロンプトには

```
Name only # Name value onlyと指定したこともあった
```

と設定しているのですが…

この問題に対処するために、正規表現を使って不要なテキストを削除しています。

必ずしも求めた答えが返ってくるとは限らないということです。

## 使われすぎると費用がかかる…

当然ですが、1リクエストごとに0.01円程度の費用がかかります。

軽く試しに作成したので、今のところ問題はないですが、本格的なサービス化を考える場合、同じテキスト内容であればキャッシュしておいた回答を返すようにするなど（実際に皆が同じ内容を入力するかどうかは疑問ですが）、APIへのリクエストを減らす工夫が必要かもしれません。

急場しのぎの対策として、送信後に内容をリセットするようにしました。これを実装しないと、内容が残ったまま何度も送信できてしまうためです。

# まとめ
ということで、個人開発したサービスの紹介でした。
もしよかったら使ってみてください。
フィードバックなどもお待ちしております。

ちなみにこの記事はChatGPT（GPT-4）に一部校正してもらいました。
androidでelixir その4

# 概要
androidでelixirやってみる。
androidだけで投稿してみる。
練習問題やってみる。

# 練習問題
コードをコピペして実行せよ。

# 手順

# chromeでコピー

このページを参考します。


https://qiita.com/MzRyuKa/items/99ca4ff15911986682c6

# iexを起動。

# コードをペースト

# 実行結果


![Screenshot_20230328-073543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/adc0a62e-fbed-c8ea-9a9d-6fa09aa12b75.png)


以上。
docker-composeでLaravel開発環境を構築する ~①docker-compose.ymlとフォルダ構成~

# はじめに
業務で`Laravel`の開発環境を`docker-compose`で構築することがありました。
しかし詳しいことは全く知らなかったので、自分で1から作ってみようと思います。

環境は`WEB(nginx)`、`PHP`、`DB(MySQL)`サーバーの構成となります。

# 目次
　1. [docker-compose.ymlについて](#docker-composeymlについて)
　2. [必要なディレクトリ、ファイルの準備](#必要なディレクトリファイルの準備) → 今回はここまで
　3. nginxコンテナの作成
　4. PHPコンテナの作成
　5. Laravelプロジェクトの作成
　6. MySQLコンテナの作成
　
# docker-compose.ymlについて
`docker-compose`で複数のコンテナを起動する場合、`Dockerfile`(コンテナを起動するのに必要なDockerイメージの設計図となるもの)とは別に、複数のコンテナを定義する`docker-compose.yml`が必要となります。
```docker:docker-compose.yml
version: "3"
service:
  web:
    container_name: "web"
    build: "./web/Dockerfile"
    ports: 
      - "8080:80"
    volumes:
      - "../src:/var/www/html"
  php:
    ...
```
### 定義されている各項目について
|  項目  |  説明  |
| ---- | ---- |
|  version  |  docker-composeのバージョンを指定  |
|  service  |  配下にコンテナを定義（上記の例で言うと`web`、`php`がコンテナに当たる）  |
|  container_name  |  コンテナ名を定義  |
|  build  |  -コンテナ作成に使用するDockerfileのパスを指定<br>-コンテナ作成に`DockerHub`のイメージを使う場合は`image:イメージ名`と定義  |
|  ports  |  -ホストとコンテナのポート番号の対応付け（ポートフォワーディング）<br>-`:`を挟んで左がホスト側のポート、右がコンテナ側のポート  |
|  volumes  |  -ホストとコンテナの`volume`をバインド<br>-`:`を挟んで左がホスト側のパス、右がコンテナ側のパス  |
* 補足
    * パスについて
      - ホスト側のパスを定義する際は、**誰が環境構築しても同じものができる**ように、**相対パス**で定義する
    * `volume`について
      - `volume`とは、コンテナにおいて生成される**データを永続的に保持する**目的で利用される仕組み（ホスト側に保存される） 
      - コンテナに保存したデータはコンテナを破棄すると消えるが、`volume`に保存したデータはコンテナを削除しても残るので再利用できる

# 必要なディレクトリ、ファイルの準備
では、環境構築に必要なディレクトリ、ファイルを準備してプロジェクトを作成していきます。

### 1. ディレクトリを作成
プロジェクトディレクトリと、その中に`docker-compose`に関するファイルを保存するディレクトリを用意します。
```
$ mkdir laravel
$ cd laravel
$ mkdir docker
```

### 2. docker-compose.ymlを作成
```
$ cd docker
$ touch docker-compose.yml
```

### 3. nginxコンテナ作成に必要なファイルを作成
`nginx`コンテナを作成するのに必要な`Dockerfile`と、`nginx`の設定ファイルを用意します。（dockerディレクトリの配下）
```
$ mkdir web
$ cd web
$ touch Dockerfile
$ touch default.conf
```

### 4. PHPコンテナ作成に必要なファイルを作成
`PHP`コンテナを作成するのに必要な`Dockerfile`と、`PHP`の設定ファイルを用意します。（dockerディレクトリの配下）
```
$ cd ../
$ mkdir php
$ cd php
$ touch Dockerfile
$ touch php.ini
```

### 5. MySQLコンテナ作成に必要なファイルを作成
`MySQL`コンテナを作成するのに必要な`Dockerfile`と、`MySQL`の設定ファイルを用意します。（dockerディレクトリの配下）
```
$ cd ../
$ mkdir db
$ cd db
$ touch Dockerfile
$ touch my.conf
```

### 6. 最終的なフォルダ構成
```
laravel
├── 後ほど作成するLaravelプロジェクト
└── docker
    ├── docker-compose.yml
    ├── web
    │   ├── Dockerfile
    │   └── default.conf
    └── php
    │   ├── Dockerfile
    │   ├── php.ini
    └── db
        ├── Dockerfile
        └── my.conf
```

# まとめ
以上で環境構築に必要なディレクトリとファイルの準備ができました！
次は`nginx`から順にコンテナを作成していきます！
【Laravel】アクセサとミューテタについて

# はじめに
業務で実装のレビューを頂く中で、アクセサとミューテタについて学んだので備忘録として残したいと思います。

# レビューを頂く前の実装
```php:test.blade.php
<div>{{ $data->opened_at->format('Y年m月d日') }}</div>
```
取得したデータを求める形にフォーマットして画面に表示したい場面で、上記のように実装をしていました。
このような場面で使えるのが、**データベースからデータを取得する際に、データ加工ができるアクセサ**です。

# アクセサとは
上記でも記載しましたが、アクセサはデータベースからデータを取得する際に走る処理です。
[日本語ドキュメント](https://readouble.com/laravel/9.x/ja/eloquent-mutators.html#:~:text=%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B5%EF%BC%8F%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%86%E3%82%BF-,%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B5%E3%81%AE%E5%AE%9A%E7%BE%A9,-%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B5%E3%81%AF%E3%80%81Eloquent)には下記のように記されています。
>アクセサは、Eloquentの属性値にアクセスが合った時に、その値を変換するものです。

# アクセサの使い方
アクセサは**モデルに定義**をし、メソッド名はデータベースカラムの**キャメルケース**にする必要があります。
全てのメソッドの戻り値は`Attribute`インスタンスとなります。
この戻り値の`Attribute`クラスのコンストラクタに`get`引数で処理を設定することで、対象のデータベースカラムにアクセスし処理を実行します。

例えば日時を表す`opened_at`というカラムを`年月日`の形にフォーマットするアクセサを定義したい場合は、以下のようになります。
```php:Models/Test.php
protected function openedAt(): Attribute
{
    return Attribute::make(
        get: fn ($value) => $value->format('Y年m月d日')
    );
}
```
`opened_at`の値が入っている`$value`を使って、フォーマット処理を実装します。
また、アクセサの値を取得する際は、取得したいデータ（上記の例で言うと`opened_at`)を呼び出すだけです。
以下のように呼び出すと、アクセサでフォーマットされて`年月日`の形で表示されます。
```php:test.blade.php
<div>{{ $data->opened_at }}</div>
```

# ミューテタとは
次にミューテタとはアクセサの逆で、データをデータベースに保存する際に走る処理です。
[日本語ドキュメント](https://readouble.com/laravel/9.x/ja/eloquent-mutators.html#:~:text=%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%86%E3%82%BF%E3%81%AE%E5%AE%9A%E7%BE%A9-,%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%86%E3%82%BF,-%E3%81%AFEloquent%E3%81%AE)には下記のように記されています。
>ミューテタはEloquentの属性値を設定するときに、その値を変換するものです。

# ミューテタの使い方
ミューテタもアクセサと同様に、**モデルに定義**をし、メソッド名はデータベースカラムの**キャメルケース**にする必要があります。
ミューテタは`set`引数を指定して、対象のデータベースカラムに設定したい値の処理を実装します。

例えば`closed_at`というカラムに、同じモデルの`closed_code`が`1`の時だけ値を設定したい場合、以下のようになります。
```php:Models/Test.php
protected function closedAt(): Attribute
{
    return Attribute::make(
        set: fn ($value, $attributes) => $attributes['closed_code'] == 1 ? $value : null
    );
}
```

`$attributes`にはモデルの現在の全ての属性を配列で持っているため、`closed_at`に値を設定する際に他のカラムデータも使うことができます。
またミューテタを使うにはアクセサと同様に、設定したいデータに値を設定するだけで自動的に呼び出されます。
```php:TestController.php
$test = Test::find(1);
$test->closedCode = 0;
$test->closedAt = now(); // closedCodeが0なので、ミューテタによってnullが登録される
```

# まとめ
アクセサとミューテタは、使うことでソースコードの記述が減りとても便利だと思います！
きちんと使いこなして、より簡潔に実装できるようにしていきたいです！

# 参考
https://readouble.com/laravel/9.x/ja/eloquent-mutators.html
Intelligent Document Automation for Health Cloud > Set Up Intelligent Form Reader


+ [Set Up Intelligent Form Reader](https://trailhead.salesforce.com/content/learn/modules/intelligent-doc-automation-for-healthcare/set-up-intelligent-form-reader)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a5f54e0f-8a4d-ace3-8df8-e646a8f63ccc.png)

:::note
You have to edit your own document checklist permissions to enable this. in set up quick find search document checklist settings and follow instructions how to do this

これを有効にするには、独自のドキュメント チェックリストの権限を編集する必要があります。クイック検索ドキュメントのチェックリスト設定をセットアップし、これを行う方法の指示に従います
:::
SetROBO for Kittingの新バージョンV2.0の主な変更点

# はじめに
こんにちは。社内PCのキッティングを担当している@Cheeeeeseです。

先日、SetROBO新バージョンV2.0がリリースされました。
SetROBOを使用し始めて初めてのバージョンアップとなります。

本記事ではV2.0の変更点を紹介します。
※リリース案内時に配布された資料をもとに、私の所感を記載しております。

# V2.0の主な変更点
今回のバージョンアップでは、いくつかの機能追加と仕様変更、障害対応がされています。
本記事では主に追加された新機能について特記します。


## 01.記録モードの追加
個人的にV2.0で一番特記すべき点はこの、記録モードが追加され、操作の記録が改善されたことです。

今回のバージョンアップでは従来の記録モードの他に「UI記録モード」が追加されました。
従来の記録モードでは、記録が取れなかった画面がたくさんあったのですが、「UI記録モード」だと記録出来なかったコントロールの記録が取れるようになっていました。

ただ、以前のバージョンで作ったシナリオだと一部動かなくなる場合があるとのことでした。
以下「【重要】SetROBO for Kitting V2.0.0.0 使用上の注意について.pdf」を引用。

> ただし、記録機能の大幅な仕様変更に伴い一部のコントロールで動作しないものもあります。
誠に恐れ入りますが、新バージョンで旧バージョンのCode をご使用の際は、
一度動作検証頂き正常に動作しない箇所があった場合は、その箇所のみ操作の記録を使用して
再度Code を取得し修正していただけますようお願い致します。

そのため、以前の記録モードも使用できるようにConductorのメニューで「UI記録モード」と「記録モード(v1.9.5.0以前)」を切り替えられるようになっています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/4dc0d79a-40ae-626e-7aae-4a1d3ec6c0d3.png" width="80%">

まだしっかり試せてませんが、少し触ってみたところ、以前は全く記録が出来なかったWindowsの設定画面も記録が出来るようになっていました。


## 02.Codeのインポート
別のプロジェクトで作成したCodeを、新しいプロジェクトにインポートできる機能が追加されました。
これまで、既存のCodeを別プロジェクトに追加するには、メモ帳などでCodeを開いてコードをコピーして、別プロジェクトのCodeに貼り付けるしか方法がありませんでした。

新しいバージョンでは、Codeを追加するプロジェクトをConductorで開き、プロジェクトビューのCodeを右クリック→「Codeのインポート」で追加することができるようになりました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/ada460bb-7b7e-f655-c337-c6f3d36d4944.png" width="80%">


## 03.LogViewerを起動しない設定を追加
Conductorでシナリオを実行した際に「LogViewer」を起動しない設定が追加されました。
これまでは、Conductorでシナリオを実行すると、実行終了時に必ず「LogViewer」が起動されていましたが、新しいバージョンでは、Conductorの「ツール(T)＞オプション(O)」の「Conductor設定」で「実行終了時にLogViewerを起動する」を設定することが出来るようになっています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/be894e43-fd3b-65e4-0255-6809e3b027a1.png" width="40%">

## 04.各アイテムのコピー
Plan、Suite、Codeのアイテムのコピー機能が追加されました。
コピーしたいアイテムの右クリックメニューに「コピー」が追加されていました。コピーをクリックすると即座にアイテムがコピーされます。
また、「Ctrl＋c」でもコピーが可能になりました。（こちらも即座にコピーされるため、「Ctrl＋v」は不要）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/53bbdee3-2dba-9071-d831-7d0faee56442.png" width="80%">

　

以上がV2.0で追加された新しい機能です。

その他、仕様変更や障害対応が何点か対応されています。
仕様変更の中で私がありがたい！と思ったのを一つ紹介します。


## 05.コンパイル対象を実行するCodeのみに変更
今まで、Conductorで実行の確認をする時、実行したいCodeとは別のCodeを開いていると、開いているCode全部がコンパイル対象となっていたため、別のCodeにエラーがあるとコンパイルが通りませんでした。

なので、実行したいCode以外にコンパイルでエラーになるCodeがあると、いちいち修正するか、閉じなきゃいけなかったりと面倒でした。(面倒くさがり)

そこがV2.0では修正されていました！
個人的に実行確認がとてもやりやすくなりました～:clap:

# 最後に
今回はSetROBOの新バージョンV2.0の主な変更点を紹介しました。
記録機能が改善された点はとても大きい変更だと思います。

SetROBOのホームページで紹介されているバージョンアップ情報によると、記録機能の改善の他にExcelやWebなども自動化対象になったとのことでした。
ExcelやWebはまだ試したことがないので、後で試してみようと思います。

# 参照
- [SetROBOホームページ](https://www.setrobo.jp/)
- 【重要】SetROBO for Kitting V2.0.0.0 使用上の注意について.pdf（ダウンロードページより取得）
- SRV.2.0.0 バージョンアップ変更点.pdf（リリース案内時に配布）
　※変更点の資料は、購入者へのリリース案内メールに添付されていました。
TerraformでS3とIAMロールを構築してEC2からS3にアクセスしてみる

# はじめに
Terraformの勉強を始めたので備忘録を兼ねて行ったことを投稿しようと思います。
以下の2つの投稿内容を実施した上でS3とS3アクセス用のIAMロールを構築を行なっています。
[TerraformをインストールしてTerraformでAWS上にEC2作ってみる](https://qiita.com/kakita-yzrh/items/1357a219b4a891a441ff)
[TerraformでIAMを設定してEC2にセッションマネージャー経由で接続してみる](https://qiita.com/kakita-yzrh/items/980f3209d587e7e349a6)

# TerraformにS3の定義を追加

### S3を作成する
バケット名`demo-s3-bucket-20230226`でS3を作成します。
```terraform:s3.tf
resource "aws_s3_bucket" "test" {
  bucket = "test-s3-bucket-20230226"

  tags = {
    Name = "tf_test_s3"
  }
}
```

# TerraformにS3アクセス用のIAMロールを定義
### アクセスを許可するS3と操作を定義
リソースには先程定義したS3`test-s3-bucket-20230226`を指定します。
リソースで制限しているため、アクション全て許可
```terraform:iam.tf
data "aws_iam_policy_document" "allow_rw_access_s3_role_policy" {
  statement {
    actions   = ["s3:*"]
    resources = ["arn:aws:s3:::test-s3-bucket-20230226", "arn:aws:s3:::test-s3-bucket-20230226/*"]
    effect    = "Allow"
  }
}
```

### ポリシーを定義
先程定義したS3アクセスの内容をもちいてポリシーを定義します。
```terraform:iam.tf
resource "aws_iam_policy" "allow_rw_access_s3" {
  name   = "test_s3_policy"
  policy = data.aws_iam_policy_document.allow_rw_access_s3_role_policy.json
}
```

### ポリシーをロールにアタッチ
下記で定義したロールに先程定義したポリシーをアタッチします。

https://qiita.com/kakita-yzrh/items/980f3209d587e7e349a6#iam%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E5%AE%9A%E7%BE%A9

※このロールは既に下記でEC2に付与されています

https://qiita.com/kakita-yzrh/items/980f3209d587e7e349a6#ec2%E3%81%AB%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%9F%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E8%A8%AD%E5%AE%9A

```terraform:iam.tf
resource "aws_iam_role_policy_attachment" "test_s3" {
  role       = aws_iam_role.test.name
  policy_arn = aws_iam_policy.allow_rw_access_s3.arn
}
```

# TerraformでS3とIAMロールを作成
### Terraformのplan applyを実行
```bash
terraform plan
terraform apply
```

# EC2からS3にアクセス
### セッションマネージャーでEC2に接続する
以下と同様にEC2に接続します。

https://qiita.com/kakita-yzrh/items/980f3209d587e7e349a6#%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9Fec2%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B

### aws cliでS3にアクセス
aws cliコマンド使って、作成されたS3にアクセスします。
```bash
aws s3 ls s3://test-s3-bucket-20230226
```
エラーが出なければアクセス確認完了

# 作成したリソースを削除
terraform　の destroyを実行して、AWS上のリソースを削除します。
```
terraform destroy
```

# さいごに
今回、`terraform destroy`した時にS3のバケットが空になっていなかったので削除できませんでした。
調べてみると`terraform destroy`でaws cliコマンドを実行、S3バケットを空にして削除するやり方で回避しているの見つけました。
terraformでコマンドの実行もできるのは知らなかったので良かったです。
チャネル最適化のための分析 - 必要となるデータと対応する経営改善課題

:::note
この本書は2017年4月1日にTeradata Japanのブログに掲載された内容を、再掲載したものです。
掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
:::


著者 山本 泰史 （やまもと やすし）


# チャネル最適化のための分析

## 第1回:必要となるデータと対応する経営改善課題
### 概要

販売及びサービスチャネルは、お客様とのコンタクトポイントであり、顧客サービスレベルを直接的に左右する企業プロセスであると同時に、チャネルのキャパシティとリソースに伴う費用と、販売効果及びサービスデリバリーレベルの間にバランスが求められる企業プロセスです。

このコラムでは、コールセンター、法人営業としてのSFA (Sales Force Automation)、そしてオンコールの保守サービスチャネルを取りあげ、販売及びサービスチャネルの最適化に関連する経営改善課題と、課題改善のための分析シナリオ、そして分析を行っていくにあたり必要となるデータの種類及び分析環境について考察していきます。第1回目の今回は、想定される経営改善課題と必要になるデータについてご紹介します。

### 想定される経営改善課題
販売及びサービスチャネルを最適化する、つまりチャネルにおける効果を最大化しつつ、不要なリソースの投入を避けてコストを低減していくためには、幾つかの考慮するべき課題があります。図1は、チャネル毎にこれらの課題を整理したものです。

<img width="700" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2768546/8c06f639-5ad5-0033-54d7-1f2d0f65b74a.png">

図の縦の並びは各チャネルを表します。これに対して、共通する特性に基づいて横の並びで整理しています。1行目は、人的資源であるエージェント、営業担当者、サービス担当者の配置に関して触れていますが、これを多すぎず少なすぎず、最適なレベルに維持することにより、無用なコストを低減しつつ、顧客サービスレベルを改善する機会を得ることになります。

次の行は、個人としてパフォーマンスの悪いエージェント、営業担当者、サービス担当者を理解し、必要なトレーニングの機会を提供していくことにより、確保している人的資源の生産性を向上させるというテーマです。

そして人的資源同様、チャネルが保持している施設資産とプロセスを需要に対して多すぎず少なすぎず、最適なレベルで維持するということが必要となります。これは、コールセンターであれば回線数やシート数、コールルーティングの最適化ということになります。同様にSFAであれば販売プロセスのボトルネック改善、保守サービスであれば部品在庫の最適化ということになります。これらを改善することにより、サービスチャネルであるコールセンターと保守サービスでは顧客サービスレベルを向上させることが可能となります。

そして、販売チャネルとして考えた場合、コールセンターにおけるアウトバウンドコールの評価と改善、SFAにおける販売プロセスの分析から発見された成功事例の共有、クロスセル機会の発見といった課題に対応させることが可能となります。

### 想定されるデータ

これらの課題に対して、データを分析していくことによって改善するべきポイントを発見することは、必要な行動、もしくはプロセスの改善を促し、最終的に課題に挙げたポイントの改善へと連繋していきます。そして、分析を行っていくためには、適切なデータを選定し、収集することが必要となります。図2は必要となるデータを表したものです。当然ながら各企業によっては少しずつ異なることが想定されますが、ここでは標準的に図に示したようなデータを想定します。

まずチャネル毎に、ヒューマンリソース(人的資源)のデータが存在します。これはコールセンターであればエージェント、またはオペレータと呼ばれる電話をとって応対をする方々のデータです。同様にSFAであれば営業担当者、保守サービスであればサービス担当者データが存在します。


<img width="700" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2768546/b0a621e9-94a5-a769-2218-18bde3af7abd.png">

同様にリソースという観点では、施設や設備のデータが存在します。コールセンターであればコールセンターの施設、つまりシート数や回線数などのデータが挙げられます。そして保守サービスであればパーツのデータが考えられるでしょう。

次に、これらの資源を用いて実施されるデータがチャネルアクティビティのデータとして想定されます。コールセンターであればエージェントの配置データ、SFAであれば営業活動のデータ、保守サービスであれば修理訪問活動のデータとなります。次に想定されるのが、チャネルアクティビティに前後して発生するお客様のレスポンスデータです。コールセンターの場合、これはコールログになります。同様にSFAであれば契約データ、保守サービスであれば修理を要請するコールデータということになります。これらのデータはチャネルに依存したデータですが、これ以外に、チャネルとは独立したキャンペーン、売上等の実績データが適時必要となります。そして同様に商品、顧客、組織、地域やロケーション、カレンダー等の各種マスタデータも必要となるでしょう。

次回以降、コールセンター、SFA、そして保守サービスの各チャネルにおいて、これらのデータを分析し、行動やプロセスの改善に活用するための代表的なシナリオ例をご紹介していきます。




#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)
お母さんでもわかるDockerの超超超基礎

## はじめに
Dockerというと、phpなどのサーバー言語をの時に使うというイメージがあると思います。
確かにその通りなのですが、Dockerではなくても他の環境でも扱えますよね。

例えばMAMPやvirtualboxなど。
何が違うのだろうと思ったので、馬鹿なりに調べてみました。
深くは踏み込んでなく、タイトル通り**超超超基礎**になっております。

かなり大雑把なので随時更新していきます。
最終更新23/03/28

## 環境構築の種類
環境構築には大きく分けて3種類あるそうです。


|環境名|代表的なもの|特徴や使いどき|
|:--:|:--:|:--:|
|ホスト型仮想化|VirtualBox等|開発環境やテスト環境で使用される|
|ハイパーバイザ型仮想化|KVM等(あまり知らない)|大規模なデータセンターやクラウド環境で使用される|
|コンテナ型仮想化|Docker等|開発環境の構築やデプロイメントで使用される|

### ホスト型仮想化
ホストOS（macを使っている人はmacOS）、仮想マシン（VirtualBox等で作成できる）、ゲストOS（仮想マシンにインストールしたもの）が存在している。
OSの中にOSを導入するので、処理が重い！

### ハイパーバイザ型仮想化
ハイパーバイザ型仮想化は、ハイパーバイザと呼ばれるソフトウェアを直接ハードウェア上に実行し、その上で複数の仮想マシンを実行する方式です。ハイパーバイザは、ハードウェアに直接アクセスできるため、ホストOSのような仲介ソフトウェアが不要であり、より高いパフォーマンスが得られます。また、ホスト型仮想化と比較してセキュリティ上のリスクが低く、仮想マシンごとに異なるOSを実行することができます。
（難しい。必要になった時に詳しくしらべるでいいかも。）
### コンテナ型仮想化
ホストOSとプロセスが同期されているため、ゲストOSを用意する必要がない。

※コンテナ型仮想化が普及した現在では、ホスト型仮想化やハイパーバイザ型仮想化の使用頻度は低下しています。

## Dockerイメージ
Dockerイメージとは、Dockerコンテナを作成するための「テンプレート」のようなもので、Dockerコンテナに必要なファイルや設定、アプリケーションなどが含まれています。

Dockerイメージは、Dockerfileと呼ばれるテキストファイルに記述された手順に基づいて作成されます。Dockerfileには、ベースとなるOSイメージの指定や、必要なパッケージやファイルのインストール、設定ファイルのコピーなど、Dockerイメージ作成に必要な手順が記述されています。

Dockerイメージは、Dockerコンテナを実行する際に必要となるため、自分で作成したイメージを保存しておくことで、再利用性を高めることができます。

## DockerとLinuxの関係
Dockerは、Linux上で動作するアプリケーションであり、コンテナ型仮想化を使用してアプリケーションを実行するためのプラットフォームです。
Docker DesktopなどのDocker環境を起動している場合は、LinuxはDockerイメージに含まれているので、あえて自分で導入しなくても大丈夫です。
読書感想文的なもの#4人のために頑張りすぎて疲れた時に読む本

# この本を選んだ経緯

今回はこの本を選んだ経緯として、これは同居人が読んでいた本でして、
「内容良かったよ〜」とのことでそのまま私も読みました。(激浅)

最初同居人がこの本を読んでいることに気づいた時に
##### あれ、拙者のために頑張りすぎて疲れちゃったのかい？🥺
と思ったのですが全然違いました、鬼の勘違いすみませんでしたっ！！！！！

同居人は仕事で色々思うところがあったみたいで、ちょっとこの本を買ってみたとのことで、
読んだ結果は気持ちが楽になったと言っておりました。

ということで、
以前投稿した#3「人生うまくいく人の感情リセット術」に続いて今回はこの本を選びました。


# どのような方にオススメの本なのか
###
__仕事で「他人軸」で動いている人、、、
人のために頑張理すぎてなんだか疲れてしまった、、、__
###

こう言った方はぜひ読んでいただきたい本です！

>「お察し上手」な人は、相手の気持ちや状態をキャッチすることに長けているため、
相手がどう考えているのか、どうしたら満足するのかを考えすぎてしまい、つい相手中心の「他人軸」になりやすい。

私と同居人は共に本書の「お察し上手」に当てはまっており、つい人の評価を考えてしまいがちです。

私としては、相手の気持ちを察することができたり、場の空気をきちんと読めたりすることは私の長所だと思っております。

しかし、「自分軸」でいられない場合は長所が短所にもなりうる、と本書を読んで感じました。

「自分軸」を構築して人に振り回れないようにしたい方はこの本を読むことをオススメします！

###
# 「自分軸」を構築するために
###

主題の通りですが、どのようにして「自分軸」を構築するかの方法をご紹介します。

>「人は人、私は私」を具体的に、自分が振り回されてしまっていると思う相手の名前を入れてみる。
例えば「私は私、お母さんはお母さん」
「人は人」と言うよりも、より意識的に、相手との間に線引きができるようになる。
１日に何十回と呟くだけでOK

これは簡単ですね。

ただ振り回されている人を明確に意識する必要があります。
私は誰に振り回されているんだっけ？と、ノートに一度書き出して整理してからこれを試しました。

もう一つ、下記のような方法もございましたのでご紹介いたします。

>アファメーションを効果的にするには、次のようなことを意識します、
①ネガティブな言葉を使わない
②相手を否定する言葉を含めない
③私は、彼女は、という主語を明確にする
④「選ぶ」「信頼する」「幸せになる」といった主体的な言葉を入れる
⑤安心感やパワーを感じられる「大丈夫」という言葉を入れる
※アファメーションとはなりたい自分になるための言葉による思い込みのこと

>「自分軸」というのは、自分で自分を評価してあげること。しかし、それは「あれがダメだった。こうすればよかった」という否定ではなく、自分自身が頑張ったこと、自分がやったことをきちんも褒めてあげることです。それをするために、「なんでもいいから1日5個自分を褒めてあげる」が大切。どんなことでも構いません。大したことでなくてもいいんです。

いかがでしょうか。
私はこれを毎日行っていけば、スーパーポジティブ自分大好きマンになれるような気がしました！(__アホ__)

ただ、アファメーションによる思い込み、自分自信をこれでもかと思うくらいに褒めること。
これを継続できるするのが難しいですね。

自分自身を「褒める」事を今までしてこなかったので、
最初は苦戦しておりますが継続するとパッと褒め言葉が出るようになるのでしょうか。

これを継続して自分軸を構築していき、つい「他人軸」で判断しそうな場面でも
「私は私、〇〇さんは〇〇さん」
と切り替えて考えれるようになれたらいいなぁと思います。

# まとめ
###
自分軸の構築の仕方をご紹介しましたが、
他にもさまざまなメソッドが本中で紹介されています。
>人に期待しない、というアプローチ
「お願い」「頼み」「甘え」で、人間関係は楽になる

など・・・

気になった方はぜひこの本を読んでみてください。

何か自分に合うメソッドがあってそれを取り入れる事ができれば、
自分軸を構築して、なんでもかんでもイエスマンで気を使いまくって
疲弊していく状況から脱する事ができるかもしれません！


拙文最後までお読みいただきありがとうございました！
###
https://www.amazon.co.jp/s?k=%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E9%A0%91%E5%BC%B5%E3%82%8A%E3%81%99%E3%81%8E%E3%81%A6%E7%96%B2%E3%82%8C%E3%81%9F%E6%99%82%E3%81%AB%E8%AA%AD%E3%82%80%E6%9C%AC&adgrpid=60525223848&hvadid=649133405254&hvdev=c&hvlocphy=1009250&hvnetw=g&hvqmt=e&hvrand=4170988696574168819&hvtargid=kwd-575146356464&hydadcr=3641_13652361&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_1ri2zuew77_e
Python3: PDFファイルの上部をカットした PDF を作成する

## 入力PDF
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/300127a4-3b71-dc6d-52ea-b1022b6961dd.png)

## 出力PDF
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/de626724-a0d1-0b87-456e-b7e98b812047.png)

## プログラム

```py:pdf_move.py
#! /usr/bin/python
#
#	pdf_move.py
#
#						Mar/28/2023
#
import  sys
import  PyPDF2
from PyPDF2 import Transformation
#
# ------------------------------------------------------------------
def pdf_merge_proc(pdf_reader1,deltx,delty):
	pages= len(pdf_reader1.pages)
	nn_out = int((pages + 1) / 2)
	sys.stderr.write("pages = %d\n" % pages)
	sys.stderr.write("nn_out = %d\n" % nn_out)
#
	pdf_writer = PyPDF2.PdfWriter()
#
	it = 0
	page_obj_a = pdf_reader1.pages[it]

	page_obj_out = PyPDF2.PageObject.create_blank_page(width=deltx, height=delty)
#
	page_obj_out.merge_page(page_obj_a)
#
	pdf_writer.add_page(page_obj_out)
#
	return pdf_writer
# ------------------------------------------------------------------
sys.stderr.write ("*** 開始 ***\n")
pdf_in = sys.argv[1]
pdf_out = sys.argv[2]
#
pdf_file_in = open(pdf_in, 'rb')
pdf_reader1 = PyPDF2.PdfReader(pdf_file_in)
page_num = pdf_reader1.getNumPages()
p = pdf_reader1.getPage(0)
p_size = p.mediaBox
p_width = p_size.getWidth()
p_height = p_size.getHeight()
print(p_width)
print(p_height)
#
height = 480
pdf_writer = pdf_merge_proc(pdf_reader1,p_width,height)
#
pdf_output_file = open(pdf_out, 'wb')
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
pdf_file_in.close()
#
sys.stderr.write ("*** 終了 ***\n")
# ------------------------------------------------------------------
```

## 実行方法

```bash
./pdf_move.py b246.pdf out01.pdf
```

## ライブラリーのインストール方法

Arch Linux

```bash
yay -S python-pypdf2
```

## 確認したバージョン

```text
$ python --version
Python 3.10.10
```
WEBGL用ゲームエンジン作ってみる ~30日目~


# はじめに
こんにちわ。
WEBGLのゲームエンジンを作ろうと思って30日立ちました。
毎日飽きずに作っています。

前回までの記事
１日目：https://qiita.com/osakasho/items/f02d7acf8a822e25d3e0
１０日目：https://qiita.com/osakasho/items/543eb0888b0a4e9162d2
２０日目：https://qiita.com/osakasho/items/4660d453e4f6dcec1fbd
３０日目：イマココ<<

以下、エディタのキャプチャです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493888/5692c30a-0be9-e6c8-e582-59ba0b5aadda.png)

こうしてみると１０日間でそこそこ充実してきたな感あります。
まぁまだ全然使えるレベルのものじゃないのですが。

# 開発内容
- 一部のマテリアル変更対応
- 表示非表示対応
- プロジェクト保存機能とロード機能
- 英語対応
- Shadow周りの追加
- 既存地形メーカーの変形

## 直近の課題
### バグリストと改善対応
- プロジェクトロード時、アバターがObject型になる問題およびライトのPositionが原点になる問題
- directionalLightのmapShadowの変更ができない。
- エディタからの位置回転スケール変更処理とビューポート内での位置回転スケール変更の位置がおかしくなる
- 各オブジェクト種別による、各操作テストでの洗い出し。
- LoD生成時に、バグが発生

### 追加すること
- UIナビゲータとUI追加対応(まずは、ボタンや、タッチコントローラ対応)
- スクリプト対応（どうやって実装するべきかChatGPTと一緒に考える）
- AABBの完全な物理対応、今はアバターと地形のみの物理判定になっているので、AABBに設定されたものをOctreeにいれて判定する処理が必要。
- LODのコアエンジンがわで処理できるようにする

# おわりに
近いうちにデモを公開できればうれしいです。
やる事がたくさんあります。
Contributorも募集してます。
おわり。
promtailのsyslog解析

    pipeline_stages:
       - regex:
           expression: ^(?P<timestamp>\w{3}\s+\d{1,2}\s?\d{2}:\d{2}:\d{2})\s(?P<host>\S+)\s(?P<process>[\w\[\]\-]+):\s(?P<message>.+)$
       - labels:
           timestamp:
           host:
           process:
           message:
V9938 display timing chart

V9938（MSX-VIDEO）の細かいタイミング・チャートについて調べてみたところ、[V9938 Technical Databook](http://www.bitsavers.org/pdf/yamaha/Yamaha_V9938_MSX-Video_Technical_Data_Book_Aug85.pdf)のAppendixの「7. Display Parameters」にたどり着きましたが、これを分かりやすい図面に起こしたものが見当たらなかったので描いてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2161417/5af7d1e6-7f92-2b99-be99-38c369cac605.png)

- NTSCのみ記載（PALは省略）
- グラフィックモードのみ記載（テキストモードは省略）
- VDPレジスタ9（R#9）のS1/S0ビットが0のケースのみ記載
  - S1/S0ビットが0でない場合:
    - Right Border が 59Hz → 57Hz (-2Hz)
    - Right Erase が 27Hz → 26Hz  (-1Hz)
- ノンインタレースモードのみ記載
  - インタレースモードでは0.5行分ラインが増える
- VSYNC割り込み（IE0）とHSYNC割り込み（IE1）の発生点を記載
  - タイミングはWebMSXのソースコードから参酌
- VR/HRフラグのセット・リセットタイミングを記載
  - タイミングはWebMSXのソースコードから参酌
  - VR (0: vertical active, 1: vertical blanking)
  - HR (0: horizontal active, 1: horizontal blanking)
github上のリポジトリをローカルにダウンロードするにはどうすればよいか？

GitHub上のリポジトリをローカル環境にクローンする方法を説明します。今回は、このリポジトリ（https://github.com/tiger9810/quiz-app.git）をクローンしてみましょう。

### 手順
### 1. ターミナルを開く
まず、ターミナル（MacやLinuxの場合）またはコマンドプロンプト（Windowsの場合）を開きます。

### 2. 適切なディレクトリに移動する
次に、リポジトリをクローンしたいディレクトリに移動します。例えば、デスクトップにクローンしたい場合は、以下のようなコマンドを実行します。
```terminal
cd ~/Desktop
```
### 3. リポジトリをクローンする
ディレクトリに移動したら、以下のコマンドを実行してリポジトリをクローンします。
```terminal
git clone githubリポジトリのURL
```
このコマンドにより、リポジトリをローカルマシンにクローンし、新しいディレクトリが作成されます。
これで、ローカルマシンでリポジトリを操作できるようになります。
Googleデジタルマーケティング＆Eコマース：Google Adsにおけるポリシー違反

# はじめに

”Googleデジタルマーケティング＆Eコマース プロフェッショナル認定証"　の受講が完了しました(2022/3/3)。私がこのコースから得られた素晴らしい体験を、テーマごとに分割して、わかりやすくご紹介しています。興味を持たれた方は、是非下記を受講してみてください。

https://jp.coursera.org/professional-certificates/google-digital-marketing-ecommerce

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/8957baaf-ce73-a2a4-19cd-72db89b6874f.png" width="800">

# Google Adsポリシーの概要

Google 広告のポリシーは、法律に従うだけでなく、ユーザーが安全かつ快適に利用できるように設計されています。これらのポリシーは、ユーザーにとって有害となり得るコンテンツを禁止することを目的としています。Google 広告は、自動評価と人間による評価を組み合わせて、広告がこれらのポリシーに準拠していることを確認します。

これらのポリシーは、次の4つの一般的なカテゴリに分類されます。

- **禁止されているコンテンツ**
    - Google ネットワークで宣伝することが禁止されているコンテンツ
    - 例）模倣品、危険な製品またはサービス、不適切または不快なコンテンツを含む広告
- **禁止されている行為**
    - Google での広告掲載を希望する場合に禁止されている行為
    - 例）悪意のあるソフトウェアを含む広告、適切な開示やセキュリティ対策なしにデータを収集する広告、製品やサービスを偽って宣伝する広告。
- **制限されたコンテンツ**
    - 広告を掲載することができるが、制限があるコンテンツ
    - 例）性的、政治的、アルコール、ギャンブルに関連するコンテンツを含む広告、または子供向けの広告
- **編集・技術的要件**
    - 広告、Webサイト、アプリの品質基準
    - 例）特定の技術的要件、フォーマット要件、編集要件を満たしていない広告

:::note info
広告を作成する前に、[Google広告のポリシー][policy]を確認し、広告がポリシーに準拠していることを確認してください。

[policy]: https://support.google.com/adspolicy/answer/6008942
:::

# Error and warning checks

Google Ads Editorは、広告の非承認の原因となり得る特定の問題を自動的に検出します。広告を編集すると、赤いエラーアイコンや黄色い警告アイコンが表示され、潜在的な問題があることを示します。
- 例えば、広告に正しく使用されていない大文字と小文字が含まれている場合（COFFEE、COFfEE、C.O.F.F.E.など）、Google Ads Editor では該当する行の横に赤いエラーアイコンが表示されます。

### 広告ステータスのアイコン

赤丸の中に感嘆符がついたアイコンは、エラーを示します。Google Ads Editorは、例外を申請するか必要な変更を行わない限り、影響を受けた項目を確認したり投稿したりすることはできません。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/201a8589-8019-b1cd-459c-6f378c7d3f89.png" width="300">

黄色の三角形の中に感嘆符がついたアイコンは、警告を意味します。警告が表示されたからといって、掲載ができなくなるわけではありませんが、掲載されたアイテムが正確かどうか、Google 広告のポリシーに合っているかどうかを確認する必要があります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/a6b54198-406a-5538-1dd2-67064db2f857.png" width="300">

変更内容を確認すると、緑色の丸いアイコンが表示され、Google広告のポリシーチェックを通過したことを示します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/c2949c73-ebac-1a09-8932-75ed106ecc09.png" width="300">

# 広告審査プロセス

広告やエクステンションを作成または編集すると、自動的に審査が開始されます。広告のコンテンツ（見出し、説明文、キーワード、配信先、画像、ビデオなど）が審査されます。ほとんどの広告は、1営業日以内に審査されます。ただし、より複雑な審査が必要な広告の場合、審査に時間がかかることがあります。

- 広告が審査に合格すると、ステータスが「適格」になり、広告の掲載が開始されます。
- 広告がポリシーに違反していることが審査で示された場合、ステータスは「不承認」に変わり、どこにも表示されなくなります。
- 広告が "eligible（制限付き）"とマークされた場合、特定の地域、特定の年齢層、特定のデバイスで表示されなくなります。


# 非承認広告を修正する

広告のいずれかが非承認または対象（制限）になっている場合、修正されるまで広告を掲載できない場合があります。Google広告では、ステータス欄に記載され、そこでどのようなポリシー違反が広告に影響しているのかも確認することができます。

ポリシー違反の広告がある場合は、ポリシーを確認し、それに準拠するように広告を編集してください。広告を修正すると、Google が広告を審査し、準拠していると判断された場合は、広告の掲載を許可します。

非承認の広告を修正する方法については、[このビデオ][video]で詳しく説明しています。

[video]: https://www.youtube.com/watch?v=NqvuNaao3RI


ポリシーを確認した結果、広告がコンプライアンスに適合していると判断された場合は、異議申し立てを行うこともできます。

https://support.google.com/adspolicy/answer/1704381?hl=en#zippy=%2Chow-to-appeal-policy-decisions-from-an-ads-status-column
Googleデジタルマーケティング＆Eコマース：Googleショッピングキャンペーンを作成する

# はじめに

”Googleデジタルマーケティング＆Eコマース プロフェッショナル認定証"　の受講が完了しました(2022/3/3)。私がこのコースから得られた素晴らしい体験を、テーマごとに分割して、わかりやすくご紹介しています。興味を持たれた方は、是非下記を受講してみてください。

https://jp.coursera.org/professional-certificates/google-digital-marketing-ecommerce

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/8957baaf-ce73-a2a4-19cd-72db89b6874f.png" width="800">

# Googleショッピングキャンペーンを作成する

スマートショッピングのキャンペーンは15分以内で設定できます。これは、通常のキャンペーンよりもはるかに短い時間となります。

### 1

Ads.google.comにサインインします。

### 2

キャンペーンメニューを選択し、新しいキャンペーンを追加します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/9a932156-e8e5-738d-7be0-2edada01c9c7.png" width="500">

### 3

ここで、キャンペーンの目標を決めることができます。もし、私が自分で100％コントロールできる通常のキャンペーンを作成したいのであれば、ここでそのオプションを選択してクリックします。しかし、今回はスマートショッピングのキャンペーンを作成するので、代わりにキャンペーンの目標として「売上高」を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/49a3b30c-517c-f152-266a-2e4b223637d9.png" width="700">

### 4

ショッピングを選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/2b3db8ef-6bf7-ede9-2905-96c4ce0250ca.png" width="700">

### 5

マーチャントセンターのアカウントを選択します。もし、何らかの理由でMerchant Centerのアカウントと商品データをリンクさせていなかったら、今すぐリンクさせなければなりません。しかし、幸運なことに、そのステップはすでに完了しています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/2e42459d-0d48-8fff-3ab8-bd617814c3d2.png" width="700">

### 6

キャンペーンのサブタイプは、スマートショッピングキャンペーンを選択し、「続ける」で、キャンペーン名とキャンペーンの1日平均予算を入力します。デフォルトでは、Smart Shoppingキャンペーンは、指定した1日の平均予算内でコンバージョンの価値を最大化するように入札を設定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/be6ca121-6631-b56e-c077-6d5dc63dcfb5.png" width="700">

### 7

キャンペーンで広告を出したい具体的な商品または商品グループを選択します。商品を指定しない場合、フィード全体が広告の表示対象となります。これは、その特異性を低下させ、パフォーマンスを悪化させる可能性があります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/fb4f6609-4947-1584-86d3-30f0d6880d18.png" width="700">

### 8

最後に、広告をプレビューして、「保存」を選択すれば完了です。

:::note info
Google AdsのWebサイトを利用して、あなたのビジネスニーズに合ったより高度なキャンペーンを模索することができます。
:::
脱QWERTY、Tomisuke配列に移行しよう

こちらはTomisuke配列を紹介する記事です。
具体的かつ正確な内容を知りたい方はとみすけ氏のブログを参照すると良いです。

https://tomisuke.hatenablog.com/entry/2022/07/19/185105

# Tomisuke配列とは
とみすけ氏が考案した日本語向けのキーボード配列です。
現在世界で標準的に使われているキーボードの配列はQWERTY配列と言いまして、日本語の入力に対して最適化されていません。また、英語の入力も微妙です。
そこで、子音と母音を交互に入力する日本語を入力しやすくため、母音をすべて右手に配置し、よく使う子音をホームポジションに配置した配列がTomisuke配列です。

# 個人的な導入方法
https://drive.google.com/file/d/1icmHzodJqjueo0FnGMcJLil_gyfDB4MH/view?usp=sharing

こちらをダウンロードしてスタートアップ(Win+Rのshell:startup)に入れるだけで常に使えるようになります。EXEとして実行しているため、重くなると稀にQWERTYに戻ってしまいますが、学校や会社のパソコンへの導入もこれで完結するのでとても楽です。

# 実際に使ってみた感想
私は10月からTomisuke配列を使い続けていますが、QWERTY配列を使っていた時期に比べて速度が1.8倍ほど向上しました。具体的な数値では280kpmから、520kpmまで伸びました(WeatherTypingより)。使い始めて1週間ほどで300kpmに到達したので確かに効果はあると思います。

# Tomisuke配列に移行しよう
もっと多くの方にTomisuke配列を知ってもらいたいので1度でいいので使ってみてください。
より興味を持った方はTomisuke配列コミュニティのdiscord鯖に来るとTomisuke配列の使用者としてはうれしいです。コミュニティではデータシートにWeatherTypingの結果を記録をして速度を競合したり、不定期に大会もどきをやっています。
WSL2 (Ubuntu) に "DockerDesktop を用いず" Docker Compose をインストールする

# 1. Install Docker Engine
*Install using the apt repository* の文言から始まる一連の指示に従う（コピペ）。

https://docs.docker.com/engine/install/ubuntu/

**備考**
- *Receiving a GPG error when running apt-get update?*（青い囲み）は書いてある順（2行）に実行した（必要性については不明）。
- コピペする際に、\（バックスラッシュ）を排し、一行の形で各コマンドを入力していくことで、コピペの失敗を避け、確実に成功する。
- "sudo docker run hello-world" を実行し、*Hello from Docker!
This message shows that your installation appears to be working correctly.* と表示されれば、成功。

## sudo なしで docker を実行するために
1. "sudo usermod -aG docker $USER" を実行する。
2. bash を再起動。
3. "docker run hello-world" として成功することを確認。

## systemd を有効化する（必要性については不明）
1. bash を起動。
2. "sudo vi /etc/wsl.conf" を実行。
3. i
4. 以下の二行を記述。
[boot]
   systemd=true
5. esc
6. :wq (+ EnterKey)
7. Windows Powershell を開き、"wsl --shutdown" を実行。
8. bash を再起動。
9. "docker run hello-world" が正常に実行されることを確認。

# 2. Install Docker CLI
1. $ sudo apt update
2. $ sudo apt install docker-ce docker-ce-cli containerd.io

**備考**
- 1, 2 を実行しても、特に変化が見られない（既にインストールされていた）？

# 3. Install Docker Compose
*リポジトリを使ってインストール* のセクションに従う.

https://docs.docker.jp/compose/install/compose-plugin.html#compose-install-using-the-repository

**備考**
- 1 は（当記事冒頭 1. Install Docker Engine にて）既に終了していると思われるのでスキップ。
- 2 では、バージョンを指定しない場合 $ sudo apt-get update
    $ sudo apt-get install docker-compose-plugin の2行のみを実行すればよい。

# 備考

https://keyno63.hatenablog.com/entry/2021/07/24/231528
Googleデジタルマーケティング＆Eコマース：Googleショッピングキャンペーンを準備する

# はじめに

”Googleデジタルマーケティング＆Eコマース プロフェッショナル認定証"　の受講が完了しました(2022/3/3)。私がこのコースから得られた素晴らしい体験を、テーマごとに分割して、わかりやすくご紹介しています。興味を持たれた方は、是非下記を受講してみてください。

https://jp.coursera.org/professional-certificates/google-digital-marketing-ecommerce

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/8957baaf-ce73-a2a4-19cd-72db89b6874f.png" width="800">

# Googleショッピングキャンペーンを準備する

Googleショッピングキャンペーンを開始する前に、いくつかの要件を完了する必要があります。

### <font color="MediumBlue">Googleアカウントを設定する</font>

ショッピングキャンペーンを開始する前に、Google Merchant CenterとGoogle Adsのアカウントを設定し、両者をリンクさせる必要があります。GoogleアナリティクスのプロパティをMerchant Centerのアカウントにリンクすると、Merchant Center固有のレポートやインサイトにアクセスでき、キャンペーンのパフォーマンスを向上させることができます。

すでにリンクしている場合は、2つのアカウントが正しくリンクされていることを確認してください。

### <font color="MediumBlue">ポリシーを確認する</font>

ショッピングキャンペーンとショッピング広告のコンテンツは、ショッピング広告のポリシーに準拠する必要があります。これらのポリシーは、4つの一般的なカテゴリに分かれています。

- **Prohibited content:** Google ネットワークでのプロモーションが許可されていないコンテンツ
- **Prohibited practices:** Googleで広告を出したいと思ってもできないこと
- **Restricted content:** 広告可能なコンテンツ、ただし制限付き
- **Editorial and technical requirements:** 広告やウェブサイトの品質基準

キャンペーンを開始する前に、Googleのショッピング広告のポリシーに違反していないことを確認することが重要です。違反した場合、キャンペーンが強制的に終了することがあります。

https://support.google.com/adspolicy/answer/6008942

### <font color="MediumBlue">商品情報を記入する</font>

Merchant Center プログラムで商品情報を確認し、必要であれば編集します。商品広告を成功させるためには、商品データをGoogleに正しく送信することが不可欠です。Googleはこのデータを使用して、正しいクエリにマッチするようにします。

商品情報には以下が含まれます。

- **商品の基本データ**
    - 何を購入するのかを買い物客に知らせるものです。ID、商品タイトル、商品説明、リンクなどの商品情報は、ショッピング広告キャンペーンを成功させるための基礎となります。
- **価格と在庫状況**
    - 商品の価格と在庫状況を定義する属性です。
- **商品カテゴリ**
    - Google Adsの広告キャンペーンを整理し、特定のケースでGoogleの自動商品分類を上書きするのに役立ちます。
- **商品識別子**
    - グローバルトレード商品番号やメーカー部品番号など、これらの属性は、グローバル市場で販売する商品を定義するために使用されます。
- **製品の詳細な説明**
    - これらの属性は、色、状態、素材など、ユーザーがよく検索する製品の特徴を提出するために使用されます。
- **税金情報**
    - この設定を使用して、個々の製品のアカウントの税金設定を上書きします。マーチャントセンターのアカウント設定を使用して、すべての商品の税金情報を提出することができます。

https://support.google.com/merchants/answer/7052112?visit_id=637816866097532912-1150478438&rd=1
Google デジタルマーケティング＆Eコマース：Google Adsのスマートキャンペーン

# はじめに

”Googleデジタルマーケティング＆Eコマース プロフェッショナル認定証"　の受講が完了しました(2022/3/3)。私がこのコースから得られた素晴らしい体験を、テーマごとに分割して、わかりやすくご紹介しています。興味を持たれた方は、是非下記を受講してみてください。

https://jp.coursera.org/professional-certificates/google-digital-marketing-ecommerce

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/8957baaf-ce73-a2a4-19cd-72db89b6874f.png" width="800">

# Google Adsのスマートキャンペーン

通常のGoogle Adsキャンペーンも有効ですが、その管理には高度な知識とスキルが必要です。幸い、スマートキャンペーンがあります。

***<font color="MediumVioletRed">『スマートキャンペーンは、Google広告内の自動キャンペーン管理ツールであり、ビジネスの促進を支援します。』</font>***

検索とディスプレイのキャンペーンを組み合わせることで、よりシンプルなビジネスマーケティング体験を提供し、キャンペーンの管理のほとんどをGoogleがコントロールすることができます

# スマートキャンペーンのメリット

Eコマースのエントリーレベルのスペシャリストとして、スマートキャンペーンを使用することには大きな利点があります。

- **スマートキャンペーンは自動化されています。**
    - スマートキャンペーンを作成すると、キャンペーンの方向性と予算の使い方をGoogleがコントロールできるようになります。つまり、キャンペーンの運用を確認する時間を短縮することができます。
- **設定が簡単です。**
    - スマートキャンペーンは、いくつかのステップで完了するため、15分以内に設定することができます。それに比べ、通常のキャンペーンは設定に多くのステップが必要です。
- **スマートキャンペーンはお金の節約になります。**
    - GoogleのキャンペーンはすべてPPC（ペイ・パー・クリック）モデルで実行されることを学びましたね。通常のキャンペーンでは、最適な予算戦略を決定するのはあなたですが、スマートキャンペーンでは、詳細な分析とデータを使用して、最も高いコンバージョン率を決定します。つまり、広告をクリックした人が商品を購入する可能性が高くなり、広告をクリックしたが購入に至らなかった場合に支払わなければならないギャンブルを減らすことができるのです。

# スマートキャンペーンの制限

スマートキャンペーンは、通常のGoogle広告キャンペーンよりも複雑ではありませんが、

- キャンペーン目標
- キーワードの選択肢
- 予算のコントロール

など、いくつかのコントロールの制限があります。

# スマートショッピングキャンペーン

通常のGoogle広告キャンペーンと同様に、Smartキャンペーンにも様々な種類があります。

Eコマースの場合、Smartショッピングキャンペーンは、ショッピングの可能性を最大化するのに最適なスマートキャンペーンです。スマートショッピングキャンペーンは、Googleのサイトやネットワーク上でGoogleの買い物客にリーチし、より多くの売上を上げるために最適化する技術を使用した高度なショッピングキャンペーンです。

わずか数ステップで、Googleは、

- Google検索ネットワーク
- Googleディスプレイネットワーク
- YouTube
- Gmail

などのさまざまなネットワークで、適切な顧客に適切なタイミングで貴社の在庫を表示するよう最適化します。

スマートショッピングキャンペーンは、ユーザーのクエリ、時間帯、デバイスなどのリアルタイムシグナルを最適化し、商品を購入する可能性が高い顧客に商品を表示します。ある調査によると、スマートショッピングのキャンペーンは、通常のショッピングキャンペーンよりも20%以上コンバージョン値が高いことが分かっています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/b4a1dda7-5047-682d-16d4-b34aab8357b1.png" width="600">


# スマートショッピングキャンペーンのメリット

- 既存のショッピング広告の商品を最適化します。既存の商品フィードとアセットを組み合わせて、さまざまなネットワークで広告を表示します。Googleのシステムがこれらをテストし、最もパフォーマンスの高いものを表示します。
- 自動入札の活用です。Googleは、ユーザーが広告主の商品やサービスを検索するたびに、潜在的なコンバージョンの価値を分析し、インテリジェントに予測します。そして、これらの検索に対する入札を自動的に調整し、リターンを最大化します。
- ShopifyやWooCommerceなどのサードパーティプラットフォームを通じて簡単に統合できるため、お使いのEコマースプラットフォームからすぐに始められるという点です。
【速報】Skype 通常版に Bing AI 登場 (※本気 chatGPT だw)

# skype 起動した瞬間に勝手に侵入された罠

chatGPT plus 加入してから 1か月経過する前に skype に謎アイコン。
「何かお困りですか」って草。

かってに侵入されたのがお困り。むしろあなたは誰。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/91f60147-4786-7115-ae04-9dcba200d380.png)

## お手伝いロボというか chatGPT ですよね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/d178288c-b145-5bcd-3b76-a1cd5d82e114.png)

なるほど。一般庶民向けのメッセージ。ていうかどこからでも
@bing でメンションできるのかしら。あとでやってみよう。

「侍ジャパンのことを教えてください」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/4ee3dca3-d275-ec3f-fa34-fe22d476cc83.png)

なんと。いきなり waitlist か。申請が必要なのに一番上にくるとはｗ
ひとまず青いボタンを押下。

あれ・・。入力する画面が出ない？
※ブラウザの種類によっては青いボタンを押下しても動かないかも
※その場合は skype クライアントアプリをご利用ください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/6ac585bf-dba3-d701-edc9-701a9b3c79d1.png)

少し待ったらこんどは「Try it」になた！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/dd9c83c2-3dbf-bab8-50eb-76c2aeeb2c1c.png)

おお！なんて簡単。しかもいい感じの回答かな。

## Bing という名前のお友達と遊ぶ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/c8778162-926e-10a2-d671-1f44320718df.png)

なんと。番場蛮さんが一発で！さすが Microsoft 。GPT-4.0 で
何度も質問をしただけのことはある（きっと覚えていてくれたのねｗ

GPT-3.5, GPT-4.0, Perplexity の３兄弟と比較する中で（[過去実績](https://qiita.com/taro-yamada/items/6608739087928cf4d75f)）
一番強い回答です。

## 定番のpythonに対する質問

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/976acdde-75c5-4f51-f943-6bc4cd62961f.png)

おお。
なんか。無難な感じだ。
回答が markdown ではないものの、コピー＆ペーストはできるし
参照元が記載があるので Perplexity みたいに最初開いたときに
あなたは人間ですかという謎の自問自答もいらなそう。
https://www.perplexity.ai/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/b08d48d8-01a0-9965-6c3b-6996c1e47600.png)

いつも「本当に自分が人間なのか」に即答ができない（駄目

## リアルタイム；最新情報が分かるかを確認 ← 重要

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/60f8405c-6267-fd76-83d7-26a739fb414a.png)

やべ。最強だｗ
ちゃんと会話は継続しており、侍ジャパンとよんでくれるあたり。

※最強のポイントは回答緒元が2021年までのchatGPT 標準と異なり
　**最新情報をインターネットから拾ってくる**ところ。

あ＝。Microsoft に chatGPT plusのアカウント持っている人が
全部流れていきそうｗ

沢山アカウントが流入したあとで課金されるのが楽しみ（嫌

うむむ。これは仕事中に遊ぶ人が増えるに違いない。

このまま使えるのであれば plus 退会しようかな。
でもそのうち規制されそうなので一旦静観。

## 画像作成を依頼

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/8c429f24-ef9e-a48e-58b3-7b237a1aee90.png)

うーむ。適当なコメントでは作成してくれないみたい。
全部リンク切れを飛ばしてくるあたりがいつものアレ。

あとで visual-chatGPT から投稿されている
プロンプトをソースから切り貼りしてみよっと・・★宿題

## visual-chatGPT にチャレンジ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/fc2716ae-1c84-3333-c06d-633c9115fab4.png)

規制されておりました。画像は作成できません。ざんねーん。

## 承認された

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/0bdfd8f4-c23e-4d3e-caf6-704d0f51056b.png)

申請なんてした覚えがないけれども。何かオケが出たみたい。
とりグループに追加できるみたいなので障害部屋とかに召喚w
拡張ドメインとサンドボックスの更新


# SSOの場合

+ [Enhanced Domains & Sandbox Refresh](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000MiVnH)

サンドボックスの更新と SSO の更新から学んだことは次のとおりです。新しい SSO エントリの作成 (「メタデータ ファイルからの作成」を使用) に加えて、更新する必要があるすべての設定を見つけて、ユーザーが SSO を使用してサンドボックスにログインできるようにするのに、必要以上に時間がかかりました。

セットアップ > シングルサインオン設定 
SAML が有効になっていることを確認します   
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/57fe0dbf-16dd-866e-03f8-d3f5354f0584.png)

セットアップ > 会社の設定 > 私のドメイン

+ ユーザーが SSO を使用して認証した後にログインするときに、ユーザーが使用できるようにするオプションを選択します。 
+ 「ログインフォーム」をチェックすると、ユーザーはユーザー名/パスワードを入力できるようになります
+ 「xxx SSO」をチェックすると、ユーザーに SSO オプションが表示されます。  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/404fae80-f296-6833-9006-d81bb37e52a1.png)
64x64ドット12時メーターを作る4(STM32G071)(SSD1306)

フォント2


(6),(7),(8),(9),(10),(11)までのフォントを作る


![o_cop445.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/b0b95d39-b1dd-d6f2-d6fa-82f4d4820b46.jpeg)
オブジェクト指向・UMLのユースケース図とは

未経験からエンジニアになりたい人は、プログラミングから始める人が多いと思いますが、
エンジニアの仕事は、プログラミングだけではありません。そして、プログラミングだけでは、エンジニアになれません。同時にプログラミングが苦手でも、システム構成や開発の流れを理解するとエンジニアに近づきます！

今回は具体的なオブジェクト指向・UMLのユースケース図について更に詳しく調べてみましょう！
![インスタスライド_202303065.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23130/645b0c70-c74c-1663-ece7-d5fa7db21119.gif)

# オブジェクト指向・UMLのユースケース図とは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23130/cd6167f7-bfe5-a4de-69be-9da3939b894c.png)

# UML使い方
・アクタ
システムのユーザ、外部システム
システムと活発に情報をやり取りしたり、受動的に情報を受け取ったりする

・ユースケース
ユーザがシステムを利用して行う、機能のひとまとまり

システム内の機能を洗い出し、その機能を操作するアクターを整理する
⇒システムの機能と登場人物が整理できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23130/676c5a6c-fb8b-35da-5cf4-8447d9642727.png)

# まとめ
ーUMLのユースケース図を知ろう

ーシステム内の機能を洗い出し、その機能を操作するアクターを整理する

ーシステムの機能と登場人物が整理できる


# 最後に
未経験の皆さん、若手エンジニアの皆さん、勉強方法について悩みがあればなんでも気軽に質問して下さい！
これからも記事を書いていきますので、モチベーションアップのためフォロー、イイねお願いします。
Build an Event Registration App


[Build an Event Registration App](https://trailhead.salesforce.com/content/learn/projects/build-an-event-registration-app)

# Update the Data Model and Import Data

CSVのインポートでは最初に取引先責任者を同じcsvファイルを使って登録しないとエラーになる

# Add Automation to Your App

+ [Please help me verify this step.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007LTGH3)

:::note alert
We couldn’t find Name equal to Dreamfest 2023 condition in the ‘Get Dreamfest Session’ Get Records element.
:::

:::note
I think the values ​​you use are different.

Dreamforce 2023 --> Dreamfest 2023
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/260abbce-d529-cd68-58dd-99c384ee7784.png)
:::


何もしないで検証ボタンをクリックする

:::note alert
We can't find an active version of the 'Dreamforce Event Registration' flow.
:::

何だ？

:::note alert
Make sure ‘Only if the record that triggered the flow to run is updated to meet the condition requirements’ is selected for When to Execute Outcome in the ‘Is the Event DF23?’ decision element.
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/b38350be-60ba-cdef-dbdb-e825fca03a6a.png)

:::note alert
Make sure the default outcome of ‘Is the Event DF23?’ decision element is labeled as ‘No’.
:::

レコードを作ったらエラーがなくなった。

:::note alert
The 'Dreamforce Event Registration' flow is not creating the expected Session Registration records per the requirements.
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a4c8592a-a2a0-6f44-b493-8fd530582b76.png)

+ [I need help completing the Add Automation to your App for the create a registration project](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007epxyX)

https://trailhead.salesforce.com/content/learn/projects/build-an-event-registration-app/add-automation-to-your-app


# エラー

+ [Add Automation to Your App](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007clgMeSAI)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a58ac40e-dc80-596d-bb56-aaa2d3f0f81d.png)

:::note
 I followed the exact same steps again in three chapters and everything worked correctly. So this is a repeat of the path on the new playground and so all the previous tips did not help on the old playground!
:::

+ [イベント名をクリックすると、「名前」というフィールドが表示されない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007epxyX)

:::note
確認したところ、フィールド名は「Public Event Name」であり、これを選択する必要があることがわかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a166a3c6-2cce-9172-ce35-5ab7818c5974.png)
:::
2023/3/28主にITとかセキュリティの記事

警察OBもだまされる　PCサポート詐欺の手口　全国で被害5億円超(3/26)
https://news.yahoo.co.jp/articles/56968966eff53996cd9f300149e0fa9fc9dc32ca

PayPay銀行を装う詐欺メール・SMSが再び活発化!?(3/26)
https://ascii.jp/elem/000/004/130/4130105/?rss

去年のサイバー犯罪に関する相談件数1971件　県警は詐欺や悪質商法への注意呼びかけ　富山(3/26)
https://news.yahoo.co.jp/articles/91945e0535f53a1ed3b00f4c5092488e594e6937?source=rss

採用活況の転職市場　23年度の動向を専門家に聞いた(3/26)
https://news.yahoo.co.jp/articles/6045f0bb37039f253a35ce3e7040cbf65a2f659e

顧客のカート放棄を減らし、チェックアウト体験を改善する7つの確実な方法(3/25)
https://ecclab.empowershop.co.jp/archives/82013

DAO（Decentralized Autonomous Organization）(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nc/18/020600009/032000138/

AWS初心者が基盤導入に挑む　設定・運用まで内製化を実現 ミツカングループ(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nc/18/020600004/032000127/

画面を盗む「スクショ攻撃」出現 目的は愉快犯でも脅迫でもない　攻撃者の拠点はロシアの可能性あり(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nnw/18/041800012/031600206/

EDR 脅威を検知して対応するセキュリティー製品(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nnw/18/091900032/031600055/

コーセーがAWS上で営業支援システム更改、コンテナによるインフラ改善の成果(3/27)
https://xtech.nikkei.com/atcl/nxt/column/18/00678/022000097/

うそを紛れ込ませるチャットAI　それでも活用を検討すべき理由(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nc/18/020600007/031500134/

インボイスまで半年　「特例」でどう変わる(3/27)
https://xtech.nikkei.com/atcl/nxt/mag/nc/18/020600014/032000140/
2023 一橋大学の数学（前期）を解いてみた & 整数問題をPythonで解かせてみた

## 経緯
　今年も一橋大学志望の受験生を指導したということで、自分も同大学の問題を解いてみた。また、解析的に解ける整数問題などに関しては `Python` でも解いてみた（一応技術系のWebサイトなので）。詳しい解答過程は後ほど上げることとする。$\LaTeX$ で打つかどうかは気分次第かな。

## 問題
https://www.yomiuri.co.jp/nyushi/sokuho/k_mondaitokaitou/hito/mondai/img/hito_zenki_sugaku_mon.pdf

## 自分の解答

https://github.com/mae-commits/ABC_practice/blob/main/2023%E5%B9%B4%E5%BA%A6%E3%80%80%E5%89%8D%E6%9C%9F%E6%95%B0%E5%AD%A6.pdf

## 大問1

### 概要
　2項係数の問題。両辺を恐れずに階乗の形に変形し、冷静に計算できるかがポイント。自分の場合は、整数問題であるということに注視しすぎて、無駄に場合分けをしてしまったのでかなりここで時間をロスしてしまった。この問題は `Python` で解きやすかろうと思い、プログラムでも計算した。

### 自分の実装
```Python:Hitotubashi_Zenki_1.py
# 答えの組の保存
ans = []

# 階乗計算
def factorial(n):
    num = 1
    for i in range(n):
        num *= i+1
    return num

def C(n, k):
    return factorial(n) // (factorial(k) * factorial(n-k))

for n in range(2,21):
    for k in range(1,n-1):
        left_cal = C(n+2, k+1)
        right_cal = 2 * (C(n, k-1) +  C(n, k+1))
        if left_cal == right_cal:
            ans.append([n,k])
    
for ans_combination in ans:
    print(*ans_combination)

```

## 大問2

### 概要
　解の配置の問題。まず、接する条件について3次間数から接点を設定して考えることができるかどうかがポイント。こうすることで、もう一方に接するかどうかに関して判別式の条件に持ち込める。また、判別式の条件で計算後に正しく計算し、4次式から複2次式としてみなし、相加相乗平均の問題に持ち込めるかどうかがポイント（場合分けは必要になる）。

## 大問3

### 概要
　`P`の条件を問題文から正しく計算し、ある球の周及び内部に存在するということに気づけるかどうかがポイント。また、四面体の`P`以外の3点が `z=0` の平面上にあるということにも気づいておけば計算量をかなり減らせる。

## 大問4

### 概要
　格子点に割り振られる数字が $ x + y = k $ の直線上に沿う形で与えられているということに気づくことができるかどうか。また、$ x = 1 $ 上の点が $\displaystyle \sum_{s=1}^{k-1} s$ となることに気づけているかどうかがポイント。（1）ができれば、（2）はそれを用いて計算を簡略化すれば良い。また、具体的に $(m, n)$の組を求めるためには少し、解の範囲を不等式を狭める必要がある。こちらの（2）に関しても愚直に解析的に計算が可能なので、 `Python` で書いてみた。

```Hitotubashi_Zenki_4.py
import sys

# x = 1 におけるf(1, n)の計算
def g(n):
    if n != 1:
        return g(n-1) + n
    else:
        return 1

# k = m + n
k = 2

while True:
    for m in range(1,k):
        n = k - m
        # 左辺の値を各々計算
        left_1st = g(m+n-1) - (m-1)
        left_2nd = g(m+n) - m
        left_3rd = g(m+n) - (m-1)
        left_4th = g(m+n+1) - m
        # 条件を満たす場合については、答えの組みを出力
        if left_1st + left_2nd + left_3rd + left_4th == 2023:
            print(m,n)
        # 左辺 > 4 * left_1st より、
        # それが2023を超えた場合はプログラムを終了
        if 4 * left_1st >= 2023:
            sys.exit()
    # ループを抜けた場合は次の直線上に移動
    k += 1
```

## 大問5

### 概要
　確率の問題。誰が何回目に勝つかという確率を反復試行であることを考慮して総和を計算すれば良い。

## 感想
　去年度の問題も同時期に解いていたのだが、個人的には去年よりも易化したと感じた。去年の4番の（2）のような難易度の問題もなく、計算量も少ないと感じた。自分がリラックスして測って解いた時間はちょうど制限時間である2時間ジャストで大問の順番通りに解いた。戦略的に解くとするならば、`5 -> 3 -> 2 -> 4 -> 1` の順番で解いていたと思う。`1, 4` に関しては、少し本番では考え方を理解するのにハマってしまう恐れがあるためである。これは、数学でまあまあ点数が必要だったのではないかと思われる。理系的には、やはりこの大学の問題はやや物足りない問題だろうが、文系受験生にとってはちょうどいいのだろうか。まあ、本番の空気感は受験生本人しかわからないであろう肌感覚なので、本番自分が受けていたとしたら解ききれていたかどうかはわからないが。プログラミング的な観点から考えると、競プロでも出てもおかしくない問題があったりするなと感じた（難易度B~Cレベル）。一橋とか京大とかは整数・確率分野の問題が多いので競プロで役立つ問題が比較的多いと思う。
chatGPTでSF医学を再現してみた

一家に一台ChatGPTと言わんばかりに、流行中のChatGPT。

今回SFに出てきそうな医学をChatGPTにコーディングしてもらうことに成功した。

その医学の名は周波数治療

偉大なアインシュタインは"Future medicine will be the medicine of frequencies"未来の医学は周波数で治療することになるだろうと述べたと言われている。

音や光で病気をヒーリングするとされる技術で、固有振動数や共鳴現象で治療するといったものだ。

本当なのか？！そこでChatGPTに周波数治療について質問してみた！！！

その答えは
![-si2el.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3291317/71ed2c5c-4d43-ce01-f248-5e9f4faa6a75.jpeg)

凄い！！可能性大有りの様だ

そこでさらに、今度はコーディングを依頼してみることに、"具体的には特定の疾患において効果のある周波数をリストとして用意しておき、3分間周波数を流してもらう"というコーディングをChatGPTに依頼してみた。

その結果！！

![Screenshot_2023-03-28-00-28-26-50_40deb401b9ffe8e1df2f1cc5ba480b12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3291317/9343d2fd-7a67-c104-2390-a0d9c7622a22.jpeg)

医学×AIに革命が起こる日は近いのかもしれない。