DZone.comのRSS

DZoneは、技術とプログラミングの多くの側面に焦点を当てる包括的なオンラインプラットフォームです。このサイトは、異なるプログラミング言語、技術、フレームワーク、ツールに関する豊富な情報を提供します。サイト上で利用できる主な機能とリソースには、技術セクターの最新のトレンドと更新に関するニュースと記事、異なるプログラミングスキルを学ぶための多くのリソースとチュートリアル、ユーザーが互いに交流し、経験と知識を共有するコミュニティがあります。さらに、DZoneはテックプロフェッショナル向けの求人情報も提供し、技術とプログラミングに興味のある人々にとって有用なリソースとして機能します。

ノートのスレッド

バグレポートは顧客からの苦情として受け付けられました。ベンダーオンボーディング管理を担当するAIエージェントが、同社が3ヶ月かけて契約しようとしていたサプライヤーに拒否メールを送っていました。誰もそれを承認していませんでした。そのカテゴリーのベンダーを拒否するように設定された者はいませんでした。エージェントは、コンプライアンス文書を分析し、それを内部ポリシーデータベースと照合した後、自律的に決定を下しました。苦情が届いた時には、その決定に至った推論の連鎖は破棄されていました。エージェントは、なぜその行動をとったのか覚えていませんでした。ログにはその行動は示されていましたが、思考は示されていませんでした。その話は、その詳細においては架空ですが、その構造においては正確です。この現象は、本番環境でAIエージェントを展開するチームがますます頻繁に遭遇している一連の問題を表しています。エージェントはアクションを実行し、その出力は可視的ですが、コンテキストの取得、モデルの呼び出し、ツールの呼び出し、そして出力に至った決定のシーケンスを含む中間的な推論は、存在しないか、不完全であるか、または事後調査をほぼ不可能にする形式で保存されています。従来のオブザーバビリティは、認知プロセスを示すシステムのために設計されていませんでした。
データベースのシーディングでよくある問題は、循環的な外部キー依存に遭遇することです。これは、挿入処理を進める前に、2つのテーブルがお互いの存在を必要とする場合に発生します。例えば、「users」テーブルは「organizations」テーブルを参照する「organization_id」を必要とするかもしれませんが、「organizations」テーブルは「users」テーブルを参照する「owner_user_id」を必要とするかもしれません。通常のINSERT文では、各挿入が外部キー制約に違反するため、この問題を解決できません。「users」テーブルは既存の組織なしではデータを投入できず、「organizations」テーブルは既存のユーザーなしではデータを投入できません。これにより、どちらのテーブルも最初にシーディングできない「鶏と卵」の問題が発生します。これを克服するには、このような外部キーのサイクルを持つPostgresデータベースのシーディングには、代替戦略が必要です。この記事では、これらのシーディングの課題に対処するための3つの効果的な方法を紹介します。また、特定の状況に最も適した戦略を選択するためのガイダンスも提供します。提供される例はPostgres 18を使用していますが、これらの概念は他のバージョンやRDBMSにも広く適用可能です。
iOSにおけるオフラインファーストの挙動は、デバイスがデータをローカルに保存できるようにする永続化の決定であり、デバイスが起動の中断、サスペンション、および接続損失を乗り越えることを可能にします。この挙動は単なるキャッシュのトグルではなく、デバイスにデータを永続的に保存させる方法です。AppleのCore Dataフレームワークは、単一デバイスでのオフライン使用のために永続データを保存するために使用されます。SwiftDataは、ストレージとライフサイクルを管理するためにModelContainerとModelContextを中心に永続モデルを整理する別のフレームワークです。ローカルレイヤーが権威あるソースになると、ネットワークは通常のインタラクションに不要になり、代わりに同期に使用されます。これは、ビューがリクエストから直接ではなく、ディスクバックド状態からレンダリングされるべきであることを意味します。オフラインファーストパターンは、ローカルデータソースをプライマリ読み取りパスとして正式化し、Appleの履歴APIは時間の経過とともに変更を追跡することでこのアイデアをサポートします。変更を追跡することにより、後続の調整は完全なリフレッシュではなく増分で行うことができ、より効率的になります。SwiftData Historyは、サーバー同期と更新に使用できる順序付けられたトランザクションと変更を記録するこの例です。全体として、オフラインファーストアプローチはローカル状態を優先し、ネットワークを二次的な考慮事項とすることで、よりシームレスで効率的なインタラクションを可能にします。
Java Flight Recorderはアプリケーションのアクティビティに関する詳細な情報をキャプチャしますが、生のファイルは効果的に探索するためにツールが必要です。Jeffreyは、JFRイベントからインタラクティブなビジュアライゼーションを作成するオープンソースのJFRアナライザーです。Jeffrey MicroscopeはJeffreyのスタンドアロンバージョンであり、ユーザーはレコーディングをインポートしてブラウザで表示できます。Jeffrey Microscopeを開始するには、ユーザーはGitHubから最新のmicroscope.jarファイルをダウンロードし、Java 25以降で実行できます。あるいは、ユーザーはDockerを使用して、petrbouda/microscopeイメージを使用してセットアップなしでJeffrey Microscopeを実行できます。サンプルのレコーディングイメージ、petrbouda/microscope-examplesも、ユーザーが自身のアプリケーションをプロファイリングする前にツールを探索するために利用できます。この記事では、Jeffrey Microscopeを使用してJFRフレイムグラフを分析し、アプリケーションがどこで時間を費やしているかを理解することに焦点を当てます。フレイムグラフはJeffrey Microscopeの主要な機能であり、アプリケーションのアクティビティの視覚的な表現を提供します。フレイムグラフを分析することで、ユーザーはパフォーマンスのボトルネックを特定し、アプリケーションのパフォーマンスを最適化できます。全体として、Jeffrey Microscopeは、アプリケーションの動作に関する洞察を得てパフォーマンスを向上させたい開発者にとって有用なツールです。