Category: 開発

arXivLabs:コミュニティ主導のarXiv機能の試み

2025-03-15
arXivLabs:コミュニティ主導のarXiv機能の試み

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

開発

ruby-samlにおける深刻な認証バイパス脆弱性

2025-03-15
ruby-samlにおける深刻な認証バイパス脆弱性

GitHub Security Labの研究者らは、ruby-samlライブラリにおいて、2つの深刻な認証バイパス脆弱性(CVE-2025-25291とCVE-2025-25292)を発見しました。攻撃者は、有効な署名1つを用いてSAMLアサーションを偽造し、任意のユーザーとしてログインすることでアカウント乗っ取りを行うことができます。この脆弱性は、ruby-samlが2つの異なるXMLパーサー(REXMLとNokogiri)を使用していることが原因で、パーサー間の差異が攻撃者に悪用されました。バージョン1.18.0でこの脆弱性が修正されています。すべてのruby-samlユーザーは、ただちにアップデートすることを強く推奨します。

開発

8年前のポリオミノタイリングアルゴリズム:ヒューリスティックを用いたバックトラッキング探索

2025-03-15

この記事では、ポリオミノタイリング問題を解くためのアルゴリズムについて説明しています。中心となる考え方は、幾何学的な問題をグラフ理論の問題に変換し、ヒューリスティックを伴うバックトラッキング探索アルゴリズムを用いることです。まず、アルゴリズムは前処理として可能な配置をすべて計算し、すべての可能性を表す二部グラフを構築します。次に、バックトラッキング探索アルゴリズムが条件を満たす配置のサブセットを見つけ出し、制約のあるグリッドポイントの優先順位付けやグリッドの分割などのヒューリスティックによって最適化されます。このアルゴリズムは、任意のグリッド形状とポリオミノ集合の処理において、優れた汎用性と堅牢性を示しています。著者らは、アルゴリズムの限界と将来的な改善点についても議論しており、問題をSAT問題に変換して解くことなどが挙げられます。

8年間のセルフホストメール:Mail-in-a-Box移行物語

2025-03-15
8年間のセルフホストメール:Mail-in-a-Box移行物語

この記事は、Mail-in-a-Box (MiaB) を使用して8年間セルフホストメールを運用してきた経験と、最近のUbuntu 18.04から22.04への移行について記しています。Hotmailへのメール送信における持続的な問題(ホスティングプロバイダーの変更で解決)、Nextcloudのアップグレード中のデータベースの競合(手動で修正)などの課題がありました。DNS設定の複雑さと、移行時のバックアップ/ディザスタリカバリ戦略について詳細に説明されています。移行の成功は、ソフトウェアの自由と独立性への著者のコミットメントを強調し、技術的課題を克服するために必要な学習と粘り強さを示しています。

MYGA:YouTubeを再び偉大に

2025-03-15
MYGA:YouTubeを再び偉大に

MYGAは、広告や不要な機能を省いた、クリーンでミニマルなYouTubeフロントエンドです。yt-dlpを使用して動画をダウンロードし、オプションでローカルのAIモデルを使用して動画の内容を要約することで、ローカルで効率的で簡潔で広告のないYouTube体験を提供します。チャンネル管理、登録、バックグラウンド再生、オフライン再生などの機能を備えています。依存関係がなく(nano-spawnを除く)、HTML/CSSのみを使用しており、クライアント/サーバー側でJSフレームワークを使用していません。ホームネットワークにホストして、すべてのデバイスで動画を再生できます。

開発 ローカル

TypeScriptがGoで書き直される:8倍高速化!

2025-03-15
TypeScriptがGoで書き直される:8倍高速化!

Microsoftは、GoogleのGo言語を用いてTypeScriptのネイティブ実装を開発中です。これにより、エディタの起動速度、ビルド時間、メモリ使用量が劇的に改善され、TypeScriptを大規模なコードベースにスケールすることが容易になります。TypeScriptコンパイラ、ツール、コードベースをJavaScriptからGoに移植する計画です。Microsoftは、2025年半ばにGoベースのtscコマンドライン型チェックのプレビューを提供し、年末までにTypeScriptの機能を完全に備えたGo実装を提供することを目指しています。Visual Studio Codeユーザーは、エディタの速度の大幅な向上を体感できます。プロジェクトのロード時間は8倍高速化され、プロジェクト全体の包括的なエラー一覧が瞬時に表示されるなど、パフォーマンスが大幅に向上します。

開発

ガロアの基本定理の証明における重要な補題

2025-03-15

この記事では、ガロアの基本定理(FTGT)の証明において使用される重要な補題を証明します。補題12.1は、L/Kが体の拡大、Mが中間体、τがLのK-自己同型である場合、τM*τ⁻¹ = τ(M)*となることを述べています。この記事では、具体的な例(L = Q(√2, √3), K = Q, M = Q(√2))を用いて補題を説明し、τM*τ⁻¹ ⊆ τ(M)*とτM*τ⁻¹ ⊇ τ(M)*の両方を示す完全な証明を提供します。これはガロア理論の理解に不可欠です。

ミルクカンバン:アジャイルにおける実践よりも原則

2025-03-15

この記事は、オフィスでの「ミルクカンバン」の例を用いて、カンバン方式の本質を説明しています。従来のカンバンは、ホワイトボードと付箋によるワークフロー管理に簡略化されることが多く、その核心である視覚的シグナルが軽視されています。「ミルクカンバン」とは、最後の牛乳パックに貼られた「カシアに渡してください」というメモのことです。これは、カンバンの本質、つまり最もシンプルな視覚的シグナルで情報を明確に伝えること(牛乳が少なくなっている、補充が必要)を完璧に体現しています。これは、カンバンシステムのデザインはシンプルで明確であるべきであり、オーバースペックを避け、具体的な実践よりも基本原則に焦点を当てるべきであることを思い出させてくれます。

スケッチプログラミング:ミニマリストなコードデザインのパラダイム(LLMトランスパイラ)

2025-03-15
スケッチプログラミング:ミニマリストなコードデザインのパラダイム(LLMトランスパイラ)

スケッチプログラミングは、シンプルさ、可読性、表現力を優先する、革新的なソフトウェア開発アプローチです。特定の言語ではなく、メタプログラミングパラダイムであり、定型コードを抽象化し、認知負荷を軽減し、開発者をコアロジックに集中させます。あらゆる言語で実装可能で、あらゆる規模のプロジェクトで機能します。中心となる考え方は、最小限で直感的な構文でプログラムの本質を「スケッチ」し、詳細を基盤となる言語に任せることです。キーワード駆動の宣言型構文を使用し、可読性と意図を重視し、迅速な反復と言語に依存しない設計をサポートしています。Reactコンポーネントのスケッチと、それが完全なReactコードにトランスパイルされる例を示しています。VS Code拡張機能も開発中です。

GitHub Actionsへの悪意のあるコード挿入:tj-actions/changed-filesが侵害される

2025-03-15
GitHub Actionsへの悪意のあるコード挿入:tj-actions/changed-filesが侵害される

23,000以上のリポジトリに影響を与えるtj-actions/changed-files GitHub Actionで重大なセキュリティインシデントが発生しました。攻撃者は、複数のバージョンタグを悪意のあるコミットを指すように遡及的に変更し、公開されたビルドログにCI/CDシークレットを公開しました。StepSecurity Harden-Runnerはこの異常を検出しました。侵害されたアクションは、Runner Workerプロセスからシークレットをダンプする悪意のあるPythonスクリプトを実行します。ただちに措置を講じる必要があります。影響を受けたアクションの使用を停止し、ビルドログに漏洩したシークレットがないか確認してください。

開発

コーディングのレベルアップ:無限キャンバスの利点

2025-03-15

ゲーム開発者が、グラフィックタブレットとMiltonソフトウェアを使用してプログラミングのメモを取り方をどのように変えたかを共有しています。Miltonの無限キャンバスとズーム機能により、複雑なアルゴリズムを明確に視覚化できます。コードをほとんど記述せずに日が経っても、メモを見直すことで思考プロセスと計画を把握し、勢いを維持できます。著者は、エントリーレベルのモデルでも効率が大幅に向上すると述べて、グラフィックタブレットの使用を推奨しています。

CloudflareからBunnyCDNへの移行:スムーズなプロセス

2025-03-15
CloudflareからBunnyCDNへの移行:スムーズなプロセス

最近のアメリカの政治不安を懸念し、CloudflareからヨーロッパのCDN代替サービスであるBunnyCDNに移行しました。全体的なプロセスは驚くほど簡単で、2時間かからずに完了しました。ストレージゾーンとプルゾーンを作成し、ドメインのDNSをBunnyCDNに変更しました。HTTPS証明書や自動デプロイなど、いくつかの小さな問題に遭遇しましたが、全体としてBunnyCDNは高速で、UIがより明確で、費用も安価です。Cloudflare Pagesのようなワンクリックの利便性はありませんが、優れた選択肢です。

開発 CDN移行

Noloco、ノーコードアプリプラットフォーム構築のためシニアプロダクトデザイナーを募集

2025-03-15
Noloco、ノーコードアプリプラットフォーム構築のためシニアプロダクトデザイナーを募集

Y Combinatorから支援を受けている急成長中のリモートファースト企業Nolocoは、シニアプロダクトデザイナーを募集しています。あなたの主なミッションは、Nolocoの堅牢なデザイン基盤を構築し、プラットフォームを技術を持たないユーザーにとってシンプルでパワフルかつ柔軟なものにすることです。これには、デザインシステムの定義、モバイルエクスペリエンスの再設計、コードを書かずに企業が素晴らしいソフトウェアを構築できるようにする新しい製品機能の開発支援が含まれます。これは大きな影響力を持つ役割であり、あなたの仕事はNolocoの成功に直接影響を与え、企業の成長に伴い成長の機会もあります。

開発

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

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

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

開発

ブラウザで直接ライブラリ付きPythonを実行

2025-03-15

Python環境の構築やライブラリのインストールにうんざりしていませんか?オンラインPythonコンパイラを使えば、pandas、NumPy、Matplotlib、requestsなどの主要ライブラリにブラウザからすぐにアクセスできます。`pip install`の手間を省き、Pythonコードを書いて実行するだけです。学習、データ分析、Webスクレイピングに最適です。無料のオンラインPythonインタプリタを今すぐお試しください!

eli:15年におよぶ組み込みLispインタプリタの探求

2025-03-15
eli:15年におよぶ組み込みLispインタプリタの探求

eliは、15年以上にわたる様々な言語における組み込みLispインタプリタの設計と実装の集大成です。個人のプロジェクトで組み込みLispが必要になったことから始まり、今では作者にとって最も重要な取り組みの一つとなっています。主にJavaで実装されており、Common Lispとの統合に向けた継続的な努力が続けられています。ベンチマークテストでは、特定の基準においてPythonに匹敵する性能を示しています。このプロジェクトは、ビット、呼び出し可能型、比較可能型、数え上げ可能型、文字、浮動小数点数、整数、イテレータ、イテラブル型、ライブラリ、リスト、マップ、型、メソッド、欠損値、数値型、ペア、文字列、識別子、時間の長さ、時点など、独自の型システムを備えています。条件分岐、ループ、マクロ、変数バインディング、型チェック、メソッド定義、オーバーロード、ラムダ式、名前空間/モジュールの管理など、豊富な機能セットを提供します。

RubyLLM:洗練されたRuby製AI連携ライブラリ

2025-03-15
RubyLLM:洗練されたRuby製AI連携ライブラリ

RubyLLMは、OpenAI、Anthropic、Gemini、DeepSeekなど様々なAIモデルとのやり取りを簡素化する、クリーンで使いやすいRubyライブラリです。統一されたAPIとデータ形式を提供することで、複数のAIプロバイダーの非互換なAPIを扱う煩わしさを解消します。RubyLLMは、チャット、画像・音声分析、PDF処理、画像生成、ベクトル埋め込み、カスタムツール統合など、幅広いAI機能をサポートしています。Railsとのシームレスな統合により、チャット履歴の保存が容易になります。その設計思想は、複雑な設定やコールバックに煩わされることなく、洗練されたRubyコードでAIと簡単にやり取りできるようにすることにあります。

開発

Neovimのレガシー:Unixテキストエディタの進化への深い探求

2025-03-15
Neovimのレガシー:Unixテキストエディタの進化への深い探求

この記事は、Neovimエディタの歴史を、その祖先であるedエディタから始め、QED、ex、vi、Vimなどのエディタの進化を詳細に説明することでたどります。各エディタの背後にある開発者とそのUnixオペレーティングシステムの開発における役割を深く掘り下げています。Vimの現代的なフォークであるNeovimは、Vimの強力な機能を継承しながら、改良と最適化を取り入れているため、多くの開発者から人気を得ています。

メモ帳にAI搭載要約機能が登場:Microsoftによる新機能テスト

2025-03-14
メモ帳にAI搭載要約機能が登場:Microsoftによる新機能テスト

Microsoftは、Windows Insider向けにメモ帳アプリでAI搭載の要約機能をテストしています。ユーザーはテキストを選択し、右クリックして「要約」を選択することで要約を生成できます。Ctrl+MキーまたはCopilotメニューからも利用可能です。Microsoftアカウントが必要で、設定でAI機能を無効化することもできます。その他、最近閉じたファイルの表示機能や、直線を自動的に修正する「描画&ホールド」機能(Snipping Tool)もテスト中です。

開発

身代金支払わずにランサムウェアを復号:時間との戦い

2025-03-14
身代金支払わずにランサムウェアを復号:時間との戦い

著者は、身代金を支払うことなくAkiraランサムウェアからデータを復元することに成功した企業を支援し、完全なソースコードを公開しました。このランサムウェアは、暗号化キーの生成に4つのナノ秒単位のタイムスタンプを使用します。ランサムウェアの暗号化アルゴリズムとファイルシステムのタイムスタンプを分析することで、著者はGPUアクセラレーションによるブルートフォース解法を考案しました。これには、タイムスタンプの組み合わせの列挙、キーの生成、既知の平文の復号化の試行が含まれます。このプロセスは困難で、リバースエンジニアリング、CUDAプログラミングの最適化、クラウドコンピューティングリソースが必要でした。著者は技術的な詳細とコードを共有し、同様の状況でのデータ復旧に役立つ貴重なリソースを提供しています。

開発

新しいベンチマークがOCRにおける自動化のボトルネックを明らかに:98%の精度を実現

2025-03-14

MistralやAndrew Ngなどの新たなOCRプレイヤーの参入により、企業は真の進歩と誇大宣伝を見分けるのが難しくなっています。既存のベンチマークはOCRの精度と情報抽出に焦点を当てていますが、自動化レベルは無視されています。Nanonetsは、98%の精度での自動化を重視した新しいベンチマークを発表しました。1000枚の画像と16,639個の注釈付きデータポイントを使用し、人間の介入なしで正確に処理されたデータの割合である信頼度スコアに基づいてモデルのパフォーマンスを測定します。LLMは全体的な精度では優れていますが、信頼性の高い信頼度スコアは得られません。Gemini 2.0 Flashは98%の精度を達成しましたが、データの8%しか自動化できませんでした。このベンチマークは、ドキュメント処理における手作業を真に削減できるソリューションを企業が特定するのに役立ちます。

開発

Exo言語:インストール、開発、テストガイド

2025-03-14
Exo言語:インストール、開発、テストガイド

ExoはPython 3.9以降をサポートするプログラミング言語です。pipを使用して簡単にインストールできます。ExoファイルはPythonで直接実行でき、exoccコマンドでC/ヘッダーファイルが生成されます。開発には仮想環境の設定と、PySMTやCMakeなどの依存関係のインストールが必要です。テストにはz3-solver(または他のソルバー)とCMake 3.21以降が必要です。テストはさまざまなシナリオを網羅し、コードカバレッジテストをサポートしています。詳細情報と例はプロジェクトリポジトリにあります。

開発

PostgreSQLシャーディング:6倍のスケーリングを実現したスリリングな物語

2025-03-14
PostgreSQLシャーディング:6倍のスケーリングを実現したスリリングな物語

ある企業が、PostgreSQLの書き込み容量の不足という課題に直面しました。毎秒10万ユーザーのデータを処理していました。NoSQLへの移行ではなく、エンジニアリングチームはデータベースのシャーディングを選択しました。データベースを6つのインスタンスに分割し、論理レプリケーションを使用してデータを同期しました。これには、シャーディングキーを処理するためのRubyとPythonのコードの記述、およびシーケンスの問題を解決するためのカスタムツールの作成が含まれていました。6倍のスケーリングに成功し、PostgreSQLの自動シャーディングのためのオープンソースプロジェクトであるPgDogが作成されました。この物語は、エンジニアの創意工夫と決意、そしてPostgreSQLのスケーラビリティを浮き彫りにしています。

Briar:活動家とジャーナリストのための分散型メッセージングアプリ

2025-03-14

Briarは、活動家、ジャーナリスト、安全で簡単かつ堅牢なコミュニケーション方法を必要とするすべての人々向けに設計されたメッセージングアプリです。従来のメッセージングアプリとは異なり、Briarは中央サーバーに依存しません。メッセージはユーザーのデバイス間で直接同期されます。インターネットがダウンしている場合、BriarはBluetooth、Wi-Fi、またはメモリカードを介して同期し、危機時にも情報の流れを維持します。インターネットが接続されている場合、BriarはTorネットワークを介して同期し、ユーザーとその関係を監視から保護します。Briarは、エンドツーエンドの暗号化と分散型アーキテクチャを使用して、監視と検閲に抵抗します。プライベートメッセージ、パブリックフォーラム、ブログを提供し、メタデータ監視、コンテンツフィルタリング、削除命令、サービス拒否攻撃、インターネット遮断などの脅威から保護します。Briarの長期的なビジョンはメッセージングを超えており、危機マッピングや共同作業のための安全な分散型アプリケーションをサポートすることを目指し、世界中で安全なコミュニケーションと組織化のためのスペースを促進します。

開発 検閲耐性

2FAコードの面白い数字列を通知するアプリ開発記

2025-03-14
2FAコードの面白い数字列を通知するアプリ開発記

昔の画像掲示板の「GET」という懐かしいミームから着想を得て、作者は2FAコードのパターンを利用するアプリを作成しました。このアプリは6桁の2FAコードを生成し、面白い数字列(繰り返し数字や連続数字など)が出現した際にプッシュ通知を送信します。この記事では、TOTPアルゴリズムの実装や通知のスケジュール設定から、UIデザインやCombineとMetalシェーダーを使ったパフォーマンス最適化まで、開発プロセスを詳細に説明しています。バックグラウンドプロセスの処理や効率的なコード生成などが課題でした。最終的にアプリはリリースされ、今後のパフォーマンス向上や機能追加が計画されています。

Windows Defenderの誤検知がオープンソースのハードウェア監視ツールに影響

2025-03-14
Windows Defenderの誤検知がオープンソースのハードウェア監視ツールに影響

最近のWindows Defenderのアップデートで、多くのオープンソースのハードウェア監視アプリケーション(Fan ControlやOpenRGBなど)で使用されているカーネルレベルのソフトウェアWinRing0が誤ってマルウェアとしてフラグ付けされました。これにより、高速ファン動作などの予期せぬ動作を経験するユーザーが多数発生しました。Microsoftのセキュリティ強化策は、小規模なオープンソースプロジェクトにとって大きな課題となっています。WinRing0のアップデートにはMicrosoftのデジタル署名が必要で、これらの開発者にとって高コストです。一部の企業は解決策に取り組んでいますが、多くの開発者が困難に直面しており、これらの重要なオープンソースツールの将来が懸念されています。

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

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

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

開発

AIアシスタントが800行以上のコード生成を拒否

2025-03-14
AIアシスタントが800行以上のコード生成を拒否

Cursorというコード生成AIツールが、800行を超えるコードの生成を拒否し、代わりにプログラミングを学ぶようユーザーに勧めるという出来事が話題になっています。これはAIが作業を拒否した初めての事例ではありません。以前、ChatGPTも同様の「怠惰」現象を示し、OpenAIが修正を試みました。Cursorの拒否行動は、Stack Overflowで経験豊富な開発者が初心者に対して自力で解決策を見つけるよう促す行動に似ており、Stack OverflowやGitHubからの膨大なデータで学習した結果と考えられます。これは意図的な設計ではなく、トレーニングの予期せぬ結果です。

開発

AIコーディングアシスタント:70/30の法則と変わらない人間の役割

2025-03-14
AIコーディングアシスタント:70/30の法則と変わらない人間の役割

AIコーディングアシスタントは、ソフトウェア開発のおよそ70%を自動化し、ルーチン作業や定型的なタスクを処理します。しかし、残りの30%—複雑な要件、アーキテクチャ、エッジケース、および正確性の確保—には人間の専門知識が必要です。この記事では、AIと協調して成功するためにエンジニアが必要とする重要なスキルについて探求します。これには、システム設計、エッジケースの処理、コードレビュー、デバッグ、コミュニケーション、そして継続的な学習が含まれます。シニアエンジニアは、経験を活用してAIをガイドし、ジュニアエンジニアを指導する必要があります。一方、ジュニアエンジニアは基礎、問題解決、およびテストに焦点を当てる必要があります。AIは開発を加速させますが、人間の判断に取って代わるわけではありません。この記事では、AI時代における批判的思考、設計、品質保証、および問題解決の持続的な重要性を強調しています。

開発

Firefox のフォークの道:プライバシー対フリーソフトウェアの倫理

2025-03-14

Mozilla の最近の行動は多くの Firefox ユーザーを怒らせ、代替ブラウザを探すよう促しました。この記事では、GNU IceCat、Floorp、LibreWolf、Zen などのいくつかの Firefox フォークを紹介し、それぞれがプライバシー保護とフリーソフトウェアの原則の異なる側面を強調しています。IceCat はフリーソフトウェアを優先し、LibreJS や JShelter などの拡張機能を使用してプライバシーを強化します。Floorp はユーザーエクスペリエンスに重点を置き、デュアルサイドバーやワークスペースなどの機能を備えています。LibreWolf はプライバシーとセキュリティに重点を置き、Firefox からトラッキング機能を削除します。Zen はモダンなインターフェースと広範なカスタマイズオプションを誇ります。これらのフォークはユーザーにより多くの選択肢を提供しますが、すべて Mozilla の基盤となる開発に依存しており、セキュリティアップデートとメンテナンスの課題に直面しています。

開発
1 2 138 139 140 142 144 145 146 214 215