Pull to refresh
1
0
Дмтирий @sofwar

Пользователь

Send message

Вы нас просили и мы сделали. VPN на собственном сервере с XRay Reality за 5 минут с помощью Amnezia

Reading time4 min
Views167K

Всем привет! Это команда Amnezia. 

Мы читаем комментарии под нашими постами и знаем, что один из самых частых вопросов – когда будет XRay? Так вот, мы добавили XRay в приложение AmneziaVPN, а точнее протокол Reality от XRay для всех платформ -  IOS, Android, Windows, Linux и MacOS. Если у вас еще нет последнего релиза, скорее скачивайте и создавайте VPN на собственном сервере в пару кликов с одним из самых защищенных и быстрых протоколов в мире, ниже мы немного о нем расскажем, а в конце статьи будет пошаговая  инструкция как это сделать.

Почему XRay Reality так популярен ?

Все дело в том, что Reality подходит для стран с самым высоким уровнем интернет-цензуры, сейчас его используют в Китае и Иране, он защищен от детектирования методами active probing. 

Распознать цензоров REALITY может еще на этапе TLS-хендшейка. Если REALITY видит, что к нему приходит его клиент, то сервер запускает для него VPN туннель, а если приходит любой другой запрос на 443 порт, то TLS-подключение передается на какой-нибудь другой реальный сайт, например, google.com, где цензор получит настоящий TLS-сертификат от google.com и вообще все настоящие данные с этого сайта.

Со стороны систем анализа трафика это выглядит как подключение к настоящему сайту, сервер отдает настоящий TLS-сертификат этого сайта, и вообще все (включая TLS fingerprint сервера) выглядит очень по-настоящему и не вызывает подозрений. 

Особенно приятно, что при этом производительность REALITY и скорость подключения у протокола действительно хороши, в сравнении, например, со связкой OpenVPN over Cloak.

Читать далее
Total votes 151: ↑147 and ↓4+166
Comments137

Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки

Level of difficultyEasy
Reading time9 min
Views8.3K

Привет, PHP-шники!

Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой коллега 😵‍💫) когда-то написал? В этой статье хочу немного рассказать на примере профайлинга PHP-кода, как перестать гадать и начать выявлять боттлнеки, которые всё тормозят. Короче, помочь поискать говнокод.

Читать далее
Total votes 15: ↑15 and ↓0+20
Comments15

Сортировка в Laravel по полям relation-ов

Level of difficultyMedium
Reading time5 min
Views4.3K

Недавно в рабочем проекте потребовалось реализовать универсальную сортировку, которая подходила бы для большинства моделей. Если с обычной сортировкой по полю всё просто - её, подробно описанную, вы найдёте в документации к фреймворку, то для случаев сортировки, когда требуемое поле находится НЕ в основной таблице, а в одной из связанных, информации оказалось исключительно мало и она была весьма разрозненной.

После завершения задачи решил создать этот более-менее "всеохватывающий" гайд.

Читать далее
Total votes 1: ↑0 and ↓1-1
Comments5

Мини-аналог «mail.yandex.ru» для небольшой компании

Level of difficultyMedium
Reading time3 min
Views13K

Приветствую!

Давно не писал статей, все руки не доходили, наконец то, выбралось время и решил поделиться с Вами решением одной задачи.

Немного предыстории

В конце 2018 довелось участвовать в создание инфраструктуры одной поликлиники и одна из задач была организация почтового сервера. По желанию заказчика, предпочтение было отдано внешним службам, а именно pdd.yandex.ru. На тот момент требовалось не более 3-5 пользователей, и это решение посчитали оптимальным и самым быстрым. Но время шло, задачи менялись и в конце 2022 г. число учетных записей выросло до 95 из них активных, в повседневной работе, 25. Когда Яндекс ввел плату за каждого пользователя, было принято решение о переводе всей почты на локальное размещение. К тому же, весь доступ к почте, предполагает только локальное использование, без доступа из внешней сети. Перелопатив кучу вариантов, от коробочных решений до самосборной конфигурации, пал выбор на Kolab Groupware. Выбор был обусловлен желанием работы через WEB интерфейс, с общей адресной книгой, календарем, списком дел и файловым облаком. Плюшек хватало с лихвой, но возник ряд трудностей, о способах решения которых, я напишу ниже.

Читать далее
Total votes 10: ↑5 and ↓50
Comments27

Экономный APM для backend или как использовать Loki+Grafana+логи приложения для APM

Level of difficultyEasy
Reading time12 min
Views5.2K

Обычно процесс оптимизации типичного backend'а на php включает:

оптимизации SQL‑запросов в БД;

оптимизации работы с кэшем (повышение hitrate, увеличение объёма кэшируемых данных);

оптимизация внутренних процессов в backend (вынесение тяжёлых процессов в асинхронный режим, оптимизация внутренних структур данных)

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Level of difficultyMedium
Reading time14 min
Views25K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Total votes 54: ↑54 and ↓0+54
Comments13

Как и зачем тестировать код на бэкенде: рекомендации для новичков

Reading time13 min
Views13K

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

Также разберём базу: виды тестов, их отличия друг от друга, плюсы и минусы. Если вы только начинаете разбираться в тестировании, вам это точно пригодится.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments6

Тестируем современные емейл-фреймворки

Level of difficultyMedium
Reading time10 min
Views6.5K

Все, кто сталкивался с версткой писем, знают, что там по-прежнему используется табличная верстка, инлайновые стили, css хаки, устаревшие теги и т.д. И все это ради поддержки всех (или, вернее сказать, большинства) почтовых клиентов: различных версий Outlook, веб-интерфейсов почтовиков и мобильных почтовых клиентов.

Но индустрия не стоит на месте - все активнее для верстки писем применяются емейл-фреймворки. О них и пойдет речь дальше. Сравним 2 из них: MJML и Ampier framework (хотел добавить еще и Zurb Foundation for email, но они в последних публикациях уже не говорят о поддержке outlook, да и в принципе устарели).

MJML - самый известный и популярный емейл-фреймворк, признанный сообществом. На его основе работают всевозможные визуальные емейл-билдеры, и по факту он является стандартом в зарубежном емейл-маркетинге, хотя в России не все о нем знают.

Ampier - это мой емейл-фреймворк, который создавался на основе личного многолетнего опыта работы в сфере емейл-маркетинга. В нем я постарался учесть все те проблемы и сложности, с которыми сталкивается верстальщик писем. Идея была в том, чтобы не просто обеспечить “приемлемое отображение” в большинстве клиентов”, а дать свободу верстальщику, при этом не обременяя его вопросами совместимости с устаревшими почтовыми клиентами. Ну и, плюс ко всему, дать возможность заложить в единый код как html, так и AMP-версию письма. Но в этой статье речь пойдет пока что только о html.

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

Читать далее
Total votes 4: ↑3 and ↓1+5
Comments11

Сравнительный анализ стандартов связи для сетей IoT

Reading time13 min
Views7.2K

Интернет вещей (Internet of Things, IoT) — это одно из самых актуальных направлений современных технологий. Сети IoT позволяют подключать к сети интернет физические устройства, такие как датчики, устройства управления, электронные приборы и другие предметы быта, которые могут обмениваться данными и управляться удаленно. Это открывает безграничные возможности для создания интеллектуальных систем, которые могут автоматизировать процессы и управлять ресурсами на основе данных и аналитики.

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

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments7

Релиз Centrifugo v4 – маленькая революция

Reading time17 min
Views9.8K

Сегодня мы рады представить новую версию сервера Centrifugo — Centrifugo v4. Релиз выводит Centrifugo на новый уровень с точки зрения эффективности клиентского протокола, простоты фоллбеков для WebSocket, экосистемы клиентских SDK и модели безопасности каналов. Также релиз включает в себя экспериментальную поддержку HTTP/3 и WebTransport.

Читать далее
Total votes 15: ↑14 and ↓1+14
Comments1

Chrome Headless против cloudflare JS challenge

Level of difficultyMedium
Reading time41 min
Views24K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

Читать далее
Total votes 82: ↑82 and ↓0+82
Comments6

Работа с микросервисами через API-gateway

Reading time18 min
Views26K

Однажды один тимлид поставил передо мной задачу реализовать механизм взаимодействия пользователя через веб-интерфейс с микросервисами через единую точку входа с использованием FastAPI и RabbitMQ. Спешу поделиться с тобой, мой читатель, тем, что у меня получилось.

Читать
Total votes 9: ↑2 and ↓7-5
Comments22

Алгоритм поиска цепочки друзей для пользователей соцсети

Reading time4 min
Views2.6K

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

Читать далее
Total votes 3: ↑0 and ↓3-3
Comments3

Как мы провели второй русскоязычный Laravel-митап

Reading time4 min
Views3.8K

Привет, за клавиатурой Миша Радионов, и я снова расскажу вам про Laravel. Нет, не про тонкости этого фреймворка, а про Laravel-митап, который мы провели в Студии Флаг уже во второй раз.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments2

Создание API с использованием TDD в Laravel

Reading time18 min
Views12K

Привет, Artisans, меня зовут Альберто Росас, я пользуюсь Laravel уже много лет, и одна из самых полезных и стоящих вещей, которые я узнал, — это создание правильных тестовых сьютов для своих приложений. Очень приятно видеть, что тестирование все чаще практикуется в сообществе Laravel, поэтому в этой статье мы начнем с основ TDD в Laravel и продолжим тему в других статьях.

Читать далее
Total votes 12: ↑10 and ↓2+10
Comments3

20 лет проблем приема платежей

Reading time11 min
Views22K
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →
Total votes 109: ↑108 and ↓1+131
Comments20

Использование протокола MQTT в PHP

Reading time3 min
Views9.1K

Статья посвящена использованию библиотеки php-mqtt/client в PHP-проектах для реализации функций подключения, подписки, отписки, а также обмена сообщениями между MQTT-клиентом и сервером.
Читать дальше →
Total votes 24: ↑20 and ↓4+30
Comments0

Миниатюрное десктопное GUI приложение на PHP — 2 МБ хватит для всех

Reading time6 min
Views17K

Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 МБ. Получится ли?

В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. Так что было сделано волевое решение сделать свою, на РНР 5, с бутстрапом и JQuery.

Читать далее
Total votes 25: ↑24 and ↓1+31
Comments58

Иностранные хостеры с возможностью оплаты криптовалютой

Reading time4 min
Views72K

Всем привет! Меня зовут Леонид, я владелец сервиса Поиск VPS. Неделю назад я опубликовал статью, в которой рассказал о том, как можно оплатить зарубежный хостинг валютным переводом через SWIFT. Это один из альтернативных способов после отключения России от Visa и Mastercard. В комментариях некоторые пользователи попросили сделать обзор хостеров, принимающих криптовалюту.

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments14

Инструкция как писать стандартизированные комментарии к коммитам (git commit)

Reading time3 min
Views24K

Я полагаю вы уже знакомы с git. Чтобы не привело вас сюда, добро пожаловать и надеюсь найдете все, что вам необходимо знать.

Читать далее
Total votes 21: ↑3 and ↓18-14
Comments15
1
23 ...

Information

Rating
Does not participate
Location
Гродненская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Backend Developer