Category: 開発

リヌス対タネンバウム:OS設計哲学の衝突

2025-02-08

このスレッドは、Linuxの生みの親であるLinus Torvaldsと、Minixの著者であるAndrew S. Tanenbaumの間で行われた激しい議論を記録しています。議論の中心は、オペレーティングシステムの設計哲学です。Linusは、特定のハードウェア(386など)の利点を最大限に活用すべきだと主張した一方、Tanenbaumは、移植性とローエンドハードウェア上での動作を優先すべきだと主張しました。Linusは、Minixの設計上の制限によってパフォーマンスと機能が制限されていると批判したのに対し、Tanenbaumは、Linuxが特定のハードウェアに依存しすぎていると反論しました。この議論は、対照的なOS設計アプローチを浮き彫りにし、当時のハードウェアの制約がソフトウェア開発に与えた影響を反映しています。

開発 OS設計

Docker Bake一般提供開始:複雑なDockerビルドの簡素化

2025-02-08
Docker Bake一般提供開始:複雑なDockerビルドの簡素化

Dockerは、Docker Desktop 4.38でDocker Bakeの一般提供開始を発表しました。この強力なビルドオーケストレーションツールは、宣言型の構成ファイルを使用して複雑なDockerビルドを簡素化します。Bakeは、複数のイメージ、並列処理、キャッシングを処理し、ビルド時間を短縮します。これは、長いコマンドや依存関係の管理などの課題に対処します。Docker Composeと互換性があり、マトリックスビルドやカスタム関数などの高度な機能を提供します。GAリリースには、重複排除されたコンテキスト転送、セキュリティ強化のための権限、合成可能な属性、変数検証などの改善が含まれており、効率性と使いやすさが向上しています。

開発

Hotline復活:Swiftによる現代Appleシステム向け蘇生

2025-02-08
Hotline復活:Swiftによる現代Appleシステム向け蘇生

1997年のクラシックなMacオンラインコミュニティソフトウェア、HotlineをSwiftとSwiftUIを用いて現代のAppleシステム(iOS、macOSなど)向けに完全に再構築するプロジェクトが進行中です。現時点では、Hotlineサーバーへの接続と参加のためのクライアントアプリケーションであり、IRCスタイルのチャット、プライベートメッセージ、フォーラムのようなニュース、掲示板への投稿、FTPスタイルのファイル転送などの機能を提供します。このプロジェクトの目標は、この愛されたブランドを新しい世代のために復活させる、現代的でオープンソースのHotlineクライアントを作成することです。

開発

RubyBoy:Rubyで作成したGame Boyエミュレータ、WebAssembly対応!

2025-02-08
RubyBoy:Rubyで作成したGame Boyエミュレータ、WebAssembly対応!

作者はRubyでGame BoyエミュレータRubyBoyを作成し、gemとして公開しました。この記事では、UIの実装、ROMの読み込み、MBCチップのサポート、CPUとPPUの実装、パフォーマンス最適化戦略など、開発プロセスを詳しく説明しています。パフォーマンス向上のため、YJIT、不要なHash作成の回避、ループ計算の最適化などを実施し、Ruby 3.3の改善も活用することで、大幅な速度向上を実現しました。最終的に、WebAssemblyのおかげで、RubyBoyはブラウザ上で動作するようになりました。

VS Codeのリモート編集:完全な侵入か便利な開発か?

2025-02-08
VS Codeのリモート編集:完全な侵入か便利な開発か?

この記事では、VS Codeのリモート編集機能のセキュリティ上の問題点について論じています。VS CodeはEmacsのTrampと同様のリモート編集機能を提供していますが、大きく異なります。軽量な接続ではなく、VS Codeはエージェントをダウンロードし、リモートサーバーでNode.jsプログラムを実行します。これにより、ファイルシステムのナビゲーション、ファイル編集、シェルプロセスの起動、自己永続化など、広範なアクセス権限が与えられます。著者は、このアプローチは過度に「侵入的」であり、特に開発サーバーや本番環境で使用する場合にセキュリティリスクがあると主張しています。著者のチームは回避策を見つけたものの、この記事は潜在的な脆弱性についての警告となっています。

(fly.io)

ChromeのManifest V3:広告ブロッカー開発者の悪夢?

2025-02-08
ChromeのManifest V3:広告ブロッカー開発者の悪夢?

GoogleのChrome Manifest V3(MV3)拡張機能アーキテクチャの大幅な見直しは、広告ブロッカー、コンテンツフィルター、プライバシー ツールの開発者に引き続き問題を引き起こしています。GoogleはMV3がセキュリティとパフォーマンスの向上を目指していると主張していますが、AdGuardやuBlock Originなどの開発者は、MV3の制限が予想以上に厳しく、コア機能が制限されたり、完全に不可能になったりしていることを発見しています。開発者たちは、MV3によって開発の難易度が上がり、Googleが開発者のフィードバックに遅れて対応していること、さらにはUIの変更によって拡張機能がひそかに弱体化されていることを批判しています。これにより、Googleの真意に疑問が生じています。セキュリティとプライバシーの向上のためなのか、それとも拡張機能の能力を密かに制限するためなのか?

開発

LLMによる複雑なOCRの失敗:大規模言語モデルがPDFで苦戦する理由

2025-02-07
LLMによる複雑なOCRの失敗:大規模言語モデルがPDFで苦戦する理由

スプレッドシートやPDFからデータ抽出を目指しているPulse社は、OCRに大規模言語モデル(LLM)を用いる際の重大な限界を発見しました。LLMはテキスト生成や要約には優れていますが、複雑なPDFや表を扱うと著しく性能が低下します。LLMの確率的な性質と抽象的な画像処理により、幻覚、データ消失、誤解釈といった問題が発生し、特に金融や医療データでは大きなリスクとなります。さらに、LLMはプロンプトインジェクション攻撃にも脆弱であり、セキュリティと倫理的な懸念が生じます。Pulse社は最終的にOCRへのLLMの使用を断念し、従来のコンピュータビジョンアルゴリズムとビジョン・トランスフォーマーを統合したカスタムソリューションを開発中です。

AIが技術面接を変える

2025-02-07
AIが技術面接を変える

コーディングのような複雑なタスクにおけるAIの能力向上は、従来の技術面接方法に課題を突きつけています。著者は自身の経験を語り、LeetCodeやシステムデザイン面接の欠点を指摘します。アルゴリズムや定型的なアプローチに偏りすぎ、実際の業務とは乖離しているという点です。AIは既にいくつかの技術面接を容易に通過できるようになり、企業はプロセスを見直す必要に迫られています。著者は、コードレビューを面接プロセスに組み込むことを提案します。コードレビューは、候補者のコードの品質、セキュリティ、パフォーマンスなどを評価する能力をより的確に測ることができるため、AI時代において特に重要です。

開発 技術面接

ExpenseOwl:ミニマリストな経費追跡システム

2025-02-07
ExpenseOwl:ミニマリストな経費追跡システム

複雑な経費追跡アプリにうんざりしていませんか?ExpenseOwlはミニマリストなソリューションを提供します。データの保存にはシンプルなJSONファイルを使用し、毎月の支出を最新の円グラフで視覚化します。コマンドラインインターフェースとWebインターフェースの両方を備えています。複雑な設定や不要な機能はありません。経費を追加、削除、表示するだけで、簡単に家計を管理できます。ExpenseOwlは、カスタムカテゴリと通貨にも対応しており、Dockerへのデプロイも簡単です。

開発 経費追跡

Emergeツール:AndroidとiOSアプリのパフォーマンステストのサンプルプロジェクト

2025-02-07
Emergeツール:AndroidとiOSアプリのパフォーマンステストのサンプルプロジェクト

このオープンソースプロジェクトは、Emergeのツールスイートを使用して、サイズ分析、スナップショットテスト、デッドコード検出、パフォーマンステストを行う方法を、AndroidとiOSのサンプルアプリを使用して示しています。アプリはApp StoreとGoogle Playで利用可能で、リポジトリには包括的なドキュメントとGradle/fastlane設定の例が含まれています。

開発

Zep AI:次世代AIエージェントのための基礎となるメモリレイヤーを構築

2025-02-07
Zep AI:次世代AIエージェントのための基礎となるメモリレイヤーを構築

Zep AIは、次世代AIエージェントのための基礎となるメモリレイヤーを構築しています。継続的に学習するナレッジグラフ技術により、AIシステムはユーザーとのインタラクションやビジネスデータから、豊かで時間的な理解を構築できます。マテルやWebMDなどの業界リーダーから信頼されており、AIアプリケーションのパーソナライゼーションと精度を向上させています。現在、スケーラブルで革新的なソリューションを構築し、創設者と共に技術戦略を策定するシニアエンジニアを募集しています。インフラストラクチャからフロントエンドまで、プラットフォームのあらゆる側面に関わります。理想的な候補者は、7年以上のハンズオンなソフトウェアエンジニアリング経験、Python、TypeScript、Goのうち少なくとも2つの言語の専門知識、システムアーキテクチャ、本番規模のソフトウェア構築、チームリーダーシップの実績が必要です。

開発

Firefox のコード署名 20 年の歴史:手動から自動化へ

2025-02-07

この記事は、過去 20 年間にわたる Mozilla における Firefox コード署名の進化を概観しています。当初、このプロセスは非常に手動で行われ、物理的なマシン、USB ドライブ、そして多くの手作業による手順が必要でした。技術の進歩により、Mozilla は署名を自動化し、改良されたスクリプトから専用の署名サーバー、そして Taskcluster と Autograph サービスの採用へと進化しました。現在、Firefox のコード署名は 1 日数千回実行され、ソフトウェアのセキュリティが大幅に向上しています。

開発

Pantograph:流動的で型安全な構造エディタ

2025-02-07
Pantograph:流動的で型安全な構造エディタ

Pantographは、従来のテキスト解析と型チェックを行うエディタとは異なり、型付き構文木を直接操作する革新的な構造化コードエディタです。ツリー選択と「ジッパー編集」の概念を導入することで、既存プログラムの編集を簡素化し、プログラマは複雑なコード変更を容易に行いながら、型安全性を維持できます。型の違いを巧みに処理し、プログラムにいくつかのエラーが存在することを許容することで、段階的なデバッグを容易にします。Pantographの設計は言語に依存せず、開発者はそのフレームワークに基づいて新しいエディタを定義できます。

プログラマーの5つの帽子:状況に応じたコーディングスタイル

2025-02-07

ベテランプログラマーが長年の経験を踏まえ、5つの異なる「コーディングハット」を紹介しています。キャプテンハット(慎重で熟考された、重要なシステム向け)、スクラッピーハット(迅速なプロトタイプ、最小限の儀式)、マクガイバーハット(迅速な実験、乱雑なコードも許容)、シェフハット(コードの美しさに重点)、ティーチャーハット(コードの明確さと理解を優先)です。著者は、状況に応じて適切なコーディングスタイルを選択することが重要であり、「正しい」やり方に固執するのではなく、最適な効率性を追求すべきだと主張しています。

開発

Three.jsにおける動的LOD:Naniteに着想を得て

2025-02-07
Three.jsにおける動的LOD:Naniteに着想を得て

このプロジェクトは、Unreal Engine 5のNaniteに似た動的LODシステムをThree.jsで再現しようとする試みです。メッシュをメッシュレットにクラスタリングし、隣接するメッシュレットをグループ化し、マージ(共有頂点)、meshoptimizerを使用してメッシュを簡素化(三角形を半分に、最大128)、最後に分割(現在は2、目標はN/2)します。プロジェクトはまだ初期段階であり、今後の作業にはLOD、DAGカット、GPUへのジオメトリストリーミングの改善が含まれます。研究には、Nanite、マルチレゾリューション構造、バッチマルチトライアングレーションが含まれます。

開発

創業エンジニア:PropRiseでAIを活用したデータシステムを構築する

2025-02-07
創業エンジニア:PropRiseでAIを活用したデータシステムを構築する

急成長中の不動産データプラットフォームであるPropRiseは、中核となるデータアーキテクチャの設計と構築を担当するシニア創業エンジニアを募集しています。TypeScript、Next.js、React、Postgres、GCPなどの技術スタックを使用し、数百万件の不動産レコードを処理します。堅牢なデータパイプライン、AIを活用した品質保証システム、そして高速な外れ値検出のための内部ツールの構築が求められます。CTOへの直属となり、相当数の株式を保有できるこのポジションは、複雑な問題解決に情熱を持ち、AIとデータ品質の融合に興奮し、急成長中のスタートアップで重要な役割を果たしたいエンジニアに最適です。

開発

TRRE:従来の正規表現を超えたテキスト処理ツール

2025-02-07
TRRE:従来の正規表現を超えたテキスト処理ツール

TRREは、より直感的なテキスト編集とパターンマッチングのために設計された、正規表現の試作拡張です。従来の正規表現とは異なり、TRREは`:`記号を使用して変換を定義することで、テキストの置換、挿入、削除を簡素化します。`grep`に似たコマンドラインツールを提供し、単語の置換、文字の挿入/削除、さらには単純な暗号化/復号化など、効率的なテキスト操作タスクを可能にします。まだプロトタイプ段階ですが、特に複雑なタスクにおいて、そのパフォーマンスは`sed`を凌駕する可能性を示しています。

開発

AIが加速するパーソナルソフトウェアの台頭

2025-02-07

10年間、他者向けのソフトウェア開発に携わってきた著者は、燃え尽き症候群を経験しました。AIの登場により、個人のニーズを満たすソフトウェアの開発がかつてないほど容易になりました。「パーソナルソフトウェア」または「自己中心的ソフトウェア」という概念を受け入れ、自身の課題解決に焦点を当て、プロジェクトをオープンソース化するようになりました。このアプローチは情熱を再燃させ、より迅速なイテレーションを可能にし、AIを活用して効率的に学習し、問題を解決します。使い捨ての小さなスクリプトでさえも楽しくなり、開発における新たな目的意識が育まれます。

Inkoにおける避けられない借用チェッカー:スタック割り当てとコンパイル時チェックのトレードオフ

2025-02-07

Inko言語の設計者は、スタック割り当てと借用チェックの最適な解決策を探っています。デフォルトでは、Inkoの型はヒープに割り当てられ、柔軟性を提供しますが、パフォーマンスのオーバーヘッドが発生します。パフォーマンスを向上させるために、`inline`修飾子が導入され、スタック割り当てがサポートされますが、これにより、メモリ安全性を保証しながら借用とムーブセマンティクスを処理するという新たな課題が生じます。この記事では、フィールドの代入を許可する、ユニークな型を導入する、エスケープ解析を行うなど、いくつかの解決策を検討し、最終的にコンパイル時の借用チェックが最適なアプローチであると結論づけていますが、実装の複雑性が高いため、短期的な実装は見送られています。現在、Inkoは、インライン型のフィールドの再代入を許可しない戦略を採用しています。

開発

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

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

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

開発

100MB以下のLLMがpipでインストール可能に:llm-smollm2プラグイン登場

2025-02-07
100MB以下のLLMがpipでインストール可能に:llm-smollm2プラグイン登場

新しいプラグインllm-smollm2は、量子化されたSmolLM2-135M-Instruct LLMを100MB未満に圧縮し、pipでインストールできるようにしました。この記事では、PyPIのサイズ制限(100MB)を考慮した適切なモデルの選定から、llama-cpp-pythonライブラリの冗長なログ出力の抑制、PyPIへのパッケージングまでの作成プロセスを詳細に説明しています。モデルの能力は限定的ですが、LLM技術を学ぶための貴重な学習ツールとして提示されています。

粒子ベースの水力侵食によるリアルな地形と水文の生成

2025-02-07

この記事では、川や湖などの水文特性を持つリアルな地形を生成できる、粒子ベースの水力侵食シミュレーション技術を紹介します。以前の粒子ベースの侵食モデルを拡張し、水の流れと蓄積を追跡するための「河川マップ」と「池マップ」を導入することで、河川の移動、滝の形成、氾濫原など、さまざまな地理現象をシミュレートできます。この方法はシンプルで効率的であり、地形と密接に結びついているため、リアルタイムレンダリング時でも滑らかな、非常にリアルな風景が生成されます。

Kubernetes:エンティティ・コンポーネント・システムとの驚くべき類似性

2025-02-07

この記事では、Kubernetesのリソース管理モデルと、ゲーム開発で一般的に使用されているエンティティ・コンポーネント・システム(ECS)パターン間の驚くべき類似性を明らかにします。KubernetesオブジェクトはECSエンティティを反映し、一意の識別子を持ちます。`spec`セクションと`status`セクションはコンポーネントに対応し、それぞれ目的の状態と観測された状態を表します。一方、コントローラー、スケジューラー、Kubeletはシステムとして機能し、目的の状態と実際の状態の不一致を調整します。このアーキテクチャ上の類似性は、Kubernetesの設計を明確にし、その宣言的な性質に対する新たな洞察を提供します。

LinuxカーネルメンテナHector Martinが辞任

2025-02-07

著名なLinuxカーネル開発者であるHector Martinが、カーネルのメンテナンスから辞任することを発表しました。特にApple/ARMプラットフォームのメンテナから身を引きます。カーネル開発プロセスとコミュニティマネジメントへの信頼を失ったことが理由です。 今後も個人でパッチを送信する可能性はありますが、彼の辞任はLinuxカーネルのコミュニティマネジメントに関する議論を巻き起こしています。

Google reCAPTCHA vs. GDPR:プライバシーリスクと解決策

2025-02-07

ウェブサイト訪問者を人間と識別するために使用されるGoogleのreCAPTCHAテクノロジーは、GDPRと衝突しています。reCAPTCHAは、ユーザーの行動(マウスの動き、キーストロークなど)を分析し、IPアドレスやブラウザ情報などの個人データを集めてユーザーの身元を評価します。明示的な同意が得られないため、ウェブサイト運営者はreCAPTCHAの使用を正当化する必要がありますが、Googleの不透明なデータ慣行と定量化できないプライバシーリスクを考えると、これは困難です。この記事では、よりプライバシーに配慮した代替手段を使用することを推奨し、透明性、ユーザーの同意の取得、データの最小化の重要性を強調しています。

開発

ミサイルソフトウェアにおける「ヌルガーベージコレクタ」:メモリリーク?問題なし!

2025-02-07
ミサイルソフトウェアにおける「ヌルガーベージコレクタ」:メモリリーク?問題なし!

開発者が、ミサイルソフトウェアにおける「ヌルガーベージコレクタ」の巧妙な応用事例を紹介しています。飛行時間が限られており、ハードウェアのメモリが十分にあるため、プログラムのメモリリークは問題になりませんでした。エンジニアは飛行中の潜在的なメモリリーク量を計算し、その2倍のメモリを追加して、ミッション完了前にプログラムがクラッシュしないようにしました。このアプローチは、プログラムの実行時間制約を巧みに利用し、メモリリーク問題を効果的に解決しました。一種の「究極のガーベージコレクション」と言えるでしょう。

HTMLの空白:混沌への深遠な探求と潜在的な解決策

2025-02-07
HTMLの空白:混沌への深遠な探求と潜在的な解決策

この記事では、HTMLにおける空白処理の複雑さを深く掘り下げています。多数の例を通して、著者はHTMLの空白処理を規定する様々なルール、具体的にはインライン要素とブロックレベル要素、`

`タグ、`white-space` CSSプロパティの違い、そしてそれらがどのように予測不可能なレンダリング結果につながるかを明らかにしています。また、自動フォーマッタ、コンテンツ管理システム、そしてミニファイアがHTMLの空白処理において直面する課題についても分析しています。潜在的な解決策として、コードの空白とユーザーに見える空白を区別するために引用符構文を使用することが提案されていますが、これは大きな破壊的変更になることが認識されています。最後に、著者はHTMLの空白処理に伴う問題を軽減するための実践的なヒントを提案し、非崩壊空白を表す新しいHTMLエンティティ`&ncsp;`を追加することを提案しています。

開発 空白

Google Android XRのカメラアクセス:スマートフォンと同じくらい簡単

2025-02-07
Google Android XRのカメラアクセス:スマートフォンと同じくらい簡単

この記事では、GoogleのAndroid XRシステムにおけるカメラアクセスへのアプローチを明らかにします。スマートフォンと同様に、開発者はユーザーの許可を得てカメラデータにアクセスし、標準的なAndroid Camera API(CameraXなど)を使用して画像ストリームを取得できます。フロントカメラにはアクセスできますが(ユーザーのアバターを表示)、リアカメラは生のデータストリームではなく、再構成された画像を提供します。これはAppleのVision Pro戦略を反映しており、AndroidアプリをXRデバイスにシームレスに移植し、スマートフォンとヘッドセット間で一貫したパーミッションリクエストを維持することを保証します。Android XRは現在プレビュー段階であるため、将来変更される可能性があります。

Stack OverflowのAI回答実験:失敗への道?

2025-02-07
Stack OverflowのAI回答実験:失敗への道?

Stack OverflowがAI生成の回答を導入する計画は、コミュニティから強い反発を招いています。著者は、この実験は間違った前提に基づいていると主張します。それは、人間の専門家による高品質な回答をAIで置き換えようとする試みです。これは、時間と費用を無駄にするだけでなく、プラットフォームの核となる価値である「専門家による信頼できる回答」を損なうことになります。この記事では、この実験による潜在的な悪影響、具体的には、モデレーターの作業量の増加、専門家の参加率の低下、回答の正確性を保証できないこと、そしてユーザーの流出の可能性などを詳細に説明しています。著者は、この実験による潜在的な利益は非常に低く、リスクは非常に高いと結論付けており、最終的にはStack Overflowの評判とコミュニティの活力を損なう逆効果をもたらすだろうとしています。

開発

arXivLabs:コミュニティ協力によるarXivの新機能開発

2025-02-07
arXivLabs:コミュニティ協力によるarXivの新機能開発

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

開発
1 2 166 167 168 170 172 173 174 214 215