• Как находить и участвовать в проектах на гитхаб?

    sim3x
    @sim3x
    Делаете работу
    В процессе находите ошибку в стороннем коде
    Находите ее источник
    Пишите багрепорт и тесткей
    Так как всем пофиг
    Сами фиксите баг
    Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
    Он вас посылает, тк ето не баг
    Ответ написан
    10 комментариев
  • Как сменить опции select, относительно выбора в другом select'e?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    сделать по onChange запрос аяксом на бэкенд, вытащить нужные поля из базы, создать селектор с этими полями, получить его в респонс аякса, вставить в нужное место.
    Ответ написан
    Комментировать
  • Как строго отделить Array от Object?

    rockon404
    @rockon404
    Frontend Developer
    Это что троллинг?
    Для определения массива достаточно Array.isArray
    Для определения объекта:
    function isObject(item) {
      return (typeof item === "object" && !Array.isArray(item) && item !== null);
    }

    Если в вашем коде возникают трудности с определением типа данных могу порекомендовать использовать TypeScript или Flow.

    Еще старайтесь писать читаемый код. Использование ни о чем не говорящих аргументов, отсутствие пробелов между операторами и операндами, и !0, !1 вместо true, false не очень хорошая практика.
    Ответ написан
  • Как раскрасить средствами php серую картинку?

    @santaatnas
    Java, Python, Php
    Комментировать
  • Чем вы пользуетесь для проверки JavaScript?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    IDE(встроенный jshint) и/или jshint при сборке, что еще надо-то?

    сжимает код и делает его более валидным.

    он или валидный или нет(не работает), сжатие здесь вообще причем...
    Ответ написан
    1 комментарий
  • Что такое ноды в javascript?

    rockon404
    @rockon404
    Frontend Developer
    Почему именно ноды, а не элементы или еще как-то?
    Node дословно переводится как узел.

    - почему тут ноды
    - а тут элемент?
    В чем разница?
    Node - любой объект DOM, в нем реализованы базовые методы.
    Element - это один конкретный тип(потомок) Node. Ноды не обязательно являются элементами.
    Простой пример. Обратите внимание на свойство nodeType каждого элемента коллекции. Один элемент и две текстовые ноды.

    Node
    Element
    Ответ написан
    4 комментария
  • Почему undefined является идентификатором а null литералом чем они отличаются?

    rockon404
    @rockon404
    Frontend Developer
    null - литерал, пустое значение, используйте его в коде для пустых значений.
    undefined - свойство глобального объекта, с начальным значением одноименного типа.
    Переменная не имеющая присвоенного значения обладает типом undefined. Функции без return возвращают undefined. Все использование undefined в коде должно сводиться к проверке на это значение и только, то есть:
    // Так писать не надо
    var x = undefined;
    foo(undefined, someValue):
    
    // Так можно
    var x = null;
    foo(null, someValue);
    if (someValue === undefined) {
      doSomething()
    }

    Почему undefined является идентификатором а null литералом чем они отличаются ?

    undefined не является идентификатором(именем переменной), но может использоваться в качестве него, так как не является зарезервированным словом.
    console.log(typeof undefined === 'undefined'); // true
    var undefined = 'new value';
    console.log(typeof undefined === 'undefined'); // false

    Подробней о null
    Подробней о undefinded
    Ответ написан
    5 комментариев
  • Очередь с приоритетами, скорость работы?

    longclaps
    @longclaps
    Вы меня извините, при всём уважении, вы - говнокодер. С этим надо что-то делать, для начала - признать этот факт. Возьмём самую длинную строку:
    reader = (tuple(map(str, line.split())) for line in stdin)
    чем она отличается от
    reader = (tuple(line.split()) for line in stdin)
    Ответ - вызовом map, который бессмысленно переводит str в str. Вы зачем это сделали? Там в задании (я не поленился, погуглил) был шаблон решения с рабочим проверочным кодом, а вы зачем-то заменили его странным не буду повторять чем.

    По существу: сложность алгоритма оценивается не измерениями, а мозгами. _heapify_max, комментарии в исходниках:
    """ Maxheap variant of heapify. """
    Смотрим heapify:
    """ Transform list into a heap, in-place, in O(len(heap)) time. """

    И где тут O(logn)?

    Попробуйте придумать нормальное решение.
    Ответ написан
    1 комментарий
  • Браузер жалуется на jquery?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    Попробуйте вместо
    .classList.contains - .hasClass()
    и вместо .classList.add - .addClass()

    Также let может не работать в некоторых браузерах, лучше использовать var

    Т.е. должно быть что-то вроде этого:
    $(window).load(function(){
        var preloader = $('.preloader');
    
        setTimeout(function() {
            if (!preloader.hasClass('preloader_hidden')) {
                preloader.addClass('preloader_hidden');
            }
        }, 2000);
    });


    Также, если нужно сделать переключатель класса (добавить, если нет или удалить, если есть), то можно использовать toggleClass()
    Ответ написан
    4 комментария
  • Почему не работает деструктуризация?

    AngReload
    @AngReload
    Кратко о себе
    У вас нет точек с запятой, а сам язык между закрывающей круглой скобкой и открывающей квадратной её не ставит. Ваш код аналогичен такому:

    console.log()[puzzles[first],puzzles[second]] = [puzzles[second],puzzles[first]]


    Надо так:
    replacePuzzles({commit, getters},{first,second}){
            let puzzles = getters.getPuzzles 
            console.log(puzzles[first],puzzles[second])
            ;[puzzles[first],puzzles[second]] = [puzzles[second],puzzles[first]]
    Ответ написан
    Комментировать
  • Как заменить слово в классе при помощи Jquery?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    var link = jQuery('.menu-item-4691 > a');
    var new_text =  link.text().replace('TEST' , ' TEST2' );
    link.text(new_text);
    Ответ написан
    Комментировать
  • Как лучше разделить пользователей по ролям?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    Контроль должен быть на сервере. Можете присылать с профилем пользователя его права и на фронте прятать соответствующие элементы.
    Ответ написан
    Комментировать
  • Как убрать путь к файлу из html-адреса?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    <a href="/cgi101.html">файл</a>
    Оно?
    Ответ написан
    Комментировать
  • Как вернуть результат из метода each?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Альтернативой .each() является .map(), которая собирает в массив всё, что возвращает переданная функция. Дальше с этим массивом вы уже можете делать что угодно.

    Но вообще, вы в коде что-то очень странное делаете. Зачем для каждого элемента коллекции получать ещё раз всю коллекцию и считать её длину? Чего вы пытаетесь добиться?
    Ответ написан
    1 комментарий
  • Как добиться воспроизведения 8K видео в Unity?

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

    Из опробованных мной ассетов и библиотек, лучший результат показал AVPro Video.
    Он умеет играть видео больше 4K используя аппаратные средства. На моей системе, 2*4K видео (стерео) - играет без проблем. Загрузка процессора ~40%, видеокарта ~30%.

    Таким образом, производительность этого решения на unity, в протестированном кейсе, - не уступает "нативным" решениям (из тестированных, плеер Virtual desktop, GoPro Player, Steam 360 Player).

    Если кто-то сможет добавить информацию по вопросу (а не о том, почему этот вопрос тупой) - буду очень благодарен. С выходов новых шлемов (например, Pimax) - качественные плеер станет большой проблемой. Так что решение вроде ямочного рендера - в любом случае необходимо, и рано или поздно появиться.

    Любую дополнительную информацию, хотя бы косвенно относящуюся к исходному вопросу - с удовольствием отмечу решением. Пока, решения на вопрос НЕТ.
    Ответ написан
    4 комментария
  • Есть ли какие-либо недостатки у статических методов?

    @D3lphi
    Значит так, берем толстую тетрадь, ручку и пишем фразу "Статические методы не имеют отношения к ООП" до тех пор, пока не запомним это на всю жизнь.
    Суть объектно ориентированного программирование, как понятно из названия, заключается в том, что должен существовать объект. Статика существует не в контексте объекта, а в контексте класса! Из этого вытекает то, что на протяжении всего жизненного цикла вашего кода будет существовать лишь одно глобальное состояние статических членов класса.

    Использовать статику нужно в случае, если то, что вы ей описываете принадлежит всей группе объектов, а не одному. Например, у класса Human может быть статический метод numberOfLegs(), который возвращает количество ног у людей. Количество ног - это общее свойство для всех людей (Речь идет о здоровых людях). В данном случае можно было использовать константу класса, но это не так важно, ведь, по сути, константа - это тоже статический контекст. А вот имя - это уже свойство каждого отдельного человека. И очень важно чтобы статические методы не изменяли состояние системы в целом, не содержали побочных эффектов.
    В статические методы можно выносить какую либо служебную логику. Например, метод перевода числа из арабской в римскую запись следует сделать статическим.

    Есть ли у статического варианта какие-то подводные камни

    Большое количество. При чем, не таких уж и подводных. Из-за того, что статика глобальна, она плохо поддается тестированию, ее нельзя замокать. Глобальное состояние плохо поддается отладке. Отсутствует возможность подменить реализацию, так как это позволяют сделать объекты.
    Ответ написан
    4 комментария
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    И самое главное: кто придумал слабую типизацию?

    Для начала разберитесь с классическим заблуждением, и не путайте слабую типизацию и динамическую типизацию. Сейчас из вашего вопроса можно подумать, что это одно и то же.

    Динамическую типизацию придумали для того, чтобы было легче писать обобщённые алгоритмы и мета-алгоритмы, в дин. языке для обобщения кода не нужны ухищрения типа дженериков (TypeScript, C# и много чего ещё) или шаблонов/макросов (C++). В ОО-языках часто доступны и другие удобства, например смена интерфейса объекта в зависимости от его состояния (т.к. решение о возможности вызова метода/свойства объект может принимать сам).

    Слабую типизацию придумали чтобы заставить людей страдать (да, я не знаю кому такое нужно вообще).

    Как вы пишете код на жс?

    Мы не пишем код на JS, мы пишем код на TypeScript. Да, такие сейчас странные времена, когда язык со статической типизацией компилится в язык с динамической, т.к. исполнять на клиенте (в браузере) больше нечего пока.

    Он же не должен быть напичкан parseInt() и !== undefined.

    Не должен. Если писать на голом JS, можно а) использовать JSDoc для аннотаций о типах, и работать с типами на уровне документации и договорённостей; б) писать алгоритмы в максимально обобщенной манере, и требовать по возможности не конкретных типов данных, а значений, над которыми допустимы нужные вам операции; в) покрывать код тестами, что и спасает в динамических языках.

    Чем больше проект, тем важнее статическая типизация, это нормально. JS - это язык который популярен по техническим причинам и по стечению обстоятельств, а не потому что он этого заслуживает (имхо). Очень неглупые дяди и тёти не стали бы тратить годы своего времени и кучу денег на разработку TypeScript и Flow, если бы это было ненужно.
    Ответ написан
    1 комментарий