pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как подключить php файл в ajax запросе?

Лучший ответ: Поставьте слэш в начале своего урла "/for_db.php"

Худший ответ: $.ajax({
type: 'POST', //метод запроса
url: '/for_db.php', //ссылка на обработчик
data: { //передаваемые данные
data1: data_key
},
beforeSend: function(){
//выполняем код, который будет выполняться до отправки запроса
},
success: function(data){
var obj = $.parseJSON(data) //если ответ в формате JSON
//выполняем остальной код
},
error: function(){
alert("Ошибка подключения");
}
});
Вопрос: Клиент из заграницы, какие документы ему отправить?

Лучший ответ: Лучше зарегистрируйте ИП, это несложно. Вот гайд по работе с заказчиком: https://evileg.com/ru/post/200/

Худший ответ: Только ИП! Либо можете попробовать поработать через биржу upwork.com, но там налогов заплатишь больше, чем официально ИП дома - надо ли оно?
Вопрос: Как написать программу для поиска индекса строки матрицы с максимальной суммой элементов?

Лучший ответ: Потому что блоки ограничивают область видимости. Объявили переменную внутри блока try - можете использовать её только внутри этого блока.

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

Лучший ответ: Я только здесь смотрю новости по разработке: https://habr.com/users/alexzfort/posts/
А так, их избыток такой, что приходится прикаладывать усилия в обратную сторону - чтобы НЕ увидеть лишнего.

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

Вот пример ТГ-канала о дизайне — https://t.me/insight_po
Вопрос: Как убрать из woff/woff2 файлов шрифта лишние символы?

Лучший ответ: Я в FontForge создаю новый шрифт с нужными мне иконками, а потом сохраняю в нужные мне форматы. Или можно в app.fontastic.me выбрать нужные глифы.

Худший ответ: Воспользуйтесь конструктором fontello.com
Соберите шрифт сами с необходимым набором иконок.
Вопрос: WiFi роутер с помощью arduino?

Лучший ответ: Arduino не умеет wifi. 
esp8266 умеет wifi, его можно подключить к arduino, но на самом деле у esp8266 и мозгов достаточно, чтоб сразу и веб-сервер запустить, и ардуинка не нужна.
https://www.google.com/search?q=esp8266+web+server
Но для начала я бы посоветовал посмотреть внимательнее на роутер (погуглить его возможности), очень большая вероятность, что можно поднять вебсервер прямо на роутере, и не нужно ничего дополнительного подключать.

Худший ответ: Esp 8266 подойдёт. Сама ардуина не обладает wifi радиомодулем
Вопрос: Можно ли совместить классы на Python 2.x с классами на Python 3.x в одном приложении?

Лучший ответ: Можно ли совместить классы на Python 2.x с классами на Python 3.x в одном приложении
Можно. Но к чему вопрос?Нет, у меня нет никакого проекта который бы я собирался объединять с чем-то
Спасибо, что сказал, а то мы переживалиНо если нельзя - то Python для меня один из худших языков, если не самый, учитывая его популярностьСпасибо, что сказал, а то мы переживали

Худший ответ: Тебя еще не послали? А, уже послали... Ну тогда я просто присоединюсь.
Вопрос: Где достать бесплатный tls-сертификат?

Лучший ответ: Где достать бесплатный tls-сертификат?Создайте свой! Одна команда и он на вашем жестком диске лежит (вместе с ключом):openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

Худший ответ: Для того, чтобы тестить сайт, сертификат не нужно "доставать" - его нужно сгенерить. В тырнете зиллион инструкций по генерации самоподписанных сертификатов и развертыванию собственных CA. Сертификаты в общепризнанных СA (в том числе и в LE) нужны для "большого веба", то есть для сайтов, которые видны всем. 
Установка обновлятора сертификатов - это политика LE, не нравится - не пользуйтесь :)
Вопрос: Как кто-то смог проникнуть в мой календарь?

Лучший ответ: Не могу сказать точно насчёт IPhone, но касательно google календаря уязвимость известна достаточно широко в узких кругах. Вероятнее всего это какая либо из её адаптаций под платформу IOS. В любом случае почитайте, так же можете задать вопрос автору, возможно вместе придёте к какому либо выводу.
https://codeby.net/threads/ujazvimost-rikardo-milo...

Худший ответ: Пока сделал следующее (как рекомендуют в интернете):
1. Создал новый календарь
2. Каждый спам перенёс в новый календарь.
На этом всё.
Хотя дальше рекомендуют:
3. Удалить весь календарь БЕЗ уведомления.
Если просто так удалять, то это сигнал спамерам, что календарь активный, и зараза будет дальше лезть.
Но вопрос всё ещё открыт. Ведь это не решение.
Вопрос: Как убрать 'плохие' символы из строки?

Лучший ответ: Кодировка utf8 в MySQL - это псевдоним для utf8mb3 (3-байтовое кодирование). Для полноценной работы UTF-8 (4-байтовое кодирование) в MYSQL 5.5 добавлена кодировка utf8mb4. 
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
Вам следует использовать utf8mb4, или удалить все 4-байтные символы:NOTE: you should not just strip, but replace with replacement character U+FFFD to avoid unicode attacks, mostly XSS:
unicode.org/reports/tr36/#Deletion_of_Noncharacterspreg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $value);
https://stackoverflow.com/questions/8491431/how-to...

Худший ответ: Кодировка utf8 в MySQL - это псевдоним для utf8mb3 (3-байтовое кодирование). Для полноценной работы UTF-8 (4-байтовое кодирование) в MYSQL 5.5 добавлена кодировка utf8mb4. 
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
https://dev.mysql.com/doc/refman/5.5/en/charset-un...
Вам следует использовать utf8mb4, или удалить все 4-байтные символы:NOTE: you should not just strip, but replace with replacement character U+FFFD to avoid unicode attacks, mostly XSS:
unicode.org/reports/tr36/#Deletion_of_Noncharacterspreg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $value);
https://stackoverflow.com/questions/8491431/how-to...
Вопрос: Как взаимодействуют микросервисы?

Лучший ответ: Нашел такую статью на хабре - https://habr.com/post/302844/ , да ещё и в докладах говорят что "все проблемы решает" docker. 
Да?Смерть микросервисного безумия в 2018 годуВам не нужна микросервисная архитектура
И это только легкий гуглежь.
Основной плюс микросервисов - горизонтальная масштабируемость.
Потому изначально должно быть разработано так, чтобы из одного микросервиса вы не знали на какой машине находится тот другой сервис, к которому вы обращаетесь.
Более того - их может быть несколько экземпляров одинаковых.
И вы не будете заранее знать к какому именно экземпляру вы обращаетесь.
Рассматривайте сервис как отдельное изолированное самодостаточное приложение.
Как правило со своей личной базой данных (разве что между экземплярами одного и того же сервиса используется одна и та же БД; реже - одна БД на несколько различного вида сервисов).
Чаще всего взаимодействующее с внешним миром и/или другими сервисами по HTTP/HTTPS.
Иногда взаимодействие дополняют MQ-сервером.
да ещё и в докладах говорят что "все проблемы решает" docker. 
Как решает так и создает проблем.
Про решает - имеют ввиду вот что: Докер позволяет прогарантировать что окружение при разработке и окружение при эксплуатации будет максимально сходным.
А нередко это большая проблема - когда у разработчика все запускается, но в реальной системе глючит. Из-за какого нибудь ерундового отличия в конфигурации, которое сделано в той же системе но под другой уже имеющийся в системе софт и/или в установленных библиотеках (а другую версию поставить нельзя, так как другой софт требует именно той версии) и пр.
Докер же позволяет изолировать приложение вместе с настройками, которые под него сделал разработчик.

Худший ответ: Обычно - HTTP/REST для синхронных вызовов и разного рода очереди - для асинхронных. Возможно взаимодействие и через интернет, конечно, но чаще это внутряк. С точки зрения деплоймента - это может быть любая комбинация в зависимости от конкретных условий (отдельные железки\виртуалки\контейнеры и отдельные\шаренные БД). При шаренных ресурсах важное условие - изоляция, то есть данные одного сервиса или наличие сервиса на той же железке никогда не подразумевается в другом (например прямой доступ в чужую базу), а всегда запрашиваются через API.
Вопрос: Есть ли смысл учить JS по книге 2015 г.?

Лучший ответ: Для старта нормально, но при этом почитывай learn.javascript.ru

Худший ответ: Смысла учить нет наверное даже по книге 2017 года, если не 2018 года. Базу может быть еще ладно, но там все так стремительно развивается, что все устаревает очень быстро.
Вопрос: Какой язык программирования подойдёт для написания высокопроизводительного приложения на Windows?

Лучший ответ: ответы более чем очевидны, в порядке приоритета перфоманса:
- C++, D
- Rust, Go
- даже C#
.. вот только пожеланияязык программирования ... для написания высокопроизводительного приложения на Windows и Не слишком высокий порог входа состоят в полной противоположностиps капля лирикидаже мой любимый C#, если добавить немножко ускорителей
https://habr.com/ru/company/clrium/blog/467663/
https://habr.com/ru/post/443804/
.. но это точно не сразу за порогом вхожденияpps я бы рекомедовал D, тем более и плагин для VS естьppps тут скриптовые языки советуют и критикуют регулярки.. и это более чем верно. регулярки слишком универсальный инструмент, что бы быть быстрым. регулярки в скриптовых языках - помножайте на скорости (точнее тормоза) интерпретаторов. на том же шарпе (без низкоуровневых финтов), но простым поиском по образцу начала фрагмента, и конца (да, задача была не сложной )), я получал что то вроде десятикратного обгона регулярок, самого же шарпа ))
.. вывод - если вы займетесь программированием.. реально займетесь. и правда, и на php, и на js, получите обгон регулярок, наверняка тоже на порядок. а если не поймете как обрабатывать строки, ни один язык вас не спасет. на любом языке можно написать самую медленную программу ))

Худший ответ: Да как бы на куче всего это можно написать, в том числе и на js. Можете глянуть в сторону go, учится за неделю, довольно производителен
Вопрос: Как пробросить порты при отсутствии выделенного IP?

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

Худший ответ: Заходишь в настройки роутера(у каждого производителя по своему) находишь настройку DDNS -выбираешь там поставщика ddns(у asus и dlink есть свои бесплатные) пишешь там желаемое имя, потом идешь в настройки фаервола(маршрутизации) и там добавляешь нужные порты. Из инета надо заходить через выбранное имя типа davidhnm.asuscom.com (если у тебя асус конечно).
Вопрос: Как сделать размытие контента?

Лучший ответ: По идее мы и должны размывать изображение и его располагать выше контента и при наведении сдвигать вверх или куда угодно 
Или применять заранее размытое изображение или svg 
В css это делает filter:blur(); но он наследуется и потому как правило применяют абсолютное позиционирование двух блоков
Это пример : codepen

Худший ответ: комбинируй добавь, что то вроде такого background-color: rgba(255,255,255,0.80);
что у тебя = name::before или ....
Вопрос: Оптимизация сервера под wordpress сайты?

Лучший ответ: 1) Выкинуть Apache
2) Перейти на Nginx + php7.0-fpm
Конфигурация виртуального хоста Nginx для WP примерно такая:server {
  server_name example.com;
  listen 80;
  root /home/site1/web;
  access_log /home/site1/logs/access.log;
  error_log /home/site1/logs/error.log;
  index index.php;

  location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
  }

  location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    access_log off;
    expires max;
  }

  location ~ /\.ht {
    deny  all;
  }
        location ~ \.php$ {
                  try_files $uri =404;
                  fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/site1.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        }
}
Затем создаёте соответствующий файл пула (/etc/php/7.0/fpm/pool.d/site1.conf)[site1]
user = site1
group = site1
listen = /run/php/site1.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /
Каждый сайт работает от своего пользователя linux. Файлы сайта site1 лежат в /home/site1/web
P.S.
А зачем Вам Apache вместе с php-fpm ? о_о

Худший ответ: Если нужен .htaccess, то Apache2-mpm_itk+Nginx+mod_php7 или Litespeed. Если не нужен, то Nginx+php7-fpm
Вопрос: Как поменять значение свойства обьекта?

Лучший ответ: 
не меняются.

Худший ответ: Если это ссылки на разные объекты с одинаковыми параметрами -- всё будет норм
А у вас, скорее всего, две ссылки на один объект. Юзайте что-то типо Object.assign({}, your_object); перед пушем в массив
Вопрос: Как сделать переадресацию поддоменов на отдельные страницы Вконтаке?

Лучший ответ: DNS - нет
Вам нужно на запрос a.site.ru отдавать заголовок Location: https://vk.com/guppa

Худший ответ: Если подключить домен на CloudFlare, можно там прописать Page Rules для нужных вам редиректов. В бесплатном режиме можно три правила, кажется.
Вопрос: Как стать Junior верстальщиком?

Лучший ответ: Я все починил, теперь ваша карьера и ориентация в порядке!
Не благодарите.

Худший ответ: Ни одного человека не знаю в IT, который попал бы туда по связям, без стараний. Сам я фотограф по образованию, сейчас работаю в классной компании на фронте.
И поверь, ничего, кроме стараний, мне не пришлось применять. 
Не стоит унывать из за того, что ты нашел какую то картинку. Серьезно...
И вообще, не гугли подобную дичь! Это всем совет)
Вопрос: Где найти ресурс с подборкой «правильных» решений на PHP?

Лучший ответ: Попросили проверить код, на что смотреть нужно?

Худший ответ:   как правильно реализовать авторизацию с токенами, сделать корзину в онлайн магазине и.т.д,
Есть бесконечное число вариантов сделать корзину в онлайн магазине, и бесконечное число переменных влияющих на принятое решение. 
Вы знаете что такое комбинаторный взрыв? Это именно то что произойдёт если вы будете пытаться запомнить все реализации любых задач, не говоря уже о том что любая новая задача остаётся по прежнему уникальной(в какой-либо степени), и просто копирование решения из похожей задачей почти никогда проблемы не решит, а в связи с упомянутой выше проблемой в виде множества обстоятельств влияющих на набор выбранных решений, слепое их копирование скорее сильно навредит развитию проекта, чем поможет в сколь-либо обозримом будущем.
Если хотите научиться делать вещи хорошо, подумайте над тем что нужно чтобы делать вещи хорошо, и как отличить лучшее решение от худшего, на что нужно ориентироваться при выборе решения, какие есть базовые приёмы техники и критерии качества. Коротко говоря - возьмитесь за базовые вещи. Начните с книг.
P.s. кстати, последнее что я смотрел про проектированию корзины - вот. Полезный ролик чтобы взглянуть на вещи по новому, но не для того чтобы копировать решение. естественно.
Вопрос: Стоит ли сейчас обновляться с CentOS 7 до CentOS 8?

Лучший ответ: Даже не думай, скорее обновляй! 
Желательно боевые серваки. 
Вот прям сейчас, в 00:00.

Худший ответ: А как обновиться то можно без переустановки? Что-то обычными способами не проходит
Вопрос: В какой ВУЗ поступать?

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

Худший ответ: В хороший. 

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

Я учился не в государственном, поэтому нам дали чуть более (а где-то сильно) продвинутые языки и технологии. Могу выделить C. После него же любой суть язык = дополнительные или отсутствующие возможности и особенности.

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

И да, столичные учебные заведения с большей доли вероятности дадут чуть более актуальную базу по языкам и технологиям. В идеале, чтобы еще и лектор горел душой и был практикующим разработчиком. У меня был такой, как раз по тому курсу C)
Вопрос: Что это за технология?

Лучший ответ: Шаблонизатор twig

Худший ответ: Шаблонизатор twig
Вопрос: Как расширить том диска влево?

Лучший ответ: Через загрузочный диск Linux с GParted. Там красивенько, с окошечком, разберётесь. Прям мышкой берёте и двигаете.

Худший ответ: Самый тупой вариант - отформатировать этот раздел под Linux и использовать как отдельный раздел. Не очень удобно, зато безопасно.
Вопрос: Как углубить свои знания по теме Java EE?

Лучший ответ: Устроиться на работу. Нормально освоить JEE можно только имея 3-5 лет работы на реальных проектах. Парадокс, но хорошей литературы на эту тему, не предполагающей опыта, я не видел.

Худший ответ: Здравствуйте!
Я и сам сейчас на любительском уровне изучаю java EE и фреймворк Spring.
Материалов много, но если честно понимание приходит со временем. Я например, для саморазвития взял небольшой проект и работаю над реализацией в spring. Конечно же встречаются проблемы и тут уже мне помогает и литература, и тостер и stackoverflow.
Вопрос: Postgresql-10 как работает логическая репликация из коробки(вопросы по теме под катом)?

Лучший ответ: 1) Можно ли создать логическую репликацию на уровне схемы
Нет.
Ответ есть даже в мануале: https://www.postgresql.org/docs/10/sql-createpubli...
Банально нет даже синтаксиса для создания публикации схемы.2) Связи между таблицами также будут реплицыроватся?
Что вы имеете в виду?
DDL вы переносите на подписчиков сами. Реплицируются только данныеTRUNCATE and DDL operations are not published.
truncate начали реплицировать в pg11. Репликации DDL нет и не будет как минимум ещё в pg12, на данный момент нет ни черновых патчей ни даже обсуждений таковой реализации.
То есть так, как вы, видимо, хотите настроить паблишера и он сам всем будет заниматься - не выйдет.
PS: есть некоторая терминологическая путаница, как англоязычная так и русскоязычная, schema и схема как namespace или schema и схема говоря о структуре базы, т.е. DDL

Худший ответ: Мне кажется, вам больше подойдёт периодический бэкап схемы с последующим восстановлением на другом сервере.
Или вам данные тоже нужно переносить? Тогда, видимо, надо было с самого начала разделять по разным кластерам базы.
Вопрос: Как увеличить скорость в pagespeed для мобилки?

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

Худший ответ: Просто сжать картинки порой не достаточно. Там где можно использовать jpg то используй его, особенно для портретов. Далее конвертируй в webp. Не все браузеры поддерживают формат, но он рекомендуем для хрома. Загугли, если не знаешь как подключать изображения сразу с несколькими расширениями. Юзай squoosh.app
Вообще про изображения посмотри ролики Вадима Макеева. Можно так же вынести стили, которые формируют первый экран в шапку, а остальное спустить вниз.
Вопрос: Защита от случайного удаления или как подстраховаться перед удалением контента?

Лучший ответ: confirm именно для этого и придуман.
на стороне сервера можно делать soft delete: не удалять реально, а устанавливать флаг удаления.

Худший ответ: Ну так и есть только обычно используют не confirm js, а верстают кастомную модалку. Ну и как Вам выше предложи soft delete
Вопрос: Андроид приложение, возможно?

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

Худший ответ: Магазины не пропустят 100%
Вопрос: Как убрать блокировку браузерами js файла на https?

Лучший ответ: У тебя не main.js блокируется, а jquery, который ты почему-то не можешь подключить с CDN по https.

Худший ответ: Блокируется файл jQuery, а не файл main.js
замените ссылку на jquery с code.jquery.com/jquery-2.2.4.min.js на https://code.jquery.com/jquery-2.2.4.min.js
Вопрос: Где искать исходники сайтов в сети?

Лучший ответ: github. Учите английский.

Худший ответ: Если вам нужен внешний вид, то на https://webarchiveorg.ru/ (https://web.archive.org/).
Вопрос: Как показывать другой ip адрес для VPN?

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

Худший ответ: заходить в VPN через VPN который запущен через VPN... думаю дальше продолжать не стоит
Вопрос: Как заблокировать useragent?

Лучший ответ: Разбирать user agent на уровне iptables не лучшая идея - там проверку будет проходить каждый пакет и это будет весьма накладно по ресурсам. К том же, это не будет работать для https.
Блокировку по user agent можно делать на уровне веб сервера. 
Или логировать веб сервером попытки, и блокировать через iptables с помощью fail2ban, например уже по адресу.

Худший ответ: grep-ом выбираешь адреса с интересующим UA и в iptables на DROP
Вопрос: Как скрыть родительский блок с помощью css или js, если в дочернем картинка имеет пустой src?

Лучший ответ: Не шарю в битриксе, но на jQuery можно скрыть так:$('.icon').each(function(){
    if ($(this).children('.icon_img').children(img).attr('src') == '')
        $(this).remove();
});
Не идеальный вариант, но в качестве временной заплатки, наверное, пойдёт.

Худший ответ: Дак ничего и делать не надо. Если картинки внутри нет блок будет нулевой высоты и ширины.
https://codepen.io/aliencash/pen/BvzjBK?editors=1100
Вопрос: Фрилансер без сайта и сотрудников и Персональные данные — оператор?

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

Худший ответ: Нет, кончено не надо
Вопрос: Какие процессы происходят на низком уровне?

Лучший ответ: Консоль браузера Хром это консоль javascript движка V8. 
Соответственно когда пишешь var a = 8 виртуальная машина javascript выделяет через ОС блок памяти для переменной.
У ОС есть системные вызовы для выделения памяти, для работы с процессором и т.п.
На уровне железа оперативная память представляет собой набор сигналов 1-0 и этот поток постоянно проходит через процессор, меняется и отправляется обратно в память.

Худший ответ: Для начала понимания нужно изучить, как устроен процессор, как он работает с памятью, с устройствами на матплате, с периферийными устройствами, АЧ компьютера, в общем. Язык ассемблера и C, хотя бы краем глаза, тоже стоит поизучать.
Затем почитать пару книг, как работает ОС, как в теории, так и конкретные примеры Linux\Windows. На всё это, в нормальном темпе, может уйти пару месяцев, не более.
Далее уже будет понятно, в какую сторону гуглить.