OmniAICreator/Qiita-1.07M huggingface dataset:
gitlab CE(docker版)を自宅のubuntuPCにインストールする


## gitlab について

もはや有名すぎるのでURL貼るだけで詳細説明は省略
https://about.gitlab.com/ja-jp/

## gitlab CE(docker版)を起動する手順

https://gitlab-docs.creationline.com/ee/install/docker.html
https://docs.gitlab.com/ee/install/docker.html

```
export GITLAB_HOME=$HOME/gitlab_home  # 任意のディレクトリ指定
sudo docker pull gitlab/gitlab-ce:latest
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
```

このあと、ブラウザから`localhost:80`にログインすればOK
（もし80-->8080にポートフォワードしていたら8080を指定する）

## 初回ログイン

以下を参照

>[GitLab Docker images](https://docs.gitlab.com/ee/install/docker.html)
>Visit the GitLab URL, and log in with username root and the password from the following command:
>sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

上記が完了したら、以下を行う
・管理者アカウント作成
・プロジェクト用アカウント作成
・リポジトリ作成～以降はよしなに使用する

## `Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use.`

`Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use.`

--> port22が他のアプリ等によって使われているため、別portを使うように変更するとよい


## `Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error`

`Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error`というエラーが出る場合は、以下を参照して解決する
[Require administrator approval for new sign ups](https://docs.gitlab.com/ee/user/admin_area/settings/sign_up_restrictions.html#require-administrator-approval-for-new-sign-ups)

To require administrator approval for new sign ups:

>On the top bar, select Menu > Admin.
>On the left sidebar, select Settings > General, and expand Sign-up restrictions.
>Select the Require admin approval for new sign-ups checkbox, then select Save changes.

## gitlab EE CEの違い

GitLab EEの有料の機能を使う予定がある場合は、GitLab EEを選択すると良さそう。
GitLab EEの有料の機能を使う予定が全くない場合は、GitLab CEを選択すると良さそう。

> https://www.gitlab.jp/install/ce-or-ee/
GitLab EEの有料の機能を使用可能にするためには、ライセンスを購入する必要があります。 もしもライセンスが未登録のGitLab EEを使用している場合は、MITライセンスの無料の機能だけを使用していることになります。
つまり、GitLab EEをインストールしてライセンスを未登録のまま使用することと、GitLab CEをインストールして使用することに表面的な違いはありません。

## gitlab CE のインストール方法

>[Install GitLab with Docker](https://gitlab-docs.creationline.com/ee/install/docker.html)
>Installing GitLab Community Edition
GitLab CE Docker image
To install the Community Edition, replace ee with ce in the commands on this page.

# 参考
[GitLab日本語ドキュメント](https://gitlab-docs.creationline.com/)
[Install GitLab with Docker](https://gitlab-docs.creationline.com/ee/install/docker.html)
[GitLab日本語情報サイト](https://www.gitlab.jp/)
[知って「おっ！」てなったGitLabの知識7選](https://qiita.com/jumpyoshim/items/d5a63bdd3681843866f8)
[GithubでのWeb上からのマージの仕方3種とその使いどころ](https://qiita.com/ko-he-8/items/94e872f2154829c868df)
Ubuntu 20.04にOpenJDK 11をインストール（Microsoft Build）

# はじめに

Microsoft Build of OpenJDKを利用してUbuntu 20.04にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Install the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/install)

## サポート

本手法で導入した場合、[Support roadmap for the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/support#release-and-servicing-roadmap)より、2024-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

# apt-get update; apt-get -y install wget lsb-release
# ubuntu_release=`lsb_release -rs`
# wget https://packages.microsoft.com/config/ubuntu/${ubuntu_release}/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# dpkg -i packages-microsoft-prod.deb

# apt-get install apt-transport-https
# apt-get update
# apt-get install -y msopenjdk-11
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Microsoft-27990 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Microsoft-27990 (build 11.0.13+8-LTS, mixed mode)
```
curl実行時に`Failed writing body...`とエラーが出力される場合の解決策

`curl`実行時に`Failed writing body...`とエラーが出力される場合の解決策

```
$ curl xxx...
 Failed writing body
```

http bodyを何かしらの理由でwrite失敗している様子。以下のいずれかが原因である可能性がある

```
1. curl実行時のオプション間違い
2. curl実行後にPIPE渡ししている先の処理が間違い
3. curl -o xxx で指定している出力先のディスク容量が限界に達している (df -hで確認)
4. curl -o xxx で指定している出力先へのwrite権限がない（ls -l でディレクトリオーナを確認する）
```

自分がエラー日引いた時は`4.`が該当していたようで、権限を更新して解決した

# 参考
[Why does cURL return error "(23) Failed writing body"?](https://stackoverflow.com/questions/16703647/why-does-curl-return-error-23-failed-writing-body)
[MacにNode.jsをダウンロードする際に「Warning: Failed to create the file ... curl: (23) Failed writing body (0 != 847)」というエラー](https://saneeeatsu.hatenablog.com/entry/nodejs-install-erro)
[【jqコマンド】selectで(23) Failed writing bodyというエラーが出る](https://www.setouchino.cloud/blogs/13)
docker DooDを試す

## DooDについて

Docker outside of Docker の略、Dockerコンテナ内からDockerを使う
コンテナ内からdockerを使うプラクティスは、DinD, DooDと２通りあるらしいが、今回はDooDを試す。

## docker install

以下を参照してインストールする。
DooDする場合は、Dockerfileに以下を記載するとよい。

> [Docker Engine インストール（Ubuntu 向け）](https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/ubuntu/)

```
sudo apt-get update -y
sudo apt-get install ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```

## DooD のために sock mount する

DooD のために`docker run`時に以下のオプションを付与してdockerを起動させる
` -v /var/run/docker.sock:/var/run/docker.sock`の部分がポイント。（container_nameは任意のDockerコンテナ名）

```
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock container_name /bin/bash
```


起動させた後、以下のコマンドによりDooDできているかどうか確かめる。
ホスト側と同じ結果が出力されればOK

```
docker exec -it container_name bash -c "docker images"
```

## 以下は実際の運用では避けた方がいい

dockerインストール済のホスト環境の`/usr/bin`をDooD時用のdocker起動時にmountする事でdockerコマンド自体は確認可能と思うが、
そもそも/usr/binは他バイナリも含まれているので、実環境での運用は避けた方がよい。

```
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin:/usr/bin container_name /bin/bash
```

# 参考
[コンテナからコンテナを操作する](https://blog.nijohando.jp/post/docker-in-docker-docker-outside-of-docker/)
[Docker in Docker、Docker outside of Docker（ソケットファイルの共有）を試す](https://kazuhira-r.hatenablog.com/entry/2021/07/22/204449)
[Docker Engine インストール（Ubuntu 向け）](https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/ubuntu/)
PHP ファイルパスからファイル名や拡張子を取得する関数

# 目的

- ファイルパスかラファイル名や拡張子を取得する`pathinfo()`関数の使い方をメモ的にまとめる

# 謝辞

- 本知見は筆者が記載した記事[PHP ファイルパスやURLからファイル名や拡張子等を取得する](https://qiita.com/miriwo/items/35e76cc255788b618ad0)にコメントを下さった @s9er7 様のご知見です。
- この場を借りて改めて感謝致します！コメントを下さり本当にありがとうございます！

# 情報

- 筆者は下記サービスを用いて今回の記事内容の動作確認を行った。
    - [https://paiza.io/ja](https://paiza.io/ja)

# 方法

1. PHPのファイルシステム関数の一種である`pathinfo()`を用いる。
1. 下記の様に記載することでファイルパスの各情報を配列で返してくれる。

    ```php
    pathinfo(ファイルパス);
    ```

1. 例えば`/etc/nginx/conf.d/default.conf`というファイルパスを渡すと下記の様に「dirname」「basename」「extension」「filename」を配列で返してくれる。

    ```php
    <?php

    $filePath = '/etc/nginx/conf.d/default.conf';
    var_dump(pathinfo($filePath));    
    //array(4) {
    //  ["dirname"]=>
    //  string(17) "/etc/nginx/conf.d"
    //  ["basename"]=>
    //  string(12) "default.conf"
    //  ["extension"]=>
    //  string(4) "conf"
    //  ["filename"]=>
    //  string(7) "default"
    //}
    ```

1. また、当該の関数の第二引数に任意のフラグを渡すことで特定の値を返すこともできる。

    ```php
    pathinfo(ファイルパス, フラグ);
    ```

1. 例えば`/etc/nginx/conf.d/default.conf`というファイルパスの拡張子込みのファイル名を返してほしい場合は下記の様に指定する。

    ```php
    $filePath = '/etc/nginx/conf.d/default.conf';
    var_dump(pathinfo($filePath, PATHINFO_BASENAME));
    // string(12) "default.conf"と出力される。 
    ```

1. フラッグを指定することでその他にもディレクトリ、拡張子、拡張子なしのファイル名だけを返す事ができる。

    | 返す値 | フラッグ |
    | --- | --- |
    | ディレクトリ | PATHINFO_DIRNAME |
    | ファイル名（拡張子込） | PATHINFO_BASENAME |
    | ファイル名 | PATHINFO_FILENAME |
    | 拡張子 | PATHINFO_EXTENSION |

1. 実際に実行すると下記のようになる。

    ```php
    $filePath = '/etc/nginx/conf.d/default.conf';
    var_dump(pathinfo($filePath, PATHINFO_DIRNAME));
    //string(17) "/etc/nginx/conf.d" と表示される
    
    var_dump(pathinfo($filePath, PATHINFO_BASENAME));
    //string(12) "default.conf" と表示される
    
    var_dump(pathinfo($filePath, PATHINFO_FILENAME));
    //string(7) "default" と表示される
    
    var_dump(pathinfo($filePath, PATHINFO_EXTENSION));
    //string(4) "conf" と表示される
    ```

# 注意事項

- ファイルパスに複数の拡張子が含まれる場合`PATHINFO_EXTENSION`最後の拡張子を返す。
- ファイルパスに拡張子がない場合、extensionキーは返されない

    ```php
    $filePath = '/etc/nginx/conf.d/default';
    var_dump(pathinfo($filePath));
    //array(3) {
    //  ["dirname"]=>
    //  string(17) "/etc/nginx/conf.d"
    //  ["basename"]=>
    //  string(7) "default"
    //  ["filename"]=>
    //  string(7) "default"
    //}

    $filePath = '/etc/nginx/conf.d/default';
    var_dump(pathinfo($filePath, PATHINFO_EXTENSION));
    // string(0) "" のように空文字が返される。
    ```

- ファイルパスのベースネーム部分が`.`で始まっている場合はそれに続く文字列は拡張子としてみなされる。

# あとがき

- パスの最後の名前部分を返すだけなら[basename](https://www.php.net/manual/ja/function.basename.php)でいいのかも知れない。

# 参考文献

- [pathinfo](https://www.php.net/manual/ja/function.pathinfo.php)
docker login 時の username/passwordをオプション指定する

docker login 時の username/passwordをオプション指定する

以下を参考にすればOK

> https://docs.docker.jp/engine/reference/commandline/login.html

```
login

使い方: docker login [オプション] [サーバ]

Docker レジストリ・サーバに登録またはログインする
サーバの指定が無ければデフォルトで "https://index.docker.io/v1/" を使用

  -e, --email=""       メールアドレス
  --help               使い方の表示
  -p, --password=""    パスワード
  -u, --username=""    ユーザ名
```
CentOS 7にOpenJDK 17をインストール（Microsoft Build）

# はじめに

Microsoft Build of OpenJDKを利用してCentOS7にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Install the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/install)

## サポート

本手法で導入した場合、[Support roadmap for the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/support#release-and-servicing-roadmap)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

# rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# yum install -y msopenjdk-17
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment Microsoft-26987 (build 17+35)
OpenJDK 64-Bit Server VM Microsoft-26987 (build 17+35, mixed mode, sharing)
```
CentOS 7にOpenJDK 11をインストール（Microsoft Build）

# はじめに

Microsoft Build of OpenJDKを利用してCentOS7にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Install the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/install)

## サポート

本手法で導入した場合、[Support roadmap for the Microsoft Build of OpenJDK \| Microsoft Docs](https://docs.microsoft.com/en-us/java/openjdk/support#release-and-servicing-roadmap)より、2024-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

# rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# yum install -y msopenjdk-11
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Microsoft-27990 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Microsoft-27990 (build 11.0.13+8-LTS, mixed mode)
```
確率変数の変数変換についてメモ

統計準一級のリベンジを狙ってます。ko_ya346です。  
来年2月くらいに受験したく、統計学実践ワークブックを使ってちみちみ学習を進めています。  

[https://www.amazon.co.jp/%E6%97%A5%E6%9C%AC%E7%B5%B1%E8%A8%88%E5%AD%A6%E4%BC%9A%E5%85%AC%E5%BC%8F%E8%AA%8D%E5%AE%9A-%E7%B5%B1%E8%A8%88%E6%A4%9C%E5%AE%9A%E6%BA%961%E7%B4%9A%E5%AF%BE%E5%BF%9C-%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%AE%9F%E8%B7%B5%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-%E6%97%A5%E6%9C%AC%E7%B5%B1%E8%A8%88%E5%AD%A6%E4%BC%9A/dp/478060852X:embed:cite]

この本、統計準一級の広範な分野を網羅していて非常にありがたいのですが、第三章冒頭の変数変換の説明が分からず、いつもふんわり理解でスルーしていました。  

なのでこの記事で、変数変換についてしっかり理解したいなと思っています。  

なお、本記事はこちらの資料を大いに参考にしています。（大変分かりやすかったです。ありがとうございます！）
[https://ocw.u-tokyo.ac.jp/lecture_files/engin_05/2/notes/ja/ishikawa2.pdf]


# 問題

> 
とある確率変数$X$とその確率密度関数$f(x)$があります。  
このとき、
$$
Y = \phi (X)
$$
という確率変数$Y$を導入すると、その確率密度関数$g(y)$はどのような関数になるでしょうか？

 
まず、$X$で表しても$Y$で表しても確率は変わりません。よって、  

$$
P(x \lt X \lt x + \delta x) = P(y \lt Y \lt y + \delta y) \qquad(1)
$$

です。  
両辺の確率はそれぞれ、

$$
P(x \lt X \lt x + \delta x) = \int^{x+\delta x}_{x}f(x')dx'
$$

$$
P(y \lt Y \lt y + \delta y) = \int^{y+\delta y}_{y}gG(y')dy'
$$

で求めることができます。  
ここで$x', y'$という文字が出てきましたが、積分範囲の文字と区別したいので$'$を付けているだけです。  

さて、この積分を愚直に計算していきましょう。  

$$
\int^{x+\delta x}_{x}f(x')dx' = F(x+\delta x) - F(x)
$$

$$
\int^{y+\delta y}_{y}g(y')dy' = G(y+\delta y) - G(y)
$$

これを(1)式に代入し、

$$
F(x+\delta x) - F(x) = G(y+\delta y) - G(y) \qquad (2)
$$

を得ます。

ここで、

$$
\lim_{\delta x \rightarrow 0} \frac{F(x+\delta x) - F(x)}{\delta x} = f(x)
$$

という微分の定義式を使うと、上で求めた積分式を確率密度関数に変換できそうです。  
(2)式の両辺を$\delta x \delta y$で割り、   

$$
\frac{F(x+\delta x) - F(x)}{\delta x \delta y} = \frac{G(y+\delta y) - G(y)}{\delta x \delta y} 
$$

確率密度関数に変換すると、

$$
\frac{f(x)}{\delta y} = \frac{g(y)}{\delta x} 
$$

$$
g(y) = f(x)\frac{\delta x}{\delta y} = f(x)(\frac{\delta y}{\delta x})^{-1} = f(x)(\phi'(x))^{-1}  \qquad (3)
$$


となり、確率変数$Y$の確率密度関数が求まりました。

# 例題を解いてみる
> 確率変数$X$が $N(0, 1) $に従うとき、$Y=2X+3$である確率変数$Y$の確率密度関数を求めよ。

$$
Y = \phi(X) = 2X+3
$$

$$
X = \frac{Y-3}{2}
$$


$$
\phi '(X) = 2
$$

$$
f(x) = \frac{1}{\sqrt{2 \pi}}e^{-\frac{x^2}{2}}
$$

これらを(3)に代入して、  

$$
g(y) = \frac{1}{2\sqrt{2 \pi}}e^{-\frac{1}{2}(\frac{y-3}{2})^2}
$$

が解となります。
大井競馬は本当に荒れるのか南関東競馬5年分のデータでバトルさせてデータ分析してみた

# 結論、大井は荒れます。単純に配当が高い。
- レース数(平均を取った母数)

|  開催場所  |  レース数  |
| ---- | ---- |
|大井|5990|
|川崎|3474|
|船橋|3863|
|浦和|3291|

- 開催場別平均払戻のグラフ
  - [高知ファイナルの記事](https://qiita.com/dialoguedaisuki/items/37e7636d2158b84b3cec)を思い出す圧倒的な払い戻しの強さ 。

![nankan4PlaceVspng.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354194/b724dcfa-6b95-d552-3843-561cc5e6b5e1.png)

## 結論、内枠有利
- フルゲートがないにせよ、普通に右肩下がり。やはり、あからさま。


![ooiWakubanStats.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354194/0586a407-e3d9-6d2c-85d0-1845cde12e1d.png)


##　結論、1番人気は1着になる
- 1番人気が１着になる率の高さはどこも同じっぽい。
- 高知と見比べるとわかるが、2番人気が順当に2着になっている。
  - 競馬場ごとに特色があるのが面白い。
- 3着になるともはや波乱な感じがあるが、5番人気までを買っておけばアンパイくささはある。  

![ooiNinki.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354194/11582929-33c6-9a60-55ff-37a9cc91b874.png)

##馬場とかで出そうとしたけど飽きた
- 工事中
技適マークのSVGデータ

[Giteki]:https://www.tele.soumu.go.jp/j/sys/equ/tech/gitekimark/index.htm
[Inkscape]:https://inkscape.org/

技適マークのベクトル画像データが見つからなかったので、総務省の公開している [仕様][Giteki] に基づいて [Inkscape] でSVGの画像を作ってみました。
![技適マーク](https://raw.githubusercontent.com/aikige/svgSimpleImages/main/Icon/Giteki_Mark.svg)
[GitHub](https://github.com/aikige/svgSimpleImages/blob/main/Icon/Giteki_Mark.svg) にありますのでご自由にお使いください。

### 参考

* 総務省 &gt; [技適マークの表示の方法](https://www.tele.soumu.go.jp/j/sys/equ/tech/gitekimark/index.htm)
Ubuntu 20.04にOpenJDK 17をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してUbuntu 20.04にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2029-10がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

# apt-get update; apt install -y wget gnupg software-properties-common
# wget -O- https://apt.corretto.aws/corretto.key | apt-key add - 
# add-apt-repository 'deb https://apt.corretto.aws stable main'
# apt-get update; apt-get install -y java-17-amazon-corretto-jdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
```
Debian 10にOpenJDK 17をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してDebian10にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2029-10がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt-get update; apt install -y wget gnupg software-properties-common
# wget -O- https://apt.corretto.aws/corretto.key | apt-key add - 
# add-apt-repository 'deb https://apt.corretto.aws stable main'
# apt-get update; apt-get install -y java-17-amazon-corretto-jdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
```
Debian 11にOpenJDK 17をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してDebian11にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2029-10がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt-get update; apt install -y wget gnupg software-properties-common
# wget -O- https://apt.corretto.aws/corretto.key | apt-key add - 
# add-apt-repository 'deb https://apt.corretto.aws stable main'
# apt-get update; apt-get install -y java-17-amazon-corretto-jdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
```
Debian 11にOpenJDK 11をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してDebian11にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt-get update; apt install -y wget gnupg software-properties-common
# wget -O- https://apt.corretto.aws/corretto.key | apt-key add - 
# add-apt-repository 'deb https://apt.corretto.aws stable main'
# apt-get update; apt-get install -y java-11-amazon-corretto-jdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-11.0.13.8.1 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.13.8.1 (build 11.0.13+8-LTS, mixed mode)
```
Debian 11にOpenJDK 8をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してDebian11にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューション用の Amazon Corretto 8 のインストール手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-8-ug/generic-linux-install.html) 

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2026-05がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt-get update; apt install -y wget gnupg software-properties-common
# wget -O- https://apt.corretto.aws/corretto.key | apt-key add - 
# add-apt-repository 'deb https://apt.corretto.aws stable main'
# apt-get update; apt-get install -y java-1.8.0-amazon-corretto-jdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment Corretto-8.312.07.1 (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM Corretto-8.312.07.1 (build 25.312-b07, mixed mode)
```
【Javascript】文字列の結合をテンプレートリテラル で実現する方法

#テンプレート文字列とは
1.「+」の演算子を記述せずに、文字列の結合ができる
2.\nを記述しなくても複数行の出力ができる

以下では、標題の通り、文字列の結合に焦点を当てて話を進めていきます。

##テンプレート文字列を使用しない場合
```javascript
const str1 = 'アメリカ';
const str2 = '合衆国';
console.log(`僕は${str1}${str2}出身です`);// ->僕はアメリカ合衆国出身です
```
上記の通り、${変数名}を記述すれば「＋」演算子の記述が不要になる。
競プロ勢全員必見!! 効率を爆上げにしよう🔥

 
      
#紹介
今回は、
『競プロをもっと楽しく、簡単に』
その名も、『 Hisui 』-競技プログラミング支援ツール-

#概要
・a版ではありますしたが、完成度高いです
・Windows Mac対応
・デスクトップをに分割して、効率が爆上がりしました
・Coding
競技プログラミングに最適化されたエディター
VSCodeのエディターコアとして使われているMonacoEditorを採用
初めての方でも直感的に使うことができます

・Ranking
ランキング情報を直感的に見ることのできるダッシュボード
コンテスト中に必要な情報だけを選択して素早く確認することができます

・History
これまでにコンテスト中や過去問を解いた時に書いたコードを全て管理
コードをGithubといったサービスにあげてすぐに共有することもできます

その他にも、
・Test & Submit
・Generate testcase
・Add - on

#参考文献
https://adenohitu.github.io/Hisui-introduce/#editor-feature
AWS DBS合格記(2021/12/28投稿)

# はじめに
この度AWS認定のDBSを受験してきましたので、勉強した内容と受験した感想を書いておきます。
これから受験される方の参考になれば幸いです。

今回でAWS認定は８冠を達成しました。やったね！

* [2019-07-04 AWS Certified Cloud Practitioner](https://qiita.com/handy-dd18/items/c2b62ad58206e47f1345)
* [2019-07-24 AWS Certified Solutions Architect - Associate](https://qiita.com/handy-dd18/items/96a9f374a64663b10e24)
* 2021-02-25 AWS Certified Data Analytics - Specialty (DAS)
* [2021-07-23 AWS Certified Developer - Associate (DVA)](https://qiita.com/handy-dd18/items/33ba3e6cfa100903912c)
* [2021-10-26 AWS Certified SysOps Administrator - Associate (SOA)](https://qiita.com/handy-dd18/items/2ff92ea79de13c326656)
* [2021-11-13 AWS Certified Security - Specialty (SCS)](https://qiita.com/handy-dd18/items/803eadbcdabf0b9f8671)
* [2021-12-01 AWS Certified DevOps Engineer - Professional (DOP)](https://qiita.com/handy-dd18/items/3166f949b84bc15371a7)
* 2021-12-28 AWS Certified Database - Specialty (DBS) 　← 今回


# 前提
* AWS経験は２年と半年程度
* 普段はデータ分析系のサービスを使うことが多い
* 最近は業務でセキュリティ周りのこともやる機会が増えてきた
* DB系はほとんど使わない。Redshiftだけ触る
* コンテナ周りは少々触る


# 学習内容
今回は以下の順番で勉強を進めました。

* [①試験対策本（要点整理から攻略する『AWS認定 データベース-専門知識』）](https://www.amazon.co.jp/%E8%A6%81%E7%82%B9%E6%95%B4%E7%90%86%E3%81%8B%E3%82%89%E6%94%BB%E7%95%A5%E3%81%99%E3%82%8B%E3%80%8EAWS%E8%AA%8D%E5%AE%9A-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9-%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%80%8F-Compass-Books%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE-ebook/dp/B0936PSMXT)
* [②練習問題](https://amazonwebservices.benchprep.com/app/aws-certification-official-practice-question-sets-japanese#exams)
* [③Web問題集](https://aws.koiwaclub.com/)

DBSは今までの試験の中では一番勉強していないかもしれません。
逆に言えば、ちゃんと他のセキュリティやDevPro等の資格を取ってから受験すると最低限必要な知識があるので、練習問題などで実際の問題に慣れて、本で最小限の知識さえ身に着けておけば合格できるかもしれません。　
※個人の感想なので鵜呑みにはしないでください


## 試験対策本
セキュリティ試験の時にお世話になった資格対策本ですが、同じ著者の方々がデータベース試験の資格対策本も出版されていますので、まずはそちらで勉強しました。
前にも書いたかもしれませんが、自分はblackbeltを読むのが苦手なので、網羅的に必要なサービスを学べるこういう本はすごいありがたいです。
今回合格できたのはこの本のおかげと言っても過言じゃありません。

1週間ぐらいかけて一通り読んで、巻末の練習問題を正答率90%を超えるまで繰り返し解きました。
間違えたところは関連するところをサービス単位で読み返して、学習しなおしました。

受験してきて改めて見てみると、もう一歩踏み込んだ細かな機能(各サービスのユースケースごとの使い方等)を追加で勉強しておくと良いかもしれません。


## 練習問題
今回も公式から出ている無料の練習問題を利用しました。
問題数は20問と少ないですが、問題の正答と解説を読んで調べるだけでも学べることは多いので、受験するなら一回は受けてたほうが良いと思います。

尚、こちらも正答率９０%を超えるまで繰り返し解きました。


## Web問題集
あとはいつもどおり[koiwaclub](https://aws.koiwaclub.com/)の問題集を利用しました。

ただ、見て分かる通り他の試験に比べると練習問題は少なめで、前述した公式の練習問題も被っているところが多いので、解くなら1からではなく１１から降順にやっていったほうが良いかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/593e426f-a8b2-a36f-4de4-4304387c71e1.png)

これは時間の都合で1〜5までしか解いてませんでした。


# 受験した感想
正直結構難しかったです。
事前に調べてRDSやAurora周りが多いと書いてあったのですが、思わぬ機能やユースケースが出題されたので、ほぼ３時間使い切りました。
合格できたのは他の試験でAWS全体の知識が身についていたのと、日本語の読解力で選択肢を消していってある程度絞れたことが要因としては大きいと思います。
点数から見てもそれがなければ間違いなく落ちていました。

# 受験結果
スコアは771とギリギリでした。理由はわかりきっていますが、何とか合格してよかったです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/4d3c7fd2-f7cd-03ef-8ab2-b1747eb9ffa1.png)

# おわりに
Databaseも無事合格できたので次は年明けにネットワークでも狙おうかと思ってます。
そしてその次は鬼門のSAP(Betaじゃないやつ)を受験予定です。

できれば３月までにMLまで取りきりたいところです。
Web APIの設計　チェック項目

#はじめに
この記事で扱わないこと
・Web APIとは何か？
・HTTPについての説明や仕様

この記事で扱うこと
・エンドポイント（URI）の設計
・レスポンスデータの設計
・設計変更しやすいWeb APIの設計

#エンドポイントの設計
`原則：覚えやすくどんな機能を持つURIなのかが一目でわかる`

**短く入力しやすいURI**
**人間が読んで理解できるURI**
**小文字のみで構成されているURI**

```
https://api.github.com/users
```

***適切なHTTPメソッドを利用しているか***

```http
GET /users HTTP/1.1
Host: api.github.com
```

##リソースにアクセスするためのエンドポイントの設計の注意点
***複数形の名詞を利用する***
***URIで利用する単語は多くのAPIで同じ意味に利用されているものを選んでいるか***
***URI中にスペースやエンコードを必要とする文字が入っていないか***
***URI中の単語はハイフンで繋いでいるか***

```
https://api.github.com/users
```

#レスポンスデータの設計

###データフォーマット
基本的にはJSON形式

###データの内部構造
***レスポンスのデータ名はなるべく少ない単語数で表現しているか***
***レスポンスのデータ名として複数の単語を連結する場合、その連結方法はAPI全体を通じて統一しているか***
***レスポンスのデータ名として変な省略形を使用していないか***
***レスポンスのデータ名の単数系/複数形はデータの内容と合っているか***




```json
  {
    "login": "mojombo",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://avatars.githubusercontent.com/u/1?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/mojombo",
    "html_url": "https://github.com/mojombo",
    "followers_url": "https://api.github.com/users/mojombo/followers",
    "following_url": "https://api.github.com/users/mojombo/following{/other_user}",
    "gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/mojombo/subscriptions",
    "organizations_url": "https://api.github.com/users/mojombo/orgs",
    "repos_url": "https://api.github.com/users/mojombo/repos",
    "events_url": "https://api.github.com/users/mojombo/events{/privacy}",
    "received_events_url": "https://api.github.com/users/mojombo/received_events",
    "type": "User",
    "site_admin": false
  }
```

***レスポンスデータの内容はクライアントから指定できるようになっているか***

```
http://api.example.com/users/123?fields=name,age
```

***レスポンスデータが配列ではなくオブジェクトになっているか***

オブジェクトで包むメリット
・レスポンスデータが何を表しているか分かりやすくなる
・レスポンスデータをオブジェクトに統一できる
・セキュリティ上のリスクを避けることができる（JSONインジェクション）

```json
{
    "friends": [
        {
            "id": 22873,
            "name": "Taro Yamada"
        },
        {
            "id": 63910,
            "name": "Jiro Yamada"
        }
    ]
}
```




#設計変更しやすいWeb APIの設計
***APIをバージョンで管理する***

・URIにバージョンを埋め込むパターン

```
http://api.tumblr.com/v2/blog/good.tumblr.com/info
```

・クエリ文字列に入れるパターン

```
http://api-public.netflix.com/catalog/titles/series/70023553?v=1.5
```

・メディアタイプで指定するパターン

```
Accept: application/vnd.github.v3+json
```

#参考
[Web API The Good Parts]
(https://www.amazon.co.jp/Web-API-Parts-%E6%B0%B4%E9%87%8E-%E8%B2%B4%E6%98%8E/dp/4873116864)
[Google JSON style guide]
(http://eiichiroi.github.io/google-styleguide-ja/jsoncstyleguide.xml)
[既存のAPIを調べる]
(https://www.programmableweb.com/)
改行コードの置換でいつも躓くのでメモ

タイトルの通り、CRLFからLFの変換で、いつも躓くのでメモ
基本的に以下の記事を参考にさせていただいて、劣化させた内容です。(いつまでも覚えないのでOutputしたものです)
複数ファイルの改行コードをCRLF→LFに一括置換する:https://qiita.com/June8715/items/24307ee467baee51387e

## 改行コードの確認
置換の前に改行コードを確認します。
私の場合、Visual Studio Codeで改行コードを表示しています。

- 拡張機能:line-endingsをインストール
- 設定を変更して、line-endingsを有効化
- Code > 基本設定 > 設定 を選択
- 以下の赤枠で囲んだiconをClickして、"settings.json"を開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34985/738f9d4a-1438-2916-06b2-4e716f9e6b68.png)

- 以下の設定項目を追加

```settings.json
"editor.renderControlCharacters": true
```

すると、以下の様に改行コードが表示されるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34985/43636876-e1a8-a62a-43de-6ee9618ba02c.png)

## nkfのインストール
置換には、nkfコマンドを使うので、インストール。

Ubuntuの場合

```
apt install nkf
```

Macの場合(brew設定済みの前提)

```
brew install nkf
```

## nkfで置換

以下のコマンド実行でターゲットファイルの改行コードを全部LFに変換。

```
nkf -Lu --overwrite <ターゲットファイル>
```

### nkfのオプション
|オプション|文字コード|
|:|:|
| j | JIS(ISO-2022-JP) |
| e | EUC |
| s | Shift-JIS |
| w | UTF-8(BOM無し) |

|オプション|改行コード|
|:|:|
| Lu | unix形式(LF) |
| Lw | windows形式(CRLF) |
| Lm | macintosh形式(CR) |

##参考
以下を参考にというか、いつも2つの記事を交互に使うので、まとめてメモにさせて頂きました。

複数ファイルの改行コードをCRLF→LFに一括置換する:https://qiita.com/June8715/items/24307ee467baee51387e
文字コード/改行コード変換コマンド nkf メモ:https://qiita.com/takehilo/items/d642d059cb4cd048d027
AlmaLinux OS 8にOpenJDK 17をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してAlmaLinux OS 8にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Amazon Corretto Installation Instructions for Debian\-Based, RPM\-Based and Alpine Linux Distributions \- Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-17-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2029-10がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# rpm --import https://yum.corretto.aws/corretto.key
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-17-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
```
ｽﾀｯｸﾁｬﾝをuiflowで動かす

M5StackのQiita advent calendar2021 19日目に参加しました。
https://qiita.com/advent-calendar/2021/m5stack

ｽﾀｯｸﾁｬﾝをuiflowで動かしてみました。
https://fluorite36.hatenablog.com/entry/2021/12/20/013813
※顔の表情は固定です。ゆくゆくは表情も動かしたいです。

本編はｽﾀｯｸﾁｬﾝのボディを100均グッズでつくった記録で、最後にuiflowで動かすためのコード、各サイトリンクを貼っています。
何かご参考になれば幸いです。
AlmaLinux OS 8にOpenJDK 11をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してAlmaLinux OS 8にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# rpm --import https://yum.corretto.aws/corretto.key
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-11-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-11.0.13.8.1 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.13.8.1 (build 11.0.13+8-LTS, mixed mode)
```
【Markdown】【表】【列見出し】１列目を見出しにしたい

## はじめに

　Markdown（正確にはその方言）の表の書き方は、一行目を見出しとします。しかし、まれに一列目を見出しにしたい場合があります。

　『Markdown』『表』『列見出し』で検索すると、「HTML で書く」「`**` を使って太字にする」などの方法が出てきます。

「ｿﾝﾅﾜｹﾅｲｼﾞｬﾝ...」

　この記事でも、まあ HTML を利用するのですが、もう少し労力を軽減する方法を提案します。

## サンプル

　対象の表を `<div>` タグで括り、その中の `<table>` に対してスタイルシートを適用します。

```html
<style>
    div.vheader table tr th
    {
        visibility: collapse;
    }

    div.vheader table tr td:nth-of-type(1)
    {
        text-align: right;
        font-weight: bold;
    }
</style>

<div class='vheader'>

属性    |属性値
-------|----------
ID     |123-456
Name   |佐藤太郎
Age    |25
Section|人事総務部

</div>
```

## 終わりに

　VS Code のプレビュー機能では使えますが、「Qiita」では使えないようですね。残念。
AlmaLinux OS 8にOpenJDK 8をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してAlmaLinux OS 8にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューション用の Amazon Corretto 8 のインストール手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-8-ug/generic-linux-install.html) 

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2026-05がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# rpm --import https://yum.corretto.aws/corretto.key 
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-1.8.0-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment Corretto-8.312.07.1 (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM Corretto-8.312.07.1 (build 25.312-b07, mixed mode)
```
Rocky Linux 8にOpenJDK 17をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してRocky Linux 8にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Amazon Corretto Installation Instructions for Debian\-Based, RPM\-Based and Alpine Linux Distributions \- Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-17-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2029-10がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

# rpm --import https://yum.corretto.aws/corretto.key
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-17-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.1.12.1 (build 17.0.1+12-LTS, mixed mode, sharing)
```
Windows11でInternet Explorer11を起動する方法

# Windows11でInternet Explorer11を起動する方法

Windows11でIEは終わったもうEdgeしかない。来年の2022年6月16日（日本時間）でサポート終了予定のIE11ですが。すでに、Windows11では、C:\Program Files (x86)\Internet Explorer> というフォルダは残っていてまだバイナリは入っているものの、
 iexplore.exe をいくらクリックしても、Edgeが立ち上がるばかり。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204385/db2ebea6-e586-c133-f338-f678b1df2f9c.png" width="40%">
もうIEは終わったといいたいのですが、まだIEを終了できない企業や官公庁が残っており、IEがないと詰んでしまう業務もあります。

**そんなあなたに悲報!**

## IEをWindows11からで起動するスクリプト

```ie.vbs
CreateObject("InternetExplorer.Application").Visible=true
```
このスクリプトを、メモ帳などに書いて、ie.vbsというファイル名で保存、拡張子は、.vbsにします。
![ievbs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204385/158a7bb2-bbe0-f655-57a5-760db0ac5915.png)
出来たファイルを、ダブルクリックするか、検索して実行することにより、IEをネイティブモードで動かすことができます。
Edgeから動かすIEモードではありません。
このスクリプトはVBScriptです。

## Windows11でもIE11が動く
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/204385/028f18d3-4d90-bdd1-0199-b445326cd2f2.png" width="50%">
図2. Windows11で動作しているInternet Exploer11

IEはもう将来がありませんので、IE専用サイト以外は使用しないようにしましょう。
!cd と %cd の違い

# `!cd` と `%cd` の違いは？

Jupyter Notebookでは`!ls` `!cd`のようなシェルコマンドや，`%time` `%run`などの[マジックコマンド](https://ipython.readthedocs.io/en/stable/interactive/magics.html)が利用できます．

Notebook上でディレクトリを移動する場合，シェルコマンド`!cd`を使いたくなりますが，なぜかマジックコマンドにも`%cd`が存在しています．この違いは何でしょうか？

結論から言うと，

- `%cd`を使うとPythonの作業ディレクトリを変更できる．
- `!cd`を使うと新しいシェル内で`cd`を実行し，そのシェルは終了する．

つまりPythonの作業ディレクトリを変えたいときは`!cd`ではなく`%cd`を使います．

# 実際に試してみる

簡単に動作を確認してみます．個人的に[Google Colab](https://research.google.com/colaboratory/)をよく使うので以下はGoogle Colab上で実行していますが，他のNotebook環境でも同じはずです．

Google Colabでは，起動時のディレクトリは`/content`で，そこには`sample_data`というディレクトリが入っています．今は関係ありませんが，`sample_data`ディレクトリにはサンプルデータがいろいろ用意されています．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320225/7bfb054d-3b47-51db-5ff7-41f57ba8c3cd.png)
`/content/sample_data`内で作業するために，`cd`を使ってここに移動したいという状況を仮定します．

とりあえず現在のディレクトリとその中身を確認します．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320225/b4826fe1-9ba6-78c2-5aa2-4433addfc029.png)

まず`!cd`で`sample_data`に移動してみます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320225/2dfa633d-e618-9e28-ccb7-e0c832456b34.png)
`!cd`で`sample_data`に移動しているつもりですが(3)，`!pwd`の出力を見ると移動できていないことがわかります(4)．一応Pythonで確認してみますが，やはり移動できていません．

`!cd`を実行すると，今Pythonを実行しているシェルとは別に新しいシェルを作り，その中で`cd`を実行します．新しいシェルでいくらディレクトリを移動しても，今Pythonを実行しているシェルには反映されません．これがディレクトリを移動できない原因です．

参考：

- [cd vs !cd vs %cd in IPython](https://stackoverflow.com/questions/36512527/cd-vs-cd-vs-cd-in-ipython)
- [Python Data Science Handbook - IPython and Shell Commands](https://jakevdp.github.io/PythonDataScienceHandbook/01.05-ipython-and-shell-commands.html#Shell-Related-Magic-Commands)

次に`%cd`で`sample_data`に移動してみます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320225/a48b222d-d851-ba81-b9bf-0e075c385342.png)
こちらは問題なくディレクトリを移動できています．

# さいごに

とりあえずNotebookで`cd`を使いたいときは`%cd`を使っておけば良さそうです．

というかPython Data Science Handbookにはっきりそう書いてありますね…
一度読んだことがあるはずなのに完全に忘れていました．
Rocky Linux 8にOpenJDK 11をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してRocky Linux 8にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューションで Amazon Corretto 11 をインストールする手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/generic-linux-install.html)

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

# rpm --import https://yum.corretto.aws/corretto.key
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-11-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment Corretto-11.0.13.8.1 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.13.8.1 (build 11.0.13+8-LTS, mixed mode)
```
Rocky Linux 8にOpenJDK 8をインストール（Amazon Corretto）

# はじめに

Amazon Correttoを利用してRocky Linux 8にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Debian ベースおよび RPM ベースの Linux ディストリビューション用の Amazon Corretto 8 のインストール手順 - Amazon Corretto](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-8-ug/generic-linux-install.html) 

## サポート

本手法で導入した場合、[よくある質問 - Amazon Corretto | AWS](https://aws.amazon.com/jp/corretto/faqs/)より、2026-05がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

# rpm --import https://yum.corretto.aws/corretto.key 
# curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# yum install -y java-1.8.0-amazon-corretto-devel
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment Corretto-8.312.07.1 (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM Corretto-8.312.07.1 (build 25.312-b07, mixed mode)
```
Alma Linux OS 8にOpenJDK 17をインストール（AppStream）

# はじめに

Application Stream(AppStream)を利用してAlma Linux OS 8にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)

## サポート

本手法で導入した場合、[OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal] (https://access.redhat.com/ja/articles/1457743)より、2027-10がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

2021-12-28時点では[Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal](https://access.redhat.com/node/4079021)には記載されていない。

## note

- openjdkはmoduleではなく、バージョン+パッケージ名で別れているだけの模様

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# yum install -y java-17-openjdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
```
【Flutter】SVG画像を表示する方法

# 概要

Flutterでsvg形式の画像を表示する方法

# 使用パッケージ


**flutter_svg: ^1.0.0**

https://pub.dev/packages/flutter_svg

# assetsフォルダの作成


画像の保存先として「assets」フォルダを作成する。

作成先はプロジェクトのルートディレクトリ。

作成後はpubspeck.ymlを以下のように編集する。

```yaml
flutter:
  assets:
   - assets/
```

# 実装


画像の表示

```yaml
SvgPicture.asset(
    'assets/test.svg',
    semanticsLabel: 'test',
    width: 50,
    height: 50,
  ),
```

※semanticsLabelはなくても表示される
Alma Linux OS 8にOpenJDK 11をインストール（AppStream）

# はじめに

Application Stream(AppStream)を利用してAlma Linux OS 8にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal](https://access.redhat.com/node/4079021)より、2024-10がEOLだと思われる。
[OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal] (https://access.redhat.com/ja/articles/1457743)の内容とも合致する期日になっている。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## note

- openjdkはmoduleではなく、バージョン+パッケージ名で別れているだけの模様

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# yum install -y java-11-openjdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
```
Alma Linux OS 8にOpenJDK 8(1.8)をインストール（AppStream）

# はじめに

Application Stream(AppStream)を利用してAlma Linux OS 8にOpenJDK8(1.8)をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal](https://access.redhat.com/node/4079021)より、2026-05がEOLだと思われる。
[OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal] (https://access.redhat.com/ja/articles/1457743)の内容とも合致する期日になっている。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## note

- openjdkはmoduleではなく、バージョン+パッケージ名で別れているだけの模様

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)

# yum install -y java-1.8.0-openjdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
```
Rocky Linux 8にOpenJDK 17をインストール（AppStream）

# はじめに

Application Stream(AppStream)を利用してRocky Linux 8にOpenJDK17をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)

## サポート

本手法で導入した場合、[OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal] (https://access.redhat.com/ja/articles/1457743)より、2027-10がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

2021-12-28時点では[Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal](https://access.redhat.com/node/4079021)には記載されていない。

## note

- openjdkはmoduleではなく、バージョン+パッケージ名で別れているだけの模様

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

# yum install -y java-17-openjdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
```
Rocky Linux 8にOpenJDK 11をインストール（AppStream）

# はじめに

Application Stream(AppStream)を利用してRocky Linux 8にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal](https://access.redhat.com/node/4079021)より、2024-10がEOLだと思われる。
[OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal] (https://access.redhat.com/ja/articles/1457743)の内容とも合致する期日になっている。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## note

- openjdkはmoduleではなく、バージョン+パッケージ名で別れているだけの模様

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

# yum install -y java-11-openjdk
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
```