Forwarded from FrontEndDev
Развлекаемся с Gamepad API
О том, какие возможности предоставляет Gamepad API + реализация простой игры, управляемой с геймпада.
https://alvaromontoro.com/blog/68044/playing-with-the-gamepad-api
О том, какие возможности предоставляет Gamepad API + реализация простой игры, управляемой с геймпада.
https://alvaromontoro.com/blog/68044/playing-with-the-gamepad-api
О «критически важных» обновлениях Angular 17 / Хабр
https://habr.com/ru/articles/771494/
https://habr.com/ru/articles/771494/
Хабр
О «критически важных» обновлениях Angular 17
Хочу высказать непопулярное мнение относительно обновлений в библиотеках и фреймворках. Иногда новшества вместе с новизной и удобствами несут дополнительное усложнение и побочные эффекты, которые...
Forwarded from Библиотека PHP программиста 👨🏼💻👩💻
Генерация аватаров с инициалами на PHP
Для мобильного приложения я занимаюсь фронтенд-разработкой, и дизайн включает в себя множество аватаров. К сожалению, у нас нет аватаров наших пользователей. К счастью, у нас есть их имена, и я узнал из Outlook и Trello, что можно сделать отличные аватары с инициалами пользователя. В этом посте я покажу, как это сделать с помощью PHP.
https://tqdev.com/2022-generate-avatars-initials-php
👉 @php_lib
Для мобильного приложения я занимаюсь фронтенд-разработкой, и дизайн включает в себя множество аватаров. К сожалению, у нас нет аватаров наших пользователей. К счастью, у нас есть их имена, и я узнал из Outlook и Trello, что можно сделать отличные аватары с инициалами пользователя. В этом посте я покажу, как это сделать с помощью PHP.
https://tqdev.com/2022-generate-avatars-initials-php
👉 @php_lib
Forwarded from Книги для Системного Администратора
This media is not supported in your browser
VIEW IN TELEGRAM
Что происходит, когда вы вводите в браузер URL-адрес?
Давайте рассмотрим этот процесс пошагово.
Шаг 1. Пользователь вводит в браузер URL и нажимает Enter. Первое, что нам нужно сделать, это преобразовать URL в IP-адрес. Сопоставление обычно хранится в кэше, поэтому браузер ищет IP-адрес в нескольких уровнях кэша: кэше браузера, кэше ОС, локальном кэше и кэше провайдера. Если браузер не смог найти сопоставление в кэше, он обращается к DNS (Domain Name System) resolver для его разрешения.
Шаг 2. Если IP-адрес не удается найти ни в одном из кэшей, браузер обращается к DNS-серверам для выполнения рекурсивного DNS-поиска, пока IP-адрес не будет найден.
Шаг 3. Теперь, когда у нас есть IP-адрес сервера, браузер посылает на него HTTP-запрос. Для безопасного доступа к ресурсам сервера всегда следует использовать протокол HTTPS. Сначала браузер устанавливает TCP-соединение с сервером с помощью трехстороннего рукопожатия TCP. Затем он посылает открытый ключ клиенту. Клиент использует открытый ключ для шифрования сеансового ключа и отправляет его серверу. Сервер использует закрытый ключ для расшифровки сеансового ключа. Теперь клиент и сервер могут обмениваться зашифрованными данными с использованием сеансового ключа.
Шаг 4. Сервер обрабатывает запрос и отправляет ответ. Для успешного ответа код состояния равен 200. Ответ состоит из трех частей: HTML, CSS и Javascript. Браузер анализирует HTML и формирует дерево DOM. Он также анализирует CSS и генерирует дерево CSSOM. Затем он объединяет дерево DOM и дерево CSSOM в дерево рендеринга. Браузер отображает содержимое и показывает его пользователю.
👉 @i_odmin_book
Давайте рассмотрим этот процесс пошагово.
Шаг 1. Пользователь вводит в браузер URL и нажимает Enter. Первое, что нам нужно сделать, это преобразовать URL в IP-адрес. Сопоставление обычно хранится в кэше, поэтому браузер ищет IP-адрес в нескольких уровнях кэша: кэше браузера, кэше ОС, локальном кэше и кэше провайдера. Если браузер не смог найти сопоставление в кэше, он обращается к DNS (Domain Name System) resolver для его разрешения.
Шаг 2. Если IP-адрес не удается найти ни в одном из кэшей, браузер обращается к DNS-серверам для выполнения рекурсивного DNS-поиска, пока IP-адрес не будет найден.
Шаг 3. Теперь, когда у нас есть IP-адрес сервера, браузер посылает на него HTTP-запрос. Для безопасного доступа к ресурсам сервера всегда следует использовать протокол HTTPS. Сначала браузер устанавливает TCP-соединение с сервером с помощью трехстороннего рукопожатия TCP. Затем он посылает открытый ключ клиенту. Клиент использует открытый ключ для шифрования сеансового ключа и отправляет его серверу. Сервер использует закрытый ключ для расшифровки сеансового ключа. Теперь клиент и сервер могут обмениваться зашифрованными данными с использованием сеансового ключа.
Шаг 4. Сервер обрабатывает запрос и отправляет ответ. Для успешного ответа код состояния равен 200. Ответ состоит из трех частей: HTML, CSS и Javascript. Браузер анализирует HTML и формирует дерево DOM. Он также анализирует CSS и генерирует дерево CSSOM. Затем он объединяет дерево DOM и дерево CSSOM в дерево рендеринга. Браузер отображает содержимое и показывает его пользователю.
👉 @i_odmin_book
Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга
https://habr.com/ru/articles/778316/
https://habr.com/ru/articles/778316/
Новости с книжных полок: нужно ли программистам читать книги
https://habr.com/ru/companies/sberbank/articles/778310/
https://habr.com/ru/companies/sberbank/articles/778310/
Forwarded from ServerAdmin.ru
У меня дома есть NAS и на всех компах и ноутах подключены сетевые папки. Домашние слабо представляют, как всё это работает. На смартфоне использую TotalCommander с плагином для доступа к тем же сетевым папкам. Жена наверное через TG или VK перекидывает файлы. По-другому вряд ли умеет. Детям это пока не надо.
Есть простое и удобное open source решение для этого вопроса - LocalSend. Поддерживает все операционные системы, в том числе на смартфонах. Это небольшое приложение, которое запускается на определённом порту (53317), принимает входящие соединения и с помощью нескольких методов (описание протокола, в основе поиска Multicast UDP, если не помогает, то POST запрос на все адреса локальной сети) осуществляет поиск таких же серверов в локальной сети. Передача данных осуществляется по протоколу HTTP.
На практике всё это работает автоматически. Приложение под Windows можно поставить, к примеру, через wingwet или скачать portable версию. На смартфоне ставим через Google Play, F-Droid или просто качаем apk. Работает всё в локальной сети, без необходимости каких-то внешних сервисов в интернете. Запускаем на обоих устройствах приложение, они сразу же находят друг друга. Можно передавать файлы. При этом можно на том же компе настроить такой режим, чтобы он автоматом принимал файлы со смартфона и складывал в определённую директорию.
Каждое устройство в приложении можно обозвать своим именем и передавать файлы между ними. Не знаю, где это в работе может пригодиться, но для дома очень удобно. В первую очередь простотой и поддержкой всех платформ. В программе хороший русский язык, пользоваться просто и понятно.
Мне иногда надо сыну передать со своего смартфона из родительского чата информацию от учителя с пояснениями по домашке. Я для этого делал скриншот чата, клал его на NAS, на компе с NAS копировал сыну. Через приложение передать в разы удобнее. Запустил прогу и перекинул на комп с именем СЫН. Всё. Мессенджеров и соц. сетей у него пока нет.
Это приложение, которое я попробовал и сразу развернул на всех устройствах. Жене очень понравилось.
Отдельно отмечу, что приложение написано на языке программирования Dart. Впервые о нём услышал. Сначала показалось, что это типичное приложение на JavaScript под NodeJS. Но смутил небольшой размер. После этого и пошёл смотреть, на чём написано. Оказалось, что этот язык программирования разрабатывает Google как раз для замены JavaScript, взяв от него всё лучшее, но исправив недостатки. В целом, выглядит всё это неплохо.
⇨ Сайт / Исходники
#fileserver
Есть простое и удобное open source решение для этого вопроса - LocalSend. Поддерживает все операционные системы, в том числе на смартфонах. Это небольшое приложение, которое запускается на определённом порту (53317), принимает входящие соединения и с помощью нескольких методов (описание протокола, в основе поиска Multicast UDP, если не помогает, то POST запрос на все адреса локальной сети) осуществляет поиск таких же серверов в локальной сети. Передача данных осуществляется по протоколу HTTP.
На практике всё это работает автоматически. Приложение под Windows можно поставить, к примеру, через wingwet или скачать portable версию. На смартфоне ставим через Google Play, F-Droid или просто качаем apk. Работает всё в локальной сети, без необходимости каких-то внешних сервисов в интернете. Запускаем на обоих устройствах приложение, они сразу же находят друг друга. Можно передавать файлы. При этом можно на том же компе настроить такой режим, чтобы он автоматом принимал файлы со смартфона и складывал в определённую директорию.
Каждое устройство в приложении можно обозвать своим именем и передавать файлы между ними. Не знаю, где это в работе может пригодиться, но для дома очень удобно. В первую очередь простотой и поддержкой всех платформ. В программе хороший русский язык, пользоваться просто и понятно.
Мне иногда надо сыну передать со своего смартфона из родительского чата информацию от учителя с пояснениями по домашке. Я для этого делал скриншот чата, клал его на NAS, на компе с NAS копировал сыну. Через приложение передать в разы удобнее. Запустил прогу и перекинул на комп с именем СЫН. Всё. Мессенджеров и соц. сетей у него пока нет.
Это приложение, которое я попробовал и сразу развернул на всех устройствах. Жене очень понравилось.
Отдельно отмечу, что приложение написано на языке программирования Dart. Впервые о нём услышал. Сначала показалось, что это типичное приложение на JavaScript под NodeJS. Но смутил небольшой размер. После этого и пошёл смотреть, на чём написано. Оказалось, что этот язык программирования разрабатывает Google как раз для замены JavaScript, взяв от него всё лучшее, но исправив недостатки. В целом, выглядит всё это неплохо.
⇨ Сайт / Исходники
#fileserver
Forwarded from TechRocks
В чем разница между : и :: в CSS?
#css
Если вы хотите быстро получить ответ на вопрос из заголовка статьи, то вот он:
-
Читать статью
#css
Если вы хотите быстро получить ответ на вопрос из заголовка статьи, то вот он:
-
: относится к псевдоклассам, таким как :visited или :hover
- :: — для псевдоэлементов, таких как ::first-of-type или ::after
А если хотите более подробных объяснений, давайте рассмотрим примеры.Читать статью
Forwarded from Frontender's notes [ru]
🕵♀Следим и вычисляем с Vue 3, или Как использовать watchEffect
В этой статье разберем новый метод слежения за реактивными свойствами watchEffect.
Читать...
В этой статье разберем новый метод слежения за реактивными свойствами watchEffect.
Читать...
Перенаправление запросов к веб-серверу Apache на новый домен с помощью .htaccess
https://habr.com/ru/articles/766664/
https://habr.com/ru/articles/766664/
Хабр
Перенаправление запросов к веб-серверу Apache на новый домен с помощью .htaccess
Иногда возникает необходимость в переносе сайта, обслуживаемого веб-сервером Apache, на новый домен. Снизить издержки на такой перенос помогает настройка перенаправления HTTP-запросов к старому домену...
Forwarded from Node.JS [ru] | Серверный JavaScript
⭐️Как внедрить гайд по стилю кода в проект
В этой статье я расскажу, от каких проблем вас сможет защитить такой гайд, и приведу подробную инструкцию, как его внедрить.
Читать...
В этой статье я расскажу, от каких проблем вас сможет защитить такой гайд, и приведу подробную инструкцию, как его внедрить.
Читать...
Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 2 / Хабр
https://habr.com/ru/articles/785596/
https://habr.com/ru/articles/785596/
Forwarded from mefody.dev
Альтернатива live-server
Мне часто нужно запустить какую-нибудь html-страничку на мини-сервере, чтобы и айфреймы в ней работали нормально, и по локальной сети пошарить (с телефона открыть). И обычно я для этого использую npm-пакет live-server. Запускаешь
Недавно увидел тред в твиттере, где искали альтернативу. И оказалось, ждать целую минуту не обязательно. Есть неплохой пакет servor, который умеет почти то же самое,
Оба пакета, если что, давно не обновляются на github, но это не делает их устаревшими: свою работу выполняют отлично.
https://github.com/lukejacksonn/servor
https://github.com/tapio/live-server
Мне часто нужно запустить какую-нибудь html-страничку на мини-сервере, чтобы и айфреймы в ней работали нормально, и по локальной сети пошарить (с телефона открыть). И обычно я для этого использую npm-пакет live-server. Запускаешь
npx live-server, ждёшь минуту скачивания зависимостей, профит. Или ставишь глобально, чтобы ждать минуту всего один раз.Недавно увидел тред в твиттере, где искали альтернативу. И оказалось, ждать целую минуту не обязательно. Есть неплохой пакет servor, который умеет почти то же самое,
npx servor работает почти мгновенно, для моих задач подходит полностью.Оба пакета, если что, давно не обновляются на github, но это не делает их устаревшими: свою работу выполняют отлично.
https://github.com/lukejacksonn/servor
https://github.com/tapio/live-server
GitHub
GitHub - lukejacksonn/servor: Dependency free file server for single page app development
Dependency free file server for single page app development - lukejacksonn/servor
Forwarded from Linux для чайника
Когда система подтормаживает, разобраться поможет:
Этой командой получим список из 10 (не ваших) процессов, которые больше всего нагружают процессор.
Либо можем получить весь список процессов, которые были запущены не вами:
Так смотрим список самых загруженных (в более читаемом виде):
ps aux --sort=-%cpu | grep -m 11 -v 'whoami'Этой командой получим список из 10 (не ваших) процессов, которые больше всего нагружают процессор.
Либо можем получить весь список процессов, которые были запущены не вами:
ps aux | grep -v 'whoami'Так смотрим список самых загруженных (в более читаемом виде):
ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head