Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Кто нибудь получил доступ к новому api кинопоиска?

Лучший ответ:
Ответили, обещают в течении месяца уладить тех. вопросы и запустить API, предоставить доступ к документации.
Вот какие данные можно будет получить:У нас есть 7 готовых "наборов" данных, которые мы готовы предоставлять. Так же вы можете собрать собственный набор из любых 4 типов данных.
А = основные факты + рейтинг
B = основные факты + рейтинг + рецензии
C = основные факты + рейтинг + расписание
D = основные факты + рейтинг + синопсис
E = рейтинг
F = расширенные факты + рейтинг
J = собственный набор из любых N типов данных к фильму
где
основные факты = название (ru) | оригинальное название | год | страна (все) | режиссер | жанр (все) | актеры | время (хрономтераж) | возраст (ограничения в ru)
расширенные факты = основные факты + слоган | сценарист | продюсер | оператор | композитор | монтаж | премьера (мир) | премьера (по гео пользователя) | актеры (ТОП-N?) |  синопсис | постер

Худший ответ:
Заявку так же отправил восьмого числа, пока никакого ответа не было.
Что бы вы хотели сделать будь у вас такое API?
Update 20 ноября в комментариях...
Вопрос: Какие производители DVD±RW считаются более надёжными, а какие стоит избегать?

Лучший ответ:
В своё время весьма полезный опыт был — как отличить болванки (эрки) производства Taiyo Yuden среди тех, что продавались у нас под маркой Verbatim (серия Verbatim Pastel в slim-боксах, например, шла от TY). Ещё можно было японские Panasonic найти — но только минусовые.
Следом по качеству шли те, что произведены на заводах MCC (Mitsubishi Chemical Corporation).
Остальное как надёжное хранилище не рассматривалось. И логотип на коробке ничего не значит. Verbatim могли нарисовать на своих коробках знак «Data Life Plus», но если сами диски шли с индийских заводов, то быстро дохли.

С RW у меня другая история — более простая. Всегда покупал только TDK. Они весьма успешно скрывали, где именно произведены болванки, но при этом обеспечивали стабильно высокое качество. Ни один из десятка DVD+RW я за годы эксплуатации так и не успел убить.

Хотел посоветовать именно TDK, но мой опыт, скорее всего, устарел. Сейчас вдруг обнаружил, что TDK, похоже, продали лицензию на производство накопителей компании Imation в 2007 году.

Худший ответ:
Недавно выкидывал старые бобины с антресолей, ~50% CD-R, >50% от бренда Melody (средней цены), >90% записаны более 5-ти лет назад. Через привод за 2 дня прошло порядка 200-та болванок, в ~20% случаев помимо просмотра каталогов читались файлы. Я сам удивился, но нашел только 2 сильно поцарапанные болванки, которые читались плохо — с ошибками и медленно. Это при том, что хранилось всё это очень небрежно, и поцарапанных было много. В общем, знал бы я тогда такую статистику (отказывает 1-а из 100 болванок), писал бы важную информацию одновременно на 2 болванки ЛЮБЫХ разных производителей или, хотя бы, партий. Т.о. вероятность потери данных была бы 1 из 10000, т.е. безотказность 99,99%. Брендофилия же думаю помогла бы отвоевать каких-нибудь несколько десятых процента взамен ,99%. Кстати, два диска можно хранить в географически разных местах.
Вопрос: Какие могут быть алгоритмы управления защитой данных?

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

Худший ответ:
почитай стандарты pci-dss
Вопрос: Создание устройства на основе электронной бумаги

Лучший ответ:
у любого китайского производителя e-ink. Правда, как правило, партиями от 1000 штук, но, где-то с год назад мы удачно выпросили отослать нам 10 визиплексов для PRS-505, тогда у нас ее нигде в ремонт не принимали. Попробуй откопать старые темы по 505ой модели на the-ebook.org/forum, там и контакты производителя были и прочее. В принципе, его не сложно найти и по номеру модели экрана.

Худший ответ:
Вроде как у www.eink.com/kits/index.html, больше негде, монополия же.
Вопрос: Как строить асинхронное приложение?

Лучший ответ:
В общем это dataflow граф, где узлы срабатывают, когда по всем входящим дугам пришли данные (как в (раскрашенных) сетях Петри). С этой точки зрения callback — это дуга, переданная в сообщении и в которую надо отправить ответ. 

Большинство реализаций придерживается упрощенной модели акторов — у узлов только по одному входу, так что каждое сообщение вызывает срабатывание. Вам же нужно иметь несколько входящих дуг и срабатывание по заполнению всех.

Для actionscript готовых решений не знаю, знаю только для java — df4j (сам написал, очень простая).

en.wikipedia.org/wiki/Flow-based_programming

Модель_акторов:
ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2

Худший ответ:
Может есть смысл завести массив запрашиваемых наборов данных и заполнять их по мере приема, а из кусков интерфейса периодически проверять, не появились ли данные для текущего представления?
Что-то вроде массива или структуры:
struct my_data {
  bool received;
  uint32 request_time;
  uint32 receive_time;
  uint8 *buff;
  data_struct unpacked_data;
  ...
};

struct my_data_storage {
  struct my_data *main_data;
  struct my_data *section1_data;
  struct my_data *section2_data;
  ...
};

Соответственно при открытии любого интерфейсного блока(section) он запрашивает свои данные у… назовем это «контроллер коммуникации» — поток или объект, отвечающий за работу с удаленными серверами. Далее интерфейсный блок ждет, периодически проверяя готовность данных и отображая что там вы отображаете(крутящееся колесо или пустую табличку или еще что).

Можно контролировать таймауты приема, устаревание данных и т.п., поля request_time и receive_time у структуры блока данных в помощь.

Пример алгоритма:
 — Пользователь открывает в интерфейсе блок section1.
 — Показываем этот кусок интерфейса пустым или с крутящимся колесом.
 — Смотрим в хранилище данных данных на поле section1_data. 
 —  — Если оно NULL, интерфейс шлет запрос данных контроллеру коммуникации, тот в свою очередь шлет запрос данных к серверу, создавая и инициализируя начальными значениями в этом поле структуру my_data.
 —  — Если оно не NULL, смотрим на поле received(данные приняты и распарсены полностью). Если данные еще не приняты, ждем дальше. Если данные приняты, смотрим по receive_time их актуальность, если еще актуальны(таймаут устаревания не прошел), то отображаем, если нет — перезапрашиваем еще раз(при этом поле section1_data обнуляется и пересоздается заново, либо просто переинициализируется).
Контроллер коммуникации например может сам контролировать таймаут приема данных и выставлять флаг неудачного запроса.
Ну и т.п.
Многое зависит от того, на чем вы пишете, под какую систему, от реализации интерфейса и т.п. Как это все вместе соединить, вам решать под себя.

То есть суть в том, что каждый элемент интерфейса работает независимо от других: лезет в хранилище за своим набором данных, инициирует их запрос с сервера, заведует отображением и т.п.
Вот как-то так. Не судите строго, это просто первое, что пришло в голову по прочтении вашего вопроса.
Вопрос: Возможно ли при клике по ссылке выбрать option в select?

Лучший ответ:
Вешаете событие клик на ссылку и меняете selectedIndex списку.

Худший ответ:
Как уже сказали выше, вешаете событие OnClick на ссылку. Смотрите здесь как управлять Select-ом.
Вопрос: Транзакции, инкрементирование и MySQL UPDATE

Лучший ответ:
В InnoDB блокируется строка, не должно быть ахтунга.

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

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

Худший ответ:
А чего страшного в подключении curl? Всё быстро и легко делается. Велосипедостроение в программировании самое главное зло.
Вопрос: Как задать стиль бордер css?

Лучший ответ:
Держите. jsfiddle.net/DelphinPRO/jzyber6L

Худший ответ:
если это css то одним элеменом не обойтись. вообще похоже на бэкграунд а не на бордер
Вопрос: Можно ли установить Microsoft Security Essentials для слабого ноутбука с windows xp?

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

Худший ответ:
Из совсем бесплатных Baidu Antivirus помотритеможно ли еще поставить антивирус от microsoft?
Да, конечно, качаете с официального сайта и ставите, вроде там проверки на оригинальность винды даже нет
UPD тут в комментах пишут, что MSE для ХР уже нельзя скачать
наверно я ошибся, так как сам установщик качал в 2014 году 
(возможно даже с патчем habrahabr.ru/post/218703), а сейчас доступность загрузки с офсайта проверял под семеркой.
Вопрос: Посоветуйте книгу по функциональному программированию

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

Худший ответ:
По Erlang могу посоветовать «Programming Erlang» из серии Pragmatic Bookshelf, но сначала лучше ознакомиться с Haskell — чистый академический язык, демонстрирующий всю соль функционального подхода.
Вопрос: Как вставить несколько reCAPTCHA на одной странице?

Лучший ответ:
здесь описано создание нескольких reCaptcha на одной странице

Худший ответ:
Переписка с автором гема:
яHi! I use your gem in my RoR app.
Recaptcha works well. But when I try to add more than one Recaptcha on different forms at single page  - I see only one of them. 
I try get 2 Recaptha for my syte at Google: 
at first form:
recaptcha_tags :public_key => Rails.application.secrets.recapcha_public_key
at second form:
recaptcha_tags :public_key => Rails.application.secrets.recapcha_public_key2
It not helps me.
How I can fix it? Thanks
он:Are you able to put two recaptcha on the page even without the gem, just manually? I'm not sure it's a problem with the gem. 
—
Jason L Perry
я:I never try it. It impossible you mean? Recaptcha (on google level) unsupport it?
Ответа не последовало. Но я понял, что решения нет.
Вопрос: Как реализуется окно выбора файла?

Лучший ответ:
Как-то так:
jsfiddle.net/kcdu85jo/1

Худший ответ:
Как решение: делаем для инпута opacity в 0 и размеры как у блока, затем вешаем инпут поверх блока :)
При клике на позицию блока срабатывать будет именно input.
Вопрос: Какую версию Node.js выбрать для установки?

Лучший ответ:
В версиях 4.х вносятся только стабильные наработки и собирается он только со стабильной версией v8
В версиях 5.х присутствуют так же экспериментальные наработки и свежайшая альфа версия v8
По отношению к 0.12, в 4+ более новая версия v8 c почти полной поддержкой es2015 (пока отсутствуют Proxy), обновленные и более оптимизированые нативные модули и еще много чего по мелочи

Худший ответ:
с какой лучше всего работать - логично подумать, что с последней стабильной версиеймного ли поменялось в плане функционала по сравнению с 0.12 - а вам ничего не говорит разница в цифрах версий -0.12 и 4.2.3?Just primitive logic && nothing else
Вопрос: Учетная запись без продолжительной активности — удалять или не удалять?

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

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

Лучший ответ:
с помощью тега embed
<embed src="http://YOUR URL.mid" autostart="true" controls="smallconsole" loop="true">

вот тут примеры и вариации
www.123webmaster.com/Onsite/Building/EmbeddingMidi.html

проверил работает в Chrome,FF,Safari

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

Лучший ответ:
Прямо какой-то филиал фри-ланс.ру :D такие каменты я вижу обычно там.

Худший ответ:
С ТЗ ознакомиться можно?
Вопрос: Как нарисовать график функции стандартными средствами Qt?

Лучший ответ:
В книге "Qt 4: Программирование GUI на C++, издание второе дополненное, Жасмин Бланшет, Марк Саммерфилд, 2008" рассматривается простенький пример виджета Plotter, который может быть использован для рисования графиков. Пример хорошо документирован и описан в книге, разобраться вам не составит труда.Исходный код примера (который подходит как для Qt 4, так и для Qt 5).
Удачи!

Худший ответ:
Можно просто на виджете нарисовать с помощью QPainter (в paintEvent) без всяких QGraphicsView  и пр.
Вопрос: Agile и инструменты от Atlassian — куда пойти учиться?

Лучший ответ:
Уже нужны курсы, что б научиться пользоваться джирой? О.о
Или, если вопрос, главным образом, в гибких методологиях, то так и формулируйте.
Просто именно "изъясняться правильно" - это первое, чему надо научиться менеджеру. Какие б ни были методологии

Худший ответ:
Я не упоминал конкретно про Джиру. Я говорю про "инструменты от Atlassian".
Это разные вещи. 
Юзем Битбакет, Джиру. Но есть четкое понимание, что юзаем максимум на процентов 30%.
Сейчас хотим взять Bamboo вместо Дженкинса. 
И хотим поднять правильный и кошерный ХемпДеск, и Джиру Аджайл, проектную документацию в Конфлюенс залить и много-много чего еще.
А времени - в обрез.Уже нужны курсы, что б научиться пользоваться джирой? О.о - вообще-то ДА :)
Вопрос: Как лучше сделать связь записей в CMS WordPress?

Лучший ответ:
Advanced Custom Fields штука хорошая и удобная, но на больших сайтах со сложным контентом - жутко медленная. Если нужны именно кросс-связи между объектами (post types, users) - есть отличный плагин Posts-to-Posts. Ну и кастомные таксономии.
Грубо говоря, логика такая:
- все что похоже на самостоятельный объект со своей моделью -> custom post type
- любые "поля" / даполнительные данные, по которым нужна агрегация, сортировка, фильтрация и тд -> custom taxonomy
- любые поля, которые просто дают доп.инфу  -> custom meta (postmeta, usermeta и т.д.)
- у ACF у полей Relationship есть галочка "Загрузить значение основываясь на терминах записи и обновить термины записи при сохранении" - обязательно использовать ее
- если нужно связать объекты напрямую - Posts-to-Posts. 
Например, есть событие (CPT), есть место/локация (CPT), есть пользователи. Есть таксономии страна/город, тип события. С помощью Posts-to-Posts связываем между собой событие и место, а также к событию привязываем несколько пользователей (например, организаторы события), и у события и у места есть таксономия страна/город. Таксономия тип события релевантна только для событий. Получается стройная и гибкая, расширяемая схема. И главное - это все быстро работает, никаких запросов по meta_key.  А место ACF в этой схеме - например, для локации это адрес, карта, контакты, ссылка на сайт/соцсети, фотогалерея и тд. Для события - приглашение, расписание, фотографии и видео, дата и время проведения события и тд.
Я описал на своем примере, но переложить логику на компании / лица не составит труда.

Худший ответ:
Если я все правильно понял, то плагин Advanced Custom Fields подойдет
Вопрос: Объясните, что делает $()?

Лучший ответ:
В зависимости от аргумента, $ делает 4 разных вещи (не обязательно в таком порядке).
1) Если это строка, и она похожа на кусок HTML, то вызывается $.parseHTML
2) Если это строка, но она похожа на селектор, то производится поиск в DOM-дереве
3) Если это функция, то — см. ответ Алексей Тен — идет проверка, было ли событие DOMContentLoaded, и если да, то переданная функция немедленно вызывается, а если нет, то эта функция навешивается на это событие.
4) Если это DOM-элемент (или одна из DOM-коллекций), возвращается jQuery-обертка над этим элементом (как из пункта 2). Спасибо Алексей Тен, что напомнил:)

Худший ответ:
создает jquery Object DOM элемента
Вопрос: Как сделать такое портфолио для wordpress?

Лучший ответ:
Вот
https://www.youtube.com/watch?v=U1H_IBYjeu4
UPD Блин, я смотрел бесплатные уроки этого веб-мастера и не заметил, что конкретно этот курс платный...

Худший ответ:
Гуглите плагины или скрипты Mosaic Gallery
Вопрос: Почему в q&a рейтинг статьи отображается сразу, а в постах нужно «сливать» голос?

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

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

Лучший ответ:
@d00mko видимо не потрудился прочитать статью, прежде чем посоветовать ее Вам. В статье как раз пытаются избавиться от мифов вокруг ноды.
По сути вопроса - нода вполне подходит для проекта любого размера и сложности (как и пхп, раби, питон, ява и т.п.) Никогда в жизни не сталкивался с ситуацией, что язык становился узким местом в веб приложении. Если Вы с этим столкнетесь, то значит Ваша архитектура уже идеальна, у вас миллионы пользователей и у Вас миллиарды денег, чтобы взять и переписать все с нуля где-нибудь на побережье океана попивая мохито, принесенное личным барменом.
Ява - готовьтесь к тому, что Вам надо МНОГО оперативной памяти. Разработка будет вестись долго, но большинство глупых ошибок Вы избежите в силу особенностей языка.
ПХП - готовьтесь к тому, что в Вашем коде будут появляться какашки, так как из всех пхп кодеров лишь доли процента могут написать хороший код. Это действительно очень трудно, когда язык сам манит писать все больше и больше какашек ) Лишь просветленные могут удержаться )
Нода - Вас ждет мир непонятного асинхронного кода, но как только наступит просветление, то Вы будете писать намного более эффективные приложения, чем Ваши товарищи пхпщники ) Наилучшее применение - чаты, кометы и т.п. Но и в качестве веб-сервера чувствует себя замечательно.
Питон - можно использовать и асинхронный подход и синхронный. Памяти жрет намного меньше, чем Java (личный опыт. разница была почти в 7 раз). По скорости работы практически не уступает яве. По скорости разработки разрывает ее в клочья
Раби - ничего не могу сказать дельного, но синтаксис мне не нравится.
Эрланг - если Вы действительно суровы и Вам нужна максимальная производительность - это Ваш выбор. Столько боли и страдания Вам не доставит ни один язык. Вы можете часами сидеть и тупить над одной строчкой кода, но каждый раз после написания такой строчки Вы будете впадать в экстаз ) Да и пока вы часами тупили над одной строчкой в эрланге на другом языке вам бы пришлось написать 200 строчек. Хардкор вариант, есть много тестов, уроков и примеров, но сам бы я не рискнул начинать проект  на нем, так как моих знаний не достаточно, а найти разработчика - нереально.
Вообще, не пишите серьезные проекты на том, что хотите изучить или то, что модно. Пишите на языке, который лучше всего знаете.

Худший ответ:
Node.js не подходит для типовых веб-проектов
Cоветую обратить внимание на Typesafe stack
Сам пишу на Java Play2 jooq liquibase
Вопрос: Почему некоторые программисты не используют антивирусы?

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

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

Лучший ответ:
Я всегда восхищался сайтом w3schools.com. Много лет назад (когда HTML4 ещё только набирал популярность) изучил по нему HTML, CSS, JS, XML, RDF, OWL, XSLT, позже этот же сайт помог мне быстро въехаться в ASP.Net. Там одновременно и не втирают элементарные вещи подолгу и не обделяют их вниманием (вдруг кто-то таки не знает). Что знаешь можно пропустить в один клик - там подача материала в формате визарда (как при инсталляции программ), кратенько и понятно по каждой атомарной теме, без принудительного прохождения каждой. В последнее время он стал чуть посложнее в плане собственной юзабилити, но и материалов добавилось. В Сети можно найти несколько сайтов-клонов w3schools с темами, которых нет на оригинале.
Профессионалом там, конечно, не станешь, но чтобы быстро въехать в тему, понять что есть что, к чему, как и где, заложить "скелет" понимания для дальнейшего обтягивания опытом и знаниями с помощью собственной практики и изысканий - ничего лучше я не видел (те же штуки типа codeschool грешат затянутостью и негибкостью, как мне кажется).
Также настоятельно рекомендую найти хороший редактор с мощным автодополнением и подсветкой. Время, когда всё имело смысл всё держать в голове прошло, как и время справочников-руководств, по сути - гораздо удобнее когда ты начинаешь писать что-то и редактор сразу тебе подсказывает какие есть варианты (со временем оно и запоминается отсюда). В этом плане я не видел ничего лучше (да и такого же, хотя бы), чем продукция JetBrains (в Вашем случае - WebStorm) и VisualStudio (с которой Вы, как я понимаю, уже знакомы), хотя знатоки рассказывают о чудесах EMACS и VIM.
Ну а дальше - рыскать по Сети в поисках интересных статей, книг, примеров.
По части JavaScript и jQuery мне не известно ничего лучше, чем творчество Антона Шевчука.
По Bootstrap я бы сам не отказался от хорошей наводки.

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

Лучший ответ:
Так как ActiveRecord имеет свойство перегенериваться во время разработки, лучше вынести бизнес логику в отдельную модель.
Также есть такая балалайка, как yii2-giix, которая разделяет модель на базовую и обертку, в которой пишется бизнес логика. Не лучшее решение, но может ускорить разработку. 
И да ,в yii2 нет модели формы, есть просто модель Model

Худший ответ:
А почему нельзя обрабатывать логику в контроллере?
Например, есть модель формы, где ее описываем, создаем правила валидации.
Есть контроллер, который рендерит нужную вьюху, в которую передается модель формы.
Пользователь видит вьюху и вводит данные в форме, они уходят в контроллер. 
Там (в контроллере) логику обрабатываю, в зависимости от полученных данных либо снова рендерю что-то на экран, либо произвожу иные вещи (тут может быть что угодно - запись в бд, вызов какой-нибудь функции или метода и т.п.)
Это получается неправильно с точки зрения канонов MVC?
Вопрос: Альтернатива !important в лице .class.class.class. Что скажете?

Лучший ответ:
Нет, не стоит.
1. Для других разработчиков это будет не так очевидно, как !important. Могут принять за опечатку и удалить дубликат класса.
2. Оптимизаторы CSS, наверняка будут превращать .class.class.class в .class

Худший ответ:
Старый добрый БЭМ давно решил проблему эту.
Вопрос: Какую версию Ruby стоит устанавливать на OS X (новичок)?

Лучший ответ:
Советую ставить rvm. А потом в нем уже ruby 2.0. (Кстати последние версии rvm сами разруливают все зависимости для рельс через менеджер пакетов типа homebrew)

Худший ответ:
Может Вам пригодится этот гайд