Category: 開発

Castle Game Engineアップデート:Webターゲット、IFCサポート、mORMot連携

2024-12-18
Castle Game Engineアップデート:Webターゲット、IFCサポート、mORMot連携

Castle Game Engineチームは、Webターゲット(JS+WebAssemblyを使用してブラウザでゲームを実行)、IFC(Industry Foundation Classes)フォーマットのサポート、mORMot2を使用した共同編集機能を含むアップデートを発表しました。Webターゲットは現在基本機能を備えており、WebGLサポートが改善されています。IFCサポートでは、モデルの読み込み、変更、保存が可能で、将来的な機能強化が計画されています。共同編集機能はまだ開発中ですが、3D世界の変更とサーバー同期が既に実現しています。

Brisk:高性能レンダリングを実現するクロスプラットフォームC++20 GUIフレームワーク

2024-12-18
Brisk:高性能レンダリングを実現するクロスプラットフォームC++20 GUIフレームワーク

Briskは、レスポンシブで高性能なアプリケーションを簡単に構築できる、最新のクロスプラットフォームC++20 GUIフレームワークです。MVVMアーキテクチャとリアクティブな機能を活用し、スケーラブルなGPUアクセラレーションレンダリングを備えているため、グラフィックスに負荷のかかるプロジェクトに最適です。複数のバックエンド(D3D11、D3D12、Vulkan、OpenGL、Metal、WebGPU)をサポートし、宣言的なGUI、スタイルシート、完全なUnicodeサポートを備えています。現在、積極的に開発中であり、コントリビューションを歓迎しています。

Hadrius、創設UI/UXデザイナーを募集、最大15万ドル

2024-12-18
Hadrius、創設UI/UXデザイナーを募集、最大15万ドル

Y Combinator支援のフィンテックスタートアップ、Hadriusが創設UI/UXデザイナーを募集しています。AIを活用して金融機関のバックオフィス業務を自動化し、将来の金融危機を予防することを目指しています。ニューヨークでのフルタイム勤務で、年収は8万ドルから15万ドル、株式オプションは0.01%から0.15%です。理想的な候補者は、デザイン重視のテクノロジー企業での経験があり、Figmaに精通し、Hadriusのミッションに情熱を持つ、高いスキルを持つデザイナーです。チームにはGoogle、Chimeなどの大手企業出身のエンジニアが在籍しており、同社は急成長を遂げており、3ヶ月ごとに収益が倍増しています。

リーダーシップのための強力なツール:SQL、統計、そしてデータ主導型意思決定

2024-12-18
リーダーシップのための強力なツール:SQL、統計、そしてデータ主導型意思決定

この記事では、エンジニアリングリーダーがデータ主導型の意思決定のためにSQLと統計的手法を活用する方法を探ります。著者は、多くのエンジニアリングリーダーがデータの抽出と解釈に慣れていないことを指摘し、SQL(DuckDBなど)と統計ツールの学習を推奨しています。この記事では、記述統計、分布、信頼区間、ベイズ推論などを網羅し、Firefoxのバグ追跡データの分析による信頼区間の計算方法、モンテカルロシミュレーションによるプロジェクト時間推定、ベイズ推論によるプロジェクト完了確率の更新方法を示しています。この記事は、エンジニアリングリーダーにとってデータ分析スキルが不可欠であり、より正確な予測と意思決定を可能にすることを強調しています。

Canva、CIビルド時間を数時間から30分未満に短縮

2024-12-18
Canva、CIビルド時間を数時間から30分未満に短縮

Canvaのエンジニアリングチームは、継続的インテグレーション(CI)のビルド時間を平均80分から30分未満、場合によっては15分まで大幅に短縮することに成功しました。これは多角的なアプローチによって実現されました。Bazelキャッシュの問題の特定と解決、パイプライン構造の最適化、Gitリポジトリのチェックアウトとキャッシュの改善、Bazelリモートビルド実行(RBE)の活用などです。さらに、さまざまなインスタンスタイプのテストやBazel設定の調整など、広範囲にわたる実験が行われました。一連の増分的な改善により、CIの効率が大幅に向上し、コストが削減され、開発者エクスペリエンスが向上しました。

GitHubプロジェクトted:チューリングマシンベースのファイルエディタ

2024-12-18
GitHubプロジェクトted:チューリングマシンベースのファイルエディタ

tedはGoで記述されたコマンドラインツールで、提供されたチューリングマシンのルールに従ってファイルを編集できます。ログファイルの処理が必要になったことから着想を得ており、状態マシンを使用して必要な情報を正確に抽出します。正規表現のマッチング、sedコマンドの実行、変数の代入、キャプチャと出力の制御など、さまざまな操作をサポートし、複数行のキャプチャ、正規表現キャプチャグループ、ファイルの先頭/末尾への移動などの機能を提供します。

Homescreenアプリ:ホーム画面体験の再定義

2024-12-18

Homescreenは、スマートフォンのホーム画面体験を改革するために設計されたアプリです。従来のスマートフォンデスクトップの限界を打ち破り、ユーザーによりパーソナライズされ、効率的で便利なインタラクション方法を提供します。ユーザーはウィジェット、テーマ、レイアウトをカスタマイズして独自のホーム画面を作成し、生産性と楽しみを向上させることができます。Homescreenは単なるデスクトップの置き換えではなく、スマートフォンの使用方法に対する革新的なアプローチです。

センサーデータの奪還:クラウドからの解放

2024-12-18
センサーデータの奪還:クラウドからの解放

この記事では、組み込みソフトウェアエンジニアが、メーカーのサーバーを迂回することで、クラウド接続されたラドンセンサーのデータ制御を取り戻した方法を詳細に説明しています。ネットワークトラフィックの分析を通じて、エンジニアは、センサーがサーバー証明書を正しく検証していない脆弱性を発見しました。ローカルDNSサーバーとカスタムPython Webサーバーを活用することで、エンジニアはセンサーの生データを正常に傍受して読み取りました。これにより、プログラミングによるアクセスが可能になり、メーカーのサーバーがダウンした場合でも機能が継続的に維持されます。この記事では、ネットワークセキュリティの重要性と、DNSトラフィックに関連するプライバシーリスクについても強調しています。

ブラウザ拡張機能「refoorest」が植林詐欺の疑い

2024-12-18
ブラウザ拡張機能「refoorest」が植林詐欺の疑い

Colibri Hero社のブラウザ拡張機能refoorestとImpact Hero SDKに関する調査で、植林活動と偽装した欺瞞的なアフィリエイトマーケティングスキームが明らかになりました。この拡張機能は植林数を水増しし、インセンティブ付きのレビューや共有を通じてユーザーデータを悪用しており、SDKは適切な開示なしに過剰なユーザー権限を取得し、Chromeウェブストアのポリシーに違反しています。この記事では、偽の推薦文、財務の非透明性、データセキュリティの脆弱性など、不透明な慣行のパターンを暴き、同社の環境責任に関する主張に深刻な疑問を呈しています。

RubyのJSON最適化:パート1

2024-12-18

この記事では、Rubyの`json` gemを最適化して、最速のJSONパーサーおよびジェネレーターにする方法について説明しています。複雑な技術ではなく、プロファイリングに基づいた簡単な最適化、例えば、冗長なチェックの回避、より安価な条件の優先順位付け、設定コストの削減、ルックアップテーブルの使用などが適用されました。これらの改善は、CコードとRubyコードの両方に適用されます。これらの最適化により、`json` gemのパフォーマンスが大幅に向上し、`oj`などの代替手段と競争できるようになり、Monkey Patchingの必要性が減り、`oj`に関連する安定性と互換性の問題が解決されました。

開発

ImPlot3D:Dear ImGuiベースの高性能なイミディエイトモード3Dプロットライブラリ

2024-12-18
ImPlot3D:Dear ImGuiベースの高性能なイミディエイトモード3Dプロットライブラリ

ImPlot3DはDear ImGui上に構築されたオープンソースライブラリであり、開発者に簡単で高性能な3Dプロット作成方法を提供します。ImPlotに依存せず、ImPlot3Dはラインプロット、散布図、サーフェスプレット、メッシュプロットなど、さまざまな3Dプロットタイプをサポートし、インタラクティブな回転、パン、ズーム機能を備えています。Dear ImGuiとImPlotに似た直感的なAPIにより、迅速な統合とマーカー、ライン、サーフェス、メッシュスタイルのカスタマイズが可能になり、ビルトインまたはカスタムカラーマップを選択できます。包括的なデモアプリケーションにより、ユーザーは機能の学習と活用が容易になります。

Pythonメタ循環インタープリタ:PythonでPythonインタープリタを実装する

2024-12-18

この記事では、Pythonを使ってPythonメタ循環インタープリタ(MCI)を作成する方法を説明します。MCIは、自身が解釈する言語で記述されたインタープリタであり、ホスト言語の部分集合または超集合を実装できます。著者は、MCIの実装の詳細を説明しており、Pythonソースコードの解析、抽象構文木(AST)の構築、ASTのトラバースとステートメントの実行、スコープ、シンボルテーブル、制御フロー文(whileループやif文など)の処理といった重要な概念を網羅しています。この例を通して、インタープリタのメカニズムを深く理解し、PythonのASTモジュールと組み込み関数を活用してより複雑なインタープリタを構築する方法を学ぶことができます。

Jupyter Notebook:E2Eテストとドキュメントを一つに

2024-12-18

量子コンピューティングライブラリの開発において、著者はJupyter Notebookをユーザーガイドとエンドツーエンドテストの両方として活用しました。Notebook内で環境変数(SERVER_URLなど)を読み取ることで、パラメーター化を実現し、ユーザーと自動化されたCI/CDパイプラインの両方による実行を可能にしました。Notebookの実行方法として、簡潔なnbclientと、より柔軟なnbconvert/jqの2つの方法を検討しました。最終的に著者はnbclientの簡潔さを選択し、ドキュメントのメンテナンスとコードテストを効果的に統合することで、マージリクエストごとに両者の整合性を確保しています。

開発 E2Eテスト

カオスの制御:Goにおけるエラー処理の中央集権化と構造化

2024-12-18
カオスの制御:Goにおけるエラー処理の中央集権化と構造化

この記事では、著者が成長するGoプロジェクトにおける増え続けるエラー処理の問題に取り組んだ過程を詳細に説明しています。当初、シンプルなエラー処理のアプローチは、混乱したログと追跡不可能なエラーという混沌状態へと発展しました。これを解決するために、新しいエラー処理フレームワークが設計・実装されました。このフレームワークは、名前空間コードを使用する中央集権化された構造化されたシステムを採用し、エラーを意味のあるものにし、追跡可能にします。中心となるのは、エラーコードの中央集権化された宣言です。各サービス層は、コンテキスト情報で強化された独自のネームスペースコードのみを返します。この記事では、設計上の意思決定、実装、得られた教訓、マイグレーション戦略を詳細に説明し、貴重な実践的な経験を提供します。

Go言語で記述された最新のIRCサーバーErgoがリリース

2024-12-18
Go言語で記述された最新のIRCサーバーErgoがリリース

Ergoは、Go言語で記述された最新のIRCサーバーで、セットアップと使用が簡単です。ircd、サービスフレームワーク、バウンサー(統合アカウント管理、履歴保管、バウンサー機能)の機能を組み合わせています。最新のIRCv3プロトコルをサポートしており、再ハッシュ可能なYAML設定により高度なカスタマイズが可能です。主な機能には、統合サービス(NickServ、ChanServ、HostServ)、ネイティブTLS/SSLサポート、SASL認証、LDAPサポート、高度なセキュリティとプライバシー機能が含まれています。

オープンソース5バンドイコライザーa5eq.lv2リリース

2024-12-18
オープンソース5バンドイコライザーa5eq.lv2リリース

ashafqは、オープンソースの5バンドイコライザーLV2プラグインであるa5eq.lv2をリリースしました。このプラグインは、ローシェルフ、3つのピークフィルター、ハイシェルフを備えており、アマチュアとプロのオーディオエンジニアの両方が正確なサウンドスカルプティングを行うことを目的としています。高精度フィルター係数、ステレオ処理、ユーザーフレンドリーなインターフェースを備えています。ArdourやAudacityなどのLV2対応ホストソフトウェアと互換性があり、コマンドラインで簡単にインストールして使用できます。ユーザーはGitHubで問題を報告したり、コードに貢献したりできます。

適応可能なテキストエディタ「ad」:VimとAcmeの長所を融合

2024-12-18
適応可能なテキストエディタ「ad」:VimとAcmeの長所を融合

adは、VimとKakouneのモーダル編集インターフェースと、Plan9のAcmeの拡張性アプローチを組み合わせた新しいテキストエディタです。adはテキストを実行することができ、様々なテキストエディタ機能の実装を試行するための実験場として機能します。現在、adは十分に安定しており、十分な機能を備えているため試用できますが、ドキュメントは乏しく、バグが存在する可能性があります。adの設計思想は、Vimのモーダル編集、Emacsのミニバッファ、Acmeの編集コマンドと拡張性を組み合わせ、外部ツールやプログラムとの直接的なインタラクションをサポートする快適な編集環境を目指しています。

高速テクスチャ生成:XORテクスチャチュートリアル

2024-12-18

このチュートリアルでは、各ピクセルのx座標とy座標をXOR演算することで作成されるシンプルなXORテクスチャの生成方法を説明します。ゲームやアートには理想的ではありませんが、テクスチャマッパーのテストに最適です。この記事ではXOR演算の詳細、テクスチャサイズの色輝度への影響、AND演算子とOR演算子を使用した同様のテクスチャの生成方法について説明します。XORを使用した3Dテクスチャの例も示します。

dLine:効率的なスケジュール管理のためのターミナルベースのカレンダーツール

2024-12-18
dLine:効率的なスケジュール管理のためのターミナルベースのカレンダーツール

dLineは、ターミナル内で直接カレンダー形式で重要なデータを表示するコマンドラインツールです。重要な日付を監視し、APIを介してイベントの追加を簡素化し、さまざまなイベントタイプの時系列を計算します。開発者を対象として設計されたdLineは、ターミナルを離れることなく、イベント管理とスケジュールナビゲーションを効率化します。動的ビューと静的ビュー、イベント計算機、イベントの追加、削除、表示、クリーンアップを含む堅牢なデータ管理機能を備えています。dLineは、カスタムカラースキーム、ユーザー翻訳、Googleカレンダーとの統合もサポートしています。

OpenAuth:ユニバーサルで自己ホスト型のOAuth 2.0サーバー

2024-12-17
OpenAuth:ユニバーサルで自己ホスト型のOAuth 2.0サーバー

OpenAuthは、普遍的で、標準ベースのオープンソース認証プロバイダーです。スタンドアロンサービスとしてデプロイすることも、既存のアプリケーションに埋め込むこともでき、フレームワークに依存せず、Node.js、Bun、AWS Lambda、またはCloudflare Workers上で動作します。OAuth 2.0仕様に準拠しており、カスタマイズ可能なテーマ付きUIを提供します。ライブラリであるほとんどのオープンソース認証ソリューションとは異なり、OpenAuthは、インフラストラクチャでの簡単な自己ホスティング用に設計された中央集権型サーバーです。ユーザー管理は意図的に省略されており、代わりにカスタムユーザー検索/作成ロジック用のコールバックを提供します。データストレージは最小限(更新トークンなど)で、シンプルなKVストア(Cloudflare KV、DynamoDB)を使用します。事前に構築されたUIが利用可能ですが、簡単にカスタマイズまたは完全に置き換えることができます。SSTチームによって作成されたOpenAuthは、アプリケーションの認証を簡素化します。

IncludeOS:オーバーヘッドゼロでクラウド上でアプリケーションを実行

2024-12-17

IncludeOSは、従来のOSなしでクラウド上でアプリケーションを実行できる軽量なオペレーティングシステムです。OS機能をアプリケーションに直接統合することで、高性能で安全、かつリソース効率の高い仮想マシンを作成します。IncludeOSアプリケーションは数10ミリ秒で起動し、ディスクとメモリは数メガバイトしか必要ありません。シンプルなコマンドラインツールによりビルドとデプロイが容易になり、豊富なサンプルとドキュメントにより開発者は迅速に開始できます。

SeleniumBase:強力なWeb自動化フレームワーク

2024-12-17
SeleniumBase:強力なWeb自動化フレームワーク

SeleniumBaseは、Web自動化、テスト、ボット検出回避のための堅牢なPythonフレームワークです。Selenium WebDriverを基盤とし、pytestなどのテストランナーと統合することで、クリーンな構文と、ページ要素の自動待ち時間、テストレポートの生成、ダッシュボード、複数のブラウザとオペレーティングシステムのサポートなど、幅広い機能を提供します。SeleniumBaseには、UCモードやCDPモードなど、ステルス性と信頼性を高めるためのモードも含まれており、包括的なサンプルとドキュメントにより、迅速な導入が可能です。

開発 Web自動化

CerbosがCRDTを活用した共同作業用Playgroundを構築

2024-12-17
CerbosがCRDTを活用した共同作業用Playgroundを構築

Cerbosは、複雑な認可ロジックを簡素化するために、「Playground」と呼ばれる共同作業可能なIDEとテスト環境を構築しました。シームレスな共同作業を実現するために、彼らはコンフリクトフリー複製データ型(CRDT)を利用しています。CRDTは、分散システムにおけるコンフリクトを自動的に解決します。この記事では、CRDTについて解説し、YjsやAutomergeなどの一般的なライブラリを比較し、カスタムCRDTを構築することの課題と可能性について議論しています。Cerbosは、CRDTをBackend-for-Frontend(BFF)アーキテクチャと統合し、WebSocketをデータ転送に、IndexedDBをローカル永続化に使用することで、堅牢な共同作業プラットフォームを構築しています。グローバルな共同作業とデータ永続化の課題についても説明されています。

安全ではないRustを少し安全にする:安全ではないコード、CおよびC++ライブラリを含む検証ツール

2024-12-17
安全ではないRustを少し安全にする:安全ではないコード、CおよびC++ライブラリを含む検証ツール

Rustの人気は、コンパイル時にメモリと並行性のエラーを排除できることに由来しますが、その`unsafe`コードブロックはこれらのチェックを回避する可能性があります。この記事では、CまたはC++ライブラリから呼び出されるコードを含む、安全ではないRustコードを検証するためのツールを探ります。実行時エラー検出ツールであるサニタイザと、未定義の動作を決定的に検出するインタープリターであるMiriを紹介します。サニタイザは、範囲外のメモリへのアクセス、データ競合などを検出し、Miriはコードスニペットを使用してより正確なエラーレポートを提供します。ただし、Miriは現在、C/C++からFFIを介して呼び出されるコードをサポートしていないため、そのような場合はC/C++コンパイラのサニタイザを使用する必要があります。これらのツールは、`unsafe`コードを処理する場合やC/C++ライブラリと対話する場合でも、Rustコードの安全性和信頼性を向上させます。

BYOJS:ネイティブJavaScriptによるWeb開発

2024-12-17

BYOJSプロジェクトは、大規模なフレームワークに頼るのではなく、コアJavaScriptを使用してWebアプリケーションを構築することを提唱しています。TypeScriptなどのフレームワークや言語が人気のある一方で、BYOJSは、コアJS言語を使用して効率的なWebアプリケーションを構築することは失われた技術だと主張しています。疎結合のライブラリを密結合のフレームワークの代わりに使用することを推奨しており、タスクを完了するのに必要な最小限の強力なツールを選択し、簡潔なコードを優先することを提唱しています。このプロジェクトは、シンプルなキーバリューストレージAPI、非同期イベントエミッタ、モーダルラッパーなど、便利なユーティリティを提供しています。すべてのコードはMITライセンスで提供されています。

ネットワークセキュリティのブレークスルー:「地獄のネットワーク」で侵入者を罠にかける

2024-12-17
ネットワークセキュリティのブレークスルー:「地獄のネットワーク」で侵入者を罠にかける

オウル大学のSensorFuチームの研究者たちは、LaBrea tarpit技術に触発された、斬新なネットワークセキュリティ防御システムを開発しました。このシステムはARPリクエストをインターセプトし、SYN-ACKレスポンスを遅延させることで、ネットワーク上に多数の仮想デバイスを作成し、侵入者を混乱させます。これにより、攻撃者は実際のデバイスの特定に多くの時間を無駄にすることになり、管理者には脆弱性を修正するための貴重な時間が与えられます。テストでは、このシステムによってスキャン時間が数時間にまで延長され、攻撃の成功率が大幅に低下することが示されました。軽量で効率的で、展開も容易なこのシステムは、あらゆる規模の組織に堅牢なネットワークセキュリティを提供します。

Surfer Protocol:個人データ管理のためのオープンソースフレームワーク

2024-12-17
Surfer Protocol:個人データ管理のためのオープンソースフレームワーク

Surfer Protocolは、個人データに基づいてアプリケーションをエクスポートおよび構築するためのオープンソースフレームワークです。多くのプラットフォームに分散されているデータの問題に対処するために、Surfer Protocolはソリューションを提供します。様々なアプリやサービスからデータをエクスポートするためのデスクトップアプリケーションと、このデータを使用してアプリケーションを構築するためのPython SDKで構成されています。ユーザーはSurfer Protocolを活用して、パーソナライズされたAIモデルを作成したり、大手テクノロジー企業からデータの制御を取り戻したり、デジタルレガシーを残したりすることができます。

Hooklistener:ビジュアルWebhookデバッグ&テストツール

2024-12-17
Hooklistener:ビジュアルWebhookデバッグ&テストツール

Hooklistenerは、Webhookの可視化、デバッグ、テストのためのオンラインツールです。リアルタイムペイロード検査、ローカルテスト機能、カスタムスケジューリング、実行可能なアラート、チームコラボレーション機能を提供します。ユーザーはエンドポイントを簡単に設定し、Webhookを受信および分析し、スケジュールされたタスクを使用してワークフローを自動化できます。Hooklistenerは、さまざまなニーズに対応する無料および有料プランを提供しており、開発者がWebhookをより効率的に管理およびデバッグできるようにします。

OCRの挑戦:サン=シモンの回想録のデジタル化

2024-12-17

著者は数週間かけて、19世紀後半の18世紀フランスの回想録『サン=シモンの回想録』をOCRを使ってデジタル化しました。この45巻の大作は300万語以上あり、画像としてオンラインで公開されていますが、読みづらいです。目標は、読みやすく、検索可能で、コピー可能なテキスト版を作成することでした。課題は、画像の品質が低く、ページ領域(ヘッダー、本文、余白の注釈、脚注など)の区別が困難だったことです。OCRにはGoogle Vision APIを使用し、Pythonプログラムで結果を処理して、異なる領域のテキストを識別・分離しました。大規模言語モデル(LLM)は脚注の参照を信頼できる方法で処理できませんでしたが、著者はプログラムを改良し、手動による校正を取り入れることで、最初の巻を公開することができました。

1 2 206 207 208 210 212 213 214 215