• Как научиться верстать если мне лень?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    хочу научиться но лень.


    Значит не очень то и хочешь. Это нормально. Иди примерно по такому списку:

    1. Изучи популярные теги (p, div, span, семантичные теги HTML5, заголовки)
    2. Научись верстать тексты (font, margin, padding). Изучишь блочную модель
    3. Переходи к позиционированию. relative, absolute, fixed, sticky
    4. Далее приступай к Flex
    5. Адаптивность
    6. Grid
    7. Препроцессоры

    Примерно так я бы советовал. Можешь идти сразу по нескольким темам. Например научись работать с pug, scss и применяй это сразу при изучении других моментов. Ты не научишься прям профессионально с ними работать, но уже будешь в среде обычной разработки.

    Я конечно могу предложить, где поучить, но не хочу разводить рекламу. Примерное направление есть, так что дерзай
    Ответ написан
    3 комментария
  • Как парсить сайт на предмет новых постов?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    1. Дергаешь API
    2. Собираешь посты и запоминаешь дату последнего (в файл можно сохранить)
    3. Дёргаешь API
    4. Если есть посты позже сохранённой даты - собираешь и в телегу. Если нет - гасишь скрипт.
    Ответ написан
    Комментировать
  • Может кто подсказать программу для изменения свойств папки(win10)?

    GavriKos
    @GavriKos
    Эээ. Файловый менеджер что ли? Накидайте туда файлов и все.
    Ответ написан
    3 комментария
  • Существует ли универсальный LAMP-образ Docker?

    inf
    @inf
    DevOps Engineer
    Существует. Такого много https://github.com/sprintcube/docker-compose-lamp
    Как писали выше, смотреть надо docker-compose, а не сам докер.
    Ответ написан
    Комментировать
  • Как вызвать функцию с разным числом аргументов по условию?

    twobomb
    @twobomb
    callback.apply(null,Object.values(obj))
    apply
    Ответ написан
    Комментировать
  • Как установить git для использования в Open Server?

    @riente
    При установке git.exe мог быть прописан в PATH, просто возможно OpenServer использует только свой PATH. Лично мне помогло в настройках во вкладке "Сервер" выставить значение "Свой Path + Win Path".
    Ответ написан
    5 комментариев
  • Как сделать отложенную загрузку видео-фона сайта?

    Stalker_RED
    @Stalker_RED
    autoplay уберите, src сделайте пустым.
    <video loop="loop" playsinline="" muted="muted" data-src="files/uploads/main.mp4" preload="none" class="abs-video abs"></video>


    Начинайте грузить видео только после полной загрузки DOM или даже после загрузки всех изображений и стилей
    document.addEventListener('DOMContentLoaded', function(){ // или 'load', попробуйте что больше подойдет
      const player = document.querySelector('.abs-video');
      player.oncanplay = function(){ player.play() }; // вызовется, когда загрузится хотя-бы несколько первых кадров
      player.src = player.dataset.src; // подставляем правильный src
    })




    Если видео тяжелое, то можно заморочиться, и сконвертить его c флагом -movflags faststart, что позволит начать проигрывание еще до полной загрузки файла.
    Как-то так https://superuser.com/a/424024
    Ответ написан
    5 комментариев
  • Как выполнить код javascript в браузере?

    Tomut0
    @Tomut0
    Простой студент, изучающий глубоководье IT.
    Прочитайте про user-scripts.
    Они позволят вам вставлять ваш JS код в любую страницу и отрабатывать ваш JS с DOM'ом страницы.

    Для этого нужно поставить одно из выбранных вами на вкус расширений:
    1. TamperMonkey;
    2. GreaseMonkey;
    3. Существуют и другие, просто сами посмотрите.

    Я же по-рекомендую TamperMonkey.
    Там есть нормальный вывод ошибок, что для новичков – незаменимая вещь.

    ...как-то в консоли браузера код js можно выполнять... Как это сделать?

    – Достаточно нажать кнопку f12 или ctrl + shift + i, в появившемся окне выбрать "консоль", и там уже вставлять ваши js-скрипты.
    Ответ написан
    Комментировать
  • Почему Opera Mini режет качество фотографий?

    @Hanneman
    Потому что Opera Mini прогоняет весь трафик через свои прокси, которые сжимают на лету изображения для экономии трафика.
    Ответ написан
    2 комментария
  • С помощью чего можно быстро поднять админ панель?

    Sanes
    @Sanes
    C помощью программиста.
    Ответ написан
    Комментировать
  • Как выбросить ошибку из промиса?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Ваша главная проблема в говнокоде, в котором Вы сами не в состоянии разобраться.

    Для начала я отрефакторю вот этот кусок:
    const minSalary = Math.min(...employeeData.map(({ salary }) => salary));
    minSalaryEmployee = employeeData.filter(({ salary }) => {
        return salary === minSalary;
    });
    const [id, oldSalary] = [
        minSalaryEmployee[0].id,
        minSalaryEmployee[0].salary,
    ];
    const newSalary = oldSalary + (oldSalary / 100) * 20;
    return { id: id, salary: newSalary };
    ибо тут твориться полная жесть...
    Если привести в более читабельный вид:
    const minSalary = Math.min(...employeeData.map(({salary}) => salary));
    const minSalaryEmployee = employeeData.find(({salary}) => salary === minSalary);
    const {id, salary: oldSalary} = minSalaryEmployee;
    const newSalary = oldSalary + (oldSalary / 100) * 20;
    return {id, salary: newSalary};
    то сразу можно увидеть простор для оптимизации поиска минимума:
    const [minSalaryEmployee] = employeeData.reduce(([minEmployee, minSalary], employee) => {
        const {salary} = employee;
        return (salary < minSalary
            ? [employee, salary]
            : [minEmployee, minSalary]
        );
    }, [null, Infinity]);
    А заодно и формулу
    const newSalary = oldSalary + (oldSalary / 100) * 20;
    применив алгебру за 5 класс можно упростить доconst newSalary = oldSalary * 1.2;

    Следующим шагом стоит развернуть все промисы. Вообще вкладывать промисы в друг друга не очень хорошая идея. Наличие .then внутри колбэка другого .then или колбэка-раннера new Promise - воняет очень скверно.

    Немного поколдовав, заодно исправив ошибки с колбэками .then без return, получаем более читабельный, а главное работающий код:
    function increaseSalary() {
        return api.getEmployees()
            .then(employeeData => {
                const [minSalaryEmployee] = employeeData.reduce(([minEmployee, minSalary], employee) => {
                    const {salary} = employee;
                    return (salary < minSalary
                        ? [employee, salary]
                        : [minEmployee, minSalary]
                    );
                }, [null, Infinity]);
                const {id, salary: oldSalary} = minSalaryEmployee;
                const newSalary = oldSalary * 1.2;
                return {id, salary: newSalary};
            })
            .then(({id, salary}) => api.setEmployeeSalary(id, salary))
            .then(({name, id, salary}) => api.notifyEmployee(id, `Hello, ${name}! Congratulations, your new salary is ${salary}!`))
            .catch(e => api.notifyAdmin(e));
    }


    P.S. я бы еще бил все это добро на отдельные функции, ибо complexity 10 это все еще много...

    import api from 'path/to/api';
    
    export function increaseSalary() {
        return api.getEmployees()
            .then(findEmployeeWithMinSalary)
            .then(calculateNewSalary)
            .then(setEmployeeSalary)
            .then(notifyEmployee)
            .catch(notifyAdmin);
    }
    
    function findEmployeeWithMinSalary(employeeData) {
        const [minSalaryEmployee] = employeeData.reduce(minSalaryEmployeeReducer, [null, Infinity]);
        return minSalaryEmployee;
    }
    
    // Complexity is 3 - это самая сложная функция
    function minSalaryEmployeeReducer([minEmployee, minSalary], employee) {
        const {salary} = employee;
        return (salary < minSalary
            ? [employee, salary]
            : [minEmployee, minSalary]
        );
    }
    
    function calculateNewSalary({id, salary}) {
        return {
            id,
            salary: salary * 1.2
        };
    }
    
    function setEmployeeSalary({id, salary}) {
        return api.setEmployeeSalary(id, salary);
    }
    
    function notifyEmployee({name, id, salary}) {
        return api.notifyEmployee(id, `Hello, ${name}! Congratulations, your new salary is ${salary}!`);
    }
    
    function notifyAdmin(e) {
        return api.notifyAdmin(e);
    }
    Ответ написан
    1 комментарий
  • Как устранить ошибку Pagespeed “Пассивные прослушиватели событий не используются для улучшения производительности при прокрутке”?

    Stalker_RED
    @Stalker_RED
    Если даже у тебя получится выставить passive: true, пользы это не принесет, потому что библиотека делает preventDefault, и ты получишь очередную ошибку.

    Как вариант - попробуй отказаться от этой библиотеки вообще.
    Ответ написан
    6 комментариев
  • Как научиться писать свой код React, Node js?

    Stalker_RED
    @Stalker_RED
    сделай главную страницу, напиши на ней "привет, тест" или типа того.
    Добавь ссылку на регистрацию, сделй чтобы она работала.
    добавь форму для входа, и сделай чтобы работала.
    потом напиши чат. (**картинка с совой**)
    Ответ написан
    Комментировать
  • Window 10, на что используется RAM?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    В диспетчере показывается вся картина, если, конечно, смотреть на столбец "Выделенная память". По умолчанию он скрыт. Так что добавьте его и смотрите на него.

    P.S. При чем тут MemDiag конечно мне не понятно
    Ответ написан
    Комментировать
  • Как дробить большие post запросы?

    @zkrvndm
    Софт для автоматизации
    Ну, в теории можно запаковать все файлы в архив, сам архив разбить на ровные части и отравить на сервер, а там уже собрать мозаику обратно, после чего распаковать собранный архив.

    Создавать zip-архивы на JavaScript можно посредством библиотеки JSZip, он на выходе даст вам Blob, который в свою очередь ни что не помешает разбить на части и отослать кусками.

    P. S. Но честно сказать, вам будет проще увеличить лимиты сервера, чем такую мудрёную схему реализовывать. Если хостер не позволяет менять лимиты, меняйте хостера или переходите на VDS.
    Ответ написан
    Комментировать
  • Как реализовать такое?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    нет 3d модели предмета

    но
    модель крутится

    Если вы хотите сделать вращение модели, то вам в любом случае нужна либо 3d-модель и отображение ее с помощью WebGL, либо куча картинок с видами на нее со всех сторон с разницей в N градусов и последовательное их показывание пользователю (ну или видео, что по сути - тот же набор картинок). Но тут важно отметить, что обычно такие картинки не рисуют прямо руками, а делают модельку и потом ее рендерят с разных сторон, т.к. это получается быстрее, чем рисовать.

    Подход с заранее отрендеренными картинками может показаться избыточным, но на деле он позволяет добиться более реалистичного освещения с бликами, рефлексами и разными материалами вроде стекла или меха, которые можно сделать в 3d в теории, в соответствующих редакторах, но в реальном времени рендерить в браузере не получится из-за проблем с производительностью. Нужно это или нет в вашем случае - решать вам.

    В общем случает ответ на ваш вопрос - без модельки такое вращение не сделать. Она все равно понадобится либо для отображения непосредственно в браузере, либо для подготовки видов со всех сторон в разумные сроки.
    Ответ написан
    Комментировать
  • Как создать анимированный gif со звуком?

    Seasle
    @Seasle Куратор тега JavaScript
    Гифка со звуком, вообще-то, называется - видео.
    Ответ написан
    Комментировать
  • Как протестировать сайт на кроссбраузерность и адаптивность без интернета?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Определенно браузер сам по себе. Несколько браузеров. И дебаггер. Иной раз и виртуалку можно поставить.
    Ответ написан
    2 комментария
  • Rак улучшить читаемость текста на фото?

    FinGanapre
    @FinGanapre
    Может распознать получившийся результат и уже текстом экспортировать в pdf? Просто вариант. Не уверен, что ничего не съедет. Можно и изначальный вариант распознать.
    Ответ написан
    2 комментария
  • Не могу определиться: PHP или Python?

    DevMan
    @DevMan
    боятся не нужно: пых хоронят практически с момента его появления. и всё никак не похоронят.
    язык наоборот только хорошеет. и инфраструктура вокруг него тоже.

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

    а записи в ТК вообще мало кого волнуют (в масштабах рынка). у меня ее вообще нет, и это никак не мешает мне работать уже 20+ лет.
    Ответ написан
    2 комментария