Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Программа для вырезания кусков из видео?

Лучший ответ:
FFmpeg в командной строке примерно так:
ffmpeg.exe  -ss 1:23:45  -to 1:25:00   -i "Kino.mp4"  -c copy "kusok.mp4"вырежет из файла Kino с 1ч 23 минуты 45 секунд до 1 час 25 минут ровно.
-c copy указывает, что кодеки оставить те же, перекодирвания не будет.

Худший ответ:
Любая программа для этого подходит, даже в стандартном приложении "Кино и ТВ" в Windows есть такая функция,
есть очень быстрая программа XMedia Recode, но она не для всех понятная. Movavi Video Editor проще всего использовать ее (но она платная). Онлайн конвертеры к примеру: online video cutter, существует очень большое количество различных программ))
Вопрос: Как осуществить массоввую переадресация всех устройств в сети на определенный сайт?

Лучший ответ:
в общем случае - никак
HTTPS вы например так не перехватите без ошибок в броузере клиента.
А вообще - dst nat на роутере 80 порта на нужный вам адрес

Худший ответ:
О Боже, опять "япоставилкалипочемуянехакир?"
Никак. 
Раньше было можно - до массового внедрения https. Сейчас можно только для тех динозавров, которые https не юзают, но поскольку вконтактик давно перешел на https, то тут ничего не выйдет. И вопрос этот - с принудительным перенаправлением тут разбирали раз пять, не меньше.
Не выйдет никак. Потому что сертификат выдан yandex.ru и браузер, увидев совсем даже не яндекс сразу заорет, как потерпевший "АААА, ломают!"
Может быть можно через прокси с бампингом - если это контора, если все компы в одном домене, если Вы админ этого домена (что конечно же не так).
Вопрос: Как в телеграмм боте сделать кнопку, которая подменяет клавиатуру?

Лучший ответ:
чтобы кнопка появилась, нужно создать такую клавиатуру
Да

Собственно, у метода sendMessage есть поле reply_markup, которое может в себе содержать InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply
Возьмем ReplyKeyboardMarkup, она создает такую клавиатуру. ReplyKeyboardMarkup состоит из нескольких необязательных полей, описывающих поведение и расположение кнопок и одного обязательного поля keyboard, которое является Array of Array of KeyboardButton
Ну а KeyboardButton уже содержит в себе поле text, определяющее, как ни странно, текст, и другие, которые меняют поведение кнопки.

import requests

CHAT_ID = 123
TOKEN = 123

keyboard = {'keyboard': [[{'text': 'Button 1'}, {'text': 'Button 2', 'request_contact': True}]]}
payload = {'chat_id': CHAT_ID , 'text': 'Hello, world!', 'reply_markup': keyboard}

requests.post(f'https://api.telegram.org/bot{TOKEN}/sendMessage', json=payload)

Худший ответ:
https://habr.com/ru/post/522720/

Что ж вы все не умеете гуглить-то?!
Вопрос: Определение уровня программиста по фрагменту кода?

Лучший ответ:
Присоединяюсь к мнению выше, что по коду можно весьма примерно оценить.
И, наверное, чем серьезнее разработчик, тем сложнее оценить только по коду.
Имхо, очень многое зависит от конкретного компонента и требований к нему.
Пойду от очевидного:
- чистота кода,
- знание и использование в нужных местах возможностей ES6 (стрелочные, интерполяция, спред, деструктуризация),
- умение решать промежуточные микрозадачи с минимумом кода, элегантно, легкочитаемо,
- глядя на компонент, как ни парадоксально, можно сделать предположение, программист ещё пишет классами, или перешел на функциональные компоненты, но это не точно)),
- в связи с предыдущим пунктом можно оценить понимание и использование жизненного цикла или хуков,
- подход к хранению данных: стейт, контекст, ридакс etc,
- если Redax, например, то что осталось в компоненте, что пошло в action, является ли reducer чистой функцией,
- JS или TypsScript...
Я когда начинал писать не думал, что такой список получится... Выходит, много можно оценить!)

Худший ответ:
Определение уровня программиста по фрагменту кода?Запомните раз и навсегда: 
1. Кодер - это НЕ программист, 
2. Программист - решает задачу так, как считает нужным.
3. Кодер - делает то, что скажет программист.Ответ на вопрос: чтобы понять уровень разработчика (программиста) - нужно быть минимум на его уровне интеллекта и осознанно не только понимать логику его кода, но и понимать: почему он выбрал именно такой вариант решения задачи, а не иной.
Вопрос: Как при переключении ( Cmd+tab ) разворачивать окно приложения?

Лучший ответ:
Там надо еще соседнюю кнопку нажать. Такой фокус.
https://apple.stackexchange.com/questions/112350/c...

Худший ответ:
Наверное, вы минимизируете не приложение SubLime, а только одно из его окон. То же, проверил, происходит и с другими, например, с MongoDB Compass. Минимизируешь окно – остаётся заголовок приложения. Переключился в браузер. Переключился назад в Compass: заголовок есть, окна минимизированы, надо мышкой тыкать.

Выход 1.  Минимизировать таки всё приложение: обычно это Cmd + H (от слова Hide). Тогда все его окна прячутся, а когда вернётесь, все снова вылезут.

Выход 2. Имхо удобно пользоваться несколькими десктопами: смахивать влево-вправо тремя пальцами (или Ctrl + стрелка). Тут браузер. На другом редактор кода во весь экран. На третьем тоже редактор, с другим проектом.
Вопрос: Стоит ли начинать изучение программирования в 13 — 14 лет?

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

Худший ответ:
Зачем? Если по фану, то конечно стоит - чем мы только в это время не занимаемся :) Если же "с прицелом на будущее" - то смотри, как бы не вышло что "в шестнадцать лет он знал три операционные системы и ни одной девушки..."
Программисты - типы довольно асоциальные :)
Вопрос: В каком движке игра будет работать стабильнее: Unreal Engine или Unity?

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

Худший ответ:
Унреал как движок по итогу больше жрёт, если в настройках не покопаться(не факт, что это поможет). В нём многое делается за тебя:
объекты почти на все случаи жизни, которые остаётся только настроить;
предустановленые шейдеры(потому игры на нём и выглядят лучше));
и тд...
Однако, всё это делает и движок и конечный продукт тяжелее и требовательнее по характеристикам.
В унреале есть блюпринты, если пишешь на них, всё зависит от твоего скила. Можно сделать оптимизировано, а можно скриптом движения повесить игру...
В юнити мишуры,  в разы меньше, так что думаю, что он из коробки работает быстрее.
С другой стороны, люди говорят, что плюсы работают быстрее шарпов, а в унреале программируют на них...
Вопрос: Какой фактический размер у типа Int на платформе GHC, Windows 64?

Лучший ответ:
У меня maxBound ::Int чётко 2^31 (т.е 4 байта, старший бит - знак)

Худший ответ:
Отвечаю себе.
Удалось найти облако с Windows Server 2019, 64 bit.
В этом облаке скачал старую версию Haskell Platform.
Новых версий Haskell Platform нет, вместо этого предлагают какое-то Chocolatey с регистрациями и СМС.
В результате получил, что sizeOf (undefined :: Int) = 8.
Вопрос: Iframe как альтернатива ajax и отправка POST запросов?

Лучший ответ:

С точки зрения практичности и безопасности данный способ оправдывает себя?С точки зрения практичности - нет, так как это полная шляпа, мы такое писали в 2005, когда аякс как явление еще не существовал, а уже в 2012 появился нормальный XMLHttpRequest здорового человека, на который все быстренько переползли.

С точки зрения безопасности вообще абсолютно монопенисуально каким способом вы отправляете пост запрос, внутренний механизм будет абсолютно одинаков.

Задавшись вопросом безопасности отправки запросов через ajaxЕсли возникают вопросы безопасности при отправке данных через пост - значит вы что-то не то передаете...

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

Лучший ответ:
А чем вам не угодил USB свисток?

Худший ответ:
Адаптер переходник Mini PCI-E to Mini PCI-E со слотом для SIM card 3G 4G GSMIN LP5 как вариант
Вопрос: Возможно ли изучение Typescript как самостоятельного языка программирования?

Лучший ответ:
TS не отдельный язык.  Доки для изучения будет достаточно.

Худший ответ:
Возможно ли изучение Typescript как самостоятельного языка программирования?
Да, вполне. Это вполне самостоятельный язык, да, он компилируется в js, но это не мешает ему быть самостоятельным языком. Совсем не обязательно, что вам придется разбираться c js в процессе работы, но если придется, то лучше сперва изучить адекватную реализацию на ts, а потому уже смотреть неадекватную на js.
Вопрос: Метод list() в Python возвращает непустой список. Почему так?

Лучший ответ:
Типичная ошибка, которая рассматривается в каждом учебнике по питону.
Во-первых, list - это не метод, а тип, который инстанцируется в список, если его вызвать.
Во-вторых, вот в этой строчке def __init__(self, elements=list()): создаётся список. Он создаётся оин единственный раз при объявлении класса. Значение этого списка будет присвоено аргументу elements по умолчанию при каждом вызове конструктора без указания этого аргумента.
То есть один и тот же список будет сохранён в атрибутах всех объектов этого типа, которые были инстанцированы без указания параметра.
У всесх ваших таких экземплярах внутри ссылка на один и тот же список. Если через одну ссылку в список добавить элеенты, то через другую ссылку доступен тот е самый список с уже добавленными элементами.

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

def __init__(self, elements=None):
        self.elements = elements or list()
Вопрос: Стоит ли читать книгу С. Рао по C++?

Лучший ответ:
Прочитали треть и не можете определиться? По-моему, однозначно не стоит читать Донцову, а книги по программированию не являются сюжетными блокбастерами от корки до корки. Читайте, на ходу практикуйте, если получается, понимаете, улавливаете — идите дальше. Не понимаете, возьмите еще одну книгу по предмету и тоже читайте. И третью книгу возьмите, если двух мало. А попутно и статьи по теме смотрите.

Надо учитывать, что не все авторы-технари — хорошие педагоги. Некоторые излишне сюсюкаются с читателем, другие — наоборот, не учитывают, что кругозор разный, третьи просто не могут нормально излагать предмет. Поэтому читателю стоит самому быть немного учителем, додумывая за автора посредством других источников и иных способов изложения одного и того же.

Моей первой книгой был Шилдт, но в его руководстве не было ничего о компиляторах, о среде работы, о сборке, и эту сухую теорию читал не раз, и не два, но изучение оставалось на бумаге. Прошло какое-то время, отвлекся от С++ вообще по основной учебе, потом добрался до Visual Studio 6-й, что ли, до статей, начал практиковать, и тут-то понял, что Шилд все-таки по мозгам проехался не без следа. Ругают его? Ну, сколько людей, столько и мнений. Педагог он не очень, а теорию излагает верно. Так же и тут. Больше зависит от багажа, от другой литературы.

Худший ответ:
Книгу не читал, но не стоит опираться на чьё-то мнение по этому поводу. Если тебя устраивает, то учись по ней. 

А ещё лучше изучать конкретную тему из разных книг, чтоб было понятно что лишнее, а что по теме
Вопрос: Как составить политику конфиденциальности и правила использования приложения?

Лучший ответ:
Почитайте про модели лицензирования. Например здесь: https://habr.com/ru/post/275995/ К этим моделям есть стандартный текст.
Если Ваши условия немного другие, то Вы сможете текст откорректировать.

Худший ответ:
Нужно как-то договариваться с каждой страной или как это работает?Договариваться не нужно. Необходимо соблюдать законы.
Узнаете какие в стране законы и соблюдаете их, и так в каждой стране.

где взять текст для политики конфиденциальности и правила использования приложенияУ юриста.
Вопрос: Как стянуть скрипт с сайта?

Лучший ответ:
Варшахвала вас накажет!

Худший ответ:
$('#chart-calculate').click(function() {
		var empty = false;
		$('#chart-form input:not(#place)').each(function() {
			if ($(this).val() == '') {
				$(this).css('border', '1px solid #DB4B4B');
				empty = true;
				return;
			} else $(this).css('border', '1px solid #CCC');
		});
		
		if (!empty && is_correct_data()) {
			var name = $('#name').val();
			var date = $('#date').val();
			var time = $('#time').val();
			var latitude = get_coordinates($('#latitude').val());
			var longitude = get_coordinates($('#longitude').val());
			var timezone = $('#timezone').val();
			
			if (timezone.indexOf(':') + 1) { var tz = timezone.split(':'); timezone = (tz[1] == 0) ? tz[0] : timezone.replace(':', '.'); }
			var page = ($('#not-astrologer').is(':checked')) ? 'horoscope' : 'analyse';
			var href = page + '.php?name=' + name + '&date=' + date + '&time=' + time + '&latitude=' + latitude  + '&longitude=' + longitude + '&timezone=' + timezone;
			window.open(href, '_blank');
		} else return false;
	});

Вот обработчик нажатия на кнопку Рассчитать. Все параметры передаются в URL и открывается новая страница по этому URL. А логика расчета получается на сервере. Так что нет
Вопрос: Почему долго разворачивает образы по WDS?

Лучший ответ:
Это нормальное поведение.  Гуглите wds pxe Block size и увеличивайте его размер

Худший ответ:
Это нормальное поведение.  Гуглите wds pxe Block size и увеличивайте его размер
Вопрос: Сервер с Hyper-V без процесса explorer.exe?

Лучший ответ:
Если это windows server в core варианте, то пойти в гугл, вбить в поиск "install graphic interface to server core".
Если это бесплатный hyper-v server, то искать в том же гугле костыльные решения, либо запускать нужные оснастки удаленно - на другом компьютере.

Худший ответ:
Если нужно админить сам сервер:
Скачайте с сайта Майкрософт и установите на своем компьютере Windows Admin Center (он бесплатный)
https://www.microsoft.com/ru-ru/windows-server/win...
Подключитесь к серверу и управляйте (заодно можно управлять всеми компами в офисе)
Если нужно админить виртуалки:
Поставьте на своей машине Hyper-v, запустите там hyper-v manager правой кнопкой по Диспетчер Hyper-V и выберите "подключиться к серверу"
https://docs.microsoft.com/ru-ru/windows-server/vi...
Вопрос: Насколько мой код читабелен?

Лучший ответ:
Это все конечно очень хорошо, но в репе лежат симлинки вместо файлов. Так что пока оценка -10/10 - достигнут предельный радиус кривизны рук.

Худший ответ:
Еще комментарии. Это же С++, а не С?

Вместо набора функций, которые возвращают и принимают IntList1D, стоит завести класс, который содержит в себе указатель на начало списка. У этого класса должны быть методы initalize, is_initialized, pushBack, и т.д. Это сократит код немного и сделает его гораздо более логичным.

Тип элемента списка вы объявляете как приватный класс-член в классе списка, и он не будет засорять пространство имен пользователей вашей библиотеки. Им о нем вообще знать не надо, они хотят в ваш список класть int и получать назад int.

Далее, вы пишите контейнер, в идеале его стоит сделать по образу и подобию стандартных контейнеров. С итераторами и т.д. Чтобы с ними было можно работать точно также. Но, если не потянете, то хоть обзовите методы также, как у стандартных (push_back(), empty(), см std::vector, например).

Стек и очередь могут или наследоваться от списка, или (так наверное понятнее будет) держать внутри себя экземпляр списка.

Потом, часть функций называется частично большими буквами, частично строчными. Это вообще зачем? APPEND_FRONT_Link? Соблюдайте единый стиль хотябы в одном названии. Если они отличаются от appendFront тем, что они не предназначены для пользователей библиотек, ну так это как раз аргумент в пользу использования классов. Делаете эту функцию приватным методом. И такие обычно называются с суффиксом Impl (от implementation) - appendFrontImpl.

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

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

все зависит от типа датчика. полупроводниковый менее точен и быстрее стареет.
платиновый и точнее и меньше стареет.

Худший ответ:
Да, меняются, иногда настолько, что не проходят поверку и их меняют на новые. Ну и условия эксплуатация оказывают эффект, они не всегда идеальные и есть шанс что показания уплывут.
Вопрос: Можно ли подключить кулер параллельно с питанием жесткого диска?

Лучший ответ:
Можно.
Оно в любом случае параллельно подключается, даже если без переходника.
Просто запараллеливается на плате БП или на материнской плате. Разница не существенна для такой маленькой нагрузки, как вентилятор.

Худший ответ:
Можно но это крайни не желательно так как кулер во время работы выробатовает переменный ток а диски и все в копютере питаются от постоянного тока в результате у вас в питании появится переменная состовляющяя ( пульсации )  в 10-12 Вольт и современном электролитические конденсаторный которые рассчитаны на постоянный ток начьнут вздувается
Вопрос: Можно ли поменять имя столбца базы данных, при выводе через REST?

Лучший ответ:
Вот, держи https://www.yiiframework.com/doc/guide/2.0/en/rest...

Худший ответ:
Это что-ли надо?
model::find()
            ->select('username as login')
            ->where(['id' => $id])
            ->one();
Вопрос: Как вытянуть оригинал картинки с сервера. (Авито и прочие)?

Лучший ответ:
Очевидно, что ссылки на картинки где-то есть или их адреса можно составить по предсказуемой схеме, чем сайт-сервис и пользуется, проведя исследование.
Как выдернуть - найти ссылки или понять схему. Для этого нужно использовать консоль/код/сурс, разумеется, но ещё и голову. Научить этому в рамках общего вопроса здесь невозможно, а конкретный вопрос будет заданием.

Худший ответ:
Если есть миниатюра + если вотермарка относительно простая (она не капча, а фиксированное изображение, с поворотом и скалингом), есть возможность восстановить изображение, математически это возможно, по факту решив уравнение (функция - наложение известной вотермарки + ее модификация + скалинг до миниатюры = миниатюра)

Вотермарку определяют вручную, загрузив на сервер свое изображение и сравнив его с изменившимся.

Если вотермарка меняется по сложному алгоритму, этот способ не подходит.

p.s. с высокой вероятностью на сайте есть 'уязвимость', позволяющая вытащить оригинальное изображение, отличным примером поиска такого является вот эта статья - "Кража закрытых видео YouTube по одному кадру"

p.p.s. хабр не дает вставлять эту ссылку так как слово вдсина в адресе под запретом О_о
Вопрос: Как получить название wifi, к которой подключен компьютер?

Лучший ответ:
Ответ AndromedaStar правильный, но нужно ещё уточнить, что это класс из сторонней библитеки.
https://habr.com/ru/post/181251/
Вот сама библиотека: https://github.com/consp1racy/NativeWifi
Но я не советую её использовать, тк она не обновлялась 8 лет.

Вместо неё советую использовать: https://www.nuget.org/packages/ManagedNativeWifi/
using ManagedNativeWifi;
var connections = NativeWifi.EnumerateInterfaceConnections();
var firstConnection = connections.First();
Console.WriteLine(firstConnection.ProfileName);
Работает, конечно, только на винде. На линуксе в голову приходит только вариант с парсингом вывода iwlist

Худший ответ:
Это делается вроде через WlanClient
Вопрос: Чем отличается такой код?

Лучший ответ:
ничем

Худший ответ:
Помимо удобства, if else без раннего возврата управления может усложнить программу, тк может понадобиться следить за состоянием результата

https://refactoring.guru/ru/replace-nested-conditi...
Вопрос: Как исправить ошибку «C4996 'strcat': This function or variable may be unsafe»?

Лучший ответ:
Попробуйте ввести более 10 символов в word1 и word2 и у вас программа непредсказуемо упадёт.
Если использовать strcat_s, то она проверит граничные условия и выдаст ошибку, если они не выполняются.
Для использования strcat_s нужно немного переписать программу - обработать ошибку и знать размер первого буфера.

Худший ответ:
Данил Васькевич, прикинь, блин! Или как компилятор советует вместо strcat использовать strcat_s, или указать дифайн _CRT_SECURE_NO_WARNINGS (в Visual Studio его можно указать в свойствах проекта, глобально). Ну лучше всё же не пользоваться небезопасными функциями, а перейти на функции с суфиксом _s везде где только возможно, а не только в этом случае. Дифайн _CRT_SECURE_NO_WARNINGS это плохое решение, подходит на "только сейчас и для старого кода чтобы поддерживался", а новый код не надо на него расчитывать, надо пользоваться безопасными функциями.
Вопрос: Отличия ядра с kernel.org от того, что в дистрибутивах типа RedHat & Debian?

Лучший ответ:
Да, содержат, иногда достаточно много, обычно это патчи, которые по тем или иным причинам не попали в оригинальные ядра. Например, многие дистрибутивы из коробки содержали  не вошедшие в ядро патчи ( например для RaiserFS в свое время), драйверы для Wifi, сетевых плат, дополнительные планировщики IO, улучшения сетевых стеков, проприетарные драйвера.
Ближе всего к ванильному - ядра Debian. Но и там присутствуют бекпорты (патчи новых фич в старые ядра). Это делается для повышения стабильности с поддержанием новых интересных фич, не ломающих все остальное....
В большинстве случаев ванильные ядра подходят 90% пользователям. Но есть те 10%, ради которых дистрибутивостроители будут делать свои кастомные патчи.

Худший ответ:
Ванильное ядро
Вопрос: Редирект. Как сделать переадресацию с определенной страницы?

Лучший ответ:
Если я добавляю скрипты на своих страницах, у него также они отрабатывают.

if(document.domain != 'мойсайт.ру') {
    document.write('лох, фидр');
}

логи-то посмотрите, легко найдется адрес откуда идёт загрузка данных и можно будет забанить по IP

Худший ответ:
Два варианта, которые сразу приходят в голову.
1. php-fpm смотрит в интернет, нужно закрыть порт с помощью firewall;
2. Ходят через заголовок X-Forwarded-Host;
Вот пример,
curl --location --request POST 'https://www.mysite.ru' \
  --header 'Host: http://www.mysite.ru' \
  --header 'Host: http://www.fakesite.ru' \
  --header 'X-Forwarded-Host: http://www.fakesite.ru' \

А решение по редиректу написал Александр Аксентьев выше^
Вопрос: Как сохранять данные и работать с ними?

Лучший ответ:
sqlite3 в помощь.
Также настоятельно советую подучить основы SQL и реляционных БД (понятия таблицы/строки/колонки, что такой первичный ключ и внешний ключ и зачем они нужны, какие бывают запросы). Без этих базовых знаний не будешь понимать, что делаешь.

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

Лучший ответ:
Просто в нормальном коде такой хрени не происходит. Даже если так случилось что отправка у вас методом пост, ну допустим надо так, то при обработке запроса на сервере делается редирект методом гет, по этому при перезагрузке ничего не отправляется повторно.

Худший ответ:
Согласен с ThunderCat , но если это для тебя принципиально, можно кэшировать поступающие данные, например записывать в обычный текстовый файл и сравнивать поступающий $_POST-массив с уже существующими данными. Если совпадение стопроцентное, убиваешь код, если нет, обрабатываешь запрос.