OmniAICreator/Qiita-1.07M huggingface dataset:
【メモ】Vue.jsエラー解決：Uncaught TypeError: Cannot read properties of null (reading 'hoge')

## Vue.jsで初期値がnullなJSONをspanに入れて動的に値を変更できるようにする
### 状況
APIにデータを投げて、それをJSONで受け取ったものから、hogehoge.hoge.hohe[0]のように指定して、spanタグ内に表示しようとしたところエラーとなってしまい、送信前画面が表示されなくなった。

### エラー内容
```
Uncaught TypeError: Cannot read properties of null (reading 'hoge')
```
### 原因
初期値のJSONがnullなため、hogehoge.hogeとしたとき、hogehogeはnullとして値が存在しているが、hogehogeのなかにhogeはないとなってしまうためである。

<details>
  <summary>実際に動くようにしたコード</summary>

```vue:vue
<template>
  <div class="response_group">
    <h3>レスポンス</h3>
    <span v-if="fetchedData">assistant:{{ fetchedData.responses.messages[0].result.content }}</span>
  </div>
</template>
<script>
export default {
  data() {
    return {
      fetchedData: null,
    };
  },
  props: ['fetchedData'],
};
</script>
```
</details>

### エラーを起こしたときの流れ
当初、
```vuejs:vue
<span>{{ hogehoge }}</span>
```
が、APIに投げる前の段階であっても、問題なく表示されたため、下記コードに変更したところ送信画面が表示されなくなってしまった
```vuejs:vue
<span>{{ hogehoge.hoge.hoge[0] }}</span>
```

これが、表示されない原因としては、hogehohe[以下]が見つからないためであるようだ。
そのため、今回の目標である「受けっとったときに画面に表示する」というものを実現するために、次のように実装しなおした。

### 解決方法
```vuejs:vue
<span v-if="hogehoge.hoge">{{ hogehoge.hoge.hoge[0] }}</span>
```
このようにして、値がない場合であってもきちんと、送信用の画面が表示されるようになった。

### まとめ
今回は __v-if__ で解決することが出来たが、初期設定でも解決できそうな気もするので、今後機会があれば試してみたいと思う。
Khadas VIM1S シングルボードコンピューターで遊ぶ

この記事の続きになります。

https://qiita.com/copper_brain/items/c20938e04d2a0f7224d5


### 私の評価まとめ
1. 小さなガジェットで遊んでみたいという方にはおもしろいツールだと思います。
1. 内蔵無線LANは遅いです。一番最初のインストール時は有線LANをおすすめします。なぜこんなに遅いのか気になりまして、もしやアンテナが外れているのではないかと疑いましてケースからボードを取り出して確認しましたが、目視や手で引っ張ったりする限り、緩んでいたりということはなく、正常に組みあがっていました。アンテナをケースから出したままにして通信速度が変わるか確認しましたが、私の環境では遅いまま何の変化もありませんでした。
1. 2つしかないUSB端子が一つ埋まってしまいますが、USB無線アダプターを接続すれば早くなることはあると思います。私の場合も上の記事のとおり、ドライバーをインストールするという作業が追加になりますが、ドライバーをインストールして使えるようになりました。「USB WiFi」として本体WiFiとは別に認識され、普通に使えます。これは驚きでした。昔と比較するとドライバーソースをダウンロードして、「コンパイル」してインストールするという作業は大変楽になりました。いい時代だと思います。
1. ネットワーク接続に関しては、nmtui というCUIなツールが使えますが、見た目と、こんな感じでよいだろうで使ってみても、なかなか思うような設定にならず試行錯誤を繰り返しました。netplan というツールはデフォルトでは入っておらず、apt でインストールする必要があります。Ubuntu に久しぶりに触りましたが、いろいろ変わったようです。
1. 有線LANを使用すれば家庭内でのファイルサーバー、メディアサーバー(音楽再生)用途には使えると思います。内蔵wifi では避けたほうが無難だと思います。
1. minidlna は稼働を開始しました。クライアントは、Windows, Linux あるいはFreeBSDと異なるOSであっても、メディアプレイヤーや VLC から再生可能です。大きな箱だったNASが、随分と小さいケースに収まりました。
1. 時々、シーっという音がするので、なんだろうと思いましたら冷却ファンの音でした。常時データを送るようなサーバーですと、やはりファンが回るようです。ドライバーのインストールの際も回っていました。最初からヒートシンク＋冷却ファンはあったほうがよさそうです。訂正します。

### visudo メモ
sudo でルート権限を用いたコマンドが使えるようになりますが、新たにユーザーを登録して、sudo 権限を使えるようにするには、root として visudo を用いて、/etc/sudoers を編集する場合があります。この辺の掟を忘れてうっかり編集してしまいますと sudo が使えなくなることを経験しました。Ubuntu では、root を設定しないしきたりですが、visudo は、プロンプトが # となる、ルートで操作する必要があります。デフォルトのIDは、sudo が使えますが、プロンプトは、$ のままです。
```
$ sudo su -
```
でルートになってから、visudo を起動する必要があります。しかし、下記コマンドであれば、visudo を使わずに新たなユーザーアカウント設定ができます。

### ユーザーアカウント追加
えーと、ユーザーが khadas しか設定されていませんので、別途、日常使うユーザーアカウントを sudo 権限付きで追加します。
```
# useradd -m -g users -G sudo -s /bin/bash foobar
# passwd foobar
```
これで作成できます。visudo は使う必要はありませんでした。

### 今日は何で遊ぼうかな
github にメーカーさんのサイトが開示されていて、Linux では、Ubuntu 以外にも Debian がインストールできるようです。手順は、そこに書いてあるとおりで、Ubuntu で動いている別マシンがあれば、ソースから作れるようです。おまじないを唱えているようなものですが、Debian もイメージファイルを作成してSDカードに入れるところまでできました。次に遊べるタイミングで試してみようかと考えています。

https://github.com/khadas


### 動作中のLED点滅の消灯
VIM1Sは、起動するとLEDがチカチカと白く光ります。夜間ですと眩しいのですが、これを止める方法が Khadas のフォーラムにありました。その方法を抜粋します。

/etc/rc.local を編集します。
```
sudo nano /etc/rc.local
```

中間あたりに下記のような表記があります。(必ずしも同一表現ではありませんが)
```
# Setup LED: heartbeat if bootup completed
echo heartbeat > /sys/class/leds/pwmled/trigger
```
これを以下のように書き換えます
```
echo none > /sys/class/leds/pwmled/trigger
```
これにて消灯します。光るのをやめてくれました。

### 今、どう使っているか？　うまく行かないコマンドは？
SDメモリーカードを最初からマウントし、それをstorage として使用しています。miniDLNAも問題ありません。設定通りに動いています。速度も十分実用範囲と思います。ということで、USBドライブは外し、本体のみで稼働しています。
fbterm を戯れにインストールしましたが、起動しても真っ黒な画面になってしまい、コンソールでの日本語は表示できません、日本語は、♦ ♦ ♦ ♦ ♦ ♦ のように表示されます。ssh で接続した端末では日本語が読めますけどね。あと ufw がきちんと動いてくれません。エラーになってしまいます。これなんとかしたいです。


本日はここまで。
Xcode 14.3にしたら PhaseScriptExecution Exit status: 65

Xcodeを14.3に更新したら今までリリースビルドで来ていたアプリが、以下のようなエラーを出力しビルドできなくなってしまいました。

```
The following build commands failed:
        PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/takashi/Library/Developer/Xcode/DerivedData/PROJECT_NAME-dzvvnurbcslkerbahonaorsgyjqe/Build/Intermediates.noindex/ArchiveIntermediates/PROJECT_NAME/IntermediateBuildFilesPath/PROJECT_NAME.build/Release-watchos/watch\ Extension.build/Script-28A7333371E1B343FC311B8F.sh (in target 'watch Extension' from project 'PROJECT_NAME')
(1 failure)
[15:53:39]: Exit status: 65
```

今回はFlutterのプロジェクトでしたが、たぶんFlutterはあまり関係ないと思います。

# 修正方法
cocoapodsを使っているプロジェクトだと思うので、Podfileのpost_installを以下のように編集します。
cocoapodsが生成する `*frameworks.sh` の `source="$(readlink "${source}")"` を `source="$(readlink -f "${source}")"` に置換する処理です。

```ruby:Podfile
post_install do |installer|
  command = <<~EOS
    find . -name *frameworks.sh | tr \\n \\0 |  xargs -0 sed -i -e 's/source="$(readlink "${source}")"/source="$(readlink -f "${source}")"/'
  EOS
  system(command)
end

```

根本解決としてはcocoapodsのバージョンアップを待つしか無いようです。

# 参考
https://developer.apple.com/forums/thread/725230
HTMLの基本

# HTMLとは
HTMLは"<font color="FireBrick">H</font>yper<font color="FireBrick">T</font>ext <font color="FireBrick">M</font>arkup <font color="FireBrick">L</font>anguage"の略で，Webサイトのコンテンツの構造を定義するマークアップ言語のことである．マークアップとは，文章の構成や役割を示すことを意味しており，コンピュータへ構成指示を出すことで，表示したい文章や写真などの情報を作る．

:::note warn
HTMLは「マークアップ言語」に分類されるため，「プログラミング言語」ではない．
:::

# HTMLの3つの要素
HTMLを構成しているものを要素と呼ぶ．要素を構成する基本的なものは以下の３つである．

![htmlの要素.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3133563/37eda62d-427f-b041-2293-8db662608018.png)

**１．タグ**
要素はタグというもので囲むことで構成される．要素の始めりと終わりをそれぞれ<font color="YellowGreen">開始タグ</font>と<font color="YellowGreen">終了タグ</font>と呼び，基本的にセットで使われる
**２．コンテンツ**
開始タグと終了タグに囲まれた部分を<font color="Red">コンテンツ</font>と呼ぶ．基本的にこのコンテンツが表示される．
**３．属性**
要素に関する追加情報を付加させるものを要素の<font color="DodgerBlue">属性</font>という．これらを指定することで，要素ごとに細かい動きなどの設定を可能にする．

# 基本のテンプレート
HTMLは基本的に以下の構成で記述される．
```html
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>タイトル</title>
    </head>
    <body>
        <!-- Webサイトのコンテンツ -->
        <p>コンテンツ</p>
    </body>
</html>
```
**1. \<!DOCTYPE html>**
正確にはHTMLタグではない．ドキュメントタイプ宣言と呼び，HTML文書ファイルの先頭に記述することでそのHTMLファイルで使用しているHTMLのバージョンを宣言する．
**2. \<html>**
この文書がHTML文書であることを指定し，コード全体を囲む．
**3. \<meta>**
文書のメタ情報を指定し，ブラウザ等にホームページの情報（文字コードなど）を提示する．
**4. \<head>**
Webページの情報や設定を書く．この中身を訪問者は見れない．
**5. \<title>**
headタグ内に1度だけ記述し，文書のタイトルを指定する．
**6. \<body>**
文章や画像など、実際にブラウザの画面上に表示される内容を指定するタグ。 <body>タグの中に書かれたテキストや画像などがブラウザの画面上に表示．


# CSSとJavaScriptの指定方法
要素にCSSやJSを指定する方法は，HTML内部に直接書く方法と，外部のCSS/JSファイルを読み込んで指定する方法がある．
## CSSの場合
**１．要素に直接書き込む方法**
```html
<p style="font-size: 30px; color: red;">
```
要素のタグにstyle属性を追加することで，その要素のみにスタイルを適用できる．

**２．``<style>``タグを利用する方法**
```html
<style>
    .sample{
        font-size: 30px;
        color: red;
    }
</style>

<p class="sample">本文</p>
```
文書に直接cssのコードを記述する場合，style要素として記述することができる．

**３．外部のCSSファイルを読み込む方法**
```html
<link rel="stylesheet" href="sample.css">
```
relには"stylesheet"，hrefにはCSSファイル名を指定することで，読み込みたいCSSファイルを適用できる．



## JavaScriptの場合
**１．文書に直接書き込む方法**
```html
<script type="text/javascript">
    //スクリプトを記述
</script>
```
文書に直接scriptのコードを記述する場合は，bodyタグ内のscript要素に記述する．

**２．外部のJSファイルを読み込む方法**
```html
<script src="sample.js"></script>
```
<INS>headタグ内</INS>に上記のscript要素を記述する．src属性にはJSのファイル名指定する．



:::note warn
以下のような場合は，外部から読み込む必要があるので注意．
・全ページに共通のCSS/JSを使用したい場合
・JQueryなどのライブラリを使用したい場合．
:::
(リンクだけです)「モールの応力円（英:Mohr's stress circle）」を調べた。

https://www.deepl.com/ja/translator#ja/en/非常に奥が深そうなので、さわりだけにしました.

# sympyで
(勉強中)

# wikipedia

https://en.wikipedia.org/wiki/Mohr%27s_circle

https://ja.m.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%81%AE%E5%BF%9C%E5%8A%9B%E5%86%86

# wikibooks

https://en.m.wikibooks.org/wiki/Strength_of_Materials/General_State_of_Stress#Mohr's_Circle

# (勉強中)WolframAlphaで

# (勉強中)FreeCADで,モールの応力円を作図

https://qiita.com/mrrclb48z/items/60ea5e3c939dc7707c7f#%E4%BD%9C%E5%9B%B3freecad%E3%81%A7

# 過去問

https://www.haruyama-ce.com/r2-3-9/


# 参考

~~https://dcbaonline.com/mohrs-circle-and-principal-stress-calculator/~~

https://qiita.com/mrrclb48z/items/60ea5e3c939dc7707c7f
[Rails]クラス名に数字を含んでいるクラスが自動で読み込まれる時と読み込まれない時

# はじめに
Railsでlibフォルダ配下に新しく作成したクラスが読み込まれなくて少しハマったので雑にメモしておく。

## 事前に確認したこと
- lib配下はautoload_pathsの対象になっている（[autoload_pathsとは](https://railsguides.jp/autoloading_and_reloading_constants.html)）
- 同じ階層にある他のクラスは問題なく参照できている


# 結論
クラス名に数字を含む場合は単語の後ろのみ許容される。
# 具体例
ファイル名：abc_de9_fgh.rb
クラス名：AbcDe9Fgh
→クラスを参照できる

ファイル名：abc_de_9_fgh.rb
クラス名：AbcDe9Fgh
→NameError: uninitialized constant AbcDe9Fgh

ファイル名：abc_de_9fgh.rb
クラス名：AbcDe9fgh
→NameError: uninitialized constant AbcDe9fgh

# おわりに
具体例の2つ目と3つ目のパターンだったり、ファイル名とクラス名がマッチしていなくても```require Rails.root.join("filepath")```で読み込ませることはできるけど、Railsは自動読み込みが基本だからなんでrequireしてるんだ？ってなりそう。
ElixirDesktopのiOSアプリをAppleへ申請した時のエラー

# 参考
https://qiita.com/yanamura/items/7664de7cfa4310b0efe0

# 困ったこと
Appleにアプリの申請を出したが、Validate Appしてみると下記のエラーが3件返ってくる

1\.
```
Asset validation failed
Invalid Swift Support. The file xxxx-app.app/Frameworks/610-liberlang.a doesn’t have the correct file type for this location. Ensure you’re using the correct file, rebuild your app using the current public (GM) version of Xcode, and resubmit it. (ID: 2ec2b283-4b50-430b-968c-14f32a86989b)
```
2\.
```
Asset validation failed
Invalid bundle structure. The “xxxx.app/Frameworks/610-liberlang.a” binary file is not permitted. Your app cannot contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. For details, visit: https://developer.apple.com/documentation/bundleresources/placing_content_in_a_bundle (ID: 3faf77bf-630a-4d5b-a1a8-988552acc7b3)

```


# 原因
前提 ： xcodeでiOSの開発はしたことがない。（KotlinでAndroidはあった）

ios-example-appをxcodeで読み込むだけだとxcodeのProjectツリーにFrameworksがなかった


# 対応
Projectのpropertiesの「Frameworks, Libraries, and Embedded Content」に適当なLib
を追加してFrameworksqをツリーに作成。追加したのは速攻削除。

ツリーの上の方にある「liberlang.xcframework」と「ZIPFoundation.xcframework」をFeameworksにドラックで移動する
![elixirdesktop_ios20230516144311.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553095/6b585618-a52a-2a6d-f661-7688682ecfc9.png)

Projectのpropertiesの「Frameworks, Libraries, and Embedded Content」のliberlang.xcframeworkのEmbedを「Do not Embed」に変更する

一旦上記で動いている。
laravelのroute()でルートモデルバインディングとクエリパラメータを持ったURLを生成する方法

おそらくまたいつかやり方を忘れてしまうので忘備録として記事に残しました。

# ルートモデルバインディングとクエリパラメータを持ったURLを生成する方法
- route()の第二引数に配列として渡す<br>(生成されるURL: localhost/sample/1?parameter=渡したいパラメータ)
```
route('sample', ['user' => $user, 'parameter' => '渡したいパラメータ']);
```

#### サンプルコード

ルーティング
```
Route::get('/user/{user}', SampleCotroller::class)->name('sample');
```

コントローラ
```
class SampleCotroller extends Controller
{
    public function __invoke(User $user)
    {
        return $user->name;
    }
}
```

- ルートモデルバインディングのみのURL生成<br>(生成されるURL: localhost/sample/1)
```
// userモデルのオブジェクトを渡している
route('sample', $user);
```
- クエリパラメータのみを渡したURL生成<br>(生成されるURL: localhost/sample?parameter=渡したいパラメータ)
```
route('sample', ['parameter' => '渡したいパラメータ']);
```

#### ルートモデルバインディングとは
- laravelの機能でルーティングでコントローラを呼び出す際にモデルのidを渡すとそのコントローラ内でそのモデルが取得できて使用したりすることができる便利なもの

#### laravelのヘルパ関数 route()について
- route関数は、指定した名前付きルートのURLを生成します。
- https://readouble.com/laravel/10.x/ja/helpers.html#method-route

## 終わりに
- クエリパラメータだけ、モデルバインディングだけのURL生成はよくやっていたのですが、同時に渡したい時があり少し迷ったので、同じ人のためになれば幸いです。
styled-componentsの複数条件の書き方

## 以下のことがしたかった

propsに紐づくものを色変更したかった


```
const colorFlag = (props:string) => {
  switch (props) {
    case '01':
      return `red`
    case '02':
      return `blue`
    case '03':
      return `yellow`
    default:
      break
  }
}


export const StyledColor = styled.a<{ type: string}>`
  background: ${props => colorFlag(props.categoryType)};
`
```

##　まとめ
グロースハックやコンポーネント分割で
propsで条件分けたい時（複数）のやり方のメモ
git pull時、キーチェーンアクセスからPATが適用されなくなった際の対応メモ

何かの作業の影響で、普段キーチェーンアクセスに登録されているGithubのPersonal Access Tokenが読み込まれなくなってしまったので、その時の対応メモをまとめます。

## 事象
- `git pull` コマンドを実行したところ、`Username` と `Password` が聞かれるようになってしまった

## 確認したこと
- Githubのユーザー名とパスワードを入力したところ、エラーになった
- Githubのユーザー名とPATを入力したところ、認証されpullが実行された
- Macのキーチェーンアクセスのgithubの項目は残っていて、PATも保存されていた
- 試しにGithubで既存と同様の権限を付与したPATを新規作成し、キーチェーンアクセスに登録しても事象は改善しなかった

## 原因
- `gitconfig` からキーチェーンアクセス認証の項目が削除されていた

## 対処法
- 設定されているかを確認
    - 以下の項目が出力されたら設定済
    - 今回のケースの場合、以下の設定が削除されていたため発生した
```
$ git config --list | grep credential.helper
credential.helper=osxkeychain
```

- 設定されていない場合、以下のコマンドで設定を追加

```
$ git config --list | grep credential.helper
$ git config --global credential.helper osxkeychain
$ git config --list | grep credential.helper
credential.helper=osxkeychain
```

## まとめ
この事象が発生する前に、Gitの設定をいじっていたのでどこかで誤って削除してしまったようでした。
普段できていることが突然できなくなるとちょっと焦りますよね。
設定ファイルをいじる際は気をつけようと思います。
ST7735(パラレル)で遊ぶ6(1か月から3か月の長期記事)ATM0177B5

x 過去ログを見よ

いろいろ
5月16日風呂に入りながら配線の案を考えて結論に至
単純に上からふっていった。
8bit / 16bitは、lowで8ビット固定
7月ぐらいには、出来るように頑張る(なんの事だ?)

vccは、3.3V
io電源は、3.3V
Ledは、330Ωの抵抗を介して5V

配線


![o_cop525.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/c478bef5-576b-35cd-3e8e-d6f1a416e8d7.jpeg)


-----------------------------------------------------------


接続表(仮)
arduino側 - 液晶側

13 - 未接続
12 - CS(8)
11 - RD(25)
10 - WR(26)
9  - RS(27)
8  - REST(28)

7  - DB7(17)
6  - DB6(18)
5  - DB5(19)
4  - DB4(20)
3  - DB3(21)
2  - DB2(22)
1  - DB1(23)
0  - DB0(24)
公式ドキュメントには書いていないNet::HTTP.startの使い方

`Net::HTTP.start` の使い方を調べていると下記のように、第三引数にHashを指定しているケースが散見されます。

http://sato-s.github.io/2015/10/22/ruby-nethttp.html
```ruby
Net::HTTP.start(uri.host, uri.port,:use_ssl=>true) do |http|
  response = http.get("/index.html")
  puts response.body
end
```

https://blog.class-tech.me/how-to-send-http-methods-using-ruby-net-http-library/
```ruby
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.get('/')
end
```

しかし公式のドキュメントを見ても第三引数は　`proxy_addr` という文字列を渡すべきで、Hashを渡すような記述はありません。

https://docs.ruby-lang.org/ja/latest/class/Net=3a=3aHTTP.html#S_START

> `start(address, port = 80, proxy_addr = :ENV, proxy_port = nil, proxy_user=nil, proxy_pass=nil) -> Net::HTTP[permalink][rdoc][edit]`
> `start(address, port = 80, proxy_addr = :ENV, proxy_port = nil, proxy_user=nil, proxy_pass=nil) {|http| .... } -> object`
> [PARAM] proxy_addr:
プロクシのホスト名もしくはアドレスを文字列で指定します。:ENV を指定すると環境変数 http_proxy を利用してプロクシの設定をします。省略した場合には直接接続します。

それでもネット上の記述にこういうのがあるということは、これで問題なく動いているはず。なぜ？と思ったのでソースを見てみました。
https://github.com/ruby/net-http/blob/v0.3.2/lib/net/http.rb#L668-L685
```ruby
def HTTP.start(address, *arg, &block) # :yield: +http+
  arg.pop if opt = Hash.try_convert(arg[-1])
```
可変長引数を使って第二引数以降は `arg` の中に格納され、 `arg` の末尾がHashに変換し、 `opt` に格納しています。
そしてその `opt` はその後Net::HTTPのインスタンスメソッドをイテレートし、 `opt` のキーに該当するメソッドがあるかをチェックします。
```ruby
http.methods.grep(/\A(\w+)=\z/) do |meth|
  key = $1.to_sym
  opt.key?(key) or next
  http.__send__(meth, opt[key])
end
```
該当するメソッドがあればそれを呼び出す…ということで前述の `{use_ssl: true}` の記述は
```ruby
http = Net::HTTP.new(host, port)
http.use_ssl = true
```
と同じことをやっているというものでした。

他のライブラリでも似たような実装を見たことがあるので結構常套手段なのかな、と思いつつ、そんなことドキュメントには書いてないじゃない！ :anger: という気持ちになりました。
【MPAndroidChart】円グラフの内側のレイアウト調整

# はじめに
`MPAndroidChart`で円グラフ描画時、内側のレイアウトを調整する方法について解説。

|通常|半透明部分の拡大|半透明部分の削除|
| ---- | ---- | ---- |
| <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/cd09b06d-0e7d-07b6-fd0b-066468b0819e.png" width="200"> | <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/a3345847-e6bf-feb7-892c-5ff39000c5df.png" width="200"> | <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/0d7f99e2-e4fa-6842-e56a-d0975704bf76.png" width="200"> |

# 方法
`holeRadius`と`transparentCircleRadius`のパラメータ調整を行えば良い。

```activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<com.github.mikephil.charting.charts.PieChart
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/pie_chart"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>
```

```MainActivity.kt
class MainActivity : AppCompatActivity() {

	/** ViewBinding */
	private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }

	override fun onCreate(savedInstanceState: Bundle?) {
		super.onCreate(savedInstanceState)
		setContentView(binding.root)

		val list = listOf(PieEntry(10f), PieEntry(20f), PieEntry(30f))
		val dataSet = PieDataSet(list, null)
		dataSet.colors = listOf(Color.RED, Color.GREEN, Color.BLUE)

		//グラフ上の数値を非表示
		dataSet.setDrawValues(false)

		binding.pieChart.data = PieData(dataSet)

		//説明を非表示
		binding.pieChart.description.isEnabled = false

		//凡例を非表示
		binding.pieChart.legend.isEnabled = false

		//内側のレイアウト調整
		binding.pieChart.holeRadius = 33.3f
		binding.pieChart.transparentCircleRadius = 66.6f
	}
}
```

# 関連記事
https://qiita.com/nakashimaakio/items/c8f274ca59977e6e79d1
ZABBIX: SNMPTTのログを出力させないようにする（CentOS8）

タイトルそのまま。  
snmptrapdの出力を他に飛ばしても、SNMPTTのログだけ`/var/log/messages`に出力されてしまうので困った。  
他にも困っている人。。。がいるとは思えないけど、ついでにsnmptrapdの出力先も変えるので参考にして欲しい。


## SNMP TRAPD

```conf:/etc/sysconfig/snmptrapd
OPTIONS="-A -Lf /path/to/logfile.log -m +ALL -On -n"
```

> 尚、snmptrapdのオプションで直接出力先となるログファイルを指定することも可能だが、再起動するたびにログファイルがリフレッシュされることから、syslog経由でログを出力する。

参考にしたQiitaにはこのように書かれているが、実は`-A`をつけるとその問題は解決する(バージョンによるかもしれないので、`man snmptrapd`で確認してもらえると嬉しい)

こんな感じで書かれてる。
```text:man snmptrapd
       -A      Append to the log file rather than truncating it.

               Note that this needs to come before any  -Lf  options  that  it
               should apply to.
```

あ、`-n`をつけてるのはDNSによる名前解決を行わないようにするため。  
閉塞網でDNSを用意していないのに問い合わせにいってしまっていた。
そうすると、DNS問い合わせがタイムアウトするまでのラグが発生したのでつけてる。

他のオプションについてはすでについているものだと思うので割愛。

## snmptthandler-embedded

`/usr/sbin/snmptthandler-embedded`の114行目をコメントアウト。
 
```diff_perl:snmptthandler-embedded
112   # Cycle through all the varbinds  
113   foreach my $x (@$varbinds) { 
--- 114     printf "  %-30s type=%-2d value=%s\n", $x->[0], $x->[2], $x->[1];
+++ 114     #printf "  %-30s type=%-2d value=%s\n", $x->[0], $x->[2], $x->[1];
115 
```

## 参考
https://qiita.com/keita0322/items/f109675487f4a6c2cb78
【AWS】API GWのOPTIONSで500エラー

# 現象
API GW + Lambdaの構成で、API GWのCORSの有効化をしてOPTIOINSメソッドを作成しました。
ところが、CORSのpreflightリクエストでなぜか500エラーで`Internal server error`が返ってきてしまいました。
```
$ curl -v -X OPTIONS -H 'Origin: http://localhost:3000' -H 'Access-Control-Request-Method: GET' -H 'Access-Control-Request-Headers: content-type' https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/Prod/hoge
~~~
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 500
< content-type: application/json
< content-length: 36
< date: Tue, 16 May 2023 04:30:26 GMT
< x-amzn-requestid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
< x-amzn-errortype: InternalServerErrorException
< x-amz-apigw-id: E_xxxxxx
< x-cache: Error from cloudfront
< via: 1.1 xxxxxxxxxxxxxxxxx.cloudfront.net (CloudFront)
< x-amz-cf-pop: NRT57-P4
< x-amz-cf-id: xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx
<
* Connection #0 to host xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com left intact
{"message": "Internal server error"}
```

# 解決策
バイナリメディアタイプの`*/*`をやめる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3402940/92989d47-69e2-8d1e-182d-0ec319caaaad.png)


# 原因
自分の場合は画像データを返すAPIがあったので、細かい事考えるのやめて`*/*`と設定したことが原因でした。
消したら動きましたし、`image/*`でも大丈夫でした。`*/*`がNGの模様。
docker使い始めたので自分でよく使うコマンドをメモ

- dockerコマンド

```
docker build -t [イメージ名] . #カレントディレクトリのDockerfileをビルド -tで名前付け
docker run -d -p 80:80 [image_id] #80:80ポートでバックグランドでイメージをコンテナで起動
docker ps #今起動しているdocker
docker container ls #コンテナ一覧
docker container rm [container_id] #コンテナ削除
docker container stop [container_id] #コンテナ停止
docker image ls [image_id] #dockerimage一覧
docker image rm [image_id] #dockerimage削除
docker exec -it [container_id] #起動中のdockerに入る
docker system prune #dockerの中のキャッシュファイルを削除
docker image prune #よくわからん
```
【MPAndroidChart】円グラフの外側の余白を無くす

# はじめに
`MPAndroidChart`で円グラフ描画時、外側の余白が微妙にできてしまうので、その対策について解説。

|余白あり|余白なし|
| ---- | ---- |
| <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/55166459-ee1c-0bbd-2f73-57363f47c553.png" width="200"> | <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/7a9cf880-0f3a-5467-101f-1c04a9dd5402.png" width="200"> |

# 方法
`dataSet.selectionShift`を0にすれば良い。

```activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<com.github.mikephil.charting.charts.PieChart
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/pie_chart"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>
```

```MainActivity.kt
class MainActivity : AppCompatActivity() {

	/** ViewBinding */
	private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }

	override fun onCreate(savedInstanceState: Bundle?) {
		super.onCreate(savedInstanceState)
		setContentView(binding.root)

		val list = listOf(PieEntry(10f), PieEntry(20f), PieEntry(30f))
		val dataSet = PieDataSet(list, null)
		dataSet.colors = listOf(Color.RED, Color.GREEN, Color.BLUE)

		//グラフ上の数値を非表示
		dataSet.setDrawValues(false)

		//外側の余白を無くす
		dataSet.selectionShift = 0f

		binding.pieChart.data = PieData(dataSet)

		//説明を非表示
		binding.pieChart.description.isEnabled = false

		//凡例を非表示
		binding.pieChart.legend.isEnabled = false
	}
}
```


# 関連記事
https://qiita.com/nakashimaakio/items/e80777ddbabd592ad53b
OpenCV 画像の読み込み・表示・保存

# 概要
OpenCVの基礎を固めます．

# OpneCVとは
・Pythonライブラリの1種
・Intel提供のOSS
・画像・動画処理専門ライブラリ
・一般的なPythonの前処理ライブラリとして挙げられる

メリット
・DPL用の前処理が簡略化でき容易
・ 多様なライブラリと相互性がある

# 環境
Windows11,VSCode,python(3.10)

# 画像の読み込み・表示

画像は自分で撮影したケーキの画像cake.jpgを使います．
コードの先頭にimport cv2でライブラリをインポートし，OpenCVを使えるよう準備します．

```php:base.py
#OpenCVのインポート
import cv2 
```

画像の読み込みはcv2.imreadで行います．
表示はcv2.imshowで行い，引数に任意の表示名，画像を入れた変数を記述しましょう．コードを実行した際，画像が一瞬しか表示されないのでcv2.waitKey(0)を追加します．任意の時間キーが押されるまで結果を表示させることができます．

```php:base.py
#OpenCVのインポート
import cv2

#画像読み込み関数
img=cv2.imread("cake.jpg")

#画像表示関数
cv2.imshow("CarrotCake",img)
cv2.waitKey(0)

```
![result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3330338/066df128-e1bd-a69e-4902-c762827f7e0a.png)



# 画像の保存

画像の保存はcv2.imwriteを使用します．引数には，保存するときの名前，画像を入れた変数を記述します．
```php:base.py
#OpenCVのインポート
import cv2

#画像読み込み関数
img=cv2.imread("cake.jpg")

#画像保存関数
cv2.imwrite("CarrotCake.jpg",img)

```


# cv2.waitKeyについて

画像の読み込み・表示で触れたcv2.waitKeyについて補足します．
画像を表示する際にcv2.waitKeyを記述しない場合，プログラムは実行直後に終了してしまいます．この関数の引数に任意の数値を持たせることでその数値時間プログラムを実行することが出来ます．数値はms(ミリセカンド)で換算されます．
先程のコードでは引数を(0)と記載しましたが，引数"0"は「任意の時間キーが押されるまで結果を表示」させることができます．
ブラックリストとホワイトリスト

## WAF
- 「Web Application Firewall（ウェブアプリケーションファイアウォール）」の略
- Webアプリケーションへの不正な攻撃からWebサイトを保護するセキュリティ対策ツール
- Webアプリケーションの防御に特化

## ブラックリスト
- あらかじめ「危険な対象」を定義しそれらの攻撃を防ぐ
- あらかじめ定義された不正パターンに該当する通信を検知・防御
## ホワイトリスト
- あらかじめ定義された正当パターンに該当する通信を許可する
- 「安全な対象」を定義し、対象外となるアプリケーションやプログラムの実行をさせないことでサイバー攻撃を防ぐ
1000: Genesis64 FA-Connector シミュレーション接続

# 概要
Genesis64とPLCをシミュレーション接続するまでの手順を記します

# PLC側の準備
GX-Works3を起動し「シミュレーション」を開始します
![GX-Works3_SimRun.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/fcf62c66-7878-5159-541f-270dc7a0df78.png)
![GX-Works3_SimOn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/2f73aef8-a2b0-2243-7a1c-0eae4c5291db.png)

# Workbenchの設定
![Workbench_Run.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/b7adf358-e224-b136-fe4f-08cf73d1e322.png)
PLCとの接続設定
[データ接続] - [Mitsubishi Electric] - [+ MELSECの追加]を選択します
![Workbench_PLC_Mod.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/84a58813-1008-6e46-9c48-8270350a721f.png)
CPU機種 - I/F設定を行い、□シミュレータを使用するにチェックを入れます
![Workbench_PLC_Sim.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/8c0640a5-3207-90ac-838f-2dc6acb3adf6.png)
通信テスト
![Workbench_PLC_Sim_Test.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361877/91248177-22de-82f3-ca26-7196b7eb983d.png)

# おわりに
とりあえず、WorkbenchでPLCとのシミュレーション接続ができましたので
GraphWorX64で作画に挑戦です
laravelの認証について（備忘録）

## Laravelの認証機能
Laravelの認証機能は、基本的に「ガード」と「プロバイダ」で構成されている。
`ガード` : リクエストごとにユーザーを認証する方法を定義する。ログイン機構の種類を表す。
`プロバイダ` : 永続ストレージからユーザーを取得する方法を定義する。認証の方法。

アプリケーションの認証設定ファイルはconfig/auth.phpにあり、ここで認証の動作を微調整することができる。

App\Models\Userモデルのデータベースのパスワードの列の長さは60文字以上にする。
また、１００文字のnullableな文字列remember_tokenカラムを確実に含める。
remember_tokenはアプリケーションへログインするときに「持続ログイン（remember me）」オプションを選択したユーザーのトークンを格納するために使用される。
新しくLaravelのアプリケーションを作った際には元々この条件を満たすカラムが作られている




### 認証の流れ
ユーザーがユーザー名とパスワードを入力
↓
ログイン情報が正しければ認証したユーザーの情報をユーザーのセッションに保存
そしてその際クッキーではセッションIDが含まれるため後のリクエストでも正しく関連づけることができる
↓
受信する側のアプリケーションはセッションIDに基づきセッションデータを取得する
↓
認証情報がセッションに保存されていることを確認し、ユーザーを「認証済み」と見なす

## エコシステム
`エコシステム` : Laravelフレームワークの周辺で構築されたさまざまなパッケージ、ツール、リソースの集合体？

Laravelは、通常Auth,Sessionファサードを介してアクセスされる組み込みの認証およびセッションサービスを持つ
Watson Knowledge CatalogとBoxを連携させてみた（前編）

# はじめに
Boxに格納した資産を、Watson Knowledge Catalog（以下、WKC）から参照できるように、WKCとBoxを連携させます。


# 実施すること
WKCとBoxを連携させるには、以下の設定を必要としますが、今回の前編では、Box側の設定を説明します。
* Box側の設定（カスタムアプリの作成と設定）
* WKC側の設定（新規カタログの作成、新規接続の作成）

# Box側の設定 - カスタムアプリの作成
Box開発者コンソールに移動し、カスタムアプリを作成します。「Create New App」から「Custom App」を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/add8ba9a-080f-2a09-0ca2-2a772fe8c757.jpeg" alt="2023-05-15 14.35のイメージ.jpg" width="600">

カスタムアプリの作成は、ウィザードに従い、簡単に作成できます。


## Create a Custom Appのウィザード（1/2）
カスタムアプリの名前を指定しますが、「App Name」に任意の名前を指定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/0fd12824-101c-13ee-8318-9dc2fa237c0b.jpeg" alt="2023-05-15 14.36のイメージ.jpg" width="600">

## Create a Custom Appのウィザード（2/2）
カスタムアプリの認証方式を指定しますが、「Server Authentication (with JWT)」を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/4cd74a03-3484-6ea6-d274-48b2484071b6.jpeg" alt="2023-05-15 14.55のイメージ.jpg" width="600">

「Create App」を押下すると、カスタムアプリの作成は完了です。続いて、作成したカスタムアプリに、WKCとBoxの連携に必要な設定を行います。

# Box側の設定 - カスタムアプリの設定
作成したカスタムアプリのConfigタグで、以下の設定を行います。
* WKCとBoxの連携に必要な公開鍵の作成
* アプリケーションのアクセスレベルの指定
* アプリケーションのアクセスレベルの設定

## WKCとの連携に必要な公開鍵の作成
WKC側の接続リソースの設定に必要な公開鍵を生成します。「Generate a Public/Private Keypair」を押下することで、公開鍵を生成することができます。（生成された鍵ペアは、`*_config.json`として生成されます。）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/fc70fee4-1111-8b4b-0616-9ab211724a6d.jpeg" alt="2023-05-15 15.15のイメージ.jpg" width="600">

## アプリケーションのアクセスレベルの指定
Box資産をWKCに参照させるために、アプリケーションのアクセスレベルを、「App + Enterprise Access」に指定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/8f11c00b-15ed-f514-f863-3c31781cdb4d.jpeg" alt="2023-05-15 15.16のイメージ.jpg" width="600">

## アプリケーションのアクセスレベルの設定
アクセスレベルに指定した「App + Enterprise Access」に設定の追加を行います。下記、「Advanced Features」にあるチェックボックスを追加で選択し、画面上部にある「Save Changes」を押下して設定を保存します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3395729/07a12d09-0802-5bdb-2e94-1472bc911d6a.jpeg" alt="2023-05-15 15.21のイメージ.jpg" width="600">

ここまですべての作業を施すると、Box側の設定は完了です。

# まとめ
Box側には、開発者コンソールを用いてカスタムアプリを作成し、WKCとの連携に必要な作業が必要になります。
* WKCとの連携に必要な公開鍵の作成
* アプリケーションのアクセスレベルに「App + Enterprise Access」指定
* 指定したアプリケーションのアクセスレベル「App + Enterprise Access」の設定追加

# 参考文献
公式ドキュメント：https://dataplatform.cloud.ibm.com/docs/content/wsj/manage-data/conn-box.html
【Codeium】無料で使えるコード提案AIをAndroidStudioにいれてみた

# はじめに
昨日、XcodeでCodeiumを使用する方法を記事にしました

https://qiita.com/SNQ-2001/items/b66e889d0cfef925a19f

最近、Flutterを勉強しているのでAndroidStudioでもCodeiumを使用したいです

https://codeium.com/jetbrains_tutorial

# Codeiumのアカウントを作成する
こちらからアカウントを作成してください
特に難しいところはないです。

https://codeium.com/account/register

# やりかた
① 「Plugins」を選択します
② 「Marketplace」を選択します
③ `Codeium`を検索します
④ 「Install」を選択します
![スクリーンショット 2023-05-16 13.02.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/2e480422-e555-07bf-aa2c-b8051fd442f1.png)

⑤ 「Restart IDE」を選択します
![スクリーンショット 2023-05-16 13.05.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0ab8eb06-4e3b-ee35-f4ab-8e5910504895.png)

⑥ 「Log in」を選択します
![スクリーンショット 2023-05-16 13.07.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/291386e2-ab1e-2af6-c43b-e7d1aee76597.png)

以下のような画面が表示されれば成功です
**ブラウザ**
![スクリーンショット 2023-05-16 13.08.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/9d7f4ea4-2da1-fd12-8e94-8debc7532857.png)

**AndroidStudio**
![スクリーンショット 2023-05-16 13.10.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/f3c381c7-36a5-69ac-ed8a-af5944a9ccde.png)

# 動作確認
提案が表示されました！
![スクリーンショット 2023-05-16 13.15.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/61aece5f-1534-7e25-ae1d-e3fac47d6367.png)

# 提案を無効にする
![スクリーンショット 2023-05-16 13.17.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e5a43073-16c3-aa93-9bed-036447ae231c.png)

# ログアウトする
![スクリーンショット 2023-05-16 13.18.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/568530ec-2cda-c6dd-e187-93c61850d0b4.png)

# おわり
今の所、有料のGitHubCopilotとあんまり変わらない気がします笑
Git/GitHub 導入編

# Gitを使う理由
Gitはファイルのバージョン管理をするために用いられる。

バージョン管理をしないと、
* 最新のファイルが分からない

バージョンを管理すると
* ファイルの最新の状態が分かる
* いつ・誰が・何を変更したかが分かる
* 以前の状態にも戻せる

# GitHubとは
GitHubは「コードのホスティングサービス」、すなわちファイルやファイルの変更履歴を、オンライン上で扱ってくれるサービスである。
<dl>
    <dt>GitHubの特徴</dt>
    <dd><ul>
    <li>プルリクエストで複数人開発ができる</li>
    <li>世界でどのような開発が行われているか見ることができる</li>
    </ul></dd>
</dl>


# Gitの初期設定
```terminal
$ git config --global user.name "github user name"
# github user nameにはgithubで登録したユーザネームを入力する
$ git config --global user.email github@example.com
# github@example.comにはgithubで登録したeメールアドレスを入力する
$ git config --global core.editor "atom --wait"
# 登録したいエディタを設定する。上はAtomの例。ほかのエディタを使っている場合は各自で調べてみてください。
```

登録できているか確認してみよう。
```terminal
# catコマンドでファイルの中身を確認できる
$ cat ~/.gitconfig
[user]
        email = github@example.com
        name = github user name
[core]
        editor = atom --wait
```
のようになっているはず。

# Gitはどのようにバージョンを管理しているか
バージョンは**コミット**（ファイル変更の記録）によって管理されている。コミットは直前のコミットを保存しているので、それをたどることで以前のバージョンを復元できる。

コミットすると**スナップショット**が記録される。これによって、バージョンを枝分かれさせるブランチや、ブランチを統合するマージといった操作が高速になり、複数人で開発するときのスピードを上げることができる。

# 大まかなデータの流れ
ワークツリー　⇄　ローカルリポジトリ　⇄　リモートリポジトリ（GitHub）

<dl>
    <dt>ワークツリー</dt>
    <dd>Gitの管理下に置かれた、実際に作業をしているディレクトリのこと</dd>
    <dt>リポジトリ</dt>
    <dd>ファイルや変更履歴などを置いておく場所のこと</dd>
    <dt>ローカルリポジトリ</dt>
    <dd>自分のPCの中にあるリポジトリのこと</dd>
    <dt>リモートリポジトリ</dt>
    <dd>専用のサーバに配置される、複数人で共有できるリポジトリのこと</dd>
</dl>

ローカル（自分のPCの内部）は
<ul>
    <li>リポジトリ</li>
    <li><b>ステージ</b></li>
    <li>ワークツリー</li>
</ul>

という3つの領域に分かれている。ステージは、変更したファイルを**一時的に**保存しておくための領域である。ステージした変更を、リポジトリに記録することを**コミット**するという。

# Gitのデータ構造
リポジトリには
<dl>
    <dt>1. 圧縮ファイル</dt>
    <dd>ファイルの内容を圧縮したもの。</dd>
    <dt>2. ツリーファイル</dt>
    <dd>ファイル名と、それに対応する圧縮ファイルを記録したもの<br>
    フォルダ構造を持たない圧縮ファイルに構造を与えている</dd>
    <dt>3. コミットファイル<dt>
    <dd>ツリー、親コミット（直前のコミット）、作成者、日付、メッセージが記録されたファイル</dd>
</dl>

が保存されている。Gitのコマンドは、これらのデータ構造に対して操作を行っている。
番外編｜回路班体験会 ~ピーポーサイレンの製作~

（本記事は岐阜大学ロボコンサークル2023度回路班体験会にて使用しているものです）
# 目標はこれ
パルス生成回路作れるようになる。
また応用した回路としてパトカーの「ピーポー」サイレンを作れるようになる。

<iframe width="560" height="315" src="https://www.youtube.com/embed/D-uZGh8DSo4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

# さっそく始めよう！

## <span style="color:red;">以下2人1組で行なう。</span>
**必要部品一覧**
- Arduino(3.3V供給用)    　 x1
- ブレッドボード  　  x1
- ジャンパワイヤ  　  x10本程度
- 抵抗器
1kΩ   　x2
2.2kΩ 　 x2
10kΩ   　x2  
20kΩ  　x2   (図中22kΩはこれで代用)
47kΩ  　x3  (図中33kΩはこれで代用)
- LED 　×5
- セラミックコンデンサー 47nF(=0.047µF)　x2
- 電解コンデンサー 22µF　x2
- トランジスタ 2SC1815　x4
- トランジスタ 2SA1015　x2
- 電子ブザー　x1
## 手順1. 回路の全体像を理解しよう
パルス発生回路
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/8de31224-9234-0d67-ddcb-8cbfc0ad7318.png)
元画像引用：[非安定マルチバイブレータによる音出し回路](http://bbradio.sakura.ne.jp/multi12/multi12.html)

ピーポーサイレンの回路
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/f95e02bf-4421-1321-6bba-541290ce9f80.png)


## 手順2. 使用する素子、基板を理解しよう
- Arduino
…【Point！】3.3V,5V,GNDの位置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/8de7e513-a8a6-0a9a-1268-6c7d78c7c623.png)


画像引用：[Arduino Uno Rev3のピン配置](https://rb-station.com/blogs/article/arduino-uno-rev3-pinout)

- 抵抗、LED、パッシブブザー
…【Point！】向きに注意
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/7dce2205-086f-4395-3f66-28e9ba6b43b5.png)


画像引用：[抵抗の『カラーコード』について！一覧表・読み方・覚え方など！](https://detail-infomation.com/resistor-color-code/)
- ブレッドボード
…【Point！】使い方を覚える
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/727113ec-cd77-6dc2-6dd5-98bce241b06a.png)


画像引用：[ブレッドボードの使い方](https://minoyalab.com/electronic-work/breadboard.html)

- コンデンサー
…【Point！】種類と極性
・セラミックコンデンサー（極性なし）
・電解コンデンサー（極性あり）
- トランジスタ
…【Point！】まずは種類と使い方
・NPN型（2SC1815はこっち 。よく使う）
・PNP型（2SA1015はこっち。たまに使う）

画像引用：[電子部品使い方：マイコン出力のスイッチ(トランジスタ１)](http://zattouka.net/GarageHouse/micon/circuit/TR.htm)

## 手順3.  パルス生成回路を作ろう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/cd0c545d-c83a-1361-83d3-74b405ef51cc.png)

**もう一度チェック！**
- 電解コンデンサーの向きは合っている？
- トランジスタの向きは合っている？
## 手順4.  ピーポーサイレンの回路を作ろう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295530/2bd6bdf3-fb24-0c51-4416-59ab22ee8f6b.png)


**もう一度チェック！**
- 電解コンデンサーの向きは合っている？
- トランジスタの接続端子は間違いない？（特にPNP型に注意。Emitter端子が回路図上部です。）

## 興味があれば調べてみよう！
- 「無安定マルチバイブレータ」とは？
- （電電は2年後期の実験でインバータ使用回路を製作）
- 「無安定マルチバイブレータ」の周波数の求め方
- 「トランジスタ」とは？

## おすすめ！ここから始めよう
イチケン　YouTubeチャンネル
｜良質な電気電子回路系動画
https://www.youtube.com/channel/UCGhudK3AIG152KrfURCSb2Q

今日から始める電子工作（Webサイト）
｜電子回路知識の初歩の初歩
https://start-electronics.com/

E-KAIRO　
｜動画で学べるArduino電子工作
https://e-kairo.net/index.php

秋月電子通商 トップページ - 電子部品・半導体 【通販・販売】
｜電子部品はここから！入門者向け組立キットが豊富
https://akizukidenshi.com/catalog/

高校教科書　電子回路　新訂版
｜高専・工業高校の検定教科書・大変良質
https://amzn.asia/d/dNvp3fo

# 参考
非安定マルチバイブレータによる音出し回路（23/5/15閲覧）
http://bbradio.sakura.ne.jp/multi12/multi12.html
この回路の動作を説明できますか？【イチケン電子基礎シリーズ】 - YouTube
https://www.youtube.com/watch?v=xjkZtUyIt7I
【Paiza問題集】標準入力メニュー/整数行の入力

# Paiza問題集
Pythonで回答

## 標準入力メニュー/整数の行の入力

### Step1 1行の整数の入力
```Python
"""
1行の整数の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__integer_row_step1
"""

# 数字を受け取る
num = int(input())

# 表示する
print(num)
```

### Step2 2行の整数の入力
```Python
"""
2行の整数の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__integer_row_step2
"""

# 入力を受け取る
num1 = int(input())
num2 = int(input())

# 表示する
print(num1)
print(num2)
```

### Step3 ５行の整数の入力
```Python
"""
５行の整数の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__integer_row_step3
"""

# numを配列とする
num = []

# 整数を受け取りnumに格納する
for i in range(5):
    num_i = int(input())
    num.append(num_i)

# numを表示する
for i in range(5):
    print(num[i])
```

### Step4 100行の整数の入力
```Python
"""
100行の整数の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__integer_row_step4
"""

# numを配列とする
num = []

# 整数を受け取りnumに格納する
for i in range(100):
    num_i = int(input())
    num.append(num_i)

# numを表示する
for i in range(100):
    print(num[i])
```

### Final問題 1000行の整数の入力
```Python
"""
1000行の整数の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__integer_row_boss
"""

# numを配列とする
num = []

# 整数を受け取りnumに格納する
for i in range(1000):
    num_i = int(input())
    num.append(num_i)

# numを表示する
for i in range(1000):
    print(num[i])
```
python-pptxを用いたセクション名の取得

## 0.はじめに
Microsoft Officeは各企業において多用されており、日々ファイルが生産される一方、自動化ノウハウは未だにマイナーな存在です。今回は「パワーポイントのセクション名取得」という中でもマイナーな話題ですが、検索しても曖昧な話が多かったので自分用メモに投稿します。
## 1.前提と知っておくべきこと
1.Pythonによる自動化、python-pptx, bs4を使用する。
2.Powerpointファイルなどはunzipすることができ、その中身はxmlファイル群などで構成されている。
3.セクション名などはファイル内の/pptx/presentation.xmlに記述されている。
4.今回は製作者のgitも見てみましたが、目当ての変数にそのままアクセスできそうだったのでbs4で取得しました。
## 2.スクリプト例
```python:section_name.py
import pptx
import bs4

path='/path-to-your-powepoint-file.pptx'
prs=pptx.Presentation(path)

#target xml is './pptx/presentation.xml'
package_parts = prs.part.package.iter_parts()
for part in package_parts:
    if part.partname.endswith("presentation.xml"):

# get soup, and get targets, which are written as attributes of 'p14'tag      
        _xml = part.blob.decode("utf-8")
        soup = bs4.BeautifulSoup(_xml, "xml")

        for section in soup.find_all('p14:section'):
            print(section['name'])
```
## 3.おわり
おわり。
Microsoft Endpoint Configuration Manager リモートコントロールを使うとセキュリティハンドシェイクに失敗すると表示される

## 事象

任意のデバイスをリモートコントロールしようとするとセキュリティハンドシェイクに失敗すると表示され、資格情報の入力を促される

## 解決

Microsoft Endpoint Configuration Managerを起動し、
管理 > 概要 > クライアント設定の
カスタムクライアントデバイス設定(すでに作成されてる場合は種類の列が"デバイス"となっているファイル)から

リモートツール > リモートコントロールとリモートアシスタンスセッションを表示できるユーザー
に表示されているユーザの資格情報を入力するorユーザーを追加することで事象解消される
【Filament 2.x】自動生成される作成ボタンの大きさを変更する

## 概要

デフォルトのボタンの大きさはこんな感じになってますよね。

![スクリーンショット 2023-05-16 12.00.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282328/4f6e7963-e596-895f-2291-65ce729cb01c.png)

[ドキュメント曰く`->size('lg')`メソッドでアクションボタンの大きさを変更する](https://filamentphp.com/docs/2.x/tables/actions#setting-a-size)らしいですが

作成ボタンのアクションは継承元の`CreateRecord`クラスの`getCreateFormAction`で定義されてるのでオーバーライドして追記します。


```diff_php:app/Filament/Resources/StoreResource/Pages/CreateStore.php
class CreateStore extends CreateRecord
{
    protected static string $resource = StoreResource::class;

    protected function getCreateFormAction(): Action
    {
        return Action::make('create')
            ->label(__('Create'))
            ->submit('create')
            ->keyBindings(['mod+s'])
            ->size('lg');
    }
}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282328/3449a808-d9dc-56ec-9b0d-27a7934d48bb.png)

はいでかくなりました。

## 一覧ページの「作成」ボタンをでかくする

アクションを生成している処理があるので`size()`を付け足します

```php:app/Filament/Resources/StoreResource/Pages/ListStores.php
class ListStores extends ListRecords
{
    protected static string $resource = StoreResource::class;

    protected function getActions(): array
    {
        return [
            Actions\CreateAction::make()->size('lg'),
        ];
    }
```
PowerAutomateから自動で予定表へ登録する時アラーム設定が入って困った話

# はじめに
以前、Qiitaにも質問させていただいてその後解決した話

https://qiita.com/aoi2021/questions/d45d46cccbdfa21a459b

## 予定表の自動登録
自分の作業でパターン化しているものをPowerAutomateに行わせたいといくつか走らせています。
しかし、どうしても勝手に１５分前のアラームが設定されてしまう。
困ったなと質問しました。
（個人の予定だけでなくグループなどの予定も登録の自動化を行いたかった為）

## 解決方法
![キャプチャ1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1737197/a309ba57-08b7-0719-8f18-5351f9b15d7a.png)

リマインダーをオンにするの項目に **「いいえ」** を設定する

## 終わり
いたって簡単な方法でしたが、当時は調べ方が悪く見つかりませんでした。
備忘録として掲載します。
【Streamlit】レイアウト(サイドバー/2カラムレイアウト/エクスパンダー)

# 事前準備

必要なライブラリのインポート
```py:
import streamlit as st

```

# サイドバー

```py:
name = st.sidebar.text_input('あなたの名前は？')
age = st.sidebar.slider('あなたの年齢は？', 0, 100, 10)

'私の名前は', name, 'です。'
'私の年齢は', age, '歳です。'
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/d777356d-05f3-dc78-ee66-29d2621a4afa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/5940123b-af98-e961-889d-99832413685c.png)


# 2カラムレイアウト

```py:
left_column, right_column = st.beta_columns(2)
button = left_column.button('右カラムに文字を表示')
// buttonが押されたら
if button:
    right_column.write('ここは右カラムです')
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/9f5a3b8d-61e9-0951-bcce-602a72526775.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/6c6229a8-f95e-62e8-2f01-72581bdfb1fa.png)


# エクスパンダ

```py:
expander1 = st.expander('問い合わせ')
expander1.write('問い合わせ内容を書く')
expander2 = st.expander('問い合わせ')
expander2.write('問い合わせ内容を書く')
expander3 = st.expander('問い合わせ')
expander3.write('問い合わせ内容を書く')
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/a7d931ec-d5ba-8dac-77f5-bdc18cd2fabc.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/a06ec0a9-2e77-331e-b515-5c6d3e7fbb0e.png)


# プレグレスバー

必要なライブラリをインポート

```py:
import time
```
### 静的

```py:
'スタート'

latest_iteration = st.empty()
bar = st.progress(30)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/27555868-8c80-3a09-0176-a85c1c65a76d.png)




### 動的
```py:
'スタート'

latest_iteration = st.empty()
bar = st.progress(0)

for i in range(100):
    latest_iteration.text(f'Interation {i+1}')
    bar.progress(i + 1)
    // 実行スピード
    time.sleep(0.1)

expander1 = st.expander('問い合わせ')
expander1.write('問い合わせ内容を書く')
expander2 = st.expander('問い合わせ')
expander2.write('問い合わせ内容を書く')
expander3 = st.expander('問い合わせ')
expander3.write('問い合わせ内容を書く')
```
自動で値が増えていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/ca6add1c-dc59-3b84-9df1-5c098a8a0f5b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/e90fb503-0332-e822-1056-fb3c0e6c28c8.png)

100になるとプレグレスバー以下の処理が実行されます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2784589/7029e84c-133f-d4a6-47a6-3f4392d41fed.png)
【初心者】Markdownで綺麗な記事を書くための5つのポイント

## はじめに

Markdownはシンプルながら強力な書式付けツールです。

その美しさは、その簡潔さと直感的な理解のしやすさにあります。
しかし、これを最大限に活用するためには、いくつかの重要なポイントを押さえておく必要があります。

今回は、Markdownで美しく、効果的な記事を書くための5つのポイントをお伝えします！

## 1. 見出しを活用する

見出しは記事の構造を示し、読者が理解しやすいようにするための重要なツールです。

Markdownでは、`#`を使って見出しを作成します。
一つの`#`は最も大きな見出し（H1）を、二つの`##`は次に大きな見出し（H2）を示します。以下に例を示します。

```
# 最大の見出し
## 2番目の見出し
### 3番目の見出し
```

## 2. リストを活用する

リストは情報を整理し、一目で内容を把握するのに役立ちます。
Markdownでは、`-`や`*`を使って無順位リストを、数字とピリオドを使って順位リストを作成します。
以下に例を示します。

```
- 無順位リスト
- 無順位リスト

1. 順位リスト
2. 順位リスト
```

## 3. リンクと画像を挿入する

リンクは読者に追加の情報を提供し、画像は視覚的な情報を追加して記事を豊かにします。
Markdownでは、次の形式でリンクと画像を挿入します。

```
[リンクテキスト](URL)

![画像の説明](画像のURL)
```

## 4. 強調と強強調を使う

特定のテキストを強調するためには、アスタリスク`*`またはアンダースコア`_`を使用します。
一つで囲むと斜体に、二つで囲むと太字になります。

```
*斜体のテキスト*

**太字のテキスト**
```

## 5. コードを挿入する

プログラミング関連の記事を書く際には、コードブロックの挿入は必須です。
バッククォート(`)を使用してコードを囲みます。三つで囲むとコードブロックになります。

```
`コード`
```


これらの5つのポイントを抑えて、Markdownを活用すれば、より見やすく、理解しやすい記事を作成することができます。
Apache PulsarによるJMSモダナイゼーション

# はじめに

本稿は、DATASTAX社ホワイトペーパー「JMS Modernisation」の執筆者による翻訳です。

また末尾に、本稿で紹介した情報に関連する、より詳細、または幅広い側面についての、ブログのリンクを掲載しています。

# Astra Streamingの提供する最新メッセージング・ストリーミング技術

レガシーメッセージングプラットフォームについて、安定性と信頼性の問題を抱えている企業は少なくありません。新しいビジネスモデル、新しいITアーキテクチャーの登場、イベントデータの増加に伴い、過去のメッセージングプラットフォー ムが、設計・導入されたときには考えられなかったような問題が発生しています。

私たちは、企業におけるこのような課題、そして、こうした課題を孕んだレガシープラットフォームからの脱却のニーズについて、頻繁に耳にするようになっています。このような状況を前にして、私たちDataStaxは、JMS、RabbitMQ、Kafkaを置き換えることのできる製品を提供します。私たちの製品は、これらの技術仕様と互換性を持っており、クライアントを変更することなく、プラットフォームを毎秒数百万のメッセージをミリ秒単位のレイテンシーで処理することのできるスケールに容易に拡張することができます。

# 従来のJMSの限界

既存のメッセージング技術におけるアプローチは、アプ リケーション間通信の基盤となるメッセージングバスから始まりました。

アプリケーションは、データを配布、または受信するためにバスを利用します。このメッセージングバスがアプリケーションの相互連携と統合のための主要な枠組みを形成していました。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176567/fb438468-f3f6-5445-fc06-ec34edbfcefd.png)

しかし、規模の拡大と共に問題が発生します。 

昨今のアプリケーション要件は、益々複雑さを増し、コミュニケーションチャネルは細分化を極めています。統合のためには、特別なインテグレーションが必要とされ、アプリケーションのサイロ化が進んでいます。様々な配信プラットフォームが乱立し、それらを流れるデータのフォーマットはそれぞれ異なっています。 

このように、従来のメッセージングプラットフォームは拡張性に乏しく、 新しい要件ごとに別のプラットフォームやインスタンスを追加する接木式のアプローチが採用されてきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176567/d7630d2d-5899-00bc-4d30-f8e747f137e9.png)


その結果、必要とされるハードウェア、オペレーティングシステム、ストレージ、ネットワーク機器、さらにバックアップ・リカバリー作業、メンテナンス要員の増大によって、コストは劇的に増加します。 

さらに、JMSのメッセージブローカーは、「ファストプロデューサー、スロウコンシューマー(fast producer, slow consumer)」問題の影響を受けやすいことで有名です。メッセージは、下流のシステムによって消費される早さを超えて、大量に上流のシステムから放出されるため、ブローカー上では、キュー内にメッセージが滞留することになります。巨大になりすぎたこのバックログデータはメッセージの損失とシステムのシャットダウンにつながる障害を誘発します。ユースケースにもよりますが、このようなタイプの障害は、軽微なもの（顧客にマーケティングメールが届かない）から重大なもの（新規クレジット申し込みのビジネスプロセスが起動しない）まで、ビジネスに多大な影響を与える可能性を孕んでいます。もちろん、復旧や修復のためのコストも無視できません。

# 解決策

Astra Streamingは、メッセージング・ストリーミング分野における最新のソリューションです。クラウドとオンプレミスの別を問わずスケールし、メッセージングのあらゆるユースケースに対応することのできる、統一されたシングル・プラットフォームが、Astra Streamingです。Astra Streamingは、従来のモノリシックなアーキテクチャの非効率性を克服しており、低レイテンシー、高スループットを効率的に実現します。そして、厳しい負荷環境下における完全なメッセージ管理を指向した設計により、メッセージングとイベントストリーミングの両方において、大規グローバルスケールでの運用を可能にします。 

Astra Streamingを導入することによって、クライアントアプリケーションの変更もしくはインテグレーションのような手間や、新しいインフラやスキルへの投資なしに、これまで説明してきた課題を解決することができます。JMSやその派生プロトコルとの互換性を持つAstra Streamingに置き換えることで、1桁のレイテンシーと高可用性を備えた、1秒間に数百万件のメッセージを扱うことのできる環境が、そしてゼロオペレーションにより、実現されます。Astra Streamingは、あなたがご利用中または、ご利用予定のクラウドプロバイダー上で、弊社のマネージドサービスとして利用可能です。 

Astra Streamingへの移行により、既存のJMS環境のコスト、複雑さ、運用の手間を大幅に削減することができます。そして、この移行は、低コスト、かつ迅速に行うことができるため、JMSのモダナイゼーションは、もはや決して困難な計画ではなくなっています。 

DataStaxの統一されたアーキテクチャーを用いることによって、既存のJMSアプリケーションは、何ら特別な変更を加えることなく、イベント駆動型アーキテクチャーを構成する要素になることができます。Astra Streamingでは、JMSやKafkaなどの既存のイベントストリーミングプロトコルと相互運用が、はじめから利用可能になっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176567/1fa32b43-5503-7da2-4cea-e701b39a4036.png)

# さらに進むには

Astra Streamingを始めるのは簡単です。 

Astra Streamingの詳細については、下記をご覧ください。

https://www.datastax.com/products/astra-streaming


DataStax Astraの試用は、 下記から、無料でアカウントを作成し、すぐに始めることができます。

http://astra.datastax.com

# 関連情報

https://www.datastax.com/jp/blog/fast-jms-apache-pulsar

https://medium.com/building-the-open-data-stack/moving-your-jms-app-from-activemq-to-apache-pulsar-9f867f772f79
Power Appsでデータソースから取得できる行数を増やす

# 結論
Power Apps編集画面の設定からデータ行の制限の値を変更することで増やすことができます。

# 前提
2023年5月16日時点での操作・仕様となります。

# 手順
1. Power Appsの編集画面にある「設定」をクリックします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3071987/737124a5-b9e2-2972-afee-a39e838e3111.png)

1. 「全般」の項目にある「データ行の制限」の値をデフォルトの500から増やしたいだけの行数に変更します。(最大2000)
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3071987/af71d3bf-25ed-10a5-fce0-43e3fcf9536c.png)

# 注意
手順にも記載しましたが、最大で2000行までしか変更できません。
ここで、「2000行までしか取得できないなら2000行以下になるように関数で絞り込んでから取得すればいいのではないか」と考えたことがありました。ですが、関数で絞り込むときに「委任できる・できない」という話が出てきて想定通りのデータが取れてこないことがしばしば起こるようです。そのあたりについてはまた別の機会に記事としてまとめたいと思いますが、他の方の記事も調べていただけるととても勉強になると思います。
[AWS Q&A 365][Batch]AWSのよくある問題の毎日5選 #58

# 1. AWS Batchにおけるジョブキューとは何ですか？
AWS Batchにおけるジョブキューとは、同じ計算環境に提出されたジョブの集合であり、優先順位と提出順に基づいて実行スケジュールが決定されます。

# 2. AWS Batchでジョブキューを作成する方法は？
AWS Batchでジョブキューを作成するには、ジョブキューの名前、キュー内のジョブの優先度、ジョブが提出される計算環境、およびキューのスケジューリングポリシーを指定する必要があります。

# 3. AWS BatchでFargateリソースを使用してジョブキューを作成することはできますか？
はい、AWS BatchではFargateリソースを使用してジョブキューを作成することができます。ジョブキューの計算環境を作成する際に、Fargate起動タイプを指定する必要があります。

# 4. AWS Batchでジョブキューの状態を表示する方法は？
AWS Batchでジョブキューの状態を表示するには、AWS Batchコンソール、CLI、またはSDKを使用します。ジョブキューの状態には、有効または無効であるか、キュー内のジョブの数、およびジョブの状態が表示されます。

# 5. AWS Batchでジョブキューにスケジューリングポリシーを設定することはできますか？
はい、AWS Batchでジョブキューにスケジューリングポリシーを設定することができます。スケジューリングポリシーは、ジョブがキュー内でどのように優先順位付けされ、スケジュールされるかを決定します。いくつかの事前定義されたポリシーから選択するか、独自のカスタムポリシーを作成することができます。
[AWS Q&A 365][Batch]Daily Five Common Questions #58

# 1. What is a job queue in AWS Batch? 
A job queue in AWS Batch is a collection of jobs that are submitted to the same compute environment and are scheduled to run based on priority and the order in which they were submitted. 

# 2. How do you create a job queue in AWS Batch? 
To create a job queue in AWS Batch, you need to specify the name of the job queue, the priority of the jobs in the queue, the compute environment that the jobs will be submitted to, and the scheduling policy for the queue. 

# 3. Can you create a job queue using Fargate resources in AWS Batch? 
Yes, you can create a job queue using Fargate resources in AWS Batch. You need to specify the Fargate launch type when creating the compute environment for the job queue. 

# 4. How do you view the state of a job queue in AWS Batch? 
You can view the state of a job queue in AWS Batch by using the AWS Batch console, CLI, or SDK. The state of the job queue will show if it is enabled or disabled, the number of jobs in the queue, and the status of the jobs. 

# 5. Can you set a scheduling policy for a job queue in AWS Batch? 
Yes, you can set a scheduling policy for a job queue in AWS Batch. The scheduling policy determines how jobs are prioritized and scheduled in the queue. You can choose from several pre-defined policies or create your own custom policy.