Some surprising things about DuckDuckGo

2025/12/14 6:57

Some surprising things about DuckDuckGo

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

DuckDuckGo(2008年設立)は、独自の検索インフラを構築しプライバシーを強調することでニッチブランドから認知度の高い名前へ成長しました。会社は現在までに594個以上のイースターエッグロゴ(既に504個が確認済み)を運営しており、Search Assistや新興サービスDuck.aiを支えるナレッジグラフを含む複数の独自インデックスを保有しています。2018年にはiOSとAndroid向けモバイルブラウザを、2022–23年にMac/Windows用デスクトップブラウザをリリースしました。市場シェアは依然として小規模ですが増加傾向にあり(iOSで約3%、macOSで4%、Androidで3%)、duck.comドメインの所有によりGoogleから独立していることが示されています。このサービスは2014年以降中国でブロックされており、インドネシアとインドでは断続的に検閲されています。拡大するウェブインデックスは将来的にAI駆動の検索機能を導入する可能性を示唆しています。ユーザーにとってはプライバシー重視のブラウジングが提供され、競合他社には同様のプライバシーオプションを追加させる圧力となり得ます。その結果、DuckDuckGoは広範な検索エンジンエコシステムに影響を与える代替プラットフォームとして位置付けられるでしょう。

本文

私たちは、検索エンジンで特定のクエリを入力すると表示される「イースター・エッグ」ロゴ(親しみやすいマスコット・ダックス・ブラウンが描かれています)を数百種類保有しています。現在までにサブレディットで見つけられたのは504個ですが、日々追加されているためターゲットは常に動いています。この投稿時点で合計594個です。

余暇を楽しむために自分でもロゴを作成していますし、最近では新しいポッドキャスト「Duck Tales」のエピソード(プロセスの詳細を紹介)も制作しました。専門的なロゴは比較的新しいので、長年利用しているユーザーで気付いていない場合は、該当クエリを検索しロゴがわずかに変わることに注意してください。リクエストは随時受け付けています。

「Google が所有している」という噂がありますが、事実と大きく異なります。私は米国司法省の U.S. v. Google 裁判で証人を務めました。この噂は、かつて Google が duck.com を所有し、数年間そのドメインを Google 検索へ転送していたことに起因します。公的・私的苦情の結果、2018 年にドメインを取得し、現在はメール保護サービスで利用していますが、噂は根強く残っています。

2014 年から中国ではブロックされており、インドネシアやインドなど一部国でも断続的に遮断されています。これは検索結果を検閲しないためです。2008 年設立以来、独自の検索インデックスを構築してきました。

  • 知識グラフ(ウィキペディア風回答) – 15 年以上
  • ローカル&即時回答(企業情報等)– 10 年以上
  • 検索支援と Duck.ai 用の広域ウェブインデックス – 最近数年

DuckDuckGo は、地下室でウェブをクロールし始めた頃からスタートしました。初期には FBI がハニーポットをクローリングしたことで自宅玄関に来訪するほどでした。

ブラウザ

  • iOS・Android:2018 年(7 年前)リリース
  • macOS & Windows:2022/23 年リリース
  • iOS の市場シェアは米国で 3 位(Safari と Chrome に続く)
  • Android は米国で 4 位(Chrome、Samsung、Firefox に続く)

ユーザーは保護機能と、タブやデータをクリアするカスタマイズ可能な炎のボタンを重視しています。

米国成人の約 13 % が「現在使用中」と自己申告しており、思っているよりも多いです。検索市場シェアは低めですが、多くのユーザーがデバイス間で使い分けているため(特に Android では Google が使いづらくしている)です。

  • 米国で最も高い Mac 検索シェア:約 4 %
  • iOS:約 3 %

米国は検索量の約 44 % を占め、次の 10 カ国(順)はドイツ・英国・フランス・カナダ・インド・オランダ・インドネシア・オーストラリア・日本です。

AI 戦略

全ての AI 機能をプライベート、実用的かつ任意にしています。

  • duckduckgo.com でのプライベート AI 検索回答
  • duck.ai のプライベートチャット(ブラウザに組み込む)
  • 設定はオフにでき、noai.duckduckgo.com で自動設定可能。最近は画像検索で多く生成された AI 画像を隠すオプションも追加。

ChatGPT の台頭以降も検索トラフィックは着実に増加し、Duck.ai のトラフィックはさらに速いペースで伸びています。

DuckDuckGo サブスクリプション

  • 前年立ち上げ
  • VPN、Duck.ai での高度な AI モデル、米国限定の Personal Information Removal & Identity Theft Restoration を含む
  • 30 カ国で提供。VPN は自社運営(最新セキュリティ監査・無料トライアル参照)

チームと文化

  • 世界約 30 国に 300 人以上が在籍し、米国は半数未満
  • ワークスタイルは独特:水曜・木曜の立会議を廃止。年間 1 回は全社で集まり、一週間ほどのリトリートを実施。

プライバシーへの取り組み

  • グローバル プライバシー コントロール(GPC)標準策定に重要役割を果たし、検索設定メニュー作成にも貢献。
  • テクノロジー&パブリックポリシーの修士号取得。
  • GPC 以前に独自の「Do Not Track」法案草稿を提出。
  • 共感する組織へ年次寄付(2025 年の発表で示した通り)。累計寄付額は 8 百万ドル以上。

約 20 年間利益が続いているため、関連スタートアップへの投資も行っています。

このトピックに興味を持ったら、ぜひ教えてください。イースター・エッグロゴの案やコンテンツ作成依頼を受け付けています。

同じ日のほかのニュース

一覧に戻る →

2025/12/14 7:58

Linux Sandboxes and Fil-C

## Japanese Translation: メモリ安全性とサンドボックスはプログラムの異なる部分を保護するため、両方が強力なセキュリティに必要です。純粋な Java プログラムはメモリ安全であってもファイルシステムの syscalls を通じて任意のファイルを書き込むことができるし、逆にすべての能力を取り消したアセンブリプログラムでもメモリバグがある場合がありますが、カーネルが特権 syscalls を殺すためサンドボックスから逃げられません。サンドボックスは意図的に許容範囲を広く設計しているため、攻撃者は残されたメモリ安全性のバグを利用してブローカー・プロセスへ到達することができるので、両方の防御を組み合わせるとより強固な保護が得られます。 本書では、C/C++ 用に設計され、システムコールまで安全性を保証し、init や udevd などの低レベルコンポーネントで使用できるメモリ安全ランタイム「Fil‑C」への OpenSSH の seccomp ベース Linux サンドボックス移植方法について説明します。OpenSSH は既に chroot を採用し、`sshd` ユーザー/グループとして特権なしで実行し、`setrlimit` を使用し、非許可 syscalls を `SECCOMP_RET_KILL_PROCESS` で殺す seccomp‑BPF フィルタを適用しています。Fil‑C はその runtime 内で自動的にこれらの syscalls を許可することで簡素化します。背景スレッドは存続させつつスレッド生成を防ぐため、Fil‑C は API `void zlock_runtime_threads(void)` を追加し、必要なスレッドを事前確保してシャットダウンを無効にします。 OpenSSH の seccomp フィルタは強化されています。失敗時の挙動が `SECCOMP_RET_KILL` から `SECCOMP_RET_KILL_PROCESS` に変更され、mmap 許可リストに新たに `MAP_NORESERVE` フラグが追加され、`sched_yield` が許可されています。サンドボックスは二つの `prctl` コール(`PR_SET_NO_NEW_PRIVS` と `PR_SET_SECCOMP`)で構築され、エラー検出も行われます。Fil‑C のランタイムは `filc_runtime_threads_handshake` で全スレッドとハンドシェイクし、各スレッドが no_new_privs ビットと seccomp フィルタを持つことを保証します。複数のユーザー スレッドが検出された場合、安全エラーが発生します。 メモリ安全性とサンドボックスを組み合わせることで、OpenSSH はより厳格な隔離を実現し、メモリバグによる権限昇格リスクを低減します。このアプローチは他のセキュリティクリティカルプロジェクトにも採用を促す可能性があります。

2025/12/14 9:34

An Implementation of J

## Japanese Translation: ## 改訂版要約 本書は、技術仕様の構造化された目次であり、以下のように整理されています。 1. **第0章 – はじめに** 2. **第1章 – 文を解釈する** - 1.1 単語生成 - 1.2 構文解析 - 1.3 トレイン(列車) - 1.4 名前解決 3. **第2章 – 名詞** - 2.1 配列 - 2.2 型 - 2.3 メモリ管理 - 2.4 グローバル変数 4. **第3章 – 動詞** - 3.1 動詞の構造 - 3.2 ランク - 3.3 原子(スカラー)動詞 - 3.4 オブヴァース、同一性、および変種 - 3.5 エラー処理 5. **第4章 – 副詞と接続詞** 6. **第5章 – 表現** - 5.1 原子表現 - 5.2 ボックス化された表現 - 5.3 木構造表現 - 5.4 線形表現 7. **第6章 – ディスプレイ** - 6.1 数値表示 - 6.2 ボックス化表示 - 6.3 フォーマット済み表示 主要セクションの後に、付録A〜F(インキュナブルム、スペシャルコード、テストスクリプト、プログラムファイル、外国接続詞、およびシステム概要)が補足資料として提供されます。書末には参考文献・用語集・索引が付されています。 この構成(目次 → 詳細セクション → 付録 → 参照資料)は、読者に全体枠組みを最初に把握させたうえで、必要に応じて詳細へ掘り下げたり補足資料を参照したりできる明確かつ階層的な道筋を提供します。

2025/12/14 8:39

Closures as Win32 Window Procedures

## Japanese Translation: **改訂版要約:** この記事では、Win32 のウィンドウプロシージャに追加のコンテキストポインタを渡す方法を示しています。これは、WndProc が通常 4 つしか引数を取らないため、ネイティブ API には備わっていない機能です。著者は x64 アセンブラで小さなトランスペイル(trampoline)を作成し、実行時に JIT コンパイルして 5 番目の引数スロットを挿入し、呼び出し前に必要なコンテキストを格納します。これにより、各ウィンドウがグローバル変数や `GWLP_USERDATA` を使わずに独自の状態を保持できるようになります。トランスペイルは GNU アセンブラで書かれ、`.exebuf` セクション(`bwx` フラグ付き)から 2 MiB の実行可能バッファが確保されます。C ヘルパー関数 `make_wndproc(Arena *, Wndproc5, void *arg)` は 2 つのバイトオフセットプレースホルダーを修正してトランスペイルを生成します。作成後は `set_wndproc_arg(WNDPROC p, void *arg)` を使ってコンテキストを変更できます。アロケータ例では、異なる状態オブジェクト用に複数のトランスペイルを生成したり、動的に切り替えたりする方法を示しています。この手法は、トランスペイルがアンウインドテーブルを持たないため Windows Control Flow Guard 下でも安全に機能し、グローバル変数を使わずにウィンドウごとのデータを付与する低レベルの手段を示しています。