Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Закончил базовый курс html и css в Codecademy, что дальше изучать/практиковать?

Лучший ответ:
1) Без воды и на русском - Sorax
2) Я бы предпочел html5+css3, а проблемы старых браузеров решал по ходу их возникновения.
3) Можно брать сайты, но лучше не любые, а очень красивые и удобные. Мороки с ними будет больше, а значит и опыта больше. Да и красивый сайт верстать приятней.
4) В качестве редактора после многих экспериментов наилучшим показался Sublime Textсправа экран с наглядным результатом веб-страницы
Я использую guard livereload, который обновляет страницу при изменении файлаКак это выглядит. Смотреть в полном размере (кликабельно)
Очень удобная штука для написания html/css - Emmet

Худший ответ:
1. Я бы посоветовал базовый js, потом переходить на JQuery, Angular и прочее. Без JS сейчас почти никуда. пригодится, а это по js почитать.
2. Неплохой совет был про Bootstrap и LESS, но на этот счет бывают спорные мнения. Учатся быстро, могут пригодиться. Если CSS плохо знаете, то лучше немного воздержаться от LESS, подучив css. 
3. Практика - лучшая вещь. Вся теория склоняется перед ней. Из своего опыта добавлю, что многое, что почерпнете для себя из туториалов, может не пригодиться первое время и быстро позабудется. Базовые знания у вас уже имеются, можно начинать практиковать и подучивать по мере надобности.
4. Для себя выбрал Sublime Text. Если надо, могу скинуть несколько видео с его фишечками.
Вопрос: Что значит REF в языках программирования?

Лучший ответ:
REF - reference, ссылка, указатель.

Худший ответ:
REF - reference, ссылка, указатель.
Вопрос: Ubuntu: цветная иконка уведомления

Лучший ответ:
Может, update-icon-cache или gtk-update-icon-cache поможет?

Худший ответ:
Посмотрите в /usr/share/icons/ubuntu-mono-light/status/*/indicator-messages*.svg
Мне кажется, это они :)
Вопрос: Как написать простую CMS на Python?

Лучший ответ:
На чистом python будет сложно.
Выберите framework: django, flask, tornado
К примеру django. Идем в документацию.
Если совсем новичок, тогда вам — Учебник: Часть 1 | Часть 2 | Часть 3 | Часть 4 | Часть 5 | Часть 6
После прохождения этих 6 частей, я думаю что у вас почти не останется вопросов.

Худший ответ:
Ставьте mezzanine и будет вам уже и базовые документы (с wisywig редактором) и бложик и админка (и виджеты в админке) и наследование темплейтов и сами темплейты и маленькая кучка всего типа вордпресса, и инлайн редактирование, даже магазин есть Ну и это джанго приложение со всеми вытекающими. mezzanine.jupo.org
Как раз сам сейчас думаю его в проекте использовать.
Вопрос: В автомобиль планшет или GPS навигатор?

Лучший ответ:
К планшету можно прикупить OBD2 устройство и использовать еще как бортовой компьютер

Худший ответ:
А в чем между ними существенная разница? Ну кроме того, что на навигаторах операционка обычно урезана.
Вопрос: Макросы в Windows 7 CMD?

Лучший ответ:
эхм
если взять вышеупомянутый пример, то достаточно прописать путь к установленному chrome  в переменную path

Худший ответ:
start chrome youtube.com
какие проблемы?
Вопрос: Это баг ВКонтакте или как это объяснить?

Лучший ответ:
Не баг, просто Дуров

Худший ответ:
Агент поддержки #1140
Доброго времени суток, Максим!
Павел просто попросил разработчиков не обновлять данные о его посещениях.
Добра и спокойствия!
Команда поддержки Вконтакте.
Вопрос: Сортировка по схожести?

Лучший ответ:
Предложение 1: поскольку поля с фильмами представляют собой биты, то имеет смысл хранить их в виде чисел. Максимальное целое в mysql — 8-байтовый BIGINT. То есть, если всего фильмов тысяча, то потребуется полтора-два десятка таких чисел в каждой записи. Пусть N — количество таких чисел-1, userF0, ..., userFN — эти числа в записи выбранного пользователя. Тогда поиск 10 похожих пользователей в таблице с полями (user_id, f0, ..., fN) будет выглядеть так:
SELECT user_id FROM таблица
ORDER BY (BIT_COUNT(f0 & userF0) + ... + BIT_COUNT(fN & userFN)) DESC LIMIT 10;Минусы подхода: пробегать при запросе будет все записи, при добавлении новых фильмов нужно вызывать ALTER TABLE. За скорость тоже ручаться не могу.

Предложение 2: создать 1 таблицу с юзерами и столько таблиц, сколько фильмов, в каждой из которых хранить список id юзеров, выбравших фильм. Тогда поиск похожих юзеров сведется к:
SELECT tmp.user_id FROM (SELECT user_id FROM таблица1
    UNION ALL
    SELECT user_id FROM таблица2
    UNION ALL
    ...
    UNION ALL
    SELECT user_id FROM таблицаN) AS tmp
GROUP BY tmp.user_id ORDER BY COUNT(tmp.*) DESC LIMIT 10;
Минусы подхода: большое количество подзапросов, группировка.

Предложение 3: создать 1 таблицу с юзерами (users) и 1 таблицу с юзеро-фильмами (user_films), т.е. с записями о предпочтениях юзеров следующего вида (user_id, film_id). Тогда для списка фильмов выбранного юзера (film_id0, ..., film_idN) поиск похожих юзеров сведется к:
SELECT user_id FROM user_films
WHERE film_id IN (film_id0, ..., film_idN)
GROUP BY user_id ORDER BY COUNT(*) DESC LIMIT 10;
Минусы подхода: группировка.
Хотя при индексированном поле film_id может будет и не сильно медленно.

Худший ответ:
База не загнется, потому что будет искать Sphinx, если верить тому, что вы говорите. 

Могу предложить только писать 0/1 значения в виде букв в отдельное поле, что-то вроде хеша «acdghjxyz» для каждого юзера, а потом искать по простому алгоритму похожести строк.
Вопрос: Зависит ли от ампертража ЗУ емкость батареи, и не вредно ли заряжать всю ночь?

Лучший ответ:
Заряжать можно, аккумулятор это не испортит. Но надо понимать что 500мА это явно мало для вашего смарта, поэтому зарядка будет идти в три раза дольше. При использовании 2А зарядника зарядка будет идти столько же сколько и на родном.
Контроллер заряда встроен в телефон, поэтому неважно какой у вас блок питания, контролер сам вовремя отключит ток, когда аккумулятор зарядится, поэтому смело можно держать включенным в зарядное устройство.

Худший ответ:
Лучше 2А.
Не вредно.
Вопрос: Почему Google Chrome стал отображаться по-другому?

Лучший ответ:
Снести вашу версию подчистить все концы от нее на компе и поставить более старую, если с переустановкой будут проблемы, здесь решение Почему при запуске chrome появляется белое окно?

Худший ответ:
теперь это стандартный вид хрома.
Вопрос: Относятся ли методы не связанные с запросами к бд с моделью?

Лучший ответ:
вообще есть разные трактовки того что такое модель. В большинстве из них модель - это совокупность различных элементов, сущности, сервисы, интерфейсы (например если используете шаблон Repository, то в рамках модели определяется интерфейс репозитория, а реализация уже будет относиться к инфраструктурному слою) и т.д.
Довольно популярна так же следующая концепция (я бы даже сказал она логична) - модель ничего не знает о том где и как хранятся данные, так что все методы по работе с базой вынесены в отдельный слой - инфраструктурный. 
Рекомендую к прочтению: blog.8thlight.com/uncle-bob/2012/08/13/the-clean-a...

Худший ответ:
Насколько я понимаю, это вопрос идеологии. Кто-то работает с толстыми моделями, кто-то с толстыми контроллерами. Т.е. одни предпочитают делать некоторые операции с данными в модели, а другие в контроллере.
Вопрос: Как правильно в jQuery назначить событие для динамически созданного элемента (набора)?

Лучший ответ:
jQuery('.container').on('click', 'a.dynamicLink', function() {
    // Ваш обработчик. jQuery(this) указывает на кликнутую ссылку. Ссылки в ".container" могут создаваться динамически, но сам контейнер - нет.
});

Худший ответ:
А что с bind не так?
Вопрос: Что делать, если нету доступа к домену?

Лучший ответ:
попробуйте найти контакты владельца через whois (у некоторых регистраторов есть функция - отправить сообщение владельцу домена, типо как тут www.reg.ru/whois/admin_contact), если не поможет, то ждите пока срок регистрации закончиться.

Худший ответ:
Погодите сайт старый ваш? Если да и есть доказательства, например там указаны ваши контакты и так далее, обратитесь в ТП хостера и попробуйте договорится о сбросе логинов паролей и предоставлению доступа, возможно потребуется писменый запрос с печатью или что-то подобное, но это же пустяки=)
Вопрос: Как хранить текст статей для сайта на github?

Лучший ответ:
В вики уже все давно реализованно, зачем вам это засовывать в гит?

Худший ответ:
А вести две ветки master (версия на сайте) и dev/new/etc для новых версий статей? Популярный и отлаженный способ.
Вопрос: Как подбирать имя переменным, классам и Id для элементов верстки?

Лучший ответ:
1) не используйте ID
2) BEM
3) Css Modules

Худший ответ:
ИМХО, название переменных и классов в первую очередь должны быть очевидными. Я – фан БЭМ-нотации. Но предпочитаю разделять классы следующим образом: для разметки / для поведения. Если надо повесить обработчик события, обычно поступаю так: class="some-bem-class js-handler"
Вопрос: Как в Yii2 в ckeditor от 2amigos добавить плагин?

Лучший ответ:
Все решается достаточно просто без лишних телодвижений:
Во вьюхе формы указываете:<?php echo $form->field($model, 'description')->widget(CKEditor::className(), [
            'options' => ['rows' => 6],
            'preset' => 'full',
            'clientOptions' => [

                'extraPlugins' => 'widgetbootstrap',
            ]
        ]) ?>

<?php 
$this->registerJs("CKEDITOR.plugins.addExternal('widgetbootstrap', '/js/widgetbootstrap/', 'plugin.js');");
Папку с плагином копируете, например, в @app/web/js
То есть должно получиться что-то наподобие этого - web/js/widgetbootstrap/plugin.js

Худший ответ:
1) Asset
Не делайте так Загрузил его в \vendor\2amigos\yii2-ckeditor-widget\src\assets\ckeditor\plugins
Всё только через компосер. Что-то изменять в папке вендор по негласным правилом запрещено.
Вопрос: Как или где купить Ipad 2  в Москве по адекватной цене ?

Лучший ответ:
Москва-Питер: купе, верхняя полка ~700 руб.
Питер-Хельсинки: паром 2000, автобус 1000-1500 (туда-обратно)
В Хельсинки берём девайс по адекватной цене, бонусом получаем прогулку по городу и вечером валим обратно.

Худший ответ:
Спросите у boomburum он точно знает! ;)
Вопрос: За что сайт могут внести в единый реестр РФ?

Лучший ответ:
В этой стране за что угодно.

Худший ответ:
Вносят по "стуку" - не разучились еще граждане стучать
Стукануть может та же персона, что написала комент на сайте
Письмо могут отправить на несуществующий ящик - их не волнует, что ты его не получил
Чаще всего о блокировке узнаешь из-за падения трафа
Такие дела
Вопрос: Как в Excel свести данные из нескольких столбцов в один?

Лучший ответ:
Не совсем понял вопрос, но если нужно объединить A2+B2+C2+...+J2, то можна так=CONCATENATE(A2, " ", B2 , ... , J2)
или=A2 & " " & B2 & ... & J2
где вместо пробела, в кавычках, вписуете любой разделитель, или ничего(если нужно просто объединить вместе строки).

Худший ответ:
раз
www.planetaexcel.ru/plex
два
csved.sjfrancke.nl
Вопрос: Почему wifi медленно работает на ubuntu 15,04?

Лучший ответ:
переустанови винду!

Худший ответ:
wifi медленно работает на ubuntu 15,04
1. WiFi не медленно работает на Ubuntu 15.04
2. ... это у вас медленно работает WiFi ... (проблема не в 15.04 - проблема в руках)
3. работа сетевой подсистемы (её компонент) не может зависеть от дистрибутива - это компетенция ядра Linux вообще, и оно одинаково работает что в Ubuntu, что в Fedora и т.д. по списку...как исправить, помогитеее
Ну, прежде всего - научиться конкретно задавать вопросы!
Вопрос: Риторический вопрос: при разметке внешнего харда на один большлй раздел, лучше сделать его первичным или логическим?

Лучший ответ:
Только первичный. Логический раздел это, грубо говоря, раздел в разделе.

Худший ответ:
Не было такой проблемы во времена Windows 98 (про далекие галактики сказать не могу), всегда единственные разделы были первичными.
Если диск не системный, то его можно переназначить. От типа партиции это не зависит.
Вопрос: Какой ОС лучше учить бабушку?

Лучший ответ:
На мой взгляд, Windows все-таки полегче в освоении.
По второму вопросу - можно использовать Yandex.DNS

Худший ответ:
У Elementary OS (сборка Ubuntu) очень простой минималистичный интерфейс. Какое-то время стоял на ноутбуке у моих бабушки и дедушки, но в итоге поменяли на Windows 7 из-за проблемами с натройками интернета, который у них был через pppoe.
Вопрос: Индексируют ли Яндекс и Google текст, подгружаемый через JavaScript?

Лучший ответ:
Поисковые боты не умеют выполнять javascript, однако есть спецификация (у яндекса своя, у гугла своя, у bing-а своя, но различающаяся лишь терминами, для разработчика с большего все одинаково) позволяющая говорить поисковикам индексировать динамический контент.
https://support.google.com/webmasters/answer/17499...

Худший ответ:
Да, но не всегда и есть тонкости. Старайтесь избегать этого.
Вопрос: Где хранятся в базе настройки rewrite_rules?

Лучший ответ:
https://wordpress.org/plugins/rewrite-rules-inspec...  вот так можно проверить правилаfunction do_rewrite(){
    // Правило перезаписи
  $ref_p="названиестраницы";
//p_id = 88 - id страницы названиестраницы
    add_rewrite_rule( '^' . $ref_p . '/([^/]*)/([^/]*)/?', 'index.php?p=88&param1=$matches[1]&param2=$matches[2]', 'top' );
add_filter( 'query_vars', function( $vars ){
        $vars[] = 'param1';
        $vars[] = 'param2';
        return $vars;
    } );
}
add_action('init', 'do_rewrite');`
Затем обновить правила перезаписи

Худший ответ:
Потому что $matches (как и любая другая переменная) не работают в одинарных (') скобках. Используй ".
Вопрос: Как создать почтовый сервер для отправки сообщений?

Лучший ответ:
Например, так https://www.digitalocean.com/community/tutorials/h...
Больше ответить нечего, ибо деталей никаких не предоставлено.

Худший ответ:
Вам надо настроить базово любой smtp-сервер. Это может быть postfix, exim, sendmail. Я бы взялся за postfix у него конфиги очень простые. Настраивается правкой пары строчек (думаю инструкцию Вы нагуглите без проблем).
Естесствено, что без настройки других дополнительный демонов типа dovecot-а приниматься почта не будет.
Вопрос: Как отследить сайты, посещенные пользователем до и после посещения одного сайта?

Лучший ответ:
Можно узнать какие из указаных вами сайтов пользователь посещал.
Вот, например, красным цветом выделено какие сайты вы посещали: jsfiddle, далее нужно каким-то образом передать "красные" ссылки на сервер. (возможно надо сделать скриншот и отправить его на сервер). 
Просто получить посещённые ссылки средствами JS к сожалению (или к счастью) невозможно.

Худший ответ:
без трояна на компе юзера(в том числе браузернеые приложения) - нет.
Вопрос: Отображение сайта в разных браузерах

Лучший ответ:
Я люблю верстать пока не посмотрю на результат в IE. Порой бывает уместным часть стилей написать для IE отдельно, для этого можно воспользоваться конструкцией [if IE] Подробнее по ссылке www.alexilin.ru/ie-conditional-comments/.

Худший ответ:
Когда обучался, хорошо ведет таблички с информацией о поддержки той или иной конструкции, сайт htmlbook.ru/css/display — на странице сразу пример.
Вопрос: Оцените наш стартап

Лучший ответ:
Ехал мой бизнес через мой бизнес.

Худший ответ:
У меня монитор мутит или это у вас логотип такой мутный?
Вопрос: Зависит ли СЕО от CMS?

Лучший ответ:
Нет, это миф.

Худший ответ:
Влияют ли вспышки на солнце на атмосферу Земли?
Иногда кажется, что действительно влияют, но доказать этого никто никогда не сможет. А гадалки и астрологи все так же будут получать деньги за то, что посоветовали завтра посидеть дома из-за этих самых вспышек на солнце
Вопрос: Android литература

Лучший ответ:
[Offtopic] У вас получилось хорошее свободное четверостишие :)

Худший ответ:
Даю ссылку на презентацию про Андройд. Там в конце есть полезные ссылки и несколько книг приведено. uwdc.ru/files/mobilnaya_platforma_android.pdf 
Сама презентация рассказывает о том, из чего стостоит приложение для Андройда. Все на самом деле очень просто.
Вопрос: Как справиться с функцией toggle() Jquery?

Лучший ответ:
На странице не должно быть несколько элементов с одинаковым id.

Худший ответ:
На странице замените id="post" на class="post", id="textpost" на class="textpost".$(document).ready(function(){
                $(".post").click(function(){
                    $(".textpost").toggle(250);
                });
            });
Вопрос: Как реализовать ajax запрос в mvc?

Лучший ответ:
По сути AJAX-запрос ничем не отличается от обычного запроса. Т.е. вам также надо добавить метод в контроллере (экшн), который будет обрабатывать ajax-запросы. Как правило в нём выполняется проверка, что запрос является именно ajax-запросом. Ну и возвращаемые данные как правило идут в JSON или другом формате - более приемлемом для обработки на клиентской стороне (javascript).

Худший ответ:
Использую mvc модель
почитайте еще раз что это такое и зачем оно надо.Я хочу подгружать текст статьи через ajax,
Ajax, он же XmlHTTPRequest - это просто API для выполнения HTTP запросов из javascript. С точки зрения бэкэнда (то есть php) - это просто очередной http запрос. То есть никакой разницы.
Вопрос: Посоветуйте 3D движок для виртуального тура по зданию

Лучший ответ:
Для персоналок, в свое время, для подобных задач использовали даже не движок, а игры Q2 и позже Q3. Просто рисовалась модель помещения, экспортировалась в нужный формат и загружалась в игре (естественно без ботов, оружия и т.п.)
Исходный код и Q2 и Q3 сейчас открыт, а найти человека, который занимается/занимался созданием модов/карт для них не так сложно, пусть объяснит что к чему и делайте сами.
Не знаю, насколько это совместимо с оригиналом, но для Андроида есть порт kwaak3
Для iOS сложнее, если правильно понимаю — нужен джейлбрейк для установки игры не через AppleStore.
вот как-то так

Худший ответ:
Присоединяюсь к Unity3D. 
Кстати, платный он — только если надо сделать порт на iPhone, Android.

Indy-версия Unity3D — бесплатна
Вопрос: Стоит ли давать Haskell школьнику в качестве первого языка?

Лучший ответ:
Такой опыт был — OCaml точно, Хаскель, кажется тоже. В качестве первого языка в классе школы, в России. Результаты хорошие, вроде. Погуглите.

Могу по опыту сказать, что знакомство и даже тяготение к функциональной парадигме при разработке на мейнстримных языках — это только плюс.

Худший ответ:
Где-то я читал, что в России была группа лингвистов, которая экспериментировала на собственных детях — обучала с рождения искуственному языку.
Ссылку найти не могу, нашел только статью про ифкуль
Вопрос: Как загнать node на хостинг?

Лучший ответ:
На shared-хостинге с php - никак. Лучше всего взять недорогой vps. Я бы, как это ни банально, рекомендовал DigitalOcean.

Худший ответ:
Вот такое в package.json поставь. "scripts": {
    "start": "server.js"
  },
 В самом server.js  используй get для корня сайта '/' и отдавай туда свой html шаблон
Вот пример:app.get('/', function (req, res) {
  res.render(__dirname + '/client/views/index');
});
и в качестве прослушивания порта поставь такоеhttp.listen(process.env.PORT || 80);
Вопрос: Как продвигать копию сайта на другом домене в другой стране?

Лучший ответ:
Изменить структуру сайта, дизайн, верстку нет возможности, но получится переписать тексты.Одинаковые дизайн и верстка не являются препятствием или существенным минусом. На любой CMS существует огромное количество сайтов с одинаковым дизайном/структурой, но совершенно разным контентом.Какие меры предпринять для разделения сайтов?Контент Вы собрались переписать,  как вариант еще можете сменить хостинг/сервер или просто для другого сайта взять новый ip. На новом сайте не должно быть хвостов от старого, например, в футере телефон и адрес той же организации, что и на первом сайте.
На отдельном домене, сайт ориентированный под продвижение в другой стране, будет удобнее двигать. Но Вы столкнетесь с теми же сложностями, что возникали при продвижении первого сайта, фактически Вы начинаете с нуля. Но в перспективе иметь два качественных сайта, в одной тематике, с хорошими позициями в разных регионах - очень интересно и принесет хороший профит.
Если Вы не уверены, что времени и ресурсов хватит на продвижение нового сайта, можете на существующем сайте начать понемногу размещать контент заточенный под запросы аудитории из другой страны. Учитывая один язык и общую тематику, это вполне возможно и может показать достаточно быстро неплохие результаты.Как реагируют поисковики? Возможно ли падение в выдаче украинского сайта или затрудненное продвижение российского? Если второй сайт не будет явной копией первого, там будет качественный контент, а не поверхностный рерайт, не будет никаких признаков указывающих на попытки манипуляции с выдачей, дублирование контента и прямых указателей на принадлежность к одной организации, то для поисковиков это будет два абсолютно разных сайта, никак не связанных между собой и отнестись они к ним должны нормально. Один на другой не должен влиять.или затрудненное продвижение российского?Поскольку украинский сайт на русском языке и заточен под ру запросы, то он может быть на неплохих позициях и в Российских регионах, поэтому по отдельным запросам может конкурировать с Вашим новым сайтом, который планируется затачивать исключительно под продвижение РФ. Но это обычная конкуренция разных сайтов в выдаче.

Худший ответ:
Вопрос, кто пробовал продвигать одинаковые сайты с разным контентом? Как реагируют поисковики?Пробовал продвигать даже с одинаковым контентом по разным регионам РФ (дилеры авто), сайты отличались только контактами и разделом новости/акции - никаких проблем с позициями нет.
Был один случай, когда сайт склеился с копией в другом регионе - ошибка робота зеркальщика, после переписки с технической поддержкой Яндекса проблема была решена.
Вопрос: Контрактные и предоплатные тарифные планы сотовой связи?

Лучший ответ:
Более качественный приём связи, интернет услуг — Неправда.
Приоритет выше (к примеру при загруженой звонками БС).

Худший ответ:
Приоритета в звонках судя по всему нет.
Единственный плюс отдельная техподдержка. и вместо подождите 10 минут, меня сразу соединяют с техподдерржкой.
Вопрос: Быстрый поиск по большому массиву неоднородных данных, что выбрать?

Лучший ответ:
Примените идею фильтра Блума:
выберите 10-30 признаков, легко вычисляемых как для запроса, так и для содержимого, которые дают примерно одинаковое распределение true/false на вашем множестве данных. Поиск отфильтруйте по тем записям, где встречаются признаки, обнаруженные в запросе.

Например, можно выбрать признаки вида «существует подстрока из N символов, сумма которых равна K». Очевидно, если такая подстрока присутствует в запросе, то она обязана присутствовать и в искомых записях. Ради интереса я провел эксперимент на jpg-аватарках размером в среднем 4К и подобрал такие пары N и К: (3, 97), (3 98), (3, 99), (3, 102), (3, 104), (3, 105), (4, 161), (4, 173), (4, 178), (5, 247), (5, 251), (5, 255)…

Худший ответ:
50Gb относительно случайных последовательностей байтов? Без разделителей? А длинна искомого фрагмента в среднем какая? И насколько часто будут производиться выборки?
Вопрос: Защита от спамеров?

Лучший ответ:
[HTTP_ACCEPT] => */* - такие заголовки не ставит ни один браузер, поэтому можно фильтровать по ним.
Но думаю самым простым и надежным способом будет вот такая рекапча в форме регистрации и там где боты бушуют:
https://www.google.com/recaptcha/intro/index.html
Ещё можно в форму регистрации добавить hidden input и через javascript туда прописывать значение и если  присланное значение не соответствует тому что должно быть , то значит регался бот - боты обычно не выполняют javascript. Своеобразная javascript captcha - довольно надежная по моему опыту(надежнее чем капча где нужно распознать текст). 
Простой пример:
форма<form .....>
<input id="login_tt" type="hidden" name = "login_tt"> // Сюда будем записывать секретное значение через js
</form>
<script>
$("#login_tt").val("my secret value") // само значение которое будем проверять на сервере
</script>
на сервере примерно так<?php
     if( $_POST["login_tt"] != "my secret value"){
      exit(0);
    }

Худший ответ:
Если пользователь не пытается намерено быть анонимным у него будут работать куки. Увидев подозрительный заголовок (или какую то другую характерную особенность/активность), вы можете поступить как яндекс: предложить ввести капчу.