【生成AIの学習ロードマップ】最近やたら羽振りのいいやつが生成AIを極めてた件について。
この記事は、生成AIを使いこなせる人材、ひいてはAIアプリ開発者になるためのロードマップを提供するテックブログ記事である。入門編では、生成AIの概要理解、ツール活用、最低限のWeb開発知識習得を段階的に解説。実践編では、業務課題解決のための思考法(論点思考、仮説思考)と、ノーコードツールやGASを用いたハンズオン開発を通して実践的なスキル習得を目指す。発展編では、Webアプリ開発に必要な技術(Python、JavaScript、Reactなど)や開発環境構築、デプロイ方法を解説し、AIアプリ開発へのステップアップを支援する。 様々なAIツールや学習リソースが紹介されており、初心者でも生成AIを活用できるようになることを目指している。
エンジニア1年目が意識してほしいこと
この記事は、エンジニア1年目(および社会人1年目)に向けて、仕事で成功するための10個のアドバイスを紹介している。具体的には、(1) 元気よく振る舞い、積極的にコミュニケーションをとる、(2) 先輩からのアドバイスを素直に受け入れる、(3) 自分の立ち位置を理解し、焦らず成長過程にあることを受け入れる、(4) 他人と比べず、過去の自分と比較して成長を実感する、(5) 継続的に勉強する、(6) できることは何でも積極的に行う、(7) すぐできることはすぐにやる、(8) メモを取る習慣をつける、の8点である。著者は、これらのアドバイスを実践することで、周囲からの信頼を得て、スキルアップにつながると主張している。すぐに効果が出なくても、継続することで自然と身につき、結果に繋がるとしている。
書籍「ディープラーニングの数学」10章のDLモデルをGPUで動かす
この記事は、「ディープラーニングの数学」という書籍の10章にある、処理速度が遅いディープラーニングの実習プログラムをPyTorchを用いて高速化する方法を紹介している。NumPyとMatplotlibのみを用いたオリジナルプログラムは、1回の繰り返し処理に30分~1時間かかっていたが、PyTorchを用いることで、バッチサイズを調整し、繰り返し回数を増やすことで、処理時間を大幅に短縮し(12分で2000エポック)、精度も約98%に向上させた。 高速化の鍵は、数値微分を使わずにPyTorchの行列演算エンジンを利用することであり、NumPy配列をPyTorchのTensorに変換し、GPU計算を行うことで実現した。 また、書籍の他の実習プログラムも修正され、GitHub上で公開されている。
【AWS】ECS CI/CD の作り方(GitHub Actions / Code シリーズ / Terraform)
この記事は、GitHub Actions、AWS Codeシリーズ(CodePipeline, CodeBuild, CodeDeploy)、Terraformを用いた、ECS環境のCI/CDパイプライン構築手順を解説しています。アプリとインフラの境界を明確化し、GitHub ActionsでECRへのイメージプッシュ、S3経由でのDBマイグレーション、Terraformで管理されたappspecの適用を行う構成です。OIDCを用いたGitHub ActionsとECRの連携、ECS、S3、RDSなどの基本リソース構築、Blue/Greenデプロイメントの設定なども含め、TerraformコードとGitHub ActionsのYAMLファイルの一部を提示しています。複雑な構成となっていますが、動作確認済みで、より簡素化できる余地も示唆されています。 記事ではコードの完全性は保証しておらず、参考として利用するよう促しています。
2024年に特にお世話になったC++ライブラリ8選
この記事は、著者が2024年にC++開発で利用し、重宝したマイナーなライブラリを紹介するテックブログです。紹介されたライブラリは、JSON(Glaze)、CSV(ssp)、ログ出力(Quill)、2Dグラフィック(ThorVG)、YAML(Rapid YAML)、enum(simple_enum)、xlsx書き込み(libxlsxwriter)、ワイルドカードマッチング(wildcards)の各処理を担うものです。それぞれについて、利点、欠点、代替ライブラリが挙げられており、著者の個人的な評価と使用感に基づいた選び方が詳細に説明されています。 加えて、Apache Arrow、Boost.Unordered、Boost.MP11、Catch2、curl、fast_float、{fmt}、SQLiteといったメジャーなライブラリについても言及しています。
JavaとC#の実践的な比較
本記事はJavaとC#の比較を、実践的なコード例を交えて解説している。プロパティ、レコード型、非同期処理、コレクション操作(Stream API vs LINQ)、パターンマッチングといった言語機能を比較し、Javaはプラットフォーム非依存性と成熟したエコシステムを、C#は先進的な言語機能とVisual Studioによる強力な開発環境をそれぞれ強みとすることを示している。 パフォーマンス面では、ガベージコレクションや値型の扱いの違いにも触れている。結論として、エンタープライズシステムやクロスプラットフォーム開発にはJava、Windows特化システムやゲーム開発にはC#が適しているとしている。
IMUと車速に基づく横滑り角を考慮した自己位置推定
この記事は、自動車やロボットの自己位置推定において、低価格センサのみを用いた横滑り角推定とそれを用いた自己位置推定手法を解説している。IMUと車速センサのデータから、等価二輪モデルと仮定に基づき横滑り角を推定し、ヨーレートのバイアス誤差補正と車速情報を用いて自己位置を推定する。既存研究との比較や、車速センサ誤差、オドメトリの利点・欠点、IMU選定についても触れ、ROS2を用いたサンプルプログラムと検証結果も提示している。 推定精度の向上にはヨーレートバイアス誤差の正確な推定と車速センサ誤差の補正が重要であると結論付けている。
初学者向け:Linuxディストリビューションの基礎知識とRed Hat系・Debian系の特徴を比較してみた
この記事は、LinuxディストリビューションのRed Hat系とDebian系の違いを解説しています。Red Hat系はRPMパッケージマネージャーを使用し、商用利用やエンタープライズ環境向けで安定性と長期サポートが重視されています(RHEL、CentOS Stream、Fedora、AlmaLinuxなど)。Debian系はAPTパッケージマネージャーを使用し、コミュニティサポートが豊富で、初心者から上級者まで幅広いユーザーに対応しています(Debian、Ubuntu、Linux Mint、Kali Linuxなど)。 両者の主な違いはパッケージマネージャーと、それに伴うコマンドの違いです。記事では、それぞれの代表的なディストリビューションと主要なコマンドを比較しています。
Reflection on 2024
2024年を振り返るテックブログ記事。著者はSymbol Snap Wallet(Metamask Snapを用いたSymbolウォレット)、Light REST(低負荷REST API)、NEM Explorerのバックエンド開発に携わった。UI/UXデザイン、Symbol SDK v3の統合、ソケット通信、データベースクエリ最適化などの課題に直面したが、コミュニティの支援やチームの協力を得て克服した。2025年の目標はAIエージェントを用いたSymbol関連プロジェクトの開発と既存プロジェクトの改善。
要約した内容の身:
This tech blog post reflects on the author's accomplishments in 2024. Key projects included developing a Symbol wallet integrated with Metamask, a lightweight REST API for Symbol, and the backend for a NEM blockchain explorer. The author overcame various technical challenges, including UI/UX design, SDK integration, socket communication, and database query optimization, largely thanks to community support and teamwork. Their 2025 goals involve exploring AI agents for a new Symbol-related project while continuing to maintain and expand existing projects.
Genesisをubuntu24.04で動かす手順
この記事は、著者がUbuntu 24.04環境でRTX 3080を用いて「Genesis」をインストールした手順を説明している。仮想環境を用いたインストール、CUDAの確認、genesis-world
のインストール、リポジトリのクローンと、各ステップが簡潔に記述されている。 エラーへの対処法として、「正月にやったことは忘れる」というユーモラスなアドバイスも含まれている。
VPC Endpoint共有できるってマジ!?!?
このテックブログは、AWSのVPC Endpointを複数のVPCで共有する方法について検証したものです。著者は、当初VPC EndpointはVPCごとに作成が必要だと考えていましたが、共有可能なことを知り、Single VPC、VPC Peering、Transit Gatewayの3つの構成で検証しました。 結果は、いずれの構成でもセッションマネージャーによるEC2へのアクセスが可能であることを確認。 private_dns_enabled
オプションの設定や、各構成における通信経路、DNS解決の仕組み、レイテンシとコストを詳細に分析しています。結論として、VPC数が少ない場合はSingle VPC、多い場合はVPC Peeringがコスト面で有利ですが、運用コストを考慮するとTransit Gatewayも選択肢となることを示しています。
Gemini で数式対応 OCR
このテックブログ記事は、PDFファイルからテキストを抽出する手順を説明しています。まず、Popplerライブラリを用いたPythonスクリプト(pdf2png.py
)でPDFをPNG画像に変換し、次に、Gemini APIを用いたPythonスクリプト(ocr.py
)でPNG画像からテキストをOCRします。ocr.py
は数式をTeX形式で出力し、処理済みのファイルはスキップすることで効率的な処理を実現しています。 Gemini APIキーの設定とGoogle AI Studioへの登録が必要で、無料枠の利用制限(1日1500リクエスト)がある点も説明されています。
JavaScript/TypeScript Tech Feed (2025/1/3号)
このテックブログ記事は、Hono、rspack、Vite、AstroなどのJavaScript/TypeScript関連ライブラリの最新リリース情報と、Node.jsのTypeScriptサポート強化、AIエージェント用ブラウザ操作ライブラリbrowser-use
の注目度向上、そしてGhosttyという新しいターミナルエミュレータのリリースなどを伝えています。 その他、Next.jsのCloud Build最適化やGitHubサブイシュー活用法に関する記事への言及もあります。 主なリリース内容は、パフォーマンス向上やバグ修正が中心です。
AWS/Azure知見者による、OCIはじめました
この記事は、著者がOracle Cloud Infrastructure Foundations Associate資格を5~6時間で取得した経験に基づくブログ記事である。AWS/Azure経験者向けに、OCI特有の概念(可用性ドメイン、フォルトドメイン、コンパートメントなど)と主要サービス(IAM、ネットワーク、コンピュート、ストレージ、データベース、セキュリティ)をAWS/Azureとの比較を交えながら解説している。 OCI資格取得の難易度や学習方法、試験概要なども記述されている。
【緊急公開】現役エンジニアが教える!本当は教えたくない最強のコーディング効率化テクニック10選
この記事は、生成AIがタイトルを考案した、コーディング効率化テクニック10選を紹介する記事である。内容は、ショートカットキーの活用、コードリンティング、スニペット、コンテナ化、タスクランナー、Git、CI/CDパイプライン、AIコーディングアシスタントの活用、情報収集、そして心身の健康維持という10個のポイントからなる。各ポイントには具体的なツールや手法、注意点などが簡潔に解説されている。 記事内では、より詳細な情報を掲載した外部記事へのリンクも複数提示されている。
FABでアセット販売してみた
この記事は、UE(Unreal Engine)アセットをFAB(Fusion Asset Browser)で販売した際の体験記である。 著者はStaticMeshアセットを出品し、マイナンバーカードを用いた1日での販売者登録、製品ページ作成、ファイルアップロード、レビューを経て2日で出品完了した。UEアセット以外のファイルは審査がなく、UEアセットはUnreal Engineのガイドラインに従う必要がある。FABでは日本語対応が改善され、審査も緩くなった印象とのこと。
Ruby 3.4 の it の落とし穴
Ruby 3.4で導入されたブロックパラメータit
は、_1
の代わりに使える便利な機能だが、it
という名前のローカル変数がブロック外に存在する場合、ブロック内でit
がローカル変数を参照してしまうという落とし穴がある。これはコードの可読性を下げ、バグの原因となる可能性があるため、it
というローカル変数を使わない、もしくはローカル変数のスコープを小さく保つなどの対策が必要である。 しかし、これらの対策は自分自身のコードにのみ適用可能であり、他人のコードではこの問題に遭遇する可能性がある。
知らざれる、IT業界の4分野
東京都内で開催されているITプロモーター勉強会がブログを開設。IT分野を4つに分類する意外な区分について解説し、特にインフラとソフトの分野の違いを理解して仕事を選ぶことの重要性を強調している。新卒向けの研修でしか聞けない情報であるため、転職組は情報収集が重要だと述べている。
AWS PrivateLinkでResouce Gatewayを使用する時は/26以上のサブネットが必要
EC2間のPrivateLink接続をResource GatewayとResource Configurationsを用いて構築しようとしたところ、VPCエンドポイント作成時にIPv4アドレス不足により失敗した。原因はResource Gateway作成時に割り当てられる/28アドレスブロックの不足で、より大きなサブネット(/26)を作成することで解決した。
【PowerApps】ギャラリーに行番号を付けてボタンで選択行を操作する方法
Power Appsでギャラリーアイテムの選択をボタン操作で上下に移動させる方法を紹介している。ギャラリーの各アイテムに行番号を追加し、ボタンのOnSelect
プロパティにSelect(ギャラリー名, 行番号)
関数を使用することで、特定の行を選択できる。上下移動ボタンでは、現在の選択行番号を±1し、If
文で範囲チェックすることでエラーを防いでいる。10行単位の移動も可能だが、ギャラリーの並び替えは考慮されていない。
Bedrockの呼び出しログをいい感じに可視化するツールを作成しました
AWS Bedrockの呼び出しログはデフォルトで無効だが、有効化するとCloudWatch LogsにJSON形式で記録される。しかし見づらいので、CloudWatch LogsのBedrock呼び出しログを整形して表示するStreamlitアプリケーション「BedrockSmith」を作成した。現状、Converse APIとConverse Stream APIのみに対応している。 GitHubで公開しており、改善のためのプルリクエストを歓迎している。
リアルとバーチャルの架け橋「箱庭ブリッジ」の宇宙応用
本記事は、リアルタイムデジタルツイン環境「箱庭ブリッジ」にAIと物理エンジンを統合し、Vulkanによるアクセラレーションによって宇宙機・衛星のミッション成功率向上を目指す構想を示している。 具体的には、デジタルツインによる未来予測とAIによる最適行動選択で、より的確な判断を可能にすることを目指す。
VSCodeでVSCode Extension実装入門(ステップ5 日本語プログラミング言語Mindをシンタックスハイライト tmLanguage )
この記事は、Visual Studio Code (VSCode) 拡張機能で日本語プログラミング言語Mind(8)のシンタックスハイライトを実装する手順を説明しています。 extension.ts
ではなく、tmLanguage.json
、language-configuration.json
、package.json
を用いて、コメント、括弧、自動補完、インデントなどの機能を実装する方法を示しています。tmLanguage.json
では、キーワード、コメント、文字列などを正規表現で定義し、settings.json
でキーワードの色付けをカスタマイズしています。 記事では、実装例とデバッグ実行方法、そして結果として実現したシンタックスハイライトのスクリーンショットが示されています。 ただし、Mind(8)のシンタックス完全対応ではなく、一部のシンタックスのみサポートしている段階であることが明記されています。
Ollama × LangChain × Streamlit で構築する、ローカルで動かすRAGを使ったチャットボット
このテックブログ記事は、Ollama、Langchain、Streamlitを用いてローカルで動作するRAGベースのチャットボットを作成する方法を説明しています。OllamaはローカルでLLMを動かすツール、LangchainはRAGパイプライン構築に用いられ、ChromaDBをベクトルデータベースとして使用、StreamlitはUI構築に使用されています。 記事では、Ollamaのセットアップ、PDFファイルのインジェストとクエリ処理を行うRAGパイプライン( ingest
と ask
メソッドを持つ ChatPDF
クラス) の構築、Streamlitを用いたシンプルなUI作成の手順とコード例を示し、最後に改善案(会話履歴の保持、複数ファイル対応、LLMモデルの変更)を提案しています。
Agentariumで作る!激辛カレーに取り憑かれたAIエージェントたちのマーケティング戦略
このテックブログ記事は、PythonライブラリAgentariumを用いて、複数のAIエージェントによる激辛カレーのマーケティング戦略立案をシミュレートする実験例を紹介している。シェフ、フレーバーサイエンティスト、マーケターの3つのAIエージェントが、スパイス配合からマーケティング戦略まで議論し、その過程と結果を出力する。Agentariumは、複数エージェントの生成、対話、アクションの自動化、履歴管理を容易にするライブラリで、OpenAI APIなどのLLMと連携できる。記事ではコード例と実行結果例を示し、さらにエージェントの種類を増やす、ユーザーエージェントを追加する、辛さ度合いの調整などの応用アイデアも提案している。ただし、実行結果の再現性は保証されないことを注意喚起している。
「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」でつまずいたことメモ:7章
この記事は、「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」の第7章の実践メモである。著者は、書籍の英語の公式ドキュメントを避け、日本語でRAG評価に挑戦した。LangSmithとRagasを用いたオフライン評価を実装する過程で、Ragasのバージョン違いによる互換性問題、LangSmithの利用制限、OpenAIの利用料金超過などのトラブルに見舞われた。特に、Ragas v0.2.9での日本語テストデータ生成では、ナレッジグラフのクラスタ生成に失敗し、SingleHopSpecificQuerySynthesizerのみを用いた。最終的にLangSmithを用いた評価を実行し、結果を確認したが、テストデータが少なかったため、精度の高い評価には至らなかった。 LangSmithの機能についても触れられている。
OpenAIのAIアップデート総ざらい!o3は本物か!?
この記事は、2024年末に発表されたOpenAI、Google等のAI関連ニュースをまとめ、2025年のAI動向を展望したテックブログ記事です。主な内容は、OpenAIの新たな強力なモデルo3とo3-miniの発表、ChatGPTへのo1とo1 Proモードの追加、ChatGPT CanvasのPythonコード実行機能追加、動画生成AI Soraの正式リリース、ChatGPTとAppleデバイスの統合、ChatGPT Videoのリリース、Google Gemini 2.0の発表、そしてChatGPTのプロジェクト機能、検索機能強化、電話番号追加、デスクトップアプリ強化などのアップデートです。これらのアップデートは、AGI(汎用人工知能)実現への一歩と捉えられつつ、同時に安全性や倫理的な課題も指摘されています。記事は、これらの技術が生産性向上に繋がる一方、生活や仕事のあり方を変容させる可能性も秘めていると結論づけています。
2025年気になる通信業界トレンド(前編)
この記事は、2025年の大阪万博、AIデータセンターの建設ラッシュ、LLMの競争激化、5G Advanced/Redcapの展開、そして陸海空へのネットワーク拡大という、日本の通信業界における5つの主要なトレンドを概観している。
具体的には、大阪万博での各社の技術展示、KDDIとSoftbankによる堺市のAIデータセンター建設競争とその背景、国産LLMの開発競争とAIデバイド問題、5G Advancedの普及状況、Starlinkを中心とした衛星通信とHAPS、ドローン、水中光通信の進展、そしてConnected Car市場への参入などを論じている。 各社の動向や技術的な詳細、懸念事項なども含めて解説されている。
デュアルブート用UEFIソフトをつくる(第0回)
この記事は、UEFIを用いてOSの起動順序を切り替えるUEFIアプリケーション「BootNextChanger」の作成について解説している。BootNextChangerは、NVRAMのBootNext
変数を変更することで、次回起動時のOSを指定し、再起動を行う。 C言語で記述され、mingwでコンパイルし、rEFIndブートマネージャーから実行される。Windowsと別のOSの切り替えをスムーズに行うことを目的としており、ベアメタルプログラミングの入門者による開発であるため、フィードバックを求めている。
私の勉強スタイル:アクティブリコール&技術記事アウトプットでエンジニア学習を勝ち抜く
この記事は、著者がIT学習における記憶力の弱さを克服するために、記事投稿によるアウトプットを積極的に行うようになった経験を紹介しています。 エビングハウスの忘却曲線に基づき、人間の記憶の限界を認め、アクティブリコールと外部プラットフォームへの記事投稿(QiitaやZennなど)を組み合わせることで、必要な情報を効率的に検索・参照できるシステムを構築したと述べています。 この方法は、データベースのCRUD処理に例えられ、インプットした知識を「忘れても取り出せる知識」に変換する戦略として効果的だと結論付けています。