OmniAICreator/Qiita-1.07M huggingface dataset:
2023年末までのElixirができることを振り返る

# Elixirプロダクション開発

https://qiita.com/piacerex/items/40ec656513be75a996c0

# Elixir／Webアプリ（Phoenix／LiveView）

https://qiita.com/piacerex/items/8cd483159c93d0f05bd7

# AI・LLM（Nx／Axon／AxonOnnx／Bumblebee）

https://qiita.com/piacerex/items/f6a73a8252a3f6093b1a

# AI・LLM周辺（Scholar／Explorer／Evison／EXGBoost）

https://qiita.com/piacerex/items/fd19820bc0befe52b156

# Livebook＋プラグイン

https://qiita.com/piacerex/items/bcdcb7bc6c998335a406

# Elixir AI・MLで出来ること

https://qiita.com/piacerex/items/d4867a67c67d6f701f77#-%E6%99%AE%E9%80%9A%E3%81%AB%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E5%8F%AF%E8%83%BD%E3%81%A8%E3%81%84%E3%81%86%E3%81%8B%E3%82%BD%E3%83%AC%E4%BB%A5%E4%B8%8A

# クラウドライブラリ

https://qiita.com/piacerex/items/0ce1f05990a502a26ed7

# マイクロサービスライブラリ

https://qiita.com/piacerex/items/7e4b15e4dd9a94e58b3b

# データ操作ライブラリ

https://qiita.com/piacerex/items/2e19fd1df6ef2d7cf150

## その他ライブラリ／フレームワーク

[① 2023年の新たなライブラリ／FW編](https://qiita.com/piacerex/items/774dd91c67184bec6df1)

https://qiita.com/piacerex/items/774dd91c67184bec6df1

[② 2023年に更新されたライブラリ／FW編](https://qiita.com/piacerex/items/0c6ffb235e1146c38302)

https://qiita.com/piacerex/items/0c6ffb235e1146c38302
2023年末のElixirが出来ること⑩データ操作ライブラリ編（最新Elixirのキャッチアップと、アドカレのネタ探しに読んでください）

この記事は、[Elixir Advent Calendar 2023 シリーズ14](https://qiita.com/advent-calendar/2023/elixir) の24日目です

昨日は、 私で [「【TIPS】Elixirでループのbreak」](https://qiita.com/piacerex/items/1472eacf2f1df50138ee) でした

---

【本コラムは、10分で読めます】　※各ライブラリをお試しいただく場合は各自次第で

[piacere](https://twitter.com/piacere_ex) です、ご覧いただいてありがとございます :bow:

2023年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、[前回は「⑨ マイクロサービスライブラリ編」](https://qiita.com/piacerex/items/7e4b15e4dd9a94e58b3b)でしたが、今回は「⑩ データ操作ライブラリ編」です

:::note warn
[①2023年の新たなライブラリ／FW編](https://qiita.com/piacerex/items/774dd91c67184bec6df1)
[②2023年に更新されたライブラリ／FW編](https://qiita.com/piacerex/items/0c6ffb235e1146c38302)
[③Elixir本体／Phoenix／LiveView編](https://qiita.com/piacerex/items/8cd483159c93d0f05bd7)
[④Web／スマホ開発ライブラリ編](https://qiita.com/piacerex/items/40ec656513be75a996c0)
[⑤AI・LLM前編【Nx／Bumblebee】](https://qiita.com/piacerex/items/f6a73a8252a3f6093b1a)
[⑥AI・LLM後編【Scholar／Explorer／Evison／EXGBoost】](https://qiita.com/piacerex/items/fd19820bc0befe52b156)
[⑦Livebook＋プラグイン編](https://qiita.com/piacerex/items/bcdcb7bc6c998335a406)
[⑧クラウドライブラリ編](https://qiita.com/piacerex/items/0ce1f05990a502a26ed7)
[⑨マイクロサービスライブラリ編](https://qiita.com/piacerex/items/7e4b15e4dd9a94e58b3b)
[⑩データ操作ライブラリ編](https://qiita.com/piacerex/items/2e19fd1df6ef2d7cf150)
[⑪2023年末までのElixirができることを振り返る](https://qiita.com/piacerex/items/4ef28623d898450c0dcf)
:::

# データ操作ライブラリ／FW

## Flow

マルチコア並列データ変換ライブラリ

https://github.com/dashbitco/flow

## Broadway

同時多段データ取込／データ処理パイプライン構築／QoSライブラリ

https://github.com/dashbitco/broadway

### BroadwayDashboard

上記Broadwayのデータフローを可視化（下図）
![image.png](https://raw.githubusercontent.com/dashbitco/broadway_dashboard/4da2a5f388a7579d41b63803652796c106b74785/priv/static/broadway-dashboard-01.gif)

https://github.com/dashbitco/broadway_dashboard

### BroadwayCloudPubSub

上記BroadwayとGoogle Cloud Pub/Subを接続するコネクター

https://github.com/dashbitco/broadway_cloud_pub_sub

### BroadwaySqs

上記BroadwayとAmazon SQSを接続するコネクター

https://github.com/dashbitco/broadway_sqs

### BroadwayKafka

上記BroadwayとKafkaを接続するコネクター

https://github.com/dashbitco/broadway_kafka

### BroadwayRabbitmq

上記BroadwayとRabbitmqを接続するコネクター

https://github.com/dashbitco/broadway_rabbitmq

## GenStage

上記Flow／Broadwayのコアに用いられているバックプレッシャー（多段並行プロデューサ／コンシューマ）ライブラリ

https://github.com/elixir-lang/gen_stage

## Vex

データ検証ライブラリ

https://github.com/CargoSense/vex

---

明日は、 私で [「Elixir Chipの鼓動② 宇宙（そら）が呼ぶ声 ～君は高速分散データ処理とエッジコンピューティングの未来を見る～」](https://qiita.com/piacerex/items/4187ec0f224cca5bab38) です
スキーマに仮想フィールド（virtual field）を追加する

https://hexdocs.pm/ecto/Ecto.Schema.html

> Finally, schemas can also have virtual fields by passing the virtual: true option. These fields are not persisted to the database and can optionally not be type checked by declaring type :any.

`virtual: true` オプションを渡すことで、スキーマに仮想フィールドを含めることができます。
DBに保存する必要はないが、構造体としてフィールドがあってほしいときに使ったりします。
DBの変更はしないのでマイグレーションの必要はありません。

```elixir
defmodule NaiveTree.Categories.Category do
  use Ecto.Schema
  import Ecto.Changeset

  schema "categories" do
    field :name, :string
    field :parent_id, :id
    field :depth, :integer, virtual: true
    field :serial_number, :string, virtual: true # <- これ

    timestamps()
  end

  @doc false
  def changeset(category, attrs) do
    category
    |> cast(attrs, [:name])
    |> validate_required([:name])
  end
end

```
SSH接続する前にすべき設定

## はじめに
　SSH接続のセキュリティー対策対策をまとめました。

## これだけはやっておこう！
### ポート変更
　適当なポートに変更します。
```diff_conf
- #Port = 22
+ Port 43822
```

### 接続できるユーザーの制限
　以下の記述を追記します。
```diff_conf
+ AllowUsers 許可するユーザー名
```

### rootユーザーのログイン禁止
　優先度一番高いやつ。
```diff_conf
- PermitRootLogin yes
+ PermitRootLogin no
```

### 公開鍵認証を有効に、パスワード認証を無効にする
```diff_conf
- PubkeyAuthentication no
- PasswordAuthentication yes
+ PubkeyAuthentication yes
+ PasswordAuthentication no
```

### 不要ならX11フォワーディングも無効にする
```diff_conf
- X11Forwarding yes
+ X11Forwarding no
```

## おわりに
　これで安心してSSH接続できますね。
IT職種見聞録①　エンジニアも十人十色（①CAE（※Computer Aided Enginner（ing）））

<h1>人生で初めてプログラミングをある程度勉強したり転職フェアで人事や広報の方々の話を聞くまでは、エンジニアは「エンジニア」だけと思ってました。(-_-;)</h1>

が、転職フェアや商工会議所を練り歩く中で、**エンジニアにも多様な種類がある**ことを知りました。

　つい最近、私はこの部門がある、とある会社の別部門で内定をいただきました。以下異なる所があれば、この部門の方と仕事で関わらせていただく中で、随時修正します。なお、内定をいただいた会社の性質上、他の多様な種類のエンジニアの方々との折衝のようなものが多い気がしています。今後転職活動をされる方のレガシーになれば幸いです。
 
 （その時までというか、死ぬまで今後お世話になる会社でなんとか生きて延びていたい(-_-;)・・）
 <h1>得意技：解析ソフト、CAD、Python、C系、時々数学</h1>

私は大学・大学院で6年間純粋な？手計算ガリガリする系の数学（微分方程式やフーリエ級数・流体力学など）を勉強していた世間一般から見るとおそらく少数民族で、たまたま転職フェアを練り歩くなかで経歴を話していたら、このCAE（Computer Aided Enginner）の存在をしりました。
____
ざっくり言うと、 **CAE（CAE解析とも言う**）は

<h3>衝突や強度、振動、流体等の物理的な現象について、プログラミングや数値計算を用いて「シュミレーション」を行うエンジニア</h3>

らしいです。例えば

**・自動車や航空機、建築などの安全性の検証**
**・製品の最適化（＝どうすれば使いやすく性能が良くなるか調べる）**
**・より性能を上げるための設計の提案**

などをするようです。現役の方の話を聞いた限り、「データサイエンティストと組み込みエンジニアを融合して2で割った？？？」みたいなイメージです。

 <h1>得意技：余分な試作機の製作や実験回数の削減（＝上手く噛み合えば大幅な残業削減）、設計プロセスの効率化</h1>

 考え方的には雑ですが次のフローみたいな感じらしいです。

<details>

 飛行機とか自動車とかその他諸々何かを作りたい
     👇
 設計するか(´д｀)
     👇
 売れるようにより良い製品を目指して試行錯誤_:(´ཀ`」 ∠):_うぅ・・・
     👇
 とりあえずたたき台できたぜヽ(○´∀｀)人(´∀｀○)ﾉ
     👇
 試作品作って実験ガンガンしたいなぁ(〃ﾟσ￢ﾟ〃)ｼﾞｭﾙﾘ....
     👇
 工工工ｴｴｴｴｴｴｪｪｪｪｪｪ(ﾟωﾟ)ｪｪｪｪｪｪｴｴｴｴｴｴ工工工・・そんなに金かかるん？？？
     👇
 **CAE**　シュミレーションしたら経費抑えられるよ>__(・∀・)ﾆﾔﾆﾔ
</details>

<h1>求められそうな資質</h1>

職務性質上、現役の方の話を聞く限り、観察力・実際に工場等でエンジニア以外の人も手にする製品を作る方々との折衝・コミュニケーションも重要なように感じました。

 <h1>CAE懇話会というのもある。　

 CAEのエキスパートの方々が集まる社外交流会。RubyのRuby会議やPythonのPyConに匹敵するようなもの
 
<h1>今後、転職活動を始められる方へ</h1>
私のような、特にエンジニアとしての実務未経験からの（さらに強いていうなら地方の田舎在住の）転職活動を経験しうる人が見落としがちな注意点を最後に2つあげておきます。

____

<h2>注意1：地域間の言語需要ニーズのバランスの違い</h2>

https://qiita.com/thinking-weed/items/28d381b9475d854f34f1

<h2>注意2：フロントエンド・バックエンドという分け方とは別に言語等にも属性・得意分野がある</h2>

・業務系（何らかのシステムを作る：在庫管理・CRM（顧客情報管理等）等）　⇒　Java、SQL、PHP　等

・組み込み系（車のカーナビ・トイレや家電製品に入っているプログラムを作る）⇒　Java、C#　等

・FA（Factory Automation：工場のこれまで人がやっていた危ない作業を代替するロボットを作る）⇒ C#　、 C+ 等

・PCのアプリ開発系（≒動くCRUD等の機能をもつHPのようなもの）⇒ Java、Go 等

・スマホのアプリ開発系　⇒　Kotlin、Swift、Flutter　等

・機械学習とか利用してAI作る系、データサイエンティスト　⇒　Python、R、Rust　等　

・Webデザイン系　⇒　Adobeソフト、Figma、React や Vue.js、Angular 等のJavascriptのフレームワーク、Java、WordPress　等

・職人的な人による作業を必要とする工場内での業務効率化系　⇒　VBA、Python　

※この中でどれがいいとかいうわけではないです。
このAdvent Calendarについて最終日前日に書く

# 注意事項
本記事は「[富士通株式会社 デジタルシステムプラットフォーム本部 Advent Calendar 2023](https://qiita.com/organizations/fj-dspu)」の24日目の記事です。

記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません(お約束)。

# 「このAdventCalendar」とは
「富士通株式会社 デジタルシステムプラットフォーム本部 Advent Calendar 2023」は名前の通り富士通株式会社の社内IT部門であるデジタルシステムプラットフォーム本部のメンバーのAdventCalendarです。有志の活動の為、業務命令的な強制力はなく、人間関係も同じ組織に所属しているだけでしがらみは(あんまり)ありません。
よくあるOrganizationのAdventCalendarだと思います。

# なんでわざわざ記事にするのか？
この企画が実現するまで、意外と~~面倒くさかっ~~…配慮すべきことが多かったので、おなじように悩む人たちにとって参考になればと思い、記事に残します。AdventCalendarに限らず「私のアイデアは良いと思うのに他の人達が付いてこない！」とお悩みの方も参考にしていただければ幸いです。

# 1.仲間集め
まず仲間を集めます。一人で全部やるのは大変なので身近にいて価値観を共有できる相棒を探します。(今回は @ishibashi-futoshi さんが相棒です)
相棒は「AdventCalendarやろうよー」「いいよー」くらいのノリでやってくれる人がオススメです。この相棒探しに苦労するくらいなら相棒はナシでやり切った方がいいかもしれません。

相棒を見つけたら、そこから更に仲間を増やす方法を考えます。
仲間になってくれる人がAdventCalendarを知っているとは限らないので、一体それは何物で具体的に何をすればよいのかを明確にします。ここをやっておくと面白そうだと言って参加してくれる人が増えます。
今回やったのは①サンプル記事作成、②ルール作成、③社内SNSでの公開、④知り合いへの声かけです。特に②ルール作成はシンプルかつ、参加者が気にするところをちゃんとカバーするのが大事です。今回は社外秘情報は扱わないことと悩んだ時の相談先を明確しておきました。情報漏洩ダメ絶対です。

# 2. 意義や理由を作る
1で集めた仲間以外の人たちに説明する用に企画の意義ややる理由を用意します。(ただ、今回は関係者の皆さんがあたたかく見守ってくれたので出番はありませんでした)
初めてやる活動は、何故やるのかや結果どんないいことがあるのかについて周囲の理解を得ることが難しいです。なので、先手を打って他の人達の関心事を出発点にした「わかりやすい意義や理由」を用意します。できるだけわかりやすく想像しやすいものが望ましいので、組織活動や社会課題と紐づいていると良いでしょう。万人受けする必要はないので、意思決定者の課題感狙い撃ちでも良いかもしれません。
今回は「今年1年の自身のスキルや経験の棚卸」と「他のメンバーの活動を読んでピアラーニングできる」にしました。お金や時間などのコストがもっとかかる場合はもっと理論武装が必要になりますが、ほぼゼロコストの活動なので自己研さんでOKと判断しました。

# 3. 実績を作って次に活かす
これが一番重要だと思います。集めた仲間も、途中で作ったルールも、アウトプット(記事)も次の企画で使える過去実績になります。
実績ゼロの状態で新企画をおこそうとすると「アンタ誰？」「それ何？」「ホントにできるの？」という質問に一つずつ答えていかないといけなくて大変です。でも、小さな実績を事前に作っておくと、次から「この活動をしていた者です。関連URLはコチラ」で済みます。楽々です。
また、今回執筆された記事を読んで「おや、ここまで書いて大丈夫なんだ」「それならこれも書けるかな？」という加減が見えた人もいると思います。「AdventCalendarができるならXXも良いんじゃない？」みたいにイメージが膨らんだ方もいるかもしれません。実績をコツコツ作って次の企画に活かすことで、どんどん複利的にプラスになっていくと思います。

…というわけで、来年も継続でAdventCalendarを企画し、更に発展させていきたいと思います。またお会いしましょう！メリー・クリスマス！
私とUiPathの2023年

間に合った…かな？はっしー@kintoneTHです。


#### はじめに
本記事は、2023年12月開催の[「UiPath (produced with UiPath Friends) Advent Calendar 2023」](https://qiita.com/advent-calendar/2023/uipath)の最終日ブログです。

#### 2023年一年振り返って
全体を振り返るとUiPathFriendsの皆様に背中を押していただき、思いがけない挑戦になった一年でした。
特に人生でやったこともない「イベント司会」という大役を[「UiPath Friends Festival 2023」](https://www.youtube.com/live/nNtXLFh2KW0?si=IA9y2YhrU93vmCDC)という年一回の大きなイベントで務められたことは今後の自信と経験につながるし、つなげて行きたいと思います。

実は、2023年始はUiPathと完全に離れていて、新しく買い換えたPCにインストールしていなかったくらいです。当時唯一自力で作ったRPAも「旅先候補に向けた定期調査」の簡素化が目的だったのでコロナ禍だったということから調査自体を辞めていた、という経緯があります。

kintoneのコミュニティーでいろんなところに顔出したり、X（旧Twitter）で交流する最中でふとしたキッカケでUiPathでkintoneアクティビティが出た話を聞き、再びUiPathをやってみようと決意しました。

4月のもくもく会直前でＰＣにインストールして、復習がてら、かつて作ったRPAを見直そうとしたら、設定が上手くいかず出てこないという事故がありました。
ただ、たかだか1分かからないRPAで造りも甘かったのはわかっていたので、蘇生をあきらめて、思い切って「最初から造りなおそう！」と気持ちを切り替えました。
これが、功を奏し、上手くいったどころか、私が離れていた間に作りやすくなったことに感動しました。
助けていただいたこともあり、最後はデモを披露することができました。その節はありがとうございます。

それから、実務で必要かは脇に置いといて「教材」として「インボイス番号逆引き検索を自動化」に取り組んできました。これも「もくもく会」で時としてフォローいただき、なんとか「1検索1件」なら抽出できることに成功しました。

[「UiPath Friends Festival 2023」](https://www.youtube.com/live/nNtXLFh2KW0?si=IA9y2YhrU93vmCDC)でＬＴをするために、実は自社ではやってもいない「kintoneで業者マスタ管理」するところからインボイス番号を逆引き自動化をくっつけて「kintoneアクティビティを使ってみた」のＬＴネタができました。兼ねてよりマスタ管理自体をkintone化したいと思っていたので会社の上司を本イベントのアーカイブを見せたところ大変好評でした。

#### 2024年の目標
UiPathアソシエイト取得を目標にそもそもの基礎知識を付けていくようにします。肝心のkintoneアクティビティを使うイメージはできても実際に動かすのに基礎知識が足りてなくて思うようにできない、ということはわかっているのでいろいろ作ってみて、「月のアカウント料金を私一人で元が取れるくらい活用できる」レベルを目指していきます。ただ、メンテナンスが必要なのは今社内で使っているものを見ていて感じるところなので「一過性だけど時間がかかる業務」の自動化を目指していければと思ってます。

#### さいごに
こんな超初心者も同然の私を各イベントで交流してくださる「UiPathFriends」は本当にいいコミュニティーだと思います。今後も私のやり方で、できる範囲内で協力していきたいと思いますのでよろしくお願いします。
Canva有料版のここがスゴイ！！

:::note warn
宣伝ではないです
:::


いやいやCanvaは無料版でも充分すごいよ！とお思いのあなたへ。
たしかに無料版でもやりたいことが叶うでしょう！
しかし、あなたの気づいていないクリエイティビティまで引き出し、かつそれがものの数分でできる。
それがCanva有料版なのです。

# 自己紹介
倫理学専攻卒業の社会7年目。
┗PHPでデータ連携系の開発を5年。
┗プロダクト部門所属のCS/CXを担当する部署のマネージャー2年目。
新婚1年目。

# Canvaとは
https://www.canva.com/
聞いたこともないよという人に説明するとしたら、すごいパワポみたいな感じです。
パワポ感覚で、フォトショで作ったような成果物ができます。
Canvaでできる一般的な嬉しいことはググると沢山出てくるので、エンジニア目線での使いどころを共有します。

## すごい①使えるテンプレートが25万点から61万点に増える
Canvaには、あらゆるシーンに対応できるテンプレートが登録されています。写真を入れ替えるだけでyoutubeのサムネとして活用できるような内容が多数あります。
それが有料版になると3倍！
Qiitaを書いている皆さんからしたらイメージ湧くかと思いますが、エンジニアはアウトプットする仕事。今日からCanvaでカッコいいサムネイルを付けてみてはいかがでしょうか？

## すごい②背面透過（背面除去）のクオリティが高い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474845/4f089fba-7f67-649c-24b6-bdd854d68103.png)
パワポにもついている背面透過。
わざわざCanvaを使わなくても良いよというご意見もあるでしょう。

実際に精度を比較してみます。
インコがほわほわしていて境界線がどこか難しいこちらの写真
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474845/231d0e02-c638-40c9-696e-f4a6523d91c0.png)

▼パワポ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474845/37e7708f-edb6-5cfc-d8cb-ec1a37b6e273.png)
壁の写真
▼Canva
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474845/6959e219-1e14-9e39-e8b8-20044976583b.png)

インコのほわほわ部分も一発で切り抜きできています。
そして手の部分！全く違和感なく切り抜きできていますね。
お好きな背景と重ねて自由自在に写真入りの制作ができます。

## すごい③ブランドキットが作れる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474845/7993af0a-ddb2-e7a6-3149-b1671c05bbf6.png)

ブランドロゴを登録しておくことで、使われている色を抽出して作成したスライドに一気に適用させることができます。
Amazon Connect 通話セッション数上限緩和申請とService Quotasでの確認

ジャーニーマン( @beajourneyman )です。

今回は「セゾン情報システムズ Advent Calendar 2023」のシーズン2の16日目の記事になります。シーズン2が立ち上がって後追いで追加エントリーしました。

# 今回のテーマ「Amazon Connect の通話セッション数上限緩和申請」
既存アカウントは、すでに適切な通話セッション数で運用されており、普段は実運用の中で、実際に利用されたセッション数をモニタリングしています。

これまで、既存アカウントで実運用中に拡張を行ってきましたが、今回は要件時点で必要な通話アカウントセッション数を見込んでいる状態で通話セッション数上限緩和を行ったので、申請と確認についてまとめます。

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/amazon-connect-service-limits.html

ご注意：本エントリーの Amazon Connect のコンソールは基本的に「日本語」を選択しております。また、サポートケースを直接起票できない他社提供の請求代行を使っている環境の話しとなります。

# 本番運用開始前の通話セッション数上限緩和申請
では、上限緩和申請をしていきます。請求代行のリクエストフォームから通常の上限緩和申請と同様の申請を行います。以下にテンプレートを掲載します。

>＜ビジネスへの影響詳細＞
>お客様の業務改善を行うため新たにロボットコール(IVR)導入を推進しており、希望受架電量を実現しないと受架電業務に支障があるため。
>
>＜件名＞
>Amazon connect 最大同時接続数のセッション上限緩和のご依頼
>
>＜内容＞
>Amazon Connectにてロボットコールを行うため、
>最大同時接続数のセッション上限緩和のリクエストをいたします。
>
>利用目的：日本の携帯電話向けロボットコールシステムの本番稼働のため
>利用頻度：本番架電では1日に最大n,nnn件程度
>背景：同種アカウントの過去実績から必要通話セッション数を見積もれているため
> 最大同時接続数のセッション：10→nnn
>
>AWSアカウントID：
>
>ConnectインスタンスARN：
>arn:

今回は適正な通話セッション数を見積もれている前提で申請しておりますが、過去の実績から推定できているためです。新規で行う場合は、少ない呼量で本番運用を開始して徐々に通話セッション上限を緩和していく方法もあります。Cloud Watch で受架電のセッション数のメトリクスを取得し日ごと月ごとの傾向を把握した上で、対策する方法もあります。

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/monitoring-cloudwatch.html#connect-cloudwatch-concurrent-call-quota

# Service Quotasでの確認と注意点
通話セッション数の上限が緩和された当該アカウントで実際に確認します。メニューから Service Quotas > AWS のサービス > Amazon Connect でサービスクオータの一覧に遷移できます。対象のサービスクォータは以下となります。確認したところ196個ありました。絞り込みをすると良いでしょう。

`Concurrent active calls per instance`

インスタンスあたりのアクティブな同時呼び出しの数：現在のリージョンで、このインスタンスで同時にアクティブにできる呼の最大数。

＜問い合わせのカウント方法 セクション＞

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/amazon-connect-service-limits.html#contact-counting-criteria

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155285/965df146-06f8-e0aa-15d4-057cbe8e68df.png)

この1欄でのポイントは3点です。

1. 水網掛けでアップデートについての注意があるコト。
2. 表示されている「適用されたクォータ値」はアカウントに対して設定されているコト。
3. 「調整可能性」が「リソースレベル」であるコト。

## 1.アップデートについての注意
注意には以下の説明があります。今回は大幅な引き上げかつ請求代行のリクエストを全で艇ではあるため該当しませんが、直接リクエストしてダッシュボードで状況を確認できるとスピードアップにつながりそうです。

> リソースレベルで調整可能なAmazon Connectクォータ（インスタンスごとの電話番号など）については、クォータ名をクリックしてクォータの詳細ページに移動し、クォータ増加を要求するインスタンスを選択することで、インスタンスレベルでクォータ増加を要求できるようになりました。

https://docs.aws.amazon.com/ja_jp/servicequotas/latest/userguide/request-quota-increase.html

##  2.と3.「適用されたクォータ値」とリソースレベルの場合のクォータ値は異なる
一覧で表示されている「適用されたクォータ値」はアカウントに対して割り当てられている値となります。デフォルト10のままです。確認するには、該当のサービス名称をクリックして、詳細画面に遷移し「リソースレベルのクォータ」タブで、 **対象リソース単位で割り当てられた「適用されたクォータ値」** で確認する必要があります(添付右下の灰色囲み)。

![セッション数_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155285/11116b82-8522-42e4-dfa8-27d26fe75ab7.jpeg)

日本語コンソールのサービスクオータ一覧で「適用されたクォータ値」とあり、か「調整可能性」の欄に”リソースレベル”と表示されているので、個人的には誤解しやすいと感じました。念のため、AWSサポートに問い合わせて、サービスクォータ一覧で表示されている「適用されたクォータ値」がアカウントレベルに対してであるコトを確認しました。同アカウントで別の Amazon Connect インスタンスを立てる時には同様にデフォルト10が適用されます。よって、今後もインスタンスを立ち上げた後に、リソースレベルでん通話セッション上限緩和申請が必要になります。

Amazon Connect 通話セッション数上限緩和申請とService Quotasでの確認と注意点についてまとめました。ご参考になれば幸いです。

以上です。
MDN 翻訳コミュニティ 2024 年の活動予定

## 振り返り

今回のアドベントカレンダーは、おかげさまで完走出来ました。

@debiru さん
@hmatrjp さん
@potappo さん
@PrettyUcccchy さん

※アルファベット順

ご協力有難うございました。

## 2024 年の活動

確定、ほぼ確定の活動を紹介します。

### 1月

- 2024年1月20日(土) 13:00～17:00
- [【オンライン開催】2024年1月20日(土)【第65回】みんなで MDN を翻訳しよう！翻訳コミュニティ定例ミートアップ！ ](https://mozilla.doorkeeper.jp/events/167693)

### 3月

- 2024年3月10日(日) 10:00～16:00
- [Open Source Conference 2024 Tokyo/Spring](https://event.ospn.jp/osc2024-spring/)


2024年2月以降の翻訳ミートアップは決まっていませんが、毎月第三土曜日前後に開催予定です。

決まり次第、皆様に [Door Keeper](https://mozilla.doorkeeper.jp/) 等で告知させていただきます！

MDN Web Doc 翻訳コミュニティは、英語に興味のある方、翻訳に興味のある方大歓迎です。

下記 SNS にご連絡下さい。

- [X(旧Twitter)](https://twitter.com/mozillajp)
- [Slack](https://mozillajp.slack.com/)
- [Door Keeper](https://mozilla.doorkeeper.jp/)

2023 年は、お世話になりました。
2024 年もよろしくお願い申し上げます。
PolarDB インスタンス仕様の 汎用(Genaral)と 専用(Dedicated)における、パフォーマンスと価格の差について考察してみた

# 結論
PolarDB for MySQL 8.0.2 パフォーマンス ホワイトペーパーと、インスタンス仕様の価格表から読み解くと、汎用(Genaral)と 専用(Dedicated)の仕様において、全体的に値段の差はほとんどなく、**47%の性能のアドバンテージ**を持っている事、ストレージスペースとIOの性能差が出てくる事を考えると、<INS>**専用(Dedicated)の方がリーズナブル**</INS>だと考えます。

ホワイトペーパーの概要については、[こちらの記事](https://qiita.com/Max-Masato/items/39364bad327b44ac841f)をご覧下さい。

# 汎用(Genaral)と専用(Dedicated)とは？
処理を実行するインスタンスは、汎用(Genaral)と専用(Dedicated)の2種類のタイプから選択できます。
他のCloudの場合は、専有サーバー(物理サーバーを専有)か、共有サーバ(マルチテナント型サーバー、もしくはある一定のサーバー群内で利用)かのサーバ利用体系の違いで語られることが多いですが、下記の説明文章を読む限り、VM(Virtual Machine)間でリソースの共有があるかどうかの違いと理解しました。具体的には、CPU/MemoryがOver Commitできるかどうかが焦点かと推測します。その証拠に「専用ホスト」と言うインスタンスタイプも存在します。

### 汎用(Genaral)
- CPUなどのアイドル状態の計算資源を、同一サーバ上で稼働するクラスタ間で共有します。
- リソースの共有により、低コストで多数のクラスタを導入できます。
- 費用対効果が優先されるシナリオ

### 専用(Dedicated)
- 専用クラスタは、CPUなどの割り当てられたすべての計算リソースを占有します。
- このクラスタは、同じサーバ上で実行される他のクラスタと計算リソースを共有しません。これにより、クラスタの信頼性と安定性が向上します。
- 費用より信頼性が優先されるシナリオ

# 考察1 : 専用(Dedicated)が47%のRead/Write性能のアドバンテージを持つ
PolarDB for MySQL 8.0.2 パフォーマンス ホワイトペーパーから、汎用(Genaral)と専用(Dedicated)で同じ条件でテストをしている結果が1件だけ存在したので、それを根拠にしています。
もう少し、いくつかパターンがあれば傾向値が見えてきますが、参考情報として記載しておきます。
QPS、TPS共に、1.47倍＝47%の性能アドバンテージが、専用(Dedicated)側にあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/5083c201-232c-8c10-f689-438092b6cc84.png)


# 考察2 : インスタンス仕様の価格表から、差を読み解く
PolarDBのコンソールにおいて、インスタンスタイプの仕様から、その仕様の詳細と、価格を表にしてみました。
仕様が似通っている部分を比較すると、全体的に値段の差は、ほとんどなく、47%の性能差を考えると、専用(Dedicated)の方がリーズナブルだと考えます。
 - 16コア以下だと、ストレージのIOPSで差があるものの、価格差は微小
 - 16コア以上だと、ストレージスペースやIOPSが、専用で有利になる
 - polar.mysql.x8.2xlarge だと、専用の方が逆に安くなるので、ここらへんのレンジでは、このインスタンスがオススメ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/d08aa49c-51a5-6e93-caa7-ef1acca5afad.png)

# 最後に

性能比較については、エビデンスが少ないので深掘りの確認が必要かと思いますが、CPU/Memoryの性能のアドバテージがあり、かつインスタンスタイプによりストレージスペースとIOPS性能のアドバンテージも大きくなるので、価格差が思ったほどないことを考えると、専用(Dedicated)の方がコストパフォマンスが良いのではないかと推測します。

# 参考文献

https://www.alibabacloud.com/help/en/polardb/polardb-for-mysql/performance-test-results-of-polardb-for-mysql-8-0-2-cluster-edition

https://www.alibabacloud.com/help/en/polardb/polardb-for-mysql/comparison-between-general-purpose-and-dedicated-compute-nodes
【GitHub Pages】1分30秒でWebサイトを立ち上げる

## TL;DR

1分30秒でGitHub Pagesでウェブサイトを立ち上げ、hello!表示できるサイトを立ち上げます！！！

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

## 必須スキル

- GitHub、Gitの基礎的な操作ができること

## 手順の概要

- Repositoryを新規作成してCloneする
- index.htmlを作成する
- index.htmlを編集し、bodyに任意のメッセージを書く
- CommitしてPushする
- 設定からGitHub Pagesを有効にする
- GitHub Actionが勝手に始まるので見守る
- Deployが完了したらサイトを確認する

これだけです。作業の半分くらいはGitHub Actionが頑張ってくれてるのを見守る時間なので、作業時間は理論値で40秒くらいだと思います。

## 1. Repositoryを新規作成してCloneする

流石に誰でもできるので省略します。

## 2. index.htmlの準備

このような階層構造になれば大丈夫です。ファイル名は必ず`index.html`にしてください。

![スクリーンショット 2023-12-25 23.12.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628782/a727df66-8d11-12fe-72c9-73fc0d615b6b.png)

今回はシンプルなサイトを作るチュートリアルのため、内容は全然記述していませんが、このリポジトリ内に.jsや.cssを配置して読み込ませることもできます。

## 3. CommitしてPushする。

流石に誰でもできるので省略します。

## 4. 設定からGitHub Pagesを有効化する

リポジトリのSettingsに移動し、Pages→Build and deployment→Branchを`main`に設定します。

![スクリーンショット 2023-12-25 23.15.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628782/b019e366-3735-80a3-5983-eb5d8927de1e.png)

## 5. GitHub Actionを見守る

Actionsタブ→最新の`pages build and deployment`をおし、走り出したActionを確認します。

![スクリーンショット 2023-12-25 23.17.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628782/dbc759b9-bd61-141e-f9ec-36bc9e45cf10.png)

数十秒まつと、deployが終了するので、表示されたリンクにアクセスします。

![スクリーンショット 2023-12-25 23.18.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628782/ff3b40a8-b20a-57b3-1d73-dd3d99475890.png)

## 6. できたサイトを確認

サイトが公開されました！！！

![スクリーンショット 2023-12-25 23.19.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628782/435060a8-1927-e914-3a73-593e17eca0c1.png)

## 補足

- これでindex.html（トップページ）ができたので、このリポジトリ内にhtmlファイルを追加していくことでサイトのページ数を増やすことができます。
- cssやjsも使えます。
- 大体なんでもできます。ただし動的サイトは作れず、静的サイトのみという制限があります。
- 別に僕はhelloを言うサイトをみんなに作って欲しいわけではなくて、サイトを立ち上げるハードルって意外と低いんだよってことを伝えたかっただけです。
今年の振り返り

## はじめに
　今年の振り返りをしたいと思います。今年は、VPNで遊ぶところからはじまり、途中からPythonにハマっていった感じでした。

## AdventCalendar2023で投稿した記事
　AdventCalendar2023に参加しました。Qiitanのぬいぐるみがほしかったので、頑張って25記事書きました。
### １日目
https://qiita.com/cyber-yuito723/items/51476d328ddaa16f6bd5
### ２日目
https://qiita.com/cyber-yuito723/items/9eb4b5431318c3abd26c
### ３日目
https://qiita.com/cyber-yuito723/items/16f859f2a3b27c2a045d
### ４日目
https://qiita.com/cyber-yuito723/items/c858cc2ef42313424000
### ５日目
https://qiita.com/cyber-yuito723/items/c53ccf2116ba32e95ef6
### ６日目
https://qiita.com/cyber-yuito723/items/06f63155f0f7e3c26b0c
### ７日目
https://qiita.com/cyber-yuito723/items/e2d004d75690bd5cdbda
### ８日目
https://qiita.com/cyber-yuito723/items/13d9ddafe0f10bb8d2b7
### ９日目
https://qiita.com/cyber-yuito723/items/9c5ec2e70437b4f7f23c
### １０日目
https://qiita.com/cyber-yuito723/items/764cfbbab97da9b6b8c9
### １１日目
https://qiita.com/cyber-yuito723/items/83a2bb988e2ac122f011
### １２日目
https://qiita.com/cyber-yuito723/items/deeaa7db7cfc0c8b9ab1
### １３日目
https://qiita.com/cyber-yuito723/items/d56667b0fcb15c09e4a4
### １４日目
https://qiita.com/cyber-yuito723/items/91f818ae08d582506af3
### １５日目
https://qiita.com/cyber-yuito723/items/bdc1f54a35aa59ebd390
### １６日目
https://qiita.com/cyber-yuito723/items/2346b5d068aa5d7ea6e5
### １７日目
https://qiita.com/cyber-yuito723/items/84e7fd31582c807b9e2d
### １８日目
https://qiita.com/cyber-yuito723/items/f4732a30eb03373af013
### １９日目
https://qiita.com/cyber-yuito723/items/b69e5feee46a949c8e7a
### ２０日目
https://qiita.com/cyber-yuito723/items/4f5480d42b2ba8481e7f
### ２１日目
https://qiita.com/cyber-yuito723/items/fd9fa3dd9dfe4e3d6f4f
### ２２日目
https://qiita.com/cyber-yuito723/items/fe48d73a90b1b724fcce
### ２３日目
https://qiita.com/cyber-yuito723/items/3c7cddeeee1890beacba
### ２４日目
https://qiita.com/cyber-yuito723/items/b18c198c7dcca4750b44
### ２５日目
https://qiita.com/cyber-yuito723/items/dc43ec29768164edcb60

https://qiita.com/cyber-yuito723/items/baeb4e79d44c53096244

## １年間で身についたこと
* Pythonでプログラミングする（アプリ開発をしたかったため）
* VPN(WireGuard)の扱い方
* ドメインの管理方法
* 仮想マシンの扱い方（主にHyper-V）

　大まかに分けてこんな感じでした。来年はWebアプリ開発などもしていきたいと思います。

## おわりに
　自分のスキルアップのために努力していきたいと思います。また来年もアドベントカレンダーに参加しようと思います。
ブラウザでリモートデスクトップするぞ！ ～Apache Guacamole編～

## はじめに
　ブラウザでリモートデスクトップ接続を利用する方法はnoVNCなど、いくつかあります。その方法の一つであるApache Guacamoleを利用するための手順を記事にしたいと思います。

### 環境
Ubuntu 20.04 LTS

## どうやって実現するのか
　中継サーバーをDocker Composeで立ち上げる方法を紹介します。DockerはUbuntuにインストールされていることを前提に進めていきます。インストール方法は以下の公式サイトに載っています。

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

## Docker Composeでの設定
### `apache_guacamole`という作業ディレクトリーを作り、その中で作業します
```shell
mkdir apache_guacamole
cd apache_guacamole
```

### `docker-compose.yaml`を作成します
```shell
nano docker-compose.yaml
```
```yaml
services:
  mysql:
    restart: always
    container_name: guacamole_db
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: rootユーザーのパスワードを設定
      MYSQL_DATABASE: apache_guacamole
      MYSQL_USER: SQLのユーザー名を設定
      MYSQL_PASSWORD: MYSQL_USERのパスワードを設定
    volumes:
      - ./dbinit:/docker-entrypoint-initdb.d

  guacd:
    restart: always
    container_name: guacd
    image: guacamole/guacd:latest

  guacamole:
    restart: always
    container_name: guacamole
    image: guacamole/guacamole:latest
    environment:
      GUACD_HOSTNAME: guacd
      MYSQL_HOSTNAME: guacamole_db
      MYSQL_DATABASE: apache_guacamole
      MYSQL_USER: 設定したSQLのユーザー名
      MYSQL_PASSWORD: 設定したMYSQL_USERのパスワード
    depends_on:
      - guacd
      - mysql
    ports:
      - "8080:8080"
```
　8080ポートを利用する記述が含まれているので、`ufw`コマンドなどで適宜、8080ポートを解放する必要があります。

### 必要なディレクトリーを作成します
```shell
mkdir dbinit
```

### MySQLの初期化スクリプトを出力します
```shell
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > ./dbinit/initdb.sql
```

## コンテナの起動
　先程の作業ディレクトリーでコンテナを起動するコマンドを打ちます。
```shell
docker compose up -d
```

## ログイン
　`http://サーバーのアドレス:8080/guacamole/`にアクセスするとログイン画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/01d9091d-8dc7-9928-82bb-07bcd2a63e3a.png)
　初期アカウントのアカウント名とパスワードはどちらも`guacadmin`です。

## おわりに
　この記事の方法でブラウザからリモートデスクトップ接続を利用することができました。この環境が整えば、デバイスやＯＳを選ばずに、どこからでもアクセスすることができますね。
Go入門したい人におすすめの学習方法6選

## はじめに
こんにちは、もみです！

大学で情報工学を学びながら、Web系エンジニアを目指している学部2年生です。
Go言語の学習を半年前に始め、学生であることの時間的利点を生かして、複数のGo言語学習リソースを学んできました。

昨今、Go言語はそのシンプルさや大規模開発への適合性などさまざまな魅力から人気を集めています。
企業でも採用されることが増えており、Go言語を学び始める人も増えています。

今回の記事では、これからGo言語に入門する人へ、私が実際に試してとくに良かった学習リソースを紹介します。


## 対象読者
- Goに入門したい人
- プログラミング初心者〜中級者
- 自分にあった学習リソースを探している人

## プログラミング未経験者向け

[Progate Go](https://prog-8.com/courses/go)
- プログラミング未経験者でもつまずきにくい
    - 環境構築が不要
    - コードの自動採点がある
    - イラストや図などを用いたわかりやすいスライド解説
- 基本的な内容、簡単な内容のみで構成されており、はじめの一歩に最適


## プログラミング経験者向け

### コードを書きながら学ぶ

[A Tour of Go](https://go-tour-jp.appspot.com/welcome/1)
- Go入門の王道
- 完全無料の公式チュートリアル
- ブラウザ上にて直接Goを実行できるため、今すぐ始められる
- 網羅的な構成になっているため少しボリュームがある
    - まずは一部を進めてGoの感触を掴む
    - 書籍や他の学習リソースと併用して、理解が足りない部分のみ重点的に学ぶなどの使い方も


### 書籍で学ぶ
[Goプログラミングエッセンス](https://www.amazon.co.jp/Go%E8%A8%80%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A8%E3%83%83%E3%82%BB%E3%83%B3%E3%82%B9-%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E9%81%B8%E6%9B%B8-mattn-ebook/dp/B0BVZCJQ4F/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3JPRWH1GUBCPY&keywords=Go+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A8%E3%83%83%E3%82%BB%E3%83%B3%E3%82%B9&qid=1702809524&sprefix=go+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A8%E3%83%83%E3%82%BB%E3%83%B3%E3%82%B9%2Caps%2C171&sr=8-1 )

- プログラミング経験者向けに適度な難易度で、入門書としてはやや高度な内容を含んでいる。
- C言語との比較など、Goの特徴や利点が明確に解説されている
- Goの歴史的経緯や仕様の背景の解説が丁寧
- 新しい書籍（2023/3/9発売）なので最新のGoのベストプラクティスが学べる
- 著者の[mattn](https://twitter.com/mattn_jp)さんの業務やOSSの開発で培った技術が盛り込まれた充実した内容
    - 目次を確認して、その充実ぶりをぜひ一度確かめてみてください👀✨


### スライド資料で効率的に学ぶ
[プログラミング言語Go完全入門](https://docs.google.com/presentation/d/1RVx8oeIMAWxbB7ZP2IcgZXnbZokjCmTUca-AbIpORGk/edit#slide=id.g4f417182ce_0_0)

- Go言語の深い知識を持つ[tenntenn](https://twitter.com/tenntenn)さんが作成した、Goに関する詳細かつ実践的な無料スライド資料
- 実際のコード例や詳しい解説が含まれており、理論だけでなく、実践的なスキルも身につけることができる
- スライドはセクションごとに分かれており、特定のトピックに焦点を当てて学ぶことも可能
- 既にプログラミング経験がある方にとっては、他の学習リソースと比較して、スライドはより迅速にGoについて習得できる場合も


## Go初心者 -> 中級者への道
ここから紹介する２つの学習リソースは、やや難易度が高いものの、実践を通じて学びながら疑問点を自分で解決していく学習スタイルを好む方にはぴったりです。
また、Go言語の基礎を押さえた上でさらにスキルアップしたいと考えている方に、次のステップとしておすすめの内容です。


[APIを作りながら進むGo中級者への道](https://techbookfest.org/product/jXDAEU1dR53kbZkgtDm9zx?productVariantID=dvjtgpjw8VDTXNqKaanTVi)
- 中級者になりたい初心者向けという、大変ありがたい書籍（初心者向けの本、実践的な本は多いけどその中間ってなかなかない。。）
- 無料試し読みあり
- API開発に必要な要素を網羅的に学べるハンズオン
- 解説が丁寧で、どんどん拡張していくイメージで基本から実践まで学べる。（シンプルで小規模な実装を必要に応じてどんどん拡張していく手法がGoの思想とドンピシャで最高）
- テストやログ等についても学べて、とりあえず動くコードではなく正確に動く良いコードを学びたい人におすすめ


[Udemy: Echo/Go + Reactで始めるモダンWebアプリケーション開発](https://www.udemy.com/course/echo-go-react-restapi/)
- なかなかお目にかかれないレベルの実践的なTODOアプリハンズオン
- 設計 、API実装、フロント実装、繋ぎ込み、デプロイまでで一気通貫して学べる
- クリーンアーキテクチャ, JWT認証, フロント(React)の実装などとても充実したラインナップ
- ハンスオン形式ではあるものの動画は解説メインでサクサク進む。そのため、解説聞いてからコード読んで理解深めたい派におすすめ
- （私はUdemyのセール対象になっていたときに購入しました...！）


## 最後に

今回は、私がこれまでに学んできた中で、特に役立ったGo言語の学習リソースを共有させていただきました。
もし他にもおすすめの学習リソースがあれば、コメントなどで情報を共有していただけると嬉しいです！✨ 
ここまで読んでいただき、ありがとうございました！
APIに関する用語紹介　その２

# はじめに
ここでは、前回に引き続きAPIに関する用語の紹介と意味をまとめていきます。
前回と同様に6つ取り上げていきます。

## クライアント/Client 
APIのサービスを提供するサーバーに対してAPIをリクエストするコンピュータ、アプリケーション、プロセスなどのこと。

## プロキシ/Proxy
リソースを提供するサーバーへのリクエストを行う時、サーバーとクライアントを中継する代理のこと。

## オリジン
URLのスキーム、ホスト、ポートによって定義されるもの。

## CORS(Cross Origin Request Sharing)
オリジン間リソース共有。追加のHTTPヘッダーを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンに選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組みのこと。

## レイテンシー/Latency 
APIリクエストが処理されてから、それに対する応答までにかかる時間のこと。

## レート制限/Rate-Limiting
APIの使用において、呼び出し回数や時間などで制限のこと。

# 最後に
今回も6つの用語について紹介しました。APIに関する用語はこの他にも数多く存在するので一つひとつ確実に理解できるように共に頑張りましょう。

## 参考文献
https://zenn.dev/syo_yamamoto/articles/445ce152f05b02

https://appmaster.io/ja/glossary/api-reitenshi

https://kinsta.com/jp/knowledgebase/api-rate-limit/

https://www.webapi.tokyo/api-glossary/
【Rails】O/Rマッピング時の中間テーブル、わかりにくかったので簡単に調べた。

:::note warn 
**注記**
この記事の投稿者はRuby on Rails初学者であり、自身の学習の備忘録目的で記事投稿を行なっております。
情報の正確さには最大限注意をしておりますが、もし誤り等がございましたらお知らせいただけますと幸いです。
:::

  
ご覧いただきありがとうございます！
 **Ito** と申します！
Ruby on Rails初学者です。
　　
タイトルの通り
**「RailsでのO/Rマッピング時、中間テーブルがどのように変換されているのか？」**
個人的にわかりにくいと感じたので、端的にまとめてみました。




## 場面設定
タグ投稿機能を持った掲示板アプリを想定しています。

`Post`モデルが`Tags`モデルと関連付けされています。
`posts`テーブルと`tags`テーブルは`post_tags`テーブルを介して多対多の関係です。

### モデル
```rb:app/models/post.rb
class Post < ApplicationRecord

  has_many :post_tags
  has_many :tags, through: :post_tags
  #...(以下略)...
```
```rb:app/models/tag.rb
class Tag < ApplicationRecord
  has_many :post_tags
  has_many :posts, through: :post_tags
end
```
```rb:app/models/post_tag.rb
class PostTag < ApplicationRecord
  belongs_to :post
  belongs_to :tag
end
```

## 知りたかったこと
`.rb`ファイルに **「指定した`tag`の`id`を持つ`post`を抽出するロジック」** を書いたのですが、中間テーブル`post_tags`を書かずともデータを取得できてしまいました。

じゃあ、SQLクエリに変換された際に中間テーブル`post_tags`がどう機能しているのか？という点がよくわからなかったので調べてみました。

## 調べたコード

`.rb`ファイル
```rb
@post = Post.joins(:tags).where(tags: { id: tag_id })
```
↓

SQLクエリに変換(`log`にて確認）
```sql
SELECT posts.* 
FROM posts 
INNER JOIN post_tags ON post_tags.post_id = posts.id
INNER JOIN tags ON tags.id = post_tags.tag_id
WHERE tags.id = '指定されたタグID'
```


## わかったこと
`posts`テーブルと`tags`テーブルを結合する命令文を書くだけで、
SQLクエリに変換される際には **`post_tags`を介してテーブル結合が行われている**ことがわかりました。

## 所管
中間テーブルを使った関連付けの際には、どういうSQLクエリが発行されているかが表面上わかりにくいので、都度立ち止まって確認することで、理解を深めていく必要があると感じました。

以上です！
ご覧いただきありがとうございました！学習頑張ります！:muscle:
Re:Mindのアドベントカレンダー2023最終日

# はじめに

Re:Mindのアドベントカレンダー2023最終日がついに到来しました！メリークリスマス！:tada::santa_tone2:

https://qiita.com/advent-calendar/2023/remind

# Re:Mindとの関わりの１年を振り返る

:tada::tada:**今年Re:Mindはファーストイヤー**:tada::tada:

すべてのことの発端は、昨年の年末、MindClub会長の @Mind-Club_2017さんよりオンライン忘年会のお誘いをいただいたことに始まります。


業務多忙のおり忘年会には参加できなかったのですが、その際に日本語プログラミング言語の状況に少し危機意識を共有しておりました。なでしこさんはそれはそれでコアなファンもいらっしゃって活発な活動も展開し、中学校の教科書なんかにものっちゃういきおいという意味ではさほど問題はないのかもしれませんが、大学生さんに卒論で開発現場にはあまり導入されてませんねとか書かれていることを知り、特にMindの状況に関しては非常に強い危機意識をもちました。

そんなことを開発者の@killyさんに言うことでもないことは自明なのですが、二けた年ぶりくらいにご連絡をさせていただき、Qiitaに記事投稿するにあたり、日本語トランスコンパイラ言語のおもちゃみたいなの考えているのですけど、Mindにあやかった名前にしてもよいですかと伺ったら快諾をいただきました。

それから今日を迎えるのですが、試作の方は年の半ばあたりでとまってしまっておりますので、年末からちょっとがんばります。（ちなみにどなたでも実装してオッケーなのですキラリ✨）

# スペシャルサンクス
@Syuparnさん、記事でのご参加といいねの応援ありがとうございました。またすごい記事の投稿重ねてありがとうございます。たいへんな刺激になりました。

# おわりに

来年もやります！やる気はまんまんですが、来年はどんな内容になるのか想像もつきません:santa_tone2:
【JS/ES6】JSDOCコメントって？


# JSDOCコメントって？
JSDOCコメントは、JS内で関数や変数を宣言する時に、変数であれば型は何なのか？関数なら引数や返り値が何なのか？を説明するために入れるコメントのこと。
JSDOCコメントを書くことで、他のエンジニアがJSDOCコメントを見ただけで変数や関数の使い方を判断できたり、可読性がよくなるメリットもある。

## 例えば
例えば文字列を格納する変数があるとする。
この場合は値を見ればすぐに文字列だとわかるが、

```
const hoge = "takegons";
```
下記の場合、fugaとhogeの間にはスクロールしなければ追えないくらいの量のコードがあったとしたら、hogeを見ただけでfugaには何が入っているのかがわからない。
```
const fuga = "takegons"
~~~~ここにすごい長い記述があるとする。
const hoge = fuga;
```
こういった時にJSDOCコメントを書いておくと便利！
```
/**
 * @type {string}
 */
const hoge = fuga;
```
これでhogeには文字列（string）が入っているのがすぐにわかる！

## VSCODEだとカーソル乗せると表示される！
![スクリーンショット 2023-12-25 22.49.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3587166/78206b18-03b0-7611-c2c7-f16f7b8de589.png)

# JSDOCコメントの書き方
JSDOCコメントは「/** ~ * /」の間に記述する。
```
/**
 * ここに書く
 * /
```

# 何を書くの？
何を書くのかは別でまとめる！
Snowflakeの試験に受かる話(予定 1/6に試験を受けました)

# まえがき
はい！
こんにちは。こんばんは。メリークリスマス！
この投稿は[ちゅらデータアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/churadata)の25日目の記事です。

先日は[Snowflakeの試験に落ちた話](https://qiita.com/Benjamin0313/items/e477918a844055138454)を書きました。

あけましておめでとうございます　← 追記

今回はそのリベンジ記事になります。
2024年1月6日に試験を受けてきますので、この記事の続きに結果を書きたいと思います。

# 結果は...
 
![IMG_2431.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3633619/d92f70e6-1644-c879-4b34-6706a859501b.jpeg)

# 最後に
3月ごろにまた違うのを受けようかなっと思ったりしています。
JSでSleep機能

# 記事概要
JSでスリープ機能を実装。


# 方法
**async / await（Promise）**
```js
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));
(async() => {
	await sleep(1000);
	console.log('hoge');
	await sleep(2000);
	console.log('fuga');
})();
```
アドベントカレンダーを完走できた感想など【Advent Calendar 2023 25日目 / 人生25記事目】

## はじめに
Advent Calendar 2023への飛び入り参加を機に~~Qiitan欲しさに~~アウトプットを開始して、何とか完走することが出来ましたので、[三日坊主突破記念(4日目)](https://qiita.com/TKY_study/items/b641558f9f00553a62d7)、[折り返し地点](https://qiita.com/TKY_study/items/d2b7616f56fa549d117e)の記事と同様にそちらについての感想となります🙏
## 気付き・感想など

### 完走出来てとにかくホッとしている
今は完走出来てホッとしているの一言に尽きます~~Qiitanゲットだぜ~~ ~~まさかの最終日10記事~~
記事を書くことで得られる学び・知識の整理や、これまで多くの記事等でさんざんお世話になってきたエンジニアコミュニティへの還元といった本来の目的ではなく、特に後半は記事の作成やカレンダー完走そのものが目的化しつつあったことは反省点かと思います。カレンダー期間中の記事は適宜ブラッシュアップしていきたいと思います:relaxed:

### カレンダー参加はとても楽しかった
同僚たちも数人カレンダーに参加しており、記事を見せ合ったりカレンダーの進捗~~が悪すぎてともにむせび泣く~~についてワイワイしながら進めて行くのがとても楽しかったです:relaxed:
今回は私も含めてカレンダー初心者が多かったため、とにかく完走を重視して別々のカレンダーでの参加となった(各々が各レーンで25m泳ぎ切る水泳のような？)のですが、複数人で1つのカレンダーを埋めていくスタイルも楽しそうだと感じました🍀

### 個人開発系カレンダーめっっちゃ良いな
個人開発にて何かを25日間で完成させる系のカレンダーをやられている方々が見受けられたのですが、個人的にめっちゃくちゃいいなソレ！？と思いましたので来年は是非自分もやってみたいと感じました:relaxed:

### 記事を書くのに少しだけ慣れた
カレンダーによって負荷がかかっている状態を先に経験したためか、簡潔な記事をたまに製造するくらいなら今なら苦も無くできそうな気がしています🍀
また、最後まである程度の記事ボリュームを維持出来た事は自信にもなりました:relaxed:


## おわりに
~~🙏Qiitan正座待機🙏~~
今回の経験を糧にして週に1記事程度の投稿ペースは恒久的に維持出来るように頑張ります🍀
Powershellでよく使うネットワーク関連コマンド集


## トラブルシューティング編

### IP構成情報を表示

```powershell
ipconfig /all
```

### ホストへの応答確認

```powershell
ping [ホスト名またはIPアドレス]
```

### パケットの経路を表示

```powershell
tracert [ホスト名またはIPアドレス]
```

### DNS情報を取得

```powershell
nslookup [ドメイン名またはIPアドレス]
```

### ポートの接続テストを実行

```powershell
Test-NetConnection -ComputerName [ホスト名またはIPアドレス] -Port [ポート番号]
```

### ホストへのパケット送信と応答の確認

```powershell
Test-Connection [ホスト名またはIPアドレス]
```

### ネットワークアダプタの情報を表示

```powershell
Get-NetAdapter
```

### ルーティングテーブルの情報を表示

```powershell
Get-NetRoute
```

## 番外編

### 過去に接続したことのあるWi-Fiルーターのパスワードを忘れた！

```powershell
# 過去に接続したSSIDの一覧を表示
netsh wlan show profile

# 指定したSSIDの記憶しているパスワードを表示
# セキュリティの設定 > 主要なコンテンツ に表示されているのがパスワード
netsh wlan show profile key=clear [パスワードを確認したいSSID]
```

### 今どのネットワークに接続しているの？

```powershell
# 現在接続中のネットワークの情報を表示
netsh wlan show interfaces
```

### 現在受信しているWi-Fiにはどんなものがある？

```powershell
# 現在受信しているWi-Fiの電波をBSSID含めてすべて表示
netsh wlan show networks mode=bssid
```

### このIPアドレス/ホスト名は誰のもの？

WindowsのNBT（NetBIOS over TCP/IP）プロトコルを利用して、逆引きします。

```powershell
# IPアドレスからホスト名(NETBIOS名)を逆引き
nbtstat -A [IPアドレス]

# ホスト名(NETBIOS名)からIPアドレスを逆引き
nbtstat -a [ホスト名]

```
引数のクロージャ〜@escapingについて理解しよう！〜

# 引数のクロージャ
クロージャを関数の引数や別のクロージャの引数として利用する場合には、**属性とトレイリングクロージャ**が有効です。
属性はクロージャに対して指定する情報を追加するために使用する。
トレイリングクロージャはクロージャを引数に取る関数の可読性を高めるために使用する。

今回は属性である`@escaping`について理解を深めていきたいと思います！
# escaping属性とは
関数に引数として渡されたクロージャが、**関数スコープ外で保持される可能性**があることを示す属性。クロージャが関数のスコープ外で保持されなければ、クロージャの実行は関数の実行中に限られるので、キャプチャは必要ない。
escaping属性が必要な場合は、**クロージャの実行時まで関数のスコープ変数を保持する**必要があるため、キャプチャが必要。

## escapingを使用する必要のない引数のクロージャ
escapingを使用する必要のない例から見てみましょう！
```Swift
struct S {
    func f1(closure: () -> Void) {
        closure()
    }
}
print("before")
S().f1(closure: {
    print("in closure")
})
print("aftter")
```
`func f1(closure: () -> Void)`メソッドに渡された引数をメソッドをリターンするまでに呼ぶか、呼ばないかのときはescapingいらない。値を保持する必要がないため。
**出力**
```
before
in closure
aftter
```

## escapingを使用する必要なある引数のクロージャ
```Swift
class S {
    var closure: () -> Void = {}
    func f1(closure: @escaping() -> Void) {
//🟥後で呼ぶために保存すると、escapingつけないとエラーになる
        self.closure = closure
    }

    func f2() {
//プロパティに保存したクロージャを呼ぶ
        self.closure()
    }
}

print("before")
let s = S()
//プロパティをクロージャに保存
s.f1(closure: {
    print("in closure")
})
print("aftter")
//実行
s.f2()
```
`func f1(closure: @escaping() -> Void)`メソッドで、引数のクロージャを呼ばず、`var closure`に保持して、後で関数外で実行するためには`@escaping`が必要！

## escapingを使用する実例
API通信でescapingクロージャを引数としてもつ下記のメソッドを使用しました！
`dataTask(with:completionHandler:)`
```Swift
func dataTask(
    with request: URLRequest,
    completionHandler: @escaping @Sendable (Data?, URLResponse?, Error?) -> Void
) -> URLSessionDataTask
```
URLを元にHTTPレスポンスを取得するメソッド

https://developer.apple.com/documentation/foundation/urlsession/1407613-datatask

`async(group:qos:flags:execute:)`
```Swift
@preconcurrency
func async(
    group: DispatchGroup? = nil,
    qos: DispatchQoS = .unspecified,
    flags: DispatchWorkItemFlags = [],
    execute work: @escaping @Sendable () -> Void
)
```

https://developer.apple.com/documentation/dispatch/dispatchqueue/2016098-async

`dataTask(with:completionHandler:)`
`async(group:qos:flags:execute:)`のような引数としてescapingクロージャを持つクロージャ内ではnon-escapingのクロージャをキャプチャできない。(保存できない)
```Swift
func dataTask(completion: @escaping (String) -> Void) {
    
    DispatchQueue.global().async {
        //escaping内で呼ぶ場合、escaping必要
        //クロージャにキャプチャされ保存されている。
        completion("晴れ")
    }
}

func fetchWeather(completion: @escaping (String) -> Void) {
    //completionエスケーピングクロージャ
    dataTask(completion: { weather in
        completion(weather)
    })
}
```
escaping内で呼ぶ場合、`dataTask`クロージャにキャプチャされ、(保存され)、escaping必要！
`func fetchWeather(completion: @escaping (String) -> Void)`には`@escaping`をつける必要がある！

# 参考文献

https://gihyo.jp/book/2020/978-4-297-11213-4
学校のGoogleアカウントに拡張機能を無理やり入れて使う方法

## はじめに
　私の学校では、授業などで使う端末としてChromebookを採用しており、Googleアカウントも配布されています。しかし、そのGoogleアカウントでログインすると、Chromeブラウザで拡張機能が利用できないようになっているのです。「学校で使うパソコンなんだから、拡張機能なんていらないでしょ」みたいな考えなのか分からないですが、学校側が制限しているようです。しかし、抜け道を探すとやり方があったので記事にしたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/6f1b4983-a8f6-937f-5c7a-5624f9ce3ceb.png)
　Chrome ウェブストアを開くとこんな画面が出てきて拡張機能がインストールできません。

## Step1
　Chromeブラウザで、Googleアカウントにログインせずに新しいプロファイルを作成します。
![スクリーンショット 2023-12-25 221254.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/67978c03-6c1b-9f53-d2cb-f5d8e41789bb.png)
![スクリーンショット 2023-12-25 221415.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/8a0efb13-a16a-ef9f-ad01-3d540328f516.png)

## Step2
　新しく作ったプロファイルで、学校のGoogleアカウントにインストールしたい拡張機能をインストールする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/da4455c7-5f98-9b19-4906-684f4730d473.png)
　試しにブラウザでSSH接続できる拡張機能をインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/06d0ff3f-24ff-d770-0f86-6fb4b468c8e0.png)

## Step3
　拡張機能をインストールしたプロファイルを、拡張機能をインストールしたい学校のGoogleアカウントで同期を有効にします。（日本語が下手ですが。）
![スクリーンショット 2023-12-25 222530.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/c47cacda-44dd-4b22-b56e-e4ea8d7bb2ba.png)
![スクリーンショット 2023-12-25 222626.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/c0613a66-7bfb-bc70-2778-1733e881e196.png)
![スクリーンショット 2024-06-15 144159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/47020e85-b15c-0f76-dc3a-419dfd53e62b.png)
![スクリーンショット 2024-06-15 144349.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/1636099f-5661-9df6-8924-1a0045d4c055.png)

## おわりに
　この手順で行うと以下の画像のように、拡張機能をインストールできます。また、「～によって管理されています」と表示されているのにインストールすることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2942430/819e541f-8dd4-0686-1921-4d597588200a.png)
【Rails】StimulusでBootstrapのTooltipを動かす

今回は、Stimulusを使用してBootstrapのTooltipを動かす方法について紹介します。

https://getbootstrap.jp/docs/5.3/components/tooltips

## ツールチップとは？
ツールチップは、ユーザーが要素（ボタンや画像など）にホバーしたりクリックしたりした際に表示される、小さな説明文の吹き出しです。これは、要素単体では意味が不明確な場合に特に有用です。

![tooltip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849608/092d039b-7633-9a1c-7902-437a676722c1.png)

## インストール方法
まず、`bootstrap`と`popperjs`が`node_modules`に含まれているかを確認してください。もし存在しなければ、`yarn add bootstrap`または`npm install bootstrap`を実行してインストールしましょう。

## Controllerの作成
Tooltipを機能させるために、まずStimulusコントローラを作成します。

```
./bin/rails generate stimulus tooltip
```

## Controllerの設定
作成したコントローラーファイルにBootstrapのTooltipクラスをインポートします。接続時にTooltipのインスタンスが生成され、`data-tooltip`属性からタイトルが取得されるように設定します。これでコントローラーの準備は完了です。

```javascript:app/javascript/controllers/tooltip_controller.js
import { Controller } from "@hotwired/stimulus"
import { Tooltip } from "bootstrap"

export default class extends Controller {
  connect() {
    new Tooltip(this.element, {
      title: this.element.getAttribute("data-tooltip")
    });
  }
}
```

## ERBファイルへの記述
ツールチップを表示させたいHTML要素に、`data-controller`と`data-tooltip`属性を追加します。例として、アイコンにツールチップを追加する場合は以下のようになります。

```erb
<i class="fa fa-plus" data-controller="tooltip" data-tooltip="画像を追加"></i>
```

これでツールチップが動作するようになります。

## オプションの利用
Tooltipでは、タイトル以外にも様々なオプションを設定できます。

たとえば、`placement`オプションを使用すれば吹き出しの表示位置を左右や下に変更できます。また、表示の遅延設定や、ホバーやクリックでの発火設定も可能です。詳細は以下のドキュメントのオプションセクションを参照してください。

https://getbootstrap.jp/docs/5.3/components/tooltips/#%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3
Mindのアドベントカレンダー2023最終日

# はじめに
Mindのアドベントカレンダー2023最終日がついに到来しました！メリークリスマス！:tada::santa_tone2:

https://qiita.com/advent-calendar/2023/mind

# Mindとの関わりの１年を振り返る

昨年の年末、MindClub会長の @Mind-Club_2017さんよりオンライン忘年会のお誘いをいただくも、業務多忙のおり忘年会には参加できなかったのですが、

@Mind-Club_2017さんとの事前のメールのやりとりで、こんなことも話題にできたらいいね～とかお話していたのが、「[「日本語プログラミング言語は 日本人にとって可読性が高いが、 なぜあまり普及していないのか」という学生さんの卒論に感銘をうけたお話](https://qiita.com/mylifewithviolin/items/d15fdf16c6a66bdcf5b1)」の元となっている学生さんの卒論でした。

たぶんわたしたちは、日本語プログラミング言語の現状への危機意識を共有していたように感じます。

そこでわたしもQiitaにアカウントをつくって記事を投稿していくことといたしました。Mind開発者の@killyさんとも非常に何年かぶり（２桁級）かでご連絡を回復させていただきました。

わたしの本職は幸いシステムエンジニアでしたので、実装もまだまだ対応しておりましたので、いろいろ考えさせていただきました。しかし、Mindのソースコードを書いたのは30年弱ぶりからでしたので、他言語との構文比較などでリハビリを行ってまいりました。かなり忘れています。

なんだかんだで、そのような昨年からほぼまる１年がたったいま、このような形で記事が書けることとなったのは幸いです。

# 謝辞
@killyさん、@Mind-Club_2017さん、たいへんお忙しいところ記事投稿、コメンテーション、いいねの応援まことにありがとうございました。無理をいってたいへん申し訳ございませんでした。

@ohisama@githubさん、たくさんの記事投稿ありがとうございました。シリーズ２が開設できたのはひとえにohisama@githubさんのおかげです。

@MindZanmaiさん、@ITvisionさん、後半からのご参加ながら活発なコメント、ご投稿まことにありがとうございました。

# おわりに
来年はMind生誕39年ですが、40周年までは実質1年ちょいなので、今年がプレイヤーな気分です。来年もアドベントカレンダーやりましょう:santa_tone2:
APIに関する用語紹介

# はじめに

ここでは、APIに関する用語をいくつか紹介していきます。
授業でAPIを学び始めて、分からない用語がたくさん出てきたので、私含め初心者向けに用語の意味を説明していきます。

## REST 
シンプルなwebシステムの設計思想のこと。
それぞれ日本語訳すると、
Representational（具象的な） State（状態） Transfer（転送）となります。
翻訳すると、「具体的な状態を定義した情報のやり取り」というような意味になります。

## URI
URNとURLで構成されたWeb上にあるあらゆるファイルを認識するための識別子の総称。URLは馴染みのある言葉ですよね。実はURIに含まれているものなんです。

## エンドポイント/Endpoint
特定のリソースに対してAPIの機能をリクエストするために指定する固有の一意なURIのこと。

## OAuth 
権限の許可を行うことで、複数のwebサービスを連携して動作させるために使用される仕組みのこと。OAuthを利用することで、権限が許可され、IDやパスワードを入力することなく複数のwebサービスの連携を行うことができます。

## APIキー/API Key
APIのリクエストをする利用者を識別するための認証情報のこと。

## キャッシュ/Cache
利用頻度の高い処理結果を再利用して、クライアントからのアクセスの応答時間を高速化すること。

# まとめ
本記事では、APIに関する用語を6つ紹介しました。参考になれば幸いです。

## 参考文献
https://tech.012grp.co.jp/entry/rest_api_basics

https://cloudapi.kddi-web.com/magazine/other/waht-api-key

https://ferret-plus.com/4637?page=2

https://www.tdk.com/ja/tech-mag/knowledge/147

https://www.webapi.tokyo/api-glossary/
データベーススペシャリスト試験 午後対策時のメモなど(R5秋期)

# はじめに
R5秋期のデータベーススペシャリスト試験に合格出来ましたので、午後試験に関して行った対策法などについてまとめてみます。
[試験全体などの所感](https://qiita.com/TKY_study/items/9b964ad40ec515fd6ee9)、[午前問題](https://qiita.com/TKY_study/items/4e2cb0d13c15fcf9d60a
)に関しては別記事に記載を行っています。

# 午後I
午後I試験にて実際に行った対策などについてまとめます
## 自身の結果など
問2,3を選択し、75点という結果となりました
## 利用した教材など
学習にあたっては以下の教材を利用しました(午後IIと共通となっています)
- IPA公式が配布している過去問題
- Udemy講座
    - 石田先生 データベーススぺシャリスト午後I
    - 石田先生 データベーススぺシャリスト午後II
- 書籍
    - 情報処理教科書 データベーススペシャリスト 2023年版
    - 徹底攻略 データベーススペシャリスト教科書 令和5年度
    - データベーススペシャリスト ALL IN ONE パーフェクトマスター 2023年版


## 学習法など
午後試験対策＋αで午前II対策になる　といった性質同様に
「午後I対策」を行うよりも、午後II対策を軸にしてそれを補強するといったスタイルの方がオススメです。というのも**午後IIは午後I突破者の約半数が脱落する最後の難関**であるからです
この視点に基づいて午後Iの対策として行ったのは2点となります

- 以下の2教材でピックアップされている過去問を**印刷して**解く、手が回らない場合解説だけでも読んで解法を把握する
    - 石田先生 データベーススぺシャリスト午後Iの講座
    - 情報処理教科書 データベーススペシャリスト 2023年版
- 当日と同じタイムスケジュールで午前午後全通しで印刷して解く
    - こちらについては午後IIで説明します🙏

## 当日の過ごし方など
~~[応用情報技術者試験の受験時](https://qiita.com/TKY_study/items/eda5886dc77d1c63e48c)と同様にハルンケアで尿意を抑えつつ~~
6割得点出来れば突破できるという点を意識して、とにかく拾えるところを拾うことを意識します。とにかく時間との勝負となりますので、詰まった問題の損切りが上手く行かないとあっという間に追い詰められてしまいます。


# 午後II
午後II試験にて実際に行った対策などについてまとめます
## 自身の結果など
問1を選択し、65点という結果となりました

## 利用した教材など
- 学習にあたっては午後Iと共通の教材を使用しました。

## 学習法など

### 1. Udemy講座と書籍を全て通読する
教材の合う合わないを判定したかったのですが、どれもいいな～と感じましたので全て流し読みはするスタイルで行きました。
個人的には石田先生の2講座と、情報処理教科書は必見でした。
通読を通して概念/物理設計のどちらをメインに学習するか選択します。
- 午後Iは概念系1問、物理系2問といった構成であることが多いですが、**そうではない年もあります**
    - ~~ヤマを張ってほぼ全物理モードで行ったところ今年の問題の概念x2を見てひっくり返りそうになった人~~
- 午後IIは概念/物理が1問ずつ出題される年がほとんどですが、**そうではない年もあります**
    - 午後I,IIともにこのような状況なため、完全にどちらかに特化した学習を行う事は賭けとなります

### 2. 過去問題を印刷して解く
過去問題を印刷して、概念/物理のメインに据えている方を最低5年分を目安に解きます。ヤマを張っている場合でも午後I対策も兼ねて選択予定がない方についても1年分は解いておいた方が良いと思います。
印刷する理由については[応用情報技術者試験の受験時](https://qiita.com/TKY_study/items/eda5886dc77d1c63e48c)と同様に、本番で電子媒体と紙の違いに困惑しないためといった意図によるものとなります。

### 3. 当日と同じタイムスケジュールで午前午後通しで印刷して解く
過去問題を1年分印刷して、起床時間も合わせて本番と同じタイムスケジュールで解いてみます。本番でかかりうる負荷等を想像するのにとても良いです。[応用情報技術者試験の受験時](https://qiita.com/TKY_study/items/eda5886dc77d1c63e48c)と同様の知見が得られました。

## 当日の過ごし方など
午後Iと同様に6割得点出来れば突破できるという点を意識して、読解を諦めずにとにかく拾えるところを拾うことを意識します。~~余りにも必死過ぎてハルンケアで抑えるまでもなく尿意を忘れました~~

# おわりに
振り返ってみると午後対策に+αで午前II対策に、そして午後II対策に+αで午後I対策にもなるなど、
午後IIが中核をなしている試験であると改めて感じました。
この記事のどこか一文だけでも試験対策の参考となりましたら幸いです。
思いつき次第加筆したいと思います。

# 参考にさせて頂いた記事・教材など

https://www.ipa.go.jp/shiken/kubun/db.html

https://www.udemy.com/course/db_specialist_pm1

https://www.udemy.com/course/db_specialist_pm2

https://www.shoeisha.co.jp/book/detail/9784798179919 

https://book.impress.co.jp/books/1122101156

https://tacpub.jp/list/detail.php?bc=110549
データベーススペシャリスト試験 午前対策時のメモなど(R5秋期)

# はじめに
R5秋期のデータベーススペシャリスト試験に合格出来ましたので、午前試験に関して行った対策法などについてまとめてみます。
[試験全体などの所感](https://qiita.com/TKY_study/items/9b964ad40ec515fd6ee9)、[午後問題](https://qiita.com/TKY_study/items/6ddb1935efb9d9006818)に関しては別記事に記載を行っています。

# 午前I
午前I試験に関しては免除となっていました。
以下のような理由から可能であれば免除を狙いたいです。
- 当日の体力を温存できる
    - 特に午後試験はI,IIともに時間に追われつつ頭を使い非常に疲れます
- 学習範囲を絞ってよりDBの学習に集中出来る

午前Iの対策には以下のような教材が有力株かと思われます。
- 後述のUdemy講座(石田先生 データベーススぺシャリスト午前)
    - なんと午前Iの内容も含まれています 
- 応用情報技術者ドットコム 過去問道場(午前) 
- Udemy講座(石田先生 応用情報技術者午前)


# 午前II
午前II試験について実際に行った対策などについてまとめます
## 自身の結果など
92点という結果となりました

## 利用した教材など
- IPA公式が配布している過去問題
- データベーススぺシャリストドットコム 過去問道場(午前II)
- Udemy講座(石田先生 データベーススぺシャリスト午前)
- 情報処理教科書 データベーススペシャリスト 2023年版

## 学習法など
学習については以下の様な順序で進めました。
基本的には午後試験対策で得た知識を過去問演習で補強するような形となりました。

### 1. 石田先生のUdemy講座を見る
午前試験対策及び午後試験の演習開始にあたっての内容を効率良く体系的に学ぶことが出来ます。

### 2. 情報処理教科書 データベーススペシャリスト 2023年版を読む
午前Iを除く範囲をカバー出来る書籍です。一旦通読して、その後も何度も読み返しました。

### 3. (午後試験対策を行う)
公表されている得点分布や自身の体感に基づくと、**午前IIに比べて午後I,IIは圧倒的に難しい**という事が言えます。
そのため、1,2も午前II対策として行うというより、**午後演習に挑める下地を作る**といった意図が強く、午前IIは半ば巻き込むような形で**学習時間の大半を午後演習を割く**ことを個人的に強く推奨します🙏

### 4. 過去問道場を回す
午前IIは過去問流用が非常に多いという性質がありますので、午後対策で得た知識をベースに流用問題を拾いに行く意図で回しておきます。
過去問演習時に「問題文・選択肢になんだか見覚えがあり、見た瞬間に答えが分かる」現象がそれなりの頻度で起こり始めるという状態に試験直前までに至っていれば十分かと思います。

### 5. 当日と同じタイムスケジュールで午前午後通しで印刷して解く
こちらに関しては午後試験対策としての性質が強いため、そちらの記事にまとめています。


## 当日の過ごし方など
- 基本的に時間に追われることは無い区分であるため、疲労しない・焦らないことを意識して解き進めて行きます。午後に向けて少しでも体力を残します。
- ~~**午前II終了後にハルンケアを飲む**~~
    - ~~詳しくは午後試験で~~ 


# おわりに
午前試験対策についてまとめようとしてみたところ、午後対策の重要性が強調されるといった結果となりました
この記事のどこか一文だけでも試験対策の参考になりましたら幸いです。

# 参考にさせて頂いた記事など
https://www.ipa.go.jp/shiken/kubun/db.html

https://www.db-siken.com/ 

https://www.udemy.com/course/database_specialist

https://www.shoeisha.co.jp/book/detail/9784798179919