Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Создание UI без использования .NET?

Лучший ответ:
Надо использовать какую-то GUI библиотеку:
WTL, MFC, QT, WxWidgets

Худший ответ:
Надо использовать какую-то GUI библиотеку:
WTL, MFC, QT, WxWidgets
Вопрос: Какой язык для написания ИИ можно использовать?

Лучший ответ:
ИИ не существует, нет его. Не придумали. Так что и писать то нечего.

Худший ответ:
Смотря что называть ИИ. Для реализации наиболее модных алгоритмов ML лучше всего подходит Julia. Для более классического (экспертные системы, индуктивное логическое программирование) остается классический Prolog, хотя имеет смысл попробовать и что-то функциональное - Haskell, F#, OCaml, Scala.
Вопрос: Почему не работают стрелочки в owl slider?

Лучший ответ:
Зачем вы сделали так???
Позиционируйте саму кнопку button.owl-prev, а не внутренний span и всё будет работать.
Кстати на айфонах смотрели? Вангую, что там тоже не робит. В общем не надо так делать.

Худший ответ:
Почему-то стрелочка перестаёт реагировать на мышь, когда на ней position: absolute.
Поиск выдал только древний баг https://bugzilla.mozilla.org/show_bug.cgi?id=204193
Вопрос: Как сверстать букву во всю высоту блока авто-высоты?

Лучший ответ:
Сделать такое на CSS не получится, можно на JS, но овчинка не стоит выделки, поэтому делайте картинкой и не парьтесь.
Дизайнер придумал, пусть теперь рисует буковки под каждый слайд.UPD: Решение так себе, https://jsfiddle.net/gzpjyfb2/ (поиграть с высотой div)

Худший ответ:
line-height
object-fit
box-sizing
что-то из этого должно помочь.
Вопрос: Хост linux + vm windows, как организовать?

Лучший ответ:
Держать винду в виртуалке не самая лучшая идея. Если прям так не получается распрощаться с ней, то поставьте windows и linux рядом

Худший ответ:
Хм есть такая штука, Wine. Попробуйте ее
Вопрос: Что учить Grid или Bootstrap?

Лучший ответ:
Да все равно работадателям на чем ты верстаешь. Главное быстро чтоб было. Я например на чистом css с использованием флексов, %, vw,vh верстаю, и лендос за 2-3 часа могу запилить. Все зависит от человека.

Худший ответ:
У CSS Grid Layout порог вхождения в разы меньше, нежели чем у попсового фреймворка Bootstrap. Дальнейшая поддержка проекта - основная причина, по которой BS является обязательным навыком. Если вы запилите проект на гридах, то проходимцам из смежных областей уже в разы трудней будет поддерживать вашу писанину. Это всё, что нужно знать о хотелках заказчиков и работодателей. 
Что до субъективного мнения, то - если не знаешь язык, то лучше фреймворком не пользоваться. Рекомендую предпочтение отдавать изучению языка, дабы не молиться на фреймворки, как на свое спасение при реализации ТЗ.
Вопрос: Как привести Битрикс до нормального состояния?

Лучший ответ:
Эм... давайте я отвечу (если не от всех, то хотя бы от лица себя и своих коллег) "битриксойдов" - никак.
Поясню свой ответ: дело не в битриксе, а в подходе. Именно этого и не понимают многие разработчики, которые после Yii, Zend, Symfony и т.д. видят Bitrix.
Во-первых, у продукта (я имею ввиду Битрикс24, и именно продукт, а не CMF/CMS) есть определенная парадигма: User First & Business insight.
User First - это означает, что для реализации базовых вещей, например бизнес-процессы, пользователь с правами администратора должен иметь возможность сделать 80% работы без привлечения разработчика (читать - без привлечения, а я не без опыта/знаний/навыков/образования). Реальность такова, что Вы не сможете за столь короткий срок, сделать ВСЕ ТО ЖЕ САМОЕ, НО ЛУЧШЕ (я не сомневаюсь в Ваших способностях, но одному человеку за измеримые 1-5 лет это практически нереально).
Business Insight - это означает, что в продукте уже заложена логика, а "кривизна результата" зачастую складывается из того, что Бизнес диктует свои условия (Продукт не для всех, но каждый пытается его использовать как хочет и как умеет). Как пример: купив зубную щетку Вы можете чистить ей зубы И/ИЛИ мыть машину, но согласитесь машину мыть неудобнее, но "бизнес решает не тратиться и на имеющуюся щетку нацепить тряпку побольше и ручку подлиннее".  
Во-вторых, увы, с этим сталкиваются чаще - кривизна разработчиков. Так как система распространенная, то порог в ее вхождение чуть выше чем в сам язык. Поэтому обилие не сертифицированных, неквалифицированных и необразованных разработчиков очень и очень много. Чтобы "наговнокодить" в том же Symfony нужно сначала понять где это делается, а для этого придется как минимум разобраться как он работает. В битриксе вы можете "говнокодить" почти не разбираясь в нем (я видел сайт, который от битрикса взял только лицензию, ни инфоблоки, ни orm, ничего...)
В-третьих, а давно ли Вы видели битрикс? Сейчас он движется в нужную сторону и, я Вас уверяю, если вы подключите к нему Yii/Silex и т.п., ничего кроме бОльшего "говнокода" Вы не получите. Я не говорю о том, что Вы плохой программист, но что будет после Вас? Вот уволитесь Вы, а это все достанется очередному бедолаге и ему с этим жить.

Худший ответ:
У каждой crm свой подход.
Просто жить с этим.
Видео на yotube в помощь
https://www.youtube.com/results?search_query=bitri...
И вот еще у них на канале курсы 
https://www.youtube.com/watch?v=TN5XmAtj6dQ
Вопрос: Как сделать чтобы скрипт работал при ширине больше 641 пикселей?

Лучший ответ:
Изпользовать matchMedia.if (window.matchMedia("(min-width: 400px)").matches) {
  /* the viewport is at least 400 pixels wide */
} else {
  /* the viewport is less than 400 pixels wide */
}

Худший ответ:
if (document.querySelector('body').offsetWidth > 641) {
    // что то делаем
}
Вопрос: Поднять сервер на домашнем железе?

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

Худший ответ:
проваудер типа Ростелеком за туже абонентскую плату предоставляет белый IP но динамический, для периода "на попробовать" можно в принципе обойтись и без статики, воспользоваться DynDNS, у роутеров типа Dlink раньше было даром. Если IP серый то тогда придется отдельно покупаться услугу белого статического IP, цена может быть разной, в краснодаре у МТС она стоит 150 р к примеру.
Далее попытайтесь найти сервис, который вам пока бесплатно предоставит доменное имя которое вы сможете привязать к вашему IP.
Или есть вариант не идти по этому пути а обратиться сразу к сервису как вы написали reg ru. Не знаю качество их услуг, НО цена в принципе у них конкурентно способная на мой взгляд.
Вопрос: Как дать блоку полную высоту?

Лучший ответ:
Родителю display: flex
Илиfunction setEqualHeight(columns){
	var tallestcolumn = 0;
    columns.each(function(){
		currentHeight = $(this).height();
        if(currentHeight > tallestcolumn){
			tallestcolumn = currentHeight;
        }
    });
    columns.height(tallestcolumn);
}setEqualHeight($(".first_box > div"));

Худший ответ:
Нельзя текст обернуть div'ом и прибавить к нему before?
Вопрос: Можно ли быть хорошим программистом и плохим олимпиадником?

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

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

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

Худший ответ:
Чтобы "отгрызть" кусок файла с конца, не создавая при этом новый, можно воспользоваться функцией ftruncate - откинуть лишнюю часть файла.
"Отгрызть" сначала, не создавая новый файл, не получится. Нужно только обрабатывать кусками.
1. чтобы не "повесить" систему, надо всегда обрабатывать файлы через "окно", т.е. фиксированными блоками (бинарные данные или текстовые с о-о-очень длинными "строками") или построчно (для коротких строк), считывая через fgets (пример) - резервируется кусок памяти под размер конкретной строки.
2. альтернативно, можно "отгрызать" при помощи потоковых обработчиков типа sed, gawk (GNU) - регулярками или другими специальными средствами. Есть также logrotate, но это другое, для файлов журналов.
Вопрос: Какая разница между Java и Python?

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

Худший ответ:
выбирай Python и Go для своих целей, Джава всем хороша, только фиг научишься ее готовить
Вопрос: Как поменять dots в slick slider на изображения?

Лучший ответ:
$('.images').slick({ // это изначально slick слайдер для основного блока изображений
        slidesToShow: 1,  // по одному слайдеру 
        slidesToScroll: 1, // по одному менять
        arrows:true, // включение стрелок (если не нужны false)
        asNavFor: '.imagesnew_dotted' // указываем что навигация для слайдера будет отдельно (указываем класс куда вешаем навигацию)
    });

    $('.imagesnew_dotted').slick({ // настройка навигации
        slidesToShow: 3, // указываем что нужно показывать 3 навигационных изображения
        asNavFor: '.images', // указываем что это навигация для блока выше
        focusOnSelect: true // указываем что бы слайделось по клику
    });<!-- Собственно блок где будут основные изображения -->
            <div class="images">
                <div><img src="image/data/big_img_1.jpg" alt=""></div>
                <div><img src="image/data/big_img_2.jpg" alt=""></div>
                <div><img src="image/data/big_img_3.jpg" alt=""></div>
            </div>
<!-- Навигация для вышеупомянутого слайдера -->
            <div class="imagesnew_dotted" style="transform: none !important;"> // обязательно в css запретите трансформацию, а то будут иконки ездить в зависимости от номера слайда
                <img class="active" src="image/data/icon_img_1.jpg">
                <img src="image/data/icon_img_2jpg">
                <img src="image/data/icon_img_3.jpg">
            </div>

Худший ответ:
Просто напишите свои стили в файле slick-theme.css, там лежат все стили для slick-dots контейнера. А разные иконки через nth-child
Вопрос: Как ограничить запись файлов в папках ( например через .htaccess)?

Лучший ответ:
нужно чтобы CMS не обновлялась больше
Плохая идея.Нужно запретить запись файлов в папках
useradd, chown, chmod.чтобы защита устаревшего CMS не была заражена вирусом
При наличии дыр запрет от записи файлов не помешает взломать сайт. Например, через модификацию БД, файлов в images, tmp, кражу пароля админа и пр.

Худший ответ:
Ограничить запись можно через chmod, и это единственно правильный способ.
Но, как сказал Er Code, если боитесь вирусов - делайте бэкапы.
Вопрос: Не устанавливаются пакеты с помощью Pip?

Лучший ответ:
Не используйте sudo перед pip
Под проект создавай виртуальное окружение и там работайmkdir ~/myproj
python3 -m venv ~/myproj/virtualenv
~/myproj/virtualenv/bin/activate
pip install selenium

Худший ответ:
Используйте sudo перед pip
Вопрос: Есть ли игры в открытом мире с круглой землей (картой)?

Лучший ответ:
Много игр с такими мирами: No Man's Sky, Super Mario Galaxy, Planetary Annihilation. Разрабы No Man's Sky недавно проводили презентацию про свои технологии генерации. Про Super Mario Galaxy есть небольшой видеоролик на YouTube. У разработчиков Planetary Annihilation даже есть свой видеоблог, там обсуждалось много технических моментов.

Худший ответ:
Spore, например.
Вопрос: Как сделать повторный вызов метода?

Лучший ответ:
Если хочется "четко и красава чтоб не хуже чем у пацанов", гляньте на либу Polly:public async Task<List<AccountListView>> GetAsync()
{
	var policy = Policy
		.Handle<UnauthorizedException>()
		.RetryAsync(
			retryCount: 1,
			onRetryAsync: (e, i) => Context.Renew());

	return await policy.ExecuteAsync(TryGetAccountListAsync);
}
Созданную policy можно переиспользовать. Т.е. вам не придется больше плодить копипасту, достаточно объявить одну политику на приложение, и дальше просто вызывайте то что требует обновления токена через эту политику.

Худший ответ:
Можно попробовать сделать код реюз через делегаты, к примеру так:public async Task<List<AccountListView>> GetAccountListAsync()
{
    return ContextGet(TryGetAccountListAsync);
}

private async Task<TReturn> ContextGet<TReturn>(Func<Task<TReturn>> func)
{
    try
    {
        return await func();
    }
    catch (UnauthorizedException)
    {
        await Context.Renew();

        return await func();
    }
}
Вопрос: Если отключится свет, спасут ли тепловые трубки видеокарту?

Лучший ответ:
Ничего не будет. 
Вырубится свет, прекратится нагрев.
Рабочий лимит 100C.
А вы не боитесь выключать комп после игры? Он же нагрет и тут вы его выключаете.

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

Лучший ответ:
ну как бы - сайт то не ваш.
а в своём огороде хочу помидоры рощу а хочу кактусы

Худший ответ:
Изредка срабатывают фразы типа "надеюсь, вы никому не скажете, что ваш сайт делал я", "жаль, что в портфолио этот сайт уже не добавить". Но редко. Очень.
Чаще всего (д)эффективные менеджеры "лучше знают что и как надо", так что у нас два варианта - не работать с ними вообще или просто забить и сделать как хотят (пытаясь местами что-то облагородить) и никому не говорить, что вон тот сайт сделал ты))
Вопрос: Как быстро прокачивать свои скилы в разработке?

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

Худший ответ:
1. Разработчик - это не про почивание на лаврах, чем больше учишься, тем понятнее, что всех знаний не усвоишь.
План: java core учится по книгам/видео/курсам. 
Практику можно добрать например на решении задач на сайтах, типа hackerrank. Плюс пробовать какие-то технологии из вакансий пробуя с их использованием напилить типа helloworld+. Например чатик на сокетах, сайтик, небольшой rest service, crud к БД. Можно объеденить все в одно. Не зацикливаться в домашних проектах на мелочах, сначала основная функциональность, потом шлифовка и фичи.
И искать работу, не стесняться ходить на интервью, так как если не ходить, то на работу точно не возьмут. Если устроишься и не забьешь на обучение довольно скоро поймешь, что новое стало учить гораздо легче
 Удачи
Вопрос: Как настроить вход пользователя на VPS Windows Server 2012 R2?

Лучший ответ:
При перезагрузке VPS на Windows Server 2012 R2 система автоматически не запускается.Система запускается. Не открывается сеанс какой-либо учётной записи.Установлен автозапуск на программы которые нужны для безперебойной работыЗапускайте эти программы через планировщик заданий, указав нужную учётную запись.

Худший ответ:
Вы путаете запуск операционной системы и сеанс пользователя. Полагаю, вам нужно, чтобы после перезапуска сервера нужный пользователь автоматом входил в систему.
Нажимаете сочетание клавиш "Win+R",  пишете команду "control userpasswords2".
В появившемся окне снимаете галочку "Users must enter a user name",  жмете Apply.  Затем указываете имя пользователя и пароль для автоматического входа.
Вопрос: Аналог книги «Программист прагматик» для менеджеров проектов, бывает такое?

Лучший ответ:
А чем вам не нравится "Мифический человеко-месяц" ?

Худший ответ:
Как пасти котов
Вопрос: Не подходит контакт от блока питания к материнской плате?

Лучший ответ:
Разъём составной, т.е. за две стороны в противоположные стороны потяните - должны разойтись.
 Посмотрите по форме пинов - верхний по фото совпадает.

Худший ответ:
Вам нужен нормальный переходник. Например с молекса www.dns-shop.ru/product/15a80974f915526f/slejf-non...
Варианта с 8pin на 4pin сходу не нашел, но вроде такие были.
Вообще, кажется, 8pin должен подходить, если другие компоненты не мешают.
Вопрос: Стоит ли изучать CMS или верстать на чистом html/css,php?

Лучший ответ:
Ну один, ну полтора - куда ни шло, но целых два сайта - это перебор, куда ж огромнее?!

Худший ответ:
CMS - это система управления контентом (простые готовые "рельсы" для блога и подобного).
HTML/CSS/JS - это фронт-енд.
php/mysql - это бэк-енд.
Что общего между ними?!
Для пары/тройки CMS - нужно изучить грамотное создание шаблона, чтобы люди могли его легко инсталлировать и пользоваться.
А PHP и CMS - здесь ничего общего....
Изучите любой PHP фреймворк для начала - я бы посоветовал микро-фреймворк fatfree.
Вопрос: Как защитить мобильное приложении от сниффера?

Лучший ответ:
Передавать данные только в шифрованном виде.

Худший ответ:
В большинстве случаев это реализовано через Certificate Pinning.
Т.е. ни какое ПО не может встать посередине (MITM), так как не сможем предоставить необходимый сертификат приложению.
Вопрос: Где правильнее хранить search-модели Yii2?

Лучший ответ:
допустим в корень 
странная идея, это последнее место где их будут искатьГде правильнее хранить search-модели Yii2?
либо в папке app/models либо в папке app/models/searchдабы при росте их количества не получалась каша из моделей
иногда удобно использовать модули для избежания каши, но не всегда. Но подумать в эту сторону стоит.

Худший ответ:
Храните связанные между собой вещи рядом.
Модель поиска продуктов рядом с моделью Продукта, модель поиска категорий рядом с категорией.
Нет смысла выделять папку для "всех" search-моделей
см. Структура проекта, LIFT
Вопрос: Как перенастроить клавишу альт взамен фн?

Лучший ответ:
Если мне не изменяет память, то Fn - это аппаратная особенность клавиатуры. Тоесть кнопка F1 посылает один сигнал, а комбинация Fn+F1 совсем другой. Fn как таковая не посылает никакого сигнала в систему.
Таким образом вам нужно переназначать все сочетания клавиш в соответствии в итоговым кодом. Это несколько сложнее, чем переназначить одну клавишу.
Можно поискать утилиты по ключевым словам remap/rebind keys (пример https://msdn.microsoft.com/en-us/globalization/key..., не знаю есть ли там сочетания). Но тут все зависит от функционала сочетаний.
Например у меня есть сочетание Fn+Space, которое меняет уровень подсветки клавиатуры, но оно никак не передается в систему (хардварная реализация).

Худший ответ:
Не факт, что это возможно. Некотороые Fn комбинации (яркость, громкость, отключение устройства) поддерживаются хардварно, и не завязаны на операционку.
Вопрос: Исчезает sidebar в Sublime text 3?

Лучший ответ:
Попробуйте забросить папку проекта в редактор, простым перетаскиванием, а после показывать/скрывать сайтбар можно комбинациями ctrl+k+b

Худший ответ:
Чтобы отключить автоматическое скрытие SideBar'а, нужно использовать сочетание клавиш - Ctrl+Shift+Alt+T, что активирует\деактивирует такое значение в настройках как "SideBarHider: toggle autohide for current window"
Вопрос: Как вылить проект на node.js в сеть?

Лучший ответ:
Для упрощения жизни по началу можете взять какой heroku, оно относительно дешево и ничего не нужно самому настраивать. Да и инструкции для новичков есть, и free аккаунт для эксперементов.
> вряд ли такие гиганты как yahoo и linkedin пользуются vps. 
у них свои датацентры, им проще. Но в целом от VPS процесс не сильно отличается (разве что масштабы другие). Есть еще нюансы связанные с администрированием, есть docker, есть ansible и прочее для оркестрацией серверами и т.д. Но это все потом. Не нужно стихийно пытаться покрыть сразу все. Возьмите пока вариант попроще и попробуйте а потом уже когда будет легко - можно повышать уровень и пытаться сделать так же самому на своем VPS, разбираться вообще во всем этом и т.д. Сейчас вам это просто не нужно.

Худший ответ:
Инструкция на английском:
https://www.digitalocean.com/community/tutorials/h...
Вопрос: PHP или ASP.NET?

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

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

Лучший ответ:
Перечислить:
1. Зарплатные ожидания(тут без опыта все будет печально)
2. Немного о себе
3. Образование
4. Ключевые навыки
5. Качества
6. Пишите, что нет опыта работы в IT, но если реализовали самостоятельно учебный или собственный проект укажите это.
Как другие выбиваются, так и вы пробуйте. Шлете резюме в разные компании. Публикуете на HH и Moikrug. Еще полезно сделать профиль на LinkedIn, со временем обрастете знакомствами и будут сыпать в личку разного рода предложения. Переодически проверяете почту. Ну и зарплатные ожидания адекватные для вашего региона ставьте. Будьте готовы даже не к должности джуна, а к тому, что вас стажером или на обучение возьмут. Тут все от ваших навыков, конечно, зависит. Сам в IT в 28 пришел.

Худший ответ:
1) Не релевантный опыт никак не сказывается на шансах устроиться на работу. Большинству не принципиально, насколько белым было оформление.
2) Высшее образование — это плюс, даже если в другой области.
3) Если нет опыта, нужно его приобрести. Самому придумать задачу и реализовать ее — будет что показать. 
Что касается конкуренции во фронтэнде, то выбор ниши — это вопрос другой.
Вопрос: Как оптимизировать запрос к БД MySQL?

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

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

Лучший ответ:
Очевидно, перенести обработчик исключения в тело цикла:number = [1,2,3,4,5]
number1 = [1,2,3,4,0]

for i in number:
    for j in number1:
        try:
            a = i/j
        except ZeroDivisionError:
            print('error')
        else:
            print(a)

Худший ответ:
Как вариант, можно вообще забить на исключение и получить честный inf при делении на ноль:import numpy as np
a1 = np.array([1,2,3,4,5], dtype=np.float64)
a2 = np.array([1,2,3,4,0], dtype=np.float64)
print (a1 / a2)
Будет "RuntimeWarning: divide by zero encountered in true_divide" в консоли, но программа отработает.
Результат выполнения:[  1.   1.   1.   1.  inf]
Вопрос: Что можно сделать на одностраничниках с помощью JavaScript?

Лучший ответ:
Реально глупый вопрос.
Для взаимодействия с пользователем, сервером и DOM.
Например, средствами CSS и HTML никак не отреагируешь на нажатие на кнопку, не отправишь запрос на сервер и не добавишь после загрузки страницы новые стили.
Короче, что для чего нужно:
HTML - для основы.
CSS - для стилизации.
JS - для всего остального

Худший ответ:
Все что  угодно, в прямом смысле. Если вы хотите что то сделать, но упираетесь в ограничения html5/css3, то это можно сделать с помощью js. Я так понимаю у вас стоит вопрос "что бы его сделать", а не "как это сделать".
Вопрос: Где найти актуальные видеоуроки по JavaScript?

Лучший ответ:
Зачем видеоуроки.
https://learn.javascript.ru/
отличнейший учебник.

Худший ответ:
Каково ваше отношение к интенсивно, онлайн курсам по верстке, программированию?
https://learnxinyminutes.com/docs/javascript/