Engineer's Digest

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

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

Microsoft製ツール紹介:「MarkItDown」によるファイル変換

Microsoftが開発したPythonライブラリ「MarkItDown」は、Word、Excel、PowerPoint、PDFなどのOfficeファイルや、CSV、JSON、XMLといったテキストファイル、さらには画像や音声ファイルからテキストを抽出し、Markdown形式に変換するツールです。OCRや音声認識機能も備えており、シンプルなAPIで使いやすく、MITライセンスでオープンソースとして公開されています。また、Python環境がなくても利用できるWebツール「msftmd」も提供されており、AIツール「AutoGen」の開発で生まれた技術が活用されています。

github.com

applech2.com

為替予測モデル構築の基礎知識

為替予測モデル構築の難しさ、特にスプレッドとの戦い、マイクロストラクチャー分析による短期予測の限界と長期予測の必要性、為替の強弱・特定時間帯の動き・経済モデルの3つのアプローチ、高精度予測の困難さと安定収益のためのバスケット戦略や業界知識の重要性、そして生成AI活用による新規アプローチの可能性について解説しています。

zenn.dev

セキュリティエンジニアのキャリアパスと役割分類

サイバーセキュリティの仕事は、攻撃と防御、そして上流工程と下流工程の4象限で分類でき、それぞれに具体的な業務(例:レッドチーム演習、ペネトレーションテスト、セキュリティポリシー策定、セキュリティ監視運用)と関連資格が存在します。多くの企業では、人員不足から複数の役割を兼任する「パープルチーム」体制が一般的です。

qiita.com

子育てと個人開発の両立

20年間にわたる個人開発経験を持つ著者が、子育てと仕事との両立を図りながら個人開発を継続するための工夫を具体的に解説しています。夫婦間で可処分時間を共有資産と捉え、早朝や深夜の開発は避け、日中の時間を優先的に開発に充てる方法や、個人開発の目的を明確化し、自身の課題解決に焦点を当てることで効率的な開発を進める方法、ウォーターフォール開発を用いた時間管理や、細切れ時間を活用した設計・検討、GitHubスポンサー等による開発費用調達、ユーザーからのフィードバックを重視した開発手法などが紹介されています。

blog.h13i32maru.jp

WindowsとiPhone間のファイル共有方法

Windows 11/10とiOS 16以降を搭載したiPhone間で、「スマートフォン連携」と「Windows にリンク」アプリを用いて、ワイヤレスによるファイルの送受信が可能になりました。現時点ではWindows 11/10の一部ユーザーが利用可能で、将来的には全てのWindows 10/11ユーザーへの展開を予定しています。アプリ経由で簡単にファイルのやり取りができるため、WindowsとiPhone間のデータ連携がよりスムーズになります。

www.gizmodo.jp

MVNO回線とiPhoneのAPN設定に関する問題点

iPhone 15 ProでIIJ mioのeSIMを契約した際に、アプリでプランが表示されず、APNを手動設定する必要があった事例を紹介しています。これはiPhoneが通信キャリアによってAPN欄を封鎖しているため、MVNO回線を利用する際にAndroid端末よりも多くの手順が必要になるという問題を浮き彫りにしています。このAPN欄の封鎖は、複数のMVNO SIMを同時に使用したり、海外SIMを利用したりする際に支障をきたす可能性があり、Android端末がMVNO利用に適している理由も説明しています。総務省が問題視すれば改善される可能性についても触れています。

skyblue-next.com

macOS/LinuxからWindowsへの移行体験

macOSやLinuxからWindows 11へ開発環境を移行した結果、キー配置やマシンの重量、ドライバの不安定さ、ユーザー数の少なさといった問題が解消され、WSL2によるLinux環境の継続利用と高速なファイルアクセスを実現、安定性と操作性、軽量ノートPCの使用が可能になり、快適な開発環境を構築できたという事例を紹介しています。

www.eisbahn.jp

ISUCON14参加レポート:DuckDBとEvidenceを用いた戦略

ISUCON14で21位を獲得したチーム「ウー馬場ーイーツ・ザ・ファイナル」の取り組みが紹介されています。Go言語を用い、29,386点を獲得しました。ログ解析にはEvidenceツールを活用し、nginxとMySQLのログを効率的に分析・可視化することで、パフォーマンス改善に繋げました。GitHub Copilotによるコード補完も活用されていますが、Rustやbpftuneの導入は見送られています。リモート環境での開発はDiscordを用いて行われ、シナリオの丁寧な分析と部分的な改善を優先することでスコア向上を実現した点が示されています。

matsuu.hatenablog.com

小容量SSDの有効活用方法:記憶域スペースによる大容量化

PC Watchの記事「【今年の人気記事】お荷物になってしまった240GB等の小SSDたち。実は“記憶域スペース”で大容量化可能。余ったSSDの有効活用方法とは」では、容量が小さくなってしまい使わなくなった240GBなどの小型SSDを、Windowsの記憶域スペース機能を用いて大容量化する方法を紹介しています。記事では、IT・家電関連の複数のウェブサイト、パソコン・デジカメ・スマートフォン等のサイト、視聴覚機器・ゲーム・ドローン・e-bikeの情報、旅行・グルメ・漫画といったエンタメ情報、ASUS・VAIO・ドスパラといった主要メーカーの情報なども網羅しているPC Watchの記事内で、余ったSSDの有効活用方法として記憶域スペースによる大容量化が解説されています。

pc.watch.impress.co.jp

怪しい海外からの着信への対処法

AndroidとiOSにおける電話番号の重複登録問題について解説しており、Androidでは重複登録を防ぐ仕組みが不十分で同一電話番号の複数登録が可能になるケースがある一方、iPhoneでは基本的に防がれるものの、状況によっては起こりうることを説明しています。Google Pixelなど一部機種では重複登録対策の強化が進んでいることや、電話番号の重複登録が引き起こす様々な問題についても触れられています。

www.itmedia.co.jp

DuckDB入門

岡山で開催されたDuckDB合同勉強会の内容をまとめた記事で、高速なOLAP特化型データベースであるDuckDBの特徴を5分で理解できるよう解説しています。SQLiteと同様にインプロセス型でシングルバイナリのため容易にセットアップでき、Pythonなど様々な言語に対応、CSV、JSON、Parquetなど豊富な外部データソースと拡張機能を備え、オブジェクトストレージへのクエリエンジンとしても活用できるなど、そのユースケースについても紹介しています。

speakerdeck.com

OpenAIによるAGI開発の動向

米OpenAIが12日間にわたるイベント「12 Days of OpenAI」を開催し、ChatGPTなど既存プロジェクトへの新機能追加に加え、AGI(汎用人工知能)に関する発表を複数行っています。その中にはイベントライブ中では公開されない非公開の発表もあり、iPhoneアプリでは「Super Secret AGI」と名付けられたAGI関連機能が公開されています。OpenAIはAGI開発を進めていることを示唆していますが、詳細についてはまだ明らかにされていません。

www.itmedia.co.jp

JavaScriptにおけるGraphQLサーバー構築における技術選定

JavaScriptでGraphQLサーバーを構築する際の技術選定について解説しており、GraphQLサーバーライブラリ(@apollo/servergraphql-yoga)、HTTPサーバー(ExpressやFastify)、スキーマ定義の方法(コードファースト、スキーマファイル)、そしてResolverの実装方法(手書き、GraphQL Code Generatorによる型生成)といった選択肢を具体的に説明しています。

www.mizdra.net

Google NotebookLMの機能と有料プラン追加

Googleは、AIモデルNotebookLMとその有料版NotebookLM Plusを発表しました。Gemini 2.0 Flashを搭載し、PDF、Webページ、URLなどの情報を処理できる点が特徴です。2023年7月のリリースから6ヶ月で機能強化を重ね、Studioツールによる音声概要作成機能も追加されました。今後、Google Workspace、Google Cloud、Google One AI Premiumへの統合も予定されています。

www.itmedia.co.jp

AIツール紹介:Felo, Sora, Googleタスクアプリ代替など

ライフハッカー・ジャパンの記事417では、AI検索エンジンFeloの高度な検索機能「深度検索」が複雑な調査に役立つことを紹介しており、同時に、Soraの使い方やプラン、Android向けタスク管理ハック、デジタル名刺プレーリーカード、To Don'tリスト作成の重要性、そしてワークチェア選びの重要性とおすすめも解説しています。

www.lifehacker.jp

モノリスアーキテクチャにおけるエラー対応とコードオーナーシップの改善

タイミーのバックエンドAPIはモノリス構造で複数のチームが開発に関わっていたため、エラー発生時の責任所在が不明確でしたが、GitHubのCODEOWNERSとCodeOwnership gemを用いてSentryとDatadogにコードオーナー情報を送信する仕組みを導入することで、エラー発生箇所のコードオーナーを特定し、SentryとDatadogの管理画面およびSlack通知に表示するように改善しました。これにより、エラー対応の迅速化とチーム単位での可観測性の向上が実現しました。

tech.timee.co.jp

freeeにおけるrunnを使ったバックエンドテストの進化

freeeのQAエンジニアが、OSSツール「runn」を用いたバックエンドAPIテストの進化について解説しています。段階的にテストを高度化し、基本的なテストからデータ駆動テストまで実施、共通テストパターンの抽出やリクエストパラメータの動的な生成を実現することで、複雑なパラメータ組み合わせのテストを効率化し、リグレッションテストを容易にした取り組みが紹介されています。 今後、チーム全体でのrunn活用によるテスト品質向上を目指しているとのことです。

developers.freee.co.jp

折りたたみ式モバイルモニター「JN-DMD-IPS156F」レビュー

ジャパンネクストから発売された折りたたみ式モバイルモニター「JN-DMD-IPS156F」は、15.6インチフルHDの画面を2枚搭載し、2画面表示または1枚の大画面表示が可能な製品です。縦置き・横置きに対応する自立スタンドを備え、USB-CとHDMI接続に対応しており、HDMI接続時は2画面が同一表示となります。持ち運びやすく、保護カバーが不要な設計で、高価格帯ですが、作業効率向上を目指すエンジニアにとって魅力的な製品と言えるでしょう。

www.gizmodo.jp

AI開発競争とAGIの未来に関する考察

米国議会諮問機関が、国家予算規模のAI開発競争への巨額投資を提言し、マンハッタン計画に匹敵する規模のAI開発プロジェクトを推奨していることを、日本経済新聞の記事が報じています。この計画は、超越的な汎用人工知能(AGI)開発を目指す競争への対応が目的であり、AGI開発の潜在的な危険性と、国家レベルでの戦略的取り組みの必要性を論じています。記事は日本経済新聞の会員限定記事です。

www.nikkei.com

OpenAI元社員Suchir Balaji氏の死去と著作権問題

元OpenAI社員Suchir Balaji氏(26歳)がサンフランシスコの自宅で死亡し、自殺と断定されました。Balaji氏はOpenAIの著作権侵害を懸念し、ニューヨークタイムズ紙へのインタビューでAI技術が社会にもたらす害の大きさを訴えており、その懸念はOpenAIの著作権データ使用法、特に生成AI製品における「フェアユース」の適用可能性に焦点が当てられていました。彼はChatGPT開発にも携わっており、OpenAI退社の理由もAI技術の社会への悪影響への懸念だったとされています。

techcrunch.com

2024年購入アイテム紹介

2024年に購入したアイテムを紹介するブログ記事で、Onのランニングシューズや無印良品の仕切りスタンドといった日用品、NFCタグカードやUSBマイクといった作業効率化ガジェット、Keychron Q60 MAXキーボード、Time Timerなどのタイマー類について、使用感などを含めて記述されています。 MacBook Proの購入についても触れられていますが、既に新型が登場しているため詳細な説明は割愛されています。

blog.magnolia.tech

10GbE/2.5GbE対応スイッチ「SKS3200-4E2X」レビュー

AliExpressの独身の日セールで販売されていたXikeStor製の10GbE/2.5GbE対応スイッチ「SKS3200-4E2X」を7018円で購入し、レビューした記事です。本製品は4つの2.5GbEポートと2つの10GbEポートを搭載し、Web管理画面による設定が可能です。QNAPハブやMac miniなどの10GbE機器、自作PCなどの2.5GbE機器との接続テストを行い、良好な速度を確認しています。消費電力が低く、ファンレス設計のため静音性にも優れている点が評価されています。さらに、自作PCの2.5GbE環境構築やUSB-LANアダプタとの併用についても検討しているとのことです。

akkiesoft.hatenablog.jp

Webリアルタイム通信技術の比較と解説

Qiitaの記事「Webのリアルタイム通信、双方向通信を学ぶ(SSE、WebSocket、WebRTC、WebTransport)」では、CAMPFIRE Advent Calendar 2024の一環として、WebSocket、Server-Sent Events、WebRTC、WebTransportといったWebリアルタイム通信技術を網羅的に解説しており、各技術の概要、利用プロトコル、ブラウザ実装例に加え、一方向通信と双方向通信の違い、TCP/UDPの違いなども説明しています。HTTP基礎知識があることを前提とした記述となっています。

qiita.com

AWS ALBによるHTTPヘッダー変更機能

AWS Application Load Balancer (ALB)がHTTPヘッダーの変更機能を追加し、リクエスト・レスポンスヘッダーの追加、変更、削除が可能になりました。これにより、HSTSヘッダーの追加によるセキュリティ強化や、アプリケーションとの互換性向上を実現し、トラフィック制御の高度なカスタマイズが可能になります。ALB生成ヘッダーについても名前変更、挿入、削除に対応しており、AWS API、CLI、マネジメントコンソールから設定できます。

aws.amazon.com

Streamlitアプリをデスクトップアプリ化するコマンド

Streamlitアプリをデスクトップアプリに変換するコマンドラインツール「Streamlit Desktop App」が公開されました。このツールを使えば、コマンド一つでStreamlitアプリをデスクトップアプリ化でき、サーバープロセスの自動終了など利便性が向上します。PyInstallerを使用しているため、配布環境と同じOSで開発する必要があります。また、複数ページアプリやPure Pythonではないライブラリを使用する場合は、追加設定が必要となる場合があります。デスクトップアプリ化することで、オフラインでの利用やアプリの配布が容易になります。

zenn.dev

開発速度よりも重要なもの:変化への即応性とチーム力

シゴラクAIカンパニーは生成AIプラットフォーム開発と新規事業において、開発速度よりも変化への即応性を重視し、迅速な意思決定と情報共有を実現するため、全員参加の顧客商談やオンサイトでの密なコミュニケーションを導入、朝令暮改にも柔軟に対応することで、共通の目標と感情共有によるチームの結束を高め開発生産性を向上させ、今後も事業変化に合わせた最適な開発スタイルを探求していくことを報告しています。

tech.algomatic.jp

Gitブランチフロー規約

2024年のGitHubアドベントカレンダーの記事として、フューチャー社が作成したGitブランチフロー規約を紹介しています。Gitブランチ戦略の選定指針(git-flow、GitHub flowなど)と推奨戦略、マージ方法(マージコミット、リベース、スカッシュマージ)の使い分けをケース別に解説しており、Git運用におけるアンチパターンやGitHub/GitLabの推奨設定についても記述しています。さらに、今後のフィードバックに基づき、規約を継続的に更新していく予定です。

future-architect.github.io

Google Gemini 2.0の3D空間認識機能

Google Gemini 2.0の3D空間認識機能を試したレポートで、2D画像・動画から3次元空間を理解する技術が解説されています。Google Colabを用いたGemini APIの準備から推論実行手順、画像アップロード後のバウンディングボックス検出結果(JSON出力)、Colabでのバウンディングボックス描画手順まで詳細に紹介されています。

note.com

プライバシー重視のウェブ解析ツールPlausible Analytics

GitHubで公開されているPlausible Analyticsは、Google Analyticsに代わるプライバシー重視の軽量(1KB未満)なオープンソースWeb解析ツールです。Cookieを使用せず、GDPR、CCPA、PECRなどのプライバシー規制に準拠し、個人情報は収集・保存しません。クラウド版とセルフホスティング可能なコミュニティ版があり、シンプルなインターフェースで主要指標を容易に確認できます。クラウド版は有料ですが、個人情報収集を行わないため、Google Analyticsとは異なるビジネスモデルを採用しています。

github.com