Подборка из 10 фишек JavaScript
Т.к. React построен на основе чистого JS, то с помощью этих фишек можно будет писать более качественный код на этом фреймворке:
https://tprg.ru/sAOb
#javascript #react
Т.к. React построен на основе чистого JS, то с помощью этих фишек можно будет писать более качественный код на этом фреймворке:
https://tprg.ru/sAOb
#javascript #react
Учебники по веб-разработке
Сайт, на котором собрана теория по многим темам веб-разработки — JS, PHP, Node.js, Vue.js, React.js, Laravel, WordPress, AJAX:
https://tprg.ru/vesT
#javascript #php
Сайт, на котором собрана теория по многим темам веб-разработки — JS, PHP, Node.js, Vue.js, React.js, Laravel, WordPress, AJAX:
https://tprg.ru/vesT
#javascript #php
Онлайн-инструмент, с помощью которого можно сгенерировать CSS-стиль для Material Design компонента:
https://tprg.ru/xV5L
#фронтенд #css
https://tprg.ru/xV5L
#фронтенд #css
Баг у Let's encrypt. Возможно, вам нужно перевыпустить сертификат
У Let's encrypt обнаружился баг в коде CAA, который появлялся во время выпуска сертификата. Баг уже исправлен, но некоторые сертификаты будут отозваны уже завтра, 4 марта.
Подробности бага описаны на официальном форуме: https://tprg.ru/aCzK
А проверить, нужно ли перевыпускать сертификат для своего домена можно здесь: https://tprg.ru/Adix
#безопасность
У Let's encrypt обнаружился баг в коде CAA, который появлялся во время выпуска сертификата. Баг уже исправлен, но некоторые сертификаты будут отозваны уже завтра, 4 марта.
Подробности бага описаны на официальном форуме: https://tprg.ru/aCzK
А проверить, нужно ли перевыпускать сертификат для своего домена можно здесь: https://tprg.ru/Adix
#безопасность
Чистый PHP
Репозиторий, в которой собраны принципы написания читабельного, переиспользуемого и пригодного для рефакторинга кода, адаптированные для PHP:
https://tprg.ru/VHyI
Взяты из книги «Чистый код» Роберта Мартина.
#php
Репозиторий, в которой собраны принципы написания читабельного, переиспользуемого и пригодного для рефакторинга кода, адаптированные для PHP:
https://tprg.ru/VHyI
Взяты из книги «Чистый код» Роберта Мартина.
#php
Подборка из 5 бесплатных курсов для IT-Администраторов от Microsoft
1. Microsoft 365: модернизация корпоративного развертывания с использованием Windows 10 и Office 365: https://tprg.ru/A2Hu
2. Администрирование ресурсов инфраструктуры в Azure: https://tprg.ru/J4W3
3. Управление ресурсами в Azure: https://tprg.ru/FO4w
4. Основы Microsoft 365: https://tprg.ru/kHtR
5. Администрирование контейнеров в Azure: https://tprg.ru/Z7Ul
#devops
1. Microsoft 365: модернизация корпоративного развертывания с использованием Windows 10 и Office 365: https://tprg.ru/A2Hu
2. Администрирование ресурсов инфраструктуры в Azure: https://tprg.ru/J4W3
3. Управление ресурсами в Azure: https://tprg.ru/FO4w
4. Основы Microsoft 365: https://tprg.ru/kHtR
5. Администрирование контейнеров в Azure: https://tprg.ru/Z7Ul
#devops
Paint времён Windows 95 реализовали на JavaScript
Для тех, кто хочет поностальгировать, порисовать можно прямо в браузере: https://jspaint.app/
25 лет назад можно было работать только с BMP, PCX или MSP форматами файлов (вы, наверное, даже и не знаете два последних!), а также сохранять и загружать цветовые палитры. Позже последнюю функцию убрали, зато добавили поддержку популярных и сейчас форматов вроде JPEG и PNG.
Интерфейс даже в Windows XP оставался таким же, просто в другом цвете. В то время Paint научился работать через GDI+ с большинством современых типов изображений, но всё ещё без поддержки прозрачности.
Значительные изменения пришли с Windows 7 и Ribbon-интерфейсом. А из десятки Paint вообще хотят убрать и перенести в Windows Store.
Для тех, кто хочет поностальгировать, порисовать можно прямо в браузере: https://jspaint.app/
25 лет назад можно было работать только с BMP, PCX или MSP форматами файлов (вы, наверное, даже и не знаете два последних!), а также сохранять и загружать цветовые палитры. Позже последнюю функцию убрали, зато добавили поддержку популярных и сейчас форматов вроде JPEG и PNG.
Интерфейс даже в Windows XP оставался таким же, просто в другом цвете. В то время Paint научился работать через GDI+ с большинством современых типов изображений, но всё ещё без поддержки прозрачности.
Значительные изменения пришли с Windows 7 и Ribbon-интерфейсом. А из десятки Paint вообще хотят убрать и перенести в Windows Store.
jspaint.app
JS Paint
Classic MS Paint in the browser, with extra features
Влияют ли теги H1 на ранжирование в Google?
Когда SEO только зарождался, часто можно было слышать о двух тактиках продвижения страниц своего сайта:
— «Поместите заголовок страницы в теги H1»;
— «Используйте только один заголовок H1 на страницу».
Сейчас вроде как Google более комплексно анализирует контент на странице, и эти правила уже не так и важны. Или нет?
Эксперт по SEO решил провести эксперимент и получить ответ на этот вопрос. Вот, что у него получилось:
https://tprg.ru/TZhW
#seo
Когда SEO только зарождался, часто можно было слышать о двух тактиках продвижения страниц своего сайта:
— «Поместите заголовок страницы в теги H1»;
— «Используйте только один заголовок H1 на страницу».
Сейчас вроде как Google более комплексно анализирует контент на странице, и эти правила уже не так и важны. Или нет?
Эксперт по SEO решил провести эксперимент и получить ответ на этот вопрос. Вот, что у него получилось:
https://tprg.ru/TZhW
#seo
В нашем конкурсе Tproger Gamify появилось ещё два задания: за прохождение тестов и прочтение статей. До подведения итогов осталась ещё неделя, так что вы тоже можете довести дело до конца.
Успевайте набрать баллы и поучаствовать в розыгрыше нашего мерча: https://tprg.ru/gamify21
Успевайте набрать баллы и поучаствовать в розыгрыше нашего мерча: https://tprg.ru/gamify21
Hовости о PostgreSQL 12
В этом видеодокладе Олег Бартунов, один из ведущих разработчиков PostgreSQL, рассказывает, что нового появилось в PostgreSQL 12 с упором на понимание некоторых важных фич.
Презентация к докладу: https://tprg.ru/JcDE
Также смотрите — большой справочник по конфигурации PostgreSQL
#бэкенд #базыданных #postgresql
В этом видеодокладе Олег Бартунов, один из ведущих разработчиков PostgreSQL, рассказывает, что нового появилось в PostgreSQL 12 с упором на понимание некоторых важных фич.
Презентация к докладу: https://tprg.ru/JcDE
Также смотрите — большой справочник по конфигурации PostgreSQL
#бэкенд #базыданных #postgresql
YouTube
Hовости о PostgreSQL 12 / Олег Бартунов (Postgres Professional)
Приглашаем на Saint HighLoad 2023, которая пройдет 26 и 27 июня 2023 в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: http://bit.ly/3JZHEg2
--------
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
Программа, подробности и билеты по ссылке: http://bit.ly/3JZHEg2
--------
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
HTTP/3 уже почти здесь. Поддержка в популярных браузерах реализована, но выключена по умолчанию, разработчики Nginx обещают присоединиться к веселью уже в текущей ветке 1.17, а CloudFlare в своём стиле просто добавила одну галку — тыкнул и всё работает.
Поиграться и провести тесты можно уже сейчас:
Собираем Nginx по инструкции (https://tprg.ru/yTiU) или берём готовый docker image (https://tprg.ru/1Rkr).
Выпускаем сертификат через Let's Encrypt, правим конфиги (https://tprg.ru/QbLu), запускаем контейнер.
Проверяем как всё работает:
— В онлайне: https://www.http3check.net/
— Через curl (собираем из исходников https://tprg.ru/Qqe2 или берём готовый контейнер https://tprg.ru/zOJe)
Включаем в браузерах:
— Chrome: chrome://flags/#enable-quic
— Firefox: about:config => network.http.http3.enabled
Мы должны получить уменьшение latency и в целом ускорение, потому что в теории в HTTP/3:
– Быстрее handshake (1 или 0-RTT)
— Нет проблемы с HOL (https://tprg.ru/Z6lF)
— Переключение сети проиходит без потерь
Узнать больше как работает HTTP/3 можно тут, например: https://tprg.ru/TmEi
Поиграться и провести тесты можно уже сейчас:
Собираем Nginx по инструкции (https://tprg.ru/yTiU) или берём готовый docker image (https://tprg.ru/1Rkr).
Выпускаем сертификат через Let's Encrypt, правим конфиги (https://tprg.ru/QbLu), запускаем контейнер.
Проверяем как всё работает:
— В онлайне: https://www.http3check.net/
— Через curl (собираем из исходников https://tprg.ru/Qqe2 или берём готовый контейнер https://tprg.ru/zOJe)
Включаем в браузерах:
— Chrome: chrome://flags/#enable-quic
— Firefox: about:config => network.http.http3.enabled
Мы должны получить уменьшение latency и в целом ускорение, потому что в теории в HTTP/3:
– Быстрее handshake (1 или 0-RTT)
— Нет проблемы с HOL (https://tprg.ru/Z6lF)
— Переключение сети проиходит без потерь
Узнать больше как работает HTTP/3 можно тут, например: https://tprg.ru/TmEi
Вдогонку к посту про HTTP/3
Команда Node.js сообщает, что экспериментальную поддержку QUIC (это транспортный протокол, лежащий в основе HTTP/3) для всех разработчиков добавят уже в Node.js v14, а полноценная поддержка QUIC и HTTP/3 появится в Node.js v15
Подробнее : https://www.nearform.com/blog/a-quic-update-for-node-js/
По ссылке также есть код для реализации QUIC клиента и сервера, чтобы вы могли сами всё попробовать и провести замеры.
Команда Node.js сообщает, что экспериментальную поддержку QUIC (это транспортный протокол, лежащий в основе HTTP/3) для всех разработчиков добавят уже в Node.js v14, а полноценная поддержка QUIC и HTTP/3 появится в Node.js v15
Подробнее : https://www.nearform.com/blog/a-quic-update-for-node-js/
По ссылке также есть код для реализации QUIC клиента и сервера, чтобы вы могли сами всё попробовать и провести замеры.
Если ещё не знали, то у DigitalOcean есть весьма удобный конфигуратор для Nginx, который покрывает большинство стандартных кейсов:
https://tprg.ru/paQG
#бэкенд #nginx #инструменты
https://tprg.ru/paQG
#бэкенд #nginx #инструменты
Поговорим немного о JIT в PHP 8
Новая мажорная версия PHP ожидается уже в конце 2020 года, так что сейчас ведётся активная разработка. Что-то может поменяться перед релизом, но в целом общий список изменений можно глянуть тут, например: https://tprg.ru/Ocoy
Одна из наиболее обсуждаемых фишек — Just In Time (JIT) компилятор. Он будет реализован как часть расширения Opcache. Суть в том, что некоторые участки кода будут компилироваться в инструкции CPU на лету. Это значит, что в некоторых случаях можно будет пропустить виртуальную машину Zend и выполнить код напрямую в процессоре.
На практике же ожидать серьёзного прироста производительности не стоит, потому что основной затык в PHP-коде обычно не в CPU, а в потоках ввода-вывода. Ускорение инструкций не ускорит обращения к диску или сетевые запросы.
Больше подробностей можно глянуть тут: https://tprg.ru/f67m
Ждём первые сборки, будем проверять на практике.
#бэкенд #php
Новая мажорная версия PHP ожидается уже в конце 2020 года, так что сейчас ведётся активная разработка. Что-то может поменяться перед релизом, но в целом общий список изменений можно глянуть тут, например: https://tprg.ru/Ocoy
Одна из наиболее обсуждаемых фишек — Just In Time (JIT) компилятор. Он будет реализован как часть расширения Opcache. Суть в том, что некоторые участки кода будут компилироваться в инструкции CPU на лету. Это значит, что в некоторых случаях можно будет пропустить виртуальную машину Zend и выполнить код напрямую в процессоре.
На практике же ожидать серьёзного прироста производительности не стоит, потому что основной затык в PHP-коде обычно не в CPU, а в потоках ввода-вывода. Ускорение инструкций не ускорит обращения к диску или сетевые запросы.
Больше подробностей можно глянуть тут: https://tprg.ru/f67m
Ждём первые сборки, будем проверять на практике.
#бэкенд #php
This media is not supported in your browser
VIEW IN TELEGRAM
GoScan — сканер сети, основанный на nmap, но с большим уровнем абстракции. Умеет в автодополнение команд.
Обнаружение хостов, сканер портов, поиск запущенных сервисов через интеграции с другими утилитами — вот это всё.
Но самое интересное, что GoScan хорошо работает в нестабильном окружении с потерями связи. Все процессы запускаются в фоне и сохраняют состояние в SQLite. Если что-то пойдёт не так, можно будет продолжить с предыдущей точки или вообще получить результаты асинхронно.
Подробнее на гитхабе: https://github.com/marco-lancini/goscan
#сеть
Обнаружение хостов, сканер портов, поиск запущенных сервисов через интеграции с другими утилитами — вот это всё.
Но самое интересное, что GoScan хорошо работает в нестабильном окружении с потерями связи. Все процессы запускаются в фоне и сохраняют состояние в SQLite. Если что-то пойдёт не так, можно будет продолжить с предыдущей точки или вообще получить результаты асинхронно.
Подробнее на гитхабе: https://github.com/marco-lancini/goscan
#сеть
Вышла новая версия Memcached 1.6.0
Авторы говорят, что добавили много крутых фич и исправили кучу ошибок, которые надо было давно пофиксить: https://github.com/memcached/memcached/wiki/ReleaseNotes160
Если кто уже пробовал — поделитесь в комментариях, как работает и есть ли ускорение или снижения загрузку CPU в этой версии.
Авторы говорят, что добавили много крутых фич и исправили кучу ошибок, которые надо было давно пофиксить: https://github.com/memcached/memcached/wiki/ReleaseNotes160
Если кто уже пробовал — поделитесь в комментариях, как работает и есть ли ускорение или снижения загрузку CPU в этой версии.
Где и как мониторить скорость загрузки веб-сайта, чтобы понимать как можно всё улучшить — годная подборка инструментов от команды Tproger
https://tproger.ru/articles/tproger-performance-monitoring-and-improving-tools/
#мониторинг #инструменты
https://tproger.ru/articles/tproger-performance-monitoring-and-improving-tools/
#мониторинг #инструменты
Сегодня рассказываем про директиву stale-while-revalidate HTTP-заголовка Cache-Control.
Суть в том, что клиент может использовать уже «протухшую» версию файла из кэша, а в это время запросить новую версию в фоне. Вроде как и ответ на запрос можно получить мгновенно и обновление кэша тоже происходит, просто с задержкой.
Вот пример от ребят из Google:
Такой заголовок они добавили для скрипта gpt.js, который используется для показа рекламы. Если файл запрашивается между 15 и 60 минутами, после того как он попал в кэш, будет использоваться устаревшая версия, но в фоне скрипт будет обновлён и закэширован для использования в будущем. Добавление заголовка ускорило начальную загрузку скрипта на 2% и на 0,5% увеличило доход с рекламы.
Директива stale-while-revalidate не входит в основной стандарт, однако уже поддерживается в FF, Chrome и Edge (в целом 67% юзеров по миру на момент публикации поста).
#http #браузеры
Суть в том, что клиент может использовать уже «протухшую» версию файла из кэша, а в это время запросить новую версию в фоне. Вроде как и ответ на запрос можно получить мгновенно и обновление кэша тоже происходит, просто с задержкой.
Вот пример от ребят из Google:
cache-control: private, max-age=900, stale-while-revalidate=3600Такой заголовок они добавили для скрипта gpt.js, который используется для показа рекламы. Если файл запрашивается между 15 и 60 минутами, после того как он попал в кэш, будет использоваться устаревшая версия, но в фоне скрипт будет обновлён и закэширован для использования в будущем. Добавление заголовка ускорило начальную загрузку скрипта на 2% и на 0,5% увеличило доход с рекламы.
Директива stale-while-revalidate не входит в основной стандарт, однако уже поддерживается в FF, Chrome и Edge (в целом 67% юзеров по миру на момент публикации поста).
#http #браузеры
This media is not supported in your browser
VIEW IN TELEGRAM
Сколько раз вы писали sl вместо ls для получения списка файлов в консоли?
Предлагаем делать опечатки стильно:
(ну или какой там у вас пакетный менеджер, утилита есть почти под все платформы)
Теперь к вам приедет паровозик (Steam Locomotive), если вы снова ошибётесь. Разные опции дают разный результат, можно экспериментировать.
#консоль
Предлагаем делать опечатки стильно:
sudo apt-get install sl(ну или какой там у вас пакетный менеджер, утилита есть почти под все платформы)
Теперь к вам приедет паровозик (Steam Locomotive), если вы снова ошибётесь. Разные опции дают разный результат, можно экспериментировать.
#консоль