Category: 開発

Mozilla、FirefoxのクラッシュレポートバックエンドをRustで書き換え:スリリングな旅

2025-03-19
Mozilla、FirefoxのクラッシュレポートバックエンドをRustで書き換え:スリリングな旅

Mozillaチームは、Firefoxのクラッシュ処理バックエンドのために、C++ベースのgoogle-breakpadを、純粋なRust実装であるrust-minidumpに置き換えました。厳格な単体テスト、統合テスト、本番環境へのデプロイを経て、rust-minidumpはリリースされ、速度が倍増し、信頼性が向上しました。著者は、直面した課題と、堅牢性を確保するために使用された広範なテスト方法を詳細に説明し、成功裏にリリースに至った経緯を説明しています。この記事は2つのパートに分かれています。パート1では背景とテストプロセスを説明し、パート2ではその後のファジングテストの結果を説明します。

PostgreSQLの同期コミット:パフォーマンスと耐久性のトレードオフ

2025-03-19
PostgreSQLの同期コミット:パフォーマンスと耐久性のトレードオフ

この記事では、PostgreSQLの`synchronous_commit`設定のパフォーマンスへの影響について考察しています。これをオフにすると、トランザクションのスループットが大幅に向上し、I/OとCPUの負荷が軽減されますが、データ損失のリスクウィンドウが発生します。著者は、I/O制約のあるシステムでTPSが30%向上したことを実証しています。この記事では、セッション、トランザクション、または操作ごとに`synchronous_commit`を調整する微妙なアプローチを提唱し、Ruby on Railsの例を示しています。また、Aurora PostgreSQLでは、`synchronous_commit`を`off`に設定することで、最大の性能向上を得られることも指摘しています。

カーネルエクスプロイトの新手法:AF_ALGを用いたmodprobe_pathパッチの回避

2025-03-19
カーネルエクスプロイトの新手法:AF_ALGを用いたmodprobe_pathパッチの回避

このセキュリティリサーチブログ記事は、昨年Upstreamカーネルにマージされたパッチを回避する、modprobe_pathテクニックを利用した新しい手法について説明しています。このパッチにより、ダミーファイルを実行してmodprobe_pathをトリガーする以前の手法は無効になりました。新しい手法はAF_ALGソケットを活用します。bind()を呼び出すことでrequest_module()がトリガーされ、modprobe_pathが指すファイルの実行が可能になり、権限昇格が達成されます。lauのmemfd_create()テクニックと組み合わせることで、完全にファイルレスなエクスプロイトとなり、検出される可能性が低くなります。このパッチはまだ安定版カーネルにはバックポートされていないため、以前の手法はまだ機能します。しかし、将来はAF_ALG手法が重要になります。

開発

Lokiの構造化メタデータ:運用上の悪夢

2025-03-19

Grafana Lokiは「ログのためのPrometheus」と呼ばれることがありますが、当初はPrometheusに似たデータモデルを採用していました。しかし、これはシステムログ(syslogまたはsystemd journal)に対して壊滅的な結果をもたらしました。Prometheusとは異なり、Lokiは各ラベル値のセットを別々に保存し、ログストレージを圧縮しません。そのため、カーディナリティの爆発が発生します。これを解決するために、Lokiは「構造化メタデータ」を導入しましたが、バージョン3.0.0時点ではまだ未完成の状態です。構造化メタデータラベルは通常のLokiラベルとは扱われず、異なるクエリ構文が必要です。既存ラベルからの移行は複雑で、予期せぬ高カーディナリティラベルの作成リスクがあります。アップグレードには注意が必要で、既存データの移行は非常にコストがかかります。新しいプロジェクトで使用する場合、その制約を十分に考慮する必要があります。

VisuAlgo:NUSにおける10年にわたる可視化プロジェクト

2025-03-19
VisuAlgo:NUSにおける10年にわたる可視化プロジェクト

シンガポール国立大学(NUS)の准教授であるSteven Halim氏が主導するVisuAlgoプロジェクトは、多くの学部生研究者や卒業生の貢献により10年以上にわたって開発されてきました。このプロジェクトは、アルゴリズムの教育のための可視化ツールの作成と維持に焦点を当てており、NUS CDTLからの助成金とOptiverからの寛大な寄付によって支えられています。チームはVisuAlgoを継続的に更新・改良し、世界中のユーザーに高品質のアルゴリズム可視化リソースを提供しています。

開発

Ubuntuパッケージを90%高速化:再コンパイルとメモリ割り当ての物語

2025-03-19
Ubuntuパッケージを90%高速化:再コンパイルとメモリ割り当ての物語

この記事では、Ubuntuで使用されているjqソースパッケージを再コンパイルすることで、驚異的な90%の性能向上を実現した方法を詳しく説明しています。著者は500MBのGeoJSONファイルを使ってベンチマークを行いました。パッケージを単純に再ビルドするだけでも、わずかながらも目に見える速度向上が見られました。さらに、clangコンパイラとより良いオプション(-O3、-flto、-DNDEBUG)を使用することで、20%の向上を達成しました。TCMallocメモリアロケータに切り替えることで、さらに40%の性能向上を実現しました。最後に、mimallocメモリアロケータを使用することで、動的にロードする場合でも、再ビルドに統合する場合でも、驚くべき90%の速度向上を実現しました。mimallocを使用して再コンパイルされたjqは、様々なテストにおいて、デフォルトのUbuntuパッケージのほぼ2倍の速度を達成しました。

arXivLabs:コミュニティとの共同実験プロジェクト

2025-03-18
arXivLabs:コミュニティとの共同実験プロジェクト

arXivLabsは、共同研究者がarXivの新しい機能を直接arXivウェブサイト上で開発・共有できるフレームワークです。arXivLabsに関わる個人や組織は、オープン性、コミュニティ、卓越性、ユーザーデータプライバシーという私たちの価値観を受け入れています。arXivはこれらの価値観に尽力しており、これらの価値観を共有するパートナーのみと協力しています。arXivコミュニティに利益をもたらすプロジェクトのアイデアをお持ちですか?arXivLabsの詳細をご覧ください。

開発

Git-Who:コードの貢献者を簡単に追跡

2025-03-18
Git-Who:コードの貢献者を簡単に追跡

特定のコードセクションの作者を探すのに苦労していませんか?コマンドラインツールであるGit-Whoが解決策です!個々の行に焦点を当てる`git blame`とは異なり、Git-Whoはコードコンポーネントやサブシステム全体の主要な貢献者を特定します。`table`、`tree`、`hist`の3つのサブコマンドを使用して、貢献数、最終編集時刻、変更行数などを表、ツリー構造、タイムラインで表示します。パス、ブランチ、タグ、またはリビジョン範囲で結果をフィルタリングし、ソートとフィルタリングにフラグを使用します。Git-WhoはGit mailmapにも対応し、異なる名前やメールアドレスでの貢献を統合します。Git-Whoを試して、コードの所有権を明確に把握しましょう!

Qodo Gen 1.0:LangGraphとMCPによるエージェント型AIコーディング

2025-03-18
Qodo Gen 1.0:LangGraphとMCPによるエージェント型AIコーディング

Qodo Gen 1.0は、AIコーディングとテストのためのIDEプラグインに、エージェント型ワークフローを導入し、AIが複雑なコーディングタスクを動的に処理できるようにしました。これは、構造化されたワークフローのためのLangGraphと、標準化された外部ツール統合のためのAnthropicのModel Context Protocol(MCP)を使用してインフラストラクチャを再構築することで実現されました。このアーキテクチャは、非同期通信、オンデマンドコンテキスト取得、拡張されたエラー処理と信頼性をサポートしており、AIは自律的に動作し、リアルタイムデータを取得し、ツール実行の結果に基づいて戦略を調整できます。LangGraphは柔軟性と制御を提供し、MCPは外部ツールの統合を簡素化します。その結果、よりインテリジェントな自動化、拡張可能なシステム、そしてAI自律性への構造化されたアプローチが実現しました。

開発

実践プロセス制御:PID制御の習得

2025-03-18

この包括的なガイドは、プロセス制御の実用的な側面を深く掘り下げ、PIDコントローラの設計、チューニング、高度な制御アーキテクチャに焦点を当てています。熱交換器、重力排水タンク、ジャケット付き攪拌反応器に関するケーススタディを含むプロセスダイナミクスのモデリングから始まり、比例、積分、微分制御、およびさまざまなフィルターの役割を体系的に説明します。このガイドでは、積分プロセスの処理、カスケード制御、フィードフォワード制御、蒸留塔などの現実世界のアプリケーションにおける高度な制御戦略についても取り上げ、エンジニアのための包括的な実践的なハンドブックを提供します。

PeerTube 7.1リリース:発見可能性と安定性の向上

2025-03-18
PeerTube 7.1リリース:発見可能性と安定性の向上

PeerTubeバージョン7.1がリリースされ、大幅な改善が加えられました。アップデートには、より明確なプラットフォーム情報を提供する「概要」ページの再設計、ビデオの起源を容易に理解するためのプラットフォーム識別の改善、Podcastアプリの購読に対応したPodcast 2.0のサポート強化、同時視聴者数を増やすためにデフォルトで有効化された新しいビュープロトコル、信頼性を高めるためのMastodonアカウントの検証、ライブストリームの安定性を向上させるための改良されたP2Pメディアローダーなどが含まれています。

検証ファースト開発:テスト駆動開発を超えて

2025-03-18
検証ファースト開発:テスト駆動開発を超えて

この記事では、検証ファースト開発(VFD)というパラダイムを探求します。これは、コードを書く前に検証メカニズムを確立することを重視します。これには、テストの記述、型不変量の定義、契約の追加など、さまざまな方法が含まれます。VFDはテスト駆動開発(TDD)とは異なり、TDDはVFDの特別なケースであり、テストを使用してコード設計を推進することに焦点を当てています。VFDの利点としては、検証をスキップする可能性の低減、早期のエラー検出、コード品質の向上などがあります。しかし、VFDには欠点もあります。開発速度の低下、探索的コーディングの妨げ、検証方法がコード設計に影響を与える可能性などです。著者は、VFDはパラダイムではなくテクニックとして、より柔軟で他のアプローチと簡単に統合できると主張しています。

HTTrack 3.49-2 リリース:エンジン修正と改良

2025-03-18

HTTrack バージョン 3.49-2 がリリースされました。キープアライブ、リダイレクト処理、新しいハッシュテーブル、単体テストなど、エンジンの改良が含まれています。この無料のオープンソースオフラインブラウザを使用すると、Webサイト全体をローカルにダウンロードし、サイトのリンク構造とすべてのファイル(HTML、画像など)を保持して、オフラインブラウジングを行うことができます。Windows と Linux/Unix/BSD のバージョンが利用可能です。

Fedora 42 Beta:刷新されたインストール体験と数多くの新機能

2025-03-18
Fedora 42 Beta:刷新されたインストール体験と数多くの新機能

Fedora 42 Betaが登場しました!このアップデートは、より一貫したキーボード制御と改善されたWeb UIによるパーティショニングを備えた、Waylandベースの全く新しいAnacondaインストーラなど、エキサイティングな改良をもたらします。インストールプロセスはよりスムーズで直感的になります。Fedora Workstationは、進捗インジケーター、ビルトインヘルプ、設定レビューなどの機能を提供する新しいWeb UIインストーラをデフォルトで使用します。KDE Plasmaは正式版となり、Powerシステムをサポートします。さらに、Rustベースの新しいCOSMICデスクトップ環境、ライブメディア用のEROFSなど、パフォーマンスと安定性を向上させるための多くの強化が加えられています。Python 3.8やpython-pytest-runnerなど、いくつかの古い機能は廃止または削除されています。

開発

DuckDBプレビュー:Amazon S3テーブルとSageMaker Lakehouseへのシームレスな接続

2025-03-18
DuckDBプレビュー:Amazon S3テーブルとSageMaker Lakehouseへのシームレスな接続

DuckDBは、Apache Iceberg RESTカタログのサポートを追加するプレビュー機能を発表しました。これにより、Amazon S3テーブルとAmazon SageMaker Lakehouseへの容易な接続が可能になります。AWSとDuckDB Labsの共同作業により、ユーザーはIcebergテーブルを直接クエリできます。最新のDuckDBと必要な拡張機能をインストールし、AWS認証情報を設定して簡単なコマンドを使用することで、ユーザーはスキーマの進化があってもデータにアクセスしてクエリを実行できます。このプレビューリリースは、今年の後半に安定版をリリースするための準備となります。

過小評価されているソフトスキル:エンジニアのためのカリスマ性

2025-03-18
過小評価されているソフトスキル:エンジニアのためのカリスマ性

エンジニアはしばしば技術スキルを優先し、重要なソフトスキルを軽視することがあります。この記事では、しばしば見過ごされているスキルであるカリスマ性が成功に不可欠であると主張しています。著者は長年のメンタリング経験を通じて、カリスマ性は生まれつきのものではなく、意味のあるつながりを築き、共感を育み、温かさを発するといった、学習可能な行動の集合体であると強調しています。著者は、エンジニアが人間的な成長に焦点を当て、カリスマ性を高め、より効果的なチームメンバーやプロフェッショナルになることで、最終的により充実したキャリアと人生を送ることを促しています。

Spaceium採用:宇宙船開発のためのソフトウェアエンジニア

2025-03-18
Spaceium採用:宇宙船開発のためのソフトウェアエンジニア

Spaceiumは、宇宙船を動かすソフトウェアの設計と開発を行うソフトウェアエンジニアを募集しています。業務内容は、フライトソフトウェア、データ処理、制御アルゴリズム、自動化ツールの重要なシステム開発などです。ソフトウェア開発の堅実な基礎、航空宇宙規格の理解、そして技術革新への情熱が必要です。経験豊富なエンジニアも、新卒の優秀な人材も歓迎します。給与は9万ドルから11万ドル、それに加えて株式報酬があります。

rePebbleのiOSアプリ:困難な作業

2025-03-18
rePebbleのiOSアプリ:困難な作業

再始動したPebbleスマートウォッチプロジェクトの開発者たちは、よく知られた課題に直面しています。それは、サードパーティ製ウォッチ開発者に対するAppleの制限的なポリシーです。この記事では、オリジナルのPebble時代のiOS開発における苦労を詳細に説明し、テキストメッセージの送信や通知とのやり取りといった重要な機能を妨げるAppleによって課せられた制限を強調しています。iOSアプリは開発中ですが、チームはAndroid版と比較して大きな制限があることを認めており、ユーザーにAppleへの圧力をかけるよう促し、スマートウォッチ市場における競争を促進しています。

開発

TruffleRuby正規表現:C言語とSIMDより200倍高速

2025-03-18
TruffleRuby正規表現:C言語とSIMDより200倍高速

このブログ記事では、RubyにおけるJSON文字列エスケープのパフォーマンス最適化について考察しています。ベンチマークでは、3つのアプローチを比較しています。純粋なRubyバージョン、SIMD命令を使ったC拡張、そしてTruffleRuby上の純粋なRubyバージョンです。驚くべきことに、TruffleRubyの純粋なRubyバージョンは、高度なJITコンパイラとTRegexエンジンを活用することで、C拡張とSIMDよりも20倍高速であり、場合によっては基準となるCコードよりも200倍以上高速です。これは、TruffleRubyのTRegexエンジンが正規表現を決定性有限オートマトンにコンパイルし、バックトラッキングを回避し、SIMD命令を使用して最適化を行うためです。`Time.new(String)`と`StringScanner#scan_integer`についても同様の比較が行われており、TruffleRubyの正規表現実装はCRubyのC実装を大幅に上回っています。これは、高度なJITコンパイラと組み合わせた簡潔な純粋なRubyコードが、低レベル言語のパフォーマンスを上回ることがあることを示しています。

開発

Hacker News:10年間の技術成長

2025-03-18
Hacker News:10年間の技術成長

2011年からHacker Newsを使い始め、当初は技術用語や言及されている企業をほとんど理解していませんでした。しかし、毎日読んで、知らない概念を深く掘り下げることで、データアナリストから、数百万人のユーザーに自信を持ってコードをデプロイできるエンジニアへと成長しました。Hacker Newsは学習リソースだけでなく、支えとなるコミュニティを提供し、技術スキルとライティング能力の向上を助け、最終的に大きなキャリアの飛躍を遂げることができました。

開発 技術学習

WebRTCとOpenAIリアルタイムAPIを使った音声チャットボットの構築

2025-03-18
WebRTCとOpenAIリアルタイムAPIを使った音声チャットボットの構築

この記事では、WebRTCとOpenAIリアルタイムAPIを使用して音声チャットボットを構築する方法を詳述しています。著者はドキュメントの不足を克服し、マイクからの音声取得、WebRTC接続の確立、データチャネルの設定、リアルタイムAPIのメッセージ交換などを網羅したステップバイステップガイドを提供しています。応答とセッション終了のための関数呼び出し、古いGoogle AIY Voice Kitでのアプリケーションの実行など、ベストプラクティスが強調されています。また、ヘッドレスブラウザソリューションや組み込みSDKなど、代替アプローチを探求し、WebRTCの拡大する影響力を示しています。

Bassモデルを用いたStack OverflowにおけるPythonの成長予測:ケーススタディ

2025-03-18
Bassモデルを用いたStack OverflowにおけるPythonの成長予測:ケーススタディ

著者はODSCのAI+トレーニングセッションで、Bassモデルを用いてStack OverflowにおけるPythonの成長トレンドを予測したケーススタディを発表しました。ベイズ推論を用いて過去のデータに適合させたこのモデルは、将来の成長を予測し、新しいデータが追加された際のモデルの予測調整方法を示しました。完璧な適合ではありませんでしたが、このケーススタディは、テクノロジーのトレンド予測や成長における潜在的な転換点の特定におけるBassモデルの価値を示しています。

GraalVM for JDK 24リリース:パフォーマンス向上と小型バイナリ

2025-03-18
GraalVM for JDK 24リリース:パフォーマンス向上と小型バイナリ

GraalVM for JDK 24がリリースされました!このリリースでは、機械学習ベースのGraalNNによる最適化(様々なマイクロサービスベンチマークでピークパフォーマンスを平均約7.9%向上)、ネイティブ実行ファイルサイズを約6.35%削減するSkipFlow、Java Agentのpremainサポート強化、JIT並みのパフォーマンスを実現するVector API最適化など、多くの改善が加えられています。さらに、SBOMサポートの強化、デバッグとモニタリング機能の向上など、セキュリティ機能も強化されています。全体として、GraalVM 24はパフォーマンス、サイズ、セキュリティの面で顕著な改善を提供しており、開発者にとって価値のあるアップグレードです。

開発

OpenJDK JDK 24 一般公開

2025-03-18

OpenJDK JDK 24が一般公開されました!このリリースは、GNU General Public License version 2 with Classpath Exceptionの下でライセンスされた、Java SE 24プラットフォームのオープンソース実装です。Oracleも、別途ライセンスの下で商用ビルドを提供しています。ユーザーは、通常のJava SEチャネルを通じてフィードバックとバグレポートを送信でき、`java --version`コマンドからの完全なバージョン情報を含める必要があります。知的財産上の制約により、ソースコードの配布は許可された国に制限されていることに注意してください。

開発

SourceHut、AIクローラーによるサーバー過負荷と闘う

2025-03-18
SourceHut、AIクローラーによるサーバー過負荷と闘う

オープンソースのGitホスティングサービスSourceHutは、サーバーを過負荷にしている攻撃的なAIウェブクローラーの波と闘っています。同社は、Nepenthesと呼ばれる「タールピット」を含む対策を展開し、過剰なボットトラフィックのため、Google CloudやAzureなどの複数のクラウドプロバイダーをブロックしました。これは新しい問題ではなく、SourceHutは2022年にGoogleのGo Module Mirrorで同様の問題に直面しており、他のオープンソースプロジェクトも影響を受けています。一部のAI企業がrobots.txtを尊重することを約束している一方で、悪用は続いており、iFixit、Vercel、Diasporaなどのサイトが問題を報告しています。OpenAIのGPTBotなどの正当なクローラーになりすます洗練されたスプーフィングによって、状況はさらに複雑になっています。これにより、ログ分析が困難になり、AIクローラートラフィックの管理という増大する課題が浮き彫りになっています。広告指標会社DoubleVerifyは、2024年下半期に無効トラフィックが86%増加し、その16%がAIスクレイパーによるものであると報告しました。

UI開発を革新する:AI駆動デザインによる比類のない効率性

2025-03-18

面倒なUI開発にうんざりしていませんか?AI駆動のデザインツールを使えば、複雑なUIを3~5日から2~4時間に短縮できます。手動実装による不整合とはお別れです。AIがデザインの一貫性を保証します。デザイン変更も、数時間の手動更新から数分の再生成またはビジュアル編集に変わります。コード品質は保証され、学習曲線は大幅に低減され、イテレーション速度は大幅に向上し、開発者のエクスペリエンスは面倒なものから楽しく効率的なものへと変化します。

SaaSプライベートデプロイメントの罠:警告物語

2025-03-18

この記事では、SaaSプラットフォームでプライベートデプロイメントを提供することの落とし穴を探ります。収益性の高い一方で、プライベートインストールは膨大な運用とサポートの負担を伴います。著者は、これによりSaaSベンダーは運用組織またはヘルプデスク組織に変貌し、顧客固有の環境を維持するために多大なリソースが必要になると主張しています。この記事では、どうしても必要な場合を除いてプライベートデプロイメントを避けるようアドバイスし、管理されたホスト型デプロイメントと、リスク軽減のための慎重な契約条件と価格設定を提案しています。

YouTube広告をブロックする暗号化強度が高いルーターの構築

2025-03-18

著者はYouTube広告を完全にブロックするために、FreeBSDとpfSenseベースのルーターを構築しました。Google Protocol Buffer形式の欠陥を利用して、中間者攻撃プロキシがHTTPSトラフィックを復号化し、広告を削除するために1バイトを変更できるようにします。YouTube以外にも、このルーターはブラックリストを使用して、悪意のある広告、トラッカー、クリックベイトなどからすべてのネットワークデバイスを保護します。最終的に、著者は広告回避の倫理的な考慮事項を認め、YouTube Premiumの有料購読を選択しました。

開発

SourceHut包囲網:LLMクローラの高コスト

2025-03-18

オープンソースコードホスティングプラットフォームであるSourceHutは、大規模なLLMクローラの執拗な攻撃を受けています。これらのボットはrobots.txtを無視し、無差別にデータをスクレイピングするため、頻繁な停止が発生し、サービスの安定性と開発者の生産性が著しく低下しています。著者は、LLMやAIツールの開発と使用の中止を訴え、オープンソースコミュニティに与えられた莫大な損害を非難しています。これはSourceHutだけの問題ではなく、オープンソースエコシステム全体の課題です。

米国クラウドからの脱出:実践的な移行物語

2025-03-18
米国クラウドからの脱出:実践的な移行物語

EUのプライバシー法と米国のデータ慣行の矛盾、そして米国政府がテクノロジー企業を武器として悪用する可能性への懸念から、著者は自社の米国クラウドサービスへの依存を移行することにしました。この記事では、Microsoft 365からProton、BitwardenからProton Passへの切り替え、そしてGitHub、Google検索、Cloudflare/Google DNS、Docker Hub、NPMなどの他のサービスの段階的な移行のプロセスと経験について詳しく説明しています。Microsoft 365の代替としてProtonへの驚くほどスムーズな移行など、一部の移行は予想よりも簡単でしたが、GitHubなど、他の移行は高い依存性のためにより多くの時間を必要としました。この記事では、米国クラウドサービスへの依存を減らすことの重要性を強調し、ヨーロッパの代替案を探求することを推奨しています。

1 2 135 136 137 139 141 142 143 214 215