Category: 開発

Hotspot:Linux perf パフォーマンス解析のための洗練されたGUI

2025-05-22
Hotspot:Linux perf パフォーマンス解析のための洗練されたGUI

KDABは、パフォーマンスデータ分析のためのスタンドアロンGUIであるHotspotを開発しました。最初は、KCachegrindに似たインターフェースでLinux perfデータを視覚化することに焦点を当てています。グラフィカルな視覚化、タイムラインのフィルタリング、アプリケーションのプロファイリングのためのperfの起動機能を提供します。クロスディストリビューションでの容易な使用のためにAppImageとして、またはパッケージマネージャー(AUR、Debian、Ubuntu、Fedora)を介して利用可能であり、Hotspotを使用すると、ユーザーはCPU時間とCPU非使用時間を分析し、データをエクスポートして共有できます。まだすべての機能が実装されているわけではありませんが、HotspotはLinuxのパフォーマンス分析を簡素化します。

ダイクストラによるAda言語提案への痛烈な批判

2025-05-22
ダイクストラによるAda言語提案への痛烈な批判

チューリング賞受賞者エドガー・ダイクストラは、Adaプログラミング言語の4つの提案(赤、緑、青、黄)をレビューしました。彼は赤の提案を「前衛的で後進的な、不整合なほどに困惑する」と評しました。緑の提案は「技術的不能力、おそらく不正行為によって増幅されている」とみなされました。青の提案は「許容できないほど複雑」であり、文書は「技術文書とセールストークの解きほぐせない混合物」と表現されました。最終的に、ダイクストラは、勝利した緑の提案に西側の安全保障が依存することに懸念を表明し、ソビエト赤軍がそれを採用した方が安全だとさえ示唆しました。この逸話は、ダイクストラのソフトウェアエンジニアリングにおける厳格な技術基準と明確な設計への揺るぎないコミットメントを浮き彫りにしています。

Debianがパッケージを変更する理由

2025-05-22

1年半前に「なぜDebianはこういう形をしているのか?」という記事を書きましたが、それからDebianがパッケージするソフトウェアを変更する理由について多くの質問を受けました。この記事では、その理由を簡単に説明します。Debianポリシーマニュアルに記載されているポリシーに従うこと(例えば、システム全体の構成が/etcにあること、ドキュメントが/usr/share/docにあることなど)、プログラムが互いに連携して動作するために変更が必要になること(例えば、Unixドメインソケットが存在する場所や、どのUnixユーザーアカウントで実行するべきかなど)、プライバシーとセキュリティの理由から、ソフトウェアを「外部に連絡する」コードやDebianパッケージシステムをバイパスしてソフトウェアを更新しようとするコードを削除すること、上流で修正される前にバグを修正したり、以前のバージョンのバグ修正をバックポートしたりすること(ユーザーエクスペリエンス向上のため)、合法的に配布できないものはメインパッケージアーカイブに含めないこと(Debianフリーソフトウェアガイドラインに従って)、マニュアルページがない場合は追加することなどです。要約すると、これらの変更は、システムの安定性、セキュリティ、およびフリーソフトウェア原則の遵守を保証するために行われています。

開発

イニゴ・キレスのコンピュータグラフィックスチュートリアル宝庫

2025-05-22

1994年からコンピュータグラフィックスの学習と知識共有に尽力するベテラン、イニゴ・キレス。彼のウェブサイトには、SDFやレイマーチングからフラクタルや数学的手法まで、幅広いトピックを網羅した膨大なコンピュータグラフィックスチュートリアルが掲載されています。簡潔なコードスニペットと分かりやすい説明が特徴で、様々なスキルレベルに対応。ビデオチュートリアルやその他の資料も提供しており、コードはMITライセンスで自由に再利用できます。

開発

2012年MacBook ProでのDuckDBベンチマーク:分散アーキテクチャに10年間費やしたのか?

2025-05-22
2012年MacBook ProでのDuckDBベンチマーク:分散アーキテクチャに10年間費やしたのか?

この記事では、2012年製のMacBook ProでDuckDBをベンチマークし、ハードウェアのイノベーション速度がデータの成長速度を上回ったかどうか、そして分散アーキテクチャが不要になったかどうかを調査しています。結果は、10年前のラップトップが複雑な分析SQLクエリを実行できることを示していますが、最新のMacよりも遅いものの、妥当な時間内に完了します。これは、過去10年間の分散データ分析への注力について、単一ノードデータベース技術が当時すでに大規模なデータセットを処理できる能力を持っていたことを示唆し、分散システムへの移行の必要性に疑問を投げかけています。

開発

VS Code向け実験的Kotlin言語サーバー

2025-05-22
VS Code向け実験的Kotlin言語サーバー

Visual Studio Code向けの公式Kotlin言語サーバー(プレアルファ版)が利用可能になりました。Kotlin言語向け言語サーバープロトコルを実装しています。IntelliJ IDEAとそのKotlinプラグインをベースに構築されており、ほとんどの基本機能をサポートしますが、実験段階であり、安定性の保証はありません。現時点では、JVM限定のKotlin Gradleプロジェクトのみが直接サポートされています。開発速度を上げるため、一部の実装は現在クローズドソースですが、将来的には完全なオープンソース化を予定しています。VS Code拡張機能として簡単にインストールできますが、他のエディターでは手動で設定する必要があります。ユーザーは試用してフィードバックを提供することを推奨しますが、直接のコードへの貢献はまだサポートされていません。

開発

拒否から採択へ:1ページ目の力

2025-05-22
拒否から採択へ:1ページ目の力

当初拒否された論文が、大幅な改訂を経て採択されました。著者は、重要な最初のページ(タイトル、アブストラクト、図1、イントロダクション)に焦点を当て、変更点を詳細に説明しています。タイトルを具体的かつ記憶に残るものにし、図1を視覚的に魅力的なものにし、アブストラクトとイントロダクションを簡潔で魅力的なものにすることで、論文のインパクトを向上させました。さらに、ベースラインの追加、アブレーション、統計的有意性の確保など、拒否の潜在的な理由に対処する改訂が行われました。著者は、コミュニケーションの改善が科学的インパクトを大幅に向上させるという結論に至っています。

LLMとMCPサーバーを使ってメールから情報を検索する

2025-05-22

著者は、大規模言語モデル(LLM)に自分のメールへの読み取り専用アクセス権を与えるために、MCPサーバーを構築しました。Gemini(LLMの一種)との会話を通して、著者は、シンプルな検索と取得ツールを使って、Donovanの息子の名前をメール内で見つける方法を示しています。Geminiの最初の検索戦略では、「son」、「boy」、「baby」などの複数のキーワードを使用しましたが、ほとんどはDonovanの親戚につながりました。最終的に、Geminiは最初の検索結果を分析し、メールの件名と内容を分析することで手がかりを発見し、息子の名前がMontyであることを突き止めました。このプロセスは、情報検索のための特定のツールと組み合わせたLLMの能力、そして正確な検索戦略の重要性を示しています。

開発

純粋なJavaScriptでCSVを検索可能なHTMLテーブルに変換

2025-05-22
純粋なJavaScriptでCSVを検索可能なHTMLテーブルに変換

CSVデータの処理に苦労していませんか?この純粋なJavaScriptプロジェクトは、CSVファイルを美しく、検索可能で、フィルタリング可能なHTMLテーブルに変換します。最小限のコードでデータを視覚化し、フォーマットをカスタマイズし、ダウンロードを有効にし、テーブルをシームレスに埋め込むことができます。デモをチェックして、今日のデータ処理を簡素化しましょう!

レガシーコード冒険記:COBOLオデッセイ

2025-05-22

20万行のCOBOLコードの保守作業で、多くの巧妙なハックと歴史的な特徴が発見されました。著者は、10進数の数値、データ定義を使った巧妙な文字列解析、国際化に使用された「REDEFINES」文(スペイン語による再定義も含まれる)を発見しました。ジョブの異常終了のための早期終了も実装されており、謎めいたファイルには最初の800個の自然数が文字列定数として含まれていました。そして、UNIXの「dd」コマンドがCOBOLのデータ定義のための「DD」文に由来することが明らかになり、メインフレームプログラミングの予期せぬ遺産が示されました。

arXivLabs:arXiv機能のコミュニティコラボレーション

2025-05-21
arXivLabs:arXiv機能のコミュニティコラボレーション

arXivLabsは、共同作業者がarXivの新しい機能をウェブサイト上で直接開発および共有できるようにするフレームワークです。参加者は、arXivのオープン性、コミュニティ、卓越性、ユーザーデータのプライバシーという価値観を受け入れる必要があります。arXivコミュニティを向上させるアイデアをお持ちですか?arXivLabsの詳細をご覧ください。

開発

iText Coreテーブルレンダリング最適化:5分から7秒へ

2025-05-21
iText Coreテーブルレンダリング最適化:5分から7秒へ

ApryseのエンジニアGuustは、iText Coreのテーブルレンダリングのパフォーマンスを最適化しました。繰り返し行われるボーダーの折りたたみ計算と不要なタグ付けのオーバーヘッドを回避することで、5万セルのテーブルのレンダリング時間が5分から7秒に短縮されました。最適化は`CollapsedTableBorders#getVerticalBorder`関数とタグ処理に重点を置いており、キャッシング、冗長な関数呼び出しの削除、バッチでのタグ追加などにより、パフォーマンスが大幅に向上しました。この最適化はiText Core 9.1.0に含まれています。

Rocky Linux 10がRISC-Vをサポート:オープンソースにとって大きな一歩

2025-05-21

Rocky Linux 10の準備をしましょう!このリリースは重要なマイルストーンとなります。RISC-Vアーキテクチャの公式サポートです。Fedora RISC-VコミュニティとRockyのAltArch SIGの協力により、riscv64gcビルドが含まれ、StarFive VisionFive 2、QEMU、SiFive HiFive Premier P550などのプラットフォームをターゲットとします。P550などの特定のプラットフォームでは一部の機能が制限される可能性がありますが、VisionFive 2とQEMUではすぐに使える機能が大きな特徴です。2024年初頭に開始されたこのコミュニティ主導のイニシアチブは、Fedora RISC-Vの上流の取り組みとのオープンソースコラボレーションの力を示しています。

開発

ACE-RISCV:RISC-V向けオープンソースConfidential Computingフレームワーク

2025-05-21
ACE-RISCV:RISC-V向けオープンソースConfidential Computingフレームワーク

ACE-RISCVは、正式に検証されたセキュリティモニタを備えたConfidential Computingフレームワークを提供するオープンソースプロジェクトです。移植性を考慮してRISC-Vをターゲットとし、セキュリティモニタの実装の正式検証に重点を置いています。ローカルアテステーションをサポートし、ML-KEM、SHA-384、AES-GCM-256を含むポスト量子暗号(PQC)を使用します。64ビットRISC-Vアーキテクチャ向けの詳しいビルドと実行手順が提供されています。

開発

P対PSPACE:空間計算は時間計算よりも強力か?

2025-05-21
P対PSPACE:空間計算は時間計算よりも強力か?

計算複雑性理論の中心的な問いは、複雑性クラスPとPSPACEの関係です。Pは妥当な時間内に解ける問題を包含する一方、PSPACEは空間計算量を扱います。PSPACEはPよりも大きいという考え方が一般的ですが、これは時間とは異なり空間が再利用できるためです。これを証明するには、PSPACEの中に多項式時間で解けない問題を示す必要があります。この記事では、1975年にHopcroft、Paul、Valiantが行った画期的な研究、つまり空間が時間よりもわずかに優れていることを示した研究を振り返り、その後進展が停滞したことを述べています。Ryan Williamsの研究がついにこの行き詰まりを打破し、P対PSPACE問題の解決に新たな洞察を与えました。

開発 P対PSPACE

Appwrite Sites:ワンストップでのウェブサイトのデプロイとホスティング

2025-05-21
Appwrite Sites:ワンストップでのウェブサイトのデプロイとホスティング

Appwriteは、新しい製品であるSitesを発表しました。これにより、Appwrite内で直接ウェブサイトとウェブアプリをデプロイおよびホストできます。複数のプラットフォームを切り替えたり、複雑な設定を行ったりする必要はもうありません。構築、デプロイ、そして公開するだけです。Sitesは静的サイトとSSRアプリをサポートしており、Git、グローバルCDN、DDoS保護を統合し、Appwriteのデータベース、関数、ストレージ、認証サービスとシームレスに統合されます。ワンクリックでデプロイ可能なテンプレートが複数用意されており、セルフホスティングにも対応しています。Appwrite Sitesは2025年7月1日まで無料です。

Google AI Studio:Gemini 2.5 ProによるAIアプリ開発の強化

2025-05-21
Google AI Studio:Gemini 2.5 ProによるAIアプリ開発の強化

Google AI Studioが大幅にアップデートされ、Gemini 2.5 Proモデルが統合され、コード生成能力が大幅に向上しました。開発者は、シンプルなテキスト、画像、またはビデオプロンプトを使用して、AI駆動型のWebアプリを迅速に構築およびデプロイできます。新バージョンでは、Imagen、Lyria RealTime、Veoなどのマルチモーダルモデルも統合され、Cloud Runへのワンクリックデプロイ、コードバージョンの比較とロールバック機能も提供されます。さらに、ネイティブオーディオサポートとURLコンテキストツールが追加され、アプリのインタラクティブ性と情報取得能力が向上しました。

開発

Goスケジューラ: скромное началоから強力なエンジンへ

2025-05-21
Goスケジューラ: скромное началоから強力なエンジンへ

この記事では、Goスケジューラの進化を詳しく解説します。非効率的な単一のグローバル実行キューから、高性能なGMPモデル(Goroutine、Machine、Processor)への道のりをたどります。GMPモデルにおける各コンポーネントの役割とメカニズム、Goroutineの作成、プリエンプション、システムコールの処理、netpollのネットワークI/OとファイルI/Oにおける役割などを詳細に説明します。協調的プリエンプションと非協調的プリエンプションのメカニズムについても解説します。Goランタイムのソースコードを解剖することで、読者はGoのコンカレンシーモデルをより深く理解し、より効率的なコンカレントプログラムを作成できるようになります。

ShopifyのストアフロントWebコンポーネント:簡単なEC統合

2025-05-21
ShopifyのストアフロントWebコンポーネント:簡単なEC統合

Shopifyは、ストアフロントWebコンポーネントをリリースしました。これは、ShopifyのEコマース機能をあらゆるウェブサイトに簡単に統合できるHTMLコンポーネントのセットです。最小限のHTMLで、製品、コレクション、チェックアウトを表示できます。これらのコンポーネントは、ShopifyストアフロントAPIとのやり取りの複雑さを処理し、複雑なJavaScriptの必要性を排除します。CSSとHTMLを使用して、カスタマイズされたショッピングエクスペリエンスを作成し、既存のコンテンツへの埋め込みやまったく新しいページの構築に適しています。

開発 EC統合

LlamaDev:LlamaIndexの新しいモノレポ管理ツール

2025-05-21
LlamaDev:LlamaIndexの新しいモノレポ管理ツール

650以上のPythonパッケージを持つLlamaIndexのモノレポのメンテナンスは大きな課題でした。当初は、個々のプロジェクトにPoetry、オーケストレーションにPantsを使用していましたが、規模が大きくなるにつれて、ビルド速度とキャッシュサーバーのメンテナンスに問題が発生しました。これを解決するために、LlamaIndexチームはLlamaDevを開発しました。Poetryをuvに置き換え、依存関係グラフとテストのトリガーを内部的に処理します。LlamaDevはビルド速度を大幅に向上させ、デバッグを簡素化し、開発者エクスペリエンスを向上させ、貢献者がプロジェクトに参加しやすくなりました。

開発

Langfuse、カスタマイズ可能なダッシュボードを発表:LLM利用データの力を解き放つ

2025-05-21
Langfuse、カスタマイズ可能なダッシュボードを発表:LLM利用データの力を解き放つ

Langfuseはローンチ3日目に、カスタマイズ可能なダッシュボードを発表しました。Langfuse UI内でLLMの使用状況を視覚化する強力な方法です。遅延トレンドの追跡、ユーザーフィードバックの監視、コストとパフォーマンスの関連付けなど、必要なチャートを必要な場所に構築できます。独自の分析スタックで作業することを好むユーザー向けには、APIを介して同じクエリ機能を利用できます。この記事では、製品の構想から技術的な実装、テスト、ロールアウトまでの過程を詳細に説明し、柔軟でリアルタイムなLLMパイプラインのインサイトを構築する際に得られた教訓を共有します。データモデルの抽象化、柔軟で高性能なクエリエンジンの構築、ダッシュボードビルダーにより、Langfuseはカスタマイズ可能なダッシュボードを成功裏に提供し、ベータテストとユーザーフィードバックを通じて反復的な改善を行い、より多くのチャートコンポーネント、サイズ変更可能なウィジェット、改善されたツールサポート、さらにはLangfuseが管理するダッシュボード(貴重な事前設定テーマを提供)を追加しました。

arXivLabs:コミュニティとの協働による実験プロジェクト

2025-05-21
arXivLabs:コミュニティとの協働による実験プロジェクト

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

開発

Chromiumのインクルードグラフの可視化:150MBのGraphMLファイルの冒険

2025-05-21
Chromiumのインクルードグラフの可視化:150MBのGraphMLファイルの冒険

この記事では、コマンドラインツールであるclang-include-graphを使用して、Chromiumの大規模なインクルードグラフを可視化する方法を詳しく説明しています。このプロセスには、compile_commands.jsonファイルを生成するためにChromiumをビルドし、その後clang-include-graphを使用して150MBのGraphMLファイルを作成することが含まれていました。14万を超えるノードと130万を超えるエッジを含むこのファイルは、Gephiを使用して可視化されました。Pythonスクリプトはグラフを分析し、92ノードの強連結成分がサイクルの99%を占めているなど、興味深い統計を明らかにしました。著者はさまざまな視覚化レイアウトを検討し、このような大規模なデータセットを扱うことの課題について議論しています。

LLM関数呼び出しはスケールしない:コードオーケストレーションの方がシンプルで効果的

2025-05-21
LLM関数呼び出しはスケールしない:コードオーケストレーションの方がシンプルで効果的

ツール呼び出しの完全な出力をLLMにフィードバックするのはコストが高く、速度も遅い。この記事では、構造化データの取得を可能にする出力スキーマにより、LLMが生成されたコードを介して処理をオーケストレーションできることを主張しています。これは、よりシンプルで効果的なアプローチです。ツール出力が次のステップを決定するためにメッセージとしてLLMにフィードバックされる従来の方法では、小さなデータセットではうまく機能しますが、現実規模では失敗します(例:LinearとIntercomのMCPサーバーからの大きなJSONブロブ)。この記事では、コード実行をデータ処理の基本的な方法として提案し、変数をメモリとして使用し、コードを使用して複数の関数呼び出しをオーケストレーションして、スケーラブルなデータ処理を実現することで、大規模なデータセットを処理するLLMのコスト、速度、潜在的なデータ損失の問題を克服します。これには、現在初期開発段階にある、安全でステートレスなAIランタイム環境が必要です。

Devstral:オープンソースLLMがソフトウェアエンジニアリングベンチマークでGPT-4.1-miniを凌駕

2025-05-21
Devstral:オープンソースLLMがソフトウェアエンジニアリングベンチマークでGPT-4.1-miniを凌駕

Mistral AIとAll Hands AIが共同で、ソフトウェアエンジニアリングタスクのためのエージェンティックな大規模言語モデル(LLM)であるDevstralをリリースしました。DevstralはSWE-Bench Verifiedベンチマークで優れた性能を発揮し、46.8%を超えるスコアを獲得、以前のオープンソースモデルを6%以上上回り、GPT-4.1-miniをも凌駕しました。大規模なコードベースにおけるコンテキスト関係の理解や微妙なバグの特定など、複雑なソフトウェアエンジニアリング問題に対処できます。Devstralは軽量で、単体のRTX 4090または32GB RAM搭載のMacで動作し、ローカル展開、エンタープライズ利用、Copilot統合をサポートしています。このモデルはオープンソースであり、APIと様々なダウンロード方法で提供されています。

開発

CRDTやOTを使わない協調的なテキスト編集

2025-05-21

この記事では、コンフリクトフリー複製データ型(CRDT)やオペレーション変換(OT)の複雑さを回避する、協調的なテキスト編集の新しいアプローチを紹介します。基本的な考え方は、各文字にグローバルに一意なIDを割り当て、「後に挿入」操作を使用することです。サーバーはこれらの操作に基づいて状態を文字通り更新し、クライアントは楽観的なローカル更新のためにサーバーの調整を使用します。このアプローチはCRDT/OTよりもシンプルで柔軟性があり、リッチテキストの処理やアクセス制御などのカスタム操作や機能を可能にします。付属のnpmライブラリであるArticulatedが実装を支援します。

開発 共同編集

Windows 11のクロスデバイスレジューム:中断されたエクスペリエンスに別れを告げる

2025-05-21
Windows 11のクロスデバイスレジューム:中断されたエクスペリエンスに別れを告げる

MicrosoftはBuild 2025で、AppleのHandoff機能に似たWindows 11の新しいクロスデバイスレジューム機能を発表しました。これにより、開発者はアプリの使用をデバイス間でシームレスに継続できます。デモではSpotifyが紹介され、ユーザーはスマートフォンで中断した位置からWindows PCで音楽の再生を再開できます。WhatsAppも紹介されました。この機能は、Project Romeの後継と思われるもので、デバイス間のよりスムーズなエクスペリエンスと、サードパーティ開発者にとってWindowsでのアプリの発見可能性の向上を約束しています。

Rubyにおけるブロック、Proc、ラムダ:クロージャにおける微妙な違い

2025-05-21
Rubyにおけるブロック、Proc、ラムダ:クロージャにおける微妙な違い

この記事では、Rubyにおけるブロック、Proc、ラムダの違いを詳しく解説します。これらはすべてコードをグループ化して実行するためのものですが、微妙な違いがあります。Procはオブジェクトであり、変数に代入したり、メソッドを呼び出したりできますが、ブロックはメソッド呼び出しの構文の一部にすぎません。メソッド呼び出しではブロックは最大1つしか使用できませんが、Procは複数使用できます。ラムダは引数の数をチェックしますが、Procはチェックしません。また、ラムダとProcは`return`キーワードの扱いが異なります。この記事では、クロージャ、Procとラムダの名前の由来、ラムダ計算と無名関数についても簡単に説明します。

開発

リンク時最適化(LTO):コンパイラ最適化の次のレベル?

2025-05-21
リンク時最適化(LTO):コンパイラ最適化の次のレベル?

この記事では、リンク時最適化(LTO)という技術について考察しています。LTOは、リンク段階で最適化を行うことでプログラムのパフォーマンスを向上させる技術です。従来のコンパイラは個々のファイル内で最適化を行うのに対し、LTOは複数のファイルにまたがってより包括的な最適化(関数インライン化やコードの局所性の向上など)を行うことができます。LTOは大きなパフォーマンス向上をもたらす可能性がありますが(ProjectXプロジェクトのテストでは実行時間が9.2%短縮され、バイナリサイズが平均20%減少)、コンパイルとリンクに時間がかかり、より多くのメモリを必要とするという欠点もあります。著者はProjectXとffmpegの2つのプロジェクトにおける実験結果を比較することで、LTOの長所と短所を明らかにし、積極的に速度最適化されていないプロジェクトではLTOを試してみることを提案しています。最終的なパフォーマンス向上はプロジェクト固有であると結論づけています。

evolved.lua:Luaのための高速で柔軟なECSライブラリ

2025-05-21
evolved.lua:Luaのための高速で柔軟なECSライブラリ

evolved.luaはLua用の高速で柔軟なエンティティ・コンポーネント・システム(ECS)ライブラリです。アーキタイプベースのアプローチを使用してエンティティとコンポーネントを格納し、効率的な反復処理のために配列構造(SoA)を使用します。クエリ、遅延操作、バッチ操作、エンティティビルダーなどの機能をサポートしており、複雑なシステムの作成を簡素化します。luarocksでインストールするか、リポジトリをクローンしてください。ドキュメントには概要、例、チートシートが含まれています。

開発
1 2 80 81 82 84 86 87 88 214 215