Category: 開発

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

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

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

開発

Racket v8.17リリース:パフォーマンス向上と新機能

2025-05-17

プログラミング言語Racketのバージョン8.17がリリースされました!このリリースでは、より軽量化されたDrRacketコアパッケージ、Typed Racketでのツリーリストのサポート、強化されたパッケージマネージャー、数値関数の精度の向上、Windowsターミナルでのマウスイベントサポートなど、多くの改善が加えられています。さらに、HTTPクライアント、JSON処理、Redexライブラリも最適化されています。このアップデートは、多くの開発者からの貢献によって実現した、活気のあるRacketコミュニティの証です。

開発

ポケットサイズの生産性:スマホでフルLinuxデスクトップを実行

2025-05-17
ポケットサイズの生産性:スマホでフルLinuxデスクトップを実行

最近の2週間の旅行のために、著者はPixel 8 Pro、Xreal Air 2 Pro ARグラス、折りたたみキーボードを使って、完全なLinuxデスクトップ環境を構築しました。Android上のchrootでarm64バイナリを実行することで、NeovimやFlutterなどの開発ツールを使用し、カフェ、公園、さらには飛行機からでも作業することができました。設定には、スマホのroot化や適切なLinuxディストロの選択(Void Linuxが最適でした)といった複雑な手順がありましたが、この超ポータブルなワークステーションは、比類のない自由と柔軟性を提供し、開発者をデスクから解放します。

開発

Mystical:PostScriptの魔法陣ビジュアライゼーション

2025-05-17

Mysticalは、PostScriptコードを魔法陣のようなリング構造で視覚化する新しいプログラミング言語です。プログラムはリング構造で構成され、実行可能な配列、実行不可能な配列、辞書という3種類のリングが含まれ、それぞれが独自の視覚表現を持っています。演算子、変数、キーワードは、リング内のテキストと組み合わされたシンボル(シジル)で表されます。Mysticalは現在、専用のインタープリターを持っていないため、視覚化されたコードを実行するには、手動でPostScriptコードに変換する必要があります。

GitHub Diffの脆弱性:Unicode文字置換の悪用

2025-05-17
GitHub Diffの脆弱性:Unicode文字置換の悪用

curlプロジェクトの貢献者であるJames Fullerが、GitHubのdiffビューアにおける脆弱性を発見しました。悪意のある攻撃者は、視覚的に同一のUnicode文字でASCII文字を置き換えることで、コードを気付かれずに変更できます。これにより、URLの改ざんなど、深刻な結果につながる可能性があります。GitHubのdiffビューアは警告を出さなかったものの、Giteaなどの他のプラットフォームはこうした変更を指摘しました。curlプロジェクトは、悪意のあるUnicode文字を検出するためのCIチェックを実装し、UTF-8シーケンスをクリーンアップすることで対応しました。これは、潜在的な攻撃を防止するための積極的なコードセキュリティ対策の必要性を強調しています。

Basilisk IIの黒画面バグ:12年にわたるデバッグの旅

2025-05-17

12年前、Basilisk IIエミュレータの黒画面バグが、新しいバージョンのWindowsユーザーを悩ませました。著者は綿密なデバッグを通じて、この問題が微妙なメモリ割り当ての詳細に起因することを突き止めました。Windowsでの2回のメモリ割り当ての順序が、エミュレータのROMのロードを失敗させていたのです。メモリ割り当てコードの修正によってこの長年の問題が解決され、デバッグスキルとOSに対する深い理解が示されました。

開発

CSS contrast-color(): アクセシビリティのための自動色コントラスト

2025-05-17
CSS contrast-color(): アクセシビリティのための自動色コントラスト

CSSの新しい`contrast-color()`関数は、指定された背景色に対して自動的に黒または白のテキストを選択することで、色の選択を簡素化します。この記事では、その使用方法、コントラスト計算のためのWCAG 2.1とAPCAアルゴリズムの比較、アクセシビリティ向上のための`prefers-contrast`メディアクエリの使い方を詳しく説明します。現在、黒と白に限定されていますが、将来のバージョンでは、よりカスタマイズ可能なオプションが提供される可能性があります。この関数は、開発を簡素化し、特に複数の色の状態を管理する場合にアクセシビリティを向上させます。

Rust 10周年:コミュニティとインフラストラクチャの物語

2025-05-17
Rust 10周年:コミュニティとインフラストラクチャの物語

Rustプログラミング言語の10周年を迎え、最初の作者であるGraydon Hoareがその道のりを振り返ります。これは単なるプログラミング言語の話ではなく、巨大なコミュニティが共有技術インフラストラクチャを構築・維持する物語です。Rustの成功は、堅牢なインフラストラクチャの必要性と、Mozillaなどの組織による長期的な投資、そして何千人ものボランティアの貢献から生まれています。Rustはシンプルなプロトタイプから、巨大なエコシステムと幅広い用途を持つ強力な言語へと進化しました。未来に向けては、人材の継続的な獲得、安定性と互換性の維持、さらなる品質向上が必要です。

開発

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

2025-05-17
arXivLabs:コミュニティとの共同作業による実験プロジェクト

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

開発

OBNC: Oberonコンパイラ

2025-05-17

OBNCは、Niklaus Wirthによるプログラミング言語Oberonのためのコンパイラで、2016年の最終版を実装しています。Oberonで書かれたソースコードを低レベルプログラミング言語Cに変換します。変換されたコードは、ホストオペレーティングシステムのCコンパイラとリンカを使用してコンパイルおよびリンクされます。ビルドコマンドobncはこれらのタスクをすべて実行し、どのファイルをコンパイルまたは再コンパイルする必要があるかを追跡します。コンパイラはGNU General Public Licenseの下でリリースされ、ライブラリはMozilla Public Licenseの下でリリースされます。Mozillaライセンスを使用すると、OBNCでコンパイルされたOberonプロジェクトは、任意のライセンスでリリースできます。ソースパッケージobncには、ビルドツール、ドキュメントジェネレータ、The Oakwood Guidelines for Oberon-2 Compiler Developersで定義された7つのモジュールからなる小さな基本ライブラリが含まれています。また、コマンドライン引数や環境変数のアクセス、標準エラーストリームへの出力、数値と文字列の相互変換、トラップハンドラのカスタマイズのためのモジュールを基本ライブラリに拡張する(非標準)ライブラリextが含まれています。extライブラリは以前は別のパッケージとして配布されていましたが、利便性のためにメインパッケージに含まれるようになりました。OBNCはCで実装されており、POSIX互換のオペレーティングシステムであればどれでもコンパイルできるはずです。obncをビルドするには、Boehm-Demers-WeiserガベージコレクタGCも必要です。さらに詳しい指示は、パッケージのルートディレクトリのREADMEファイルに記載されています。MS Windowsユーザー向けには、すべての依存関係(GC、SDL、Gawk、TCC)が含まれたOBNCのプリコンパイルバージョンもあります。注: OBNCバージョン0.15以前で生成された出力ファイルは、OBNC 0.17と互換性がありません。以前のバージョンを使用していた場合は、モジュールを再コンパイルする必要があります。新しいバージョンを使用する前に、モジュールディレクトリ内の生成された.obncディレクトリを削除してください。

開発

N64におけるリアルタイムライティングとノーマルマッピング:驚異的なリバースエンジニアリングの偉業

2025-05-17

この記事では、任天堂64でリアルタイムライティングとノーマルマッピングを実現する驚くべき技術について説明しています。パレットテクスチャとCPUサイドシェーディングを巧みに活用することで、作者はN64のハードウェアの制限を回避し、驚くほど印象的なビジュアルを実現しました。この技術は、拡散と法線情報を共有パレットに圧縮し、実行時にCPUを介してパレットを更新してライティング効果をシミュレートするというものです。点光源や影のサポートがないなど、いくつかの制限はありますが、その革新的な性質は注目に値し、N64プラットフォームでのグラフィックレンダリングに新たな可能性を開きます。

開発

Meta、Rust製のPython型チェッカー「Pyrefly」をオープンソース化

2025-05-17
Meta、Rust製のPython型チェッカー「Pyrefly」をオープンソース化

Metaは、Rustで構築されたオープンソースのPython型チェッカーおよびIDE拡張機能であるPyreflyのアルファ版をリリースしました。Pyreflyは、Pythonコードの型の一貫性を向上させ、実行前にエラーを早期に検出することを目的としています。IDE統合とCLI使用をサポートし、パフォーマンスと型推論を優先し、注釈のないコードでも効率的に動作します。MetaのPyreを進化させたPyreflyは、より強力で拡張性の高い型チェッカーを目指しており、Pythonコミュニティと協力してPython型システムの改善に取り組んでいます。

開発

NixOS:完璧なLinuxディストロ?1年間の苦闘と教訓

2025-05-17
NixOS:完璧なLinuxディストロ?1年間の苦闘と教訓

私はNixOSの、単一のコード設定で完璧なシステム再現性を約束する謳い文句に惹かれました。しかし1年後、私は諦めました。学習曲線が急峻で、ドキュメントは不十分、エラーメッセージは分かりにくく、同じことをするのに無数の方法があります。安定したシステムを作成できますが、Thunderboltドックの互換性問題や複数のテクノロジースタックにまたがる開発環境の構築など、数え切れないほどの時間、問題と格闘しました。そこで、Fedora SilverblueベースのBazziteとBluefinに移行しました。これらはFlatpak、Homebrew、Distroboxにより、よりユーザーフレンドリーな体験を提供しつつ、不変性のメリットも維持しています。NixOSは再現性が最も重要なサーバー環境では優れていますが、一般的なデスクトップユーザーにとっては、高い学習コストと複雑さは割に合いません。重要な教訓は、時に「気にしない」ということが、システム管理においても有効なアプローチであるということです。

効率的なコードのための2つの経験則

2025-05-17

この記事では、コードの効率を向上させるための2つの実用的なヒントを紹介します。それは、`if`条件を上に移動し、`for`ループを下に移動することです。`if`条件を呼び出し関数に移動することで、分岐が減り、制御フローが簡素化され、可読性が向上します。`for`ループをバッチデータが処理される場所に移動することで、バッチ処理の利点を活用し、パフォーマンスが向上し、ベクトル化が可能になる可能性があります。これらの2つのヒントは相補的な関係にあり、特に大量のデータを処理する場合に、コードの効率を効果的に向上させます。

開発

計算幾何学における75以上の未解決問題

2025-05-17

オープン問題プロジェクトのウェブサイトは、計算幾何学および関連分野における75以上の未解決問題をまとめたものです。2001年に30個の初期の問題から始まり、現在は凸包、グラフ理論、ボロノイ図などのトピック別に分類された包括的なリソースとなっています。新しい投稿の受付は終了していますが、既存の問題、特に解決済みの問題(完全にまたは部分的に)の更新を奨励しており、分野の進歩と協調を促進しています。

Starina OSにおけるRISC-Vハイパーバイザーの構築:Hello WorldからLinuxカーネル起動まで

2025-05-17
Starina OSにおけるRISC-Vハイパーバイザーの構築:Hello WorldからLinuxカーネル起動まで

この記事では、Starinaオペレーティングシステム内で軽量なRISC-V H拡張ベースのハイパーバイザーを構築した著者の経験について説明しています。QEMUによるRISC-V H拡張のエミュレーションを活用し、ゲストモードへの移行、システムコールの処理、簡単なHello Worldプログラムの実行、そして最終的にLinuxカーネルの起動を段階的に実装しました。ページテーブル管理、デバイスツリーの設定、タイマーサポート、MMIOなどの課題を克服し、詳細な手順と解決策を示しています。そして、Starinaハイパーバイザー上でLinuxが正常に起動したことを結論づけています。

開発

Publisher:Malloyのためのオープンソースセマンティックモデルサーバー

2025-05-17
Publisher:Malloyのためのオープンソースセマンティックモデルサーバー

Publisherは、Malloyデータ言語に基づいて構築されたオープンソースのセマンティックモデルサーバーです。データの背後にある意味、関係、コンテキストを定義する豊富なセマンティックデータモデルを作成し、サーバーインターフェースを介して公開します。アプリケーション、AIエージェント、ユーザーは、Malloyモデルで定義された共有された理解を活用して、データを一貫して信頼性の高い方法でクエリできます。Publisherは、データの意味が不明瞭な場合の信頼できない回答という問題を解決します。Malloyクエリを使用して、それをバックグラウンドでSQLにコンパイルし、すべてのツールでデータの意味を再定義することなく、信頼できる回答を提供します。主要な3つのコンポーネント:サーバー、SDK、および参照アプリケーションで構成され、さまざまなデータベースとAIアプリケーションをサポートしています。

Popcorn: ブラウザでElixirを実行

2025-05-17

Popcornは、Webブラウザ内でElixirコードを実行できる新しいライブラリです。AtomVMランタイムを利用して、コンパイル済みのElixirコードをクライアントサイドで実行し、ElixirとJavaScript間のインタラクション、シリアライゼーション、通信のためのAPIを提供しながら、ブラウザのレスポンシブネスを確保します。現在開発中であり、APIはまだ不安定ですが、シンプルなElixir REPL、インタラクティブなチュートリアル、ライフゲームの実装という3つのライブ例が紹介されています。開発者は、`mix.exs`に依存関係を追加し、JSとElixir WASMのエントリポイントを設定することで、Popcornの使用を開始できます。メッセージパッシングを通じてJSとElixirを接続し、Elixirから直接JSコードを実行できます。Elixir側は`Popcorn.Wasm`モジュールを使用し、JS側は`Popcorn`クラスを使用します。

開発

MCP:急速な普及、成長の課題、そして行動喚起

2025-05-17
MCP:急速な普及、成長の課題、そして行動喚起

この記事は、LLMからツールを呼び出すための標準であるMCPプロトコルの批判に対する反論です。著者は、批判がWebSocketsなどのトランスポートメカニズムに焦点を当てすぎている一方で、MCPの中核となる価値、つまりOAuth 2.0認証とLLMが現実世界と対話できる機能を見過ごしていると主張しています。ツールのセキュリティやマルチテナントサーバーの互換性などの問題を認めつつ、MCPの急速な普及と、これらの課題に対処するためのコミュニティの努力を強調しています。最後に、MCPの安全で信頼できる未来を形作るために、開発者に行動を促しています。

開発

斬新なオペレーティングシステムのカタログ:コンピューティングの未来を再考する

2025-05-17
斬新なオペレーティングシステムのカタログ:コンピューティングの未来を再考する

LLMのブームの後、新しいオペレーティングシステムを作成する波が到来しました。この記事では、UXN/Varvaraパーソナルコンピューティングスタック、Web研究指向のNette.io OS、InterimやChrysaLispなどのLispベースのシステムなど、いくつかのそのようなプロジェクトをリストアップしています。これらのプロジェクトは、DesktopNeoによるデスクトップインターフェースの再考や、MercuryOSによるインテンションベースのOS設計など、オペレーティングシステム設計における革新的なアプローチを示しています。これらの取り組みは、コンピューティングの未来への大胆な探求であり、オペレーティングシステムのイノベーションへの情熱を再燃させています。

開発

Fahmatrix:Java向けの軽量Pandas代替ライブラリ

2025-05-17
Fahmatrix:Java向けの軽量Pandas代替ライブラリ

Fahmatrixは、PythonのPandasに着想を得て、JVM上でのデータ理解を容易にすることを目的とした、軽量で最新のJavaライブラリです。直感的なAPIで、CSVファイルの読み込みとプレビュー、行のフィルタリングと列の選択、そして今後追加される集計、グループ化、ソートなどの機能を提供します。Fahmatrixは現在外部依存関係がなく、GitHubからJARファイルをダウンロードするか、Maven/Gradleを使用して利用できます(今後のバージョンで追加予定)。主な機能には、CSVファイルのDataFrameへの読み込み、データの整形表示、head()/tail()関数、様々な集計関数、行のフィルタリングと列の選択、groupByとピボットテーブル、データのエクスポート、型推論と変換などがあります。Fahmatrixは、JVMを離れることなく、Java開発者が効率的に表形式データを取り扱うためのツールを提供します。

開発

Home Assistant:カーネル開発者のホームオートメーション体験

2025-05-17

カーネル開発者が、オープンソースのホームオートメーションシステムであるHome Assistantを1年間使用した経験について詳述しています。この記事では、Home Assistantプロジェクトの健全性、ビジネスモデルとオープンソースコミュニティのバランス、活発な開発者コミュニティ、Open Home Foundationへの移行について検討しています。公式には専用OSの使用が推奨されていますが、標準的なLinuxシステムへのインストールも比較的簡単です。ただし、ある程度の技術的な知識は必要です。Home Assistantは、統合を通じて様々な家庭用デバイスを接続しますが、その品質は様々です。全体として強力な機能を提供しています。セキュリティ上の懸念事項についても触れられており、潜在的なリスクを認識しつつ、プロジェクトのセキュリティポリシーと監査メカニズムによって脆弱性が軽減されている点を指摘しています。最終的にHome Assistantは、ユーザーに家庭ネットワークとデバイスの制御権を与え、クラウドサービスに代わる魅力的な選択肢を提供しています。

開発

rapidhash:非常に高速で高品質、プラットフォームに依存しないハッシュ関数

2025-05-17
rapidhash:非常に高速で高品質、プラットフォームに依存しないハッシュ関数

rapidhashは、wyhashの公式後継者であり、非常に高速で高品質、プラットフォームに依存しないハッシュ関数です。Apple M4 CPUでは70GB/秒を超える速度を達成し、SMHasherとSMHasher3のすべてのテストに合格しています。AMD64とAArch64向けに最適化されており、gcc、clang、icx、MSVCと互換性があります。マシン固有の命令セットに依存しないため、移植性にも優れています。衝突確率は非常に低く、理論上の理想値に近づいています。そのため、パフォーマンスが重要なアプリケーションに最適です。

開発

xtool:Xcodeのクロスプラットフォーム代替品

2025-05-17
xtool:Xcodeのクロスプラットフォーム代替品

xtoolは、オープンスタンダードを使用してXcodeのコア機能を複製するクロスプラットフォームツール(Linux / WSL / macOS)です。Xcodeを使用せずにSwiftPMでiOSアプリをビルドおよびデプロイします。主な機能には、SwiftPMパッケージをiOSアプリにビルドすること、アプリの署名とインストール、Apple Developer Servicesとのプログラムによるインタラクションが含まれます。独自のアプリ内でAppleサービスとiOSデバイスとやり取りするためのXKitライブラリも提供しています。

開発

マイクロソフトの新しいコマンドパレット:PowerToys Runの後継

2025-05-17
マイクロソフトの新しいコマンドパレット:PowerToys Runの後継

マイクロソフトは、PowerToys Runの後継として、Windows向けの新しいランチャーアプリ「Command Palette」を静かにリリースしました。このアップデートされたツールは、コマンド、アプリ、開発ツールへの迅速なアクセスを提供し、アプリ、ファイル、フォルダの検索機能、計算、システムコマンド、ウェブサイト/ウェブ検索機能などを備えています。重要なのは、Command Paletteが拡張可能で、ユーザーがカスタムコマンドや機能を追加できるため、開発者やパワーユーザーにとって強力なツールになることです。ウィンドウ切り替えのためのWindow Walker機能も統合されています。

開発

Home Assistant:カーネル開発者のスマートホーム自由への道

2025-05-17

カーネル開発者が、オープンソースのホームオートメーションシステムであるHome Assistantを使用してスマートホームを管理した経験を語っています。この記事では、Home Assistantがどのように現実世界の課題を解決したかを詳細に説明しています。SunPowerの倒産後に機能しなくなった太陽光パネルの監視システムの代替、仮想センサーを作成して家庭のエネルギー消費量を計算する「ヘルパー」の使用、クラウドに依存せずにMitsubishiヒートポンプをローカルで制御すること、そしてRefoss電力モニターを使用して家電製品の電力消費量を正確に追跡し、問題を診断することなどです。Home Assistantは完全な制御を提供しますが、技術的な学習曲線が必要です。

開発

Rustls:メモリセーフなTLS実装における大幅なパフォーマンス向上

2025-05-16
Rustls:メモリセーフなTLS実装における大幅なパフォーマンス向上

パフォーマンスを重視したメモリセーフなTLS実装であるRustlsが、大幅なパフォーマンス向上を実現しました。セッション再開メカニズムの最適化、特に、同時サーバー接続ハンドシェイクにおける競合を軽減するためのミューテックスの置換、およびデフォルトで送信されるステートレス再開チケット数の削減により、Rustls 0.23.17はマルチコアサーバー上で劇的なパフォーマンス向上を示し、ほぼ線形スケーラビリティを実現しています。コアTLSハンドシェイク処理のサーバーレイテンシは、ベンチマークにおいてOpenSSLのおよそ2倍低くなっています。これにより、Rustlsは非常に競争力のあるTLSソリューションとなり、インターネットにより安全で効率的な接続を提供します。

開発

94行のRubyコードでコード編集エージェントを作成する

2025-05-16

この記事では、コード編集エージェントの作成における困難さを検証し、RubyLLM gemを用いてわずか94行のRubyコードで完全に機能するエージェントを作成したことを示しています。このエージェントは、大規模言語モデル(LLM)と3つのツール(ファイルの読み込み、ファイルの一覧表示、ファイルの編集)を利用してコード編集タスクを実行します。著者は各ツールの実装の詳細を説明し、ASCII Minesweeperゲームを作成することでエージェントの機能を実証しています。さらに、シェルコマンド実行ツールを追加することで機能が強化され、自己テスト可能なコード編集エージェントが実現しました。

開発

Solidis: 高性能でSOLID原則に基づいたRedis RESPクライアント

2025-05-16
Solidis: 高性能でSOLID原則に基づいたRedis RESPクライアント

Solidisは、SOLID原則に基づいて構築され、依存関係がなく、エンタープライズグレードのパフォーマンスを重視した最新のRESPクライアントです。RESP2とRESP3プロトコルをサポートし、最新のJavaScript/TypeScriptアプリケーション向けに最適化されています。Solidisは、バンドルサイズを最小限に抑えた基本クライアントと、すべてのRESPコマンドがプリロードされた機能豊富なクライアントの2つのクライアント実装を提供しています。トランザクション、パイプライン、Pub/Sub、自動再接続などの高度な機能もサポートし、堅牢な型安全性と拡張性を備えています。

開発

Google Closure Libraryの復活:ClojureScriptの安定性を守る

2025-05-16

Google Closure Library(GCL)の安定性は2019年頃から低下し始め、最終的にGoogleは昨年8月にメンテナンスを停止しました。ClojureScriptのエコシステムを維持するために、あるチームがGCLを引き継ぎ、いくつかの破壊的な変更を元に戻し、最新のGoogle Closure Compilerリリースと互換性を持たせました。これにより、多くの古いClojureScriptライブラリが再び動作するようになり、ClojureScriptがブラウザ以外にも様々なJavaScript環境で利用できる堅実な基盤を提供します。大規模なフレームワークに依存することなく、DOM操作、国際化、アニメーションなど、様々なタスクをこなせる強力なツールとなります。

開発
1 2 85 86 87 89 91 92 93 214 215