Engineer's Digest

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

2024/12/23 #47 - 今日の技術情報ダイジェスト

ユーザー名を含むURL設計に関する考察

ユーザー名を含むURL設計における課題として、ユーザー名に使用できない文字列の管理や、視覚的なデザインの問題があります。従来の/username形式は普及しませんでしたが、近年YouTubeやmixi2などで採用されている@username形式は、RFCに違反せず、実装例も存在するため、ユーザー名を含むURLを設計する際の有効な選択肢となり得ます。本記事では、@username形式を採用する利点について、具体的な例を交えながら解説しています。

zenn.dev

todo.txtを用いたタスク管理

Qiitaの記事「todo.txtを布教したい」では、プログラマー向けのシンプルなタスク管理方法としてtodo.txtというテキストファイル形式が紹介されています。一行に一つのタスクを記述するシンプルな形式で、GTD方式にも対応可能であり、todo.txt-cliやtopydoといった既存のクライアントツールも利用できます。記事の作者は、Railsを用いて独自のビューワー「tokaido」を作成し、NeoVimとの連携、Git管理、Markdownによる詳細記述といった工夫により、todo.txtを用いた効率的なタスク管理を実現しています。

qiita.com

2024年生成AI技術の進歩

2024年の生成AIの技術動向をまとめた記事で、動画生成AI(Sora、Veo2)、物理シミュレーションAI(Genesis)、創薬AI(AlphaFold3)やロボティクス分野の進歩、マルチモーダルモデル(ChatGPT、Gemini、Claude)と熟慮型モデル(ChatGPT o1)の進化、プログラミング効率化ツール(Cursor、Copilot)、調査効率化ツール(Gemini DeepResearch、NotebookLM)といった、仕事効率化に繋がるツール類、そしてGoogleのProject Astra(メガネ型AIデバイス)など2025年以降の展望、OpenAI(GPT-4o, o1, Sora)とGoogle(Gemini, AlphaFold3, Deep Research, Genie2)の発表内容の時系列、様々な生成AI関連ライブラリ(テキスト、音声、3D、動画、LLMなど)が紹介されています。

zenn.dev

TwilogとTogetter統合によるWebサービス存続

15年続くWebサービス「Twilog」がTwitter APIの有料化によりサービス終了の危機に瀕し、Togetterによる統合を通して存続を決定した事例を紹介しています。月600万円を超えるAPI費用を回避するため、まずドメイン統合と簡易ログイン機能の実装による早期復旧を行い、その後段階的にRubyからPHPへのコード書き換え、データベースのAWS移行、SQLiteからMySQLへの変更によるシステム最適化を実施し、コストを抑えつつサービス継続に成功した過程が詳細に解説されています。

speakerdeck.com

IPv6プライベートアドレスに関する考察

IPv4アドレス枯渇問題の解決策として注目されるIPv6におけるプライベートアドレス(ULA:Unique Local Address)について解説しており、IPv6移行における現状と課題、特にIPv4のプライベートIPアドレスとULAの比較、IETFによるNAT非推奨とULA推奨の背景、そしてIPv4/IPv6共存環境における現実的な問題点などが詳細に述べられています。

www.geekpage.jp

VSCode効率化テクニック

Qiitaの記事「【作業効率3倍UP】VSCodeチートシートの永久保存版」では、VSCodeの効率的な操作方法を解説しており、MacとWindows両方のショートカットキーを網羅したチートシートを提供、矢印キーの連打など非効率な作業を改善し、作業効率3倍アップを目指します。実践動画とNuco社の求人情報も掲載されています。

qiita.com

北米ソフトウェアエンジニアの面接選考プロセス

この記事は、北米におけるソフトウェアエンジニアの採用選考プロセスをYanmer氏の経験に基づき解説しています。北米での就職活動の難しさ、就職活動スキルと専門スキルの違いと対策、Screening、Main Process、Offerの3段階からなる面接プロセス、企業規模による面接内容の違い(小規模企業では実践的スキル、大規模企業では基礎知識とポテンシャル)などが具体的に説明されており、応募しながら必要なスキルを段階的に習得する有効性も示唆しています。

note.com

AWS EC2踏み台サーバー構築ガイド

AWS EC2とSSM Agentを用いた踏み台サーバー構築手順と、SSMセッションロギングによるアクセスログのCloudWatch Logsへの保存、S3へのアーカイブ方法、セキュリティグループ設定によるセキュリティ強化について解説しています。AMIにはSSM Agentがプリインストール済みのものを利用することで容易な構築を実現し、インバウンドルールを無効化することでセキュリティを確保しています。

y-ohgi.blog

大規模データ分析基盤構築における落とし穴

大規模データ分析基盤構築における5つの落とし穴として、データの民主化によるサイロ化やカオス化への対策、PoC段階での将来的な拡張性の考慮、データの一元化におけるデータクレンジングの重要性、データ仮想化におけるアクセス容易性とデータ統合容易性の両立、そしてデータカタログ導入だけでは不十分でデータガバナンスまで考慮する必要性について解説しています。

cloud.watch.impress.co.jp

文学フリマとKDP出版

2024年12月1日、あるウェブサイトで39件の不正な口コミ投稿が確認され、AmazonのKindle ダイレクト・パブリッシング(KDP)サービスを利用した特定商品の評価操作の疑いが浮上しました。調査により、組織的な操作の可能性が示唆され、オンラインレビューの信頼性に関する問題が改めて注目されています。

www.itmedia.co.jp

Laravel 11とAWS Lambdaを用いたAPI開発

Laravel 11とAWS Lambda、serverless framework、brefを用いた簡単なAPI作成方法を解説しており、PHP初心者にも分かりやすく、AWS Lambdaへのデプロイ手順、API Gatewayの利用可否とコスト削減、Aurora Serverless v2の採用理由、RDS ProxyやElastiCacheの活用についても触れています。

it.kensan.net

エンジニアによる事業成果の定義

Speee社のエンジニアブログ記事では、開発チームが抱えていたプランニング不足と成果指標の不明確さという課題を、「価値ある顧客体験」という軸に基づいた成果定義に変更することで解決した取り組みを紹介しています。この変更により、事業理解の深化、自主的なプランニング、成果指標への意識変化が促進され、エンジニアが事業に貢献できる機会が増え、開発モチベーションの向上に繋がったと報告しています。

tech.speee.jp

高知信用金庫の次世代基幹システム開発

高知信用金庫が100億円を投じて次世代基幹システムをフルスクラッチ開発するプロジェクトについての記事です。過去には全国信用金庫で最高の純利益を記録した実績を持ち、「高知のヘッジファンド」と呼ばれる独自の投資戦略をとる同金庫が、富士通との連携のもと、技術者依存リスク回避も目的として大規模なシステム開発に乗り出しています。この巨額投資と独自路線には、様々な意見や関心が寄せられています。

togetter.com

高知信用金庫の次世代基幹システム開発(日本経済新聞記事)

高知信用金庫が約100億円を投じ、富士通の大型コンピューター販売終了に伴う基幹システム刷新として、オープン系システムを採用した次世代基幹システム「CORE01」を開発。システム会社への依存軽減と技術者リスク回避、サイバー攻撃や災害への耐性向上による早期復旧、デジタル地域通貨など地域サービスの迅速な提供を目指している。

www.nikkei.com

オンライン資格確認システムの院内ネットワーク構成

来年3月から開始されるオンライン資格確認システム導入に向けた院内ネットワーク構築について、IPv6ベースのネットワーク設定における具体的な課題と、その解決策が紹介されています。具体的には、IPv6環境下でのグローバルIPアドレスの自動割り当て問題や、IPv4とは異なるIPv6特有の設定の複雑さ、そして既存医療システムとの連携における問題点などが解説されており、接続テストの結果と具体的な解決策が提示されています。

karte-m.cocolog-nifty.com

非機能品質とソフトウェアアーキテクチャ

ログラス社の鈴木氏による講演資料で、データ増加に伴うソフトウェアアーキテクチャの課題と、その解決策として「継続的アーキテクチャ」が提案されています。パフォーマンス劣化問題への対策として、品質属性シナリオを用いた非機能要件の明確化、直交性の向上による複雑性軽減、オニオンアーキテクチャやPort and Adaptersパターン、アーキテクチャ量子化によるシステムの独立性を解説しており、これらを通じて非機能品質を高め、開発速度を維持しつつスケール可能なシステム構築を目指しています。

speakerdeck.com

Googleと司法省のChrome売却に関する訴訟

Googleが司法省からChromeブラウザの売却を要求された訴訟に対し、独自の是正案を提出しました。この案は、Googleの検索、Chrome、Android OSにおける独占的地位の是正を目指しており、アプリストアにおける優遇措置の撤廃なども含まれます。AppleやMozillaといった競合他社もGoogleの独占行為に懸念を示しており、Googleは2025年までに和解案に基づく措置を実行する予定です。

www.itmedia.co.jp

Google Gemini for Google Workspace活用術

Google社員によるGemini for Google Workspaceの活用事例3選を紹介する記事です。メール作成、イベント企画、商談準備といった業務における効率化を図るための具体的な活用方法が示されており、チャット形式とサイドパネルからのGeminiへのアクセス方法、顧客向けメール作成やイベントタイトル案生成、過去の議事録からの商談内容整理と次へのアクション決定といった具体的な事例が挙げられています。

zenn.dev

SBOM導入・運用に関するガイドライン(IPA)

IPA(独立行政法人 情報処理推進機構)が公開している「SBOM導入・運用の手引き」は、ソフトウェア部品表(SBOM)の導入と運用に関する情報を提供する資料です。情報セキュリティ、情報処理技術者試験、デジタル人材育成、DX推進など、IPAが提供する幅広い情報の一部として公開されており、SBOMを活用したセキュリティ強化やサプライチェーンリスク管理に関心のあるエンジニアにとって有用な情報源となります。

www.ipa.go.jp

Python静的解析ツールRuffの高速性

Pythonの静的解析ツールRuffは、並列処理や冗長性排除、整数の扱い方やトークン位置の表現最適化、Rust言語を用いた開発といった工夫により、既存ツールと比較して10~100倍高速な解析を実現しています。本記事では、Ruffの高速性を実現するための技術的な詳細について解説しています。

www.wantedly.com

React RouterからTanStack Routerへの移行

ReactアプリでルーティングライブラリをReact Router v7からTanStack Routerに移行する技術について解説しています。React Router v7はフレームワーク化に伴いVite設定との互換性やCLIの互換性に課題があるため、Reactビルドと独立し型安全性も充実しているTanStack Routerへの移行を提案しています。具体的には、React RouterとTanStack Routerをネストさせ、ルート単位で段階的に移行する手法、移行ツールの作成方法、useNavigateなどのフックの互換レイヤー作成方法などを詳細に説明しています。

zenn.dev

MySQLアップグレード後のRailsアプリ不具合

MySQL 8.0.19へのアップグレード後に、Railsアプリケーションで時間差で不具合が発生した事例について解説しています。原因は、MySQLの変更によって整数型カラムの表示幅が消え、ActiveRecordがtinyint(1)をBoolean型として誤認識しなくなったこと、ALTER TABLE実行時のスキーマキャッシュ更新が不具合の顕在化に影響していることが判明しました。対策として、カラムをBOOLEAN型に変更すること、明示的なキャストを行うこと、DDL検証を行うことが紹介されています。

made.livesense.co.jp

Microsoft Defender for Endpointプラグイン for WSL

Microsoft Defender for Endpoint (MDE)のWindows Subsystem for Linux (WSL)プラグインに関するQiitaの記事で、WSL2環境におけるMDEプラグインの動作検証結果が報告されています。このプラグインにより、WSL2上で動作するLinuxディストリビューションに対しても、EDR(侵入検知・レスポンス)機能が利用可能となり、Defender XDRポータルでセキュリティ情報やイベントログを確認できるようになります。ただし、EPP(エンドポイント保護プラットフォーム)機能は未対応のため、マルウェア対策は行えません。企業においてWSL2を利用する際のセキュリティ強化に役立つ可能性が示唆されています。

qiita.com

多段ProxySQLによるスキーマ統合とTiDB移行

メルカリは開発環境でMySQLからTiDBへのデータベース移行とスキーマ統合を、TiDB DMのTable Routing機能と2段構成のProxySQLを用いて実施しました。1段目のProxySQLでトラフィックを段階的にシフトし、2段目のProxySQLのinit_connectでスキーマ変更を自動化することで、アプリケーションへの影響を最小限に抑え、アプリケーション設定変更は移行後に実施することで開発チームの作業負荷軽減を実現、性能評価や影響検証を経て安全な移行を完了しました。

engineering.mercari.com

Cloudflareによるsecurity.txt普及提唱

Cloudflareが、ウェブサイトのセキュリティに関する情報を公開するための標準規格であるsecurity.txtの普及を提唱しており、Java、Spring Boot、Android、IoT開発、マイクロサービス、セキュリティ、パフォーマンス、大規模言語モデル(LLM)、Big Data、データベース、AI/機械学習、アジャイル開発、チーム連携、UXデザイン、クラウドコンピューティング、コンテナ、自動化といった幅広い分野の技術記事を提供しています。

www.infoq.com

ElastiCache Redis Self Amplification Attack

freee Developers Hubの記事「ElastiCache Redis Self Amplification Attack」では、Redisをキャッシュに使用したシステムで発生したログイン障害について解説しており、原因を32kBに増加したレスポンスサイズと多数のコンポーネントからのアクセスによるRedisのネットワーク帯域幅枯渇と特定、t4g.microインスタンスの帯域幅制限(0.064Gbps)超過が問題発生の要因であったことを報告しています。帯域幅超過アラートの監視と、必要に応じてインスタンスサイズ変更などの対策を検討する必要性を指摘しています。

developers.freee.co.jp

M3 Tech Talkの11年以上続く歴史

エムスリーが11年以上継続している社内勉強会「M3 Tech Talk」のオーガナイザー6年半の経験を、Geminiを用いたインタビュー形式で紹介した記事です。IT技術だけでなく多様なテーマの発表があり、社員間の交流促進にも貢献している様子や、オンライン化への対応、登壇者確保の苦労、工夫、今後の展望、AI活用による記事作成過程なども詳細に記述されています。

www.m3tech.blog

ChatGPTアプリの進化とサードパーティアプリ連携

ChatGPTアプリがmacOS限定でアップデートされ、サードパーティ製アプリ(メモ、Notion、Xcodeなど)との連携が可能になりました。これにより、ChatGPTは連携アプリの内容を読み込んで回答できるようになり、ユーザーはアプリ間でのコピー&ペーストを行うことなく、ChatGPTに指示を出すことができます。例えば、メモの内容に基づいた回答生成や、Notionを用いたツアー計画の作成、Xcodeでのコード生成の効率化などが期待できます。Windows対応も近日中に予定されています。

www.gizmodo.jp

MacBook Airと新型MacBook Proの比較

MacBook Airユーザーにとって、新型MacBook Proの魅力は、M2/M4チップの性能差よりも、1.55kgとやや重いものの長時間バッテリー駆動時間、USB-C×3とHDMIポートを備えた豊富なインターフェース、映り込みが少ないLiquid Retina XDRディスプレイ(特にNano-textureモデル)、そして迫力のあるサウンドを奏でる高性能スピーカーといったハードウェア面にあると分析しています。チップ性能の差は普段使いでは体感しづらいと結論づけているため、価格と機能を比較検討して購入を検討すべきだと提案しています。

www.gizmodo.jp

VMware Fusion ProとWorkstation Proの無償化

BroadcomがVMware Fusion Pro v13.6.2とWorkstation Pro v17.6.2を、教育、個人、商用を問わず、ライセンスキー不要で無償利用可能なフリーライセンスモデルとしてリリースしました。これにより、誰でも無料でこれらの仮想化ソフトウェアを利用できるようになります。最新バージョンではライセンスキーの入力は不要で、いくつかのバグ修正とmacOS 15 Sequoiaへの対応も含まれています。ダウンロードはBroadcom公式サイトから可能です。

applech2.com