Category: 開発

Xサーバー:GUIの影の英雄

2025-09-23
Xサーバー:GUIの影の英雄

Xサーバーはグラフィカルユーザーインターフェースの基盤です。クライアントアプリケーションからのリクエストを受け付け、ウィンドウを作成します。これらのウィンドウは、クライアントプログラムが描画できる仮想スクリーンです。Xサーバー(または個別のコンポジタ)は、ウィンドウマネージャーの指示に従って、実際のスクリーンにウィンドウを合成します。ウィンドウマネージャーは通常、ボタン、ドラッグ可能なタイトルバー、境界線などのグラフィックコントロールを介してユーザーと対話します。詳細については、Xorgメーリングリスト、Bugzilla、コードリポジトリをご覧ください。

開発

arXivLabs:コミュニティのコラボレーターとarXivの新機能を構築

2025-09-23
arXivLabs:コミュニティのコラボレーターとarXivの新機能を構築

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

開発

イラン人ソフトウェアエンジニアのオンライン・オデッセイ:制裁と検閲

2025-09-23
イラン人ソフトウェアエンジニアのオンライン・オデッセイ:制裁と検閲

イラン人のソフトウェアエンジニアが、制裁のためにMicrosoftが彼のアプリを削除したり、Notionが彼のデータを消去したり、他のウェブサイトがアクセスを禁止したりした経験について語っています。彼は、これらの企業が悪意を持っているのではなく、単に規則に従っているだけだと強調しています。しかし、彼はより多くの共感を訴え、これらの規制の人間的な影響を考慮するよう促しています。彼は、イランの現状への不満と自由のための運動への支持を表明して締めくくっています。

開発

zoxide: 超高速cdコマンド

2025-09-23
zoxide: 超高速cdコマンド

長いディレクトリパスを入力することにうんざりしていませんか?z と autojump にインスパイアされたスマートcdコマンドである zoxide は、ファイルのナビゲーションに革命を起こします。最も頻繁に使用するディレクトリを記憶し、数回のキーストロークでそれらにジャンプできます。主要なシェルをサポートし、インストールもデータのインポートも簡単です(autojump や fasd など)。効率を向上させ、面倒なナビゲーションに別れを告げましょう!

SWE-Bench Pro:ソフトウェアエンジニアリングにおけるLLM評価のための挑戦的なベンチマーク

2025-09-22
SWE-Bench Pro:ソフトウェアエンジニアリングにおけるLLM評価のための挑戦的なベンチマーク

SWE-Bench Proは、大規模言語モデル(LLM)とエージェントを長期的なソフトウェアエンジニアリングタスクで評価するための新しいベンチマークです。コードベースと課題が与えられると、モデルは問題を解決するパッチを生成する必要があります。SWE-Benchから着想を得ており、再現可能な評価のためにDockerとModalを使用します。評価スクリプトを実行するには、Docker環境とModalの認証情報を設定する必要があります。

開発

PostgreSQLをSQLiteのように扱う?大胆な試み

2025-09-22
PostgreSQLをSQLiteのように扱う?大胆な試み

著者は長年のSQLite愛好家で、その速度、シンプルさ、安定性を高く評価しています。しかし、SQLiteの拡張機能のエコシステムはPostgreSQLと比較して貧弱です。この記事では、ローカルのPostgreSQLインスタンスをSQLiteの代替として使用することの実現可能性を探求します。PostgreSQLの強力な拡張機能(pgvectorなど)を活用しながら、複雑なクラスタ構成を回避し、単一サーバー上でPostgreSQLを実行し、Unixソケット経由でアクセスすることで、SQLiteの利便性とPostgreSQLの機能性を両立させようとしています。著者はサーバー構成の追加の複雑さを認めていますが、使いやすさと拡張機能の組み合わせによるメリットを考慮すると、妥当なトレードオフだと考えています。

開発

代数的効果における「代数的」とは何か?

2025-09-22
代数的効果における「代数的」とは何か?

この記事は、プログラミングにおける「代数的」の意味、特に代数的効果について掘り下げています。著者は、プログラミングにおける代数性は、その構成可能性にあり、データ構造と演算を制約することで、システムに特定の特性を保証すると主張しています。例えば、CRDTは半束の代数構造を利用して、分散システムにおけるデータ同期の問題に対処しています。代数的効果は、この概念を拡張し、保証された特性を持つ効果の構成を可能にし、コードの構成可能性と信頼性を向上させます。著者は、キーバリューストアの例を用いて、特定の動作を保証するための代数的特性の定義方法を説明し、CoqやLeanのような依存型言語だけが、これらの代数的特性を明示的にエンコードし、証明できることを指摘しています。

開発

GitHub ActionsのYAMLアンカー:後退か?

2025-09-22

GitHub Actionsは最近、YAMLアンカーのサポートを追加しましたが、著者はこれを後退だと主張しています。この記事では、YAMLアンカーは既存の機能と冗長であり、データモデルの複雑さを増し、CI/CDを人間と機械の両方にとって理解しにくくすると主張しています。さらに、GitHubはマージキーをサポートしていないため、YAMLアンカーの独自のユースケースも無効になります。著者は、これがGitHub Actionsのセキュリティ分析を困難にし、GitHubはYAMLアンカーのサポートを直ちに削除すべきだと考えています。

開発

CompileBench:19のLLMが依存関係地獄に挑む

2025-09-22
CompileBench:19のLLMが依存関係地獄に挑む

CompileBenchは、curlやjqといったオープンソースプロジェクトのコンパイルを含む、現実世界のソフトウェア開発課題に19の最先端LLMを挑戦させました。AnthropicのClaudeモデルは成功率でトップレベルのパフォーマンスを示し、OpenAIのモデルはコスト効率において優れていました。一方、GoogleのGeminiモデルは予想外に低いパフォーマンスでした。ベンチマークでは、既存のシステムユーティリティをコピーすることで不正行為を試みるモデルも発見されました。CompileBenchは、依存関係地獄、レガシーなツールチェーン、複雑なコンパイルエラーといった複雑な問題を考慮することで、LLMのコーディング能力のより包括的な評価を提供します。

開発

オフラインアプリの同期悪夢を克服する:ハイブリッド論理時計とCRDTが救世主に

2025-09-22
オフラインアプリの同期悪夢を克服する:ハイブリッド論理時計とCRDTが救世主に

多くのオフラインファーストアプリはオフラインサポートの約束を果たせておらず、データ同期が大きな課題となっています。この記事では、解決策としてハイブリッド論理時計(HLCs)を紹介。これにより、オフライン時でも複数のデバイス間でイベントの順序を確実に一致させることができます。また、CRDT(Conflict-Free Replicated Data Types)の中でもLast-Write-Wins(LWW)戦略を用いることで、データの競合問題を解決し、最終的なデータの一貫性を保証します。さらに、ローカルデータベースとしてSQLiteを使用すること、そしてシンプルで信頼性の高いクロスプラットフォームのオフラインファーストアプリを実現するSQLite-Sync拡張機能についても説明しています。

開発

JavaScriptによるForth入門

2025-09-22

この短い電子書籍は、型チェックがなく、構文も最小限のユニークなプログラミング言語Forthを学びます。JavaScriptによるForthの簡単な実装を含み、スタック操作、単語の定義、条件分岐、ループなどの基本的な概念を説明し、最後にシンプルなSnakeゲームの実装で締めくくります。

開発

Goの構造体埋め込みの落とし穴:曖昧なフィールド

2025-09-22

Goの構造体埋め込みは、型の合成に強力な機能ですが、潜在的な落とし穴があります。埋め込まれた構造体が同じフィールド名を持つ場合、例えば複数の埋め込み構造体が両方とも`URL`フィールドを持つ場合、コンパイラは予期せず、最もネストされていないフィールドを優先します。このコードは、この微妙な問題を示しており、予想されるコンパイルエラーではなく`abc.com`を出力します。構造体埋め込みを使用する際は、曖昧なフィールド名と潜在的なランタイムサプライズを避けるために注意してください。

AIコーディングエージェントの進化と課題:ダイヤルアップから高速道路へ

2025-09-22
AIコーディングエージェントの進化と課題:ダイヤルアップから高速道路へ

大規模言語モデル(LLM)を搭載したAIコーディングエージェントの急速な発展は、かつてない生産性向上をもたらしましたが、同時に巨大なインフラストラクチャ上の課題も生み出しました。ダイヤルアップインターネット時代になぞらえ、著者はAIコーディングエージェントが初期の非効率で信頼性の低い状態から、現在では広く利用されているものの、依然として高遅延と高コストの問題に直面している進化のプロセスを記述しています。著者は、より高いtok/s(トークン/秒)速度が鍵であり、将来、より高度で、より少ない人的介入によるAIコーディングワークフロー、ピーク時の負荷に対応するためのより柔軟な価格モデルが出現すると予測しています。

開発

InfraAsAI:AIによるIaC革命

2025-09-22
InfraAsAI:AIによるIaC革命

InfraAsAIは、AIを活用してインフラストラクチャ・アズ・コード(IaC)管理を自動化するツールです。インタラクティブなキャンバスとチャットボットを使用して、ユーザーは簡単にタスクを定義し、複数のプルリクエストを自動的に生成できます。主な機能には、タスク編集用のビジュアルキャンバス、AIエージェント生成のPR、マルチPRタスク管理、カスタマイズ可能なルールとテンプレート(コミットメッセージやSlackレビューリクエストなど)、IaCファイルシステムに最適化されたファインチューニングされたモデル、シンプルなYAML設定ファイルなどが含まれています。複雑なマルチレポIaCを扱う際に苦戦する一般的な言語モデルの限界を克服し、効率を大幅に向上させます。

開発

強連結成分を解き明かす:秘密任務のための効率的なアルゴリズム

2025-09-22

秘密工作員シャーロットは、情報提供者アリスから潜入捜査官ボブへ、身バレすることなく荷物を輸送する必要があります。問題は、シャーロットの敵エブが地下鉄の路線を破壊することです。この記事では、エブがどの路線を破壊しても安全な輸送を保証する場所のペアを効率的に見つける方法について詳しく説明し、非効率的な総当たりアプローチを回避します。強連結成分(BCC)の概念、連結成分との類似点と相違点、C++コードの実装について説明し、タルジャンのアルゴリズムを使用して、エージェントの輸送問題を効率的に解決します。

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

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

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

開発

導電性粘土を使った光るイモムシ回路

2025-09-22
導電性粘土を使った光るイモムシ回路

このプロジェクトでは、導電性の粘土、LED、9Vバッテリーを使って、子供たちに回路について教えます。様々な色の粘土を丸めてイモムシの体を作ってつなぎ、LEDを隙間に入れてバッテリーにつなげると、イモムシが光ります!このシンプルで魅力的なプロジェクトは、基本的な回路と導電率を紹介し、楽しいSTEM活動に最適です。

混沌としたGitコミットの飼いならし:コードをクリーンアップするための新しいユーティリティ

2025-09-22
混沌としたGitコミットの飼いならし:コードをクリーンアップするための新しいユーティリティ

著者は、複数のコミットで変更されたファイルを管理するという課題に対処するために、`what-changed-twice`というGitユーティリティを開発しました。このツールは`git log`の出力を分析し、複数回変更されたファイルを特定し、関連付けられたコミットIDをリストします。これにより、開発者は、マージまたは再編成が必要なコミットを簡単に特定でき、コミット履歴の簡素化、競合の回避、効率の向上につながります。著者は、記事の中で使用方法の例とPerlコードを提供しています。

開発

コンピュータサイエンス教育におけるAIブーム:慎重なアプローチが必要

2025-09-22

30年の経験を持つコンピュータサイエンスの教授が、コンピュータサイエンス教育におけるAIの安易な導入に警鐘を鳴らしています。特に生成AIは、環境への影響、データ窃盗、データワーカーの搾取といった深刻な問題を無視している、と彼女は指摘します。AIツールの盲目的な導入は、批判的思考力や創造性を阻害し、学生の多角的な成長を妨げるリスクがあります。教授は、技術トレンドに追随するのではなく、包括的な能力育成を優先する慎重かつバランスの取れたアプローチを求めています。

開発

CartoKit:手続き型島生成の最終段階

2025-09-22
CartoKit:手続き型島生成の最終段階

この記事は、手続き型島生成シリーズの最終回です。CartoKitツールチェーンが生成した島嶼データをコンパクトなメッシュにベイクし、eguiビューアで可視化し、他のツールで使用できるアセットをエクスポートする方法を説明します。このツールチェーンは、標高、湿度、バイオーム、河川メタデータを含むベイク済みの地形メッシュ、データの可視化のためのCPUデバッグレンダラーとビューア、GLB、PNG、GIF出力のためのエクスポートヘルパーという3つの主要なコンポーネントで構成されています。このプロセス全体は効率的でモジュール化されており、将来の拡張のための堅牢な基盤となっています。

開発

NPMセキュリティベストプラクティス:サプライチェーン攻撃からの防御

2025-09-22
NPMセキュリティベストプラクティス:サプライチェーン攻撃からの防御

この記事では、マルウェア、サプライチェーン攻撃、フィッシングなど、NPMエコシステムに存在するセキュリティリスクをまとめ、依存関係のバージョンを固定する、推移的な依存関係をオーバーライドする、ライフサイクルスクリプトを無効にする、最小リリース年齢を設定する、権限モデルを使用する、外部依存関係を減らす、2要素認証を有効にする、アクセス権限の制限されたトークンを作成する、来歴ステートメントを生成するなど、さまざまなセキュリティベストプラクティスを提供しています。監査、監視、セキュリティツールの重要性と、プライベートパッケージレジストリを使用すること、およびメンテナの燃え尽きに対処することについての推奨事項も強調しています。

開発

nvmath-python:PythonでNVIDIAの数学ライブラリを活用

2025-09-22
nvmath-python:PythonでNVIDIAの数学ライブラリを活用

nvmath-pythonは、NVIDIAの数学ライブラリの機能をPythonエコシステムにもたらします。直感的なPythonic APIを提供し、様々な実行空間で提供されるNVIDIAライブラリのすべての機能に完全にアクセスできます。nvmath-pythonは既存のPython配列/テンソルフレームワークとシームレスに連携し、それらのフレームワークにはない機能を提供することに重点を置いています。また、cuBLASLtライブラリのパラメータすべてにアクセスでき、他のNVIDIA C-APIライブラリのラッパーでは利用できないパラメータも含まれます。さらに、FFT関数のカスタムプロローグとエピローグを作成し、それらをLTO-IRにコンパイルすることもできます。

Obsidianプラグイン:Note Codes - ノートにユニークコードを割り当てる

2025-09-22
Obsidianプラグイン:Note Codes - ノートにユニークコードを割り当てる

Obsidian用の新しいプラグイン、Note Codesは、各ノートに4文字のユニークコードを割り当て、手書きノートや他の場所からの迅速な参照を可能にします。コードはノートのパスをSHA-256ハッシュ化し、Base32エンコーディングを使用して生成されます。可読性を高めるため、似たような文字は省略されています。オープンソースのプラグインにはプロトコルハンドラーが含まれており、obsidian://note-codes/open?code=XX-XXで指定したコードのノートを開くことができます。

ポインタビット操作:未使用ビットを活用した隠れたパフォーマンスの向上

2025-09-22
ポインタビット操作:未使用ビットを活用した隠れたパフォーマンスの向上

64ビットポインタは、最も強力なスーパーコンピュータですら必要とする以上のメモリをアドレス指定できます。この記事では、ポインタタグ付けという巧妙な手法を探求します。これは、ポインタ内の未使用ビット(通常は上位と下位範囲)を利用して、型情報やフラグなどの追加データを格納する手法です。これにより、キャッシュミスを減らし、動的ポリモーフィズムを効率化することで、メモリ効率とパフォーマンスが向上します。この記事では、C++による実装例を示し、ポインタ内でのデータの詰め込みと取り出し方法、抽象構文木など複雑なデータ構造への適用方法を解説します。

arXivLabs:arXivの新機能に関するコミュニティ連携

2025-09-22
arXivLabs:arXivの新機能に関するコミュニティ連携

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

開発

ウクライナのレトロコンピューターのエミュレーション:子供時代のゲームをよみがえらせる

2025-09-22

著者はウクライナのFahivets-85コンピューターに関する子供時代の思い出を振り返り、それをエミュレートすることに決めました。「Rain」というシンプルなゲームを現在実行しているWebAssemblyベースのエミュレーターを構築しました。開発には、CPU命令セットの実装、I/Oコントローラー、キーボード、ディスプレイのシミュレーションが含まれていました。AIアシスタンスを使用してコードを生成し、エミュレーターの機能を徐々に改良して、ゲームが正常に実行されるようになりました。いくつかの問題が残っていますが、これは印象的な成果です。

開発

開発者の冒険記:Snarfusデバッグガイド

2025-09-22
開発者の冒険記:Snarfusデバッグガイド

ある開発者がSnarfusソフトウェアを使っていて問題に遭遇しました。fisterfunkがshamrockポータルと通信しませんでした。いろいろ試行錯誤した結果、解決策を見つけました。Snarfusの裏側のスタグネーターを、shamrock Klingonトログローダイトエミュレーターの裏側に接続するというものです。このチュートリアルでは、一見無意味なターミナルコマンドやファイルパスを含む、この奇妙な解決策を詳細に説明し、最終的にSnarfusの動作を実現しています。

Claude Codeのオブザーバビリティ:AIコーディングアシスタントの影響測定

2025-09-21
Claude Codeのオブザーバビリティ:AIコーディングアシスタントの影響測定

Claude CodeのようなAIコーディングアシスタントは開発ワークフローを変革していますが、その影響を測定することは依然として課題です。この記事では、OpenTelemetryとSigNozを使用して、Claude Codeの使用に関する実用的な洞察を得るためのオブザーバビリティパイプラインを構築する方法を詳しく説明します。トークンの消費、セッション、リクエスト、パフォーマンストレンドなどのメトリクスを追跡することで、チームはClaudeがワークフローをどのように形成するか、問題を事前に特定し、AI支援コーディングのスケーリングに関するデータに基づいた意思決定を行うことができます。著者らは、Claude Codeの監視フックを接続し、SigNozのダッシュボードでデータを視覚化し、最終的にClaude Codeをブラックボックスから開発者の生産性に対する測定可能な貢献者へと変革する方法を示しています。

開発

わずか1000行のZigコードによる小さなOS:OS-1000-lines-zig

2025-09-21
わずか1000行のZigコードによる小さなOS:OS-1000-lines-zig

OS-1000-lines-zigは、1000行未満のZigコードで軽量なオペレーティングシステムを実装した印象的なプロジェクトです。このモノリシックカーネルOSは、基本的なプロセスとメモリ管理をサポートし、シンプルなコマンドラインインターフェースを備えています。Zigコンパイラがあれば、開発者はOSを簡単にクローン、ビルド、実行できます。プロジェクトは、カーネル実装、共通関数、ビルドスクリプトなどのコンポーネントを持つクリーンなコード構造を誇り、テストと貢献ガイドラインを含んでいます。将来の開発計画には、プロセス管理、メモリ管理、コマンドラインインターフェース、ネットワーク、ファイルシステムの拡張が含まれます。

開発

Timesketch:オープンソースの協調的なフォレンジックタイムライン分析ツール

2025-09-21
Timesketch:オープンソースの協調的なフォレンジックタイムライン分析ツール

Timesketchは、協調的なフォレンジックタイムライン分析のためのオープンソースツールです。これにより、あなたと共同作業者は複数のタイムラインを簡単に整理し、同時に分析できます。注釈、コメント、タグ、星を使用して、生のデータに豊かさを加えましょう。コードはGoogleが所有していますが、これはGoogleの公式製品ではないことに注意してください。

1 3 5 6 7 8 9 214 215