Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Gulp — CSSO vs CLEAN-CSS?

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

Худший ответ:
Ни то и не другое. 
Лучше всего — CSSNano. Помимо обычной минификации CSS, он использует и другие методики сокращения кода (к примеру, преобразование RGB- и RGBA-цветов в HEX-цвета, удаление ненужных значений свойств, сокращение имён анимации, объединение нескольких классов через запятую в случае одинаковых стилей, ну и кучу всего другого).
https://cssnano.co
https://www.npmjs.com/package/gulp-cssnano
P. S. Работает с AutoPrefixer корректно (потому что тоже основан на PostCSS). Карты исходников тоже поддерживает.UPDATE. Речь идёт именно о работе оригинального CSSNano (не gulp-cssnano) в связке с PostCSS для Gulp. Посмотрите комментарии других людей к моему ответу, там есть интересные вещи/аспекты касательно других подобных плагинов, которые вполне могут быть лучше, чем CSSNano.
Вопрос: Как работать с несколькими страницами browser-sync?

Лучший ответ:
 `browser-sync` работает только с `index.html`, а если его нет, то выдает ошибку
Кто вам сказал такую хрень?config.browserSync = {
    notify         : true,
    startPath      : '/',
    reloadOnRestart: true,
    server = {
        baseDir  : 'dist',
        directory: true, // показывать список файлов
    }
};

Худший ответ:
Нужно было прописать в index адрес страницы с которой сейчас идет работа.gulp.task('browser-sync', function() {
    browserSync.init({
        server: {
            baseDir: "dest",
            index: "mainpage.html"
        }
    });
});
Вопрос: Есть ли смысл хранить медиафайлы на сервере в виде base64?

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

Худший ответ:
Base64 можно использовать только для передачи, когда файлы "обернуты" в JSON или XML.
В остальных случаях лучше их хранить/передавать как есть.
Base64 - Это формат передачи бинарных файлов в виде текста, поэтому данные очень сильно "распухают".
Но это иногда нужно, когда принимающая сторона ждет на входе текст, а не бинарные данные.
Вопрос: Задний размытый фон сайта одной строчкой?

Лучший ответ:
1. При чем здесь id, если в CSS вы его даже не используете, а в html он висит просто чтобы был?
2. height: 99999999px - треш, как и весь CSS одним комом. 
3. В Firefox Developer ваш пример у меня не работал —  поправил.
4. Эффект в вашем случае ничего интересного из себя не представляет.

Худший ответ:
Придумал критику 1 ссылкой:
https://caniuse.com/#search=filter%3A%20blurheight:99999999px; - да ну не может быть. Да ну нах. Нет я не верю.z-index: -100; а почему не z-index: -47;
Вопрос: Какую OC выбрать для слабенького ноута?

Лучший ответ:
Стоит обратить внимание на Xubuntu, Lubuntu, они идут с "легким" окружением(xfce и lxde соответственно), на базе Ubuntu(который на Debian(по нему на просторах очень много всего написано)), там все(ну или почти все, смотря на конкретные запросы) есть и работает что называется из коробки. 
Если чуть чуть покурить мануалы, можно посмотреть в сторону ArchLinux, в этом случае можно сделать все исключительно под себя, без лишних перделок-свистелок.
И да, на linux антивирь не нужен, но если планируется обмен файлами с машинами на мастдае( и если их жалко)) то стоит все же поставить какую-нибудь проверялку))

Худший ответ:
удали касперского и поставь microsoft security essentials. сразу любая система заработает быстрее.
Вопрос: Как реализовать действие при нажатии кнопки с помощью функции lambda?

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

Худший ответ:
думаю так будет работать
lambda: self.change_text()
Вопрос: Установка proxmox, как решить проблему с /sbin/unconfigured.sh?

Лучший ответ:
Вы взяли какой-то очень древний мануал. Просто залейте ISO на флешку посредством dd и ставьте по-нормальному.

Худший ответ:
Поставьте с исощки или же просто накотите на последний дебиан, используйте манулы с сайта проксмокс
Вопрос: JS — на чем проще сделать десктопное приложение?

Лучший ответ:
Привет, NWJS проиграл войну Electron - новые проекты на нем лучше не делать.

Худший ответ:
для небольшого приложения?
https://github.com/mimecorg/vuido - набор контроллов очень ограничен, но зачастую этого достаточно.
Вопрос: Почему не работает checkbox в стандартной схеме?

Лучший ответ:
Не работает, потому что label связывается с input по id, а не по name.
p.s. зачем вы голубой квадратик делаете картинкой? background-color где-то не поддерживается?

Худший ответ:
Не работает, потому что label связывается с input по id, а не по name.
p.s. зачем вы голубой квадратик делаете картинкой? background-color где-то не поддерживается?
Вопрос: Как сделать разработку web-движка публичной?

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

Худший ответ:
А не хотите ли сделать его коммерческим продуктом и продавать, скажем, за 100000руб?
Вопрос: Обьясните, что здесь происходит ++ndigi[c-'0']?

Лучший ответ:
Выражение (c-'0') возвращает индекс в массиве nidigi[10].
В переменной 
char c;
лежит ASCII код введенного символа (цифры), если из этого кода вычесть ASCII код символа '0', то получите цифру от 0 до 9, что и требуется. Чтоб удостоверится посмотрите таблицу ASCII кодов.
В массиве nidigi в итоге количество вхождений десятичных цифр во входных данных - гистограмма.

Худший ответ:
Можете поподробнее о выражении с-'0'? Я все еще не понимаю. Желательно привести пример. ( и у меня not c)
Вопрос: Как сверстать колесо фортуны?

Лучший ответ:
Например с помощью svg масок.
Читать тут:css.yoksel.ru/svg-maskscss.yoksel.ru/css-and-svg-maskshttps://habrahabr.ru/post/349362/htmlbook.ru/blog/maskirovanie-v-css

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

Лучший ответ:
В большинстве случаев правильно её вообще не реализовывать. Вы — не Google.

Худший ответ:
Хочу немного резюмировать. Каждый микросервис представляется собой REST сервис, которые между собой обмениваются данными через шины (например RabbitMQ или ActiveMQ). Данные кэшируются в распределенном кэше, например memcached или redis.
Вопрос: Как лучше всего синхронизировать файлы?

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

Худший ответ:
MirrorFolder - программа такая под винду...
Самая "фишка": это софтверный RAID-1 папки на любой внутренний диск.
Т.е. бэкап базы данных в режиме реал-тайм можно сделать.
Вопрос: Windows firewall почему не блокирует по ip?

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

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

Лучший ответ:
Я бы записал дебаг на стыке с провайдером в момент проблемы.  В трейсе с помощью wireshark можно воспроизвести нужный RTP поток. Станет ясно где проблема.

Худший ответ:
Если звонок для вас входящий, вы слышите звон в трубке, на записи тот же звон - на облачную АТС пришёл такой звук. Проблема где-то на шлюзах провайдера телефонии.
Вопрос: Какие Android API стоит включать в приложение? Стоит ли включать все?

Лучший ответ:
Не совсем понятно, при чём здесь список API.
Нужно просто указать minSdkVersion. Принято, что minSdkVersion должна быть хотя бы 17. Та же Android Studio на этапе создания проекта показывает количество поддерживаемых устройств в процентах, либо берите это с официального сайта https://developer.android.com/about/dashboards/
Далее, вы должны исследовать, какие фичи андроида из более новых версий вам понадобятся (кастомизация уведомлений, например, которые в более ранних версиях не поддерживаются), а также учтите, что некоторые подключаемые библиотеки потребуют определённые версии Android Sdk.
Взвесив все "за" и "против" выставляете свой minSdkVersion и наслаждаетесь потом отзывами юзеров в духе "А на моём андроиде 4.2 это не работает", "у меня сони, андроид 6.0 и прога вылетает..."
То, что заводится на одном 4.4 не всегда будет работать на другом точно таком же андроиде, но от другого производителя. Разные производители делают свои глючные оболочки...

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

Лучший ответ:
Ответ: без CRON никак.
P.S. Можно при любом запросе к сайту проверять — а не надо ли там чего-то удалить, сварить кофе, включить стиралку? Но мы же, типа, тут все серьёзные ребята...

Худший ответ:
Тебя интересует с привязкой к конкретному фреймворку?
Выше правильно ответили...
Вопрос: Какой выбор сделать. То, что в тренде или то, что «правильно»?

Лучший ответ:
Язык не имеет отношения к пониманию процесса разработки.

Худший ответ:
Для Unity нужно хорошо знать c#, начать изучение лучше с него. Параллельно изучить алгоритмы и структуры данных, а так же ООП. Поработать с git. Ну и конечно же английский, так как документации, литературы и видео уроков больше именно на нем.
Вопрос: Нормально ли работают виндовые программы на ubuntu установлены с wine?

Лучший ответ:
Всё будет работать не нормально.
Хотите фотошопа и игр используйте Windows. GNU/Linux это про другое...

Худший ответ:
Нет.
Нормально будут работать только простые программы типа winbox (морда управления микротиками). Еще у меня запускалась самсунговская морда для управления АТС, Revo Uninstaller, небольшое количество игрух. Wine - вымирающий проект, его необходимость была тогда, когда не хватало ресурсов на виртуализацию, ну либо нужно запустить одну-единственную программу под винду, но не хочется покупать винду. Сейчас проще KVM-виртуалку сбацать. Для ворда-екселя-браузера достаточно будет Spice, для игрух можно попробовать поставить в комп вторую видюху и пробросить в винду (сам еще не пробовал, но уже в процессе)
Что там говорить, когда у меня даже FF в вайне не взлетел. Вернее, взлететь-то взлетел, но Flash в нем так и не пошел (а нужен был исключительно ради Flash)
Вопрос: Дизайнер мобильных приложений — универсал для iOS/Android?

Лучший ответ:
Проверяется это просто. Идем на хедхантер и ищем по ключевым словам в названии вакансий и в описании. По запросу для дизайнера интерфейсов только под ios (без упоминания андроида) по России находится 1 вакансия. Для дизайнера только под андроид - 5 вакансий. Вакансий дизайнера интерфейсов, в которых упоминается и ios, и андроид находится 36 штук. Остальное большинство вакансий не содержат в себе таких ключевых слов, по которым вакансию можно было бы отнести только к ios или только к андроиду. Беглый анализ показал, что эти вакансии либо под веб, либо там требуется широкий специалист по ui/ux, без привязки к платформе.
Собственно, вывод из вышеизложенного: подавляющее большинство ищет универсального ui/ux дизайнера, который и по мобильным, и по вебу. Если брать только мобильные интерфейсы, то спрос идет на тех, кто работает со всеми платформами,  а не заточен под какую-то одну.
Вывод, в принципе, логичен. Во-первых, если компании нужен дизайнер под мобилки, то, скорее всего, они выпускают приложения и под иос, и под андроид. Какой им смысл держать двух разных дизайнеров под это? А во-вторых, дизайнер интерфейсов это в первую очередь дизайнер. Разница между иос и андроид заключается только в гайдлайнах и некоторых особенностях разработки интерфейса под конкретную платформу. Если мы имеем хорошего дизайнера, то разобраться в этих особенностях и гайдлайнах для него не составит труда и не займет много времени.

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

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

Худший ответ:
Мой ответ на похожий вопрос - Режим работы, как наладить?
Вопрос: Какие есть интересные сайты со статьями на тему Frontend?

Лучший ответ:
Вот то, что читает наша команда:
frontender.info — краудсорс-перевод полезных западных материалов.
https://vk.com/webstandards_ru — крупное русско-язычное VK-сообщество с чатом, новостями и конференциями.
https://radiojs.ru/ — подкаст о веб-разработке.
frontflip.me — ещё один подкаст о веб-разработке.
https://css-tricks.com/ — полезный ресурс со статьями и полезными решениями по вёрстке и коду.
https://codyhouse.co/ — набор сниппетов.
https://twitter.com/dan_abramov— твиттер русскоязычного разработчика React в команде Facebook.
https://twitter.com/addyosmani — твиттер разработчика в Evil Martians и автора PostCSS. 18+.
https://twitter.com/addyosmani — твиттер участника команды Google Chrome, создающего Developers Tools.
https://twitter.com/paul_irish — твиттер ещё одного участника команды Google Chrome, создающего Developers Tools.
https://github.com/talgautb/frontenders — небольшой список фронтенд-разработчиков, за которыми стоит следить.
www.2ality.com — Блог о JS.
Я вам скопипастил раздел из вот этой публикации в помощь коллегам: https://livetyping.com/ru/blog/front-end-dev-requi...

Худший ответ:
Какие есть обучающие ресурсы по фронтенд разработке?
Вопрос: Как сверстать 8 элементов в 2 ряда на flexbox?

Лучший ответ:
Сверстал для Вас пример макета.
Надеюсь, правильно понял вопрос.
Точки переходов можете сами подобрать.
Если есть дополнительные вопросы или я что-то неправильно понял, пишите
https://codepen.io/hisbvdis/pen/wVvVvwsnippet

Худший ответ:
Два ряда по 4, 4 элементов
Три ряда по 3, 3, 2 элементов
Четыре ряда по 2, 2, 2, 2 элементов
Восемь рядов по одному элементу
Вопрос: Скорость разработки на android. Java vs kotlin?

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

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

Лучший ответ:
наймите программиста

Худший ответ:
Все очень просто.
Сайт должен иметь роутер, либо парсить url. Пример роутера.
Получаешь из роута значение ID.
Далее, делаешь запрос в базу данных, SELECT .... WHERE id=$id, естественно, не забыв экранировать и не забыв подготовить запрос. 
Полученную информацию выводишь на странице.
Вопрос: Какая программа может сделать жёсткую ссылку на файл?

Лучший ответ:
5-7Гб за 1 рабочий день - это пшик (ничего) даже для дешевых TLC-дисков. При такой нагрузке они проработают лет наверное 10-20. Для MLC или тем более SLC дисков, срок жизни которых ощутимо выше - это вообще ни о чем.
У меня SSD диск уже года 2-3 держит часть таблиц БД, ежедневный объём (пере)записи на него исчисляется терабайтами... если верить SMART'у то диск выработал ресурс только на 6%, если верить фактам - то он до сих пор жив :)
К тому же, насколько я помню, жесткие ссылки допустимы только в пределах одного раздела, и сделать "жесткую ссылку" на другой диск - у Вас не получиться, т.к. там своя файловая система.

Худший ответ:
Link Shell Extension - проверен временем
schinagl.priv.at/nt/hardlinkshellext/linkshellexte...
Вопрос: Как исправить крякозябры в отправляемых письмах?

Лучший ответ:
php.net/manual/ru/function.mb-convert-encoding.php$message .= 'Свойство 1: '.mb_convert_encoding ($arFields['PROPERTY_VALUES']['FIO'],'utf8');
как-то так, со вторым параметром у функции поиграйтесь, возможно там другая кодировка нужна будет.

Худший ответ:
Так сказать, "временно перемотанное скотчем":$message .= 'Свойство 1: '.iconv("CP1251", "UTF-8", $arFields['PROPERTY_VALUES']['FIO']);
Ну или просто сделайте так, чтобы массив "приходил" не в 1251, а сразу в utf8
Вопрос: Чем можно (и можно ли) заменить D-триггер?

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

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

Лучший ответ:
* */02 * * *означает в любую минуту в четный час.
укажите например 0 */2 * * *

Худший ответ:
Андрей, к сожалению, я устанавливаю настройку через ISP Panel 4  
и в списке задач отображается строка которую я написал. Поиски физического файла crontab для конкретного пользователя данной панели не увенчались успехом.
Вопрос: Чем строгое выравнивание отличается от нестрогово?

Лучший ответ:
Привет, рекомендую изучить какие вообще бывают элементы верстки и как их можно разделять.Совет бюро, базовые элементы верстки
В этом совете еще 12 ссылок на эту тематику, в том числе, про выравнивание и чередование ритма. А на самом сайте бюро в советах можно поискать дополнительные ответы, их не прикладываю, так как ты интуитивно найдешь нужные.
От себя могу добавить, что строгие сайты, например сайт юридических услуг может допускать нестрогое выравнивание блоков, от этого продажи не упадут, так как в первую очередь качественный текст и смыслы, которые мы доносим.
Чтобы сделать резкий скачок, рекомендую:
1) Подборка советов главреда по тексту их там очень много, за месяц не осилить если вдумчиво читать и осознавать, но за 2 месяца, с видео на его канале, вполне.
2) Книга А.Горбунова Типгорафика и верстка (можно на сайте бюро купить подписку, а можно скачать из сети, например из вк)
3) Джеймс Феличи, Типографика: шрифт, верстка, дизайн. Ооочень классный справочник. Читается не легко. Информации много, почти 500 страниц. Но после него, ты со скоростью света будешь принимать решения в верстке. (а это очень важно для хорошего адаптивного сайта, например, сложные таблицы и т.д). 
4) Ян Чихольд: Облик книги. Перечитываю сейчас и нахожу новое, что не замечал ранее. Также поможет со скоростью верстки.
5) Эдвард Тафти. Рекомендую погуглить его. И Брокмана "Модульные сетки в графическом дизайне".
6) Упражнение. Однажды я пошел и купил порядка 700 листов А4, плотных, это несколько альбомов, были также А2. И по очереди каждый разукрашивал кисточкой, черной краской, серой краской, красной. Рисовал полоски, имитируя текст, заголовки, рисовал квадраты, представляя, что это картинки. Ну и всякие кружки. У меня ушло несколько недель на это, чтобы не лениться. Но после 300 листа, я стал импровизировать и самонаучился, вкус начал развиваться. Я делал симметритчно, асимметрично, упарывался с полосками, прямоугольниками, квадратами и кружками. И осознание наступило. А потом пришло понимание, когда нужны собственные сетки.
7) стайлгайды

Худший ответ:
Различие выравнивания определяются композицией всей страницы. Если я правильно понял вопрос.
А вообще картинки надо прикреплять.
Вопрос: Как лучше организовать структуру таблицы users в mysql?

Лучший ответ:
С точки зрения проектирования базы данных смысла во второй таблице нет. Просто разделение на две таблицы как правило является следствием использования каких-нибудь фреймворков, где "из коробки" создается таблица с "login. password, status", а для другой информации иногда вместо расширения этой таблицы создают вторую таблицу(например UserProfile) уже с "birthday, sex, ava" и тд. Но, повторюсь, по сути это лишняя сущность, поэтому хранить все в одной таблице более чем корректно.
Если нет никаких особых условий, из-за которых требуется вторая таблица, то не нужно ее создавать. Ну разве что Ваш внутренний перфекционист захочет разделить информацию требуемую для аутентификации и авторизации от остальной информации. Но, опять же, с точки зрения проектирования БД это разделение одной сущности на две без явной необходимости, потому правильнее хранить все в одной таблице.

Худший ответ:
разделение таблицы без явной необходимости - плохо, зло, так делать не надосделать 2 таблицы (в одной: login. password, status), во второй: fio, birthday, sex, ava и т п?  и будешь ты на каждый чих делать запрос с join двух таблиц, что влечет доп (хоть и минимальные) расходы.
Вопрос: С каким уровнем JavaScript выйти на фриланс?

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

Худший ответ:
Если хочется развиваться во фронтенде, то желательно уверенно знать хотя бы один из фреймворков: AngularJS, Angular2, VueJS, ReactJS. Ну естественно уверенное знание JS (JS5, JS6, JS7 будет плюсом).
Конечно ничто не запрещает начать хоть сейчас с простых вещей, но я бы рекомендовал пару лет поработать в IT-конторах с умными коллегами. Там очень быстро можно набраться опыта. А на фрилансе это гораздо сложнее - коллег нет, никто не подскажет. Если с ходу прыгнуть на апворк без особых знаний, то можно напороть делов, наловить плохих отзывов, закрепиться в низкооплачиваемой нише и потом будет сложно из всего этого вылезать.
Вопрос: Как код с условиями присвоить переменной?

Лучший ответ:
$html .= '
<div class="list-group">
<a href="/detail_element.php?id=' . $value["id"] . '" class="list-group-item list-group-item-action flex-column align-items-start ">
<div class="card-header">
		<small style="float:right;">';
				if($value["date"]==date("d.m.Y")):
						$html .= "Сегодня, {$value["time"]}";
				endif

				$numeric_date=explode(".",$value["date"]);
// etc...

Худший ответ:
про разницу между " и ' написано в вначале php мануала
Вопрос: Как «подружить» Wordpress и календарь событий jQuery?

Лучший ответ:
Собирайте Ваши данные в один массив, а затем конвертируйте его в  json строку функцией json_encode

Худший ответ:
WordPress имеет REST API, а там данные возвращаются как раз json'ом. Посмотрите здесь, скорее всего поможет.
Вопрос: Как управлять почтой?

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

Худший ответ:
Окей, гугл
Возможности протокола IMAP
Вопрос: Язык программирования для Android какой выбрать?

Лучший ответ:
Kotlin как самый универсальный и перспективный на сегодня.
C# - если делать игры на Unity.проблема в том что я не знаю Java
Это не проблема.
Если вы действительно знаете один универсальный язык программирования, то выучить следующий для вас не будет проблемой.
Если проект для вас - времянка, не хочется тратить доп. время на улучшения качества вашего кода путем изучения актуального под задачу языка, тогда другое дело.

Худший ответ:
Мне нравится использовать веб связку html/css/js. Она универсальна для любой платформы и самая распространённая в мире.
Вопрос: Как в JavaScript проверить наличие объекта (поддерживается ли браузером этот API)?

Лучший ответ:
Правильно ли я понял, SpeechRecognition это функция-конструктор?
Чтобы подобных сомнений не возникало заглядывайте почаще на MDN.Как можно проверить при помощи , js узнать, есть ли у браузера этот ?класс? ? объект? Этот API, в общем...var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;

Худший ответ:
if ('SpeechRecognition' in window) {
  ...
} else {
  // не поддерживает
}