OmniAICreator/Qiita-1.07M huggingface dataset:
【雑記】WmiPrvSE.exe (WMI プロバイダー ホスト) の CPU が高騰するワケ

<h1>はじめに</h1>
まあまあな頻度で WmiPrvSE.exe の CPU 使用率が高騰するという相談を受けます。

インターネット上の情報などを参照していると、WmiPrvSE.exe をタスクキルするなどの方法で、暫定的に対応している方をちらほら散見しますが、再起動等で再度事象が発生してしまうという声も多々見かけます。

現時点でいいサンプルがないため CPU が高騰する原因特定については記載できませんが、多くのパターンで発生している状況について簡潔に説明します。

<h1>WmiPrvSE.exe とは何者か</h1>
WmiPrvSE.exe (WMI プロバイダー ホスト) とは何者でしょうか。

かなりざっくりですが、WMI クエリを実行する際に呼び出され、クエリの実行を中継してくれるようなプロセスと考えてもらえれば想像しやすいと思います。

WMI とは Windows Management Instrumentation と呼ばれる仕組みで、Windows OS の様々な管理に使用されます。

このため、WMI クエリは OS 稼働中は常に実行されているような状況ですが、そのほかの利用用途として監視ソフトウェアなどでハードウェアやプロセスなどの情報を収集するために使われることが多いです。

<h1>WmiPrvSE.exe が起動する事象の多くのパターン</h1>
上記の通り監視ソフトウェア等で利用される場合が多くありますが、WmiPrvSE.exe の CPU が高騰するよくあるパターンとして、監視ソフトウェア等のプロセスから監視処理のために多くの WMI クエリが発行されるという状況があります。

このため、WmiPrvSE.exe 自体がおかしいというより、WMI クエリを大量発行しているプロセスがいるために事象が起きている場合が多くあり、対応としては WMI クエリを発行している元プロセスを止める、もしくは WMI クエリの発行数を減らすため問題となる監視処理等の間隔を長くする、監視項目を減らすなどの対応が必要となります。

<h1>調査の方法</h1>
WmiPrvSE.exe が高騰している原因を調査する場合、<b>WmiPrvSE.exe 以外の怪しいプロセスを止めて事象が解消するかという切り分けが重要になります。</b>

情報を取得して調査するのであれば、Windows Performance Recorder という情報をとって Windows Performance Analyzer というツールを使い分析を行うことで、被疑対象が絞り込める可能性もあります。

ただし、WMI は複雑なため、Windows Performance Recorder を取得しても原因がわかりにくい場合があるため、様々な情報から多角的に分析し被疑対象を絞り込む必要があります。

<h1>WmiPrvSE.exe の CPU 高騰でお困りの方へ</h1>
サンプルが用意できないので、この記事では Windows Performance Recorder で被疑対象を絞り込める簡単なパターンの解説まで記載できませんが、前述の原因で CPU が高騰している場合、WmiPrvSE.exe 以外のプロセスで監視処理や問題の報告を行うようなものがあれば、プロセスの停止を行って事象に変化があるか切り分けを行うことが有用だと思います。

WmiPrvSE.exe を停止するだけでは恒久的な対応にならない可能性があるため、ぜひ稼働しているプロセスの中から怪しいものがないかご確認いただけますと幸いです。

<h1>備考</h1>
もちろん OS の問題で WMI クエリが想定外に発行され CPU が高騰するようなパターンはあるので、サポート窓口等に調査が依頼できる場合は、調査を依頼しましょう。

<h3>今後</h3>
いいサンプルが取れたら公開されているツールで分析する方法を追記するかも
Modeling Show Cases Report, No.789, AUTOSAR R21-11(138) CP

Modeling Show Cases Report, No.789, 2021-11

https://www.autosar.org/fileadmin/user_upload/standards/classic/21-11/AUTOSAR_TR_ModelingShowCases.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

no

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] Methodology for Classic Platform
AUTOSAR_TR_Methodology
[2] Modeling Show Cases Examples
AUTOSAR_EXP_ModelingShowCases
[3] Software Component Template
AUTOSAR_TPS_SoftwareComponentTemplate
[4] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[5] Specification of Platform Types
AUTOSAR_SWS_PlatformTypes
[6] System Template
AUTOSAR_TPS_SystemTemplate
Supplementary material of general blueprints for AUTOSAR, No.682, AUTOSAR R21-11(137) CP

Supplementary material of general blueprints for AUTOSAR, No.682, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_TR_GeneralBlueprintsSupplement.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

no

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[2] Basic Software Module Description Template
AUTOSAR_TPS_BSWModuleDescriptionTemplate
[3] Specification of Floating Point Interpolation Routines
AUTOSAR_SWS_IFLLibrary
[4] Specification of Fixed Point Interpolation Routines
AUTOSAR_SWS_IFXLibrary
[5] Specification of Memory Mapping
AUTOSAR_SWS_MemoryMapping
[6] Specification of NVRAM Manager
AUTOSAR_SWS_NVRAMManager
[7] Software Component Template
AUTOSAR_TPS_SoftwareComponentTemplate
[8] XML Specification of Application Interfaces
AUTOSAR_MOD_AISpecification
[9] Predefined Names in AUTOSAR
AUTOSAR_TR_PredefinedNames
[10] SW-C and System Modeling Guide
AUTOSAR_TR_SWCModelingGuide
Requirements on Software Component Template, No.212, AUTOSAR R21-11(136) CP

Requirements on Software Component Template, No.212, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_RS_SoftwareComponentTemplate.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)
|Term|Description|
|:--|:--|
| Redundancy|Requirements shall not be repeated within one requirement or in other requirements.
|Clearness|All requirements shall allow one possibility of interpretation only. Used technical terms that are not in the glossary must be defined.
| Atomicity|Each Requirement shall only contain one requirement. A Requirement is atomic if it cannot be split up in further requirements.
| Testability|Requirements shall be testable by analysis, review or test.
| Traceability|The source and status of a requirement shall be visible at all times.


## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] Software Component Template
AUTOSAR_TPS_SoftwareComponentTemplate
[2] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[3] Main Requirements
AUTOSAR_RS_Main
[4] Requirements on AUTOSAR Features
AUTOSAR_RS_Features
[5] Feature Definition
AUTOSAR_FeatureDefinition.pdf
[6] Specification of SW-C End-to-End Communication Protection Library
AUTOSAR_SWS_E2ELibrary
【Laravel】socialiteとsanctumを使った新規登録・ログイン機能

## 環境
Laravel v9.5.1 (PHP v8.1.3)

## 新規登録・ログインの流れ
Slackに近い新規登録・ログイン機能の実装をやりたかった。

```
Googleアカウントでログイン
(未登録の場合)
->Googleアカウントの名前とメールアドレスで自動的に新規登録される
->トークンが発行される
->ログイン

(登録済みの場合)
->トークンが発行される
->ログイン
```


## 実装

```/auth/google/redirect```にアクセスしたら```/auth/google/callback```にリダイレクトされる。

```routes/web.php
Route::get('/auth/google/redirect', function () {
  return Socialite::driver('google')->redirect();
});

Route::controller(OAuthController::class)->group(function() {
  Route::get('/auth/google/callback', 'googleAuthCallback');
});
```

```Socialite::driver('google')->user();```でGoogleアカウント情報が取れるので、nameとemailを使って新規登録またはログイン処理。
そのユーザーでトークンを発行。
returnでとりあえずtokenを返しておいた。(ここは仕様次第で変わる)

```app/Http/Controllers/Auth/OAuthController.php
class OAuthController extends Controller
{
  public function googleAuthCallback()
  {
    DB::transaction(function () {
      $google_user = Socialite::driver('google')->user();
       
      $user = User::firstOrCreate([
          'email' => $google_user->email,
      ], [
          'name' => $google_user->name,
          'email' => $google_user->email,
      ]);

      $token = $user->createToken('api token')->plainTextToken;
      Auth::login($user);

      return $token;
    });
  }
}
```

## 参考

https://zenn.dev/naoki_oshiumi/articles/80ab178d958447

## socialiteのテストの記事はこちら

https://qiita.com/kat0/items/f51228301b7cdee7049b
PythonでChat Work通知

## やること

Chat Workにメッセージを送る

## 前提

以前作成した下記の環境からスタート

https://qiita.com/sh19982580/items/11a918da6d1a03ddf265


## インストール
flaskの下に追加

    requests

`pip install -r requirements.txt`を実行

## コード

chatwork.pyを新たに作成

    import requests

    def notify():
        CHATWORK_ROOM_ID = '００００００００００'
        CHATWORK_TOKEN = "xxxxxxxxxxxxxx"

        endpoint = 'https://api.chatwork.com/v2/rooms/%s/messages' % CHATWORK_ROOM_ID
        params = {
            "body": "testテストてすと",
            "self_unread": 0
        }
        response = requests.post(endpoint, params, headers={"X-ChatWorkToken":CHATWORK_TOKEN}, timeout=600)
        print(response.status_code)

app.py

    from flask import Flask
    import chatwork

    app = Flask(__name__)

    @app.route("/")
    def test():
        message = chatwork.notify()
        print(message)
        return "Hello World!"
    if __name__ == "__main__":
        app.run(debug=False, host='0.0.0.0', port= 8080)



appの中でchatworkを実行することで関数をまとめる

#### Toを付けたい時
メッセージの前に[To:0000000]を入れるだけ！

    "body": "[To:0000000] testテストてすと"

※[チャットのメンバー一覧を取得](https://developer.chatwork.com/reference/get-rooms-room_id-members)とかでToを付けたい人の`account_id`を調べる
## 最後に

1. ターミナルで`python3 app.py`を実行
1. 別のターミナルで`curl http://localhost:8080`を実行
→ 別のターミナル側で`Hello World！`が表示、ターミナル側で`200`が表示、Chat Workで`testテストてすと`が表示されればOK！！

requestsを使うだけ、かつ短いコードでChat Workにメッセージを送信できました。
Chatwork APIドキュメントを使えば、どんなことができるか簡単に知ることができます！

## 参考文献

https://developer.chatwork.com/reference/post-rooms-room_id-messages
C#でテロップソフトを作る。（labelを流す）

こんにちは。みらいです。

C# 🔰初心者向けの記事を書きます。

今日はC#のFormでテロップソフトを作ります。（labelを流す）

サンプルはGithubに置いています。

まずはFormの上にPanelを置きましょう。
Panelの上にlabelを流します。↓
![スクリーンショット 2022-05-23 212456.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680678/7378164e-916a-0b49-24ae-3e8012e32f98.png)
そのPanelの上にlabelを配置します。こんな感じ↓（置き方にこだわりはない）
![スクリーンショット 2022-05-23 212617.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680678/28d1903e-ee19-05a6-e3d5-da4cbfe8fe10.png)
次にTimerを用意します。
Timerの設定はこれ↓（名前は何でもいい）
![スクリーンショット 2022-05-23 212744.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680678/df8d1a29-95ff-42e7-c574-7029c24973ab.png)

次はコードを書いていきましょう。
```
private void TelopTimer_Tick(object sender, EventArgs e)
{
 Mainlabel.Left += -2;
 if (Mainlabel.Right < 0)  Mainlabel.Left = this.ClientSize.Width - Mainlabel.Right;
}
```
非常にわかりずらい解説（しらんけど）
```
Mainlabel.Left += -2
```
↑「Mainlabel」の部分はlabelの名前のこと。「-2」の部分でテロップ速度を設定できます。
```
if (Mainlabel.Right < 0)  Mainlabel.Left = this.ClientSize.Width - Mainlabel.Right;
```
↑このif文は「もしlabelが一番左へ行ったら右にlabelを戻す」という処理をします。

はい終わりです。
はじめての記事で何書けばいいかわからなかったので適当に書いてみました。
PythonでGoogle Spread Sheet操作

## やること

- Googleのスプレットシートからデータを読み取る
- Googleのスプレットシートにデータを書き出す

## 前提

以前作成した下記の環境からスタート

https://qiita.com/sh19982580/items/11a918da6d1a03ddf265


## インストール
flaskの下に2つ追加

    gspread
    oauth2client

`pip install -r requirements.txt`を実行

## 下準備
1. GCP
APIとサービス
→認証情報
→ 認証情報を作成
→ サービスアカウント
→ 名前をつけて、続行
→ ロール「編集者」
→ 完了
→ 再度、作ったサービスアカウントをクリック
→ キーから鍵を追加
→ JSONで作成

1. VSCode
ダウンロードされたJSONをcredential.jsonとしてVSCodeに保管

1. SpreadSheet
credential.jsonの中に入っているclient_emailをspreadsheetの共有で追加する

## 読み取りコード
spreadsheet.pyを新たに作成

    import gspread
    from oauth2client.service_account import ServiceAccountCredentials

    def get():
        scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
        credentials = ServiceAccountCredentials.from_json_keyfile_name("./credential.json",scope)
        client = gspread.authorize(credentials)
        sheet = client.open_by_key("スプレットシートのID").sheet1
        list = sheet.get_all_records()
        print(list) 

※スプレットシートのID = URLにあるxxxxxxxxxxの部分`spreadsheets/d/xxxxxxxxxx`

最後の行をprintにしているので、`python3 app.py`を実行してデータを取得できているか確認
大丈夫そうであれば、printを`return`に変更する

app.py

    from flask import Flask
    import spreadsheet

    app = Flask(__name__)

    @app.route("/")
    def test():
        spread = spreadsheet.get()
        print(spread)
        return "Hello World!"
    if __name__ == "__main__":
        app.run(debug=False, host='0.0.0.0', port= 8080)

appの中でspreadsheetを実行することで関数をまとめる

## 追加記事：書き込みコード
    scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
    credentials = ServiceAccountCredentials.from_json_keyfile_name("./credential.json",scope)
    client = gspread.authorize(credentials)
    sheet = client.open_by_key("スプレットシートのID").sheet1

※読み取りと同じ上記が必要

#### 1セルずつ更新

    for i , value in enumerate(values):
        sheet.update_cell(i+1, 1, value)

- for文で回して1つのセルに対して更新
- update_cell(行数, 列数, 値)
- enumerate()を使用して要素とインデックスを同時に取得　→　iが使えるようになる!

#### 範囲指定して一気に更新

    data = [[1,2,3],[4,5,6],[7,8,9]]   
 
    sheet.update('A1:C3', data)

- 3行3列一気に更新
- sheet.update(範囲　, 値)
- 更新するデータは二重配列

## 最後に

1. ターミナルで`python3 app.py`を実行
1. 別のターミナルで`curl http://localhost:8080`を実行
→ 別のターミナル側で`Hello World！`が表示され、ターミナル側で`データ`が表示されればOK！！

書き込みも追加して更新しました！
書き込む方法は様々あるので、データ量なども加味して決めていければ良いかなと思います。
参考文献が非常に分かりやすかったので、この記事で分からなければ読んでみると良いです。

## 参考文献

https://www.twilio.com/blog/an-easy-way-to-read-and-write-to-a-google-spreadsheet-in-python-jp

https://docs.gspread.org/en/latest/user-guide.html

https://zak-papa.com/python_gspread_cell_input_output
Requirements on System Template, No.213, AUTOSAR R21-11(134) CP

Requirements on System Template, No.213, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_RS_SystemTemplate.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

no

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] System Template
AUTOSAR_TPS_SystemTemplate
[2] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[3] Main Requirements
AUTOSAR_RS_Main
Docker Desktop for Windowsのインストールに手こずった

## やりたいこと
Docker Desktop for Windowsのインストール、起動

## 環境
OS: Windows 10 **Home Edition**

## 手こずった原因
- 一般ユーザーでインストールしたから
＋
- Windows 10 **Pro**でも**Enterprise**でもなかったから

## 詳細（経緯）
- DockerHubからインストーラー取得、インストール。ここまではOK。
- 起動しようとして"管理者じゃないからダメ。「docker-users」グループに入れろ"というエラーで起動できない。
- 参考書の記述より、以下の手順が有効と分かる。
1. [コンピュータの管理]
1. [ローカルユーザーとグループ]
1. [グループ]
1. [docker-users]を右クリックから当該ユーザーを追加できる
- 試した結果、**Home Editionはこの手順が実施できないことがここで分かる。**
- 方針を変え、一般ユーザーから管理者ユーザーに権限を変更することにした。
- 管理者でログインし直し、[他のユーザーの追加、編集、削除]から権限設定を変更。これは無事にできた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/551800/150e607b-bf83-dd6d-67d9-90c7a4c8e6cd.png)
- 念のため再起動の上、変更後の管理者ユーザーで再ログインしDocker Desktop起動。
- **が、ダメ。当初の「管理者じゃないからダメ」エラーから変わらず。**
- 何度か再起動を試すも変わらず。
- 最終的にDocker再インストールで無事に当初のユーザーで使用できるようになった。めでたしめでたし。

## 教訓
Docker Desktop for Windowsをインストールするときは
- 最初から管理者ユーザーにしておく
- そもそもWindows 10 Home EditionじゃなくPro / Enterpriseにしておく

## 参考書
エンジニアなら知っておきたいコンテナのキホン
https://book.impress.co.jp/books/1121101045
本自体はすごく丁寧かつ平易に書いてくださっていて、ド素人でも読み進められています。
DNSを理解したい

## DNSとは
webサイトはIPアドレスというインターネット上の住所をもっており、私たちがサイトにアクセスする際はこのIPアドレスを指定することでサイトを閲覧することができます。しかし、このIPアドレスは数桁の数字であり、あらゆるサイトのIPアドレスを記憶することは困難です。そこでIPアドレスにドメイン名という文字列を紐づけ、私たちはそのドメイン名さえ特定できていればサイトにアクセスすることができるといった仕組みが生まれ、その仕組みのことをDNS(Domain Name System)といいます。

▼（ちなみに）IPアドレスの調べ方
ターミナル上でnslookupコマンドを叩くと、ドメイン名に対応するIPアドレスを取得できます。
```
> nslookup google.com
Server:		240d:2:7524:df00:5a52:8aff:fee2:8b38
Address:	240d:2:7524:df00:5a52:8aff:fee2:8b38#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.196.110
```

## Webサイトへアクセスできる仕組み
ドメイン名が名前解決（ドメイン名→IPアドレスへの変換）をされて、Webサイトへアクセスできる仕組みは以下のイメージです。
![スクリーンショット 2022-05-21 16.08.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583468/5893d63c-1018-a1c5-00ef-cc46aa2c904d.png)
- 1, 見たいサイトのドメイン名(hoge.co.jp)を入力
- 2, DNSサーバーがそのドメイン名に紐づけられたIPアドレス返してくれる
- 3, 渡されたIPアドレスをもとに、webサーバーへアクセス
- 4, webサーバーはサイトを返す
- 5, ブラウザでサイトがみれる🎉

DNSサーバーでドメイン名からIPアドレスを取得するまでの流れはこの後紹介します。

## ドメイン名前空間
ドメインの情報は階層構造で管理されおり、各階層にDNSサーバーが存在します。
![スクリーンショット 2022-05-21 16.37.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583468/221708e2-fc8d-1f2b-8e32-872eaf7914a1.png)


図の例でいうと、まず一番上にルートが存在しており、その下にjp,comなどのトップレベルドメインと呼ばれるものが存在しており、その下の階層にはco, googleなどのセカンドレベルドメイン、さらにその下のhoge, yahooなどのサードレベルドメインが存在します。各ノードにはDNSサーバーがあり、親は子のドメインを管理しています。この構造を踏まえて、先ほどのhoge.co.jpにアクセスした際のDNSサーバーの流れを見ていきます。

## DNSサーバーの仕組み
![スクリーンショット 2022-05-21 17.19.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583468/bce745e9-93e3-c78a-e358-1d4e3cf6c988.png)

- 1, サイトのリクエストが送られると、まずDNSキャッシュサーバーにいく
（DNSキャッシュサーバとは、DNSサーバへの問い合わせをユーザーの代理で行い、結果を返答する役割を担うサーバーです。）
- 2, DNSキャッシュサーバーからルートのDNSサーバーに問い合わせをする
- 3, ルートのDNSサーバーは.jpのDNSサーバーに問い合わせるよう返答 
- 4, .jpのDNSサーバーは.co.jpのDNSサーバーに問い合わせるよう返答 
- 5, .co.jpのDNSサーバーはhoge.co.jpのDNSサーバーに問い合わせるよう返答
- 6, hoge.co.jpのDNSサーバーがIPアドレスを返答

## レコードとゾーンファイル
DNSサーバーはドメイン名とIPアドレスなどのデータを管理しており、その対応表を「ゾーンファイル」と呼び、その1行1行を「DNSレコード」と呼びます。簡単にですが、DNSレコードの紹介をします。

#### Aレコード
ドメイン名とIPアドレス(IPv4)を関連づけるレコード。
例) hoge.co.jp 3600 IN A xxx.aaa.bbb.ccc
IPアドレスがIPv6の場合はAAAAレコードとなる。
3600はTTL（Time To Live）といい、3600秒キャッシュを有効にすることができる。
その間はDNSサーバーと通信することなくサイトにアクセスできる。

#### CNAMEレコード
ホスト名に対する別名を定義するレコード。
特定のホスト名を別のドメイン名に転送する時などに利用する。
例) hoge.example.co.jp. IN CNAME hoge.co.jp.

#### NSレコード
webサーバーやメールサーバーなどのゾーンを管理するDNSサーバーを定義するレコード。
例) hoge.co.jp. IN NS ns1.hoge.co.jp.
hoge.co.jpはns1.hoge.co.jpというDNSサーバーに問い合わせをしてくださいという意味になる。
ゾーン分割を行なってサブドメインに権限委譲する場合は、そのDNSサーバーを指定するときにも使われる。

#### MXレコード
対象ドメイン宛のメールの配送先（メールサーバ）のホスト名を定義するレコード。
独自ドメインのメールを使用する際は必要なレコード。 
例) foo.jp. IN MX 10 mail.foo.jp. 
ドメイン名foo.jpに来たメールは、メールサーバーのmail.foo.jpに届けてくださいという意味になる。

#### TXTレコード
ドメインに関連したテキスト情報を自由に定義できるレコード。
仕様上は特定の用途や書式は定められておらず、任意の文字列を設定できる。
例) hoge.co.jp. IN TXT "v=spf1 ip4:198.51.100.1 ~all"
送信ドメイン認証情報(SPFレコード)として利用している例で、198.51.100.1から送られたメールは正しいメールであるという意味になる。

## おわりに
学習したてで誤りがあるかもしれませんがご了承くださいませ。
随時更新、修正は行なってまいります。
CSSスタイルの優先順位（詳細度）の基本概念

# 優先順位（詳細度）の基本概念
それぞれ0から始まる4つのスロットで構成されてます。
`0 0 0 0`
左スロットが1番強く、右スロットが1番弱く、10進法のように機能します。
例）1000は0100より大きいです。

# 優先順位の点数と計算方法

### スロット1

**セレクタがタグ、擬似要素**の場合このスロットに増加します、複数の場合どんどん加算します。

```css:slot1
p {}             /* 0 0 0 1 */
span {}          /* 0 0 0 1 */
p span {}        /* 0 0 0 2 */
p > span {}      /* 0 0 0 2 */
div p > span {}  /* 0 0 0 3 */
```

### スロット2

**classセレクタ、属性セレクタ**の場合このスロットに増加します、複数の場合どんどん加算します。

```css:slot2
.name {}                /* 0 0 1 0 */
.users .name {}         /* 0 0 2 0 */
[href$='.pdf'] {}       /* 0 0 1 0 */
:hover {}               /* 0 0 1 0 */
.pictures img:hover {}  /* 0 0 2 1 */
```

### スロット3

**idセレクタ**の場合このスロットに増加します、CSSファイル内の記述では一番強いです。
```css:slot3
#name {}          /* 0 1 0 0 */
.users #name {}   /* 0 1 1 0 */
#name span {}     /* 0 1 0 1 */
```

### スロット4

**インラインCSS**はCSSファイル内の記述より優先されます。
```html:slot4
<p style="color: red;">名前</p>
```

### 例外
必殺技 **!important**だけは例外でどのスタイルよりも優先されます。
あまり使うことをお勧めしません。

# 点数表
| 指定方法           | 例                         | 点数     |
|:---------------------|:-----------------------|----------:|
| style属性 | style="color: red;"                | 1000点 |
| ID                       | #hoge                  | 100点   |
| クラス                 | .hoge                   | 10点     |
| 属性セレクタ         |  a[href*="google"]  | 10点     |
| 要素名(タグ)               |  ul                          | 1点       |
| 擬似要素           | :first-child             | 1点       |
| ユニバーサルセレクタ      | *                           | 0点       |


# 参考
http://creator.aainc.co.jp/archives/4947
https://www.w3.org/TR/CSS21/cascade.html#specificity
Classic Platform Release Overview, ID.0, AUTOSAR R21-11(130) CP

Classic Platform Release Overview, No.0, 2021-11

https://www.autosar.org/fileadmin/user_upload/standards/classic/21-11/AUTOSAR_TR_ClassicPlatformReleaseOverview.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 目的と成果(Purpose and Outcome)

|item|description|
|:--|:--|
|who|CP user|
|what|known technical deficiencies|
|importance| very high|
|others| scheme version|
|comment| This should be foundation|

# 用語(terms)

|Short name|Description|
|:--|:--|
|AP|Adaptive Platform 
|CP|Classic Platform 
|FO|Foundation 

## schema versions 


|Schema Version  |Adaptive Platform release | Classic Platform release |Foundation release|
|:--|:--|:--|:--|
AUTOSAR_00042 | R17-03 |R4.3.0 |R1.1.0
AUTOSAR_00043| R17-10 |R4.3.0 |R1.2.0
AUTOSAR_00044 | R17-10| R4.3.1 |R1.3.0
AUTOSAR_00045 |R18-03| R4.3.1 |R1.4.0
AUTOSAR_00046 |R18-10 |R4.4.0 |R1.5.0
AUTOSAR_00047| R19-03| R4.4.0 |R1.5.1

|Schema Version |Platform release |Internal release number|
|:--|:--|:--|
|AUTOSAR_00048| R19-11 |R4.5.0
|AUTOSAR_00049| R20-11 |R4.6.0
|AUTOSAR_00050 |R21-11 |R4.7.0

## 英日単語帳（English Japanese Dictionary)
日本語は仮訳

T.B.D.

# 参考(reference)

[1] Specification of LIN Interface, AUTOSAR_SWS_LINInterface
[2] Log and Trace Protocol Specification with protocol version "2", AUTOSAR_PRS_LogAndTraceProtocol from Release R21-11
[3] Log and Trace Protocol Specification with protocol version "1", AUTOSAR_PRS_LogAndTraceProtocol from Release R20-11
[4] SOME/IP Protocol Specification, AUTOSAR_PRS_SOMEIPProtocol
[5] SAE J1939-81 Network Management

# 文書履歴(document history)
ver. 0.01 初稿 20220523
ver. 0.02 Scheme Version, known technical deficiencies are added. 20220604
Pythonのlambda式もオブジェクトであることに気がついた話

# 経緯
先日私は友人にPythonのクソコードを送りつけようと思い、普段は組まないような構文を積極的に書いて動作するか試していました。
そしてこの一文を打ったのです。
```Python
print(lambda x: x+1)
```
結果：`<function <lambda> at 0x0000027C83B613A0>`

そっか、関数もオブジェクトなのね...

ん？


# 思いついてしまった
じゃあ...
```Python
(lambda x: x+1, lambda x: x+2, lambda x: x+3)[0](1)
```
結果：`2`

ちゃんと出来るやん...
もう少しいじってみよう
```Python
[i(3) for i in (lambda x: x+1, lambda x: x+2, lambda x: x+3)]
```
結果：`[4, 5, 6]`

oh...(クソコードの予感)

# まとめ
結構面白いことが出来るんじゃないかなと思いました。

なお実用性()

みなさんもぜひ良い使い方を考えてみてください。(丸投げ)

## 参考文献
[式 (expression)](https://docs.python.org/ja/3/reference/expressions.html?highlight=lambda)
uBlacklistがYahoo!検索に対応しました

Googleなどの検索結果から任意のウェブサイトを除外するためのブラウザ拡張機能[uBlacklist](https://github.com/iorate/ublacklist)が、Yahoo!検索に対応しました（私が実装しました）。

## uBlacklistについて

いわゆる「[いかがでしたかブログ](https://dic.nicovideo.jp/a/%E3%81%84%E3%81%8B%E3%81%8C%E3%81%A7%E3%81%97%E3%81%9F%E3%81%8B%3F)」や機械翻訳サイトが上位に表示されるなど、Googleの検索結果の精度は年々悪化の一途をたどっているように思います（個人の感想です）。
検索エンジンの精度向上に期待したいところですが、ユーザーがとれる自衛策の一つとして、検索結果から特定のウェブサイトを除外するというものがあります。
それを手助けしてくれるのが、uBlacklistです。

https://qiita.com/iorate/items/9ff65360fbdf4082476a

私はuBlacklistで他の方がつくった[フィルタ](https://iorate.github.io/ublacklist/subscriptions)を購読したり、独自にフィルタをつくったりしています。

https://blog.munieru.jp/entry/2020/07/31/080000

## Yahoo!検索とGoogleの関係

Yahoo!検索では一時期独自の検索エンジンが使われていましたが、2010年以降はGoogleの検索エンジンが使われています。

https://hatenanews.com/articles/201008/1568

そのため、Yahoo!検索が独自に表示している要素を除けば、基本的にはGoogleと同じ検索結果が表示されます。
つまり、Yahoo!検索の品質はGoogleの検索エンジンの精度によって左右されるわけです。
Yahoo!検索でもuBlacklistが使えれば、そんなに良いことはありません。
そこで、Yahoo!検索に対応するプルリクエストをつくったところ、めでたくマージされ、リリースされました。

https://github.com/iorate/ublacklist/pull/236

## uBlacklistをYahoo!検索に適用する方法

uBlacklistをインストールしただけではYahoo!検索には適用されないため、次のように設定画面で個別に有効化する必要があります。

![https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132608/c5a02ef5-5bcc-673b-9c42-a331294044f1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132608/c5a02ef5-5bcc-673b-9c42-a331294044f1.png)

そのうえでYahoo!検索を利用すると、検索結果にウェブサイトをブロックするためのリンクが表示されます。
そして、フィルタに登録済みのサイトは非表示になります。

![https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132608/7a3edf72-9156-b006-c252-70d1eadf97e8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132608/7a3edf72-9156-b006-c252-70d1eadf97e8.png)

uBlacklistで、快適なYahoo!検索ライフを！
DockerからRailsのコントローラとルーティングを設定する

仮想環境下でコントローラやルーティングの設定はしたことがあったが、Dockerではなかったので備忘録として簡単に記載する。

homes_controllerを作成する

```言語:ターミナル
docker-compose exec web rails g controller homes 
``````

app/viewsの配下にhomesディレクトリが作成されていることを確認し、top.html.erbのファイルを作成する。
![スクリーンショット 2022-05-22 17.44.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654361/c762b51c-c0a3-78ca-92af-d59d2142ddb6.png)

トップページだと分かるように下記のように記載する。
``````言語:top.html.erb
<h1>ここはTopページ</h1>
``````

コントローラに以下のように記載する。
```言語:routes.rb
class HomesController < ApplicationController

  def top

  end

end
```


続いてルーティングを記載する。
```言語:routes.rb
Rails.application.routes.draw do
 
  get 'top' => 'homes#top'

end
```

これらが設定できたら
URLに
http://localhost:3000/top/
そうすると
ここはTOPページと表示される。

簡単な説明でしたが、以上でトップページの表示ができる。
Mac M1で仮想環境を立ち上げるのに、半日潰れた話。

下記の様に、Mac M1で仮想環境を立ち上げるのに、日曜日が半日潰れたので、備忘録として書いておきます。
![0523v.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/fa7073bd-ed1a-8533-571b-eff60e5756cd.png)

尚、上記画面で立ち上がっているのは、軽量GUI Linuxとして最近評判の良いQ4OSです。このQ4OSに関しては、下記記事に記載しました。
https://qiita.com/naiveprince0507/items/96d42da1d9ec8e4c979d

■1
まあ、下記の記事の通りなのですが、MacはやはりWindowsと違って、アプリが少ないです。この記事には、４つのメジャーアプリが紹介されておりますが、Mac M1ではVMware FusionもOracle VirtualBoxも利用できません。
使えるのは、Parallels Desktopなのですが、これは有料なので、使う気になれない。
https://shirokuma-folder.com/windows-on-mac
![0522d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/b14217ae-4eaa-80e3-b14d-a2aaa08de82c.png)

■２
因みに、下記記事には、VMWare FusionがMac M1に対応したプレビュー版を出したとありますが、全然ダメです。と言うか嘘です。
https://yama-mac.com/m1-mac-vmware-fusion-tech-preview-and-windows11/#download-vmware-fusion

こんなエラーがずっと出続けており、そもそもDownloadできません。
![0522b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/9db6e828-da2d-b787-cd3b-684995076329.png)

■3
と言う訳なので、結局、遅いと言う噂もありますが、UTMで構築しました。
https://mac.getutm.app/
因みに、Appstore経由でDLすると有料となるみたいなので、気を付けましょう！
Macro Encapsulation of Interpolation Calls, No.808, AUTOSAR R21-11(129) CP

Macro Encapsulation of Interpolation Calls, No.808, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_EXP_MacroEncapsulationofInterpolationCalls.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|DEM| Diagnostic Event Manager
|DET |Default Error Tracer

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] AUTOSAR Layered Software Architecture
AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[2] AUTOSAR General Requirements on Basic Software Modules
AUTOSAR_SRS_BSWGeneral.pdf
[3] AUTOSAR General Specification for Basic Software Modules
AUTOSAR_SWS_BSWGeneral.pdf
[4] AUTOSAR Methodology
AUTOSAR_TR_Methodology.pdf
[5] Requirements on Software Component Template
AUTOSAR_RS_SoftwareComponentTemplate.pdf
[1] Specification of Fixed Point Interpolation Routines
 AUTOSAR_SWS_IFXLibrary.pdf
[2] Specification of Floating Point Interpolation Routines
AUTOSAR_SWS_IFLLibrary.pdf
[3] Specification of Run Time Environment
AUTOSAR_SWS_RTE.pd
Specification of SW-C End-to End Communication Protection Library, No.428, AUTOSAR R21-11(128) CP

Specification of SW-C End-toEnd Communication Protection Library, No.428, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_E2ELibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)
|Term|Description|
|:--|:--|
|E2E| Library Short name for the End-to-End Communication Protection Library.
|Data ID| An identifier that uniquely identifies the message / data element /data.
|Source ID| An identifier that uniquely identified the source (origin) of the message / data element / data.
|Repetition |Repetition of information.
|Loss| Loss of information.
|Delay |Delay of information.
|Insertion |Insertion of information.
|Masquerade| Masquerade.
|Incorrect addressing|Incorrect addressing of information.
|Incorrect sequence|Incorrect sequence of information.
|Corruption |Corruption of information.
|Asymmetric information|Asymmetric information sent from a sender to multiple receivers.
|Subset |Information from a sender received by only a subset of the
receivers.
|Blocking| Blocking access to a communication channel.


## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] List of Basic Software Modules
AUTOSAR_TR_BSWModuleList.pdf
[2] AUTOSAR Layered Software Architecture
AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[3] General Requirements on Basic Software Modules
AUTOSAR_SRS_BSWGeneral.pdf
[4] Specification of CRC Routines
AUTOSAR_SWS_CRCLibrary.pdf
[5] Specification of Platform Types
AUTOSAR_SWS_PlatformTypes.pdf
[6] Requirements on Libraries
AUTOSAR_SRS_Libraries.pdf
[7] AUTOSAR Glossary, AUTOSAR_TR_Glossary.pdf
https://www.autosar.org/fileadmin/standards/foundation/21-11/AUTOSAR_TR_Glossary.pdf
[8] Software Component Template
AUTOSAR_TPS_SoftwareComponentTemplate.pdf
[9] System Template
AUTOSAR_TPS_SystemTemplate.pdf
[10] Specification of ECU Configuration
AUTOSAR_TPS_ECUConfiguration.pdf
[11] E2E Protocol Specification
AUTOSAR_PRS_E2EProtocol.pdf
[12] Requirements on E2E
AUTOSAR_RS_E2E.pdf
[13] ISO 26262-6:2018
http://www.iso.org/
JavaScriptで一定時間待つ処理を入れたい

## はじめに
Lambdaの関数のテスト目的であえて一定時間待つ処理を入れたかったので、その方法を調べました。

## コード

```js
exports.handler = async event => {
  console.log('start timer');
  await delay(5000);
  console.log('After 5 seconds');
};

const delay = time => {
  return new Promise(resolve => setTimeout(resolve, time));
};
```

## 参考
https://masteringjs.io/tutorials/fundamentals/wait-1-second-then
PHP 文字列検索 str_starts_with()

# 概要

- PHPの文字列検索組み込み関数のstr_starts_with()を簡単にまとめる。

# 前提

- 筆者は下記を用いて動作確認を行った。
    - [https://paiza.io/ja](https://paiza.io/ja)

# 組み込み関数 str_starts_with()

- 公式ドキュメント
    - [str_starts_with](https://www.php.net/manual/ja/function.str-starts-with.php)
- 検索対象文字列の最初に検索文字列が存在するかの確認
- 戻り値
    - 検索対象文字列内の最初に検索文字列が存在する： trueを返却
    - 検索対象文字列内の最初に検索文字列が存在しない： falseを返却
- 例

    ```php
    str_starts_with(検索対象文字列, 検索文字列);
    ```

- 実例（trueになる例）

    ```php
    <?php
    
    $str = 'hoge/fuga/piyo';
    
    $result = str_starts_with($str, 'hoge');
    
    // trueが出力される
    var_dump($result);
    ```

- 実例（falseになる例）

    ```php
    <?php
    
    $str = 'hoge/fuga/piyo';
    
    $result = str_starts_with($str, 'fuga');
    
    // falseが出力される
    var_dump($result);
    ```
【Laravel】認証系ライブラリの簡単まとめ

## 環境
Laravel v9.5.1 (PHP v8.1.3)

## はじめに
Laravelでログイン機能やトークン認証をやろうとした際にそれぞれの違いがよく分からず、どれを使えばいいのか混乱したので簡単にまとめる。
（Laravelは標準で認証系のライブラリが揃ってるのがすごい。）
元々Railsをやってたので、Railsでいうとこれなんじゃないかと思うものも挙げてみた。

## socialite

- ソーシャルログイン(Googleログインetc)を簡単に実装できる
- 外部サービスのアクセストークン発行とかをやってくれる
- Railsでいう```OmniAuth```
https://github.com/omniauth/omniauth

https://readouble.com/laravel/9.x/ja/socialite.html

## sanctum

- APIトークンをユーザーに発行し、トークン認証をする
- Railsでいう```devise-token-auth```
https://github.com/lynndylanhurley/devise_token_auth

https://readouble.com/laravel/9.x/ja/sanctum.html

## passport

- APIへの認可とトークンの発行をしてくれる
- 作ってるサービスのログイン(認証)機能をつくるときに使う
（例えば、作成してるサービスのログイン機能を他サービスでのログインでも使えるようにするイメージ）
- Railsでいう```doorkeeper```
https://github.com/doorkeeper-gem/doorkeeper

https://readouble.com/laravel/9.x/ja/passport.html
Qiita下書きがいくつあると嬉しいか

Qiitaで記事の間違いや、改良に気が付いて、20記事くらい修正していると、
新たな投稿ができなくなる。

20200524追記。16新しい記事を投稿しても出た。

<img width="419" alt="hindo.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51423/cfeb2d95-d372-955d-4068-4a4b1e941d1e.png">

そんな時、慌てず、騒がず、新たな投稿がしたければ、下書きを編集すればよい。

少し前の版のシステムでは、下書きは１０個までだった。

現在は、下書きが１０個以上保存しておけるらしい。

そこで、「下書き」とだけ表題に書いた下書きを十数個作っておけば、いざという時に役立つかもしれない。

![下書き.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51423/483b4834-0f7a-91c8-7537-96fb3b459ee8.png)

システムの仕様、システムの制約をどう決めたところで、
利用者は、利用者の自身の目的に照らして、適切に対応することが大事だろう。

システム側が、いろんな想定をしても、利用者はその想定の範囲を超えて新しい世界を作ろうとする。

これまで、下書きが１０個でも特に困らなかった。
１日で、記事は10個くらいが上限だったから。

多い日は２０くらい書いた日もあるだろう。

amazon, booklog, bookmekerに感想などを挙げるのは、
だいたい上限が３０くらい。

国会図書館で貸し出しを受けるのに、書籍だと同時に３冊。
過去に読んだことがある本なら、ざっとながめて、大事なことを思い出し、
記事にするのがだいたい１０分くらい。
３冊で３０分。

その前に次に借りる本を予約しておくと、ちょうど、描き終わった頃に次の本の貸し出しを受けることができる。

最大、１日６０冊くらいは貸し出しを受けることができるかもしれない。
はじめて見る資料は20分から１時間くらい拝見するかもしれない。
そんなわけで、だいたい３０冊くらいになる感じ。

Qiitaにも投稿しようとすると、amazon, booklog, bookmekerでの感想で投稿する文字数では不十分だから、結局、Qiitaにも投稿するのは１日３０記事が上限かもしれない。

３０記事あげる人、３０記事修正する日がおなじとは限らず、
結果、１０記事あげられれば、そんなに不便は感じない。

本文空の下書きは１０個作っておくとよいかも。

# 参考資料

丸１日Qiitaが新規編集させてくれなかった時にやった事。Qiita(30)

https://qiita.com/kaizen_nagoya/items/4bfcce24f208cbd6718b

楽しいQiitaの使い方　壁１０罠6つ技7つ。Qiita(29)

https://qiita.com/kaizen_nagoya/items/7828d0b1d47ad21b45c6
【Flutter】Rowの中にColumnを入れ子にする

## はじめに
FlutterでRowの中にColumnを入れ子にして使用したところ、
Columnの位置がずれるという現象が起きたので備忘です。
本当にしょうもないところで詰まっていました。

## 目指したい姿
<img width="400" alt="mojikyo45_640-2.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2529362/2724a249-4e35-af2e-4b70-2ff77412fc6b.png">

## ずれた状態
<img width="400" alt="mojikyo45_640-2.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2529362/151a8dd2-1cfd-4397-f85f-edfc68382eea.png">

### ソース
```dart
body: Container(
  margin: EdgeInsets.symmetric(vertical: 16.0, horizontal: 48.0),
  height: 80,
  child: Row(
    children: [
      const SizedBox(width: 48, height: 48, child: Card(color: Colors.black,),),
      const SizedBox(width: 24),
      Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            const SizedBox(width: 36, height: 12, child: Card(color: Colors.blue,),),
            const SizedBox(width: 72, height: 36, child: Card(color: Colors.red,),),
          ]
      ),
      const SizedBox(width: 24),
      Expanded(
        child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              const SizedBox(width: 36, height: 12, child: Card(color: Colors.blue,),),
              const SizedBox(width: 72, height: 36, child: Card(color: Colors.red,),),
            ]
        ),
      ),
      ElevatedButton(
        child: const Text('ボタン'),
        style: ElevatedButton.styleFrom(
          primary: Colors.green,
          onPrimary: Colors.white,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(10),
          ),
        ),
        onPressed: () {},
      ),
    ],
  ),
),
```

## 原因
<img width="400" alt="mojikyo45_640-2.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2529362/af70ff62-7dc5-6769-fd34-ceac3c44ad7f.png">

Rowの中の要素はデフォルトで縦方向に中央寄せとなっている。  
しかし、Rowの中のColumnの中の要素はデフォルトで縦方向に上寄せとなっている。


## 解決策
Rowの中のColumnの中の要素を縦方向に中央寄せにする。

```diff_dart
body: Container(
  margin: EdgeInsets.symmetric(vertical: 16.0, horizontal: 48.0),
  height: 80,
  child: Row(
    children: [
      const SizedBox(width: 48, height: 48, child: Card(color: Colors.black,),),
      const SizedBox(width: 24),
      Column(
          crossAxisAlignment: CrossAxisAlignment.start,
+         mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const SizedBox(width: 36, height: 12, child: Card(color: Colors.blue,),),
            const SizedBox(width: 72, height: 36, child: Card(color: Colors.red,),),
          ]
      ),
      const SizedBox(width: 24),
      Expanded(
        child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
+           mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const SizedBox(width: 36, height: 12, child: Card(color: Colors.blue,),),
              const SizedBox(width: 72, height: 36, child: Card(color: Colors.red,),),
            ]
        ),
      ),
// ...省略
```
PHP 文字列検索 str_contains()

# 概要

- PHPの文字列検索組み込み関数のstr_contains()を簡単にまとめる。

# 前提

- 筆者は下記を用いて動作確認を行った。
    - [https://paiza.io/ja](https://paiza.io/ja)

# 組み込み関数 str_contains()

- 公式ドキュメント
    - [str_contains](https://www.php.net/manual/ja/function.str-contains.php)
- 検索対象文字列内に検索文字列が存在するかの確認
- 戻り値
    - 検索対象文字列内に検索文字列が存在する： trueを返却
    - 検索対象文字列内に検索文字列が存在しない： falseを返却
- 例

    ```php
    str_contains(検索対象文字列, 検索文字列);
    ```

- 実例

    ```php
    <?php
    
    $str = 'hoge/fuga/piyo';
    
    $result = str_contains($str, 'fuga');
    
    // trueが出力される
    var_dump($result);
    ```
Specification of Floating Point Interpolation Routines, No.398, AUTOSAR R21-11(127) CP

Specification of Floating Point Interpolation Routines, No.398, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_IFLLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|DET| Default Error Tracer
|ROM |Read only memory
|hex| Hexadecimal
|Rev |Revision
|f32| Mnemonic for the float32, specified in AUTOSAR_SWS_PlatformTypes
|IFL |Interpolation Floating point Library
|Mn |Mnemonic
|Lib| Library
|s16| Mnemonic for the sint16, specified in AUTOSAR_SWS_PlatformTypes
|s32 |Mnemonic for the sint32, specified in AUTOSAR_SWS_PlatformTypes
|s8 |Mnemonic for the sint8, specified in AUTOSAR_SWS_PlatformTypes
|u16 |Mnemonic for the uint16, specified in AUTOSAR_SWS_PlatformTypes
|u32 |Mnemonic for the uint32, specified in AUTOSAR_SWS_PlatformTypes
|u8 |Mnemonic for the uint8, specified in AUTOSAR_SWS_PlatformTypes

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] IFL_RecordLayout_Blueprint
AUTOSAR_MOD_IFL_RecordLayout_Blueprint.arxml
[2] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[3] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
Specification of Bit Handling Routines, No.399, AUTOSAR R21-11(126) CP

Specification of Bit Handling Routines, No.399, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_BFXLibrary.pdf

AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)
|Term|Description|
|:--|:--|
|Bfx |Short name for Bitfield functions for fixed point
|u8 |Short name for uint8, specified in AUTOSAR_SWS_PlatformTypes
|u16| Short name for uint16, specified in AUTOSAR_SWS_PlatformTypes
|u32|Short name for uint32, specified in AUTOSAR_SWS_PlatformTypes
|s8| Short name for sint8, specified in AUTOSAR_SWS_PlatformTypes
|s16 |Short name for sint16, specified in AUTOSAR_SWS_PlatformTypes
|s32 |Short name for sint32, specified in AUTOSAR_SWS_PlatformTypes
|boolean| Boolean data type, specified in AUTOSAR_SWS_PlatformTypes
|DET |Default Error Tracer


## 英日
日本語は仮訳

T.B.D.

# 参考(reference)
[1] Glossary, AUTOSAR_TR_Glossary
https://www.autosar.org/fileadmin/standards/foundation/21-11/AUTOSAR_TR_Glossary.pdf
[2] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[3] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[4] Requirements on Libraries
AUTOSAR_SRS_Libraries
Specification of Fixed Point Math Routines, No.394, AUTOSAR R21-11(125) CP

Specification of Fixed Point Math Routines, No.394, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_MFXLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|Abs |Absolute value
|AbsDiff| Absolute value of a difference
|Add |Addition
|AR| Autosar
|BSW| Basic Software
|DET| Default Error Tracer
|Div |Division
|DivShLeft| Combination of division and shift left
|ECU |Electronic Control Unit
|Limit |Limitation routine
|Max| Maximum
|MFX/Mfx |Math - Fixed Point library
|Min| Minimum
|Minmax| Limitation with only one value for min and max
|Mod| Modulo routine
|Mul| Multiplication
|MulDiv |Combination of multiplication and division
|MulShRight |Combination of multiplication and shift right
|s16| Mnemonic for the sint16, specified in AUTOSAR_SWS_PlatformTypes
|s32| Mnemonic for the sint32, specified in AUTOSAR_SWS_PlatformTypes
|s8| Mnemonic for the sint8, specified in AUTOSAR_SWS_PlatformTypes
|Sub| Subtraction
|SWS| Software Specification
|u16| Mnemonic for the uint16, specified in AUTOSAR_SWS_PlatformTypes
|u32 |Mnemonic for the uint32, specified in AUTOSAR_SWS_PlatformTypes
|u8| Mnemonic for the uint8, specified in AUTOSAR_SWS_PlatformTyp

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)

[1] Glossary, AUTOSAR_TR_Glossary
https://www.autosar.org/fileadmin/standards/foundation/21-11/AUTOSAR_TR_Glossary.pdf
[2] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[3] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[4] General Requirements on Basic Software Modules
AUTOSAR_SRS_BSWGeneral
[5] Requirements on Libraries
AUTOSAR_SRS_Libraries
【Laravel】 独自のカスタムコマンドを作成したときのテスト

## 環境
Laravel v9.5.1 (PHP v8.1.3)

## 独自のカスタムコマンドを作成したときのテスト
下記コマンドを作成。
```
php artisan command:sample
```

```php
<?php

namespace App\Console\Commands;

class SampleSchedule extends Command
{
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected $signature = 'command:sample';

  /**
   * The console command description.
   *
   * @var string
   */
  protected $description = 'sample';

  /**
   * Execute the console command.
   *
   * @return int
   */
  public function handle()
  {
   // コマンドを実行したときの処理
  }
}
```

```$this->artisan('command:sample')```でコマンドを即時実行できる。

```tests/Feature/CommandTest.php
// テストデータ用意
...

// コマンド実行
$this->artisan('command:sample')->assertSuccessful();

// コマンド実行後の結果
...
```

## 参考

https://readouble.com/laravel/9.x/ja/console-tests.html

https://readouble.com/laravel/9.x/ja/artisan.html?header=%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E8%25A8%2598%25E8%25BF%25B0
Specification of Floating Point Math Routines, No.397, AUTOSAR R21-11(124) CP

Specification of Floating Point Math Routines, No.397, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_MFLLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|abs |Absolute value
|Lib |Library
|DET |Default Error Tracer
|f32| Mnemonic for the float32, specified in AUTOSAR_SWS_PlatformTypes
|Limit| Limitation routine
|max |Maximum
|MFL |Mathematical Floating point Library
|min| Minimum
|Mn |Mnemonic
|s16| Mnemonic for the sint16, specified in AUTOSAR_SWS_PlatformTypes
|s32| Mnemonic for the sint32, specified in AUTOSAR_SWS_PlatformTypes
|s8| Mnemonic for the sint8, specified in AUTOSAR_SWS_PlatformTypes
|u16 |Mnemonic for the uint16, specified in AUTOSAR_SWS_PlatformTypes
|u32| Mnemonic for the uint32, specified in AUTOSAR_SWS_PlatformTypes
|u8 |Mnemonic for the uint8, specified in AUTOSAR_SWS_PlatformTypes
|boolean |Boolean data type, specified in AUTOSAR_SWS_PlatformTypes

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)
[1] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[2] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
Specification of Fixed Point Interpolation Routines, No.396, AUTOSAR R21-11(123) CP

Specification of Fixed Point Interpolation Routines, No.396, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_IFXLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|Cur| Curve for Interpolation
|DET| Default Error Tracer
|DPSearch |Data point search
|DPResult| Data point result
|Ifx| Interpolation Fixed point
|IpoCur| Interpolation of curve used for distributed search and interpolation
|LkUpCur| Curve look-up used for distributed search and interpolation
|IpoMap |Interpolation of map used for distributed search and interpolation
|LkUpMap |Map look-up used for distributed search and interpolation
|IntIpoCur| Integrated interpolation of curve
|IntLkUpCur| Integrated curve look-up
|IntIpoFixCur| Integrated interpolation of fixed curve
|IntLkUpFixCur |Integrated fixed curve look-up
|IntIpoFixICur| Integrated interpolation of fixed interval curve
|IntLkUpFixICur |Integrated fixed interval curve look-up
|IntIpoMap |Integrated interpolation of map
|IntLkUpMap |Integrated map look-up
|IntIpoFixMap|Integrated interpolation of fixed map
|IntLkUpFixMap| Integrated fixed map look-up
|IntIpoFixIMap |Integrated interpolation of fixed interval map
|IntLkUpFixIMap| Integrated fixed interval map look-up
|Lib |Library
|Map |Map for Interpolation
|s8| Mnemonic for the sint8, specified in AUTOSAR_SWS_PlatformTypes
|s16| Mnemonic for the sint16, specified in AUTOSAR_SWS_PlatformTypes
|s32| Mnemonic for the sint32, specified in AUTOSAR_SWS_PlatformTypes
|u8 |Mnemonic for the uint8, specified in AUTOSAR_SWS_PlatformTypes
|u16| Mnemonic for the uint16, specified in AUTOSAR_SWS_PlatformTypes
|u32 |Mnemonic for the uint32, specified in AUTOSAR_SWS_PlatformTypes

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)
[1] Glossary,AUTOSAR_TR_Glossary
https://www.autosar.org/fileadmin/standards/foundation/21-11/AUTOSAR_TR_Glossary.pdf
[2] IFX_RecordLayout_Blueprint
AUTOSAR_MOD_IFX_RecordLayout_Blueprint.arxml
[3] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[4] ASAM MCD-2MC Version 1.6
http://www.asam.net
[5] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[6] Requirements on Libraries
AUTOSAR_SRS_Libraries
Specification of CRC Routines, No.16, AUTOSAR R21-11(122) CP

Specification of CRC Routines, No.16, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_CRCLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term| Description|
|:--|:--|
|CRC |Cyclic Redundancy Check
|ALU|Arithmetic Logic Unit

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)
[1] Glossary
AUTOSAR_TR_Glossary
[2] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[3] General Requirements on Basic Software Modules
AUTOSAR_SRS_BSWGeneral
[4] Requirements on Libraries
AUTOSAR_SRS_Libraries
[5] ITU-T Recommendation X.25: Interface between Data Terminal Equipment (DTE)
and Data Circuit-terminating Equipment (DCE) for terminals operating in the
packet mode and connected to public data networks by dedicated circuit
http://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-X.25-199610-I!!PDFE&type=items
[6] 32-bit cyclic redundancy codes for Internet applications
[7] Listing of CRCs, including CRC-64-ECMA
https://en.wikipedia.org/wiki/Cyclic_redundancy_check
[8] Layered Software Architecture
AUTOSAR_EXP_LayeredSoftwareArchitecture
[9] Specification of ECU Configuration
AUTOSAR_TPS_ECUConfiguration
[10] List of Basic Software Modules
AUTOSAR_TR_BSWModuleList
Specification of Extended Fixed Point Routines, No.400, AUTOSAR R21-11(121) CP

Specification of Extended Fixed Point Routines, No.400, 2021-11

https://www.autosar.org/fileadmin/standards/classic/21-11/AUTOSAR_SWS_EFXLibrary.pdf


AUTOSAR R21-11記事一覧はこちら。

AUTOSAR 21-11, 120文書読んだ。2022年5月末に半分到達予定。

https://qiita.com/kaizen_nagoya/items/4043e8414f850ce266a4

AUTOSAR R21-11(0) 仕様ダウンロード一覧。単語帳。参考文献資料作成

https://qiita.com/kaizen_nagoya/items/9b3a1b9b8d1e8d7e288e

# 用語(terms)

|Term|Description|
|:--|:--|
|Arcsin| Inverse Sine
|Arccos| Inverse Cosine
|BSW |Basic Software
|Cos |Cosine
|DET |Default Error Tracer
|EFX |Extended Mathematical library - Fixed point
|Hypot |Hypotenuse
|HpFilter| High pass filter
|LpFilterFac1|Low pass filter with a factor of 1 (included in [0, 1])
|LpFilter |Low pass filter
|Mn |Mnemonic
|Lib |Library
|Sqrt |Square root
|Sin| Sine
|SWS |Software Specification
|SRS |Software Requirement Specification
|u8| Mnemonic for the uint8, specified in AUTOSAR_SWS_ PlatformTypes
|u16| Mnemonic for the uint16, specified in AUTOSAR_SWS_ PlatformTypes
|u32 |Mnemonic for the uint32, specified in AUTOSAR_SWS_ PlatformTypes
|s8 |Mnemonic for the sint8, specified in AUTOSAR_SWS_PlatformTypes
|s16 |Mnemonic for the sint16, specified in AUTOSAR_SWS_ PlatformTypes
|s32 |Mnemonic for the sint32, specified in AUTOSAR_SWS_ PlatformTypes
|s64 |Mnemonic for the sint64, specified in AUTOSAR_SWS_ PlatformTypes
|u64| Mnemonic for the uint64, specified in AUTOSAR_SWS_ PlatformTypes

## 英日
日本語は仮訳

T.B.D.

# 参考(reference)
[1] Glossary,AUTOSAR_TR_Glossary
https://www.autosar.org/fileadmin/standards/foundation/21-11/AUTOSAR_TR_Glossary.pdf
[2] ISO/IEC 9899:1990 Programming Language - C
http://www.iso.org
[3] General Specification of Basic Software Modules
AUTOSAR_SWS_BSWGeneral
[4] Requirements on Libraries
AUTOSAR_SRS_Libraries

 ＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞

# 文書履歴(document history)
ver. 0.01 初稿 　20220523
ver. 0.02 URL追記　20230121
Jestでuuidを固定してテストしたい


## はじめに
Jestでuuidを含むテストコードを書く際に、uuidが毎回違う値が生成されてしまうため、固定する必要があったのでその方法を整理しました。

## 結論

以下コードにより、uuidを固定してテストができます。
以下の例だと、uuidを123と固定してテストを実施できます。

```js
import * as uuid from "uuid"; 
jest.mock("uuid"); 
describe("someTest", () => {
   const uuidSpy = jest.spyOn(uuid, "v4");
   uuidSpy.mockReturnValue("123");
}
```

## 参考

https://dev.classmethod.jp/articles/mocking-uuid-generation-in-jest/
https://stackoverflow.com/questions/51383177/how-to-mock-uuid-with-jest