OmniAICreator/Qiita-1.07M huggingface dataset:
Googleデジタルマーケティング＆Eコマース：SERPsの種類

# はじめに

”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/84e33f4e-81cb-98a6-4546-f2ec06fd8b8b.png" width="800">

# SERPsの特徴

検索エンジンの結果ページは、SERPs（サープス）とも呼ばれ、誰かが検索クエリを実行すると表示されます。まず知っておいていただきたいのは、検索内容によってSERPの特徴に種類があるということです。

例えば、

- 検索内容が商品に関するものであれば、ショッピングや商品で構成されていることがあります。
- ニュース関連やタイムリーな検索であれば、ニュース記事で構成されている場合もあります。

ベストプラクティスは、製品やサービスのブランド名といくつかの関連ワードで常にGoogle検索し、その結果を分析します。SERPsの中でどのような位置づけになる可能性があるのか、とか。

SERPsを分析する際には、検索リストと広告の両方があることを念頭に置く必要があります。一般的に、検索結果ページの上部には有料広告が表示されます。有料広告の後には、検索リストがあります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/f3b63806-5847-b536-0cd1-6c6d3b8ca417.png" width="650">

# SERPsの種類

SERPsには、知っておくべき機能がいくつかあります。ここでは、一般的なものをいくつか取り上げます。

### <font color="MediumBlue">フィーチャード・スニペット（Featured Snippet）</font>

これは、検索結果ページで検索に関する情報を表示する特別なボックスです。フィーチャードスニペットは、アルゴリズムによってフォーマットや人々が探しているものをより簡単に発見できる方法が決定されたときに表示されます。これは無料の機能です。

デジタルマーケティング担当者やeコマースアナリストは、Webページをフィーチャードスニペットとしてマークすることができます。Googleのシステムは、ユーザーの検索要求に対して、そのページが優れたフィーチャード・スニペットになるかどうかを判断します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/925ed250-8667-4a6c-61a3-ddf174c75245.png" width="650">

### <font color="MediumBlue">リッチ・リザルト</font>

これは、Webサイトに関する特定の情報を提供します。この情報は、検索結果でWebサイトを追加機能で表示するのに役立ちます。
- 例えば、製品ベースのWebページの場合です。検索結果に表示される追加の製品情報(レビュー評価、価格、在庫状況など）。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/37825e38-5d8e-85c7-99bb-54c9cef1f95a.png" width="650">

### <font color="MediumBlue">画像</font>

これは、Googleシステムが視覚的なコンテンツが検索にとって価値があると判断した場合に表示されることがあります。画像は、SERPsの上部、中部、下部を含むどの検索位置にも表示される可能性があります。画像は無料の機能です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/8d3e26c0-9731-174c-4ca2-93bff0eca676.png" width="650">


### <font color="MediumBlue">動画</font>

画像と同様に、動画も、Googleシステムが検索クエリに対して価値があると判断した場合に表示されることがあります。また、動画は検索結果の上部、中部、下部のいずれかに表示されることがあります。SERPsに表示される動画は、Web上のあらゆる場所から提供されています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/161ed051-86ab-e82c-932f-293c3b89dbf0.png" width="650">

### <font color="MediumBlue">ローカル・リザルト</font>

ローカルビジネス、製品、サービスを検索する場合、ローカルベースのSERPsのいくつかの異なる機能を取得することがあります。最も目立つ機能は、地図と地元企業のリストです。リストアップされたビジネスは、Googleが提供する非有料のビジネスプロファイルリスティングに関連付けられます。このプロフィールは、地元の顧客を持つすべてのビジネスが利用できます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/0d03ba15-dbfa-d888-ada3-06a43667d755.png" width="650">

さらに、誰かがビジネス名を検索すると、そのビジネスプロファイルは、無料の検索結果とは別に、SERPの右側にパネルとして表示される可能性が高いです。また、有料の広告もあります。
laravelAPIでのServiceクラス・Resourceクラスを使うメリット

## はじめに
今までlaravelを使っての開発となると、MVCモデルを使っての実装のみ経験しておりました。
今回の案件では、ServiceクラスやResourseクラスを使った実装をしており、なんでこんな複雑なことをしてるんだ??となっておりました。
理由は聞いてはいましたが、今ひとつ恩恵を理解できていなかったので、少し調べてまとめてみたいと思います。

## ServiceクラスやResourseクラスを使った実装のメリット
### シンプルなコントローラーの作成
Serviceクラスを使用することで、コントローラーの責務をシンプルに保つことができます。
コントローラーはリクエストを受け取り、Serviceクラスに処理を委譲することで、処理の再利用性とテスト容易性を高めることができます。

### 一貫性のあるリクエスト/レスポンス
リソースクラスを使用することで、APIのレスポンスを統一的にすることができます。
リソースクラスは、モデルのデータを取得し、必要なフィールドをフィルタリングし、一貫性のあるレスポンスを返すためのクラスです。
リソースクラスを使用することで、APIのレスポンスが一貫性があり、フロントエンド側の処理が容易になります。

### 保守性の高いコード
Serviceクラスとリソースクラスを使用することで、コードの保守性を高めることができます。
Serviceクラスにはビジネスロジックが含まれ、リソースクラスにはレスポンスの変換ロジックが含まれます。
これにより、コードの変更による影響を最小限に抑えることができます。

### テスト容易性の向上
Serviceクラスとリソースクラスを使用することで、APIのテストをより容易に行うことができます。
Serviceクラスにはビジネスロジックが含まれ、リソースクラスにはレスポンスの変換ロジックが含まれます。
これにより、APIの各層を個別にテストすることができ、テストカバレッジを高めることができます。

### 拡張性の高いコード
Serviceクラスとリソースクラスを使用することで、コードの拡張性を高めることができます。
Serviceクラスはビジネスロジックを含むため、APIの処理が変更された場合にもServiceクラスを修正することで、コードの拡張が容易になります。
リソースクラスも同様に、レスポンスの変換ロジックが含まれるため、APIのレスポンスが変更された場合にもリソースクラスを修正することで、コードの拡張が容易になります。

以上
Rails devise導入の手順 【ChatGPTにも聞いてみた】

# はじめに
最近プログラミングスクールを卒業しました。
新たにwebアプリケーションを作成中なので、ここに書き留めたいと思い投稿しました。

# Rails deviseの導入
```ruby
# Gemfile
gem 'devise'
```

```ruby
# ターミナル
bundle install
```

```ruby
# ターミナル
rails s
```
```ruby
# ターミナル
rails g devise:install
```

## 補足
運用やテスト、本番全ての環境で使用するため、gem 'devise'は一番下に記述。
bundle install後は、基本的にサーバーの再起動が必須。
rails g devise:installコマンドを実行することで、deviseの設定ファイルをrailsアプリケーションにインストールします。
これによって、使用するファイルが自動で生成されます。


## ChatGPTにも聞いてみた
最近ChatGPTのアカウントを作ったので、試しにrailsのdevise導入手順について聞いてみました。
[![Image from Gyazo](https://i.gyazo.com/8122d53360b6ffea7da4e2f2c36e1feb.gif)](https://gyazo.com/8122d53360b6ffea7da4e2f2c36e1feb)

説明とコマンドの両方記載してくれていました。
色々なこと試してみると面白いかもしれませんね。

終わり。
【composer】パッケージのインストールと削除

# composerのパッケージインストールと削除

## パッケージのインストール
```sh
composer require パッケージ名
```
:::note info
パッケージのインストールは```vim composer.json```で確認することができる。
:::


## パッケージの削除
```sh
composer remove --update-with-dependencies パッケージ名
```
:::note info
パッケージ名は```vim composer.json```で確認することができる。
:::
docker-compose down出来ない

## エラー内容 
```
⠿ Network sample_app_default    Error

failed to remove network sample_app_local_default:
Error response from daemon: error while removing network
```
## 原因　
docker-composeを使用してコンテナを起動中に、docker-composeファイルの中身を書き換えてしまった。定義されていた情報が違うため、止められなくなっていた。　

## 解決　
```
$ docker-compose down --remove-orphans

--remove-orphans    Compose ファイルで定義していないサービス用のコンテナも削除
```
yml定義ファイルとは違ったとしても、composeファイルから作成されたネットワークやコンテナを自動で探して削除してくれる。
[参考](https://docs.docker.jp/compose/reference/down.html)
ImageMagickのheic対応

RailsのアプリケーションでHEICファイルをPDFファイルに変換する際にエラーになり解消までかなりハマったので対応方法を記載

環境
```
OS: Amazon linux
ImageMagick 7.1.0-7 
```


### 発生した事象 
MiniMagick::Imageでheicファイルを扱おうとしたときにエラー

```ruby
irb(main):003:0> MiniMagick::Image.open(tenant_applicant.tenant_applicant_identifications.second.identification_file.file.url)
[0.01s] magick identify /tmp/mini_magick20230309-32496-mqc52m.heic
Traceback (most recent call last):
        1: from (irb):3
MiniMagick::Invalid (`magick identify /tmp/mini_magick20230309-32496-mqc52m.heic` failed with error:)
identify: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/572.
```

どうやらMinimagickではなくImagemMagickの問題のよう
https://github.com/minimagick/minimagick/issues/538

確認する
```
$ convert --version
Version: ImageMagick 7.1.0-7 Q16-HDRI x86_64 2021-09-04 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib fontconfig freetype jng jpeg lzma png tiff x xml zlib
Compiler: gcc (7.3)
```

確かに`Delegates`のところにheicがない

調べているとlibde265とlibheifをインストールすればいいという記事を見かけインストールしようとしたのですがパッケージが見当たらない。
https://github.com/ImageMagick/ImageMagick/issues/1470

```
# yum list | grep libheif
// 何も表示されない
# yum list | grep libde265
// 何も表示されない
```

yumでインストールできないのでソースコードからインストールしていきます。

### libde265インストール
```
# git clone https://github.com/strukturag/libde265.git -b v1.0.11 libde265-1.0.11
# cd libde265-1.0.11
# ./autogen.sh
# ./configure
# make
# make install
```

### libheifインストール
```
# git clone https://github.com/strukturag/libheif.git -b v1.15.1 libheif-1.15.1
# cd libheif-1.15.1
# ./autogen.sh
# ./configure
# make
# make install
# which heif-convert
/usr/local/bin/heif-convert
```

## Imagemagickでheicを対応させる

```
# cd imagemagickのディレクトリ
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# pkg-config libheif --modversion
1.15.1
# ./configure
...
Delegate library configuration:
  ...
  HEIC              --with-heic=yes             yes
  ...
# make
# make install
# convert --version
Version: ImageMagick 7.1.0-7 Q16-HDRI x86_64 2021-09-04 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib fontconfig freetype heic jng jpeg lzma png tiff x xml zlib
Compiler: gcc (7.3)
```

以上。
結構ハマったので誰かのお役に立てれば幸いです。
docker-compose run web rails db:migrateでエラーが出る

## エラー内容　
```
[+] Running 1/0
 ⠿ Container sample_app_local-db-1  Running                                                                                                  0.0s
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Couldn't create 'sample_app_development' database. Please check your configuration.
rails aborted!
ActiveRecord::ConnectionNotEstablished: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/myapp/bin/rails:5:in `<top (required)>'
/myapp/bin/spring:15:in `<top (required)>'

Caused by:
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/myapp/bin/rails:5:in `<top (required)>'
/myapp/bin/spring:15:in `<top (required)>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
```
## 該当のソースコード　
```:docker-compose.yml
version: "3"
services:
  web:
    container_name:  sample_app_local
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && yarn install && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
  
  db:
    image: mysql:5.7
    volumes:
      - mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: root
    ports:
      - 3306:3306

volumes:
  mysql-data:
```
```:config/database.yml
#該当箇所を抜粋
default: &default
  adapter: mysql2
  encoding: utf8
  charset: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password
  socket: /tmp/mysql.sock
```
## 原因・解決
database.yml に host の設定が抜けていたから
```:config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  charset: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password
  socket: /tmp/mysql.sock
  host: db                    #追記
```

## 参考サイト　
[dockerでのエラー　Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)　を解決](https://teratail.com/questions/283808)
使い古したMacにUbuntu22.04LTSを導入してみた

# 導入した経緯
去年の6月にM1搭載のMacBookProを購入して以来、4年間使っていたインテル搭載(core-i5)のMacBookProは **漬物石** と化しました。上位互換のMacを持っているし使い道に困っていたのですが
[quoraの質問](https://jp.quora.com/Mac-jitai-ha-Linux-be-su-nanoni-Mac-ni-Ubuntu-wo-ire-ru-hitsuyousei-ga-fun-kara-nai-no-desuga-nani-ka-meritto-ga-aru-no-desu-ka) MacにUbuntuを入れる必要性が分からないのですが何かメリットがあるのですか？
を見てMacOSにLinux入れるの面白そうと思い実際にやってみました。
>MacOSにメモリを増設したりCPUの換装をするのは難しいそうです。Linuxは大分と動きが軽いので古くなったmacに導入する人は結構いるみたいですね！
>

# Linux使用経験
学部4年生の頃よく**Linux**を使って研究をしていました。数値解析系の研究室だったので、オープンソースのAdventureシリーズ(物理解析ソフト)を使っていました。
結構古い？マニアックなソフトなので、誰も使っている人いないんじゃないか？😅
>オープンソースのAdventureシリーズはlinuxでしか動きません しかし、電磁場解析などは一部GUIでWindowsでも使用できるそう
>
そこでLinux関連は結構触ってまあまあ抵抗がつきました。基本的に**CUI**メインで進めていくので分からなかったらググってコマンドを調べるの繰り返しですけど、プログラミングの環境構築や動作の軽さに関しては他のOS(MacやWindows)と比べてやりやすいと感じました。
>メモリが4GBのPCを研究で使いましたが問題なく使えました 
>

# 本題突入
### USBメモリの準備
**Ubuntu22.04LTS** のisoファイル自体の容量は4GB程度なので、8GBのUSBメモリを用意すれば十分だと思います。**ここで注意したいのは** 使用するUSBは(私用or仕事用)以外を選ぶことです。ブータブルUSBドライブとなり、普段のようにファイルの取り出しができなくなります。また転送速度の都合上USB3.0以上を使用することをすすめます。

| USB規格       |       仕様発行日 |    転送速度    |
|:-----------------|------------------:|:------------------:|
| USB2.0           |       2000年 4月  |     480 Mbps        |
| USB3.0           |       2008年 11月 |      5 Gbps       |
| USB3.1 (Gen1)    |       2013年 8月 |      10 Gbps        |
| USB3.1 (Gen2)    |       2013年 8月 |      20 Gbps         |
| USB3.2           |       2017年 9月 |      20 Gbps      |

私は新品のUSB3.1 (Gen1) 32GBを使いました。このUSBメモリに[Ubuntuの最新バージョン](https://jp.ubuntu.com/download)を導入します。

### ブータブルUSBの作成
GUIでブータブルUSBを作成するには、アプリEtcherが便利です。
[このページ](https://www.balena.io/etcher)でダウンロード

アプリを起動したらFlash from fileで先程ダウンロードした**Ubuntu22.04LTS**のisoファイルを選択します。
![Screen Shot 2023-03-10 at 12.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/9c7550e3-1080-85e8-2db9-4205683bc86c.png)

次に先程取り付けたUSBを Select targetで選択します。
＊指定したUSBメモリのデータは全て消去されます。
![Screen Shot 2023-03-10 at 12.58.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/1760e720-f1d3-1d2b-d6a9-fc0db6aa0aed.png)

「Flash!」をクリックすると、書き込みが開始されます。

![Screen Shot 2023-03-10 at 13.01.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/588cbfd2-eae0-c459-4cf6-1323cecc9fb2.png)

処理が終了するまで結構時間がかかるので気長に待ちましょう。
「Flash Complete!」となって完了です。
![Screen Shot 2023-03-10 at 13.03.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/eb91e707-a45e-fc5c-56da-e1b91cf750ff.png)

### 使い古したMacをブータブルUSBで起動させる
この作業を終えるとMacの全データ消去するので注意してください。起動時に(optionキー)を押し続けながら、Macを起動させます。下のようなBIOS画面が表示したらOK!
![Screen Shot 2023-03-10 at 13.08.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/c0c11faf-e950-60cf-b2c7-3bfbddb191b7.png)
EFI Bootを選択し完了です。BIOS画面がなかなか表示されなかったのですが、何回も繰り返しやって成功しました。

# MacにUbuntu起動
![IMG_1469.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153036/964aa849-51a4-7191-6910-5efa82fd683c.jpeg)

>キーボードの設定に関しては後で記事にします
フリーランスエンジニアになった人or副業を始めた人が最初にやった方が良いこと

自分がフリーランス成り立てのとき、もっとこうしておけば良かったなぁという反省や、先輩に教えてもらえて良かったなぁということがあったので書き起こしてみた。（気づいたらフリーランスももう7年目に入ってた）

## 専用の銀行口座とクレジットカードをもつ

理由は決算処理を簡単にするため。基本的に経費はクレジットカードで落とし、売上は銀行入金だと思うが、これが個人口座と混ざっていると仕訳チェックがとても面倒になる。

今は会計ソフト(freee/moneyforward等）はクレジットカードも銀行口座も連携できるが、専用口座を連携しておけば画面をぽちぽちするだけで仕訳作業が完了する。ここで個人口座や私用のクレジットカードと連携してしまうと、確認する行が一気に増えて大変になる。なので、出来るだけ専用口座とクレジットカードを持つのが良い。

間違えて別の口座を使ってしまった場合は、そのスクショなどを残しておいたりし記録しておけば良い。あとは事業主借とか役員借入金とかで仕訳すれば良い。基本は少額になるはずなので、精算は溜まったタイミング（または四半期ごととか？）で問題ない。

## 顧客開拓は一社に依存しない/適正単価を知る

これは自分がやらかしたこともあるが、最初は右も左もわからないので先輩フリーランスに聞いて１つのエージェントサイトに登録した。１社面談してその日のうちに決まったのだが、今振り返れば単価安かったんだろうなと思う。（もちろん、技術的に色々学べて良かった面もあったので一概に悪いとは思ってない）

自分の適性単価を知るには、複数のエージェントサービスに登録するのが良い。面談を通して自分の市場価値を判断できるし、面談慣れも出来る。

ちなみに、各技術スキルごとの市場相場はこのサイトを見ればけっこうイメージできる。
https://freelance-start.com/


![](https://storage.googleapis.com/zenn-user-upload/18665d5935e2-20230310.png)
![](https://storage.googleapis.com/zenn-user-upload/db79a52cdade-20230310.png)

このサービス（エージェントでもあるが）は、各エージェントサイトの相場を横断してスクレイピング？して掲載してるので、どの技術スキルがニーズあるのかを把握するのにも使えるし、エージェント経由での案件のだいたいの相場もわかる。

あと、これは自分がフリーランスになったときに別の先輩フリーランスエンジニアに教えてもらった忠告だが、出来れば受託は１社ではなく複数社にした方が良い。これはもちろんメリデメそれぞれあるが、１社の契約が終了しても別案件があるからとりあえず収入に困らないというのがある。落ち着いて別案件を探せるようになる。週５稼働なら、週３案件と週２案件で動けると理想系ではある。（ただし、週２案件はあまり無いし、デメリットとしてはスイッチングコストがかかる）

## 経営セーフティ共済は最初から始めた方が良い

理由は、経営セーフティ共済は40か月以上納めていれば、掛金全額が戻るから。掛金は月5000円から始められる。納める金額の月の上限は20万円。総額は800万円。

とりあえず納め始めておけば、ふとたくさん利益が出た時に前納（翌年分を今年中に納めることで、今期の節税に出来る）出来るし、貯まれば1年ぐらい受託しなくても生活できる。



ちなみに経営セーフティネットと小規模企業共済は別物。（念のため）

## オマケ

Discordでフリーランス互助会コミュニティつくりました。
フリーランスになりたい/副業始めたいという方もWelcomeですので、興味ある方のご参加、お待ちしてます。

Discord招待リンク↓
https://discord.gg/5EGxKRD746
Imaging Edge Webcamが使えなかった話

# 目次
1. TL;DR
2. はじめに
3. 環境
4. 試したこと
5. 解決方法
6. 終わりに
___
## 1. TL;DR
**PC側の自動再生設定を変更すれば直る**


## 2. はじめに
お世話になっております．Riiです．

現在就活中でWebカメラの使用頻度が多くなったので色々環境を整えていたのですが，ある日突然Imaging Edge Webcamが映らなくなってしまいました...


設定も変更した記憶がないしなぁ(伏線)と思いながら試行錯誤して設定を変えてたら直ったので備忘録がてら残しておきます．
~~(初歩的すぎてWebページにすらなかったので...)~~

## 3. 環境
OS
- OS : Windows11 Education
- バージョン : 22H2(OSビルド 22624.1391)

デバイス側
- カメラ : SONY α7Ⅲ (ILCE-7M3)
- ソフト(?) : Imaging Edge Webcam (https://support.d-imaging.sony.co.jp/app/webcam/ja/) 
- ドライバ : 17.45.52.413 (2021/08/04)

## 4. 試したこと
### **`USB Reset`の実行**
Imaging Edge Webcamのインストールをすれば`USB Reset`もインストールされているのでそれを実行した．
-> 変化なし(認識しない)

https://support.d-imaging.sony.co.jp/app/webcam/ja/faqs/#:~:text=Windows%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%8B%E3%82%89,%E3%81%AE%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E5%86%8D%E9%96%8B%E3%81%99%E3%82%8B%E3%80%82

### **カメラ側の設定変更**
`MENU` -> `ネットワーク1` -> `スマートフォン操作設定` -> `スマートフォン操作`を **切**，
`MENU` -> `セットアップ4` -> `USB接続`を **PCリモート**へ変更．
-> 変化なし(認識しない)

https://knowledge.support.sony.jp/electronics/support/articles/SH000163060


### **モードの確認**
α7Ⅲなので動画モードにして接続．
-> 変化なし(認識しない)

https://www.teradas.net/archives/36757/

https://support.d-imaging.sony.co.jp/app/webcam/ja/instruction/


### **Windows側のカメラ設定確認**
アプリでカメラの設定がオンになっているかの確認だけ．(ZoomとTeamsの設定も確認した)
-> 変化なし(認識しない)

https://takaslife.com/2020/08/23/sony-imaging-edge-webcam/

### **α7Ⅲの初期化**
-> 変化なし(認識しない)

### **Imaging Edgeの削除**
Remoteとかを入れていたので削除．
-> 変化なし(認識しない)

## 5. 解決方法
### 自動再生機能の停止
Windows側でα7Ⅲがストレージとして認識されていたので設定の変更を行った
(多分接続したときのポップアップで設定してしまっていた)
- 設定方法
`設定` -> `Bluetoothとデバイス` -> `自動再生`からα7Ⅲ(ILCE-7M3)を選択し，**何もしない** か **毎回動作を確認する**を選択
(ポップアップがうざいので何もしないが丸いと思います)
![Qiita001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1003832/3877b234-9b9f-b758-6505-7ef85dcab149.png)
![Qiita002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1003832/c07d869a-054f-a1e0-f3ab-82460927cfaf.png)
![Qiira003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1003832/ff701956-8fba-233c-a670-b0af99a26ad9.png)





## 6. 終わりに
くっそ簡単なことで恥ずかしいです．
他にも試したのはあるかもしれないんですが，全く変わらなかったので思い出したら追記します．

では．
gradleで「Accessing GradleBuildProject.Builder through AnalyticsConfiguratorService is not allowed」が出た時の対処方法

# 概要

マルチモジュール構成で依存関係を見ようと以下のコマンドを打ったところ

```shell
$ ./gradlew -q :app:dependencies --configuration releaseCompileClasspath
```

以下のエラーが出ました

```shell
FAILURE: Build failed with an exception.

* Where:
Build file '<パス>/build.gradle' line: 2

* What went wrong:
An exception occurred applying plugin request [id: 'com.android.library']
> Failed to apply plugin 'com.android.internal.library'.
   > Accessing GradleBuildProject.Builder through AnalyticsConfiguratorService is not allowed after AnalyticsService is created.
```

調べるとこれは、Android Gradle Plugin の バージョン7のバグのようです。8では直るみたいです。
https://issuetracker.google.com/issues/226095015

# 対処方法

そのうち直ると思いますが、対処方法を。

`~/.android/analytics.settings` の `hasOptedIn`をfalseにすれば良いです。

```shell
$ vim ~/.android/analytics.settings
```

```diff
- {"userId":"・・・・","hasOptedIn":true,"・・・・
+ {"userId":"・・・・","hasOptedIn":false,"・・・・ 
```

これで無事にコマンド成功しました
Windows11でCapsLockをCtrlに変更しCtrl+SpaceでIME切り替えにする方法

# はじめに
CapsLockはCtrl，半角/全角切り替えはCtrl+Spaceにするのが僕の使いやすい設定なのでWindows11で設定したときの備忘録。

# 1. CapsLockをCtrlに変更
・以下HPからctrl2capのZIPファイルをダウンロード
[https://learn.microsoft.com/en-us/sysinternals/downloads/ctrl2cap]()
・展開しC:\Users\user\Documentsへフォルダを置く
・管理者権限でPowershellを開き以下のようにディレクトリ移動
```
 cd C:\Users\user\Documents\Ctrl2Cap
```
・以下のコマンドを入力
```
./ctrl2cap.exe /install
```
・再起動したら変更されている

# 2. Ctrl+SpaceでIMEを切り替え
・IMEをWindows10に変更（以下URLなど参照）
[https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?rid=417&PID=8111-2706]()
・IME右クリック --> Property --> Advanced
・General --> Editing operation and behavior --> Advanced
・Ctrl+SpaceにIME ON/OFFを割り当て

# 参考文献
https://loumo.jp/archives/25374
[Web開発] 画面テストで何をテストすれば良いのか

## 概要
Webアプリケーションの開発において、画面のテストをする際に「何をテストすれば良いのか」を`ChatGPT`に聞いてみた。
忘れても良いように、メモとして残しておく。

## テストするべき項目

 - レスポンシブデザインのテスト: 
画面サイズを変更した際に、UIが崩れないかを確認する。
複数デバイスで行うことが望ましい。

- ユーザビリティのテスト: 
ユーザがアプリケーションを利用する際の使い勝手を確認する。
ボタンやリンクの配置、操作手順のわかりやすさなど

- フォームのテスト:
フォームの入力欄が正しく配置されているか
エラーメッセージが表示されるかなどを確認する。

- データ表示のテスト:
表示しているデータの整合性や形式を確認する。

- ブラウザの違いを考慮したテスト:
ブラウザごとに表示や動作が異なることがあるため、複数ブラウザでのテストを行う。

- セキュリティテスト:
XSSやCSRFなどの攻撃に対して、対策が行われているかどうかを確認する。

- ページ読み込み速度のテスト:
ページの読み込み速度が遅い場合や正常に読み込みが完了せず、表示が崩れる可能性もあるため、ページ読み込みが正しく行われているかを確認する。
ubuntuで日本語入力に変更する方法


1. ターミナルを開く
2. コマンド入力
    ```shell 
    sudo apt update
    sudo apt install ibus-mozc
    sudo reboot
    ```
3. setting->Region&Languageを開く
4. input sorcesの＋からJapanese(Mozc)を選択して追加

※) win+spaceからJapanese(Mozc)を選ぶと日本語入力ができるようになる
ChatGPTについて調べた


# ChatGPTとは
OpenAI社が開発した「チャットボット」。<br><br>

※GPT = Generative Pretrained Transformerの略。汎用技術のこと。
OpenAIが開発した。事前学習による自然言語技術処理モデルのひとつ。

- 特徴
会話形式でやり取りができること。単に質問に答えるだけではありません。<br>
調べたところ、SiriやAlexaなどよりも、より人間に近い回答が返ってくるそうです（会話の精度がレベチ）。<br>
例えば質問内容に誤りがあった場合、指摘したり回答を拒否したり、より自然な対話のような回答が得られます。<br><br>

ChatGPTの開発元であるOpenAI社の設立者には、テスラ社のイーロン・マスク氏も名を連ねています。
マイクロソフト社が積極的に投資を行っていて、開発をさらに推し進めています。
OpenAIの利益の75%をもらうことになっているとか、、、

## どのくらいの人に使われているか？
ChatGPTはどのくらい普及しているのか。
2022年11月にリリースされました。12月には100万人のユーザー数を突破しました。
そこから3ヶ月後、2023年1月史上最速で、ユーザー数1億人を突破。

## できること
ChatGPTができることを調べました。
- 物語の要約を作ってくれる
- 表計算ソフトの関数記述を教えてくれる
- 歌詞の作成
- 問題文の作成
- 小説や脚本などの作成　　など

他にもさまざまなことができると思います。

## メリット
- 情報収集がスピーディに行える。
- 悩み相談ができる。など

## デメリット
- 情報の正確性は本当に正しいのか。
- 専門性が高い質問には対応できない。など


# 最後に
ざっくりとですがまとめました。
実際にアカウントを登録してChatGPTとチャットでやり取りなんかもしてみましたが、siriとは違い、本当に人と会話しているかのようにスラスラ文章を書いて返答してくれました。
高い自然言語処理能力というやつですね。
学習済みでない情報に関しては、回答内容（情報）が薄い点もあるそうですが、これからますます発展していくのかな？社会ではどんなふうに活用されていくのかな？と個人的に楽しみです。
これからも面接のときに出てきた様々なツールや知らないワード、Qiitaの投稿で興味を持ったことについて勉強し、少しでも自分の中に知識として蓄積して行きたいなと感じています。




# 参考文献

https://digital-shift.jp/flash_news/s_230306_1
MIPSのSIMD其の七

ZRouterのKERNCONF_MAKEOPTIONSでCONF_CFLAGSに-mdspを設定してカーネルをビルドすると起動しなくなります。

gcc 4.2.1にはdspのサポートが入っていますが、あまり安定してなかったのかもしれません。

回避策としてビルド全体の設定ではなく、dsp命令を使用するアセンブラソースコード中で以下を設定します。

```
.set dsp
```

退避復旧のコードはswitch.S同様にアセンブラで書き、dsp.Sと別ファイルにしました。

ソースのヘッダーはswitch.Sのものを入れてあります。

とりあえずビルドできてカーネルは起動するのですがinitさんが起動できません。カーネルのframeにdsp関連のレジスタを追加したことが原因のようです。

ユーザーランドのほうにもdsp関連のレジスタを追加すればよいのですが、方法がわかりません。いろいろ考えてみてFPのレジスタはありますが、使われてないので、unionにしてそこにdsp関連のレジスタを保存する事にしました。

復元はdsp命令をユーザーランドで実行するとtrapが発生して、処理されるようになりました。

KERNCONF_MAKEOPTIONSでCONF_CFLAGSでMIPS_DSP_SUPPORTを定義するとDSPサポートが有効になります。DSPを使うのはごく限られるのでZRouterのsocsではなくvendorのmkで設定するようにします。

コンテキストスイッチで保存されるケースの確認方法を考えなければいけません。

https://github.com/ZRouter/freebsd-src/tree/zrouter_yamori813

mpg123のmips dspコードを誰か書いてくれませんか？

プロトタイプで全プロセスで保存を実行して、例外で復旧するようにしてみました。DSP命令を使用したプロセスのみで保存するのが正しいですし、領域のクリアもしてません。またきが向いたら考えます。
Wsl に FTP（vsftpd）接続。シェルスクリプト でインストール vsftpd 設定【Ubuntu】

### 結果（Wsl へ FileZilla で接続）
![スクリーンショット (674).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/67c74893-b424-61e4-f298-4292e5443a60.png)

### vsftpd シェルスクリプト ソース
```vsftpd_set.sh
#!/bin/bash

echo "********* vsftpd インストール開始 *********"

# vsftpd インストール
sudo apt-get install vsftpd
# vsftpd conf のパスを変数へセット
vsftpd_conf='/etc/vsftpd.conf'

### conf ファイル設定
sed -i -e "s/#write_enable=YES/write_enable=YES/g" $vsftpd_conf
sed -i -e "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" $vsftpd_conf
sed -i -e "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" $vsftpd_conf
sed -i -e "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to blah FTP service./g" $vsftpd_conf

# ポート有効化
sudo ufw allow 21
sudo ufw reload

### vsftpd 「開始」「有効化」「再起動」
sudo service vsftpd start
sudo service vsftpd enable
sudo service vsftpd restart


echo "********* vsftpd 設定完了 *********"

exit

```

## FileZillaの接続方法

・ホスト
loclahost

・ユーザ名
wslで作成したユーザ名

・パスワード
wslで作成したユーザのパスワード

・ポート
21

「クイック接続」をクリック。

![スクリーンショット (1259).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/edf5eef4-9654-8a40-915a-61cbf0eaf1f1.png)

## WSL のパスワード忘れた場合
・passwd でリセットする。
passwd ユーザ名　を入力して、新しいパスワードを設定する。
```bash
root@JIM288:/home/first_react_project# passwd tossy
New password:
Retype new password:
passwd: password updated successfully
root@JIM288:/home/first_react_project#
```
マクロ 削除 mac

①開発タブのマクロを選択

![スクリーンショット 2023-03-10 11.18.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/0e38451f-82ba-3fdc-e8a6-b8420a585b26.png)
②削除したいマクロを選択し、ーを選択

![スクリーンショット 2023-03-10 11.18.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/79a44486-bfb5-94b9-5c24-0c753491a292.png)
③削除しますか？と出るので、はいを選択

![スクリーンショット 2023-03-10 11.19.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/b5602455-34ec-09db-a533-f4603ca3f6e8.png)
④マクロの中を確認するとなくなっています👏

![スクリーンショット 2023-03-10 11.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/ee233db5-6813-5c8a-cdc2-0191e87d2774.png)
AWS Lambda Node.js Lambda関数内部で自身の関数名を取得する

# 概要

- Lambda関数内で自身の関数の名前を取得する方法をまとめる。

# 詳細

- Lambda関数はNode.js 18を使用する。

# 方法

1. 下記の様にLambda関数のコードを記載して、保存 → デプロイ → 実行してみる。

    ```index.mjs
    export const handler = async(event, context) => {
        console.log(context.functionName);
    }
    ```
マクロ有効ブック　保存

①ファイルを選択

![スクリーンショット 2023-03-10 11.11.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/e5f8f419-a469-3d69-c5e4-aa8990876603.png)

②名前を付けて保存

![スクリーンショット 2023-03-10 11.11.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/958536b1-d108-4744-8f72-e326dae80bb5.png)

③ファイル名を変更し、ファイル形式を右クリック

![スクリーンショット 2023-03-10 11.13.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/ae660538-74e0-287d-3bb1-08d575fa8ec2.png)

④マクロ有効ブック（.xlsm）を選択

![スクリーンショット 2023-03-10 11.13.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/8c2a915e-d40d-9117-e70f-fff385183fbe.png)

⑤保存

![スクリーンショット 2023-03-10 11.13.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/078e953b-494b-7dfe-bedc-747ed5efc752.png)

○まとめ
この方法をとらなければ、せっかく作ったマクロが、使えずに保存できません。

保存を特に重要なので、しっかり覚えましょう！！
マクロ　ショートカットキー

①開発タブのマクロを選択

![スクリーンショット 2023-03-10 11.04.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/8103a330-bfd1-658f-25ac-e3713cf4ef4e.png)


②ショートカットキーを設定したいマクロを選択し、オプションを選択

![スクリーンショット 2023-03-10 11.04.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/7ea43d47-5539-9f8c-144e-bff1e005ac8f.png)

③ここにショートカットが設定されていない。キーを入力
今回はlを入れました。
その後、OKを選択

![スクリーンショット 2023-03-10 11.04.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/ea82bb96-6e34-2eaf-a9a4-7883c5a96b90.png)

④実行を選択

![スクリーンショット 2023-03-10 11.04.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/62bcf6b1-e14d-54f4-977d-94b3c7d6d83d.png)

⑤変更したいセルを選び、
option + command + l
をすると変更することができます👍

![スクリーンショット 2023-03-10 11.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/ce28f66a-85d6-b18d-ee06-6f6073ada09d.png)
マクロ　ボタン作成

<h1>マクロ　ボタン作成</h1>
①開発タブのボタンを選択

![スクリーンショット 2023-03-10 10.54.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/cadce743-a47b-c743-59cf-843072c12db1.png)
②十字にマウスポインタが変わるので、空いてるスペースで右クリック

③そうすると、この画面が開くので、先ほど作ったマクロを選択。OKを選択

![スクリーンショット 2023-03-10 10.55.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/6eac2ea3-2bb4-0251-e796-0a791ce045ed.png)

④そうすると、ボタンが作成されます。
どこかのセルを選択し、ボタンを押すと、、

![スクリーンショット 2023-03-10 10.55.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/747788a5-32f9-9bda-5d45-f29c37e8b02e.png)

⑤先ほど設定した、条件で変更されます👏

![スクリーンショット 2023-03-10 10.55.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/19818e9c-6fa5-2da0-248a-ec71b2ee5aa9.png)

⑥ボタンの大きさ、名前変更
ボタンを右クリックする。空いたスペースを左クリックする。
その後、ボタンの周りの白の点で大きさを変更したり
ボタンの中を左クリックすると、名前の変更ができる。

![スクリーンショット 2023-03-10 10.55.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/9d886643-c3a1-4cf1-e8d4-586cd248caa9.png)

⑦変更後

![スクリーンショット 2023-03-10 10.55.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160498/e93140f0-ac43-7990-80fd-33ecd6c3d43f.png)
Google Cloud, Cloud Run, Python, Flaskアプリのモニタリング概観

以下のような構成のWebアプリで、ビルトイン+簡単なコーディングだけで、どのくらいのモニタリングを行えるのかを確認します。

- Google Cloud
- Cloud Run
- Python
- Flaskアプリ

# Logging
標準出力に出力するだけで自動的にCloud Loggingにログが集約されます。
単純なテキストも、JSONなどの構造化ログもOKです。

- コーディングの例

```python
logger.info("query string: " + request.query_string)
logger.info(json.dumps({"query_string": request.query_string}))
```

- ログの例

```
INFO:app:query string: hoge=fuga&foo=bar
INFO:app:{"query_string": "hoge=fuga&foo=bar"}
```

# Monitoring

- 特にコーディングしなくても、リクエスト数、起動しているコンテナの数などの情報を取れます。
- 例 CPU使用率
![monitoring.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1950110/d56e79d8-3688-bd59-58e3-95aa3c714174.png)


# Profiler

Cloud Runサポートと記述されていませんが、使えます。
プログラム先頭でProfilerを有効にします。

- コーディングの例
```python
try:
    googlecloudprofiler.start(service='example')
except Exception as e:
    app.logger.error("failed to start Google Cloud Profiler: " + str(e))
```

- Profilerの例

![profiler.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1950110/5ba8dc07-0e2c-d564-889b-c68f2ec4af3f.png)

## 注意

本記事執筆時点では、Python 3.11でGoogle Cloud Profilerを使用できませんでした。
Python 3.10では問題ありませんでした。

https://github.com/GoogleCloudPlatform/cloud-profiler-python/issues/127

# Trace

- 特にコーディングしなくても、リクエスト単位の処理時間を見られます。
- [OpenTelemetry対応](https://cloud.google.com/trace/docs/setup/python-ot?hl=ja)すると、さらに細かいトレースを取得できます。

![trace.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1950110/e8c5480b-dfcc-fcde-a5ef-1710aaf31b7b.png)
ShellScriptのexitの終了コードを指定しないとどうなるか

ShellScriptのexitは、その時点でシェルスクリプトを終了する。

では、終了コードを指定しない場合はどうなるかというと、「前のコマンドの終了コードをそのまま返す」ような挙動となります。set -eしている場合2などは典型的ですが、普通に実行していれば終了コード0のコマンドばかりが並びますので、exitだけでも終了コード0を返す状況が多い

# 参考サイト
https://qiita.com/jkr_2255/items/6d14045cfa0494c21a20
paiza.ioでnadesiko その20

# 概要
paiza.ioでnadesikoやってみた。
練習問題、やってみた。

# 練習問題
俺言語の、インタープリターを書け。
fizzbuzzを実行せよ。

# 方針
ナデシコするを、使う。

# サンプルコード

```

pc = 10
a = 0
b = 0
lines = []
g = 0

● (vで) v_a
    s = 「{v}」
    sをナデシコする
    pc = pc + 10
ここまで

● (vで) v_b
    s = 「{v}」
    sをナデシコする
    pc = pc + 10
ここまで

● (vで) print
    s = vの1から2だけ文字削除
    もし、sが「a」ならば
        aを表示
    違えばもし、sが「b」ならば
        bを表示
    違えば
        mは、sで2から１文字抜出す
        もし、mが「0」ならば
            「 」を表示
        違えば        
            mを継続表示
        ここまで    
    ここまで
    pc = pc + 10
ここまで

● (vで) jmp
    s = vの1から2だけ文字削除
    oは、sで0から「*」を文字検索。
    もし、(o > 0) ならば
        mは、sで1から(o - 1)文字抜出す
        nは、sで(o + 1)から3文字抜出す
        t = 「g = {m}」
        tをナデシコする
        もし、gならば
            pc = TOINT(n)
        違えば
            pc = pc + 10
        ここまで
    違えば
        pc = TOINT(s)
    ここまで
ここまで

●（vを）行実行
    vを行取得
    それは、それを「 」で区切る
    mは、それ[1]
    kは、それ[1]で１から１文字抜出す
    もし、kが「#」ならば
        mでjmp
    違えばもし、kが「a」ならば
        mでv_a
    違えばもし、kが「b」ならば
        mでv_b
    違えばもし、kが「?」ならば
        mでprint
    違えば
        それ[1]を表示
        pc = 400
    ここまで
    もし、pc < 300 ならば
        pcを行実行
    ここまで
ここまで

●（Sを）実行
    lines = Sを「{改行}」で区切る
    10を行実行
    「end」を表示
ここまで

●（vを）行取得
    lは、「」
    iを0から linesの配列要素数 - 1まで繰り返す
        sは、lines[i]を「 」で区切る
        もし、(TOINT(s[0]) = v)ならば
            l = lines[i]
        ここまで
    ここまで
    lを戻す。
ここまで

「10 a=0
20 a=a+1
30 #=(a>100)*400
40 b=a%15
50 #=(b=0)*120
60 b=a%5
70 #=(b=0)*160
80 b=a%3
90 #=(b=0)*220
100 ?=a
110 #=20
120 ?='f'
130 ?='i'
140 ?='z'
150 ?='z'
160 ?='b'
170 ?='u'
180 ?='z'
190 ?='z'
200 ?='0'
210 #=20
220 ?='f'
230 ?='i'
240 ?='z'
250 ?='z'
260 ?='0'
270 #=20 」を実行



```

# 実行結果

```
1
2
fizz 
4
buzz 
fizz 
7
8
fizz 
buzz 
11
fizz 
13
14
fizzbuzz 
16
17
fizz 
19
buzz 
fizz 
22
23
fizz 
buzz 
26
fizz 
28
29
fizzbuzz 
31
32
fizz 
34
buzz 
fizz 
37
38
fizz 
buzz 
41
fizz 
43
44
fizzbuzz 
46
47
fizz 
49
buzz 
fizz 
52
53
fizz 
buzz 
56
fizz 
58
59
fizzbuzz 
61
62
fizz 
64
buzz 
fizz 
67
68
fizz 
buzz 
71
fizz 
73
74
fizzbuzz 
76
77
fizz 
79
buzz 
fizz 
82
83
fizz 
buzz 
86
fizz 
88
89
fizzbuzz 
91
92
fizz 
94
buzz 
fizz 
97
98
fizz 
buzz 
end
```

# 成果物

https://paiza.io/projects/EDluokCMXbG-7srDUjdJ8A


以上。
ShellScriptのif文

1. シェルスクリプトにおけるif文の考え方
1-1. 条件分岐をしたい場合に利用する
1-2. testコマンドとの組み合わせが一般的
2. シェルスクリプトのif文の使い方（基本）
2-1. if文の基本形
2-2. 覚えておきたい基本の比較演算子
2-3. elif文で複数の分岐を実現
3. シェルスクリプトのif文の使い方（応用）
3-1. AND、OR、NOTによる複雑な条件式
3-2. 入れ子（ネスト構造）
3-3. 数値、文字列以外の条件式
# 参考サイト
https://www.pasonatech.co.jp/workstyle/column/detail.html?p=7450
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/84e33f4e-81cb-98a6-4546-f2ec06fd8b8b.png" width="800">

# Google検索エンジンの3つの主要なプロセス

### <font color="MediumBlue">1.クロール（Crawling）</font>

Googleは、クローラーと呼ばれる自動化されたプログラムによってインターネットを探索します。クローラーが新しいページや更新されたページを発見すると、GoogleはそのページのURLを大きなリストに保存し、後で確認できるようにします。

GoogleのクローラーがWebページを発見する方法はいくつかあります。主な方法は、すでに特定されているページからのリンクをたどることです。クローラーは主に、Webサイト内のリンクや別のWebサイトからその新しいページを発見することになります。そのページをクロールする前に、Webサイトの所有者から許可されているかどうかを確認します。


### <font color="MediumBlue">2.インデックス（Indexing）</font>

新しいページがクロールされると、Googleはそれらをインデックスに格納します。オンラインのインデックスは、本の後ろにある索引に似ていると考えてください。本のインデックスは、コンテンツとそれに関連するページのリストです。同様に、Googleはウェブコンテンツをその場所、つまり各ウェブページのURLと一緒に保存します。

Googleは、どのような種類のコンテンツをインデックスに登録するのでしょうか？　テキスト、写真、ビデオコンテンツを含むページ上のほぼすべてのものです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/421cec6f-963e-0f78-cfaa-454630ac13b8.png" width="400">

インデックス作成は、Webサイトの所有者がWebページをクロールすることを許可した場合にのみ可能であることを忘れないでください。もし所有者がクロール、インデックス、Google検索に表示されることを望まない場合は、Webサイトのコードでそれを指定することができます。

### <font color="MediumBlue">3.配信（Serving）</font>

Webページのコンテンツがインデックスされた後、Google検索のアルゴリズムが作動します。ここでいうアルゴリズムとは、ユーザーの問い合わせに答えるために情報を探し出すのに役立つ自動化されたソフトウェアのことである。

Googleの検索アルゴリズムは、何十億ものWebページを選別して、検索に最も関連性の高いコンテンツを提供します。検索アルゴリズムの目的は、検索に対して最適な結果を提供することです。
- 例えば、ある製品を検索した場合、その製品について学んだり購入したりするのに役立つ、最良の結果が得られる可能性があります。

では、アルゴリズムがWebページの検索順位を決定する際、何を考慮しているのでしょうか。アルゴリズムが考慮するのは、Webサイトの内容や他のWebサイトの情報など、さまざまな要素です。場所や言語など、他の要素よりもわかりやすいものもあります。
- Googleは、優れたユーザーエクスペリエンスでユーザーのニーズを満たす結果を本当に返したいと考えています。コンテンツの品質やウェブページの使いやすさなど。
Ruby 条件演算子

# 条件演算子を使ってプログラムを書く
3桁の正の整数を入力します。その整数の「百の位・十の位・一の位の和」について、
10の倍数（10,20,30...）からの差が
- 2以内であるときは"True"
- それ以外は"10の倍数との差は○です"
と表示されるようにしましょう。

```
出力例：
near_ten(117)→True
near_ten(123)→10の倍数との差は4です
near_ten(111)→10の倍数との差は3です
```
百の位・十の位・一の位の和が6などの時に、「10の倍数との差は6です」と出力せずに、「10の倍数との差は4です」と10の倍数から近い方の差を出力するようにしてください。また、0も10の倍数に含むものとします。

```ruby
模範回答
def near_ten(num)
  total = (num / 100) + (num / 10 % 10) + (num % 10)
  remainder = total % 10
  if remainder <= 2 || remainder >= 8
    puts "True"
  elsif remainder <= 5
    puts "10の倍数との差は#{remainder}です"
  else
    puts "10の倍数との差は#{10 - remainder}です"
  end
end

# 呼び出し例
near_ten(300)
```

## 解説
100の位, 10の位, 1の位を足した数値をtotalにまとめました。
remainderは、100の位, 10の位, 1の位を足した数値を10で割ったあまりの数値を計算。
```ruby
if remainder <= 2 || remainder >= 8
```
上記コードは「remainderが10の倍数との差が2以内である場合」と意味します。

```ruby
elsif remainder <= 5
  puts "10の倍数との差は#{remainder}です"
```
elsifはremainderが5以下のとき、つまり3か4か5のときに「"10の倍数との差は#{remainder}です"」と返すよう記述しています。
※５以下なので1, 2も当てはまるのでは？と最初思っていましたが、
10の倍数との差が2以下の場合はTrueと返すよう指示があったので、該当しません。

```ruby
else
  puts "10の倍数との差は#{remainder}です"
```
elseでは、remainderが6か7のときに「"10の倍数との差は#{10 - remainder}です"」と変えるよう記述しています。
git でディレクトリ名を大文字から小文字に変更しようとするとハマった

git で大文字を含むディレクトリ名を小文字に統一したら差分として認識されなかった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/801825/99727cb5-b12b-3234-bedf-dd743fb69914.png)

git はデフォルトで [大文字小文字を区別しない](https://www.git-scm.com/docs/git-config/2.14.6#Documentation/git-config.txt-coreignoreCase) 設定になっているらしい。

`git config core.ignoreCase false` を設定することで差分として認識されるようになった。
C#.NETでコマンドプロンプトのコマンド実行して標準出力（レスポンス）の文字列取得

# 動作確認サンプル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/931d60bc-eabd-a358-5598-429e2a6f3dc3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/52eef076-3f84-3a23-cd90-3965fdb2e9fd.png)

```c#:サンプルコード
using System;
using System.Diagnostics;

namespace Komakoma
{
    internal class Program
    {
        static void Main(string[] args)
        {

            ProcessStartInfo process_start_info_ = new ProcessStartInfo();

            process_start_info_.FileName = "cmd";
            const string COMMAND_ = "ipconfig /?";

            process_start_info_.Arguments = "/c " + COMMAND_;

            //コンソール開かない。
            process_start_info_.CreateNoWindow = true;

            //シェル機能使用しない。
            process_start_info_.UseShellExecute = false;

            //標準出力をリダイレクト。
            process_start_info_.RedirectStandardOutput = true;

            Process process_ = Process.Start(process_start_info_);

            //標準出力を全て取得。
            string res_ = process_.StandardOutput.ReadToEnd();

            process_.WaitForExit();
            process_.Close();

            //取得した標準出力を表示。
            Console.WriteLine(res_);

            //結果確認の為に入力待ちで止める。
            Console.ReadLine();

        }
    }
}
```

実行結果は下記。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/8fb9f7b0-7179-85da-9df5-3307b565dd35.png)

# 参考サイトさん

http://www.toshioblog.com/archives/27695052.html

https://dobon.net/vb/dotnet/process/standardoutput.html

# バージョン

Windows 10 Pro 22H2 OSビルド 19045.2673
Microsoft .NET Framework Version 4.8.04084
【CSS】これから期待できるCSSまとめ2023

## はじめに
今までCSSは、「**特定のバージョンしか使えない**」や「**特定のブラウザだと使えない**」が
新しいプロパティが公開されても、使えないことが多々ありました。

そのため主要なブラウザの関係者が集まり、Web開発者の開発体験を向上させるための取り組み、「 [*Compat 2021*](https://web.dev/compat2021/)」・「[*Compat 2022*](https://web.dev/interop-2022/)」が行われていました。

このような取り組みが2023年も引き続続いていくようです。

https://web.dev/interop-2023


この記事では、Compat 2022に引き続き、[Interop 2023](https://web.dev/interop-2023/)で解消されるCSSプロパティについてまとめました。

こんなものがもうすぐ使えるようになるんだな...みたいに思っていただけると嬉しいです。

## 目次

+ Border Image
+ CSSの色空間と関数 
+ コンテナクエリ
+ Containment
+ 擬似クラス
+ カスタムプロパティ
+ フレックス ボックス
+ CSS 数学関数

## まとめ
### 1. Border Image
Border Imageの項目では以下の要素が今後つかえるようになります。

+ `border-image-repeat： stretch;`
    + borderに入れられた画像が引き伸ばされます
+ `border-image-repeat： stretch;`
    + borderに入れられた画像が繰り返され、足りない文が引き伸ばされます。
+ `border-image-repeat: repeat;`
    + borderに入れられた画像が繰り返され、足りない文は切り抜かれます。
+ `border-image-slice: <パーセンテージ>;`
    + borderに入れられた画像の分割する大きさにパーセンテージが使えるようになります。

### 2. CSSの色空間と関数 
CSSの色空間と関数 の項目では以下の要素が今後つかえるようになります。

+ 色空間の追加
    + `a98rgb`、`display-p3`、`lab`、`oklab`、`predefined-rgb`、`prophoto-rgb`、`srgb-linear`、`xyz`
+ 色空間におけるグラデーションの追加
    + rgb以外での色空間でグラデーションを作成することができるようになります。

### 3. コンテナクエリ
コンテナクエリ の項目では以下の要素が今後つかえるようになります。

+ `@container (/* 条件 */) { }`
    + divの大きさに合わせて、スタイルを当てることができるメディアクエリです。
    + firefoxとSafariで使えるようになります。

### 4. Containment
containの項目では以下の要素が今後つかえるようになります。

+ `contain-intrinsic-block-size: 100px;`
+ `contain-intrinsic-height: 100px;`
+ `contain-intrinsic-inline-size: 100px;`
+ `contain-intrinsic-size: 100px;`
+ `contain-intrinsic-width: 100px;`

### 5. 擬似クラス
擬似クラスの項目では以下の要素が今後つかえるようになります。

+ 疑似クラスの追加
    + `:dir()`、`:has()`

### 6. カスタムプロパティ
カスタムプロパティの項目では以下の要素が今後つかえるようになります。

+ CSSで変数を使えるようになります。
    + 定義する時：`--変数名: blue;`
    + 呼び出す時： `background-color: var(--変数名);`

### 7. フレックス ボックス
フレックス ボックスの項目では以下の要素が今後つかえるようになります。

+ `align-items: baseline;`
    + ベースラインに合わせて、揃えることができます。
+ 細かいバグの修正

### 8. CSS 数学関数
CSS 数学関数の項目では以下の要素が今後つかえるようになります。

+ CSSで以下の関数を追加
    + `sin()`・`cos()`・`tan()`・`exp()`・`log()`・`hypot()`・`pow()`・`sqrt()`・`round()`・`mod()`・`rem()`

---

最後まで読んでくださってありがとうございます！

普段はデザインやフロントエンドを中心にQiitaに記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

https://twitter.com/degudegu2510
RID受信機用の詳細マップの作り方


https://qiita.com/kobatan/items/dc26c28c0e283ba6f4c3

#### [以前に作成したRID受信機](https://qiita.com/kobatan/items/dc26c28c0e283ba6f4c3)のマップを、自分なりの詳細地図に変更する方法を説明します。
## 国土地理院のマップをダウンロードする
国土地理院の[**マップページ**](https://maps.gsi.go.jp/)に移動します。
まずブラウザの表示倍率のズームを100％にします。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520758/0c8b987a-ca11-955c-7451-e7fcd34bdfa0.png">
作りたい地図の位置と倍率で、マップを表示させます。
次に、下図のように[共有]と[山]アイコンをクリックしてください。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520758/6a95c7f2-8bfc-d3f0-4039-d4b58ded0913.jpeg">
大きさを固定にチェック。
![大きさを指定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520758/4d169a89-cb0e-c499-ee7c-2405b0051e6f.jpeg)
**大きさ**を、例えば[ **1000 x 1000** ]にします。
江の島周辺なら下図のような表示なります。赤枠の部分がダウンロードの対象となります。
この時の**緯度と経度**をメモって置いて下さい。プログラムで使用します。
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520758/753ac577-1632-7e1f-61b4-e5896dd4e99e.jpeg">
位置が決まったらOKボタンを押してください。「画像を保存」をクリックします。
名前を[map.png]にします。
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520758/230206a2-e9aa-6aea-d22d-0d42902735f5.png">
これで地図画像がダウンロードされました。

[map.png]を[data]フォルダに、ドラッグ＆ドロップしてコピーします。
## プログラムを書き換えます
index.html の下記の部分でwidthとheightの大きさをダウンロードしたmap.pngの大きさに合わせます。
＜img＞と＜canvas＞の両方です。
```index.html
	<div style="position:relative;">
 		<img src="map" width="1000" height="1000" alt="map.png">
		<div style="position:absolute; left: 0px; top:0px;">
			<canvas id="cvs" width="1000" height="1000"></canvas>
		</div>
		<div id="mark" style="position:absolute;">
		 <img src="mark" alt="mark.png">
		</div>
	</div>
</body>
```
index.html内のスクリプトの部分を下記のように書き替えて下さい。
幅と高さをマップの大きさに合わせ、緯度と経度は先ほど記録した値を代入して下さい。
(lng0,lat0)が左下で、(lng1,lat1)が右上です。
```index.html
<script>
//:
//:
			document.getElementById('pw').innerHTML = JSONobj.pw;

			var w = 1000;
			var h = 1000;
			var lng0 = 139.430666;
			var lat0 = 35.284934;
			var lng1 = 139.516497;
			var lat1 = 35.354966;
			let x = Math.trunc((parseFloat(JSONobj.lng) - lng0) * w/(lng1-lng0) );		// 経度をx座標に変換
			let y = h - (Math.trunc((parseFloat(JSONobj.lat) - lat0) * h/(lat1-lat0)));	// 緯度をy座標に変換
    		mk.style.left = x - 13 + 'px';	            							// マークの位置を変更(マークの左上角座標)	
			mk.style.top = y - 42 + 'px';
			drawLine(x, y);															// 軌跡を描画(マークの先端)
		}
	}
</script>
</html>
```
あとは、index.htmlとmap.pngをSPIFFS領域にアップロードして下さい。

これで、自分だけのマップが表示されるはずです。
## 注意事項
[data]フォルダ内の合計容量は2Mバイト以下になる様にして下さい。それ以上になるとエラーで書き込めなくなります。
マップデータをあまり大きくすると、書き込めなく恐れがあるので注意して下さい。

pngデータをjpgに変換し、圧縮率を高くすれば、データサイズを小さくすることが出来ます。
jpgに変換した場合は、プログラムの方もちょっと変更する必要があります。

```main.cpp
  server.on("/map", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(SPIFFS, "map.jpg", "image/jpg");
  });
```
SQL・Databaseを基本からまとめてみた【MySQL】

公式サイト：[MySQL](https://www.mysql.com/jp/)



## MySQLのインストール

①HomeBrewの最新化
```
brew update
```
②MySQLのインストール
```
brew install mysql
```
## MySQLの設定（1）
① MySQLのインストール確認
```
mysql --version
```
② MySQLの起動と停止
```
mysql.server start
mysql.server stop
//起動を確認
mysql.server status
```
③ MySQLへの管理者ユーザーでのログイン
```
//パスワード無しの場合
mysql -u root　　//※ mysql>と表じされたら成功
```
④ ユーザーの作成
(管理者ユーザーでMySQLにログインした状態で)
```
create user [新ユーザー]@localhost identified by '[新パスワード]';

//成功したら、Query OK,と表示
```
⑤ ユーザーの確認
(管理者ユーザーでMySQLにログインした状態で)
```
select Host,User from mysql.user;
```
## MySQLの設定(2)
① データベース（スキーマ）の作成
(管理者ユーザーでMySQLにログインした状態で)
```
create database [データベース名] default character set utf8;
```
②データベース（スキーマ）の確認
（管理者ユーザーでMySQLにログインした状態で）
```
show databases;
```
③ユーザーへのアクセス権限の付与
（管理者ユーザーでMySQLにログインした状態で）
```
grant all privileges on [データベース名].* to [ユーザー名]@localhost;
```
## MySQLの設定(3)
①ユーザーへのアクセス権限の確認
（管理者ユーザーでMySQLにログインした状態で）
```
show grants for [ユーザー名]@localhost;
```
②認証プラグインの変更
（管理者ユーザーでMySQLにログインした状態で）
```
alter user [ユーザー名]@localhost identified with mysql_native_password by '[パスワード]'; 
```

③認証プラグインの確認
（管理者ユーザーでMySQLにログインした状態で）
```
select User,Plugin from mysql.user;
```

④MySQLからのログアウト
（MySQLにログインした状態で）
```
quit
```





## 参考サイト
[【SQL】未経験者もこれ一本でOK！MySQLで学ぶ「SQL」「データベース基礎」講座【プログラミング初心者向け】](https://www.udemy.com/course/uz-sql-kiso/)
Googleデジタルマーケティング＆Eコマース：ロイヤリティ・ステージの戦略

# はじめに

”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/84e33f4e-81cb-98a6-4546-f2ec06fd8b8b.png" width="800">

以前、ファネルの最後のステージである[ロイヤリティの基礎][Loyalty]について紹介しました。

[Loyalty]: https://qiita.com/mapami/items/908feb4542f15e8df669

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/62e90e09-5552-3adb-1091-ea5cd48ca142.png" width="300">

# ロイヤリティ・ステージの戦略

ロイヤリティ・ステージでは、顧客はリピーターとなり、ブランドの支持者となります。理想は、顧客がブランドの代弁者になることです。

例えば、

- 彼らは家族や友人に製品の素晴らしさを語るでしょう。
- ソーシャルメディアに投稿して、自分の体験を何百人もの友人と共有するかもしれません。
- サービスを購入するよう促されることから、積極的にサービスを求めるようになるかもしれません。

デジタルツールを使えば、顧客を忠実なブランド信奉者にすることは、かつてないほど簡単にできるようになりました。ファネルのこの段階で、あなたはすでにお金を払う顧客を獲得しています。

下記の戦略を実施することで、
- リピーターを獲得し、コンバージョン率やコンバージョン値を高めることができます。
- ロイヤルカスタマーに製品やサービスを宣伝してもらい、ブランドの代弁者になってもらうこともできます。

### <font color="MediumBlue">リワードプログラム</font>

これは、顧客に再来店のインセンティブを与えます。多くのPOSシステムは、ソフトウェアに組み込まれたリワードプログラムを提供するようになりました。現在、POSシステムは、顧客からの支払いを受け付け、その情報を管理しています。

### <font color="MediumBlue">メールマーケティング</font>

これは、あなたのブランドを常に顧客の目の前に置いておくことができます。顧客にとって価値のあるメールを常に作成することを忘れないでください。そうでなければ、購読を中止される可能性があります。

### <font color="MediumBlue">ソーシャルシェア</font>

これは、お客様が製品やサービスをソーシャルメディアのフォロワーにシェアすることです。まず、顧客にビジネスのソーシャルメディアアカウントのフォローを促すことが重要です。そして、そのフォロワーにシェアしたくなるようなコンテンツを配信することが必要です。

### <font color="MediumBlue">リマーケティング</font>

新しい広告で有料会員へのリマーケティングを検討する。これは、顧客との再エンゲージメントに再び使用することができます。顧客が購入した製品が分かれば、別の製品や現在の製品へのアドオンを勧めることができます。

### <font color="MediumBlue">肯定的なレビュー</font>

これは、顧客がビジネスでポジティブな経験をした場合、その経験について書くように促します。レビューは、ソーシャルメディアのアカウントなどオンラインでも、単に電子メールでもかまいません。これらの肯定的なレビューは、ビジネスのWebサイト、ソーシャルメディアページ、およびメールマーケティングを通じてコンテンツとして掲載することができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/94da4cab-ebe0-38db-a66b-38f5a7e44c2a.png" width="600">

### <font color="MediumBlue">誕生日・記念日オファー</font>

多くの人は、自分の誕生日に認められるのが好きですね。顧客の誕生日に割引を提供することを検討してください。また、彼らが顧客となった最初の日の記念日に割引を提供することもできます。

### <font color="MediumBlue">フリービ</font>

これは、顧客に何度もブランドを思い出してもらうための方法です。無料サンプル、試供品は、ステッカー、マグネット、Tシャツ、またはビジネスに関連するものでよいでしょう。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/5a0595f1-61f2-97bc-677a-e2db95dd52da.png" width="600">

### <font color="MediumBlue">面白い確認メッセージ</font>

お客様が商品を購入すると、確認のメールやテキストを受け取ることがよくあります。多くの場合、これらのメッセージは標準的で取引上のものです。もし、そのブランドにとって適切であれば、なぜ面白いメッセージにしないのでしょうか？お客様が製品やサービスを受け取ることを楽しみにするような書き方で、確認メッセージに個性を持たせましょう。説明的な言葉を使って、新製品を受け取ったときにどのような気持ちになるかを伝えましょう。これらの戦略をうまく活用することで、お客様を忠実なファンにすることができます。そして、その顧客が友人や家族にもそのビジネスを伝えてくれることが理想的です。

:::note info
新規顧客の獲得には、すでに獲得した顧客を維持するのに比べて5倍のコストがかかることをご存知でしょうか？だからこそ、ロイヤリティの段階が非常に重要なのです。この段階で顧客との関係を育み、顧客の心に残り続けることが必要なのです。
:::
【vs code】 GitHub　コミットする時のMURDなどの意味

VSCodeで変更点をステージした際に、ファイル目の横のUDMRの表示が変わっていることに気がつきました。
今まで『あー変更してますよーの表示か！』ぐらいにしか思ってなかったので、それぞれの意味をまとめたいと思います。


## <font color="DodgerBlue">M</font>　
Modified 
何かしらの修正をしたとき



## <font color="SeaGreen">U</font>  　
Untracked
ファイルの追加やディレクトリ名を変えた時


## <font color="SeaGreen">R</font> 　
Rename
ステージにあげた際に、<font color="Red">D</font>で削除や変更したファイル名などが変更してますよとゆう意味


## <font color="Red">D</font> 
　Delete
ファイルを削除したとき
Create Case Queues and an Assignment Rule


# Queue typeがない？

https://trailhead.salesforce.com/content/learn/projects/set-up-case-escalation-entitlements/create-case-queues-assignment-rule?trailmix_creator_id=strailhead&trailmix_slug=prepare-for-your-salesforce-administrator-credential

+ [Create Case Queues and an Assignment Rule](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000O95ge)

:::note
Found it apparently in the first module of this chapter they made us delete the product and had to reenter it in the system. 

どうやらこの章の最初のモジュールで見つけたようで、製品を削除させ、システムに再入力する必要がありました。 
:::