Search
Write a publication
Pull to refresh
337
0
Роман Пронский @pronskiy

PHP

Send message

Три проигрывателя винила для домашней системы — подборка примечательных моделей в диапазоне 60-70 тысяч рублей

Reading time3 min
Views5K

Ранее мы остановились на «вертушках» от Yamaha, Denon и TEAC в сегменте «до 60 тысяч рублей». Сегодня двигаемся дальше и смотрим на еще одного представителя Denon и сразу два примечательных проигрывателя от бренда Pro-Ject.

Читать далее

Как обновить 3,5 тыс. криптошлюзов «Континент» и не сойти с ума – грабли и способы обхода

Reading time4 min
Views11K

Не так давно на нас свалилась задачка: обновить криптошлюзы (КШ) «Континент» с версии 3.7.5 до версии 3.9.1 на всей VPN-сети довольно крупного клиента. Сеть географически распределена и охватывает все часовые пояса нашей необъятной Родины. Всего – порядка 120 центров управления сетью (ЦУС) с подчиненными КШ. В общей сложности нам предстояло обновить более 3500 «зелёных» устройств. Насколько нам известно, мы одни из первых выполнили обновление такого масштаба с версии 3.7.5 на 3.9.1 без замены железа и настройки сети «с нуля». То есть именно обновили существующую сеть со всеми ее текущими настройками и оборудованием. Но, как говорится, есть нюансы. Зная их заранее, вы наверняка сможете сэкономить свои ресурсы, если затеете нечто подобное.

Делимся нюансами

PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Reading time4 min
Views11K
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.

Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.

Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!
Читать дальше →

Решение ВКС на 360 градусов для ультра компактных переговорных комнат

Reading time6 min
Views3.6K

В прошлой статье Панорамное решение ВКС для ультра компактных переговорных комнат мы рассмотрели решение ProfAV Panorama 180, которое закрывает задачу видео захвата всех участников в очень тесных помещениях.

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

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

Рассмотрим решение для круглых столов

Видишь уязвимости? А они есть! Наше исследование популярных CMS-систем

Reading time17 min
Views13K

Львиная доля всех работ по анализу защищенности внешнего периметра – это тестирование веб-приложений. Здесь могут быть как корпоративные решения, так и «домашние» разработки на базе различных публичных систем управления контентом (CMS). Мы всегда проводим глубокий анализ подобных решений на тестовых стендах и зачастую находим уязвимости нулевого дня. Собственно, из опыта таких проектов и родилась идея собрать исследовательскую команду и провести глубокий анализ популярных CMS-систем и различных плагинов для них. В этом посте мы поделимся результатами нашего исследования, а также продемонстрируем примеры уязвимого кода наиболее интересных, на наш взгляд, уязвимостей и примеры их эксплуатации. Конечно все эти уязвимости уже исправлены и описываются здесь с разрешения владельцев систем.

Не всё то в безопасности, что с Bug Bounty

Получаем посты из своего аккаунта Instagram посредством нового API Instagram Basic Display

Reading time6 min
Views43K
Для многих уже не секрет, что в конце 2019 года Instagram API изменилось. При этом старое API все еще поддерживается — отключение изначально планировалось в начале весны 2020, но позже было отложено на 29 июня 2020. После этой даты все приложения, использующие устаревшее API, перестанут работать. В этом небольшом туториале мы разберем как можно вывести на странице ленту из своего аккаунта с учетом текущих изменений. Материал рассчитан на новичков в подобного рода интеграциях.
Читать дальше →

Версионирование API или единая кодовая база для всех версий

Reading time13 min
Views44K

За 21 год существования в SuperJob разработали три версии реализации API для интеграций с бэкендом. Во время разработки последней они решили пересмотреть подход к версионированию. Сейчас в актуальной реализации порядка 379 эндпойнтов, более 900 моделей сущностей и 11 поддерживаемых мажорных версий. Когда проект развивается, вместе с ним меняются и требования к API, а значит неизбежно нарушение обратной совместимости.

Опытом решения этой проблемы поделился Антон Золотилин из SuperJob. Вы увидите самые распространенные решения проблемы версионирования web-API и подход, который реализовал у себя SuperJob. А в качестве бонуса узнаете, как это решение помогает значительно сократить рост затрат на тестирование версий с помощью Impact-анализа.

Читать далее

Python и Ruby под нагрузкой: высокое искусство некромантии

Reading time11 min
Views18K

Уже больше 20 лет я пишу код на разных языках программирования. Так как многие из этих языков считаются мертвыми, то сегодня я буду говорить о высоком искусстве некромантии — о том, как якобы мертвые языки используются в больших и иногда высоконагруженных проектах. Обрабатывая тысячи веб-запросов в секунду и не порождая необходимости писать свой компилятор PHP или переходить на Go или Rust.

Я расскажу про специфику Ruby и Python при высоких нагрузках, про их мейнстрим, который вы можете встретить в выживших проектах. Я не буду и не хочу говорить про спортивное программирование, где делают миллион запросов в секунду на одной ноде, выжигая из Python или Ruby всё и оставляя голый С. Python и Ruby действительно медленные, у них есть GIL, но при правильном использовании это не проблема, а статья расходов — и я расскажу, что мы можем получить за эти деньги.

Если вы предпочитаете слушать или смотреть (у меня там забавные крылья!) — видео моего выступления на конференции HighLoad++ Весна 2021.

Читать далее

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

Reading time8 min
Views4.4K

Утопическая картина, когда приоритет компании заключается только в развитии собственных сотрудников — не соответствует действительности. В первую очередь Компания подтверждает «право на жизнь» достижением бизнес-результатов.

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

Департамент заботы — внутреннее название, он выполняет две группы задач: operations и human, обеспечивая «заботу» о бизнес-процессах и командах — чтобы процветали и пользователи, и клиенты, и сама компания.

На чем основана работа департамента и как это выглядит на практике, поделилась руководитель Департамента заботы Адель Шадрина.

Читать далее

Как избавиться от дублей в базе данных (на примере MS SQL)

Reading time10 min
Views18K

Всем привет! Меня зовут Евгений, я занимаюсь разработкой и проектированием в Ozon. Больше всего работаю с MS SQL и C#, но попадаются и другие СУБД и языки программирования.

Ozon как продукт быстро растёт: во втором квартале этого года мы доставляли больше миллиона посылок в день. Для обработки такого объёма заказов мы используем разные языки и платформы: .NET (C#), Go, MS SQL Server и PostgreSQL.

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

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

Но сначала позвольте погрузить вас немного в предметную область — объясню, на примере чего будет демонстрироваться проблема дублирования данных, и освещу некоторые методы её решения.

Читать далее

PHP Дайджест № 210 (16 – 30 августа 2021)

Reading time5 min
Views10K

Фото: Peter Kokot.

Подборка свежих новостей и материалов из мира PHP. Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.


Приятного чтения!


Читать дальше →

От базовых знаний до советов по оптимизации команды: что нужно для развития тимлида

Reading time7 min
Views4.5K

Каждый раз на TeamLead Conf мы стараемся подбирать программу для нанесения максимальной пользы участникам. Ну и, безусловно, отыграть важные события в жизни сообщества, подсветить тренды.

До Saint TeamLead Conf 2021 осталось буквально несколько недель. Мы решили открыть карты и рассказать, что ждет участников питерской конференции для тимлидов (спойлер: 4 секции докладов, 12 мастер-классов и классный нетворкинг).

Читать далее

Дженерик коллекции в PHP

Reading time6 min
Views7K

Столкнулся с проблемой нормальной реализации коллекций в PHP. Доктриновские коллекции мутабельны и инвариантны. PSL коллекции инвариантны. Нигде не видел непустых коллекций. Везде меня что-то не устраивало и было принято решение написать свою open source реализацию иммутабельных коллекций с ковариантными темплейт-параметрами и выстроенной иерархией пустых и непустых коллекций. В качестве статического анализатора был выбран Psalm.

Читать далее

Панорамное решение ВКС для ультра компактных переговорных комнат

Reading time7 min
Views3.2K

Понятия переговорная комната и видеоконференцсвязь за последний год тесно сплелись друг с другом в одно целое.

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

Как правило, это часть коридора или общего офисного пространства, отделённое стеклянными или гипсокартонными перегородками.

Эти импровизированные переговорные комнаты получили название - Huddle Rooms. Такие "аквариумы" вмещают не больше 3-5 человек и имеют небольшой стол и телевизор. Из-за компактности переговорной комнаты и очень близкого расположения участников к ТВ, непросто подобрать оптимальную камеру ВКС, так как даже веб-камеры с углом обзора 90-120 градусов не всегда способны захватить крайних участников конференции.

На рынке появились панорамные камеры с обзором до 180 градусов, например Jabra Panacast, но они имеют весьма ограниченный функционал и посредственное качество.
Эта статья посвящается новому панорамному решению для ультра компактных переговорных комнат ProfAV Panorama 180. Это интеллектуальная USB-камера ВКС с множеством режимов отображения и отслеживания докладчиков, а также профессиональный спикерфон с объёмным звучанием и эхо/шумо-подавлением.

Сравним это решение с Jabra Panacast

Принимаем на работу брокера для Celery: подбор, аджаст и выкатка

Reading time9 min
Views5.7K

У Яндекса много самописных сервисов для внутренних задач: Яндекс.Формы, Яндекс.Диск, трекер, календарь. Со временем их решили использовать не только внутри компании, но и за ее пределами. Так появилась платформа Яндекс.Коннект.

Большинство сервисов Коннекта построено на Python V3. В качестве web-фреймворка используется Django, реже Flask и Tornado, а новые чаще пишутся на FastAPI. Сервисы, как и базы PostgreSQL, MySQL и MongoDB, живут в облаке. В качестве очереди сообщений почти везде используется Celery с MongoDB в качестве брокера. Он и стал проблемой.

На Russian Python Week 2020 Владимир Колясинский, разработчик бэкенда сервисов платформы Яндекс.Коннект, рассказал, почему они пользовались связкой Celery MongoDB и почему пришлось отказаться от этого брокера. Он сравнил претендентов: Redis, RabbitMQ и YMQ, с их плюсами и минусами. Подробно разобрал процесс переезда на нового брокера, анализ его состояния и возможные проблемы. И у него получилась пошаговая инструкция, которая пригодится при подборе и настройке брокера. А для любителей разбираться самостоятельно под катом есть расшифровка доклада с конференции.

Читать далее

Как оценить Soft Skills на собеседовании и помочь разработчику их развить

Reading time13 min
Views39K

Довольно очевидно, что junior-разработчику и тимлиду требуется сильно различающийся набор навыков. И если в случае hard skills всё уже миллион раз проанализировано и посчитано, то о необходимом наборе soft skills в зависимости от должности мы можем только понимать на уровне ощущений и здравого смысла. 

Более того, в нашей индустрии не принято говорить после собеседования, что кандидату отказано из-за его уровня soft skills, хотя мы даже не пытаемся конкретизировать, что конкретно в нём нас не устраивает. Вы наверняка слышали или сами употребляли фразы вроде «просто человек странный», «почему-то не нравится» или «чувствуем, что он не вольется в команду». Но почему? Что на самом деле с ним не так?

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

Читать далее

О чем вас не предупреждают при переходе в продакт-менеджеры

Reading time7 min
Views9K

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

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

Читать далее

Взлом госуслуг: мифы и реальность

Reading time8 min
Views75K

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

Взломать госуслуги

Как устроен Domain-Driven Design

Reading time13 min
Views57K

Многие проекты на Django начинаются просто: есть база данных и к приложению, которое крутится на сервере, идут обращения. Например, так начиналась Dodo IS (информационная система компании Додо Пицца, где работал автор сегодняшней статьи). Но если использовать Django из коробки, можно натворить много бед и встретить пачку антипаттернов. Возможно, вы встречали такое на старых legacy-проектах.

Евгений Пешков развивает сообщество DDD-практиков, рассказывая, какие проблемы решает Domain-Driven Design (предметно-ориентированное проектирование) в современном мире. На конференции Russian Python Week 2020 он выступил с рассказом об этом. Кстати, 19 августа пройдет встреча DDDevotion-сообщества, присоединяйтесь, будем о чем поговорить.

В сегодняшней статье будет его рассказ про то, как устроен Domain-Driven Design и какие инструменты использует, чтобы наиболее точно описать требования бизнеса и сам бизнес.

Читать далее

PHP Дайджест № 209 (1 – 16 августа 2021)

Reading time4 min
Views11K
Фото: Florian Engelhardt.

Подборка свежих новостей и материалов из мира PHP. В выпуске: вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют усилия над базой для асинхронного PHP. А также другие новости и релизы, порция полезных инструментов, статьи и видео.

Приятного чтения!

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity