Category: 開発

Mill JVMビルドツール:直接実行可能なアセンブリJAR

2025-01-02

Mill JVMビルドツールは、`java -jar`コマンドが不要な、直接実行可能なアセンブリJARを作成します。これは、JARファイルの先頭にシェルスクリプトを追加することで実現されます。このスクリプトはJavaランタイム環境を呼び出します。このスクリプトはUnixとWindowsの両方のシステムと巧みに互換性を持たせて設計されており、クロスプラットフォームでの実行が可能になります。この記事では、ZIPファイルの性質を利用して、ランチャースクリプトとJARの内容を連結し、シームレスな実行を実現する方法を詳細に説明しています。これにより、Javaプログラムのコマンドラインワークフローへの統合が大幅に向上します。

開発

FineCodeX:JavaScriptが必要なアプリケーション

2025-01-02

FineCodeXは、正しく機能するためにJavaScriptを有効にする必要があるアプリケーションです。ブラウザでJavaScriptが無効になっている場合、またはデバイスがJavaScriptをサポートしていない場合は、FineCodeXを使用できません。最適なエクスペリエンスを得るには、ブラウザでJavaScriptが有効になっていることを確認してください。

週末で学ぶレイ トレーシング:ゼロから驚くほど美しい画像へ

2025-01-02

このチュートリアルでは、C++を使って週末にレイ トレーサーを作成する方法を学びます。基本的なPPM画像の出力から始まり、レイ、カメラ、球体、マテリアルといった概念を段階的に導入し、最終的には、アンチエイリアシング処理が施され、拡散反射と金属マテリアルを持つ美しい画像をレンダリングできるレンダラーを作成します。ベクトル数学、レイと球体の交差判定、サーフェスの法線ベクトルの計算、マテリアルの抽象化、被写界深度などが解説され、分かりやすいコード例と美しいレンダリング画像が提供されます。プログラミング経験がなくても、このチュートリアルに従って独自のレイ トレーサーを作成できます。

FMAdd命令のエミュレーション:32ビット浮動小数点数への深い探求

2025-01-02

この記事では、ネイティブサポートがないハードウェアでFMAdd(融合乗算加算)命令をエミュレートする方法、特に32ビット浮動小数点数のSIMD実装に焦点を当てて解説します。FMAdd命令の動作と、中間浮動小数点計算に伴う二重丸め誤差を回避する方法を説明します。「奇数への丸め」という巧妙な手法と、倍精度浮動小数点数の追加精度を利用して丸め誤差を排除し、正確なFMAdd結果を得る方法を詳しく説明します。正確な加算結果と誤差項の計算についても簡単に触れ、64ビット浮動小数点数への対応については続編で扱うことを約束します。

Dropboxエンジニアリングキャリアフレームワーク:詳細解説

2025-01-02

Dropboxは、昇進チェックリストではなく、エンジニアが各レベル(例:ソフトウェアエンジニアIC1~IC7)の責任と影響を理解するのに役立つツールとして設計されたエンジニアリングキャリアフレームワークを発表しました。これは、主要な指標としてビジネスへの影響を強調し、主要な責任と専門スキルを定義します。各レベルでは、結果、方向性、人材育成、文化の各柱における期待される行動が概説されています。エンジニアはマネージャーと協力して四半期目標を設定し、フレームワークを使用して開発を導き、持続的な影響を生み出します。

mitmproxy2swagger:REST APIの自動リバースエンジニアリング

2025-01-02

mitmproxy2swaggerは、mitmproxyでキャプチャされたトラフィックをOpenAPI 3.0仕様に自動的に変換する強力なツールです。これにより、アプリケーションを実行してトラフィックをキャプチャするだけで、REST APIを自動的にリバースエンジニアリングできます。mitmproxyのフローファイルと、ブラウザの開発者ツールからエクスポートされたHARファイルの両方をサポートしています。使用方法としては、mitmproxyでトラフィックをキャプチャし、ファイルを保存してから、mitmproxy2swaggerを実行し、入力ファイル、出力ファイル、APIプレフィックスを指定します。最初の実行では、初期スキーマが生成されますが、不要なパスを削除するために手動で編集する必要があります。2回目の実行では、編集されたスキーマに基づいて、完全なOpenAPI仕様が生成され、オプションでサンプルデータを含めることができます。

開発

Zasper:データサイエンス向け超高性能IDE

2025-01-02

Zasperは、データサイエンスのためにゼロから構築された新しいIDEで、大規模な並行処理、最小限のメモリフットプリント、そして比類のない速度を誇ります。REPLスタイルのデータアプリケーションに最適で、Jupyter Notebookはその一例です。現在、Macでは完全にサポートされており、Linuxでは限定的なサポートがあります。ベンチマークによると、JupyterLabと比較してRAMとCPUの使用量が75%削減されています。Prasun Anandによって作成され、無料でオープンソースのローカル実行可能なソリューションを目指しており、最新のコンピューターのリソースを最大限に活用します。

開発

Autodesk、10年以上前のフォーラム投稿を削除:開発者からの反発

2025-01-02

Autodeskが10年以上前のフォーラム投稿をアーカイブ(事実上の削除)すると発表したことに対し、開発者コミュニティから強い反発が起きています。貴重なコードサンプル、解決策、長年にわたる共有された専門知識が失われようとしており、このリソースに依存する開発者にとって大きな損失となります。Autodeskは検索機能とユーザーエクスペリエンスの改善を理由としていますが、開発者たちはこの措置を「とんでもない愚行」と批判し、コミュニティの知識の破壊と長期的な関係への損害を非難しています。TheSwampやGitHubなどの代替プラットフォームに移行する開発者も多いです。

Kotaemon:ドキュメントとチャットできるオープンソースRAGツール

2025-01-02

Kotaemonは、独自のドキュメントとチャットできるオープンソースのRetrieval-Augmented Generation(RAG)ベースのツールです。クリーンで使いやすいインターフェースを備え、OpenAI、Azure OpenAIなどの様々な大規模言語モデル(LLM)とローカルLLMをサポートしています。ドキュメントのQAを行うエンドユーザーや、独自のRAGパイプラインを構築する開発者のどちらにとっても、Kotaemonは便利なツールとカスタマイズ可能なUIを提供します。複数のファイルタイプをサポートし、マルチモーダルQA、複雑な推論、設定可能な設定などの高度な機能を提供します。

開発

Mercure:高速で信頼性の高いリアルタイム通信ソリューション

2025-01-02

Mercureは、Webブラウザやその他のHTTPクライアントにデータ更新をプッシュするための、オープンソースで、使いやすく、高速で、信頼性が高く、バッテリー効率の良いソリューションです。Web APIを通じて提供されるリソースの非同期およびリアルタイム更新の公開に最適で、リアクティブなWebおよびモバイルアプリを強化します。プロトコルと本番環境対応のGo実装、ライブラリ、DockerイメージはGitHubで入手可能です。管理された、高スケーラビリティなバージョンもMercure.rocksで提供されています。

開発

ブログは腐る、ウィキは待つ:開発者の移行の旅

2025-01-02

ある開発者が自身のウェブサイトに、ブログは時代遅れの商品であり、最終的には腐敗するが、ウィキは無限の深淵であり、人々が探求し書き込むのを待っている、と記した。彼は自身のサイトを真新しいウィキシステムに移行し、ブログとウィキについての考えや、新しいサイト構築の過程を共有している。彼は、ウィキの方がコンテンツのダイナミックでコミュニティ主導的な性質を反映しており、ブログは静的なショーケースのように感じると主張している。活気に満ちた、絶えず進化するオンライン空間を共同で創造するために、彼は皆に新しいウィキへの参加を呼びかけている。

(j3s.sh)

AROS OS 2024:64ビットへの大きな進歩の年

2025-01-02

2024年はAROSオペレーティングシステムにとって飛躍の年でした。コアシステムであるDeadwoodは、32ビットと64ビットの両方のブランチでメジャーアップデートを受け、32ビットとの互換性のための64ビットエミュレータも含まれていました。AROS OneとTiny AROSといった主要なディストリビューションもアップデートされ、ソフトウェアとゲームのサポートが向上しました。ハードウェアの推奨事項も拡大され、A600GSが追加されました。ソフトウェアのハイライトとしては、最新のWebKitエンジンを搭載したOdysseyブラウザのアップデート、Final Writerテキストエディタの新しいリリース、Wipeout RewriteやDoom 3などのクラシックゲームの移植などがあります。全体として、AROSは2024年に大きな進歩を遂げ、64ビットの未来への準備を整えました。

開発 64ビット

SvarDOS:オープンソースOSとして復活したDR-DOS

2025-01-02

DR-DOSをベースとしたオープンソースOSであるSvarDOSは、最近FreeDOSディストリビューションから独自のEDRDOSカーネルを持つOSへと移行しました。8086または8088 PCで動作し、ネットワーク対応のパッケージマネージャーを備えています。デフォルトインストールは非常にコンパクトですが、強力なリポジトリにはネットワークドライバー、エディタ、ゲームなど400以上のパッケージが含まれています。SvarDOSはFreeDOSよりも手動での設定が必要ですが、その強力な機能とオンラインアップデートメカニズムにより、注目すべきレトロOSとなっています。

接着剤ワークは有害であると考えられる:効果的なエンジニアのためのサバイバルガイド

2025-01-02

この記事では、ソフトウェアエンジニアリングにおける「接着剤ワーク」という概念を探求しています。チームの効率性にとって非常に重要であるにもかかわらず(例:ドキュメントの更新、技術的負債の解消など)、この地味な作業はしばしば報われません。そのため、優先順位を高く設定しているエンジニアは不利になります。著者は、企業が接着剤ワークを報賞しないのは、エンジニアに全体的な効率性の向上ではなく、機能の提供に集中してもらいたいからだと主張しています。効率的な戦略は、責任を負っているプロジェクトに接着剤ワークを戦術的に適用し、成功を保証することです。これは、努力を非効率的に分散させることとは対照的です。これは、皮肉な職場政治ではありません。大企業の効率性の低さと、短期的な効率性向上よりも成長を優先することの現実を踏まえたものです。

Rails 8:ソロ開発者にとって驚くほど素晴らしい

2025-01-01

新しいRails 8アプリケーションを構築してデプロイした後、はっきりしました。Railsは素晴らしく、特に小規模で単独開発者のプロジェクトに最適です。新しい入門ガイドは素晴らしく、認証、キャッシング、リッチテキスト、CI、データベースを備えた本番環境対応のアプリケーションを簡単に作成できます。Rails 8はデータベース設定を簡素化し、SQLiteを本番環境で使用可能にしました。組み込みのCI設定とGithub Actionsの無料分数は、継続的インテグレーションを非常に簡単に行えます。新しく使いやすい認証ジェネレーターと合理化されたデプロイにより、エクスペリエンスがさらに向上します。Rails 8は、ソロ開発者にとっても開発を効率的でアクセスしやすくします。

開発

ClearSpace:スクリーンタイム削減のためのデジタルデトックス

2025-01-01

ClearSpaceは、ユーザーのスクリーンタイムを減らすために設計されたアプリです。アプリの時間制限、気を散らすもののブロッカー、集中管理ツール、チャレンジベースの習慣形成メカニズムなどの機能を提供することで、スマホ依存に対抗します。アプリには、スクリーンタイムレポート、説明責任のパートナー、マインドフルネスな呼吸エクササイズなども含まれており、より健康的なデジタル習慣を促進し、デジタルウェルビーイングを向上させます。

直感に反する最適化:Skiaにおけるパスの結合を高速化

2025-01-01

著者は、Skiaを使用して多数のベクトルグラフィックスパスの結合操作を実行する際に、パフォーマンスのボトルネックに遭遇しました。パスを反復的に結合する初期のナイーブなアプローチは遅く、Skiaのパスパルダーが最適化を提供したものの、十分な速度ではありませんでした。Skiaのパスの操作の内部の詳細を深く掘り下げることで、各パスの曲線の数がパフォーマンスに大きく影響することが判明しました。パスの結合をより小さな間隔に分割し、分割統治戦略を再帰的に適用することで、著者は大幅な高速化を達成し、最終的にSkiaのデフォルトの方法を上回りました。驚くべきことに、この方法による結合操作の数の増加は、より高速な処理をもたらしました。

サンドボックス開発:仮想マシンでの1年間

2025-01-01

複雑な開発環境の問題を回避するため、著者は仮想マシンによる開発環境に移行しました。macOS上でVMware Fusion Proを使用してUbuntu 24.04を実行し、すべての開発ツールと拡張機能を仮想マシン内に配置することで、安全で隔離されたワークスペースを実現しています。クリップボードのシームレスな共有など、一部の利便性は失われますが、全体的なエクスペリエンスはスムーズで、ホストマシンのパフォーマンスへの影響は最小限です。著者は、このアプローチが長期的な安定性とセキュリティのメリットをもたらし、小さな不便さを上回ると考えています。

MetaのGlean:大規模コードインデックス作成システム

2025-01-01

Metaは、効率性とスケーラビリティを重視して設計されたオープンソースのコードインデックス作成システムであるGleanを公開しました。Gleanはソースコードから情報を収集し、Angleと呼ばれる柔軟なクエリ言語を介して開発者ツールに提供します。革新的な増分インデックス作成により、巨大なコードベースの課題に対処し、コードナビゲーション、検索、ドキュメント生成などの機能を実現します。Gleanの汎用性は、さまざまな言語やカスタムデータスキーマをサポートし、開発者にとって貴重な資産となります。

ソフトウェア設計は知識構築である:事例研究

2025-01-01

ある企業は自社の統合サービスをSaaSプロバイダーにアウトソーシングした後、コスト上の懸念から内部代替システムSVCを開発することにしました。高いスキルを持つエンジニアX10が単独でSVCの開発を完了しました。しかし、その後を引き継いだチームはシステムの保守と修正に苦労し、極めて低い効率性しか達成できませんでした。この記事ではその理由を分析しています。ソフトウェア開発の成果物はコードではなく、エンジニアがシステムとそのビジネスロジックを理解すること、つまり「理論」です。X10が退職した後、チームはこの「理論」を欠いていたため、システムの保守が困難になり、「幽霊屋敷」のような状態になりました。著者は、ソフトウェア設計は知識構築に重点を置くべきであり、後続チームによる理解と保守を容易にし、「レガシーシステム」の作成を避けるべきだと主張しています。

Next.jsからピュアReactへ:ComfyDeployの高速化

2025-01-01

ComfyDeployチームは、ダッシュボードをNext.jsからピュアReactに移行し、ビルド時間を3分から18秒に短縮、ホットリロード時間を200ミリ秒未満に削減しました。これは、プロジェクトの成長に伴い、Next.jsのビルド時間の遅延、APIテストの困難、Vercelの高額なAPI費用などの問題が原因でした。TanStack RouterとRspackを使用したReactへの移行により、開発効率が大幅に向上し、API設計とコード構造の最適化を余儀なくされました。Next.jsの一部の機能を失いましたが、より高速なビルド、より快適な開発体験、最適化されたアーキテクチャが得られたため、妥協点は価値があると判断しました。

開発

Common Lispにおける時間処理:LOCAL-TIMEソリューション

2025-01-01

この記事では、Common Lispにおける時間処理の複雑さについて深く掘り下げ、著者のソリューションであるLOCAL-TIMEライブラリを紹介します。簡潔でコンテキスト依存的な表記から正確な科学的な表記までの、人間の時間表現の進化をたどり、サマータイムのような政治的要因によって引き起こされる混乱を強調しています。LOCAL-TIMEは、効率的なfixnumベースの表現を使用し、世界の時刻データと統合され、様々な時間計算とフォーマット変換を処理することで、Y2K問題のような、不正確な時間表現から生じるエラーを回避します。

開発 時間処理

Ruby 3.4:高速な接続、より明確な例外トレース、そして簡潔なコード

2025-01-01

Ruby 3.4がリリースされました!Chris Sinjakli氏は、3つの主要な改善点を強調しています。よりクリーンなコードのためのデフォルトのブロックパラメータ名`it`、特にデュアルスタック(IPv4とIPv6)ネットワークにおいてTCPソケット接続処理を大幅に改善するRFC8305(Happy Eyeballs Version 2)の実装、そしてデバッグを容易にするより明確な例外トレースです。これらの強化により、開発者の生産性が向上し、Rubyチームが開発者エクスペリエンスに重点を置いていることが示されています。

開発

API Parrot:あらゆるウェブサイトのHTTP APIを簡単にリバースエンジニアリング

2025-01-01

API Parrotは、あらゆるウェブサイトのHTTP APIをリバースエンジニアリングするための強力なツールです。ネットワークトラフィックを簡単に記録するためのHTTPプロキシが組み込まれており、データを分析して関連するエンドポイントを特定し、それらの関係を理解します。ユーザーは関数をカスタマイズし、入力/出力パラメーターを指定し、関連のないデータを排除し、カスタマイズされた関数をJavaScriptコードとしてエクスポートして、アプリケーションにシームレスに統合できます。API Parrotは、公開APIのないウェブサイトからも、ビジネスプロセスの自動化、システム統合、データスクレイピングを合理化します。

メタリンギスティックプログラミングの魔法:インタープリタによるコード簡素化

2025-01-01

この記事では、メタリンギスティックプログラミングの力、特にインタープリタを使用して複雑なコードを簡素化する方法を探求しています。著者はLisp式の簡素化を例として使用し、80行のSchemeインタープリタと30個のルールを構築することで、通常は数千行のコードが必要となるタスクを達成する方法を示しています。重要なのは、プログラミングパラダイムをデータ駆動型のルールマッチングに変更することで、コードの重複を大幅に回避することです。魔法ではないものの、著者はこのメタリンギスティックな抽象化は、さらなる探求に値する強力なツールであると主張しています。

MastodonウェブアプリはJavaScriptが必要です

2025-01-01

Eric Hellmanがtilde.zoneに投稿したメッセージによると、長期間開発中のプロジェクトのアップデートとして、Mastodonウェブアプリを使用するにはJavaScriptを有効にするか、またはMastodonのネイティブアプリを使用する必要があるとのことです。これは、Mastodonのウェブクライアントやユーザーエクスペリエンスの改善に関する作業を示唆しています。

開発

Notion:オールインワンワークスペース

2025-01-01

Notionは、ノート、タスク管理、Wiki、データベースを単一のプラットフォームに統合したオールインワンワークスペースです。柔軟で強力なツールを提供し、情報の整理、プロジェクト管理、チームとのコラボレーション、カスタムワークフローの構築を支援します。個人利用でもチームコラボレーションでも、Notionはニーズに適応し、生産性を向上させます。

Keeper(Y Combinator)シニアフルスタックエンジニア募集

2025-01-01

Y Combinator支援の会計士向けソフトウェア開発企業Keeperが、シニアフルスタックエンジニアを募集しています。ReactとNode.jsを用いたWebアプリケーション開発経験3年以上、TypeScript、REST API、データベースに関する深い知識が求められます。Keeperは競争力のある給与と株式を提供し、効率的なツールで会計士を支援することを目指しています。

ShredOS:すべてのプロセッサに対応した安全なディスク消去ツール

2025-01-01

ShredOSは、Buildrootを使用して構築された軽量でブート可能なLinuxディストリビューションであり、安全なディスク消去を目的として設計されています。強力なツールであるnwipeを搭載し、DoD 5220.22-M準拠を含む様々な消去方法を提供し、32ビットと64ビット両方のプロセッサをサポートしています。USBまたはCDからブート可能で、インストールは不要であり、ユーザーフレンドリーなインターフェースを提供します。また、smartmontoolsやhdparmなどのユーティリティも含まれており、ディスクの診断とメンテナンスが容易になります。

時計回り/螺旋ルール:複雑なC言語宣言のマスター

2025-01-01

この記事では、複雑なC言語の宣言を解析するための巧妙なテクニックである「時計回り/螺旋ルール」を紹介しています。宣言を時計回りに螺旋状にたどり、配列、ポインタ、関数などの要素を日本語の同義語に置き換えることで、最も複雑な宣言でも理解しやすくなります。著者は、単純なポインタ配列から入れ子になった関数ポインタまで、いくつかの例を用いてこのテクニックを実演し、`const`と`volatile`キーワードの扱い方を示しています。この方法は、混乱しやすいCコードを解読するための実践的で直感的な方法を提供します。

開発
← Previous 1 3 4 5 6 7 8 9 15 16