Engineer's Digest - 忙しいエンジニアのための技術情報ダイジェスト

忙しいエンジニアのための技術情報ダイジェスト。前日の話題をサクッと把握!

2025/03/03 #117 - 今日の技術情報ダイジェスト

AIを活用した情報収集

X(旧Twitter)に依存しないAI関連情報の効率的な収集方法について解説しており、arXiv、Reddit、Hacker Newsといった複数の情報源の活用や、論文キュレーションサービス、技術ブログの利用、そして情報収集を支援する自作のオープンソースWebアプリケーションの公開などを紹介しています。多様な情報源を統合することで、質の高いAI関連情報を効率的に収集できる手法が提示されています。

zenn.dev

フロントエンドにおける日付時刻処理

この記事は、フロントエンド開発における日付時刻処理の課題と、2025年現在のベストプラクティスを紹介する技術記事です。ISO 8601、RFC 2822、RFC 3339といった標準規格や、JavaScriptのTemporalオブジェクトといった最新の技術、toISOString()toLocaleString()といった関数、そして具体的なコード例を用いて、日付時刻の表現、変換、そして様々なライブラリや関数の活用方法を解説しています。

speakerdeck.com

AIとシステム開発

AIをシステム開発に活用する際のポイントとして、現状では小規模プロジェクトでの活用が中心だが、中規模以上のシステム開発への適用は課題があること、AI活用成功の鍵は「AIのための仕様書」の作成で、システムの目的、機能、制約などを明確に記述し、MarkdownやMermaid記法、ファイルツリー構造などを活用してAIが理解しやすい形式で記述し、常に最新の状態を維持することが重要であること、また、フロントエンドとバックエンドを単一リポジトリで管理するエクストリームモノレポを推奨し、E2Eテストや静的型付け言語の採用でAI生成コードのバグを防ぐガードレール設置の重要性が解説されています。

note.com

AIによるコーディングスタイルの学習

AIを用いて、テスト駆動開発(TDD)、ドメイン駆動設計(DDD)、関数型プログラミングの3つのコーディングスタイルを学習させ、コード生成を試みた結果について記述しています。エヴァンスのDDDと軽量DDDの2種類のアプローチでコード生成を行い、比較検証を実施。型安全な実装、純粋関数によるドメインロジック実装、Adapterパターンによる外部依存の抽象化といった実装の詳細と、伝統的DDDと軽量DDDのそれぞれの特徴(伝統的DDDは厳密だが複雑、軽量DDDはシンプルで小規模プロジェクトに適している)についても解説しています。最終的に、AIによるコード生成されたコードは、人間が読み解くのが難しいという結論に至っています。

zenn.dev

ノートパソコンのバッテリー管理

ノートパソコンのバッテリー寿命を延ばすためには、充電完了後はケーブルを抜くことが重要です。常に接続したままの状態はバッテリーに大きな負担をかけ、劣化を早めます。バッテリーの最適な状態は20~80%の充電残量で、この範囲を維持することで寿命を延ばせます。これは、フル充電状態がリチウムイオン電池の片側の層にリチウムイオンが偏るため、バッテリーにストレスを与えることから、急速充電と同様に避けるべきです。デスクトップPCと異なり、ノートPCは充電しっぱなしにしないよう注意しましょう。

www.gizmodo.jp

次世代言語モデル

Inception社が開発した新型言語モデル「Mercury」は、拡散モデルを採用することで従来のTransformer型言語モデルと比べて圧倒的に高速な処理を実現しており、高速かつ正確な回答が特徴です。本モデルの登場は、言語モデルにおける拡散モデルの有効性を示すものであり、今後、拡散モデルとTransformerモデルの融合による更なる性能向上への期待が高まっています。

note.com

AIコーディングツールとDevContainer

AIコーディングツール(例:RooCode)の誤動作による開発環境の破壊(rm -rfの誤実行など)を防ぐため、VSCode拡張機能であるDevContainerを用いた安全な開発環境構築について解説しています。DevContainerはDockerコンテナ上に開発環境を作成することで、ローカル環境を汚染することなく、プロジェクトごとに独立した環境を実現し、AIツールの暴走によるデータ損失リスクを低減します。Dockerfileやdocker-compose.ymlを用いた具体的な設定例と、AIツールの導入方法についても記述されています。

zenn.dev

AIエージェントとエンジニアリング

Generative Agents, Inc.が開発したLLMと強化学習を用いた自律型AIエージェントに関する記事です。ソフトウェア開発全工程自動化AI「Devin」、LangChain/LangGraphを用いた開発技術、ビジネス活用事例、導入支援といった内容を含み、AIエージェントの普及に力を入れる同社のCEO西見氏、COO吉田氏、CTO大嶋氏の3名による講演内容も網羅しています。

speakerdeck.com

Android端末の写真スキャンに関するプライバシー問題

グーグルのAndroid端末向けシステムアップデート「SafetyCore」において、端末内の写真を予告なくスキャンし、有害コンテンツを検知する機能が実装されていることが発覚しました。アップルが同様の機能で批判されたことを受けて、ユーザーへの説明不足と秘密主義が問題視されています。SafetyCoreは画像のスキャンを行い、有害コンテンツを検出する目的で開発されましたが、アップデートにおける事前告知がなかった点が大きな批判点となっています。この件は、プライバシー保護を謳う企業において、透明性と説明責任の重要性を改めて示す出来事と言えます。

forbesjapan.com

悪意のあるVSCode拡張機能

Visual Studio Codeの拡張機能「Material Theme」と「Material Theme Icons」で、約900万ダウンロードを記録した人気拡張機能に悪意のあるコードが含まれていたことが判明し、Microsoftによって削除されました。セキュリティ研究者の報告を受け、Microsoftは迅速に対応し、拡張機能を削除、開発者のアカウントをBANしました。悪意のあるコードは難読化されたJavaScriptコードで、ユーザー情報のアクセスを試みる可能性がありました。サプライチェーン攻撃か開発者アカウントの侵害が原因と推測されており、人気プラグインになりすましたサイバー攻撃の危険性を改めて示す事例となっています。

rocket-boys.co.jp

Go 1.24のツール管理機能

Go 1.24から、Go製のツールのバージョン管理がGo Modulesで可能になり、従来の手動管理に比べて手軽で簡単にツールを管理できるようになりました。Go Modulesを利用することで、Dependabotなどの自動更新ツールにも対応し、ツールの明示的なインストールが不要になるため、導入や更新が容易になります。ただし、go runプレフィックスが必要になるなど、いくつかの制約もあります。

blog.syum.ai

AIプログラミングアシスタントツール比較

3週間AIプログラミングアシスタント「Cursor」を使用し、競合製品である「Cline」との違いを比較検証した記事です。Cursorのメリットとして、コマンド編集実行機能、動作チェック機能、Claude 3.7 Sonnetの無制限利用などが挙げられていますが、UIの分かりにくさ、コマンドログの貼り付け方法の煩雑さ、Planモードの欠如といったデメリットも指摘されています。Clineとの比較では、Planモードの有無、トークン数の表示の有無、承認方法、UIの直感性などが異なるとされており、両製品は用途が異なるため一概に優劣を決められないと結論付けています。

zenn.dev

PHPにおけるテスト

PHP勉強会で金城秀樹氏が、テストに自信がないエンジニア向けにテストケース作成の観点を解説した発表を行いました。テストの基本的な考え方(事前条件、入力、結果、事後条件)や、同値クラス、境界値、カバレッジといったテスト技法、モックやスタブといったテストを容易にする手法などを紹介し、テストの重要性を強調しています。

speakerdeck.com

北朝鮮による仮想通貨盗難事件

ドバイの仮想通貨取引所Bybitで約2200億円相当のイーサリアムが盗難され、FBIは北朝鮮のハッカー集団Lazarus Groupの犯行と発表しました。高度なソーシャルエンジニアリングによってマルチシグネチャー認証を突破し、盗まれた資金は驚くべき速度で洗浄・分散されました。この事件は暗号資産市場に大きな不安をもたらし、ビットコイン価格の下落も引き起こしました。

www.gizmodo.jp

初心者エンジニアのための工数見積もり

未経験エンジニアが研修課題で工数見積もりに失敗した経験から、タスクの細分化(2時間単位)や着手時間と完了率からの工数算出、バッファ設定などの対策を行い、工数見積もりの精度向上と進捗管理の改善に成功した事例を紹介。ボトムアップ見積もり法以外にも、類推法や3点見積もり法といった手法が存在することも解説しています。

qiita.com

Gemini Code Assistの無償提供開始

Googleが、AIによるコーディングアシスタント「Gemini Code Assist」を無償で提供開始しました。月18万回ものコード補完を無制限に利用でき、Visual Studio Code、JetBrains IDE、GitHubといった開発環境と連携可能です。プログラミング言語を選ばず、自然言語による指示にも対応するため、初心者から上級者まで幅広いエンジニアがAIによるコーディング支援を受けられます。学生やフリーランスなど、多くの開発者がAIを活用できる環境の整備を目指した取り組みです。

cloud.google.com

Intel 4004によるLinux起動

1971年製のIntel 4004 CPUで、Linuxオペレーティングシステムの起動に成功したという驚くべきハックが紹介されています。4004は当初電卓用に開発されたCPUであり、Linuxの実行には高度な技術的工夫が必要でした。起動には4.76日、シンプルなディレクトリ表示にさえ16時間かかるなど、動作速度は極めて遅いものの、この偉業はコンピュータアーキテクチャとソフトウェア開発の進歩を象徴する出来事であり、今後、同じ4004でゲームDoomの実行を目指すとのことです。

biggo.jp

コードレビューにおける注意点

Qiitaの記事「コードレビュー時に"しないこと"3選」では、コードレビューにおける3つのNG行為として、1. ローカルでの動作確認をせずにプルリクエスト作成者に任せること、2. 現状の動作確認だけで良しとするのではなく、パフォーマンスや将来的な課題への考慮を怠ること、3. レビュー担当者が代わりに実装せず、レビュー対象者自身の学習機会を奪ってしまうことを挙げており、急ぎのレビューの場合は期限を明確にすることの重要性も解説しています。

qiita.com

Appleの探す機能と追跡攻撃

Appleの「探す」ネットワークを利用した位置追跡技術「nRootTag」攻撃について、研究者が発見しました。この攻撃では、Bluetooth対応のあらゆるデバイスが、所有者の意図に関わらずAirTagのように位置追跡される可能性があります。「探す」機能は、紛失したAirTagの位置情報を収集するために、近隣のAppleデバイスから公開鍵情報を受信し、位置情報を暗号化してAppleサーバーに送信する仕組みを利用しています。攻撃者はこの仕組みを悪用し、Bluetoothデバイスから公開鍵情報を取得することで、そのデバイスの位置情報を追跡できます。位置情報は暗号化され、Appleサーバーを経由するため、攻撃者は位置情報レポートを復号するためにユーザーの秘密鍵を入手する必要がありますが、情報送信元のApple端末は匿名化されているため、特定が困難です。

gigazine.net

Rubyと自由とAI

鳥井雪氏の講演では、Rubyプログラミング言語の柔軟性と学習機会の平等という「自由」の精神が、近年の反DEIの動きやAI技術普及による格差拡大への対策として重要であると主張され、Rubyコミュニティが持つこの精神を活かしてAI時代における社会課題の解決を目指す必要性が訴えられました。

speakerdeck.com

Next.js 15.2のアップデート

Next.js 15.2では、エラー表示UIとスタックトレースの改善、メタデータのストリーミング処理によるページレンダリング速度向上、Turbopackの高速化とメモリ使用量削減、ReactのView Transitions APIとNode.js Middlewareの実験的導入などが行われ、全体的なパフォーマンスと開発体験が向上しています。

nextjs.org

Datadog Continuous Profilerによるパフォーマンス改善

CyberAgentはABEMA広告配信システムのCPU使用率スパイクをDatadog Continuous Profilerを用いて特定し、特定メソッド内のループ処理における大量のメモリ確保とGC負荷がボトルネックであることを突き止めました。Go1.23のiteratorとrange over funcを用いたコードリファクタリングにより、CPU時間は57%短縮、メモリ確保量は99.4%削減という成果を上げ、Datadogによるモニタリングでその効果を実証しています。

developers.cyberagent.co.jp

モバイルアプリのE2Eテストツール

GitHubで公開されているMaestroは、モバイルアプリとWebアプリのE2Eテストを容易に行うためのツールで、UI要素の位置ずれやタップ失敗といったフレイキーテストに強く、ネットワーク遅延にも対応しテストを中断しません。コンパイル不要で高速な反復テストが可能であり、設定も簡単で単一バイナリで動作するため、導入や運用が容易です。

github.com

プログラマブルキーボードによる作業効率化

サンワサプライのプログラマブルミニキーボード「400-SKB075」は、3つのキーに自由にショートカットや文字列入力を設定できるコンパクトなメカニカルキーボード(青軸)で、19mmキーピッチとバックライトも備えています。専用ソフトを使用することで、PCをまたいでも設定を保持でき(ドライバ不要)、Excelなどのデータ処理作業における片手でのショートカット操作を可能にし、作業効率の向上に貢献します。

www.roomie.jp

Storage-JAWS #7

2025年3月15日(土)19:00から、目黒にてオフラインとオンラインのハイブリッド開催されるStorage-JAWS #7「AWS Pi Day 2025直前スペシャル」では、AWS S3の誕生日を祝うイベントに関連した発表やLTが予定されており、Connpassで参加申し込みを受け付けています。Twitch、YouTube、LinkedInでライブ配信も視聴可能です。コミュニティ運営への貢献者も募集中です。

storage-jaws.connpass.com

重複ファイル削除ツールdedup

macOS向けアプリ「dedup」は、APFSファイルシステムのクローン機能を用いて重複ファイルを検出し、クローン化することでストレージ容量を節約するツールです。GitHubからソースコードを入手し、ビルドする必要があり、コマンドラインインターフェースで操作します。重複ファイルの削減量を事前に確認できる機能も備え、クローン化に加え、ハードリンクやシンボリックリンクも利用可能です。

gigazine.net

GitHub Copilot Language Server SDK

GitHubは、あらゆるエディタやIDEでGitHub Copilotを利用可能にするCopilot Language Server SDKを一般公開しました。Docker Desktopではビルド自動化ツールDocker Bakeが利用可能になり、VSCodeではAIアシスタント機能Copilot Nextのプレビュー版が公開されました。また、自律型AIエージェント作成ツールJAPAN AI AGENTが登場し、Rust 1.85.0がリリースされ、Rust 2024 Editionが安定版となりました。

codezine.jp

Cursorを用いた効率的な文章作成

AI搭載コードエディタ「Cursor」を用いて、自身のnoteとObsidianに保存された記事を読み込ませ、一貫性のある文章を効率的に作成する方法が紹介されています。Cursorのカスタム指示機能で自身の文体をAIに学習させることで、個々の書き方に沿った文章生成を実現し、ローカルファイル参照機能により過去記事や書籍からの引用を容易に行えます。さらに、AIによる構成提案機能を活用することで、論理的で分かりやすい文章作成を支援し、AIを単なる丸投げツールではなく、効率化と表現力向上のためのツールとして活用する具体的な方法が示されています。

note.com

Terraformのバージョン管理ツールtenv

Terraformのバージョン管理ツールとして、tfenvの代替となるtenvが紹介されています。tenvはtfenvと同様の機能を持ち、OpenTofuやTerragruntにも対応しており、Homebrewで簡単にインストールできます。インストール、切り替え、確認といった様々なコマンドが提供され、活発な開発状況からtfenvよりもメンテナンス面での信頼性が高いとされています。

kakakakakku.hatenablog.com

バーチャルAI社員のマーケットプレイス構想

バーチャルAI社員を雇えるマーケットプレイスの構想が提案されており、チャットによる指示で定常業務の自動化やチーム編成、会議やドキュメント作成、情報管理といった業務支援が可能になり、ジュニア人材採用コスト削減や働き方改革、イノベーション促進、顧客対応効率化への貢献が期待されています。

yuzutas0.hatenablog.com