• Какой плагин для Lazyload вы используете?

    neuotq
    @neuotq
    Прокрастинация
    На мой взгляд здесь описано лучшее решение. Советую прочитать все статью, там же можно найти готовые сниппеты кода, а так же ссылки на полифилы для поддержки старых браузеров и ссылки на некоторые библиотеки.
    Ответ написан
    Комментировать
  • Какой плагин для Lazyload вы используете?

    vadimkot
    @vadimkot Куратор тега CSS
    https://github.com/aFarkas/lazysizes

    В плане seo гугл бот точно видит картинки - можно убедиться в search console в сканирование->Просмотреть как Googlebot. Яндекс нужно протестировать аналогично гуглу в вебмастере.

    В статье гугла по ссылке Александр Талалаев есть раздел Lazy loading libraries
    Ответ написан
    Комментировать
  • Какой плагин для Lazyload вы используете?

    alex_shevch
    @alex_shevch Автор вопроса
    Frontend Developer
    Спустя два года сам отвечу на свой вопрос – не нужны никакие плагины.
    На мой взгляд, лучшее решение – это использовать атрибут loading="lazy" на тегах img.
    Мало того, что это внедряется мгновенно и не требует доп библиотек, так ещё мы не просто тупо подгружаем изображения по ходу скролла, а перекладываем это на плечи браузера, который сам решает, в какой момент ему было бы оптимальнее его загрузить.

    Браузерная поддержка неплохая - https://caniuse.com/#feat=loading-lazy-attr
    Ответ написан
    5 комментариев
  • Telegram самоподписной сертификат для IP?

    theblackpost
    @theblackpost Автор вопроса
    В общем, решил.
    Итак, мб кому-то пригодится нормальная инструкция для IP:

    openssl req -newkey rsa:2048 -sha256 -nodes -x509 -days 365 \
    -keyout YOURPRIVATE.key \
    -out YOURPUBLIC.crt \
    -subj "/C=RU/ST=Saint-Petersburg/L=Saint-Petersburg/O=Example Inc/CN=IP_СЕРВЕРА"


    Дальше, конвертим в .pem :

    openssl x509 -in YOURPUBLIC.crt -out YOURPUBLIC.pem -outform PEM


    Копируем файлы в папку с другими ключами: (можно не копировать,, но указать свой путь в конфиге Apache)
    cp YOURPUBLIC.crt /etc/ssl/certs/YOURPUBLIC.crt
    cp YOURPRIVATE.key /etc/ssl/private/YOURPRIVATE.key


    В настройки (для apache) /etc/apache2/sites-available/default-ssl.conf :

    <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
    ServerAdmin your_email@example.com
    ServerName IP сервера
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/YOURPUBLIC.crt
    SSLCertificateKeyFile /etc/ssl/private/YOURPRIVATE.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch "MSIE [2-6]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    </VirtualHost>
    </IfModule>


    Создать новый сниппет Apache в каталоге etc/apache2/conf-available.

    Рекомендуется указать в названии файла его назначение (к примеру, ssl-params.conf):

    sudo nano /etc/apache2/conf-available/ssl-params.conf


    # from https://cipherli.st/
    # and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLProtocol All -SSLv2 -SSLv3
    SSLHonorCipherOrder On
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
    Header always set X-Frame-Options DENY
    Header always set X-Content-Type-Options nosniff
    # Requires Apache >= 2.4
    SSLCompression off
    SSLSessionTickets Off
    SSLUseStapling on
    SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
    SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"


    Настроечки для Apache:

    sudo a2enmod ssl
    sudo a2enmod headers
    sudo a2ensite default-ssl


    Проверяем,
    sudo apache2ctl configtest
    если ок, то будет что-то типо:
    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
    Syntax OK


    Ребутаем.
    service apache2 restart

    Если ок, то открываем c https в браузере.

    Ну а дальше скармливаем сертификат ОБЯЗАТЕЛЬНО! с @ телеграм боту

    curl -F "url=https://IP_МОЕГО_СЕРВЕРА/tg/index.php" -F "certificate=@YOURPUBLIC.pem" "https://api.telegram.org/МОЙ_ТОКЕН/setwebhook"


    Проверяем:

    https://api.telegram.org/МОЙ_ТОКЕН/getWebhookInfo
    Ответ написан
    Комментировать
  • Почему возникает ошибка Syntax error or access violation: 1055 Expression #2?

    AlekseyNikulin
    @AlekseyNikulin
    недочеловек
    yii2-prog11. Ручка строгости вашего MySQL сервера выкручена на максимум, поэтому в группировку должны входить все поля. Либо оборачивайте их в any_value() . Но это уже не есть хорошо.
    Ответ написан
    Комментировать
  • Где найти dmg свежего Microsoft Remote Desktop?

    a13xsus
    @a13xsus Автор вопроса
    Lazy developer
    mac.softpedia.com/get/Utilities/Microsoft-Remote-D...

    Удалось скачать отсюда. Там с зеркала доступны Microsoft Remote Desktop 8.0.31 и 8.2.21 Beta. Бета распаковалась, запустилась и корректно обновилась до 8.2.22.
    Ответ написан
    Комментировать
  • Глючить Windows 10. Как исправить?

    @shurupko
    Сталкивался я с такой бедой. причину помогла найти софтинка https://www.resplendence.com/latencymon
    Смысл в том что была железка которая генерировала большое количество аппаратных прерываний и это приводила к ужасным лага, в диспетчере нагрузки не было. У меня был виноват старенький жесткий диск который был подключен как второй. программа показал какое устройство генерирует самое больше количество прерываний и после его удаления проблемы ушли.
    Ещё был один случай на ноуте. почти мертвые конденсаторы питания процессора. помогла замена.
    Ответ написан
    3 комментария
  • Как сделать отправку POST запроса данных формы и переход по URL на PHP?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    После выполнения file_get_contents() смотрите значение переменной $http_response_header
    В ответе платёжной системы будет заголовок с Location: *****. Это адрес дальнейшей переадресации, который вам и нужен.

    $result = file_get_contents( ...
    var_dump($http_response_header);
    Ответ написан
    Комментировать
  • Как сделать отправку POST запроса данных формы и переход по URL на PHP?

    @Eugene-Kei
    Ваш код pay.php создает переменную $result и никак с ней не работает.
    В платежной системе должна быть возможность отправить пользователя на указанный вами адрес, после того, как он оплатит или откажется платить.
    1. Вы отправляете пользователя на конкретную страницу оплаты, на сайте платежной системы.
    2. Пользователь оплачивает или не оплачивает.
    3. Платежная система перенаправляет его на указанный в настройках адрес, на вашем сайте.

    Сомневаюсь, что вы сможете из php совершить платеж от имени пользователя. Любая платежная система производит ряд проверок, которые вы вряд ли сможете обойти.

    А редирект из php делается отправкой соответствующего заголовка.
    header("Location: http://www.example.com/");
    www.php.net/manual/ru/function.header.php
    Ответ написан
    Комментировать
  • Ошибка на сервере "Отключите использование HOSTS". Как это сделать?

    Amstor
    @Amstor
    Работаю в wap-e
    1. Открыть cmd.exe (win + r)
    2. Выполнить там команду:
    attrib.exe -s -r -h -a C:\Windows\system32\drivers\etc\hosts


    Если это не помогло, значит у вас скорее всего запущено антивирусное ПО, которое блокирует файл самостоятельно. В этом случаем можно в настройках ПО добавить исполняемый файл openserver в доверенные.
    Ответ написан
    2 комментария
  • Системный администратор в колледже. Вопросы об особенностях работы в учебном заведении?

    ipswitch
    @ipswitch
    IT-инженер
    Какие существуют особенности работы системного администратора в колледже (или ПТУ, школе)? Может, кто-нибудь работал или работает на сей должности?


    Контингент и его тупость.
    Тупость всех (и вышестоящих, и подчинённых, и "конечных пользователей"), кто Вас окружает. Феноменальная тупость.

    Ограниченность ресурсов.
    Выбить финансирование на покупку чего бы то ни было кроме картриджей и канц.товаров практически нереально.
    Сдох жёсткий диск, целая история заказать новый. Зачастую придётся брать б/у или потрошить мамонтов в поисков запчастей.

    Устаревшее и уставшее оборудование.
    Приготовиться к дохнущим блокам питания (БП) и жёстким дискам. Это 75% того, что у Вас будет ломаться из "железа". Ещё 10% на кулеры и перегрев, 5% на вспухшие конденсаторы мат.платы и оборванные провода. 5% на клавиатуры и мыши. Остальное - статистическая погрешность.

    Широкий спектр задач.
    Крайне широкий. Как повезёт. В идеальном для Вас случае этого будет минимум. Так, по мелочи, тут на телефон WhatsApp поставить, тут телевизор посоветовать какой купить. А вот в худшем... от простой помощи в оформлении документов ("не подскажете как в Ворде межстрочный интервал увеличить?") до перевода с английского (немецкого, испанского, японского) и сведения бухгалтерских балансов. В редких случаях потребуется также рисование в фотошопе, создание web-сайтов на HTML и монтирование видео.

    Сколько обычно в среднем длиться рабочий день?

    Как договоритесь. От пары часов 1-2 раза в неделю до фуллтайма.

    Какие подводные камни?

    • Вы крайний.
    • От Вас всем чего-то НАДО.
    • Мало платят.
    • Широкий ассортимент задач и запросов.
    • Много brainfuck'a в прямом смысле.
    • Могут проиметь все мозги кадровики бюрократией - справкой о несудимости, из псих.диспансера, медкнижкой, флюорографией даже если "к деткам" вы не подходите.


    Задавайте вопросы.
    Ответ написан
    4 комментария
  • Где собраны образцы топовых лендингов?

    @Zbiten
    Ответ написан
    Комментировать
  • Можно сделать alert со звуком на JS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Получите, распишитесь (проверено!):
    <script>
    var oa=window.alert;
    startFrom=10; //sec
    loaded=false;
    
      var audioAlert = new Audio("http://www.mult.ru/rings/night_elf_track.mp3");
      audioAlert.currentTime = startFrom;
      audioAlert.addEventListener('loadeddata', function() {
        if(audioAlert.readyState >= 2) {
            loaded=true;
        }
      });
    
    window.alert = function (message) {
      if (loaded) {
          if(audioAlert.paused) {
             audioAlert.play();
             oa&oa(message);
             audioAlert.pause();
             audioAlert.currentTime = startFrom;
          }
      } else {oa('not loaded!');}
    };
    </script>
    <div onclick=alert('hi');>Жми!</div>
    Ответ написан
    Комментировать
  • Что нужно иметь и знать в фреймворке React джуну?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Хороший кандидат на должность Junior React Developer, по моему мнению, должен соответствовать следующему перечню требований:
    1. Хорошее знание JavaScript. В React разработке используется ES6 и большинство экспериментальных фич еще не вошедших в стандарт.
    2. Хорошее знание HTML и CSS. Кроссбраузерная верстка. Так же, хорошо иметь представление о том, что такое css-in-js.
    3. Web APIs. Умение работать с объектной моделью документа(DOM) и все эти XMLHttpRequest, localstorage, cookie, history и прочее.
    4. Хорошее знание API React. Вы должны хорошо знать React, знать его возможности, понимать основные концепции и уметь ответить на большинство типовых вопросов. Для этого достаточно хорошо изучить документацию, разобрать пару типовых проектов на github и попрактиковаться. Много полезной информации, приёмов и идей можно подчерпнуть из тематических статей и докладов. Так же, на просторах интернета можно найти подборки типовых вопросов, часто задаваемых на собеседованиях. В англоязычном сегменте их больше.
    5. Redux. Уверенное знание API. API библиотеки до боли пост. Знать, что такое промежуточное ПО и зачем оно. Понимать базовые концепции архитектуры Flux. Все это есть в документации и многочисленных курсах.
    6. Умение работать с менеджером пакетов npm на базовом уровне.
    7. Node.js. Хотя бы уметь написать простейший express/koa сервер, который будет отдавать ваше приложение и статику.
    8. Webpack. Базовые знания.
    9. Умение работать с git. Хотя бы знать и уметь примерять команды: init, clone, add, commit, push, pull, merge, checkout.
    10. Иммутабельность. Четкое понимание зачем это надо. Знание приемов иммутабельного изменения структур данных. Это есть в официальном туториале React.
    11. Статическая типизация TypeScrpt/Flow. Для начала хватит самых основ и способности понимать чужой код.
    12. Функциональное программирование. Хватит знаний полученных в процессе изучения JavaScript, а так же не помешает знать, что такое каррирование, чистые функции и рекурсия.
    13. Базовые концепции ООП. Хватит знаний полученных в рамках изучения JavaScript.
    14. Асинхронный код. Понимать как его правильно организовывать. Promise, async/await.
    15. Сетевые протоколы передачи данных. Вполне хватит базовых знаний о http/https, о том, что такое заголовки и какие они бывают. Хорошо знать о том, что такое websocket.
    16. За плечами должен быть хотя бы один учебный проект на React. Хватит типового тестового задания.
    Примеры таких заданий: 1, 2, 3(сайт может быть не доступен на территории РФ, советую отрыть через VPN и посмотреть), 4, 5. Если подобного проекта у вас нет, то будьте готовы, что потенциальный работодатель предложит вам выполнить тестовое задание и только по его результату вас, может быть, пригласят на техническое интервью. Если напишите хорошо, вас скорей всего пригласят.
    17. Желателен опыт создания типовых UI элементов. Например, чтобы не вызывало трудностей написать простой кастомный чекбокс. Куча примеров реализаций типовых элементов есть на codepen.

    Это не красный минимум знаний и во многих компаниях требования могут быть значительно ниже. Но соответствие вышеперечисленым пунктам будет хорошим аргументом для работодателя остановить свой выбор именно на вашей кандидатуре.

    Похожий вопрос.
    Ответ написан
    18 комментариев
  • Можно сделать alert со звуком на JS?

    modestguy
    @modestguy
    full-stack web developer
    Судя по всему так:
    <audio id="xyz" src="whatever_you_want.mp3" preload="auto"></audio>


    {
        document.getElementById('xyz').play();
        alert("Thank you!");
    }
    Ответ написан
    2 комментария