Заметки разработчика
471 subscribers
671 photos
4 videos
1.17K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
Мониторинг логинов по SSH на Linux-сервере очень важен для обеспечения безопасности системы. Одним из способов информирования об активности входа в систему является настройка оповещений по электронной почте при каждом входе в систему через SSH. В этом руководстве мы покажем Вам, как настроить сервер Linux на отправку уведомлений по электронной почте при входе в систему по протоколу SSH.

https://www.dev-notes.ru/articles/devops/how-to-get-email-alerts-for-ssh-login-on-linux-server/
Массивы являются неотъемлемой частью TypeScript, позволяя разработчикам хранить и манипулировать коллекциями данных. Объект Array поставляется с различными методами, облегчающими работу с массивами. Одним из таких методов является метод flatMap().

В этой статье мы рассмотрим, что такое flatMap() и как он работает. Мы также объясним, как объявить массив в TypeScript, и приведём список других полезных методов работы с массивами, доступных в TypeScript, таких, как concat(), copyWithin(), every(), fill(), filter(), flat(), forEach(), shift(), includes() и reduce(). Давайте приступим!

https://www.dev-notes.ru/articles/typescript/understanding-flatmap-other-typescript-arrays/
Недавно команда Laravel выпустила Laravel Folio — мощный страничный маршрутизатор, предназначенный для упрощения маршрутизации в приложениях Laravel. Следом они выпустили Volt — элегантно выполненный функциональный API для Livewire, позволяющий PHP-логике компонента и шаблонам Blade сосуществовать в одном файле с минимальным количеством шаблонов.

Хотя их можно использовать по отдельности, я считаю, что их совместное применение — это новый, невероятно продуктивный способ создания приложений на Laravel.

В этой статье я расскажу как создать простое приложение, в котором перечисляются эпизоды подкаста Laravel News и пользователи могут их воспроизводить, причём плеер может плавно продолжать воспроизведение при загрузке страницы.

https://www.dev-notes.ru/articles/laravel/livewire-volt-and-folio/
SSH (Secure Shell) — широко распространённый протокол для безопасного удалённого доступа и управления Linux-серверами. По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию может обеспечить дополнительный уровень безопасности сервера, затруднив проведение автоматизированных атак или сканирования.

В этом пошаговом руководстве мы покажем, как изменить порт SSH по умолчанию в системе Linux. Выполнив эти действия, вы повысите безопасность своего сервера и снизите вероятность несанкционированного доступа.

https://www.dev-notes.ru/articles/devops/how-to-change-the-default-ssh-port-in-linux/
В Laravel валидация возвращает ошибку в виде JSON-ответа с сообщениями об ошибке в строгом стандартном формате. Что делать, если вы хотите изменить его на совершенно другую структуру, потому что ваши фронтендеры запрашивают определённые пары ключ-значение?

https://www.dev-notes.ru/articles/laravel/laravel-validation-completely-customize-error-message-format/
Сетевое взаимодействие — это основа современных технологий, необходимая для подключения устройств и служб. В этой статье вы узнаете о ключевых понятиях, терминологии и протоколах, которые используются в сетевых технологиях.

https://www.dev-notes.ru/articles/devops/networking-101/
Если вы читаете эту статью, то, скорее всего, вы использовали систему доменных имён (DNS), даже не подозревая об этом. DNS — фундаментальная часть интернета, которая позволяет нам получать доступ к веб-сайтам и онлайн-услугам, используя вместо цифровых адресов удобные для человека имена. Но как именно она работает? В этой статье я расскажу об основах DNS и о том, как она помогает нам ориентироваться в Интернете.

https://www.dev-notes.ru/articles/devops/everything-you-need-to-know-about-dns/
Со свойствами фона CSS можно сделать очень многое. В этой статье мы рассмотрим, как использовать свойство background-size для установки размера фонового изображения, а также изучим варианты позиционирования фонового изображения с помощью background-position.

https://www.dev-notes.ru/articles/css/how-to-use-css-background-size-and-background-position/
PHP поддерживает замену значений PHP INI на переменные окружения с помощью синтаксиса строковой интерполяции PHP. Если указанная переменная окружения недоступна, парсер INI использует пустую строку. В PHP 8.3 этот синтаксис расширен для поддержки объявления запасного/fallback значения, если переменная окружения не установлена.

https://www.dev-notes.ru/articles/php/php-83-php-ini-envar-fallback-value-syntax/
Для разработчика важно иметь твёрдое представление, что такое интернет и как он работает. Это фундамент, на котором строится большинство современных программных приложений. Чтобы создавать эффективные, безопасные и масштабируемые приложения и сервисы, необходимо хорошо понимать, как работает интернет и как использовать его возможности и связи.

В этой статье мы рассмотрим основы интернета, в том числе, что это такое, как он работает, основные понятия, терминологию и общие протоколы, используемые для создания приложений и услуг в интернете.

https://www.dev-notes.ru/articles/devops/how-does-internet-work/
В PHP CLI предусмотрена функция линтинга, которая проверяет переданное имя файла на наличие синтаксических ошибок. Это удобно для быстрой проверки PHP-файла или фрагмента перед выполнением.

До версии PHP 8.3 не было возможности проверять несколько PHP-файлов в одном вызове; независимо от количества файлов, PHP CLI проверял только первый файл.

https://www.dev-notes.ru/articles/php/php-83-cli-lint-multiple-files/
В этой статье мы рассмотрим несколько способов стилизации полосы прокрутки в CSS, в разных браузерах, чтобы вы могли настроить полосу прокрутки по умолчанию в соответствии с вашим брендом или дизайном.

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

https://www.dev-notes.ru/articles/css/guide-styling-css-scrollbars/
PHP-функция class_alias() создаёт псевдоним для заданного класса. Псевдоним ведёт себя точно так же, как и оригинальный класс.

До версии PHP 8.3 попытка присвоить псевдоним встроенному классу PHP приводила к исключению ValueError.

https://www.dev-notes.ru/articles/php/php-83-class_alias-php-built-in-classes-supported/
Как очистить базу данных удалив ненужные данные с помощью встроенной функции Laravel для повышения производительности запросов.

По понятным причинам таблицы баз данных со временем имеют тенденцию к увеличению размеров. Поэтому для поддержания производительности запросов время от времени требуется их настройка.

Среди распространённых методов — создание индексов, переписывание запросов и даже перепроектирование базы данных.

Но есть и другое очевидное решение, которое также может быть применено, — это очистка данных.

В Laravel для этого есть встроенная функция, которая может быть использована двумя различными способами: Очистка и Массовая очистка.

https://www.dev-notes.ru/articles/eloquent/schedule-periodic-database-clean-up-on-laravel/
PHP предоставляет функции parse_ini_string и parse_ini_file, которые повторно используют встроенный в PHP синтаксический анализатор, применяемый для собственных конфигурационных файлов PHP на основе INI.

Помимо разбора текста, парсер INI поддерживает наследование значений системного окружения и констант PHP, объявленных к моменту разбора текста. Начиная с версии PHP 8.3, он также поддерживает синтаксис запасных (fallback) значений для переменных окружения.

Хотя эти усовершенствования полезны для конфигурирования PHP с помощью переменных окружения и использования доступных PHP-констант, использование встроенного PHP-парсера для анализа INI-значений, предоставленных пользователем, может стать уязвимостью безопасности, поскольку PHP можно обманом заставить раскрыть переменные окружения и PHP-константы, которые, скорее всего, содержат конфиденциальные данные, не подлежащие раскрытию.

https://www.dev-notes.ru/articles/php/php-83-parse_ini_string-file-security-considerations/
Исследуем тип Record в TypeScript, чтобы лучше понять, как он работает. Также рассмотрим примеры его использования, например, использование с дженериками.

В информатике запись — это структура данных, содержащая набор полей, возможно, разных типов. В TypeScript тип Record просто позволяет нам определять словари, также называемые парами ключ/значение, с фиксированным типом для ключей и фиксированным типом для значений.

Другими словами, тип Record позволяет определить тип словаря, то есть имена и типы его ключей. В этой статье мы рассмотрим тип Record в TypeScript, чтобы лучше понять, что это такое и как он работает. Также рассмотрим, как использовать его для обработки случаев перечисления, как использовать его с дженериками для понимания свойств возвращаемого значения при написании многократно используемого кода.

https://www.dev-notes.ru/articles/typescript/level-up-typescript-record-types/
Недавно Тейлор выложил бета-версию Laravel Folio на YouTube в видеоролике с ключевой конференции Laracon. В настоящее время документация состоит только из файла readme, что отражает простоту пакета. Благодаря своей простоте мы можем легко догадаться о его внутреннем устройстве. Я решил углубиться в эту тему, и в этой статье мы отправимся на поиски его внутренних механизмов.

https://www.dev-notes.ru/articles/laravel/folio-deep-dive/
Многие веб-сайты и веб-приложения, с которыми вы ежедневно взаимодействуете, предоставляют информацию в режиме реального времени. Например, при использовании приложения для обмена сообщениями сообщения появляются на экране сразу после их отправки, не требуя обновления страницы в браузере.

Как правило, подобная функциональность реального времени реализуется в веб-приложениях с помощью WebSockets.

В этой статье мы рассмотрим, что такое WebSockets, где они могут понадобиться, а также альтернативные подходы к использованию WebSockets. Затем мы расскажем, как реализовать WebSockets в приложениях Laravel с помощью Pusher. Рассмотрим, как настроить бэкенд на отправку широковещательных сообщений через WebSockets, а также как настроить фронтенд на прослушивание этих сообщений. Наконец, рассмотрим использование приватных каналов, каналов присутствия, классов каналов и клиентских событий.

https://www.dev-notes.ru/articles/laravel/a-guide-to-using-websockets-in-laravel/
В программировании на Node.js модули — это самодостаточные единицы функциональности, которые можно совместно использовать и переиспользовать в разных проектах. Они облегчают нам жизнь как разработчикам, поскольку мы можем использовать их для дополнения наших приложений функциональностью, которую нам не пришлось писать самим. Они также позволяют упорядочить и разделить код, что приводит к созданию приложений, которые легче понять, отладить и поддерживать.

В этой статье я рассмотрю, как работать с модулями в Node.js, уделяя особое внимание их экспорту и использованию.

https://www.dev-notes.ru/articles/javascript/understanding-module-exports-exports-node-js/