Category: 開発

Bun:npmより7倍速いパッケージインストールを実現する理由

2025-09-11

Bunパッケージマネージャーは驚異的な速度で知られており、npmの約7倍、pnpmの約4倍、yarnの約17倍の速さを実現しています。これは魔法ではありません。Bunは、パッケージインストールをJavaScriptの問題ではなく、システムプログラミングの問題として扱っています。システムコールの最小化、マニフェストのバイナリキャッシュ、tarball抽出の最適化、OSネイティブなファイルコピーの活用、CPUコアへのスケーリングなどによって、この速度を実現しています。この記事では、Zigで書かれたBunが、Node.jsの制限(スレッドプール、イベントループ)を回避して、信じられないほど高速なパッケージインストールを実現する方法を詳しく説明しています。

開発

W3Cへの多大な貢献者、グレッグ・ケロッグ氏の逝去

2025-09-11

W3Cは、多大な貢献をしてきた招へい専門家、グレッグ・ケロッグ氏が先週末に亡くなったことを悲しみのこめてお知らせします。13年以上にわたり、ケロッグ氏はJSON-LDワーキンググループの共同議長を務め、データに焦点を当てた数々のコミュニティグループを率いるなど、多大な貢献をしてきました。彼の仕事には、多くのW3C勧告や仕様の共同編集、オープンソース実装やテストスイートの提供などが含まれます。JSON-LDの成功には彼の貢献が不可欠でした。W3Cは、彼の功績を称え、彼の親しみやすく才能あふれる貢献をたたえる追悼イベントを計画しています。

開発

C++20モジュール:コンパイル時間改善と実践経験

2025-09-11

この記事では、C++20モジュールを使用する際の著者の実践的な経験を共有しています。ビルドシステムの選択(Bazel、XMake、Build2など)、コンパイル時間の改善(25〜45%)、PCHとの違いなどが含まれます。また、C++20モジュールの適切なシナリオ、コスト(コードリファクタリング、コンパイラの安定性、コード補完のサポートなど)、モジュールラッパー(export-usingとextern "C++"の2つのスタイル)、importと#includeの混合使用に関するテクニックについても説明しています。最後に、ビルドシステムの改善、コードインテリジェンスの向上、クロスプラットフォームの問題解決など、C++20モジュールの将来的な改善の方向性と、モジュール変換ツールの開発におけるAIの可能性についてまとめています。

Piramidal、ニューラルデータプラットフォーム向けバックエンドエンジニアを募集

2025-09-11
Piramidal、ニューラルデータプラットフォーム向けバックエンドエンジニアを募集

Piramidal社は、主力となるニューラルデータプラットフォームのインフラストラクチャとバックエンドシステムの構築と保守を行うソフトウェアエンジニアを募集しています。理想的な候補者は、製品主導型の企業で3年以上の経験を持ち、Pythonおよびその他のバックエンド言語、コンテナ化とオーケストレーション技術(例:Kubernetes)、リレーショナルデータベース(例:Postgres/MySQL)、Web技術(例:JavaScript、React)に精通している必要があります。この役割には、最新のモデルを適用するための反復処理を行うためのMLエンジニアとの緊密な協力、および製品チームと社内顧客との協力によるニーズの理解と効果的なソリューションの実装が含まれます。Piramidal社は、人間の可能性を最大限に引き出すためにテクノロジーを再利用することに専念しており、認知の自由を支援することを主要な使命としています。

開発

pgEdge、コアコンポーネントをオープンソース化、PostgreSQLエコシステムへの貢献を拡大

2025-09-11

分散型PostgreSQLに特化した企業であるpgEdgeは、Spockレプリケーションエンジン、Snowflakeシーケンスジェネレーター、Lolor大規模オブジェクト論理レプリケーション拡張を含むコアコンポーネントをPostgreSQLライセンスの下で再ライセンスし、オープンソース化することを発表しました!これは、pgEdgeのオープンソースへのコミットメントと、PostgreSQLエコシステムへの更なる貢献への意欲を示すものです。開発者はGitHubでこれらのコンポーネントのソースコードにアクセスし、開発に参加できます。pgEdgeは、クラウド、コンテナ、VMといった様々な展開オプションも提供しています。

開発

Reshaped:5年間の道のり、オープンソース化

2025-09-11
Reshaped:5年間の道のり、オープンソース化

5年間の開発を経て、コンポーネントライブラリReshapedが完全にオープンソース化されました!当初は、ReactとFigmaのコンポーネントライブラリの必要性に応えるための個人プロジェクトでしたが、ReshapedはWebデザインの主要な実践の80%を網羅し、デザインとエンジニアリングの整合性を優先しています。作者はまずReactパッケージを無料で公開し、今回全ソースコードをオープンソース化することで、デザインとエンジニアリングにおけるベストプラクティスの促進を目指しています。今後の計画には、高度なプレミアムコンポーネントの提供が含まれています。

開発

純粋なエンジニアリング vs. 不純なエンジニアリング:ソロ開発者と大企業のエンジニアの衝突

2025-09-11

この記事では、「純粋な」ソフトウェアエンジニアリングと「不純な」ソフトウェアエンジニアリングの違いを探っています。純粋なエンジニアリングは、芸術や研究のような技術的完璧さを追求するのに対し、不純なエンジニアリングは効率性と現実世界の課題解決を優先します。大企業はどちらも必要としていますが、現在の市場では不純なエンジニアリングが重視されており、純粋なエンジニアと不純なエンジニアの衝突につながっています。AI支援開発は、それほど新しくない、時間制約のある問題に対処するのに役立つため、不純なエンジニアリングにより役立ちます。一方、純粋なエンジニアリングは個々の専門知識により依存します。著者は、両方のタイプが高いスキルを必要とするものの、焦点が異なることを主張しています。

Deep Code Bench:コード検索のための新しいベンチマークデータセット

2025-09-11
Deep Code Bench:コード検索のための新しいベンチマークデータセット

Qodoは、大規模で複雑なコードリポジトリから導出された現実世界の質問からなる新しいベンチマークデータセット、Deep Code Benchをリリースしました。既存のベンチマークとは異なり、これらの質問は複数のファイルにまたがる検索を必要とし、現実世界の開発者のシナリオを反映しています。プルリクエストデータからLLMを使用して生成されたこのデータセットは、コード検索システムの堅牢な評価を提供します。Qodoのディープリサーチエージェントは、事実の再現率で他を凌駕し、約76%の精度を達成しています。

tzデータベースへの深層探求:独自のタイムゾーンを作成する

2025-09-11
tzデータベースへの深層探求:独自のタイムゾーンを作成する

Rubyを使用中にタイムゾーンの問題に遭遇し、tzデータベースを発見したという著者の体験に基づいた記事です。この記事では、tzデータベースの中核となるコンポーネントであるzicコンパイラ、zdumpツール、タイムゾーンソースファイルについて、分かりやすく解説しています。さらに、Alpine Dockerイメージ内で架空のタイムゾーンHi_No_Kuni/Konohaを作成し、タイムゾーンルールをカスタマイズする方法を実例を用いて示し、結果を検証しています。開発者にとって役立つだけでなく、タイムゾーンの複雑さと標準化について理解を深めることができます。

openSUSEカーネル6.17以降でBCacheFSが無効化

2025-09-11

openSUSEチームは、6.17以降のカーネルでBCacheFSファイルシステムが無効化されることを発表しました。これは、6.17以降BCacheFSが外部でメンテナンスされるようになり、openSUSEが下流パッチのメンテナンスとバックポートを行わなくなるためです。現時点では6.16以前のバージョンは影響を受けません。ユーザーはBCacheFSの上流からのアドバイスに従ってファイルシステムをインストールおよび使用するか、自分でKMPを準備する必要があります。BCacheFSのメンテナが上流のメンテナンスを再開すると、再び有効になります。

開発

1万行以上のコードの壁を突破する:大規模プロジェクトにおけるLLMのための構造化されたワークフロー

2025-09-11
1万行以上のコードの壁を突破する:大規模プロジェクトにおけるLLMのための構造化されたワークフロー

この記事では、1万行を超えるコードの大規模プロジェクトでLLMを成功させるワークフローについて詳細に説明しています。著者は、LLMにシステム全体を生成させることは混乱を招き、エラーが発生しやすいことを発見しました。代わりに、構造化されたアプローチが提示されています。まず、設計書とアーキテクチャドキュメントを手書きし、その後、LLMをコード生成と変換ツールとして使用します。小さなタスクごとに反復処理を行い、コードを体系的にレビューして修正し、ドキュメントとコーディングガイドラインを継続的に更新します。この方法により、大規模プロジェクトにおけるLLMの限界を効果的に回避し、保守性と一貫性を維持することができます。

開発

Dotter:Rust製の強力なドットファイルマネージャーとテンプレートエンジン

2025-09-11
Dotter:Rust製の強力なドットファイルマネージャーとテンプレートエンジン

DotterはRustで書かれたドットファイルマネージャーとテンプレートエンジンで、ドットファイルの管理と展開を簡素化するために設計されています。手動でのドットファイル管理に伴う多くの不便、例えばファイルの起源の追跡、新しいマシンでの面倒な設定、マシン間の設定の違いの処理などを解決します。Dotterは柔軟な設定と自動テンプレート化またはシンボリックリンク機能により、ドットファイルの自動管理を実現します。Homebrew、AUR、Scoopによるインストールに対応しており、バイナリとCargoによるインストール方法も提供しています。Dotterはまた、ユーザー定義のワークフローのための豊富なコマンドラインオプションとフック関数も提供しています。

基数ソートがハッシュテーブルを凌駕:一意な値を数えるためのパフォーマンス比較

2025-09-11
基数ソートがハッシュテーブルを凌駕:一意な値を数えるためのパフォーマンス比較

主に一意なuint64値からなる巨大な配列において一意な値を数えるという問題に対し、適切に調整された基数ソートは、通常、ハッシュテーブルよりも高速です。メモリ帯域幅を効率的に利用し、ハッシュ処理とソートプロセスを巧みに融合することで、基数ソートは1MBを超えるデータに対して、調整済みハッシュテーブルと比べて最大1.5倍の高速化を実現し、Rustの優れた「Swiss Table」ハッシュテーブルと比べて最大4倍高速になります。しかし、基数ソートのパフォーマンスはデータ分布が不均一な場合に低下するため、可逆的なハッシュ関数を使用してデータを前処理することで効率を維持できます。この記事では、様々なデータサイズとアクセス頻度における両手法のパフォーマンスをベンチマークし、現実世界のアプリケーションにおける選択戦略について考察します。

開発

Clojureによる表現問題へのエレガントな解決策

2025-09-11
Clojureによる表現問題へのエレガントな解決策

Strange Loopカンファレンスで、Chris Houserは、表現問題を解決するためのClojureの2つのアプローチ、マルチメソッドとプロトコルを紹介しました。プレゼンテーションでは、それぞれの方法の長所と短所を詳細に説明し、Clojureでの実装方法を示しました。「The Joy of Clojure」の共著者であり、Clojureの中核的な貢献者であるHouserは、Clojureの柔軟性と表現力の高さを効果的に示しました。

AIコーディングアシスタントの大規模な停止、依存リスクの高まりを浮き彫りに

2025-09-11
AIコーディングアシスタントの大規模な停止、依存リスクの高まりを浮き彫りに

AnthropicのClaude Codeなど、AIコーディングアシスタントの最近の広範囲な停止は、現代のソフトウェア開発におけるこれらのツールへの大きな依存性を明らかにしました。開発者たちは、Stack Overflowなども含め、代替手段を探しましたが、これは過度な依存の危険性を強調しています。基盤となるロジックを理解せずに自然言語を使用してコードを生成する「雰囲気コーディング」(vibe coding)という新しいトレンドは、GoogleのGemini CLIによるファイル破損やReplitのAIサービスによるデータベース削除など、壊滅的な結果をもたらしました。この停止は、AIへの依存の潜在的な結果を明確に示しており、仕事と生活のバランスについて熟考するきっかけとなりました。

開発

TailGuard:Dockerコンテナを用いたWireGuardとTailscaleの相互運用

2025-09-11
TailGuard:Dockerコンテナを用いたWireGuardとTailscaleの相互運用

TailGuardは、既存のWireGuardサーバーをTailscaleネットワークに接続するためのシンプルなDockerコンテナアプリケーションです。Tailscaleバイナリをサポートしていない、またはロックダウンされたデバイスでも使用できます。VPS上でコンテナを実行することで、キー管理を簡素化し、デバイス間の切り替えを容易にします。WireGuardの設定ファイルをダウンロードし、Dockerコマンドを実行するだけで接続できます。カスタマイズ可能なパラメータとIPv6サポートにより、TailscaleとWireGuardの両方のネットワークへの接続が容易になります。

開発

C++における多重ディスパッチ:課題と解決策

2025-09-11

この記事では、C++における多重ディスパッチの実装における課題を探ります。多重ディスパッチは、複数のオブジェクトの実行時型に基づいて動的に関数を呼び出すことを可能にし、異なる型のオブジェクト間の相互作用(例えば、様々な形状の交差計算など)を扱う際に役立ちます。この記事では、ビジターパターンや総当たり的なif-elseチェックなど、いくつかのアプローチを比較し、その長所と短所を分析します。ビジターパターンは効率的ですが、侵入的で保守が困難です。総当たり的な方法は保守しやすいですが、冗長で非効率です。また、多重ディスパッチを提案するC++標準化の試みについても簡単に触れ、以降の記事では他のプログラミング言語における実装を検討します。

開発

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

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

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

開発

Desktop-TUI:グラフィックレスデスクトップ環境

2025-09-11
Desktop-TUI:グラフィックレスデスクトップ環境

Desktop-TUIは、グラフィックインターフェースのないtmuxのようなデスクトップ環境です。ショートカットファイルを読み込んでアプリケーションやコマンドを実行し、ウィンドウの移動、サイズ変更、タイル配置オプション、アプリケーションエラーやGNUアプリケーションのクラッシュ処理をサポートしています。アプリケーションやコマンドの引数としてファイルやフォルダを選択できます。現在はncursesを使用していますが(色の問題あり)、Crosstermへの移行を予定しています。インストールは`cargo install desktop-tui`、実行は`cargo run -- `です。ショートカットファイル(例:helix.toml)はTOML形式で、アプリケーション名、コマンド、引数を定義します。

開発

JiraTUI:コマンドラインからのJiraタスク管理

2025-09-11

JiraTUIは、Jiraタスク管理を効率化する強力なコマンドラインツールです。ターミナルから直接Jiraタスクを作成し、タイトル、説明、優先度などの詳細を簡単に指定できます。インターフェースの操作時間を短縮し、作業に集中できます。また、ターミナルから直接タスクにコメントできるため、チーム間のコミュニケーションと協調性が向上します。

開発

MicroHsにおける軽量DataFrame:Haskell 2010での冒険

2025-09-11

2015年のFrege(JVM上のHaskell方言)を使ったAndroidプロジェクトから始まった著者の関数型プログラミングの旅は、自身のDataFrameライブラリをGHCから切り離し、MicroHsで動作させるという探求へと繋がりました。この記事では、GADTs、型族、反射を使わずに、Haskell 2010でDataFrameの中核機能(構築、基本的な式、`filterWhere`、`derive`、Markdownレンダリング)を実装する方法を詳しく説明します。実験の結果、冗長なコードではありますが、中核機能は十分に動作することが示され、MicroHs(小さなCLIや組み込み環境向け)とGHC(速度とエコシステムアクセス向け)のどちらを選択するかという柔軟性が得られます。MicroHsのバイナリサイズは約100倍小さく、速度は約5~10倍遅いですが、多くのデータ操作タスクにおいては、このトレードオフは価値のあるものです。ヘビーリフティングにはGHCバックエンドを使い続けることができます。

開発

KDEが独自のLinuxディストロのアルファ版を発表:KDE Linux

2025-09-11

Akademy 2025において、KDEプロジェクトは、高度な技術を用いてKDEの提供するものの最良の部分を示すために構築されたディストリビューションであるKDE Linuxのアルファ版をリリースしました。Arch Linuxをベースとしていますが、Pacmanは使用せず、KDE BuilderとFlatpakを使用してソフトウェアをインストールします。家庭用、ビジネス用、OEM用をターゲットとしていますが、アルファ版はまだ開発段階です。将来の計画には、テスト版、愛好家版、安定版が含まれており、最終的には別のディストロへの移行という計画も含まれています。

開発

ターミナルでGUIアプリを実行:term.everything❗

2025-09-11
ターミナルでGUIアプリを実行:term.everything❗

ターミナルでゲームをプレイしたり、映画を見たりすることを想像してみてください!term.everything❗は、WaylandベースのGUIランナーで、GUIアプリケーションをターミナル内でレンダリングします。画質はターミナルの解像度に依存し、高解像度(kittyやiterm2など)の方がより良い結果が得られます。ベータ版であるため、一部のアプリは動作しない可能性がありますが、すでにDoomなどのゲームをサポートしています。TypeScriptとBunを使用して構築されており、少しC++も使用しています。

Mux:開発者向けのビデオインフラストラクチャ

2025-09-11
Mux:開発者向けのビデオインフラストラクチャ

Muxは、開発者がビデオアプリケーションを構築する際に直面する困難な問題(エンコード、ストリーミング(Mux Video)、監視(Mux Data))に取り組むことで、ビデオを民主化しています。チームはGoogle、YouTube、Twitchなどの企業での経験を持ち、Coatue、Accel、Andreessen Horowitzなどのトップティア投資家から支援を受けています。彼らは、Reddit、Vimeo、Robinhoodなどのスタートアップから大手企業まで、幅広い企業が使用する堅牢なプラットフォームを構築しており、ビデオ体験全体を向上させることを目指しています。

arXivLabs:コミュニティ協力者との実験プロジェクト

2025-09-10
arXivLabs:コミュニティ協力者との実験プロジェクト

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

開発

プログラミングの身体性:プログラマの共感覚

2025-09-10
プログラミングの身体性:プログラマの共感覚

著者は、さまざまなプログラミング言語によって引き起こされる内臓的な感覚を記述しています。C言語のような言語の入れ子になった括弧は綱渡りのようで、関数型プログラミングは洞窟の中を這うようで、ファームウェアの記述は正確で制約のある作業のようです。CopilotとTypeScriptを使うのは飛行のような感覚で、型のないPythonに戻ると酔っ払ってよろめくようです。著者は、このコード共感覚は微妙ながらも一般的であり、コードの理解とシステム設計に影響を与えると主張しています。この感覚は、コーディングの効率を直接向上させるわけではないかもしれませんが、スタートアップの仕組みを理解する上で非常に役立ち、著者は重要な部分と不足している接続を特定するのに役立ちます。著者は、優れたコードエディタは優れたエンジニアの感覚的な直感を活用し、コードの表示方法を改善してプログラミング体験を向上させるべきだと結論付けています。

PKMにおける欠落要素:忘れられた知識の再発見

2025-09-10
PKMにおける欠落要素:忘れられた知識の再発見

著者はObsidianやThingsなどの複数のPKMアプリを使って大量のデジタル情報を管理していますが、重要な機能が欠けていることに気づきました。それは、収集済みだが忘れられた情報をユーザーが再利用できるようにすることです。6ヶ月以上経過したタスクを表示するなど、簡単なデータベースクエリでも実現可能です。著者は、Spotifyのホーム画面のような仕組みを取り入れることで、古いメモやタスクなどを再表示し、情報が「知識のブラックホール」になることを防ぐよう、PKMアプリ開発者に呼びかけています。

開発

git-down:Gitリポジトリのディレクトリを効率的にダウンロード

2025-09-10
git-down:Gitリポジトリのディレクトリを効率的にダウンロード

Gitリポジトリから単一のディレクトリをダウンロードすることに苦労していませんか?git-downが登場です!このシンプルなコマンドラインツールを使えば、リポジトリ全体をクローンすることなく、Gitリポジトリから1つまたは複数のディレクトリをダウンロードできます。GitHub、BitBucket、GitLab、SourceForgeなどのプラットフォームに対応しており、ショートカットも用意されているので簡単に操作できます。アーカイブのダウンロード、浅いクローン、ファイルの移動といった面倒な手順と比較して、git-downは効率を大幅に向上させ、時間を節約します。自己コンパイルが必要(Rust環境が必要)ですが、その速度と利便性から、Gitユーザーにとって必須のツールと言えるでしょう。

開発

意味的な改行:より良い文章を書くために

2025-09-10
意味的な改行:より良い文章を書くために

この記事では、意味的な改行(SemBr)仕様について説明します。これは、まとまりのある思考単位の後に改行を追加することでテキスト構造を改善するための規則です。SemBrは、文の終わり、独立した節の終わり、リストの前に改行を追加することを推奨しており、レンダリングされた出力に影響を与えることなく、可読性と編集可能性を向上させます。著者は、さまざまな軽量マークアップ言語におけるSemBrの適用方法と、既存のテキストをこの規約に移行する方法について説明し、ライター、エディター、リーダーのメリットを強調しています。

BashからGoへ:CLIツールの作成実用ガイド

2025-09-10
BashからGoへ:CLIツールの作成実用ガイド

この記事は、BashプログラマーにGoを紹介するシリーズの第2部であり、コマンドラインツールの作成に焦点を当てています。単純な「hello world」の例から始まり、テストの記述、入出力の処理、io.Writerインターフェースの使用方法、グローバル変数の落とし穴の回避、オプションパターンとflagパッケージを利用したコマンドライン引数とフラグの処理を段階的に説明します。最終的には、より実用的なCLIツール、つまり入力テキスト内の重複行をカウントするツールを作成します。

開発
1 2 6 7 8 10 12 13 14 214 215