Category: 開発

arXivLabs:コミュニティコラボレーターとの実験プロジェクト

2025-08-21
arXivLabs:コミュニティコラボレーターとの実験プロジェクト

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

開発

デバッグビュー:プログラマーの時間を節約

2025-08-21

プログラマーのソフィーは、Unisonプロジェクトでバグに遭遇し、問題の追跡に複雑なSQLクエリが必要になりました。著者は、デバッグプロセスを簡素化するためのソリューションとして、データベースビューの作成を紹介しています。事前に定義されたビューは複数のテーブルを結合し、より読みやすい形式でデータを表示することで、各デバッグセッションで複雑なJOIN文を繰り返し記述する必要がなくなります。このアプローチは、特定のクエリのパフォーマンスにわずかに影響を与える可能性がありますが、デバッグ効率を大幅に向上させ、開発時間を節約します。

開発

D3.js:冗長なコードの裏にある芸術性

2025-08-21
D3.js:冗長なコードの裏にある芸術性

D3.jsの学習は、山登りのようなものです。最初は、その冗長なコードと複雑な構文に圧倒されるかもしれません。単純な線を引くだけでも、かなりの量のコードが必要になります。著者は、箱ひげ図を描く例(194行のコード)を用いて、D3.jsの強力な柔軟性とカスタマイズ性を示しています。D3.jsは単なる描画ツールではなく、開発者がデータ視覚化の芸術を生み出すための筆であり、SVG要素を精密に制御して、複雑で独特な視覚化効果を実現し、最終的には既製のツールの限界を超えることを可能にします。

開発

レイクハウスにおける階層化戦略:共有階層化 vs. 物質化

2025-08-21
レイクハウスにおける階層化戦略:共有階層化 vs. 物質化

この記事では、レイクハウスアーキテクチャにおけるデータ階層化戦略を探ります。共有階層への直接アクセスは信頼性の問題を引き起こす可能性があります。APIアクセスの方が好ましいです。データライフサイクル管理には、プライマリとセカンダリのストレージの場所を調整する標準的なメタデータサービスが必要です。スキーマ管理はプライマリシステムによって制御され、セカンダリストレージとの互換性を確保する必要があります。共有階層化と物質化のどちらを選択するかは、スティッチング/変換ロジックの場所(クライアント側またはサーバー側)とそれぞれのメリット/デメリットによって異なります。クライアント側のスティッチングでは、違いはわずかです。サーバー側のスティッチングでは、メタデータのメンテナンスとリアルタイムデータ処理の統合を注意深く検討する必要があります。

ブラウザでCommon Lispを実行する:Web Embeddable Common Lispプロジェクトの進捗

2025-08-21

Web Embeddable Common Lisp (WECL)プロジェクトは、Common Lispのランタイム環境をウェブブラウザに搭載することを目指しています。現在、このプロジェクトでは``タグを使用してCommon Lispコードを実行でき、Common LispとJavaScript間の低レベルな相互作用のためにJS-FFIを提供しています。さらに、LIME/SLUGにより、EmacsからWECLとやり取りできます。しかし、このプロジェクトはまだ初期段階にあり、スレッドサポートの不足やパフォーマンス最適化の余地など、いくつかの制限があります。将来の計画には、これらの問題に対処するためにWASIへの移植が含まれています。

開発

Podman、Compose、BuildKitを使ったデーモンレスDocker Composeビルド

2025-08-21

Dockerがnftablesと互換性がないことと、rootレス、デーモンレスなアプローチを好むため、著者はPodmanを使用してDocker Composeプロジェクトを構築しています。この記事では、公式のDocker Compose CLIとpodman-composeの両方の使用における欠点を検討し、最終的にPodmanソケットを有効化し、Dockerコンテキストを作成することで、Podman下でDocker Compose CLIとBuildKitを使用してビルドを実現しています。BuildKitデーモンを回避するために、著者はBakahというツールを開発しました。このツールは、ComposeプロジェクトをBake JSONファイルに変換し、Buildahを使用してビルドを行い、完全にデーモンレスなビルドプロセスを実現しています。

開発

あなたのMavericksを活性化:古いシステムに新たな命を吹き込む

2025-08-21

このガイドは、古くなったOS X Mavericksシステムに活気を取り戻す方法を示します。システムのアップデートを行う簡単なスクリプト、時代遅れのブラウザを最新のFirefox(Firefox Dynasty)に置き換え、Aqua Proxyを使用してHTTPS互換性の問題を解決し、新しい絵文字を追加し、Time Machineでバックアップを設定します。また、Chess、iTunes、iBooksなどの不要なプリインストールアプリを削除して、パーソナライズされたエクスペリエンスを実現する方法も説明します。全体的なプロセスは簡単で、Mavericksシステムをよりスムーズに、そしてあなたのニーズに合わせて調整されたものにします。

開発

CSSにおける無限大:ブラウザ解釈の奇妙な旅

2025-08-21
CSSにおける無限大:ブラウザ解釈の奇妙な旅

この記事では、CSS計算関数における`infinity`キーワードの奇妙な挙動を探ります。`text-indent`、`word-spacing`、`letter-spacing`などのプロパティに`infinity`を適用することで、著者は、異なるブラウザが無限値を処理する方法における矛盾を発見しました。ただし、視覚的な結果は一貫して水平方向のオーバーフローにつながります。さらに興味深いことに、`z-index`で使用する場合、`infinity`の計算値はすべてのブラウザで最大整数値に制限され、予期しないスタッキング順序になります。最後に、著者はアニメーションの期間に`infinity`を試行し、それが非常に長い時間に翻訳されること、さらにはSafariでページが応答しなくなることを見つけました。要約すると、この実験は、ブラウザがCSSにおける無限値を処理するさまざまな戦略、およびいくつかの驚くべき副作用を示しています。

開発

OCamlにおけるエレガントな依存性注入:オブジェクト指向アプローチ

2025-08-21

この記事では、OCamlにおける依存性注入の様々なアプローチを検討し、新しいオブジェクト指向ソリューションを提案しています。著者は、ユーザー定義の効果と、第一級値としてのモジュールを使用する既存のアプローチの欠点を対比し、現実世界のアプリケーションでは冗長でエラーが発生しやすいことを主張しています。新しいアプローチは、OCamlの強力なオブジェクトモデルを活用し、構造化オブジェクト型や行変数などの機能を使用して、タイプセーフな依存性注入を容易に構成および拡張できるようにします。この記事では、単純な例とより複雑なシナリオを通してこのアプローチのエレガンスと保守性を示し、他のアプローチと比較を行い、最終的に、単純な依存性注入のシナリオではオブジェクト指向のアプローチを推奨しています。

LLDにおける謎の`d4d4`命令:トラップではなく条件付き分岐

2025-08-21

あるプログラマーが、逆アセンブルされたARMコードの中に多数の`d4d4`命令を発見しました。これらの命令は常に到達不能であり、LLVMのobjdumpでは-0x58への相対分岐として識別されます。実験と分析の結果、これらの命令はLLVMコンパイラではなく、LLDリンカによってオブジェクトファイルの境界のアラインメント中に挿入されていることがわかりました。LLDは`d4d4`をパディングとして使用しており、トラップ命令として意図されていますが、実際には条件付き分岐であり、Thumb命令セットでは相対ジャンプとして機能します。これはLLDのバグと考えられ、真のトラップではなく、予測不可能なジャンプを引き起こす可能性があります。GNUリンカはパディングにゼロを使用しており、この問題を回避しています。

開発

illumos Cafe:OS多様性のためのもう一つの居心地の良い場所

2025-08-21
illumos Cafe:OS多様性のためのもう一つの居心地の良い場所

BSD Cafeの成功を受けて、illumos Cafeプロジェクトが開始されました。BSD Cafeと同様の精神を持つillumos Cafeは、illumosベースのOS上で動作するサービスを提供し、その使いやすさを示し、オープンソースOSの多様性を促進することを目的としています。現在、Mastodonとsnacのインスタンスをホストしており、サービスの拡大を計画しています。このプロジェクトは、ポジティブで包括的な哲学を採用し、大企業の支配から自由な、自由で独立したコミュニティの創造を目指しています。

開発

ピュアCSS 3Dエンジン:HTML要素でリアルな3Dワールドを構築

2025-08-21
ピュアCSS 3Dエンジン:HTML要素でリアルな3Dワールドを構築

開発者が数ヶ月かけて、CSS 3D変換、HTML要素、JavaScriptのみを用いて、驚くほどリアルな3D環境デモを作成しました。このデモは、複雑なモデル、リアルなライティングとシャドウ、そして衝突検出を備えています。この記事では、長方形要素から3Dオブジェクトを作成する方法、グラデーションとcanvasを巧みに使用してライティングとシャドウ効果を実現する方法、高さマップに基づく衝突検出の方法など、技術的な詳細を説明しています。これは単なる技術的なショーケースではなく、3DグラフィックスにおけるCSSの可能性を大きく示すものです。

Blueskyアーキテクチャの深堀り:分散型ソーシャルネットワークの裏側

2025-08-21
Blueskyアーキテクチャの深堀り:分散型ソーシャルネットワークの裏側

この記事では、分散型ソーシャルネットワークBlueskyを支えるATProtoプロトコルのアーキテクチャを深く掘り下げます。レコード、ブロブ、レキシコン、DID、ハンドルなどのコアコンセプトを徹底的に解説し、PDS(パーソナルデータサーバー)、リレー、AppView、ラベラー、フィードジェネレーターなどのサーバーコンポーネントがどのように連携して動作するのかを詳細に説明します。また、ATProtoとFediverseの違いについても論じ、関連するSDK、ドキュメント、コミュニティリソースの概要を示し、開発者にとってBlueskyエコシステムを理解し、貢献するための包括的なガイドを提供します。

開発

Zedless:プライバシーとローカルファーストを重視したZedのフォーク

2025-08-21
Zedless:プライバシーとローカルファーストを重視したZedのフォーク

Zedlessは、プライバシーとローカルファーストを重視して設計されたZedのフォークで、現在開発中です。独自のプロプライエタリクラウドサービスへの依存、テレメトリ、自動クラッシュレポートを削除します。独自のインフラストラクチャの利用を重視し、ネットワークサービスのプロバイダーを設定できます(デフォルト値はなく、デフォルトで無効)。また、コントリビューターライセンス契約を避け、サードパーティの依存関係の適切なライセンスを保証します。

開発

Leanを用いたフェルマーの最終定理の形式化:協調的なオープンソースプロジェクト

2025-08-21

ケビン・バザード率いる国際的な協力プロジェクトは、Lean定理証明器を用いてフェルマーの最終定理を形式的に証明するという野心的な取り組みを行っています。英国工学物理科学研究会議の助成金を受けており、インペリアル・カレッジ・ロンドンを拠点としています。このプロジェクトは、コンピュータによる証明検証を通じて、数学における形式化と自動検証の可能性を探求し、将来の研究に影響を与えます。

SimpleIDE:Linuxに本格的なVB.NET開発環境をもたらす

2025-08-21
SimpleIDE:Linuxに本格的なVB.NET開発環境をもたらす

SimpleIDEは、.NET 8.0とGTK# 3を使用してLinux上で構築された、軽量でプロフェッショナルなVB.NET IDEです。VB.NETプロジェクト向けの最新の開発環境を提供し、複数ファイルのタブ編集、構文の強調表示、インテリジェントなコード補完、統合ビルドシステム、デバッグ機能、そしてClaude AIアシスタンスなどを備えています。さらに、SimpleIDEはGit統合、カスタマイズ可能なテーマ、豊富なキーボードショートカットも備えています。このオープンソースプロジェクトは、貢献を歓迎しています。

開発

Python f-string チートシート:文字列フォーマットの達人

2025-08-21

この記事では、Pythonのf-stringによる文字列フォーマットに関するチートシートを紹介します。数値、整数、文字列に対する様々なフォーマットオプション(埋め込み、幅、グルーピング、精度、タイプなど)を網羅しています。さらに、すべてのオブジェクトで共通の修飾子(!s、!r、!aなど)と、それらを他のフォーマット指定子と組み合わせる方法についても説明します。数値、整数、文字列のいずれを扱う場合でも、このチートシートを活用することで、Pythonのf-stringの力を簡単に使いこなせるようになり、コードの可読性と効率性が向上します。

UTCP 1.0.1:柔軟で拡張性の高いユニバーサルツール呼び出しプロトコル

2025-08-21
UTCP 1.0.1:柔軟で拡張性の高いユニバーサルツール呼び出しプロトコル

ユニバーサルツール呼び出しプロトコル(UTCP)1.0.1は、さまざまな通信プロトコルを介してツールを定義および操作するための、現代的で柔軟性が高く、スケーラブルな標準です。モジュール化されたコアとプラグインベースのアーキテクチャにより、拡張性、テスト容易性、パッケージングが向上しています。UTCPは、スケーラビリティ、相互運用性、使いやすさを重視しており、HTTP、SSE、CLIなどのプラグインを提供します。新しいバージョンでは、コアライブラリとオプションのプラグインを分離するアーキテクチャの再設計、改良された検索戦略、変数置換メカニズムが導入されています。

プログラミング言語の根本的な欠陥:データ対オブジェクト論争

2025-08-21
プログラミング言語の根本的な欠陥:データ対オブジェクト論争

著者は、既存のプログラミング言語がデータとオブジェクトの扱いにおいて根本的な欠陥を抱えていると主張しています。データ(例えば整数1)とオブジェクト(同一性と可変性を持つエンティティ)を区別する必要があると指摘しています。多くの言語は両者を明確に区別できず、コードの肥大化や設計上の課題につながっています。著者は、理想的な言語は開発者がデータまたはオブジェクト表現を明示的に選択し、適切なサポートを提供できると考えています。本稿では、JavaとHaskellを例に、オブジェクト指向言語と関数型言語におけるデータとオブジェクトへのアプローチを比較し、Erlangの利点を分析しています。結論として、プログラミング言語の設計において、データとオブジェクトをより明確に区別することで、効率性とコードの質を向上させるべきだと訴えています。

DiffMem:Gitベースの差分メモリによるAIエージェントの高度化

2025-08-21
DiffMem:Gitベースの差分メモリによるAIエージェントの高度化

DiffMemは、AIエージェントと会話システム向けに設計された軽量のGitベースのメモリバックエンドです。人間が読みやすいストレージにはMarkdownファイルを使用し、Gitを使用して差分による時間的進化を追跡し、高速で説明可能な検索にはインメモリBM25インデックスを使用します。このプロジェクトは、バージョン管理システムがAIアプリケーションにおける効率的でスケーラブルなメモリの基盤としてどのように機能するかを探る概念実証(PoC)です。DiffMemはメモリをバージョン管理されたリポジトリとして扱い、現在の状態と履歴の変更を分離します。これにより、エージェントは履歴データのオーバーヘッドなしでコンパクトで最新の表面をクエリおよび検索でき、必要に応じて進化を深く掘り下げることができます。従来のAIエージェント用メモリシステムが抱える課題、つまりスケーラビリティとクエリ効率の問題に対処し、人間が読みやすく、移植性が高く、監査可能なソリューションを提供します。

開発

失敗に終わった実験:Gitベースのコードレビューツール

2025-08-21
失敗に終わった実験:Gitベースのコードレビューツール

著者は、GitHubのコードレビュープロセスを改善するために、`git-review`というツールを試作しました。その中心的なアイデアは、コードレビューをリポジトリ内に保存されたコミットとして扱い、コード内のコメントを使用してレビューを行うというものでした。しかし、この実験は成功しませんでした。コードに直接コメントを追加することは非常に効率的でしたが、レビュー中のコードの変更は複雑で、特に競合の解決と`git push --force-with-lease`の使用による摩擦が問題となりました。著者は最終的にこのプロジェクトを放棄しましたが、コード内でのレビューという中心的なアイデアは価値があると信じており、Gitの改善によるコードレビューの将来的な可能性に期待しています。

開発

PlutoPrint:軽量Pythonライブラリ、HTML/XMLからPDFと画像を生成

2025-08-21
PlutoPrint:軽量Pythonライブラリ、HTML/XMLからPDFと画像を生成

PlutoPrintは、HTMLまたはXMLから高品質なPDFと画像を直接生成する軽量なPythonライブラリです。PlutoBookの堅牢なレンダリングエンジンをベースとしており、シンプルなAPIでレポート、請求書、またはビジュアルスナップショットを簡単に作成できます。コマンドラインとPython APIの両方で使用でき、WindowsとLinux 64ビットシステムにはプリビルドバイナリが用意されています。さらに、Matplotlibと統合して、グラフを生成し、PDFや画像に追加することもできます。

開発 PDF生成

AIがチップ設計に革命を起こす:専門家の意見

2025-08-20
AIがチップ設計に革命を起こす:専門家の意見

半導体エンジニアリングの専門家は、AIをチップ設計に適用してその価値を最大化し、設計プロセスに影響を与える方法について議論しました。彼らは、AIによってチップ設計が、広範なドメイン固有のものから、ドメインとサブドメインのより粒度の細かいアプローチへと移行すると予想しています。これは、さまざまな垂直市場(例:自動車またはミッションクリティカルなアプリケーション)の独自のニーズに対応するためです。AIツールは、プロセスを自動化し、デバッグ分析を改善し、最終的には完全に自律的なワークフロー(レベル5)を実現することを約束しており、ジュニアエンジニアへの依存を軽減する可能性があります。しかし、AIの信頼性を確保し、その意思決定プロセスをエンジニアにとって透明で理解しやすいものにするという課題が残っており、設計の品質と効率性を保証する必要があります。

開発

GoogleのPytypeプロジェクト、Python 3.12以降のサポート終了へ

2025-08-20
GoogleのPytypeプロジェクト、Python 3.12以降のサポート終了へ

GoogleのPython用静的型チェッカーであるPytypeの開発が終了に近づいています。2012年の開始以来、PytypeはGoogleの開発者に貢献し、Pythonの型システムに大きく貢献してきました。しかし、バイトコードベースの設計が新たな機能開発の制約となっているため、Googleは新たなアプローチに注力し、Python 3.12をサポートする最後のバージョンとします。チームは、すべての貢献者、特に10年間貢献してきたRebecca Chen氏に感謝の意を表します。Pythonの型システムは堅牢であるため、開発者は他の成熟したソリューションを探ることを推奨します。

開発

Luminal:検索ベースのコンパイルによる高性能ディープラーニングライブラリ

2025-08-20
Luminal:検索ベースのコンパイルによる高性能ディープラーニングライブラリ

Luminalは、検索ベースのコンパイルを用いて高性能を実現するディープラーニングライブラリです。そのコアは非常にミニマルで、わずか12個のプリミティブな演算子で構成されているにもかかわらず、Transformerや畳み込みニューラルネットワークなどの複雑なモデルをサポートできます。コンパイル時に積極的なカーネル融合と形状特異的なカーネルコンパイルを行うことで、Luminalは従来のRISCアーキテクチャの欠点を克服し、Flash Attentionなどの複雑な最適化を自動的に導き出します。静的コンパイルのアプローチによりランタイムオーバーヘッドを回避し、MetalとCUDAをサポートすることで、MacとNvidia GPU上で高速な実行が可能です。Llama 3 8Bなどのモデルで顕著な性能向上を示しています。

開発

React Flowで構築されたビジュアルドラムマシン

2025-08-20
React Flowで構築されたビジュアルドラムマシン

Strudel.cc、React Flowを使用して構築され、Tailwind CSSでスタイル設定されたビジュアルドラムマシンとパターンシーケンサーです。ドラッグアンドドロップインターフェースで楽器ノードとエフェクトノードを接続して、複雑な音楽パターンを作成します。さまざまな楽器とエフェクト、リアルタイムパターン編集、グループコントロール、Zustandを使用した状態管理による整理されたプロジェクト構造などが含まれています。包括的な入門ガイドも提供されています。

Zed IDE、コードコラボレーションに革命を起こすため3200万ドルのシリーズB資金調達

2025-08-20
Zed IDE、コードコラボレーションに革命を起こすため3200万ドルのシリーズB資金調達

超高速IDEであるZedは、Sequoia Capitalが主導する3200万ドルのシリーズB資金調達ラウンドを発表し、総資金調達額は4200万ドルを超えました。Zedのビジョンは、古くなったスナップショットや散在するツールを超えて、コードに関する会話をコード自体に直接つなげることで、ソフトウェア開発の方法を根本的に変えることです。そのため、彼らは、編集レベルの粒度でコードの進化を段階的に追跡する新しいオペレーションベースのバージョンコントロールシステムであるDeltaDBを構築しており、それをZedに統合して、人間とAIエージェント間のシームレスなコラボレーションを実現します。この投資により、コード、ディスカッション、AIアシスタンスが融合する協調的なワークスペースを作り出し、ソフトウェア開発の未来を再構築するというZedのミッションが促進されます。

typed-arrow: RustにおけるゼロランタイムオーバーヘッドのArrowスキーマ

2025-08-20
typed-arrow: RustにおけるゼロランタイムオーバーヘッドのArrowスキーマ

typed-arrowは、RustでArrowスキーマを宣言するための、強く型付けされた、完全にコンパイル時の方法を提供するRustライブラリです。Rustの型をarrow-rsの型付きビルダー/配列とarrow_schema::DataTypeに直接マッピングし、ランタイムでのDataTypeの切り替えを排除します。これにより、ゼロランタイムオーバーヘッド、単相化されたカラム構築、そして人間工学的なORMライクなAPIを実現します。このライブラリは、ネストされた構造体、リスト、辞書、タイムスタンプなど、幅広いデータ型をサポートし、効率的で安全なArrowデータ操作のための柔軟な構築方法を提供します。

開発

数学を使って3D空間でオブジェクトを動かす

2025-08-20
数学を使って3D空間でオブジェクトを動かす

この記事では、3D空間、特に球状らせん状の経路に沿ってオブジェクトを動かす方法を探ります。単純な円運動から始めて、正弦波と余弦波の関数を使用してオブジェクトのx、y、z座標を制御し、らせんやより複雑な軌跡を作成する方法を説明しています。中心となる概念は、パラメトリック方程式を使用することで、オブジェクトの3D位置を時間関数として定義することです。複雑な動的な効果に見えるものは、実際には単純な数学関数から導き出されています。

開発

OCamlエディタが大幅アップデート:強力なリファクタリング機能

2025-08-20
OCamlエディタが大幅アップデート:強力なリファクタリング機能

インターンシップ期間中、OCamlのMerlinコンパイラに強力なリファクタリング機能を追加しました。「トップレベル式への抽出」機能を最初に実装しました。この機能は、選択した式を新しい`let`バインディングに抽出します。定数、式(変数を使用する式を含む)、OCamlの純粋性に関する問題を巧みに処理します。Language Server Protocol(LSP)を介して、コードアクションとカスタムリクエストの2つのインタラクション方法で実装されており、PRが提出され、まもなくマージされる予定です。これは、OCamlのエディタ体験をJetBrains IDEに近づける大きな一歩であり、将来、より多くのリファクタリングツールを開発する予定です。

開発
1 2 20 21 22 24 26 27 28 214 215