SDCast #104: по следам конференции PHPRussia’19

Товарищи! Представляю вам несколько коротких интервью, записанных на конференции PHPRussia’19, которая прошла 17 мая в Москве. В начале я немного рассказал в целом про конференцию, организацию, доклады и докладчиков. А далее идут 2 интервью:

* Первое интервью с Антоном Шабовтой про асинхронный PHP, многозадачность и долгоживучесть PHP-процессов.
* Второе интервью с Антоном Моревым про Rest API и GraphQL, плюсы и минусы подходов, области и задачи применения.

Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (http://patreon.com/KSDaemon), а так же ретвитом, постом и просто рассказом друзьям!

SDCast #103: в гостях Никита Попов

Ходит шутка, что как устроен PHP полностью знают только Никита Попов и Дмитрий Стогов. Так вот Никита в этом выпуске у меня в гостях! Последние несколько лет Никита активно участвует в развитии языка PHP, является автором многих интересных RFC, часть из которых уже внедрена в текущие версии PHP, и автором нескольких низкоуровневых библиотек, которые используются многими проектами.

В этом выпуске мы поговорили с Никитой о различных сторонах и аспектах языка и экосистемы PHP. Никита рассказал про своё знакомство с PHP, как он стал контрибьютить в проект и в итоге стал core разработчиком. Рассказал и про то, откуда он черпает идеи для новых улучшений языка.

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

Отдельно обсудили тему появления JIT в PHP. Что это даст PHP, какие плюсы несёт, какова сложность внедрения и трудозатраты на реализацию.

Также Никита рассказал про разработку PHP за кадром: как core разработчики общаются между собой, обсуждают и планируют внедрение новых возможностей и улучшений языка.

В завершение выпуска Никита рассказал про свой предстоящий доклад на PHPRussia ’19.

Читать далее

SDCast #102: в гостях инженеры из компании Artec 3D

Что вы знаете о технологиях трёхмерного сканирования и 3D-сканерах в частности? — Наверняка не многое. Интересно? — Тогда этот выпуск для вас! На этот раз у меня в гостях ребята из компании Artec 3D, занимающейся производством портативных 3D-сканеров:

* Евгений Лыхин, руководитель программных разработок
* Андрей Келл, тимлид команды разработки ПО сканера Leo
* Павел Карпычев, программист команды разработки ПО сканера Leo
* Антон Гудым, тимлид исследовательского отдела

В этом выпуске мы обсудили технологии трёхмерного сканирования, достоинства и недостатки, требования к вычислительным ресурсам, скорость обработки данных, а так же области применения каждого подхода. Антон рассказал про то, как устроен процесс 3D сканирования, где и как происходит обработка данных.

Совсем недавно, у компании Artec 3D появился профессиональный 3D-сканер нового поколения Artec Leo. Это первый 3D-сканер со встроенной технологией автоматической постобработки данных.

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

Так же ребята рассказали про то, как устроены процессы разработки внутри компании, какое окружение у разработчиков, как устроены CI/CD процессы, как происходит тестирование сборок.

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

SDCast #101: в гостях Евгений Рыжков и Андрей Карпов

Встречайте 101-й выпуск SDCast’а, в котором мы говорим про статический анализ. У меня в гостях основатели PVS-Studio Евгений Рыжков и Андрей Карпов. В этом выпуске мы подискутировали о методологии статического анализа, обсудили различные подходы к внедрению статического анализа в процесс разработки ПО, осветили какие классы ошибок ловит статический анализатор.

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

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

Так же ребята рассказали, как устроен процесс разработки PVS-Studio у них в компании, как происходит планирование новых фич и выпуск версий и как построена работа с обратной связью от пользователей анализатора.

Ссылки на ресурсы по темам выпуска:

* Статья Андрея «Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей» (https://habr.com/ru/company/pvs-studio/blog/430604/)
* Статья «Разработка нового статического анализатора: PVS-Studio Java» (https://habr.com/ru/company/pvs-studio/blog/414669/)
* Блог компании PVS-Studio на хабре (https://habr.com/ru/company/pvs-studio/blog/) с статьями по разбору кода различных Open Source проектов и не только!

SDCast #100: в гостях Никита Соболев и Григорий Петров

Встречайте 100-й выпуск подкаста! В этом микроюбилейном выпуске у меня в гостях Никита Соболев, технический директор компании wemake.services, член ПК Moscow Python Conf и Григорий Петров, программист, организатор Moscow Python Conf и говорим мы, как вы могли догадаться, про Python.

В этом выпуске мы обсудили сферы применения Python, такие как бэкенд, Machine Learning, web, DevOps, где он прижился и вписался очень хорошо, где не очень, обсудили почему так сложилось. Подискутировали о языках программирования для обучения, хотя кажется, холивара не получилось и мы все втроём сошлись во мнении, что python очень хорош в качестве первого языка программирования.

Обсудили и то, как развивается Python сейчас, какие появляются новые фичи, и как наследие и архитектурные решения прошлого влияют на развитие языка. Обсудили так же плюсы и минусы диктаторского и, что называется, community-driven подхода к развитию языков программирования.

Читать далее

SDCast #99: в гостях Михаил Клюев, Developer Relations менеджер в Авито

Товарищи, встречайте 99-й выпуск подкаста! У меня в гостях Михаил Клюев, Developer Relations менеджер в Авито. В этом выпуске мы говорим про тех пиар, Developer Relations и как сделать разработчиков счастливыми :) В начале Миша рассказал про своё понимание этого направления, в чём заключаются функции и задачи специалиста этой профессии. Мы обсудили различные направления технического пиара, техно бренда компании.

Один из самых интересных вопросов — как можно оценить работу DevRel’а? Мы подискутировали на эту тему, а так же обсудили различные инструменты, которые есть в наличии у DevRel специалиста. Так же Миша рассказал про то, как устроены DevRel процессы в Авито.

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

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

Конечно же подискутировали про конференции, Миша рассказал, что по его мнению с ними не так и что можно сделать, чтобы исправить ситуацию.

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

Читать далее

SDCast #98: в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs

Мечтали ли вы когда-нибудь о такой платформе, где можно легко вызывать функции и модули, написанные на одном языке прямо в программе, написанной на другом языке? Сказка, не правда ли? А вот и нет! Есть такой проект, GraalVM, одной из идей которого как раз и является полиглот интероп платформа. В этом выпуске у меня в гостях Олег Шелаев, девелопер адвокат проекта GraalVM в команде OracleLabs, организатор VirtualJUG и митапов GDG Tartu. И в этом выпуске мы конечно же говорим про GraalVM.

GraalVM — высокоэффективная универсальная виртуальная машина для разных языков программирования, поддерживающая многие популярные языки: Java, Kotlin, Scala, JavaScript, Python, Ruby, R и даже С и С++ и им подобные. GraalVM стирает рамки между языками программирования и позволяет интероп прямо в рантайме,. Так же, интересной особенностью GraalVM является способность компилировать JVM bytecode в машинный код ahead-of-time, создавая standalone образы обычных Java-программ, которые не зависят от JVM.

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

Отдельно поговорили про компилятор Graal и ahead-of-time (AOT) компиляцию, плюсы и минусы такого подхода, ограничения и эффективность. Олег рассказал про специальную виртуальную машину SubstrateVM, чем она отличается от прочих JVM и какие дополнительные задачи решает.

Обсудили мы также и общие вопросы жизни проекта: Олег рассказал про команду, распределение ролей и задач, взаимодействие с сообществом и планы по дальнейшему развитию проекта, а так же рассказал про реальные проекты и компании, которые используют GraalVM целиком или какие-либо отдельные компоненты системы.

Читать далее

SDCast #97: в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК

Встречайте 97-й выпуск SDCast’а! У меня в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК.ru. Александр регулярно выступает на различных конференциях с докладами про архитектуру, обработку видео, передачу данных, Machine Learning и много про что ещё интересного. Но в этом выпуске мы решили сконцентрироваться на теме передачи и обработки видео по сети, хотя и без обсуждения вопросов оптимизаций в различных аспектах не обошлось :)

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

  • Типичные подходы к доставке/передаче видео-контента
  • Транспортный уровень
  • TCP (и различные его улучшения вроде Fast retransmit, TCP Fast Open ), UDP, QUIC и прочие
  • Кодеки и алгоритмы сжатия
  • Устойчивость к потерям данных
  • Адаптивность
  • Шифрование
  • Нагрузки на железо, как те или иные выбранные программные решения влияют на нагрузку
  • Вопросы масштабирования
  • Оптимизации сетевого траффика
  • Вопросы безопасности

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

Читать далее

SDCast #96: в гостях Юрий Шабалин, ведущий архитектор в компании Swordfish Security

Встречайте 96-й выпуск SDCast’а, в котором речь идёт про безопасность разрабатываемых нами приложений. У меня в гостях Юрий Шабалин, ведущий архитектор в компании Swordfish Security. В этом выпуске мы говорим про практики SecDevOps, Application Security и прочие аспекты информационной безопасности программных продуктов.

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

Юра рассказал про различные классы инструментов, помогающие решать задачи по ИБ, такие как:

  • SAST (инструменты статического анализа)
  • SCA/OSA (инструменты контроля рисков компонент с открытым исходным кодом)
  • DAST/IAST (инструменты динамического/интерактивного анализа)
  • Инструменты непрерывной интеграции / непрерывного развертывания (CI/CD)
  • Инструменты дефект-менеджмента

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

Читать далее

SDCast #95: в гостях инженеры Excelsior JET

Встречайте 95-й выпуск SDCast’а, в котором мы говорим про мир Java и JVM. В этот раз у меня в гостях ребята из компании Excelsior, чей флагманский продукт – это Excelsior JET, реализация Java™ SE на основе статической компиляции. Поэтому в этом выпуске мы обсуждаем много технических аспектов реализации Java, как рантайма, так и компилятора, утилит мониторинга и производительности и многое другое.

Итак, в этом выпуске приняли участие:

  • Никита Липский, один из инициаторов проекта Excelsior JET, и на данный момент руководитель продуктовго отдела JET.
  • Павел Павлов, в проекте с 1998 года, отвечает за компиляторную часть проекта, архитектуру ядра JVM, обучает и курирует стажёров и студентов.
  • Иван Углянский, один из разработчиков рантайма: GC, загрука классов, многопоточность, профилирование и т.д.

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

Далее ребята рассказали про Excelsior JET:

  • Чем она отличается от других?
  • Какие есть особенности и фичи?
  • На чём написана?
  • Как выглядит архитектура системы в целом, какие есть модули, компоненты что и как взаимодействует
  • Runtime и компилятор, как они устроены, какие алгоритмы используют
  • Вопросы оптимизации производительности как компилятора, так и рантайма

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

Читать далее