【最新版】有名企業のエンジニア向け研修資料まとめ
この記事は、有名企業が無料で公開しているエンジニア新人研修資料をまとめたものです。紹介されている企業は、ミクシィ、リクルート、KDDIアジャイル開発センター、ウィルゲート、サイボウズ、サイバーエージェント、ゆめみ、Wantedlyです。各企業の研修資料の内容は多岐にわたり、Git、データベース、設計・テスト、コンテナ、iOSアプリ開発、Androidアプリ開発、フロントエンド、ゲーム開発、Flutter、AI、セキュリティ、チーム開発、生成AI、エンジニアとしての心構え、コミュニケーションスキル、キャッチアップスキル、モバイルアプリ開発、アジャイル開発、MySQL、ソフトウェアテスト、セキュリティ、ソフトウェアライセンス、良いコード、技術的負債、clean architecture、天気予報アプリ開発、社会人としての考え方、プロダクト開発など、エンジニアの基礎から応用まで網羅しています。これらの資料は、エンジニア初心者から中級者、さらには研修担当者まで、スキルアップや研修資料作成の参考になる内容となっています。
40代 転職準備と退職後の自己成長: 技術と気楽に接しられるようになるまで
この記事は、40代女性エンジニアのWebエンジニア(バックエンド)からWebフロントエンドのフリーランスへの転職準備の記録です。
著者は、前職での経験を通して、自己肯定感の低さや周囲との価値観のずれを感じ、転職を決意しました。その後、ハッカソンや女性コミュニティへの参加を通して、自身のスキルやキャリアについて考えを深めてきました。
記事では、ハッカソンでの経験、女性コミュニティへの参加、競技プログラミングへの挑戦、職務経歴書の添削、初めての外部LT登壇、そしてポートフォリオ制作までの道のりが詳細に記されています。
著者は、自身の経験を通して、ジェンダーギャップの存在や、女性がIT業界で活躍するための課題、そして自身のスキルや価値観について深く考えてきました。
現在、ポートフォリオ制作やコミュニティ活動を通して、着実に転職準備を進めており、12月にはアドベントカレンダーに挑戦し、1月には就職活動を目指すとしています。
著者は、転職活動において、価値観やビジネス意識が不一致な転職エージェントや会社との面談は避け、自身のペースで転職活動を進めていくことを表明しています。
プロキシ vs VPN: 違いは?(詳細ver.)
プライバシー保護技術:プロキシ vs. VPN vs. dVPN
この記事は、オンラインプライバシー保護技術である プロキシサーバー、VPN、そしてdVPN について比較解説しています。
プロキシサーバー は、ユーザーのデバイスとインターネット間の仲介役として、特定のアプリケーションのトラフィックを中継し、IPアドレスを隠すことで匿名性を高めます。しかし、データ暗号化は提供せず、ログ保存のリスク もあります。
VPN は、プロキシサーバーと比べて、すべてのネットワークトラフィックを暗号化 し、さらにセキュリティレベルを高めます。しかし、従来型のVPNは 中央集権型のサーバーを使用 するため、データ漏洩や監視の危険性 が残ります。
dVPN (分散型VPN) は、複数の独立したサーバー を使用し、トラフィックログを保存しない ことで、プライバシー保護レベルを大幅に向上 させています。dVPNは、従来のVPNやプロキシよりも ユーザーの行動追跡を困難にする 特徴を持ちます。
記事では、プロキシサーバー、VPN、dVPNのそれぞれの特徴 を詳細に解説し、プライバシー保護機能 について比較しています。
特に、dVPNが従来の技術よりも優れたプライバシー保護を実現する 点を強調しており、NymVPN のような ミックスネット技術を採用したdVPN が、 高いプライバシーと匿名性を求めるユーザー に最適であると結論付けています。
意外と(?)いろいろできるAmazon Bedrock Prompt ManagementがGAしましたよ!
この記事は、Amazon BedrockのPrompt Management機能が正式リリースされたことを発表し、その機能の詳細と使い方について解説しています。
Prompt Managementは、プロンプトをテンプレート化して登録することで、再利用性を高める機能です。テンプレートには変数を使用でき、呼び出し時に変数の値を指定することで、プロンプトを柔軟に利用できます。
記事では、Prompt Managementの基本的な使い方として、テキスト翻訳とチャットの例を紹介しています。テキスト翻訳では、templateType: TEXT
を用いて、単純なテキストテンプレートを作成し、promptVariables
を使って変数を渡す方法を解説しています。
チャットでは、templateType: CHAT
を用いて、システムプロンプト、ユーザーとアシスタントの複数メッセージ、ツール呼び出しを指定できるテンプレートを作成する方法を解説しています。また、会話の継続やツールの結果を返す方法についても説明しています。
記事の最後には、Bedrockエージェントとの連携について言及されていますが、具体的な呼び出し方法は不明なため、今後のアップデートが期待されます。
PHPにパターンマッチングはないが… 作ればいいよ
この記事は、PHPでパターンマッチングを実現するための自作ライブラリを紹介しています。PHPのmatch式は完全なパターンマッチングではないため、作者は独自にパターンマッチングライブラリを作成しました。
このライブラリは、is
、class
、配列マッチャー
、正規表現マッチャー
といった様々なマッチャーを提供し、match式でパターンマッチングを可能にします。
記事では、各マッチャーの使用方法や実装の詳細について解説しています。また、ライブラリのコードは公開されており、誰でも自由に改造して使用することができます。
記事の最後には、このライブラリがどのように動作するかを説明するために、PHPのリファレンスに関する書籍を読むことを推奨しています。
オブジェクト指向の原則"カプセル化"をUnrealEngine5で実践してみた
UnrealEngine5におけるオブジェクト指向「カプセル化」の実践
この記事は、UnrealEngine5でアダルトゲームを開発しているNishi氏が、オブジェクト指向の原則「カプセル化」をUE5でどのように実践するかについて解説したものです。
主な内容:
- カプセル化の概念: 機能を別のクラスに分離し、機能を使う側は中身を知る必要がないようにする。
- UE5におけるカプセル化の実装: BlueprintInterfaceとコンポーネントを使用し、機能を呼び出す側はインターフェースを介してコンポーネントにアクセスする。
-
実装のルール:
- コンポーネントを所有するアクターをコンポーネントに依存させない(疎結合)。
- 簡単に取り外しができる。
- インターフェースで機能を呼び出す。
- コンポーネントの形式に依らず、アクターからの機能の呼び出し方が同じ。
- 機能ごとにアセットが分かれている。
- ひとつのコンポーネントにはシンプルな機能をひとつ。
- 引数で状態を受け取り、状態を変更せず、何かをアウトプットするだけの機能にする。
-
実装方法:
- 機能ごとにBlueprintInterfaceとコンポーネントを作成。
- BlueprintInterfaceは、呼び出したい機能の関数をひとつだけ追加。
- コンポーネントは、ActorComponent、SceneComponent、特定の既存のコンポーネントクラスの子クラス、Actor(ChildActor)のいずれかを選択。
- コンポーネントにインターフェースで呼び出せる機能を実装。
- 女の子キャラに使う機能のコンポーネントを配置。
- GetAllComponentsByInterface関数でインターフェースクラスを指定し、Getしたコンポーネントに対してインターフェースで機能を呼び出す。
利点:
- 女の子キャラがコンポーネントに依存しない(疎結合)。
- 簡単に取り外し可能。
- コンポーネントの形式に依らず、キャラクターからの機能の呼び出し方が同じ。
- 機能ごとにアセットが分かれている。
- エディタ画面上でプレビューしやすい。
- 単体テストがしやすい。
課題:
- アセットの数が多くなる。
- 継承との使い分けが難しい。
結論:
Nishi氏は、UE5でオブジェクト指向のカプセル化を実践する方法を、自分なりに納得のいく方法で実現したと述べています。
補足:
- 記事公開後に、Pure関数での配列Getのアンチパターンについて指摘を受け、非pure関数に変更した。
- カプセル化だけでなく、多態性も関係しているという意見もある。
この記事は、UnrealEngine5でオブジェクト指向のカプセル化を実践したい開発者にとって、参考になる内容です。
クラウドフローが自動でソリューションフローとなる機能について(前編)
Microsoft Power Automate の機能アップデート:クラウドフローが自動的にソリューションに含まれるようになる
この記事は、Microsoft Power Automate の今後の機能アップデートについて解説しています。2024年11月30日に公開予定のアップデートにより、クラウドフローが自動的に Dataverse ソリューションに含まれるようになります。これにより、ソリューションフローのメリットを享受できる一方、管理者や開発者にとって新たな課題も発生します。
主な変更点:
- 自動化されたソリューションフロー: 新規作成されるクラウドフローは、"既定のソリューション" に自動的に追加されます。
- ソリューションフローの利点: バージョン管理、下書き機能、実行履歴分析などが利用可能になります。
-
課題:
- データベース容量の消費
- レガシーなエクスポート方法の廃止
- 既存のクラウドフローは移行機能を使用しない限り、従来通り扱われます。
- 管理者や開発者にとって、ソリューションの理解が必要になります。
今後の展望:
記事では、アップデート後の詳細な動作や、ソリューションフローに関する詳細な情報が、後日公開される予定であると述べています。また、ソリューションフローへの移行に伴い、ソリューションの理解が重要になるため、関連するドキュメントや記事へのリンクも紹介されています。
Qiita アップデートサマリー - 2024年10月
Qiita アップデートサマリー (2024年10月)
本記事は、2024年10月にQiitaで行われたアップデートをまとめたものです。主な変更点は以下の通りです。
アクセシビリティ改善:
- 質問フィードのUI改善
- ドロップダウンメニューのアクセシビリティ向上
- 検索結果ページのUI改善
- アドベントカレンダーページのアクセシビリティ改善
機能追加:
- エディタ・コードブロックに和文フォントの指定を追加
- 文章修正提案機能の個別オフ設定
- Mermaidのバージョンアップ (10.9.0 → 11.3.0)
- リリースノートの RSS フィード公開
- 記事ページのOGP画像にユーザーアイコンを追加
これらのアップデートにより、Qiitaはより使いやすく、アクセシブルになりました。
要約内容の身
Qiitaは、エンジニアからのフィードバックを基に、2024年10月に多くのアップデートを行いました。アクセシビリティ改善、機能追加、セキュリティ強化など、幅広い分野において改善が進められています。ユーザーエクスペリエンス向上を目指し、今後も開発を続けていくとのことです。
gradle.kts ベースで Gradle Convention Plugin を作る
Gradle Convention Plugin の効率的な実装方法
この記事は、Gradle Convention Plugin をより効率的に実装する方法として、gradle.kts
ファイルを活用する方法を紹介しています。
従来の org.gradle.api.Plugin
を使った実装方法では、ボイラープレートコードが増え、settings.gradle.kts
の共通化が難しくなるという問題がありました。
gradle.kts
を活用した方法では、
-
src
配下にgradle.kts
ファイルを作成し、プラグインのロジックを記述することで、org.gradle.api.Plugin
クラスの記述を省略できます。 -
settings.gradle.kts
ファイルを共通化して、プロジェクト全体で設定を統一することができます。
具体的には、
-
gradle-conventions
モジュールにsrc/main/kotlin/my-convention.gradle.kts
ファイルを作成し、プラグインのロジックを記述します。 - ルートプロジェクトの
settings.gradle.kts
にincludeBuild("gradle-conventions")
を追加し、gradle-conventions
モジュールをインクルードします。 - ルートプロジェクトの
build.gradle.kts
にid("my-convention")
を追加し、プラグインを適用します。
gradle.kts
ファイルはコンパイル時に org.gradle.api.Plugin
クラスに変換され、自動生成されたプラグインが適用されます。
settings.gradle.kts
の共通化は、動的に生成する versionCatalog
をプロジェクト全体で一貫して使用したい場合などに有効です。
記事では、依存アーティファクトの参照先となる repositories を設定する Convention Plugin を作成する手順も紹介しています。
gradle.kts
を活用した Convention Plugin の実装は、ボイラープレートコードを削減し、settings.gradle.kts
の共通化を容易にするなど、多くのメリットがあります。
macOS利用の初心者Rubyプログラマは要確認!9つの開発環境チェックポイント
この記事は、macOSでRubyを動かしているプログラミング初心者向けに、開発環境のチェックポイントを9つ紹介しています。特にAppleチップ搭載Macで、Intel版のセットアップを誤って行っているケースを想定しています。
チェックポイントは以下です。
- CPUの確認: Appleチップ搭載Macかどうかを確認します。
- 移行アシスタント: 移行アシスタントを使ってマシン移行をした場合は、開発環境が正しく設定されていない可能性があります。
- ターミナルのシェル: 標準シェルがzshであることを確認します。
- ターミナルのCPUモード: Rosettaを利用していないことを確認します。
- Homebrew: Appleチップ版のHomebrewがインストールされていることを確認します。
- brew doctor: Homebrewが正常に動作していることを確認します。
- rbenv-doctor: rbenvが正常に動作していることを確認します。
- VS Code: Appleチップ版のVS Codeがインストールされていることを確認します。
- ~/.zshrc と ~/.zprofile: 頼れる先輩プログラマにレビューしてもらうことを推奨します。
記事では、問題があれば先輩プログラマに相談することを繰り返し推奨しています。また、フィヨルドブートキャンプでは、メンターが開発環境のチェックやプログラミング学習に関するサポートを提供していることをアピールしています。
Svelteのコンセプトに心打たれ、触れてみて書きやすさに感動し、Runeの使いやすさに涙した…けど、たった一点の理由で結局Vueに帰還したお話
Svelte V5 触ってみた - 感想と課題
この記事は、Svelte V5を2週間使用した筆者の体験談です。仮想DOMを使わずコンパイラで高速処理を実現するSvelteは、コードの書きやすさが魅力で、特にVueからの乗り換えにおいては、リアクティブ変数の仕様やHTML記述の簡素化が大きな利点だと感じています。
Svelteの利点:
- シンプルなリアクティブ変数: refやreactiveが不要で、全ての変数がリアクティブ。算出プロパティも$記号一つで表現できます。
- 簡潔なHTML記述: {#if}や{#each}ブロックでDOMの分岐・繰り返し処理が分かりやすく記述できます。
- RuneによるState管理: VueやReactのstateのような機能で、外部のjs/tsファイルでもSvelte構文が使用できます。importやキーワードも不要でシンプルです。
課題:
- 最新版に対応したdevtoolがない: デバッグ時にコンポーネント内のリアクティブな変数の変更を検出することが難しい状況です。
結論:
Svelteの魅力的な機能と使いやすさにもかかわらず、現状ではdevtoolがないため、筆者は当面Vueで開発を続けることを決断しました。Svelte V5に対応したdevtoolのリリースが待ち望まれます。
GitHub Copilot Extensionsを使って自分専用のChat Agentを作る
この記事は、GitHub Copilot Chat の拡張機能である「GitHub Copilot Extensions」を使って、自作のチャットエージェントを作成する方法を解説しています。
筆者は、公式ドキュメントを参考にしながら、ワンピースの黒ひげを模倣したチャットエージェントを作成するサンプルアプリを動かす手順を詳細に説明しています。
具体的には、以下の手順を解説しています。
- Chat Agent の準備: サンプルアプリのリポジトリをFork して、ローカル環境にcloneします。
- ngrok の準備: ローカルで起動したChat AgentにGitHubがアクセスできるようにするために、ngrok をセットアップします。ここでは、筆者がngrokの使い方でつまづいた点も解説しています。
- GitHub Apps の作成: GitHub の Developer Settings から、GitHub App を作成します。ここでは、App Type を Agent に設定し、ngrok で発行した URL を登録します。
- 動作確認: 作成した GitHub App を Copilot Chat から呼び出し、動作を確認します。
さらに、筆者は今後の予定として、GitHub Pages 上で公開している保守ドキュメントを使って、RAG (Retrieval-Augmented Generation) を作成したいと考えていることを述べています。
この記事は、GitHub Copilot Extensions の初心者向け解説記事であり、具体的な手順を踏まえて作成方法を説明しているため、読者は実際に手を動かしてチャットエージェントを作成することができます。
Lambdaで処理できないバッチ処理をAWS Batchで便利に実行しよう
この記事は、AWS Batchを使って、SQS+Lambda構成では処理できない長時間のバッチ処理を行う方法について解説しています。
AWS Batchは、コンテナベースのタスクをキューに登録してスケジュールし、自動的に実行・リトライを行うフルマネージドサービスです。Lambdaの15分制限を超えた処理や、ジョブのスケジューリング、リトライ、並行実行数の制御、失敗時の通知などの機能を提供します。
記事では、AWS CDKを使ってAWS Batchの設定方法を例示しており、サンプルコードを使って実際に試すことができます。
具体的には、ジョブ定義、コンピューティング環境、ジョブキューの作成、ジョブ失敗時の通知設定、パラメータストアへのジョブ定義/ジョブキューのARNの保存、ジョブ登録/実行、ジョブへのパラメータの渡し方について解説しています。
AWS Batchは、大規模なバッチ処理だけでなく、比較的小規模なバッチ処理にも利用できるため、SQS+Lambdaの代替として長時間のバッチ処理を行う際に適しています。
どうしても他者と比較してしまう人への処方箋
この記事は、エンジニアが陥りがちな他者との比較によるストレスや劣等感について、社会的比較過程理論に基づいて解説しています。
記事では、他者比較が自己評価、不安解消、目標設定に役立つ一方で、自尊心へのダメージ、ストレス、競争心を煽るなどの悪影響も指摘しています。
他者比較しやすい人の特徴として、承認欲求の強さ、自信の欠如、完璧主義、不安感の強さ、競争心の強さ、過去の経験などが挙げられています。
そして、他者比較と上手に付き合う方法として、劣等感を社会で活かすという考え方、具体的には上方比較と下方比較のそれぞれのメリットを活かす方法が紹介されています。
最後に、他者比較は悪いことばかりではなく、使い方次第では自分や周りの成長の糧になるという結論が述べられています。
「SREをはじめよう」を読んで得た学び
「SREをはじめよう」を読んだ感想:信頼性を向上させるための組織文化を築く
この記事は、株式会社GENEROSITYのエンジニアが「SREをはじめよう」を読んだ感想をまとめたものです。
著者のDavidさんは、SREを「組織がシステムの信頼性を適切かつ持続的に達成できるよう支援する工学分野」と定義しています。
記事では、「信頼性」「適切」「持続的」という3つのキーワードを軸に、SREの考え方と組織における導入方法について解説しています。
主な学びは以下の通りです。
- 顧客重視の姿勢が重要: SREはシステムの観点ではなく、顧客の観点から信頼性を評価する。
- 信頼性は共同作業: システム開発、運用、顧客など、関係者全員で信頼性を高める。
- 失敗から学ぶ: エラーを表面化し、システムを理解することで信頼性を向上させる。
- SREの文化を定着させる: トイルを排除するなど、SRE活動を組織全体に浸透させることで、より良い方向へ導く。
- コーディング知識とシステムの基礎知識が必須: SREはシステムの信頼性を向上させるために、コードレベルでの修正や提案を行う必要がある。
- Dickersonの信頼性の階層構造: 監視、インシデント対応、テスト、キャパシティ管理など、段階的に信頼性を向上させるための方法論。
- SREを組織に組み込む: 実験的にSREを実践し、フィードバックループを構築することで、組織全体で信頼性を向上させる。
まとめ: SREは、単にシステムの信頼性を向上させるだけでなく、組織全体の文化を変革し、顧客中心の考え方、継続的な改善、失敗からの学びを促進する活動です。
Ollamaで複数のLLMを複数のGPUに載せる
この記事は、Ollamaを使って複数のLLMを同時に、さらに複数GPUに分散させて推論する方法を紹介しています。
環境変数を設定することで、複数のLLMを同時にロードし、GPUを最大限に活用して推論処理を高速化できます。具体的には、CUDA_VISIBLE_DEVICESで使用するGPUを指定し、OLLAMA_MAX_LOADED_MODELSでロード可能なモデル数を、OLLAMA_NUM_PARALLELで同時に推論できる数を設定します。
記事では、llama3.2 11b、qwen2.5、sbv2の3つのLLMをロードし、複数GPUを使用した推論の実行例を紹介しています。ただし、複数GPUの使用には、十分なメモリ容量と冷却性能が必要となります。
長文コンテクストに強いRAG「LongRAG」登場! - 超高効率な質問応答を実現 -
LongRAG: 次世代自然言語処理技術の解説
この記事は、従来のRAG技術の問題点を解決し、より高精度な情報検索を実現するLongRAGについて解説しています。
LongRAGは、文書全体を検索ユニットとすることで、文脈の断絶を防ぎ、マルチホップ推論に必要な情報も効率的に取得できる次世代の自然言語処理技術です。
従来のRAGは短いパラグラフ単位で検索するため、複数の情報源を必要とする質問や文脈の解釈が難しいという問題がありました。
LongRAGは、以下の特徴を持つことでこれらの問題を解決しています。
- 長文ユニット: 文書全体を検索ユニットとすることで、文脈の一貫性を保ち、情報取りこぼしを防ぎます。
- 効率的な検索: 文書間のハイパーリンク分析によるクラスター化で検索対象を大幅に削減し、効率的な検索を実現します。
- マルチホップ質問への対応: 複数の情報源を一度に取得し解析するため、複雑な質問にも正確な回答が可能です。
- 優れたパフォーマンス: ベンチマーク結果では、従来のRAGを上回る精度を示しています。
LongRAGの課題:
- 長文コンテキストを直接エンコードできる埋め込みモデルの開発
- LLMの位置バイアスの軽減
結論:
LongRAGは、エンタープライズレベルでの高精度な情報検索システム構築に適した技術です。今後、より高度なモデル開発や課題克服により、さらに進化していくことが期待されます。
10年を超えて繋がる成長の旅──転職活動と世界平和へのエンジニア魂
この記事は、著者が10年前に経験した35歳の転職活動について振り返り、転職活動を通して得た教訓や成長、そしてエンジニアとしての未来への展望を語ったものです。
著者は、転職活動を通して、技術や経験を新しい場所で試すことで自身の成長が加速し、エンジニアコミュニティへの参加によって孤独から解放され、視野が広がったことを実感しました。
現在は、Elixirやブロックチェーンなどの技術を活用し、知識を共有し、エンジニアとしての成長を支え合う仲間たちと出会うことで、エンジニアは孤独ではなく、世界中のエンジニアが力を合わせれば、真の平和と繋がりの実現に貢献できるのではないかと考えています。
転職活動は、単なる仕事探しではなく、自分自身の見直しと決意の場であり、成長の旅であり、挑戦の連続であると結論付けています。
AI分野におけるリーダーボードとは
AIリーダーボードは、様々なAIモデルの性能を客観的に比較・評価するオンラインプラットフォームです。共通のテストデータを用いて性能を自動的に評価し、一覧表示することで、開発者は自身のモデルの性能を正確に把握できます。また、他のモデルとの比較を通じて改善点が明確になり、効果的な開発方向性を示すため、技術革新を促進します。さらに、成功事例や技術的課題の共有により、AI開発コミュニティ全体の発展に貢献します。
主要なリーダーボードには、言語モデルの総合的評価を行うHELM、実用的観点からの分析を行うArtificial Analysis、日本語言語モデルに特化したNejumi LLMリーダーボードなどがあります。各リーダーボードはそれぞれ独自の特徴を持ち、異なるニーズに対応しています。
Sentryでエラーをモダンに確認しよう!
Sentryの概要とSpring Bootへの導入手順
この記事は、エラーモニタリングツール「Sentry」の概要と、Spring Bootプロジェクトへの導入手順を解説しています。
Sentryのメリット:
- リアルタイムなエラー検知と通知
- 詳細なエラーレポート(スタックトレースなど)
- エラー頻度、影響を受けたユーザー数の可視化
導入手順:
- Sentryに登録
- Spring BootプロジェクトにSentryの依存関係を追加
-
application.properties
にSentryのDSNを設定 - Springアプリケーションで意図的なエラーを発生させ、Sentryに送信
- Sentryでエラー情報を確認
Sentryで確認できる情報:
- エラー発生箇所
- エラーレベル
- エラー発生URL
- スタックトレース
- 発生頻度
その他:
- SentryはSlackなど他のツールとの連携も可能
- 無料プランでは1ユーザーのみ利用可能
- 複数ユーザーや高度な機能を利用するには有料プランが必要
結論:
Sentryは、エラーモニタリングを効率化し、開発を支援する強力なツールです。個人開発から現場まで、幅広い開発現場で役立ちます。
Focus On Methods - 試行錯誤して見つけた集中力を高めるメソッドたち
この記事は、集中力を高めるための様々な方法を試した筆者が、その中で特に効果があった方法を紹介しています。
筆者は、散歩、昼寝、瞑想、場所を変える、ポモドーロ・テクニック、とりあえず始める、やることを決める、そして水を飲む、といった方法を試しました。
その結果、筆者は最も効果があった方法として「水を飲む」を推奨しています。
筆者は、水を飲むことで継続的な集中力を得ることができるとし、さらに水分不足が集中力の低下に繋がることを指摘しています。
また、水を飲むことでトイレ休憩を挟むことができ、それが散歩の機会にもなると述べています。
筆者は、自身の経験に基づき、水を飲むことの重要性を強調しており、読者に対しても水を飲むことを強く推奨しています。
Googleタグマネージャーのタグの発火順序
Googleタグマネージャーでカスタムイベントを使いこなす:タグ配信の優先順位と順序付け
この記事は、Googleタグマネージャー初心者向けに、カスタムイベント作成とタグ配信の制御方法を解説しています。特に、タグ配信の優先順位設定だけでは制御できないケースや、タグ配信の順序付けの重要性を詳しく説明しています。
主な内容:
- カスタムイベントとは: トリガー作成、トリガー発火、Googleアナリティクスへのイベント送信の3つの役割を担う。
- タグ配信の順序付け: 3つの方法(トリガーによる発火、タグの順序付け、タグ配信の優先度)を比較し、それぞれの特徴を解説。
- タグ配信の優先度: 同一のトリガーで複数のタグが発火する場合に、優先順位の高いタグが先に実行される。ただし、トリガーが異なる場合は優先順位が機能しない場合がある。
- タグの順序付け: タグ間の依存関係を考慮して、処理順序を指定する。
- Googleタグマネージャーの利点: スクリプトの変更・管理が容易になるため、Web広告運用、複数サイト管理、ECサイト分析、自社サイトの分析など、様々な場面で有効。
この記事で得られる知識:
- カスタムイベントの作成方法
- タグ配信の制御方法
- タグ配信の優先順位と順序付けの適切な活用
- Googleタグマネージャーによる効率的なスクリプト管理
この記事を読めば、Googleタグマネージャーを使って、より精度の高いデータ収集と分析が可能になります。
PowerShellの.ps1をexe化する
この記事は、PowerShellスクリプトをexeファイルに変換する方法を説明しています。具体的には、Install-Module ps2exe
コマンドでps2exeモジュールをインストールし、ps2exe sample.ps1
コマンドでsample.ps1スクリプトをsample.exeファイルに変換する方法を紹介しています。
web技術の基本用語
テックブログ記事要約
この記事は、コンピュータ同士の通信におけるプロトコルについて解説しています。
プロトコルは、コンピュータ間でデータのやり取りを行う際に、お互いが守るべきルールや約束事のことです。
記事では、ステートフルとステートレス、リクエストとレスポンス、CookieとSession、ポート番号といった重要な概念を例を用いて分かりやすく説明しています。
ステートフルとは、過去の通信内容を記憶しておく通信方法です。一方、ステートレスは過去の通信内容を記憶せず、毎回新たに通信を行う方法です。
リクエストは、WebブラウザからWebサーバーに対してデータを送信すること、レスポンスは、WebサーバーからWebブラウザに対してデータを送信することです。
Cookieは、Webサーバーがクライアントの情報(ログイン情報など)を記憶しておくために用いる仕組みです。Sessionは、Cookieのセキュリティ上の問題点を克服するために考案された仕組みで、サーバー側でクライアントの情報(Session IDなど)を管理します。
ポート番号は、ネットワーク上の特定のサービスやアプリケーションへのアクセスを識別するために使用される番号です。
記事では、これらの概念を具体的な例を用いて解説することで、プロトコルの役割と仕組みを理解しやすくしています。
MATLAB グラフ中の文字関連 Tips
この記事は、MATLABでグラフの文字を整える方法を紹介しています。具体的には、軸ラベル、カラーバーラベル、目盛り、タイトル、凡例、フォントサイズの設定方法を解説しています。
記事では、xlabel
、ylabel
、colorbar
、xticks
、yticks
、xticklabels
、yticklabels
などの関数と、Interpreter
プロパティを活用し、グラフの文字を美しく表示する方法を示しています。
さらに、newline
を用いた改行、Interpreter
の一括設定による効率化、アンダースコアの扱い方についても説明しています。
記事は、MATLABを用いてグラフを作成する際に、文字を美しく整えるための具体的な方法を丁寧に解説しており、MATLABユーザーにとって大変参考になる内容となっています。
【Go言語】Ginでログイン認証を実装する
この記事は、Go言語のWebフレームワーク「Gin」を用いてログイン認証を実装する方法について解説しています。
具体的な内容は以下の通りです。
-
環境構築:
- MacBook Air M1、VScode、Go 1.23.2、Gin、MySQL、Docker、Postmanを使用
-
API設計:
-
/api/register
(サインアップ): ユーザー登録を行うエンドポイント -
/api/login
(ログイン): ユーザー名とパスワードを受け取り、JWTを生成して返すエンドポイント -
/api/admin/user
: JWT認証が必要なエンドポイント
-
-
サインアップエンドポイントの実装:
- ユーザー入力のバリデーションチェックを実装
- MySQLデータベースへの接続処理を実装
- ユーザー情報をデータベースに保存する処理を実装
-
ログインエンドポイントの実装:
- ユーザー名とパスワードを受け取り、データベースと照合する処理を実装
- JWTを生成して返す処理を実装
-
認証ミドルウェアの作成:
- JWT認証を行うミドルウェアを作成
- 認証が必要なエンドポイントにミドルウェアを適用
この記事は、JWTを用いた認証システムを構築する際の基礎的な知識や実装方法を、具体的なコード例と共に解説しています。
補足:
- 記事中のコードは、各ファイル名と合わせて理解しやすいように要約されています。
- JWTの生成・検証やMySQLとの連携など、重要な処理の解説がされています。
- Postmanを用いた検証方法も説明されているため、実際に手を動かして試すことができます。
【イベントレポート】LiON主催ミートアップ「エンジニアのキャリア戦略を考えよう」
この記事は、LinuC Open Network(LiON)が10月に開催したミートアップイベント「令和版!エンジニアのキャリア戦略を考えよう」のレポートです。イベントでは、日本PostgreSQLユーザ会 理事長 喜田紘介 氏をゲストスピーカーに迎え、エンジニアのキャリア戦略について講演が行われました。
喜田氏は、コミュニティへの積極的な参加や情報発信が自身のキャリアに大きく貢献したと語り、資格取得の重要性についても解説しました。イベントでは、参加者同士の自己紹介と交流会も実施され、活発な意見交換が行われました。
参加者からは、イベント内容やコミュニティ活動に対する高い評価が得られ、LiONは今後もこのようなイベントを継続的に開催していく予定です。興味のあるエンジニアは、ぜひLiONに参加してみてください。
「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」でつまずいたことメモ:3章
この記事は、LangChainとLangGraphによるRAG・AIエージェント入門書の第3章「プロンプトエンジニアリング」について、著者が学んだ内容と自身の経験をまとめたものです。
主な内容は、プロンプトエンジニアリングの必要性、プロンプトの構成要素、定番の手法、そして著者の経験に基づいたLLMとのコミュニケーションについてです。
具体的には、プロンプトエンジニアリングがLLMからの出力の質を向上させ、ユーザーの意図を正確に伝えるために重要であること、プロンプトには明確な指示や質問、文脈などが含まれること、そして定番の手法としてCoTプロンプティングなどが存在することなどが解説されています。
著者は、LLMとのコミュニケーションを通して日本語力の向上を実感しており、プロンプトエンジニアリングは人間相手に丁寧に指示を出すことに似ていると述べています。
記事では、最新のLLMであるGPT-4o miniとGPT-4を用いて、文字数指定に対する生成結果を比較し、技術の進歩によって過去の工夫や知識が変化していく様子も示しています。
さらに、記事ではRAGに関心のある読者に知識グラフを学ぶことを推奨し、関連するQiitaの記事を紹介しています。
全体として、この記事は、LLMを活用する際にプロンプトエンジニアリングの重要性を理解し、その基礎知識を習得するための参考となる内容です。
ReactプロジェクトをGitHubActionsを使ってFirebaseへ自動デプロイする手順
この記事は、GitHub Actionsを用いて、React プロジェクトを Firebase に自動デプロイする方法について解説しています。
具体的には、Firebase の hosting:github 機能を使って、以下の設定を行います。
- firebase init hosting:github コマンドを実行: Firebase と GitHub を連携し、サービスアカウントを作成して GitHub の Secrets に登録します。
- ビルドコマンドの設定: デプロイ時に実行するビルドコマンドを指定します(例: npm ci && npm run build)。
- マージ実行時の設定: プルリクエストがマージされた際にライブチャネルに自動デプロイするかを指定し、ライブチャネルに紐付けるブランチ名を指定します。
これらの設定によって、以下を実現できます。
- プルリクエストの作成時に、プレビュー用の URL がプルリクエスト画面に表示され、プレビューサイトで変更内容を確認できます。
- main ブランチにマージされた際に、Firebase へ自動でデプロイされます。
記事では、.env ファイルの環境変数を GitHub Secrets に登録する方法についても解説しており、CI サーバーで環境変数が読み取れない問題を解決する方法を示しています。
Backlog の課題登録時 GPT に評価してもらう(Livebook アプリで実装)
この記事は、ElixirのLivebookを使ってBacklogのAPIを呼び出し、OpenAI APIで取得した課題の記述を評価して、評価コメントを課題に登録する方法を解説しています。具体的には、LivebookでBacklog APIから課題情報を取得し、OpenAI APIでGPT-4o miniを使って課題記述を評価し、その結果をBacklog APIを使って課題コメントとして登録する方法を説明しています。さらに、課題登録時にこの処理を自動実行するためのWebhookアプリケーションの構築方法についても触れられています。記事では、Livebookのインストール、Backlog APIキーとOpenAI APIキーの作成、Livebookでのコード実装、ngrokを使ったローカルアプリケーションへのWebhook接続、Webhookアプリケーションの設定手順などが詳細に解説されています。