pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как сделать такую защиту кода(CSS HTML)?

Лучший ответ: Вот их скрипт, который реализует данный функционал:<script language="JavaScript">
      &lt;!--
var message="Where is your conscience? pay for the project :)";
///////////////////////////////////
      function clickIE4(){
      if (event.button==2){
      alert(message);
      return false;
      }
      }
function clickNS4(e){
      if (document.layers||document.getElementById&amp;&amp;!document.all){
      if (e.which==2||e.which==3){
      alert(message);
      return false;
      }
      }
      }
if (document.layers){
      document.captureEvents(Event.MOUSEDOWN);
      document.onmousedown=clickNS4;
      }
      else if (document.all&amp;&amp;!document.getElementById){
      document.onmousedown=clickIE4;
      }
document.oncontextmenu=new Function("alert(message);return false")
// --&gt; 
      </script>
P. S. все эти скрипты - ерунда. Кто захочет, все равно скопирует.

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

Лучший ответ: Попробуйте поработать под linux (Debian/Ubuntu), ибо для разработки под WEB удобнее ничего увы нет (если только вы не .NET программист).
Из backend-фреймворков - Silex/Symfony/Zend, другие даже не стоит смотреть первое время, можно перейти в любой момент после одного из этих трех, зато сразу уменьшается вероятность написать что-то не правильно, не красиво... Хотя и с Symfony сделать глупость можно, если постараться, но во всяком случае эти фреймворки стараются учить хорошим подходам к проектированию приложений.
Откажитесь от Denver (а еще лучше, все же перейдите на linux, хотя бы в виртуалке), не ставьте Apache, используйте встроенный в php (с версии 5,4) сервер. В целях разработки довольно удобно, не нужно прописывать vhost от проекта к проекту.
Изучите Bash (минимально, хотя бы основы), GIT, познакомьтесь с SSH и SCP, работайте с базой через консольный клиент (phpmyadmin не нужен), заодно потренируетесь писать SQL запросы. Если хотите все же остаться на Windows, ставьте MinGW (обычно при установке GIT требуется).
Попробуйте изучить системы сборки проектов (Phing, Ant), учитесь покрывать код тестами (PhpSpec2, PHPUnit), используйте стандарты PSR (в частности используйте Composer).
Ну и почитайте чего про TDD/BDD, SOLID, GRASP...
Из языков рекомендовал бы изучить в обязательном порядке javascript, и посмотреть в сторону Ruby/Python, или же, Golang.

Худший ответ: Любой текстовый редактор с подсветкой синтаксиса, я использую Sublime Text и систему контроля версий Git + TortoiseGit для доступа через контекстное меню Винды. Если вам нужно что-то большее копайте в сторону IDE систем типа NetBeans и пр.
Вопрос: Как отправить ajax запрос в yii 2 и не получить ошибку 400 (Bad Request)?

Лучший ответ: Либо добавить crf токен либо отключить его.

Худший ответ: Посмотрите правила роутера, может у вас там стоит другой урл? Например так /ajax/message/
Попробуйте вручную в браузере вбить этот урл, /ajax/message, найдется у вас такая страница вообще?
Вопрос: Как проксировать запросы с 80 порта на nodejs?

Лучший ответ: Лучше с помощью Nginx

Худший ответ: если apache не заменить на nginx на 80 порту, то надо использовать mod_proxy
Вопрос: Как научить программированию с нуля?

Лучший ответ: А почему бы сразу не начать с java?

Худший ответ: java, с#, actionscript3 как по мне наилучший выбор для тех, кто хочет начать с нуля.
И уж если подтягивать до уровня университетских лаб, то почему бы не начать учить с университетских лекций?
Вопрос: Внешняя видео карта

Лучший ответ: Работать в вашем случае не будет. Ноутбук не включится, если видеокарта (основная) не функционирует.

Худший ответ: Не думаю, что даже современный ноут, сможет подхватить с USB что-либо кроме флешки/мыши/клавиатуры до того как зайдет в ОСь… :/
Вопрос: Какой формат данных выбрать для хранения сущностей (sql\nosql(json))?

Лучший ответ: Для миллиона записей совершенно неважно, какое именно решение вы используете.
Если начать с чистого реляционного SQL, то данные, где реляционность не нужна, потом можно сериализовать и хранить в бинарных полях реляционных таблиц.
Используя NoSQL, вы в некотором роде усложните себе работу, так как появится необходимость придумывать и накладывать на коллекции индексы, чтобы быстро делать выборки и считать агрегаты.
Однако, у NoSQL есть заметное преимущество — эти хранилища "из коробки" могут довольно неплохо объединяться в отказоустойчивые кластеры. Правда, отсутствие транзакций и eventually consistence не позволят вам гарантированно читать только что записанные в кластер данные.
Соответственно, комбинированное решение объединит достоинства и недостатки обоих миров.

Худший ответ: Я бы выбирал что-то одно.
Вопрос: Как использовать $scope вне контроллера?

Лучший ответ: Заведите себе какой-нибудь сервис, например Page, в котором будет лежать вся информация, относящаяся к странице в общем, такая как текущий пункт меню,  title и тд.app.service('Page', [function () {
  var Page = this;
}]);
Внутри app.run просто  поместите этот сервис в $rootScope:app.run(['$rootScope', 'Page', function ($rootScope, Page) {
  $rootScope.Page = Page;
}])
Теперь просто заинжектите этот сервис в любой контроллер и устанавливайте ему все что душе угодно.app.controller('MyCtrl', ['$scope', 'Page', function ($scope, Page) {
  Page.myVar = 'lol';
}])
В ангуляровском шаблонизаторе будет доступно как {{Page.myVar}} или более строго {{$root.Page.myVar}}

Худший ответ: У подхода предложенного Павел Кононенко есть свои плюсы (просто), и минусы (логика из view layer чуть чуть вытекла в контроллер). Что бы этого не происходило можно сделать это дело при помощи старых добрых директив и выставлять заголовки и метатеги через них во вьюшках. Далее уже есть варианты:
 - в директивах ловить метаданные и сэтить их через сервис, метаданные выводит отдельная директива
 - передавать данные напрямую в директиву отвечающую за вывод метатегов (директивы могут общаться).
Вопрос: Почему на Хабре кнопка «опубликовать» такая большая?

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

Худший ответ: Это чтобы Акелла не промахивался.
Вопрос: Как избавиться от белого экрана вызванного PHP обработчиком?

Лучший ответ: Жесть, конечно, разработчик такой небезопасный код писать

Худший ответ: Каждый день почти эту ссылку кидаю
malsup.com/jquery/form
Вопрос: Google Analytics посчитал одно, в логах другое, статистика рекламной системы говорит другое. Где правда?

Лучший ответ: На мой взгляд, есть вероятность, что Google Analytics:
1. Не учитывает тех у кого отключён JS или заблокирован их сервис или были ошибки JS (Насчёт последнего не уверен)
2. По каким-либо своим данным, узнаёт тех, кто сменил IP (хотя, должно бы учитывать тех, кто на одном IP)
3. Учитывает минимальное время посещения (если сразу закрыли, то вроде посещение не учитывается — надеюсь, если что — меня поправят).
4. Исключает ботов (из-за п.1)
5. Похож на п.1 и п.3 — скрипт не успел загрузиться.

Худший ответ: В дополнение к первому ответу: возможно, рекламная статистика учитывает переходы.
Бывает, что пользователь нажимает на ссылку, но редирект на нужный домен происходит не мгновенно, и юзер нажмает на F5.
Вопрос: Почему появляется ошибка invalid conversion from 'char' to 'char*'?

Лучший ответ: val - массив строк = массив массивов символов
a  - строка = массив символов
b - символ
char b = a[0];

Худший ответ: Все правильно - массив a - отдельные символы, а не указатели на символы.
char *val[] - массив указателей на символ - char*
char* - массив символов.
Вопрос: Избавление от рекурсивного перехода при парсинге сайтов

Лучший ответ: А если попробовать фильтровать повторяющиеся переменные в адресе? т.е. на сайте из примера REQUESTED_FROM будет повторяться сколько угодно раз

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

Лучший ответ: Как решение проблемы «в лоб» — прошивайте клиентам OpenWRT, чтобы проблема не повторилась.
Ну а у себя поставьте несколько «проблемных» роутеров, подключите через UART и пишите логи.

Худший ответ: Эта беда именно и на последних прошивках и на старых. Nmap показывает все тот же один единственный 80 порт.
Вопрос: Как правильно прописать mount сетевого диска в системе Raspbian?

Лучший ответ: 1) sudo apt-get install cifs-utils  либо  обновит либо скажет что последняя версия стоит.
2) На роутере делаешь отдельного пользователя с доступом на диск с паролем.
2) В /etc/fstab добавляешь строчку: 
 //192.168.ххх.ххх/папка на роутре /mnt/папка на малине  cifs iocharset=utf8,username=Юзер что создал,password=пасс от юзера,nounix,dir_mode=0777,file_mode=0777  0   0
3)reboot

Худший ответ: В /etc/fstab его нужно прописать.
Вопрос: Как одновременно редактировать один html код с двух разных пк?

Лучший ответ: Была у людей задача - совместная разработка. Придумали они удобный инструмент - vcs (git). Встала перед верстальщиком DmitriySin такая же задача - и он идёт против системы, не признавая ничего, усложняя себе жизнь дропбоксами, конфликтами и всем остальным. Казалось бы. что может быть проще, чем программа из двух текстовых полей и одной кнопки?

Худший ответ: Легче разобраться с Git. Если не идет работа через командную строку, на Github.com есть программа с графическим интерфейсом.
Вопрос: Не срабатывает removeEventListener?

Лучший ответ: removeEventListener не сработает, если не передавать точно ту же функцию, которую передали в addEventListener. Я лично столкнулся с таким однажды, когда думал, что fn.bind(ctx) возвращает один и тот же объект каждый раз, а оказалось, что нет. То есть: fn.bind(ctx) !== fn.bind(ctx). Возможно, это ваш кейс, т.к. Menu.prototype.toggleTag явно должен исполняться в определенном контексте, но точнее сказать невозожно, так как почти вся эта приведенная простыня не имеет к проблеме никакого отношения. Покажите минимально неработающий пример, если хотите помощи.

Худший ответ: Не стоит вешать обрработчики и снимать их потом используя анонимные функции
outputExistTags: function(msg, callback) {
.............some code.................
***********************************
for (var i = 0; i < tagsId.length; i++) {
            var itemList = document.querySelector('[data-target="' + tagsId[i] + '"]');
            itemList.removeEventListener('click', callback);
            itemList.classList.add('tvz-disable');
            console.log(itemList);
        }
}
}
Вы же передаёте анонимную функцию, у вашего обработчика совсем другой callback
Можно складировать callback'и связывая с типами событиями
Вопрос: Что не так в моем коде, и как подтянуть навыки?

Лучший ответ: Тебе все правильно написали.
Мой тебе совет лезть в гитхаб, качать оттуда проекты и смотреть их механику.
Прежде чем лабать код смотрим на исходные данные.
У тебя это json, открываем и смотрим.
Мы видим массив одинаковых объектов. Для нашего удобства
сообразим класс под json'овские данныеclass Product {
int id;
String name;
String picture;
String description;
}
Теперь нам нужно в активити их распарсить в список.
У тебя есть объект с методом new JSONReadFromAsset().readJsonFromAsset(getApplicationContext());
который возвращает json массив, а если заказчик завтра даст два таких файла !?
мы же не хотим копипастить, а сделаем универсально и метод парсера будет возвращать сразу массив объектов, а не json данные и тогда мы выкинем лишние сущностиArrayList<String> nameList = new ArrayList<String>();
ArrayList<Integer> idList = new ArrayList<Integer>();
а вставим только один списокList<Product> mDataList
и тогда мы будем получать данныеmDataList = JSONReadFromAsset.readJsonFromAsset(getApplicationContext(),"questions.json");
Сделаем readJsonFromAsset статиком, так как JSONReadFromAsset ничего в себе не несет.
в readJsonFromAsset должно быть что-то, вроде, такогоreadJsonFromAsset() {
List<Product> dataList = new LinkedList();
for () {
Product product = new Product();
obj = jsonArray.getJSONObject(position);
product.id = obj.getInt("id");
product.name = obj.getString("name");
product.description = obj.getString("description");
product.picture = obj.getString("picture");
dataList.add(product);
}
return dataList; 
}
вместо методов getString, getInt я предпочитаю использовать optString, optInt
Вариантов парсинга данных много, можно изворачиваться по разному.
А что бы показать что ты крут, можно сделать класс Product Parcelable
и не передавать пачку строк через бандл в интенте, а передать сразу Product объект.bundle.putParcelable(SomeActivity.PRODUCT, mDataList.get(position));
В другом активити принять и с ним работать.
Можно вот так сделать 
public static final String LINK =  "ironwaterstudio.com";
и поместить в легко доступное место или завести отдельный классclass Static {
public static final String LINK =  "http://ironwaterstudio.com";
}
AlertDialog - насколько тебе необходимо обрабатывать setNegativeButton, попробуй не передавать обработчик кнопки, а сунуть null

Худший ответ: согласен с предыдущим оратором.
вроде есть некие сущности , как продукты.
но нет их моделей.
Вопрос: Как блокировать трафик с нежелательным контентом на Freebsd?

Лучший ответ: так?
только с нашей кирилицей все не просто. Попробуйте как минимум в Win1251 и UTF8

Худший ответ: squidguard поставьте...
Вопрос: Как самому доучить математику?

Лучший ответ: так как верю в то,что понимая математику я буду преуспевать во всем другом
Не шути так.Как определить уровень знаний сейчас?
Попробовать решить задачи на темы, которые ты можешь взять в __любом__ учебнике по матану, лин. алгебре, анал. геометрии, дискретке и т.д.Что решать/учить/конспектировать?Откуда брать материал?
Предыдущий ответ. Плюс материала в интернете сейчас валом. Лекции из лучших вузов на ютубе, к примеру.Так же занимаюсь html+css
Молодец.

Худший ответ: Сейчас в ВУЗе преподают математику (у нас) по конспектам Писменного. Там собран весь материал в краткой форме. Темы векторов и матанализ идет чуть полнее и понятнее, чем в школьном курсе. В качестве заданчика используется Проскуряков. Матанализ в помощь учебник Тер-Крикорова
Вопрос: Как называется всплывающее уведомление в верхнем правом углу хабра?

Лучший ответ: такая вещь есть во всех стандартных сборках LiveStreet. Есть отдельные реализации к примеру на jquery например stanlemon.net/projects/jgrowl.html

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

Лучший ответ: Вот и накой вам фальконь если вы в ишус трекер не догодались заглянуть.
https://github.com/phalcon/cphalcon/issues/10378
поддержка PHP7 для зефирки уже в каком-то виде есть.

Худший ответ: учитывая что еще не все зависимости для пыхи 7 вышли, то думаю что нет, а если и да, то не советую использовать
Вопрос: Что вы думаете про проектных менеджеров и как им следует внедряться в команду?

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

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

Лучший ответ: Используйте сервер очередей (например, gearman).

Худший ответ: Загрузку можно с прогресс баром таким образом организовать www.uploadify.com
Что касается парсинга, php Вам не вернет ответ, пока скрипт не завершит работу, можете просто фейковый прогресс организовать для видимости
Вопрос: Как уменьшить (увеличить) курсор мыши на сайте при движении?

Лучший ответ: 1 . cursor: url('путь к увеличенному курсору')
2. Второй вариант svg+js jsfiddle.net/Symphony/zercsv0h/embedded/result

Худший ответ: Уменьшите размер блоков/элементов, которые под курсором :D это создаст ощущение, что курсор увеличился xD
Вопрос: Perl, как выделить из строки то что в квадратных скобках []?

Лучший ответ: в лоб # Если в строке бывает ровно три квадратных скобки
/\[(.*)\].*\[(.*)\].*\[(.*)\]/; 
($num, $tunnel_from, $tunnel_to)=($1,$2,$3)
не подходит?
Изящнее:($num, $tunnel_from, $tunnel_to) = /\[(.+?)\]/g

Худший ответ: Не самый красивый вариант. Но сгодится.  А есть еще варианты?
Я тоже в 2 строчки решил, но так не интересно)
@num=split(/[\[\]]/, $_);
    ($tunnel_to, $ num, $tunnel_from) = (${num[0]}, ${num[1]}, ${num[3]});
Вопрос: Не удается создать загрузочную флешку Ubuntu 12.10?

Лучший ответ: Ранее обсуждалось тут: habrahabr.ru/post/128004/

Худший ответ: какая файловая система на флешке? FAT32 должна быть
Вопрос: Процедурный стиль или ООП PHP?

Лучший ответ: Процедурный однозначно.
Если такой вопрос в принципе возникает - это значит, что ООП автор не понимает от слова "совсем". И в итоге, при попытке написать собственные классы, получит адский треш. Поэтому только процедурный. Там тоже будет треш, но не адовый.
Более сложный вариант - посмотреть на календарь, узнать, что сейчас уже вторая декада XXI века, и перестать уже наконец использовать РНР так, как его использовали в прошлом тысячелетии, ковыряя каждую мелкую задачу самостоятельно на чистом РНР. После этого взять учебник по современному фреймворку, такому как Ларавель или Йии, прочитать его, и начать делать сайт с помощью готовых классов, которые уже написали для тебя, и которые берут на себя 80% черновой работы, и при этом делают её на 100500% лучше, чем твой собственный самопальный код (потому что учитывает миллион нюансов и правил, о которых ты вообще даже не подозреваешь). В итоге, по факту, сайт получится с использованием ООП, но не в том смысле, который имел в виду автор (писать все самому с нуля).

Худший ответ: Единственный способ понять - это нчать писать сайт. ООП надо применять с умом.
Вопрос: На чем написаны DirectAdmin, ISP Manager, сPanel?

Лучший ответ: ISPmanager написан на сях, пишет его народ из Иркутска.

Худший ответ: Управляющая часть это в основном bash/perl скрипты, а панель может быть написана на чем угодно, как душе будет угодно.
Вопрос: Javascript или PHP: проверить доступен ли хост?

Лучший ответ: Может что-то такое попробовать? 
var img = new Image();
$(img).load(function () {
 alert('Хост доступен');
).error(function () {
 alert('не загрузилась');
}).attr('src', 'ссылка на картинку на удалённом хосте');


Худший ответ: PHP:
$handle = fsockopen('example.com', 80);
if ($handle !== false)
{
 print('работает');
 fclose($handle);
} else {
 print('не работает');
}
Как определить яваскриптом — не знаю. Разве что послать ajax-запрос и посмотреть, обломается он или нет.
Вопрос: Законно ли будет «запустить» клон вконтакте с некоторыми изменениями?

Лучший ответ: Тролль?

Худший ответ: Можно, если Ваш скрипт не нарушает авторские права (например, дизайн).
Вопрос: Есть ли приложение, кэширующее сайты для дальнейшего чтения?

Лучший ответ: Я Pocket юзал, но тут сайты надо самому ручками сохранять. Хотя, возможно, я чего-то не знаю.

Худший ответ: А может найдётся что то подобное для iOS?
Вопрос: Выбрать ноутбук?

Лучший ответ: T420 — отличный выбор

Худший ответ: посмотрите на Lenovo IdeaPad B560A
Вопрос: Выбрать игровой движок?

Лучший ответ: Попробуйте blendelf.com/ есть поддержка Lua,C++,C# встроенная физика — Bullet Physics, лицения zlib, есть редактор editorElf

Худший ответ: Советую всё же изучить Ogre, и к нему энтузиасты уже много полезных программ написали, включая редактор сцен.
Проще изучается Panda3D, но там нет вспомогательных программ.
Вопрос: Выбрать железку уровня доступа?

Лучший ответ: Catalyst 2960 вам подойдет. В нужной комплектации (2 10G SFP + 100/1000 per port)
Есть аналоги e D-Link. Но в них я не силен.

Ответсвенного человека советую брать c прямыми руками, а не гуями.
набрать — дело нескольких секунд
conf t
int range f0/1 - f0/48
switch acc vlan 7
switch acc voice vlan 12


Ждать пока это сделает какой нибудь флэш — на много дольше, и нет гарантии, что все не упадет после этого…

Худший ответ: Ничего более оперативного чем CLI на мой взгляд не существует.
Вопрос: Как при помощи css , при наведении на один див появлялся другой?

Лучший ответ: Только если один вложен в другой:div.outer div.inner {
    display: none;
}
div.outer:hover div.inner {
    display: block;
}
Либо один идет прямо следом за другим:div.first + div.second {
    display: none;
}
div.first:hover + div.second {
    display: block;
}

Худший ответ: @barkalov забыл еще про один селектор:
 div.first ~ div.fourth {
    display: none;
}
div.first:hover ~ div.fourth {
    display: block;
}
Тогда элементам достаточно просто иметь общего родителя.
codepen.io/iiil/pen/paLum
Вопрос: Почему лендинги размещают на отдельном домене?

Лучший ответ: Мы в Starbucks делаем отдельные домены потому что чаще всего лендинг у нас — это отдельное приложение. А об оптимизации под поисковики у нас никто не беспокоится.

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

Лучший ответ: 1. yii2+oracle - какое лютое сочетание ))
2. "я следовал каким то инструкциям" - это мягко говоря не полное описание.
выкладывайте что именно делали, выкладывайте конфиги итд.
3. что бы сайт был доступен извне - его надо или прописать в каком то dns (что правильно), или руками на каждом pc (что не правильно), 
4. не забывайте делать nginx reload при внесении изменений в конфиги. но вообще см п2

Худший ответ: а что Вам не устраивает файл host Ваш ip 000.000.000.000 mycompany.com
Заходить можно с чего угодно, mac windows, адрес организации и ip знать будите только вы.
если  джинс + апач, прокси прописан?
Вопрос: Ваше мнение на счет Yii PHP Framework или аналоги для разработки проектов, что посоветуете?

Лучший ответ: Yii - подходит под все параметры.

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

Лучший ответ: Сугубое ИМХО:
1) В голове держим только общие принципы. 
2) Если есть какие то узкие нюансы, которые часто используются — используем хранилище сниппетов, либо в коде пишем комментарии, указывающие на уникальность блока — потом можно найти.
3) Стараться надо во все проекты протягивать удачные решения из прошлых проектов, даже если это вызовет замену части кода.
4) Тренировка мозга — Lumosity. Очень помогает.

Не уверен что полностью советы подойдут для веба. Сам пишу на с++, сейчас 2 активных проекта и 2 в поддержке. В каждом — свой движок. Вполне без проблем помню нюансы, либо быстро вспомниаю простым поиском по проекту.

Худший ответ: То, что активно не используется — «забывается», уходит на более глубокие слои памяти с долгим доступом, как-то так.