pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как удалять монеты при столкновении?

Лучший ответ: Посмотрите любой туториал по обработке столкновений коллайдеров. 
И монетки лучше не удалять, а прятать и потом повторно использовать. Постоянная генерация и удаление однотипных объектов - бесполезная нагрузка.

Худший ответ: Это должно быть в функции, которая вызывается при столкновении void OnCollisionEnter2D(Collision2D col)
Вопрос: Есть ли плагин для автоматического импорта фотографий из Instagram?

Лучший ответ: какой-то из этих

Худший ответ: мне очень нравится Instagram Widget by WPZOOM отличный виджет, легко настроить, показывает ленту из инсты.
Вопрос: Почему на jsFiddle работает, а на локальной машине не работает JavaScript?

Лучший ответ: Подключи их в футер и оберни весь javascript в document.ready(function(){...});

Худший ответ: наверно забыли обвернуть в $(function() {
// сюда код
});
Вопрос: Как правильно называть блоки div?

Лучший ответ: Поможет этот список в освоении, а так дальше БЭМ.

Худший ответ: https://ru.bem.info может сам БЭМ для новичка, сложно, но почиать - поможет с правильным выбором классов.
Вопрос: Чем отличаются псевдоклассы с разным двоеточием?

Лучший ответ: В древние времена все браузеры поддерживали только одинарное двоеточие. В наше время (начиная с IE9) принято использовать:для псевдо-элементов - двойное двоеточие "::"для псевдо-классов - одинарное двоеточие ":"
Эта рекомендация делает код немного более читаемым в ситуациях, когда таких псевдо-сущностей используется много.

Худший ответ: Разная спецификация CSS.
В CSS3 используется одинарное двоеточие, как и двойное, но IE8 поддерживает одно двоеточие. Поэтому лучше использовать одно двоеточие.
Вопрос: Не загружается графический интерфейс ubuntu?

Лучший ответ: Добрый вечер.
Зачем плодить одинаковые вопросы?
Это третий подряд с одной и той же проблемой.
Переустановите полностью систему, если у Вас не хватает знаний, как всё восстановить.
Переустановка займёт гораздо меньше времени, чем написание Вами здесь своих вопросов.
Переустановите, и помните, что ubuntu и ей подобные - не windows.
Убить систему сложно, но всё равно, надо думать, что и куда вводить и где нажимать.

Худший ответ: Ну так поставьте Python. Нет дисковода, но всегда есть USB - можете переустановить с загрузочной флешки.
Если выберете путь переустановки, то имеет смысл перейти на Ubuntu 16.04.
Вопрос: Какой хостинг поддерживает file_get_contents?

Лучший ответ: Да не смеши уж, хостинги стоят копейки, бесплатные он ищет.

Худший ответ: Не найти 50 рублей в месяц на свой отдельный(!) сервер это уже совсем как-то.
https://poiskvps.ru/index.php?sort=0&sort_by=0
Вопрос: Стоили тратить время на WordPress?

Лучший ответ: У меня средний ценник на сайты на вп 1000-1500 долларов. Знаю проекты за несколько миллионов на нем. Но без отличного знания html/css/нативного js и фреймоворков/php, а также умения дизайнить в фотошопе/скетче/иллюстраторе и сотни смежных моментов вы будете делать сайты за 1000 рублей. 
Вордпресс всего лишь инструмент, с которым 90% людей не умеют обращаться.

Худший ответ: WordPress, как уже заметили выше, лишь инструмент. Для меня WP это лишь админка. Раньше для создания интерфейса админки нужно было использовать плагины вроде Advanced Custom Fields. Сегодня развивается система блоков для редактора, которые, кстати, пишутся на React. Как рисовать клиентскую часть по сути не важно. Можно использовать классический паттерн: только php. В таком случае обратите внимание на тему-боилерплейт Sage, а так же на окружение для WP "Bedrock". С ним можно будет коппозером устанавливать плагины и темы, и сам WP тоже.
По поводу сайтов за 1000 рублей вы зря. Я делаю свои проекты исключительно на WordPress, но у меня и специфика проектов особенная, там вообще не важно на чем, нужна удобная админка для контента. Знания WP никак не влияют на зарплату, влияют только ваши реальные знания в разработке в целом.
Вопрос: Как заверстать таблицу, чтобы легко можно было её заадаптивить?

Лучший ответ: Можно названия полей поместить прямо в ячейку и через медиа отображать только на мобильных устройствах.

Худший ответ: Можно сделать 2 блока - один под мобилки, второй под дэсктопы и при помощи медиа скрывать и отображать.
Вопрос: Как склеить input + a?

Лучший ответ: Можно просто label'ом сделать... https://codepen.io/aliencash/pen/bRmOxm

Худший ответ: input-у даешь opacity: 0; position: absolute; z-index-ом ставишь его над ссылкой
Вопрос: Не получается установить Photoshop на Ubuntu 16.04?

Лучший ответ: юзаю портабайл версию все кишки тащит с собой отлично работает.

Худший ответ: Браузер и curl отдают пустоту на эту ссылку, а вот wget бодро редирректится на https и скачивает нужный файл. Попробуйте включить дебаг лог в playonlinux, может чего полезного увидите в логе.
Вопрос: Как организовать работу?

Лучший ответ: GitLab, там есть wiki для ведения документаций, есть issues для ведения задач, и отличный board для их удобного отображения, ну и собственно есть репозиторий для хранения проекта, для общения вне гитлаба: слак/скайп/телега

Худший ответ: 1. Хранение проекта - где?
git. Приватные проекты можно хранить на bitbucket.org, на гитхабе только за деньги. Все желания хранить проекты в гуглдрайвах/дропбоксах/яндексдисках убивай на корню.2. Ведение проект- как?
гуглодоки для ТЗ
asana или подобное для задач/багов
история изменений кода есть в git, история изменений ТЗ есть в гуглодоках
документацию хранить в коде (docstrings) и генерировать в виде HTML любым подходящим инструментом
Вопрос: Где удобно смотреть чужие портфолио?

Лучший ответ: Создай проект на бирже (одной или нескольких) фриланса и смотри портфолио тех, кто откликнулся

Худший ответ: Создание проекта на любой бирже-раз
Грамотное описание проекта-два
Адекватная премиальная часть за выполненную работу-три
Биржи:
up work
behanse
fl.ru
freelancer.com
Вопрос: Какие данные приходят на устройство через COM-порт, если отправить «1»?

Лучший ответ: Перед нами такая конструкция
0 . 1000 . 1100 . 1 . 0 . 0101 . 0000 . 1
Каждый байт начинается стартовым битом 0 и кончается стоповым битом 1. Передаётся, начиная с младшего бита.
Итого два байта, 31+0A, или "1" + LineFeed.

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

Лучший ответ: Лучше ищите курсы по Python 3.

Худший ответ: Если нравятся курсы учитесь по ним, когда разберетесь изменить версию не составит труда
Вопрос: Как пропорционально масштабировать изображение в RecyclerView?

Лучший ответ: FrameLayout отнаследовать. Переопределять onMeasure. Выставлять пропорциональные размеры. Вставить ImageView, высота и ширина match_parent, scaleType fitXY.
 Формула - обычная пропорция, в средней школе проходят.

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

Лучший ответ: Всё же в справке понятно написано:For freelancers:
We suspended your Upwork contract because your client's account was suspended. There are many possible reasons for your client’s suspension, although we won’t discuss specifics due to privacy concerns.
Here’s what to do if your contract is suspended:Stop working on the contract immediately – Do not resume work until you receive a notification from Upwork that the contract is reactivated. For hourly contracts, you’ll receive payment for any hours logged prior to the account suspension.Contact your client – Get in touch with your client as soon as possible to find out when the contract will resume. If you do not get a response from your client, you can click here to ask Customer Support to contact the client on your behalf.

Худший ответ: Там же ясно написано:We suspended your Upwork contract because your client's account was suspended.Аккаунт вашего заказчика приостановили, поэтому и контракт приостановили.Here’s what to do if your contract is suspended:
Stop working on the contract immediately.
Contact your client.
Ничего не делайте по проекту, свяжитесь с заказчиком.
Вопрос: Какой обучающий курс по 1c bitrix выбрать?

Лучший ответ: Стоит просмотреть эти уроки https://academy.1c-bitrix.ru/training/course/ . Пройти эти курсы https://dev.1c-bitrix.ru/learning/ . Ну и практику ни кто не отменял.

Худший ответ: Делайте упор на практику. Теория важна, но только практика даст необходимый опыт.
Вопрос: Как делают ОС для автомобилей?

Лучший ответ: Самые разные операционки. Чаще всего свои собственные на основе сильно перепиленных(как хороший альтернативный пример ОС на ps2-3-4 в которых нечто на freebsd но в тоже время уже и не freebsd).
Из доступных смерным есть android auto и что то там от baidu.
Многие производители разделяют мозги на 2 части, одна часть работает непосредственно с самой авто(к примеру на базе QNXcar) а вторая половина на обычной webos\unix+qt и ответсвенна за мультимедия\навигатор\камеры и т.д.
В Вашем случае надо смотреть примерно в следующем направлении:
1) реверсить CAN шину в авто для нахождения нужных узлов которыми захотите управлять\смотреть
2) can адаптер для raspberry pi.
3) самописный софт к примеру на qt\java с нужными хотелками для ui и на чем угодно все остальное
4) сверху посыпать нужным числом кнопок(к примеру прилепили руль от какой нибудь хонды цивик у которой не руль а космический штурвал и подцепили к своей распберри).
В общем именно для того что вы хотите (управлять с телефона\свои фишки) роли не играет какая ОС, не играет роли какой ЯП, играет роль реверса CAN шины и написания софта который сможет читать\писать в шину, и естественно ui.

Худший ответ: Так же как и обычные, берут С или С++ и пишут, только вместо принтеров опрашивают все электронные устройства автомобиля
Вопрос: Как написать JS цикл выводящий от 1 до 100, имеющий 2 дополнительных условия?

Лучший ответ: let tempArr = [];

for (let i = 1; i <= 100; i++) {
  tempArr.push((i % 2 === 0 || i % 3 === 0) ? `${i}` : i);
}

function делайЧтоХочешь(arr) {
  arr.forEach(i => console.log(i))
}

делайЧтоХочешь(tempArr);

Худший ответ: Я понял задачу так, что нужно выводить все числа, но кратные – как текст, а не число:var n = 0;
while( ++n <= 100) console.log( ( !(n & 1) || n % 3 === 0) ? n.toString() : n);
Для проверки делимости на 3 можно тоже воспользоваться битовым фокусом. Сосчитать 1 в нечетных позициях, вычесть число 1 в чётных – если разница делится на 3, то и число делится. Например, 99 (01100011) – разница = 0, делится.
Вопрос: Почему «тяжёлый» скрипт по CRON выполняется несколько раз?

Лучший ответ: Очевидно, что минуты скрипту на выполнение не хватает и он обрабатывает одни и те же данные несколько раз. Вам нужно отслеживать, что предыдущий запуск завершился во время старта нового. Если нет - то прерывать выполнение нового запуска и ничего не обрабатывать.
А самым правильным было бы попрофилировать скрипт. Минута - это очень большое время для компьютера и за это время он может очень многое сделать. Скорее всего, у вас неоптимальный алгоритм.

Худший ответ: По крону всё что делаете надо писать в какой-то лог дополнительный, например текстовый или БД и в скрипте делать более хитрые условия. Взяли запись 150 записали в текстовик если скрипт успешно отработал в самом конце стираете запись. В начале скрипта проверяете если скрипт взял 150 и в текстовике стоит 150 то что-то не так...
Вопрос: Является ли контекст размещения абсолютно позиционированного элемента по умолчанию элемент body?

Лучший ответ: Если вы указываете position: absolute элемент всегда будет выходить из потока и двигаться относительно body, но если у вас есть родительский элемент, в котором указан position relative и вы его ребенка позиционируете абсолютом, то он будет смещаться относительно родителя

Худший ответ: На самом деле Филатов всё уже доступно объяснил: в соответствии с принципами позиционирования (barelyfitz, MDN), у абсолютно позиционированного элемента контекстом расположения является ближайший родитель с позиционированием отличным от статичного. К тому же в вашем случае фраза "абсолютно позиционированный блок имеет своим контекстом размещения окно браузера" как раз и означает, что контекстом является body. Это вот такая вот неудобоваримая условность, связанная с body.
Каждому отображаемому элементу DOM соответствует какой-то блок в макете. Элемент body является исключением: вы можете позиционировать соответствующий ему блок и это будет влиять на дочерние элементы, но некоторые его стилевые свойства будут применяться ко всему окну. Так происходит потому что body является не/посредственным контекстом расположения для всех отображаемых на странице элементов, он является корневым, то есть как бы и представляет собой окно.
Заметьте, что пример на MDN аналогичен вашему, и вот что они пишут:In the example below, a positioned ancestor doesn't exist and box ... is positioned absolutely relative to the immediate ancestor (the <body> of the iframe here)
То есть у них происходит то же самое: абсолютно позиционированный элемент располагается в контексте окна, а не в контексте блока соответствующего body, но они всё равно говорят что "блок позиционирован относительно body". Стоит считать это условностью: хоть body и представляет собой окно, но он всё же является элементом DOM, а поэтому в макете для него обязан существовать соответствующий блок. Такая вот двоякая сущность. Не очень понятно, конечно, но, возможно, так сложилось исторически, я не смог откопать ничего по теме.
В любом случае, это самый незначительный из сюрпризов которые может выкинуть CSS, например невозможность отрезать overflow только по одной оси - это покруче будет.
Вопрос: Как хранить большое количество json-файлов?

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

Худший ответ: KISS
Просто хранение:
Сделайте новый диск 
При создании укажите количество inode на которое расчитываете
Если файлы по 500кб+, сжимайте bzip/gzip, если меньше - експериментируйте (маленькие файлы не всегда стоит сжимать)
Хранение и поиск по файлам - лучше сразу запихивать в постгрес или в монгу (если файлы не страшно потерять)
Вопрос: Почему не получаю json-объект?

Лучший ответ: Как научиться работать с API VK:научиться читатьнаучиться читать документациюнаучиться читать документацию к API VKперестать заваливать тостер базовыми вопросами о VK API
https://vk.com/dev/photos.getWallUploadServer :Возвращает адрес сервера для загрузки фотографии на стену пользователя или сообщества.
После успешной загрузки Вы можете сохранить фотографию, воспользовавшись методом photos.saveWallPhoto.Параметры:group_id идентификатор сообщества, на стену которого нужно загрузить фото (без знака «минус»). 
целое числоРезультат:
После успешного выполнения возвращает объект с полями upload_url, album_id, user_id.

Худший ответ: 1. Получаем адрес, куда загружать фото будем (запрос GET)
2. Сохраняем фото (запрос POST)
Это какая библиотека (import в начале файла питона, что написано)? Ссылку на github.com дай.
myFile = vk.photos.getWallUploadServer
Или самописная?
Вопрос: Почему выдаёт Runtime ошибку?

Лучший ответ: Как то такimport math
import os

INPUT_FILE = 'input.txt'
OUTPUT_FILE = 'output.txt'
NUMBER_THRESHOLD = 1000

if __name__ == '__main__':
    if not os.path.exists(INPUT_FILE) or not os.path.isfile(INPUT_FILE):
        raise FileNotFoundError
    with open('input.txt') as file:
        text = file.read()
    if not text:
        raise ValueError('File is empty')
    try:
        a, b, c, *_ = [int(n) for n in text.strip().split(" ") if n.isdigit() and int(n) < NUMBER_THRESHOLD]
    except ValueError:
        raise ValueError('Wrong input data')

    out = ""
    if not (a < b + c and b < a + c and c < a + b):
        out = "-1"
    else:
        p = 0.5 * (a + b + c)
        h = 2 * math.sqrt(p * (p - a) * (p - b) * (p - c)) / a
        out = f'{str(a + b + c)} {("%.5f" % (a * h / 2))}'

    with open(OUTPUT_FILE, 'w') as file:
        file.write(out)

Худший ответ: трейс ошибки-то где?
Вопрос: Где брать бесплатные 3d модели для коммерческого использования?

Лучший ответ: www.blendswap.com
https://archive3d.net/
https://opengameart.org/
https://www.davidstenfors.com/
Читаем лицензии, много чего можно использовать в коммерции, много чего нет. 
В дополнении, можно поискать бесплатные в магазинах ассетов, возможно придется уточнять у автора можно ли использовать в коммерции: 
сторы движков(unity, unreal),
www.turbosquid.com
https://www.gamedevmarket.net/
Для создание гуманоидов можно использовать программы Fuse и MakeFuman, с одеждой только могут возникнуть проблемы, ее мало. Анимировать гуманоидов можно в https://mixamo.com/ на момент публикации бесплатный для коммерческого использования.
И еще один момент, имей виду что качество будет сильно разнится и некоторые модели распространяются в форматах 3d редакторов, возможно придется сохранять самому в нужный формат.

Худший ответ: kenney.nl, там вроде GPL v 1.0, т.е. модели считаются чут-ли не твоими.
Вопрос: $APPLICATION->IncludeFile, как убрать вывод div'а?

Лучший ответ: $APPLICATION->IncludeFile оборачивает всё в div только в 2 случаях.
1. Включён режим правки
2. Внутри подключаемого файла есть div

Худший ответ: Привет, попробуй в параметры передать "SHOW_BORDER" => false.
https://dev.1c-bitrix.ru/api_help/main/reference/c...
Т.е например:<?php
$APPLICATION->IncludeFile("путь к файлу", array(), array("SHOW_BORDER" => false));
?>
Вопрос: Какой вариант будет работать быстрее для браузера?

Лучший ответ: В наше время быстрого интернета, безлимита и мощных устройств разница, не думаю, что будет заметна. Я бы выбрал вариант с JSON и отрисовкой в браузере, чисто из любви к прекрасному.

Худший ответ: Рекомендую выбирать решение опираясь не на скорость, которая, к слову, будет примерно одинаковой, а на структуру проекта.
Если проект большой или обещает таким быть, оцените сколько вы готовы вложить в железо. Если в этом месте будуте экономить, то не стоит возлагать функцию щаблонизации на сервер - отдавайте json.
Как я понимаю в вашем случае речь идет о динамических данных, которые рендерятся при каждом запросе. Если же этот json статичен или допустим обновляется раз в час, то вполне можно рендерить эту страницу на сервере раз в час.
Тут нужно только решить готовы ли вы жить с серверными инструментами шаблонизации в проекте или вам комфортнее шаблонизировать на клиенте. Другими словами многое зависит от выбранного вами фреймворка, если он вообще есть.
Вопрос: Возможны ли поддомены для IP адресов, например, www.127.0.0.1 или 8.8.8.8.8 в IPv4 только хотя-бы для HTTP-запросов?

Лучший ответ: Невозможны. IP-адресация и доменные имена - это разные, хоть и связанные через DNS системы.

Худший ответ: Давайте я прямо скажу: это возможно, но редко практикуется, точнее, за парой исключений, нигде.
Почему? 
Дело в том, что DNS работает по другому принципу, главным образом на том, что любое имя должно быть глобально. А IP глубоко похрен, что в другой подсети есть аналогичный комп с таким же IP. Главное - в собственной подсети не было такого же. Вообщем, DNS мыслит глобально, а у IP хата с краю)
Другая причина проста: DNS выдает IP-адрес. И что? И ничего! Т.е. какой-нибудь www.192.168.0.1 - это то же, что 192.168.0.108. Вот вам, кстати, и исключение: многие роутеры позволяют сделать переброс обращения к ним с www на локальный сервер. Работает достаточно мутно и не как поддомен, но исключение нельзя не упомянуть.
Но, как я уже говорил, ощутимой прибавки адресов не станет. Если нам надо обратится к такому-то серваку, то нам нужен его IP. А поддомен - это уже DNS. А с www трюк прост: он просто меняет порт.
Вопрос: Как прикрутить API в Django?

Лучший ответ: Ключи, как и пароли должны получаться из .env файла или из переменных среды (os.getenv) и ни в коем случае не попадать в git (но все чаще всего на это плюют)
Всё остальное зависит от API и протокола / протоколов, которые API использует

Худший ответ: DRF, на сайте есть документация (пошаговая).
Вопрос: На какие ресурсы можно скидывать свои работы для критики?

Лучший ответ: Саша, а зачем тебе ждать критику, будь проактивен. Ведь тебе напишут что "полоска не там", "цвет не тот", а когда тебе скажут что работа - гавно, ты начнешь капризничать и сопротивляться. Предлагаю тебе приручить свое желание делать лучше и добавить щепотку осознанности. 
Весь дизайн одинаковый, новые типы компонентов появляются очень редко, если абстрактно, то сейчас это:
квадраты, прямоугольники, круги, полоски
а компоненты — табы, кнопки, формы заявок, заголовки, иконки и так далее. Если округлить любой дизайн - мы увидим там именно это. Чтобы перестать чесать репу над украшательством и думанием "с чего бы мне начать", тебе надо понять что такое сила текста и из каких элементов собирается любой веб-дизайн.
Брось это дело, ждать, скорее всего ты делаешь всякое говно, но это легко исправимо базовой теорией. Ниже я прикрепляю полезные ссылки, прям полностью потыкай посмотри, а потом ты раскачаешься и воспитаешь в себе чуйку и вкус. Базовые элементы верстки  (на этой странице читать все ссылки)Контур гайды (тут посмотри из каких кирпичей собирают интерфейсы)Блог Бирмана(выборочно сначала почитай, что интересно, а потом по ситуации)Советы главреда (их много, сразу не осилить, но успешный коммерческий сайт это все еще текст, а текст это типографика. Хороший текст + хорошая типографика и ты уже можешь делать продукты лучше, чем половина нищебродов которые заполонили отрасль)Гайды материал дизайн (наблюдай за Романом Камушкеном, если нужно купи его готовую библиотеку компонентов в фигме)Искусство мыть слона (потом почекай кто такой этот Головач)
несколько книг, которые прям апнут тебя:А.Горбунов - Типографика и верстка (скачать можно вк или найти в инете)Илья Бирман - пользовательский интерфейс (подписка 400р)Idea book - графический дизайнПиши, сокращай - Максим Ильяхов
это хороший базовый набор, +ссылки, что я дал, если не полениться и почитать и вникнуть, через месяца 3, ты будешь понимать как сдизайнить любой компонент, как перестать писать тупой текст и как перестать смотреть у других. Я уверен ты сделаешь просто астрономический рывок в дизайне. Все остальные ссылки тебя будут находить сами, ты как-бы выйдешь на поток, работает довольно интересно.
и еще, вот примеры дизайн-систем других компаний, посмотри, как это вообще выглядит:дизайн-системы 1
работай в фигме
бонус:главные ошибки дизайна
p.s становись проактивным, меньше задавай вопросов, сначала пробуй найти ответ сам, засунь подальше тщеславие и просто начни делать фейковые работы. Так ты очень быстро научишься принимать дизайн-решения, а после ссылок у тебя наступит первое просветление (:

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

Лучший ответ: Как бы Вы искали "узкие места", как это дебажить, как смотреть какие именно запросы отрабатываются дольше всего? 
Например, плагин Query Monitor.

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

Лучший ответ: Никак. Как вы себе это представляете? Только по другим IP. Для этого настраивается балансировщик и ДНС на 3й стороне.

Худший ответ: под тем же IP никак. если упал, то упал.
нужен либо внешний балансировщик, либо настраивать DNS с TTL в 10 минут, чтобы можно было налету менять A запись.
Вопрос: Возможно ли запретить частое обновление страницы на wordpress?

Лучший ответ: Чтобы что? Вообще, чтобы бэк не напрягался то лучше использовать серверное кэширование. Если вам нужно ограничить доступ по настраивать fail2ban, например

Худший ответ: В сессию клиента пишите время последнего запроса и сравнивайте с текущим. Если меньше, exit("too fast");