Содержание статьи
Начнем с того, что на самом деле DDG — не совсем поисковик. Вернее даже, совсем не поисковик, а этакий агрегатор ответов с разных поисковиков. В своей работе он использует поисковую выдачу Yahoo, Bing, Yummly, «Яндекса», «Википедии» и сотен других «надежных» источников.
Такая особенность делает DDG очень точным, если источники содержат информацию именно по этому запросу. Он легко выдает исчерпывающие ответы на запросы типа «linux df», «долгая счастливая жизнь», «Java InterruptedException» или даже «is it raining». Но как только ты введешь что-то более сложное, что-то, чего не окажется в источниках DDG, результаты будут выглядеть печально, особенно в сравнении с Google.
Тем не менее именно источники информации, а точнее построенный на их основе более сложный механизм под названием Instant Answers (моментальные ответы) и является одной из главных фишек DDG, с которой стоит начать рассказ об этом необычном сервисе.
Instant Answers
То, что в DuckDuckGo называется Instant Answers, на самом деле очень похоже на механизм работы подсказок Google: если пользователь ввел конкретный запрос и поисковая машина знает на него точный ответ, она выведет его на экран, не заставляя пользователя лишний раз кликать.
Разница здесь только в том, что Instant Answers подчиняется простым известным правилам и может быть расширен пользователями. В каталоге моментальных ответов DuckDuckGo насчитывается около 1200 рецептов, позволяющих поисковику выдавать информацию в ответ на самые разнообразные и по большей части технические запросы.
DuckDuckGo умеет показывать краткую справку по командам Linux в ответ на запрос linux cheat sheet, находить нужные пакеты Debian (например, debian version vim), выводить на экран информацию о твоем местоположении (where am i), показывать инструкцию, как удалить себя с различных сервисов (delete my facebook account), рассказывать, кто сейчас находится на орбите (people in space), расшифровывать значения смайлов ((O_o)) и даже показывать шутки о Чаке Норрисе (chuck norris jokes).
С технической точки зрения это довольно примитивная система, которая зачастую не срабатывает, если слегка изменить поисковый запрос. Но в умелых руках DDG способен на многое и превращается в полноценную командную строку.
Настоящая командная строка
Среди моментальных ответов DuckDuckGo можно найти множество таких, которые имеют мало отношения к поиску. Один из примеров — это те самые читшиты вроде linux cheat sheet, javascript cheat sheet, vim cheat sheet и множество других. По сути, они захардкожены в поисковик, так что ему даже не надо никуда обращаться, чтобы их показать.
Но есть и гораздо более интересные примеры.
IP-адреса, URL, DNS-записи и валидация почтовых адресов
Наверное, простейший запрос к DDG будет выглядеть так:
ip
Он выводит на экран твой IP, местоположение и даже почтовый индекс. Простая информация, ради которой не надо ходить на сторонние сайты.
Более сложный запрос:
dns records xakep.ru
Он покажет DNS-записи, которые относятся к домену xakep.ru. Просто и со вкусом.
При желании xakep.ru можно и пингануть:
is xakep.ru down
Получить информацию о нашем твиттере:
@xakepru
Или проверить валидность электронного адреса одного из его редакторов:
validate zobnin@gmail.com
Хочешь сократить длинную ссылку на одну из статей xakep.ru? Нет проблем:
shorten https://xakep.ru/2017/02/23/bitlocker-hacking/
Развернуть обратно? Легко:
expand https://is.gd/8TIGsL
Можешь даже сгенерировать QR-код, чтобы быстро открыть ссылку на телефоне:
qr https://is.gd/8TIGsL
И все это без перехода на сторонние веб-сайты и необходимости установки расширений браузера. Просто и понятно.
Генератор паролей и хешей
DuckDuckGo поможет тебе, если нужен стойкий пароль заданной длины:
password 10
Он даже может сгенерировать кодовую фразу:
random passphrase
Или закодировать данные с помощью алгоритма Base64:
base64 encode <текст>
Нужен хеш? Нет ничего проще. Выбирай:
md5 <текст>
sha <текст>
Если хеш уже есть, но ты не знаешь, каким алгоритмом он сгенерирован, — это тоже не проблема:
hash <хеш>
Программирование
Возможности DuckDuckGo, ориентированные на программистов, не ограничиваются читшитами и автоматическим показом ответов со Stack Overflow. Есть и другие инструменты.
Хочешь найти нужный модуль на Python в репозитории PyPI? Легко:
python pyhub
Нужна информация об одном из методов jQuery? И это можно:
jquery .ajaxsuccess
Не уверен, что правильно написал регулярное выражение? Проверь его:
regex /(?x: (w+) s (w+) )/ hacker magazine
А как насчет сложных уравнений? Считать, сколько будет дважды два, умеет и Google, а вот такое ему точно не по зубам:
compute Integral Of X^2 Dx Solve X+2>3x
На самом деле ты даже можешь написать скрипт, не покидая главной страницы DDG:
python syntax highlighter
Отправь этот запрос, и перед тобой появится полноценный редактор с подсветкой кода Python. Жаль только, запустить приложение не получится.
HTML-коды, цвета и CSS
DuckDuckGo дружелюбен не только к программистам, но к веб-разработчикам и дизайнерам. В их распоряжении есть таблица цветов (справедливости ради: плохая таблица 16-битных цветов):
color codes
Таблица цветов CSS:
css colors
И таблица символов HTML:
html chars
С возможностью поиска нужного символа:
html dollar
Другие приятные фичи
DuckDuckGo умеет не только обращаться с формулами, искать пакеты и генерировать пароли и хеш-суммы. Есть огромное количество других типов запросов, на которые он знает ответ. Он умеет находить информацию о расширении файла:
file .txt
Расшифровывать числовое представление прав доступа UNIX-подобных ОС:
chmod 755
Конвертировать строчные буквы в прописные и обратно:
uppercase xakep.ru
lowercase XAKEP.RU
Есть встроенный календарь:
calendar
Таймер:
countdown 10m
И секундомер:
stopwatch
Есть даже функция создания баннеров из символов ASCII:
figlet xakep.ru
Bang-запросы
Все перечисленные функции реализованы в рамках все того же механизма Instant Answers. Ты вводишь запрос и сразу получаешь ответ прямо на странице поиска. Но что, если тебе нужен не один конкретный ответ, а сразу несколько вариантов; не факт, например, что тебе подойдет «лучший» ответ со Stack Overflow. Для таких случаев в DDG есть механизм bang-запросов.
Bang-запросы — это одна из самых известных и часто используемых функций DuckDuckGo. Ее смысл предельно прост: если ты хочешь найти информацию на конкретном сайте, совсем не обязательно на него заходить и высматривать окно поиска. Ты можешь сделать так:
!so Java InterruptedException
И DuckDuckGo отправит тебя на страницу ответов Stack Overflow. Таким же образом можно искать в твиттере (!twitter), на eBay (!ebay), YouTube (!yt), Facebook (!facebook) и на 9 тысячах других веб-сайтов.
К слову, примерно такая же фича есть в Chrome: вбиваешь название сайта, нажимаешь пробел и вводишь поисковый запрос. Вот только Chrome требует, чтобы ты хоть раз зашел на этот сайт перед тем, как функция заработает. А bang-запросы будут работать, даже если ты используешь браузер, не хранящий данные о твоих действиях (например, Tor Browser или Brave), или, скажем, загрузишь с флешки Tails.
Операторы
Как и Google, DuckDuckGo поддерживает операторы, которые позволяют уточнить запрос. С их помощью можно, например, искать строку только на указанном сайте:
gentoo kernel panic site:linux.org.ru
Или найти только определенные типы файлов:
android security report f:.pdf
Или искать по заголовкам страниц, не учитывая их содержимое:
intitle:"iphone 8"
Из запроса можно сразу исключить слова, которые тебя не интересуют:
intitle:"iphone 8" -android
И конечно же, здесь есть операторы «и» и «и/или»:
(apple)AND((macos)OR("os x"))
Этот запрос найдет все страницы, содержащие apple macos либо apple os x.
Настройки
У DuckDuckGo есть еще одно важное достоинство — развитая система настроек, которая позволяет изменить множество самых разных параметров, от внешнего вида окна поиска (предлагаются шесть тем и возможность сделать свою) и выбора картографического сервиса по умолчанию до настроек HTTPS (по умолчанию включен) и показа рекламы (да, рекламу можно отключить стандартными средствами).
Хоткеи
- Вниз/вверх — перейти к следующему/предыдущему результату поиска;
- влево/вправо — навигация по быстрым ответам;
- / или h — перейти к строке поиска;
- t — в начало страницы;
- o — открыть выбранный результат;
- Ctrl + Enter или Cmd + Enter — открыть выбранный результат в фоновой вкладке;
- d — искать фразу на сайте выбранного результата.
Выводы
DuckDuckGo определенно не самый лучший в мире поисковик. Поэтому предлагать использовать его всем своим знакомым точно не стоит. Но это отличный инструмент, который может заменить множество веб-сервисов и облегчить жизнь программиста, веб-разработчика или редактора журнала «Хакер». Ну и конечно, DuckDuckGo не будет за тобой следить.