Как стать автором
Обновить
10
0
Volodymyr Polishchuk @NorthDakota

PHP Developer

Отправить сообщение

Создаем Конечный Автомат на PHP

Время на прочтение6 мин
Количество просмотров13K

Конечный Автомат (State Machine), также называемый Automata (да, как и игра), - это концепция для разработки, организации рабочих и технологических процессов с учетом текущего «состояния» какой-то задачи, изменения её состояний и, по возможности, для автоматизации процесса.

Я объясню на примере. Предположим, что я хочу купить молоко, тогда в такая задача будет иметь примерно следующие состояния...

Читать далее
Всего голосов 15: ↑11 и ↓4+9
Комментарии11

CLion + STM32 без шелухи

Время на прочтение8 мин
Количество просмотров16K

Эта статья - краткий гайд о том, как с нуля завести STM32 под CLion, без шелухи в виде HAL и STM32CubeMX.

Читать далее
Всего голосов 8: ↑6 и ↓2+8
Комментарии24

PHP 8.1: до и после

Время на прочтение2 мин
Количество просмотров11K

PHP 8.1 выйдет через несколько месяцев и я в восторге от множества нововведений! Хочу поделиться реальным влиянием PHP 8.1 на мой собственный код.

Читать далее
Всего голосов 11: ↑7 и ↓4+6
Комментарии42

Et tu, Brute? Что хотят от нас брутфорсеры?

Время на прочтение16 мин
Количество просмотров18K

Каждый владелец сервера с «белым» IP-адресом наблюдал в логах бесчисленные попытки подключиться к серверу по SSH с разных точек мира. Администраторы ставят средства противодействия, такие как fail2ban, переносят SSH на другие порты и всячески пытаются защититься от брутфорсеров. Но чего же хотят эти замечательные люди от наших серверов?

Поверхностный ответ, конечно, прост: наживы на бесплатных вычислительных ресурсах и полученных чувствительных данных. Но этот ответ недостаточно подробный. Давайте разложим виртуальные «приманки» и проследим, что происходит, когда автоматический брутфорс оказывается успешным.
Читать дальше →
Всего голосов 84: ↑84 и ↓0+84
Комментарии32

Запуск проекта в Kubernetes за 60 минут

Время на прочтение18 мин
Количество просмотров33K


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


Я Павел Селиванов, ведущий DevOps-инженер облачной платформы Mail.ru Cloud Solutions. Я расскажу про альтернативный способ развертывания Kubernetes — использование Managed-варианта от облачного провайдера. Мы запустим реальный API-сервис на примере нашего облака и пройдем основные шаги развертывания приложений в K8s, включая подготовку инфраструктуры, настройку CI/CD-конвейера и всех необходимых объектов Kubernetes: Deployment, Service, Ingress и так далее.


В результате попробуем убедиться, что 60 минут — вполне достаточное время для освоения азов работы с K8s при условии использования его в виде aaS.


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


Практикум в видеоформате можно посмотреть по ссылке.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+26
Комментарии11

Сказ о том, как я Home Assistant настраивал

Время на прочтение11 мин
Количество просмотров191K


Home Assistant — это популярная система умного дома, которая автоматизирует привычные бытовые процессы и работает на YAML файлах. В этой статье я расскажу, как настроить Home Assistant (далее HA), и что конкретно я использую в повседневной жизни. Это поможет вам избежать ошибок и быстрее продвинуться в изучении HA.


На Хабре уже есть статьи о HA (раз, два, три), но здесь я хочу рассказать об установке и настройке системы от начала до конца. От первого запуска сервера до полноценно работающей системы, которую потом можно улучшать и дорабатывать для себя.

Читать дальше →
Всего голосов 9: ↑7 и ↓2+6
Комментарии15

Инструменты для аудита CSS

Время на прочтение6 мин
Количество просмотров8.8K


Аудит (здесь и далее слово «аудит» употребляется в значении «оценка качества») CSS не относится к повседневным задачам при разработке веб-приложений, но иногда приходится этим заниматься. Это может быть частью процесса определения критического CSS, удаления неиспользуемых селекторов, улучшения доступности, когда все цвета в кодовой базе оцениваются на предмет контрастности, и т.д.

Существуют некоторые инструменты, облегчающие выполнение указанных задач. Но давайте начнем с того, что понимается под «аудитом» CSS.

Аудит CSS — задача не из легких


Как правило, оценка качества кода включает в себя его анализ в поиске багов и других проблем, например, проблем с производительностью. Для большинства языков программирования концепция аудита кода проста: она работает или не работает. Но CSS — это особенный язык, большая часть ошибок которого игнорируется браузером. Один и тот же стиль можно применять совершенно по-разному. Это обуславливает сложность аудита CSS. И «сложность» — это еще мягко сказано.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+30
Комментарии0

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

Время на прочтение6 мин
Количество просмотров18K

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

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

Кое-что может быть для вас уже знакомым или даже банальным, а кое-что контринтуитивным.

Однако помните: знать и делать - кардинально разные понятия.

И если вы постепенно интегрируете хотя бы некоторые аспекты нижеизложенного в свою жизнь, то увидите положительные изменения.

Читать далее
Всего голосов 13: ↑11 и ↓2+12
Комментарии9

PHP-SPX простой профайлер трейсер для PHP

Время на прочтение4 мин
Количество просмотров13K
Работая с различными PHP проектами часто приходится дебажить приложение чтобы найти и исправить ошибку. Во многих случаях вполне хватает xDebug, однако он не подходит для всех задач. Иногда нужно понять почему та или иная страница долго загружается, что съедает так много памяти или просто как работает большой и запутанный код.
php-spx logo webmageic
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии3

Как мы сэкономили 2000 USD на трафике из Amazon S3 с помощью nginx-кэша

Время на прочтение6 мин
Количество просмотров18K

Эта небольшая история — живое свидетельство того, как самые простые решения (иногда) могут оказаться очень эффективными. В одном из проектов руководство взяло курс на оптимизацию бюджета на инфраструктуру. В результате анализа всех статей расходов стало очевидным, что заметно выдаются счета за сетевой трафик из Amazon S3-бакета, где хранится публичная статика веб-приложения. Так появилась задача найти и реализовать максимально недорогой и решающий бизнес-задачу способ.

Читать далее
Всего голосов 45: ↑43 и ↓2+53
Комментарии27

Выдерни шнур, выдави стекло

Время на прочтение14 мин
Количество просмотров7.7K

Инструкция по диагностике проблем в работе баз данных в случае аварии.

Привет. У каждого на работе иногда случаются «чёрные» дни. Для меня такими днями являются аварии в работе сервисов, приводящие к недоступности систем для конечных пользователей. По счастью, такое происходит нечасто, но каждый такой случай заставляет меня долго рефлексировать над вопросами «что мы сделали не так».

После одной из аварий я поймал себя на мысли, что диагностика причины недоступности сервиса заняла слишком много времени. Инженеры, задействованные в разрешении инцидента, действовали не совсем скоординированно: проверяли одни и те же гипотезы и тратили время на изучение совсем уж «фантастических» вариантов. В квалификации ребят никакого сомнения у меня нет, поэтому в рамках рефлексии я списываю это на стрессовую ситуацию аварии.

Чтобы в следующий раз диагностика и устранение причин аварии происходили быстрее, мы совместно с DevOps-инженером Алексеем Поповым решили написать «план эвакуации при пожаре»: пошаговую инструкцию, которую можно было бы использовать для быстрого исследования инцидента.

Последняя проблема касалась работы базы данных и взаимодействия web-приложения с базой. Поэтому инструкция касается диагностики именно базы данных. Также хочу отметить, что эта схема — не истина в последней инстанции, а всего лишь наш опыт, перенесенный на «бумагу». Мы намеренно не стали включать слишком «экзотические» причины аварии, поскольку схема становится слишком громоздкой и нечитаемой.

Я буду признателен за комментарии и описания аналогичных проблем, которые происходили у вас.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии3

Давайте обсудим мониторинг

Время на прочтение8 мин
Количество просмотров14K

Вот уже четвертый год я занимаюсь организацией того, что принято называть Observability. Набранный за это время опыт я обличаю в текст, делюсь им с вами в виде размышления-рекомендации и выношу на суд общественности. Здесь практически не будет технических деталей – статья намеренно написана таким образом, дабы изложенное можно было положить на практически любой стек технологий. Дело в том, что инструменты врываются в тренды и покидают их с невероятной скоростью, посему их выбор остается за вами.

Давайте обсудим мониторинг.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии15

Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner

Время на прочтение11 мин
Количество просмотров51K


Тестирование производилось с помощью Yandex Tank.
В качестве приложения использовались Symfony 4 и PHP 7.2.
Целью являлось сравнение характеристик сервисов при разных нагрузках и нахождение оптимального варианта.
Для удобства все собрано в docker-контейнеры и поднимается с помощью docker-compose.
Под катом много таблиц и графиков.
Читать дальше →
Всего голосов 72: ↑67 и ↓5+62
Комментарии46

Читаем EXPLAIN на максималках

Время на прочтение19 мин
Количество просмотров70K

Многим, кто работает с MySQL, известно, что команда EXPLAIN используется для оптимизации запросов, получения информации об использованных и возможных индексах. Большинство разработчиков и администраторов СУБД этой информацией и ограничивается. Я же предлагаю изучить команду EXPLAIN максимально подробно.

Читать далее
Всего голосов 15: ↑13 и ↓2+17
Комментарии14

MySQL: казнить нельзя помиловать

Время на прочтение9 мин
Количество просмотров18K


Сайт и интернет-магазин «Эльдорадо» — это около 40 тысяч покупок ежедневно. Объяснять, что это значит для бизнеса компании, наверное, не надо.

Исторически магазин работает на движке Bitrix с огромным количеством кастомного кода и дополнений. В качестве хранилища выступает кластер MySQL с четырьмя мастер-серверами.

Монолитные приложения есть у значительного числа компаний, и работать с ними приходится очень многим. Способов борьбы с монолитом предостаточно, вот только про удачные, к сожалению, пишут мало. Надеюсь, что рассказ о том, как мы подпираем наш монолит (пока его не распилили) будет вам интересен.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+66
Комментарии53

Быстрый туториал по установке и эксплуатации системы фильтрации IP-адресов CrowdSec v.1.0.x

Время на прочтение7 мин
Количество просмотров9.4K

Всем привет! Перед Новым годом мы выпустили большой апдейт нашего продукта — CrowdSec v.1.0.X, в котором содержатся значительные изменения по сравнению с предыдущей версией. Самое главное: был введен в эксплуатацию локальный REST API и проведены соответствующие архитектурные изменения. Как следствие, значительно упростился процесс создания баунсеров и повышена их устойчивость, при этом снизилось время на обслуживание системы. 

В этой статье вы найдете основные материалы о том, как был переделан CrowdSec и, в целом, ее можно рассматривать как User Guide для тех, кто собирается попробовать наш продукт на своих системах. 

Быстрый и приятный туториал далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Зарплаты украинских разработчиков за 2020 год. В среднем — $2500

Время на прочтение4 мин
Количество просмотров35K

Украинский ресурс DOU.UA (Developers.Org.Ua) провел зарплатный опрос среди IT-разработчиков, в котором приняло участие 10280 украинских специалистов. Более половины из них 5359 это разработчики: Software Engineers, Tech/TeamLeads и System Architects. Все зарплаты указаны в долларах США по курсу межбанка, чистыми, т.е. после уплаты всех налогов.

Данные в CSV доступны на GitHub. Для оценки зарплат в выборках используется медиана.

Читать далее
Всего голосов 33: ↑29 и ↓4+36
Комментарии285

Xiaomi представила настоящую беспроводную зарядку Mi Air Charge. Что с ней не так?

Время на прочтение3 мин
Количество просмотров23K


Сегодня Xiaomi представила станцию беспроводной зарядки, не требующую близкого контакта со смартфоном. Рекламный ролик существует только на китайском, причем опубликован он не на официальном аккаунте:



В достоверности сомневаться не стоит: официальный твиттер-аккаунт подтверждает.


Обещается возможность, запрос на которую я давно слышу: возможность зарядки смартфона без проводов, но не так как это сделано сейчас (различными вариациями зарядных «ковриков»), а вообще без дополнительных действий: зашел в комнату, оснащенную зарядной станцией и телефон начал заряжаться. Стало бы значительно удобнее: смартфон бы оставался максимально заряженным, пока вы находитесь в помещении.

Всего голосов 17: ↑14 и ↓3+18
Комментарии86

Изучаем ELK. Часть I — Установка Elasticsearch

Время на прочтение10 мин
Количество просмотров126K

Эта статья является первой в серии статей по стеку Elasticsearch, Logstash, Kibana (ELK). Цикл статей ориентирован на тех, кто только начинает знакомится со стеком ELK, и содержит минимально необходимый набор знаний, чтобы успешно запустить свой первый кластер ELK.

В этой статье будет рассмотрена процедура установки Elasticsearch и конфигурирование кластера.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии20

Тимлид как психолог: задачи, риски, инструменты работы

Время на прочтение5 мин
Количество просмотров6.4K

Привет! Меня зовут Анастасия, психолог и много консультирую IT-специалистов. И я вижу большое сходство в работе тимлида и психолога. В чём оно? Работа с людьми, безусловно. А если конкретнее, как думаете? 

Читать далее
Всего голосов 9: ↑6 и ↓3+7
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Abazë, Durres, Албания
Дата рождения
Зарегистрирован
Активность