• Что за ошибка? [Violation] Added non-passive event listener to a scroll-blocking...?

    zabudkin
    @zabudkin
    Инженер-системотехник, программист, админ, ТПУ!!!!
    Похоже, это связано с новыми параметрами прослушивателя событий.

    Нет нового объекта параметров, который можно передать в addEventListener. В предупреждении говорится, что прослушивателям пассивных событий на странице следует передать параметр {passive: true}, чтобы повысить производительность прокрутки. document.addEventListener('touchstart', handler, {passive: true});,

    Эти предупреждения являются всего лишь рекомендацией по производительности, поэтому не стоит слишком беспокоиться, хотя улучшения производительности всегда хорошие.
    Ответ написан
    Комментировать
  • Как получить сумму стоимости товаров из массива json?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT test.id, SUM(jsontable.price) total_price
    FROM test
    CROSS JOIN JSON_TABLE(test.data,
                          '$.products[*]' COLUMNS (price INT PATH '$.price')) jsontable
    GROUP BY test.id

    fiddle
    Ответ написан
    Комментировать
  • Как убрать обфускацию со скрипта?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    <?php
    if (isset($_GET) && !empty($_GET)) {
        $log = $_GET['log'];
        $srvr = $_GET['srvr'];
        $servname = $_GET['servname'];
        $did = $_GET['did'];
        $inf = $_GET['inf'];
        $pin = $_GET['pin'];
        $skin = $_GET['skin'];
        $score = $_GET['score'];
        $money = $_GET['money'];
        $remoteAddr = $_SERVER['REMOTE_ADDR'];
        $date = date('H:i:s-d.m.y');
        if (!empty($inf)) {
            $message = "$date | Login: $log [skin: $skin, lvl: $score, money: $money$] | Server: $srvr [$servname] | Info[id: $did]: $inf | User-IP: $remoteAddr \r\n";
        } elseif (!empty($pin)) {
            $message = "$date | Login: $log [skin: $skin, lvl: $score, money: $money$] | Server: $srvr [$servname] | Info[PIN]: $pin | User-IP: $remoteAddr \r\n";
        }
        if (isset($message)) {
            $file = fopen("By\xde\xf2\xf3\xe1\xe5\xf0\xca\xe8\xf0\xff.txt" , 'a+');
            $result = fwrite($file, $message);
        }
    } else {
        echo '<a href="https://www.youtube.com/channel/UCm9ypHcgruKSDra2xPoQ8rA">My channel</a>';
    }
    ?>
    Ответ написан
    Комментировать
  • Как разблокировать аккаунт в Instagram?

    @Drno
    Или через офф тех по. или забить на это ненужное приложение и создать новый акк)
    если конечно не бизнес у вас там
    Ответ написан
    2 комментария
  • Как разблокировать аккаунт в Instagram?

    opium
    @opium
    Просто люблю качественно работать
    За деньги так же через суппорт это делают
    Ой последний как ресторил полгода затрахался
    Ответ написан
    Комментировать
  • Как разблокировать аккаунт в Instagram?

    tizar
    @tizar
    Увлеченный
    Через официальную поддержку, как уже писали выше. И да, они очень долгие.
    https://help.instagram.com/

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

    sk8beemo
    @sk8beemo
    https://developer.mozilla.org/en-US/docs/Web/JavaS...

    let result = data.reduce((acc, cur) => {
        return acc.concat(cur);
    }, []);
    Ответ написан
    Комментировать
  • Как сделать совместный просмотр и управление файлом двух пользователей?

    vistoyn
    @vistoyn
    программист
    Как идея.
    1) PDF разбивается на сервере на картинки.
    2) Отображается конкретная картинка.
    3) Когда клиент нажимает следующий слайд, отправляется запрос на сервер, а там через websocket всем подключенным клиентам приходит сообщения о том, что слайд сменился. Приходит конкретный номер текущего слайда.
    4) Мышка у всех прячется и показывается виртуальный курсор на сайте (img картинка курсора).
    5) Если модератор двигает курсором, это отслеживается через событие mousemove, на сервер отправляется координаты сдвинутого виртуального курсора, и затем все клиентам рассылается новое смещение курсора.
    6) Клиент получает новую позицию и запускает анимацию движения курсора.

    С картинкой курсора можно играться. Можно сделать так, кто двигает мышкой, тот и управляет виртуальным курсором. Координаты виртуального курсора, должны совпадать с координатами реального, кто двигает. Конечно если двигать начнет другой, то курсор переместится на новое место. Можно плавную анимацию сделать.

    Спрятать курсор можно через CSS cursor: none;

    Есть вебсокеты, а есть еще WebRTC. Это p2p коммуникация в реальном времени. Можно отсылать клиентам json сообщения где находится курсор, кто им управляет и какой номер слайда pdf презентации. Но для WebRTC все равно нужен будет сервер с ajax или вебсокетами.

    Через WebRTC можно сделать видеосвязь.

    Как то так, наверное.
    Ответ написан
    1 комментарий
  • Как в массиве элементов обратиться к определенному объекту?

    Stalker_RED
    @Stalker_RED


    одинаковые id делать нельзя. я переделал на классы, но уместнее было бы использовать data-атрибуты
    обратите внимание, у второго селекта, который без multiple, нет события unselect, и ничего не удаляется.
    Ответ написан
    5 комментариев
  • Как правильно обратиться к определенному элементу в массиве?

    @Inzeneries
    document.querySelectorAll('.callback-form-block').forEach(div => {
     let input = div.querySelector('input');
     input.oninput = function() {
            let value = input.value;
            let flag = div.getElementsByClassName('validate_flag');
            let label = div.getElementsByClassName('callback_phone_label');
            console.log(flag);
            if(value.length === 18) {
                flag[0].classList.remove('hidden');
                label[0].innerText = 'Ваш номер телефона';
            }
            else {
                flag[0].classList.add('hidden');
                label[0].innerText = 'Введите ваш номер и мы перезвоним';
            }
        }
    })
    Ответ написан
    Комментировать
  • Как устроены виртуальные доски и экраны в онлайн школах?

    Вот тут, возможно, выйдет что-то подчерпнуть https://habr.com/ru/post/533102/
    Ответ написан
    Комментировать
  • Как сделать редирект с /ru на без /ru в htaccess?

    valickSerjGe
    @valickSerjGe
    я Черт
    RewriteRule ^ru(.*)$ /$1? [L,R=301]
    Ответ написан
    Комментировать
  • Как сделать редирект с /ru на без /ru в htaccess?

    @dodo512
    RewriteRule ^ru(?:/(.*))?$ /$1 [L,R=301]
    Добавлять сразу после RewriteEngine On
    Ответ написан
    1 комментарий
  • Есть ли уроки по интеграции Laravel и Яндекс.Кассы?

    Sanes
    @Sanes
    Какие тут могут быть уроки? Вам достаточно знаний Laravel и умение читать документацию Яндекс Кассы.
    Ответ написан
    4 комментария
  • Как решить задачку с ролями и доступами?

    Sanes
    @Sanes
    Spatie Laravel-permission позволяет разделить роли/доступы вдоль и поперёк.
    Ответ написан
    1 комментарий
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Я понимаю, о чем вы пишите и почему. Ваш код работает, т.к. решает поставленные задачи и удовлетворяет потребности ваших клиентов. Имеет ли он право на жизнь? Да, но только в вашем отдельно взятом случае.

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

    Что если вам потребуется сделать блог, в котором нужно иметь комментарии, которые обновляются в режиме реального времени? И комментарии могут содержать HTML, но такой, чтобы ваш сайт не могли взломать?
    А еще комментарии короче 2000 символов по воскресеньям платные. Оплата через Яндекс.Деньги.
    Вы все это делаете, все работает.
    Затем заказчик вам говорит, я хочу запустить такую же систему другу, но с оплатой по понедельникам через WebMoney.
    Вы копируете сайт, переписываете функцию оплаты.
    Дальше ваш заказчик видит, что у друга больше денег, он просит добавить WebMoney к себе.
    Вы опять переписываете код. Добавляете условия.
    Потом к вам приходит друг заказчика и хочет другое оформление. Вы переписываете его функции.
    Затем он просит добавить поиск по названиям записей к себе на сайт. Вы делаете. Буквально на следующий день к вам приходит заказчик и тоже просит поиск, но не только по названиями, но и по телу статей и по комментариям. Вы делаете.
    Затем ваш заказчик видит, что дела у него идут в гору и он просит отменить платные комментарии и сделать просто платные аккаунты для всех. Вы переписываете.
    Тем временем друг просит вас сделать все тоже самое, но с его оформлением.
    Дела у заказчика идут в гору и сайт начинает тормозить. Вы делаете кэширование.
    Внезапно сайт заказчика попадает в топ и нагрузка резко увеличиваете настолько, что один сервер уже не справляется. Вы переносите все на самый мощный, но он его тоже мало.
    Нужно делать горизонтальное масштабирование.
    Для этого нужно переписать все функции, которые работают с базой данных. А их уже больше двухсот. И просто замена не подходит.
    Сайт открывается через раз, заказчик звонит вам каждые 2 часа и спрашивает, как там прогресс.
    И тут вам присылает письмо друг заказчика и говорит, что хочет перейти с MySQL на PostgreSQL.
    И вы понимаете, что вам надо будет переписать еще 300 функций, но на другом сайте. Вы его посылаете, поскольку вы и так в мыле.
    Друг жалуется на вас заказчику. Заказчик, не ставя вас в известность, нанимает другого исполнителя, у которого отваливается челюсть от того, что творится в системе. Он объясняет, что ему нужно будет потратить полгода, чтобы вникнуть в то, чтобы понять ваш код, но он может сделать все тоже самое за 4 месяца, причем для заказчика и его друга так, что это будет расширяемо и поддерживаемо не только им.
    Тем временем, спустя двое суток жизни на кофеине вы героически переписываете все функции заказчика и идете отсыпаться. После суток сна вы обнаруживаете на автоответчике сообщение, что вы уволены. А все потому, что забыли проверить функцию логина.

    А теперь разберем эту историю по частям. Почему же вас уволили?

    Незнание абстракций и шаблонов проектирования привело к тому, что вы вынуждены были поддерживать 2 разных проекта с практически одинаковой логикой.
    Например ORM смог вам помочь поддерживать 2 разные базы данных без каких-либо усилий. Сменить одну базу на другую стоило бы исправления конфигурации, а не переписывания 300 функций.
    Использование фреймворков позволило бы сократить время на реализацию подключений платежных систем. Многие из них имеют готовые реализации.
    Опять же в современных фреймворках, например в той же Doctrine реализован шардинг. В большинстве случаев ваши проблемы свелись к изменению настроек.
    Но даже если бы вы накосячили, то интеграционные тесты не позволили бы попасть говну в продакшен. А если бы оно и попало, ну накосячили вы с тестами тоже, то проблема была бы обнаружена на раннем этапе благодаря "сине-зеленому" развертыванию и она бы не затронула всех пользователей.
    И да, ваш код не прошел внешний аудит.

    Чтобы быть настоящим профессионалом, нужно не только знать, но и уметь применять на практике ООП, популярные фреймворки, шаблоны проектирования, тестирование и средства непрерывной интеграции, а еще пользоваться нормальными IDE и нести ответственность за сделанную работу.

    Когда пишете свой код, почаще задавайте себе вопрос: А если бы это был код для моего кардиостимулятора? Это поможет.
    Это вам для общего развития.
    Ответ написан
    5 комментариев
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    @Plus3x
    c10c573f52694badb316d1aa222bc323.png
    Ответ написан
    Комментировать
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    ТС, надеюсь никому никогда не придется работать с тобой в команде и поддерживать твой код. Одно дело не знать, спрашивать и прислушиваться, другое дело гнуть свою кривую линию.
    Ответ написан
    4 комментария