イベント駆動型プログラミングの再考:PHPにおける双方向オブザーバーパターン

2025-09-01
イベント駆動型プログラミングの再考:PHPにおける双方向オブザーバーパターン

従来のオブザーバーパターンはオブザーバー中心です。イベントは受動的な反応を引き起こします。このPHP Observerパッケージは、視点を見直してエミッターに焦点を当てます。エミッターはシグナル(イベント、プラン、問い合わせ、コマンド)をディスパッチし、オブザーバーはカウンターシグナルを返すことで双方向の対話を実現します。これにより、在庫状況に基づいた注文のキャンセルや、ライブラリの動的な構成など、複雑なワークフローを動的に処理できます。このパッケージは7種類のシグナルタイプ、堅牢なエラー処理、オブザーバビリティ機能を提供し、レスポンシブなエミッター駆動型アプリケーションの構築に最適です。

続きを読む

静的リンクの悪夢:SDKプロバイダーの嘆き

2025-07-22
静的リンクの悪夢:SDKプロバイダーの嘆き

SDKプロバイダーとして、動的リンクと静的リンクの両方のオプションを提供することが求められています。静的アーカイブ(.a)は一見単純に見えますが、危険でいっぱいです。リンカのデフォルト動作はアーカイブを原子化し、オブジェクトファイルを選択するため、膨張したバイナリや、コンストラクタ/デストラクタの順序付けの問題によるランタイムクラッシュにつながる可能性があります。-Wl,--whole-archive は役立ちますが、必要かどうかに関係なく、すべてのライブラリファイルを含めることを強制します。静的アーカイブ内の名前の衝突も大きな問題です。これらの課題を克服するために、著者は新しい「Static Bundle Object」(.sbo)ファイル形式を提案しています。これにより、共有オブジェクトのシンボル可視性の保証が得られ、多くのリンクの問題が回避されます。バイナリのサイズ最適化を多少犠牲にしても、安定したリンクエコシステムの方が価値があるというのが著者の主張です。

続きを読む
開発

Rustで全てを書き直した結果、解雇された

2025-07-22
Rustで全てを書き直した結果、解雇された

6人のチームは、Node.js、Redis、AWS Lambda、MongoDBを使ってマイクロサービスを構築していましたが、パフォーマンスのボトルネックに悩まされていました。チームで最も静かなKabirが、Rustで画像パイプラインを書き直すことを提案しました。懐疑的な意見もありましたが、Kabirは一人で書き直しを完了しました。リリース後、パフォーマンスグラフは急上昇しましたが、1ヶ月後、チーム全員が解雇されました。この物語は、大きな技術的改善でも、仕事の保証にはならないことを示しています。会社の意思決定は、技術的なメリットを超えることが多いのです。

続きを読む
開発

ポリゴン数ではなく、マイクロトライアングルこそレンダリングパフォーマンスの真の敵

2025-07-19
ポリゴン数ではなく、マイクロトライアングルこそレンダリングパフォーマンスの真の敵

ポリゴン数がレンダリングパフォーマンスを決定するという旧来の考え方は時代遅れです。現代のレンダリングは、マイクロトライアングルによって大きく影響を受けます。この記事では、非常に小さな三角形(10x10ピクセル未満)は、GPUが三角形が1ピクセルしかカバーしていなくても2x2ピクセルブロック全体を計算するため、指数関数的にレンダリングコストが高くなると主張しています。著者は、「ワイヤーフレームビューの密度」に注目し、ビューがソリッドに近づいたら低いLODに切り替えたり、遠方のオブジェクトには単一のLODとイミテーターを使用することを提案しています。EpicのNaniteテクノロジーは、コンピュートシェーダーとスクリーン空間シェーダーを使用して、マイクロトライアングルのレンダリングコストを最小限に抑えています。

続きを読む
開発 LOD最適化

Kimi研究者による「退屈さへのアンチテーゼ」デザイン:反復、協調、そして不可能な三角形

2025-07-19
Kimi研究者による「退屈さへのアンチテーゼ」デザイン:反復、協調、そして不可能な三角形

Kimi研究者チームによるAI研究レポートのUIデザインは、簡単な道のりではありませんでした。初期の洗練されたUIは「退屈」と判断され、「退屈さへのアンチテーゼ」となるデザイン基準が設定されました。ケーススタディ、チームワーク、そして数え切れないほどの反復を通して、「美しさ、インタラクティブ性、データの忠実性」という「不可能な三角形」に挑戦しました。Bentoレイアウト、イタリック体と太字体の組み合わせ、そして繊細なJSアニメーションなどの要素を用いて、ユーザーエクスペリエンスを向上させました。チームは、共同作業と継続的な反復の重要性を強調しています。

続きを読む
デザイン

リバースプロキシ深掘り:接続管理の課題と進化

2025-07-12
リバースプロキシ深掘り:接続管理の課題と進化

この記事では、リバースプロキシの内部動作と接続管理の複雑さについて深く掘り下げます。シングルスレッドからマルチスレッド、マルチプロセス、そしてソケットシャーディングを使用したイベント駆動アーキテクチャまで、リバースプロキシは高並列処理に対応するために大きく進化してきました。この記事では、epollによるI/O多重化の効率性や、マルチコアプロセッサにおけるマルチスレッドモデルの課題など、さまざまな手法の長所と短所を詳細に説明し、TLSサポートやプロトコルの多様性におけるさらなる複雑性についても指摘しています。

続きを読む
開発 接続管理

Tududi:シンプルになったタスク管理

2025-07-10
Tududi:シンプルになったタスク管理

ほとんどのタスクアプリは、無限のコントロールやマイクロオプションが並ぶダッシュボードのようなものです。新しいタスクを作成すると、色の選択、優先度レベル、繰り返し設定、共同作業者、ラベル、サブタスク、プロジェクトグループ、タイムライン、サブタスクのタスク、サブプロジェクトのタスクのサブタスクなど、タスクの内容を書く前に多くの設定項目に直面します。Tududiは、それとは対照的に、効率的なワークフローを提供します。ツールキットを提供するのではなく、Tududiは効率性を提供します。

続きを読む
開発

LLMによる右から左へのコード記述の困難さ:q/kdb+の場合

2025-07-09
LLMによる右から左へのコード記述の困難さ:q/kdb+の場合

大規模言語モデル(LLM)は、右から左への評価順序を持ち、演算子の優先順位がないq/kdb+言語でコードを記述する際に課題に直面します。著者は、LLMがこれらの規則に従って正しいコードを生成することに苦労し、Pythonとqの構文を混同することが多いことを示しています。この記事では、LLMが右から左へのコーディングを困難に感じる理由を探り、Qythonを解決策として提案しています。QythonはPythonに似た言語で、qコードにコンパイルされ、LLMのPythonに関する専門知識を利用して、qの独自の構文の困難を回避します。実用的な例によって、Qythonの有効性が示されています。

続きを読む
開発

K8sチームをサーバーレスに移行させる難事業

2025-07-05

著者は、自分のK8sチームにAWSサーバーレスアーキテクチャを採用させようとしたが、失敗に終わった経験を語っています。K8sエンジニアは、コストの暴走、ベンダーロックイン、そして独自のテクノロジーへの依存を懸念していました。著者はコスト、スケーラビリティ、責任分担に関する議論を詳しく説明し、最終的には両方のテクノロジーに強みがあり、共存できることを認めています。ユーモラスな筆致で、テクノロジーチーム内部の意見の衝突が描かれ、企業におけるクラウドネイティブ技術導入の困難さを反映しています。

続きを読む
開発

週末に7日間の計算問題を解決する方法

2025-06-24
週末に7日間の計算問題を解決する方法

SaaSアプリケーションの価格スライダーが、MLモデルから15秒の遅延を引き起こしていました。完全な事前計算にはほぼ7日かかります。著者は、ガウス分布を巧みに使用して価格ポイントを戦略的にサンプリングし、中央範囲をより高い精度で優先し、端に向かって精度を下げました。事前計算は週末に完了し、デモの失敗を回避しました。

続きを読む

AWSからの脱出:デンマーク企業がISO 27001認証を維持しながらクラウドコストを90%削減する方法

2025-06-21
AWSからの脱出:デンマーク企業がISO 27001認証を維持しながらクラウドコストを90%削減する方法

デンマークの従業員管理会社は、AWSから移行することに成功し、クラウドコストを90%削減しました。米国クラウドプロバイダーのコンプライアンス上の懸念と高コストに直面し、HetznerやOVHcloudなどのヨーロッパのプロバイダーに移行しました。Ansibleによるインフラストラクチャ・アズ・コード、Prometheus/Grafana/Lokiによる監視、そしてセキュリティ・バイ・デザインのアプローチにより、コスト削減だけでなく、データ主権とセキュリティコンプライアンスの強化を実現しました。また、ヨーロッパでのホスティングを販売ツールとして活用し、ブランド信頼性を高めました。

続きを読む
テクノロジー

衛星画像を用いた石油貯蔵タンクの占有率算出:初心者向けガイド

2025-06-17
衛星画像を用いた石油貯蔵タンクの占有率算出:初心者向けガイド

TankerTrackers.comは、衛星画像とタンカートラッキングデータを使用して、不透明な世界の石油市場に光を当てています。この記事では、衛星画像を使用して石油貯蔵タンクの直径と高さを測定し、影の変化に基づいて占有率を推定する方法を詳しく説明しています。異なる日付の画像を比較することで、石油量の変更を追跡でき、市場トレンドの分析に役立ちます。この方法は、公開されている情報と画像分析を巧みに活用し、石油市場分析に新たな視点をもたらします。

続きを読む
テクノロジー 石油備蓄 衛星画像分析

普遍的ベーシックインカム(UBI)の実験、あと何回必要?

2025-06-17
普遍的ベーシックインカム(UBI)の実験、あと何回必要?

政府からの定期的な無条件の現金給付という普遍的ベーシックインカム(UBI)のアイデアは、依然として物議を醸している。労働意欲を殺し、社会を麻痺させるという懸念がある。しかし、ドイツで行われた最近の広範な実験など、増加する証拠は、これらの懸念が誤っている可能性を示唆している。結果は、UBIが広く怠惰を引き起こさず、むしろいくつかのプラスの影響を示したことを示している。これは、UBIの実現可能性が広く受け入れられるまで、あと何回実験が必要なのかという疑問を投げかける。

続きを読む
その他

LLMトレーニングの三つの神殿:事前学習、ファインチューニング、RLHF

2025-06-10
LLMトレーニングの三つの神殿:事前学習、ファインチューニング、RLHF

レキシコニアの隠された山岳聖域で、古代の書記官たちは三部構成の神殿で訓練を受けています。起源の殿、命令の部屋、強化の闘技場です。起源の殿では、書記官たちは膨大な量のテキストを読み、言語パターンを学習する事前学習が行われます。命令の部屋では、厳選されたテキストを使用して、書記官たちをより良い出力に導くファインチューニングが行われます。強化の闘技場では、人間のフィードバックによる強化学習(RLHF)が用いられ、人間の審査員が書記官たちの回答をランク付けし、良い回答を褒め、悪い回答を罰します。また、一部のエリート書記官は、LoRAスクロールとアダプターを使用して、モデル全体を再トレーニングすることなく、回答を微調整することができます。この三翼の神殿は、大規模言語モデルのトレーニングの完全なプロセスを表しています。

続きを読む

ベーシックインカム:タダの金ではなく、より自由な人生

2025-06-09

ドイツの研究によると、ベーシックインカム(UBI)は怠惰を生むのではなく、精神的な健康、自立性、寛大さを向上させたことが示されています。月額1200ユーロの支給でも雇用率は変わらず、よりやりがいのある仕事を探すことを促しました。UBIは貯蓄、寄付、共有も増加させ、女性の自立性を高めました。AIによるプログラマー大量解雇を受けて、UBIは米国が検討すべき概念であり、アラスカの石油収入分配プログラムがその可能性を示しています。

続きを読む
テクノロジー

データベースの一貫性:基礎を超えて

2025-06-02
データベースの一貫性:基礎を超えて

この記事では、高並行環境下でのデータベーストランザクションの一貫性の課題について掘り下げています。Spring Bootの例を用いて、大量の売上データ処理において、デフォルトのページングと冪等性チェックがどのようにデータの不整合(行の欠落や重複更新)につながるかを示しています。この記事では、データベースの分離レベル(READ UNCOMMITED、READ COMMITED、REPEATABLE READ、SERIALIZABLE)と楽観的ロック/悲観的ロック戦略を詳細に説明しています。最終的に、REPEATABLE READ分離レベルと楽観的ロックを使用することで、データの不整合を効果的に解決し、パフォーマンスを大幅に向上させています。

続きを読む
開発

DIY家庭用太陽光発電システムの設置:屋根からグリッド接続まで

2025-05-21
DIY家庭用太陽光発電システムの設置:屋根からグリッド接続まで

この記事では、自宅の太陽光発電システムをDIYで設置した過程を詳しく説明しています。屋根の交換(約2万ドル)、300ポンドのバッテリーの設置(安全と手順に注意)、インバーターと太陽光パネルの接続(IronridgeマウントとTigoオプティマイザーを使用)、そして最終的にグリッドへの接続(電圧の問題解決とPTOの取得)など、様々な作業が含まれています。著者は材料のミスや配線のミスなど、いくつかの課題に遭遇し、その解決策と貴重な教訓を共有しています。最終的にシステムは稼働し、余剰電力を送電することで、電気料金を大幅に削減することに成功しました。

続きを読む
ハードウェア

RustでJavaプロジェクトを強化する:JNI統合の実践ガイド

2025-05-18
RustでJavaプロジェクトを強化する:JNI統合の実践ガイド

この記事では、パフォーマンスと効率性を向上させるために、RustコードをJavaプロジェクトに統合する方法について説明します。JNI(Java Native Interface)の使い方、メモリ管理、ロギング、非同期呼び出しの処理方法などを詳しく解説します。オープンソースプロジェクトrust-java-demoでは、プラットフォーム固有のRustライブラリを単一のJARファイルにパッケージ化し、ログの統合とRustエラーのJava例外へのマッピングを行う方法を示しています。また、CompletableFutureを使用してRustの非同期関数の呼び出しを処理し、Javaスレッドのブロックを回避する方法についても説明します。

続きを読む
開発

ミッション・インポッシブル:現実世界におけるAIエージェントの管理

2025-04-30
ミッション・インポッシブル:現実世界におけるAIエージェントの管理

この記事では、ソフトウェア開発など様々な分野におけるAIエージェントの有効な制御に関する課題と戦略を探ります。著者は経験から得た教訓を共有し、綿密な計画とAIエージェントのコンテキスト制限の重要性を強調しています。ツール選び、タスク計画、計画の作成と改訂、計画のテスト、そしてより大きな問題の発見といった手法について詳しく説明し、ルール、パフォーマンスの回収、モデルの選択、コスト管理といった重要な側面にも触れています。また、Cursorなどのツールを使って再利用可能な計画を作成し、計画を段階的に実行し、継続的に改訂とテストを行うことでAIエージェントの信頼性を向上させ、効率的なソフトウェア開発を実現する方法を詳細に説明しています。

続きを読む
開発 計画管理

単一プロンプトからの機能的ロゴ作成ツール:LLMの可能性と限界

2025-04-25
単一プロンプトからの機能的ロゴ作成ツール:LLMの可能性と限界

著者は、Aiderで単一のプロンプトを使用して、エクスポートオプションを含む完全に機能するロゴ作成ツールを生成しました。コードスニペットは、LLMがフォントリンク、依存関係、インラインCSSスタイルを生成する能力を示しており、リンクされたCDNライブラリの最新のSHAハッシュさえも含まれています。しかし、Sonnet 3.7を使用してコードを拡張すると、プロジェクトの複雑さが大幅に増加し、最終的にコンパイルできないコードになりました。著者は、ClaudeやGPT-4oなどのさまざまなLLMにおけるコード生成と拡張機能の違い、コンテキストウィンドウサイズ、出力制限などの要因がLLMアプリケーションに与える影響を探求しています。LLMのコンテキストウィンドウと出力制限の限界が、重要な課題として強調されています。

続きを読む
開発

ローカルLLM推論:可能性は巨大だが、ツールは成熟する必要がある

2025-04-21
ローカルLLM推論:可能性は巨大だが、ツールは成熟する必要がある

この記事では、llama.cpp、Ollama、WebLLMなどのローカルLLM推論フレームワークの性能ベンチマークを行っています。結果は、llama.cppとOllamaが非常に高速であることを示していますが、OpenAIのgpt-4.0-miniよりも遅いままです。より大きな課題は、モデルの選択とデプロイにあります。膨大な数のモデルバージョンが圧倒的で、量子化された7Bモデルでさえ5GBを超え、ダウンロードとロードが遅くなり、ユーザーエクスペリエンスに影響を与えます。著者は、将来のローカルLLM推論には、小さくタスク固有のモデルを簡単にトレーニングおよびデプロイするためのより簡単なツールが必要であり、クラウドLLMと緊密に統合する必要があると主張しています。

続きを読む

忘れられた塩と金の構文:シリコン以前のイフリーキヤの商人がどのように商業をコード化したか

2025-04-19
忘れられた塩と金の構文:シリコン以前のイフリーキヤの商人がどのように商業をコード化したか

この記事は、シリコン時代以前の何世紀も前に、独自の商業言語「アル=ハット・アル・トゥジャリ(商業ライン)」を使用した、イフリーキヤ(現代のチュニジア南部)の商人のギルド、シフラニヤの物語を明らかにします。初期のプログラミング言語に似たこの暗号システムは、条件文、ループによる在庫管理、エラーチェックメカニズムを使用しており、ワックスで封をした巻物、結び目のついた文書、律動的な歌によって実行されました。彼らの分散型自律プロトコルのようなシステムは、さまざまな貿易ノードで機能していました。しかし、帝国の台頭とより近代的な会計方法により、「アル=ハット・アル・トゥジャリ」は最終的に忘れ去られ、砂、塩、そして物語から生まれたことを思い出させる断片を残しました。

続きを読む
その他 商業

グリッドコンピューティング、ゴールドバッハ予想検証の世界記録を更新

2025-04-19
グリッドコンピューティング、ゴールドバッハ予想検証の世界記録を更新

日本のエンジニアである@jay_gridbach氏は、開発したGridbach分散コンピューティングシステムを用いて、ゴールドバッハ予想の検証範囲を4×10¹⁸ + 7×10¹³にまで拡大し、世界記録を更新しました。GridbachはWebAssemblyを利用したクラウドベースのシステムで、ログイン不要でPCやスマートフォンからアクセス可能です。このプロジェクトは、オープンな計算リソースを通じてゴールドバッハ予想の検証を進め、数学とITへの関心を高めることを目指しています。

続きを読む
テクノロジー ゴールドバッハ予想

10↑↑15ステップ実行するRustプログラム

2025-04-16
10↑↑15ステップ実行するRustプログラム

この記事では、非常に長く実行されるRustプログラムの作成について探求します。基本的な加算演算(increment)から始めて、掛け算(multiply)、累乗(exponentiate)、そして最終的にテトレーションへと、段階的に構築することで、巨大な数10↑↑15を計算するプログラムを作成します。メモリのコピーや一時変数の使用を避け、インプレース演算に重点を置くことで、プログラムが設計されたステップ数を実行することを保証します。この記事では、簡潔なコード例を用いて実装の詳細を明確に説明しており、アルゴリズム設計とRustプログラミングの学習に役立ちます。

続きを読む

テストは無駄なコストではない:チームを加速させる方法

2025-04-05
テストは無駄なコストではない:チームを加速させる方法

この記事では、ソフトウェアエンジニアがテスト作成に抵抗する理由を探り、コード品質とチーム効率の向上におけるテストの重要性を強調しています。著者は自身の経験を元に、高圧力のスタートアップ環境であってもテストを放棄することは間違いだと説明します。この記事では、テストが単体テスト、統合テストなどの区別だけでなく、コードの中核機能を検証するコードブロックであることを強調しています。テストはオンデマンドで実行可能、迅速に繰り返すことができ、他の場所で複製し、自動化することができます。また、テストの作成によって開発者はよりテストしやすいコードを作成し、コード品質、モジュール性の向上、最終的にはチーム効率の向上につながることが指摘されています。最後に、著者はエンジニアにテストの優先順位を高く置くよう促し、生産性向上とバグ削減の鍵としてテストを捉え、AIをテスト支援に活用することを推奨しつつ、完全に依存しないよう警告しています。

続きを読む
開発

Airbnbのリスティング生涯価値フレームワーク:詳細解説

2025-04-04
Airbnbのリスティング生涯価値フレームワーク:詳細解説

Airbnbは、ユーザーエクスペリエンスを向上させるために、リスティングの生涯価値(LTV)を推定するためのフレームワークを開発しました。このフレームワークは、3種類のLTVを計算します。ベースラインLTV、増分LTV、マーケティング誘発増分LTVです。ベースラインLTVは、機械学習とリスティングデータを使用して、リスティングが今後365日間に受け取る予約の総数を予測します。増分LTVは、リスティング間の予約の食い合いを考慮に入れています。マーケティング誘発増分LTVは、内部マーケティングイニシアチブによって生成される追加価値を測定します。この記事では、ベースラインLTVの正確な測定、増分性の処理、不確実性(例:COVID-19パンデミック)への対処など、課題について説明しています。Airbnbは、LTVを使用して、高価値リスティングを特定し、ホストへの推奨事項を改善し、マーケティングキャンペーンの有効性を評価しています。

続きを読む
開発 生涯価値

AIの盲点:画像・動画生成モデルにおける鏡の反射

2025-04-03
AIの盲点:画像・動画生成モデルにおける鏡の反射

最近のAIによる画像・動画生成モデルは、驚くほどリアルな画像を生成できるようになりましたが、大きな課題が残っています。それは、鏡の反射を正確にレンダリングすることです。研究者たちは複数の主要なモデルをテストし、正しい反射を生成することに一貫して苦労していることを発見しました。モデルは、歪んだ、矛盾した、あるいは完全に間違った画像を生成することがよくありました。例えば、Geminiは猫や椅子の反射に失敗し、Ideogramはグループ写真の人の反射に苦労しました。これは重要な制約を示しています。AIによる画像生成は急速に進歩していますが、物理的な精度、例えば現実的な鏡の反射を実現することは、依然として大きな課題です。

続きを読む
AI

円弧による楕円近似:実用的な製図技法

2025-04-01
円弧による楕円近似:実用的な製図技法

従来の楕円の描画方法は、実際的な応用において限界があります。この記事では、固定半径の複数の円弧を用いて楕円を近似する手法を紹介します。この手法は、CADソフトウェアで楕円を描画し、それを等角度のセグメントに分割し、これらのセグメントの弦と半径を楕円上にマッピングすることで、近似楕円を形成する一連の円弧を作成します。このアプローチは、建築設計などの分野で特に有用であり、円弧の数と角度を調整することで、柔軟に曲線の形状を制御し、実用的で美しい形状を得ることができます。

続きを読む
デザイン 幾何学的製図

ピラネージの透視トリックの再発見:忘れられた芸術技法

2025-03-27
ピラネージの透視トリックの再発見:忘れられた芸術技法

この記事では、18世紀の芸術家ジョバンニ・バティスタ・ピラネージによって用いられた独自の透視技法を掘り下げています。伝統的な透視図法とは異なり、ピラネージのトリックは、同様の物体の連続を描写する際に、遠近法による収縮ではなく、近いものは大きく、遠いものは小さく表現するという比率を用いています。この技法は、透視図法のルールに反するものの、画像の可読性と理解を向上させます。この記事では、この技法の数学的原理を分析し、伝統的な透視図法との比較を通して、画像処理や地図作成における潜在的な応用を示しています。著者は、この技法を画像編集ソフトウェアに適用するためのアルゴリズムを開発し、画像操作に対する新しい視点を与えています。

続きを読む
デザイン 透視図法

インタラクティブなスマートケーキ:デザートに扮したカメラ

2025-03-22
インタラクティブなスマートケーキ:デザートに扮したカメラ

この記事では、著者と菓子ロボット技術者とのコラボレーションによって作られた、インタラクティブなスマートケーキの作成について詳しく説明しています。カメラに似せてデザインされたこのケーキは、カメラ、LED、サーマルプリンター、その他のインタラクティブなコンポーネントを組み込んでいます。顔認識機能があり、写真撮影、パーソナライズされたレシートの印刷が可能です。この記事では、ハードウェア、ソフトウェア、コード、組み立てプロセスについて詳細な手順を示し、美味しく写真撮影もできるケーキが完成します!

続きを読む
← Previous 1 3