Qiitaのトレンド記事を要約してまとめたモノ（さぼり）

# [生産性爆上がり!?エンジニアのおやつ大解剖!!!](https://qiita.com/zunbero_zunbero/items/8dcf70004f4e1d25fc4d)
エンジニアの仕事中のおやつ選びは集中力や生産性に影響します。ブドウ糖を摂取できるラムネやチョコレートは集中力アップに、腹持ちの良いナッツやドライフルーツは空腹感を満たし集中力を維持するのに役立ちます。気分転換にはタブレットやガム、グミがおすすめです。作業効率を上げるには片手で手軽に食べられる個包装のお菓子や棒状のスナック菓子が最適です。エンジニアにとって、おやつは効率的な仕事環境を作るための重要な要素です。 


# [Elixirでリストとタプルを型付けする by José Valim](https://qiita.com/akiraarika932/items/d1d5f9bf156710196d7e)
Elixirの型システムは、リストとタプルをより正確に型付けできるようになりました。リストには、空のリストと空でないリストを区別する新しい型が追加されました。タプルは、要素の型を個別に指定できるようになりました。これにより、Elixirプログラムの型安全性が向上し、実行時エラーが減ります。


# [DatadogがOCIに対応したぞー](https://qiita.com/araidon/items/0b5c35b746150ac7e400)
DatadogがOCIに対応し、メトリクスの統合が可能になりました。OCIのメトリクスをDatadogで可視化するために、DatadogとOCIの両方に設定が必要です。

**Datadog側:**
- DatadogにOCI Integrationを追加
- OCIテナンシーのOCID、ホームリージョン、ユーザーOCID、フィンガープリント、プライベートキーを入力
- スタックを作成し、Datadog APIキー、エンドポイント、ユーザー名、パスワードを入力

**OCI側:**
- DatadogAuthGroupグループに所属するDatadogAuthUserを作成し、APIキーとプライベートキーを取得
- Dynamic Groupを作成し、メトリクスとファンクションへのアクセス権限を付与
- Datadogへのメトリクス送信を行うFunctionsとSCHを定義するスタックを作成

**手順:**
1. DatadogにOCI Integrationを追加
2. OCIでDatadogAuthUserを作成し、APIキーとプライベートキーを取得
3. OCIでDynamic Groupを作成し、アクセス権限を付与
4. Datadogでスタックを作成し、必要な情報を入力
5. スタックの作成が完了したら、DatadogでOCIのダッシュボードを確認

**注意:**
- 設定ドキュメントは英語で表示される
- FunctionsのシェイプタイプはX86に変更する必要がある
- スタックの作成に時間がかかる
- 同名のアプリが既に存在する場合、手動で削除する必要がある

これで、OCIのメトリクスをDatadogで可視化することができ、より詳細な監視が可能になります。


# [Mermaidでアーキテクチャ図が書けるようになったらしい](https://qiita.com/hiroto_1220/items/3f4c950fa27430355e5a)
Mermaidはシーケンス図、クラス図、状態遷移図などをテキストベースで作ることができるツールで、アーキテクチャ図も記述できるようになりました。

アーキテクチャ図はシステムやアプリケーションの構成要素とその相互関係、動作の流れを視覚的に表現した図です。

Mermaidはデザインや配置を自分で考える必要がなく、テキストを書き換えるだけで変更できるので、複雑な図になっても修正が比較的楽です。

また、version管理でき、生成AIに書いてもらうこともできます。Notionやdraw.io、GitHubなどさまざまなサービスでテキストから図を作成・挿入することができます。

Mermaidでアーキテクチャ図を書くには、グループ、サービス、エッジと矢印、ジャンクションなどの記法を使用します。

現時点ではdraw.io、Notion、VSCodeの拡張機能などがまだ未対応なので使い所は難しいですが、これらのサービスで使えるようになれば、複雑なアーキテクチャをMermaidで作成して、draw.ioで微調整するなどの使い方ができるようになり、可能性が広がります。


# [ChatGPT o1-previewに数学の共通テスト（旧センター試験）を解かせてみた](https://qiita.com/7mpy/items/02f6641e7f488253418a)
ChatGPT o1-previewは2023年度共通テスト数学Ⅰ・Ａ第１問〔２〕（１）を全問正解しました。 


# [DroidKaigi 2024 9月13日資料一覧](https://qiita.com/sacred-sanctuary/items/3dc4851c67d49515075b)
DroidKaigi 2024は、9月13日に開催され、様々なAndroid開発に関するセッションが行われました。セッションの内容は、リファクタリング戦略、Android Studioプラグイン開発、Android 15の新機能、Kotlin Multiplatformを使ったゲームエンジン開発、Jetpack ComposeのShared Element Transitions、アプリ起動パフォーマンス改善、Google Sign-inの移行、Flutterとネイティブコード間の連携、アプリウィジェット開発、Google Analytics for Firebase、自動キッティング手法、デザインシステム構築、Single Activityアーキテクチャ、スクリーンショットテスト、生成AIの活用、テストの最新技術、CustomLayoutとDailyScheduler、GraphQLクライアント実装、RAG(検索拡張生成)、デバッグ、3Dグラフィックス、タッチイベント、UIバリエーション確認、Compose UIを使ったUI開発、難読化、Android開発経験の活用、Android Autoアプリ開発など多岐にわたります。


# [匿名配送で理解するプロキシサーバー](https://qiita.com/sauna1137/items/a1bd6233734d42d5809b)
## 匿名配送で理解するプロキシサーバー：要約

**プロキシとは、購入者と出品者の間に入り、送金や荷物配送を中継するサーバーです。** 

**匿名配送では、フリマアプリがプロキシサーバーとして機能し、購入者の個人情報を保護します。**

**メリット:**

* **匿名性:** 購入者の個人情報が出品者に漏れるのを防ぎます。
* **高速化:** 過去の情報(キャッシュ)を利用することで取引をスムーズにします。
* **アクセスログ:** 購入履歴や閲覧情報を記録できます。

**デメリット:**

* **情報漏洩リスク:** プロキシサーバーから情報が漏れる可能性があります。

**プロキシの種類:**

* **フォワードプロキシ:** 購入者の代理として送金情報をサーバーに転送します。
* **リバースプロキシ:** 出品者の代理として送金を受け取り、購入者に転送します。

**匿名配送では、フォワードプロキシとリバースプロキシの両方の役割が使用されます。** 


# [LangChainのWebBaseLoaderでWebページの内容が取得できない場合の対処法](https://qiita.com/moritalous/items/44c0cff860f7b5697822)
## OpenAI o1の紹介

OpenAIは、AIの能力を向上させ、安全な環境で利用できるようにするための最新の技術、OpenAI o1を発表しました。OpenAI o1は、新しいAIシステムを構築し、既存のシステムを改善するために使用されます。


# [Elixirで作ったリポジトリをアップデート管理〜Dependabot〜](https://qiita.com/t-yamanashi/items/c7369ec6ad051cce18ef)
GitHubリポジトリでElixirプロジェクトの依存関係を自動的にアップデートする方法です。Dependabotを有効化し、`dependabot.yml`ファイルでmixパッケージの更新を毎日チェックするように設定します。これにより、古いバージョンの依存関係を最新版に保ち、セキュリティリスクを軽減できます。


# [情シスだけが怖い話　行ってみたなう](https://qiita.com/Jasmine_teeeeee/items/88544f7c2ee78708b74e)
「情シスだけが怖い話」イベントに参加した実況です。怪談形式のインシデント事例4つを聴講し、社内リテラシー向上のための工夫を感じました。特に「女幽霊が危険を囁く」の話は、ランサムウェア感染や顧客情報漏洩など、現実味がありゾッとしました。懇親会では美味しい料理と不思議なパネル体験も楽しめました。講演内容は既知のものもありましたが、情シス向けにアレンジされており、自社製品「Tadrill」の紹介もスムーズに受け入れられました。イベント全体の構成やサイトも見やすく、参加者にとって有意義な時間だったと思います。 


# [o1-preview大実験！ChatGPT o1は競プロの問題を解けるのかAtCoder (2024年9月版)](https://qiita.com/7mpy/items/c05f61ed65926afa5fb5)
ChatGPTは、AtCoderの問題を解く能力をテストされ、シンプルな合計計算問題を正しく解くことができました。この実験は、ChatGPTが数学オリンピックレベルの課題にも対応できる可能性を示唆しています。また、ChatGPTの名前の "o1" が、次世代の言語モデルであるOrion (GPT-5) を予期している可能性が示唆されています。 


# [UE5.4の半透明について](https://qiita.com/dgtanaka/items/72dae347516caf3a5b1c)
## UE5.4における半透明の描画について

UE5.4では、半透明の描画順や設定に大きな変更が加えられ、アーティストを含む多くの開発者が混乱しています。この記事では、UE5.4における半透明の描画について解説し、特に注意すべき点について詳しく説明します。

### UE5における半透明の描画

UE5における半透明の描画は、不透明なオブジェクトとは異なり、深度情報を書き込みません。そのため、ポリゴン単位で奥行き順にソートされ、描画されます。この処理は描画負荷が高くなるため、別バッファを利用して負荷軽減を行う「Separate Translucency」という手法が使われることもあります。

### 半透明マテリアル

半透明マテリアルは、Blend ModeをTranslucentに設定することで使用できます。特に重要な設定項目は「Translucency Pass」です。これは半透明の描画タイミングを決定するパラメータで、以下の3つのモードがあります。

* **After DOF:** 被写界深度処理後に描画されるため、半透明オブジェクトには常に被写界深度がかかりません。
* **Before DOF:** 被写界深度処理前に描画されるため、半透明オブジェクトに被写界深度がかかる可能性があります。また、屈折処理も半透明描画の前に実行されます。
* **After Motion Blur:** モーションブラー処理後に描画されるため、半透明オブジェクトにはモーションブラーがかかりません。ただし、エディタと実行時で見た目が異なる、処理が重い、クオリティが低いなどの問題があります。

### 半透明とディストーション（屈折）

ディストーション（屈折）は、画面上の別の領域を参照することで擬似的に表現されます。そのため、屈折先が画面外にある場合や重なり合った屈折がある場合は正しく表現できません。また、Before DOFモードでは、半透明を描画してから屈折処理が行われるため、描画領域と屈折領域がずれる可能性があります。

### 半透明と被写界深度

被写界深度の焦点距離より遠くにあるオブジェクトは、自動的にBefore DOFとして描画される機能があります。これは、屈折を設定した半透明マテリアルにおいて、半透明領域と屈折領域が一致しない問題を引き起こす可能性があります。この機能は、r.Translucency.AutoBeforeDOFを負の値にすることで無効化できます。

### まとめ

UE5における半透明の描画は、依然として多くの問題と制約を抱えています。特にAfter Motion Blurは注意が必要です。半透明の描画方法を理解し、計画的に使用することが重要です。

### おまけ

ポストプロセスマテリアルのBlendable Locationは、UE5.4で変更されました。UE5.3までは、Depth of FieldとBloom処理の前に描画されていましたが、UE5.4では、Depth of Field処理の後に描画されるようになりました。

# [WebディレクターがReactを勉強し始めた理由](https://qiita.com/hamakoz/items/cb85d62e7cf1bb2d8433)
## WebディレクターがReactを学ぶ理由：

**背景:** 
- コーダー経験を持つWebディレクターとして、技術理解を深め、クライアントとエンジニア双方から信頼される存在になりたい。
- 新しい会社への転職を機に、JavaScriptスキルをアップデートしたい。

**動機:**
- Reactは現在最も勢いのある技術であり、憧れがあった。
- 自分の業務効率化を図るため、アプリ開発スキルを身につけたい。

**目標:**
- **短期:** Reactの基礎を理解し、できることとできないことの区別をつける。
- **中期:** 過去の案件をReactで作り直し、技術理解を深める。
- **長期:** プロトタイプ作成を通して、アイデアを迅速に具現化できるようになる。

**目指す姿:**
- 技術理解に基づいた的確なディレクションで、クライアントとエンジニア双方を繋ぐ存在になる。
- 自らプロトタイプを作成することで、業務を効率化し、新たな価値を生み出す。


# [forEachでawaitを使おうとしたら怒られた](https://qiita.com/mellbrother/items/715ff5dce5845381eeee)
JavaScriptのforEachループでawaitを使うことはできません。forEachループは非同期処理を待たずに次の要素へ進んでしまうためです。

非同期処理を順次実行するには、for ofループ、forループ、reduce、mapとPromise.all、またはforループとPromise.allの組み合わせを使用することができます。


# [【M5StackMP135 】Livebook でエアコンの働を可視化してみた](https://qiita.com/GeekMasahiro/items/f6bac0a81e80e2b1e783)
M5Stack MP135とLivebookを用いて、U171のBMP280温度センサーでエアコンの温度変化を可視化する実験を行いました。i2cバスでBMP280と通信し、温度データをLivebookでグラフ表示することに成功しました。エアコンのON/OFFによる温度変化をグラフで確認することができ、Livebookを用いたセンサーデータ可視化の有用性を示しています。 


# [FastAPIとPlotly.jsを使用した株価分析Webアプリケーションの構築](https://qiita.com/Tadataka_Takahashi/items/f7735529f379dad02c73)
この記事は、FastAPIとPlotly.jsを用いて株価分析Webアプリケーションを作成する方法を解説しています。このアプリケーションでは、ユーザーが選択した企業の株価チャートを表示し、期間の調整や移動平均線の表示が可能になります。ユーザーはデフォルトで表示される企業リストから選択するか、カスタム銘柄コードを入力することもできます。

バックエンドはFastAPI(Python)で構築され、yfinanceライブラリを使用して株価データを取得します。フロントエンドはHTML、JavaScript、jQueryで構築され、Plotly.jsを使用して株価チャートを可視化します。アプリケーションはレスポンシブデザインを採用し、様々なデバイスで使用可能です。


# [[Elixir]Plugを自作してみる[Phoenix]](https://qiita.com/t-yamanashi/items/cd90af49d13a17ac0d21)
ElixirのPlugを使って、ユーザーエージェントがiPadかどうか判定し、iPadならAppleのiPadページにリダイレクトするPlugを作成しました。
まず、`PlugExperimentWeb.Plugs.Ymn`モジュールでPlugを作成し、`init`関数で初期化を行い、`call`関数でユーザーエージェントを取得し、iPadかどうか判定します。
次に、`lib/plug_experiment_web/router.ex`ファイルの`pipeline :browser`で`PlugExperimentWeb.Plugs.Ymn`を呼び出してPlugを実行します。
最後に、`mix phx.server`でサーバーを起動し、ブラウザでアクセスすると、iPadであればAppleのiPadページにリダイレクトされます。
ソースコードはGitHubに公開されています。


# [Cursor の無料版を使い続ける場合の設定](https://qiita.com/7shi/items/2e8e3ed2c39e3dc4ee22)
## Cursor無料版でPro機能を体験する方法：GeminiとGitHub Copilot活用

Cursorの無料版はPro版に比べて機能が制限されますが、**Gemini**と**GitHub Copilot**を活用することでProに近い体験を実現できます。

**Gemini**はGoogle AI StudioでAPIキーを取得することで、Cursorに統合できます。無料枠は1分あたり15リクエスト、100万トークンと制限がありますが、強力なAI機能を無料で利用できます。

**GitHub Copilot**は学生やOSS開発者向けに無料版が提供されている場合があり、コード補完機能でCursorの自動補完機能を補完できます。ただし、[Ctrl]+[I]キーがComposerと競合するため、ショートカットキー設定の調整が必要です。

**まとめ**

GeminiとGitHub Copilotを組み合わせることで、Cursor無料版でもPro版に近い機能を利用できます。ただし、機能制限や無料枠の制限など、考慮すべき点もあります。開発持続性を考慮すると、Cursor Proの契約も検討する価値があります。


# [DroidKaigi 2024 9月12日資料一覧](https://qiita.com/sacred-sanctuary/items/6b50f507011d54f163ea)
DroidKaigi 2024は9月12日に開催され、様々なテーマのセッションが行われました。セキュリティ、UI、開発ツール、Jetpack Compose、位置情報、プライバシーなど、幅広いトピックが取り上げられました。  詳細なセッション内容は以下です。

**11:20-12:00**

* サプライチェーン攻撃への対策 (RyuNen344)
* 宣言的UIにおける重要概念 (HyunWoo Lee)
* Android ViewからJetpack Composeへの移行 (syarihu)
* Contextの理解 (Okumura)

**12:20-13:00**

* Composeにおけるキーボードナビゲーション (Tiphaine)
* オフラインファーストアプリの実例 (Arief Rahman, Takuya Kodama)
* Kotlin 2.0によるAndroid開発の進化 (daasuu)
* Jetpack Composeトレーニング (nyafunta9858)

**14:20-15:00**

* ViewModelの使い方 (mhidaka)
* フルスタック開発への道 (Ibrahim Gharbi, Yassine Benabbas)
* Jetpack Compose Modifierの解説 (wiroha)
* KSPの導入・移行 (shxun6934)

**15:20-16:00**

* MediaPipeによる画像認識と物体検出 (Anant Chowdhary)
* PDF Viewerの作成 (Hunachi)
* 海外就職というキャリア (tetsu)
* 電池寿命を考慮した位置情報監視 (はるちろ)

**16:20-17:00**

* Composeプレビューのスクリーンショットテスト (Sumio Toyama)
* Privacy Sandbox on Android (Junya Haseba)
* エンジニア1年目におけるコード改善 (たなむら)


# [Ectoで「エラーメッセージカスタマイズ」と「独自バリデーション関数作成」](https://qiita.com/t-yamanashi/items/02319390c36b82ce94a3)
## Ecto でエラーメッセージのカスタマイズと独自バリデーション関数の作成

**目標:**

* `validate_required` のエラーメッセージを「空でござる」に変更
* 最小文字数が2文字で、a〜zを含むという独自バリデーション関数を作成

**手順:**

1. **プロジェクト作成:** `mix phx.new ecto_experiment --database sqlite3`
2. **Ecto 実験用ソース作成:** `mix phx.gen.live Accounts User users name:string`
3. **ルーター設定:** `lib/ecto_experiment_web/router.ex` に `/users` のルートを追加
4. **エラーメッセージのカスタマイズ:** `lib/ecto_experiment/accounts/user.ex` の `changeset` 関数で `validate_required` に `message: "空でござる"` を追加
5. **独自バリデーション関数:** `changeset` 関数に `validate_name` 関数を追加
   * `validate_length` で最小文字数を2文字に設定
   * `validate_format` で a〜z を含むように設定
6. **実行:** `mix phx.server` でサーバーを起動し、`http://localhost:4000/users/new` にアクセスして検証

**結果:**

* 入力欄が空の場合、エラーメッセージが「空でござる」になる。
* 最小文字数が2文字未満または a〜z を含まない場合、それぞれのエラーメッセージが表示される。

この手順で、Ecto でエラーメッセージをカスタマイズし、独自のバリデーション関数を作成することができます。

# [ハッシュ値の性質 ハッシュの衝突耐性とは](https://qiita.com/Asaiii12/items/55c49f4369c8e1de8392)
ハッシュ値とは、データから生成される一意の値で、データの改ざん検知やデジタル署名などに利用されます。ハッシュ関数は、異なるデータから同じハッシュ値を生成しないという特徴を持ち、これを「衝突耐性」と呼びます。 

ハッシュ値は、**衝突発見困難性**、**原像計算困難性**、**第2原像計算困難性**といった性質を持ちます。

* **衝突発見困難性**: 異なるデータで同じハッシュ値を見つけることが難しい。
* **原像計算困難性**: ハッシュ値から元のデータを推測することが難しい。
* **第2原像計算困難性**: 与えられたデータと同じハッシュ値を持つ別のデータを見つけることが難しい。

これらの性質により、ハッシュ値はデータの改ざん検知、認証、デジタル署名などに利用されます。


# [「表示の拡大」について](https://qiita.com/a_t/items/51de3a88f86475fb4c56)
## 表示の拡大機能のまとめ

ブラウザで表示を拡大する方法は、文字サイズ、表示要素、表示範囲の3つの拡大方法があり、OSとブラウザによってそれぞれ機能が異なります。

**機能ごとの違い**

* **文字サイズの拡縮:** 文字サイズのみ拡大し、画像サイズは変わらず、横スクロールは発生しません。
* **表示要素の拡縮:** 文字サイズと画像サイズが拡大し、レイアウトは画面内に収まります。
* **表示範囲の拡縮:** 全ての要素が拡大し、スクロールが必要になります。

**提供状況**

| OS/ブラウザ | 文字サイズの拡縮 | 表示要素の拡縮 | 表示範囲の拡縮 |
|---|---|---|---|
| iOS | ◯ | ☓ | ◯ |
| Android | ◯ | ◯ | ◯ |
| iOS Safari | ☓ | ◯ | ◯ |
| iOS Chrome | ◯ | ☓ | ◯ |
| iOS Firefox | ☓ | ☓ | ◯ |
| Android Chrome | ◯ | ☓ | ◯ |
| Android Firefox | ◯ | ☓ | ◯ |
| macOS | - | - | ◯ |
| Windows 11 | ◯ | ◯ | ◯ |
| macOS Chrome | ◯ | ◯ | ☓ |
| macOS Safari | ◯ | ◯ | ☓ |
| macOS Firefox | ◯ | ◯ | ☓ |
| Windows 11 Chrome | ◯ | ◯ | ☓ |
| Windows 11 Edge | ◯ | ◯ | ☓ |
| Windows 11 Firefox | ◯ | ◯ | ☓ |

**注意:**

* iOSの文字サイズ設定は、ブラウザに反映させるために特定のCSS記述が必要です。
* Androidはテキストが少ない場合、文字サイズの拡縮が効かない場合があります。
* 各機能の詳細な使い方は、OSやブラウザによって異なります。

**結論**

拡大機能は複数あり、それぞれ挙動が異なります。WCAGの検証時には、どの機能が利用可能か確認し、適切な拡大方法を選択することが重要です。


# [Power Appsでリソースや他人の空き時間を確認して予約する](https://qiita.com/meccha__eeyan/items/0b3003c292075c3446a6)
## Power Appsでリソース予約アプリを作る

このテックブログは、Power Appsでリソース（人や部屋など）の空き時間を確認し、予約できるアプリを作成する方法を解説しています。

**主な機能:**

* リソース選択: チェックボックスで複数のリソースを選択可能
* 空き時間可視化: 選択したリソースの空き時間をタイムテーブル形式で表示
* 予約: ワンクリックで空き時間を予約

**アプリの構成:**

* **データ接続:**
    * リソースアカウントリスト（_ResourceList）
    * アプリ利用者のアカウント情報（_MyProfile）
    * アプリ利用者のOutlookカレンダーID（_MyCalenderID）
* **定数:**
    * 稼働時間タイムテーブル（_BusinessHour）
* **コントロール:**
    * リソース選択ギャラリー
    * 空き時間更新用隠しボタン
    * 空き時間可視化ギャラリー

**ポイントとなる機能:**

* **リソース選択ギャラリー:**
    * チェックボックスで選択されたリソース情報はコレクションColSelectedResourcesに格納
    * `FindMeetingTimesV2`アクションでリソースの空き時間を取得
    * `IsOrganizerOptional`オプションをtrueにすることで、自分の予定情報を除外
* **空き時間可視化ギャラリー:**
    * `FindMeetingTimesV2`で取得した空き時間情報に基づいてタイムテーブル表示
    * 予定有り時間は灰色網掛け
* **予約ボタン:**
    * `Office365Outlook.V4CalendarPostItem`アクションで予約処理を実行

**詳細:**

* 各コントロールのプロパティ設定やコード例が詳しく解説されています。
* `FindMeetingTimesV2`や`Office365Outlook.V4CalendarPostItem`アクションの使い方を学ぶことができます。
* コレクション、LookUp関数、ギャラリーの活用方法など、Power Appsの基本的な機能について理解できます。

**注意点:**

* `_MyCalenderID`の取得には、Outlookカレンダーの名称が海外メンバーの場合異なる可能性があります。
* 空き時間可視化ギャラリーのコードは複雑ですが、詳細な解説によって理解できるようになっています。

このテックブログは、Power Appsで予約アプリを作成するための具体的な手順とコード例を提供しています。初心者の方でも、説明に従って手順を進めることで、自分のオリジナルの予約アプリを作成することができます。


# [Web フロントエンドしかやってこなかった人がバックエンドに入門する](https://qiita.com/Tsukina_7mochi/items/119e60028a0ca948926f)
この記事は、Web フロントエンド開発者向けに、バックエンド開発入門のガイドを提供しています。Docker Composeを用いて、Nginx、Go製のAPIサーバー、PostgreSQLデータベース、Redisを別々のコンテナに構築し、ルーティングする方法を解説しています。具体的なステップとしては、まずGoで簡単なAPIサーバーを作成し、Dockerfileとdocker-compose.ymlで開発環境と本番環境を構築します。次に、Nginxコンテナを設定し、コンテナ間ネットワークの動作を確認します。最後に、クライアントコンテナを使って、APIサーバーへのアクセスを試みます。記事では、Docker Compose、Nginx、Go、PostgreSQL、Redisなどの技術を用いたバックエンド開発の基礎を学ぶことができます。 


# [Object でも Hash みたいに分割代入したい](https://qiita.com/QUANON/items/a69bfc2158e41d55dec8)
Ruby の Object でも Hash のように分割代入 (destructuring assignment) をしたい場合、`deconstruct_keys` メソッドを実装することで実現できます。

このメソッドは、オブジェクトから必要なキーの値を Hash として返します。これにより、分割代入を使ってオブジェクトの値を個別の変数に代入することができます。


# [【個人開発】サウナ後のご飯「サ飯」の情報共有ができるアプリを開発しました。](https://qiita.com/sttk_91/items/0c46aab9a7786edb2997)
## サウナ後のご飯「サ飯」を記録・共有するアプリ「サ飯の時間」開発

サウナ愛好家のためのアプリ「サ飯の時間」を開発したタクさん。サウナ施設検索、サ飯投稿、コミュニティ機能などを備え、サウナ初心者にも優しい設計。

**開発期間**: 3ヶ月
**技術スタック**: Rails, TailwindCSS, Google Maps API, Docker, Fly.io

**主な機能**:
- 周辺サウナ検索
- サ飯投稿（写真、コメント、評価など）
- サウナ施設詳細ページ
- いいね、コメント機能
- マイページ

**工夫した点**:
- 固定ヘッダーとボトムナビゲーションで操作性向上
- ログイン不要な閲覧、ログイン必要な機能へのスムーズな遷移

**今後の展望**:
- テストコード追加
- 対応エリア拡大
- リファクタリング

**開発背景**:
- サウナ愛好家であるタクさんが、サウナ体験をさらに充実させるためのアプリ開発を決意
- サウナブームと施設増加に対応したアプリとして「サ飯」に着目

**最後に**:
- スクール関係者への感謝
- 継続的な技術アウトプットと成長を誓う

このアプリは、サウナ愛好家同士の交流を促進し、サウナ文化の発展に貢献するポテンシャルを秘めています。


# [LinuxでPythonの仮想環境（venv）を作る方法](https://qiita.com/series201/items/8a10b9f9e66468668e90)
## Linux で Python の仮想環境 (venv) を作成・使用する方法

**仮想環境とは:**

プロジェクトごとに Python パッケージを分離するための仕組みです。

**作成手順:**

1. **作成:**  `python3.9 -m venv (venvディレクトリ名)` で仮想環境を作成します。
2. **有効化:** `source (venvディレクトリ名)/bin/activate` で仮想環境に入ります。
3. **確認:** `which python` で Python のパスが仮想環境のパスになっているか確認します。
4. **無効化:** `deactivate` で仮想環境から抜けます。
5. **削除:**  `rm -rf (venvディレクトリ名)` で不要な仮想環境を削除します。 


# [CCIE受験しました　1回目](https://qiita.com/k_kuri/items/8e786dfa17f7ca0a9975)
CCIE Enterprise Infrastructureのラボ試験を1回目受験し、10点という結果に。
試験内容は秘密だが、受験前に知りたかったことを中心にブログを書いた。

**試験前:**
- 受付は英語だが、プロクターさんが丁寧に説明してくれるので安心できる。
- 試験前の説明も丁寧で、環境や注意事項が理解しやすい。
- 試験環境はテストセンターに似ているが、独自のweb試験とターミナルがあるので事前に確認が必要。

**試験中:**
- 難しく、形式が理解できず戸惑った。
- 水やトイレは自由に行ける。
- 冷房で寒いので上着があると良い。
- 受験者は2人で、試験内容以外なら会話可能だった。

**試験後:**
- 0点だと思ったほどできなかった。
- 漠然とした不安は減り、試験内容を意識して勉強できるようになった。

**次回までに:**
- DesignとQoSの知識不足を感じた。
- ラボだけでなく、英文を読んで要点を理解する練習も必要。
- End-to-End QoS Network Design、Optimal Routing Design、CCIE Enterprise Infrastructure Foundation ラボ、CCOを丁寧に読む。

**目標:**
- 早めに再受験したい。


# [【速報】ChatGPTがアップデート！OpenAI o1最新情報を初心者向けに解説](https://qiita.com/KII437465127175/items/5f7ea93c2a9dafdc230d)
ChatGPTは、OpenAIが開発した高度な言語モデルで、人間のような自然な会話や文章生成が可能です。GPT-4は、最新モデルで、複雑な問題解決、長文の処理、画像入力にも対応しています。今後、さらに推論能力が向上し、音声や動画など、様々なデータ形式に対応する可能性があります。ChatGPTは、教育、医療、ビジネスなど、様々な分野で活用が期待されています。初心者でも、公式サイトにアクセスしてアカウント登録することで簡単に利用できます。個人情報や機密情報を入力する際には注意が必要です。

# [propsとは](https://qiita.com/kazu_09/items/c7b1d6c98f1573e34aaa)
Reactのpropsはコンポーネント間でデータを受け渡しするための機能です。様々な型のデータや関数を渡すことができます。書き方は複数あり、例として`props.age`のようにアクセスする方法や、`{ age, name } = props`のようにオブジェクトの展開を用いる方法などがあります。propsは便利な機能ですが、書き方が複数あるため、しっかり理解しておくことが重要です。