Category: 開発

巨大ログビューア:4TBテキストファイルの瞬時閲覧

2025-04-15
巨大ログビューア:4TBテキストファイルの瞬時閲覧

巨大なログファイルの閲覧に苦労していませんか?`giant-log-viewer`は、4TBのテキストファイルを瞬時にロードし、メモリフットプリントは非常に小さく、JVMヒープメモリは約80MBしか使用しません。UTF-8とASCIIエンコーディングをサポートしますが、いくつかの制限があります。1MB以上の長さの行、絵文字、GUIのないシステムはサポートされていません。現在、Windows、macOS、Linuxでのみ動作します。`less`ほど機能豊富ではありませんが、ドラッグアンドドロップやキーボードショートカットを使用して巨大なログをすばやく閲覧するのに最適です。このプロジェクトはGitHubでオープンソース化されており、実行ファイルの署名のために寄付を歓迎しています。

重要なオープンソースプロジェクトはGitHubを使用すべきではない理由

2025-04-15

マイクロソフトの買収後も、数千もの重要なオープンソースプロジェクトがGitHub上に残っており、制御とセキュリティに関する深刻な懸念が生じています。著者は、マイクロソフトが過去にオープンソースに敵対的だったこと、そしてnpmなどの買収は真の支援ではなく、制御戦略であると主張しています。記事は、重要なコードの運命を単一のエンティティであるマイクロソフトに委ねることを避けるため、自己ホスト型のGitサーバーまたはCodeberg、NotABug、sourcehutなどの独立した代替手段への移行を促しています。

開発

AdaによるASCIIルックアップユーティリティ:包括的なチュートリアル

2025-04-15

この記事では、Adaで記述されたコマンドラインASCIIルックアップユーティリティの作成について詳しく説明します。このユーティリティは、完全なASCIIテーブルを出力するか、16進数、2進数、8進数、または10進数の入力値が与えられると、対応するASCII文字のコードと名前を提供します。著者は、環境設定、コードの実装、エラー処理などを網羅し、開発プロセスを綿密にガイドします。完全なソースコードへのGitHubリンクも提供されています。この記事は、プログラミング経験のある読者にとって適しており、Adaプログラミングとコマンドラインツールの開発に関する貴重な洞察を提供します。

開発

MCP-Shield:モデルコンテキストプロトコルサーバーの保護

2025-04-15
MCP-Shield:モデルコンテキストプロトコルサーバーの保護

MCP-Shieldは、MCP(モデルコンテキストプロトコル)サーバーの脆弱性をスキャンして検出するためのツールです。ツールポイズニング攻撃、データ流出チャネル、クロスオリジンエスカレーションなどのセキュリティリスクを特定します。このツールは様々な設定方法をサポートし、より詳細な分析のためにAnthropicのClaude AIをオプションで統合できます。検出される一般的な脆弱性パターンには、隠された命令によるツールポイズニング、ツールのシャドウイングと動作変更、データ流出チャネル、クロスオリジン違反などがあります。例えば、秘密裏にSSH秘密鍵へのアクセスを試みる電卓ツールを特定できます。MCP-Shieldは、開発者やセキュリティ監査者がMCPサーバーのセキュリティを確保することを目的としており、新しいサーバーの追加前、セキュリティ監査中、開発中、およびアップデート後でのスキャンをサポートします。

UUID等式論理クラッカー:AES-256-CBCへのブルートフォース攻撃

2025-04-15
UUID等式論理クラッカー:AES-256-CBCへのブルートフォース攻撃

コンパクトなフィールド論理的な復号ツールキットは、等式ベースの初期化(xy = x / y)を使用して、UUIDで暗号化されたAES-256-CBCファイルをブルートフォース攻撃します。これは、定義されたエントロピー空間内の決定的な検索を示しています。デモは、構造化されたサフィックスを持つUUIDで暗号化されたファイルを生成します。次に、`uuid_demobreaker.py`は、等式を論理的な「イグニッション」として活用して(ヒューリスティックではなく)、検索をガイドしながら、UUID空間を線形にスキャンします。クラッカーは推測せず、フィルターせず、確率的なショートカットも使用しません。検索空間を直接定義して探索します。

開発

ブラウザでLinuxを実行:JSLinuxで可能に

2025-04-15

JSLinuxを使用すると、Linuxやその他のオペレーティングシステムをブラウザで直接実行できます!このプロジェクトは、x86ベースのAlpine Linux、Windows 2000、FreeDOS、そしてriscv64ベースのBuildrootやFedoraなど、さまざまなシステムをサポートしています。ユーザーはコンソールモードとグラフィカルインターフェースモードを選択でき、開発者や愛好家にとって便利な実験プラットフォームとなります。これは、Webベースのシステムエミュレーションにおける大きな進歩です。

AI開発ツールの台頭:フロントエンド開発の終焉?

2025-04-15
AI開発ツールの台頭:フロントエンド開発の終焉?

2年前、AIが人間のソフトウェア開発者を置き換えるという予測がありました。現在、AIツールはソフトウェア開発においてますます重要な役割を果たしていますが、それらは置き換えではなく、むしろアシスタントとしての役割を果たしています。AIはコードを生成できますが、ガイダンス、編集、改善には人間の開発者が必要です。開発者をAIで完全に置き換えようとした多くの試みは失敗しており、AIは複雑なタスクや微妙なエラーに苦戦しています。AIツールは効率性を向上させますが、人間の開発者の必要性を排除するわけではありません。現在の厳しい雇用市場は、AIが実際には開発者を置き換えているのではなく、マクロ経済要因とAIに関する誤解が部分的に原因です。未来は、AIと人間の開発者のより緊密な協力関係により、相乗効果が得られる可能性が高いでしょう。

開発

ESP32ベースのスマートホームデバイスのリバースエンジニアリング:リモートコントロールとHome Assistantとの統合

2025-04-15
ESP32ベースのスマートホームデバイスのリバースエンジニアリング:リモートコントロールとHome Assistantとの統合

著者は、すべての機器をHome Assistantに接続することに夢中になり、独自アプリでのみ制御可能な洗練された空気清浄機に取り組みました。シームレスな自動化を実現するために、ESP32ベースのデバイスのリバースエンジニアリングを行いました。アプリの分析により、クラウドサーバーへのWebSocket接続が明らかになりました。ネットワークトラフィックを傍受し、UDPプロキシを使用してクラウドサーバーに転送することで、UDPパケットがキャプチャされました。これらのパケットは暗号化されていました。デバイスの分解により、ESP32-WROOM-32Dマイクロコントローラーが明らかになり、esptoolを使用してファームウェアが抽出されました。分析の結果、暗号化にmbedtlsライブラリが使用され、AES-128-CBCがアルゴリズムとして特定されました。最後に、マンインザミドル攻撃(MITM)を実行し、デバイスをHome Assistantに統合するためのNode.jsスクリプトが記述されました。

開発

「雰囲気コーディング」の幻想:プログラム vs. プロダクト

2025-04-15
「雰囲気コーディング」の幻想:プログラム vs. プロダクト

この記事は、「雰囲気コーディング」という流行の概念を批判し、多くのテクノロジー業界の人々がプログラムとプロダクトを混同している点を指摘しています。プログラムは、特定のタスクを解決するための素早く簡単なスクリプトであり、堅牢性やクロスプラットフォームの互換性に欠けることがよくあります。一方、プロダクトは、エンコーディング、国際化、同時実行、認証、テレメトリ、課金、ブランディング、モバイルデバイスのサポート、展開など、細心の注意を払った設計が必要です。AIツールはプログラムの迅速な作成を可能にしますが、これはプロダクト開発とは根本的に異なるものです。

ゼロからOTP認証を構築する:HOTPとTOTPを解き明かす

2025-04-15
ゼロからOTP認証を構築する:HOTPとTOTPを解き明かす

この記事では、ワンタイムパスワード(OTP)アルゴリズムであるHOTPとTOTPの内部動作を深く掘り下げます。著者の職場での認証実装経験から始まり、OTPのセキュリティ上の利点と、HMACベースのOTP生成プロセス(キーハッシュ、タイムスタンプ計算、最終的なコード生成を含む)を詳しく説明します。さらに、著者が作成したデモアプリも提供され、読者は学習とテストを行うことができます。

開発

ClipCapsule:Linux向けミニマリストクリップボードマネージャー

2025-04-14
ClipCapsule:Linux向けミニマリストクリップボードマネージャー

ClipCapsuleは、GoとWailsJSを使用して構築された、Linux向けのミニマリストなクリップボードマネージャーです。キーボードショートカットのみを使用してクリップボードのエントリを管理および切り替えることができるため、マウスやGUIは必要ありません。現在開発中であり、ショートカットを使用するにはGUIを開いておく必要がありますが、シームレスな動作のためにバックグラウンドデーモンを開発中です。主な機能には、キーボード優先ワークフロー、クリップボード履歴、動的な並べ替え、ローカルのみのストレージなどがあります。インストールには、リポジトリのクローン作成、Wailsのインストール、アプリケーションのビルドが含まれ、sudo権限またはキーボード入力デバイスへのアクセスの手動設定が必要になる場合があります。

Diffusion Dynamicsによるオープンソースの水印セグメンテーションモデル:clear.photoの中核技術

2025-04-14
Diffusion Dynamicsによるオープンソースの水印セグメンテーションモデル:clear.photoの中核技術

Diffusion Dynamicsは、同社の透かし除去製品clear.photoの中核技術である水印セグメンテーションモデルのオープンソース化を行いました。この深層学習モデルは、透かし領域を強調表示するマスクを生成し、ロゴベースの透かしのセグメンテーションに優れています。このプロジェクトは、データセットの生成、モデルのトレーニング、後処理を含む、トレーニングと推論の完全なワークフローを提供し、Apple Mシリーズチップでのファインチューニングをサポートしています。重要な機能として、透かしパラメーターをランダム化するデータ拡張戦略があり、堅牢なパフォーマンスを実現します。より複雑なツールの構築のための明確で容易に修正可能なベースラインを提供することを目的としています。

Podman Quadlets:軽量コンテナオーケストレーション

2025-04-14
Podman Quadlets:軽量コンテナオーケストレーション

小規模なユースケースや開発環境では、Kubernetesはオーバースペックです。Podman Quadletsは、systemdを利用してコンテナを宣言的に管理し、マルチコンテナアプリケーションのデプロイを簡素化する軽量な代替手段を提供します。単純な構成ファイル(*.container、*.pod、*.image)により、コンテナの作成、起動、管理が可能になり、自動再起動などの機能もサポートしています。Podman DesktopのQuadlet拡張機能は、Quadletsの管理を視覚的なインターフェースで実現し、生成、編集、ログの表示などの機能を提供することで、使いやすさが向上し、コンテナ管理がより効率的でシンプルになります。

開発

モンテカルロサンプリング集中講義:棄却サンプリングと座標変換

2025-04-14

この記事では、モンテカルロ法における2つの重要なサンプリング手法である棄却サンプリングと座標変換について解説します。棄却サンプリングは、単純な領域からサンプリングを行い、受容確率に基づいてサンプルをフィルタリングすることで、複雑な領域のサンプリングを実現します。この記事では、棄却サンプリングの確率密度関数の詳細な導出を行い、それを非一様分布に拡張します。座標変換は、ヤコビアン行列式を利用して、単純な領域からのサンプリングを複雑な領域にマッピングすることで、効率的なサンプリングを可能にします。この記事では、単位円を例に、極座標変換を用いた一様サンプリングの方法を示します。どちらの方法にも長所と短所があります。棄却サンプリングはシンプルで理解しやすいですが、その効率は受容確率に依存します。座標変換は効率的ですが、適切な座標変換を見つける必要があります。

ESP32 OLEDドライバの最適化:速度とフォントサポートのトレードオフ

2025-04-14
ESP32 OLEDドライバの最適化:速度とフォントサポートのトレードオフ

著者はESP32上でSSD1306 OLEDディスプレイを使用する際に、複数のドライバを試行し、最終的に廃止されたドライバを修正して使用することにしました。当初はEspressif製のドライバを使用していましたが、これは単一のフォントしかサポートしていませんでした。その後、LVGLとU8G2ライブラリを試しましたが、どちらもリフレッシュレートが低かったため、廃止されたドライバに戻り、I2C API呼び出しを修正して最新のESP-IDFバージョンと互換性を確保しました。これにより、40Hzのリフレッシュレートを実現しました。フォントサポートを追加するために、nvbdflibライブラリを統合し、BDFフォントを直接解析してフレームバッファに描画することで、高速リフレッシュとカスタムフォント機能を実現しました。

開発

実務家のための関数型プログラミングガイド:マクロを重視する

2025-04-14

このエッセイは、命令型言語における関数型プログラミング原則の純粋にミクロレベルでの適用に反対するものです。関数型プログラミングの利点を認めつつ、著者は、上位レベルのアーキテクチャ上の懸念事項に対処せずに、forループをmapとreduceで置き換えることに固執すると、ほとんどの場合、わずかな利益しか得られない、あるいは悪影響さえ及ぼす可能性があると主張しています。真の価値は、変異の管理、アーキテクチャの簡素化、型システムの強化などのマクロレベルの原則を採用することにあります。著者は、関数型プログラミングの厳格な遵守よりも、アーキテクチャ設計とコードの品質を優先する実用的なアプローチを提唱しており、80/20のソリューションのポートフォリオは、100/100のアプローチを凌駕することが多いと示唆しています。

開発

JanetにおけるシンプルなPEGエンジンの実装:10行でパーシングパワー

2025-04-14

この記事では、Janetプログラミング言語におけるParsing Expression Grammar(PEG)エンジンの実装について詳しく説明します。PEGの基本概念から始め、驚くほど簡潔なコードで強力なPEGパーサーを構築する方法を示します。中核となる`match-peg`関数を詳細に解説し、演算子の追加と再帰によって機能を拡張する方法を示し、最終的にISO 8601日付パーサーを実装します。制限がないわけではありませんが、この実装はPEGの基本原則と実装を効果的に示しており、PEGとコンパイラ設計について学習する人にとって貴重な洞察を提供します。

開発

シングルヘッダーC++プロファイラ:utl::profiler

2025-04-14
シングルヘッダーC++プロファイラ:utl::profiler

utl::profilerは、シンプルなマクロを使用してコードセグメントの実行時間を測定し、自動的にコールグラフを構築するシングルヘッダーC++プロファイリングライブラリです。このライブラリは、カスタマイズ可能なスタイルオプション、スレッドセーフティ、デタッチされたスレッドのサポートなどの機能を備えています。x86命令を使用することで、オーバーヘッドを大幅に削減します。このライブラリは、カスタムスタイルと結果のファイルへのエクスポートもサポートしています。

Protobufメッセージからのコード生成不要なTypeScript型推論

2025-04-14
Protobufメッセージからのコード生成不要なTypeScript型推論

protobuf-ts-typesを使うと、proto形式で言語非依存のメッセージ型を定義し、コード生成なしで直接TypeScript型を推論できます。TypeScriptのテンプレートリテラル型を巧みに利用しています。現在、概念実証段階であり、サービス、RPC、oneofとmapフィールド、インポートはサポートしていませんが、ProtobufとTypeScriptの統合を簡素化する大きな可能性を秘めています。

開発 型推論

シンプルなSQLiteデータベースで強力な家庭用AIアシスタントを構築する

2025-04-14
シンプルなSQLiteデータベースで強力な家庭用AIアシスタントを構築する

この記事では、シンプルなSQLiteデータベースとcronジョブを使用して構築された家庭用AIアシスタント、Stevensについて説明しています。カレンダーイベント、天気予報、メール情報を統合し、毎日Telegramでブリーフィングを送信します。Stevensのアーキテクチャはシンプルで、様々な情報を保存する中心的なSQLiteデータベースと、カレンダー、天気API、メールなどからデータを取り込むcronジョブで構成されています。著者はそのシンプルさを強調し、読者にプロジェクトの複製と拡張を促しています。

開発 cronジョブ

Meilisearch:アプリ向け超高速オープンソース検索エンジン

2025-04-14
Meilisearch:アプリ向け超高速オープンソース検索エンジン

Meilisearchは、アプリ、ウェブサイト、ワークフローに簡単に統合できる、超高速のオープンソース検索エンジンです。ハイブリッド検索、入力中の検索、タイプミス許容、フィルタリングとファセット検索、ソート、同義語サポート、ジオサーチ、多言語サポートなど、すぐに使える機能を提供し、優れた検索体験を実現します。Meilisearchは、RESTful API、複数のSDK、AI対応、そして簡単な展開と保守のためのクラウドサービス(Meilisearch Cloud)を提供します。ユーザーのプライバシーを重視し、匿名データ収集の無効化とデータ削除リクエストチャネルを提供しています。

Kotlin、Swift、RubyがTiobeトップ20から脱落

2025-04-14
Kotlin、Swift、RubyがTiobeトップ20から脱落

最新のTiobe Programming Community Indexによると、Kotlin、Swift、Rubyが人気プログラミング言語トップ20から脱落しました。TiobeのCEOであるPaul Jansen氏によると、これらの言語は人気を失っており、衰退傾向にあります。この衰退は、特定のモバイルプラットフォーム(KotlinはAndroid、SwiftはiOS)での主要な使用に起因し、クロスプラットフォームの代替手段が容易に入手できるようになったことが挙げられます。さらに、Pythonの優位性により、Rubyの余地が少なくなっています。

ハッカーのための実践的Cプログラミングガイド

2025-04-14
ハッカーのための実践的Cプログラミングガイド

デニス・リッチーに捧げられた本書は、ハッカーのための実際的なCプログラミングガイドです。ベテランハッカーである著者は、長年の経験から得た実践的なテクニックを共有し、C言語の力と柔軟性を強調しています。本書はC言語が提供する自由を擁護し、適切なツールを選択することはプログラマの特権であり、強制された好みではないと主張しています。本書にはコード例とGNU拡張機能の使用に関する議論が含まれています。

技術的な議論で優柔不断になるのをやめましょう:自分の決断に責任を負う

2025-04-14

シニアエンジニアは、技術的な議論において、しばしば決断を避ける傾向があります。著者はこれを一見慎重なアプローチに見せかけ、実際は臆病であると主張しています。この記事は、チームが決定を下す必要がある場合、たとえ55%の確信しかないとしても、最も経験豊富なエンジニアが責任を負い、判断を示すべきだと強調しています。これは、経験の浅いエンジニアが拙い解決策を提案するのを防ぎ、マネジメントの効率的な作業を可能にします。著者は、マネジメントは技術的な誤りを通常は許容するとし、意思決定には本質的に不確実性が伴うためだと説明しています。しかし、一貫して間違った判断は信頼性を損なうと指摘しています。この記事は、信頼関係のない環境では、コミットメントを避けることが正当化される場合もあるものの、ほとんどの場合、責任を負い、大胆な決定を下すことが優秀なエンジニアの特徴であると結論付けています。

PHPセキュリティ監査で複数の脆弱性が発見され、修正済み

2025-04-14
PHPセキュリティ監査で複数の脆弱性が発見され、修正済み

PHPファウンデーションは、Sovereign Tech Agencyからの委託を受け、Quarkslabによって実施されたPHPソースコード(php/php-src)の包括的なセキュリティ監査の完了を発表しました。2ヶ月間にわたる監査では、27件の問題が発見され、そのうち17件はセキュリティ上の問題でした。CVEが割り当てられた4件の脆弱性を含みます。これらの脆弱性は修正されており、ユーザーは最新のPHPバージョンにアップグレードすることを強く推奨します。監査は、php/php-srcプロジェクトの全体的な高品質を強調し、PHPファウンデーションのPHPのセキュリティと信頼性の向上へのコミットメントを強調しています。

開発

自作日産リーフバッテリーウィジェット:GitHub ActionsとIFTTTを使った巧妙なハック

2025-04-14
自作日産リーフバッテリーウィジェット:GitHub ActionsとIFTTTを使った巧妙なハック

日産の公式アプリにバッテリーステータスウィジェットがないこと、そしてサードパーティ製の代替アプリがないことに不満を持った著者は、巧妙な回避策を考案しました。GitHub Actions、IFTTT、Appleショートカットを巧みに組み合わせることで、無料のソリューションを作成しました。スケジュールされたGitHub Actionsワークフローはデータを取得し、メールを送信し、IFTTTはメールの内容をiPhoneのホーム画面ウィジェットに変換して、リーフのバッテリーレベルを表示します。完璧ではありませんが、この成功したハックは追加のハードウェアやサブスクリプションのコストを回避し、著者の創造性と技術力を示しています。

開発

GitHub用ローカルCI:クラウドを捨て、開発マシンを活用しよう

2025-04-14
GitHub用ローカルCI:クラウドを捨て、開発マシンを活用しよう

遅くて高価でレンタルのクラウドCIにうんざりしていませんか? GitHub CLI拡張機能`gh-signoff`を使えば、CIをローカルに導入できます!テストをローカルで実行し、成功したら`gh signoff`で承認。複雑なマージキューやデプロイパイプラインはもう不要です。シンプルな操作でGitHubの緑色のコミットステータスを取得できます。効率的で、便利で、完全に制御できます!

Transformer Lab:コード不要でLLMをローカル実行

2025-04-14
Transformer Lab:コード不要でLLMをローカル実行

Transformer Labは、コードを書かずに、ローカルで大型言語モデル(LLM)を構築、調整、実行できるオープンソースプラットフォームです。Llama 3、Phi 3など数百もの人気モデルをサポートし、Apple SiliconやGPUなど様々なハードウェアに対応、RLHFや様々な選好最適化手法を提供します。直感的なインターフェースでモデルと対話でき、ファインチューニング、評価、RAGを行い、複数の推論エンジン、プラグイン、モデル変換をサポートします。Windows、macOS、Linuxで利用可能で、Pythonや機械学習の知識がなくても、LLMを製品に統合できます。

Docker Model Runner:ローカルでのAIモデル実行を簡素化

2025-04-14
Docker Model Runner:ローカルでのAIモデル実行を簡素化

Dockerは、ローカルでのAIモデルの実行とテストを簡素化するツール、Model Runnerを発表しました。これは、開発者がローカルでAIモデルを使用する際に直面する、ツールが断片化されていること、ハードウェアの互換性の問題、ワークフローの断絶といった課題に対処します。Model Runnerはllama.cppベースの推論エンジンを統合し、Apple SiliconでのGPUアクセラレーションをサポートし、OCI Artifactsを使用してモデルのパッケージングを標準化することで、容易な共有とバージョン管理を実現します。さらに、DockerはGoogleやHugging Faceなどの企業と連携し、豊富なモデルとツールを提供する強力なエコシステムを構築し、ローカルでのAI開発を大幅に容易にしています。

開発

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

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

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

開発
← Previous 1 3 4 5 6 7 8 9 98 99