• Ответьте пж где учить CSS (учусь сам дома, не советуйте кого то на подобие Хауди хо)?

    Я вообще не понимаю этих приколов где учить css/верстку. На ютубе единицы каналов, ты просто смотришь видосы и тебе по аннотации кидает других атворов и через неделю обучения ты уже подписан на всех.
    1.Фрилансер по жизни - канал посвящен исключительно верстки, очень много углубленных тем.
    2.Анна блок - канал тоже исключительно про верстку, вот с неё советовал бы начинать, у неё более легкие и короткие объяснения
    3.Если вообще только прям начал, то webdev, там есть видео css с нуля и html с нуля, которые около трех часов оба, затем на канале есть два часовых ролика про флексбоксы и гриды(мастхев для верстки)
    4.MaxGraph - канал тоже про верстку, но тут уже больше тем для среднего уровня, про гсап-анимации-сборщики
    5.От 0 до 1 - канал тоже про верстку, тут есть много видосов больших, по котором верстаются целые сайты, можешь посмотреть как человек на коммерческой основе делает с нуля какие-то вещи до релиза
    6.Codmark/easy tutorial - два канал где можно подсмотреть какие-то интересные решения по началу
    7.Вадим макеев, это не про обучение верстки(ну тут уроков нет), но это гуро верстки и просто будет интересно послушать как профессионал своего дела мыслит и транслирует информацию, что и как должен делать верстальщик
    ну вот этим лично я пользовался-пользуюсь, возможно найдешь для себя из моего списка что-то полезное
    Ответ написан
    Комментировать
  • Почему код выдает ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что метод execute не принимает столько параметров, сколько вы ему передаёте. И в sql-запросе у вас ошибка.
    Ответ написан
    Комментировать
  • Как почистить Git-репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вот несколько фактов, которые помогут понять как работает Git.
    • Файл .gitignore предназначен для описания того, что мы не хотим СЛУЧАЙНО добавить в репозиторий. Либо не хотим случайно удалить переключив ветку.
    • Мы можем ПРИНУДИТЕЛЬНО добавить в репозиторий ЛЮБОЙ файл, даже если он описан в .gitignore.
    • Добавление файла в .gitignore не удалит сам файл из репозитория. Если файл УЖЕ в репозитории, то он продолжит отслеживаться, независимо от наличия .gitignore.
    • Если больше не хотим отслеживать какой-то файл, то просто удаляем его из репозитория. Ключ --cached позволит оставить файл в рабочем каталоге текущего репозитория если он нужен.
    git rm --cached -- '.DS_Store'
    git commit

    Но последний рецепт сработает только на одном компьютере. Если коллеги переключатся на этот коммит, то файл удалится у них из рабочего каталога.
    Ответ написан
    4 комментария
  • Как сделать чтобы рандомные значения в массиве не повторялись?

    Anopeng
    @Anopeng
    Веб-программист, учу фронт и бек
    for (i=0;i<8;i++){
        let curr;
        do {
          curr = NAMES[random(0,NAMES.length - 1)]+ " " + SURNAMES[random(0,NAMES.length - 1)];
        }
        while (NAMESS.includes(curr));
        NAMESS.push(curr)
    }
    Ответ написан
    4 комментария
  • Почему .find в mongoose возвращает не массив?

    @FIREguardSPB
    Я мимоходом второпях ерунду написал, поэтому редактирую:

    У тебя не может быть свойства lenght - потому, что такого нет в природе =)) правильно - length
    Это частая ошибка у новичков!
    Ответ написан
    Комментировать
  • Как восстановить файл css?

    profesor08
    @profesor08
    Как восстановить файл css?

    1. Удаляешь atom, устанавливаешь vscode.
    2. Пишешь стили заново. Второй раз будет проще.
    Ответ написан
  • Как рисовать такие svg в react и не только?

    @goshaLoonny
    Использовать целую библиотеку ради одной линии это конечно сильно : )
    Используйте Rete.js если не хотите заморачиваться ради одной линии.
    Но ничего сложного нету на самом деле. Нужно просто нарисовать необходимую линию на канвасе, наложить его сверху на ваши элементы и установить ему pointer-events: none. Вот и все.
    Ответ написан
    1 комментарий
  • Как поставить задержку в цикле for?

    black1277
    @black1277
    Вольный стрелок
    Вы умудрились наступить сразу на 2 грабли.
    1 Замыкания
    2 Асинхронный код в теле цикла
    for (i in array){
        (function (m) {
            setTimeout(function () {
                change(array[m])
            }, 2000)
        })(i)
    }

    Код который я привел - разрулит замыкание, а в предыдущем ответе возьмите ф-ю для паузы и почитайте по ссылке про циклы.
    Ответ написан
    3 комментария
  • Правда ли что SSR постоянно отваливается?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Нет, неправда.

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

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    по БЭМ - первый вариант
    Ответ написан
    Комментировать
  • Как общаться между вкладками браузера js?

    profesor08
    @profesor08 Куратор тега JavaScript
    https://developer.mozilla.org/ru/docs/Web/API/Wind...

    Получаешь токен, пихаешь в localStorage, при этом все остальные вкладки получают событие storage. А значит, просто слушая этот ивент, ты сможешь обновить токен где тебе надо, на всех вкладках.
    Ответ написан
    7 комментариев
  • У меня есть переменная в data g=1, я меняю ее значение, но все равно выводится число g равное 1, почему?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    this внутри function зависит от контекста вызова этой function.
    Когда срабатывает onAuthStateChanged - вызывается переданная ему функция-обработчик, которой устанавливается какой-то this(или не устанавливается, и тогда он по умолчанию window или, в строгом режиме, undefined). И этот this точно никак не связан с текущим this Vue, потому что тот никаким образом не передан при вызове, и, соответственно onAuthStateChanged о нём ничего не знает.

    Используй:
    a) (async function(user) { ... }).bind(this) чтобы жёстко привязать эту функцию к this.
    b) vm.g = 5;, т.к. таким образом конкретный this сохранён в переменную и не меняется в зависимости от контекста вызова.
    c) стрелочную функцию async (user) => { ... }, её механика работы по сути осуществляет неявный bind.
    d) функцию обработчик в методах Vue: Vue автоматически делает bind всех методов к this:
    onAuthStateChanged(this.onAuthStateChanged)
    methods: {
      onAuthStateChanged: async function (user) { ... }
    }
    Ответ написан
    Комментировать
  • Каким образом свойство this.props доступно в методе render классового компонента?

    @DimaIs
    1.
    class AnyCompnent extends React.Component
    2.
    constructor(props) {
      super(props);
    }

    Почитайте про наследование классов в JS: ссылка
    Ответ написан
    Комментировать
  • Как понять нижеуказанный код Javascript?

    ZerdoX-x
    @ZerdoX-x
    Frontend developer influenced by web, a11y, crypto
    function largestOfFour(matrix) {
      let results = []; // переменная для хранения самых больших чисел из каждой строки матрицы
    
      // итерация по матрице
      for (let rowIndex = 0; i < matrix.length; i++) {
        // переменнная, в которой будет храниться самое большое число из текущей строки матрицы
        let largestNumber = matrix[rowIndex][0]; // первый элемент текущей строки в качестве значения по умолчанию
        // итерация по строке матрицы
        for (let rowElementIndex = 1; j < matrix[rowIndex].length; j++) {
          // если текущий элемент больше самого большого числа на текущем этапе итерации_
          if (arr[rowIndex][rowElementIndex] > largestNumber) {
            // самым большим числом становится текущий элемент строки матрицы
            largestNumber = arr[rowIndex][rowElementIndex];
          }
        }
        // после итерации по строке матрицы сохраняет самое большое число
        results[rowIndex] = largestNumber;
      }
      
      return results;
    }


    Этот код очень императивный, не пиши так. Ты можешь конечно разобраться как работает этот код, но самому тебе такой код не придётся писать (я надеюсь). Вот пример этой же функции, которая делает всё то же самое, но код получился гораздо лаконичнее:
    function largestOfFour(arr) {
      return arr.map((row) => Math.max(...row))
    }


    UPDATE: в комментариях под этим ответом есть обсуждение касаемо императивного кода. Отвечая автору вопроса я не имел в виду, что императивный код плохой и нельзя писать императивный код. Я имел в виду, что фронтендеру зачастую следует избегать императивности во время разработки (тем более, во время решения тривиальных задач)
    Ответ написан
    8 комментариев
  • Как из компонента Child добавить родителю нужный класс?

    0xD34F
    @0xD34F Куратор тега React
    Так делать не принято, и вам это не нужно.

    Раз у всех этих элементов должен быть один класс, это должны быть корневые элементы экземпляров компонента Preloader. Тэг можно передать через props, как и те элементы, что сейчас являются соседними:

    function Preloader({ Tag = 'h1', children }) {
      return (
        <Tag className={s.wrapper}>
          <div className={s.preloader}></div>
          {children}
        </Tag>
      );
    }

    <div className="App">
      <Preloader>hello, world!!</Preloader>
      <Preloader Tag="h2">fuck the world</Preloader>
    </div>
    Ответ написан
    1 комментарий
  • Почему попытка считать свойство response JS объекта XMLHttpRequest возвращает пустую строку, несмотря на данные в нем?

    @Just__Den
    FULL STACK
    onsuccess = (request) => {
                            block_request = false;
                            document.getElementById("image-list").innerHTML += request.response;
                            // При просмотре в браузере здесь есть аттрибут response и там есть html код
                            console.log(request)
                            // Здесь выводит пустоту
                            console.log(request.response);
                        },


    тут onsuccess принимает request, в котором ещё нету ответа запроса. Он появится в коллбеке тут:

    request.onreadystatechange = () => {
                    if (request.status === 200 && ready_to_react === true) {
    
                        ready_to_react = false;
    
                        onsuccess(request);
                    } else {
                        ready_to_react = false;
                        onerror(request);
                    }
    
                }
    Ответ написан
    Комментировать
  • Почему ломается блок?

    Pavel-ww
    @Pavel-ww
    Не понял что такое main-e, не нашел это в коде.

    Отступ снизу - не настроена высота html, body 100% и дочерних элементов, поэтому высота соответствует контенту, а не растягивается по высоте экрана.

    Отступ справа - у вас максимально возможная суммарная ширина всех колонок 1702px (жестко прописано в коде) поэтому остается пустое пространство на экранах шире этого размера. Запутались с комбинацией max-width и width в третьей колонке
    Ответ написан
    8 комментариев
  • Как правильно передать props?

    black1277
    @black1277
    Вольный стрелок
    Props это объект - у него нет функции map. Вытащи из пропса нужный массив и к нему примени map.
    Ответ написан
    5 комментариев
  • Как изменить автора коммита, но сохранить время предыдущего коммита?

    E1ON
    @E1ON
    Programming, Gamedev, VR
    --date="Wed Feb 16 14:00 2011 +0100"
    или мб
    --no-edit
    Ответ написан
    Комментировать